タグ

ブックマーク / gihyo.jp (67)

  • 第10回 ジョブキューで後回し大作戦―TheSchwartz、Qudo、Q4M(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはnekokakさんこと小林篤さんで、テーマは「ジョブキューで後回し大作戦」です。 ジョブキューとは 一時代前は時間のかかる処理もすべてWebアプリケーションで行っていましたが、最近ではいろいろな部分で処理の非同期化が行われるようになってきました。たとえばWebのインタフェース側ではAjaxがその最たるものでしょう。アプリケーションのバックグラウンド側でも今回のテーマであるジョブキューと呼ばれるしくみが多く利用されるようになりました。ジョブキューを賢く上手に利用することで、ユーザにストレスを与えることなく、またサーバのリソースも有効に使えるようになります。 ジョブキューは延々と動き続けるバッチ処理、というイメージが最もわかりやすいでしょう。通常のバッチ処理であればcrondを利用し、一定周期でプログラムを起動して

    第10回 ジョブキューで後回し大作戦―TheSchwartz、Qudo、Q4M(1) | gihyo.jp
  • 2011年の技術系Advent Calendarを電子出版で提供しませんか? | Gihyo Digital Publishing … 技術評論社の電子書籍

    技術評論社の電子出版サービス「Gihyo Digital Publishing」では,2011年の技術系Advent Calendar(終了後のもの)を,無料で電子出版コンテンツとして制作し,配信サポートをいたします。 ご自身あるいは団体で公開しているAdvent Calendarコンテンツについて,電子出版コンテンツでの発行をご希望される方は,以下宛先までご連絡ください。 応募は締め切りました。 応募期間:2011年11月28日~2011年12月16日 配信予定:2012年1月中旬 Advent Calendarの終了後に,各ブログ,サイトで公開した記事を取りまとめてWeb/EPUB型の電子書籍の形にしまして,当サイトよりダウンロードできるようにいたします。 なお,1次コンテンツの著作権については著作者に帰属するものとします。 補足情報(2011年11月28日16時15分) 今回配信する

    ikasam_a
    ikasam_a 2011/11/28
  • 第2回 tokuhirom氏に聞くYAPC:Asia 2011の見所 | gihyo.jp

    JPAでYAPC::Asiaを担当している櫛井です。 今年も国内最大のPerlのイベント「YAPC::Asia Tokyo 2011」が10月14日(金⁠)⁠、15日(土)に開催されます。場所は、昨年と同じく東京工業大学大岡山キャンパスです。 前回に続き、第二回目は昨年のYAPC::Asia 2010 にてベストスピーカー賞を受賞されたtokuhirom氏にお話を伺いました。 tokuhirom(とくながひろむ) サブテク所属。生き馬の目をぬく東京で育ち、Perl5 を中心としたウェブ開発を主におこなっている。詳細は以下のとおり http://github.com/tokuhirom/ 狙って取ったベストスピーカー賞! ―昨年から始めたトーク投票で、見事ベストスピーカー賞でしたね。エピソードなどあればお聞きしたいのですが。 tokuhirom:ありがとうございます、ベストスピーカー賞は

    第2回 tokuhirom氏に聞くYAPC:Asia 2011の見所 | gihyo.jp
    ikasam_a
    ikasam_a 2011/09/16
  • 第43回 Text::Xslate:永続環境に特化したテンプレートエンジン | gihyo.jp

    TTの体を差し替える 前回はウェブ業界で標準的に使われているTemplate Toolkitをより安全に使うためのカスタマイズ方法をいくつか紹介しました。しばしば批判の対象となってきたエスケープの問題については、TTでも適切な拡張を施せば後発のモジュールと遜色ないか、それ以上に便利に使えることは確認できたかと思います。 ただし、エスケープの仕方ひとつとってもさまざまなやり方があったように、TTは、柔軟である代償として速度面ではかなりの不利を抱えています。 もっとも、不利といってもそれはいまの、しかもかなり規模の大きな現場の視点で見たときの話で、数年前、おもなライバルがHTML::Mason(と、機能面で大きな差があるHTML::Template)だった時代にはTTも十分に高速といえましたし[1]⁠、中小規模のサイトではいまでもTTで十分なレスポンスは得られます。 また、かれこれ10年近く

    第43回 Text::Xslate:永続環境に特化したテンプレートエンジン | gihyo.jp
    ikasam_a
    ikasam_a 2011/07/22
    色々あるんだな
  • 日本Hudsonユーザー会も発足した「Hudson勉強会」活動報告 | gihyo.jp

    11月12日金曜日、Hudsonの生みの親である筆者の訪日にあわせて、法政大学情報科学部、Seasarファウンデーションの後援で、Hudson勉強会(またの名を「日ビルド職人の集い⁠」⁠)が開催されました。200人以上集まる大きなイベントとなり、様々な発表やLTが行われました。その模様を報告します。 「Hudson初心者向けデモ」 まず、cactusmanさんによる、Hudsonをさわった事のない人向けへの紹介とデモが行われました。「⁠java -jar hudson.war」で起動できるのが大変便利だとし、Hudsonからはスケジューリング、チェックアウト、ビルドの実行、結果のまとめ、ビルドの通知などができると紹介されました。 デモでは、Subversionリポジトリ上に格納されたMaven2プロジェクトをビルドする様子を紹介し、コミット後すぐにビルドが始まる様子や、新しいテストを追加

    日本Hudsonユーザー会も発足した「Hudson勉強会」活動報告 | gihyo.jp
  • 第37回 YAPC:国際的なイベントなのだ、ということはお忘れなく | gihyo.jp

    連載の裏話を発表してきました 先日開催されたYAPC::Asia 2010では、この連載の番外編として、筆者が執筆の際にどのような資料を見ているか、また、どのような基準でとりあげる話題を決めているかをお話しました。当はもう少しいろいろな情報源を見ていただいて、サイトの外観や内容の変化から最近のPerl界のうつろいを感じていただければと思っていたのですが、昨年は同じ分量のスライドで半分近く時間を余してしまったからと思ってゆっくりめに話したら、さじ加減を間違えたようで、当に紹介しようと思っていた部分はかなりすっ飛ばしてしまう結果となってしまいました。資料はいまだに整理が済んでいないのですが、内容を説明しそびれたページについてはまた何らかの形で紹介していかれればと思っています。 気になることの多いYAPCでもありました さて、自分のスライドに日語をつけそびれてしまったことをはじめ、個人的に

    第37回 YAPC:国際的なイベントなのだ、ということはお忘れなく | gihyo.jp
    ikasam_a
    ikasam_a 2010/11/01
  • 連載:アジャイル開発者の習慣―acts_as_agile|gihyo.jp … 技術評論社

    第4回特別コラム 「なぜそんなにも(アジャイル開発者にとって)Wikiは重要なのか」 角谷信太郎 2008-04-22

    連載:アジャイル開発者の習慣―acts_as_agile|gihyo.jp … 技術評論社
    ikasam_a
    ikasam_a 2010/10/24
  • YAPC::Asia Tokyo 2010スペシャルレポート 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    YAPC::Asia Tokyo 2010スペシャルレポート 記事一覧 | gihyo.jp
  • RubyKaigi2010スペシャルレポート 記事一覧 | gihyo.jp

    Ruby会議2010 3日目レポート[更新終了] KaigiFreaks レポート班,赤松祐希,大和田純,すがわらまさのり,白土慧,三村益隆,with 編集部 2010-08-29 Ruby会議2010 2日目レポート[更新終了] KaigiFreaks レポート班,赤松祐希,大和田純,すがわらまさのり,白土慧,三村益隆,with 編集部 2010-08-28

    RubyKaigi2010スペシャルレポート 記事一覧 | gihyo.jp
  • 第2回 REST侍は国益に殉ずる覚悟を持っていた | gihyo.jp

    圏外からのWeb未来観測、2回目のゲストは『Webを支える技術』(⁠注1)の著者の山陽平さんです。山さんは、クールでロジカルな話し方をする人で、一見、典型的な理系の技術者という印象なのですが、実は、すごく激しいパッションを秘めた人でした。技術的に正しい選択を通すためには会社を辞める覚悟までしていたそうです。現代に生きる侍の一人ではないかと思います。 『Webを支える技術』に入れなかったもの 中島:『Webを支える技術』は、もう定番の教科書としての評価が定まってますね。 山:essaさんにもレビューしていただいて(【1】、【2】)ありがとうございます。 中島:何よりこのは、話題の絞り込みが適切だと思うのですが、意識してカットしたところとかはあるのでしょうか? 山:まず、プログラミング言語に依存したくなかったので、具体的な言語のコードはほとんど入っていません。その代わりHTTPの生々

    第2回 REST侍は国益に殉ずる覚悟を持っていた | gihyo.jp
  • 第1回 PSGI/Plack―フレームワークとサーバをつなぐエンジン (3) | gihyo.jp

    PSGIミドルウェアを利用する PSGIミドルウェアはアプリケーションと同様にコードリファレンスとして実装されますが、いちいち.psgiファイルに記述するのはあまり効率が良くありませんし、再利用性もありません。そこでPlackにはミドルウェアをモジュールとして利用するためのベースクラスPlack::Middlewareや、それを利用して実装された各種ミドルウェアが同梱されています[2]⁠。 ここでは、これらのミドルウェアを利用して先ほどのTatsumakiアプリケーションを拡張してみましょう。 Auth::Basic PSGIアプリケーションに簡単なHTTP認証機能を付けるミドルウェアがAuth::Basicです。容易に拡張できるコールバックインタフェースを持っているため、データベースやLDAP(Lightweight Directory Access Protocol)などとの連携もでき

    第1回 PSGI/Plack―フレームワークとサーバをつなぐエンジン (3) | gihyo.jp
  • 第41回 Sinatra 1.0の世界にようこそ | gihyo.jp

    はじめに SinatraはRubyで記述されたWebアプリケーションを素早く、簡単につくるためのDSL(ドメイン固有言語)です。 すでに第7回で、原悠さんにより「小規模Webアプリのためのフレームワーク、Sinatra」というかたちで紹介されています。 簡潔な文法で、高い表現力を持つSinatraは、アメリカRubyコミュニティや企業を中心に、瞬く間にユーザを増やしました。また、Rubyという一言語に留まらず[1]⁠、Sinatraを模したフレームワークが多く作られている現状からも、SinatraはWebアプリケーション開発そのものにも大きな影響を与えたと言えます。 最近ではここ日でも、個人利用を中心に、そこかしこでSinatraを使って開発をしている、という話を聞くようになりました。筆者自身、1ユーザとして現在業務で利用しており、1年前は知る人ぞ知る存在だったSinatraは、実際に

    第41回 Sinatra 1.0の世界にようこそ | gihyo.jp
  • 第30回 Test::Class:ユニットテストに使うだけでなく | gihyo.jp

    メタデータからテスト件数を取得する 前回はテストファイルやテストデータの数からテストプランを計算するモジュールを紹介しました。今回はその続きとして、テストファイルのメタデータからテストの数を求めるモジュールを紹介していきましょう。これらのモジュールの多くは1994年にケント・ベック(Kent Beck)氏がSmalltalk向けに書いたSUnitを祖先にもつ、いわゆるxUnit系のフレームワークに属するものですが、Perlにはそれ以前からTest Anything Protocolを使った独自のテスト手法が存在していたため、Javaなどで使われている同種のフレームワークとはやや毛色の違う部分もあります。一般的にはクラスをひとつ書くたびに対応するユニットテスト用のクラスを書くのがよいように言われていますが、ここではもっとゆるく、テストを自動的に検出してくれるだけでなく、テストの事前事後になん

    第30回 Test::Class:ユニットテストに使うだけでなく | gihyo.jp
  • 第29回 Test::Base:データ本位のテストをするときは | gihyo.jp

    テストは実行する前にも数えられるはず 前回、前々回と見てきたように、Test Anything Protocolでは来ひとつひとつのテストに連番が割り振られます。新しいテストを追加したければ、テストファイルの末尾に移動して、テスト番号をひとつずつ増やしながらテストを書き進め、終わったら先頭に戻って宣言部を更新する。先頭に戻るのが面倒であれば宣言部を末尾に移してもよいですが、いずれにしてもテストを追加し終わった時点でテストの件数はわかっているのですから、更新に困ることはないはずでした。 ところが、Perl 5の時代に入ってテスト用のモジュールが連番を振ってくれるようになった結果、テストの件数がわかりづらくなったため、no_planやdone_testingのように実際にテストを実行した回数をテストの総数とみなす手法が登場した――というのが前回の話でしたが、そういった妥協案は、Test An

    第29回 Test::Base:データ本位のテストをするときは | gihyo.jp
  • 第37回 実用的なダミーサーバ ww(double-web)(2) | gihyo.jp

    前回(第35回)はwwを使ってWebのダブルとなるサーバを作り、スパイ機能を使ってクライアントからのリクエストの状況を目視確認する方法を説明しました。 今回は、ミニブログへのメッセージ投稿を通じて、wwを自動化テストに組み込む方法を説明します。 RSpecの自動テストの中からサーバを起動停止する wwは、単一のサーバプロセスとして起動させるほかに、自動化テストの中で定義・起動・停止するためのAPIを備えています。前回作ったダブルサーバを、RSpecから起動・停止するテストコードは次のようになります。 # spec/miniblog_client_spec.rb $:.unshift File.expand_path("../lib", File.dirname(__FILE__)) require 'miniblog_client' require 'ww' describe Minibl

    第37回 実用的なダミーサーバ ww(double-web)(2) | gihyo.jp
  • 第35回 実用的なダミーサーバ ww(double-web)(1) | gihyo.jp

    はじめに Web APIを使って様々なサービスと連携するというアーキテクチャはすっかり定着した感があります。みなさんも、Web APIを使ってデータをやりとりするアプリケーションを書く機会も増えているのではないでしょうか。 Web APIを使うアプリケーションの開発では、テストやデバッグをする際のAPIアクセスが悩みどころとなります。物のサーバを使ったのではテストデータの初期化などに手間がかかりますし、逆にHTTPアクセス自体をスタブやモックを使って間接化してしまうとそれが当に有効なテストなのか不安が残ってしまいます。 筆者も、仕事やプライベートでのコーディングでこのような悩みに何度も遭遇しました。これらを解決するために開発したのがwwです(wwと書いて'double-web'と読みます⁠)⁠。 ダミーWebサーバ作成ライブラリww(Double Web) wwは、Webサービスの簡単

    第35回 実用的なダミーサーバ ww(double-web)(1) | gihyo.jp
  • 第27回 Test::Most:Test::Moreでは物足りなくなってきたら | gihyo.jp

    Test Anything Protocol Perlは非常にテストを重視している言語です。連載第14回ではPerl体のテスト数がどのように推移してきたかを、また連載第24回ではCPANモジュールの品質保証に大きな役割を果たしてきたCPANTSについて簡単に紹介しましたが、Perlとテストのつながりはそれだけではありません。CPANにはTestを名前に含むディストリビューションが500以上もあがっていますし(これは全ディストリビューション数の約2.5%にあたります⁠)⁠、Perlで標準的に使われているテスト形式はTest Anything Protocol (TAP)という名前を得て多くの言語に移植され、2008年からはIETFの標準化を目指した活動も始まっています――というと何やらすごいプロトコルのように聞こえるかもしれませんが、Test Anything Protocolというのは要

    第27回 Test::Most:Test::Moreでは物足りなくなってきたら | gihyo.jp
  • 第33回 RubyistのためのMongoDB入門(2) | gihyo.jp

    第31回に続いて、今回はMongoDBRubyから使う方法をご紹介します。 MongoDBRubyから使うためのライブラリ MongoDBRubyから使うには、以下のライブラリ等を利用する必要があります。 Ruby driver for MongoDB [GitHub, チュートリアル] RubyからMongoDBを使う上で基となるのが、公式のRubyドライバです。 MongoDBのほぼ全機能にアクセスできるため、複雑なことをしたいときには頼りになるでしょう。後述する他のライブラリも内部ではこのドライバを使っています。 ドキュメントをオブジェクトにマッピングしてActiveRecordライクに扱う、オブジェクトマッパーの機能を提供するライブラリもあります。今回は代表的なものを2つご紹介します。 MongoMapper [GitHub, 作者による紹介] 比較的ActiveRecor

    第33回 RubyistのためのMongoDB入門(2) | gihyo.jp
  • 第26回 ShipIt:モジュールのリリースをもっと手軽に | gihyo.jp

    CPANにモジュールをアップロードする前に 第23回から続けてきたシリーズの一環として、今回はモジュールをCPANにアップロードするときのツールをまとめてみます。おそらくこのようなツールに興味を持つような方なら当然 perlnewmod や perlmodlib、あるいはCPANやPAUSEについてのよくある質問のページ[1]くらい読んでいるでしょうから大丈夫だろうとは思っていますが、今回とりあげるツールは使い方を間違えると周囲に多大な迷惑をかける可能性があります。一度CPANにアップロードされたファイルは、たとえミスであっても数日中には世界中のミラーにコピーされますし、BackPANと呼ばれる保管庫には半永久的に保存されますので、うっかり無意味な(あるいは部外秘の)モジュールを公開してしまうことがないよう、また、ほかの人の迷惑になるような名前空間を占有してしまわないよう、実際に試してみる

    第26回 ShipIt:モジュールのリリースをもっと手軽に | gihyo.jp
  • 第31回 RubyistのためのMongoDB入門(1) | gihyo.jp

    はじめに ここ最近、NoSQLというキーワードが注目を集めています。 リレーショナルデータベースは、一般的にスケールアウト(サーバの台数を増やして性能向上を図る手法)が難しく、特に大規模サービスにおいてパフォーマンス上のボトルネックとなりえます。また、タグやグラフ構造のようなデータは関係モデルに馴染みにくいため、それらを扱う際にはアプリケーションコードもぎこちないものになりがちです。 これらの問題を背景に、何にでもリレーショナルデータベースを使うのではなく、用途に応じてKVSなど他のデータストアを選択する流れが広まりつつあります。このムーブメントがNoSQL(Not Only SQL)と呼ばれているものです。 今回は、NoSQLなデータベースの1つであるMongoDBをご紹介します。 MongoDBとは MongoDBは高いパフォーマンスとスケーラビリティを特徴とするドキュメント指向型デー

    第31回 RubyistのためのMongoDB入門(1) | gihyo.jp