タグ

ブックマーク / kzr-2.hatenadiary.org (42)

  • C#におけるヒープVSスタック問題、あるいはUnityにおけるスクリプト高速化。 - Radium Software

    個人的にC#はグルー言語であるという認識が強くて、パフォーマンスを意識したプログラミングの経験が無い。しかしUnityのスクリプトをC#で書いていると、そこを意識しなくてはならないケースに出くわすことがある。 最近あったのは、テンポラリな配列のアロケーションが大きなオーバーヘッドを生み出しているという状況だった。これは結局、配列の使用をやめてstructのメンバー変数にパックするよう変更したところ、パフォーマンスは著しく改善された。言い換えれば、テンポラリオブジェクトの所在をヒープ上からスタック上へと移すことによってオーバーヘッドが解消された、という格好だ。 問題となっていたのは、まあざっくりとこんな感じの、ゲームステートを保持するクラスだった。 public class State { byte[] cells = new byte[16]; public State() {} publ

    C#におけるヒープVSスタック問題、あるいはUnityにおけるスクリプト高速化。 - Radium Software
    hengsu
    hengsu 2010/11/30
  • Wikipediaの顔写真バナーの裏に潜む科学 - Radium Software

    The Information Is Beautiful - THE SCIENCE BEHIND WIKIPEDIA’S JIMMY APPEAL 最近、Wikipediaを閲覧していると、やたらとジミー・ウェールズの顔が出てきてウザ……いやいや、何と言うか、気になってしょうがない。この「創立者からのメッセージ」という形で顔写真を前面に押し出すスタイルのバナーは、とても良い効果があったようで、他のバナーと比較して高いクリックスルーレートや募金額を記録している。上のThe Information Is Beautifulの記事は、その結果をビジュアライゼーションしたものだ。 このビジュアライゼーションのソースとなっているのは、WikimediaのFundraising委員会がまとめているバナーテスト結果ページだ。Wikipediaでは様々なタイプのバナーを試験しており、このページには過去に

    Wikipediaの顔写真バナーの裏に潜む科学 - Radium Software
    hengsu
    hengsu 2010/11/26
    顔出しした方が寄付が多いのか。
  • Grand Central Dispatchでお手軽並列処理 - Radium Software

    Grand Central DispatchはMac OS X 10.6およびiOS 4に追加された新技術だ。 このGrand Central Dispatch(以下"GCD")は、プログラマー以外にその効用を説明することが難しい技術だ。漠然と「マルチコアプロセッサを効率的に使うための技術」と言っておくこともできるが、それじゃあなんでiOS 4に搭載されてんの?という話になってしまう。 これをプログラマー向けに説明するならば、次のような感じになるかと思う。 GCCを拡張してクロージャ的な機能を追加してみたら、非同期処理とか並列処理とかすげー書きやすくなったんで、ちょっとその辺りまとめてみました。 僕の個人的な意見としては、単にAppleのコンパイラー技術者たちがC言語ファミリー(C/C++/Obj-C)にクロージャを追加したかっただけなんじゃないかな、と考えている。 とりあえずマンデルブロ

    Grand Central Dispatchでお手軽並列処理 - Radium Software
  • openFrameworksでiPadアプリを作る - Radium Software

    openFrameworksは、なんだかごちゃごちゃっとしているけれど、使って楽しいフレームワークだ。Processingの思想を受け継ぎつつも、「もしProcessingがC++だったら、もっと色々なことが派手にできるぜ!」という奔放さを持ち合わせているような感じがする。 openFrameworksにはWindows版、Mac版、Linux版の他に、iPhone版が用意されている。iPhone版は少しビルド設定を変更すればiPadアプリの制作に利用することもできる。 上のビデオは、試しにopenFrameworksを利用して作ってみたiPadアプリの例だ。オーディオ入力レベルを算出し、それに比例した量で画面上のテキストを歪ませている。openFrameworksを使ってこんな感じのスケッチを作るのは非常に簡単だ。このスケッチのソースコードも60行程度しかない。 ごちゃっとしていて、ふわ

    openFrameworksでiPadアプリを作る - Radium Software
  • 足枷になったレコード会社 - Radium Software

    上の動画は今月初めに公開されたOK Goの新曲"This Too Shall Pass"プロモーションビデオだ。OK Goの曲に合わせてルーブ・ゴールドバーグ・マシン――いわゆる「ピタゴラスイッチ的なもの」が大アクションを繰り広げる。後半の盛り上がりが非常に印象的な作品だ。この動画は公開されてから猛烈な勢いで再生されていて,13日の時点で750万再生に達している。 この動画はそれ自体が非常に面白い作品だけれど,実はその裏には複雑な事情が潜んでいる。 簡単なまとめ OK Goが契約しているレコード会社(EMI)はPV動画の外部埋め込みを許可しない方針をとっている。しかし,外部埋め込みが無ければバイラル的な広がりは起こりえないということを知っているOK Goのメンバー達は,この制約を迂回するために,State Farmという保険会社と交渉し,この会社の広告という形でPVを制作することにした。制

    足枷になったレコード会社 - Radium Software
    hengsu
    hengsu 2010/03/15
  • Code Bubbles - 統合開発環境の新しい形 - Radium Software

    Code Bubbles: Rethinking the User Interface Paradigm of Integrated Development Environments 上の動画は,ブラウン大学のAndrew Bragdon氏らによって開発された統合開発環境"Code Bubbles"のデモだ。プログラミングと統合環境に興味のある人は,とにかく一度見てみて欲しい。とてもインパクトのあるデモだ。 現行の統合開発環境は,いまだにファイル単位でのエディットを基としており,それが様々な不便を生み出している。Code Bubblesはその不便を解消するべくデザインされた,まったく新しい形の統合環境だ。バブルと呼ばれる概念を導入することによって,ソースコードのナビゲーションを,より視覚的かつインタラクティブなものへと進化させている。 残念ながら現状ではこのデモが公開されているのみで,他

    Code Bubbles - 統合開発環境の新しい形 - Radium Software
  • 子どもがすべき50の危険なこと - Radium Software

    Fifty Dangerous Things (You Should Let Your Children Do) 作者: Gever Tulley,Julie Spiegler出版社/メーカー: Tinkering Unlimited発売日: 2009/12/11メディア: ペーパーバック購入: 10人 クリック: 943回この商品を含むブログ (2件) を見る この "Fifty Dangerous Things (You Should Let Your Children Do)" (「子どもがすべき50の危険なこと」)は, Kevin Kelly (Wired の創始者の一人として有名な編集者)のブログで紹介されていたものだ。このには,例えば「指を接着剤で貼り合わせてみる」だとか「9V電池を舐めてみる」だとか,そういった「あまり深刻ではない,ちょっと危険なこと」が50項目載せられて

    子どもがすべき50の危険なこと - Radium Software
    hengsu
    hengsu 2010/01/29
    危険を知らなければ、安全も教えられない。悪と善とに同じか
  • Ableton が Live の新機能実装の一時停止を表明 - Radium Software

    Ableton 社の CEO である Gerhard Behles は,CTO の Bernd Roggendorf と連名で,Live の新機能実装の一時停止を表明する記事を,同製品のサポートフォーラムに投稿した。投稿した記事では,Live 8 において既知のバグが数カ月間放置されていることや,イノベーションよりも品質を重視するはずの同社の姿勢が最近疎かになっていたことなどを詫びたうえで,以下の2つの宣言を行った。 全ての新機能の開発を停止し,開発チーム全体を不具合の対応に合流させる。この措置は無期限であり,結果は Live 8 の無料アップデートに反映されるものとする。 同様の問題が将来発生しないようにプロセスの改善を行う。 このような表明が行われることは,音楽ソフトにおいてはもちろんのこと,ソフトウェア一般で捉えても珍しいことだと思う。音楽関係のブログやフォーラムを見る限りでは,この

    Ableton が Live の新機能実装の一時停止を表明 - Radium Software
    hengsu
    hengsu 2010/01/07
    これはスゴい。色んな意味で
  • JavaScript によるオーディオ&ビジュアルプログラミング - Radium Software

    僕は JavaScript が好きだ。できるだけ多くのことを JavaScript で済ませてしまいたいと考えている。 以前は JavaScript では絵や音を扱うことができないという点がボトルネックになって,応用の幅を狭めていた。これが最近になると, Canvas 要素のおかげで絵を扱うことができるようになったり, Flash を代行役にすることによって音を出せるようになったりと,いろいろ状況が変わってきている。 そこで今回は,以前から機会があれば触ってみたいと思っていた Processing.js と SoundManager 2 を使って, JavaScript によるオーディオ&ビジュアルプログラミングに挑戦してみた。 Processing.js とは Processing.js は,ビジュアルデザイン向けプログラミング言語 Processing を模して作られた JavaScr

    JavaScript によるオーディオ&ビジュアルプログラミング - Radium Software
    hengsu
    hengsu 2009/11/13
    [JavaScript
  • iPhone アプリ開発の勉強 - Radium Software

    一日時間を確保し,以前からやってみたいと思っていた iPhone アプリの開発について勉強してみた。 今回,習作として作成したアプリは下のようなもの。ただ単に汚い持続音(いわゆるドローン音)を出すだけのアプリだ。 Casper Electronics の Drone Lab にインスピレーションを受けて作成した。名前は "Dr. Drone". iPhone の勉強を始めるにあたって,以下の2冊の書籍を参考にした。 iPhone SDK アプリケーション開発ガイド 作者: Jonathan Zdziarski,近藤誠(監訳),武舎広幸,武舎るみ出版社/メーカー: オライリージャパン発売日: 2009/09/07メディア: 大型購入: 37人 クリック: 773回この商品を含むブログ (58件) を見る ライトウェイト・プログラマのためのiPhoneアプリ開発ガイド 作者: 百瀬健太,古渡

    iPhone アプリ開発の勉強 - Radium Software
  • プログラミング言語の特徴を視覚的に比較する - Radium Software

    The Computer Language Benchmarks Game のページでは,計 32 個のプログラミング言語処理系のベンチマークを集計して,そのパフォーマンスを比較している。そして最近,このページに新たなプロットが追加された。単純にパフォーマンスだけの比較を行うのではなく,パフォーマンスと「コードの長さ」を関連付けて比較を行うというものだ。上はそのプロットから一部を転載したもので,全体はこのページで見ることができる。 このプロットでは,縦軸が処理時間(上にいくほど遅い),横軸がコードの長さ(右にいくほど冗長)に割り当てられている。このようなプロットを行うと,多くの言語は3通りの偏り方を見せる ― 左上(簡潔だけど遅い)に偏る「スクリプト系」,右下(速いけど冗長)に偏る「システム系」,そして,左下(速くて簡潔!)に偏る「理想系」だ。ちなみに,右上(遅くて冗長)に偏る言語は無い…

    プログラミング言語の特徴を視覚的に比較する - Radium Software
    hengsu
    hengsu 2009/10/01
    OCaml理想的?
  • ざっと見積もりテクニック - Radium Software

    The Endeavour - Three rules of thumb ダフの法則 π 秒は1ナノ世紀に相当する 1世紀を秒に換算すると 3.1556926 × 10^9 秒になる。この関係を覚えやすく整えたのが「ダフの法則」だ。一見,使いどころの分からない法則だけれど,「秒」を「年」に換算したい場合に役立つことがある。 例えば,1個のデータにつき1秒を費やす処理があったとして,今から10億個のデータを処理するとしよう。これを全部処理するには10億秒かかるというのは明らかなことだ。でもそれって,つまり何年ぐらいになるんだろう? ダフの法則を思い出せば,1世紀でπギガ個のデータが処理できることが分かる。つまり,10億個のデータを処理するには,ざっと見積もって30年ぐらいかかるのではないかという概算ができる。 ホッパーの法則 光は1ナノ秒間に30センチメートル進む 原文では「1ナノ秒間に1フ

    ざっと見積もりテクニック - Radium Software
    hengsu
    hengsu 2009/09/29
  • 無音の不可能性 - Radium Software

    The Frontal Cortex: The Sound of Silence 全く光の無い暗闇というものは,頑張れば比較的容易に作り上げることができる。では,全く音の無い「当の無音状態」というものは,作り上げることができるだろうか? Radiolab の司会者 Jad Abumrad は,無響室の中での無音状態の体験を語っている。それによれば,無音状態に置かれた耳は,その「音の無い状態」を受け入れようとせず,幻聴とも何とも言えない「音」を感じ始めるのだという。 4′33″ 無音のピアノ曲 4′33″ で知られる John Cage もまた,無音状態を体験するために無響室へと入っている。彼もやはり「音の無い状態」を体験することはできず,「高い音」と「低い音」の2つの音が聴こえたと述べている。この「高い音」は空気の分子が鼓膜を押すときの音であり,「低い音」は血液循環の音であるとの説明があ

    無音の不可能性 - Radium Software
    hengsu
    hengsu 2009/09/28
  • 抽象化されたゲームたち - Radium Software

    The Linear RPG Sophie Houlden の The Linear RPG は,最低限の構成要素によって構築された RPG だ。プレイヤーは直線の上を進むか戻るかすることができる。直線上を移動していると,勝手に戦闘が発生したり,勝手に経験値を得たりする。直線の各所に配置されている点は「町」で,跨ぐことによって体力を回復することができる。ストーリーは背景で勝手に流れているので,読んだり読まなかったりすればいい。 このゲームは,いわゆる「一道な RPG」の抽象的な表現とみることができる。非常にシンプルな内容であるにもかかわらず,それなりの達成感を得ることができるとの意見も存在する。 Progress Quest Eric Fredricksen の Progress Quest は,プレイヤーのステータス情報のみによって構成された RPG だ。プレイヤーはキャラクター作成を

    抽象化されたゲームたち - Radium Software
  • Impromptu: Scheme ベースのライブコーディング環境 - Radium Software

    Impromptu は Andrew Sorensen 氏によって作成されたライブコーディング環境だ。言語としては Scheme をベースとしており,それに映像や音楽を扱うためのライブラリ群と,リアルタイムにコードを記述し実行するためのエディット環境が統合されている。 実際に触ってみると,関数型言語とライブコーディングの親和性が,なかなか良いことが分かってくる。エディターの出来も良く,リアルタイムにコードを書きつつ実行するという作業をスムースに流れるようサポートしてくれる。 上のビデオでは, Impromptu のサンプルプログラムを参考にしつつ,簡単なアルゴリズム作曲のコードを組んでみた。ちなみに,ビデオ中に登場する "my:play" 等の関数は,作業を簡略化するためにあらかじめ用意しておいた関数なので悪しからず。 いくつかのデメリットもあるものの(最大の弱点は Mac OS 版しか存

    Impromptu: Scheme ベースのライブコーディング環境 - Radium Software
  • Arduino Pro Mini - Radium Software

    今週の「武蔵野電波のプロトタイパーズ」では,素の AVR ATmega を使って Arduino のスケッチを動かす方法について触れていた。 Arduino はそれなりの値段なので(一般的な Duemilanove で 3,200 円ほど),これを裸の AVR で代用することができれば,作品一つ辺りのコストをだいぶ抑えることができる(例えば ATmega168 なら 400 円で入手可能)。 ただ,裸の AVR を使うとなると, Arduino を使うのに対して少し手間が増えるし,いくつかの不安要素を新たに抱えることにもなってしまう。慣れればなんてことはないのかもしれないけれど…… 「Arduino を使いつつも,なるべくコストは抑えたい」という場合には, Arduino Pro を使うという手がある。 Arduino Pro は通常の Arduino と比較して, USB インターフェー

    Arduino Pro Mini - Radium Software
    hengsu
    hengsu 2009/08/11
    miniだと小さくて少し安いのか
  • 2009年版ハイプサイクルまとめ - Radium Software

    Advertising Lab: Hype Cycle 2009: Augmented Reality, 3D TV on the Rise ガートナーによる新興技術ハイプサイクルの2009年版レポートがリリースされた。詳しい内容はお金を払わないと読めないけれど,グラフになんとなく目を通すだけでも面白い。現時点において,どの技術が過大評価の時期にあり,どの技術が「枯れた」段階にあるかを,ある程度客観的な視点で見ることができる(あくまでもガートナーの視点であることは忘れずに!)。 このグラフには日米間の温度差も現れているように思える。例えば,日では電子書籍 (E-Book) は北米ほど盛り上がっていないし,3Dプリンティングに関してもそれほどホットな扱いを受けていないと感じられる。逆に,移動ロボットの分野は介護ロボットの需要などから海外よりも「ハイプな状態」にあるように思えるし,3Dフラッ

    2009年版ハイプサイクルまとめ - Radium Software
    hengsu
    hengsu 2009/08/11
    "現時点において,どの技術が過大評価の時期にあり,どの技術が「枯れた」段階にあるかを,ある程度客観的な視点で見ることができる(あくまでもガートナーの視点であることは忘れずに!)。"
  • Suckerfish - Arduino を使った MIDI シーケンサー - Radium Software

    Arduino を使った MIDI 機器の制御は簡単に実現できる。それじゃあ何か MIDI を使ったものを作ってみよう……と考え,手始めに作ってみたのがこれ。ミニサイズの簡易シーケンサーだ。こんな風にして使う。 画面下方にあるシンセ (Nord Rack) は自走する機能を持たず,外部から何らかの方法によって制御してやらないと音を出すことができない。このビデオでは,このミニサイズのシーケンサーを使ってシンセの制御を行っている。ついでに,シーケンサーから出力しているクロック信号に同期させるかたちで Electribe を並走させている。 4つのトグルスイッチはパターンを切り替えるための入力装置で,16進数的にパターン番号を指定する。残念ながら,このシーケンサーの中にパターンを作成するための機能は備えておらず,パターンはソースコードの中にハードコーディングする仕様になっている。 SMF ファイ

    Suckerfish - Arduino を使った MIDI シーケンサー - Radium Software
  • iPhone アプリの売り上げレポート - Radium Software

    iPhone アプリ業界においては独立系のデベロッパーが多いためか売り上げ情報について公開している所が多い。これらが様々な示唆に富んでいて面白い。 Pocket God GamesBeat - Pocket God offers case study of how to build a hit iPhone game Bolt Creative によるベストセラーゲーム Pocket God のレポート。単なる売り上げレポートというよりかはサクセスストーリー仕立ての構成になっており,読み物として面白い。この事例においては週間ペースでの細かなアップデートがプロモーション効果を上げていることが分かる。ゲーム業界のベテランがアーティストと組んで2人だけでベストセラーを作り上げた……というドラマチックなバックグラウンドも興味深い。 レポートの時点で 120 万の売り上げ。 Flight Cont

    iPhone アプリの売り上げレポート - Radium Software
  • 「売り切ったらフリー化」出版モデル - Radium Software

    Snarkmarket & Revelator Press: New Liberal Arts CT2: Innovative Publishing Model Snarkmarket と Revelator Press が出版した書籍 "New Liberal Arts" は面白いビジネスモデルを採用している。まず $8.99 の書籍を 200 冊だけ販売する。そしてそれが売り切れたら,オンラインで PDF 版の無料配布を開始する。 出版側としては,元を取るために最低限の数は値段を付けて販売したい。だからそれは物理的なとして販売する。元を取ることが完了したら,物理的な制約を受けないデジタルデータとして,無料で広く配布する。 読者側としては,昔ながらの印刷されたの形で読みたいという人や,物理的なを所有することで満足感を得たいという人は,最初の 200 人になればいい。また,その 20

    「売り切ったらフリー化」出版モデル - Radium Software
    hengsu
    hengsu 2009/07/12