高校生の頃、学校で、将来何になりたいか?みたいな雑談をしていて、俺は王様になりたいって言ってる友達がいた。
王様は何もしなくても威張ってていいからって理由。
その時は何言ってるんだと思ったけど、それから何年も経って、ああ、そうだなってなるほどと思った。
当時、自分と比べて、考え方のレベルが違ってた、一つ上のステージだったんだな。
彼は今何になってるんだろう。
Excel列名変換問題 – SQL編
ここにExcel列名変換問題というのがあって、内容は下のようなもの。
問題1: Excel列名変換問題
仕様
入力されたアルファベットを数字に変換する。
変換ルールはExcelの列名と同等。
例) A=1、B=2、Z=26、AA=27、XFD=16384
起動時引数
[0] アルファベット (A~ZZZZ…[上限なし])*2
実行例
ExcelColConv.pl A → 1
ExcelColConv.pl AA → 27
で、SQLで考えてみた。PostgreSQLのバージョン9以降。
(generate_series()が必要なので。MySQLなんかだとピボットテーブルが必要。)
SQL上手い人はもっといい解法をいくらでも思いつくんだろう。
入れ子集合モデルとか眩しすぎる。
自分には一生かかっても思いつきそうにない。
#!/bin/sh str=$1 SQL=" SELECT SUM(y.num) AS result FROM ( SELECT x.*, __indexes.n * (26 ^ (x.pos - 1)) AS num FROM ( SELECT substr(_chars.chars, _chars.n, 1) AS c, length(_chars.chars) - _chars.n + 1 AS pos FROM ( SELECT generate_series(1, length(chars.chars)) AS n, chars.chars FROM ( SELECT '$str'::text AS chars ) chars ) _chars ) AS x JOIN ( SELECT _indexes.n, _indexes.c FROM ( SELECT n, chr(indexes.n + 64) as c FROM ( SELECT generate_series(1, 26) AS n ) indexes ) AS _indexes ) AS __indexes USING (c) ) y; " echo "$SQL" | psql
今年の抱負
去年の大晦日の話。
自分は西武のクラブオンカードのポイントを貯めてる。
クラブオンポイントは有効期限があって、年末で失効するんだけれど、自分の持ってるポイントも失効対象なのを思い出した。
その時点で12月31日の19時くらい。
渋谷近くにいたので、速攻で無印良品に行って、適当なもの買って、ポイントを消費した。
何でも良かったけど、おせちも良いけどカレーもねって言葉が引っかかって、カレーとか適当に買った。
ポイント失効するから早めに使っておかないとな、と思っていたのに、ギリギリになってしまった。
もっと余裕を持って行動したい。それが今年の抱負。
40MBのハードディスクが2万6000円(ギガじゃないよメガだよ!)
さっき偶然見つけたこのサイト、「PC-98のミツマ」。
NECが昔販売していたPC-9801シリーズのリペア品を専門に扱ってるPCショップ。
中見ると、凄い!20年前のデスクトップPCが10万円超してる!
どうもPC98UVシリーズが一番高価っぽいのは、UVがPC98でも一番古い型なのと(VMシリーズと違って)FDDが3.5インチだから、今でもFDを入手可能だから?
それにしても40MBのバルクのHDDが2万6000円って。リアルで昭和。
無印のオイルヒーター
冬になると毎年オイルヒーターの購入を検討してた。
あまり暖かくないとも聞くし、これくらいがちょうど良いとも聞くし、どうしようか迷ってる間に1月2月になり、もう春も近いからという理由で購入を見送っていた。
が、先日、なぜかテンションが高い日があって、ちょうど無印10%オフ週間だったし、ついに無印のオイルヒーターを買った。
オイルヒーターはデロンギが一番有名っぽいが、無印のはデザインがシンプルだったんで、それだけの理由で決めた。
数日後に届いた日がちょうど凄く寒くて、すぐに使ってみると、部屋全体がほっこり暖まり快適。
もっと早く買っとけば良かった。何年も思い悩んだ日が恨めしい。