2010-04-01から1ヶ月間の記事一覧

プログラミング言語の速度とアプリケーションの速度がいかに関係ないかがわかるグラフ

まずは次の表をご覧あれ。これはプログラミング言語のベンチマークとして有名な Computer Language Benchmarks Game のベンチマーク結果。上にいくほど高速で、下に行くほど遅い言語になる。これを見れば、最速な言語は C/C++ であり、Java や Haskell や OC…

Re: スクリプト言語の息の根を止めるのは案外 SSD かもな

まえのエントリのコメント欄より: flat8 2010/04/27 10:19 確実にIntelはそこまで考えていると思います。で、ある程度SSDが普及したらSSD自体の製造からは手を引くでしょうけど。 やはりそうでしょうか。さすがIntel。 ところでIntelが『SSD自体の製造から…

Facebook はなぜ HipHop を開発したかを考える

もとのエントリでも触れたけど、Facebook は PHP を C++ に変換して実行する仕組みを開発し、これを HipHop for PHP という名前で公開している。知っての通り、Facebook は世界最大の SNS であり、PHP を中心に構築されている。サーバの数も膨大で、その数約…

スケールアウトには限界がないのか

cpw 2010/04/27 12:43 アプリケーションサーバは分散が容易とういうことを忘れてはいけませんよ。サーバも安くなってきてますしね。人件費の方が高コストです。 スクリプト言語の息の根を止めるのは案外 SSD かもな - kなんとかの日記 データベースサーバと…

『使いやすいのは動的な言語だから』というのは間違い

いやー、おまいらがスクリプト言語大好きというのはよくわかった。よくわかったけど、信者はもっと落ち着いたほうがいい。 mikihoshi 「スクリプト言語の使いやすさ」のかなりの部分はスクリプト言語(動的言語)であることが担保してるんだから、「スクリプト…

SSD の風が吹けば Intel が儲かる

db

話は変わって: とはいえ、HDDとSSDそのもののアクセス性能を比較した場合は10倍から20倍性能が違うのに対し、実際の業務を想定したOLTP処理性能の比較ではそれが2倍〜3倍程度に収まりそうであるのにはやや肩すかしを食らった感じもします。 HDDをSSDにした…

スクリプト言語の息の根を止めるのは案外 SSD かもな

大変たいへん興味深い記事。全プログラマーにとって。 HDDの代わりにSSDを利用したら、リレーショナルデータベースの性能はどれだけ向上するのでしょうか? オラクルと富士通が共同検証を行い、その結果をホワイトペーパーとして先週発表しました ...(snip).…

DI コンテナの起動が遅いなら、起動が速いのを作ればいいじゃない

自分で書いたコメントなんだけど、今見るといいこと書いてあるように思うので、エントリにしてみる。3行でまとめると: Spring の起動が遅いことと、DI コンテナの起動が遅い/速いというのは、別の話。 DI コンテナの起動が遅いなら、起動の速い DI コンテナ…

国内レンタルサーバでの PHP/Ruby/Python/Perl/MySQL/PostgreSQL のバージョンを調べてみた

国内レンタルサーバで使われている PHP/Ruby/Python/Perl/MySQL/PostgreSQL のバージョンを調べてみた。レンタルサーバの選択基準は特にない。「レンタルサーバ」でぐぐって適当にピックアップした。最初にまとめとくと: PHP は 5.2.x が主力 Ruby は 1.8.2…

Python で複数のバージョンをサポートするのがしんどい

すでに Python 3.1 もリリースされ、また 2.7 のリリースも近いというのに、世の中ではいまだ Python 2.3 や 2.4 が現役で使われている。たとえば、サーバ用 OS としてよく使われる CentOS 5 では、Python のバージョンは 2.4 である。またレンタルサーバの …

VCS において Git が革新的な点

git

はっきりいって、Git の CUI は使いづらくてわかりにくい。サブコマンド名やオプションが開発者目線で決められており、ユーザからどう見えるかという視点が欠けている。その点、Subversion はよく考えられて洗練されていたし、それを受け継いだ Mercurial も…

「分散 VCS」という名前はよくない

Git は RCS っぽい lifeLOG + REPOsitory: 平等分散リポジトリの見せる夢 ワシもそう思う。Subversion のときはリポジトリを作って http.conf に記述して Apache 起動して…みたいな作業が必要だったけど*1、Git や Mercurial はそういう手間が全然いらない。…

Google が CPU 開発に乗り出す可能性

なんの裏付けもない、まったくの個人的な妄想だけど、Google はそう遠くない未来に、CPU 開発に乗り出すという予想をしてみる。いやいや汎用品を使うからこその Google なんだと言われるだろうけど、それなりに根拠はある。 Google にとっては、CPU の単体性…

App Engine で DI を使うメリットはない?

DIの主なメリットは、テストのしやすさと宣言的トランザクションだと思いますが、AppEngineではモックなしで簡単にテストができ、Bigtableの仕様的に宣言的トランザクションはほとんど使えないので、AppEngineでDIを使うメリットは余りないんじゃないかと思…

Mac OS X でUSBメモリのアンマウントをコマンドラインから行う

mac

$ sudo diskutil umount /Volumes/NO\ NAME Password: Volume NO NAME on disk1s1 unmounted

Google App Engine で Java を使うと起動時間が数秒もかかるらしい

上記3つの対策を施し、詳細は省略しますが約50回の起動で、最小3693ms、最大14303ms、平均6884msとなりました。対策前(平均8895ms)と比較すると2000ms程度の改善です GAE/J、起動時間(spin up時間)短縮の試行錯誤 : CB NANASHI管理人ブログ これ、まじな…

Rails の routes.rb がわかりにくい

Rails の routes.rb と格闘中なんだけど、なんで Rails の routing はこんなにわかりにくいのだろうか。 ## named route は省略 map.with_options(:controller=>'books') do |x| x.connect '/books', :action=>'index', :conditions=>{:method=>:get} x.conn…

jQuery で outerHTML() を実現する

jQuery で、innerHTML じゃなくて outerHTML を実現する方法があった。 jQuery.fn.outerHTML = function(s) { return (s) ? this.before(s).remove() : jQuery("<p>").append(this.eq(0).clone()).html(); } jQuery: outerHTML – Yelotofu わかりやすく書くとこ</p>…

Google App Engine ではプログラムから static ファイルを読みこめない

Google App Engine で、スクリプトから画像ファイルの一覧を取り出そうとしたけど、できなくてはまった。helloworld.py # -*- coding: utf-8 -*- import os, glob print "Content-Type: text/plain" print "" print "hello" imgdir = os.path.join(os.path.d…

WebアプリはDelphiのクライアントサーバ以下

sys

私はもう特定少数で使うアプリはWEBでやらないほうがいいと思っています。まず、Java-WEBが出て来てから10年経ってもなお、WEBブラウザソリューションって難しいものなのだと思わざるを得ません。いやー俺様には簡単だよw、でも世の中では少なくない人々が、…

Python で SyntaxError を自前で投げる

Python で SyntaxError を自前で raise するには次のようにする。 raise SyntaxError("エラーメッセージ", (ファイル名, 行番号, カラム桁数, ソース行)) やってみる。 >>> raise SyntaxError("ERROR MESSAGE", ('foo.py', 123, 2, 'x = 999')) Traceback (m…

import 文を使わずにモジュールを作成する

import 文を使わずに、任意の Python スクリプトをモジュールとして読み込む方法。こうすると、拡張子が「.py」じゃなくても読み込み可能。 import os file = 'foo.py' name = 'foo' module = type(os)(name) # (*1) module.__file__ = file execfile(file, …

はじめての Kay Framework 体験記

Google App Engine 専用フレームワークというふれこみの『Kay』を試してみる。 なお環境は Mac OS X 10.6、Python 2.6.2 (自前コンパイル)、GAE SDK 1.3.2。

Python で現在のファイル名と行番号を調べる。

Python では、現在のファイル名を表す __file__ はあるけど、行番号を表す __line__ がない。現在の行番号を調べたかったら、スタックフレームオブジェクトを触る必要があるみたい。以下がサンプルコード。__LINE__ and __FILE__ functionality in Python? -…

Ruby の落とし穴: 実は and と or の優先順位が一緒

こんなん今の今まで知らんかったわ。 irb> true || true && false #=> true irb> true or true and false #=> false irb> true || false && false #=> true irb> true or false and false #=> falseまじですかー! 何やねん、これ。マニュアル見ると、and と …

RubyKaigi2010 に応募するネタがない

RubyKaigi2010 のセッション応募が開始されてた。締め切りは4/28。 基本的に、1 発表 60 分くらいを目安に考えています http://rubykaigi.org/2010/ja/CallForPresentationProposals.html 60分かよ。応募したいけど、そんなに長く話せるネタはないなあ。 は…

アクセッサの速度を計測する in PHP

php

PHPで、「$obj->var」と「$obj->get_var()」にどのくらい速度差があるのかを調べてみた。 またjQueryのようにgetterとsetterを同じメソッドで行うようにしたいとき、引数があるかどうかを調べるのにfunc_num_args()を使った場合と使わない場合との速度差も測…

Rails3 (beta2) のインストール

「Ruby on Rails 3.0 Release Notes」を参考に、Rails 3 をインストールしてみる。なお現時点ではまだ正式リリース前 (beta2) であることに注意。

ファイルの改行コードが "\r\n" と "\n" のどちらなのかを判定する

## ファイルの先頭1KBを読みこんで、"\r\n" があれば CR+NL と出力する $ ruby -e 'puts ARGF.read(1024)=~/\r\n/ ? "CR+NL" : "NL" ' file.txt CR+NLまあ最初の一行目で判定すればいいんじゃね?という意見もあるが、二行目以降だけがCR+NLというファイルを…

jQuery のドキュメントをオフラインで参照する

jQuery のドキュメントは充実してるんだけど、オンラインでないと読めない。近所の喫茶店とか、ネットの繋がってないオフライン環境で参照したい場合は困る。 と思ってたら、Alternative Resourcesというページに、PDF版とCHM版へのリンクがあったので、紹介…