タグ

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

  • 第38回 DBIx::Class:拡張性の高さが売りではありますが | gihyo.jp

    国内では微妙な立ち位置に ずいぶん間が空いてしまいましたが、今回はデータベース話の3回目として、DBICことDBIx::Classについてまとめてみます。DBICは、海外ではMooseやCatalystと並ぶモダンPerl界の三種の神器のひとつとしていまも広く宣伝されていますが、国内では、当初こそClass::DBIからの乗り換えを強力に推進する流れが見られたものの、最近ではあまり名前を聞くこともなくなり、むしろDBICからの脱却が潮流になっているかの印象を受けることさえあります。いったい何がどうなっているのか、例によって歴史を追いかけながら見ていきましょう。 もともとはオブジェクトを永続化するためのもの DBICの立ち位置を理解するには、まずはその先駆けとなったClass::DBIがどういうものであったかを理解しておく必要があります。 連載第36回でも紹介したように、マイケル・シュワーン

    第38回 DBIx::Class:拡張性の高さが売りではありますが | gihyo.jp
  • マネタイズとアウトプットを意識する~エンジニアの視点から考えるネットサービス:エンジニアブレークスルー#02レポート | gihyo.jp

    マネタイズとアウトプットを意識する~エンジニアの視点から考えるネットサービス:エンジニアブレークスルー#02レポート エンジニアがどのようにしてブレークスルーしていけるか エンジニアブレークスルーは、その名のとおり「エンジニアがどのようにブレークスルーしていけるか」をテーマに、株式会社ゼロスタートコミュニケーションズ 山崎徳之氏を中心にスタートした活動。10月7日に、スタートアップデイティングの一企画として第1回が開催され、今回初の単独開催として、第2回目開催の運びとなった。今回は二部構成で、一部がパネルディスカッション、二部がパネリストと参加者の交流を兼ねたエンジニア査定大会が実施された。 イベントの企画者でもあり、モデレータを務めた山崎氏。 エンジニアの視点から考えるネットサービス 今回のパネリストは以下の通り。 米林正明 氏(株式会社Abby) 閑歳孝子 氏(株式会社ユーザーローカル

    マネタイズとアウトプットを意識する~エンジニアの視点から考えるネットサービス:エンジニアブレークスルー#02レポート | gihyo.jp
    sugarbabe335
    sugarbabe335 2010/12/21
    受託とサービスの比較の話が面白かった。
  • 第1回 今、位置情報が熱い! | gihyo.jp

    こんにちは。株式会社はてなで位置情報サービス「はてなココ」のディレクターを担当しているはてなの栗栖(id:chris4403)です。今回から数回にわたり、Webサービスで位置情報を取り扱うにあたっての技術的な解説(位置情報の取得の仕方、保存の方法、表示の方法など)をしていきたいと思います。 連載の内容を一通り理解すると、位置情報サービスが実装できるようになっているところを目指します。連載の中では、実際に運営している位置情報サービス「はてなココ」での、具体的な事例も紹介していきます。 位置情報サービスって何? 第1回目の今回は、そもそも「⁠『⁠位置情報サービス』って何?」「⁠それおもしろいの?」という方のために、「⁠位置情報サービスとは何か」そして「なぜ今位置情報サービスが熱いのか」について解説します。 まず最初に、連載での「位置情報サービス」という言葉を「ユーザーの位置情報をWebサーバ

    第1回 今、位置情報が熱い! | gihyo.jp
    sugarbabe335
    sugarbabe335 2010/10/06
    普通の人も位置情報記録するのって面白いの?
  • 第3回 DBIx::Classでデータベース操作(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回はカヤックの村瀬大輔さんで、テーマはDBIx::Classです。 DBIx::Classとは DBIx::ClassはPerlのO/Rマッピングモジュールです。O/Rマッピング(Object/Relational Mapping、以下ORM)とは、オブジェクト指向言語におけるオブジェクトとリレーショナルデータベースを紐づけるしくみのことで、ORMを使用するとユーザは直感的なオブジェクト操作によってデータベースを操作できるようになります。 DBIx::ClassはPerlORMとしては現在世界で一番使われているモジュールです。日では最近データベース操作モジュールとしてより軽量なDBIx::SkinnyやData::Modelなどの注目が高まってきていますが、機能的に枯れている点や豊富にテストされている点でDBIx::Cl

    第3回 DBIx::Classでデータベース操作(1) | gihyo.jp
    sugarbabe335
    sugarbabe335 2010/10/02
    web+dbと同じ内容なのかな?
  • 第43回 Rails 3を支える名脇役たち その1 - Arel - | gihyo.jp

    はじめに Ruby on Railsの2年半ぶりのメジャーバージョンアップである3.0の正式リリースがいよいよ間近に迫ってきました。 Rails 3は、アプリケーション・レベルではRails 2.3との互換性をなるべく保ちながらも、メジャーバージョンアップだけあってフレームワーク自体は隅々にまで徹底的なリファクタリングが施されて更なる洗練を遂げています。結果として、Rails 3では融通の効かないフルスタック構造を捨ててすっきりとしたモジュール独立性が実現されているのですが、この際に、Merbとの合併の影響もあってか、いくつかの新たな外部ライブラリに依存する形になっているのも興味深いところです。 そこで稿では、あえてRails 3そのものではなく、このRails 3の大改造の舞台裏を支える裏方さんにスポットライトを当ててみたいと思います。 Arelによってパラダイムが大きく変わったAct

    第43回 Rails 3を支える名脇役たち その1 - Arel - | gihyo.jp
  • 第3回 ベイジアンフィルタを実装してみよう | gihyo.jp

    さらに詳細な利用方法が知りたい方は、Yahoo!デベロッパーズネットワークのマニュアルを参照してください。 ベイジアンフィルタの実装 ここから格的にベイジアンフィルタの実装に入っていきます。 その前に、まずは先程のリスト1のコードを利用して入力された文章をわかち書きし、単語の集合を返す関数を作成しnaivebayes.pyとして保存しましょう。こちらも先程のmorphological.pyと同様にutf-8で保存してください。 リスト2 文章の分割をする関数(naivebayes.py) # -*- coding: utf-8 -*- import math import sys #yahoo!形態素解析 import morphological def getwords(doc): words = [s.lower() for s in morphological.split(doc)

    第3回 ベイジアンフィルタを実装してみよう | gihyo.jp
  • 第1回 memcachedの起動オプションを把握しよう | gihyo.jp

    1.4系で新しく追加された主な機能しては バイナリプロトコルの導入 マルチスレッドの標準化 統計の強化 などが上げられます。この1.4系の機能の詳細については前坂徹氏の連載「memcached 1.4の到来」が参考となります。ここではバージョン1.2.5と最新の1.4.5の起動オプションを比較しながら、新しく追加された機能や実際の運用で用いられる起動オプションについて説明します。 1.2系と1.4系の起動オプションの違い まず、memcachedの起動オプションの一覧(ヘルプ)を確認しましょう。memcachedのヘルプを出力するには、「⁠-h」オプションを使います。 $ memcached -h memcached 1.x.x -p <num> TCP port number to listen on (default: 11211) -U <num> UDP port number t

    第1回 memcachedの起動オプションを把握しよう | gihyo.jp
  • 第32回 Encode:日本語だけ扱えればよいのではなく | gihyo.jp

    一般的には推奨されないencodingプラグマ 前回取り上げたencodingプラグマは、簡単なjperl用のスクリプトを移植したい場合には便利ですが、perlunifaqというPerl付属のマニュアルにははっきり「Don't use it.」と書いてあるくらい、一般的には使えないプラグマと認識されています。 前回も見たように、encodingプラグマが対応しているのは、ソースコードに埋め込まれている文字列やそれに類する正規表現、そして標準入力からのデータを指定された文字コードからPerlの内部表現に変換し、標準出力へ出力する際には内部表現を指定された文字コードに変換することだけです。ほかのファイル入出力部分や、コマンドラインから受け取った引数、標準エラー出力などの変換は行わないので、ちょっと凝ったことをしようと思うと、結局「外から入ってきたものはデコード、外に出すものはエンコード」という

    第32回 Encode:日本語だけ扱えればよいのではなく | gihyo.jp
  • WEB+DB PRESS Vol.56

    2010年4月24日紙版発売 2014年12月23日電子版発売 B5判/200ページ 定価1,628円(体1,480円+税10%) ISBN 978-4-7741-4210-4 ただいま弊社在庫はございません。 Amazon 楽天ブックス ヨドバシ.com Fujisan(定期購読のみ) 電子版 Gihyo Digital Publishing honto 書のサポートページサンプルファイルのダウンロードや正誤表など 特集1 10年後も役立つ習慣を身につける! コーディングの基礎知識 仕事でコードを書くようになると,「どんな処理をしているのかがわかりやすい」「保守,機能追加が簡単」など,チームでの作業やコードを長くメンテナンスすることを視野に入れたコーディングが必要になります。社会人一年目の今,コードの書き方や考え方に関して良い習慣を身につけておけば,これからのプログラマ生活のさまざま

    WEB+DB PRESS Vol.56
  • 第4回 JSDeferredを使いJSアプリのパフォーマンスを最適化する | gihyo.jp

    前回まででJSDeferredの基的な使いかたを説明しました。 今回は「非同期処理を簡単にする」から一歩進んで、既存アプリケーションの「非同期処理でパフォーマンス改善する」ことや、その他応用できる部分について説明します。 UIスレッド JavaScriptが担当するアプリケーションユーザインターフェイスの「はやさ」とはなんでしょうか? 単純に、最速で処理が終わることというのも一つですが、それを含めて最も重要なのは、ユーザにストレスを与えないことでしょう。多少実行速度が遅くても大抵待っていられますが、インターフェイスがなんの反応もしないと大きなストレスになります。 JavaScriptを実行するブラウザには、UIスレッドを呼ばれる、システム入出力を処理する流れがあります。JavaScriptは、その性質上どうしてもUIスレッド上で動かす必要があります(JavaScriptを実行中にページの

    第4回 JSDeferredを使いJSアプリのパフォーマンスを最適化する | gihyo.jp
  • 第28回 RubyとHadoopで分散処理 Hadoop Streamingの仕組み | gihyo.jp

    はじめに Hadoopとは、Googleの基盤技術であるMapReduceをJavaでオープンソース実装したもので、分散処理のフレームワークです。Hadoopを使うと、1台のサーバでは時間の掛かるような処理を、複数のサーバで分散処理させることができます。「⁠処理を割り振ったサーバが壊れた場合どうするか」などの耐障害性の問題もHadoopが管理してくれるため、利用者は処理のアルゴリズムのみに集中することができるのです。素晴らしいですね。最近ではYahoo!はてななど、様々な企業でも利用されるようになってきています。 Hadoop導入の背景 筆者はクックパッド株式会社に勤めています。open('http://cookpad.com'); return false;">クックパッドというサイトが有名だと思いますが、他にも携帯版クックパッドであるopen('http://m.cookpad.co

    第28回 RubyとHadoopで分散処理 Hadoop Streamingの仕組み | gihyo.jp
  • 第3回 JSDeferredを用いたアプリケーション開発(その2) | gihyo.jp

    前回に引き続き、Wikipediaから緯度経度を取得しGoogle Maps上にプロットするアプリケーションを作っていきます。 今回は透過的なキャッシュの仕組みを入れるのと、geolocation APIを用いて、データのロードが終わり次第自分の近くのマーカーを表示させてみたいと思います。 完成コードは以下のようになります。 今回作成するサンプル(完成品) 透過的なキャッシュ キャッシュのための領域として、localStorageというものを使います。これはFirefoxやSafariなどで実装済みの、簡単にいってしまえば大容量のCookieみたいなものです。 localStorageは同期的に値を取得やセットをできますが、キャッシュするデータはXMLHttpRequestで取得される非同期なデータです。この二つの条件分けを最小限にして実装するために、JSDeferredを間に挟むことにし

    第3回 JSDeferredを用いたアプリケーション開発(その2) | gihyo.jp
  • 第2回 JSDeferredを用いたアプリケーション開発(その1) | gihyo.jp

    JSDeferredの基的な読みかた JSDeferredを使ったコードを読むときには、next() という関数がキーになっています。 リスト1 // next() のチェイン Deferred.next(function () { // 最初の next は Deferred.next alert(1); }). next(function () { // これは Deferred.prototype.next alert(2); }). next(function () { alert(3); }); 前回すこしばかり例を出しましたが、このように next を繋げていくことで処理の流れを表現します。 Deferred.next() と Deferred オブジェクトのメソッドとしての next() があることに注意してください。Deferred オブジェクトのメソッドとしての nex

    第2回 JSDeferredを用いたアプリケーション開発(その1) | gihyo.jp
  • 「FITC Tokyo 2009」詳細レポート:#3 Mario Klingemann氏「Connectiong the Dots」数学とアートの共通点|gihyo.jp … 技術評論社

    11月28日、ベルサール汐留にて、FITC Tokyo 2009が開催された。以下は、Mario Klingemann氏のセッションのレポート。 Mario Klingemann氏「Connectiong the Dots」 Quasimondoの愛称と、特徴的な 角の生えた"Q"のマークで有名なMario Klingemann(マリオ・クリンゲマン)氏は、氏自身の作品が芸術展に出品されるなど、国際的に評価されるネットアートの代表者として名高い。 写真1 Mario Klingemann氏 「在学中数学は好きでしたか?」とマリオ氏が問いかけると、会場から思いのほか手が上がったのか、おどろいた様子で「Oh My God!」と叫んだ。マリオ氏曰く、普通はNoと答えるのが98.2%で残りの0.2%が好きとのことで、氏自身も在学中には「実際の生活には全く役に立たないもの」と思っていたという。しかし

    「FITC Tokyo 2009」詳細レポート:#3 Mario Klingemann氏「Connectiong the Dots」数学とアートの共通点|gihyo.jp … 技術評論社
  • 第1回 JSDeferredによる簡単非同期処理 | gihyo.jp

    どうもはじめまして、株式会社はてなのid:cho45です。これから数回に渡り、拙作のJavaScriptのライブラリであるJSDeferredの紹介と、それに関係するJavaScriptにおける非同期の技術に関して解説させていただきます。 JavaSciptにおける非同期処理 非同期処理とは まずは確認程度に、非同期処理がどういうものかを解説しておきます。先に乱暴にまとめてしまうと、以下の事柄が大切なところです。 非同期とは「あとで」という意味 同期処理はコードの見た目順に実行される/非同期ではそうならない JavaScript の非同期処理は絶対に同期処理にすることができない JavaScriptにおける非同期処理をいくつか例に出すと、以下のようなものが挙げられます。 リスト1 // XMLHttpRequest の例 var req = new XMLHttpRequest(); re

    第1回 JSDeferredによる簡単非同期処理 | gihyo.jp
  • 第25回 Rackとは何か(3)ミドルウェアのすすめ | gihyo.jp

    前回、前々回の記事では、Rackの生まれた背景、Rackとは何か、実際にRackアプリケーションを作る際に使えるものをご紹介しましたが、もう一つまだ説明していない重要な要素がRackにはあります。今回は、そのミドルウェアという仕組みについてご紹介します。 ミドルウェアとは ミドルウェアとは何かを一言で言うと、「⁠別なアプリケーションをラップして、リクエストやレスポンスを加工したり、処理を切り換えたりするRackアプリケーション」です。 この仕組みがあることで一体何ができるのでしょうか。Webアプリケーションを作っていると、リクエストやレスポンスをアプリケーションに行く前やアプリケーションの処理の後に加工したくなることはよくあります。例えば、条件に応じてURLの書き換えをしたり、エンコーディングの変換をしたり、Cookieの処理をしたり…といったことが日常茶飯事です。こういう処理を、サーバと

    第25回 Rackとは何か(3)ミドルウェアのすすめ | gihyo.jp
  • 第24回 Rackとは何か(2)Rackの使い方 | gihyo.jp

    前回の記事では、Rackとは何かについてを、Rackが生まれた背景を交えてご紹介しました。今回は、Rackを実際に使ってみるにはどうすればいいのかを実際に作りながら解説します。 rackupとRack::Builder 前回の記事の最後で、アプリケーションの他にconfig.ruというファイルを用意し、rackupといういうコマンドを使ってアプリケーションを起動しましたが、これについてもう少し詳しく説明したいと思います。 実は、単にRackアプリケーションを起動するためだけであれば、config.ru(rackupファイルと呼びます。拡張子のruはおそらくrackupの略でしょう)は必要ありません。Rackの入門記事等で目にしたことのある方もいるかもしれませんが、以下のようなコードをファイルの末尾に書き加えるとsimple_app.rb単体でアプリケーションを起動することができます。 if

    第24回 Rackとは何か(2)Rackの使い方 | gihyo.jp
  • 第23回 Rackとは何か(1)Rackの生まれた背景 | gihyo.jp

    はじめに SinatraやRamazeといったRubyのWebアプケーションフレームワークに興味をお持ちの方であれば、Rackという名前をしばしば目にしているかもしれません。どうやら様々なフレームワークに使われているらしいのだけど、そいつが一体なんなのかよくわからない、そんなあなたのために今日はそのRackをご紹介したいと思います。 様々なフレームワーク、様々なアプリケーションサーバ しばらく前なら、Ruby on Railsブームの真っ只中、Rubyと言えばRails、Webアプリケーションを作るならRails、といったイメージを持たれていた方も多かったと思います。実際にWebアプリケーションを作ったり、Rubyに触れたりしたきっかけがRailsだったという方も多いでしょう。 しかし最近は、RubyのWebアプケーションフレームワークと一口に言っても、非常に簡単にアプリケーションが書けて

    第23回 Rackとは何か(1)Rackの生まれた背景 | gihyo.jp
  • 第1回 zshで広がる世界 | gihyo.jp

    zshはシェルである。シェルはもちろんキーボード入力されたコマンド行を解釈し、必要なコマンドを必要な引数とともに起動することを主な仕事とするソフトウェアである。単なるシェルなのだが、zshには他を圧到する比類なき機能がある。その一端を印象づける一つの例に、zshで実装されたテトリスがある(図1⁠)⁠。 もちろんこれは、お遊び機能の例で実際の日常作業をこれで進めるわけではないが、潜在的に備えている機能がどれほどのものかが分かる好例である。 zshは、sh(Bourne Shell)をベースとし、ksh、csh(tcsh⁠)⁠、bashの優れた機能をアイデアとして取り込み、なおかつ作業効率を高める独自の機能を登載したまさに至高のシェルである。しかしながら超高機能・多機能であるがゆえに全容を掴むのが難しい。付属の英文マニュアルはしっかりしているものの、簡潔な仕様記述がされているのみなので具体的な

    第1回 zshで広がる世界 | gihyo.jp
  • ついに出た!最新Perlフレームワーク「Ark」徹底解剖:第1回 Arkって何だ? -Ark が生まれるまで|gihyo.jp ... 技術評論社

    はじめまして。面白法人カヤックの村瀬と申します。ArkというWebアプリケーション作成用のフレームワークを開発しました。今回から4回にわたって、このリリースしたばかりの「Ark」について紹介させていただきます。 Ark(アーク)とは Arkは、Perlで作られたWebアプリケーションフレームワーク(WAF)です。 Arkの特徴としては Catalystに似たインターフェース CGI/FCGI/mod_perlなどさまざまな環境で実用的に動作する CGI用モードの存在 日製であり、日語ドキュメントが充実している などが挙げられます。 Catalystに似たインターフェース Catalystは、Arkと同様にPerl製のWebアプリケーションフレームワークで、現在、Perlのフレームワークでは標準となりつつあるものです。 Arkは開発動機の1つが「CGIでも実用的に動作するCatalyst

    ついに出た!最新Perlフレームワーク「Ark」徹底解剖:第1回 Arkって何だ? -Ark が生まれるまで|gihyo.jp ... 技術評論社