Rubyでバイナリファイルを扱って苦労した記録
2011 年 3 月 28 日 月曜日 by 山平そもそもRubyのような高級言語で行うことではないのですが、バイナリファイルにランダムアクセスして読み書き両方を行いたいのにやたら苦労してしまったので記録します。
以下のような処理を行うプログラムを書こうとしています。
- ファイルを開く
- ファイルの先頭に移動
- その場で1バイト読込み
- 条件=trueならその場に書込み
- 次のバイトに移動
- ファイルの末尾まで3-5を繰り返し
そもそもRubyのような高級言語で行うことではないのですが、バイナリファイルにランダムアクセスして読み書き両方を行いたいのにやたら苦労してしまったので記録します。
以下のような処理を行うプログラムを書こうとしています。
タッチタイピング、できますか?
いつまで経っても習得できない私は、パスワードで練習しています。
毎日パスワードを変更するわけではないので、上の手順を面倒と感じるほどでもないのですが、「意図的にいい感じの散り具合を実現する」にはどうした良いのだろうか?と思い実験してみたので記録しておきます。
Rubyと言えばRuby on Railsなのでしょうが、下調べしたところやや動作が重いという情報がありました。
では大規模Webフレームワークの恩恵を受けられないような小規模Webサイトの場合にはどうすればよいのでしょうか?
今回は標準添付のライブラリ「cgi」、「erb」を使った簡単なwebサービスを作成した記録です。
前から気になっていたSinatraを使ってみるに当たって、設定に関するドキュメントを邦訳してみました。
一応、英語は分かるけど技術者ではない知人に確認してもらっています。
意味は外していないとのことですが、鵜呑みにせずご自身で確認の上でご利用ください。
前回(DBを使ったIPアドレス管理~任意のレンジで抽出する~)、煩わしいIPアドレスの管理をDBを利用してもっとスマートに行なえないかを考えてみましたが、実装上の弱点が残ってしまいました。
今回はその弱点を解決すべく検討した結果です。
以前(linuxで簡単サムネイル画像の作成?)、ファイルのMIMEタイプ別にサムネイルを作成するコマンドが設定エディタに登録されているというところまで調査しました。
これに加えて、
この2点が解決すれば、汎用のサムネイル作成機能が実現しそうです。
普段はEmacsでコードを書いているのですが、NetBeansでRubyがサポートされているという噂を聞きつけて早速試してみることにしました。
なお、環境はUbuntu8.04、NetBeans6.0.1です。
NetBeans自体は以前にパッケージマネージャからインストールしていたので、後からRubyサポートを有効にする方法についての調査になります。
日本語環境なのになぜか表示が英語になっちゃったのであまり使っていません。。。