ほぼ雑記的メモ
案の定起動後固まりやがりました。_| ̄|○ なんてお約束な・・・ 泣く泣くリセットして再起動したらなにやら安定した模様ですが・・・画面にHDのCRCエラーが。危険なニオイがします。CRCエラーが出ているところはRAID組んでてミラーになってるところなんですが、うーむ・・・・ とりあえずそろそろリプレースを考慮すべきですね。 続いて、次に問題が発覚したのがISDN。いまさらISDNかよ!といわれそうですが、問題になってるのは電話とFAXがつながっているISDN機器でして・・・こちらが電源が入らない!! 古今東西電源が入らないときは、しばらく休ませて、叩けばよいの風習により斜め45度よりチョップをかまし、無事電源が入りました。 こっちもリプレースせんといかんか・・・・(ホントいまさらながらなんですが・・・)
ところで、このACアダプタどこでうってるんでしょ?AC10Vとは書いていますが、SonyStyleでは売ってないようだし・・・別に買う気はないんですが、気になります。
a = "123¥n456¥n789¥n" p /^7/.match(a)
"123¥n456¥n789¥n" =~ /^7/m && print "match¥n"
フリーソフトにかかわらず、最近のドキュメントはhtmlで書いてあるのがあたりまえみたいです。というわけでman大好きのワタシはカナリ悲しい思いをしています。使いにくいったらありゃしない。w3mとかも入れてみましたが、TABで移動してリンクをたどるのがやっぱメンドい。結局HTMLをgrepしてキーワードをサーチしてlessで見ているワタシが気がついたらいました。
さて今日の目的はRMagickつかってイメージのwidthとheightを取得すること。まぁこんなカンタンなことくらいカンタンにできるでしょう。だいたいにおいてfileコマンドですらできます。
BTW。チャレンジすること1時間、どうにもカンタンに出来ませぬ。ドキュメントすみからすみまで読んでみましたが、らしきものがない・・・・
例えばこんな例
で、これを実行すると
となるわけでイメージのサイズの文字列は取得できます。しかし、どこを探してもズバリこの情報を取得する手法がなくて、結局この文字列から変換するしかないような・・・いやワタシが単純に間違っているだけかもしれませんが・・・
と再度ドキュメントを丹念に眺めていたらcolumnsとrowsというアヤシゲなメソッドが。。。ずばりこれでした。。。。ドキュメント単に見逃してた・・・_| ̄|○
このまえの続き
結局、SQLite.cをのぞいてみたら、どこにも last_insert_rowid()らしきものはなし。ということで、どうあがいても使えないという結論になりました。
しゃーないので、自力でセコセコつくることに。といっても前後を眺めて、見よう見まねです。で、気がついたら、Rubyプログラムを始めたのに、Cプログラムばっかり眺めている自分がいました。(笑)
個人的にワタシは最終的なアプリを作ることに快感を感じるほうなんで、この手の言語とかモジュールの開発はしないに越したことはないと思うほうなんですが、こういう現状じゃ、しゃーないですね。
とりあえず、パッチもできたので、そのまま作者に報告。以外とこころよい返事が頂けたのが唯一の救いです。
パッチ
サンプル
追記
前回のBlogでAutoCommit => trueとするとロックされてブロックされると記述しましたが、実際は逆です。(単純なプログラムコードのケアレスミス)]
このあたりの仕組みもソースをざっと眺めたので、気が向いたら詳しく書こうと思います。
まず採番の問題。SQLiteでは not null primary key属性のあるカラムは自動的に insertするときにオートインクリメントするらしい(FAQより)。したがって insert するときにプライマリキーだけinsertしなければ採番の問題はとりあえず解決です。まぁこれはこれでヨシとしましょう。 さて、問題はここでinsertしたレコードに一体どのようなユニークなIDが振られたか?を取得するのが非常に悩ましいということです。 当然のことながらinsertした直後に selectというのはアトミックに動作しないから、却下です。で、SQLiteのFAQには 「sqlite_last_insert_rowid()」を使えとあります。SQLiteはCのライブラリベースのRDBなんでまぁこれはこれでよいんでしょうが、rubyのこのインタフェースを使おうとしたときには問題になります。 そのようなインタフェースがないので、ニントモカントモ正しく取得できそうにない・・・いや、ワタシが間違っているだけで、やり方あるのかもしれませんが・・・ 次に、AutioCommitを trueにして beginでロックをするという手法に挑戦。ですが、これをやってしまうと、他のクライアントが同時にDBにアクセスできずconnectでエラーに・・・これじゃWebアプリとかで使えませんね。せめて他が手放すまでブロックしてもらわないと・・・いや、ワタシが間違っているだけで、やり方があるのかもしれませんが・・・ とりあえず、もうちょっと調べてみようと思います。まずは最新バージョンにするところからかな。 まぁruby-dbiのバージョンみたら0.0.23って書いてあるから、まだまだこれからですかね。すなおに、この構成をアキラメルというのが正しい解法のような気もしますが、こんな構成で頑張っている人は世の中に何人いるんだろうか・・・ To be continued
とおもったんですが、水曜日と木曜日が逆に表示されるやんけ~ オリジナルの曜日の文字列が水と木逆なってますがな。 というわけで、3番目と4番目の要素を入れ替えて、本当に終了。 以外と苦労しました。 これだけMTは日本に普及してるのに誰もこの機能つかってないんかな? (追記) すでに同様の問題にぶちあたっていて、解決されている方を発見しました。さすがにいないってことはないか(笑)