タグ

ブックマーク / yaneurao.hatenadiary.com (8)

  • Code Reading ――― 他人のコードを読む! - やねうらおブログ(移転しました)

    自分ではソースがすらすら書けるのに他人のソースをほとんど理解できないという人が居る。 他人のソースを理解できないという傾向は仕事でしかプログラムに関わっていないという人に顕著だ。仕事の過程であまり他人のソースを読むことはないから(他人のソースを読む作業は直接的な生産作業ではないから)、そういう能力が養われない。おまけに資料(ハウツー)は会社のお金で買ってもらえたり、理解の及ばない部分を前任者に説明を求めたり、あまつさえフローを書いてもらったりできる。はっきり言って生ぬるい。そういうことをする限り、コードを読む力が養われるはずがない。そういった環境に自分の身を投じること自体が、技術者としての自分をダメにしているというのに多くの人はそれがわかっていないのだ。 この、他人のソースを読む力というのは、うちの会社でやっているような移植作業だと特に重要視されるものである。今回のアルバイト募集でそのへ

    Code Reading ――― 他人のコードを読む! - やねうらおブログ(移転しました)
  • ボカロ(作るところから)はじめました - やねうらおブログ(移転しました)

    今日からボカロを始めることにした。もちろん、ボカロを作るところからだ。ボカロを含めて音源も自作する。楽器(ハード)も自作する。 音楽理論も自分で構築しなおす。自動作曲のためのプログラムも作る。そうして、やっと自分だけの音楽が完成する。とりあえず、目標はそこだ。 ■ ボカロを作るとは? 初音ミクに代表されるようなボーカロイドは、「あ」「い」「う」など、人間がそれぞれの文字を発声したものを録音しておき再生しているだけである。つながりが不自然なところは二文字、ときとして三文字つなげたファイルも持っている。ただそれだけである。私はそういうことをしたいわけではない。声を一から作るところからだ。 ■ スーパーファミコンのDSP 順序立てて話そう。 私は高校生のときにアーケードの麻雀の移植のために音声合成の処理を書いたことがある。*1 このプログラムは実際には世に出なかったわけであるが、私はそれ以前から

    ボカロ(作るところから)はじめました - やねうらおブログ(移転しました)
  • 定期的に繰り返し実行する簡単ではないお仕事 - やねうらおブログ(移転しました)

    いやー、この問題は当に難しい。難しすぎて、どうやって解決すればいいかいまだによくわからない。わからないので、ここに書いてみる。 最初、とあるお客さんのために「ひよこの餌やりプログラム(仮)」を作っていたんだ。開始ボタンを押すとひよこの餌が出てくる。たったそれだけのプログラム。 今回は、これを「定期的に実行する機能が欲しい」と言われた。 この要望を実現するのがすこぶる難しかったんだ。 「やねうらおってそんなプログラムすら書けないの?老害なの?」 とか言わないで欲しい。この問題、当に難しいんだよ! ■ 1度目のひよこの全滅 まず、この要望に沿って、私の会社のプログラマが当初、次のようなダイアログをつけたわけだ。 繰り返し実行のところにチェックを入れた場合、ここで指定された時間後にも繰り返し実行する。単位は分で指定する。1日ならば60×24 = 1440を指定する。そうすると、ひよこの餌やり

  • 心を亡くした四人のゲーマー - やねうらおブログ(移転しました)

    とあるMMORPGで「娘を隣村まで護衛しろ」みたいなクエストがあった。 ゲームに詳しくない人のために説明すると、“クエスト”とは達成すると経験値や報奨アイテムがもらえるイベントであり、普通に敵を倒すより効率的にレベルがあがるし、ゲームのストーリーや世界観が理解できるのでこれを優先的にクリアしていくのが常道なのだ。 今回のクエストでは娘が移動する経路に敵が出てくる。その敵をやっつけ続けなければならない。 私は、そのクエストが一人ではクリアするのが難しかったので、そのクエストをまだクリアしていない知り合いにお願いして四人でPT(パーティ)を組んでそのクエストに挑戦した。 いま仮にその娘の名前をビアンカだとしよう。 A「俺は右から出てきた敵を倒す係な」 B「じゃあ俺は左から出てくる敵を倒す係」 C「俺は敵にダメージをらったビアンカをヒール(回復魔法)する係な」 D「じゃあ俺もヒール手伝う。」

  • 美しいループ記法求む! - やねうらおブログ(移転しました)

    いま私は速度的に特化したプログラムを書かなくてはいけない。1%でも速いほうが望ましい。必然的に言語はC/C++となる。しかし、いまさらC/C++なんか使いたくない。もう少し洗練された記法が使える言語が好ましい。 なければ作ればいいやと思い、丸一日かけてC++のparserをC#で書いた。 C++風言語の字句解析と構文解析は出来るようになった。(C++ templateは除く。) あとは、いかようにも文法を拡張できる。この言語を仮にいまYaneCと名付ける。YaneCはコンパイルするとC++のコードを生成する。 それでいま悩んでいるのがループ記法だ。C#のようなforeachが欲しい。最初、次のように書けるようにした。 foreach var x in vect sum += x;ふむ、C#っぽくていい感じだ。C/C++のdefineマクロでforeachみたいなのを作ると次のようなものにな

    美しいループ記法求む! - やねうらおブログ(移転しました)
    mikage014
    mikage014 2009/12/02
    「美しいループ記法求む!」
  • 査読というお仕事 - やねうらおブログ(移転しました)

    ときどき私は書籍の監修をさせてもらうことがある。査読をさせてもらうことも結構ある。 査読のときは、私はお金はもらわないことにしているが、この手の原稿を書き慣れていない人の場合、1ページに5箇所ぐらいおかしいところがあるのが普通であって、300ページあれば、少なくとも1000箇所ぐらいは誤字やら脱字やら、説明の仕方がまずいところやら何やらがある。 下手すると自分でを書く何倍もの時間がかかるのが普通なので、これがノーギャラというのは、当に割に合わないが、まあ、それでいいが世に出れば社会貢献につながると思うし、自分の勉強にもなるので進んでやらせていただくことにしている。 私がどういう感じで査読をするか知ってもらうために、私が全く関わってもいないではあるが、C++テンプレートテクニックを例にとってみよう。 何故このを選んだかと言うと、著者の方はお二人ともC++標準化委員会のメンバーなのだ

    査読というお仕事 - やねうらおブログ(移転しました)
  • iPhoneアプリ開発の始め方 - やねうらおブログ(移転しました)

    1. Macを買おう Mac miniで構わないのでMacを買おう。Windowsでもtoolchainを自分でbuildすればiPhone用のバイナリを作れなくはないが、デバッグが実機でしか出来ない。 Mac用のiPhone SDKは非常に出来が良く、統合環境としても、シミュレータとしても優れている。無理してWindowsで開発しようとしないこと。これが開発の近道である。 2. Cocoaを勉強しよう iPhoneのアプリを開発すると言ってもiPhone専用のAPIはごくわずかであり、実際の開発の大半はObjective-CやCocoa,Quartz,OpenGL ESなどの勉強に費やされる。 Cocoa/Objective-Cのとして日語でお勧めなのは、「詳解 Objective-C 2.0」(左の) である。内容はかなり凝縮されている。もう少し説明を丁寧にしたほうが良かったよう

  • プログラマが1ヶ月でWebデザイナーに転身する方法 - やねうらおブログ(移転しました)

    サイトを構築していると、プログラマはWebデザイナーと共同作業をしなければならない。 しかし高度なRIAを実現しようとすると思っているようにWebデザイナーに素材を作成してもらうだけでもとても骨の折れる作業だ。 そこで、一層、「すべてのプログラマはWebデザイナーになればいいんじゃね?」と思った。 今回は、私の実体験に基づき、「プログラマが1ヶ月でWebデザイナーに転身する方法」というのを考えてみた。 ■ HTML,CSSを覚えよう まず、HTMLCSS。いくら私でもW3C( http://www.w3.org/ )のすべてに目を通せとは言わない。 ブラウザ間で挙動が違うのでそれぞれのタグがどのブラウザで使えるのか一覧がまず欲しい。手軽なのは詳解HTML & CSS & JavaScript辞典。このハンドブックは見やすいのでお勧め。また、よく使うタグに関してはすべて覚えよう。覚えている

    プログラマが1ヶ月でWebデザイナーに転身する方法 - やねうらおブログ(移転しました)
  • 1