荒れないウェブサービスの作り方

ウェブサービスの運営者はどこも同じような悩みを抱えています。 ユーザーは基本的にコミュニケーションが大好きなのですが、コミュニケーション機能は常に荒れる危険を伴っています。そのためウェブサービスはどこも工夫を凝らしてフレーム(flame)対策をし…

『数学ガール』はソフトウェア技術者のおっさんが読むべき

遅ればせながら『数学ガール』の最初の話を読んだので、思ったことを書いてみます。 ソフトウェア技術者をやっていて、数学的な知識が必要になることが時々ある。そんなわけで、数学については以前から勉強しなおしたいと思っていたけれど、なかなか良いテキ…

「開発コンテスト24」に参加しました

クックパッド主催の「開発コンテスト24」というコンテストがあったので参加してみました。期間中は多くの参加者が常時Twitterでつぶやいていたこともあり開発合宿の在宅版(?)みたいな感じでけっこう盛り上がっていたように思います。自分が作ったものはこ…

Ruby開発支援ツールRSenseをxyzzyから使ってみたの巻

Rubyの開発支援ツールとしてRSenseがなかなかいい感じです。各種エディタに対応できるつくりになっていて、標準ではEmacsとVimのインタフェースプログラムがついています。前回自分でも秀丸用のプログラムを作ってみたわけですが、今回はxyzzyに対応させてみ…

Ruby開発支援ツールRSenseを秀丸から使ってみたの巻

やあ (´・ω・`) はじめに謝っておこう。 このマクロはいまのところさほど快適ではないから、過度の期待をもって使うときっとがっかりするだろう。君のがっかりした顔を見るのは僕もつらいんだ。あとでゆっくり制限事項について話しあおう。 さて「Rubyのた…

クラウド型VSTの試作

ヤマハの発表によると今後はクラウド型VSTなのだそうです。本当にそんなことができるのでしょうか。ならば作って試してみようと思います。さて、何をもってクラウド型VSTと言うかは微妙ですが、とりあえずインターネット上のサーバとやりとりできれば良いよ…

TwitterとJASRACの件で思ったこと

JASRAC関係はいろいろ炎上しやすいけど、今回のはなんかすごいなあ。 著作権の専門家みたいな人があんまり見解を示していないというのもあって、なんか話が変な方向にいってる気がする。それでもid:heatwave_p2pさんはさすがにすごく冷静に分かりやすく問題…

無駄な詳細設計書を滅亡させるための処方箋

昔は「詳細設計書なんてアホなもん作ってもプログラミングには何の役にも立たないんだよふぁっきゅー!」と言い続けるのが、詳細設計書を滅亡させる手段だと思っていたけど、どうも事態はそんな簡単じゃぁないっぽい。 じゃあ一体どうすればいいのかってのは…

青い鳥

先日、ちょっとしたウェブサービスを作りました。 トップページの隅っこには最近よく見る「結果をTwitterに投稿するボタン」があります。 このボタンを作るとき、ちょうどいい画像はないかとネットを探し回りました。 意外なことになかなか気に入るものがな…

ダジャレ判定機作ったよ

ダジャレが好きなのだ。 本来関連のない言葉同士を自由に結びつけ、語感のリズムで羽ばたいてシニフィエの宇宙を再構築する、そんなおやじギャグはとてもいとおしい。 だからぼくはダジャレのスキルを向上すべく日々研鑽しているのだ。 そういつもダジャレの…

VB.NETの数値・文字列変換がTMTOWTDI過ぎる件

最近VB.NETを触る機会がありました。いろいろ忘れてるんで、ググりながらのプログラミングです。 で、単純なIntegerからStringへの変換ってどうだっけ、と検索してみたらこれがよく分からないんですよね。いや、その、検索結果はいろいろ出てくるんですよ。…

SQLのORDER BYにCASE式が使えてちょっと嬉しかったお話

SQLで検索結果をソートするときってorder by使うよね。でもさ、単純に大きい順とか五十音順とかじゃなくて、ひと工夫したいときってあるじゃないですか。たとえば、国名のリストをアルファベット順でソートして一覧表示するけど、利便性を考えて日本は一番上…

Rubyでもっとも重要なライブラリは何か?PageRankで計算してみた

最近、PageRankを計算するPHPソースコードを公開している人がいたので、Rubyで書き直してみました。 PHPからRubyへは移植というよりほとんど写経のような感じでそのままポーティングできます。pagerank.rb #!/usr/bin/ruby # original PHP source http://php…

ヤター!Twitter Botできたよー「ゴミ出しチャンピオン」

以前からTwitter Botが流行ってるので、何か作りたいなあと思っていたら、こんな素敵なライブラリが公開されていました。 「プログラミングができない人もみんなTwitter Botを作ったらいいよ」と思ったので、プログラミングができなくてもある程度の知識があ…

VOCALOIDビブラート手描き支援ツール作ったよ

初音ミクなんかを使ってて、ちょっとニュアンスを出したいときは、画面下段のコントロールトラックを手描きすると良い感じになったりします。特にロックやポップスのビブラートの表現は、音程だけでなく音量や音色も揺らす方がそれっぽくなるので手描きした…

TwitterでつぶやくとマナジーがなくなっていくGreasemonkey

TwitterでつぶやくとマナジーがなくなっていくGreasemonkeyスクリプトを作りました。 やっつけですみません。 // ==UserScript== // @name Manergy // @namespace http://d.hatena.ne.jp/aike/ // @include http://twitter.com/ // ==/UserScript== (functio…

ウィキペディアがCCライセンスになって変わること

ウィキペディアのライセンスがGFDLからクリエイティブ・コモンズ・ライセンス(CCL)に変わるということで、どういうメリットがあるのか考えてみました。まあ自分は法律家ではないのであやしいところはありますが。 Wikipediaのライセンスがクリエイティブ・…

今日は特別な日

UNIX timeにとって。

難読プログラミング言語をサクサク書くためのマクロ機能付超簡易言語

Brainf*ck等の難読プログラミング言語でプログラムを作成するときは、ちょっとしたトランスレータを用意すると格段に書きやすくなります。 1. シンプルなトランスレータ たとえば、一番シンプルなのはこんな感じ。 step1.awk #!/usr/bin/nawk -f $1 == "inc"…

てってってー言語プログラミング

てってってーというプログラミング言語が先日発表されました。処理系自体はまだ公開されていないというのに前評判は高く、すでに本家より先にクローンが作られたりなんかして(それなんてPugs?)話題になっています。とりあえず言語好きとしては仕様を見て…

Rails + Cicindelaでレコメンデーション付ウェブサイトの構築(3)

目次 ユーザ認証付Railsアプリの構築 RailsアプリにCicindelaインタフェースを実装 Cicindelaの設定とバッチ処理設定 ←いまここ そんなわけで、最後にCicindela側の設定と集計処理のバッチ設定をしてみます。 Cicindelaインストール Cicindela本体のインスト…

Rails + Cicindelaでレコメンデーション付ウェブサイトの構築(2)

目次 ユーザ認証付Railsアプリの構築 RailsアプリにCicindelaインタフェースを実装 ←いまここ Cicindelaの設定とバッチ処理設定 そんなわけで昨日作ったRuby on RailsアプリにCicindelaとのインタフェース機能をつけてみます。 Cicindelaインタフェース用ク…

Rails + Cicindelaでレコメンデーション付ウェブサイトの構築(1)

目次 ユーザ認証付Railsアプリの構築 ←いまここ RailsアプリにCicindelaインタフェースを実装 Cicindelaの設定とバッチ処理設定 先日Sapporo.rbで黙々と読書した成果として、Ruby on RailsのアプリにCicindelaのレコメンデーション機能をつけることができま…

Ruby1.9が入っていないと端末に「アナログ」と表示する.bashrc

Ruby1.9がいよいよ安定してきたようで、そろそろ試さなくてはと思っています。でも、なんというか必要に迫られないのでなかなか全面的な導入に踏みきれません。というわけで、Rubyを1.9にするよう促すプロンプト設定を考えました。Rubyのバージョンがまだ1.8…

レコメンデーションエンジンCicindelaをインストールしてみた

昨年末にライブドアからレコメンデーションエンジンCicindelaがオープンソースとして公開されました。http://labs.edge.jp/cicindela/ Cicindelaのインタフェースをめちゃくちゃ簡単に言うと、「整数を入力したら整数のリストを返す関数(WebAPI)」です。例え…

10行で書く究極の.emacs

まあタイトルは釣りなわけですが、週末にEmacsの設定をいろいろいじった結果こんな感じになりました。~/.emacs ;; ローカルLispライブラリディレクトリを追加 (setq load-path (append (list (expand-file-name "~/elisp")) load-path)) ;; ライブラリロード…

日記のカテゴリー分けをあきらめました

日記をカテゴリーで分類したいなー。よくあるやつだからはてなダイアリーでも簡単にできるかな ↓ カテゴリー記法というのがあるらしい。これ使えば一発だな。 ↓ カテゴリー記法を使うには見出し記法を使う必要があるらしい。なんか雲行きが怪しくなってきた…

Hpricotでポール・グレアムのエッセイの頻出単語を調べてみる

ハッカー必読と評判も高く、翻訳もされているポール・グレアムのエッセイですが、英語の勉強を兼ねて原文で読んでみたりしています。でもやっぱり基礎英語力不足というか端的に言って語彙が足りないのでなかなか大変です。それじゃあっていうんでDUO3.0とかで…

Reactable風ソフトウェアPsychosynthを演奏してみた

Reactable(リアクタブル/リアクテーブル)という電子楽器があります。たぶんTENORI-ONとかテルミンとかKAOSSILATORとかBloomとか自動念仏機の仲間です。アナログシンセ的でもあるのでDS-10とかSX-150とか好きな人にも良いかもしれません。構造としては、オ…

Gauche練習帳 複素数を使ってみる

Gaucheは有理数や複素数といった数値クラスの種類が豊富ですね。Lisp系言語の伝統なのかもしれません。いまどきのプログラミング言語だとComplexクラスのようなライブラリを持っていることも多いですが、(define z 1+2i)のように直接記述できるのはめずらし…