プログラミング言語Rubyが注目を集めています。Ruby関連の書籍が次々と出版され,2006年6月には国内初の大規模Rubyイベントである「日本Rubyカンファレンス2006」が催されました。また,Rubyで書かれたWebアプリケーション・フレームワークRuby onRails(以下Rails)が話題となり,Rubyの高い生産性が一般に知られるようになってきました。Rubyの生産性はJavaの10倍とさえいわれます。なぜRubyは生産性が高いのでしょうか。それは,Rubyはいろいろな言語から優れた所を集めた「いいとこ取り」言語だからです。Rubyの特徴は「構文が強力なので,迅速な開発ができる」「人に優しい言語なので,楽しくプログラミングできる*1」「問題が起こりにくいように設計されているので,初心者でも簡単に安全に作業でき,熟練者は高度なプログラミングを行える」といった点です これらの

まず、日本のサイトにある一般的な登録フォームの画面遷移は 入力画面→入力確認画面→完了画面 となっている場合が多いようです。ここでリロード問題となるのは完了画面でのDBへのINSERT処理やCSV書き出し処理、メール送信処理など「一度しか行わない処理」です。例えば完了画面へ遷移した際にブラウザのリロードボタンが押された場合、確認画面よりsubmitした情報が再度submitされて上記の一度しか行わない処理が二度行われてしまいます。そうならないよう、リロード対策はスクリプトで制御します。 まずは確認画面のスクリプト 確認画面でチケットを発行し、セッションに保存しておきます。同時に完了画面へチケットがPOSTされるよう、hiddenにセット。こうして完了画面へ遷移させます。それでは完了画面のスクリプトを見てみましょう。 このように、確認画面で発行されたチケットは一度使い切ってしまえば2度処理さ

JavaScriptを書き始めるとき、いきなり*.jsやHTMLに書いたりするのではなく、大抵下記に試しに書いて実行してみます。JavaScript Development EnvironmentJavaScript Shell Web DevelopmentBookmarklets 上記2つのブックマークレット版JavaScript Shell は、補完機能なんかもあって高機能ですが、IE、Operaだとどうもうまく動きません。JavaScript Development Environment は、ブックマークレット版じゃないほうはIE、Operaでも動くので、どちらかというとこっち使うときの方が多いです。(Operaでのエラー表示が出来てないみたいだけども…) ブラウザ上で簡単に試せるってのはすばらしいですね。 で、その後に*.jsやHTMLに書いて、後はFireBug使い
勾配の緩やかな初心者向け Scheme 入門ページです。 コンピュータは使ったことがあるが、プログラミング経験があまりない人を想定しています。 Scheme の解説はすでに山ほど優れたものがありますが、あえて解説記事を書いてみました。 Scheme のような抽象的な話題は波長が合えばすんなりと理解できますが、あわないと全く理解できません。 他の解説を読んで今ひとつよく理解できなかった人は試しに読んでみてください。 この記事の目標はコンピュータ科学の教科書の決定版である SICP を読める程度の Scheme の知識を提供することです。 目次: 処理系のインストール Scheme を電卓代わりに使う リストを作ろう 関数を定義しよう 分岐 局所変数 繰り返し 高階関数 入出力 代入 文字、文字列 シンボル型 連想リスト、ハッシュ表 ベクトルと構造体 構文の定義 (マクロ) 継続 遅延評価 非
Developers Summit 2007 の資料を公開します。 推奨フォント 以下のフォントが入ってると一番きれいに見れると思います。 メイリオ 推奨ブラウザ 以下のブラウザに最適化(高速化など)して作りました。 Firefox 2.0 IE 7 対応ブラウザ OS いちおう以下の環境では動作確認しました。Windows Firefox 2.0Windows IE 7Windows IE 6Windows OperaLinux Firefox 2.0 操作方法 Firefox は Flash の上でのクリックは無視されるので注意 左クリック: 進む 右クリック: 戻る →キー: 進む ←キー: 戻る 高度な操作方法 ロケーションバーや Firebug や jshbookmarklet から以下の操作をすることで、早送り巻戻しページジャンプなどができます。 早送り巻戻し: g
リスト2 動的型の言語で書いたソースコード<BR>Rubyで記述した。ソースコードで変数の型を宣言していないが,実行時にきちんと型整合性をチェックする。数値と文字列を加算しようとすると,エラーが出る。 プログラムを実行して初めて決まる事項が多い「動的言語」。柔軟性が高い,簡潔な表現が可能など複数の利点を持っている。さらに性能の問題などの欠点がコンピューティング環境の変化で目立たなくなってきた。速く柔軟な開発が求められる中で動的言語の存在感は増すばかりである。(本誌) LAMP(Linux,Apache,MySQL,Perl/ Python/PHP)という言葉(表1[拡大表示])が注目されています。オープンソース・ソフトウェアを利用したソリューション構築を意味する造語ですが,プログラミング言語の代表として挙げられているのはどれも動的言語です。 以前は,企業システムをPerlやPHPのようなイ

akinote ≫Google 電話面接を受けました orz (いまは消えてるけど)にて割り算が壊れました。自分で実装してみてくださいという質問が紹介されていた。せっかく(?)の機会なので、割り算だけでなく、四則演算を全部壊してみて、JavaScript で実装して見ることにした。JavaScript を選んだのは、コンパイル不要、ビット演算がある、Firebug で手軽に確認できる、という理由から。それ以上の深い意味はない。ということで、次のような問題に一般化してみた。問い四則演算をJavaScript で実装しなさい。演算子は ==、!= およびビット演算子のみ使ってよいものとします。補足例えば、for 文で for(var i = 0; i { // ... } と書くためには、++ 演算子は次のように定義できる。 function increment(i){ var c =
Latesttopics >JavaScript 1.7のyield文ってなんじゃらほ 宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能! « mod_estraierでの履歴全文検索(ミラー) Main 年金の追納 »JavaScript 1.7のyield文ってなんじゃらほ - Aug 07, 2006JavaScript 1.7 の yield が凄すぎる件についてを見てもyieldってそもそも何なのかちいとも分かっとらんかったのでそこから調べてみた。 yieldはreturnの仲間? そもそもこのyield文というのは、JavaScriptと同じくスクリプト言語のPythonから持ち込まれた仕組みらしい。ジェネレータとは何ぞやで読める例を
「JavaScriptで学ぶ・プログラマのためのラムダ計算」は、1回では述べ切らなくて、一段落付いたところで区切りました。これはかえって良かったですね、ブックマークやトラックバックでフィードバックが得られたので。 そのフィードバックなどをかんがみて、「残り=次回の話題」として予告した内容とは食い違ってしまうのだけど、今回は、文章では伝わりにくい(前回うまく伝わらなかったと思える)ラムダ計算の大事なツボを、なんとか表現してみようと思います。 [このエントリーの内容はだいぶ前にほぼ出来上がっていたのだけど、ココに書いてある事情で、“お絵描き”がなかなか出来なかったのです。] ※印刷のときはサイドバーが消えます。 内容: 知っていて損はない 計算は身体的に理解しよう ラムダ項のツリー表示:準備 ラムダ項のツリー表示:描く! β変換に対応するツリーの描き換え もっとβ変換をやってみよう 計算現象を

後半部分が重要で、未来の挙動が現在の値だけで決定され、過去の挙動と無関係である ということです。 さて、実例です。たとえば次の文章を考えてみます。 「通信販売大手セシールは9日、生命保険の販売に本格参入する方針を明らかにした。」 まず形態素解析するとこんな感じになります。 通信 名詞,サ変接続,*,*,*,*,通信,ツウシン,ツーシン 販売 名詞,サ変接続,*,*,*,*,販売,ハンバイ,ハンバイ 大手 名詞,一般,*,*,*,*,大手,オオテ,オーテ セシール 名詞,固有名詞,組織,*,*,*,セシール,セシール,セシール は 助詞,係助詞,*,*,*,*,は,ハ,ワ 9 名詞,数,*,*,*,*,9,キュウ,キュー 日 名詞,接尾,助数詞,*,*,*,日,ニチ,ニチ 、 記号,読点,*,*,*,*,、,、,、 生命 名詞,一般,*,*,*,*,生命,セイメイ,セイメイ 保険 名詞,一般
WebアプリケーションではURLのわかりやすさも重要とされている。たとえば http://www.example.com/diary/diary.cgi?year=2007&month=05&day=12 というURLよりも http://www.example.com/diary/2007/05/12 というURLのほうがユーザにとってもわかりやすいし、検索エンジンにもクロールされやすいといわれている。 Apacheでは後者のURLへのリクエストを、サーバ内で前者のURLに書き換えて処理を行うための"mod_rewrite"というモジュールが存在する。mod_rewriteを使えば既存のWebアプリケーションに大きな修正を加えずに、後者のようなアクセシビリティの高いURLを提供することができる。また、サーバ上でWebサイトのフォルダ構成を変更した場合などもmod_rewriteを使用する
Javaプラットフォームの包容力 先週、記者はJavaOne取材でサンフランシスコにいたため、個人的に気になったのは、Java関連のニュースだ。 中でも印象に残ったのは、Java VM上に実装したRubyの処理系「JRuby」の開発者が、JRubyのほうがCで書かれた本家のRubyよりも動作が速いと話したことだ。 “Java”といったとき、一般的には言語としてのJavaを指すが、サン・マイクロシステムズ自身はJavaテクノロジー、Javaソフトウェア、Javaツールなどの名称を使い分けている。言語としてのJavaは、Javaテクノロジー全体のもっとも重要なピースの1つではあるが、一部分に過ぎない。JRubyやJythonといったほかの言語の処理系がJava VM上で高速に動くとなると、“Java”を使うことのメリットはJavaという言語が持つ良さにとどまらず、Java VMのパフォーマンス
せっかくのイベントドリブンフレームワークな POE ですから Comet でチャットをやってみようかと。ありきたりですが。 POE::Component::* でウェブサーバを立ち上げられるのは現在のところ, POE::Component::Server::HTTPServer POE::Component::Server::SimpleHTTP POE::Component::Server::HTTP の3つがあります。1番目は最近 inactive なのでパス。2番目は「イベントフレームワーク」への馴染みはいいんですが「Simple」じゃなくなってます。3番目はコールバック関数を登録するというお気楽スタイルなんですがちょっと雑な感じ。 今回は楽をするために3番目の PoCo::HTTP を使ってみたいと思います。id:naoya 氏も最近紹介してましたし。 URI の設計指針は, チャ
You are here: Home »blog » stuff » Open Source Web Crawlers Written inJava I was recently quite pleased to learn that the InternetArchive's new crawler is written inJava. Coincindentally, I had in addition to put together a list of open source projects for full-text search engines, I put together a list of crawlers written inJava to complement that list. Here's the list: Heritrix - Heritr
open(OUT, '>result.csv'); open(IN1, 'enquate.csv'); # アンケートデータを1行ずつ処理する while(my $line1 = <IN1>){ # 1行を4つに分ける chomp($line1); my ($id, $ans1, $ans2, $ans3) = split(/,/, $line1, 4); # この行にマッチする顧客データを検索する my $name = ''; my $address = ''; open(IN2, 'address.csv'); while(my $line2 = <IN2>){ chomp($line2); my ($tmp_id, $tmp_name, $tmp_address) = split(/,/, $line2, 3); if($tmp_id eq $id){
学校では教えてくれないエンジニアリング英語 #5: crufty, kludge, janky, ghettoエンジニアの仕事はコードを書くことですが、いつもいつも仕事で書くコードが「美しい」コードとは限りません。複雑なユースケースを処理するための変なコードが入ったり、リリースに間に合わせるために本質的でないその場しのぎのフィックスを入れたり。 今回はそういうときにつかえる形容詞や名詞をいくつか紹介します。 "crufty" は英辞郎にはのっていませんが、Urban Dictionary でひくと、"Generic derogatory term for something that is hacked together, badly designed, shabby or otherwise substandard. Often used in the description of s
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く