free as in air

2007|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|09|11|12|
2012|03|04|05|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|03|04|06|09|
トップ «前の日(10-02) 最新 次の日(10-04)» /追記

2007-10-03 この日を編集

§ [program] R6RS@Wiliki

 だんだん拡充されるようです。

 というか見てる間にも編集されている。

§ [//] UserAagent

 MJ12bot/v1.2.0 (http://majestic12.co.uk/bot.php?+)分散アーカイブ型だか分散インデックス型の検索エンジンを目指しているらしい。つーかこのバナー超ウケるんですけど。Majestic-12ちゃんと色のカスがたまっていくとこがいい。

§ [//] 日記の書き方

 LivedoorReaderでならだいたい無理なく読めるのだが、SageとかAkregatorだと辛い気がする。どうでもいい項目が多すぎ。あとcococだとウザくてしょうがないんじゃないかとか思う。

 空気吸うみたいにサブミットするのはやめたほうがいい。

§ [program] TableAdapterとConnectionString

 諸々の理由でTableAdapterを含んだプロジェクトを分けたいとする。さらにエントリポイントがあるプロジェクトのapp.configもしくはweb.configでConnectionStringを設定したい時があるが、生成されたTableAdapterはプロジェクトのプロパティを参照してしまうし、生成されたコードなので直接変更できない。そういう場合でも(VisualStudio 2005で生成されるコード用でありバッドノウハウだが)デザイナでどっかをダブルクリックすると生成されるファイルに以下のように記述するとなんとなく回避できなくはない。

namespace Project.HogeTableAdapters
{
  public partial class BookmarksTableAdapter: System.ComponentModel.Component
  {
    public static BookmarksTableAdapter CreateInstance()
    {
      return new BookmarksTableAdapter(HogeConfiguration.ConnectionString);
    }
    
    private BookmarksTableAdapter(string cs)
    {
      this.ClearBeforeFill = true;
      this._connection = new SqlConnection(cs);
    }
  }
}

 というか諸々の理由というのが、生成されたDataSetをSOAPを介してサーバ側とクライアント側の両方で使いたいので生成されたDataSetを含むプロジェクトはどちらでも参照しましょう、ということなのだが、生成されたTableAdapterのFill,Updateメソッドはpublicなので、プロジェクト参照を追加した場合、クライアント側で書いてはいけないコードでもコンパイルが通るのがキモい。

§ [//] 憂鬱

 になってきた。べっべつにハンガリアン記法のせいとかじゃないんだからねっ。

 TableAdapter本体に静的メソッドじゃなくて、普通にビルダーパターンでいいじゃんとちょっと思った。先週の俺ちょっと来い。

 つーか頭悪い方がプログラマに向いてるんじゃないかと。スコープが長くなると変数に何入ってるか覚えとかないと無理じゃん。受験勉強で詰め込んじゃう弊害ですか。

 Why do they always send to poorったってな。

§ [tag] 待て、これはStallmanの罠だ

 オープンソース思想の圏外にはGPLとかFFSとかなんのこっちゃ知らん自称技術者の類もいっぱいいる気がする。

 激しく飛躍するけど、ビジネスが泥臭くったってソースが泥臭い言い訳にはならんだろって、と思う日々。

§ [music] Title Of Record/Filter

 Nice 90's music. 好きだけどダセー感。Take A Pictureとか好きだけど、歌ってるのがアイドルグループ(いつの間にかアメリカの音楽シーンでは死語になったけど、単に黒人のヒーローに置き換わっただけとも)でもさほど違和感無い気がする。

 確か解散してしまったScudelia ElectroとかBaseBallBairとか好きだけど、どう聴いても渋谷系です。本当に(ry。

§ [//] にっき

 リールメモを実家に置いてきたのでリールだけ補給。上州屋でピニオンリール見てきたけど、安全ピンで止めるタイプばっかりだったのでスルー。まあ好きずきだよな。カラビナがいい人だっているだろうし。ウェブで調べた限りはピニオンリールの類も色々ある様子。

 しかし今日淹れたコーヒーは不味い。野性のホップ野性のホップリールメモと油断気味の腹


2008-10-03 この日を編集

§ [perl] 文字コード

さっぱりわからん。

最初はMySQLの設定がさっぱりわからなかったわけだが。my.iniで設定すりゃええんやろ、と思ったけど、PHPはmy.iniを読んでくれないのだった。mysqldでujis固定にした。でもテーブルの文字コードがutf8になっててどこでどうコード変換してんのかまだわかってない。気分的には統一したいのだがどうしたものか。あとmysqldの文字コードを固定しているとmysqldumpの文字コードがワヤで、さらにクライアントの文字コードの扱いがよくわかんなくて大変だった。

Windowsのコンソールがよくわからん。コードページって何ですか。普通にUTF-8を表示させて欲しい。あとcmd.exeはglobしてくんないのでファイルを複数渡そうとしてガッカリした。

MySQLからDBIでEUC-JPでとってきて、CP932のテキストファイルをワーッと読み込んで記事毎に分割して、MySQLのデータとテキストをつき合わせて一致したら表示、とかそんな簡単な仕事なのだがえらく大変な気がした。こんなの。ちなみにこれ、人生において最長のPerlスクリプト。

use DBI;
use Encode qw(from_to decode encode);
use utf8;
use warnings;
use strict;
  
sub getdata {
	my $dbh = DBI->connect('DBI:mysql:dbname:server:3306', 'user', 'pass') or die "can't connect";
  
	my $aryref = $dbh->selectall_arrayref("select * from foobar");
  
	$dbh->disconnect;
  
	return $aryref;
}
  
sub articles {
	binmode STDIN => ":encoding(cp932)";
	my $strings = "";
  	
	my $state = 0;
	my @list = ();
  
	while(<>){
		$state++,next if /^-[-\s]+$/; #ハイフンだけの行で区切る
		$list[$state] .= $_;
	}
  
	return @list;
}
  
my @articles = articles();
my $data = getdata();
  
for(@$data) {
	my $id = $$_[0];
	my $aid = $$_[2];
	my $emp = $$_[6];
	$emp = decode("eucjp", $emp);
	$emp =~ s/[\r\n\s\p{Common}]//sg;
	my $re = qr/$emp/s;
	foreach my $art (@articles) {
		my $cp = $art;
		$cp =~ s/[\r\n\s\p{Common}]//sg;
		if($cp =~ /$re/) {
			print "$id, $aid\n";
			print Encode::encode("utf8", "$art\n");
		}
	}
}

正規表現一致させるのに、from_toじゃなくdecodeしなきゃならんように思われた。UTF8フラグとか関係あるんだろうか。文字コード周りは一通りハマった気がする。入出力 の文字コードとか、DBから読むときに変換しようとしたけど無理だったとか(サーバ側で固定だから)、変換ってどうやるのとか。あと参照の配列の参照の配列の参照(合ってる?)とか、どこで副作用起きるのとか、分割に正規表現を使うことを諦めたり(ヘタレ)とか。色々。正規表現を試すのにirbみたいなのが欲しいと切に思った。こうしてWindowsが嫌いになっていくんだなあ。

§ [software] Vimの不満点

 以下、知らないだけかもしれないシリーズ。

 コマンドモードのキーバインドがしょぼい。というか、Bash/Zshのemacsモードと同じにしてほしい。必死でいじれば変えられそうだけど。

 vimgrepとかしたあと:cnなんかで移動できるが、相対位置だけじゃなく絶対位置でも参照したいときがある。

 履歴検索。途中まで入力して上を押すと一致するものだけ表示される(前方一致)のは知っている。

 オムニ補完が大量のスクリプトを芋づる式に読み始めるのはどうか。読むのはいいにしても、キャッシュして欲しい。

 システムのクリップボードともうちょっと仲良くしたい。"+y$とか何度も続くとちょっと疲れる。mapしろってことかなあ。

 でかいファイルの扱いがなあ、まあいいけど。今時メモリてんこ盛りだし。

 可能ならUnicodeの扱いが更にまともになるとうれしい。

 コマンドオプションで文字コードを指定して読み込む方法がわからない。パイプで渡してからe! ++encとかできないし。

 しかしデフォルトでの使えっぷりはEmacsなんか全然目じゃないんだよな。

 コンプライアンスの関係でファイルをごっそり暗号化するようなアプリとは相性が悪かったりする(起動時にTXTファイルを読んでいる?)。まあ、いいんだけど。