@kyanny's blog

My thoughts, my life. Views/opinions are my own.

2008-11-01から1ヶ月間の記事一覧

ちょっと壊れた

右側のアームレスト部の下の方がちょっとはがれた。半年もたなかったか。あとキートップが削れてきてるキーもちらほらでてきた。半年でこの程度のこわれっぷり。 ThinkPad が頑丈すぎたってことなんだろうなこれは。

Shibuya.pm Tech Talks 行けなくなった

残念だ。。

+{} という書き方について

先日 +{} という書き方を紹介したところ (http://d.hatena.ne.jp/a666666/20081114/1226662515)、質問のコメントをいただいたので、「プログラミング Perl」に書かれている解説を紹介します。下手に自分の言葉で説明するよりもずっと正確なので。 プログラミ…

getopt(1) についてわかったこと

/usr/lib/getopt/parse.bash を雛形として使うのが、他のどんなページを参照するよりも、正確で確実で良い。ちなみに Mac OSX の上記のパスにはこのサンプルスクリプトは存在しない。あと、 getopt(3) はともかく getopt(1) などというものはバッドノウハウ…

GETOPT(1)

さっぱりわからん。奇っ怪すぎるよ。

Foo パッケージの中で use した Bar パッケージの import() メソッドから Foo パッケージのシンボルテーブルをのぞくとどうなるか

sub import { my ($package) = (caller(1))[3] =~ /^(.*::)/; no strict 'refs'; warn Dumper \%$package; import() は BEGIN ブロックで処理され、 BEGIN ブロックを処理してるときはまだ呼び出しもとパッケージのシンボルテーブルの情報は空っぽだった。 u…

Perl のシンボルテーブル

パッケージ名のおしりに :: がくっついた名前のハッシュ、 %Foo::Bar::Baz:: があるパッケージのシンボルテーブル。見ての通りハッシュなのでふつうに warn Dumper \%Foo::Bar::Baz::; とかできるしループで要素をぐるぐるまわすこともできる。 %Foo::Bar::B…

no strict 'refs';

no strict 'refs'; my $foo = 100; our $bar = 200; my $ref = \$foo; warn $$ref; # => 100 $ref = 'foo'; warn $$ref; # => Warning: something's wrong $ref = 'bar'; warn $$ref; # => 200 my で宣言した変数は no strict 'refs'; のもとで $$ref を $fo…

MySQL の source コマンドで SQL プログラミングの開発効率をアップさせる

O/R マッパを使わない、バッチ集計用の SQL は少し長く複雑になりがちなので、 mysql コマンドラインツールから発行するよりテキストファイルに書いて source コマンドで読み込ませたほうが良い。http://dev.mysql.com/doc/refman/5.1/ja/batch-commands.htm…

Opera 快適すぎて快適すぎて

検索エンジンとニックネームで、同じものを違う URL に使えるのが素晴らしい。検索エンジン cpan で http://search.cpan.org/search?q=%&mode=allブックマークのニックネーム cpan で http://search.cpan.org/recentみたいに使い分けられる。これ素晴らしい…

昨日のTPF-Jプリミーティング4で壇上さんと hide-K さんをみた

どうも気後れしてしまって挨拶もできなかったので、「お会いした」とは言えない。お二人ともよく喋る方で、特に檀上さんが map { +{ $_ => $_ } } @array; みたいなのの +{} って何やねん?という質問をしていたのが印象深かった。臆せず、恥ずかしがらず、…

Opera Dragonfly を起動してみた

%5B ってエスケープされる前は何だっけ?ってのを知りたくて Firebug でできるけど Firefox 起動するの面倒だな、ってことで Dragonfly を起動してみた。デバッガが優秀という触れ込みらしい。 CSS の編集はできないとのこと。そんなのやったことないので十…

TPF-Jプリミーティング4に行ってきた

http://trac.endeworks.jp/trac/tpfj/wiki/TPF-Jプリミーティング4 に行ってきた。ずいぶん久しぶりに、飲み会に参加したような気がする。話す内容がはっきりしている会は、目的意識をもって参加できるので楽しかった。自分に出来ることって何だろうな、と寝…

Opera 二日目

快適。しばらくこれでいいや。メーラーは、 Opera Mail にするとかえって遅くなってしまってせっかくの良さを殺しそうなのでまだ Mew でいこう。 Firebug っぽいものを調べて使い方を覚えて、ちょっとした user javascript をかけるくらいになりたい。

ついにあの「和風Wizardry純情派」が本屋で買えるようになった

http://d.hatena.ne.jp/WizDiary/20081111すでに Amazon で一冊注文済みだけどこれはもうあと何冊か買っておいたほうがいいんだろうか。1000冊は買えないけどなあ。たくさん売れたら印税で幻の同人誌版を再出版したりしてくれんもんかなー。 Wiz に特別思い…

サブクエリやっぱりさっぱり意味がわからないな

ERROR 1241 (ER_SUBSELECT_NO_1_ROW) SQLSTATE = 21000 Message = "Subquery returns more than 1 row"このエラーは次のような場合に発生する。 SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2); ただし、これは t2 に複数のレコードが存在する…

SQL を勉強している

達人に学ぶ SQL徹底指南書 (CodeZine BOOKS)をぺらぺらと読んでいる。ウェブで読めるから本は買わなくていいって書いたけど嘘だった本があったほうがいい。ミックさんすいませんでした。 CodeZine のうざいメンバー登録とかしなくても読めるので本を買ったほ…

何度目かの Opera 挑戦

Safari のキーボードショートカットに慣れてきたところで乗り換え。基本的に軽くて気に入っていたので、残念だ。でも仕方ない。oAutoPagerize がなんか動かない!とかいって前回は投げ出したのだった。ファイル全部消してダウンロードしなおしたらちゃんと動…

DBI.pm ではひとつのステートメントハンドルで複数の SQL を実行することはできない?

!/usr/local/bin/perl use strict; use DBI; my $dbh = DBI->connect('dbi:mysql:hoge', 'root', ''); my $sth = $dbh->prepare(<<SQL); create temporary table hoge (id int); drop table hoge; SQL $sth->execute(); $sth->finish; こういうふうに、 ; で区切って複数の SQL をかいておいて一度に実行させることはできないようだ。h</sql);>…

今日の「あぁ〜」

テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました — ありえるえりあ を読んで、 cx4a.org なんてしゃれてるドメインだな(でもこのコマンドなんだっけ?)と思って emacs 起動して C-x 4 a ってタイプしてあぁ〜 Chan…

Safari がメモリをすべてくいつくす問題頻発

なにこれいくらなんでも消費「物理」メモリ 1.3GB とかありえないだろー。たまに、というには頻繁すぎる頻度でおきるから参ってしまう。だいたい一日に五回から十回くらいはこれでシステムがほぼ応答不能になる。強制終了のダイアログを出そうとして出てくる…

文学フリマ今年も行けなかった

終わってからイベントがあったことを知るのって悲しいなぁ。特に文学にもフリマにも興味はないけど、文学フリマは何故か「はてな」っぽさを感じられて、ソワソワワクワクして、行くと俺以外全員が知り合い同士のような気がしてなんともいえない居心地の悪さ…

TPF-Jプリミーティング#4

Hotel Dan のでかい本棚がみられると聞いたので http://trac.endeworks.jp/trac/tpfj/wiki/TPF-Jプリミーティング4 へ参加を希望した。うそです。何年か前にウェブで写真をみたので十分満足。 Hotel Dan といえば数ヶ月前に仕事で上京してきた人と月島でもん…

gearmanproject.org

http://gearmanproject.org/doku.phpGearman の独自ドメインなサイトができていたのか。 Gearman はじっくり使ったことがなくてあまり詳しくない(TheSchwartz なら詳しいのかといわれると困るが)。今後はここがハブサイトみたいな役割を担うのかな。ドメイ…

実践ハイパフォーマンス MySQL をほとんどろくに読んでいなかったことに気がついた

実践ハイパフォーマンスMySQL作者: ジェレミ・D.ザウドニ,デレク・J.ベリング,Jeremy D. Zawodny,Derek J. Balling,林秀幸出版社/メーカー: オライリージャパン発売日: 2004/10メディア: 単行本購入: 9人 クリック: 239回この商品を含むブログ (53件) を見る…

今日買った SQL 関係の本

形から入るタイプなもので。プログラマのためのSQL 第2版作者: ジョーセルコ,Joe Celko,秋田昌幸出版社/メーカー: ピアソンエデュケーション発売日: 2001/04メディア: 単行本購入: 17人 クリック: 266回この商品を含むブログ (52件) を見る 達人に学ぶ SQL徹…

どうでもいい mysql のはなし

INSERT INTO ... SELECT ... で700万行のレコードを旧テーブルから新テーブルへ挿入するとき、だいたいどのへんまで進んでてあとどれくらいで終わりそうなのか、を適当にチェックする方法。SHOW TABLE STATUS で Auto_increment の値を見張るとよい。 mysqld…

時間のかかるデータベース操作をはじめてしまってから my.cnf がデフォルトのままだったと気づいたとき

どうしよう・・・。いったんとめてやり直すのと、静かに終わりを待つのと、どっちが結局早いのだろう。両方やってみるしか確かめようがないので待つか・・・。

insert into select ... で extended-insert したい

何百万行くらいのテーブルに、カラムを追加しつつインデックスも追加したい。これを一番時間をかけずにやるにはどうしたらいいか試行錯誤。ふつうに alter table すると一個インデックス貼るだけで夜が明けてしまったので何個もやると人生が終わってしまうお…

copy to tmp table

たかだか700万行、 mysqldump して 150MB 弱のデータ量しかないテーブルに一つユニークインデックスを貼るだけで7時間半かかってまだ終わらないってどういうことよ。この大きさになるともう ALTER TABLE では無理だってことか・・・。夜中に ALTER TABLE し…