2007-06-23

つまらなくて役に立つ物を作るということ

プログラミングできるひとは「ゲーム作れよ」と言われることが多いような気がする。

ぶっちゃけゲームとか作れないし、たぶんウェブプログラマの多くはそうだ。
PerlやRubyやJavaScriptとかで何万ポリゴン動かしたりできない。
XMLをパースしたり、正規表現で置換したり、そういうのなら得意だ。
ゲームの人らは秒間3億ポリゴンとかやってるのに、何でこんなちまちましたことやってるんだろうと思ったりもする。

なんでこんな事やってるのかというと、面白いからやってるのだけれど、
プログラム書かない人らから見ると何やってるのか全然面白さが分からない、
3Dポリゴンが動いたり(乳が揺れたり)する方が面白いに決まってると思ってる。

彼らは失礼極まりなくて、リーナストーバルズに対しても
「お前の作ってるものは良く分からないから、ゲーム作れよ」って言うだろうね。
そういう連中を皆殺しにしないことには俺の人生始まらない。

世の中いろいろと不便なことが多くて、プログラマはそれを改善しようとしている。
世の中こんなにバグだらけなのに、バグほったらかしでゲーム作ってる場合じゃねえだろ、と思う。
電車の中で暇なのは不便なのでゲーム作ってくれてありがとうと思ったりもする。
でも基本的にはゲーム作ってる場合じゃねえだろ、って思う。

ものすげー面白いことをやろうとしている人に対して(それが一部の人にしか面白さが分からないからといって)
「お前の作ってるのは何の役に立つのかわかんねえよ。もっと俺を楽しませろよ。ゲーム作れよ、ゲーム!」
って言うのは失礼極まりないことだ。

面白くなければ意味がないとかいう人がいるけど、それって結局「大衆ウケしないと意味ない」ってのとほぼ同義だろ。
彼らは通常分厚いハッカーの壁で保護されているので、そういう言葉は届かないから、まあ良しとしても、
無知で無学で無教養のお前らにとって面白さが分からないからといって、価値がないということではないんだよ。

俺はつまんなくて役に立つ物を作るよ。そうありたい。
なんてことをカレー食いながら話した。
もちろん本意ではない。

2007-06-16

2007-06-12

Safari for Windows betaで日本語表示する方法


Preferences → Appearance で日本語のフォントを指定。
Documents and Settings\username\Application Data\Apple Computer\Safari\WebKitPreferences.plist
が、こんな風になる。


    <key>WebKitFixedFont</key>
    <string>MS ゴシック</string>
    <key>WebKitStandardFont</key>
    <string>MS Pゴシック</string>


で、フォント名から、実際のフォントファイルを参照する部分がおかしいみたいなので、
Documents and Settings\username\Local Settings\Application Data\Apple Computer\Safari\Fonts.plist
を弄る。



    <key>MS ゴシック</key>
    <string>C:\WINDOWS\Fonts\msgothic.ttc</string>
    <key>MS Pゴシック</key>
    <string>C:\WINDOWS\Fonts\msgothic.ttc</string>


ファイル編集するときはUTF-8で。


訂正。

上手くいったつもりで、フォントがOsakaのまんまになってた。上記の方法では上手くいかない。日本語を表示可能で、フォント名に日本語を含んでいないフォントを指定すれば日本語を表示できるようになる。

というわけで、MSゴシックで表示するにはフォント名の方を書き換えたら上手くいった。フォント名に日本語含まない日本語フォントを持ってれば、それを指定しても多分OK。ただしWebKitPreferences.plistを直接書き換えないと全部置き換わらないかも。

MSゴシックのフォント名をMS Gothic2に変更したフォントを作って、WebKitPreferences.plistを直接書き換えて指定すれば上手くいった。フォント名書き換えるのはttfnameというツールを使った。

http://www003.upp.so-net.ne.jp/kish/ttfname3.html


スクリーンショット
http://la.ma.la/misc/img/safari_for_win.png

フォント名をリネームするのに使ったxmlファイル。
http://la.ma.la/misc/msgothic.xml

----

手間をかけずに日本語表示を試したい人は

Documents and Settings\username\Application Data\Apple Computer\Safari\WebKitPreferences.plist
を編集してフォント名を指定している箇所を全て「MS UI Gothic」に変更すると良さげ。

2007-06-08

フィード吐いてそうなリンクを強調するブックマークレット

先日書いた、リンク先まとめて購読する機能のAPIが公開されたので、
http://blog.livedoor.jp/staff_reader/archives/51035779.html


こんなことができます。IE6の文字列制限ギリギリに圧縮(たぶん)
フィードを吐いてそうなリンクを強調

ソース
(function(){
 var api="http://rpc.reader.livedoor.com/feed/discover?url=";
 window.__feed_discover=function(r){
  var seen={};
  var links=document.links;len=links.length;
  for(var i=0;i<len;i++){
   var a=links[i];href=a.href;
   for(var l=0;l<r.length;l++){
    var f=r[l];
    if(f.link&&href.indexOf(f.link)!=-1&&!seen[f.link]){
     seen[f.link]=true;
     a.style.border="2px solid #F00";
     a.title=f.subscribers_count + " users / "+ f.feedlink;
    }
   }
  }
 };
 api+=encodeURIComponent(location.href)+'&format=json&callback=__feed_discover';
 var s=document.createElement('script');s.src=api;document.body.appendChild(s);
})();


あと、リダイレクタみたいなURL中にURLを含んでるようなケースに対応した。

さとみかんとか。さとみかんとか。さとみかんとか。
http://reader.livedoor.com/subscribe/?url=http%3A%2F%2Falimika.alib.jp%2Fsatomican%2F&extract=on

これで移行もばっちりです。
もうフィード吐いてないサイトなんか見向きもされなくなるといいですね。

2007-06-06

ハッシュキーの存在チェックを超高速に省メモリで行う方法

リンク先まとめて登録できる機能が付きました。
http://blog.livedoor.jp/staff_reader/archives/51034585.html

かとゆー家断絶からリンク張られてるサイトをまとめて登録とか
http://reader.livedoor.com/subscribe/?url=http%3A%2F%2Fwww6.ocn.ne.jp%2F~katoyuu%2F&extract=on

スタートマック体験モニタのブログをまとめて登録とか
http://reader.livedoor.com/subscribe/?url=http%3A%2F%2Fwww.apple.com%2Fjp%2Farticles%2Fstartmac_monitor_2%2Fwinners.html&extract=on

できます。

リンク先の全件にAuto Discoveryをかけると、件数次第でとんでもなく時間掛かってしまいますが、Auto Discoveryは使わずに、ページ内のリンクを抽出してデータベースから購読者数の多いフィードを出してます。で、データベースに問い合わせるのも件数次第では負荷が高いので、実際はオンメモリでフィードを提供していそうなサイトに絞り込んでから実行してます。URLの上の階層を辿っていってフィードを吐いてそうなURLを見つけたら返すという仕組み。

ここらへんはYAPC::Asiaで話したのと大体おんなじ。
http://la.ma.la/blog/diary_200704051627.htm

で、高速化のために内部でBloom::Filterというのを使ってます。

Bloom filterを使うといいよ。