サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
rakuto.blogspot.com
特異メソッドをalias_methodを使用して別名をつけようとするとエラーになる。 だが、同じブロック内でrespond_to?(:find)を実行するとtrueが返される。 undefined method `find' for class `ActiveRecord::Base' (NameError) module EffectiveRails module ActiveRecord def self.included(klass) klass.send ClassMethods klass.class_eval do p respond_to?(:find) # => true alias_method_chain :find, :explain end end module ClassMethods def find_with_explain(*args) # hogehoge
Scalaでは、Javaの型の多くをラップしたクラスにて再定義している。 byte型 -> scala.Byte short型 -> scala.Short int型 -> scala.Int など。 そのため、ScalaからJavaのライブラリを利用していると、ライブラリのAPIの返り値がJavaの型で、Scalaのラッパークラスではないので変換が必要な事がよくある。例えば、java.util.List型は、ScalaのSeq[A]を継承していないので、enumerableではない。 このため、Scalaの標準ライブラリ中にいくつかの明示的な変換規則を定義してある。例えば、java.util.List[T]からList型への変換などは、scala.collection.jcl.Conversion.convertListを読みこむだけで、後はScalaの言語仕様の明示的な型変換機構により
DreadLocks - Scalaベースのテンプレートエンジン Scalaのテンプレートエンジンを探していたけど見つからなかったので、DreadLocksテンプレートエンジンを実装しました。現在は、基本的なScalaの構文のみサポートしています。完全なScalaプログラムのサポートと高速化が次のリリースの目標としています(foreachやif文は実装済み)。ソースコードは、GitHub dreadlocks/trunkで、今後のマイルストーンとロードマップは、TwitterやGoogle Groupsで確認できるので、よければどうぞ。 簡単なサンプルコードは、以下の通り。 hamburgers.txt: Delicious hamburger restraunts in Japan: <?sc restraunts.foreach { restraunt => ?> * ${restra
「recursive callを得意とするV8が、recursive callに比重をおいた、V8 Benchmark Suiteで速い!速い!と語られるのはフェアではない」 今回、正規表現のみに焦点を当ててJavaScriptエンジンを比較してみた。 環境 SpiderMonkey - 1.7.0 2007-10-03SFX - Revision: 37445v8 - Revision: 389 SFX(SquirrerlFish Extreme)に新しく搭載されたWREC("the WebKit Regular Expression Compiler")、Safari 3に搭載されているJavaScript Coreに比べて、なんと5倍も速い。正規表現の実行が占める実行時間が、Webアプリケーション全体の実行時間の3%ほどだとすれば、WRECは、2.4%ほどの高速化に貢献している。 V
おっPythonハカーを多数抱える、煩悩駆動開発で有名なglucose.jpのお手伝いをする機会があり、4年ぶりにPythonを書いた。2.3以来だったので、2.5を眺めているとデコレーターと呼ばれる機能が導入されていた。 デコレーターとクロージャーを組み合わせれば、メソッドの挙動を自由にカスタマイズすることができる。この機能を使用して、関数の結果をmemcachedでキャッシュする機能を付与するデコレーターを作ってみた。 あらかじめ、CACHE変数をmemcachedクライアントで初期化しておく必要がある。 挙動 ソースは、少々ややこしいけど、実行の仕組みは単純。 Step 1: @cached構文実行時に、ack関数に対して、cached関数が実行され、ack関数がdecorated_funcを呼び出した結果でack関数が置換される。(返り値は、callableなオブジェクトでないとい
「机に座り、起動時間が3分程かかる窓のアイコンを眺めつつ、ただ待つ。モデムのスイッチを入れて、PPP接続アシスタントを立ち上げ、青いeのアイコンをクリックする。さぁ、インターネットを始めるぞ!」13年程前か。そんな時代が、随分と懐かしく感じる。 iPhoneの登場が、私達のオフラインでいる時間を無情にも奪う。Firmware 2.0.2でも、電波状況は(まだ)悪いけど、場所を選ばすにSafariが立ち上がり、Google Readerを読めるのはとても魅力的だ。オンラインでいる時間が増えるから、ライフストリーミング系のアプリケーションが盛り上がるわけだ。パーベイシブコンピューティング、インターネットは場所を選ばず利用できるようになりつつある。原丈人氏の言葉で言えば、PUC(パーベイシブユビキタスコミュニケーション)だろうか。GPS, WiFiをiPhone上で使っていて、電池の減りがいつも
海の向こうで話題になっていた時は、その圧倒的な力に感心する程度であったが、実際に日本でもGoogle Street Viewが、リアルクローラーを走らせているとなるとプライバシーが気になる。公共の道路で撮影された映像には、著作権は存在しなく、まずい画像については、モザイクやユーザからの投稿で対応していくとの事だが、土地所有者や人にもrobot.txtを書く権利を与えてくれてもいいだろう。 「ベッドルームの撮影はお断り」との事だ。 クローラーがVanでなくて、小型偵察機や昆虫のような大きさまで小さくなった時には、どうなるのだろうか。拡張現実社会の到来にむけて、実世界におけるrobots.txtの書き方を真剣に考えるべき時である。 撮影された画像に著作権が無いとすれば、Google Street View上に広告を配信することは可能なんだろうか?ネタ画像を探そうと、みんながどこを探しまわってい
第三回 Liberty Alliance 技術セミナーで=natさんの基調講演を公聴してきて、OpenID関連の動向を仕入れたのでメモ。 OPとRP間で属性情報を交換するための拡張として、SREGやAXがあるが、AXも今ひとつ普及するに至っていない。(myopenid.comとVeriSignだけ?)また、プライバシポリシーや利用規約の問題もあり、日本企業では、ユーザ属性をサードパーティに公開出来ない事も多い。 基本的に、AXとSREGの違いは、 交換可能な属性をコミュニティベースで提案&決定する属性を識別するために、プリミティブな値でなく、ネームスペースURIを使うOPに要求する属性の個数が指定可能RPがOPに対して属性の保存をする事が可能。(ただし、使われているプロバイダは知らない。) が挙げられるが、根本的な問題は、OpenIDのユーザ属性として、クレジットカード番号や電話番号などプ
Google anounced about Gears on Rails, see Take your Rails application offline with the Gears on Rails project. We can listen to audio interview. This is Rails plugin to manipulate offline data from RoR.We can install GoR as Rails plugin is as follows: % sudo gem install json_pure % rails gor_demo && cd gor_demo % ruby script /plugin install http://gearsonrails.googlecode.com/svn/trunk/acts_as_loca
Erlang provides mechanism to communicate between Erlang and other programs written by C/C++ or other. This entry introduce how to create simple linked-in driver. Create shared library and Erlang interface to use Erlang's linked-in driver. Goal: To create HAVAL bindings for Erlang. HAVAL is fast cryptographic hash algorithm is invented by Yuliang Zheng, Josef Pieprzyk, and Jennifer Seberry in 1992.
The jrails_in_place_editing is implementation of inplace editor with jQuery, so this plugin is dependent on jRails. This uses David Hauenstein's jQuery inplace editor plugin. Thank you. INSTALL (Note: Edge Rails) ./script/plugin install git://github.com/rakuto/jrails_in_place_editing.git USAGE # Controller class BlogController < ApplicationController in_place_edit_for :post, :title end # Customize
ドメインの更新忘れもOpenIDにおける脆弱性の一つ。 URLやXRIを入力するだけで、Yadisプロトコルに基づきOpenIDプロバイダーやi-Brokerを発見し、認証が行えるシステムは、とてもシンプルでありながら、WWWの分散アーキテクチャの上に構築された強力なエコシステムだ。しかし、問題は、私達自身の識別子として利用可能なURLやXRIは、永遠ではないことだ。 もしも、私達が利用しているOpenIDプロバイダがドメインの更新を忘れて、第三者にドメインが取得された場合、私達のアカウントがこの第三者により不正に使用される可能性が出てくる。myOpenIDや、多くのプロバイダでは、単純なルールに基づいた、Human FriendlyなOP-Local Identifierを提供してくれているが、ユーザは、セキュリティ的、高可用性の両方の側面からRelying Partyでのユーザ登録に、
The routing solution in Rails is pretty powerful, so we can modify routing easiliy. This facility may become cause of bugs. If we wanna submit data asynchronously with Javascript, then we have to write some routing paths in source of Javascript directly. It's not DRY and it doesn't work together with Rails routing solution. So we think example code which post a comment to the article. We have two
第0回OpenID勉強会が開催されました。 写真は、OpenID勉強会レポートより拝借。 全くのノープラン、セッションの詳細無しにも関わらず、20人ものOpenID野郎達が集まりました。 Identity界隈には、男しかいないのでしょうか。 参加者 全体的に、LL使いの人達が多く集まったようでした。プログラマではない方も2名いて、企業におけるOpenID導入における苦労話や、Yahoo!の中のアカウントをOpenID化する際のセキュリティポリシーに対する考えなどを話してもらえました。 全員参加型勉強会では、20人/セッションまで 今回もComet勉強会を彷彿とさせる、瀧内メソッドにより内容の充実した勉強会が開催できました。全員参加型のセッションが開催できるのは、このメソッドの良い所。しかし、最大の欠点が、続く第1回OpenID勉強会を開催するとすれば話す事が無い事。こちらもComet勉強会
AX StoreRequest message is defined in OpenID Attribute Exchange 1.0. It can store personal identity information to the OpenID Provider from RP. It's exciting specification because we use many services on WWW, and input variety of many personal identity in sites. We can aggregate our personal identity automatically with AX StoreRequest message! Additionally, updated personal identity is synced AX's
JanRain's myOpenID is popular OpenID provider, supports SSL, SREG, some persona, authentication with Information Card, OpenID Attributes Exchange (but only some attributes), Pavatar and so on. JanRain also offers ruby-openid that implements OpenID 2.0 with Ruby. myOpenID supports only some attributes that can be exchange with OpenID Attribute Exchange, but you should care about Type URI, because m
Programming using jQuery is more fun than protoype.js, but Ruby on Rails depend on Prototype.js and script.aculo.us strongly. jRails is solution that use jQuery on RoR platform but jRails doesn't have some plugins, auto_complete, in_place_editor and so on. So I release jrails_auto_complete rails plugin. INSTALL % cd /path/to/rails_app % ./script/plugin install http://svn.raku.to/throwaway/jrails_a
mixi is the biggest social network site in Japan. There are more users than ten million. Many people have friends networks in mixi, and mixi announced about respond OpenID and OpenSocial API, but they are very slow!! I heard that mixi is going to release OpenID API about Sep. It's too late compared to Facebook. The Friend of a Friend(FOAF) is creating a Web of machine-readable pages describing peo
スティーブジョブスの目が好きだ。 スティーブジョブス 偉大なるクリエイティブディレクターの軌跡 ぎらつく眼光。みなぎる自信。自分が見る未来を信じて、決して疑わない驚くべき強さ。 そして、面白いと感じる物を見て取るや自分の考えなどあっさりと捨ててしまうしとやかさ。 アーティストとしての感性。 この本は、人間の目は、時間を経てこれほどまで変わる物なのか?と衝撃を与えてくれた一冊である。 Apple関連の本は、たくさん読んだが、この一冊はスティーブジョブスの写真集という意味で非常に価値のある一冊だ。Apple Iを送り出した頃の、眼光が鋭い、自信に満ちあふれたスティーブジョブス(と、少しやせているウォズ)の写真から、膵臓がんと診断され余命宣告を出され、不死鳥のごとくよみがえり「Appleは電話を再発明した」と話す2007年のMacExpoの写真までが掲載されている。あと、「昨日の事でクヨクヨする
第二回目のActionScript記事だ。前回は、AS3の練習にとas3zerobugを作ったが、ActionScript -> Firebugプロキシは既出だったようだ。ま、誰でも考えるアイデアだ。 あなたのPCにカメラがついているならば、そいつは、いつもあなたを撮影する機会をうかがっている。Skypeのビデオチャットにしか使わないなんてもったいない。彼らをもっと面白く使ってやろう。リアルな世界がデジタルな世界に瞬時に取り込まれる面白さは、取り込んだリアルな情報を加工した時に現れると思う。例えば、あなたの顔をリアルタイムでとても美人に映し出すなんてどうだろうか?複合現実が当たり前になり、現実と仮想の区別がつかなくなった数世紀後には、人の顔なんて今の原型をなしていないかもしれない。 ブサイクだろうが、相手に見えている顔は現実の世界にオーバーレイされた仮想のあなたの顔だからだ。 さて、今回は
基本的には、こちらの手順通り実行するだけですが、/usr/lib/site_ruby/aes/amiutil/image.rbを少し編集しないとAMIが起動しません。 HOWTO Building a self-bundling Debian AMI 作成したAMI上でAMIのバンドルを可能にするためec2-ami-toolsをインストールする。 # cd /usr/local/src # wget http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.noarch.rpm # alien --to-deb ec2-ami-tools.noarch.rpm # dpkg -i ec2-ami-tools_1.3-15587_all.deb /usr/lib/site_ruby/aes/amiutil/image.rbに対するパッチ ***
OpenID 2.xでは、delegationの指定方法が変更されています。 OpenID Authentication 2.0 - Final A LINK element MUST be included with attributes "rel" set to "openid2.provider" and "href" set to an OP Endpoint URL A LINK element MAY be included with attributes "rel" set to "openid2.local_id" and "href" set to the end user's OP-Local Identifier <link rel="openid2.provider" href="http://www.myopenid.com/server"/> <link rel
DEMO 08 Panel: Research and Technology in Life, on the Web DEMO 08のレポートを読んでいると、初日に開催された二つのセッションのレポートがあったのだが、その一つThe University of KansasのDr. Steven M. Barlow, Professorによる研究発表のセッションが非常に興味深い。 乳児は、欲求を伝えるために「泣く」事しかできない。何をしても泣き止まないため、子供の口を押さえつけたり、時には鬱病になり心中まで考える母親もいると聞く。おなかがすいたから、病気で苦しいからか、もしくはキングコング西野さんのライブがつまらないから泣いているのか、人間は知る術を持たない。 カンザス大学のSpeech-Language-Hearing研究室から発表されたのは、おしゃぶり型のデバイスを通して乳児の脳に働きか
こんにちは。初めてのAction Scriptネタです。(最初で最後?) 昨日から、(JSで出来ない事があったので)Action Script 3を書き始めました。 AS3の開発環境を構築し、次にデバッグ環境を構築しようと調べていると、ASでは、traceやfdbを使えばよい、Mac OS XからTraceを出力する方法は…と色々と書いてあったのですが、面倒なので、Action Script 3からFirebug consoleへのシンプルなラッパーを作りました。使い方は、Firebugのconsole APIと同じです。 サンプル(Firefox only) Firebugのコンソールを開けて下さい。 zerobug::console sample ソースコード <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx
iPhone / iPod touchユーザの皆さんは、Firmware1.1.3にバージョンアップしましたか? Jail Breakが面倒なので、私のiPhoneは1.1.1のままですが、1.1.3にアップグレードしたiPod touchを入手したので、作りました。 「あるモノが動かせる」事をユーザに一番早く理解してもらうにはどうすれば良いか? おそらく、ブラウザ上で一番使われているのは、CSSでマウスカーソルをcursor:moveにする方法だろう。それなりにコンピュータに触れているユーザならば、このアイコンが出れば「ん?動かせるのかな?」と気になる。しかし、マウスポインタの概念が存在しないiPhone / iPod touchではこの方法は使えない。iPhone / touch では、より動物の持つアフォーダンスに働きかける方法を採用している。 Apple Patent shows
Javascriptの話題が続いてます。 Changeset 7835 - prototype: Namespace all custom event names to avoid conflicts with native DOM events. 上記Changesetで、Native DOM Eventとの名前衝突を避けるために、コロンで区切るネームスペースが導入された & Native DOM Eventの呼び出しが削除された?ため、Native DOM Eventが呼び出せない。[Javascript] クロージャを利用したイベントリスナの登録のように、クロージャー + 無名関数でイベントリスナを登録すると、スコープの外部から、現在選択中のボックスを取得するとなると、各ノードを走査して調べる事になりますが、これは美しくない。 Prior to this change, Protot
むとうさん作の、Ruby-GetText-1.10.0をRails 2.0.2で使っていたのだが、GetText.update_pofiles(内部では、GetText.rgettextを呼び出し)によるmsgidの抽出がうまく動作しなかったので、ソースを見た所、パース対象のファイルの拡張子で適用すべきパーサーを識別しているが、lib/gettext/parser/erb.rbでは、.rhtmlのみ適用となっていたため、Rails 2系の*.html.erb拡張子はパース対象に入っていなかった。.erb拡張子もerubyパーサーに追加するパッチです。 /gettext-10.0.0/lib/gettext/parser/erb.rbに適用して下さい。 % cd RUBY_GETTEXT_INSTALL_PATH % sudo patch lib/gettext/parser/erb.rb
時々、特定のイベント間で値を共有したい事があります。 以下の例は、選択されているボックスの状態をどこかに保存しておいて、別のボックスが選択されたら選択を取り消すサンプルです。選択されているエレメントの値を保存する場所としては、グローバル変数か、エレメントのプロパティ(IEで使用するためには、Element.extendされている必要がある。event.targetは、Element.extendされている。)がありますが、イベントリスナにクロージャーを利用すると名前空間も汚染されません。 Source Code selected変数に、現在選択されているボックスをバインドしている。 document.observe('dom:loaded', function() { $('selection').observe('click', (function() { var SELECTED_CL
prototype.js 1.6では、Element#observeで登録したイベントハンドラに渡されるEventオブジェクトが、Event.extendを呼び出したPrototype.js独自のEventオブジェクトで拡張されていますが、Eventオブジェクトに任意のメソッドを追加する方法です。 例えば、親ノードの座標からの相対座標を取得する、Event#relativeX, Event#relativeYをEventオブジェクトに追加する際は次のようになる。コードは単純だが、Event.addMethodsの引数に渡されるオブジェクトで定義されている要素が、eventを参照可能にするため、Event.extend内で再びメソッドを定義し直して、eventをスコープに加える必要がある。クロージャーを用いるメソッドの再定義は、関数のスコープを自由に変更できるので便利である。 ※ Firef
次のページ
このページを最初にブックマークしてみませんか?
『Young risk taker.』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く