タグ

programmingに関するtomityのブックマーク (52)

  • スペル修正プログラムはどう書くか

    Peter Norvig / 青木靖 訳 先週、2人の友人(ディーンとビル)がそれぞれ別個にGoogleが極めて早く正確にスペル修正できるのには驚くばかりだと私に言った。たとえば speling のような語でGoogleを検索すると、0.1秒くらいで答えが返ってきて、もしかして: spelling じゃないかと言ってくる(YahooMicrosoftのものにも同様の機能がある)。ディーンとビルが高い実績を持ったエンジニアであり数学者であることを思えば、スペル修正のような統計的言語処理についてもっと知っていて良さそうなものなのにと私は驚いた。しかし彼らは知らなかった。よく考えてみれば、 別に彼らが知っているべき理由はないのだった。 間違っていたのは彼らの知識ではなく、私の仮定の方だ。 このことについてちゃんとした説明を書いておけば、彼らばかりでなく多くの人に有益かもしれない。Google

  • MacPortsでステキなUNIXツールをインストール - はこべにっき#

    2011/5/22追記: 最近のオススメは、homebrewです。ぼくもいまはhomebrew使ってます。 先日、研究室にあたらしいMac Book Pro 17"が届いた。各種操作がいちいちキビキビ動いて快適すぎる。 このMacにも、うち的最重要MacアプリケーションのひとつであるMacPortsをインストールした。 MacPortsはFreeBSDのportsというパッケージ管理システムと似たようなことを、Mac OS Xでも行うためのソフトウェアだ。有名なコマンドラインツールはほとんどこれを使えば揃えることができる*1。うちが普段使っている、perlvimもzshもscreenも全部MacPortsでインストールしたもの。 Macでライブラリやツールがなくて困ったときはとりあえず、MacPortsに聞いておけばなんとかなることも多い(例: pygameってMac OS Xで動くんだ

    MacPortsでステキなUNIXツールをインストール - はこべにっき#
  • 未来の言語は「APL」? Rubyのまつもと氏が講演 - @IT

    2009/02/13 「今日はRubyの話はしません」。プログラミング言語「Ruby」の生みの親で開発コアメンバーでもある、まつもとゆきひろ氏は冒頭でそう話すと、自身のプログラミング経歴や半世紀に及ぶプログラミング言語の歴史を外観しつつ、未来のプログラミング言語へ向けた構想について語った。 書籍だけでPascalを習得した高校生 2009年2月12日、翔泳社主催で東京・目黒で行われた「Developers Summit 2009」でまつもと氏は「未来へつながる言語~ある言語おたくの視点から」と題した講演を行った。立ち見が出るほど詰めかけた観衆に向かって、“最も有名なプログラミング言語オタク”として自身のプログラミング言語観を披露した。 1980年代の高校生時代からプログラミング言語が好きだったというまつもと氏だが、一番最初に使った言語はBASICだったという。ところが、ローカル変数や構造化

  • 分散バージョン管理システムGitの使い方入門 | OSDN Magazine

    バージョン管理システムと言うとSubversionやCVSが有名だが、近年急速にユーザーを増やしているバージョン管理システムに「Git」 がある。GitLinuxカーネルの開発リーダーとして知られるLinus Torvalds氏が中心となって、Linuxカーネルの開発に使用する目的で開発した分散型バージョン管理システムである。2005年に開発が開始されて以来さまざまなプロジェクトでの採用が進み、現在ではPerl 5やRuby on RailsAndroid、Wine、X.orgなど、有名な大規模プロジェクトで採用されるに至っている。 記事では、このGitを使用するのに必要な「分散型バージョン管理システム」の基的な考え方を紹介するとともに、Gitの導入方法や基的なGitの使い方について解説する。 分散バージョン管理システムとは? GitLinuxカーネル開発で用いられることを前提

    分散バージョン管理システムGitの使い方入門 | OSDN Magazine
  • 今日の井原 - 都内某社で開催されたクローラ勉強会のスライドを公開します。

    技術書あげます えろい画像だけモザイク [読書]けなす技術 CatchPhraser(きゃっちふれいざー): スニペットとしてキャッチコピーを表示するblog検索エンジン AdWords appears everywhere! Cマガジン休刊 「オープンソースの全文検索エンジンの速度性能比較」のご紹介 日経コンピュータ誌の特集「IT関連学会の憂」を読んだ googleの新卒採用説明会に申し込んでみたよ [memo]OpenCVの顔認識機能を使う 自分自身をブックマーク Newzingo: tagをベースにGoogle Newsを閲覧するインタフェース Google Tip: "(ダブルクォーテーション)は閉じなくてもOK リンク見出し是非裁判の件 脅かされる人認証

  • 従来のソフトウェア工学が決定的に間違っている点 - kなんとかの日記

    従来のソフトウェア工学は、属人性を排除して開発者の能力を均一化しようとしている。この点に置いて、従来のソフトウェア工学は決定的に間違っている。 ソフトウェア開発では、個人の生産性は上と下とで 30 倍違うと言われる。これが当だと仮定したら、これだけ差がでるものを均一化なんてできるわけない (したところで間違った結論しかでない) んだから、属人性を排除することは大きな誤りである。 仕事が高度になればなるほど、属人性は排除できないし、人材の替えはきかない。問題を解決できない人間を100人集めても、問題は解決できない。問題を解決できるのは、問題を解決できる能力を持った人間だけ。頭の悪い大人100人より、すごく頭のいい小学生1人のほうが、成果物が出る。ソフトウェア開発はそういう類いの仕事。 よく、ソフトウェア開発を工場での作業に例える人がいるけど、これも「属人性を排除できる」という勘違いからもた

    従来のソフトウェア工学が決定的に間違っている点 - kなんとかの日記
  • ネットワークプログラミングの基礎知識

    ネットワークプログラミングの基礎知識 ここでは IP アドレスやポート番号、クライアントとサーバの役割などを説明し、 perl・C言語・Java などでソケット (Socket) を使った HTTP クライアントや POP3 クライアント、簡単なサーバを作成してみます。 要はネットワークプログラミングをやってみよう、ということです。 このページのサンプルプログラムは、RFC などの規格に準拠した「正しい」プログラムではありません。 また、全体的にエラー処理が不十分です (今後改善する予定です)。 あくまでも概要を理解するためのサンプルととらえてください。 もし気でしっかりとしたクライアントやサーバを書きたいなら、このページを読んだ上で、 さらに RFC を熟読し、そして wget・Apache・ftp コマンドなどのソースを参考にしてください。 このページに間違いを見付けたら、掲示板

  • Tokyo Cabinet

    Tokyo Cabinet is the successor of QDBM, a high performance database library similar to the DBM family. It also supports hash and B-tree databases and does not require any server process. The overall speed is improved compared to QDBM.

  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

  • MOONGIFT: » タイトル・本文抽出クローラー「Webstemmer」:オープンソースを毎日紹介

    これはやばい!凄すぎる。 現在進めようと思っているプロジェクトでは、サイト上の文抽出が重要な技術になっていた。だが、それを一から開発していたのではあまりに時間がかかってしまう。さらに重要な技術ではあるが、それが売りと言う訳ではなかった。 そこで見つけたのがこのソフトウェアだ。まさに理想的な方法かも知れない。 今回紹介するオープンソース・ソフトウェアはWebstemmer、タイトル・文抽出クローラーだ。 WebstemmerはPythonで作られたクローラーで、Webクローラー/レイアウト分析/テキスト抽出/URL DB操作/簡易的なテキスト抽出の5つの機能が提供されている。 動作原理については公式サイトを参考にして欲しいが、個人的にも考えていた(考えていただけ)方法に近い。学習時間が長いのが難点だが、複数台のPCで分散化できれば問題なくなるだろう。 特徴的なのは、特定の言語に左右される

    MOONGIFT: » タイトル・本文抽出クローラー「Webstemmer」:オープンソースを毎日紹介
  • IT 勉強会カレンダー

    IT 勉強会カレンダー

  • 金子勇@SkeedCastは、根っからのプログラマ!|【Tech総研】

    いえいえ、即日プログラミングです。ゲーム好きの友人がいて、企画書とビットマップのキャラクターをもってきて「ゲームを作ってくれ」というんですね。電気屋さんはお店の宣伝になるからと「開発」を認めてくれていましたから、BASAICでプログラムを組んで、デモして、できたゲームで遊ぶと。これを一日でしていました。 ですからソフトは保存していなかったのですが、プログラマって自分の書いたコードは覚えているものじゃないですか。同じゲームは別の日でも作れましたし、少しずつ違って別のゲームができたりするのも面白かったり。中学に入るとポケコンでの開発が中心になり、授業中にポコケンでずっとプログラミングをしていたのですが、ハードが非力なのでアセンブラで組んで、それでも遅い(笑)。 こんなことを続けていたせいか、中学時代に「プログラミングを極めた」感じがしてしまいました。疲れるから仕事にはしたくないと思いましたが、

  • Introduction to Information Retrieval

    This is the companion website for the following book. Christopher D. Manning, Prabhakar Raghavan and Hinrich Schütze, Introduction to Information Retrieval, Cambridge University Press. 2008. You can order this book at CUP, at your local bookstore or on the internet. The best search term to use is the ISBN: 0521865719. The book aims to provide a modern approach to information retrieval from a co

    tomity
    tomity 2008/12/06
    pdf html 12 Language models for information retrieval pdf html 13 Text classification & Naive Bayes pdf html 14 Vector space classification pdf html 15 Support vector machines & machine learning on documents pdf html 16 Flat clustering pdf html html 17 Hierarchical clustering pdf html 18 Matrix deco
  • 中途半端に優秀なプログラマが「正しいプログラミングテクニック」だと妄信しがちな3つポイント - 分裂勘違い君劇場

    「変数のスコープは狭いほど良い」と妄信する 変数でもメソッド名でもクラス名でも言えることだが、単純に「スコープは狭いほどよい」という方針でプログラムすると、逆に保守性も可読性も悪いプログラムができあがることがけっこうある*1。 実際、「あちこちから頻繁にアクセスするようなオブジェクトやメソッド」は、スコープをぐっと広くしてしまった方が(場合によってはグローバル変数やグローバル関数にしてしまった方が)、いちいちパラメータ渡しのバケツリレーをせずに、オブジェクトや機能を使うことができ、プログラムの可読性も保守性もずっと向上することがけっこうある。 たとえば、プログラムのいろいろな箇所から比較的頻繁にアクセスする必要があるようなオブジェクトや機能がバインド(格納)された変数やメソッドのスコープをクラスやメソッド内のローカルにして、それを使うときは、いちいち各クラスやメソッドにパラメータ渡しのチェ

    中途半端に優秀なプログラマが「正しいプログラミングテクニック」だと妄信しがちな3つポイント - 分裂勘違い君劇場
  • ブログが続かないわけ | ログイン処理が簡単と言い切れるか 〜 フィッシング対策も忘れずに

    ブログが続かないわけ | ログイン処理が簡単と言い切れるか 〜 フィッシング対策も忘れずに
  • MeCab の辞書構造と汎用テキスト変換ツールとしての利用

    $Id: dic-detail.html 161 2008-02-03 09:58:46Z taku-ku $; 概要 単語辞書の構造を理解することで, MeCab を汎用的なテキスト変換ツールとして利用することができます. 例えば, ひらがな to カタカナ変換, ローマ字 to ひらがな変換, Auto Link等を MeCab だけで実行できます ファイル 単語辞書を構築するには, 最低以下のファイルを作成する必要があります. *.csv ファイル (単語辞書) matrix.def (連接表) unk.def (未知語用品詞定義) char.def (未知語の文字定義) dicrc (設定ファイル) *.csv ファイル 単語辞書です エントリは, 以下のような CSV で追加します. test,1223,1223,6058,foo,bar,baz 最初の4つは必須エントリで,

  • 大学で身につけるべきは技能より教養だろ - 雑種路線でいこう

    上野で飲みながら小耳に挟んだだけなので確かめた訳じゃないけど、いまどき郷でさえCのポインタを理解できない学生がいたり、やれRubyだAJAXだと騒いでいるらしい。いやRubyは素晴らしい言語だし、ちゃらけた文系学生にプログラミングのイロハを教えるには最高だけどさ。 僕も断乎、教育にはJavaやC#よりPythonRubyを推す。しかし郷で騒ぐことじゃないだろ。Rubyを覚えたってRubyのように革新的な何かをつくれるようになる訳じゃなし。別にRailsやAJAXを齧るのは勝手だけど、きっと5年後には誰も話題にしなくなってる。空気のように普及してPHPのように時給数百円までコモディティ化するか、もっとクールなフレームワークが登場しているか、どっちにしても専門学校や職業訓練校で教えれば済むことだ。少なくとも郷が血眼になって取り組むことじゃなくて、藤沢あたりに今も棲息している起業家予備軍

    大学で身につけるべきは技能より教養だろ - 雑種路線でいこう
  • Rubyソースコード完全解説 / 青木峰郎

    $Id: index.html,v 1.6 2004/07/20 23:08:12 aamine Exp $ この文書は書籍『Rubyソースコード完全解説』のHTML版です。 ただし初校段階の原稿をベースにしているため、 書籍では修正されている間違いが残っている場合があります。 予め御了承ください。 2004-02-16 に全章を公開しました。 目次 まえがき 序章 第 1 部「オブジェクト」 第 1 章「Ruby言語ミニマム」 第 2 章「オブジェクト」 第 3 章「名前と名前表」 第 4 章「クラス」 第 5 章「ガーベージコレクション」 第 6 章「変数と定数」 第 7 章「セキュリティ」 第 2 部「構文解析」 第 8 章「Ruby言語の詳細」 第 9 章「速習yacc」 第 10 章「パーサ」 第 11 章「状態付きスキャナ」 第 12 章「構文木の構築」 第 3 部「評価」 第

  • ガベージコレクションの実装法と評価

    1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい

  • Introduction to Prolog (in Japanese)

    Prolog の概要 PROgramming in LOGic (論理プログラミング)の省略. AI 用言語 (AI プログラムの記述・開発に適している言語)の一種. 1974 年に仏国の Colmerauer らにより開発された. 通産省の第五世代コンピュータプロジェクトの核言語として採用された. Prolog の特徴 記号処理言語,リスト処理言語: データとして,記号(シンボル)を取り扱うことができる. また,リストと呼ばれる可変長のデータの列を取り扱うことができる. 論理型言語: Prolog では新たな述語を論理式で定義することによってプログラムを 作り上げていく. すなわち, Prolog のプログラムは論理式の集まりである. Prolog や LISP は, FORTRAN や BASIC などの手続き型言語とは異なり, 非手続き型言語と呼ばれる. 対話的使用,会話的使用: P