タグ

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

  • 【デブサミ2014】13-B-7 レポート 「何故クックパッドのサービス開発は日々進化しているのか」

    冒頭、庄司氏は「クックパッドの印象としては、レシピのサービスが一番強いと思いますが、これ以外のサービス、新規事業にも力を入れています」とした上で「cookpad.comに関する話をします」と切り出してセッションを始めました。 まず、Ruby 2.0/Rails 3.2による環境構成を説明し、「このボリューム、正直狂っているんじゃないかな。数か月間でこれだけ増えてるんです。……あの、ここ笑うところですよ?」と独特の語り口でセッションを進めていきます。 サービスの成長と安定性を両立させる3チーム制 しかし、上図のような成長ペースにもかかわらず、デプロイは1日10回ペースを維持している。一体どうやって、これほどの安定リリースを実現しているのでしょうか? 庄司氏はこの点について、エンジニアで構成されている『サービス開発部』『インフラ部』『技術部』の存在を挙げました。 サービス開発部隊がサービス開発

  • さよなら手作業・人海戦術! HTML5時代のツール「Selenium2」でWebシステムのテストを自動化

    シリーズは、WebブラウザをUIとして利用した業務システムやアプリケーション(以下、Webシステム、Webアプリケーション)のテストをテーマとして、Webブラウザを使ったテストを自動化するOSSのツール「Selenium2」を紹介します。業務システム開発の現場で適用してきたノウハウを元に、これまでSelenium2について知らなかった人から以前使った経験がある人まで、より実践的な「使える」内容を盛り込んでいきたいと思います。 シリーズのスコープと対象読者 シリーズはWebシステム・Webアプリケーションのテストの中でも「Webブラウザを操作して実施するテスト」をスコープにしています。開発工程としては、1モジュールとして単体テストに位置付けられる場合もあれば、複数のモジュールやシステムと連携して結合テストや総合テストに位置付けられる場合もあるでしょう。これらのテストのことを、シリーズ

  • テキスト処理もPOCOにおまかせ

    はじめに 記事ではPOCO(C++ Portable Componentsの略)というオープンソースのC++用クラスライブラリを紹介します。POCOはコンポーネントとして6つのライブラリにわかれており、前回は、その中のPOCO::Foundationライブラリから、Loggingに関するクラス群を紹介しました。 POCO::Foundationライブラリは、名前のとおり基的な処理を行うクラスを集めたもので、そのまま実践に使えるクラスが豊富に含まれています。今回からしばらくは、そんなPOCO::Foundationライブラリから、テーマごとにクラスをピックアップし、サンプルコードを交えて解説していくことにします。今回のテーマは、テキスト処理を取りあげました。また、POCOには含まれていないシフトJISとUTF-8の相互変換関数のソースコードも公開しています。 これまでの記事 POCO::

    テキスト処理もPOCOにおまかせ
  • Google App Engineで開発するスケールするアプリケーション(前編)

    はじめに 「人類が使うすべての情報を集め整理する」 この壮大なミッションを掲げ設立されたGoogleは、そのミッションを遂行するべく、マシン・ネットワークなどのインフラ環境に莫大な金額を投資し、独自の技術を開発し続けています。Googleは検索エンジンだけにとどまらず、Gmail、Google Calendar、Google Maps、Google Analystics、Youtube、Google Apps、Google Earthなど、いまや全世界のユーザーが使用するサービスをリリースしており、その扱うデータ量、アクセス数は天文学的な数になることが予想されます。Googleはそれらのデータ量、アクセス数を高速にさばき、なおかつ耐障害性の高いスケーラブルな大規模分散システムを構築しています。 そんな中、2008年4月にGoogle App Engineがリリースされました。Google

    Google App Engineで開発するスケールするアプリケーション(前編)
  • 「膨大なデータを分析して見えてくること」ニコニコ動画データ分析研究発表会

    最大の動画投稿サービス「ニコニコ動画」は、動画上を流れるコメントや、自由に編集できるタグ機能といった特徴を持ち、単なる動画共有サービスにとどまらず、コミュニティサイトとしての側面も持つ。多くの人がアクセスする中で「アイドルマスター」「初音ミク(VOCALOID)」「東方プロジェクト」など、いろいろなムーブメントが生まれてきた。 今も毎日多くの動画が投稿されており、各動画は「再生数」「コメント数」「マイリスト数」などの情報がわかるようになっている。すでに投稿動画数は200万を超えるが、これら膨大なデータを分析することで、どんな現象やコミュニケーションが起きているのかを明らかにしようとするのが今回の発表会の目的である。 分析する際の2つの障壁 独自にデータ収集が必要であること しかし、そもそもニコニコ動画自体はデータを分析しやすいように広く提供しているわけではない。1つ1つの動画の再生数

    「膨大なデータを分析して見えてくること」ニコニコ動画データ分析研究発表会
  • find/grep/xargsコマンドを使いこなす 業務で楽するためのUNIXテクニック集「検索」編

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

    find/grep/xargsコマンドを使いこなす 業務で楽するためのUNIXテクニック集「検索」編
  • Webサイトの制作/運用の効率化を図る 「ガイドライン策定」のすすめ(前編)(1/4):CodeZine

    Web標準に従うことは、SEO効果、ユーザービリティ、メンテナンス性の向上など、Webサイトの利用者と制作者の双方にさまざまなメリットをもたらします。しかし、実際にWeb標準の仕様書に従ってWebサイトを制作しようとすると、制作者の頭を悩ませる多くの問題が待っています。連載では、Web標準のメリットを最大限に生かすことをテーマに、仕様書には書かれていない部分を中心に取り上げ、実際のWeb制作現場で起こり得る問題について、解決の糸口をたらしていきたいと思います。 はじめに Web標準に従うことは、SEO効果、アクセシビリティ、ユーザービリティ、相互運用性、互換性、メンテナンス性の向上など、Webサイトの利用者と制作者の双方にさまざまなメリットをもたらします。しかし、実際にWeb標準の仕様書に従って「正しい(X)HTML+CSS」でWebサイトを制作しようとすると、制作者の頭を悩ませる多くの

    Webサイトの制作/運用の効率化を図る 「ガイドライン策定」のすすめ(前編)(1/4):CodeZine
  • 業務で楽するためのUNIXテクニック集 まずはおさらい、シェル制御構造と正規表現の基礎:CodeZine

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

    業務で楽するためのUNIXテクニック集 まずはおさらい、シェル制御構造と正規表現の基礎:CodeZine
  • PDF形式で無償の「Linux標準教科書」提供開始 Linux初級者が対象

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

    PDF形式で無償の「Linux標準教科書」提供開始 Linux初級者が対象
  • Googleオープンソースプロジェクト、Python向けテストフレームワーク「MOX」を公開:CodeZine

    Googleのオープンソースプロジェクトは16日、Python用テストフレームワーク「MOX」を公開した。Google Code内のMOXプロジェクトのページよりダウンロードできる。 MOXはPython向けのMockオブジェクトフレームワークで、JavaのライブラリであるEasyMockを基に作られた。データベースやファイルシステム、Pythonのクラスやモジュールといった、テストの際に依存関係があるパーツのMockオブジェクト(ダミー)を作成できる。 Mockオブジェクトとは、実際の処理を行わずに定数値だけを返すオブジェクト。テスト対象モジュールがダミーオブジェクトとして呼び出し、使用する。 例えば入力メソッドの動きをテストする際は、データベースのローカルコピーを作成するかわりにMOXを使うことで、データベースに対する呼び出しや反応をシミュレーションできる。 インストールする場

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

    はじめに ご存知の通り、携帯端末には現在地の位置情報を基地局ベース、もしくはより精度の高いGPSを使用して送信する機能がついています。この機能を使用して、現在いる場所の地図を表示したり、最寄り駅を表示したりするサービスが各社から提供されています。 位置情報の送信・取得方法はキャリアごとに異なりますが、仕様さえ理解すれば個人で運用しているサイトにも簡単に導入できます。まだ試したことのない方は、この機会にぜひお試しください。対象読者 PerlCGIアプリケーションを作成したことがあり、位置情報を利用したい方。必要な環境 Perl 5.8以上が動作する環境。iモード 「オープンiエリア」 ドコモが提供する基地局ベースのエリア送信サービスで、すべてのiモード対応端末で利用できます。「NTTドコモ 作ろうiモードコンテンツ:オープンiエリア」で仕様が公開されています。 下記のパラメータをドコモの位

  • Pythonを始めよう:CodeZine

    はじめに こんにちわ、hirataraです。 稿では、オブジェクト指向のスクリプト言語であるPythonの紹介をしたいと思います。と言っても、実は私がPythonを勉強し始めたのは数ヶ月前のことで、まだPythonに関してさほど詳しいとは言えません。それでもこの記事を書こうと思い立ったのは、ある言語が他の言語に比べて面白い部分と言うのは、その言語にどっぷり漬かってその言語を使うことが当たり前になっている人間よりも、その言語を好きになり始めたくらいの人間の方が見つけやすいのではないかという思いからです。 そのような事情で、もしかすると当のPythonistaからお叱りを受けるような内容も含まれるかもしれませんが、その点はTBやコメントでご教授頂けると幸いです。この記事で、少しでもPythonに興味を持ってくれる方が増えることを願っています。対象読者他言語でのプログラミング経験者Pytho

  • CodeZine:携帯シミュレータ入門(開発ツール, まとめ)

    はじめに 携帯サイトは、PCのWebブラウザではテストできません。携帯のWebブラウザにはさまざまな機種依存仕様があるからです。マークアップ言語の違い(HTML/HDML)絵文字表示可能な画像形式(gif/png/jpg、カラー/モノクロ、色数、サイズ)受信サイズアクセスキー  これらは携帯の実機でテストする必要がありますが、開発中に携帯の実機でテストをするのは大変です。実機ではソースを見ることもできませんし、経費もかかります。 そこで携帯シミュレータの出番です。すべての機種依存仕様を正確にシミュレートできるわけではありませんが、上記のうち、1. 、2. 、5. をテストすることができます。稿では、携帯サイトの開発に必須となる携帯シミュレータの紹介と、使用上のポイントを説明します。対象読者 携帯向けWebサイトの開発者必要な環境 Windows 2000/XP携帯シミュレータ一覧 携帯シ

  • あなたが学ぶべき10の現代実用プログラミング言語:CodeZine

    はじめに Webベースのアプリケーションや、Webベースで機能するサービス、加えてJavaや.NETのような物理的なシステムを抽象化するプラットフォームの台頭によって、現在のアプリケーション開発は環境によってアプローチが大きく異なり、それに伴って様々なプログラミング言語が使われるようになっています。 ネイティブの実行ファイルを対象としたアプリケーション開発であれば、古くから使われているC言語やC++言語が今でも主流です。しかしながら、Webアプリケーション開発ではPerlPHPRubyPythonなどの組み込み可能なスクリプト言語が人気です。Ajaxを代表としたブラウザ内で動作するクライアントベースのWebアプリケーションであればJavaScriptが駆使されることになります。 仮想システムを対象としたアプリケーション開発には、仮想システム専用の言語が使われます。Javaアプリケーシ

  • Google流プログラミングの真髄を筑波大学で見てきた:CodeZine

    開催概要 12月14日、「つくばコンピュータサイエンス産学オープンカレッジ 第4回」が筑波大学で開催された。同大学のシステム情報工学研究科コンピュータサイエンス専攻が主催するイベントで、各産業界の協力を得てIT技術の最新動向を解説というもの。 今回は「Google流プログラミング」と題し、Googleを代表するAPIのキーパーソンをエンジニアリングチームから招聘し、主要APIMaps、Desktop、Gadget)の紹介と、Google社の紹介が行われた。世話人の加藤和彦教授によると、今回の講演は聴衆の関心が特に高く、用意した110席は30~40倍の倍率で、直ちに満席となったという。 講演は次の流れで行われた。Google Maps APIGoogle Gadgets APIGoogle Desktop SDKGoogleの会社紹介 Google Map API まず、Chris A

  • CodeZine:Rubyで簡易POP3サーバを作る(POP3, Unix, メール, サーバ, Ruby)

    はじめに 稿ではRubyを使ってシンプルなPOP3サーバを作成します。 POP3は、いわゆる「メールの受信」のときに使われるプロトコル(通信規約)です。稿では、このPOP3でサービスを提供するサーバの作成を通じて、以下のことを学びます。ネットワークプログラミングの基礎POP3の仕組みRubyによるネットワークプログラミングRubyによるUNIXシステムプログラミング POPdの概要 稿で作成するPOP3サーバ(POPd)は、イントラネットなどの信頼できるネットワークを前提として作成します。そのため、セキュリティへの配慮は最低限にとどめ、できるだけシンプルな構造を心掛けます。ただし「最低限の配慮」として、パスワードが平文で流れないようにするため、POP3の中でも特にAPOPという認証方法を用います。 また、速度やメモリ容量に関してもあまり配慮しません。せいぜい数人から数十人が日常的に使

  • プログラミングと開発者のためのCodeZine:Perlで作るモバイルサイトのコツ:第1回(Perl, モバイル, CPAN)

    http://www.cpan.org/。Perlのライブラリ・モジュールソフトウェアやその他のPerlで書かれたソフトウェアを集めた巨大なアーカイブで、世界中のサーバーにその内容がミラーされています。 対象読者 Perlを実行できる環境にて携帯サイトの構築を考えている方。 必要な環境 Apache 1.3系または2系 Perl 5.6以上 User-Agentより端末判別を行う 携帯サイト構築の主な処理として挙げられるのがUser-Agent解析によるキャリア、モデル、シリーズなどの分類処理かと思われます。iモード、EZweb、Vodafoneの3キャリアを判別するだけでも複数のパターンが存在しており、端末のモデルを取得するまでにはさまざまな条件分岐処理の記述が必要となります。それらをスマートに行う方法はHTTP::MobileAgentを使うことで、User-Agent

  • CodeZine:フリーのFlashコンパイラMTASCを使ってお絵かきツールを作る(Flash, ActionScript, MTASC, お絵かき)

    はじめに Flashファイル(SWFファイル)を作るにはMacromedia Flashを使わないといけないと思われていますが、Flashファイルの仕様はAdobeのWEBサイトで公開されています。そして、フリーのFlashコンパイラMTASC(Motion-Twin ActionScript2 Compiler)もあります。MTASCを使えばFlashのスクリプトActionScript2を記述することで、Flashファイルを生成することができます。 しかも、MTASCはコマンドラインから利用することができるので、Flashの煩雑なGUIを利用せず、使い慣れたエディタを利用してプログラムを作ることができます。プログラマーにとっては非常に使いやすく感じることでしょう。 逆に言えば、デザイナーの人にとっては、扱いにくいものに感じられると思います。Flashは、主にWEBアニメーションやページ

  • 1