タグ

ブックマーク / 0xcc.net (20)

  • ある程度の年齢を迎えたプログラマが抱える悩み - bkブログ

    ある程度の年齢を迎えたプログラマが抱える悩み ある程度の年齢を迎えたプログラマが抱える悩みに、「若手のプログラマと比べて、どうやって価値を出していくか」という問題があります。これは言い換えれば「同じような生産性であれば、相対的に給料の低い若手のプログラマに置き換えられてしまうのではないか」という悩みです。 この問題のひとつの解決策は、プログラマ以外の仕事のポジション(たとえば管理職など)に移ることですが、他のポジションには向いていない、まだまだ現役でプログラマをやりたいという場合にどんな戦略があるか考えてみました。なお、後述するように、以下に挙げた戦略は相反するものではなく、組み合わせが可能です。 エキスパート戦略 この分野ではトップクラス、というレベルの専門性を身につけ、その分野に特化してキャリアを築くという戦略です。たとえば、ネットワークやセキュリティといった分野で一流と認められる専門

    hiro_y
    hiro_y 2010/09/22
    「若手のプログラマと比べて、どうやって価値を出していくか」
  • プログラミングのノウハウ

    プログラミングに関するノウハウは大きく 3つにわかれると思う。 (またもや強引な分類) 1. 普遍的なノウハウ アルゴリズム, データ構造, オブジェクト指向, ツールボックスアプローチ, λ計算, etc. 2. システムのノウハウ 言語処理系, 計算機アーキテクチャ, OS, ネットワーク, etc. 3. 雑多なノウハウ 恣意的なAPI, 恣意的な言語仕様, 各種ソフトウェアの設定, 各種コマンドラインオプション, ソフトウェアのインストール作業, 各種システムの仕様の違い, 「最新技術」, etc. プログラミングをする上では 3種類のノウハウすべてが多かれ少な かれ必要なのだけど、僕のような人は、ついつい 3番目の雑多なノ ウハウばかりが増えていってしまう。日々のネットサーフィンで得 られるノウハウは大抵これである。 雑多なノウハウというのは、「たまたまそうなっている」だけであっ

    hiro_y
    hiro_y 2007/09/16
    「雑多なノ ウハウばかりが増えていってしまう。日々のネットサーフィンで得 られるノウハウは大抵これである。」「問題は 3の海に溺れてしまうこと」
  • Unicode の文字列をソースコードに埋め込む方法 - bkブログ

    Unicode の文字列をソースコードに埋め込む方法 Unicode の文字列をソースコードに埋め込む場合、直接 UTF-8 などで文字列を書く方法と、\uXXXX などのようにエスケープして表記する方法があります。後者の方法についてまとめてみました。 \uXXXX 形式の場合 Java, JavaScript, Python, C++, C (C99から) などの多くの言語では \uXXXX という表記 (universal character names) でUnicode の文字を文字列の中に埋め込めます。たとえば、「あいう」は "\u3042\u3044\u3046" となります。 \uXXXX で埋め込んだ文字がどのように解釈されるかは言語や処理系によって異なります。 gcc/g++ の場合、 -fexec-charset オプションで、実際に使う文字セット・エンコーディングを指

    hiro_y
    hiro_y 2007/09/09
    Unicode、\u表記の使い方。
  • 誤った判定 - 学校では教えてくれないバッドノウハウ英語 #13 - bkブログ

    誤った判定 - 学校では教えてくれないバッドノウハウ英語 #13 学校では教えてくれないバッドノウハウ英語の13回は、誤った判定(間違った判定)に関する表現を取り上げたいと思います。 スパムフィルタによるスパムの判定や、メモリチェックツールによるメモリリークの判定など、コンピュータの世界では、ソフトウェアを用いて何かを自動で判定することがよくあります。 ここで問題となるのが、誤った判定です。スパムフィルタの例で言えば、「当はスパムじゃないのにスパムと判定された(大切なメールがスパムフォルダに行ってしまった)」と「当はスパムなのにスパムじゃないメールとして判別された(スパムが受信箱に入ってきた)」という2つの場合があります。 英語では前者の場合を false positive、後者の場合を false negative と呼びます。日語では偽陽性、偽陰性となりますが、基的に医学用語な

    hiro_y
    hiro_y 2007/05/16
    false positive/false negative。
  • 外に追い出す - 学校では教えてくれないバッドノウハウ英語 #12 - bkブログ

    外に追い出す - 学校では教えてくれないバッドノウハウ英語 #12 学校では教えてくれないバッドノウハウ英語の12回は、factor out を取り上げたいと思います。 factor out はコードレビューの際によく使われる「外に追い出す」という意味の表現です。たとえば、長くなりすぎた関数の一部分を外に追い出すときに factor out といいます。 例) Would it be too hard to factor out the inner loop into a separate function? その内側のループを別の関数として外に追い出すのは難しい? You should factor out the part common to foo() and bar(). foo() と bar()で共通している部分を外に出すべし。 たいていの場合、factor out はコードの

    hiro_y
    hiro_y 2007/04/28
    factor out、外に追い出す。
  • Dependency Injection の基本的なアイディア - bkブログ

    Dependency Injection の基的なアイディア Inversion of Control コンテナと Dependency Injection パターンを読みました。関連する事柄を広くカバーした、隙のない記事です。 ただ、割とボリュームがあるので、「Dependency Injection って結局何なの?」ということを手っ取り早く知りたい向きにはあまり向かないかもしれません。そこで、基的なアイディアを手短にまとめてみました。 Dependency Injection (依存性注入、DIと略) とはその名の通り、依存性を注入するパターン (テクニック) です。もう少し言葉を加えると、依存性を内部に抱え込まずに外部から注入する、パターンです。 Dependency Injection の基的なアイディアは「依存性を外部から注入する」です。 DIコンテナと呼ばれるフレームワ

    hiro_y
    hiro_y 2007/04/07
    DIについて簡単に。外部から依存性を注入するということ。
  • 特別扱いする - 学校では教えてくれないバッドノウハウ英語 #9 - bkブログ

    特別扱いする - 学校では教えてくれないバッドノウハウ英語 #9 学校では教えてくれないバッドノウハウ英語の9回は、special case ~という動詞の表現を取り上げたいと思います。 "special case" は通常、「特別な場合」という意味の名詞として使われます。しかし、英語も日語と同様に、名詞は動詞化する傾向があるため、"special case" は「特別扱いする」という意味の動詞としてもよく使われます。 例) I didn't want to special case IE4 but I had to... IE4 を特別扱いしたくなかったんだけど、避けられなかったよ。。 Would it be possible to special-case this file so that we don't have to worry about it? このファイルのことを気にし

    hiro_y
    hiro_y 2007/03/03
    special case/edge case/corner case
  • 数字に関する短縮記法 - 学校では教えてくれないバッドノウハウ英語 #8 - bkブログ

    数字に関する短縮記法 - 学校では教えてくれないバッドノウハウ英語 #8 学校では教えてくれないバッドノウハウ英語の8回は、数字に関する短縮記法を取り上げたいと思います。 2x, 10x, ... ソフトウェアの開発では、性能が2倍になった、などのように数字が何倍になったかを議論することがよくあります。このようなときに便利なのが数字の後ろに x をつける記法です。 例) C++ is 10x faster than Perl for this kind of application. この手のアプリには C++ の方が Perl より10倍速いよ This simpler code gained a 5x performance improvement. もっと単純なこのコードで 5倍の性能改善が得られたよ。 上の例は x を使わない場合、 ten times faster や five-

    hiro_y
    hiro_y 2007/02/17
    数字の表記方法。
  • デバッグに使えるサスペンス用語 - 学校では教えてくれないバッドノウハウ英語 #7 - bkブログ

    デバッグに使えるサスペンス用語 - 学校では教えてくれないバッドノウハウ英語 #7 学校では教えてくれないバッドノウハウ英語の7回は、"post-mortem", "tombstone", "culprit" を取り上げたいと思います。いずれもデバッグに関する議論で使える表現です。 "post-mortem", "tombstone", "culprit" の通常の意味はそれぞれ「検死」「墓石」「容疑者」です。どれもサスペンス映画に登場するような言葉ですが、ソフトウェア開でも、デバッグという一種のサスペンスの場面で使われます。 "post-mortem" は、プログラムの検死、すなわち、プログラムがなぜ死んだのかを原因調査すること、または調査結果を意味します。 例) We should perform a post-mortem analysis to make sure this doe

    hiro_y
    hiro_y 2007/02/07
    デバッグのときに使われる表現。
  • JavaScript でソートアルゴリズムを可視化 - bkブログ

    JavaScript でソートアルゴリズムを可視化 JavaScript でソートアルゴリズムを可視化するプログラムを書いてみました。元ネタは Jon Bentley による ソートアルゴリズムを可視化する Java アプレットです。 アルゴリズム 要素数 動作確認は Firefox 2, IE 7, Opera 9 で行いました。要素数は最大で200まで選べますが、かなり重くなるので遅いマシンで実行すると危険です。 English version is also available. ソースコード: sort-animation.js 解説 X軸が配列の添え字、Y軸が配列の要素の値を示しています。最初に要素がランダムに並んでいる配列 (値に重複なし) を作って、それを各種のソートアルゴリズムでソートする様子をアニメーションで表示します。 ただし、要素のあらゆる変更に対して毎回表示を更新し

    hiro_y
    hiro_y 2007/02/04
    各種ソートのアルゴリズムを視覚的に表示。
  • 問題を再現させる - 学校では教えてくれないバッドノウハウ英語 #5 - bkブログ

    問題を再現させる - 学校では教えてくれないバッドノウハウ英語 #5 学校では教えてくれないバッドノウハウ英語の5回は、"reproduce" と "reproducible" を取り上げたいと思います。バグ報告のやり取りの際に役立つ表現です。 エラーを再現させる、という意味での「再現させる」は英語では "reproduce" という動詞を使います。問題を再現させることはデバッグの基ですが、報告を受けたバグが手元では再現しないことはよくあります。そのようなときは "I can't reproduce the error" (そのエラー再現できんかったよ) と相手に伝えるといいでしょう。 例) I tried the same configuration you used, but couldn't reproduce it. お前と同じ設定を試してみたけど、再現しなかったよ。 A way

    hiro_y
    hiro_y 2007/01/14
    再現させる、再現可能な。
  • 動くようにする - 学校では教えてくれないバッドノウハウ英語 #4 - bkブログ

    動くようにする - 学校では教えてくれないバッドノウハウ英語 #4 学校では教えてくれないバッドノウハウ英語の4回は、"get it to work" を取り上げたいと思います。トラブルシューティングの場面で使える表現です。 "get it to work" の直訳は「それを動くようにする」です。簡単にいえば「動かす」です。典型的な用例は I can't get it to work で、「動かせねー!」というときに使います。 例) I tried all sorts of things but just could not get it to work. いろいろやってみたけど、動かせなかったよ。 I couldn't figure out if there was a way to get it to work. 動かす方法があるかわからんかったよ。 Do you happen to

    hiro_y
    hiro_y 2007/01/03
    get it to work、動くようにする/動かす。
  • もし必要なら - 学校では教えてくれないバッドノウハウ英語 #3 - bkブログ

    もし必要なら - 学校では教えてくれないバッドノウハウ英語 #3 学校では教えてくれないバッドノウハウ英語の3回は、"if need be" を取り上げたいと思います。"if need be" はソースコードのコメントの中でとりわけよくみられる表現です。 "if need be" の意味は「もし必要なら」です。同じ意味を表す "if necessary" という表現も一般的ですが、"if need be" の方が2文字分短いためか、"if need be" の方を好むプログラマも多いようです。 例) // Change the font size if need be. // フォントサイズを変更する、必要なら。 We could help improve the test coverage if need be. 必要ならテストカバレージの改善を手伝ってもいいよ。 この表現はメールでもよ

    hiro_y
    hiro_y 2006/12/12
    if need be(必要なら)、just in case(~だといけないから念のため)。
  • やっとくよ - 学校では教えてくれないバッドノウハウ英語 #2 - bkブログ

    やっとくよ - 学校では教えてくれないバッドノウハウ英語 #2 学校では教えてくれないバッドノウハウ英語の2回は、"Will do." を取り上げたいと思います。主語も目的語もなく Will と do とピリオドだけで構成される、テストでは 0点をもらいそうな表現です。 この表現に初めて出くわしたのは、私が出した "I think it would be good to handle this case (この場合も処理したらいいと思う)" といった感じのメールに対する返信の中です。 そのときの返事は "Will do." の一文しかなく、主語が省略されているため、肝心の「誰がやるのか」という点がはっきりせず、もしかして、 "You will do that (お前がやる)" だったらどうしようとかなり焦りました。結局、省略されていた主語は "I" で、 "I will do that (

    hiro_y
    hiro_y 2006/12/05
    Will do.、主語の省略、「やっとくよ」
  • こうすればうまくいくよ - 学校では教えてくれないバッドノウハウ英語 #1 - bkブログ

    こうすればうまくいくよ - 学校では教えてくれないバッドノウハウ英語 #1 宮川さんの人気企画「学校では教えてくれないエンジニアリング英語」に便乗して、私もソフトウェア開発に使えるフレーズ、とりわけバッドノウハウ的な場面において役立つフレーズを紹介していこうと思います。第1回は "do the trick" です。 do the trick は「こうすればうまくいくよ」というときに使えるフレーズです。日常会話にも使えますが、とりわけ「うまくいかない」「うまくいった」という場面が多く発生するソフトウェア開発では特に便利なフレーズです。 例) In that case, setting LD_ASSUME_KERNEL=2.4.19 should do the trick. それなら、 LD_ASSUME_KERNEL=2.4.19 をセットすればうまくいくはず。 Heh, this seem

    hiro_y
    hiro_y 2006/11/26
    do the trick、うまくいく/効き目がある。
  • いやなブログ - JavaScript ではてなブックマーク数を表示

    JavaScriptはてなブックマーク数を表示 はてなブックマークのブックマーク数は人気の指標として参考になります。このブログでは各エントリの末尾に、ブックマーク数を画像で取得する API を使って、ブックマーク数を表示するように設定しています。 ブログシステムのようにテンプレートを使える場合は、ブックマーク数を表示する HTML をたくさんのページに貼り付けるのは簡単ですが、そうでない場合はなかなか面倒です。そこで、ここでは JavaScript を使ってはてなブックマーク数を表示する方法を紹介します。 やり方 まず、次のような JavaScripthatena-bookmark.js として保存してウェブに置きます。 function makeHatenaBookmarkLinks() { return ("<a href='http://b.hatena.ne.jp/ent

    hiro_y
    hiro_y 2006/08/12
    JavaScript、ブックマーク数画像取得APIを利用。
  • ハッカー養成塾: 深追い、佳境、バッドノウハウ

    最終更新日: 2006-01-31 オープンソースマガジン2006年3月号に向けて書いた記事の元の原稿 です。 ハッカーウォッチャー 前回の武藤健志さんからバトンを受け取った高林です。ハッカー養 成塾の講師という大変な役目を軽々しく引き受けてしまいましたが、 筆者などは、むしろ出来の悪い塾生といったところが当です。 しかし、どういうわけか、これぞハッカーという人たちと知り合う 機会には恵まれてきました。稿では、彼らを観察して得られた知 見を元に、ハッカーの人物像について考察してみたいと思います。 ハッカーの人物像 ハッカーといってもいろいろな種類がいますが、筆者の周りのハッ カーに共通に見られる傾向に、以下の3つがあります。 「深追い」しまくり 「佳境」に入りまくり 「バッドノウハウ」に詳しいこと甚だしい 上記の 3点について、これから掘り下げていきたいと思います。 「深追い」は筆者と

    hiro_y
    hiro_y 2006/05/10
    「周りのハッカーを観察しながら気づいた共通項」
  • 読解いやな法則: 現実逃避の方が生産性が高い - bkブログ

    読解いやな法則: 現実逃避の方が生産性が高い 読解いやな法則の第4回です。今回は前回の「横着をするための労力を惜しんではいけない」に続く法則として「現実逃避の方が生産性が高い」を取り上げたいと思います。 現実逃避というと学生の特権のようなもので、社会人になってまで現実逃避がどうこうといっているはどうかという気もします。しかしながら、私の知人などをみるかぎり、社会人になっても現実逃避ドリブンの気質が根強く残り、業とは関係ないハックの方が高い生産性をあげているという例は相変わらず見受けられます。 現実逃避は、やらなければならない (ときに、あまり気乗りのしない) 事柄から逃れて、(相対的に) もっとやりたいことに集中して取り組むという状況を生み出します。やる気と集中力が重なるのですから、生産性が高いのは明らかです。 私の学生のときの先輩の一人は、論文を書き始めたかと思うとすぐに人を捕まえて雑

    hiro_y
    hiro_y 2005/11/03
    たしかに、「必ずしも生産的なことをするとは限らない」。でもうまくその逃避を使えればいいよね。
  • いやなブログ: 読解いやな法則: 横着をするための労力を惜しんではいけない

    読解いやな法則: 横着をするための労力を惜しんではいけない 読解いやな法則の第3回です。今回は、プログラマに当てはまりやすい法則である「横着をするための労力を惜しんではいけない」を取り上げたいと思います。 以前に、横着プログラミングという連載記事の第1回で次のような言葉を紹介しました。怠惰は発明の母であるという主張です。 私は必要が発明の母だとは思わない。私の意見では、発明とは怠惰から、おそらくはまた、まさに無精から生じるものである。面倒を省くために。 -- アガサ・クリスティ 一方、 Perl の作者である Larry Wall は「プログラマの三大美徳は怠惰・短気・傲慢である」と述べています。怠けるためにプログラムやドキュメントを書くのはプログラマにとって最大の美徳である、とのことです。 このような先人の知恵を元に「横着をするための労力を惜しんではいけない」という法則は生まれましたが、

    hiro_y
    hiro_y 2005/10/16
    横着をしようと努力して実はただの現実逃避になっている。…たまにあります。
  • 横着プログラミング 第1回: Unixのメモ技術

    最終更新日: 2002-03-18 (公開日: 2002-03-18) Unix Magazine 誌に 2002年1月号から 2003年2月号にかけて連載し ていた記事の元の原稿です。 横着プログラミングとは 私は必要が発明の母だとは思わない。私の意見では、発明とは怠惰 から、おそらくはまた、まさに無精から生じるものである。面倒を 省くために。 -- アガサ・クリスティ この言葉によると、どうも発明とは横着したいがために生まれるも のらしい。そう考えてみると確かに、私がプログラミングをする動 機は、横着するためのソフトウェアを作るため、という要素が大き い。突然、「うげー、面倒くせー」と叫んでプログラムを書き始め るのである。 そんなわけで、横着するためにプログラミングすることを私は勝手 に「横着プログラミング」と呼んでいる。連載では横着プログラ ミングをテーマに、横着のコツや私が作っ

    hiro_y
    hiro_y 2005/09/05
    changelogメモ、やってみようかな。
  • 1