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

sed or Perl?

文字列の置換に sed を使っていたけれど、sed よりも Perl の方がいいんじゃないかと思ったわけです。だって Perl の正規表現の方が強力だし、Perl の正規表現は大体覚えているので、sed の正規表現(Perl との差)を覚えなくても済むから。 でも、気になる…

find で空白を含んだパスに検索を実行し、結果を xargs に渡す

find で空白を含んだパスに対して検索を実行し、その結果を xargs に渡しても思うような結果が得られない。どうしてかというと、xargs は標準入力から空白または改行で区切られた文字列群を読み込むから。パスに含まれた空白が xargs に区切り文字として解釈…

defined? 1.9.1

前回 defined? の動作で理解できないことがある、と書いた。その際に使用した Ruby のバージョンは 1.8.7 だった。今回、バージョンを 1.9.1 にして試してみた。結果は 1.8.7 の場合と異なる結果になった。 CONST_HOGE = false p defined? CONST_HOGE && CON…

横須賀へ

9月になり涼しくなってきたので、久々に自転車でおでかけ。目的地は横須賀。特に見たいものとかがあるわけじゃないんだけど、いままで一度も行ったことがなかったので。 行きは、横濱競馬場の一等馬見所跡を見たかったので、根岸森林公園を通るルートで。帰…

defined?

Ruby 1.8.7 でのこと。 CONST_HOGE = false p defined? CONST_HOGE && CONST_HOGE # => "expression" p defined?(CONST_HOGE) && CONST_HOGE # => false p defined? CONST_PIYO && CONST_PIYO # => nil p defined?(CONST_PIYO) && CONST_PIYO # => nil 下三…

復活 Thunderbird

Mac

先日書いた日記で発生していた現象が直った。 解決方法は、新規プロファイルを作り、そこに今までのデータを上書きするという方法。最初、全部のデータをコピーしたら同じ現象が発生してしまった。なので、Mail ディレクトリの中だけをコピーするようにした…

小槌へ移行(コード)

先日書いた、家計簿の移行に使ったコード。

小槌へ移行

経緯 今まで使っていた家計簿ソフト「みんなの家計簿」が OS を Snow Leopard にしてからすごく重くなり、とても使用できる状態ではなくなってしまった。使っていたバージョンは PPC 版だったので Intel Mac の上では Rosetta を使うのだが、それが重くなる…

Snow Leopard をインストールしたら Thunderbird が挙動不振に

Mac

メールの送受信が出来なくなった。「サーバとの接続はタイムアウトしました」なんて表示される。環境設定から接続のタイムアウトの時間の設定が出来るので設定してみるも、設定値が保存されない。むむむ。とりあえず、Mail でやり過ごそう。

VBoxManage clonehd のエラー

VirtualBox*1の仮想ディスクイメージを複製しようとしたら、エラーが発生した。 % VBoxManage clonehd SRC.vdi DEST.vdi VirtualBox Command Line Management Interface Version 3.0.4 (C) 2005-2009 Sun Microsystems, Inc. All rights reserved. ERROR: Ca…

C-3POと山田五郎

スター・ウォーズに出てくる C-3PO を見ると山田五郎を思い出す。

Sinatra で Logger

ロガーを使おうと思い use Rack::CommonLogger という行を追加すると、アクセスログが 2 つ出力された。Sinatra 内で Rack::CommonLogger が use されているようだ。 use Rack::CommonLogger, Logger.new('myapp.log') こんな風にすると myapp.log というフ…

続 Sinatra の MVC の M に Sequel を使ってみる

前回は DB の検索しか行わなかったので、登録、更新、削除機能を追加した。 コントローラ require 'rubygems' require 'sinatra' require 'sequel' Sequel::Model.plugin(:schema) Sequel.connect('sqlite://myapp.db') class Items < Sequel::Model unless …

Sinatra の MVC の M に Sequel を使ってみる

ライブラリの選択 Sinatra は MVC のモデルに関してのサポートはないので、DB を使ったアプリケーションを作成する場合は既存のO/Rマッピングライブラリを組み込むのがよさそう。サポートされていないことのメリットって、DBを使用しない場合は組み込まなく…

Ubuntu のパッケージをコマンドラインから更新する

これは書かなくても覚えていられそうなんだけど、忘れたときの為に一応メモっておく。 # apt-get update # => パッケージ情報の更新 # apt-get upgrade # => パッケージの更新

Sinatra を使って Haml で作成したテンプレートに変数を埋め込む

テンプレートに変数を埋め込む方法を調べてみた。 バージョン (2012/09/26 追記) Hamlのバージョンは 2.2.2 を使っています。 コントローラ require 'rubygems' require 'sinatra' get '/:id' do @id = params[:id] @items = ['red', 'green', 'yellow'] ham…

Sinatra の View に Haml を使ってみる

Haml というのを Sinatra を利用するようになってから始めて知った。Rails でも使えるんだね、知らなかった。考えもなしに erb を使ってた。 今回なぜ使おうかと思ったかというと、Sinatra の公式ページのテンプレートに関しての説明でまず始めに Haml が書…

shotgunで自動再読み込み

Sinatra でアプリを開発をしているときにソースを更新する度に アプリ終了→アプリ起動 を行っていて面倒だった。それを解決するのが shotgun。shotgun はソースを更新すると自動的に再読込みしてくれる。これでわざわざ手動でアプリを再起動させる手間がなく…

~/.zshrc

zsh

環境が変わるたびに .zshrc をググって構築するのも面倒なので、自宅の環境で使っている .zshrc を書いておく。 # 環境変数 export JOBS=2 export LANG=ja_JP.UTF-8 export LSCOLORS=exfxcxdxbxegedabagacad export LS_COLORS='di=36:ln=35:so=32:pi=33:ex=3…

Spacesにアプリケーションを割り当てる

Mac

Spaces とは Mac に搭載されている仮想デスクトップ機能のこと。その Spaces で今まで使っていなくて損をしていた機能を今更ながらに発見。 「アプリケーションの割り当て」という機能がそれ。各操作スペースに特定のアプリケーションを割り当てられるという…

Sinatraのポート番号変更

Sinatra は特に何も指定しなければ 4567 番ポートを使用する。別のポートを使用するには起動時に p オプションに続けてポート番号を入力すればOK。 起動時に指定できるオプションは他にもあるようだ。 % ruby myapp.rb [-h] [-x] [-e ENVIRONMENT] [-p PORT]…

Sinatra

Ruby のWebフレームワーク Sinatra が気になったので試してみた。 環境構築 他の方が書かれているブログ等を見ると、コマンド一発でインストールできるようだ。実際私もコマンド一発でインストールできたので、テストコードを動かしてみた。ぁらら、エラーが…

天下一プログラマーの続き

前回の続き。 天下一プログラマーコンテストの予選第一回の3問目が効率の良い方法で解けなかったので調べてみた。というか、他の人が公開しているコードを探しただけ。で、参考にさせてもらったのはここ http://romanchu.blog105.fc2.com/blog-entry-402.htm…

天下一プログラマー

天下一プログラマーコンテストが開催されている。どれどれ、ちょっと参加してみようかな。って、応募資格は学生さんのみ。残念。 予選第一回の問題が http://lab.klab.org/young/2009/07/%E5%A4%A9%E4%B8%8B%E4%B8%80%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E…

オブジェクト指向入門第2版 原則・コンセプト

予約していた本が借りられるようになったので借りてきた。...何だ、この厚さ。返却期限までに読み終わりそうもない。貸し出し期間の延長をしようと思ったら、他の人の予約があるからできないし。買うにはちょっと高すぎるし*1。むー。 *1:定価:本体7,200円+…

オブジェクトID

先日の日記で、Fixnum のオブジェクトのオブジェクトIDと String のオブジェクトのオブジェクトIDを調べた。そのとき気になったことがあったので、少し調べてみた。気になったことというのは、Fixnum と String のオブジェクトIDがあまりにも違いすぎる、と…

Ruby練習6 (Red and Black)

前回に引き続きACM/ICPC国内予選突破の手引きより問題を選んでみる。今回は難易度を一つ挙げて☆2つ。選んだのはRed and Blackという問題。 def walk(tiles, x, y, count) if x < 0 || y < 0 || x >= tiles[0].size || y >= tiles.size return count end if …

カフェイン駆動開発

カフェイン駆動開発 (caffeine driven development;CDD) とはプログラム開発手法の一種で、なにはともあれカフェインを摂取してから作業に臨む開発スタイルのこと。このスタイルをカフェインファーストともいう。眠気と戦いながら作業を行う開発者に好まれる…

Ruby練習五日目(Hanafuda Shuffle)

ACM/ICPC国内予選突破の手引きより問題を選んで実装してみることに。まずは最初ということもあり、一番上に書かれている難易度の低そうなHanahuda Shuffleから挑戦してみることにした。 while true n, r = ARGF.gets.chomp.split(/ /).map { |n| n.to_i } if…

VirtualBox 3.0.0 → 2.1.4

VirtualBox3.0.0がリリースされたのでインストールしたのだが、どうもホストのNICの認識がおかしい。AirPortが使えたり使えなかったり不安定。なので、またダウングレード。ダウングレードの手順を忘れないようにメモ。 VirtualBoxのアンインストール Virtua…