やっと,X on Windowsのインストールガイドが完成。校正をして後で公開します。
しばらくほったらかしておいて,久しぶりに接続したら難なく動いてしまった。大丈夫なのか?
にしても,このハードディスクを接続したらWinXPの起動時間が非常に長くなってしまった・・・。
天ぷら油に引火させました。朝寝ぼけたまま、朝ご飯の準備をしようと台所で火を付けたままパソコンの前に戻ってメールチェックをしてたのが仇になりました。
炎が天上まで昇って台所が煙りまみれになってました。パニック状態になりましたが、ワイドショーの知識を思い出して、水に浸したバスタオルを鍋の上にかぶせて、なんとか火を消すことは出来ました。
奇跡的に台所にあったプラスチックケースが燃えた程度で済みましたが、壁が少し黒づんでしまいました。
そんなわけで今日の午後はずっと掃除をしたり大家さんに謝りに行ってました。
うう、本気で死ぬかと思った…。
そんなわけで娯楽をする気が起きないので、すみやかにテスト勉強でもすることにします。
どうみても○○です。ありがとうございましたのガイドライン - てくのーと2.0経由。
今年初めて知った単語で吹いたのは色々あるけど、実際に使うくらいヒットしたのは下の五個かなあ。
上の二つは組み合わせて使うと破壊力が強いなあ。「それを公の場で言ったらおしまいだろー、居酒屋の談話じゃねえんだから。」という意味で。
部屋でだらだらと修論を書きながら、30分書いては30分部屋や台所の掃除をしたりしなかったり、PSPをいじったりの繰り返し。
掃除は終わらせてしまったけど、帰省の荷造りは何もしてない。んー、明日の夜でいいか。
マリカDSはしばらくお休み中。よくも悪くもマリカなので飽きるのも早いときたもんだ。
で、最近はもっぱらMHP三昧。今日になってようやく老山龍を撃破した。なんつーか、オフラインのシングルモードだと、敵の強さに比べて大樽Gの破壊力がすさまじすぎて、ほとんどの敵が3分クッキング状態。オレ様つえー感を味わうには丁度いいのかなあ。
これからは上竜骨を捜し求めて集会所のクエをとてとてやることにする。
仕事中に突然鼻血が止まらなくなってめちゃくちゃ焦った。ぬー、体調不良部なんかなー、年末ってこともあって妙に忙しいし。いや、オレは本来なら忙しくないけど、忙しい人の仕事が回って来て…ごにょごにょ。
さてと、明日はディナーだからがんばろ。
朝から咳が止まらず、微熱気味だったので有給取得。連休中に直してしまわないと…。
tokuhirom さんから、「wassr で先頭に hsbt: つきで発言するのはなんなんだろう」と質問されたのでちょっと調べてみた。
オレの場合、Twitter が一次情報でそこから wassr や frepa に転送してたりするので、 Publish::Twitter(Net::Twitter) や twitter.tt あたりで挿入しているのかなあと思って調べてみたけど、特にそれらしいものをわざわざくっつけているような動きは無し。処理の途中でくっつけていないとしたら元データということで Twitter の Atom を調べてみたら案の定 Feed の title や content の先頭に UserID をくっつけてくれている。
そんなわけで Twitter の Feed から先頭の UserID を取り除く Filter::TwitterFeed を書いてみた。
package Plagger::Plugin::Filter::TwitterFeed; use strict; use base qw( Plagger::Plugin ); our $VERSION = '0.01'; sub register { my($self, $context) = @_; $context->register_hook( $self, 'update.entry.fixup' => \&filter, ); } sub filter { my($self, $context, $args) = @_; return unless $args->{feed}->url =~ m!^http://twitter\.com/!; if ($args->{entry}->title =~ /^(.*)?:\ (.*)?$/) { my $strip_title = $args->{entry}->title; $strip_title =~ s/^(.*)?:\ //g; $args->{entry}->title($strip_title); $context->log(info => "Strip username in title: " . $args->{entry}->title); } if ($args->{entry}->body =~ /^(.*)?:\ (.*)?$/) { my $strip_body = $args->{entry}->body; $strip_body =~ s/^(.*)?:\ //g; $args->{entry}->body($strip_body); $context->log(info => "Strip username in body: " . $args->{entry}->body); } } 1; __END__
かなりアレな臭いがするので誰か添削してください。
例えば、register_fook の所で update.entry.fixup と update.feed.fixup の違いを最初わかってなくて何度やっても
$args->{entry}->title
にアクセスできなくて困ったり、参照とか置換とかよくわからなくてわざわざ strip_title なんて変数を作って{entry}->title に再設定しているあたりが perl レベルのしょぼさを醸し出している。
手書きで一筆添えるのは20枚くらいが限界だなあ。投函完了。
日本語を含む内容を記述しようとするとこんなエラー
500 Internal Server Error broken US-ASCII string (ArgumentError) /Users/hsbt/dev/tdiary/trunk/core/tdiary/wiki_style.rb:128:in `gsub!' /Users/hsbt/dev/tdiary/trunk/core/tdiary/wiki_style.rb:128:in `to_html' /Users/hsbt/dev/tdiary/trunk/core/tdiary/wiki_style.rb:36:in `initialize' /Users/hsbt/dev/tdiary/trunk/core/tdiary/wiki_style.rb:241:in `new' /Users/hsbt/dev/tdiary/trunk/core/tdiary/wiki_style.rb:241:in `append' /Users/hsbt/dev/tdiary/trunk/core/tdiary/wiki_style.rb:206:in `replace' /Users/hsbt/dev/tdiary/trunk/core/tdiary.rb:1533:in `block in initialize' /Users/hsbt/dev/tdiary/trunk/core/tdiary/defaultio.rb:172:in `transaction' /Users/hsbt/dev/tdiary/trunk/core/tdiary.rb:1525:in `initialize' /Users/hsbt/dev/tdiary/trunk/core/update.rb:31:in `new' /Users/hsbt/dev/tdiary/trunk/core/update.rb:31:in `<top (required)>' /Users/hsbt/Sites/tdiary/trunk/update.rb:5:in `require' /Users/hsbt/Sites/tdiary/trunk/update.rb:5:in `<main>'
まだまだ道のりは遠そうだ。
併せて読みたい ruby-core と Wassr
今まで惰性で買い続けていたけど、読み返さないコミックをまとめて外部倉庫(ブックオフ)に預けてきた。今回預けたのは
の合計56冊で3500円也。
購入価格の8分の1。コミックにしては高額の方だけど、こういう値段なら読みたくなった時にTSUTAYAからレンタルした方が物理的に幸せだなあ。
帰宅してからプレイ開始して気がついたら5時間経過していた。何が起こったのか(ry
昨夜の時点で9章で金を貯めて強化をしておいた方が良いというお告げがあったので、ひたすらクリスタリウムの穴埋め作業をするなど。ヒーローだけやたら早くクリスタリウムが埋まったんだけどこれはストーリーの都合かなあ。武器強化の方はいまいち手探りでどこまで資金を突っ込んだものかわからないので保留中。
Pages に縦書き機能が無くて絶望した。OpenOffice.org で作ることにする。
今日は10人くらいだったかな? ちょっと最初の会議が長引いていて、机の配置が微妙ですみませんでした。
オレは tDiary に kakutani が作った tdiary-request ブランチを投入したり、某 Gold の勉強をしたり、Rails3アプリを開発したり。来週は年内最後の asakusa.rb ですよ。
社内で動かしている Jenkins では cucumber で @javascript な feature はスキップする設定、つまり
$ bundle exec cucumber features -t ~@javascript
を実行してたんだけど、Jenkins でも Xvfb を使えば firefox を仮想ディスプレイ上で起動して Selenium を走らせることができるということは知っていたので重い腰を上げて環境を構築してみた。
まずは Xvfb と firefox を入れなければならない。OS は funtoo を使っているので emerge を使ってガンガン入れる。
$ USE="xvfb" emerge -auvDN xorg-server firefox-bin
基本的に必要な物は上記の二つだけ。
Rails 側の変更点としては headless という gem を追加するだけ。これは Xvfb を起動したり終了したりをうまいことやってくれる gem. 今回は cucumber で headless を使いたいので下のような内容を features/support/env.rb に書いた。
headless = Headless.new headless.start at_exit do headless.destroy end
あと linux で selenium を走らせるのが初めてで知らなかったんだけど、 selenium-webdriver は OS が Linux の場合は firefox というバイナリ名でブラウザを探すみたい。なので firefox-bin を使っている場合は firefox という実行ファイル(シンボリックリンク)が存在しなかったりするので、よしなに作成したり selenium-webdriver のバイナリパスを書き換えて対応する必要がある(やってないので誰か頼む)。
ここまで来たら、Jenkins で -t ~@javascript を外してもテストが実行できるようになるはず。最後に環境構築以外ではまったポイントは cucumber を --strict オプションで実行していると pending な feature があった場合にリターンコードが 1 で終わってしまい、Jenkins でテスト失敗と見なされること。これは、どうせ pending の feature はいつまで経っても pending だし必要ないコードなのだろうと判断して消して対応した。
テストの実行時間が3分から7分とだいぶ増えてしまったけど、これはこれで全てのテストを実行するために必要な時間なのでこれを何処まで減らすことができるかという方に今後は注力していくつもり。
出ました。
今回は @kentaro の「入門 Puppet」を抜粋したダイジェスト版や 44 号のリリースから今までのアクセスランキングなどを担当しました。電子書籍のダイジェスト版というのはるびまに中々相性が良いと思うので、自分の書籍も載せて良いよという人がいたらご連絡ください。リポジトリへのアクセス権をくれれば勝手にやっておきます。
iPhone4 が 4400 円、HDD 1TB が一つ2000円という査定額だった。ジャンクボックスに放置したままなので即決で買い取ってもらった。便利。
妻から足冷たすぎるだろと指摘されたので、オススメされたエクセロフト フットウォーマーを試しに買ってみた。
本当は雪山登山などでテントの中で凍傷などにならないように温めるための防寒具なんだけど、この時期にデスクに座って作業したり、普通に過ごす時にも履いておくと足の指先が冷たくならないので大変よい。
技術評論社様から頂きましたありがとうございます。
今号の git 特集は知ってることが大半だったのでパラパラと眺めて、ドラクエの方もチーム体制やモーションに関するアレコレは面白かったけど、ブランチ戦略であるとか開発プロセスについては、ブランチ切る日は数時間かかってデプロイロックが〜みたいなやつに近い話だったので、大変そうだな...という感想で辛さしか無かった。
「私を変えたソフトウェア」特集はとても良くて、特に竹内先生が相変わらずロックで面白かったかな。ちなみに僕を変えたソフトウェアは tDiary と Ruby です。
gemspec には指定した ruby や rubygems のバージョンでのみインストールを許可するような仕組みとして required_ruby_vesion
と required_rubygems_version
が用意されているけど、これらの比較は文字列比較ではなくて、なかなか賢くできている。
例えば、required_ruby_version='>= 2.3.0dev'
と指定して Ruby 2.3.0 で gemspec を読み込んだ時は以下のような比較が行われる。
Gem::Requirement.create('>= 2.3.0dev').satisfied_by? Gem::Version.new('2.3.0')
=> true
true なので、2.3.0 ではインストールできるよ、ということを示している。ruby や rubygems に新しく追加された機能を使った gem を作ったりメンテナンスする人は覚えておくといいと思います。
今月は MoneyForward さんの本社ビルで開催。いつもありがとうございます。
https://bugs.ruby-lang.org/projects/ruby/wiki/DevelopersMeeting20161221Japan
今日は 2.4.0 リリース、数日前ってことでリリースに関係するような Blocker Issue を眺めて方針を決めてから、いつものように 2.5 に向けてやるやらない、これどうする、というような Issue を triage していた。
自分は少しずつ進めていた標準添付ライブラリの Gemify 計画をちょっと勢いつけるために、 2.5 ではより広い範囲で gem としてリリースして、切り出すための下地をやっていくぞってあたりの合意を取るなどしていた。やっていこう。
あと、帰りに nalsh さんと FF15 についての感想戦ができたのが収穫だった。
Jonathan Rasmusson の新刊なので読んでおこうという程度の気持ちで読んでおいた。
Rails やその他のフレームワークによる開発の経験があって、xUnit, xSpec でテストを書いて、ファイルがでかくなってきたから分割して、selenium で E2E テストで遅くてつらくてじゃあテスト戦略どうするというのを考えて、mock と stub 使ってたら実リクエストじゃないと再現しない~...というようなアレコレに「わかるー」という感想がある人は読む必要がありません。
逆に今並べたような内容でイメージできない内容が含まれている人がいたら買って読んでおいた方が良いでしょう。主にテスターやディレクター、ジュニアデベロッパー向けの本としては、テストに関することが網羅的に書かれていたので良い本と思います。
家でメインで使っている WiFi ルータが TimeCapsule で HDD は故障していてなおかつ Apple もディスコンにしたという状態になってしまったので、TP-Link の上位モデルで置き換えた。
どのメーカーにしようか悩んだんだけど、Google WiFi は2年前のモデルだし、国内メーカーのはセキュリティ()強化機能みたいにいらないもの満載という感じなので、必要最低限の機能が搭載されていてスペック的に満足できる A10 って感じで。置き換えたことでだいたいどの端末でも 200-400 Mbps くらいの速度が出るようになったので満足。
一年お疲れ様、ってことで妻と一緒に溜池山王の健保会館にある木都里亭でしゃぶしゃぶ御膳というコースを食べてきた。最初は一新にして鮨を食べようと思ったんだけど予約が取れなかったのでこちらへ。しゃぶしゃぶ、自分ですくタイプじゃない作ってもらうというやつで、想像してはいたけどかなり満足度は高かった。鮨にこだわらずにこういうのもレパートリーに入れて行こう。
この後は渋谷経由で目白のエーグルドゥースで予約していたクリスマスケーキを受け取ってから帰宅。渋谷でスクランブルスクエアでも見てくるか、と思って軽く寄ってみたけど、人多すぎで 2F だけみて外に出てしまった。もうしばらく待って人が減ってからからかなあ。
一時期はストーリーがどうなることかと心配だったけど、ちゃんと競技かるたが中心の話に戻ってかなり面白くなってきた。どう着地させるかはもうちょい待ってからという感じだけど、うまく終わってほしいなあ。
昨晩、Ruby 3.0.0-rc1 がリリースされたのでシュッと ruby-build をリリースした。
https://github.com/rbenv/ruby-build/releases/tag/v20201221
JRuby 9.2.14.0 も含まれているので、この辺を使う人はアップデートするのと、Ruby 3.0 については手元のアプリで bundle install && rake test
などを実行して動かねー、動いたーなどを試してもらえると助かります。
https://github.com/akr/all-ruby に 3.0.0-rc1 を追加して build しなおしたものを Docekr Hub と ghcr.io に push しておいた。
$ docker run -it rubylang/all-ruby:latest /all-ruby/all-ruby -v
$ docker run -it ghcr.io/ruby/all-ruby:latest /all-ruby/all-ruby -v
という感じで様子を伺うことできます。
Rails 7 がリリースされたので https://rubyci.org/ を Rails 7 にした。そもそもが素朴なアプリケーションなので、別に困ることなくアップグレードはできたけど、airbrake の ruby sdk が Rails 7 には未対応だったので外すとかは必要だったかな。
bin/rails app:update
の変更点を見るに Rails の config サイドでは大きい変更はあまりなくて、その外の assets 方面が中心かな、って感じだった。まだ Rails 6 以前のお作法な frontend になっているので、どっかでエイやっと Rails 7 のデフォルトにするかも。
あんちぽCTOの管掌部門メンバーで渋谷のなるとキッチンで細々と忘年会を開いてきた。あいからず若鶏半身揚げを食べてたんだけど、半身揚げの後に写真にあるようなザンギと野菜の天ぷらの山が登場して参加者の年齢層的にばたり、となってしまった。
今年もお疲れ様でした。
Amazon が 2022/8 に mobi フォーマットのサポートを終えていることに、先日 mobi ファイルを送信して気がついたので、Kindle のパーソナルドキュメントに送信し続けていた mobi ファイルのうち PDF ファイルがあるものは Apple の Book アプリで読むようにした上で削除、さらに mobi しかないものも Kindle から削除してしまった。
別にこれらは Kindle に残しておいてもいいのだけど、どう言うフォーマットをどこで読むか、と言うのを分けてしまうと読書記録などが破滅するのでこの際 Kindle は Kindle で買ったものだけ、それ以外は全て Google Drive に保存して Book アプリ、と統一することにした。
いろいろ眺めてみるとオーム社 eStore で買った達人プログラマーなどがあって、「これのオリジナルファイルや PDF どこだっけ...」と Google Drive の中をさまよったり、Rails Guide は mobi で配信してたけど epub あんのか...?と思って調べたら、main では epub になってるけど 7.0 のブランチではまだだったのでバックポートリクエストを出したりしていた。
https://github.com/rails/rails/pull/46782
大体のものは PDF または epub にもなっててなんとか読むことはできそうなんだけど、PragProg が以前に発行していたマガジンは mobi しかなくてもう読めないのだなあとかしみじみとしていた。不自由なフォーマットはやはり不自由。
自分はまだ確認してないのだけど、オーガナイザーとやり取りを進めていた来年の RubyConf AU 2024 に登壇するということが何処かで公表されたらしく、改めてオーストラリアについて眺めることにした。
メルボルンとシドニーにはどちらも1度行ったことがあって、RubyConf AU 2024 の開催地はシドニーということもあり、前回行ってない場所にいくかなあどうしようかなあと悩んでいたところに、キャンベラという選択肢もあるなと考えたりしていた。ただ、キャンベラはシドニーから車や列車でも 3時間以上という場所らしく、ポイッとは行ける距離でもないのが悩ましい。
しかし、RubyConf AU 2024 の発表は何処に行けば確認できるのかまるでわからない...まあいいか...。
C11 地球の歩き方 オーストラリア 2023~2024 (地球の歩き方C ハワイ南太平洋オセアニア)
Gakken
¥2,200
オフィスでやることがあったので、秋葉原に行く前に東京駅のステーションギャラリーに行って開催中の特別展を見てきた。
仏像、思いの外ライセンスというか認証された仏像とそうではない仏像という棲み分けがあって、見様見真似で後者が芸術的にも独自の発展を遂げているってのが面白かった。次のステーションギャラリーの展覧会は写真展示っぽいのでおやすみかなあ。
美術系の本のこの時期は来年開催される展覧会まとめ、という特集が多いのだけど芸術新潮は特集ではなくて増刊による別冊だったのでしょうがなく買っておいた。
だいたい目星は付けておいたけど、気になるのは4-5月の京都・奈良で開催される雪舟と空海の特別展、11月の大阪で開催される塩田千春の展覧会かなあ。東京のはだいたい定期巡回、というノリで行くのでそれ以外の都市は予定を組んで頑張る。
前回が 2024-10-19 だったので2ヶ月と少し。
最近、疲れていたのか散髪してもらっていたときのほとんど記憶がない。行きつけのところでは、最後にエスプレッソが出てくるのだが、めちゃくちゃ美味しく感じて終わったあとに「あー、疲れが取れた」という感触があったので何も考えないで1-2h座っているというのが効いていた気もする。
ビリヤニが好きで、できる限り違う店でビリヤニを食べるようにしているんだけど、この日は東京日本橋タワーという高島屋の隣りにあるオフィスビルの地下レストラン街にあるスーリヤという店に行ってみた。
ビリヤニを食べるとき、カレーが付いてくる店と単品の店があるけど、ここはカレー付きだったのでマトンカレーを頼んだ。なかなか美味しかったので、選択肢がないときはここに来ても良さそう。
カレーを食べたあとはアーティゾンに行って企画展と常設展示を見てきた。いつもは妻と2人で来るけど、この日は1人。アーティゾンは年パスもあるし何回見てもいいので、また来ることになってもその時はその時。
企画展では毛利悠子によるインスタレーションの展示だった。入口からだいぶいい感じでスタートした。
この日は細かい解説などは読む時間がなかったのでフィーリングでぶらぶら見ていたけど、波と映像と音、というのを表現したこのインスタレーションはなかなか好みだった。
企画展示のあとは5-4階の常設展をブラブラと眺めていた。アーティゾンは所蔵品も豊富ながら、それらをうまくキュレーションというか利用して現代アートの展示も工夫しているので何回いっても見応えがあってよい。この作品とこれを並べると、こう見えるのか、みたいな。
アーティゾンのあとは丸善に寄って、山口晃の画集など数冊を PayPay 還元狙いで買ってから、三越まであるいて予約していたクリスマスケーキを受け取って帰路へ。お疲れ様でした。
# Oかもと [不幸中の幸い。大事に至らなくて良かったですね。]
# しばた [ありがとうございます > Oかもとさん 何とか復活しました。]
# はじめ [大事にいたらず、なによりでした。 あなたに何かあると悲しむ人がいることを忘れずに。 それから、今回はいい勉強をしたと..]