この連載は,日経ソフトウエア2006年7月号から,2007年6月号までに掲載した連載「簡単実装で学ぶWeb技術2006 / 2007」の再録です。Web技術を具体的でシンプルなサンプル・プログラムを通して紹介します。進歩と変化の激しいWeb技術は,手際よく本質をつかんでいきたいものですね。小さいけれどもわかりやすいサンプルを実際に動かして「なるほど,こういうものだったのか」と思っていただければありがたいです。 題材は,新しいものから基本的なものまで幅広く取り扱っていく予定です。 第1回 Ajax---動的なWebアプリケーションを作るための技術 第2回 Comet---プッシュ型のWebアプリケーションを作る 第3回 Cookie---状態管理とトラッキング 第4回 Catalyst(前編)---Perl向けWebアプリ・フレームワーク
Emacs Lisp をこよなく愛する僕の目から、Emacs Lisp がダメだと思うところをまとめておきます。 文化的な問題 Emacs Lisper の多くは、Lisp が好きで使っているのではなく、Emacs が好きだからしかたなく使っているのでしょう。本当は C で書きたいのに、無理して Lisp を利用している感じです。 そのため、Emacs に付いてくる Emacs Lisp のコードは、Lisp らしくないものがほとんどです。単に C での発想を Lisp で表現しています。 これらのコードは、読みこなせないぐらい関数が大きく、副作用のある部分とない部分が分離されていません。また高階関数を用いて、データ構造を走査するコードと実際に仕事をするコードを分離するという意識も低いようです。 Google の MapReduceという論文のお陰で、Lisp の写像関数(map)と畳込み
プログラミングの基礎となる考え方、アルゴリズムを理解しているだろうか? ITエンジニアに贈る、アルゴリズム入門。 京都の効率的な回り方を考えるのも「アルゴリズム」 「アルゴリズムって何?」。そう聞かれて、皆さんはすぐに答えられますか。ウィキペディアのアルゴリズムの項には、「なんらかの問題を解くための手順のことである」と記載されています(2007年9月時点)。 例えば、皆さんが週末に京都に旅行し、市内を観光するとしましょう。二条城や銀閣寺、東寺など、回りたいと思う観光地がいくつもあります。バスや電車、場合によっては徒歩など複数の交通手段のうち、どれを使ってどういう順番で回れば効率が良いかと考え、時刻表と格闘することになるでしょう。 この場合、観光地の効率の良い回り方が「問題」で、すべての観光地を最短時間で移動する経路を見つけ、効率良く回る手順を考えることが「問題を解くための手順」、すなわちア
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
_ [Ruby] Ruby 技術者認定試験の問題を予想してみました さらに追記:第二回試験を受けましたが、この日記の予想問題とはあんまり近くはありませんでした。試験勉強をされる方は、リファレンスマニュアルと NaCl さん謹製のRuby認定試験対策問題を読むのが良いと思います。 追記:まつもとさん曰く、実際の問題はもう少しストレートで優しいものになる予定とのことです。 10 月に実施される予定の Ruby 技術者認定試験の問題を予想してみました。とりあえず 30 問。組み込み関数・変数・定数・クラスの問題がほとんどないので、増やすつもりです。 エントリーレベルだそうなので簡単な問題にしてみましたが、簡単すぎでしょうかね。(会社の後輩に見せたところエントリーレベルにしては難しいとの評でした。SJC-P を念頭においていたのでひねった問題にしてしまったかもしれません……)除いた分野は、ブロッ
WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 一歩進んだ Web アプリケーション活用術 ほんの数年前まではお世辞にも使いやすいとは言えなかった Web アプリケーションですが、現在ではブロードバンド回線の普及や Ajax 技術の確立などで、デスクトップアプリケーションに勝るユーザビリティーを獲得しつつあります。このような Web アプリケーションの発展は、 WebOS 実現への重要な一歩と言えます。同時に、
Apple ComputerのMac OS X 10.4(Tiger)には、標準で「Quartz Composer」というアプリケーションが付属している。このアプリケーションは、開発環境であるXcode Toolsの一部という立場のせいか、Appleにもあまり取り上げられていない。しかし、この開発ツールにしてグラフィックツールであるQuartz Composerは、実は非常にエキサイティングで、とても大きな可能性を持っている。 Quartz Composerとは何かと聞かれたら、ビジュアルなフローを使ってグラフィックモジュールを作成できるプログラミング環境、という答えになるだろうか。だが、こんな説明よりも、Quartz Composerの動作画面を紹介すれば、一目で理解できるだろう。次の図が、それだ。 Quartz Composer動作画面 Quartz Composerには、パッチと呼ば
umlet.comは22日(現地時間)、Javaで記述されたUMLドローツールUMLetのバージョン7を公開した。UMLetはUMLダイアグラムを記述するためのライトウェイト描画ツールであり、シンプルなユーザインタフェースで手軽にUMLを記述できる点が特徴。 今回リリースされたUMLet 7では、以前のバージョンに対して次のような拡張が行われている。 エレメントの色分けをサポート コマンドラインからのファイル名の指定をサポート マウスでのエレメントの選択機能を拡張 UIを洗練させてよりシンプルに "全選択"をサポート その他バグの修正 UMLetの使用方法は非常にシンプルで分かりやすい。起動するとまず図.1のように表示されるので、右枠のエレメントの中から描画したいエレメントをダブルクリックする。すると左の描画領域にそのエレメントがコピーされる。あとはクラス名や属性などは右中段のテキスト領域
Introduction What's this about? Language Designers: Looking for operator or function names? Well have a look at the following and remember using existing one may ease the transition :) Language Users: You know one language and want to find the corresponding operator or function in another language Language lovers: Want to know the various ways people invented for commenting/assigning/...? This is
emeitchさんのリクエストより。元ネタは Perlプログラマのレベル10。 私家版、Schemeプログラマのレベル10 くれぐれも本気にしないように。 レベル0 SchemeとかLispとかいうカッコだらけですごくわかりにくい言語があることは知っているが、 最強とか主張する信者がいるらしいのでなるべく関わらないようにしている。 EmacsLisp?もその親戚らしいけどコードを見ただけでくらくらする。 でも便利なマクロは自分の.emacsにコピペしている。 レベル1 Schemeに関するwebサイトを見たり、大学の講義での説明とかを聞いて、 factorialとかappendとかreverseとかを書いたり、 ネストした木構造のノードの数を数えたりできる。 でもそれが何の役に立つかわからない。こんな言語で実用的な プログラムが書けるなんて信じられない。 カッコの位置を間違えて動かないプロ
青空文庫ゲートウェイとは? 青空文庫は、専用ソフトを使うか、WEBブラウザで見ることができます。ただ、前者はダウンロードとインストールが必要、また後者の方法は手軽な反面、長文を読むには縦スクロールがストレスになるなど、一長一短です。「青空文庫ゲートウェイ」は、手軽なWEBブラウザ方式を見やすく改良した閲覧方法です。 青空文庫ゲートウェイはbookreader.jsを使って、青空文庫を紙媒体ようにページめくりしながら読むためのサービスです。縦スクロールが無いと、視線移動が減りブラウザでも意外と(?)長文が読めます。お試しください。 サービスは無料なの? テキストファイル自体は、青空文庫のサーバから取り込みますし、プログラムもJavaScriptなのでサーバへの負荷はほとんどありません。有料化することはありませんが、プロクシサーバの負荷が高くなるようならばGoogleAdを入れるかも。 boo
最もタメになる「初心者用言語」は Python! - 西尾泰和のはてなダイアリー Schemeなら、えんざんしとかえんざんしのゆうせんじゅんいとかいんでんととか小難しくてよくわらないものがないから、初心者でも安心して簡単にできるよ > < しかもしかも、ループと再帰呼び出しとか2つもいっぺんに覚えなくても、末尾呼出し1つだけ覚えれば両方できちゃうよ!Schemeすごい! Schemeで豊かな表現力を身につける なんだかよくわからないけど、巷のプログラミング言語は * とか - とか ? が変数名とか関数名につかえない。演算子?なにそれ初心者には難しくてわかんない>< Schemeだったら、「それってシンボル?」って聞く関数は symbol? っていう名前にできるよ。 is_symbolとかわかりにくいよね!!!アンダーバーとかタイプしにくくて初心者向けじゃないし!!! 参照透明できれいな心
404 Blog Not Found:我々全員の知的生産性を10桁上げる方法 これはすごく重要なことが書いてあるエントリだと思うけど、一つだけ残念なのは、単なる夢物語か理想論のように読めるような書き方をしていることだ。 ダシにして申し訳ないが、典型的なLisperからみたかつてのid:higeponや、現在のid:amachangの「知力」は高いとはとても言えない。例えば遅延評価のことは、SICPを読めばちゃんと書いてある。そしてこれはまともなComputer Scienceがある大学なら、一番最初に使う教科書の一つなのだ。「まとも」に教育を受けた人なら、「遅延評価童貞が許されるのは、小学生までだよねー」とか言うかもしれない。 それは、この部分の「ありえなさ」がコンピュータサイエンスを勉強してない人には伝わらないからだ。 id:amachangという人は、本当に不思議な勉強の仕方をしている
ICEfacesとは、カナダのICEsoft Technologiesにより開発された、Ajaxに対応したJSFベースのWebアプリケーションフレームワークである。MPL(Mozilla Public License)の下に公開されているオープンソースのプロダクトであり、ICEfacesのWebサイトからダウンロードできる(本稿執筆時の最新バージョンは1.6.1)。 Ajax対応のWebアプリケーションと言えば、JavaScriptによる開発が多くなるイメージを持つ方がいるかもしれない。しかし、ICEfacesの目標の一つは、JavaScript開発における困難や落とし穴を回避することにある。ICEfacesを用いると、次のことが可能となる。 JavaScriptを記述しない、サーバセントリックなAjaxアプリケーション開発 従来のJSFアプリケーション開発と同じ感覚でのAjaxアプリケー
Unicode の文字列をソースコードに埋め込む方法 Unicode の文字列をソースコードに埋め込む場合、直接 UTF-8 などで文字列を書く方法と、\uXXXX などのようにエスケープして表記する方法があります。後者の方法についてまとめてみました。 \uXXXX 形式の場合 Java, JavaScript, Python, C++, C (C99から) などの多くの言語では \uXXXX という表記 (universal character names) でUnicode の文字を文字列の中に埋め込めます。たとえば、「あいう」は "\u3042\u3044\u3046" となります。 \uXXXX で埋め込んだ文字がどのように解釈されるかは言語や処理系によって異なります。 gcc/g++ の場合、 -fexec-charset オプションで、実際に使う文字セット・エンコーディングを指
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く