タグ

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

  • デブサミ2009 はてなの開発戦略 - 2nd life (移転しました)

    先日のデブサミ2009で発表した、はてなの開発戦略 (すごい名前だ…) のプレゼン資料を公開します。前半は主に git の話で、後半ははてなブックマークリニューアルの、Perl 層の開発をどんな感じで行っていったか、という話です。 デブサミ2009 はてなの開発戦略View more presentations from hotchpotch. はてなの git では、中央のマスタレポジトリサーバがあって、そこから各自 clone / fetch して開発を行ってるので、完全に github のような分散のメリットを生かしているわけではありません。 しかし完全に分散を生かさずとも、git に移行したメリットは十分にあって、資料の中でもふれていますが、やはり一番便利なのが git のブランチ機能です。もうこれ無しでの開発は考えられないなぁ、ぐらいで、さくっとブランチ切って開発、ブランチの切り

    デブサミ2009 はてなの開発戦略 - 2nd life (移転しました)
  • クリック連打ではてなスターを展開しよう!ヤァ!ヤァ!ヤァ! - 2nd life (移転しました)

    最近誰がスターをつけてくれたか、どんな引用してくれているのか、人生に三度起こるというスター気になる期になってしまったので、どこかをクリック連打(クアドラプルクリック (4 クリック))するとはてなスターを展開する Greasemonkey スクリプトを書きました。 http://gist.github.com/raw/43275/418ccda95e78a6d90646fc2093f559f23f9047d7?.user.js これを使うと、スターがついている気になってるページでどこでもおもむろに連打すると な感じで展開されます。もちろんみんな大好きはてなハイクとか 10000スター超えも珍しくないうごメモでも(10000ぐらいあるとさすがにかなり重いけど…) みたいに表示されます。うまく展開されないときは再び連打するとうまくいったりします。 ちなみになんでこれクアドラプルクリックで有効に

    クリック連打ではてなスターを展開しよう!ヤァ!ヤァ!ヤァ! - 2nd life (移転しました)
  • ATOK で ruby の実行結果を返すプラグイン - 川o・-・)<2nd life

    http://www.atok.com/useful/developer/api/ ATOK ダイレクト API が公開され、Ruby/PerlATOK プラグインが作れるようになったので、早速簡単かつ何でもできるプラグインを作ってみました。 http://rails2u.com/misc/atok_plugin_ruby_eval.zip セットアップし、ATOKダイレクトAPIがつかえ、Ruby の実行環境があると、ATOK で入力中に Ctrl + Insert で Ruby の実行結果が変換されて返ってきます。たとえば電卓っぽくりようしたいときには 24*24と入力したときに Ctrl+Insert を打つと 576な文字列が返ってくるので、電卓としてつかえて便利! また 'korehabenri'.split(//).join(' ')をCtrl+Insert で変換すると

    ATOK で ruby の実行結果を返すプラグイン - 川o・-・)<2nd life
    tokada
    tokada 2008/11/01
  • Studying AS3 namespace - 2nd life (移転しました)

    先日行われた FxUG@関西の勉強会で、AS3 namespace についての発表を行った際の資料です。カスタム namespace の基的な使い方は理解しておくといろんな場面で活用できると思います。みんなもっと namespace まくろう!!! namespace 基的な namespace as3 namespace カスタム namespace namespace 応用と実践 namespace を利用したライブラリ 基的な namespace public private protected internal ご存じの通り、基的な namespace 上三つは、Java とほぼ同じ internal namespace デフォルト namespace 宣言無しで書くと、internal となる function myFunction():void { }internal

    Studying AS3 namespace - 2nd life (移転しました)
  • やたーはてなダイアリーファイルシステムできたよ\(^o^)/ - 川o・-・)<2nd life

    はてなダイアリーが AtomPub で編集できるようになったので、早速 fuse を使ってファイルシステムを作ってみました。こんな感じに使えます。 http://rails2u.com/tmp/diary_fuse/fuse.htm (動画) /create に保存すると現在時刻で作成 /20080820101010 など、エントリーを編集可能。保存で更新。 rm するとエントリーを削除 /\d{14} 的なファイル名で保存すると、その時刻のエントリーを作成 などなど。Ruby の FuseFS を初めて使ってみましたが、結構簡単にファイルシステムをいじれて便利ですね。ちなみに文の改行周りがおかしくなるというアレな挙動をして、全然実用できませんが、AtomPub 使うとこんな事もできるよーという例として見ていただければ。 ソースコードは以下です。

    やたーはてなダイアリーファイルシステムできたよ\(^o^)/ - 川o・-・)<2nd life
  • Rails が即死する REXML の DoS 脆弱性について - 2nd life (移転しました)

    http://www.ruby-lang.org/ja/news/2008/08/23/dos-vulnerability-in-rexml/ 先日公開された、REXML の脆弱性ですが、「あーそうなんだ、でもうちの Rails のサービスじゃ REXML でパースする処理なんて書いてないから別にいいや」とか思っている方、大変危険です。みんなパッチあてようよ! XML entity explosion attackと呼ばれる攻撃手法により、ユーザから与えられたXMLを解析するようなアプリケーションをサービス不能(DoS)状態にすることができます。大部分のRailsアプリケーションはこの攻撃に対して脆弱です。 REXMLのDoS脆弱性 と書いてある通り『大部分のRailsアプリケーションはこの攻撃に対して脆弱』なのです。たぶん今世の中にある Rails な Web サービスの9割が現状でも、

    Rails が即死する REXML の DoS 脆弱性について - 2nd life (移転しました)
  • gist.github.com で GreaseMonkey Script を管理しよう - 川o・-・)<2nd life

    http://gist.github.com/ 最近 github にまた新しいサービス、gistが誕生しました。これはよくあるソースコードを web にペーストして参照できるサービスの git 版、と云ったところです。 gist の良いところは、まず git を知らなくても使えるところが上げられます。普通のペーストサービスと同じで、ソースコードを適当にはっつければOKで簡単です。編集ももちろん web 上からでき、インターフェイスから編集を行うと、git の履歴としてサーバサイドに保存されます。また、匿名による作成・編集も可能です。(匿名による編集は cookie が切れるまでっぽいですが) そして、git と同じく、github にログインしてれば、gist で誰かが貼り付けたソースコードを fork でき、自分の権限の元編集操作が可能になります。ので、誰かが貼り付けたコードを for

    gist.github.com で GreaseMonkey Script を管理しよう - 川o・-・)<2nd life
  • 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
  • ActionScript3 (mxmlc) でのコンパイルを100倍速にする方法 - 2nd life (移転しました)

    三日前から Flex2 SDK で ActionScript3 を始めました secondlife です。こんにちわ。AS3 は言語仕様的には ECMAScript と Java をあわせた感じで普通な書き方で OOP できるのでうーん、と頭をひねることはあまりないのですが、他のところでいろいろはまりまくってます。 で、原始的な解決方法として trace() を使ったプリントデバッグを行っているのですが、スクリプト言語に慣れきった体ではコンパイル時間が遅くて死にそうです。たとえばこんな HelloWorld.as package { import flash.display.Sprite; public class HelloWorld extends Sprite { public function HelloWorld() { trace("Hello World!"); } } }を

    ActionScript3 (mxmlc) でのコンパイルを100倍速にする方法 - 2nd life (移転しました)
    tokada
    tokada 2007/12/17
  • はてなハイク お絵描き機能の話 - 2nd life (移転しました)

    さてさて、日リリースされたはてなハイクですが、実は一昨日にはお絵描き機能がありませんでした。リリース日の前日の朝、id:jkondo がすっごくニコニコしながら(ニコニコしてるときは大抵なにかしてもらいたいときだ!騙されるな!)ねーねーと声をかけてきました。 「jkondo: シンプルなお絵描き機能があったら絶対面白いねん!実現出来ないかなぁ(ニコニコ)。」 突然!しかもリリースは明日ですよシャチョー!でもこんなシチュはエンジニアなら燃え(萌え)ますよね。Ruby など LL を弄ってる(今回はAS3だけど)と、出来るだけ短い期間でどれだけの物を作れるかというのは熱くなれる瞬間です。はてなは作ったら即座にサービスに反映してくれるので、自分の思想と合った物なら作るモチベーションもぐんぐん上がります。 というわけでミニマムな機能だけ最低限実装することにして、サーバサイドは Fotolife

    はてなハイク お絵描き機能の話 - 2nd life (移転しました)
  • JSProxy - AS3 から意識せずに JS を操作 - 川o・-・)<2nd life

    http://github.com/hotchpotch/as3rails2u/tree/master/src/com/rails2u/bridge/JSProxy.as AS3 から HTML の特定要素の内容を取得したり JS のメソッドを引数つけて呼び出したり、値をセットしたりがめんどくさくなってきたので作ってみました。 JSProxy.proxy もしくは new JSProxy() で JSProxy のインスタンスを作り、適当にプロパティを呼び出していって(この時点ではスタックにどういう処理を行うかを書いてるだけ)、最後JSを当に叩いて値を取得やメソッド呼び出しを行いたいときは、プロパティの頭に $ をつけます。 // アラート関数を実行 JSProxy.proxy.$alert('foo'); // body の文を取得 var body:String = JSProxy

    JSProxy - AS3 から意識せずに JS を操作 - 川o・-・)<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の文字数制限を無くす
  • ExportJS - ActionScript3 のオブジェクトを JavaScript にエキスポート - 2nd life (移転しました)

    ExportJS (ソース) 通常 flash では、コンパイル済みのオブジェクトの変数やプロパティは外部から弄ることが出来ず*1、パラメータの微調整を行うことや、現在プロパティにどんな値が設定されているかは解りません。ので Firefox の JavaScript から AS3 のオブジェクトを JavaScript にエキスポートして簡単に弄れる ExportJS というライブラリを作ってみました。現在は Firefox の JS 専用です。*2 なにはともあれまずは Demo を。 http://as3exportjs.googlecode.com/svn/trunk/demo/ExportJS_Example1.htm リアルタイムに TextField を変更したり、メインのオブジェクトを弄ったり、shape のパラメータを変えています。Firefox の setter/gett

    ExportJS - ActionScript3 のオブジェクトを JavaScript にエキスポート - 2nd life (移転しました)
    tokada
    tokada 2007/10/23
  • Rails の日本語化には ActiveHeart を使わない方がいいヨ - 2nd life (移転しました)

    http://d.hatena.ne.jp/moro/20070615/1181876061 先日の RubyKaigi で、id:moro さんに「新人に Rails でアプリを試しに作ってみて、とお願いすると ActiveHeart 使って日語化しちゃうんですよ。困ります!訴えてやる!!!*1」と云われました。 現在日語化/国際化をきちんと行いたいなら Ruby-GetText を使うべき*2ですし、モバイル対応なら jpmobile を使うべきです。 というわけで、ActiveHeart の svn のコードに obsolete だから Ruby-GetText もしくは jpmobile 使ってねというメッセージを表示するようにしてコミットしました。 *1:全然違う言い回しだったけど *2:5秒でとりあえず日語表示したい時は ActiveHeart のほうが簡単なのですが、き

    Rails の日本語化には ActiveHeart を使わない方がいいヨ - 2nd life (移転しました)
    tokada
    tokada 2007/06/18
  • RubyistMagazine出張版正しいRubyコードの書き方講座 - 2nd life (移転しました)

    Rubyist お待ちかね、青木さんの添削、『RubyistMagazine出張版正しいRubyコードの書き方講座』が発売になります(献ありがとうございます)。このでは様々なコードに対する添削*1が載っており、Wikiパーサのテキスト処理だったり、バイナリを Ruby の構造体に落とし込んだり、Webアプリケーションの基からじっくり解説してあったり、などなど様々なジャンルを添削されてます。Ruby 初心者はもちろんのこと、Ruby に慣れ親しんでる人でも、『おお、こんな書き方できるんだ』と発見があると思います。また豪華な執筆陣による寄稿コラムも嬉しいですね。 Rubyist Magazine 出張版 正しいRubyコードの書き方講座―RubyistのRubyistによる、Rubyistとそうでない人のための 作者: 青木峰郎出版社/メーカー: 毎日コミュニケーションズ発売日: 20

    RubyistMagazine出張版正しいRubyコードの書き方講座 - 2nd life (移転しました)
  • Rails 1.2.1 リリース (あと htmlhelp 更新) - 2nd life (移転しました)

    あけましておめでとうございます(遅い)。htmlhelp と vim の事しか書かれないともっぱらのウワサの 2nd life を今年もよろしくお願いいたします。 http://weblog.rubyonrails.org/2007/1/19/rails-1-2-rest-admiration-http-lovefest-and-utf-8-celebrations そんなわけで今年の初エントリーは待望のメジャーバージョンアップ、Rails 1.2.0 がとうとう、ってあれ速攻 Rails 1.2.1 になったよ!なわけで Rails 1.2 系がリリースされました。主な詳細な変更点は誰かが詳しく訳してくれるだろう(takiuchi さんとか!)ので省きますが、個人的にはマルチバイトのサポート(デフォルトで $KCODE='u' になって困る人がいそう)よりも拡張子で routes 周りが

    Rails 1.2.1 リリース (あと htmlhelp 更新) - 2nd life (移転しました)
    tokada
    tokada 2007/01/20
  • rails.vim まとめ - 2nd life (移転しました)

    id:higepon に『rails.el も rails.vim も知らなかったよ!もっと早く知ってたら生産性が三倍になっていたのに!(一部誇張』と云われたので、rails.vim について ひげぽん OSとか作っちゃうかMona- - rails.el まとめ に沿った形で簡単に紹介したいと思います。 インストール 通常のインストール http://www.vim.org/scripts/script.php?script_id=1567 から rails.zip をダウンロードし、~/.vim/ 以下に展開します svn からのインストール vba (vim のパッケージングシステム)を使うので vim7 以上限定の方法ですが svn co http://svn.tpope.net/rails/vim/railsvim/ railsvim cd railsvim rake rails

    rails.vim まとめ - 2nd life (移転しました)
    tokada
    tokada 2006/12/23
  • 川o・-・)<2nd life - Rails pluginの作り方

    Rails 0.14からpluginの仕組みが導入され、今までは「libにライブラリを置いて、config/enviroment.rbに〜を記述して云々」という面倒な方法が、vender/plugins以下にファイルを配置するだけで、Rails体の拡張が簡単に可能になりました。その作り方をRailsでRESTを簡単に実現するpluginを題材に説明します。 まずは配置するファイルですが、 vender/plugins/プラグイン名/init.rb # 必須 vender/plugins/プラグイン名/lib/* # pluginで利用するライブラリ ディレクトリは$LOAD_PATHに追加される。必須ではない となります。順序としてはconfig/enviroment.rbが読み込まれた後に、init.rbがevalで実行されます。 ではvender/plugins/restmode/i

    川o・-・)<2nd life - Rails pluginの作り方
    tokada
    tokada 2006/10/21
  • railsのacts_as_taggableで簡単にtagging実装 - 2nd life (移転しました)

    http://dema.ruby.com.br/articles/2005/08/27/easy-tagging-with-rails 今流行のtag付け。最近のWebアプリケーションはネコも杓子もタグ!とりあえず便利そうだから付けとけ!って感じでどうでもいいところまでタグが実装されてたりすることもあって何だかなぁ、って感じだったりもするんだけどそれは置いといて。 どんな風に使えるのかというと、上記記事に書いてあるまんまで class Photo < ActiveRecord::Base acts_as_taggable # これ一行追加するだけ end elephant = Photo.find(4437) # idが4437のphotosテーブルのデータを取得 elephant.tag 'zoo animals nature' # tagをspace区切りで設定。なおphotosテーブ

    railsのacts_as_taggableで簡単にtagging実装 - 2nd life (移転しました)
    tokada
    tokada 2006/10/20
  • 川o・-・)<2nd life

    Perl での print debug の方法の紹介がブーム(?)だったので、自分がよく行ってる Ruby での debug 方法7つについて書いてみます。 p ご存じの人も多い Kernel#p メソッド。これを使うとオブジェクトの内容を見やすい形で出力してくれます。 >> p ({:foobar => :baz}) {:foobar=>:baz}Object#inspect を使うと、p で出力するときと同じ文字列を String として取得できます。 >> puts ({:foobar => :baz}).inspect {:foobar=>:baz}初心者の頃この p での出力を使う方法がわからなくて困った記憶が…。 pp pp というライブラリを使うと、p より、より見やすい形式で出力してくれます。たとえば >> a = Array.new(10) { {:foobar => :

    川o・-・)<2nd life
    tokada
    tokada 2006/10/10