sunday-labの日本語訳版です。英語版のXOOPS Cube関連記事を翻訳作業中...

ラベル Mac の投稿を表示しています。 すべての投稿を表示
ラベル Mac の投稿を表示しています。 すべての投稿を表示

2008年4月24日木曜日

RapidWeaver gives hints to us

私は多くの CMS を触ってきた…… XOOPS2 はもちろん、eZ pablish、TikiWikiそしてRapidWeaver。XOOPS2 は Nuke 主義を示している。 eZp は XOOPS2 の対極にあるページベースの主義。RapidWeaver は、バランスを示し、そして、大きなヒントを我々に与えてくれる。

X2 の問題点

XOOPS2 は、良いコアだ。なぜなら、モジュール開発者が、プログラミングに関して自由を約束されているからだ。この「自由」は、プログラマがコアとの接続性を考慮する必要がないことを意味する。コアは、モジュールの存在のみ管理する。コアは、コンテンツが何であるかを把握していない。そして、各モジュールが各コンテンツを定義している。

しかし、コアがコンテンツが何であるかを知らないことは、問題である。サイトオーナーはモジュールをサイトに配置することはできる。しかし、ページをサイトに配置することはできない。例えば、 pico の1ページの下に子供として pical を配置することは不可能である。それは、仕様であり制限である。

eZp のメリットとデメリット

個人的に、私は、 eZp のようなスタイルを「ツリースタイル」と呼んでいる。 eZp はまさに CMS である。サイトオーナーは、ルートノードの下のコンテンツとして新しいノードを作ることができる。同様に、サイトオーナーは現存するノードの下に新しいノードを追加していくことができる。加えることができる。これはファイルシステムに類似しており、直観的かつ柔軟な構造である。

ノードは、 eZp コアが定義するオブジェクトである。各ノードが、それぞれのテンプレート、総合的なアクセスコントロール、マルチ言語層、及び、汎用的な管理を利用することができる。汎用的な管理とは、サイトオーナーがノードを編集したり、移動させたり、削除できることを意味している。たとえ、そのノードが人間が直接コントロールするべきでない特別なノードであるとしても。

あらゆるコンテンツが、 eZp の定義するオブジェクトとしてコントロールされるべき、ということになっている。それは、メリットでありデメリットである。自由に静的ページを適用できることを知ったとき、あなたはツリースタイルの可能性に驚くだろう。しかし、あなたが XOOPS のようにフォーラムやブログをインストールしようとするとき、問題に遭遇する。

eZp は、オブジェクト(=ノード)としてコンテンツを扱う。

- 静的なページは、オブジェクトでありノードである。
- フォーラムは、オブジェクト(ノード)である。
- トピックは、フォーラムノードの子供ノードである。
- そして、返信はトピックノードの子供ノードである。
- 同じくエントリは、ブログノードの子供ノードである。
- そして、コメントとトラックバックは、エントリノードの子供ノードである。

あなたのサイトがフォーラムの 344 個のメッセージと、 36 個のエントリおよび 2056 個の SPAM コメントを持つとするならば、あなたのサイトのツリーは非常に多くのノードで複雑な構造になる。私は、私のプロファイルページの粒度と、バイアグラを売り付ける SPAM コメントの粒度が等しいとは思わない。

あなたはすべてのコンテンツを eZp のノードおよびオブジェクトとして扱うことができるので、ブログのコメントノードをフォーラムに移動させたり、コメントノードをマルチ言語化することが可能だ。しかし、意味はない。ところがこの汎用管理を通じてしか、管理する方法はない。エントリやカキコミを削除する機能はなく、ノードを探し出して削除するのがデフォルトだ。静的ページやダイナミックな型管理は理想的だが、柔軟性と引き換えに、重さと定常作業の困難がある。

eZp は、非常に優れたプロフェッショナル用の CMS である。従って、それは、全ての XOOPS オーナーのためのベストではない。コアが定義するオブジェクトとしてコンテンツの全てを扱う「ツリースタイル」は、完璧なソリューションとはいえない。

RapidWeaver

RapidWeaver は、 Mac OS X のホームページ製作ツールである。基本的な方針は、RapidWaver は eZp に近い。あなたは兄弟ページや子供ページを現存するページに加えていく。 RapidWeaver は、 1 ページを認識する。従って、各ページを動かして、編集して、削除することは、可能である。



一方で、ブログ、アルバム、ダウンロードといったタイプのページ(eZp ではツリーが広がっていたケース)は、1ページとして扱われる。ブログは多くのエントリをもっている。しかし、これらのエントリはあくまでブログページが管理する内部的なデータである。 RapidWeaver は各エントリを1ページとしては認識しない。ブログページを他のページの下や兄弟としてドラッグで移動させることはできるが、ブログからエントリを取り出して、エントリだけを他の場所(たとえばコメントの下)にドラッグすることはできない。これは正しい。そんなことをしたい人はいないからだ。もちろん、あなたは、ブログ専用管理機能でエントリを編集し、削除することができる。



RapidWeaver は新型 BASE のための多くのヒントを我々に与える。もし Mac OS X を持っているなら、一度 30 日間のフリートライアルバージョンをチェックしてみてほしい。

2008年4月14日月曜日

Parallel programming for multi-core CPU

マルチコアCPUのための並列プログラミング」を読みました。執筆は CELL 関係ではおなじみの FIXSTARS

内容は初心者向けで、マルチコア時代の背景の話から始まり、 pthread & Win32 API の基本的な使い方から、徐々に高速化のための並列化へステップアップしていく形になっています。厚みはありませんが、データ並列、タスク並列、パイプライン並列などを説明しながら実践しており、はるか昔にスレッドを弄って以降、このあたりの基本が記憶の彼方にぶっ飛んでしまっている人 orz でも安心!な感じでした。巻末には発展編として OpenMP と、ヘテロジニアスの代表格として CELL にページが割かれています。

開発環境は Windows 版しか解説されませんが、 pthread 版に機種依存コードはなく、 Linux や Mac OS X でも実践できます。ただし、(僕も初めて知ったのですが) Mac OS X は sem_init() を実装していないらしく、これを利用したセマフォ関係のコードは Mac では実践できません! とはいえ、最近はセマフォは使わず、条件変数によるクリティカルセッション侵入制限が一般的なやり方になっているようなので、実害はないと思います。文中でも問題になるのは一例のみでした。

しかしちと高い…… orz

2008年3月22日土曜日

PowerPC Personal Computer

全ての主要ゲームコンソールは、 PowerPC 系を採用しています。 PowerPC の性能を引き出すコードを書くために、多くの特別なテクニックが存在しています。私達は、休日でも、 Appe の PC でそれを試してみることができました。しかし、それはもはや過去の話になっています。 ApplePC が PowerPC からインテルに変更した今、自宅で PowerPC プログラミングを実践する妥当な PC はありません。どうすれば、自宅で PowerPC やマルチコアプログラミングを試みることができるでしょうか?

自宅には古い mac mini、最新の iMac そして PLAYSTATION3 があります。

私の古い mac mini は、マルチコアではありません。しかし、それは、私のために役に立ちます。なぜなら、 mac mini は、小さく、軽く、PowerPC プログラミングを楽しむには良いからです。

現在の私の PC、 iMac は、デュアルコアであり、そして、マルチ‐コアプログラミングを実践するには良い環境です。しかしながら、 intel core duo は、主要なゲームコンソールに採用されていません。従って、純粋なマルチコアプログラミングの実践に使うことはできますが、ただちに仕事に直結するわけではありません。

PLAYSTATION3 は、有益であるかもしれません。 Linux をインストールし、ヘテロジニアス(非対称)マルチコアプログラミングを実践することが可能です。もちろん、この重たい linux 環境は PS3 SDK よりプログラムは面倒ですが、通常の PC はヘテロジニアスマルチコアを搭載していませんから、そこに選択肢はありません。幸いにも、私達は、 SPURS のような特殊なライブラリを除けば、全てのツールチェーンを得ることができます。

今にして思えば、Power Mac G5 のような PowerPC マルチコアは、非常に価値があります。

マルチコアプログラミングを探求するには、労働時間だけでは不十分です。私は、研究開発段階でもっともっと研究しておくべきでした。今、私達のチームは、研究開発段階を終了し、製品の開発に入っています。それは、良いですが、私自身は、もっとトライ&エラーのための時間を必要としています。自宅の PC はそういったことのために多少役に立つでしょう。

多くのエキスパート開発者は、ゲームにおけるマルチコア並列処理の道を見いだしています。しかし、私はまだ、そのような段階に至っていません。

2007年12月29日土曜日

mac mini came to home instead of iMac


(iMac の代わりに mac mini がやってきた)

話せば長くなりますが。

私には、電器店で働く友人がいます。彼は同郷であり、同じくカープファンです。この冬、この貧乏球団は、危機に瀕しました。2人のスター選手が、 FA 権を行使してカープを去ることを検討したのです。私は、それについて彼と議論しました。

私は二人の残留に賭けました。そして、もし、彼らのうち一人でもカープを去るなら、彼の店で高いコンピュータを買うと約束しました。その代わり、二人とも残留する場合は、彼の店では何も買わないという賭けでした。

そして、二人ともカープを去りました。神も仏もありません。

この約束によって、私は、コンピュータを20万以上で買わなければいけなくなりました。私は、19万8千円の iMac を買うことを伝え、彼の店のある隣県へ出掛けました。ところが、彼の店ではアップル製品を買うことができないことが明らかになりました。最初に言って欲しかったんですが……

彼との約束を守るために、私はiMac の代わりに20万円くらいする何かを買わなければいけませんでした。そんな家電製品はほとんどなく、私は HDD/Blu-ray レコーダを選択しました。数日後、予算が大幅にカットされたため、 mac mini を置き換えるために再び mac mini を買ったのです……

この新しい mac mini は、私の生活を改善するための十分な CPU を持っていますが、グラフィックス仕様は、 GMA 950 であり、わずか 64MB の共有 VRAM しかありません。また、シェーダモデルは 2.0 ですが、頂点シェーダはなく、ソフトウェアエミュレーションになっています。まぁ、来月から再来年の3月まで非常に忙しくなるため、少なくとも向こう1年間は、自宅で GPU プログラミングを追求することはできません。ですから、貧弱な GPU 仕様は、大きな問題にはならないでしょう。しかし、 Crysis のような豊かな PC ゲームをプレイすることができないことは残念です。