TAKAYAMIOU official web site
Rubyの一番のウリと言えばブロック引数メソッドでしょう。 メソッド(関数)とクロージャとブロックの関係についてちょっと掘り下げてみました。 普通のメソッド定義はdef...endで定義します。 def hello name puts "hello, " + name end hello "taro" => hello, taro Rubyでは関数は全てクラスに属するので関数=メソッドです。 トップレベルで定義をした場合はObjectクラスのメソッドになります。 self.class => Object Object.method_defined? :hello => true メソッドはファーストクラスではありません。 ファーストクラスとは以下の4つを満たす言語要素のことです。 1. 名前を付けられる 2. 関数の引数に渡せる 3. 関数の戻り値にできる 4. データ構造の
2007年4月29日追記:Ruby on Rails 1.2対応版を作成しました。 Ruby on Railsの練習に、簡単な掲示板を作成してみる。 データベースの作成 MySQLを使用して、データベースとテーブルを作成する。 データベースを作成。 CREATE DATABASE `bbs`; テーブルを作成。 CREATE TABLE `items` ( `id` INT NOT NULL AUTO_INCREMENT , `name` TEXT NOT NULL, `body` TEXT NOT NULL, PRIMARY KEY ( `id` ) ) nameは投稿者名、bodyは本文。 プロジェクトの作成 C:\railsディレクトリを作成する。 C:\railsディレクトリに移動して、次のコマンドを実行する。 rails bbs C:\rails\bbs\config\datab
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
http://martinfowler.com/bliki/CollectionClosureMethod.html (detectとinject部分を明確にするよう更新) Smalltalkでプログラミングを始めたときから、コレクションクラスが好きでした。 よく使う強力なオペレーションを簡単に使うことができました。 Javaが登場したとき、このようなメソッドがなくなって物足りないと感じました――Java(およびC#)のコレクションは、Smalltalkのそれと比べて非常に限定されたものでした。 というのも、JavaにはClosureが実装されていなかったからです。 Smalltalkの強力なコレクションのメソッドは、すべてクロージャに依存しています。 近年、私はRubyで頻繁にプログラミングをするようになりました。 Rubyに引き付けられたのは、Rubyには強力なコレクションメソッドがあ
http://martinfowler.com/bliki/Closure.html 動的言語に興味がでてくると、 クロージャやブロックと呼ばれる概念に出会うと思います。 C/C++/Java/C# などクロージャを持たない言語をご使用の方は、 どういったものなのかご存知ないかもしれません。 ここでは簡単にクロージャについて説明します。 クロージャを持った素晴らしい言語を使ったことある方にとっては、 あまり面白くない話かもしれません。 クロージャは長年使用されてきました。 私が最初に出会ったのは、おそらく Smalltalk だったと思います。 Smalltalk ではブロックと呼んでいました。 Lisp ではクロージャを多用しています。 Ruby でもクロージャが提供されています――多くの rubyist がスクリプト言語に Ruby を選ぶのはこのためです。 基本的にクロージャとは、ブ
http://martinfowler.com/bliki/TypeInstanceHomonym.html 2007/1/11 (更新:ユビキタス言語を使った扱い方のパラグラフを最後に追加) 『戦争と平和』は素晴らしい本だ。 あーあ、この本の表紙はボロボロだねえ。 上の2つの文では、どちらも「本」という言葉が使われている。 意味はまるっきり違うのだが、普段は特に気にかけることはない。 上の文の「本」は「著書」を表している(100年以上も前からある著書だ)。 下の文の「本」は、物理的な「モノ」を指している(おそらく100年も持たないだろう)。 後者の「本」は簡単に火をつけて燃やしてしまうことができる。 だが、前者の「本」は、私が火をつけたところでどうにもならないし、私よりも長く存続することは明らかだろう。 前者の「本」をいくつもハードディスクに入れたところで、後者より重くはならない。 この
「中学校の頃はおとなしくて真面目な奴だったんですが、まさかあんなことやるなんて・・・」 まさかではなく、当然なことだと僕は思う。 おとなしくて真面目な奴は、聞き分けが良いから、学校の先生は安心しきってケアもせず、 別の問題児(ヤンキー・DQNやら保健室登校者のたぐい)の方にしか目がいかない。 おとなしい奴は自発的に悩みなんて打ち明けないからため込むのは必定。 とすれば、あんなことやるのは時間の問題というわけ。 安心しきってる学校の先生は非難されてしかるべきだと思う。元ヤンや保健室登校者が無差別殺傷したなんて話聞いたことないし。 ヤンキー効果もあるし。ヤンキー効果とは、「ヤンキーがたまに真面目に掃除をやると、やるのが当然なことなのに異常にほめられる」という現象のことを今名付けたものだ。 ほんと真面目な人間にバカを見せる教育だよ。 こういうことって、教育論(?)とかで議論されてることなのかな。
「Chromeの速さはどの程度?」比較テストの結果 2008年9月 4日 IT コメント: トラックバック (1) Adam DuVander 米Google社のブラウザー『Google Chrome』はどのくらい速いかって? JavaScriptのパフォーマンスにこだわる(そして米Mozilla社の従業員でもある)John Resig氏が実施したいくつかのテスト結果を見ると、Chromeは確かに速いが、他のブラウザーを大きく引き離しているというわけでもないことがわかる。 Google社がChromeを発表(日本語版記事)したときには、Chromeが目にも留まらぬ速さで競合ブラウザーを抜き去ることを示すベンチマークも含まれていた。Chromeが速いことは確かで、一夜にしてウェブを変えてしまったような印象さえ受ける。ただ、統計にはよくあることだが、どのベンチマークを信じるかによって結果は変わ
Event Entry::設計勉強会 イベント内容はてなダイアリー[1]にも書きましたが、PHPのフレームワークを使った実際のプロジェクトでどういう風に設計し、その結果、どこが良かったか/いまいちだったかを皆で持ち寄って議論できればと思います。 対象はsymfonyに限らず、フレームワークより外側をどうつくるか? に焦点を置いたものであれば構いません。 現在想定している内容については、[2]を参照してください。 [1]http://d.hatena.ne.jp/shimooka/20080901/1220245667 [2]http://d.hatena.ne.jp/shimooka/20080829/1220019598 場所:品川シーサーイド近辺 申し込み後表示されます。 注意事項 入館時に社員のアテンドが必要とのことで、一度1F受付に集合することになります。申し訳ありませんが、参加さ
7月11日にソフトバンクモバイルから発売されたAppleの携帯電話「iPhone 3G」ですが、フジサンケイビジネスアイの報道によると販売状況は実質「敗戦」状態で、「戦後処理も必要な段階」に差し掛かっているそうです。 鳴り物入りで登場した「iPhone 3G」ですが、実際どれだけ売れたのでしょうか。また、不振の理由についても紹介されています。 詳細は以下の通り。 FujiSankei Business i. 総合/【クローズアップ】どうなる スマートフォン戦線異常あり この記事によると、「iPhone 3G」の販売台数について、Appleもソフトバンクモバイルも非公開としていますが、通信業界に詳しいアナリストは「20万台前後で止まっている感がある」と推測しているそうです。そして年内販売台数を控えめに35万台程度と見積もっていたものの、それにも及ばない情勢とのこと。 なお、アナリストは「iP
Perl暦一週間。ホントにまったく何にも知らないのに一身上の都合で使うことになって、勉強してみたらいろいろ驚きというかなんというか・・・。なにかが根本的に間違ってるかもしれないけど、とりあえず触ってみて思ったこと。 関数定義 sub funcname { my($arg1, $arg2, $arg3) = @_; # do something } 関数定義に仮引数がなくて毎回こう書かないとだめみたいなんだけど、誰も文句言わないのこれ?ほんとに? 単なるシンタックスシュガーでいいから sub funcname($arg1, $arg2, $arg3) { # do something } こう書かせてほしいんだけど。 コーディングなんてその大部分は関数定義なんだから、そういうところにはもう少し気を使ってくれてもいいと思う・・・。 プレフィックスと名前空間 変数の型に応じてプレフィックスつける
PHP5から導入されたタイプヒンティングを、とある方法で拡張してstringやint、boolなどのスカラー値に対しても使えるようにしたライブラリです。 Today I released the first public version of my new library PHPTypeSafe. It provides the ability to use PHPs Type Hinting feature for scalar values. PHP5.3以降対応で、phar形式で提供されています。つーか、PHP本体に入れば楽なんだけどなぁ。。。 どのように書けるかというと、こんな感じ。barメソッドに注目。 <?php require 'com.maxhorvath.phptypesafe.phar'; class Foo { public static function bar(s
Mozillaが米国時間9月3日、次期バージョンの「Firefox」がGoogleの新しいウェブブラウザ「Google Chrome」を速度で上回るという性能テストの結果を発表し、Googleに反撃した。 2日に行われた発表イベントで、GoogleはChromeのJavaScriptの実行速度をしきりに宣伝していた。JavaScriptは、「Google Docs」やYahooの電子メールソフトウェア「Zimbra Desktop」、Zohoのウェブアプリケーションスイートなど、多くの高性能ウェブアプリケーションに使用されているプログラミング言語だ。Googleは、5種類のJavaScriptベンチマークを採用し、これとChromeのJavaScriptエンジンである「V8」を用いた性能テストの結果を示したが、Mozillaは「SunSpider」という別のベンチマークテストでGoogle
続: zsh のプロンプトでカレントディレクトリを短縮表示 昨日の設定に関して、鵜飼さんから次のような設定でいいんじゃないのと教えてもらった。 PROMPT='%n@%m:%(5~,%-2~/.../%2~,%~)%# ' 確かにこの方が簡潔でいいですね、 perl も動かないし。奥が深い! というわけで、次のように修正した。 case "$TERM" in xterm*|kterm*|rxvt*) PROMPT=$(print "%B%{\e[34m%}%m:%(5~,%-2~/.../%2~,%~)%{\e[33m%}%# %b") PROMPT=$(print "%{\e]2;%n@%m: %~\7%}$PROMPT") # title bar ;; *) PROMPT='%m:%c%# ' ;; esac
lynmockさん、nasikaさんに、愛と敬意を。 (1)JRE(JDK)をインストール $ sudo aptitude install sun-java6-jdk (2)デフォルトだと文字化けしちゃうので、こちらを参考に修正。リンク先のファイルをダウンロードして入れ替えするのが楽。 ※2009/01/21追記:少なくともUbuntu 8.10では文字化けは発生しないため、本手順は必要ありません。 $ cd /usr/lib/jvm/java-6-sun/jre/lib $ sudo cp fontconfig.propaties fontconfig.properties.org $ sudo mv DOWNLOAD.FONTCONFIG.PROPATIES fontconfig.properties (3)lynmockさんのBlogから、最新版のP3をダウンロード。 (4)ダウンロ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く