RVM

RVM をインストールした。 % rvm use 1.9.2 --default --default を付けると、選択したバージョンが再ログイン時に適用される。

git-sh

git-shをインストールした。 便利なところは git を使うときに、「git 〜」と打たなくて済む。 プロンプトにブランチ名が表示される。(色も付けられる) % git sh master!git-sh> status # {ブランチ名}!{ディレクトリ} > {コマンド} # On branch master not…

ping

iTunes に Ping という機能が付いた。昔 ping コマンドをネットワークの勉強がてら実装したことがあったのを思い出した。そのときは C 言語しか知らなかったので C で実装した。今は C 以外にも幾つか使える言語ができたので、それらで実装してみようと思っ…

何様のつもり?

また岡崎図書館のこと。 一般の人は逮捕された男性が悪いと考えている、ということを Yahoo! ニュースのコメントを見て知った。私を含め、私の身近な人たちはその逆の考えの人が多い。 畑が違うと同じものでも違った見え方をするんだ。 と、思うわけで。自分…

岡崎図書館事件で思い出した

岡崎図書館事件での技術的な調査の結果が公開された。 直接開発に携わったわけではないが、過去に似たような現象が発生しているWebサービスがあったなと思い出した。 そのサービスは、ある一定数のリクエストを受けるとそれ以降のレスポンスを返さなくなって…

パラメトリック多相

パラメトリック多相とは何かと考えていたら、 関数はパラメータを持ち、これを実際の値に束縛します。Haskell の型はパラメータを持つことができ、これを別の型に束縛できます。 Real World Haskell――実戦で学ぶ関数型言語プログラミング この一文で理解でき…

アジャイルプラクティス

アジャイルプラクティスという本を買った。すでに図書館で借りて読んでいるのだけど、手元に置いておきたくて買った。アジャイルというと、よくは分らないのだけれど新しい画期的な手法なん〜てイメージがあるのだけれど*1、問題を早く見つけ出すために、よ…

たてよみったー

「たてよみったー」を作った。 特徴 縦読み文章が簡単に作成できちゃう 使い方 テキストボックスに縦読みさせたい文字を入れます おわり お役立ち指数 0 構成 Ruby Sinatra JQuery Twitter Streaming API

このしたでんきあぶない

Heroku のエラーページをはじめて見た。随所に日本を感じさせる Heroku だが、エラーページまでとはね。 *1 *1:Event IDはこちらで全部 0 にした。

サン

Aさん:「サンのスイッチが〜」 Bさん:「サンのことは詳しくないからな〜、スイッチ出してるんだ?」 という会話が聞こえてきた。 Aさんは「SAN*1」、Bさんは「Sun*2」の事を言っていたらしい。 ややこしいなあ。 *1:Storage Area Network *2:Sun Microsyst…

TimeMachine のバックアップディスクを LS-CH1.0TL に変えた

Mac

いきさつ 今まで Mac のバックアップを TimeMachine を使って USB 接続の外付け HDD に記録していた。その外付け HDD の容量は 120 GBで、Mac の内蔵 HDD の容量も 120GB。これまでギリギリのところでバックアップをしてきたけど、ついに容量不足でバックア…

ついていけません

今年のはじめ頃からのんびり読み進めていた Real World Haskell は現在13章が終わったところ。本の半ばにして、内容についていけなくなった...。とりあえず、この次のモナドの章と、面白そうな部分に目を通したら、はじめに戻ろうかな。 関数型言語難しいで…

Sinatraでファイルをアップロードさせる方法

このまえ Sinatra でファイルをダウンロードさせる方法を書いた。では逆、アップロードはどうだろう?試したところ、次のようになった。 require 'rubygems' require 'sinatra' require 'haml' get '/' do haml :index end # アップロードされたファイルを返…

プロセス置換

zsh

きっかけは RVM(Ruby Version Manager) をインストールしようとしたときだった。 Github の Repository を使ったインストール方法に以下のコマンドが書かれていた。 bash curl http://rvm.beginrescueend.com/releases/rvm-install-head ) http://rvm.beginr…

Sinatraでファイルをダウンロードさせる方法

attachment を使うと簡単にファイルをダウンロードさせることができる。例えば、CSVファイルをダウンロードする場合は次のように書ける。 require 'rubygems' require 'sinatra' get '/test.csv' do content_type 'text/csv' attachment 'test.csv' <<-EOS f…

文字列の中に文字列の中の文字がすべて存在する?

ある文字列 a の中に別のある文字列 b を構成する文字がすべて存在するかを調べる。 もう少し条件を加えると、b の文字の順番を保っていること。例えば、こんな感じ。 # OK a = 'xyz123' b = 'xz3' # NG a = 'xyz123' b = '3zx' # 順番が合っていない # NG a…

ARP

先日のエントリに、VirtualBox のネットワーク構成を変更しようかどうしようか、なんて書いた。結局、変更することにした。 変更すること自体そう手間はかからなかったのだけれど、ちょっと問題が発生。 問題というのは、仮想マシン間での通信ができなくなっ…

AirPort を使ってブリッジ接続ができるようになっていた

先日 VirtualBox を 3.2.0 にアップグレードしました。 前のバージョンでは仮想マシンのネットワークの割り当てをブリッジアダプタにした場合、 AirPort の認識に問題があるようで AirPort を使用することができませんでした。AirPort を使ってブリッジ接続…

/dev/tty

先日 のエントリで「tty デバイスに...」と書いたのだが*1、tty とは何? たまに聞くことはあっても、よくわかっていないのだ。 tty について調べていると、次のようなことができるとわかった。 % tty # 自分の制御端末を調べる /dev/pts/0 % echo "hello wo…

リダイレクト

先日 リダイレクトとパイプについてちょろっと書いた。そのとき気になった部分を調べた。 気になったことは、リダイレクトを使った場合と、パイプを使った場合でプログラム内部で処理の違いが出てくるのか?ということ。とくに、ファイル位置の操作に関して…

:module +Text.Regex.Posix

環境 Ubuntu 9.10 GHCi 6.10.4 問題 Real World Haskell の P.202 に ghci> :module +Text.Regex.Posix と書いてあるが、実行してみると Prelude> :module +Text.Regex.Posix.String Could not find module `Text.Regex.Posix.String': Use -v to see a list…

リダイレクトでは入力できない、そんなふうに考えていた時期が俺にもありました

というか、忘れていただけなんだけど。 ファイルの内容をプログラムに渡そうとするときに、よく使うのがパイプ。個人的によく使う。 % cat input.txt | sort 今日、人の作業を見ていたらリダイレクトで入力していた。ああ、そういえばそんなのあったなー、な…

初めての MongoDB

MongoDB が気になったのでちょっと試してみた。なぜ MongoDB が気になったのかというと、Heroku の Add-ons で MongoHQ が使えるということなので。 Heroku 上で動作させることを前提としているので、言語は Ruby を使用。http://www.mongodb.org/display/DO…

パックマン

Google のロゴがパックマンになって、しかもそれが実際に遊べたので、驚いたのだが。Flash かと思いきや Javascript, CSS, HTML で作られていることに、さらに驚いた。バンダイナムコ公認らしいので、モンスターがパックマンを追跡するアルゴリズムも同じな…

PHPアプリケーションを高速化

PHP

みんな大好き高速化。 このところ仕事でPHPアプリの性能を改善に取り組んできたので、覚えている範囲で記録しておく。WebサーバやDBサーバ等のチューニングの話はなし。小ネタ多し。 環境 CentOS 5.4 PHP 5.2.11 やったこと コードキャッシュ APC とか eAcce…

OAuth対応

以前公開した hashtagle を OAuth に対応させた。 といっても、メインの機能は Streaming API を使っていて、そちらの方はまだ Basic 認証のまま。1 時間あたりのツイート回数が多かったハッシュタグのトップ 3 をツイートする機能の方を OAuth 対応させた。…

affected rows

MySQL で UPDATE 文を実行したときに、マッチした行の数と実際に更新処理がされる行の数は一致しない。 ということを知らずにいて一時間ほどさまよってた。 UPDATE 文が作用した行数が 1 以上であれば、すでにテーブルにはレコードがあり、そのレコードが更…

Real World Haskell 4.6 練習問題

練習問題を解いてみた。

Real World Haskell 4.5 練習問題

久しぶりに Haskell。Real World Haskell の本を買ったはいいがなかなか進まない。まだ 4章。 問1 Maybe型で返すのはいいけど、返されたMaybe型の値をどう扱えばいいかまだわかっていない。 safeHead xs = if null xs then Nothing else Just (head xs) safe…

Sass to CSS.

Sinatra を使うようになって Haml も使うようになった。Haml を使うようになって Sass も使うようになった。Sass は CSS を記述するための DSL。今まで CSS を書くときは CSS を直接編集してたけど、Sass を知ってからは直接編集しようなんて思わなくなって…