2007年 01月 01日

今年の抱負

なんか ntp の設定してたら年が明けてた。iptables の設定わからない。別に普通の日だなぁ。当たり前か。

今年は

  • 50mm で納得いく写真がとれるようになりたい
  • Ruby 極めたい
  • Perl の型グロブをしっかり理解したい
  • Haskell やる気になりたい
  • unlambda をとりあえず極めたい
  • 可愛い女の子と新世界に旅立つ。

最後のがもちろん最もプライオリティが高いものであるが、実現可能性が著しく低いので、まず先に時間移動の方法を見つけたい。

userChrome.js のデバッグってどうするんだろう

新しくウィンドウ開くしかないのかな

gerry++

しんねんそうそう

2007年 01月 02日

タイトルなんていらない

なんかすんごい何度も書いてる気がするけど、モチベーションの維持が一番難しいのだ。だから自分はモチベーションがあるときは失わないように必死だし、モチベーションがないときはどうすればモチベーションがでるか考えている。ただこれは実際「自分の中で完結する解決方法」でしかない。外部的要因によって強制的にスイッチが切られたら終わりなのだ。そう都合良くいかない。解ってる。解ってる。

表現だけを考えている。伝えるのに一番いい方法があるはずだ。まんぞくして自信がついたら終わりだ。それを持ってなおかつ相反する何かを持ち続けられるほどメモリをつんでいない。

例えばコンピュータは、こちらの表現を正確に受け取る。コンピュータは誤解はしない。でもコンピュータはソースコードの美しさを評価しない。


相手の望んでいることを考えるのが心底嫌いだ。


友人 (方向が違うのだけど、その方向をおれは取り入れていきたい) と文章がどうとかいう話をした。よくわからない。必要以上に導きたくない。想像のためのきっかけを作りたいと思う。後に残らないものを作りたいとは思わない。でも入り込みやすい要素は必要だと思う。バランスが掴めない。あるいは距離感なのかな。必要最低限でいい。特に論理的に導きだせるなら答えを言う必要はない。みんな俺より頭いいんだから、それぐらいできるはずだ。自分はそれをする気になるまでの導入を作れるようにならないといけない。


何周して戻ってくる。二週目? 眠い。

今まで「眠い」で終わる日記を何回かいたんだろう。

CSS Bullets


オートリロードツールの GUI 作った。Cocoa なやつは一応完成? 既に RingServer があればそれを使う。ないなら自分が鯖になる。
実装がキモいのだけどいまいちいい方法が浮かばない。リロード対象を決め打ちしてるあたりがアレ。

あと rubyclr 使って win 版を作りたいけどめんどい (環境つくってない)

Ring reload

ネットワークまたぐときは Hamachi 使えばいいだけか。。あれ前はどうしたんだっけ。
でもサーバーになるホストを微妙に選ぶみたいだなぁ。OS X からだと Hamachi 先の RingServer を見つけてくれない。
あとちょっとまえにごろうさんがハマってた DNS の問題があるからちょっとめんどくなってしまう。うーん。常に IP を渡すようにしないとだめだな

rubyclr

実行可能な形にするとなると exerb とかしないといけないのがめんどいよなぁ。Ruby/Cocoa なら Ruby/Cocoa インストールすればいいってだけなんだけど(インストーラ親切だし)

っていうか rubyclr って GUI のビルダーない(ソース直書き)じゃんgtlt. なんか簡単なほうほうないかなぁ。Interface Builder ってすげなぁ。

そんな難しいの作る訳じゃないんだから、ってのはもっともだ><

rubyclr instance_eval

instance_eval すると死ぬね!!! 何回も同じ変数名書くのやだからホゲってみたけどだめだった。

rubyclr exe ファイルを UI に?

なんかサンプル読んでたら、RssReader のやつで exe ファイルを UI として読み込んでるみたいなことしてる。
VS.Net Express ダウンコして(してあるけど)フォームつくって(つくってあるけど)、ビルドしたら使えるのかな

exe を UI に

ようは中間言語にコンパイル済みのを読み込んでクラス生成してるだけ、でいいのかな。C# のコードと Ruby のコードは普通に共存できるんだなぁ。っていうか当たり前か、そういうものなのだから……
RssReader の例だとアセンブリ名 UserInterface でその下のいろいろクラスが作ってあるから、これを Ruby 側で読み込んであげるとそれが使えるようになるみたいだ。まだちゃんと試してないけど

require 'winforms'

reference_file "UserInterface.exe"

WinFormApp.run UserInterface::MainForm.new # MainForm という C# クラスが .exe にある
2007年 01月 03日

ruby clr, UI 作りに VS.Net のフォームデザイナつかう


できた!(表示させるところまで)
ハマったのはプロジェクトを適当に WindowsApplication1 とかにしていたため、namespace がそれに設定されて、ActiveSupport から uninitialized constant がでたらへん。全部 UserInterface とかって書き換えたらいけた。

さてあとはイベントハンドラの設定方法か。。


あと本筋とは関係ないけど

  • gems で rubyclr を入れてたけど、winforms を見つけてくれないので本家からダウンロードして RUBYLIB 設定するようにした。
  • でもどっちにしろ gems は必要 (AS に依存してる) なんだよね
  • っていうか起動おそいよ><


メモ

  • プロジェクトのプロパティで、出力の形式(デフォルトは Windows アプリケーション) をクラスライブラリにすれば dll になって単体で実行できなくなる
  • でも UI のチェックがしにくくなるから exe のほうがいい気がする

rubyclr フォームの要素にアクセス

デフォルトだと、フォームにおいたやつはそのフォームの private メンバになってしまうようなので、MainForm.Designer.cs を開いて一番したにあるやつを全部 public にしないといけない。

rubyclr スレッド

もしかして ruby のスレッド使えない疑惑
あーいっかい run に入るとスレッドスイッチおこらない。だめだ。ここでゲームオーバー。drb 使えないんじゃ意味がない。

ふと思いついて、Timer を配置して

# threadTimer という名前で配置。Interval は 10 で、最初から Enable を true にしてある。
form.threadTimer.Tick do |sender, arg|
    Thread.pass
end

したらスイッチした。いけるかも。単純なコードしか試してないけど……

あー。謎のエラーで終了することがある。無理かも……

TextBox が溢れてエラーになってただけっぽい。よくわからないけど、標準出力に出すようにしたら大丈夫になった。(時間を永遠表示させてる)

TextBox#Text= の処理の間にスレッドの割り込みが入ってまた TextBox#Text= が呼び出されると、もとのコンテキストに戻ったときにエラーになるのかな。そんな感じがするけどよくわからない

ちがうなぁ。p @form.chkHogehoge って参照しただけでも落ちる。何が悪いんだろう。回避方法あるのかなぁ。スレッド使うのは難しいようだ

rubyclr Timer でスレッドスイッチの問題

エラーでまくり (フォーム内の要素を参照した時点で落ちる)でだめなので原因を考える

  • Ruby インタプリタがびっくりすること
    • Ruby インタプリタだけの場合、スレッドをスイッチするのは Ruby インタプリタだけだけど、この場合 Timer による強制スイッチが入る
  • CLR 側がびっくりすること
    • Ruby インタプリタがスレッドスイッチでごっそりメモリいぢくること?

再現性100%の問題なので、タイミングがどうとかいう話ではない気がする。タイマーの Interval を変えてみても発生するので Ruby インタプリタがビックリしてるわけじゃなさそう。そもそも Ruby の例外は上がらない。

スレッドスイッチさせなければ普通に参照できるため、どっかでそのへんの何かが壊れてる予感。うーん

とりあえず、Ruby からスイッチ (pass) されたスレッド内でフォーム要素を参照しなければ落ちないみたいだ。つまり、本当のフォームの要素とは別に、状態設定用のインスタンス変数を作っておいて、実際のフォーム要素への反映はタイマーから起動されるクロージャ内でやれば大丈夫。
遠回りだけど(そしてこの回避方法で全てがうまくいくかわからない)

自動リロード GUI / Windows 版

http://lab.lowreal.net/trac/changeset/557
とりあえず動いたのでチェックイン

  • メニューのイベント割り当ててない
  • exe 化したい
  • この際多少マジカル☆なのは気にしない

AS と exerb

なんかうまく exe 化できない。AS の core_ext の require あたりがどうもダメみたいだ。core_ext は動的に require の文字列つくってやってるけど、これがだめなのかなぁ。
no such file って言われてしまう。

path に AS の lib ディレクトリを追加して、内部ファイル名のプリフィックス削除した
あとたぶんそれを読み込んでるファイルの書き換えもしないといけない。

gems とすんごい相性悪い。。。
rubygems.rb を偽装して自力で依存解決したファイルつくってエラーでないところまでやった、と思いきやセグフォって (ここは rubyclr) 泣きたい

なんか

無理に単体 exe 化するより rubyw.exe とか全部詰め込んだ方が楽な気がした。あるいは ASR をランタイムとしてインストールしてもらうとか。

Windows が RingServer になれない

てきとうに試してて気付いたけど、うちの環境だとなぜか Windows だけ RingServer になれない。直接 new_with_uri すればちゃんと接続できるけど、UDP 送って発見できないようだ。なんでだろう。

Windows 上の RingServer が見つからないのは rubyclr から起動した時だけっぽい。シンプルなやつは普通に発見できる。そもそもローカルからさえ見つけられない。

exe 化できない

rubyclr/core.rb でセグフォる。うーん。
依存ファイル全部もってきて、隔離した環境(になってるかわからないけど)にして実行すると

ハンドルされていない例外: System.IO.FileLoadException: ファイルまたはアセンブリ
'Runtime, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null'、またはその依存
関係の 1 つが読み込めませんでした。要求された最小限のアクセス許可を与えることが
できませんでした。 (HRESULT からの例外: 0x80131417)
ファイル名 'Runtime, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null' です
。 ---> System.Security.Policy.PolicyException: 必要なアクセス許可を取得できませ
ん。
場所 System.Security.SecurityManager.ResolvePolicy(Evidence evidence, Permiss
ionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& d
enied, Boolean checkExecutionPermission)
場所 System.Security.SecurityManager.ResolvePolicy(Evidence evidence, Permiss
ionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& d
enied, Int32& securitySpecialFlags, Boolean checkExecutionPermission)

とかいわれる。信頼できないコードになってる? 同じファイルなんだけどなぁ。Ruby みたいにディレクトリさかのぼって書き込み権限見てるとかそういうのなんかなぁ。

このエラーはセグフォとは無関係。ディレクトリ変えたら動いた。ネットワークドライブ上では実行できない?ようだ

諦めよう

いい方法思いつくまで保留

rubyclr

ruby 側でハンドルするまでもない処理 (this.Close(); だけとか)を C# で書いちゃえるのは素晴らしいなぁ。

.net のセキュリティ機構

やばい意味わからない。
例えば

System.Diagnostics.Process.Start('http://lowreal.net/'); 

はセキュリティエラーで例外になってしまう。

あ−

GUI いらないな

2007年 01月 04日

VisualStudio.NET と Ruby を密に連携してエロエロするメモ

一昨日と昨日やったことのまとめ。rubyclr (なんか rubyclr のサイトって title 要素の内容がないんだけど) について。

rubyclr 自体は .NET Framework があれば動くので VS.NET はいらないのですが、UI 開発などの行程で VS.NET が激しく便利なので少なくとも C# Express ぐらいはインストールしといたほうがいいと思います。(rubyclr の開発言語は C++ なので C++ のほうがいいかも)

わかったこと

  • 一旦アプリケーションループに入ると Ruby のスレッドスイッチが入らない (Timer で割り込みかけることで解決)
  • VS.NET で作ったクラスはそのまま rubyclr で読み込める (常に C# などと同時に開発可能)
  • clr なインスタンスに instance_eval かけると死ぬ
  • .NET はセキュリティに厳しい (ruby 関係ない)
  • .NET はスレッドに厳しい (ruby 関係ない)

とりあえず VS.NET で作ったファイルを読み込むには

require 'rubyclr'
reference_file "CompiledAssembly.exe"

とかやると、CompiledAssembly.exe に定義されたクラスが全てインポートされる。(もちろん public なものしかアクセスできない。フォームに配置したコントールはデフォルトで private なので Ruby から参照したいときは書き換える必要あり)

namespace Hogehoge 以下の Unco クラスは Ruby では Hogehoge::Unco で参照できる。

.exe にしてありますが、プロジェクトのプロパティで、出力の形式(デフォルトは Windows アプリケーション) をクラスライブラリにすれば dll になって単体で実行できなくなるみたいです。けど IDE で実行できなくなるのでデバッグし辛い。


Ruby のスレッドスイッチが起きないのは致命的というか、DRb 使えない Ruby とか Ruby で書く意味があんまりない、とまでは言わないけれど結構そんな残念な感じになってしまったので解決法考えた。というかトイレいったら思いついた。

# threadTimer という名前で配置。Interval は 10 で、最初から Enabled を true にしてある。
form.threadTimer.Tick do |sender, arg|
    Thread.pass
end

フォームに Timer を配置して、.NET 側から Ruby に定期的に割り込み入れるようにする。

ただし、この Thread.pass されたスレッドでフォーム内のコントロールを参照すると、参照した時点で謎のエラー (簡素なダイアログ) で落ちてしまう。(Thread.pass する前、つまりタイマー割り込みのイベント内では大丈夫です。)

subtech - MisuzillaSubtechImpl - Windows Forms とスレッド によると安全性のために落ちているらしい。Ruby のスレッドと .NET のスレッドとの関係性がいまいちわからないけれど、おまじない書くと一応大丈夫になる。

reference 'System.Windows.Forms'
System::Windows::Forms::Form.CheckForIllegalCrossThreadCalls = false

true にしといて別の方法で同期とったほうがいいかもしれない。(今回書いていたコードではこのおまじないを使わないで Timer 割り込みで UI を更新するようなコードにした)


あとは rubyclr のサンプルを見ながらやれば特に困ったことにはならなかった。でも exerb でまとめるとどうしてもセグフォるので誰かうまくいったら教えて欲しいです。

どうでもいいけど Ruby でスクリプト書くときも VS.NET を立ち上げっぱなしにしておけばどんなプロパティがあるかわかって便利だった。というか MSDN はどうも読みにくい……MSDN 見てから developer.apple.com 見ると癒される。


そういえば、もともと VB6 を触った事があったのでメソッド名とかはだいたい想像がついて .NET の浅い部分ではそんなに悩んだりはしなかった。

セキュリティシステムあたりがまだ理解できてない。


そんな感じの .NET プログラミング初体験☆でした。別にエロくない。

2007年 01月 03日

ライブラリとインタプリタをまとめただけ

http://lab.lowreal.net/trac/changeset/564
CUI バージョンのほうが罠がなくてよさそうだ……ファイルサイズ小さい (800KB) し(例えば gems とかを含まないからね!)
exerb は今のところアイコンに最大 8bit のものしか指定できない。ので作った後 IconReset とかいうので設定しなおしてみた。

2007年 01月 04日

doc

ドキュメント書くのめんどす。。

publish memo

  1. mac で cd mac; rake publish
  2. win で cd win; rake package
  3. 鯖上で cd win; rake publish
  4. 鯖上で rake publish

IconReset

IconReset はコマンドラインからも書き換えができるので自動化しやすくていい感じ
ただこれを使うということはビルドプロセスが Windows でしか動かないということになるのでちょっとめんどいですね、みたいな

gerry++

itai

2007年 01月 05日

parallels UDP

どうも paralles とホスト間で RingServer が見つけられない。

Hamachi を入れて試してみたけどだめっぽい。でも他の Windows 機を RingServer にすると paralles 内からも発見できる。

#<Errno::EBADF: Bad file descriptor - connect(2)> (DRb::DRbConnError)

とかでてるからそもそもなんかおかしいみたいだ

One click installer でインストールしなおしたら上のエラーはでなくなった。
しかし相変わらず RingNotFound。ホストコンピュータじゃなければ接続できるっぽいんだけどなぁ

やっぱり DNS でした。少し前の secondlife さんのアレと全く同じハマりをしてた

オートリロードってだけなら、RingServer と TuplseSpace とか使わないで、UDP パケットなげっぱなしでリレーするだけでもいいかも? これなら逆方向から接続しなおすとかないからホスト名ひくとかいらない、よなぁ。 リクエストのシーケンス番号つけて一回着たのは無視するようにしとかないと無限ループする予感でこわい。

Rake って便利だなぁとおもった瞬間

require 'rake'
require 'rake/packagetask'

Rake::PackageTask.new('PackageBaseName', VERSION) do |pkg|
	pkg.need_zip = true
	pkg.package_files.include('plugins/*', TARGET, RESOURCES, 'README*')
end

rake test 実行するのもいいけど、パッケージングもたのしい

Socket プログラミング

ほとんどわからない。(recv(4096)) とかやるけど4096以上きたときってどうなるんだろう。送信側とあらかじめ決めておくのかな

Socket プログラミング

とりあえず最小構成書いてみないとね!!! っていうかいまさら Socket プログラミングかよ遅くねpgrとか言われそう。

require 'socket'

@s = UDPSocket.new
@s.bind('', 9989)
p @s

loop do
	p @s.recv(1014)
end

require 'socket'

['<broadcast>', 'localhost'].each do |host|
	p host
	@s = UDPSocket.open
	begin
                # ないと permission error
		@s.setsockopt(Socket::SOL_SOCKET, Socket::SO_BROADCAST, true)
		p @s.send('aaa', 0, host, 9989)
	ensure
		@s.close
	end
end

送るだけ送る。"aaa" が二回表示される。

うちの環境の片思い

Mac さんから Windows さんへは思い (UDP) が伝わらない
Windows さんから Mac さんへは伝わる。

なんでだ!! Mac さんの思いはもっと報われるべきじゃないのか!!

UI 再考

もっかい考え直し。限りなくシンプルになったので UI いらない気がする。
メニューだけの構成にしようか、なぁ。またかよって感じだけどそれが一番簡単だ。

2007年 01月 06日

svn svk リポジトリ構成

作り直すにあたりリポジトリ構成で困った。前もって trunk branches tags は作っておくべきだ……

svk を使うとバージョン文字列にリビジョン番号が使えない。ので日付と時刻にしてみよう。

Ruby/Cocoa の変更

メソッドの引数の間にシンボルおく方法が使えなくなるのが微妙にアレだなぁ。キモイのはキモイんだけどコードの意味がわかりにくくなるんだよなぁ……メソッド名の途中で改行はできないから、クソながいやつはクソながく書かないといけない

コピペこぴぺ

http://lab.lowreal.net/trac/browser/CSS%20Bullets/trunk (移動)
UDP だけ使うようにするとやたらシンプルだなぁ。ただこれでちゃんとうまく動くかまだわからない。

  • ポート番号

svk push するときは --verbatim 使おう。。

UDP がとどかない

OK

  • Windows -> Mac (via Hamachi)
  • Windows (Parallels) -> Mac (via Hamachi)
  • Windows (Parallels) -> Windows (via Hamachi)
  • Windows -> Windows (Parallels) (via Hamachi)
  • ubuntu -> Windows
  • Windows -> ubuntu
  • Windows -> ubuntu (via Hamachi)
  • Windows (Parallels) -> ubuntu (via Hamachi)

NG

  • Mac -> Windows (via Hamachi)
  • Mac -> Windows (Parallels) (via Hamachi)
  • Mac -> ubuntu (via Hamachi)
  • ubuntu -> Mac (via Hamachi)
  • ubuntu -> Windows (via Hamachi)
  • ubuntu -> Windows (Parallels) (via Hamachi)

Mac と ubuntu からの送信がうまくいってないのかな

2007年 01月 07日

ちょっときみたち、はてなアンテナのキーボードショートカットはやばいですよ

変更があったとき「j と k で移動できるだけなんでしょー?」とか思って内容をよく読まなかったのを激しく後悔するとともに、使いこなせていなかったことを深くお詫び申し上げたいと思う所存であります。謎

o を押すと新しくタブ開いて、なおかつアンテナは次のサイトにフォーカス移動してくれるので、 o で開いてみて、見終わったら閉じてまた o を押すというちょーこうそく個人サイトリーディングが可能。やばい。(「アンテナ設定」で「ボタンを表示する 常にオン」にしとくといいみたい)

あと自分がアンテナに登録しているのはイラストサイトばっかりなのですが、スクリーンショットを表示させるようにすると想像以上に便利な感じになりました。あーいままでなんでやらなかったんだろう。

2007年 01月 06日

svk revision

svk info //mirror/hogehoge

でミラーリポジトリ指定してあげると Mirrored From からリビジョン番号がとれるっぽい。どういう番号なのかわからないけど

gerry++

なんで突然 gerry が頻発するようになったんだろう

ハライター的には汚いトイレが多いJRの駅(多い気がするだけ?)はできるだけ利用したくない。ショッカーめ

2007年 01月 07日

ldr の購読フィード

今日はちょっと減らして、はてダを増やしてみた。1400 件 (公開 507, 非公開893)

購読者数

  • 購読者数5人以下のフィード: 223
  • 購読者数10人以下のフィード: 423
  • 50以下のフィード: 919

レート

  • 5: 146
  • 4: 125
  • 3: 169
  • 2: 113
  • 1: 834
  • 0: 13

ねよう

userChrome.js のデバッグ

新しいウィンドウ開いてやるのはとりあえずいいとして、デバッグログ吐けないとしかたないので
http://developer.mozilla.org/en/docs/DOM:window.dump にあるように browser.dom.window.dump.enabled を true にして再起動った。
OS X の場合 Console.app にでてくる(ただしディレイあり)

なんか DOM Inspector の Inspect がうまく動かなくて困る

2007年 01月 09日

成人式の日 -> 同窓会 -> まだ帰れない

家に帰れてないのでそのへんのオープンネットワークから (Now in カラオケボックス)。

成人式自体はすぐに終わってしまって(二部とかあったけどどうもいいので帰ってきた)、なんか途中家に ssh しようと思ったら繋がらなくておかしいと思いつつ一度帰宅したら停電していた。立ち上げ直してから同窓会へ。

懐かしい顔ぶれでちょっと頭の中にいるようだった。いろいろ考えていろいろな人に話しかけてみた。だいたい就職している人がいたり、進路はっきり考えてたりすげぇなと思った。

聞いていたなかで一フレーズのみ印象に残っていて途中からどうもうまく気持ちが乗らなくなってしまった (別に悪い話ではない)。なんか俺がこれやって楽しんでる場合じゃねぇなとか、なんとか。ならこのクソ日記を更新するのではなく行動に移せという、はなしだ、が。


楽しいとか楽しくないとか、それ以前の人がいっぱいるけれども、やはり悩めるだけの余裕がある自分はその価値がないほど幸せなのだろう。極めて、幸せな境遇にあるのだ。


もっと相手の事を考えなければならない。矛盾しているけどそういうこともあるだろう。プライオリティのもっと高いことがある。

2007年 01月 10日

LDR をミカン食いながら読む

	window.addEventListener('load', function (e) {with (unsafeWindow) {
		var id = null;
		Keybind.add('t', function () {
			if (!id) {
				id  = setInterval(Control.go_next, 3000);
				message('自動モードを開始します。');
			} else {
				clearInterval(id);
				id  = null;
				message('自動モードを終了します。');
			}
		});
	}}, false);

あとでかきなおす。

ちょwこの機能もともとついてる。
Shift+次のエントリボタン。。。

http://reader.livedoor.com/js/reader_main.0.3.0.js
State.autoscroll_wait

function run(), function run ()

どっちで書くか悩む
function run() は詰まって見える。けど呼び出すときと形が同じ
function run () はすかすかすぎるように見える。

2007年 01月 11日

今すぐやることとか

今すぐやることがいくつもあるとどうもどれにも手がつかない……プライオリティが一番高いタスクには着手しているけど、時間待ちがあるタスクなので途中に他のタスクがはいれる。でもうまくいかない。

時間待ちタスクが終了したらできるだけはやく連絡を取る系のタスクを処理したい。ただ、処理中のやつの終了ステータスがまずいとタスク自体が先延ばしになるかもしれない。でもどっちにしろ絶対やらないといけないのだから早めにやらないと……

眠いよほんとにさいきんずっとねむい

2007年 01月 12日

バラについて

バラって個人的にはあんまり好きじゃない。うまく表現できないけれど、なんというか、グロいというか、花らしくないというか、悪い意味で人間っぽいというか……そういう意味では特別な花なのだけれど、ネガティブに特別なかんじ。でも嫌いではない。

赤黒いイメージが自分の中で強すぎるのかもしれない。白のバラは普通に綺麗だなぁと思える。ピンクだとちょっと中途半端ないめーじ。よくわからないけど

だからか、バラに比喩されるもののイメージがうまくとれない。「たぶんこういうことを言いたいのかなぁ」というのは想像できるけど、それがうまく直感できなかったりする。

2007年 01月 11日

Firefox の alert ブラクラを回避する GM

var alert = unsafeWindow.alert;
unsafeWindow.alert = function (msg) {
	if (!confirm(msg + "\n Ok to continue, Cancel to break script.")) {
		// ({})();
		throw 'Stopped alert';
	}
};

http://nyarla.net/blog/javascript-tips8 みてて思いついたのでやってみた。

for (;;) alert(''); がキャンセルできてべんりかも

あ、普通に throw でいい気がした。どっちにしろ catch されちゃうし

2007年 01月 12日

モテキつかって書いたコード

学校の課題のやつをしばらくさわってなかったら、書いたコードがぱっとみ暗号すぎて独りでうけてしまった

CometObserver

function CometObserver () {
	this.init.apply(this, arguments);
}
CometObserver.prototype = {
	init : function (opts) {
		this.opts = {
			url         : null,
			callback    : operator.identity,
			recallAfter : 5 // sec
		};
		update(this.opts, opts);
	},

	update : function () {
		if (this.running) return;
		var self = this;
		loadJSONDoc(this.opts.url).addCallbacks(
			function (res) {
				self.runnning = false;
				try {
					self.opts.callback(res);
				} catch (e) { log(e) }

				// すぐに呼ぶ
				self.update();
			},
			function (err) {
				log(err);
				self.running = false;
				callLater(self.opts.recallAfter, function () {
					self.update();
				});
			}
		);
	}
};

JSON 返す CometAPI を使うためのコード、らしい(覚えてない

CC ステッカ

Creative Commons のステッカほしい!

うーん

やっぱりコメント機能が欲しいなぁ。でもスパム対策はだるいから、はてな/TypeKey/Flickr でログインを必須にしたい
blosxom のプラグインかー Perl こわいなぁ。

2007年 01月 13日

FON

コンセントがあいてなくてまだ設置してない。
送られてくるときに入ってた梱包材が気持ちよくて仕方ない。空気入ったふくろ。かなり強く握っても割れない

2007年 01月 14日

こう、サイトデザインかえようとおもった 他三本

そろそろ飽きたというか黒時に白とか読みにくすぎてだるいので変えたい。

とか思ってごたごた作り始めたのだけどホントにグラフィックデザインできなくて泣きそうだ。っていうかクロノクロス(借りた)やばい泣く。

flickr CC 眺めながらコラージュするかなぁ……


テーマが決まらない。というか学校の課題用のページ作るのが先だろ……常識的に考えて……

はいはい。


なんかすっごい昔の日記にコメントがあってびびった。メールで通知させる部分作っといて良かった。

今の日記にもコメント機能が欲しいのでつけたいのだけれど、なかなか Perl 書く気にならない。ウェブサービス経由するにあたりそのへんの CGI も作らないといけない。セッションのストア方法が Ruby と Perl で統一できていたら楽なのになぁ。

ちょっと Taglibro に戻ろうかとか考えたけど XML 書くのはだるすぎた……

全部サイト構造をリセットしたいなぁ。何かいい方法ないだろうか。

うまくいかないこと

やっぱりいろいろうまくいかないなぁ。自分の感情のコントロールがどうとか、環境がどうとか、自分でよくわかってない。

先入観/偏見/ステレオタイプを捨ててモノゴトを見るのが難しい。とりあえず身近なものを視点を変えて見たい。いつから言ってるんだよこれ。ちょっとできるようなったんだろうか。誰に訊いてるんだか。

俺が書いてもいいことなのかわからないことがたくさんある。勉強しとけばそうはならないだろう、な。口に出していいことなのかわからない。既に周知のことなのかわからない。「こいつバカだな」と言われることをいまだに?みたいな。今更なくせして

表現は誰のためにでもあるわけじゃなくて、受け取れる人と受け取れない人がいて、しかも受け取れる人でもみんな感じてることが違う。表現者の孤独をよく考える。


できる限りの事を公開していく。もっとアウトプット。今まで生きてきてインプットしたことをどんどん処理してアウトプットしないといけない。情報処理する


余計なことがまだまだ多すぎる。インプットするだけしていらないものは消すべき。いらなくても参照があるせいで GC できないものがある。


そのやりたいことが「やるべきこと」になったときの詰まらなさが解らない人もいる。全く形が違う。インターフェイスが似ていても実装が全く異なる場合がある。僕から見たらエイリアン。相手から見ると俺がエイリアン。一人称の不一致


ねぇ、だから、言葉が通じないと疲れるんだ……何を話していいか、わからない。ふとした瞬間に出るワードが通じない。笑えない。笑えない。相手も同じに感じている。関わらないのが幸せ。

普段どう生きるか。とか、何度も考えたろ。知らない。わからない。


どんどん力が抜けていく。グルーヴが羨ましい。中に入りたい。良い物が作りたい。レベル15までこの先に進めません。

お前が俺に頭がおかしいとか言うけど、だからなんなんだ。なりたくてなった?

距離感をつかむことが必要。距離あるじゃん。わかってるくせに。


今年第一回の「お客さん、終点ですよ」がありました。すいません。本厚木終点だと確率高い。

日記を読むのが好きだ

他人の日記を読むのが好きだ。

時々すごく面白い日記があるのを発見すると本当に嬉しい。でもその日記が他の日記とどう違うかがよくわからない。でも面白い。本当に

そういう(自分にとって)明らかに面白い日記ではなくても、他の人の考えていることや、他の人のしていることを読むのは楽しい。

だから、もっとみんな日記やらブログやらを書いて欲しいといつも思う。


タイトルを「あなたの日記のおかげで僕は幸せになれる」にしようと思いつつ書きはじめたけどキモすぎっていうか宗教っぽいのでやめた。


次に「君の日記のおかげで今日が楽しい」を思いついたけど同じ理由でやめた。

結局ストレートに、好きって気持ちを出した方がいいんじゃないかな、って思ってこのタイトルさ。


キモイんだよ1!!

数学や芸術家や哲学/コンピュータとインターネットと人

数学や芸術家や哲学、そういうので有名な人物の話を聴いたり Wikipedia で読んだりするとなんかすごいこみ上げてくるものがあるというかなんというか。殆どみんなずっとずっと昔に死んでしまっているのに、今でもまだその人がどんな人だったか、みたいなことを考えている人がいて、誰かがそのことを伝えていて、これってものすごく気が遠くてすごいことだなぁと思う。

でもって、それと同時に、そういった「有名な」人に隠れて生きた脇役やエキストラがいて、その中にはクレジットにさえ入っていない人がいっぱい居て、みたいなことを考えると、そういったクレジットにのってない「つまらない普通の人」とされる人の話を聴きたくなる。よくわからんほどの人が今まで死んでるのに、名前なんて殆ど残りはしない。もしかしたらそういった人のミームは名前無しに伝わっているのかもしれないけれど。


それとは逆に、コンピュータ関連の偉大な人はまだまだ生きている人がいっぱいいる。C言語の開発者だって生きてる。生きているから、もしかしたら会えるかもしれない。会って話ができるかもしれない。そう考えるとドキドキする。「昔の人」じゃないから、そういう流れから入るコンピュータの歴史は結構面白い。友達の(失礼な)昔話を聴いてるみたい。

インターネットで数年ごたごたやってるうちに、すごい遠いなぁと思ってた人と会って話すことができたりして面白い。いやだって、こんなわくわくすることがあるだろうか?

2007年 01月 16日

デザイン替え

とりあえずライセンス表示だけ。

写真でメインに使っている画像は Blue Eyed Girl on Flickr - Photo Sharing! です。by rcstanley さん。


またヘッダ部分しか変わってないよ!!!11 手抜きすぎ。

というかホントにサイト全部なおしたい。うーんん


なんか背景くらすぎ


白に変えてみた @16:11

なんかなぁ……まとまりないよなぁ


考えていた事

  • そのページのタイトルが目に入ること(ページロード時)
  • 本文の一部が目に入ること(ページロード時)
2007年 01月 17日

一週間に一回ぐらいは他のブログ/日記に言及したい

けど、こう、言及するのが(公開レベル的に/技術のレベル的に/その他)難しいのが多くてなかなかできない…… mixi 日記の非公開日記を言及するわけにはいかないし、なぁ。

最近読んだエントリで、すごく「ああ、すごい、素敵だなぁ」って思ったのは id:brazil さんのCollection & Copy - 日記 2007-01-12、東京、モノレール(2)なのだけど、自分でなかなか書きたいことが纏まんなかったり、纏まんないってことはちゃんと考え切れてないなぁとか思ったり、うーん。とりあえず読んでなかったら、読んで欲しい、みたいなエントリ。ていうかこれなんではてブで 8users なのよドリブン。


言及にしにくさっていうとあと、「この言及にしかたで、言及先に失礼じゃないか」を考えてしまう。よく礼儀がなってないとか言われる。かなりアレ

jjjj

jjjj ←ダウナーな気分、の意味

どうよ(どうよ?)

類似の物

G
「地獄に堕ちるわよ」

document.styleSheets.title Safari

Safari だと null がかえってくる。。
というか alternate style が styleSheetsList に含まれてない

2007年 01月 18日

CSS 勉強会で発表しました

バイト先の社内 CSS 勉強会でちょっと (?) しゃべりました。資料 置いときます。(Safari, Fx, Opera 用)

資料は実際に見せたのと少し変えてあります。本来しゃべるつもりじゃなくてコメントアウトした部分もしゃべってしまったので表示させてあります。

だいぶテンパってまして何分喋ったかよくわかりません。資料とかgdgdですが楽しんでいただけたら幸いです(てけ

デザイナさんがいるのにデザインがどうこういうのは笑えよwwwwトロンボーンwwwwって感じですたけど、何も考えないことにしました。

ありがとうございました。


CSS の根本的な部分は発表直前に書きました。ネタがこのへんかぶると思っていたら全くかぶらなかったので急遽入れました。


プレゼンツールは text-hatena.js と MochiKit, KeyTypeListener.js を使ってつくりました。はてグのプレゼンモードや、LD カンファのときの mala さんのプレゼンツールのイメージをパクってます。ありがとうございます。

追記

最終的にやりたいことや、プロフェソナルがどうとか

最終的にやりたいこと、っていうのはここ一年ぐらいで明確になっているのだけれど、実現可能性がイマイチというか、どこからやっていってそこまでいけるのかがわからないというか。

何にしても、プロにならないといけない。プロってなんなんだろうって思うんだけど、成果をコンスタントに出せるとか、求められていることをアウトプットできるとか、いろいろあってよくわからない。でもどれとってもどうやればいいかわからない。

こう、壁があるのよ、ねぇ。ほんとに、ねぇ。あるいはキャズム、みたいな……あははははっふぁsじふじこ

2007年 01月 19日

synergy clipboard

Windows でコピーした内容が反映されないんだよなぁ。逆方向 (Mac -> Windows) はちゃんといけるのに

2007年 01月 20日

思いもよらない

CSS 勉強会は面白かったけど、たぶん聴かないとわからないだろうなぁって点が多くて資料公開とかは静かに(それこそはてブとかされずに)なるだろうと思っていたのだけど、予想とだいぶ違かったように感じる。あれ?みたいな。

このサイトのユニークアクセスはいつもだいたい 1k 前後 (±100) ぐらいなのだけど、一昨日は 2800 昨日は 1800 だった。

CSS Bullets (謎) についてまだあれ以外何も書いてないのは、うまくパッケージングされてない(ドキュメント書いてない)からなので、試す場合は気合いがいると思います。

2007年 01月 21日

>+++++&lt;.--.>>+++&lt;+&lt;.

+++[-<++++++>]<+[-<++++++++++++>]<.>+++++++[-<-- ---->]<.>>+++++++++++[-<++>]<+[-<-->]<.>++++++++++ +[-<++++++++>]<+.>+++++++++++[-<-------->]<.------ ------.>++++++++++[-<++++++++++>]<+.>>+++[-<++++++ ]<+[-<--->]<.++++++.>++++++[-<++++++++>]<.>++++++ +[-<-------------->]<.>+++++++[-<++++++>]<.>++++++ +[-<++++++++>]<.>+++++++[-<-------------->]<.>++++ +[-<++++++++>]<+.>>+++[-<++++++>]<+[-<+++>]<.>++++ +++[-<-------------->]<.>+++++++++++++++++[-<++>]< .>++++++++[-<++++++++>]<.>+++++++[-<-------------- ]<.>+++++[-<++++++>]<.>+++++++++++++++++[-<++++>] <.>+++++++[-<-------------->]<.++++++++++++++++.>> +++++[-<++++++++>]<+[-<++>]<.>+++++++[-<---------- ---->]<.>+++++[-<++++++++>]<.>>+++++++[-<++++>]<+[ -<++>]<.>+++++++[-<-------------->]<.>+++++[-<++++ ++++>]<+.>>+++[-<++++++>]<+[-<+++>]<.>++++++++++++ [-<-------->]<-.+++++++++++++++++.>++++++++++[-<++ ++++++>]<.>+++++++[-<-------------->]<.++++++++++. +++++++++++[-<++++++++>]<.>+++++++[-<------------ -->]<.+.>++++++++++++[-<++++++++>]<+.>++++++++++++ [-<-------->]<-.+++++++++++++++++.>++++++++++[-<++ ++++++>]<.>+++++++[-<-------------->]<.>++++++++++ [-<++++++>]<+.>++++++[-<++++++>]<+.>+++++++[-<---- ---------->]<.>+++++++++++[-<++>]<.>+++++++++++++[ -<++++++>]<.>>+++[-<++++++>]<+[-<--->]<.>+++++++[- <----->]<.>+++++++++[-<++++++++++>]<.>+++++++[-<-- ------------>]<.>+++++++++++[-<++>]<.>>+++[-<+++++ +>]<+[-<++++>]<.>+++++++[-<-------------->]<.+++++ +++++++++.>+++++++[-<++++++++++++>]<.>+++++++[-<-- ------------>]<.>+++++[-<++++++++>]<+.>>+++[-<++++ ++>]<+[-<+++>]<.>+++++++[-<-------------->]<.+++++ +++++++++.>+++++++[-<++++++++++++>]<.>+++++++[-<-- ------------>]<.>++++++[-<++++++>]<+.>++++++++++[- <++++++>]<+.>+++++++++++[-<--------->]<.+.>+++++++ +++[-<++++++++++>]<.>+++++++++++++[-<---->]<-.>+++ ++++[-<------>]<.>++++++++++++[-<++++++++>]<.>++++ +++++[-<-------->]<-.++++++++.>>+++++[-<++++++>]<+ [-<++>]<.>+++++++[-<-------------->]<.>+++++[-<+++ ++++++>]<.>+++++++++++++[-<++++>]<+.>+++++++[-<--- ----------->]<.++++++++++++++++++.>++++++++++[-<++ ++++++>]<.>+++++++[-<-------------->]<.>++++++++++ +++[-<+++>]<.>>+++++++[-<++++>]<+[-<++>]<+.>++++++ ++++++[-<-------->]<-.++++++++++++++++.>>+++++++[- <++++++>]<+[-<++>]<.>+++++++++++++[-<-------->]<.+ ++.>++++++++++++[-<++++++++>]<.>+++++++[-<-------- ------>]<.+++++++.>+++++++++++++[-<+++++++>]<.>+++ +++++++++[-<-------->]<-.+++++++++.>+++++++++++[-< ++++++++>]<.>+++++++[-<-------------->]<.>++++++++ +++++[-<+++>]<.>>+++++++[-<++++>]<+[-<++>]<+.>++++ ++++++++[-<-------->]<-.--.>+++++++++++[-<++++++++ +>]<.>+++++++[-<-------------->]<.>+++++++++++[-<+ +>]<.>>+++[-<++++++>]<+[-<++++>]<.>++++++++++++[-< -------->]<-.+++++++++++.>+++++++++++[-<++++++++>] <+.>++++++++++++[-<-------->]<.----.>+++++++++++++ ++++[-<++++++>]<+.>++++++++++[-<------>]<-.+++++.> +++++[-<++++++++++>]<.>+++++++[-<-------------->]< .>+++++[-<++++++++>]<+.>>+++[-<++++++>]<+[-<+++>]< .>++++++++++++[-<-------->]<-.+++++++++++++++++.>+ +++++++++[-<++++++++>]<.>+++++++[-<--------------> ]<.>+++++[-<++++++>]<+.>+++++++++++[-<++++++>]<+.> +++++++[-<-------------->]<.++++++++++++++++.>>+++ ++[-<++++++++>]<+[-<++>]<.>+++++++[-<------------- ->]<.>+++++[-<++++++++>]<.>+++++++[-<++++++++++>]< .>+++++++++++++++++[-<--->]<.>>+++++++[-<++++>]<+[ -<-->]<-.>+++++++++++[-<++++++++++>]<.>+++++++++++ ++++++[-<--->]<.>>+++++++[-<++++>]<+[-<-->]<-.>+++ ++++++++++++++[-<------->]<.

2007年 01月 23日

PC の使用時間

自分の場合、寝るとき・食事をとるとき以外は殆ど PC の画面を見ている (といってもやってることはいろいろ) わけだけど、PC をあんまり使わない人ってその大部分の時間に何をしているんだろう。

パッと思いつくのは

  • テレビ

ぐらいしかない。でもこれだけで時間を潰せるわけないよなぁ。

でも逆に普段 PC をあんまり使わない人からしたら、ずっとディスプレイを見ているのは不思議に映るのかもしれない。うーん。

写真撮るのが楽しい。

IMG_2451

新しい発見があるってのが解ってきた気がする。わかってなかったのかよ、って感じだけど……

しかしこうもっとこう、撮影者と被写体との距離感 (のバランス) を感じるのが撮りたい。


でもあんまり拘らないでやっていきたいと思う。色がどうこうとか、細かく考えると微妙にオカルトチックになってしまうのでおおざっぱにやりたい。特に色は Web で公開してるのがメインだから拘っても無駄だし

証明

正しさは反論できないけど、納得できるかどうかは別の問題だと思う。だから表現。所詮論理なんて人を説得したり、理解させて納得させるための手段なのに、それが一番になって表現がないがしろになって、納得しにくくなったら意味がない。

数学の証明が、他人にわかるように書けばいいことに気付くまで時間がかかった。しかも解ったときには既に文系に進んでいて数学の授業がなかった。それまで自分は「コンピュータに理解させる証明」を書かないといけないと思っていた。でも証明に使うのは自然言語だから、そんな証明は書くことができない (コンピュータはそもそも「理解」がいまのところできない)。だから「とりあえずこう書けばいい」の組合せから抜けられなかった。

でもまだ、なんで自然言語で書かれた証明が「証明」になるのかよくわからない。みんなが考えている「論理的方法」が本当に同じものなのかわからない。頭悪くてどっちにしろ証明自体が楽しいと思えるようにはならないだろうからどうでもいいといえばどうでも、いい。


伝わったって感じることが大切だと思う。


関係ないけど、プッシュ型のメディアとプル型のメディアってちゃんと考えないといけないと思った。プッシュ型のメディアで大きいコンテンツを配信するのってちょっとどうなの……みたいな。「読まされる」とか「聞かされる」のって気持ち的にあんまり好ましくない。話の長くならないように気を付けないと……

「すいません先生! あとでじっくり考えたいのでブログに纏めておいてくれませんか? 今は作業を進めたいです!」

SKK再入門

OS X に AquaSKK 入れてみた。慣れるまえにやめそうな気がする。
「言って」とか変換するときに悩んでしまうんだよなぁ。あと思ったことを一回単語に分けないと入力できないのは結構つらい (慣れの問題だとは思うけど)。

今 SKK で書いています。なんか C-j で「ひらかな」モードにいかない。なんでだろ。C-g は効く……
z. で三点リーダが入力できるのがいいなぁ。ことえりだと「てん」で変換してた。毎回!!

そうそう mayu の OS X 版欲しい

さがしたけどないっぽいんだよなぁ。カーネル付近でいぢる特定用途のはあって、それ改造すればできそうな気もするけど、デバッグが大変そうで手がでない。

Opera の JSONP の罠ではまってた

検索したらすぐに script 要素を挿入した時点で処理とまるってでてきてくれて流石だと思った。
コールバック関数は script 要素を挿入する前に書かないと

SKK

そんなに打てないわけじゃないかも。結構普通に使えてる、、気がする。やっぱ送りがな間違えて失敗するけど……
これで補完候補がガンガン表示されてガンガン補完できたらいいのになぁ。って思ったけどそれなんて PRIME って感じもする。

rubyclr を使って、Ruby から joystick を扱ってみる

require 'rubygems'
require 'rubyclr'

reference 'System'
reference 'System.Drawing'
reference 'System.Windows.Forms'

include System::Drawing
include System::Drawing::Drawing2D
include System::Windows::Forms

# Timer 付き Form のセットアップ
Application.enable_visual_styles
Application.set_compatible_text_rendering_default false
form = Form.new
form.StartPosition = FormStartPosition::CenterScreen
form.Text = "><ノ"
form.Size = Size.new(120, 0)

timer = Timer.new
timer.Interval = 50
timer.Enabled = true

# ManagedDirectX Input # DirectX SDK が必要
reference 'Microsoft.DirectX'
reference 'Microsoft.DirectX.DirectInput'

include Microsoft::DirectX
include Microsoft::DirectX::DirectInput

joystick = nil
devices = Manager.GetDevices(DeviceClass::GameControl, EnumDevicesFlags::AttachedOnly)
while devices.MoveNext
	joystick = Device.new(devices.Current.InstanceGuid)
	break
end

joystick.Properties.AxisModeAbsolute = true
joystick.SetCooperativeLevel(form, CooperativeLevelFlags::NonExclusive | CooperativeLevelFlags::Background)
joystick.Acquire

prev = ''
timer.Tick do |sender, args|
	state = joystick.CurrentJoystickState

	on = []
	state.GetButtons.each_with_index do |b,i|
		on << i if b.nonzero?
	end

	out = "X:%s, Y:%s, Z:%s, Buttons:%p" % [state.X, state.Y, state.Z, on]
	unless prev == out
		puts out
		prev = out
	end
end

Application.run form

ManagedDirectX とかいうらしい。
http://web.sfc.keio.ac.jp/~t03792sh/archives/2005/10/manageddirectxj.html を参考にした。

どうも Enumerable なやつがうまくいかなくて困った。.each とか使えるはずなんだけど、エラーがでて使えない。しかたないので普通のイテレータ使ってる。
あと joystick.Objects をイテレータでまわしてると Ruby オブジェクトに変換できないだかなんだかで落ちてしまうのでそこは書いてない。どうするんだろ。

SDL のほうが簡単そう。

ruby/sdl を使って、Ruby から joystick を扱ってみる

require 'sdl'

SDL.init(SDL::INIT_JOYSTICK)

SDL::Joystick.num.times do |i|
	p SDL::Joystick.index_name(i)
end

j = SDL::Joystick.open(0)
p j.num_axes
p j.num_buttons
p j.num_balls
p j.num_hats


prev = nil
loop do
	SDL::Joystick.update_all
	out = ''
	j.num_axes.times do |i|
		out << "%d:%06d " % [i, j.axis(i)]
	end
	j.num_hats.times do |i|
		state = j.hat(i)
		ret = [0, 0] # x, y
		case state
		when  SDL::Joystick::HAT_CENTERED
			ret = [0, 0]
		when  SDL::Joystick::HAT_UP
			ret = [0, 1]
		when  SDL::Joystick::HAT_RIGHT
			ret = [1, 0]
		when  SDL::Joystick::HAT_DOWN
			ret = [0, -1]
		when  SDL::Joystick::HAT_LEFT
			ret = [-1, 0]
		when  SDL::Joystick::HAT_RIGHTUP
			ret = [1, 1]
		when  SDL::Joystick::HAT_RIGHTDOWN
			ret = [1, -1]
		when  SDL::Joystick::HAT_LEFTUP
			ret = [-1, 1]
		when  SDL::Joystick::HAT_LEFTDOWN
			ret = [-1, -1]
		end
		out << ret.inspect
	end
	out << (0..j.num_buttons).select {|i| j.button(i) }.map {|i| i + 1}.inspect
	unless prev == out
		puts out
		prev = out
	end
	sleep 0.1
end

全然こっちのほうが簡単だなぁ。フォースフィードバック使えないのがちょっと寂しいかもしれない。
あと hat の返す値がちょっとめんどい。上のでは PyGame like にしてみた

Joystick でマウスを制御

なんで joystick とかいぢっていたかというとマウスを動かしたかったからなのです。そういうツールってあるにはあるのだけれど、いまいち挙動が気にいるのがないので書きたかった。

でとりあえず移動とクリックできるところまでつくってみた。ソースがダサい。
http://lab.lowreal.net/trac/browser/c/util/initj.rb

2007年 01月 24日

gerry

相模大野あたりまできつくて、椅子座ったら割とよくなって、町田あたりまではどうにか記憶があるのだけれど、気付いたらなぜか既に新宿でもろ寝すごすというアレなことになって、今まで代々木上原までいくことはあっても新宿までいくことはなくて、一瞬「なんだまだ新百合かよ」とか思ったりして

Python 関数呼びだし

ちょっと Python やってみようかな的

def hoge(arg):
    print arg 

hoge 'test'

これがパースエラー (hoge に括弧がない)

print 'test'

はいいのになんでだろ。

関数呼び出しって全部括弧がいるっぽいけど、print は何者なんだろう。あと raise とか……

vimcolor 的には構文要素?っぽい (def と同じ色)

ブクマコメントより http://www.python.jp/doc/nightly/ref/print.html らしい ><

なんかこう return, yield, break って並んでいるところに print があると、ふーん print かー print……え? みたいな感じだ。けど、別に変でもないのかなぁ。

SKK は辞書にガンガン登録できるのがいいなぁ

例えば「文乃」が一発変換できないのがむかついてもすぐ登録できるもんなぁ。

userChrome.js リロード

http://lab.lowreal.net/trac/browser/c/userChrome/userChrome.js

うまい方法が思いつかない。いちおうこれで *.uc.js をさらに読み直すことはできるけど、追加されていた機能を削除してしまうことはできないのでメニューにアイテムを追加する系だといっぱいメニューアイテムができてしまう。
新しいウィンドウ作るのとどっちが楽かっていうと微妙っぽい雰囲気……

2007年 01月 25日

プログラミ

プログラミ書けてよかったなぁって思うのは、とくになんでもないのを書いてるときなんだよなぁ。たとえば Joystick からマウス制御するとか、既にあるツールを我慢して使うとかしないで、式考えて Grapher でグラフ化してみて、実際動かしてみて、自分の気にいるのが作れるのがいい。うまくいかないかもだけど

2007年 01月 26日

トキメキみらくる☆しろっぷじゅーろくぐらむ

次の CD いつでるんだろう。


度々思うけど、ホントに Ruby と JS 以外は書けるレベルじゃないんだよなぁ……それにこの二つもマトモなのを書いたりできてないよなぁ……

全然だめだ。C は簡単なのはどうにかいけるけれど、API 呼んでどうこうするときは結局 Ruby ライブラリ化しちゃったりして逃げちゃう。Perl 書こうと思ったらいつのまにか Ruby 書いてたりする。うまくいかないなぁ。

あ、Brainfuck は書けるか。いやでも書けるっていっていいんだろうか……謎だ。

「触ったことある」ぐらいのレベルで止ってるのが多すぎる。


コンビニ行ってタブルコンソメとリプトンミルクティーを買ってこようと思います。

六角形の対角

学校は必要なんだと思う。なんかどうしよもないものに抑えつけられている必要がいくらかあって、その役割が学校なんだと思う。だから、なんだかんだぐだぐだ文句がありつつも、学校とか教育なんて変らない。ぐだぐだ文句を言うために学校があるんだから、そうだよなぁ。問題意識を育てるためにあるのかもしれない。

楽しくて、幸せでありたいと思うと同時に、そうなってはいけないような意識を感じている。そこでは思考停止が幸せなのかなぁとも思う。幸せなときに、なんか創造的なことってできるんだろうか。欲張りならできるかもしれない。なってみないとわからない。でも何もしたくなくなる気がする。

全く逆のことも常に考えてる。それはこれまで、いつも書いてるようなやつ。たまにはいつもと逆のほうを肯定してみる。

みんなが今の世界や、社会を望んで生成してるとかそういうアレで、全部、既に思い通りだということを考えてる。でもあんまり自分はそれを信じてない。だって、高校生活はホントにつまらなかったんだ。結果的によかった、とか、あんまり意味がない。それこそ、なんのために生きているんだろう。辛いことやってれば幸せか? 過ぎたことはいい。


よくないことを書くかもしれない。

努力は報われるだなんて宗教がはびこってて、熱心に信じている人がいる。悪くないけど、そんなに頑張る必要って、あるんだろうか……努力とかいう、辛いことを積極的にやろうとすることができないで生きてる。勉強しないで高校に入って、勉強しないで大学に入った。

辛いことを、楽しいことに変換できる人が羨しい。楽しいことまでいかなくても、少なくともやる気になれるのが羨しい。呼吸をするように努力をして、その努力がまわりに認められる人は、すごく充実しているんだろうなぁ。

でも、努力しようとして上手く立ち回りかたを知らない人が中にはいて、そういう人たちは、努力をして、どうにかしようとはするんだけど、やればやるほど、うまくいかないのだ (多少、知識や技能はできるようにはなるだろうけれど、それが「努力」に見合わないのだ)。

「上手く努力できる才能」っていうのがあって、そういう人には努力しないでなんちょれ、という風にとらえてしまう。そして強い人や、偉い人は、だいたいそういう人だ。

幸い (?) なことに、自分は中間に位置していて (いつでも自分は普通の位置である)、努力する才能はないけれど、努力する気もなかったので、どうにかやっていけている。誰かが「努力」をしないで幸せになれることを、努力ができない人に、証明しなければならないと思う。だめだったら、それはたぶんそういうもんなんだと思う。あんまり深刻に考えているわけじゃない。最悪のケースのシナリオは絶対に裏切らない。

キチガイがわめいてるように見えるだろう。怒られるかもしれない。まぁ実際、夜中に奇声をあげたりとかよくあるわけで、なに考えてるかなんて、わかってもらえないんだろうと思う。


努力って言葉は便利だなぁと思う。「頑張れ」に似た便利さだなぁ。あたりまえか。努力しろっていうのと頑張れってのは同意だもんなぁ。

努力ってことにしておけば、あとから、辛いことをやってしまった自分を正当化できる。素晴しい言葉だなぁ。

僕は高校三年間努力して大学に入りました。どうしても原子周期表が覚えられなくて、補習をうけることになったりもしました。英語の単語テストで良い点数がとれたことはあまりありませんでしたが、一度だけ高得点をとったことがあり、そのときは先生に「やればできるじゃん」と言われ、嬉しかったです。でもそれからまた良い点数がとれたことはありません……

数学がどうしてもできなくて、文系に進路を変更しました。僕は小学校のころから理科が好きだったので、自分にはそういう道が向いていないと思いショックでした。でも文系の勉強は辛かったですが、頑張って本を読みました。それまであまり本を読むのは好きではありませんでしたが、頑張って読んでいるうち好きになり、今では自分で積極的に本を買うほどになりました。

とか。努力をしたとか頑張ったとかいう以外は嘘はついてない。

うーんでも、もうちょっと、言いたいことは、違う。もう寝よう。矛盾してるとか思うだろうけど、努力は全てむくわれるべきだと思ってるんだ。この場合の「努力」が、どういう意味を差しているかわからないけど


ながすぎ。もっと簡潔に書けよ。うざいなぁ。

2007年 01月 27日

洗濯機のカオス/女の子の日常

特になんてことない。洗濯機はいつも日常的だから、洗濯機は洗濯機であればいいのだ。

雨の日に洗濯機は動かない (もしどうしても必要であったらとか、乾燥機があったらとかだったら、動くかもしれない)。洗濯機の寂しさ。遠い日常があって、あるいはそれは日常的な女の子と似ているのかもしれない。明日になればいいんだ。でも明日が晴れるとは限らない。よくやまない雨はないと言われるけど、ストーリーはいつのまにか終ってしまうことがあって、そのとき降っていた雨はもうやまないのだ。

やっぱり黒い洗濯機がいい。

ああああ
Timer 付き Form のセットアップ
おっぱい
ふぁっく

よく再現できない。同じ文字列でもほかのようそがからむっぽい?

2007年 01月 28日

何もする気がおきないときに考えていること

コンピュータリテラシ

大学は一応情報系なのだけど、そんな「情報系」なんて呼ぶことが可能であっても、コンピュータがよくわからないとか、インターネットとかよくわからないとか、フィードって何とか、そういう人はいるわけで、じゃあもしかして他の学部であったりしたら、普段コンピュータを使わないとか、そもそもコンピュータをもっていないとかも普通にあるのだろうなぁとか考えだすと、グレープフルーツをまるかじりして皮の苦さに顔をしかめたい気分になったりする日もあったり、なかったり。

それはどうでもいいのだけれど、インターネットでブログや日記を書いていない人たちが、言いたいことを言いたくなってしまったとき、それらをどこに吐きだしているのか日々疑問だったりする。


無断リンク禁止

無断リンクについてここ最近はやっていたらしくて、「はー」とか「ほー」とか思いつつ殆ど読んでいなかったのだけれど、結局、無断リンク禁止禁止派の人であっても、無断リンク禁止の気持ちはなんとなくわかっているんだろうなぁとか思う。しかしながら、無断リンク禁止がひろがった結果それが「普通」になってしまうといろいろ困ってしまう (何が、かは誰かが既に書いているだろう) からちゃんと言っとかないとね、みたいな。(自分はどちらかといえば無断リンク禁止禁止派です)

そういえば考えてたけどまとまらなかった。この流行ってた話は、実際には無断リンク云々はあんまり関係ないんじゃないかとか思ってる。

自分もこう、あんま必要以上にリンクが欲しくないけど公開にはしときたいとかいう場合はいくらかあるけれど、公開したいのに閲覧を制限したいとかいうアンビバレンスはもちろん矛盾しているわけで、結局どっちを優先するか、ってことなんだと思う。

公開して望まないことを受けいれるか、制限 (たとえば Basic 認証だけでもそれは十分達成可能だったりするから、技術的にはそんなに問題じゃない) して、予期しないを嬉しさを捨てるか (それはインターネットの「楽しさ」の多くを奪うだろうけど)、とかなんとか……

リンクしたい

必要以上に話題になりたくないとか、そういうなんらかの理由であんまりリンクはらないでください、と書いてあるなら、わざわざリンクをはりまくったりする必要はないかなぁと思う。(というかそれは無断リンク*禁止*ではないのでたぶんそもそも問題になってないとは思うけど)

それを上回る必要性や価値がそのリンク先のリソースにあるならなんて書いてあってもリンクするけど、結構悩む。リンクした結果リソースがなくなってしまうと本末転倒で困るからだ。 (ようは自分が困る)

必要性もないし、リンク先リソースに特に価値もないなら、無視しとけばいいと思う。

ノイズ

全うな批判とは別に、それに紛れて、「ただ叩きたい」と思っている人はいて、中にはそれをやたら表に出してアイデンティティにしている人がいる。そういう人にからまられるのは、いぢめと同じでターゲットにされたらもう終りであるから、事故だと思って耐えるしかない。反論の意味がないからだ。 (議論じゃないから) もしかしたら、他の人がその人のわるい部分をしっかり批判してくれるかもしれないけれど、ターゲットにされた人ができることはなにもない。

gerry++

2007年 01月 29日

skkime も入れた

Windows 使ってるときシフト押してしまうので skkime 入れた。なんか微妙に mayu と相性が悪いっぽいけど、あんまり Windows 使ってないので放置

まだぜんぜん入力遅い。

2007年 01月 30日

レンズ欲しい

50mm はいいんですけど、こう割とちょくちょく「もっと広角でとれたらなぁ」って思うことがあったりする、ので広角が欲しいのだけれど、どれぐらいの広角が欲しいのが自分でよくわからないので困る。

とりあえず 24-85 のズームかなぁと思っているけれど踏みだせず。

あと 50mm f/1.4 が欲しい。

ヘッドフォン買いまくってた割にレンズにやたら慎重だったりする謎

2007年 01月 31日

まるごとJS に記事を書きました

まるごとJavaScript & Ajax ! Vol.1 に Greasemonkey の入門みたいなの (みたいなの?) を書かせてもらいました。

一応 GM のインストールからはじめて、なんちゃらかんちゃらというものです。


それはともかく、今日なぜか冷蔵庫に「まるごとバナナ」が入っていたのですが、これはもしかして僕のメールが母に監視されていたりするのでしょうか。まじこわいお><


本に何か書くのは初めてです。id:amachang や編集者さんありがとう><

2007年 01月 30日

gerry++

ひさしぶりに痛すぎて死ぬかと思った。トイレの中で「はらいてぇよぉ……」とかいう声を出さずにはいられない

第二波きた……今夜は眠れなそう

トイレからでてきて、「やりきった!」とか思ってるところに、またくると凹む

またきた

camping

知らなかった。http://code.whytheluckystiff.net/camping/
おもしろいなぁ。 R はキモいけど、ページごとにクラスがあって、get, post とかがメソッドなのはいいかも。REST しやすそう

2007年 01月 31日

gerry++

朝から調子悪い
快速急行にのっていたのだけれど、なんか臭いがキツい女性がいて途中で急行にのりかえた。(なぜか若干腹痛が楽になる)
あとシロップ聴いてると調子悪くなるので他のにした。パブロフっぽい予感 (高校のとき聴きまくってた)

camping blog

http://code.whytheluckystiff.net/camping/browser/trunk/examples/blog.rb
をとりあえず動かそうと思ったけどうまくいかない。

/usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/abstract_adapter.rb:120:in `log': SQLite3::SQLException: blog_users.id may not be NULL: INSERT INTO blog_users ("username", "password") VALUES('admin', 'camping') (ActiveRecord::StatementInvalid)

auto_increment きかないのかな。DB よくわからなす
camping コマンドで使用する DB はデフォルトで ~/.camping.db (--help するとでてくる)

id => false を削除して id の定義の行を削除すればいいようだ

リファラ書きかえ @userChrome

(function () {
	function FakeReferer () {
	}
	FakeReferer.prototype = {
		observe: function(aSubject, aTopic, aData) {
			if ((aTopic == 'http-on-modify-request')
					&& (typeof Components != "undefined")) {
				aSubject.QueryInterface(Components.interfaces.nsIHttpChannel);
				this.onModifyRequest(aSubject);
			}
		},

		// http://xulplanet.mozdev.org/references/xpcomref/nsIHttpNotify.html
		// http://xulplanet.mozdev.org/references/xpcomref/nsIHttpChannel.html
		onModifyRequest : function (oHttp) {
			if(oHttp.referrer) {
				// dump(oHttp.originalURI.spec);
				oHttp.setRequestHeader("Referer", oHttp.originalURI.spec, false);
			}
		},
	};

	Components.classes["@mozilla.org/observer-service;1"]
	          .getService(Components.interfaces.nsIObserverService)
	          .addObserver(new FakeReferer, "http-on-modify-request", false);
	if (typeof window.getBrowser == "function") {
		window.getBrowser().addProgressListener(arrListener , Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
	}
})();

LDR で画像の表示制限されてるの読むとき用につくった、のだけど勘違い(謎)だったらしくてアレ

http://d.hatena.ne.jp/stanaka/20060409/p1 これから必要な部分だけとってきてちょっとかえただけ

camping

これって、モデルのクラス名とコントローラのクラス名がかぶってしまうと困るよなぁ。

Comment っていうモデルと /comment/1 みたいな URL に対応するコントローラってどうするんだろ。名前変えるとすると規約で決定された部分も全部書きかえないといけないのがめんどい。

ってべつにいいのか。コントローラのクラス名は規約とは関係なくもできるか。R つかえってことかな

AquaSKK クラッシュ

単語登録のときに Cmd-V すると入力先アプリケーション (Cocoa) が確実にクラッシュする。コンソールだと直接はりつけられる。

Skype on Mac

なんかステータスアイテムが二個登録されるんですが!!

gerry++

いたいいい

OS X の flickr Uploadr

は exif の maker note を削除しまくる。使い勝手はこっちのほうがいいのにもったいない。