コード書き初め「一二三」

書き初めに、以下のお題に答えます。 C++の問題ですが、 Javascript で。 1から1000までプリントせよ。ただし、ループ文や条件分岐文を使わずに。 c++ - Printing 1 to 1000 without loop or conditionals - Stack Overflow コード(Firefox 専用) var zero =…

ICFPc2010参戦記

会社の先輩に誘われて参加。 Common Lisp と英語が共通言語のチーム。コミュニケーションはIRCとgitのコミットログ。 私は、Common Lisp書けない、ICFPc 初参加、月曜は会社で新人研修、なので、見学者扱い。 記録: 0点 任意の燃料を生成するための工場の生…

スレの勢い、スレ検索を追加しました。

勢いで並びかえれば、いま盛り上がっているスレがすぐわかります。 スレ検索 http://eva-lu-ator.net/~gemma/ktkr2/jump.html FC2ブログでのご利用方法 ”テンプレートの設定”をします。 ”テンプレート管理”になります。ページをグイッと下に進めると、 ”スタ…

やったー2chまとめサイトエディター2.0できたよー\(^o^)/

2chまとめサイトエディター2.0 ここがすごい 豪華なエディター 画像の大きさをマウスでグリグリ 見やすいテーブル表示。検索、ならびかえも。 キャッシュでスイスイまとめがはかどる。 自動リンク、安価で並び替えもバッチリ。 実装 Gauche, YUI2, Sqlite3 3週間…

計算モデルと論理とゲーデルの不完全性定理

ゲーデルの不完全性定理は、数学を扱う数学、つまりメタ数学を考えるが、それだと理解が難しい。しかし、証明(数学)=プログラムという悟りを開くと、プログラムを扱うプログラム、つまりメタプログラムを考えればよくなり、それならコンパイラ等でなじみが…

SchemeコードバトンをGaucheでCGIにしてみた

Scheme コードバトンまとめページ - ひげぽん OSとか作っちゃうかMona- より、英単語暗記補助ツールを作るお題。 最初はコマンドプロンプトで「この単語を知っているか? Y/N/Q」だけの単純なプログラム(67行)だったのが、 10人以上のバトンを経て、今はすご…

Mozilla勉強会(#modest)に参加しました

Mozilla 勉強会 « Mozilla Developer Street (modest) プレゼン資料 アプリケーションプラットフォームとしてのFirefox拡張 HTMLでプレゼンを作れるS5を使っています。gitとの相性もいいし、ブラウザの表現力を活かせるので好きです。 Firefox3 Hacksにサイ…

「むすび」に費やした大学院の1年間

昨年の12月ごろ、つまりちょうど1年前に、XMPPとFirefox拡張の勉強を始めました。正月はずっとFirefox3 Hacksを読んでいました。Firefox 3 Hacks ―Mozillaテクノロジ徹底活用テクニック作者: 江村秀之,池田譲治,下田洋志,松澤太郎,dynamis出版社/メーカー: …

むすびのチャットとチェスがGoogleガジェットになりました

※むすびが必要です。 むすびを使って、このページを開いてから、ブラウザのブックマークから遊びたい相手を選んでください。 それでブラウザのアドレスバーがこのようなxmpp URIになっていればOKです。 romeoとjulietが遊ぶURI xmpp://romeo@gmail.com/Musub…

むすび v1.1.0でTwitterをリダイレクション、パイプしよう!

むすびがバージョンアップして、リダイレクションとパイプ機能がつきました。さて、WWW、特にURIは、世界規模のファイルシステムを実現しました。 しかし、今のWebには、ファイルとして表現できないものが生まれています。 それは、Twitterなどからリアルタ…

「むすび」でリアルタイム・ウェブなお買い物ページを作ってみた

むすびに新しいサンプルを加えました。 お買い物ごっこをするページで、相手(店主)とリアルタイムにチャットしたり、交渉したりできます。 動画(0.7MB) http://eva-lu-ator.net/~gemma/geocities/musubi/shop.wmv チェスでは、双方ともchess.htmlを見てやり…

ロビン・ミルナー△

対話するWebというと、マルチエージェント、アクターモデル、並行計算、も気になるので、 ロビン・ミルナーの本をちょっとかじってみる。Communicating and Mobile Systems: The Pi-Calculus作者: Robin Milner出版社/メーカー: Cambridge University Press…

Musubi開発の経緯

ここ5年くらい、いくつかのWebサービスを組み合わせて新しいものを作るという、マッシュアップがさかんです。 私も、クラウドでLinuxディストリビューションにあたるものは何になるだろう?にあるようなことを夢想していました。Webサービス同士の糊になるの…

Firefoxと融合するインスタントメッセンジャー「Musubi」をリリースしました

Google Waveは、電子メールを置き換える可能性を秘めたWebサービスと言われています。 Musubiは、インスタントメッセージ(IM)を置き換える可能性を秘めたFirefoxアドオンです。 リアルタイムWebコミュニケーター「Musubi」 1.0.0 Google Talk(Jabber, XMPP)…

Firefox拡張入門第8回(ローカライズ)

XULのローカライズにはdtdファイルを使い、Javascriptのローカライズにはpropertiesファイルを使います。今回は、ローカライズした"hello,world."ボタン、つまり、"こんにちは、世界。"ボタンを作ってみましょう。 マッチFOXは"Strings.jsm"ライブラリをご用…

2chのレスをアンカで並びかえる

アンカで並び替えて、例えばこのように7の次に11を表示するような処理を説明します。

アリの餌集めのシミュレーション

友人と、子どもにコンピュータや数学に興味をもってもらうには、という話をしていて、 アリの餌集めなら、子どもに身近だし、群知能やランダムウォークに繋がるし面白いんじゃないか、となった。 Processingでもいいけど、ブラウザのJavascriptでCanvasを使…

Firefox拡張入門第7回(独自プロトコルの定義 - ttp)

2ちゃんねるなどでリンク避けとして"ttp://..."を使うことがあります。 今回の拡張では、ttpプロトコルを定義して、"http://..."と同様に扱えるようにしましょう。 ttpプロトコルを扱うXPCOMコンポーネントのクラスを登録します。 そのクラスのnewURI関数で…

Firefox拡張入門第6回(Database.jsmライブラリ)

マッチFOXに同梱しているDatabase.jsmライブラリは、SQLite用のORマッパです。tomblooが開発しました。 使用例 // Bookmarkモデルを生成。 var Bookmark = Entity({ name : 'bookmarks', fields : { id : 'INTEGER PRIMARY KEY', url : 'TEXT UNIQUE NOT NUL…

Firefox拡張入門第5回(Prefs.jsmライブラリ)

マッチFOXが生成するPrefs.jsmは、Firefox拡張でユーザ設定(about:configのアレ)を簡単に読み書きできるライブラリです。 ユーザ設定とは nsIPrefBranch - MDC Preferences - MDC ユーザ設定の項目の値には型があるので気をつけます。 boolean (真偽値) inte…

XMPPの概略(和訳)

XMPPはインスタントメッセージのプロトコルで、Google Talkが使っています。 今後はGoogle Waveの基盤としてますます重要性が増す要注目のテクノロジです。そして!ついに!Google App EngineがXMPPをサポートしました! Google App Engine Blog: App Engine…

Firefox拡張入門第4回(某占いサイトをスクレイピング)

Firefox拡張はスクレイピングの最終兵器です。 今日は、某占いサイトをスクレイピングして、自分の星座のお告げを抜き出します。 某占いサイト スイーツ(笑)テーブルレイアウトです。 先にFirebugで、抜き出したいところのXPathを調べておきます。 個人的にC…

Firefox拡張入門第3回(全てのタブからはてダのリンクを作る)

それでは実際にFirefox拡張を作ってみましょう。 全てのタブの、アドレスとタイトルを取得して、はてなダイアリーのリンクにするサイドバー拡張を作ります。タブの情報は、メインウィンドウのwindow.gBrowser変数に入っています。タブブラウザ用コード - MDC…

Firefox拡張入門第2回(MozReplでFirefoxを探検しよう)

windowオブジェクトの入れ子について いつもwindow.alertなどで見る"Webページのwindow"のさらに上には、ブラウザ全体を支配する"XULのwindow"があります。 もちろんWebページ側からは触れませんが、Firefox拡張ならXULのwindowをいじれます。ブラウザはこの…

Firefox拡張入門第1回(開発の準備)

開発者必携ツール DOM Inspector 右クリックメニューを拡張したいんだけどデータどこにあんねん、というとき便利。 QuickRestart ブラウザを再起動して拡張プログラムをリロードするとき便利。 Console2 Javascriptコンソールの強化版。エラーメッセージをよ…

Firefox拡張簡単キット"マッチFOX"

Firefox拡張を作りたいけど、ややこしくて手がつけられない、そんなあなたに・・・! 簡単キット"マッチFOX"。Ruby on Rails みたいに、scaffold(骨組み)を作ってくれます。この骨組みには、はてなブックマーク拡張から取り出したエッセンスが入っていて、 …

"どぼん on BiwaScheme"をJavascriptに移植した

どぼん on Javascript ネタ元 BiwaSchemeでゲームつくった - リリカル☆Lisp開発日記 zickさん作の"どぼん on BiwaScheme"をJavascriptに移植した。 元が美しいSchemeコードだったので流れるように移植できた。これだけ複雑なトランプゲームをBiwaSchemeで書…

Gauche-XMPPのリファレンスマニュアル

Class: <xmpp-connection> サーバへのXMPPコネクションを保持するオブジェクト。以下の公開スロットがあります。 stream-id: 接続時にサーバが提示したXMPPストリームのid。文字列。 features: 接続時にサーバが提示した<features>の内容。SXML。 Condition: <xmpp-error> サーバから接続が切られた</xmpp-error></features></xmpp-connection>…

Gauche-XMPPライブラリをリリース!

GaucheでXMPPクライアントを作ろう! Gauche-xmpp-1.0.tgz gitリポジトリ http://github.com/gemmat/Gauche-XMPP/tree tweet.IMを使えばTwitterクライアントにもなる! ただし、Google Talkには直接繋げません。(私がTLSをまだ実装していないので) jabber.jpや…

インターネットOSとしてのGoogle Wave

みなさんこんにちは!私はアーキテクチャ宇宙飛行士です。 今日はみなさんを、インターネットOSの旅へとご案内しましょう! インターネットOSとは ティム曰く: 次第に我々はウェブサービスの荒野が変わるのを目の当たりにするだろう。開拓段階である第一段…