タグ

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

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

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

    Code Reading ――― 他人のコードを読む! - やねうらおブログ(移転しました)
    advblog
    advblog 2021/04/21
  • 世間ではプログラマが足りていないらしい - やねうらおブログ(移転しました)

    最近、私のまわりの会社は求人難だと言う。まともなスキルをもっている人は給料の高い会社(いまならソーシャルゲーム系か)に転職してしまうので、もはや求人市場にはカスしか残っていないとその経営者たちは言う。 毎日、毎日、何十人も面接するが、とんでもないレベルの奴らが大挙して押し寄せてくる。プログラミング歴2年とか3年ぐらいの奴ら。純粋にプログラミングの勉強に費やした時間数で言うと500時間とか1000時間とかその程度の。ピアノで言ったらバイエルすら終わってないレベル。そんな奴らがほとんどだと彼らは言う。 ピアノのリサイタルで金取って演奏するのに、バイエルレベルの奴が来たらブーイングの嵐で金返せーって誰でも思うだろう。しかし、IT業界に至っては最近は開発環境が整っているので生産性が高く、そのレベルの人たちでも出来る仕事がなくもない。だからそんな無茶苦茶がまかり通っているのだ。 私は先日、CODE

    世間ではプログラマが足りていないらしい - やねうらおブログ(移転しました)
    advblog
    advblog 2013/08/11
  • 古くて新しい自動迷路生成アルゴリズム - やねうらおブログ(移転しました)

    最近、ゲーム界隈ではプロシージャルテクスチャー生成だとか、プロシージャルマップ生成だとか、手続き的にゲーム上で必要なデータを生成してしまおうというのが流行りであるが、その起源はどこにあるのだろうか。 メガデモでは初期のころから少ないデータでなるべくど派手な演出をするためにプロシージャルな生成は活用されてきたが、ゲームの世界でプロシージャル生成が初めて導入されたのは、もしかするとドルアーガの塔(1984年/ナムコ)の迷路の自動生成かも知れない。 なぜ私が迷路のことを突然思い出したのかと言うと、最近、Twitterで「30年前、父が7年と数ヶ月の歳月をかけて描いたA1サイズの迷路を、誰かゴールさせませんか。」というツイートが話題になっていたからである。 この迷路を見て「ああ、俺様も迷路のことを書かねば!俺様しか知らない(?)自動迷路生成のことを後世に書き残さねば!」と誰も求めちゃいない使命感が

    古くて新しい自動迷路生成アルゴリズム - やねうらおブログ(移転しました)
    advblog
    advblog 2013/01/25
  • ピアノの運指を自動生成するには? - やねうらおブログ(移転しました)

    一般的に言ってピアノの初見能力は訓練次第でかなりのスピードにまで向上する。一つの音符を1つの文字だと考えてみると想像しやすい。文字を読む速度は子供のころは遅いが、大人になるころには1分間に1000文字ぐらい読めるようになっているはずで、ピアノを10年か20年ぐらいやっていれば、1分間に1000音符ぐらい読めるようになっていても不思議ではない。 しかし、どれほど初見能力があってもミスタッチなしに正確に演奏できるか、そして、リアルタイムに運指を導き出せるかと言うと話は別である。 例えば、フランツ・リストは「どんな難曲でも初見で弾ける」と豪語していたが、ショパンのエチュードに至っては初見では弾けなかったと言われている。私が思うに、ショパンのエチュードは運指がすこぶる嫌らしいのだ。 知らない人のために説明すると「運指」というのはどの音符をどの指で押すのかということなのだが、運指は無数に考えられ、数

    ピアノの運指を自動生成するには? - やねうらおブログ(移転しました)
    advblog
    advblog 2013/01/11
  • 多次元メモリ空間プログラミング - やねうらおブログ(移転しました)

    新年会で酒を飲み過ぎて頭が痛くて眠れないので、新年の挨拶代わりにプログラミングの話でも適当に書き散らしておく。 以前、私の知り合いのラノベ作家である土屋つかささんが、「プログラミングのソースコードって当に1次元(plain text)でいいんですかね?」みたいなことを言っていた。 例えば、フローチャートは普通、二次元上に表現する。条件分岐(菱形の図形)が何箇所もあるようなフローチャートを描く場合、来のソースコードよりも流れが見やすいということは多々ある。それは何故だろうか? 「条件が成立したらソースコードのXXX行目に移動する」というような1次元的な移動より、「条件が成立したら下に移動、成立しなかったら右に移動する」というような2次元的な移動のほうが可視化する上ではわかりやすいというのがあるのではないかと私は思う。 こう考えると、ソースコードは最終的に直列化(1次元化)するにせよ、頭の

    多次元メモリ空間プログラミング - やねうらおブログ(移転しました)
    advblog
    advblog 2013/01/05
  • クロージャーだと苦労するんじゃ?(ダジャレ) - やねうらおブログ(移転しました)

    closureで継続(continuation)を実現する技法ってあるじゃないですか。 例えば次の記事は私が5年以上前に書いてますね。 C#2.0時代のゲームプログラミング(49) 〜 delegateを用いたcontinuation http://d.hatena.ne.jp/yaneurao/20070207 上の技法は私は10年ぐらい前にclosureを使い出したころに自力で発見しましたが、まあ、いまや常識ですよね。それで最近、それに似た話題があったので取り上げてみます。 ここで再度認識して欲しいのは、node.js の素晴らしさは「クライアント側で皆が使っているJavaScriptでプログラムが書ける」という部分などにあるのではない、という点だ。node.js がこれほど多くの支持者を得ているのは「来記述が煩雑になりやすい非同期処理をJavaScriptの無名関数を利用して書きや

    クロージャーだと苦労するんじゃ?(ダジャレ) - やねうらおブログ(移転しました)
    advblog
    advblog 2012/10/30
  • LionでNASが使えなくなった件 - やねうらおブログ(移転しました)

    OS X Lionを早速使ってみたのだけど、従来のNASが使えなくなっている。 つまり、TimeMachineしたければ、いまのところUSB接続の外付けHDDを買って直接Mac体に接続するか、TimeCapsuleを買いなさいってことになる。 TimeCapsuleは悪い製品ではないと思うのだけど、中を開けるとHDDが1台入っているだけなので、クラッシュしたときのことを考えるとバックアップとして使うのは怖い。信頼度で言えばDropboxのほうがマシじゃないかと思う。 Synology*1やQNAP*2など大手NASメーカーは問題は理解していて、早期に対応すると予定はあるようなのだが、FreeNASに代表されるようなOpenSourceのNASプロジェクトはいつ対応してくれるのだろう。 FreeNASが対応してくれたなら、テレビ録画用のWindowsマシンでVMWare×FreeNASとい

    LionでNASが使えなくなった件 - やねうらおブログ(移転しました)
    advblog
    advblog 2011/07/26
  • 容量無制限オンラインストレージSafeSyncを使ってみた - やねうらおブログ(移転しました)

    4,980円/年で容量無制限、ファイルの無限undo可能なオンラインストレージが登場した。その名もSafeSync。このクラウドストレージサービスを提供するのはウイルスバスターを販売しているトレンドマイクロだ。 なんかURLがウイルスバスター用のドメインだったり、「よくあるご質問」をクリックするとウイルスバスターのよくある質問のページに飛ばされたり、Webブラウザから転送できるらしいことが書いてあるのにそのサイトが見つからなかったり(まだSafeSyncのβ版のURLになっている)と、カオスっぷりがひどい。 SafeSyncのブラウザベースでアップロード/ダウンロードするためのサイトは↓だ。 http://safesync.jp/ タスクトレイのSafeSyncのアイコンを右クリックして「オンラインストレージ SafeSyncのWebサイトを開く」を選択すると開くことが出来る。 ※ 購入サ

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

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

    プログラマが1ヶ月でWebデザイナーに転身する方法 - やねうらおブログ(移転しました)
    advblog
    advblog 2009/03/18
  • 近代的タスクシステムの構築 - やねうらおブログ(移転しました)

    いつかに書こうと思っていたが、多忙につき、を書くどころではない状況なので、内容が風化する前に誰かの参考になればと要点だけでも書き残しておく。 いまの視点(2009年)で見たときに拙著(ASIN:4798006033)にて不足している部分を補足するためのものである。この自体はすでに絶版になりプレミア価格で取引されているが、もし参考文献を探しているなら、出来ればこのは買わずに次に出すゲームプログラミングのほう参考にして欲しい。 ■ タスクシステムの定義 ここで言う「タスクシステム」とは、ゲームプログラミングの教科書に出てくるものである。(cf. 「格的なシューティングゲームを実現するタスクシステム」 http://codezine.jp/article/detail/297?p=1 ) 「タスクシステム」は初期のビデオゲームで、V-SYNCをイベントトリガとして画面を描画するときに

    近代的タスクシステムの構築 - やねうらおブログ(移転しました)
    advblog
    advblog 2009/02/04
  • FF(16進数の掛け算)を覚えよう - やねうらおブログ(移転しました)

    最近、あるプログラマと話していて気づいたのだけど、彼は16進数の2桁と1桁との掛け算(FDh×5とか)が出来ない。やり方自体を知らないのだ。彼はWindowsの電卓を立ち上げて計算していた。 そのときは「プログラマでなくともこんなこと知ってて当然だろ!」と思ったのだけど、その後、10人ぐらいのプログラマに出来るかどうか聞いてみたが誰も出来ない。 結局、「普通は出来ない」のだと私は理解した。しかし16進数の掛け算はそんなに難しくない。私が子供のころには、まわりにFF(1×1=1に始まって、F×F=E1まで)を丸暗記している人がいっぱいいた。情報教育の一環として中学か高校で教えても計算の仕方ぐらい教えればいいのになぁと思っている。 前置きが長くなったが、以下にやり方などを書いておく。 ■ 16進数に馴染もう 16進数では、A = 10 , B = 11 , C = 12 , D = 13 ,

    FF(16進数の掛け算)を覚えよう - やねうらおブログ(移転しました)
    advblog
    advblog 2009/01/06
  • 僕は機械語を5才のときに覚えた - やねうらおブログ(移転しました)

    「中学生のころの作品」(→ http://d.hatena.ne.jp/yaneurao/20081224 )に次のようなコメントとはてブをいただいている。 ddd 2008/12/24 22:27 小学生でオール機械語のゲームを作るとは凄いですねー。 2008年12月26日donpyxxxコラム 小学生からマシン語 どちらも正しい認識ではない。私が最初に触ったマシンはTK-80で、電卓のお化けのようなハードで、これは機械語しか動かなかった。5才のときだ。オール機械語で初めてゲームを作ったのもその年だ。 こう言うと私がとんでもない天才に聞こえるかも知れないが、まったくそういうわけではない。たぶん多くの人が当時の事情を知らないので、いまだに「ネタじゃね?」と思う人が後を絶たない(若い人ほどそういう傾向がある)のだが、ネタでも何でもない。 復活!TK‐80posted with amazlet

    僕は機械語を5才のときに覚えた - やねうらおブログ(移転しました)
    advblog
    advblog 2008/12/26
  • Native Clientの仕組みはどうなっているのか? - やねうらお−よっちゃんイカはしばらく買わずにiPhoneだけに注力する男

    Googleが、Webブラウザ上でネイティブバイナリコードを実行する「Native Client」を公開した。 Native Client http://code.google.com/p/nativeclient/ Google Earth,Quakeなどがすでに動いているようだ。 これはすごい!ブラウザ上でX86バイナリを動かす「Native Client」 http://www.moongift.jp/2008/12/native_client/ サンドボックスで安全性確保、オーバーヘッド5% ブラウザでx86バイナリ実行、グーグルが新技術 http://www.atmarkit.co.jp/news/200812/09/nacl.html あと、サンプルのlife.ccにSDL_surfaceと書いてあるのでSDLの描画まわりが既に動いているのだろうから、今後、たくさんのアプリがN

    Native Clientの仕組みはどうなっているのか? - やねうらお−よっちゃんイカはしばらく買わずにiPhoneだけに注力する男
    advblog
    advblog 2008/12/11
  • Eclipse vs Visual Studio - やねうらおブログ(移転しました)

    JavaScriptの入門書(http://d.hatena.ne.jp/yaneurao/20081202)の記事のコメント欄で、次のような意見を頂戴した。 WebApp屋 2008/12/05 00:25 まさか、ASP.NETを推されるとは思いませんでした。 なにゆえ?? 言語はともかく、ほかのすべてがJavaの後追いしてるだけでは? yaneurao 2008/12/05 02:11 ASP.NETの利点はVisualStudioが使えるという一言に尽きると思いますが。 WebApp屋 2008/12/05 09:38 なるほど。 ビジネス環境の違いを理解しました。 業務アプリ屋にはそこはデメリットに感じます。 VisualStuidoの生産性はともかく、過去バージョンの保守でインストール等の手間が発生するので。当然ライセンスの管理等も含みます。 #Java系のIDEは固めておいて

    Eclipse vs Visual Studio - やねうらおブログ(移転しました)
  • いまさらC++ - やねうらおブログ(移転しました)

    私は最近はもっぱらC#なのでC++で書かなければならないシーンはめっきり減った。私がC++で書かなければならない部分はスピードが重視される部分のみなので、templateやインラインアセンブラを駆使したりはするが、その部分でそれほど込み入った設計が必要になるわけでもないので、boostのお世話になることは少ない。 そんな立場なのでいまさらC++の書籍を紹介するのも気が引けるのだが(有名どころは既に紹介してるし→http://d.hatena.ne.jp/yaneurao/20050514)、ビッグタイトルなので(そのわりに売れていないので)一応紹介しておく。 S・P・ハービソン3世とG・L・スティール・ジュニアのCリファレンスマニュアルposted with amazlet at 08.12.033世,サムエル・P. ハービソン ガイ・L.,ジュニア スティール エイアイビーアクセス 売り

    いまさらC++ - やねうらおブログ(移転しました)
  • iPhoneがUSBモデムになった日 - やねうらおブログ(移転しました)

    NetShareを使ってもいずれは充電が必要だから、それならWiFiではなくUSBで接続して、直接充電しながら(ノーパソからiPhone経由で)インターネットにアクセス出来ないか?と誰もが思っていたに違いない。 ついに、それをやった人が現われた。(法外な通信料をソフトバンクから請求されても私は責任を負いません。導入は自己責任でどうぞ。) SSH or WinSCP without wifi (via USB cable) http://www.hackint0sh.org/forum/showthread.php?t=48459 SSH to tether your iphone over USB cable to get your PC online http://alk2blog.blogspot.com/2008/08/ssh-to-tether-your-iphone-over-u

    iPhoneがUSBモデムになった日 - やねうらおブログ(移転しました)
    advblog
    advblog 2008/11/19
  • 指ピアノ分解してみた - やねうらおブログ(移転しました)

    指ピアノ(id:yaneurao:20080313)分解してみた。 ・指に装着するボタンスイッチへの配線は1に見えるが実際は二。(スイッチなのだから当たり前だが) ・指に装着するボタンスイッチは意外と出来が良い。 ・560Kのpull up用と思われるチップ抵抗が1つ使われているだけで、あとはICが(おそらく)1つだけ。 ・ICはエポキシ樹脂で固められていて何かわからない。 ・ボタン型電池2つで駆動。 wearableなスイッチが5つで530円。電子工作の部品としてみれば高くはないと思う。もう1冊買ってくることにする。 このボタンスイッチをflashマイコンにつないで、wearableキーボードなんか作ると楽しそうだ。 ところでこの指ピアノ、再生される周波数が当のドレミとは違うんだが、こんなものを子供が使うと音感のおかしい子になってしまうと思う。周波数が合ってないのは、低コスト化のた

    指ピアノ分解してみた - やねうらおブログ(移転しました)
    advblog
    advblog 2008/03/14
  • FPGAで作るコンピュータ将棋 - やねうらおブログ(移転しました)

    FPGAは、ひとことで言えばプログラマブルな論理回路である。簡単に回路構成を変更できるうえに、最近のFPGAはLE(Logic Element)が多いので、CPU自体を作ってしまうことも出来る。 1chip MSX*1にもFPGAが用いられている。PC-8001*2やX1*3、MZ-700*4を作った人もいる。 特定の処理に関しては現代のプロセッサよりも高速に実行できる可能性があり、「FPGAで××する」という内容の論文が近年増えてきている。こういう論文はお手軽(?)だし、それでいて新規性があって、現在のパソコンでは到底実現できないことが実現できるのだから、価値もあるのだろう。「FPGAで××する」という論文はうんざりするほど読んだという人もいるのではないか。 FPGA用の言語としては、VerilogHDLかVHDLが一般的で*5、C/C++などが使えるプログラマならすぐに習得できるだろう

    advblog
    advblog 2008/02/16
  • 1