タグ

ブックマーク / secondlife.hatenablog.jp (17)

  • watchr - ファイルに変更があったら何かする / もしくはオサーンについて - 2nd life (移転しました)

    みなさま、いかがお過ごしでしょうか。以前人のことをオサーンオサーン云いまくっていたけどその当時のオサーン年齢のもうすぐ三十路になります secondlife ですこんばんわ。言葉のしっぺ返しが痛い今日この頃です。 さて、若かりし頃には合わなかったけど今使ってみるとしっくり来る物もありますね。その一つが AutoTest(ZenTest) です。ファイルが更新したらこける / SyntaxError になると解っていてもテストが走りFFF、自分のテストサイクルでテストが実行できないのが我慢できませんでしたが、久しぶりに使ってみるとそんなのは気にならず、いちいちテスト実行しなくてよくなってとても気持ちがよい感じです。 しかしながら ZenTest に含まれる AutoTest はレールが敷かれているテスト環境では利用しやすいけど、ちょっと道を踏み外すと結構テストを実行するのがめんどくさいです。

    watchr - ファイルに変更があったら何かする / もしくはオサーンについて - 2nd life (移転しました)
    teppeis
    teppeis 2012/03/02
  • プログラミングの楽しさ。オープンソースとの出会い。 - 2nd life (移転しました)

    100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊 が出版され、『私と Ruby と添削と』という内容で寄稿しました。私がどうプログラミング・オープンソースの楽しさを知ったかについての昔話です。公開して良い、とのことなので公開いたします。 なお、文章中に出てくる tdiarytimes.rb のコードは以下です。9年前に書いたコードなので今読み返すと恥ずかしいを通り越してもはや微笑ましいですね!!1これでも当時は、自分なりにできるだけ綺麗なコードにして公開した記憶があります。 https://github.com/tdiary/tdiary-contrib/blob/master/plugin/tdiarytimes.rb 私と Ruby と添削と プログラミング技術の向上させるには、どういう方法があるでしょうか。プログラミングに関する書籍を読む、オープンソースで公開されて

    プログラミングの楽しさ。オープンソースとの出会い。 - 2nd life (移転しました)
    teppeis
    teppeis 2012/02/03
  • さいきんの Rails サービスを高速化をしてみた - 2nd life (移転しました)

    先日のももクロハッカソンで出会った wantedly を作ってる仲さんが と言ってたので、面白そうなので wantedly を速くしてみました。 wantedly ちなみにデータが数百万オーダーもなさそうなのに、どのページもログインすると2-5秒ぐらいかかっていたので、確実に速くできそうだなぁという感覚はやる前からありました。 アプリケーションサイドのチューニング 初心者*1にありがちな問題として SQL に適切にインデックス張ってない キャッシュすべき場所をキャッシュしていない 無駄なデータを引きすぎてる ことがよくあります。ので順に実装を見ていきました。 SQLに適切なインデックスを張ってない 張ってありました!びっくり!\(^o^)/ キャッシュすべき場所をキャッシュしていない Facebook API を利用したアプリケーションなんですが、ユーザのデータの取得を毎回馬鹿正直に HT

    さいきんの Rails サービスを高速化をしてみた - 2nd life (移転しました)
  • crossdomain.xml と CSRF 脆弱性について - 2nd life (移転しました)

    crossdomain.xml を安易に設置すると CSRF 脆弱性を引き起こす可能性があります。というのも、ここ数が月、それなりの数の crossdomain.xml による CSRF 脆弱性を発見し(現在、それらのサイトでは対策がなされています)、まだまだ Web プログラマに脆弱性を引き起こす可能性がある、という考え方が浸透してないんじゃないか、と思ったので。 先月、Life is beautiful: ウェブサービスAPIにおける『成りすまし問題』に関する一考察にも crossdomain.xml について書かれてたのですが、その後もいくつかのサービスで crossdomain.xml を許可ドメインすべてにしているサービスがあったので、注意喚起としてエントリーに書き起こします。 自分も一年半ぐらい前は、crossdomain.xml を許可ドメインすべて ('*') にして設置し

    crossdomain.xml と CSRF 脆弱性について - 2nd life (移転しました)
  • さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料 - 川o・-・)<2nd life

    日行われた Shibuya.js の発表資料をアップしました。 さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料 View more presentations from hotchpotch JS のテスティングフレームワークのおおざっぱな説明や JavaScript テストにおける問題、それについての解決方法の一つ、CUI でのテスト、Envjs、エンドツーエンドテストにおける JS / Ajax のテスト、終わりにちらっと Phantomjs の話があります。 スライドの最後にあるように、やはりまだコレだ!という JS のテスティングフレームワークは存在しなく、今後 JS のテストは『僕らが書きたいテスト』をどれだけ簡単に書ける・書く手法が確立されるかによって流行廃りは決まってくるんじゃないかなぁ、と思ってます。そのうちの一つがスライ

    さいきんの JavaScript テスト / Test.js - Shibuya.js 発表資料 - 川o・-・)<2nd life
  • sudo.vimを使わないでvimでsudoを使ってのファイル保存 - 川o・-・)<2nd life

    自分の管理してないマシンだと普通sudo.vimなんて入ってない。でも作業を行うことになって権限のないconfなんかをつい一般ユーザで編集しちゃって保存しようとしたら怒られる、とかよくやるんだよね(コピペ)。そんなときsudo.vimを使わなくっても :w !sudo tee >/dev/null % で保存できる。端末に編集内容が全部表示されてもかまわない場合は/dev/nullに投げないで :w !sudo tee % でもOK。ただしうっかり間違って :!sudo tee % とかやっちゃうとファイルが白紙になるので注意、、、。

    sudo.vimを使わないでvimでsudoを使ってのファイル保存 - 川o・-・)<2nd life
    teppeis
    teppeis 2010/07/23
  • Chrome to Phone を Greasemonkey と Vimperator で利用できるようにする - 2nd life (移転しました)

    先日の公開された Android 2.2 ですが、この 2.2 で API から Google 経由で簡単に Push Notification Service を利用することができるようになりました。 Android Cloud to Device Messaging Framework - AndroidGoogle Developers アプリ開発者はこの API を使えば簡単に Web やその他 Android 以外のデバイスから起こしたアクションを Android に通知することができます。感覚としては5秒後にはもうすでにAndroid端末にpushされてる感じです。 で、この API を作った Chrome to Phone という Google Chrome で見ているページをワンクリックで Android に通知して Android ブラウザで開いたり、GoogleM

    Chrome to Phone を Greasemonkey と Vimperator で利用できるようにする - 2nd life (移転しました)
  • ブックマークレットサービス・Hatena::Let を作りました - 2nd life (移転しました)

    ブックマークレットをかんたんに作成・公開できるラボサービス、その名も Hatena::Let を作りました。 http://let.hatelabo.jp/ 未だにブックマークレットを作るときには、アドレスバーに javascritp:... を打ち込んで実行したり、 Firebug で実行して試しつつも外部の bookmarklet 化サービスを使って文字列削ったり、IE対策のため500ちょい文字を超えると gist にファイルを置きつつもおきまりの var script = document.createElement('scrit');... で JS のローダー書いたり、とやりたいことは同じなのにめんどくさい手順を毎回行っていたました。 ここらへんの手順を毎回繰り返すことなくさくっと作って公開したい!と思い id:cho45 と半年ぐらい前の開発合宿*1で作って眠らせていたのを、ち

    ブックマークレットサービス・Hatena::Let を作りました - 2nd life (移転しました)
  • はてなモノリス開発話 - 川o・-・)<2nd life

    日、はてなモノリスという Android / iPhone3GS 向けの簡単にモノのバーコードをスキャンして投稿(Twitter にも同時投稿できます)というサービスを作りました。是非対応端末をお使いの方は利用してみてくださいね。概要だけきいてもうーん、という感じですが実際に使ってみると簡単にモノのバーコードが認識できお気楽に投稿できるのは楽しいです! http://mono.hatena.ne.jp/ 約一ヶ月ほど専念して開発したんですが、その話でも。 開発の経緯 最近僕ははてなブックマークのディレクターと、はてなAndroid 開発周りを担当しています。とあるミーティングで今後 Android をどう展開していくか、という話を id:jkondo, id:naoya, id:cho45 と僕で行いました。Android の開発おもしろーい、と個人的に強く思ってることもあり And

  • ctags で JavaScript のタグを生成 - 2nd life (移転しました)

    エディタを使う上でわりと欠かせないのが、ctags(じゃなくてもいいけど)によるタグの生成です。あらかじめタグを作っておけば、関数などの補完も効くし、タグジャンプで即座にソースが読めて非常に便利です。 しかしながら現在の Exuberant Ctags の最新版では、JavaScript のタグ生成が function funcname(){}という関数の書き方にしか対応しておらず、最近の JavaScript プログラミングでよく使われるプロパティに関数を定義するタイプの funcname: function(){}という書き方ではタグ生成がされず悲しいです。で、prototype.js やら MochiKit やらを多用してるとタグジャンプがないのは不便すぎて悲しくなってきたので、当初は jstags という rubyJavaScript タグ生成のプログラムを作って代用してまし

    ctags で JavaScript のタグを生成 - 2nd life (移転しました)
  • Google Chrome 拡張ことはじめ - 2nd life (移転しました)

    2009年12月8日*1(日時間では12/9朝)、拡張機能が有効(除くOSX)な Google Chrome ベータ版がリリースされました。同時にこつこつ開発を続けてた、はてなブックマーク Google Chrome 拡張ベータ版も公開したので、良かったら使ってみてください :D http://hatena.g.hatena.ne.jp/hatenabookmark/20091209/1260314705 というわけで、Google Chrome 拡張を作ってみたのですが、その時に参考にした資料やドキュメントをまとめてみました。 Google Chrome 拡張APIドキュメント http://code.google.com/chrome/extensions/docs.html的に上のURLで必要なAPIのドキュメントはまとめられています。またページ中央下の「Doc versio

    Google Chrome 拡張ことはじめ - 2nd life (移転しました)
  • 川o・-・)<2nd life - bookmarkletの文字数制限を無くす

    bookmarkletを作るとき、IEでは500文字ちょい、Firefoxでは2000文字ぐらい(?)の文字数制限がある。また、作った後に一行にまとめたり、デバッグしたりも大変面倒。でもそれがとても簡単な方法でどうにでもなることをインターフェイス!インターフェイス!の人に教わった。 javascript:(function(){var s=document.createElement("script");s.charset="UTF-8";s.src="http://example.com/example.js";document.body.appendChild(s)})(); createElementでscript要素を作って、その中にhttp://example.com/example.jsとソースを指定することによってそのJSを実行できる。WinIEとFirefoxでは確認済み。

    川o・-・)<2nd life - bookmarkletの文字数制限を無くす
  • Firefox Developers Conference 2009 発表資料 - 2nd life (移転しました)

    2009年、11月9日に開かれた、 Firefox Developers Conference 2009 で、はてなブックマーク Firefox 拡張の話をしてきた資料です。実装についての話は、nanto_vi さんが資料を公開してくれると思います。 資料の最後にも載ってますが、当に Firefox 拡張開発に当たり、Mozilla/Firefox に関わる方々が公開してくださっている資料やコミュニュティの成果物に非常に助けられ、それらが無ければ開発は行えなかったと思います。Firefox Developers Conference に参加された方々、Mozilla Japan やその他 Mozilla コミュニュティの方々、Mozilla/Firefox に関わるすべての方々、どうもありがとうございます。 はてなブックマーク Firefox 拡張の裏側 はてな 舘野祐一(id:seco

    Firefox Developers Conference 2009 発表資料 - 2nd life (移転しました)
  • 川o・-・)<2nd life - Developer Enviroments Conference の発表資料

    9/8 に開かれた DEcon で windows enviroments and vim という内容で発表してきました。主に自分が使ってる windows の開発に便利なツールと、vim についてプレゼンしてきました。時間大幅に押してしまいましてスイマセン…。 また、スピーカと参加者のみなさん、お疲れ様でした。他の方の開発環境やポリシーが聴けて大変参考になりました。あとカンジマン(id:tnx)には毎度の事ながら様々な準備お疲れ様でした。 自分のプレゼンには自作のはてな記法つかったプレゼンツールを使ったのですが、よくよく考えるとそれをエントリーに貼り付ければいいじゃん!ということに気づいたので、以下に発表資料を貼り付けておきます。 windows environments and vim secondlife 発表内容 windows での環境 どんなツールがあると便利か vim vim

    川o・-・)<2nd life - Developer Enviroments Conference の発表資料
  • vim でのオススメ plugin

    最近 .vimrcを貼り付けるのが流行ってるみたいなので自分も.vimrcを貼り付け、るわけでなくオススメの plugin を紹介してみようかと。 Align.vim http://www.vim.org/scripts/script.php?script_id=294 痒いところに手が届く整形ぷらぎん。 options = { width => 100, height => 50, background => nil, } なソースを範囲選択して :'<,'>Align => すると options = { width => 100, height => 50, background => nil, } のように整形してくれます。 Allargs.vim すべてのバッファでコマンドを実行。例えば開いてるバッファのすべての文字列を置換したければ、 :Allargs %s/perl/ruby

    vim でのオススメ plugin
    teppeis
    teppeis 2008/03/12
  • vim の text-object をより便利に使えるプラグイン - surround.vim - 2nd life (移転しました)

    http://www.vim.org/scripts/script.php?script_id=1697 vim7 から追加された text-object は大変便利で、今や手放せなくなっています。その text-object をより便利に使えるプラグイン、surround.vim が便利すぎるので紹介します。 いままで、text-object では (以下では、コードの『*』の位置に現在カーソルがあると考えてください。) foo 'b*ar' bazの位置にカーソルがあるとき、i' でシングルクオーテーションの中身を選択できたり、a' でシングルクオート含む部分を選択できました。しかし『'』そのものを削除したり、置換したりはできなく、ちょっと不便でした。しかし、surround.vim では ds cs ys vs それぞれにコマンドを割り当てて、様々なことができるようになってます。たと

    vim の text-object をより便利に使えるプラグイン - surround.vim - 2nd life (移転しました)
    teppeis
    teppeis 2008/03/12
  • ack.vim - vim から ack の検索結果を使う - 2nd life (移転しました)

    http://coderepos.org/share/browser/lang/vim/ack/plugin/ack.vim vim で、カレントディレクトリ以下のファイルから文字列を検索し、quickfix リストで眺めたいとき " :vim は :vimgrep の省略 :vim /foo/j **/* :cwinと毎回打っていたんですが、面倒だったりバイナリファイルにマッチすると遅くなったりしてしまったりしてしまうため、コマンドラインからソース検索でよく使う ack を利用し、検索結果があれば quickfix を表示する(カーソル移動はしない) vim plugin の ack.vim を作りました。 :Ack foo " カレントディレクトリ以下のすべてのファイルから文字列 foo を検索 :Ack --perl use " カレントディレクトリ以下の perl コードから文字列

    ack.vim - vim から ack の検索結果を使う - 2nd life (移転しました)
    teppeis
    teppeis 2008/03/12
  • 1