« 2008年09月 | メイン | 2008年11月 »

2008年10月 アーカイブ

2008年10月03日

Firefoxが起動しなくなった

Firefoxが固まっても強制終了後にすぐ再起動したりして、OSを10日以上起動しっぱなしで使っていた。
それが原因かはわからないが、Firefoxが起動しなくなった。
OSを再起動しても無理。
で、safemodeなるものがあるので、起動してみた。
% /Applications/Firefox.app/Contents/MacOS/firefox -safe-mode
libxpt: bad magic header in input file; found 'eqo7nv4', expected 'XPCOM\nTypeLib\r\n\032'
libxpt: bad magic header in input file; found 'eqo7nv4', expected 'XPCOM\nTypeLib\r\n\032'
この時点でかなり焦る。
セーフモードで起動して、さっきまで弄っていたadd-onの除去やキャッシュのクリアで直ると思っていたからだ。
libxptやXPCOM、xptが何か調べたり、TypeLibを調べたりしたけどよくわからない。
とにかく切り分けが必要だと思った。
考えられる場所としては、大きくわけてSystem、Firefox、Firefoxの個人データの3つ。
Systemだとかなり厄介だし、個人データだともしかしたら取り返しのつかない事になるかもしれない。
Firefoxであればと願いながら、次の作業をした。

[~/Library/"Application Support"/Firefox]にある個人データを別の場所に移動。
Firefoxを起動してみる。
同じように落ちる。
これで、個人データの可能性は低くなった。
例えば、Firefoxと個人データが同時におかしくなっている可能性はゼロじゃないのでまだ安心できない。
新たにできた[~/Library/"Application Support"/Firefox]を削除。
[/Applications/Firefox.app]を削除。
Macでは、uninstall作業はほとんどの場合、appファイルを削除するだけで済む。
で、手元にあるFirefoxをinstall。
これも、Applicationsに直接放り込むだけ。
これまで使っていたFirefoxは3.0.3だけど、installしたのは3.0.1。
個人データとApp本体のバージョンが違って、また不具合を起こしかねないので、Firefoxを3.0.3にupdate。
Firefoxを落として、また新たにできた[~/Library/"Application Support"/Firefox]を削除。
[~/Library/"Application Support"/]に個人データを複製して戻す。
Firefoxを立ち上げなおす。
直った!

ドキドキですな。

Kanasan.JS prototype.js CodeReading#6開催します

なかなか開催までこぎ着ける事ができませんでしたが、prototype.js CodeReading#6開催します。
今回は、kanasanがなかなかまとまった時間がとれなかった事もあり、スタッフ主体で準備しています。
ありがとうみんな。
kanasanだけだったら少なくとも後半月は開催できなかったと思います。

Kanasan.JSのSiteを移設しました

そもそも、何ヶ月も前から移行を考えていたのですが、前回のJavaScript第5版読書会#5直後に、Google Groupsのほうでspamが相次ぎ、siteの移設が最優先になりました。
ところが、最優先にも関わらず全く作業が手つかずのままズルズルと9月になってしまい、スタッフと大急ぎで新siteを構築しました。
新siteはGoogle Sitesにあります。
前回まではGoogle Groupsとcotocotoで申込を行っていましたが、今回からはGoogle Sitesに一本化しています。
移行の理由
「そもそも、何ヶ月も前から移行を考えていた」と書きましたが、次のような状況にあったからです。
これまでは、テンプレートがあるにも関わらず、分散していたため申込ページをつくるのに2時間程かかっていました。
参加者の管理に使っていたcotocotoは、単発イベントの申込には非常に楽なのですが、継続したイベントでは少々煩雑になってしまいます。
しかし、Kanasan.JSではGoogle Groupsで告知、cotocotoで勉強会と懇親会の受付を行い、それぞれ相互リンクを貼る変人的な形態をとっていました。
特に辛かったのは、セッションの関係で勉強会と懇親会を同時に編集できないため、編集・更新の順番等、Bad Know Howの固まりだった事です。
非常に神経を使う作業だったため、申込開始作業が開催までの最大のボトルネックとなってしまった回もあります。
cotocotoが使いにくいとかではなくて、そんな変人的な使い方をしているKanasan.JSの運営の問題です。
cotocotoは何も悪くないです。

StylishのUserStylesを作ってみた

Stylishは、GreasemonkeyのStylesheet版って感じのもの。
GreasemonkeyはJavaScript、StylishはCSS。
UserScriptsに対してUserStylesだし、http://userscripts.org/に対してhttp://userstyles.org/だし。
とりあえず作ってみた。
Lingrの発言をフキダシにする。
試しに作ってみただけなので、大した事はしていない。

2008年10月08日

全ての画像を電脳コイルにするBookmarklet[少々ネタバレあり]

電脳コイルを見たので作ってみた。
ネタバレを避けるためにタイトルは少々わかりづらく書いた。
例のごとくFirefoxでしか検証していない。
このBookmarkletを実行すると、画面内の全ての画像が電脳コイル現象をおこして電脳体が分離する。
全ての言っても、positionがfixedの画像は適応外。
大きく分離した時に元の画像を濃くしてNO DATAって表示させようかと思ったけど、filter関連が面倒なのでやめた。
今思ったけど、NO DATAにならないと電脳コイル現象って言わないんだっけ?
まあいいや。
/*
================================================================================
    Name        :   Denno Coilize
    In          :   [none]  
    Out         :   [none]  
    Note        :   電脳コイル現象を発生させる
--------------------------------------------------------------------------------
    Version     :   Ver1.0.0    |   2008/10/08  |   新規作成
--------------------------------------------------------------------------------
    License     :   MIT license
    URL         :   www.kanasansoft.com
================================================================================
*/

(function(){
    var images=document.getElementsByTagName('img');
    for(var i=images.length-1;i>=0;i--){
        image=images[i];
        var clone=image.cloneNode(true);
        var position=getComputedStyle(image,'').position;
        if(position=='fixed'){
            continue;
        }else{
            clone.style.position='absolute';
        }
        clone.style.top=(image.y+image.height/20)+'px';
        clone.style.left=(image.x-image.width/20)+'px';
        clone.style.filter='alpha(opacity=30)';
        clone.style.MozOpacity=0.3;
        clone.style.opacity=0.3;
        images[i].parentNode.insertBefore(clone,images[i]);
    }
})();

2008年10月10日

同じ時代に生きていると同じ事を考える人が沢山いるというのを実感したという話

JS界のプリンスがこんなサービスを公開した。
複数のソーシャルブックマークを時系列に並べるサービス。
で、せっかくなので自分のblogでブックマークが一番多くついたentryを試してみた。
上記entryのチャートマニアックスがこれ。
そしたらこんなの見つけた。
物凄くどうでもいい。

ま、それはそれとして、はてなスターの☆??☆ってのはそもそも認識しづらい表示方法だと思うんで、☆5個、☆10個、☆20個、☆50個、☆100個、でそれぞれ色が変わるの方がパッと見どれが評価が高いのかの視認性は優れていると思う。
全部一円玉より五円玉、十円玉、五十円玉にした方が手持ち金額が分かりやすいように。  

つかこれ出すとしたらはてなへの要望だな。
色はID振っといてくれたらデフォ以外にcssで変えられるんでそんな感じで。(読んでるわけないが)
同じ事考えてた人がいたんだw
それを実装したのがこれ。
もしかしてこっちもブックマークされてる?
採用も何も今日はじめて知りましたw
関係ないけど、複数のソーシャルブックマークに一度に登録するいい方法ないかなと...。
単純にpostするんじゃなくて、落ちているソーシャルブックマークがあったら後でpostしなおして同期してくれる機能が欲しい。

2008年10月15日

Kanasan.JS prototype.js CodeReading終了しました

関西にもJavaScriptの勉強会が欲しいとはじめたKanasan.JS、初回はprototype.jsのCodeReadingでした。
初回の余りのレベルの高さからサイ本の読書会を併設して、以後交互に実施してきました。
prototype.js CodeReadingは今回で6回目、とうとうprototype.jsを全て読み終わりました。
サイ本がまだ途中なのであまりやり終えた感はありませんが、とりあえず少しは安堵しています。
サイ本読書会もあと数回で終わりそうなため、しばらくは読書会が続く予定です。
ただ、その後のKanasan.JSの方向性もまだ決まっていません。
アイディアを書き出してみる
prototype.jsの次はjQueryという意見もありますが、Roppongi.JSとかぶってしまします。
開催スタイルが違うのでべつにかぶっても良いと言えば良いのですが...。
一番現実的な案です。

オライリーのJavaScript & DHTMLクックブックも考えていますが、どんな内容かあまり把握していません。
今年改訂されたので向いていると言えば向いているとは思います。

Greasemonkeyがありますが、その特性上あまり深く追う事はできなさそうです。
GreasemonkeyのAPIはそれほど多くはないですから、それを一通り学んで後半は各自でuser scriptを作成、良い案だとは思っているのですが多分一回で終わるでしょう。
ソースは「Dive Into Greasemonkey」の日本語訳が最有力です。

同じ方向性として、Google Gears等のクライアントストレージもありますが、こちらもあっというまに終わりそう...。

FirefoxのAdd-on(またはXUL)の作成も考えたのですが、JavaScriptというよりはFirefoxに偏り過ぎている感じがします。
Greasemonkeyの延長上にあるとも考えられますし、中ではJavaScriptが多用されるので関係ないとは言えないのですが...。

他の勉強会のように講義形式も考えたのですが、参加者の人数的に講師が集まるかどうか...。
CodeReadingや読書会でなければ参加しますという人が多ければ考えても良いと思いますが、その人数が未知数で踏み切る事ができません。
何かいい案があったら教えて下さい。

2008年10月19日

勉強会の参加・開催に関する情報

勉強会に関する情報が恐ろしい勢いでネット上に充実してきています。
はなずきんさんの今年の始め頃から兆候はあったと思っているのですが、IT 勉強会カレンダーが知られるようになり更に加速しています。
ITカレンダーが一般に取り上げられるようになったきっかけがnitoyonさんのこちらのentry。
以後、あちらこちらで取り上げられるようになりました。
そして、IT 勉強会カレンダーを活用した色々な事が起きています。
「IT 勉強会カレンダー for Mobile」はQRコードを作成したのではっておきます。
IT 勉強会カレンダー for Mobile
IT 勉強会カレンダー for Mobile
勉強会っていっても参加者向けの情報だけではありません。
主催者側の情報もちらほら出てきています。
主催者・講師向けの情報爆発がいつおきるのか期待しています。
はなずきんさんへの情報提供の窓口はこちら。
ただ、危惧していることを何点か。
開催が多すぎて参加者の取り合いになってしまわないかという事。
活発になるのは良いのですが、活発になり過ぎてコミュニティ全体が疲労してしまわないかという事。
主催する事の敷居が下がる事で勉強会の乱立、そして勉強会の質が平均して下がり、結果として参加者が減っていかないかという事。

参加者層を考慮した日程の調整は、勉強会主催者同士のMLで行なってはいますが...。