タグ

saicologicのブックマーク (2,069)

  • 継続的インテグレーション | feedforce Engineers' blog

    ここしばらく公開できる勉強会の資料がなかったので久方ぶりに社内の開発の様子について書いてみます。 今回はXPのプラクティスにも挙げられている継続的インテグレーションについて。 継続的インテグレーションってなんだろう 一応よくまとめられているページを紹介しておきます。 ■ 継続的インテグレーション - オブジェクト倶楽部 要は - バグは早く見つけるほど修正のコストがかからない - そのためにソフトウェアのビルドを頻繁に行うのがよい - ビルドが「成功したビルド」であるか確認するために都度テストを行う - 頻繁に行えるようにビルドとテストをできる限り自動化する という取り組みです。 うちの会社で開発に使っているのは主にスクリプト言語なのでコンパイル等は行わないのですが、ファイルをテスト用サーバに配備して動く状態にすることをビルドと同義に考えます。 とにかくアプリケーションを動かせる状態にする

    継続的インテグレーション | feedforce Engineers' blog
  • classmethod, staticmethod

    「Django(の名前が)カッコイイ!」という事でPythonを始めてみました。 - あくまで個人的に始めたということです - 文中のサンプルコードなどは全てPython2.4で実行しています Pythonはじめました 入門書は『初めてのPython』 ほか、情報源 それでは始めましょう お好みでどうぞ ほかにも ドキュメントを読みましょう 自作モジュールにも使えます 中の事を少し 実装 例えばCPython JIT(Just In Time)コンパイラ フローズンバイナリ それではダイジェストでどうぞ ステートメント 代入ステートメント memo memo ifステートメント whileループとforループ ループ内で利用出来るステートメント forループとイテレータとジェネレータ 全てはオブジェクト 不変性 オブジェクト指向とは関係ありません 関数やクラスを書く順序 ビルトインオブジ

    classmethod, staticmethod
  • memcached | feedforce Engineers' blog

    何? オブジェクトをメモリにキャッシュするデーモン。 動的ページを持つウェブアプリケーションの裏側で動くデータベースへの負荷を軽減させることを目的にデザインされている。 - 公式サイト memcached: a distributed memory object caching system 特徴 オブジェクトをメモリ上にキャッシュ 複数ホスト間でキャッシュ共有可能(リモートからキャッシュにアクセス可能) 各言語用のインタフェースライブラリがそろってます 実績豊富 よくある用途 セッションストア DBへのクエリ結果のキャッシュ アプリケーションレベルのオブジェクト共有(静的インスタンス) セッションストア 複数サーバ間のセッション情報共有 DBを使う方法と比べて負荷がかからなくてうれしい セッションストアとしての問題点 レプリケーションの仕組みがない。 ので、アプリケーションの性質によって

    memcached | feedforce Engineers' blog
  • 超高速HTTPアクセラレータ最新版"Varnish 1.1"登場 | エンタープライズ | マイコミジャーナル

    The Varnish projectは20日(デンマーク時間)、Varnishの最新版となる「Varnish 1.1」を公開した。VarnishはC言語で開発されたHTTPアクセラレータ。FreeBSD 6およびLinux 2.6をメインプラットフォームとして開発されたプロダクトで、Apache 3.0構想においても取り込みが提案されるなど、注目度も高い。仮想メモリシステムやI/O機能などOSの提供している機能をフルに活用することでプロキシよりも高速に動作するという特徴がある。 Varnishは高速処理実装の参照実装としても、コンテンツマネジメントシステム(CMS)におけるアクセスの高速化にも高い効果がある。既存のシステムに導入する際にもあまり手を加える必要がないなど、運用における効果も期待できる。 Varnish 1.1ではVary:サポートの追加、URLおよびヘッダの再書き込み機能、

  • Python decorator

    python のデコレーター構文 @decorate 解り難い @decorate 構文 Python のデコレーターは理解するのが厄介です。Python のデコレーターは syntax sugar の機能と closure の機能の二つを使って関数オブジェクトを修飾する構文です。でも closure の概念がない C/C++Java などの 言語から python も使うようになった者に、三重にネストした関数と @decorator 構文を組み合わせたコード例を使って解説されたのでは脳みそが沸騰するだけです。 私は @decorator を使ったコード例の python virturla machine コードを追跡することで、やっとこさデコレーターを理解しました。私の味わされた苦労を軽減してもらうため、この web page をまとめてみます。 デコレーターを理解した後で考え直し

  • Saqoosha :: YouTube の FLV を抜き出すのが簡単になっている件

    タケシが PHP やらでごにょごにょやっているとかゆっていたので、簡単に取得できる方法を書いとく。 どうやらすでに内部的にも Google とくっついているようで。これまでだとスクレイピングしないとわからなかった FLV のありかが、クライアントサイドだけでわかるようになっております。 http://www.youtube.com/watch?v=2yDSbFe62E4 こんな YouTube の URL があります。これの FLV のありかは、 http://cache.googlevideo.com/get_video?video_id=2yDSbFe62E4 ↑ココです。カンターン。 ・・・ あともうひとつ。外部 FLV で遊ぶときの tips。 ふつう。スクレイピングとかしてひっぱってきた外部 FLV とか、ストリーミングサーバーに置いてあって別のサブドメインとかになっているムービ

    Saqoosha :: YouTube の FLV を抜き出すのが簡単になっている件
  • http://komagata.sakura.ne.jp/wiki/index.php?65536%C7%DC%C2%AE%A4%A4SQL

  • MeCab PHP extension moduleを使ってみた

    3年ぐらい前に欲しいなーと思っていたMeCabのPHPモジュールが最近リリースされたようです。DBから取り出したレコードごとに形態素解析したいときなどはPHPから呼び出せると便利。 » Page2 MeCab extension 手元のマシンはmecabが0.90だったのですがconfigure時にmecab_new2のところでエラー。 configure: error: wrong MeCab library version or lib not found.[mecab-users 86] Re: C ライブラリで “Undefined symbol” となる関数がある 既知の問題だったので最新の0.91をコンパイルし直したらインストールできました。 サンプルのコードはソースの中にもありますがよりシンプルな例を以下に。 <?php dl('mecab.so'); $mecab = me

  • MeCab: Yet Another Part-of-Speech and Morphological Analyzer(形態素解析エンジン)

    MeCab に至るまでの形態素解析器開発の歴史等はこちらをご覧ください メーリングリスト 一般ユーザ向けメーリングリスト 開発者向けメーリングリスト 新着情報 2008-02-03 MeCab 0.97 マルチスレッド環境で辞書を開くときの排他制御がうまくいっていなかったバグの修正 Windows版でインストール時に辞書の文字コードを指定できるようになった 一部のコンパイラで正しくコンパイルできなかった問題の修正 部分解析モードを変更するAPI の追加 (Tagger::set_partial()) ラティスの生成レベルを変更するAPI の追加 (Tagger::set_lattice_level()) 温度パラメータを変更するAPIの追加 (Tagger::set_theta()) 全候補出力モードを変更するAPIの追加 (Tagger::set_all_morphs()) 2007-

  • MeCab extensionを使ってTwitterで流行っているキーワードをクラウド化 - Do You PHP はてブロ

    ほとんどMeCab extension使いたさにあれこれこじつけた感ありありですが。。。 MeCabはオープンソースとして公開されている形態素解析エンジンの1つで、GPLもしくはLGPL/BSDライセンスの下に公開されています。他の形態素解析エンジンとしては、KAKASIやChaSenなどが知られていますね。 http://mecab.sourceforge.net/ で、PHPの拡張モジュールとしてはPage2で公開されているものがあります。 http://page2.xrea.jp/#php_mecab GitHub - rsky/php-mecab: MeCab binding for PHP これを使って、Twitterで流行っているキーワードをクラウド化するコードを書いてみました。なお、CSSはタグクラウドのスタイルを考える - collisions.dotimpac.toを参考

    MeCab extensionを使ってTwitterで流行っているキーワードをクラウド化 - Do You PHP はてブロ
  • きまぐれ日記: AjaxIMEのHTTPサーバは pre-pthread

    C++と Pthreads でミニマルなHTTPサーバを書く にて、ネットワークサーバのさまざまな設計・実装方針がまとめられています。 1. クライアントごとに fork 2. 事前に fork - 各プロセスで accept 3. 事前に fork - ファイルロックで accept を保護 4. 事前に fork - Mutex ロックで accept を保護 (PTHREAD_PROCESS_SHARED) 5. 事前に fork - ソケットディスクリプタパッシング 6. クライアントごとにスレッド生成 7. 事前にスレッド生成 - Mutex ロックで accept を保護 8. 事前にスレッド生成 - メインスレッドで accept AjaxIMEの変換エンジンは自作サーバで運用しているのですが、初期の実装は prefork、 すなわち4番の実装でした。 その後、fork の部

  • Re: MySQL最適化のミニtips - 日向夏特殊応援部隊

    元ネタ: http://labs.unoh.net/2007/07/mysqltips.html あまり具体的じゃないので、僕の考えとか。 正しいかどうかは各自の状況だとか実際試すべきなんだけど、参考になれば。 MyISAM、InnoDBなどテーブルタイプ 僕は断然InnoDB派です。 ただ仰るとおり、ログるだけのテーブルとかならMyISAMでもいいとは思うけど。 トランザクションやロック処理などが必要ない場合など、MyISAM形式にも良いところはあるので検討してみる価値はあるかもしれません。 これだけの指摘だとちょっと微妙な気がするです。 MyISAMの使いどころってのは、 ピンで他とリレーションが無い単純追記系のテーブル リレーションがあり、同一トランザクション内での更新系クエリが存在する場合は、トランザクションが期待通りに動かないので、基的にはInnoDBと混在させるべきではない

    Re: MySQL最適化のミニtips - 日向夏特殊応援部隊
  • ウノウラボ Unoh Labs: PEAR::Net_URL_MapperでURLルーティングを制御する

    miyakeです。 php4のサポート打ち切りが発表されて様々な物議を醸している今日この頃、皆様いかがお過ごしでしょうか。 今日はphpでURLルーティングをしてくれるPEARライブラリ、Net_URL_Mapperをご紹介します。 このNet_URL_Mapperはphp5専用となっており、残念ながらphp4では動作しません。また、公式ドキュメントが英語版すら用意されておらず、Web上にもほとんど資料がなく手探りで使うような状況です。 そんなNet_URL_Mapperですが、個人的にはなかなか重宝しているので、少しでも使う人が増えてくれればいいな、ということで基的な使い方をまとめてみました。 では、早速コードを見てみましょう。 // $path = 'blog/view/123'; $router = Net_URL_Mapper::getInstance(); $router->c

  • 人気のAPI/フレームワークを作るための39カ条

    ある仕様を利用するための網羅性の高いライブラリを用意したいとき 再利用性が高い(と思われる)プログラムをライブラリ化したいとき Webシステムを外部から利用してもらうために一部分を公開したい場合 多人数で開発する事柄で共通化させておきたい部分をまとめたい場合 ほかの言語で作られたアプリケーションをある言語で利用したいときの橋渡し用 ちなみに、JSP/Servletの世界でよく使われているStruts Frameworkは開発者のCraig McClanahan氏が休暇中に思い付いて開発したものだそうです。オレゴン州のビーチで、ラップトップに向かい、3日間の休暇中ずっとコーディングしていたそうです。 一緒に行った奥さんは機嫌が悪かったようですけど。 ここでは、作成したAPIが自分だけではなく、多くの人に使ってもらえるよう、便利に使えるポイント、広く普及するためのポイントをとらえていきましょう

    人気のAPI/フレームワークを作るための39カ条
  • TF-IDF を改めて調査中 - Ceekz Logs (Move to y.ceek.jp)

    ナイーブベイズ分類器のソースコードを整理しているときに、単語データベースを作成しているのだから TF-IDF に基づいて重要単語の抽出も出来るのではないかと思ったわけです。 TF-IDF は情報検索の考え方なので、重要単語の抽出元となる文書は、既に学習済みの文書集合に含まれているという前提から計算されます(たぶん)。ということで、学習されていない場合は DF が 0 になる可能性があるわけで、演算が不可能(ゼロ頻度問題?)。ナイーブベイズを調べたときに知った加算スムージングに似た手法を用いることにしたけど、良いのだろうか…。 TF-IDF の基になっている、索引語の重み付け(term weighting)に関しても調べてみた。 ・局所的重み (local weight) ・大域的重み (global weight) ・文書正規化係数 (document normalization fact

  • MySQLでTF-IDFの計算、あと2つのベクトルの内積の計算 (2006-12-19)

    文を形態素分解し、必要な品詞をtfテーブルとdfテーブルに入れる。分析対象となる文書群すべてについてこの処理を行い、各形態素のTF-IDF値を求めて文書をベクトル化する。他の文書ベクトルと内積を比較し、小さい順に「似ている記事」を求めたい (クラスタリングとかは別途)。 HarmanによるTF値の正規化とSparok JonesによるDF値の正規化をする場合のTF-IDF値の計算式は以下のようになる (参考文献): tfidf(i,j) = log2(freq(i,j) + 1) / log2(NoT) * (log2(N / Dfreq(i)) + 1)

  • 形態素解析と検索APIとTF-IDFでキーワード抽出

    形態素解析と検索APIとTF-IDFでキーワード抽出 2005-10-12-1 [Programming][Algorithm] 形態素解析器と Yahoo! Web 検索 API と TF-IDF を使ってキーワード抽 出するという先日の検索会議でのデモ、KEYAPI[2005-09-30-3]。 教科書に載っているような基中の基ですが、あらためてエッセンスを 簡単な例で解説したいと思います。 目的:キーワード抽出対象テキストから、そのテキストを代表する キーワードを抽出します。TF-IDF という指標を用います。(この値が大 きいほどその単語が代表キーワードっぽいということでよろしく。) TF-IDF を計算するためには、 (1) キーワード抽出対象テキスト中の代表キーワード候補出現数 (TF)、 (2) 全てのドキュメント数 (N)、 (3) 代表キーワード候補が含まれるドキュメ

    形態素解析と検索APIとTF-IDFでキーワード抽出
  • Command Technica:rsyncを使った熟練者レベルのバックアップ (1/3) - ITmedia エンタープライズ

    rsyncを使いこなせば、あなたが想定するバックアップのニーズのほとんどに対応できるようになる。ここでは、あなたをrsyncマスターにするためのポイントを解説する。 この2カ月でわたしはあちこちに出かけた。その間、メインで使っているデスクトップコンピュータは眠ったままだった。もしrsyncを使いこなせていなかったら、きっと厄介なことになっていただろう。しかし、このユーティリティを定期的に使っていたおかげで、すでにわたしのデータ(とにかくその大部分)は別の場所にコピーされていつでも使える状態になっていた。rsyncの習得には少し時間が掛かるが、いったん覚えてしまえば、ごく短いスクリプトを使ってバックアップのニーズのほとんどに対応できるようになるはずだ。 rsync の素晴らしさはどこにあるのか。1つは、毎回ファイルを丸ごとコピーするのではなく、新旧ファイル間の差分をコピーすることでファイル転

    Command Technica:rsyncを使った熟練者レベルのバックアップ (1/3) - ITmedia エンタープライズ
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • JavaScript勉強会のまとめ | Blog hamashun.com

    2007-07-12資料公開をした人の章にリンク追加 2007-07-12 sendさんの章に追記 超長いんでショートカットメニュー作りました。 あと、JavaScriptの素人が書いてます。 あちこち間違ってたらごめんなさい。 マークアッパー・デザイナー向けJavaScript入門 マークアップエンジニアHTMLコーダー向け、Yahoo UI Library活用術 Google Gears入門 JSの使いどころ liveプレゼン 猿でもわかる GreaseMonkey Firebugの話 総括 Twitter関連でお世話になっているukstudioが、初心者向けJavaScript勉強会を主催してくれたので、モリモリ勉強してきました! 会場は株式会社ノッキングオン様に提供して頂きました。 ありがとうございます! 僕は行ってなかったんですけど、モバイル勉強会の時もお世話になったそうです。