タグ

*PROGRAMMINGと*Programmingに関するsatmatのブックマーク (222)

  • 本田雅一の「週刊モバイル通信」

    先日開催されたCEATEC 2007において、個人的にPC関連でもっとも興味を引いたのは、東芝の「SpursEngine」だった。SpursEngineそのものは9月20日に発表されていたチップだが、CEATECではノートPC「Qosmio G40」の筐体にSpursEngineを搭載。いくつかのアプリケーションを走らせていた。 直接的にはSpursEngineを用いることで、どんなアプリケーションが実現できるのだろうか? といった興味につながるだろうが、もう少し俯瞰して見ると、そこにはPCが進む分かれ道があるように思う。 それは大げさに言うならば、これまで頑なに拒否してきたPCへの異分子混入を、今後、受け入れていくのかというテーマである。PCの良さは言うまでもなくソフトウェアを活用することによる柔軟性。用途範囲を決める要素はパフォーマンスだ。パフォーマンスさえ上がっていくならば、汎用性と

  • http://www.hpcc.jp/sacsis/2007/cell-challenge/toolkit01/README.txt

  • 【レポート】CEDEC 2007 - リアルタイムの皮膚、顔面レンダリング技術をNVIDIAがリアルタイム実装 (1) 人間の皮膚の陰影処理モデルを考える | パソコン | マイコミジャーナル

    顔の皮膚の陰影表現というのはリアルタイム3Dグラフィックス、とくにゲームグラフィックスでの実装はかなり難しいとされてきた。それは人間の皮膚が光を反射、吸収、拡散するだけでなく、透明度は低いものの、皮膚下に浸透して散乱し再び出てくるという複雑な反射モデルになっているからだ。 この難しい人間の皮膚の陰影処理も、PS3,Xbox360といった最新ゲーム機や、今世代のDirectX 10世代のGPUでは、リアルタイムでもかなりレベルの高い表現ができるようになっている。 NVIDIAは、この皮膚の陰影処理についての最新技術についての解説を行った。 NVIDIAの最新スキンシェーダの解説を行った「高度なスキンシェーディング」セッション 人間の皮膚の陰影処理モデルを考える 人間の肌の陰影処理はスキン・シェーディング(Skin Shading)と呼ばれ、これを行うために特化したシェーダーをスキン

  • 260万人の朝の足を直撃 プログラムに潜んだ“魔物”

    週末の朝、260万人の足を直撃したのはプログラムに潜む“魔物”だった──10月12日朝、JR東日や東京メトロなどの8都県662駅で自動改札機が起動しなかった原因は、「レアケース」という改札機の不具合だった。 同日早朝、SuicaとPASMOに対応した16事業者662駅で、日信号が製造した自動改札機4378台(PASMO 470駅3050台、Suica192駅1328台)が起動しない不具合が発生。通常は駅構内のサーバから集中的に起動する仕組みだが、これが不可能に。各駅はサーバから改札機を切り離し、単体起動に切り替えるなどして対応。午前11時までに全面復旧したが、PASMOで約160万人、Suicaで約100万人の客に影響が出た。 日信号によると、現時点で判明しているのはこうだ。原因は自動改札機のICカード判定部の不具合。判定部には毎朝、サーバから起動用データの1つとして、「ネガデータ」

    260万人の朝の足を直撃 プログラムに潜んだ“魔物”
  • malloc - Wikipedia

    malloc(マロック, エムアロック)、calloc、reallocは、動的メモリ確保を行うC言語の標準ライブラリの関数である[1][2][3]。確保したメモリの解放にはfree関数を使用する。 mallocが使用する実際のメモリ確保機構には様々な実装がある。それらの性能は、実行時間と要求されるメモリの両面で様々である。 C言語は通常メモリを「静的メモリ確保」か「自動メモリ確保」で管理する。静的変数は主記憶上にプログラムが存在する期間中ずっと確保されている。自動変数(局所変数)は通常コールスタック上に確保され、対応するサブルーチンが実行中の間だけ存在する。しかし、いずれの方法も限界があり、確保できるメモリ量(変数のサイズ)はコンパイル時に決められてしまう。必要なサイズが実行時でないと判明しない場合、例えばディスク上のファイルから任意のサイズのデータを読み込むような場合、固定サイズのデータ

  • システムプログラム(第4週)

    電子・情報工学系 追川 修一 <shui @ cs.tsukuba.ac.jp> このページは,次の URL にあります. http://www.coins.tsukuba.ac.jp/~syspro/2005/No4.html システムプログラムのホームページ(2005年度) http://www.coins.tsukuba.ac.jp/~syspro/2005/ からもリンクが張ってあります. 今日の内容 時刻の扱い:時刻の表現,時刻の取得,時刻を操作するライブラリ関数 より高度な入出力:構造体の入出力,ファイルのランダムアクセス,メモリマップ方式の入出力 ディレクトリ:可変長構造体のファイル中の表現,ディレクトリ役割と構造 時刻の扱い 時刻の表現 UNIXにおける時刻表現の基は,協定世界時 (UTC) 1970年1月1日 00:00:00 からの秒数で表すカレンダー時刻である. カ

  • Manpage of GETTIMEOFDAY

    Section: Linux Programmer's Manual (2) Updated: 2008-08-21 Index JM Home Page roff page 名前 gettimeofday, settimeofday - 時刻を取得/設定する 書式 #include <sys/time.h> int gettimeofday(struct timeval *tv, struct timezone *tz); int settimeofday(const struct timeval *tv, const struct timezone *tz); glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照): settimeofday(): _BSD_SOURCE 説明 関数 gettimeofday() と settimeofday()

  • C言語: 実行時間測定の方法

    C言語において実行時間を測定する為の方法はいくつかある。gettimeofday, clock, getrusage, timesを利用する方法である。ここではこれらの方法について検証してみる。これは2005/12/30時点での情報であり、古い亊が考えられるので注意して頂きたい。さらに、内容のほとんどはmanを移しただけなので、正確な情報を得るためにそれぞれの関数のmanを見ることを強く推奨する。 System: Linux 2.6.12 glibc: glibc 2.3.5-1ubuntu12 gettimeofdayを使用する方法 通常はこの関数を使用するのをお勧めする。 gettimeofdayはSVr4, BSD 4.3準拠である。返り値の型はsys/time.hに定義されるstruct timevalで有る。

  • 「渡された仕様書を実装するサラリーマンプログラマ」の悲哀

    @ITの「業務用途でRubyを使う上での課題 」を読んでなんだか悲しくなった。 チーム開発でRubyを使ったときに今後起こりえる問題として、サン・マイクロシステムズ システム技術統括部 チーフテクノロジストの下道高志氏は、こう指摘する。「他人の書いたPHPコードのメンテナンスはできない。Rubyはどうかといえば、現状はいい。しかし今後“職業プログラマ”ではなく、渡された仕様書を実装する“サラリーマンプログラマ”が増えてくると、コードのスパゲッティ化は避けられないだろう」。 【業務用途でRubyを使う上での課題 − @ITより引用】 これは言語の問題ではなく、日のソフトウェア産業全体が抱える問題。以前にも「ソフトウェアの仕様書は料理レシピに似ている」というエントリーで書いたが、来のソフトウェア作りとは、絵を描いたり、音楽を作ったり、建物をデザインするのと同じ「創作活動」である。ドラッ

  • 【CEATEC】東芝,「Cell」搭載パソコンで3次元CG合成をデモ

    東芝は,「Cell Broadband Engine」の技術を使ったメディア・プロセサ「SpursEngine」を搭載したノート・パソコンを出展した。SpursEngineが,プロセサに対する負荷が大きい映像コーデックや映像認識の処理を担う。ブースでは,SpursEngineを使ってカメラから入力した顔の映像を,リアルタイムに3次元CGで合成するデモを紹介している。 SpursEngineは,Cellの演算コアであるRISCプロセサ「SPE」を4個と,MPEG-2およびMPEG-4 AVC/H.264に対応した符号化/復号化回路などを搭載している。SPEの動作周波数は1.5GHzである。このメディア・プロセサとXDR DRAMメモリを搭載した基板を,メイン基板のPCI Expressに接続している。 ブースで実演しているのは,3次元顔認識技術を使った「FACEMATION」というデモである

    【CEATEC】東芝,「Cell」搭載パソコンで3次元CG合成をデモ
    satmat
    satmat 2007/10/10
    話を聞いた限り,ホストPC->spurs engine->SPE(LS)というデータの転送があるらしい.APIが見たい.コーディングがめんどくさそう…
  • JavaScript から MML を再生する - JSMML - 2nd life (移転しました)

    http://coderepos.org/share/wiki/JSMML テキスケ: ActionScript日記 - サウンドのリアルタイム生成(4) で公開されている、Flash から MML を再生できるライブラリ、 FLMML が素晴らしすぎるので、JavaScript からも再生できるようにブリッジを書いてみました。ライブラリ名は JSMML(まんま)。 JSMML を使うと、SWF を経由して JS な API から MML を再生できるようになります。 <script type="text/javascript" src="JSMML.js"></script> <script type="text/javascript"> JSMML.swfurl = 'JSMML.swf'; // default // onLoad に関数を入れておくと、SWF のロード完了時に呼ばれ

    JavaScript から MML を再生する - JSMML - 2nd life (移転しました)
  • ひげぽん OSとか作っちゃうかMona- - Subversionの話

    Subversion を使うようになって数年が経ちますが、最近 svn diff/status/log/merge などのコマンドに熟達してきた。 気軽に ブランチを作る マージする コードを元のバージョンに戻す 問題となるコードを diff で調べる などができるようになって、作業効率が上がったり、こまめにコミットさえしておけば、あとからどうにでもなるので精神的にもかなり楽になった。 この「気軽に」ってのがとても重要。 以前だって、マージの概念やいつでも好きなバージョンに戻せること、diff を表示することが出来るのは知っていたし、たまに使っていたりもした。 ただ使う場合は コマンドをWebで調べる おそるおそる試してみる 失敗して check out しなおしで時間をロス などがありストレスがたまりがちで、結果的にこれら有用な機能を使うのを無意識に避けていたなと、振り返ってみると気づく

    ひげぽん OSとか作っちゃうかMona- - Subversionの話
    satmat
    satmat 2007/10/04
    ">たった数時間まじめにマニュアルを読み概念を理解し、主要なコマンドとオプションを覚えるだけでこんなに違うのだから、もっと早く気づくべきだった。"←これは開発をやってるとよく出会うジレンマ
  • Javaでコンパイラの基礎を理解する

    そもそもコンパイラの中ってどうなっているの? Javaでコンパイラの基礎を理解する(1) 普段、なにげなく使っているコンパイラ。中身を理解すると、プログラミングへの意識が変わり、技術力もつきます! 開発者必見です

  • ハタさんのブログ : Javascriptによる大規模開発の覚え書き。高速化編

    前回書いた「Javascriptによる大規模開発の覚え書き」が凄いことになってました。 今回は、省略した「5.高速化せよ」について書きます。 僕にとってjavascriptは非常に高速な言語です。それは何が高速か 開発速度が高速である 開発速度、及びそこに至るまでの修得速度はとても高速です。動的言語を上手く操る開発者はもちろん、開発に不慣れな(言葉が悪いけど)新人達でさえ「動く」モノをサクっと作ってしまえる。 また、プラットフォーム(? というかブラウザ)が広く普及しているので、ググればスグに問題解決もできる。 それにローカルで簡単に作れる。javascript、それは動作環境を含めて高速です。 高速にUI操作ができる(UI操作が非常に簡単である) swingとかでUI操作をするには多くのオブジェクト操作をしなければならないけど、javascript(もといDHTML)は非常に簡単に

  • アラインメントの大きなメモリ領域を確保する方法

    YLUG の 「第67回カーネル読書会 (glibc malloc について)」の ビデオで, 「mmap()/munmap() を使って 1MB アラインされたメモリ領域を得る方法」 が紹介されていた.発表者の kosaki さんは, その方法を知って「腰を抜かした」と言っていたが, 私は1985年頃に同じようなことを考えたことがあるので, 出しゃばってここで整理・解説しておこう. 「同じようなこと」といっても,当時 mmap()/munmap() を使ったわけではないので, 以下の説明は mmap()/munmap() に依存する話ではなく, 一般のメモリ割り当て関数 (malloc() など) でも通用する話である. また,mmap()/munmap() はいまだに使ったことがないので,以下の説明で mmap()/munmap() に関する部分は間違っているかもしれない. もしそうで

  • メニイコア、ヘテロジニアスコアのプログラミング言語

    会期:9月18日~20日(現地時間) 会場:San Francisco「Moscone Center West」 ●ヘテロジニアスマルチコアの時代へ 次世代以降のIntel CPUやこれを使うプラットフォームの特徴は、アクセラレータやGPGPUなどの異種コアの存在である。Intelは、PCI Expressを使ったGeneseoを提案し、Tolapaiでは、QuickAssistアクセラレータを搭載する。このようなアーキテクチャでは、従来型のプログラミングが行ないにくくなる。特に、通常のコア以外に演算機能のあるコアやアクセラレータを持つヘテロジニアスなシステムでは、複数の命令セットで記述されたプログラミングコードを扱う必要がある。 Intelがこれらの製品の出荷を開始すれば、これまで、特殊な用途にしか使われておらず、特定の開発者しか扱わなかったヘテロジニアスなシステムを一般の開発者も扱う機

  • ハタさんのブログ : Javascriptによる大規模開発の覚え書き

    未だに半年前のエントリにブクマされるみたいなので、もう少しjavascriptについて書いてみる。 今回は大規模化開発におけるJavascriptの注意点とかそういうの。当てはまらない環境の方もいます。(しかも基的な事だらけで大したことは書いてないです) ほぼリッチクライアントを主目的としたjavascripterとコードを対象とします。 どちらかというと、ライブラリを提供する側の視点から 1.ログを出力せよ あなたが書いたコードは遅い、と必ず言われます。なので言われる前から、自分の書いたコードの処理時間をログするようにしましょう。 次のような処理時間を計測するロガーを作ります。 var TraceLog = function (){ this.startTime = -1; var outer = document.getElementById('_outer'); if(oute

  • プログラミング言語 C の新機能

    プログラミング言語 C は 1990 年に ISO で規格化された言語です。その後、何度かの誤りの訂正や wchar_t 型の追加といった追補がなされた後、さらに使いやすくするための新しい機能が検討されてきました。そして、1999 年、ついに新しいプログラミング言語 C の仕様「ISO/IEC 9899:1999 - Programming Language C」(略称 C99) が 1999/12/01 付けで規格として出版されました。ここでは、その新機能を説明します。

    satmat
    satmat 2007/09/27
    C99における拡張について.
  • C99 - Wikipedia

    ANSIの標準化プロセス(C89)のあと、C言語仕様はC++が標準化の取り組みによって進化しているのと比べて停滞していた。1995年には標準追補を作成したが、これはC89への細かい修正および国際文字集合対応の追加であった。1990年代の後半にいくつかの訂正を経て、ISO/IEC 9899:1999 として1999年に発行した。この標準は"C99"と呼ばれ、ANSI標準としても2000年5月に受理。国際的なC標準は作業部会ISO/IEC JTC1/SC22/WG14で保守している。 C99にはさまざまな新機能が導入された。その多くはさまざまなコンパイラによってすでに拡張として実装されていた。 インライン関数 ファイルスコープでない変数宣言がブロックの先頭になければならないという制限の撤廃 いくつかの新しいデータ型。long long int、拡張整数型、明示的なブーリアン型、複素数型 など

  • [Cell] ダブルバッファリングを用いたDMA転送

    CellプログラミングではSPEプログラミングでの最適化テクニックが重要となる。CellにおけるDMA転送はLSとメインメモリの間をCPUを介さずに通信する仕組みである。今回は、DMA転送を最適化するダブルバッファリングというテクニックを試してみた。 DMA転送を最適化するテクニックとしてダブルバッファリングがある。 ダブルバッファリングでは、二つのバッファとタググループを使用し、DMA転送と計算を同時に行うことで処理時間を短縮することができる。 DMA転送に使用するバッファを2つ宣言する。 2^20という巨大なサイズを持つ配列に0~2^20-1間で初期値を代入する。PPE側で8つのSPEで処理を並列処理するようにデータを準備する。PPEの処理は次のようにする。 DMA転送に使用するため128byte境界にアラインした領域をヒープにメモリを確保する。配列の値を初期化する。配列を16個のチャ