80年も昔にこんなすばらしい文章があるのに、月曜日の9時によくテレビ朝日に出てくるT教授からまともな話を聞いたことがない。
関西弁が変換できるということで有名なATOK15を買った。オンラインパッケージ販売で買ったのでちょっと安上がりだった。
素晴らしい。
紀伊山地は高野山、熊野権現と仏教と神道の聖地だが、寺社という言葉が指すようにもともとは寺と神社は一つのもの。天皇を中心とした国家を作る明治政府の政策によって神仏分離令が出されてから寺社は別々のものとなった。
このような寺社の聖地に常々行ってみたいと思っているけど、いかんせん金銭的問題が立ちはだかる。早いとこ、手に職をつけなくてわ。
むむ、こりゃ便利。
「いま見ているページのURLを、本文に挿入してくれると最高」を実現すべく小細工してみたけど、自動挿入というまでにはたどり着けなかった。
ぱっと試して見た感じで
target = window.document.forms[0].body; target.focus(); target.value += pnir.url
では、Trackbackの宛先のツッコミ欄にURLが挿入されてしまう。どうやらdocumentオブジェクトは作成されたタブの情報しか持たないようで、タブをまたがって処理はできなかった。Sleipnir独自のAPIでタブごとの操作ができるなら自動挿入は実現できそう。
しょうがないのでdocumentオブジェクトを作成後の処理に
window = pnir.GetWindowObject(id); title = document.selection.createRange().text if (title == "") { title = document.title; } window.clipboardData.setData('text',"[[" + title + "|" + pnir.url + "]]") window = null;
なんてのを追加して、クリップボードにWikiStyleのフォーマットをコピーするように設定。本文欄をクリックしてCtrl+Vという処理が挟まるけど、まぁ許容範囲。
ここまでやって、「TrackBack URLを自動で設定し、更に言及先のリンクを作ってどうするのだ。」と思ったけど、TrackBackはリンクした先に知らせる事だし、リンク作成はここの読者に知らせることと考えれば、それぞれの機能の棲み分けが出来る。
と、「散々語り尽くされた議論を忘れた頃に大発見のように書く」。
こんな記事が出たあとに、新聞記者の暴走が原因とか総務省擁護のコメントが多いけど、これは役人がよく使う手だよね。
予算請求と施策を決定する最終的な材料となるのは報告書なんだから、報告書を決定して発表したあとに「意図はそんなところにはない」とか「マスコミによる過剰報道だ」とか個人的に言い訳をしても説得力がない。
意図がそんなところにないなら、報告書の提言のくだりの後者の部分で「実名で」という言葉をわざわざ入れる必要はないと思う。
Windows版が出てます。バージョン番号は4.9.0.17。skypeもそうだけど、いい加減ファイル名にバージョンナンバーを明記してくれないかなあ。
目玉機能のポッドキャストはかなり良い感じ。ラジオ局で一番最初に手を出すのはどこかな。
基本的に人前で着うたを鳴らすのは恥ずかしいことと思っているので、着信メロディ関係はどうでもいいとして、電子書籍やムービーコンテンツなど、いつの間に携帯は著作権ゴロの集金端末となったのだ!
これだけ著作物まみれにしておいて、機種交換の時にコンテンツの移動は出来ませんというのは筋が通らないわ。
良い天気なのでぶらぶらと札幌駅前へ物欲の旅へ。ビックカメラで来週13日のペルソナ3に備えて
PlayStation 2 (SCPH-75000CB) 【メーカー生産終了】(未定)とステラプレイスで夏物のシャツをいくつか買ってきた。
旭屋書店で
ライド・オン・Rails Ruby on Railsを徹底攻略(吉田 和弘)を探してみたけど、案の定関東とは時差のある離島なのでおいてなかった。とほほ。
新しく買ったPS2だけど、これ静かだねぇ。今までの掃除機のようなファンがあり得なく感じてきた。さて、CDレンズがぶっ壊れているPS2はどうしようかな。どっちにしろ中古ショップに持っていっても売れるようなものじゃないし、分解して掃除してみる?
livedoor お天気プラグインで取得した天気情報をカレンダーっぽく表示するweather_index.rbをtDiaryのcontribパッケージにさっきコミットしました。
動作条件として、ruby-1.8.2以降と拙作livedoor お天気プラグインで取得したxmlデータが必要です。あと、tDiaryを設置したディレクトリじゃなくても動きます。とりあえずデモ→weather_index.rbのデモ
使い方はなんてことなく先頭の4つの変数
@index = "/path/to/this/cgi" # weather_index.rbを置いた場所 @lwws_path = "/path/to/diary/cache/lwws" # lwwsデータの場所(通常はtDiaryのデータディレクトリ + /cache/lwws) @diary_index = "/path/to/diary/cgi" # tDiaryを設置している場所 @theme = "default" # テーマ名
を変えるだけです。@diary_index と @themeは無くてもいいんですがコスメティック重要ってことで、tDiaryのテーマをそれっぽく使ってます。Ajax化とかお天気関係の統計とかはぼちぼちやります。興味のある方はどうぞお試しください。
「ああ、先月の週末は全部雨だったんだなあ」とか、「今年は3月まで雪が降っていたのか」とか振り返りしてみると楽しいかもしれず。
1001のバイオリンはワンダブラックコーヒーのCMで流れているあの曲。勢いで1000のバイオリンの方もポチっと買ってしまった。タイムマシンにおねがいの方はキリンビールのCM。こっちも夏らしく良い感じの曲で満足満足。
なんか体制が大きく変わって、そんなこんなの社内システムの情報更新とかそんなのが大量な始末。開発らしい開発は今後のスケジュール調整だけで終わってしまった。
やっと天空都市にたどり着いたよ。平日はダンジョン間の移動だけでおなかいっぱい。今週末にはクリアできそうかなぁ。はやく SRW OG やりたい!
7月になったので Test_SelectFilter ブランチを trunk にぶっこもうと最終チェックをしていたときに理解したメモ。
まず typepad antispam は verify-key メソッドが動いていないようで、でたらめな API キーを設定しても通ってしまうし、でたらめな API キーを設定して comment-check メソッドを呼び出しても spam 判定をしてくれる。
という API キーの状態を踏まえて、irb で 実際に挙動を確認してみた。動作チェックに使ったのはえろぺおさん作の TypePad AntiSpamライブラリRuby版をベースに初期値を突っ込んだもの。変更したものは coderepos に置いた。
で実際に動作チェックを irb でしてみる。まずは Akismet から
>> require 'as-antispam.rb' => true >> as = AkismetAntiSpam.new( '66f515ebdae4' ) => #<struct AkismetAntiSpam blog="http://blog.example.com/", user_ip="192.168.0.1", user_agent=nil, article_date="2008-05-31 01:24:00", permalink="http://blog.example.com/entry-1.html", comment_type="comment", comment_author="foo", comment_author_email="foo@bar.com", comment_author_url="http://blog.bar.com/", comment_content="Hello!"> >> as.check => true >> as.comment_content = 'viagra' => "viagra" >> r = as.check => true
ふむ、「viagra」というフレーズだとspam とはみなされないらしい。 次に typepad antispam で試す、APIキーは Akismetと同じものにする(でたらめ)
>> require 'tp-antispam' => true >> tp = TypePadAntiSpam.new( '66f515ebdae4' ) => #<struct TypePadAntiSpam blog="http://blog.example.com/", user_ip="192.168.0.1", user_agent=nil, article_date="2008-05-31 01:24:00", permalink="http://blog.example.com/entry-1.html", comment_type="comment", comment_author="foo", comment_author_email="foo@bar.com", comment_author_url="http://blog.bar.com/", comment_content="Hello!"> >> r = tp.check => true >> tp.comment_content = 'viagra' => "viagra" >> r = tp.check => false
ほう、typepad だと viagra は拒否するらしい。次に色々条件を変えてみる。まずは comment_author_url を nil にする。
>> as.comment_author_url = nil => nil >> r = as.check => true
Akismet は結果に変化なし。
>> tp.comment_author_url = nil => nil >> r = tp.check => true
えー、typepad は comment_author_url を空にするだけで同じ viagra でもスルーしてしまうのか。
この後、二時間くらい色々と条件を変えて試してみたんだけど、antispam サービスにリクエストするパラメータの組み合わせによって、同じコメント内容でも判定結果が異なるっぽい。とりあえず、typepad antispam の方も spam フィルタとしての機能は実現してるから問題は無いね。
えろぺおさんのツッコミに従って nil ではなく、空文字で試してみた。
>> tp.comment_author_url = "" => "" >> r = tp.check => true >> tp.comment_author_url = "http://blog.bar.com/" => "http://blog.bar.com/" >> r = tp.check => false
うーむ、やっぱり何らかの文字列がないとダメっぽいなー。
WEB+DB PRESS Vol.45 と 初めてのRuby の2冊を購入。Web+DBの方は
が面白かった。初めての Ruby は通勤途中にぱらぱらと眺めている途中なのでまだ2章。感想はあとで書く。
昨日の昼くらいに softbank 様から「お前に iPhone4 を売ってやらんこともない」というメールが届いたので、身分証明書をスキャンしてアップロードと本申し込みをしてみた。
スムーズに進めば3営業日で届くらしいけど、さていかに。
そろそろ新規開発は rails3 でやらんといかんなーと思ったのでやってみた。
rails2 の環境を残しておかんといかんなーと思いつつ、bundler とか組み合わせるとカオスになる rvm とかは当然のように使ってないので、ベストチョイスと感じる以下の方法にした。
ursm によると、おもむろに
bundle exec rails new .
するのもいいんですが、production なアプリを作る時はとりあえず
bundle exec rails -h
して、Default の ruby のパスを確認すると良いらしいです。というのも、ここで homebrew の ree とかを使っていると ruby のパスが
/usr/local/Cellar/ruby-enterprise-edition/2010.02/bin/ruby
とかになって、script/rails の shebang が「うわぁ」って感じになってしまうため。
そんなこんなで最終的なオプションは
bundle exec rails new . -T -O -r "/usr/bin/env ruby"
って感じですかね。-O は場合によって、-d mysql とかてけとーに。
@nahi さんの誘いで昨年の忘年会と同じメンバーでピザを食べてきた。最近高まってしょうがない人材の流動性の話とか黄泉Ruby会議とかOpenSSLとかJenkinsの話でだいぶ盛り上がったのであった。
詳しく書くには余白が足りないので(ry
出張で福岡支社に来ています。今のところ夜は以下のイベントに参加する予定です。
最近のペパボに興味がある人は上記の時間帯に弊社オフィスまでお越し下さい。
今日はギリシャ組がお休みだったけど、だいたいいつものメンバー 10人弱で最近のアレコレを話したりコード書いていた。
他にも nokogiri-1.6.0 のファイルサイズでかくなったとか、paypal 死ぬと技術書籍の販売サイトが一斉にごめんなさいしますよねとかそういう話をしていた。だらだら~とこういう話をするの楽しいなあ。
久しぶりに upstream を fetch したら 3.3-stable ブランチが降ってきたので、3.2 向けに fork したブランチから diff をパッチとして作ってから 3.3-stable ブランチに当ててアップグレードした。割と疎になるように fork してるのでトラブルなくアップグレード完了
何かおかしい箇所があったら教えてください
nanoblock の新製品のマリーナベイサンズを組み立てた。以前に買ったマーライオンと向かい合わせにするとマリーナベイがほぼほぼ再現できて大変良い。
ちなみにこの風景の実物はこんな感じです。
マリーナベイサンズの後ろのガーデンオブザベイもあるとさらに雰囲気が出ていいなあ。
YAPC::Fukuoka から帰宅して荷物を置いてすぐに都議選の投票を済ませて銀座を散歩してきた。今日しか行くことができない焼き物の展覧会があったので頑張った。
銀座ではメゾンエルメスでやってた「水の三部作 2」アブラハム・クルズヴィエイガス展を見てから近くにある日々というギャラリーへ。ここでは村上 躍作品展のうち、急須を購入。
前に北千住にあるうつわ萬器で見かけたときに悩んだ末買わなかったというやつで、失敗したなーと思っていたので再び買う機会ができてよかった。
買い物の後は京橋方面にある札幌ドミニカというスープカレーを食べてから、モンベルで妻の服を買ってから帰宅。
3日目、この日は月曜でオルセー美術館などが休館なので、それ以外の美術館を中心に散策することにした。まずはサンジェルマンから西に歩いて少ししたところにある、ドラクロワ美術館へ。ここはルーヴルの別館でルーヴルのチケットで入ることができるんだけど、今回のパリ旅行では刊行開始時にミュゼパスというミュージアムの共通パスを買っていたのでそれを使って入館。
この美術館自体は美術品の展示、というよりはドラクロワの生涯やスケッチを公開するというのんびりした感じの美術館だったので、ルーヴルに行った後にセーヌ川南をちょっと散歩というくらいで行くのがいいかも。
いったんホテルに戻って休憩するために、「二度目のパリ」という番組で紹介されていた地元の人になじみのフランスパン、サンドイッチの店のスミスベーカリーに行って昼食を買ってから軽くかじりつつホテルへ。少し休憩して水分を補給してからは改めて散策を開始して、今回の目的のもう一つのギュスターヴ・モロー美術館へ。
ギュスターヴ・モロー美術館はルーヴルの少し北に位置していて、ホテルからは地下鉄を乗り継いでから徒歩で移動。モロー美術館では、原画をどうしても見たかった「出現」を見てからその他作品をゆっくり見ていた。モローの絵は改めて見ると、FFでお馴染みの天野義孝っぽさがあって良かった。モロー美術館の後は再びルーヴルへ。
ルーヴルでは特別展として開催されていたドラクロワ展から鑑賞を開始して、フランス絵画コーナーから移動していた民衆を率いる自由の女神やその他の作品をのんびり鑑賞。
この日はルーヴルで大理石の彫刻やヘレニズム、中世以前の美術品を中心にぶらぶらと散歩。この日の後もまだ来館する予定があるのでとりあえず夕方の閉館時間まで見れる限りで見ておくという感じで、次の予定へ。
この日は夕食と一緒に LIDO のショーを見ることにしていたので、いったんホテルに戻ってシャワーを浴びてからTシャツに半ズボンではなくて、もうちょっとパリッとした格好に変更してからシャンゼリゼ通りの端にある LIDO の劇場へ。
LIDO 料理自体はまずまず、シャンパンもまずますという感じだったけど、ショー自体はムーランルージュのそれのようにとてもよかったので満足。前半のコンサートも観客が一緒に踊ったり、後半もフレンチカンカンなどでかなり盛り上がって楽しかった。
時間を少し作って散歩する時間はこの日しか取れなさそうだったので、半休をとって札幌市内を散歩してきた。まずは北海道近代美術館で開催されている東山魁夷の展覧会に行ってきた。唐招提寺の襖絵、ということでこの機会に見れたのはよかったなあ。この美術館、北海道にいた時は全く関心の対象にはなってなかったんだけど、美術を少しかじってから開催されている展覧会を見てみると味のあるキュレートでもっと行けばよかったなあ…と感じてしまう。
美術館の後はモンベルに行って服を買ったり、赤レンガテラスでパンを買ったり、地下街でお菓子を買ったりしつつ、六花亭のカフェで一休みしてから帰ってきた。もうちょい時間があれば、ジュンク堂なども行ったんだけどなあ。また今度で。
以前にお試しということで 2 週間のプランでレンタルをしていた iRobot のブラーバジェットを定額プランでレンタルすることにした。
これ、すでに体験版で借りているものを定額プランに変更できるのかと思いきや、体験版と定額プランとで利用する本体は別っぽく、一度返してから借りなおしという手続きだった。ちょっと面倒だな~と思ったけど、借りなおしたモデルは購入した時と同様の新品が未開封のまま送られてきたので、「なるほど、そういう仕組みか」となった。
このまま使い続けて新しいモデルがでたら、返却して新しい方を借りなおす、という方がよさそう。
今までモーニングを読むために D モーニングを毎月500円で利用していたけど、アフタヌーンやヤンマガも読みたいなあと思い 1000 円弱のコミック Days の方に変えてしまった。ビューワは継続開発中ということもあって使いやすい。
ただ iPad で使うときに、画像のサイズがあってなくて若干残念なので、この辺のクリエイティブはもう少し気にしてほしいなあ。
美人画づくし参に続いて1-2を読もうかと思ったけど、シリーズからはいったん離れてボーダレスという日本画に限らない作風の美人画集を買って読んだ。
づくしよりも幅を広げるという意味で面白かったのと、づくしの方でも扱っていた海外の作家による日本的な美人画を掲載していたのが面白かった。コラムも割とぽっかりと抜けている90-00年代のいろいろを埋めるような内容なのがよかったなあ。
いわゆるチュートリアルであるところのストーリーをクリアした。20h 満たないくらいだったと思う。ラスボスもなんだけど、新しく追加されたモンスターが割と似ているというか、謎のエネルギー放出でドカンドカンというのが多くて、おもしろいなりにちょっとマンネリでは...とは感じた。
マスターランクが解放されたので、ストーリー以外のサイドクエストを埋めたり装備作成をしながら本編の MR 上げと緊急クエストなどをこなしていく感じで。ゼノブレイド3の発売までにはひと段落つけそうでちょうどよさそうに感じる。
7月に入ったので、朝顔カルテル(値段と販売時期が朝顔祭りに合わせて何故か近所の花屋で全て同じなのでこう命名している)から販売が始まっていたので、写真にある琉球朝顔と通常のやつの2鉢を買ってきた。
花屋は9時から開いていて、この時間だとそれほど暑くないかなと思いきや帰宅したらやや汗ばんでしまった。この時期は気温に加えて日差しもなかなかな時があるのでベランダガーデンの鉢の位置を微調整などして終わり。花屋はこの時期は朝顔しか仕入れないらしくて、他の鉢がほぼないというのが面白かった。
メインストーリーに加えてサブクエストを全て消化、リスキーモブはSをいくつか残して消化、という状態で 52 時間だった。戦闘のアクション、めっちゃデビルメイクライっぽいな、と感じつつ開発チームインタビューを眺めたら DMC の開発メンバーを迎えていたらしく、本当にファイナル・デビルメイクライ・ファンタジーだった。
主人公の能力の特徴からストーリーは想像できる部分はあったんだけど、結果としては裏切られたので良かったといえばよかったかなあ。もっと大円団になってくれてもよかったのになとは思う。キャラはトルガルが本当にかわいいので、DLC などで幼年期から青年期にかけてのストーリーがあると良さそうな気はする。
ゼノブレイドみたいに、絶対プレイしてほしいゲームベスト5には入る感じではないけど、10には入るかなというのが総合点だった。それにしても FF15 は期待していたのに、ラストになって別ゲームかこれ?という状態で、それを補うための DLC が途中で打ち切られてストーリーが最後まで終わってないという有様だったので、最後までしっかりクオリティを落とさずに終えた、という意味では FF16 は立派だと思う(基準がそこなの、というのはありつつ)
もう少しトロフィーを埋めるのはやるつもりだけど、ファイナルファンタジーチャレンジモードはスキップかなあ。久しぶりに一切攻略サイトを見ないでプレイして、満足行くクリア状況だったのはよくて、全体的に大人のゲームって感じで良かった。引き続きこういうゲームが増えるように頑張って欲しい。
ここ hsbt.org に続いて、Google Domains で動かしていた ruby-lang.org も Squarespace に強制migrateされてしまい、どうなるかなと様子見していたけど、案の定 Google workspace を MX に入れている場合は Squarespace が提供する Email routing (hsbt@ruby-lang.org を gmail に転送する、という機能)が使えなくなってしまった。
shugo さんと、それなら Google workspace を g.ruby-lang.org にして、ruby-lang.org をいじることでなんとかしますかねえ、と思いきや Google workspace を使っているときは MX レコードを新たにいじるということも出来なくなってしまい、「はー、Google Domains で出来ていたものが出来なくなってるじゃん」ということで cloudfrare に引っ越すことにしてあれこれ作業をしていた。
方針としては上に書いたように Google workspace は g.ruby-lang.org、ruby-lang.org は Cloudflare のマネージド MX レコードにして、Email routing などはカスタム設定、という感じで shugo さんと二人でポチポチを繰り返していた。これ、Google domains で設定していた Email routing の設定が見ることができなくなっていて、設定は手元に残っている alias とかメールでの設定依頼を掘り起こしてなんとかやっていた。ほんと最悪。
https://bugs.ruby-lang.org/issues/20600
とりあえず、メールであるとか、bugs の通知などは復旧したようで良かった。ほんと後から出てきた Google のサービスは継続性とかサポート体制が最悪に思う。
今週も Zoom に集まっておしゃべり。自分は先に書いた DNS のあれこれをずーっとやっていてあまり話に参加出来なかった。Zoom の AI サマリによると以下のように各自のアクションが決まったそうです(もちろんデタラメ)
次のステップ
• Yusuke: エグザクトGCの実装方法について詳細を調査する
• KoichiSasada: Cコンパイラの拡張なしでエグザクトGCを実現する方法を検討する
• Takahiro: C23のスマートポインター実装プロジェクト「csp」の応用可能性を調査する
• チーム全体: Ruby 5までにエグザクトGCの実装を目指す
• KoichiSasada: フューズを使ってプロセスが停止しない状況を再現し、対策を検討する
• Yusuke: バリュー型のクリーンアップ関数アトリビュートの実装可能性を調査する
• チーム全体: 次回のミーティングで今回の議論の続きを行う
"チーム全体: Ruby 5までにエグザクトGCの実装を目指す" というので笑ってしまったけど、誰かがジョークというか夢を話しただけなのに、そのコンテキストを読み取れずに「決まったこと」としてサマリを作ってしまうのはまだまだだなあと感じる。
昨日、Fedora 38 などを停止した時に Fedora 40 が出ているということを知ったので、それなら aarch64 で作るかなとインスタンスを構築、CI 用に provisioning を実行して Ruby CI に追加していた。Fedora 40 から以下の変更があったようで、provisioning のレシピをいじる必要があった。
zlib-ng-compat(-devel)
を使う必要があるどっちも、「あ、そうですか...」って変更ではあるので、ちゃちゃっと修正してから動くようにした。
今週も discord に集まっておしゃべり。RDRC 2024 の準備をしないとな〜と思いつつ、最近やっている WEBrick 書き換えをしていた。
https://asakusarb.esa.io/posts/1206
モリスさんがやってることをふむふむ聞いたり、最近の Google Maps の挙動についてあれこれはなしたり、MEO(=Map engine optimization)なんて領域があるんですねえ、というのを触れたところで時間切れで終わり。
# kyoun [月曜の9時にテレビ朝日を見てるようではいけない(笑)]
# しばた [おお,kyoun初見参!最近の調子はどうだい?]
# kyoun [何せネットにつながったから好調よ(^_^)]