プログラマでありたい

おっさんになっても、プログラマでありつづけたい

プログラム

PythonのIDE(開発環境)を色々試してみる

Python数日目の初心者です。Google AppEngineのチュートリアルに沿ってコーディングしていますが、そろそろVimオンリーで開発するのが辛くなってきました。Pythonのコーディングで純粋なVimだと何が辛いかというと、インデントが解りづらいところです。Pytho…

始まりはいつもHello World ~google app engine for python編

環境設定が終わった所で、お決まりのHello Worldです。 Googleのチュートリアル通りにすれば、基本的に詰まることは少ないでしょう。 まずは、ディレクトリの作成。 helloworld その直下にhelloworld.pyを作ります。 print 'Content-Type: text/plain' print…

Snow LepordにGoogle App Engine用のpythonをインストール

MacBook Air Snow LepordでGoogle App Engineを使う為の準備です。 スタート ガイド: Python - Google App Engine - Google Codeの通りに準備をしていけば、特に問題ないです。Google AppEngineに必要なのは、Python2.5とApp Engine ソフトウェア開発キット…

いい歳して、Pythonに挑戦してみる

私は30歳をとっくに越えたエンジニアですが、世の中の動きに逆らいきれずPythonを覚えようと思いました。正確に言うとPythonを使いたいのではなく、Google App Engineを使いたいだけなんですけどね。1年以上前にGAE/Jの使い方をある程度覚えましたが、も…

オープンソースのRubyのWebクローラー"Anemone"を使ってみる

Webサイトの調査をしようと思い、サイトクローラーが必要になりました。 各言語ごとに色々あるので何を使うか悩むところですが、Rubyでお手軽にということでAnemoneを採用しました。 ちなみに他の言語だと、下記のうちのどれかが良いのではないでしょうか? …

Gemのリポジトリの追加と削除

Amazon EC2ではもっぱらRightScaleが提供するCentOSを使っています。特に癖もなく使いやすく満足です。1点不満があるとすれば、デフォルトで設定されているRubyのGemのリポジトリサーバが遅くて、Rubyのモジュールインストールに時間が掛かることくらいです…

Railsのaction cache(アクション キャッシュ)を使ってみる

とあるRailsで構築しているサイトでパフォーマンス改善をしたくて、キャッシュ機構の導入を検討しました。キャッシュ機構は色々なポイントがありますが、ざっくり分類すれば言って下記の3点でしょう。 1.Webサーバ側によるコンテンツキャッシュ 2.アプ…

cassandraのkeyの一覧を取得したい

cassandraインストール時についてくるCUIベースのツールcassandra-cliでは、データ操作はget,set,delしか出来ません。getはkeyを元に取得するので、そもそもkeyが解っていないと全くデータはとれません。となると、keyの一覧が欲しくなる時があると思います…

Twitter Streaming APIのJSONの構造

Twitter Streaming APIで、sampleから返ってくるjsonの値。 ぱっと見たらよく解らなかったので、メモがてらにエントリー。 % curl http://stream.twitter.com/1/statuses/sample.json -uYOUR_TWITTER_USERNAME:YOUR_PASSWORD {"coordinates"=>nil, "created_…

RubyとCassandraの連携のサンプルプログラム

先日インストールしたCassandraを、Rubyから使ってみようと思います。 gemで用意されているのかなと期待したら、やっぱりありました。幸せ インストール # gem install cassandra 中略 Installing RDoc documentation for thrift_client-0.4.2... Installing…

Googleのページランクを取得するスクリプト。或は人類のハッキング気質について

何気に検索していたら、Googleのページランクを取得するというモジュールが多数存在するようです。 ソースを見ていたら、所定のページから値を取得してきて、特定の数字で割ってランクを出しているようです。 所謂マジックナンバーを割り出しているのです。…

JRubyで"Task not supported by 'jdbc'"と出たら

Netbeans+JRubyで開発環境を作ったのですが、RSpecでテストしようとしたら、下記のようなエラーがでました。 rake aborted! Task not supported by 'jdbc' 言われた通り、jdbcに対するTaskがないのが問題のようです。 回避策は、$JRUBY_HOME\lib\ruby\gems\1…

JRubyでruby-debug-baseとruby-debug-ideをインストールする方法

jruby環境でgem install ruby-debug-baseとすると下記のようなエラーが出てくると思います。 Building native extensions. This could take a while... WARNING: JRuby does not support native extensions or the `mkmf' library. Check wiki.jruby.org for…

RubyでTwitter Streaming APIを使ってみる

何かTwitterを使ったサービスを作ってみたくて、時間が空いている時にTwitterの仕様を眺めています。 TwitterはAPIが充実していて、非常に開発者フレンドリーです。 ただAPIの使用については回数制限などある程度の制約があるので、目的に沿って使う必要があ…

5分で作るTwitterクライアント

rubyのtwitterモジュールないかなと思ったら、やっぱりありました。 基本的な使い方は果てしなく簡単です。 まずは下準備。 gemでtwitterとoauthをインストール。 $ sudo gem install oauth Successfully installed ruby-hmac-0.4.0 Successfully installed …

もしプルシェンコとライサチェックが共演すると?

フィギュアスケート男子で金メダルをとったライサチェクジョニー・ウィアーと銀メダルのプルシェンコをみてると、この映画を思い出しました。 俺たちフィギュアスケーター シングルのフィギュアスケート界から追放された元世界チャンプの二人が男子二人のペ…

Web::Scraperのリンク集

今更ながらWeb::Scraperという便利なモジュールがあるのを知りました。 Miyagawaさん作のCPANモジュールです。 まずは、CPANサイトの説明を読みましょう。 Web::Scraper - search.cpan.org そして、説明のスライドショー。 Web Scraper Shibuya.pm tech talk…

CPANのダウンロード先URLを変更する方法

めったにしないので中々覚えられないのが、CPANのダウンロード先のURLの変更方法です。 メモがてらに残しておきます。 現在の取得先の一覧を取得する方法 o conf urllistで取得できます。 cpan> o conf urllist urllist http://theoryx5.uwinnipeg.ca/pub/CP…

Google App Engineの始め方

八角研究所 : 誰でも簡単にできる Twitter ボット作成入門を読んでいて、Twitter botを作ってみたいなぁと思いました。Twitter API仕様書の日本語訳を読んでいたのですが、やり取りは全てHTTPなので簡単そうです。空いているサーバにボットをしこめば簡単に…

Apache Mahoutのリンク集

Tasteの後を継ぐオープンソースのリコメンドエンジンのMahout。Hadoopに対応していたりと中々優れものなのですが、まだまだ情報が少ないのが玉に瑕です。Mahout関係で参考になるリンクをあげておきます。(随時更新予定) プロジェクトドキュメント 公式サイ…

Mahoutのセットアップ

Mahoutを使う場合のEclipseの設定メモです。mahout-core.jarが配布されていないため、自前でビルドする必要があります。 coreプロジェクトの設定 Eclipseでプロジェクト作成 SVN->SVNからのプロジェクト http://svn.apache.org/repos/asf/lucene/mahout/ tru…

MahoutでDBをデータソースとして使用する その1

隙間の時間でお試ししているMahout。遅々として進みませんが、まぁ気長に。 今回は、データソースをファイルからデータベースに変更して動かそうとしました。Mahoutの実装を見ると、インターフェースとしてorg.apache.mahout.cf.taste.modelの下にJDBCDataMo…

Mahoutのサンプルプログラミング

ちょっと空いた時間にTasteの後を継ぐオープンソースのリコメンドエンジンのMahoutを触ってみました。まだ使いこなせていないですが、かなり面白そうなアプリです。 今回はLivedoor Clipsのデータを使って、URLに対してお勧めのタグとタグに対してお勧めのタ…

Eclipseからアプリを実行して、OutOfMemoryErrorが出たでござる

Tasteの跡を継ぐオープンソースのリコメンドエンジンのMahoutで遊んでいる最中です。このアプリはドキュメントに書いている通り、大量のメモリを消費します。サンプルアプリを作ってlivedoor clipsのデータ(150万件くらい)をサンプルに動かしたら案の定下…

S2JDBCのAutoSelectの中身

今週はがっつりとS2JDBCを使っているので、興味が出てきてS2JDBCの中身を見てみました。あまり時間がないので、とりあえずAutoSelectImplとSqlFileSelectImplだけ。並べてみると面白いですね。SqlFileSelectImplはかなりシンプルになっていて、ほぼパラメー…

S2JDBCのSQL自動生成で、結合条件を変えたい

S2JDBCのSQL自動生成機能は、基本的に素晴らしいです。はるか昔にHibernateを使った時のもどかしさは、ほとんどありません。ただ、たまーに結合のチューニングしたいなぁと思うことがあります。 例えば、AテーブルとBテーブルをジョインして、ページングで制…

statsvnで特定ファイル、ディレクトリを集計対象外にする

地味に便利なstatsvn。コミットログを元に活動を可視化してくれます。ただ一点問題がありまして、デフォルトの設定のままだとソースもデータもドキュメントもいっしょくたんにカウントされます。純粋にコードの記述量を知りたいという場合も多いので、どうや…

Seasar2で、AOPの使い方

AOPの基本的な機能はフレームワークが用意しているので、呼び出すだけで使えます。 設定すべきは、customizer.diconのみ。後は、必要とする機能を実装をすれば使えます。 デフォルトのcustomizer.diconは下記のようになっていると思います。 <components> </components>

S2Junit4でNoClassDefFoundErrorが出たら

DoltengでS2JDBCオンリーやS2DAOオンリーでプロジェクト作成した場合に、S2TestCaseを実行しようとするとNoClassDefFoundErrorが出ると思います。原因はS2TastCaseが、ServletAPIを必要としているからです。 対処策としては、pom.xmlにgeronimo-servlet_2.4_…

Perlで2次元ハッシュ(の一歩手前)

下記のようなデータを、日付別でみたいなぁと思いました。 いわゆる、クロス集計です。 元データ 20090301 breakfast 400 20090301 lunch 1000 20090301 dinner 800 20090302 breakfast 700 20090302 lunch 500 20090302 dinner 4000 20090303 breakfast 800…