タグ

ブックマーク / codezine.jp (94)

  • Perlで作るモバイルサイトのコツ:第7回

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Perlで作るモバイルサイトのコツ:第7回
  • テスト駆動開発を実習形式で体得する 「TDD Boot Camp 仙台」レポート

    TDDBCについて TDDBCの名前の由来は、ビリーズブートキャンプからとったそうです。 ペアプログラミングとチーム全員のコードレビューはよく言及されるが、実際にやった経験のある人は少ない。その両方を体験できるのがTDDBCであると紹介されました。その意味で、午後の演習の方が基調講演より大事だといいます。 また、TDDBCの開催実績と開催予定が示され、各地で活発にTDDBCが開催されていることも紹介されました。 TDDの背景 TDDを語るには、まず地ならしが必要だそうです。それは、「テスト」という言葉で思い浮かべるイメージ、範囲が1人1人異なり、テスト駆動開発の議論がかみ合わないことがよくあるため。誰が、何のためにという目的に立ち返ると、「開発者のテスト」「顧客視点のテスト」「品質保証のテスト」と、再分類できますとのことでした。 現代ソフトウェア開発の三柱 次に、現代のソフトウェア開発で

    テスト駆動開発を実習形式で体得する 「TDD Boot Camp 仙台」レポート
  • サーブレット3.0の新機能

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

  • デブサミ2011レポート 数十~数百億PVのトラフィックをさばく、ソーシャルアプリのインフラ現場の実情

    モバゲータウンなど、Feature Phone向けの人気ソーシャルアプリケーショーションは、月間数十~数百億PV(ページビュー)もののトラフィックがある。それらを支えるインフラの現場で働く技術者たちは、どのような手法を用いてトラフィックをさばいているのか。4人の現場エンジニアがパネラーとなり、現状のシステム構成やクラウドの 可能性について、さらには今後の展望などについて語った。 モバゲータウンなど、Feature Phone向けの人気ソーシャルアプリケーショーションは、月間数十~数百億PV(ページビュー)もののトラフィックがある。それらを支えるインフラの現場で働く技術者たちは、どのような手法を用いてトラフィックをさばいているのか。4人の現場エンジニアがパネラーとなり、現状のシステム構成やクラウドの可能性について、さらには今後の展望などについて語った。 モデレータ 株式会社ディー・エヌ・エー

  • デブサミ2011レポート DeNAの実装技術を紹介! 大規模Webサービスのためのデータベース技術の現在・未来

    「モバゲータウン」を中心に、急成長し続けている株式会社ディー・エヌ・エー(DeNA)。そのバックヤードでは、膨大数のDBサーバを安定稼働し、高速化を図り、運用を効率化するために、様々な取り組みが行なわれている。はたして、どのような指針のもと、どのような対応がなされているのか、同社統括IT基盤部の松信嘉範氏が「優先順位の考え方とそれに伴う対応策」について語った。 今後のMySQLの課題はレプリケーションの並列化 “The Best Online Database”とは、大規模Webサービスを稼働させる上で、数年前よりMySQLが提唱し、目指しているデータベースの理想型である。その要件のなかでも特にセッションでは「高い性能」や「高い可用性」を実現するための施策と、そのために今後求められる事項についての松信氏による考察が紹介された。 1日あたり20数億PVというMobageを支えるために

    teppeis
    teppeis 2011/03/09
    松信さん
  • MVVMによるSilverlightアプリケーションの開発(その1)

    はじめに Silverlightに限らない話ですが、ページからのイベントに対する処理をすべてイベントハンドラに記述してしまったために、再利用性が著しく低かったり、単体テストがひどくやりにくいシステムを見たことはありませんか? これは、プログラムの機能をすべて同じ層に記述していることが原因の1つです。 この問題に対するSilverlightでの解決策の1つが、MVVMパターンです。今回はMVVMパターンと、MVVMパターンの要となるデータバインディング、コマンドバインディングについて2回にわたって解説します。 MVVMパターンとは MVVMはModel-View-ViewModelの頭文字をとった、アプリケーションの階層化パターンの1つです。階層化パターンを適用することで各層の依存関係が薄くなり、アプリケーションの修正、複数人数での分散開発、単体テストなどが実施しやすくなります。 Expre

    teppeis
    teppeis 2011/02/26
  • 正規表現エンジンを作ろう (1)

    はじめに こんにちは。hirataraです。 私が初めて正規表現を使ったのは、PerlによるCGIでの文字列処理でした。それから私はPerlを使い続け、今では正規表現なしのコーディングは考えられないほど、正規表現を当たり前の機能として日常的に使っています。昔は標準では正規表現をサポートしていなかったJavaも、今では正規表現をサポートするようになりました。Javaだけではなく、今日ではほとんどの高級言語にとって、正規表現はなくてはならない機能であると言っても過言ではないほどメジャーな機能となっています。 記事では、この正規表現の舞台裏に光を当てます。一見すると作ることが難しそうな正規表現エンジンですが、その根底には数学的な概念があり、その概念さえ知っていれば基礎となる機能の実装はそんなに難しくありません。この連載ではその数学的な概念をPythonを使って表現しながら、実際に動作する正規表

    正規表現エンジンを作ろう (1)
  • サーバー側コーディング不要のGoogle App Engine開発環境「jsonengine」

    はじめに 稿では、JavaPythonによるサーバー側コーディングを一切必要とせずにGoogle App Engineによる開発を実現するツール「jsonengine」について紹介します。 対象読者 Google App Engineに興味はあるが経験のない方。JavaScriptやActionScriptによるクライアント開発、またはiPhoneAndroidによるスマートフォン開発の経験のある方。JavaPythonの開発経験は不要です。 必要な環境 最低動作環境は次のとおりです。 Java SE 5 jsonengineって何? 「jsonengine」は、JavaPythonによるサーバー側コーディングを一切必要とせずにGoogle App Engineによる開発を実現するオープンソースのツールです。このツールは、昨年開催された「Mashup Awards 6」において「

    teppeis
    teppeis 2011/01/23
    「jsonengine側での事前のコーディングやデータベーススキーマ設定などが「一切不要」」「ユーザー認証の手段としては、GoogleアカウントとOpenID」クロスドメインは?
  • Yahoo! UI Library 3(YUI3)のウィジェット

    はじめに 今回は、プログラム作成に、グラフィカルなユーザインタフェースを提供するウィジェット(Widgets)について説明して行きたいと思います。ウイジェットには、表などをページにポップアップさせるモジュールOverlay、スライダーを表示するモジュールSlider、タブパネルを可能にするインターフェースを提供するモジュールTabviewがあります。 対象読者 Webアプリケーションに興味があり、Yahoo! User Interface Libraryに注目している人。HTMLJavaScriptを使える人を対象にしています。 必要な環境 HTMLJavaScriptが作成できるエディターとインターネットにつながっているパソコンがあれば、例題の作成、確認ができます。 ポップアップ ページ作成時、一時的に表などをポップアップさせたいときがあると思います。このような時便利な、ポップアップ

    Yahoo! UI Library 3(YUI3)のウィジェット
  • HTML5が注目を浴びる理由とは? ここが違う!サンプルで見るHTML5(1)

    はじめに この連載では、「HTML5」をとりあげ、全6回に分けて、これまでの技術とどのような違いがあるのか、具体的にサンプルのコードを示しながら解説していきます。 HTML5はなぜ注目されているのか HTML5は、今やウェブ業界の流行語といっても良いほどの過熱ぶりです。HTML5は、名前の通り、HTML4の後継に当たる仕様です。とはいえ、HTML5に注目しているのは、ホームページを作成するウェブ制作者だけではありません。ウェブ業界に限らず、あらゆるIT関連業界で注目を浴びています。なぜ、これほどまでにHTML5が注目を浴びているのでしょうか。 この理由は、大きく分けて2つあります。1つはマークアップです。もう1つはAPIです。 マークアップの仕様を更新 まずは、マークアップの視点から見ていきましょう。これは、とりわけウェブ制作者、中でもウェブページ製作の現場において重要です。これまでウェブ

    teppeis
    teppeis 2010/11/28
    羽田野さん
  • iPhoneゲームのトップクリエーターが語る 「iPhoneアプリ成功の方程式~企画編」

    「セッション1:企画編」ランキングトップをとるために「気」の勝負を! 同セミナーは、「iPhoneで勝負!! 企画編」「iPhoneで勝負!! プロモーション編」「iPhoneで勝負!! 開発・製作編」という3つのセッションに分けて行われた。通常、開発者向けのセミナーというと、設計やプログラミングの話が中心になりがちだが、宮川氏は同セミナーの講師を引き受けるに当たり、まずは企画とプロモーションの話をする必要性を強く感じたという。 「今回お話しするプレゼンテーションには『iPhoneで勝負!!』というタイトルを付けたが、勝負するということは、ビジネスとしての勝算を立てるということ。事前にセミナー参加者を対象に行ったアンケートでも、『どうしたら売れるのか?』という質問が一番多かった。従って、まずは『どういう戦略を立てれば勝算が立つのか?』という所から話す必要があると思った」(宮川氏) 現在、

    iPhoneゲームのトップクリエーターが語る 「iPhoneアプリ成功の方程式~企画編」
  • グリーCTOが語る、大規模ソーシャルゲーム開発の舞台裏

    9月1日、ゲーム開発者向けカンファレンス「CEDEC 2010」において、SNSGREE」を運営するグリー株式会社(以下 グリー)が『大規模ソーシャルゲームのつくりかた ~60分でわかるサーバサイド技術~』と題するセッションを講演した。 一日あたり億単位のトラフィックを捌くインフラはどうなっているのか。技術者2名が解説したインフラ構築のノウハウや、ソーシャルゲームと一般のオンラインゲームとの違いについて紹介する。 オンラインゲームとソーシャルゲームとの違い 最近テレビCMでも目にする機会が多くなってきたSNS(ソーシャルネットワーキングサービス)の「GREE(グリー)」。2010年6月時点の数字で、会員数2059万人、月間353億ページビューという言わずとしれた大人気サイトだ。中でも携帯電話向けソーシャルゲームが特徴的で、専用機向けのゲームと比べるとコアゲーマー以外のプレイヤーも多く、利

    グリーCTOが語る、大規模ソーシャルゲーム開発の舞台裏
    teppeis
    teppeis 2010/09/25
    「ユーザーの不利益にならない順番で更新する」
  • Yahoo! UI Library 3(YUI3)プラグイン

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Yahoo! UI Library 3(YUI3)プラグイン
    teppeis
    teppeis 2010/09/02
  • Yahoo! UI Library3(YUI3)のDeveloper Tools

    はじめに Yahoo! UI Library 3(YUI3)は5月5日に3.1.1にバージョンアップしました。3月31日に3.1.0にバージョンアップしたあと、細かいバージョンアップが続いているようです。 今回は、開発時に便利なツールをまとめた、Developer Toolsのモジュールについて説明して行きたいと思います。 対象読者 Webアプリケーションに興味があり、Yahoo! User Interface Libraryに注目している人。HTMLJavaScriptを使える人を対象にしています。 必要な環境 HTMLJavaScriptが作成できるエディターとインターネットにつながっているパソコンがあれば、例題の作成、確認ができます。 作成時に便利なツール デベロッパーツール(Developer Tools)は、ページ作成時に便利な開発用ツールの集合です。 logメッセージを表示

    Yahoo! UI Library3(YUI3)のDeveloper Tools
  • 原文をスラスラ読みたい! 「MSDNライブラリによく出る英単語 100選」(1/2):CodeZine

    はじめに MSDNライブラリには、マイクロソフトの技術情報が大量に掲載されていますが、英語版に比べ、日語版の内容は中途半端なのが実状です。 たとえば、スレッドの優先順位を設定する「SetThreadPriority」関数の説明を見ると、英語版には「Windows Server 2008およびWindows Vistaでは、スタートアップやレジストリのRUNから自動実行されたプログラムに対するスレッドの優先順位指定が、システム開始から60秒程度効かない」との注意書きがありますが、日語版にはありません。 また、仮想ディスクの情報を設定する「SetVirtualDiskInformation」関数を検索すると、英語版には説明がありますが、日語版には項目自体がありません。 そこで記事では、MSDNライブラリの英語版がスラスラ読めるように、とはいきませんが、英単語で引っかかることが少なくなる

    原文をスラスラ読みたい! 「MSDNライブラリによく出る英単語 100選」(1/2):CodeZine
  • Yahoo! UI Library3(YUI3)データ処理に着目

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Yahoo! UI Library3(YUI3)データ処理に着目
  • Google Waveをガジェットで拡張してみよう

    はじめに Google Waveは、GoogleGoogle I/O 2009で発表した新しいコミュニケーション&コラボレーションツールです。Google Waveを用いると、メールのようなメッセージのやりとりから、チャットのようなリアルタイムのコミュニケーションまで幅広いレスポンスタイムのコミュニケーションが実現できます。 Google Waveの一番の特徴は、1つのドキュメントに対し複数人でリアルタイムの編集ができるところでしょう。また、その編集がコンフリクトしないことがプロトコルレベルで保証されています。Google Waveは操作変換という仕組みを用い、低レイテンシかつ編集の衝突がないドキュメントの編集機能を実現しています。 Google Waveは2つの方法でGoogle Waveを拡張する方法を提供しており、今回は2つのうちの1つであるWaveガジェットを作ります。Waveガ

    Google Waveをガジェットで拡張してみよう
    teppeis
    teppeis 2010/04/19
  • インスタントメッセージXMPPサーバー 「Apache Vysper」リリース

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    インスタントメッセージXMPPサーバー 「Apache Vysper」リリース
    teppeis
    teppeis 2010/04/07
  • ファイルディスクリプタについて一覧

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    ファイルディスクリプタについて一覧
  • 編集距離アルゴリズムを使って文字列を変換する

    はじめに 私と同様に大量の文章を書く人なら、Microsoft Wordの変更履歴機能のことはよくご存じでしょう。この機能を利用すると、バージョンの異なるWordファイル間でどの箇所が変更されたかを簡単に見分けることができます。 しかし、プレーンテキストファイルで変更箇所を知りたいときはどうすればよいでしょうか。バージョンの異なるデータファイルどうしを比較したい場合はどうでしょうか。また、プロジェクトが単体テストを通過しなくなった場合に、前の週にソースコードファイルのどの箇所が変更されたかを調べるにはどうすればよいでしょうか。 ファイルの変更管理を実施していれば話は簡単です。きちんとした変更管理システムなら、バージョンの異なるファイル間の変更箇所を強調表示してくれるからです。ファイルの変更管理を実施していない場合や、変更管理の仕組みを理解したいと考えている場合は、変更箇所を調べるためのツー

    編集距離アルゴリズムを使って文字列を変換する