AJAXを活用したWebインタフェースの作成ツール ZK

 Webブラウザー上で動作するユーザー・インタフェースが、デスクトップ・アプリケーションでイベント駆動インタフェースを作るときと同じように簡単に作れたら――この夢を実現するために作られたのがAJAXツールキット ZK だ。ZKが作るユーザー・インタフェースはXMLを使って定義し、Javaを使ってWebアプリケーションの機能を実装する。データバウンド・コントロールに対応しているため、Javaオブジェクトを変更したからといってユーザー・インタフェースのフォームを変更する必要はない。

作例から学ぶスクリプト作成のコツ [6/27更新]

 面倒な作業を繰り返し行っていることに気が付いたとき、多くのユーザーはその作業を肩代わりしてくれるツールがないか探すことだろう。しかし、出来合いのツールが自分の要求に完全にマッチするとは限らない。そこでそのような場合は、OSSの精神に則り「無いものは自作する」というのはどうだろうか。プログラミングの経験がなくても、シェルスクリプトなら普段利用しているコマンドを組み合わせて比較的簡単に作ることができる。あるいは、これを機に何かスクリプト言語を学んでみるのよいだろう。以下で紹介する記事は、あなたがスクリプトを作成するときに、有用なヒントを与えてくれるはずだ。

Pythonを用いたCGIスクリプティング入門

 Web開発者にCommon Gateway Interface(CGI)スクリプティングについての質問をすると、おそらく返ってくる大多数の回答は「Perlを使っています」というものだろう。このようにかなり以前からCGIスクリプティングの世界を席巻している言語がPerlであるのは確かだが、それ以外の選択肢がない訳でもなく、むしろPerlより優れているはずのツールもいくつか存在しているのである。よって本稿では1つのチュートリアルとして、高速かつ多機能でマルチプラットフォームに対応したPythonを用いたCGIスクリプティングの世界を簡単に紹介することにしよう。

sysprofでシステム全体の動作をプロファイリングする

 アプリケーションのプロファイリングを行うと、どの関数が最もCPU時間を消費しているかがわかる。つまり、最適化の労力はそうした部分のコードの高速化に集中させればよいわけだ。 sysprof を使えば、マルチスレッド化またはマルチプロセス化されたアプリケーションや、複数の部分から成る込み入ったサーバアプリケーションなど、マシンで実行中のすべてのアプリケーションをプロファイリングできる。sysprofは、それらアプリケーションの実行時にどれほどの時間がそれぞれのライブラリや関数に使われているかという情報を収集してくれる。

6自由度デバイスでのLinuxアプリケーション制御を可能にするlibsixdof

 6自由度(6DOF:Six Degrees Of Freedom)デバイスとは、3軸方向の移動に加えて、2つの軸に対する傾きおよび3番目の軸周りの回転に対応した入力装置を指す用語である。実際にこうした製品としては、SpaceNavigatorなどのジョイスティックを押し縮めたようなデバイスが販売されている。通常このようなデバイスの用途としてはコンピュータ支援設計/コンピュータ支援製造(CAD/CAM:Computer-Aided Design/Computer-Aided Manufacturing)ないしは3D系アプリケーションが想定されているのだが、適当なプログラミングライブラリさえ用意すればその他のLinuxアプリケーションでも利用可能になってしまうのだ。

GWT――Web構築に新機軸をもたらす開発ツール

 ページの再読込み不要でスムースな移動のできるGoogle Mapsや洗練されたGmailのルックアンドフィールに魅了されてしまったユーザは多いが、あなたもその1人ではないだろうか? そして、こうしたGoogleのユーザフレンドリな諸機能を織り込んだ独自のWebサイトを自分で作成してみたいが、必要なプログラミング作業を考えると気が滅入るという心理状態の方がおられたら、Google Web Toolkit(GWT)の利用を検討してみてはいかがだろう。

プログラマの生産性を高める新たな言語「D」

 CやC++が持つ性能の高さとRubyやPythonのような最近のプログラミング言語が持つプログラマの生産性の高さとを一つの言語が併せ持つことはできないのだろうか? Zortech C++コンパイラやDigital Mars C/C++コンパイラの作者であるWalter Bright氏は、正にその問いを自らに問いかけてC++の後継言語である Digital Mars D を作成した。Dは仕事を手早く片付けるために役立つ実用的なプログラミング言語で、ちょうど1年前に最初のリリース(バージョン1.0)が公開された。

2000億行もの負の遺産――COBOLコードの近代化はどのように進めるべきか

 プログラム開発者というものは最先端テクノロジを好むものであり、プログラミング言語、開発環境、開発ツールなどはいずれも最新のものを使いたがる傾向にある。実際、プログラミング関係の参考書やコンファレンスはどれも、Java、Ruby on Rails、C#、Ajaxなどのタイトルで目白押しだ。ところがコンピュータ業界においても“表沙汰にしたくない裏面”というものが存在し、現在社会の根幹を支えている多くのアプリケーションにおいて、COBOL、Fortran、Assemblerなどの旧世紀の遺物的コードが未だ使い続けられていることが最近新たな問題と化しているのである。

Alice:3Dアニメーションを作成しながらOOPを学ぶ

 大学でコンピュータ科学を学ぶ学生の多くは、C++やJavaなどのプログラミング言語を学び始める際に難しいと感じる。その主な理由の一つはLOGOなどの単純な中等教育向けの言語と、より高度なOOP(オブジェクト指向プログラミング)言語との間に大きな隔たりがあるためだ。そこでその隙間を埋めるためにCMU(カーネギーメロン大学)の研究者たちがAliceを開発した。Aliceは、3Dモデルを使用してコンピュータアニメーションを作成するOOP言語だ。

LinuxでのJ2MEアプリケーション構築法

 Java対応型の携帯端末をより効果的に活用したければ、Java 2 Micro Edition(J2ME)アプリケーション(別名ミッドレット)をLinux上で作成してモバイルプラットフォーム上で実行するという方法がある。こうした操作がいかに簡単に実行できるかを証明するため、本稿ではHelloWorldアプリケーションを作成して携帯電話で動かす具体的な方法を説明することにする。

CLIマジック:ディレクトリの一覧表示をカスタマイズする小スクリプト

 lsを実行する場合、ディレクトリの一覧から特定のファイルを探し出すと共に、そのファイルが存在するディレクトリの状況も確認したいことがある。lsの出力をgrepにパイプしてもよいのだが、それではディレクトリ全体を表示して条件にマッチするファイルだけ表示の色を変えたりはできない。今回は、そうした形でlsの結果を表示できる簡単なスクリプトを作成しよう。

GDB/GDBserverによるクロスターゲットのリモートデバッグ

 Linuxベースの組み込みシステムで動くアプリケーションのデバッグは厄介な仕事だが、理論上はGDB(GNUデバッガ)を使えば、ゆとりで片付けられるはずである。だが実際には、そのためのGDBのセットアップがやや難関となる。現実に作業が発生するし、克服すべき技術的な障害も存在するからだ。とはいえ、当て推量に頼らずプログラムを一定の方法で系統的にデバッグすることのメリットは、この作業にかかる手間を補って余りある。この作業で生ずる困難を軽減するヒントをいくつか紹介しよう。

「Python 3.0」は2008年3月にベータ版登場の見込み――3.0への移行支援を担う「Python 2.6」も同時開発中

 プログラミング言語「Python」のバージョンアップ版「Python 2.6」と「Python 3.0」の開発作業が同時並行で進められており、いずれも2008年に登場する見込みだ。Pythonの知的財産権の管理と普及推進を行うPython Software Foundationの幹部が11月21日に明らかにした。