タグ

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

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

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

    Code Reading ――― 他人のコードを読む! - やねうらおブログ(移転しました)
  • ソーシャルゲーム運営地獄 - やねうらおブログ(移転しました)

    実際に関係者から聞いた話なのだが、いま、底辺のソーシャルゲーム会社は大変なことになっているらしい。底辺じゃない会社もそれなりに大変なものかも知れないが、底辺の会社はそれどころの騒ぎではないようだ。 まず、プログラマーの力量に合っていない。 「ソーシャルゲーム(の開発を)舐めんな」みたいな話は大手の開発会社のプログラマーからよく聞くが、人数がある日突然何万ユーザーも増える。このへんの流入する人数の調整が利かない。 もともと何十万人規模の接続をさばくには、MMORPGなどのオンラインゲームよりもシビアであり(普通、MMORPGでもワールドがわかれていて、1つのサーバーの常時接続人数は数千人規模に収まるので)、大人数になったときにうまくスケールアウトするように設計するためには、ゲームシステム自体がそのへんを考慮してうまく練られていないといけない。 ところが、底辺ゲーム会社だと、社長がそのへんの理

    ソーシャルゲーム運営地獄 - やねうらおブログ(移転しました)
    rin51
    rin51 2013/09/17
  • 世間ではプログラマが足りていないらしい - やねうらおブログ(移転しました)

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

    世間ではプログラマが足りていないらしい - やねうらおブログ(移転しました)
    rin51
    rin51 2013/08/11
  • 定期的に繰り返し実行する簡単ではないお仕事 - やねうらおブログ(移転しました)

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

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

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

  • 美しすぎるプログラムを解読せよの巻 - やねうらおブログ(移転しました)

    #include <iostream> #include <cstring> using namespace std; long long dp[18][4][4][4][4][4][4][4][4][4][4]; #define FORN( n ) for ( int i##n = 0; i##n < 4; i##n ++ ) int main() { memset( dp, 0, sizeof( dp ) ); FORN( 0 ) FORN( 1 ) FORN( 2 ) FORN( 3 ) FORN( 4 ) FORN( 5 ) FORN( 6 ) FORN( 7 ) FORN( 8 ) FORN( 9 ) dp[0][i0][i1][i2][i3][i4][i5][i6][i7][i8][i9] = 1; for ( int r = 1; r <= 17; r ++ ) { FORN

    美しすぎるプログラムを解読せよの巻 - やねうらおブログ(移転しました)
    rin51
    rin51 2010/10/18
  • 倒産した会社から個人情報が流出する件 - やねうらお−よっちゃんイカを食べながら、ぬるぬる動くドール動画を制作中

    通販カタログを請求するのに名だとどこから個人情報が流出したのかわからなくなるのですべて偽名にしているのだが、下の名前を「珍古(ちんこ)」とか「雲虎(うんこ)」とかにしても普通にカタログが送られてくる。 あと住所も何番地の下にさらに1035のようにマンションっぽく見える番号を付与しておく。これは付与されていても郵便物はちゃんと届くし、これによりどこで情報が漏れたかがわかるのだ。 それはそれとして、数年前、架空請求の葉書が実家のほうに送られてきた。その送られてきた葉書に書かれている住所は、私が15年ぐらい前に使っていた番号が付与されているので、おそらく私がある雑誌の懸賞に応募したときのものだと思う。その出版社は倒産して、なんかその手の業者が債権回収をしたんじゃないかと思う。(100%の確証は無いので、その出版社名はここには書かないが。) 個人情報保護だの何だの言っても、結局こんな感じでその会

    倒産した会社から個人情報が流出する件 - やねうらお−よっちゃんイカを食べながら、ぬるぬる動くドール動画を制作中
    rin51
    rin51 2010/09/05
  • 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進数の掛け算)を覚えよう - やねうらおブログ(移転しました)
    rin51
    rin51 2009/07/13
    うわお。オレも計算機使ってる
  • 1