もうわけわからん…。
yamaguchiさんから買った
独習Java(ジョゼフ オニール)が昨日届いたので、暇を利用してJavaのインターフェイスとかパッケージについて勉強しようとか思ったり。
一般αテスターの募集開始。参加したいけどノートパソコンじゃ無理だなぁ。
「コロニー落としは可能ですか?」なんて熱い質問が普通にあるくらいなので、かなり面白いゲームになりそうな予感。
現在の脳年齢は25歳。脳年齢チェックの時に漢字記憶が出てくると一気に年齢が増加してしまう。セレクトを押しながら脳年齢チェックをタッチするとテストを選択できるので「連続減算」や「記憶加算」のような単純計算だけを選択すれば簡単に高得点?を出すことが出来たり。
この手のゲームは漠然と何も考えないで続ければ高得点を出せるものでもないので、高得点を狙うためのテクニックは必要だよなー。テクニックを使って出した高得点が実際の脳年齢と合致しているかどうかという新たな疑問も出てくるけど。
配属先がめでたく北海道に決まったので、来年の5月中旬(4月-5月上旬は首都圏で社会人研修)から生活する物件探しを始める。
とりあえず、北海道版アパマンショップを利用して1LDK-2LDKで5万以下(駐車場混み)の物件のRSSをFEEDBRINGERに登録。寮も考えたけど、居住空間、交通費、教育費には金をかけろと古くから言われているので、少しくらい金がかかっても、できるだけ広い空間重視。つーか、技術書や漫画等の本が多すぎるのでワンルームは無理。
この話をIRCでしていたら、kengoさんから賃貸情報フォレントのメール配信もいいよと教えてもらったので、こっちでも希望物件の条件を登録しておいた。
そういや、アパマンショップがようやくRSSを活用しだしているけど、不動産こそ既にbuzzwordになっているWeb2.0を活用すべきだよなあ。Ajaxによる地図と物件の連動とか、好みの物件をメタデータで配信するとか。不動産は本や音楽のように頻繁に買い換えるものでもないので、それほど収益性が上がらないというのが、手を出さない原因なのかねぇ。
社員証作成のために証明写真が必要とのことなので、午前中に散髪へ。そのまま大学に行って修士論文のスケジュールを教授と相談。30分程度で終わらせてとっとと帰宅。
その後、軽く昼食をとって証明写真をとるためにカメラのキタムラへ。
今まで手元で管理していた
の3つを tDiary-contrib へアウトソーシングした。同時に hsbt.org からも削除。どれも contrib 止まりな癖のあるプラグインだなあ。とほほ。
coComment Japanなんてものがいつの間にか出来ていて、すげーと思ったのだけど、日本語版は利用するのに別のサービスのIDが必要だったりして10秒でブラウザのタブを閉じたり。
coComment って他人へのコメントを追っかけられて実際便利なツールなんだけど、いかんせんクライアントサイドがだるいんだよな。だいたい、コメントする前に typekey の認証がある時点でコメントするのをやめてしまおうかと思うくらい怠惰な人間であるオレが、自分のコメントを追っかけるために bookmarklet なり firefox の extension の追加ボタンをクリックするわけがない。
なんつーか、こういうのを提供する時って 1 クリックと 0 クリックの差を考えないとダメだよな。たかが 1 クリックじゃない。頻繁に繰り返す動作の 1 クリックはユーザーのやる気を一気になくすのに十分だ。実際、こういうのはブラウザ側で自動的にやってくれんかね。
今日も今日とて Mac のセットアップ
セットアップはこんなもんかなー。
前に調べていた奴を実現させたのでメモ。
@options['sp.path'] = [ '/home/hsbt/dev/coderepos/platform/tdiary/plugin', '/home/hsbt/dev/tdiary/plugin' ]
を tdiary.conf に書く。これで CodeRepos と tDiary-plugin に含まれているプラグインの両方が使えるようになる。
あとはこの日記の本体もシンボリックリンクにして cvs up だけで開発の最新になるようにしたい所。かずひこさんが作業中の Unicode 対応がマージされたら手をつけよう。
友達が札幌に仕事関連で出張してきたので、昼に札幌駅付近で落ち合って西武地下の一灯庵でスープカレーを食べたり、スタバでコーヒー飲みながら、近況の話をだらだらと2時間くらい。
別れ際にジュンク堂を紹介する時間があったので、とりあえずアジャイルプラクティスを紹介しておいた。
書いてなかったので紹介ついでに書いておく。
北海道神宮で挙式をする場合、明治神宮にある明治記念館のような式のための施設が北海道神宮には存在しないので、衣装、日取り、写真、(必要なら)披露宴の全てを別に調整する必要がある。
ホテルやハウスウェディングだと披露宴会場との送迎も含めて一通り調整してもらえるけど、それでも北海道神宮に式を申し込むのは、神宮の取り決めで本人が申し込まなければならない。なので、披露宴会場と神宮とで両方空いている日を調整しないとダメというのがちょっと負担。また、時間自体は1時間単位で結構柔軟に調整できるというのも申し込み時に覚えておくと良い。
自分達はその辺がよくわかってなかったので、最初に神宮で日取りを決めてしまったんだけど、披露宴もそれなりに豪勢にやる場合は、先に披露宴側の担当と相談して日取りを決めてから、神宮に問い合わせという順番の方が良い。理由は後述。
で、北海道神宮に申し込みをした時の代金はこんな感じ。
着付け室は使わないなら必要ないんだけど、使わない場合は和装のままタクシーで移動と現実的ではないので、申込時に頼んだ方が無難。上記は親族・友人参加の場合で、本人達のみの場合はかなり安くなる。
また、この代金は6ヶ月前なら1回だけ日付を変更することができるんだけど、6ヶ月以内になってしまうと予定の変更はできないので、日付変更の場合は新規申し込みと同じ扱いになってしまう。
これらに加えて、この日記で以前から書いているように神宮で式を行う場合は写真を取る場所や時間の制限がかなりきついので、全部自分で手配できるだけの根気があるか、披露宴側の担当に頼んで金で解決するかしないと結構大変という感じかなー。
他の有名どころの神社の挙式はどうなっているのかなあ。
cron や apache2 で rvm でインストールした1.9.2 とかを動かす時に
~/.rvm/rubies/ruby-1.9.2-p136/bin/ruby
を使っていたんだけど、これだとユーザー環境以外でインストールした rubygems が認識されなくてだいぶ困っていたんだけど、このような場合は
~/.rvm/bin/ruby-1.9.2-p136
を使うのが正しいらしい。なるほどねぇ。
さらに gemsets を指定して動かしたい場合は wrapper というものを作るらしいよ。
rvm wrapper ree@rails3 myapp
とかそんな感じで作ってから
~/.rvm/bin/myapp_ruby
とか。
そんなこんなでhsbt.orgで動かすRubyはrvm経由の1.9.2p136にした。だいぶ rvm のことが解ってきたお!
以前に中途半端で放り込んだ tDiary の capistrano 対応だけどやっと hsbt.org で導入したのであった。以下手順。
これでだいぶ安心して最新版を投入できるんじゃない? capistrano便利杉。
3G 通信時の SIM 認識不具合が解消されているらしい。そういや 3G モデルを買ったものの wifi 接続以外で使ったことないなあ。
今でもガラケーは親族間の連絡端末として残しておいて、お財布ケータイやその他モバイルアプリも便利に使っているんだけど、ついにMUFJ のモバイルアプリも今年の夏に終わってしまうらしい。まあしょうがない。
ただ、今後はスマホ版に移行せよとのことなんだけど、モバイルアプリでやっていたようなIC認証みたいなものはなく、今後はPCと同じようにすげー長いパスワードを入力する必要があってこの時点でもうだいぶだるい。外でも気軽に使うために記憶できる限界っぽいパスワードを用意するのもだるいし、結局これを使おうとする時には Chrome を使える環境を用意した方が早そうで使わないことになりそう...
heroku の postgres が 9.5 を beta バージョンとして提供開始したというのを思い出して ruby-lang.org で使っている heroku アプリケーション群も後追いとして postgres 9.4 にアップグレードしておいた。
https://devcenter.heroku.com/articles/upgrading-heroku-postgres-databases
具体的には上の手順に書いてある通りで新規に 9.4 なデータベースを作ってから pg:copy
でダンプリストア実行、pg:promote
で切り替えって感じ。
$ heroku addons:create heroku-posgres:standard-0
$ heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_COLOR
$ heroku pg:promote HEROKU_POSTGRESQL_COLOR
$ heroku addons:destroy HEROKU_POSTGRESQL_OLDCOLOR
bugs.r-l.o は 500MB 弱な普通のデータベースなので、特にメンテナンスは入れないで1分程度のスイッチタイムでしゅっとやってしまった。
主に CLI で機能が追加された、であったり不具合修正したというようなときにヒストリーから go get -u
で一生懸命探しだして実行するよりも今まで実行した go get -u
をまるごと実行してひとまず最新の環境で地雷を踏み続けるという方が楽なので、ヒストリファイルから探しだして実行する雑スクリプトを書いた
#/usr/bin/env ruby
histories = File.readlines(File.expand_path(ENV['HISTFILE']))
gogets = histories.map do |history|
begin
cmd = history.split(';')[1]&.chomp
# only git.example.com, github.com, golang.org, google.golang.org etc.
cmd.downcase if cmd =~ /^go get -u [git|go]/
rescue ArgumentError => e
next
end
end.compact.sort.uniq
gogets.each do |cmd|
if cmd =~ /go get -u (.*)/
puts " Upgrading: #{$1}"
`#{cmd}`
end
end
すでにリポジトリが消えていたり、 go get する対象のディレクトリが変わっていたりすると死ぬのだけど、その辺は雑に無視している。
毎年恒例の Asakusa.rb の新年会で羊とウサギの肉を飽きるくらい食べてきた。久しぶりにあった元気そうな kan さんと一緒に inao さんに技術書頼みますよ~、本はほんとに紙で持ちたくないんですよ~など話しつつ、スクラム本頼みますよ~と反撃を受けたりして大笑いしていた。
Asakusa.rb に来るとコード書くぞ!という気持ちになるので今年も本格始動って感じで。
rubygems と rdoc に File.open
を期待している処理で oepn
をおもむろに使っているところが多くて、CVE-2017-17405のような事象の時に調査に時間がかかってしょうがないので全部置き換えてしまった。
rubygems で一か所置き換えると Bundler の example が落ちてしまう場所があってかなり厳しい。不要な mock が影響しているという感じなので適切な形に直さないとって感じかな。がんばろう。
先日日記に書いた部長会の時に読んだ漫画というのがこの漫画で、サラリーマン活劇としてもなかなか良かった。
漫画の中の描写で取締役会で発言して議事録に残すということが大事というあたりも、そうだよなあって思う箇所がしばしばあってサラリーマン金太郎とは違う正攻法って感じのも多かったのも良かったかなー。
社内ではアウトプット、アウトプットと何度も言っていて、OSS をはじめとしてアウトプットお化けのような状態ではあるんだけど、西尾さんの知的生産術を改めて読んでインプットから含めてちゃんと抑えておいた。
エンジニアの~とはついているけど、別に職種には関係なく、万人がインプット、何かの処理、アウトプット、それを新たなインプットへ、という学びサイクルや抽象化など、「学ぶ」ということを、効率的に行うにはということを解説している本だった。
後半の KJ 法は、僕個人ではいまいちだと思っているので最後はほぼ流し読みだったけど、「学ぶ」とはなんぞやを形式化できてない人には必読書だと思う。
エンジニアの知的生産術 ―効率的に学び、整理し、アウトプットする WEB+DB PRESS plus
技術評論社
¥2,592
Apple Watch で使っているバンドがナイロンのものしかなく、さらに RED とか PRIDE などフォーマルな場所につけていくにはそぐわないモデルなので、えいやっとエルメスのバンドを買った。
Apple Watch のバンド、使い始める前はバンドなんてこんなに取り換えて買う人いるのか?と疑問だったけど、実際に使い始めるとシーンに合わせて取り替えたり、そもそも汚れてボロボロになったりというのもあって頻繁に買い替えるもの、というのが新鮮だった。価値観も使ってみれば変わるものだなあ。
ゲームもひと段落したので積んだままの nanoblock を開けて組み立てた。
nanoblock の担当の人に城担当の人がいるのか大阪城などに続いてひたすら日本の城でやや飽き気味ではある...。それぞれ特徴入れてるんだけど、城というのは同じなので石垣から天守にかけての構造は大体同じなのがネック。
Kindle Unlimited で配信されていたので読んだ。手塚治虫、火の鳥とか名前は聞いたことがあるけど中身は読んだことがないと言う状態だったので、ざっくりと内容や裏にあるメッセージを把握するのによかった。
100分de名著の内容としては、火の鳥が被ってるじゃん、と言うのは気になったけどそれくらい印象が強い話と言うのと、仏教徒の紐付けで解説した人の内容がとてもよかった。
ANDPAD の鳩さんの企画でフルタイムの Ruby コミッタで対談どうですか、という提案が来たのでじゃあ同い年の @mametter さんかなあということで関係者に色々と話をしつつ podcast を収録して、その収録の概要と文字起こしのテックブログが公開された。
それなりに事前にネタを盛り込んだ台本を互いに読み込んで喋ったけど、棒読みっぽくなってしまってなかなか難しかった。ちょくちょくアドリブを入れたりしてみたけど、対象としたい聴衆の皆さんとしてはどうかな〜。
みなさん、ぜひ聴いてみてください。フィードバックや感想は大歓迎。
Discord に集まっていつも通りの流れで開催。ぶらっと集まりながら福岡や鹿児島の話をしていた。
https://asakusarb.esa.io/posts/1128
この日はいい加減書かないとなと思ったまま筆が進まなかった RubyKaigi 2023 の proposal の初稿をうりゃって書いたりしていた。前回の RubyKaigi からあまり時間が経ってないので、〜をやりました、という話はあまりなくて、〜をやった話をするつもりです、みたいになってしまったのはしょうがない。頑張ろう。
昨日の準備会に続いて、2024 年1回目の開発者会議
https://bugs.ruby-lang.org/issues/20075
自分が主導して進める何かはなかったので、Ruby の Grant のプロジェクトを進めている人に声をかけて現状相談したいことがないか、とあるなら時間を確保、みたいな調整をしていた。結果としては、次に繋がるアクションが出てきたようで良かった。
セールで買った地球の歩き方のシカゴを読んだ。今年の RubyConf がシカゴらしく、それならシカゴ美術館に行きたいじゃん?ということで街の全体感や文化エリアなどを知るにはちょっと古いけど十分な内容ではあった。
カナダ東部もだけど、シカゴなどのUSの東側に行くとなると時差もほぼほぼ反転するし中々しんどいのだよなあ。とは言え、シカゴ美術館は行っておかないとダメなので頑張るかな。
Fedora 39 がすでにリリースされていたので、セットアップして https://rubyci.org/ に追加しておいた。RHEL 系はノウハウが蓄積されていてシュッと VM を投入できるので便利。
朝から突然ズキズキー!と不定期に頭痛が発生するという感じだったので、ロキソニンは飲みつつ東京Ruby会議12の前夜祭はお休みして家でたんぽぽワークスというか盆栽ワークスみたいなことをやることにした。
というわけでやっと GA になった GitHub Actions の ARM runner を試しつつ、qemu でヒイヒイ言いながらビルドしている docker image の build ワークフローを書き換えた。
この docker-images はもともと Circle CI で動いていて、GitHub Actions 以外に時間を使いたくないなあと雑に migrate を行って、その後にRubyのリリースと同時にイメージビルドをするような repository_dispatch を追加、という経緯があり以下の3つが主要な workflow だった。
午前中にとりあえず1つ目をベースに2つ目にある amd64/arm64 の両方で使えるイメージを作るというのをガチャガチャやっていたけど、色々いじってみると 2つ目をベースにして3つとも1つの workflow にできるんでないか?となってきたのでやってみたらできた。
https://github.com/ruby/docker-images/blob/master/.github/workflows/build.yml
結構ハマったのが docker manifest
コマンドで、これは amd64 と arm64 なイメージを仮想的な名前をつけて1つのイメージタグとして扱えるようにする、みたいなもので、具体的には podman run --rm -it ghcr.io/ruby/ruby:master /bin/bash
などとやるだけで Apple Silicon な macOS なら aarch64-linux
になるし、x86 な Windows なら x86_64-linux
になる。大変便利。
で、master ならいいのだが、3.4.1 のイメージを 3.4 とか latest としても呼び出したくて、cp とかないんか?と思い調べたもののないので、いちいち全部 manifest create
しないといけなくてややだるかった。さらにこの manifest
コマンドを呼ぶと 1 回ずつ docker pull するっぽく、すぐに docker hub の rate limit に引っかかるなどの制限があってなかなか厳しかった。とりあえず毎日定期実行する限りはギリギリ収まったけど、どこかでエコになるようにしないとダメだろうなあ。
Rack が 3.1 で 3.0 以上の非互換をガンガン突っ込んでいて、tDiary でも対応しないとなあと放ったらかしにしていたのを、重い腰を上げて真面目に調べて動くようにした。
目立った対応としては rack/files
とか rack/server
などが消えてしまったので、非常に雑な patch を tDiary の方に入れて対応したのと env
から rack.input
が無いときは key/value としても入らなくなったので、そのへんを回避するようなコードを入れていた。
2024 年にもなるのに FCGI で動かしている tDiary なのでこういう変更も別に対応するけど、仕事でこういうのをやらんといかん、みたいになったら相当にだるいので、もうちょい何とかならんのかなとは思う。
# しばた [coComment のテスト]
# しばた [coComment のサイトを再確認してみると、埋め込む Javascript のコードが変わっていたので追従させて..]