タグ

2011年12月27日のブックマーク (11件)

  • Module#prepend - alias_method_chainが滅ぶ日 - I am Cruby!

    ruby(この記事はRuby Advent Calendar jp 2010の4日目の記事です。前日はUmeyashikiさんでした) Ruby2.0の新しい機能(となるかもしれない)Module#prependについて紹介します。# もうtipsとかじゃ全然ないですね…。Module#prependはRailsコアチームのYehuda Katzが提案しました。  Module#prependModule#prependを呼び出すと、クラスの手前にモジュールがぴょこんと追加されます。例えば、クラスcにモジュールmをprependした場合、以下のような順番でメソッド探索するはず。 m => c mがc前に来ていますね(なんのこっちゃ)。 ちなみにクラスcはクラスhを親に持ち、クラスhはaを、aはmを、mはmを、mはeを、eはrを親に持ったとします。 m => c => h => a => m

    kamipo
    kamipo 2011/12/27
  • rails の alias_method_chain が素晴らしすぎる - (゚∀゚)o彡 sasata299's blog

    2009年01月08日00:49 Ruby rails の alias_method_chain が素晴らしすぎる 今日はrailsの話.。゚+.(・∀・)゚+.゚ メソッドを上書きするとき、元のメソッドも残しておくためには alias_method を使います。 alias_method :new_method, :original_method でも、これだと後から同名のメソッドを作ってしまい、重複してしまう可能性が。危険。そこでrailsでは、名前の衝突をなるべく避けるために、拡張する機能名をメソッド名に追加する習慣があります。 旧メソッド: "(メソッド名)_without_(機能名)" 新メソッド: "(メソッド名)_with_(機能名)" 例えば、既存の "hoge" メソッドに新機能 "sasata299" を追加する場合、こんな感じになります。 alias_method :

    kamipo
    kamipo 2011/12/27
  • http://www.machu.jp/posts/20091019/p01/

  • All Test::Successful - Articles Advent Calendar 2011 Test

    はじめに こんにちは、xaicron です。みんな、僕のグラビア写真は買ってくれたかな?買ってない人は WEB+DB Press vol.66 を今すぐゲットだぜ!! さて、ついに長かった Test Track も最終日がやって参りました!みなさんはどうせリア充を尻目にリナカフェの閉店を見たり、独り者同士でなんとなーく集まってお酒飲んだり、もしくは僕のように一人寂しく Advent Calendar を書いているのでしょうね!!その昔、コンビニでゆでたまご買って間違って「あ、あっためてください」っていっちゃったことを何故か思い出しました。 というわけで、クリスマスぐらいはせめてテストを書きたくないし、そもそもコケたテストとか見たくないわけですね。ですので、僕からのスペシャルなクリスマスプレゼンツ!!その名も Test::Successful だぜ!ベイベー!! これはなに? これはあれです

    All Test::Successful - Articles Advent Calendar 2011 Test
    kamipo
    kamipo 2011/12/27
  • 俺の CSS リセット: 2011 冬

    年末だからというわけでもないのですが、いつものサイト作りに使う CSS リセットについて見直してみました。今までもちょっとずつ手を入れてはいたのですが、今回はかなり大きく修正しています。というのも、Nicolas Gallagher と Jonathan Neal の両氏による normalize.css を知り、大きく影響を受けたからです。 Normalize.css は「新手の CSS リセット」ではありません。CSS を「リセット」するのではなく「ノーマライズ」する、という新しい考え方です。CSS リセットとノーマライズはどちらも、ブラウザ間で CSS の実装に差異があることを前提にそれらを吸収しようとする、という同じ目的を持っています。ただ、リセットはすべてをまっさらな「さら地」にしようとするのに対し、ノーマライズは使える部分は残しつつ手を入れる必要のある部分だけを整える、という違

    俺の CSS リセット: 2011 冬
    kamipo
    kamipo 2011/12/27
  • 良い話し手になるための6つのエッセンス | もっちブログ

    IVSでの優勝時の写真 (出典:Techwave) 今年は『PRAY FOR JAPAN』の出版やLabitの創業もあって、新聞や雑誌の取材は月に2〜3回、講演やスピーチも20回近く引き受ける機会がありました。自分でサービスを作り始めてから、投資家向けや、同世代起業家とのピッチ大会でプレゼンすることも急激に増えました。僕は、もともと人前で話すのが得意ではなく、ごく平均的に緊張するタイプの人間です。人見知りで、自分の声や振る舞いにも自信がなく、電話や写真に撮られることが当に苦手でした。上京して、社会が広がるにつれて「人前でもっと上手に話したい」と思うようになります。この記事は、僕が講演やスタートアップにおけるプレゼン(ピッチトーク)を重ねるなかで、気づいたことを備忘録としてまとめたいと思います。近況を交えて。 1.緊張しないための唯一の方法 12月初旬、京都のウエスティン都ホテルで開催され

    kamipo
    kamipo 2011/12/27
  • もっちブログ » Blog Archive » 「すごい時間割」企画と開発の裏話、サービスを作る上で大切にした3つの設計思想。 - 鶴田浩之 ブログ

    4月に立ち上げた会社、Labitが手がけた「すごい時間割」の正式公開から1ヶ月が経ちました。おかげさまで、まもなく登録ユーザーが1万5000人に達する見込みです(実名登録)。サービス内の登録授業数は5万7000件に達し、1日平均1500件のペースで増えています。全国の268大学で使われています。追加リクエストもまだまだ受け付けています。 すべての大学生に共通する行動単位、時間割。 大学は、自分で自由に履修選びをして、学期初めに一週間の大まかなスケジュールを決めてからは、それが約半年間(3学期制の大学もあるけど)続きます。多くの人は、時間割をメモ帳に書いていたり、あとはスマートフォンの時間割アプリを使っています。学期初めは特に、それぞれの教室を覚えるのは、なかなか大変だし。 すごい時間割の構想のきっかけは、今年1月、大学のシラバスを閲覧するiPhoneアプリSFC生が開発したと聞いたとき。

    kamipo
    kamipo 2011/12/27
  • chattr でファイルを削除できないようにする

    ネットワーク上にある共有ファイルは、通常はゴミ箱の機能がないので操作ミスなどによって削除してしまったら永遠にもどってきません。そこで、絶対に削除されたくないファイルに関しては、chattr コマンドを使用して制限をかけておきます。 ■chattr chattr コマンドの使い方は簡単です。削除されたくないファイルに対し、+i を付加し、解除する場合は、-i を付加します。-R はサブディレクトリにも適用します。これで、削除しようとしてもroot であっても削除することができなくなります。 # chattr -R +i /home/samba/kororo/ # rm -rf /home/samba/kororo/ rm: cannot remove directory `/home/samba/kororo/': 許可されていない操作です

  • Welcome to yk55.com 网站正在建设中!

    买域名就到“爱米人” 我们有几十万个精品域名:aimiren.com

  • トップページ - Supership

    「ミライリアルの幸せを、デジタルの力で創る」ことを目指すSupershipグループの社内報です。日々の出来事、メンバーの働く様子や声、未来への想いなど、Supershipグループの”Be Super”なストーリーをみんなでシェアしていきます。

    トップページ - Supership
    kamipo
    kamipo 2011/12/27
  • 最近のJavaScriptモジュールの書き方 - yo_waka's blog

    サーバサイド(特にNode.js)とクライアントサイド両方で動かしたいものは最近はこんな感じで書いている。 CommonJSのwiki見ててそこに紹介されてるソースコードで(どれだったか忘れたけど。。)やってたのを見ていいなーと思って真似っこした。 (function(define) { define([], function() { 'use strict'; /** * @constructor */ var SomeClass = function() { // initialize }; /** * @type {string} * @private */ SomeClass.prototype.hoge_ = 'hoge'; /** * @return {string} */ SomeClass.prototype.getHoge = function() { return th

    最近のJavaScriptモジュールの書き方 - yo_waka's blog