コマンドラインのFlash開発環境を整える

HTML5への流れが加速している昨今ですが、このところ仕事の中でFlashに触る機会が多くなってきました。せっかくなので、忘れないうちにActionScriptによるFlash開発環境を整える手順をメモしておこうと思います。 前提条件 ポイントは以下の2つ。 コマンドラ…

いろんな画像をAA Quine化するよ!

この辺の流れを見て楽しそうだなぁと思ったので真似してみました。 RubyでうどんげQuine(とAA型Quineの作り方講座) - ぬいぐるみライフ(仮) 404 Blog Not Found:perl - Quine.pm で(ほぼ)あらゆるPerl Scriptをquineに うどんげQuineに対抗して遊んでみた - …

色気のあるターミナルをつくろう

今までターミナル環境のカスタマイズにあまり興味を向けてこなかった私ですが、さすがに最近「白背景に黒文字」の味気ない画面に物足りなさを感じるようになってきました。だいたい下の画像みたいなかんじです。ほぼデフォルト配色のPoderosaに、同じくデフ…

ニコニコ大百科とピクペディアで相互にリンクをはるGreasemonkeyスクリプト

ニコニコ大百科とピクペディアって、機能自体はほぼ同一ですが、記事の内容にはやはりそれぞれの特色があったりなかったりしますよね。しませんか?しないかもしれません。そんなことを考えつつ、簡単なグリモンを書いてみました。 インストール方法 以下の…

SequelのTipsのようなもの

Rubyにおける軽量なデータベースツールキットとして、なかなかお手軽なSequelですが、実際に使うにあたっていくつか悩んだポイントがあったので、備忘録としてその解決法をメモしておきます。なお、この記事はRuby 1.9.1p378とSequel 3.8.0の組み合わせを対…

Twitterにおけるニコニコ動画の人気度をランキングするサービスを作ってみた

まだα版ですが、とりあえず見られるレベルにはなったので公開してみます。 ニコラン on Twitter (仮) - Twitterにおけるニコニコ動画の「今」の流行をお届けします Twitterの公開ツイートの中から、ニコニコ動画のURLを含むものを探し出し、ツイート数が多い…

D510MOでVMware ESXi 4.0をインストールするには

自宅のミニサーバのマザーボードをD945GCLF2からD510MOに換装しました。そのまま既存のCentOS + VMware Server構成で運用を続けても良かったのですが、せっかくなので前から気になっていたVMware ESXiを入れてみることにしました。ただし、VMware ESXiはD510…

W3C File APIを使ってJavaScriptでファイル加工

現在W3Cで仕様策定が進められているFile APIを使うと、JavaScriptからローカルファイルの情報や内容にアクセス出来るようになります。Firefoxでは3.0時代から似たような機能が実装されていたようですが*1、今回やや仕様を変更した上で標準化されます。まだワ…

Google App Engine/JRubyでTwitterの自動フォロー返し

先日Google App EngineのSDKが1.2.6にバージョンアップし、アプリケーションがメールを受信できるようになりました。 Google App Engine Blog: App Engine SDK 1.2.6 Released with Incoming Email, App Deletion, and more! Twitterの自動フォロー返しを実…

HTTP通信を伴うライブラリのRSpecを書く

伴う、というかそれがメインの機能だったりもするわけですが。少し前、以下の記事でごく単純なOAuthコンシューマの実装を行いました。 OAuthコンシューマの仕組みと実装 〜 Ruby編 - しばそんノート この小さなライブラリの使い方は以下の通りです。 require…

MySQL/Rubyにおける正しいエンコーディング変更方法

MySQLの文字化けを直したい! 発端はSequelを使ってMySQLのデータを操作するRubyスクリプトを書いていたときでした。UTF-8で保存したはずの文字列が、妙に文字化けしています。mysqlコマンドでエンコーディングの確認をしてみると、 $ mysql -h host -u user…

appengine-jrubyで簡単GAE/JRuby開発

少し前のエントリで、GAE/JRuby上でRackアプリを動かす手順を書きました。 Google App Engine上でRubyアプリを動かす手順 - しばそんノート このときの手順は、Java SDKをインストールして、GAE SDKをダウンロードして、jruby-complete.jarをコンパイルして……

Twitter Streaming APIをRubyで試してみる

Streaming APIとは TwitterのStreaming APIをご存知でしょうか。 Twitter API Wiki / Streaming API Documentation 2009年4月頃から試験的に公開されているAPIなので、ご存知な方も多いと思います。2009年8月現在でまだαテスト中ですが、これを利用すると、p…

GAE/JRubyで開発サーバを使わずに単体テストする方法

前置き Google App Engine for JRuby(以下GAE/JRuby)*1で開発をするにあたって不便に感じるものの一つに、単体テストのし難さがありました。開発サーバ(dev_appserver)って起動するまでに結構時間がかかるので*2、少し修正を加えるたびに開発サーバを立…

OAuthコンシューマの仕組みと実装 〜 Ruby編

前置き 前回の記事でOAuthを使ってTwitter APIにアクセスすることができるようになりましたが、ruby-oauthは内部でNet::HTTPを呼び出しているため、そのままではGoogle App Engine for Java上のJRuby(以下JRuby for GAE/J)で利用できません。「JRuby for GAE…

TwitterのbotをOAuthに対応させる

Twitterの認証方式について Twitterの認証方式にはOAuthとBasic認証の二通りの仕組みがあります。 Twitter API Wiki / Authentication Basic認証はお手軽なので、世に存在するTwitter APIを利用する一般的なクライアントは、大抵がこちらの方法を使っている…

JRuby on Google App Engineでのログ出力

前置き Google App Engine for Java(以下GAEJ)でJRubyスクリプトを書くにあたって、ログ出力をどうしたらいいのか、少し迷ってしまいませんか?標準出力や標準エラー出力に書き出したデータは単に無視されるだけですし、書き込みモードでファイルを開けま…

Google App EngineデータストアをRubyから簡単に使う

前置き 前回、前々回あたりでとりあえずGoogle App Engine for Java(以下GAEJ*1)上でRubyスクリプトを動作させることができるようになりました。が、どうしてもいつものRubyスクリプトとは勝手が違って、いまいちやりにくい気がします。例えばデータの記録…

Google App Engineで作るTwitter bot 〜 JRuby編

前置き 続きです。前回、Google App Engine(以下GAE)上でRubyスクリプトを動作させるところまでできました。次のサンプルとして、簡単なTwitterのbotを作成してみようと思います。…どうして普通のWebアプリケーションじゃないのかって?それはまぁ…色々あ…

Google App Engine上でRubyアプリを動かす手順

前置き Google App Engine(以下GAE)では、公式には現在のところPythonとJavaしかサポートされていませんが、JRubyという素晴らしいプロダクトのおかげでJava VM上でRubyスクリプトを実行できるため、考えようによってはRubyも既にサポート対象になっていると…

GDBデバッギング覚え書き

C GDB

使い方をよく忘れるので…。リファレンス的なものではなく、要点のみの覚え書きです。以下の記述は gcc 4.1.2 gdb 6.8 を前提としています。 コンパイル "-g"オプションは必須 "-O"系オプション(最適化)は付けない*1 stripしちゃダメ プログラムの実行 $ gd…

ソケットプログラミング - TCP/IPサーバの例

RubyなどのLLでソケット通信のプログラムを書いていると、あまりにも簡単に書けすぎて、ついついC言語でのソケット通信の書き方を忘れてしまいます。ということで、おさらいのためにシンプルなechoサーバをCで書いてみました。おおまかな説明はソース中にコ…

Rubyのcase式と===演算子について

前フリ 奥様、知ってらした?Rubyのcase式ってすっごくパワフルなんですって!単なる同値判定で振り分けるだけじゃなくて、例えばこんなこともできちゃうらしいんですのよ! case gets.chomp when /おはよう/ puts 'おはようございます、お目覚めはいかがで…

Rubyのメソッド呼び出し順

※以下の記述は ruby 1.9.1-p129 を前提としています。Ruby逆引きハンドブックの「SECTION-40 呼び出されるメソッドの決定方法」(p.145)が大変参考になったので、復習を兼ねて実際に試してみました。基本的にクラスの継承ツリーを辿っていくわけですが、Ruby…

TwitterFoxのパフォーマンス改善

(2009/06/26追記)TwitterFoxのバージョンアップによってこの問題は解消しました。1.8.2以降であれば下記の修正は必要ありません。※以下の内容は、私の中途半端な知識に基づいた適当な改造となっております。この内容をそのまま適用した場合、何らかの問題が…

WordPressプラグインの作り方 〜アクション編〜

以下の記述は WordPress 2.8 日本語版 を前提としています。WordPressプラグインの作り方メモ、その2。今回は、WordPressに用意されている2種類のフックのうちのもう一方、アクションを利用したプラグインを作成します。アクションフックを利用すると、任意…

WordPressプラグインの作り方 〜フィルタ編〜

以下の記述は WordPress 2.8 日本語版 を前提としています。WordPressプラグインの作り方メモ、その1。WordPressで記事を書く際も「はてな記法」的な独自記法を使いたい…というような要望は、記事本文へフィルタをかけるプラグインを作成することによって簡…