2008-07-01から1ヶ月間の記事一覧

設計だけではそれ自身の正しさを実証できない

dev

なんかコメント欄が盛り上がってたので。 >机上の検証では完全な検証なんてできなくて、実装してみないとわからないことがたくさんあることが問題なんです。大体同意。 大体といったのは、完全な検証ができないのと、検証をする気がないというのは違うという…

何の意味があるのだろう

「Seasar Conference 2008 Autumn」では、スピーカーを募集しています。 「開発者による開発者のためのカンファレンス」を目指し、もっとオープンなカンファレンスにします。 「Seasar」だけではなく、他のオープンソースコミュニティ、開発者コミュニティな…

Web で動画編集ができる www.sprasia.com

スプラシア (http://www.sprasia.com) というサイトでは、ブラウザ (というかFlash) で動画編集ができる。エフェクトをユーザが作って登録できるみたい。例えば、動画に『キターーーー!』という文字を入れるようなエフェクトを誰かが作って登録すると、それ…

日本製の Rails アプリってなんかあったっけ?

RubyFlowで、What are the flagship Japanese open-source Rails apps? という質問が。よく考えたら (よく考えなくても)、日本製の Rails アプリケーションって何かあったっけ? 最近は企業での採用も増えてきたけど、どれも自社サービスものばかりで、オープ…

泥のように働くのは構わないけど・・・

すっかり悪い意味で使われるようになった「泥のように働く」という言葉。このエントリでも悪い意味で使うことにする。 「IT企業はほんとに泥のように働かされるのか」――東大でイベント (@IT) 泥のように働く重要性 (ひがやすを blog) 個人的には、泥のように…

RubyGems で Gem::RemoteFetcher::FetchError 発生

gem コマンドを使うと、Gem::RemoteFetcher::FetchError が発生するようになった。 $ gem outdated ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError) bad response Not Found 404 (http://gems.datamapper.org/latest_specs.4.8)gems.datam…

PHP に「次の言語」なんていらない

php

PHP は、ほぼすべてのホスティングサーバで使えるといっても過言ではない。PHP の普及率は非常に高い。また PHP には、WordPress や XOOPS や phpMyAdmin など様々な application が作られている。そのおかげで、PHP は知名度も非常に高い。さらには、PHP は…

デザイナに eRuby を書かせるべきか否か

masayang氏に、わざわざ回答をいただいた。ありがとうございます。 eRubyでXHTMLの大枠を記述するのはRubyエンジニア そのeRubyの編集をデザイナにも解放せよ デザイナがeRuby構造を壊したとしても、テストで検知できるし、最悪リポジトリから戻せるではない…

デザイナに eRuby を書かせるのは、あくまで次善策

Ruby on Rails の開発元である 37signals では、デザイナが eRuby ファイルを編集するだけでなく、ヘルパーとかも書くらしい。 UI Design on Rails 37signalsにおけるデザイナとプログラマ連携の事例紹介 デザイナにも積極的にviewファイル(.erb/.rhtml)を触…

Matz loves Python

RubyFlowより。 Matz loves Pythonなんかスーパーマンの変身シーンみたい。 と思ったら、 ab5tract is waiting for someone to photoshop an S on Matz' chest. Matz loves Python? - RubyFlow というコメントが。つまり誰かPhotoshopでMatzの胸にスーパーマ…

Rails の黒魔術: 自己再定義メソッド

Ruby on Rails の意味不明な黒魔術を問題視するシリーズ。問題: 次のメソッド定義において、(*1) や (*2) や (*3) は何をしているんでしょう? module ActiveRecord module ConnectionAdapters class PostgreSQLColumn < Column private ... # Escapes binary…

ソースコードを対象にしたデータマイニング

ソースコードを対象にしたデータマイニングってないかな。 コードの重複や、同じパターンが頻出するのを自動的に調べてくれるようなの。これが出来ると、初心者でもリファクタリングしやすくなるよね。 あるいは、例えばこのパターンは Rails で何件、tDiary…

Enumerable#index_by() が標準で欲しい

ActiveSupport で用意されている Enumerable#index_by() がRuby本体にとりこまれないかなー。 これ、ほんとよく使うわ。 module Enumerable def index_by() # 名前は to_hash のほうが好み hash = {} each do |item| key = yield(item) hash[key] = item end…

PHPの次に勉強する言語は何か?

マジレスすると、HTTP。 Webアプリケーション作っているのに、PHPの知識はあってもHTTPプロトコルの知識がさっぱりな人が多くね? 他の言語を勉強する前に、GETとPOSTがどう違うのかぐらい勉強しようよ。 それでもあえて PHP ユーザが次の「言語」を選ぶなら…

毎日.jpが自社広告だらけ

「毎日jp」が自社広告だらけに、ネット上に深いつめ跡残る (IT Pro) (はてなブックマーク) なんで毎日新聞がここまで苦境に立たされるかなー。 TBSのほうが先じゃね? TBSのねつ造報道のせいで潰れた企業があるんだから、その報いでTBSが潰れるならすごく納得…

PHP で、連想配列の配列を効率よくソートする

php

PHPで、ファイル名を含む連想配列の配列があるとして、 101, 'filename'=>'foo.jpg'), array('id'=>104, 'filename'=>'bar.jpg'), array('id'=>109, 'filename'=>'baz.jpg'), ); ?> これをファイルサイズでソートしたいとする。 この場合、比較関数を定義し…

Ruby on Rails でデータベースの Sharding を実現する DataFabric プラグイン

RubyFlowより。 One of the lingering issues we’ve had to deal with over the last year in the Manage service is ActiveRecord’s reluctance to talk to more than one database. It’s really quite stubborn in that regard and while there are a few …

クラス設計の常識に反して、クラス名を動詞に、メソッド名を名詞にする

クラスを作るとき、ふつうはクラス名を名詞に、メソッド名を動詞にする。 class FileLoader { // クラス名は名詞 def load(name) { // メソッド名は動詞 ... } } しかし PHP のフレームワーク CodeIgniter では、一部のクラスでこれが逆になっている。つまり…

何が『釣り』で何が『釣り』じゃないのか

ほんとみんなJavaが好きなんだな。タイトルに「Java」を入れてないのに、なんでこんなに集まるのかね。 前のエントリは別にJavaをDISったわけじゃなくて、タイトルにあるように「コンピュータの歴史では、おもちゃと言われてバカにされていたものが最終的に…

コンピュータ業界の歴史は「おもちゃ」による勝利の積み重ね

(追記(2008-07-09): このエントリはタイトルにあるように「歴史ではおもちゃこそが勝ってきた」ことを再認識することが焦点であり、JavaやRubyやHSPは話の本質ではありません。誤解を避けるため、当初つけていたカテゴリ[java]は外しました。) これはJava…

Ruby on Rails のドキュメントが検索できる rails-doc.org

RubyFlowより。 rails-doc.org は、Ruby on Rails のドキュメントを検索できるようにしたアプリケーション。 Ajaxによる検索が速いのと、PHPドキュメントのようにユーザがコメントをつけられるのが特徴。RailsAPI.orgもいいけど、最近はこっち使うようになっ…

要求と要件の違い

dev

要求と要件の違い要求 お客さんのこんなことをしたい、こんなことができるといいなという望み 要件 要求をシステム化「する」と決めたもの お客さんは、自分がどんなことをしたいのかとか、どんなものが欲しいのかということをうまく説明できないことが多い…

キーワード引数のかわりに fluent interface (流れるようなインターフェース) を使う

Pythonでは、キーワード引数が使える。これは、引数の種類が多い場合は非常に便利である。 理由は、可読性が高いことと、引数の順番を気にしなくていいということ。 ## Pythonによるキーワード引数の例 rows = Query.find_all('stocks', where='price >= 100…

Smalltalkによる伝説のプロジェクト

dev

MagLevを作っているGemStone社について調べていたら、こんなのが見つかった (URLは不明)。 日本におけるSmalltalkを使ったシステムとして有名で、ある意味伝説となったプロジェクト。 みなさん、こんにちは。lazy プロジェクト・マネージャーの佐原です。 我…

exact GC と conservative GC

祝 Matz 日記復活。 exactなGCの方が性能的にやや有利だが、 一方、拡張ライブラリの書きやすさは 保守的GCの方がずっと楽である。たとえば、Rubiniusはexact GCを採用しているため yieldを呼ぶメソッドをCで記述できない Cメソッド実行中のオブジェクトは自…