タグ

ブックマーク / nagise.hatenablog.jp (21)

  • 結婚します - プログラマーの脳みそ

    昨年は葬式で終わるような年だったのだけど、年も明けたところでめでたい話を。私、このたび結婚することになりました。 結納とか結婚式とか この手の風習は地域性もあるから一概には言えないのだけど、親父が言うには、新郎とその両親、仲人が新婦の家を訪ねて、新婦の一族とお祝いをするのが結納、新婦とその両親、仲人が新郎の家を訪ねて新郎の一族とお祝いするのが結婚式だったそうな。*1 今では家もそれほど広くないし、自宅で結婚式の宴会をやるのも大変なので会場に新郎新婦の親族を一同に集めて宴会する形式になっちゃったわけですね。それに友人知人や仕事関係の人とか入り混じってターゲットがごちゃまぜでどうもてなしていいのか分らないような感じになっちゃってるんですね。 高いお祝い金を包んで退屈で窮屈な披露宴にいったことはないですか? そもそも披露宴とか友人を広く呼ぶと費用もかかるから簡単に呼べないんですよね。友人知人をど

    結婚します - プログラマーの脳みそ
    shozzy
    shozzy 2010/01/09
    おめでとうございます!しかもATNDつきか!
  • FizzBuzz ループ→再帰→Composite→Strategy→Visitor - プログラマーの脳みそ

    最近FizzBuzzをblogで書くといいよみたいな流れになっている(曲解)ので FizzBuzz - 文殊堂 と id:monjudoh が言ったからというわけではないのだけど、FizzBuzzとアルゴリズムの書き換えの話をしよう。 やや昔のエントリになるけどもJavaでFizzBuzzを再帰で作ったというエントリをみつけた。 public class FizzBazzSaiki{ public static void main(String[] args){ System.out.println(func(args.length>0?Integer.parseInt(args[0]):30)); } public static String func(int i){ if(i == 1) return "1"; System.out.println(func(i-1)); return

    FizzBuzz ループ→再帰→Composite→Strategy→Visitor - プログラマーの脳みそ
  • 「知っていれば簡単」の壁 - プログラマーの脳みそ

    初心忘れるべからず、とは言うものの身についてしまったものはなかなか忘れられないというのが実情。 箸の持ち方を知らない外国人のような箸の持ち方を演技してみてくださいと言われて出来る人はどれだけいるだろうか。できるようになってしまえば、のど元過ぎればといった感じですっかり出来なかったときの苦労を忘れてしまう。九九だって暗記してしまった後でなら簡単に答えを返せるけども、小学生の頃にはこれを必死で暗記しようと四苦八苦したわけだ。 なんでこのAPIを使わないの? プログラムにはいろいろなノウハウがあって、便利なAPIも沢山あるし、便利なプロダクトも沢山ある。知っていればそのクラスを使うだけ、メソッドを呼ぶだけということを、知らないがゆえに自作してしまう。これを車輪の再発明と言ってプログラミングの世界では忌避することとされる。*1 となると、ソースレビューなどをしているときに「なんで標準APIにある機

    「知っていれば簡単」の壁 - プログラマーの脳みそ
    shozzy
    shozzy 2009/08/16
    これも
  • プログラミング技能の深さと広さとサーチビリティ - プログラマーの脳みそ

    プログラミングの世界にはいろんな技術があるのだけど、深さと広さのどちらを広げるほうがよいのだろう? 広さの需要が多い 業務システム開発の世界というのは、お客さんが求める処理を行うためにはどうしたらよいかを提案し実装し運用する世界で、その多くは画期的なアイデアや難しいテクノロジーを必要としない。既存の技術を組み合わせて「やりたいこと」を実現できればそれでいい。簡単にできるなら、なおいい。 これは、知識の広さを問われる世界。「こういうことしたいんだけど」「XX使ってはどうですかね」そういう引き出しをたくさん持って、状況に合わせて提示するという能力。お客さんは凄いテクノロジーかどうかではなくて「やりたいことができるようになったかどうか」が大事なんだ。 そんなわけで、プログラムで飯をっています、という人は意外なほど技能が浅いことがある。浅い技術でいいからそれを提示するという需要が世の中にはたくさ

    プログラミング技能の深さと広さとサーチビリティ - プログラマーの脳みそ
    shozzy
    shozzy 2009/08/16
    自分より詳しい人と接する機会って重要ですね。それでも探索範囲は限られてるわけですが…
  • 生きるためのボーダーは存外低い - プログラマーの脳みそ

    生物の死亡率というと生まれた直後が最も高く、ある程度成長してしまえば低くなるというもの。もちろん天敵に捕されるなどの事故で一瞬で死んでしまうこともあるのだけども、怪我をしても病気をしてもそれが即座にゲームオーバーというわけではない。生殖に関して言えばトップのオスが数十パーセントを独占するような例もあるようだけど、トップ以外はばたばたと死ぬわけではなくて生きるだけなら生きていられる。 人間となると周囲の補助もあるので怪我や病気をした際も介護を受けれて、死亡率はそこまで上昇しない感じ。社会的に成功するのは難しくとも、生き延びるだけなら十億単位で成功しているわけだ。 ブラック企業もなかなかつぶれない 企業と言うのも生物に似て生まれた直後が一番死亡率が高い。数年続いた会社と言うのは、生きる術を身につけた会社とも言える。企業後3年も経つと廃業率は低くなる。*1 昨今の不景気で技術がろくにない奴隷商

    生きるためのボーダーは存外低い - プログラマーの脳みそ
    shozzy
    shozzy 2009/07/18
    たしかに。奴隷商人型IT企業は淘汰されてほしいもんだけど。
  • 技術を持たない人で金を稼ぐシステム - プログラマーの脳みそ

    「こんな銀行は嫌だ」 http://takagi-hiromitsu.jp/diary/20071117.html#p01 で語られているが、銀行にサービスを卸しているような会社にも ろくでもないところがあって、セキュリティが甘かったりする。 なんでこんなことが起こるのかといえば、 「IT業界の給与形態はどうあるべきか」のシリーズ http://blogs.wankuma.com/nagise/archive/2007/09/22/97584.aspx http://blogs.wankuma.com/nagise/archive/2007/09/25/97794.aspx http://blogs.wankuma.com/nagise/archive/2007/09/26/98123.aspx で語っている「労働の牛歩戦術」が利益を最大化する契約形態をとっているからだ。 頭数いくらの仕事

    技術を持たない人で金を稼ぐシステム - プログラマーの脳みそ
    shozzy
    shozzy 2009/07/05
    発掘ブクマ。まさにそういう世界だったな、SIerは。
  • ねじれの位置なエントリ - プログラマーの脳みそ

    僕のblogのエントリなんてものは、何かを見たり聞いたりして思い起こされたものを書きなぐったようなもので、ネタ元として提示するblogエントリは、おおよそ想起させる元になった程度のものであったりする。 なんせ、その人の書いたことをそのまんま同意したとして、同じ気持ちを文に綴ったら、劣化コピーにしかならないと思うわけで、ある種のオリジナリティを持った文でなければ書く意味もない。*1だからこそ、連想ゲームのように形を変えもはや元ネタとはなんらの共通点も見いだせないようなエントリを想起して書いたりするわけだ。 いや、価値観なんて大層なもんじゃない。その人の向いた、見据えている方向に、同じく視点を定めて何かを書くということのほうがよほど難しい。同期しつつ同調しないなんてのはどれほど難しいことだろう。たった5Kbyte程度*2の文字列に人柄の情報を圧縮しきることは無理だし、だからこそ同じ方向を見据え

    ねじれの位置なエントリ - プログラマーの脳みそ
    shozzy
    shozzy 2009/06/26
    このエントリ読んだら、「ねじれの位置からイノベーションは生まれる」なんて言葉が自分の脳みそのねじれの位置からアウトプットされた。うーんねじれてる。
  • はてブのシステム考をするなら - プログラマーの脳みそ

    はてなブックマークというか、システム全般というか「こうしろ」「ああしろ」という意見は多く聞くけども、人によって意見はバラバラ。全ての意見をホイホイ聞いていたらシステムは迷走を極めることだろう。それでもガツンといいたい人は絶えないのだろうけども。 システムを論じるときにありがちなミスのひとつは、自分のユースケースのみを前提にシステム改修案を考えると言うことだ。システムというのは設計者が意図した使ってほしい形で使われるんじゃない。ユーザが使いたいように使うんだ。その設計意図をあざ笑うように、ユーザは珍妙な使い方をするものだ。そして、携帯電話をカナヅチ代わりにして「使いにくい。どうにかしろ」みたいなことを言い出すものなんだ。 携帯電話をカナヅチにするなんて原始人ですか、と言ったところで話は始まらない。 なんせ、はてなブックマークをブックマークとしてではなく、ミニブログとして使いたいんだけどミニブ

    はてブのシステム考をするなら - プログラマーの脳みそ
    shozzy
    shozzy 2009/06/26
    「システムというのは設計者が意図した使ってほしい形で使われるんじゃない。ユーザが使いたいように使うんだ。」/道具のスコープが広ければ広いほどこの傾向は顕著になるね。
  • 戦争を終わらせるのに必要なのは1本の動画なんじゃないか? - プログラマーの脳みそ

    Javaを使うメリットが分からないという人がいたかいなかったかは知らないが、Java屋さんがガツンと言ったことは「道具を使うと便利だよ」という、とてもシンプルなメッセージだった。*1 僕がIDEの利便性を説いた時*2も「道具を使えばいいなんて」とdisる人がいたようだけど、道具を使うことで生き延びてきたホモサピエンスの一員としてその意見はいかがなものか。いや、道具を使えば便利なんてことはみんな分かってるはずだ。だって僕らはみんな道具を使う種族なのだから。 Javaが始祖という気もさらさらないのだけど、少なくともJava屋がease of developmentという用語を掲げたのは2003年に遡る。Javaの父と呼ばれEmacsの開発にも多大な貢献を果たしたジェームス・ゴスリン氏が「Emacsは死んでなければならない」と語った逸話もある。より高度な道具を使ってより簡単に、より効率よく開発し

    戦争を終わらせるのに必要なのは1本の動画なんじゃないか? - プログラマーの脳みそ
    shozzy
    shozzy 2009/06/17
    百聞は一見に如かずってやつですね。
  • 属人性?あれでしょ、その人じゃないとできないって奴 - プログラマーの脳みそ

    「属人性?あれでしょ、その人じゃないとできないって奴」 じゃぁ問題。個人経営の病院があって、医者は一人しかいません。診察や医療行為は属人性が高いでしょうか?低いでしょうか? 「その医者がいないとできないんだから属人性が高いんじゃないの」 違うんだよね。この場合は高いか低いかわからない。属人性ってのはそういう「その人じゃないとできない」じゃないんだよ。 「だって代われないじゃん」 いや、医師免許をもってる人なら代れるよ。属人性ってのはその仕事をやる技能や資格を持っているかどうかって話じゃないんだ。仕事のやり方が標準化されているかとか、マニュアル化されているかとか、引き継ぎできるかどうかって話題なんだよ。 「資格が必要でも引き継ぎができるなら属人性は低い?」 そうそう。 ソフトウェア開発の属人性の誤解 属人性の排除が狙うところってのは「その人しかやり方を知らないよ、秘密だよ」って作業をなくす話

    属人性?あれでしょ、その人じゃないとできないって奴 - プログラマーの脳みそ
    shozzy
    shozzy 2009/03/03
    「ウォーターフォールは巨大な設計をプロトタイピングもなしに一発で設計してしまおうっていう企み」「アジャイルもどきは属人性と言う観点では危険」「道具を使える人に特殊なスキルを要求するようになって」
  • IT業界の人材不足を憂いたり - プログラマーの脳みそ

    面接というのは、ある種のチューリングテストのような代物で、僕らはあるレベルの知性を持っているかを判別される。*1このテストにマルコフ連鎖のように用語に対する解答パターンを用意して臨むことでクリアしようというのが無謀な試みであることはほどなくわかることだろう。大学受験のようなペーパーテストをクリアできたからといって、いつまでもテストさえクリアできれば実態なんてどうでもいいなんて世の中を舐めていると辛酸を舐めることになってしまう。*2 「無精で短気で傲慢なプログラマ 技術者・SE・プログラマ面接時の技術的な質問事項で挙げられている問題に対して、全部答えを用意して暗記すればいいじゃん」 「お前頭いいな」 そう言って面接に挑んだ二人は、翌日青冷めた表情をしていた。 そんな単純な方法で挑んだところで、面接官にはすぐに化けの皮をはがされてしまう。一問一答であればマルコフ連鎖的な丸暗記でもチューリングテ

    IT業界の人材不足を憂いたり - プログラマーの脳みそ
  • 静的型では思いつくままに型を作る - プログラマーの脳みそ

    JavaLL仮説とか僕は主張していたりするんだけど、みねこあさんとの対話から見えてきた誤解のひとつは、「静的型は最初に正しく型を作らないといけない」というもの。 静的型付け言語では、静的な情報こそが「質」とされます。 (中略) だからプログラマは神様じみた万能さでプログラム(=運命)を完璧なものにしなくてはなりません。「アカシックレコード」とか、「ティターンズの犬どもめっ!」とか言いたくなります。けれど、人は神のようにはなれないから、そこで「完璧さ」についてよりすぐれたコンピュータ様のお力添えを戴きたくおもい、日々セッセと型について記述します。 という部分と 一方、動的型付け言語では(中略)プログラムは運用中にチョコチョコ繕いつつ使うモノになります。 の対比が、静的型は最初に型を設計せよ、と認識しているのではないかと思わせるんですね。 動的言語だろうが、静的言語だろうが、プログラムっての

    静的型では思いつくままに型を作る - プログラマーの脳みそ
  • 勉強会のおしらせ - プログラマーの脳みそ

    福井や金沢のときにも予告していた通り勉強会を開催します。 第十四回 第1回チキチキ 地方巡業withひがやすを飲み会in富山 とりあえず日付は暫定で4/4(土)を予定。セッションいくつかやってからひがやすを飲み会に移行する流れを考えています。4/3〜4/5で全日チンドンコンクールが開かれているので県外からの参加者は覗いてみてはいかがでしょうか。 スピーカーも募集中。うちの会社で交通費ぐらいは出せます。

    勉強会のおしらせ - プログラマーの脳みそ
  • JavaはLLだよ! - プログラマーの脳みそ

    JavaはLLなんだよ。 ΩΩ Ω<な、なんだってー! まぁそう言わず聞いてくれよ。そもそもLLは何かって話なんだけどさ。 Lightweight Language は「脳力」をより少なく消費する言語である 「脳力」はプログラミング活動中に消費される仮想的なパワーである 消費「脳力」の総和が少ないことももちろん重要だが、瞬間最大「脳力」が大きすぎるのもよろしくない Lightweight Languageとは - みねこあ ということらしいんだわ。ようするに楽にプログラミングできるんならLLなんだよ。 まぁまて。Javaみたいな静的な強い型付け言語は型を考えるのが面倒なんじゃー!って言いたいんだろ。ちょっと落ち着いて考えてみてくれ。 データ構造 プログラムってのはアルゴリズムとデータ構造というぐらいのことはあって、データってのは重要なわけよ。まぁアルゴリズムと比べるとどうも地味でデータ構造

    JavaはLLだよ! - プログラマーの脳みそ
    shozzy
    shozzy 2009/01/28
    「機械が処理しやすいように人間がちょっと歩み寄るだけで機械処理の恩恵を物凄く受けられる」 その通りですね!歩み寄れない、歩み寄りたがらない人多いけど。
  • ベーシックインカムでネットゲームを変える - プログラマーの脳みそ

    ネットゲームというのはひとつの新しい架空世界であって、その世界をどのように設計するのかというのは相応に難しい。現実世界の設計には政治家が頭を悩ませるわけだけども、ネットゲームの世界の神はプログラマである。世界を作りたければ、物理学だろうが経済学だろうが生物学だろうが使えそうなものはとにかく興味を持つと良いのだと思う。 ネットゲーム内の通貨の流通量 ファイナルファンタジーXIではネットゲーム内で通貨の流通が増え、大幅なインフレを起こした。Botによる自動操縦で通貨を大量に獲得する連中が出てきたことが一因とされる。 しかし、まず根的な話として、モンスターを倒すという「労働」によって無制限にゲーム世界に通貨が発行されるという世界を設計したことがそもそもの過ちであると言える。モンスター討伐に対してゲームシステムが通貨を発行するのであれば、それに対応して通貨を回収するシステムが必要となる。通常はゲ

    ベーシックインカムでネットゲームを変える - プログラマーの脳みそ
    shozzy
    shozzy 2009/01/26
    「行動していると腹が減る」風来のシレンみたいな感じですね。/あとは、カネを盗むモンスターとか。/MMORPGやったことないからハズしてるかも。
  • Tracに足りない4つの機能 - プログラマーの脳みそ

    ITの地殻変動はどこで起きているのか?: プログラマの思索を読んで思い出したことをまとめておこう。 TracなどのBTS(バグ管理システム)を用いたチケット駆動の開発というスタイルで、アジャイル開発を実践されている方も多いことだろう。 私がTracを使っていて感じた不足をここに挙げておく。 インシデント管理 顧客からの要望などのインシデント票と呼ばれるものと、開発の為のタスク(チケット)は別のものだ。私も当初はこれらを混在してつかっていたのだけど、顧客からの問い合わせや要望といったものと、実際の開発作業の間には大きな溝がある。 例えば「Tracにインシデント管理機能をつけてよ」と言われた段階で「インシデント管理機能を作成」というチケットをあげてはいけない。 XPで言うところの計画ゲームをする際のタスクカードと、TODOであるところのTrac上のチケットは分けた方がいい。アイデアとしては出た

    Tracに足りない4つの機能 - プログラマーの脳みそ
    shozzy
    shozzy 2009/01/22
    たしかに気になる。
  • SIerがソフトウェアの再利用ができない理由 - プログラマーの脳みそ

    ソフト開発の効率化は会計処理改革から(修正版) - プログラマーの脳みそではソフトウェアの再利用をしようよ、その価値をちゃんと管理しようよというごくごく単純な主張を行った。 そしてこれを現在のSIerができていないことにたいする言い訳はおおむね経営者が自社ライブラリの開発に予算を割きたくない理由 - 売り切れましたで述べられている通りである。 固定資産税 1億のプロジェクトが2あって、それぞれの予算から2000万、つまり合計4000万わりあてて「今後も使い回せるライブラリ」を作るとすると、当然、資産計上しなければならなくなる。 予算はすべて人件費とし(つまり全額が資産として計上され)たうえで、当期内にライブラリが完成した場合、法人税率を小さめに30%程度とみてもライブラリに対する課税額は1200万となってしまう。 経営者が自社ライブラリの開発に予算を割きたくない理由 - 売り切れました

    SIerがソフトウェアの再利用ができない理由 - プログラマーの脳みそ
    shozzy
    shozzy 2009/01/19
    基本的に「直接作業(プロジェクトに対する原価になる作業)」が善とされるので、それ以外の工数はなかなか認められない。PJT内でミドル作成って技はよくあるけど、往々にしてPJT側に引きずられた仕様になり…
  • ソフト開発の効率化は会計処理改革から - プログラマーの脳みそ

    あとで書きなおす。 プログラムをある程度の量書くと、いわゆる共通ライブラリ的なものが生まれてくる。個人ですら生まれてくるわけで、業務でシステム開発やってる会社となれば相応に使いまわされるプログラムというのが生まれている。しかし、ほとんどのSIerはこの使いまわされるプログラムをまったくもって管理できていないのが実態だ。 簿記と会計と財務の違いについてまとめてみた - GoTheDistanceのエントリが人気を博したが、このエントリではシステム開発における資産管理について述べたい。 費用と資産 ここでいう資産とは財務会計上の資産である。 財務会計上の資産(しさん、asset)は、勘定科目の区分の一つ。会社に帰属し、貨幣を尺度とする評価が可能で、かつ将来的に会社に収益をもたらすことが期待される経済的価値のことをいう。 資産 - Wikipedia ソフトウェアの資産の扱いについてはソフトウエ

    ソフト開発の効率化は会計処理改革から - プログラマーの脳みそ
  • 小さいモニタを使っているとフルスクリーン病にかかる - プログラマーの脳みそ

    web屋が主張する「リキッドレイアウト」に騙されないために - 鍵っ子ブログ関連。 うちのメインマシンは左側に24インチWUXGA(1920x1200)縦、右側に30インチWQXGA(2560x1600)を置いてデュアルディスプレイにしている。 うちにきた友人のうち何人かは右側の30インチのモニタでブラウザをフルスクリーンにして使う。 フルスクリーンにするメリットが全然理解できないんだけど、なぜかフルスクリーンにして使う奴が後を絶たない。フルスクリーンにしたいなら左側のWUXGA縦の方でフルスクリーンにすればいいのに。どうも自宅でブラウザをフルスクリーンで使っているからフルスクリーンにしてしまうらしい。ウィンドウで使うのが嫌という感性がついてしまうのかもしれない。

    小さいモニタを使っているとフルスクリーン病にかかる - プログラマーの脳みそ
    shozzy
    shozzy 2009/01/15
    すげぇw めっちゃ広大だなぁ
  • Eclipseからテキストエディタに戻れない10の理由 - プログラマーの脳みそ

    ソフトウェアはいろいろな作業の効率化に貢献してきた。プログラミングという作業も例外ではない。現代の高度なIDE(統合開発環境)はプログラマが単純でつまらない作業に時間を割かずに済むようにさまざまな機能を提供してくれる。 もうテキストエディタ+コマンドラインでのコンパイルなんて環境には戻れない。以下は自分が仕事でメインに使っているEclipseというIDEを使い続ける理由。 (追記)私は仕事では主にJavaの開発をやっている。C/C++/C#の開発では以下に挙げるメリットを享受できない部分があることを断っておく。 1. コードの自動補完 標準API+フレームワークのAPIで万単位のクラスが存在するので、暗記は無理。クラスに存在するメソッド名、フィールド名までの暗記はもっと無理。よく使う範囲なら暗記しているけど、typo -> コンパイルエラー -> 探して修正 の手間より、自動補完が断然効率

    Eclipseからテキストエディタに戻れない10の理由 - プログラマーの脳みそ
    shozzy
    shozzy 2008/12/22
    個人的には、「呼び出し階層を開く」が一番好きな機能。APIいじるときの影響範囲をさくっと確認できるので。