2010-01-01から1年間の記事一覧

/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 を知ってからは直接編集しようなんて思わなくなって…

正規表現クックブック

先日、オライリーから 正規表現クックブック なる本が出版された。ちょっとそそられる。どうしようかな。表紙の動物がモグラだけど、モグラってフクロウに食べられそうなイメージがあるぞ。

はやぶさ

はやぶさが地球に帰還する予定です、というニュースを眺めていたら、久しぶりに目頭が熱くなってしまった。 はやぶさ自身は不格好な無機質の固まりなのに、なぜこのように目頭が熱くなるのだろう? はやぶさの計画に携わっている人たちの、必ず地球へ帰還さ…

POST?

今まで Twitter に http://twitter.com/search?q=hogehoge という感じでアクセスすると hogehoge の検索結果画面が得られたけど、最近はそうでもないみたい。メソッドが POST に変わって、authenticity_token とかいうパラメータも必要になるみたい(確かめ…

Vim + ctags

タグジャンプ。秀丸を使っていた頃はよく使っていたけれど、Vim を使うようになってからめっきり使わなくなっていた。だって知らなかったんだもの(この数年間)。 tags ファイルは ctags というコマンドで作成。 あと、.vimrc に次の設定を追加。 set tags+…

hashtagleメモ

先日、hashtagle という、Twitter のハッシュタグを検索するサービスを公開したという記事を書いた。そこでは書かなかった、公開するまでに起こったこと、気付いたことに関して書き留めておく。 構成 Heroku の上に Sinatra で構築。 ハッシュタグのソースは…

hashtagle 公開

Twitter のハッシュタグを検索するサービスを公開しました。サイトはこちら hashtagle。 hashtagleって? ハッシュタグの検索ができる。 日本語のツイートに含まれるハッシュタグが検索対象になる。 テキストボックスに入力された文字に近いハッシュタグを表…

Sinatra 1.0 Released

3月23日に Sinatra の 1.0 がリリースされた。 個人で作る小さなサイトにはちょうどいいフレームワーク(DSL?)なのでよく使わせてもらっている。なので、このニュースを聞いたときにちょっと嬉しくかった。おめでと〜。 1.0 では Tilt っていうのに対応した…

Graham scan

Real World Haskell の 3章末の練習問題 12 - Graham scan アルゴリズムの実装 - を解いてみた。 import List import Data.Ord -------- 問 9 -------- -- 方向 data Direction = LeftTurn | RightTurn | Straight deriving (Eq, Show) -------- 問 10 -----…

Tab

このごろ vim のタブ機能を使うようになった。タブ機能があるということは前から知っていたのだけれど使わずにいた。 タブを使うようになって .vimrc に設定が増えたのでメモしておく。 " タブラインを常に表示 set showtabline=2タブを開くときは :Texでフ…

Ruby on Morse

Rubyのソースコード暗号化する「RubyEncoder」発売へ − @IT を見て、よーしパパ今から便乗して一儲けしちゃうぞー、と思ったとか思わなかったとか。 Rubyのソースコードモールス符号化する「Ruby on Morse」発表へ Rubyのソースコードをモールス符号化する…

ord

Ruby で 文字のコード値が欲しかったので p 'hoge'[0] ってやったら "h" だって。 いや、オレが欲しいのは Integer であって String ではないのだ。 で、 p 'hoge'.ord とすると 104 となるわけ。 2 文字目以降はこうでいいのかなと思い p 'hoge'.ord(1) と…

Sinatra, CGI

先日 Sinatra を CGI で動かそうとしてエラー*1が発生したりして手こずっていた。が、やっとこさ動くようになったのでちょいまとめ。 やったこと ディレクトリ構成 ロジックやテンプレ部分は DocumentRoot 下には置かない方針で。 /home/***/www/ # => Docum…

don't require me

最悪だ。 Sinatra を CGI で動かそうとして、原因不明のエラーが発生し、原因を特定するまでに半日くらい要した。 ソース #! /usr/local/bin/ruby require 'rubygems' require 'sinatra' get '/' do 'Hello world!!' end 実行方法 % ruby sinatra.rb エラー…

chiba

実は千葉って 47 都道府県の中で、トップを争うぐらいにカッコいい県ではないかと、最近気付いた。※ただし、ローマ字表記の場合に限る。 オレ的カッコいい都道府県ランキング (首都圏版) chiba tokyo saitama kanagawa

Include haml

久しぶりに Sinatra をさわった。テンプレートには Haml を使った。 Haml を書いていて、外部ファイル (別のHamlファイル) の読み込みはどうやるんだろうと思った。 検索してみたが、これだと思うような記事は見つからなかった。 じゃあ、ということで適当に…

require

PHP req.php string(14) "Hooooooooooge!" var_dump($piyo); # => string(12) "Hello world!" Ruby req.rb HOGE = 'Hooooooooooge!' piyo = 'Hello world!' main.rb require 'req' p HOGE #…

セキュア・プログラミング

インターネット上で Web アプリケーションのセキュリティ対策に関する記事をよく目にする。それだけセキュリティへの関心が高いということの現れだろうか。 数ある中でも、ココを押さえとけってところは 安全なウェブサイトの作り方:IPA 独立行政法人 情報…

class

Haskell は関数型言語。オブジェクト指向言語ではない。クラスって概念があるとはつゆ知らず。それに気付いたのは、つい先日。 はじめ、Char 同士の比較をするのに Char から Int に変換し、それを比較していた。時間が経つにつれ、変換して比較せずとも直接…