愛と勇気と缶ビール

ふしぎとぼくらはなにをしたらよいか

2010-01-01から1年間の記事一覧

githubのアレ(history.replaceStateとかhistory.pushStateの話)

会社で下の記事についてリマインドしてもらって、なんとなく気になっていたことを調べたメモ。http://webtech-walker.com/archive/2010/12/06160539.html記事を読んで、history.replaceState(null, "title", "/new.html") とかやると遷移なしでページのconte…

libev3.9系から4.0系へのアップグレードに伴ってawesomeが起動しなくなった場合の対処法

awesomeをバイナリパッケージで入れてると、libevを3.9系から4.0系にアップグレードした時点で「libevが見つかりませんよ」というメッセージが出てawesomeが起動しなくなる。対処法としては、Archの場合はaurのやつを入れるなりしてawesomeをビルドしなおし…

jQueryで複数の要素が返ってくるセレクタの結果セットにget系の関数を適用する場合の返り値

割と常識的な話かもしれないけど 例えば、 (function($) { $(".hoge").attr("name", "hoge"); })(jQuery); という風に書くと、内部的にループが回ってhogeクラスが指定されているelement全てのnameを"hoge"にできる、というのは割と知られた話である。じゃあ…

Shindigのwave featureで実現する簡単なお絵かきチャット feat. node.js and Socket.IO

タイトル書いてから気づいたけど、別にチャット機能とかなかった。 http://d.hatena.ne.jp/zentoo/20100821/1282407303 以前に書いた↑のエントリでは、Shindigのextrasに入ってるwave featureを調べてみて、「あーこれShared Stateはコンテナ側で何とかして…

VimperatorでInstant Previewsとイチャイチャするためのpluginを作った、けど…

最近(3日前くらい?)、Google検索の結果画面でリンク先のページのプレビューが見えちゃうInstant Previewsというムフフな機能がリリースされた。けど、ブラウザとしてVimperatorを選択した僕達がInstant Previewの引き金となっている(であろう)clickイベン…

v8botをTwitter用にportした

某所の某チャンネルで、v8botなるものを見つけたので、Twitterでも動くようにしてみた。動くようにしてみたというか、サンドボックス周り以外はイチから書いているし、機能は一つしか移植していない。元のヤツは参考程度。http://twitter.com/v8botReplyでJa…

まろびゆく世界

Vim

そういえばいつの間にか、pathogen + git submodule方式に移行していた。母さんが薄いラッパー書いていた。http://github.com/zentooo/Vivaちなみに、ちょっとかぶった。http://github.com/tokuhirom/tokuhirom-dotfiles/blob/master/util/vim-fooVimプラグ…

node.jsのインストールはpython3がデフォになってるとアビャビャー、ってなるという話

node.jsのインストールは、.configureからmakeまで全部がtools/wafなんとかに依存していて、tools/wafなんとかの下のpythonスクリプトは全部python2系(僕が確認したのは2.7のみ)じゃないと動かない。configureとかをいじって何とかごまかすのもいいけど、p…

Term::ANSIColor::Relaxで愛されモテカワ端末に大変身!?

今更ながら、autobox面白いな、と思ったので。http://github.com/zentooo/p5-term-ansicolor-relax 下のコードを実行すると use Term::ANSIColor::Relax; use feature qw/say/; say "I"->green; # color say "love"->magenta->bold->underscore; # style say…

ゆとりがlong pollingを実装してみた

long pollingって結局 HTTPでつなぎに行って、レスポンスが帰ってきたら何かして再度つなぐ(Client Side) HTTPリクエストをキープしといて、イベントに応じてレスポンスを好きな時に返す(Server Side) の2つだろう、と思って、勉強を兼ねて「とりあえず上記…

node.jsでshotgun

これhttp://github.com/weepy/bounceを npm install bounce して bounce -r -w './httpserver.js' 'node httpserver.js' こう。カレントディレクトリにある、httpserver.jsを編集している場合の話。shotgunというよりこれは、子プロセスのrespawn機能付きのi…

redflagをナビ子記法でリファクタリングする

WEB+DB press vol.59に載っていた、id:uupaaさんのナビ子記法が目からウロコだったので真似してみた。 (function(global, require) { var sys = require('sys'), fs = require('fs'), Script = process.binding('evals').Script; setups = [], events = {}; …

IE8におけるreadyStateとstatusのおいしい関係

ちょっと若気の至りでこんなコード書いてた。 if ( xobj.readyState === 2 && xobj.status === 401 ) { // hogehoge } このコード、IE8だと「エラーを特定できません」とか言って怒られる(特定しろよ!ハゲ!)。readyState === 2のところをreadyState === …

node.jsのsysパッケージはutilパッケージに移行予定らしい

node.jsのsysパッケージはutilパッケージに移行予定らしい。 11:22 JimBastard: a message is outputed on 0.3 when you require('sys') 11:22 % ./node 11:22 > process.version 11:22 'v0.3.1-pre' 11:22 > require('sys') 11:22 The 'sys' module is now …

二人のJake

とあるプロジェクトをgithubから引っ張ってきて、プロジェクトのルートディレクトリに"Jakefile"なるファイルがあったので何かと思って調べたら、Rakefileの拡張文法でJakefileを書いておくことで、.jsファイルのcompressとかドキュメントの生成?などが出来…

node.jsで「メタプログラミングRuby」水曜日のredflagを実装する

はい、つられましたね。あなた、node.jsっていう流行り言葉につられてこのリンクを踏んでしまいましたね。ここはバーボンハウスだ。ゆっくりしていってくれたまえ。 というような冗談は置いといて。最近、「メタプログラミングRuby」っていう本を読んだので…

gumistudy #5に行ってきたような気がする

現GREE、id:naoyaさんによるTitanium MobileというJavaScriptで、iPhone/Androidのネイティブアプリを作れるSDKのおはなし。 公式はこれですな。http://www.appcelerator.com/ 要点としては、 チタニウムじゃなくてタイタニウムらしい? 事前情報だと違うのか…

YAPC::Asia 2010に行ってきたかもしれない

けっこう長いかもしれない。あと、前の方の記憶が結構うすれてるかもしれない。 前夜祭(10/14 夕方〜) WAF祭り とりあえず、きのこ派(Catalyst派)とたけのこ派(Sledge派)がいることは分かった。あと、id:tokuhiromさんのWAF全般に関する考え(結局何のために…

Vimのplugin管理ツールつくった

いつかやろうやろう、と思いつつ、.vim以下の整理がなかなかできていなかった。なので、整理しようと思ったんだけど、どうせこういったパッケージ的なものを整理するなら何らかのパッケージマネージャで一元的にinstall/remove/upgradeしたいと思うのが人情…

Rakeで俺たちはもっとtmuxと仲良くなれるんじゃないか?と思った

gist: http://gist.github.com/557598きのこかたけのこかと問われればたけのこ、犬か猫かと問われれば猫、VimかEmacsかと問われればVim、screenかtmuxかと問われればtmux。 というわけでtmuxを使っているのだけど、一年くらい使っているにも関わらず「新しい…

Test::QUnit - mozrepl経由でコマンドラインからJavaScriptのテストを実行する

マクラ - JavaScriptのテストについて テストのないコードはコードではなく、テストを書かないプログラマはプログラマではなく、テスティングフレームワークのない言語は言語と呼ぶに値しない。と以上のような偉そうなことを言う資格は全くないし狂信的でも…

Google Wave追悼にちなんでShindigのwave featureを試してみた

仕事でApache Shindigというプロダクトに関わっているのだけど、その関係でShindigプロジェクトのtrunkを時々svn upして、最新版のShindigにどのような更新があるのかチェックしている。それで、この前svn upをかけたらtrunk/以下にextras/src/main/javascri…

JSONP ってJSONあんま関係ないよね

既に流通してる名称だからしょうがないけど、JSONPって名前は何だか紛らわしい。この名称はちょっといただけない。JSONPを試してみよう!というとき、大体こういう感じにhtmlを書く。(なんかscriptタグとか消されるので変なhtmlでご勘弁を) JSONP test jav…

Plack::App::Proxy::Selectiveとか作ってみた

マクラ どうも、大してPerlも書けないのに会社のローカルでは常に3つほどplackupでサーバ立ち上げて作業しているzentoooです。すいませんすいません。 企業で働いていると、関与してはいるけれど自分には権限がないので本番サーバあるいはそれに準ずるサーバ…

fms_switcher.jsで端末固有番号も設定できるようにした

以前に作った、VimperatorのコマンドラインからFireMobileSimulatorの設定を変更するプラギンを更新した。(前記事 → http://d.hatena.ne.jp/zentoo/20100612/1276329010) http://gist.github.com/435540 変更点としては、 コマンドの第二引数でUID(端末固有…

JavaScriptのnewって何?一体何なの?という話

マクラ JavaScriptを使っている人なら知っていることだろうけど、JavaScriptはプロトタイプベースのオブジェクト指向を採用しているので「クラス」がない。オブジェクトしかない。でも、組み込みの演算子としてnewがあって、それを使って var obj = new Obje…

僕がJavaScriptで簡易なdeep copyを必要としたわけ

しばらく前から仕事でApache Shindigを触っている。Shindigは、Googleの提案しているソーシャルアプリケーション(日本だとソーシャルゲームと言った方が通りがいいかも)の共通API、OpenSocialの参照実装。もそっと分かりやすく説明すると、mixiアプリって…

ackで幸福実現した

正確にはack-grepで幸福実現した。ちょっと前の記事「gitの.gitignoreみたいなことをしてくれるgrep」(http://d.hatena.ne.jp/zentoo/20100702/1278082655)ですごくしょうもないgrepのラッパーを書いたんだけど、そもそも書く必要なかった。コメント欄でtyru…

GAE/Scala/Lift + Twitter4jでTwitterのbotを作る(0)

前はGAE/JRuby/Sinatraで書いていたんだけど、全部のbotが4月くらいに止まってた。Webからの認証も通らないし手も足も出ない。なので、アカウント取り直して、せっかくだから別の言語で、せっかくだからちゃんとOAuth対応botにして書き直したら意外と時間が…

gitの.gitignoreみたいなことをしてくれるgrep

割とでっかいプロダクトをいじってて、そのプロジェクトのトップディレクトリでgrep -R hoge ./* とかしたいとする。んでgrepしたいんだけども、単にgrepするとtest用のコードだとか.svnなんとかが引っかかってイヤンなことになる。こういう場合どうするかっ…