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

ActiveRecord::RecordNotSaved – before_save問題

test "save" do address = Address.new(valid_address) assert address.save end こんな簡単なテストが通らないと思ったら、「ActiveRecord::RecordNotSaved」が発生してた。Addressモデルには、before_saveで以下のように記述してある。 before_save { self…

thinが速い

sinatraやrailsを開発環境で動かす際はmongrelを利用していたのだが、thinが速いというので試してみた。以前紹介したSinatra+memcachedで構築された住所抽出APIをab(apache bench)で試してみた。 インストール方法と使い方 $ sudo gem install thincd ${RAIL…

TeXで右寄せしようとしてflushrightしたら前後に空白ができた

TeX

\documentclass[twocolumn]{article} \usepackage{lipsum} \listfiles\begin{document} \lipsum[1] \begin{flushright}\lipsum[2]\end{flushright} \lipsum[3] \newpage \lipsum[4] {\raggedleft\lipsum[5]\par} \lipsum[6] \end{document} 図を見ても分かる…

Wimaxの通信環境を他人とシェアする

最近はPocket WiFiが人気のようだ。これは携帯電話+無線LAN親機のような端末である。自分はPocket WiFiではなくWiMAXのUSB端末を愛用しているが、これを刺したノートパソコンをPocket WiFi化することができる。こうすることによって、他人にWiFiを解放するこ…

MacでUTF-8なTex環境のインストール

$ sudo port install pTeX +utf8utf-8で保存したtest.texファイルをPDFにする。 $ platex-utf8 test $ dvipdfmx testtest.pdfが完成しているはず。

住所抽出APIを作った

勉強用にHeroku & Sinatra & memcachedで作ってみました。URLを指定すると、そのページに含まれる住所を抽出します。適当な作りなので、あまり精度はよくないと思います。本当ならば、ログ(またはmemcachedのダンプ)取れるようにしてから公開したかったの…

shotgunを使えば、Sinatra開発にサーバーの再起動はもう無用

Source file reloading was removed in the 0.9.2 due to excess complexity.For reloading Sinatra you can use shotgun, Rack::Reloader, or Sinatra::Reloader.Sinatra: Frequently Asked Questions $ sudo gem install shotgun $ shotgun myapp.rbshotgu…

曖昧検索のagrep

基本的な使い方は、man agrepやUNIXの部屋 コマンド検索:agrep (*BSD/Linux)を見て頂くとして、ここではagrepの曖昧検索の実例をあげたいと思う。利用したデータは、位置参照情報ダウンロードサービスの全県のデータ。それの「市区町村名」と「大字町丁目名…

Rubyからagrepコマンドを叩くぜ!

grepは速い。 「100万件ぐらいの検索なら、シェルだけでも1000分の数秒でできます」。こう豪語するのは「パイプの匠」として紹介されたUSP研究所の當仲寛哲氏だ。システム統合にSOA? RDBMS? bashで十分! − @IT 余談だが、無印良品の情報システムは、bash…

はてな記法のスーパーpre記法をすぐ忘れる

><(泣き顔) に ||||を入れればいいんだと覚えよう。認知科学的に有効な暗記法だと思う。

カレントディレクトリ以下のCSVファイルの中身表示

find . -name "*.csv" -exec cat {} \;find使いこなせないなんて、屑すぎだろ…

郵便番号データの悪夢

ken_all.csvという名前のファイルを見て目眩がする方は、友達になれそうです。日本郵便が提供している郵便番号データは、データ構造としては最悪です。人間が見る分には問題はありませんが、コンピューターで容易に処理できるようには出来ていません。プログ…

PerlのXS版とは何ぞや

Daisuke Maki / Geo-Hash-XS - search.cpan.orgXSって何ですか…と思ったら、 PerlにはC言語で書かれた関数を呼び出すためにXSという仕組みが存在します。 [Perl] XS利用でPerl高速化 - Higepon’s blog なるほど。どうりで、先ほどのライブラリは、ベンチマー…

UQ Wimaxの通信速度を測った

ブロードバンドスピードテスト 通信速度測定結果 http://www.bspeedtest.jp/ v3.0.1 測定時刻 2010/10/13 07:45:25 回線種類/線路長/OS:モバイル回線/-/Mac OS 10/- サービス/ISP:-/UQ WiMAX サーバ1[N] 4.26Mbps サーバ2[S] 4.58Mbps 下り受信速度: 4.5Mb…

javascriptで本文抽出

Readability | The Arc90 Lab*1って、どんな仕組みなんだろう…と思っていたら、なんのことはない。Javascriptで本文抽出して、それを動的にスタイルし直しているだけっぽい。ちなみに本文抽出のアルゴリズムは、ヒューリスティクスとでも言うのでしょうか。…

ScalaとJavaの正規表現で、ドット(.)を改行にマッチさせる

そもそもScalaで、大文字小文字の区別しないとかどうやるんだ…と疑問に思っていたんですが。 val adSection = """((?s).*?)""".r Regex、すなわち正規表現はscala.util.matchingパッケージで導入されており(scala.util.regexpパッケージは文字列以外のオブ…

正規表現でマッチング

Scalaやってる。久々の新言語。Javaについて疎いものだから、分からないことだらけ。 val reg = "^Apple(.*?)Cola".r "AppleBananaCola" match { case reg(a) => println(a) case _ => println("hello") } Banana 参照:Programming Scala - OFPS - O'Reilly…

Factory Girlで関連でハマる

presence_ofでエラーが出る。もう、Fixtureでいいんじゃないかと自己暗示をかける日々。

datetime_selectで、秒(second)のセレクトボックスを表示させる

datetime_select("post", "written_on", :include_seconds => true)

FreeNASで、SSHアクセスしたい場合には、ユーザー作成が必要

ブラウザでログインしているユーザーでは、SSHアクセスできないみたいだ。

Firefoxで、タブをバックグランドで開きたい。

Googleリーダーで、[v]を押すときに便利 アドレスバーに、about:config と入力して環境変数一覧を呼び出す browser.tabs.loadDivertedInBackground 環境変数をダブルクリックして true にしておきます via. Google Reader に最適! リンクを強制的にバックグ…