タグ

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

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

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

    zetamatta
    zetamatta 2010/09/22
    曰く『他のポジションには向いていない、まだまだ現役でプログラマをやりたいという場合にどんな戦略があるか考えてみました』―おぉ!だが、示された道はどれも険しい…
  • yak shaving で人生の問題の80%が説明できる問題 - bkブログ

    yak shaving で人生の問題の80%が説明できる問題 つい最近、 yak shaving (ヤクの毛を刈る)、という言葉を知りました (原典)。これは「一見無関係に見えるけど、真の問題を解くのに必要な問題を解くのに必要な(これが何段階も続く)問題を解くのに必要な活動」という意味の言葉です。 yak shaving は、ようするに「ある問題を解こうと思ったら別の問題が出てきて、それを解こうと思ったらさらに別の問題が出てきて…」ということが延々と続く状況を表しています。ちなみに、ヤクとは毛が長い、牛の一種です。 yak shaving は、以前に覚えた bikeshed と同じくらい便利そうな表現です。というもの、プログラムを書いていると yak shaving 的な状況がすぐに発生するためです。 たとえば、「Amazon のほしい物リストを CSV 形式に変換して Excel で読み

    zetamatta
    zetamatta 2008/06/21
    高林さんのサイトで久々に不真面目っぽい(失礼!)エントリきたーー
  • Namazu - 全文検索で文書の山に立ち向かう

    我々は文書の山に囲まれて暮している。なかでも電子メールは身近 な存在である。 とあるシンポジウムでこんな出来事があった。討論の話題が IT (情報技術) 革命におよんだときに、年輩の先生が次のような質問 を投げかけた。「現時点でさえ、私は電子メールの処理に困ってい るのに、これ以上 IT革命が進んだらどうなるのか」 この質問に対し、司会者はすかさず「すでにIT革命に乗り遅れてし まっている先生からの、たいへんいい質問です」と応え、場内は大 いに沸いた。おそらく自分たちも困っているからこそ、多くの人 が笑ってしまったのではないかと思う。 かくいう筆者も電子メールの処理に苦労している人間の 1人である。 筆者のメールボックスには約 5万通、計 200MBのメールが溜まって いる。ほとんどのメールは後から参照することはないが、まれに参 照したくなるときがある。たとえば、この問題の解決策は以前に誰

    zetamatta
    zetamatta 2008/02/11
    全文検索エンジン namazu の導入手引
  • strchr() ではまった話 - bkブログ

    strchr() ではまった話 標準Cライブラリに strchr() という関数があります。文字列の先頭から指定した文字を探すという単純な関数なのですが、先日、意外な仕様を知りました。 以下のコードを見てみます。 if (strchr("+-*/", c)) { // c は四則演算の記号かな? ... } この if 文は c が + - * / のいずれかの場合に条件が真となり、ブロック中が実行されます。…と、思いきや、実は条件が真になるケースがもうひとつありました。c が '\0' の場合です。 まさかと思って手元の Linux の man を見ると、文字列の終端のナル文字 ('\0') の扱いは明記されていません。 The strchr() function returns a pointer to the first occurrence of the character c i

    zetamatta
    zetamatta 2007/12/23
    「'\0'は文字列には全く含まれない」「常に"末尾"に含まれる」という二つの考え方があるが、前者だとstrchrは意味ねぇが、後者だと文字列の末尾位置を得るという使い方ができる。それを考えればstrchrの仕様は必然
  • Text Escaping and Unescaping in JavaScript(Unicode の文字列をエスケープする JavaScript)

    Notes No data is sent to the server (i.e. everything is done in JavaScript). Conversion from Unicode to other encodings such as Shift_JIS can be slow first time as it needs to initialize internal conversion tables. Surrogate pairs in UTF-16 are supported. Try inserting \uD840\uDC0B in the second form. Three-byte characters in EUC-JP are not supported. Links JavaScript Unicode Charts Try GNU Libidn

    zetamatta
    zetamatta 2007/10/16
    エスケープ総合!
  • JavaScript で MIME ヘッダをデコード - bkブログ

    JavaScript で MIME ヘッダをデコード MIME ヘッダのデコーダを JavaScript で書いてみました。BとQエンコーディング、およびUTF-8, Shift_JIS, ISO-2022-JP の文字エンコーディングに対応しています。

    zetamatta
    zetamatta 2007/10/08
    ふむ
  • Unicode の文字列をエスケープする JavaScript - bkブログ

    Unicode の文字列をエスケープする JavaScript Unicode の文字列を \uXXXX (UTF-16) と \xXX (UTF-8)、&#DDDD (数値文字参照)、Base64, Quoted-printable、 URL などの形式でエスケープする JavaScript です。

    zetamatta
    zetamatta 2007/10/06
    日本語文字を化けさせずにコードとして表現させたい時、便利
  • いやなブログ - スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl

    スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl スクリプト言語用の CUIのデバッガの使い方を簡単にまとめました。対象言語は Ruby, Python, Perl です。 私は C, C++ でプログラムを書いているときはデバッガ (主に GNU/Linux 上の gdb) を頻繁に利用します。しかし、スクリプト言語ではそれほどでもありません。これはおそらく次のような理由によります。 ビルドが不要なので printf デバッグが容易 (ある程度大きい C++ のプログラムではビルド時間が長いので printf の挿入はしんどい) 異常終了時にスタックトレースが表示される (Ruby, Python なら自動、Perl の場合は use Carp; $SIG{__DIE__} = \&Carp::confess; など) オブジェクトのインスペクトが簡単 (Ru

    zetamatta
    zetamatta 2007/02/12
    デバッガの解説
  • システム上のユーザのアイドル時間を調べる - bkブログ

    システム上のユーザのアイドル時間を調べる デーモンや cron から何か重い処理を走らせたいときに、作業中のユーザに迷惑をかけないよう、システムにログインして作業しているユーザがいるか確認したいときがあります。ここでは、GNU/Linux システムでつかえる方法をいくつか検討してみたいと思います。 ロードアベレージを調べる ロードアベレージは/proc/loadavg から調べられます。ロードアベレージが 1を超えるような状況では重い処理は走らせないほうがいいでしょう。 この方法の欠点は、システム全体の忙しさはわかっても、ユーザがログインして作業しているかどうかはわからない点にあります。たとえば、ユーザがテキストエディタなどで軽い作業を行っていた場合、ロードアベレージは低い数字になります。 端末のアイドル時間を調べる w コマンドを実行すると IDLE という欄に各端末のアイドル時間が表示

    zetamatta
    zetamatta 2006/11/05
    「ロードアベレージは/proc/loadavg から調べられます」――そ、そうか!
  • Binary 2.0カンファレンス2005 - bkブログ

    Binary 2.0カンファレンス2005 Binary 2.0 カンファレンス2005 を 2005年12月2日に開催します。 主催 - Binary 2.0 カンファレンス実行委員会 (協力 Shibuya.pm)日時 - 2005年12月2日 (金) 18:30-21:30 (18:00 開場)会場 - 神保町三井ビル 17F 株式会社インターネットイニシアティブ (IIJ) 大会議室参加費 - 無料事前登録 - 定員100名 (定員に達したので締め切りました)プログラム 内容・順番・時間などは予告なく変更する場合があります。 無事に終了しました。当日の模様は 発表資料とレポートをどうぞ。 プログラム概要 Binary 2.0 時代の到来 - 高林哲 10分プログラムはなぜ Mona OS で動くか?fork?何それ? - ひげぽん 15分Dynamic Programming La

    zetamatta
    zetamatta 2005/11/16
  • いやなブログ: 配列操作の比較表: Ruby, Python, JavaScript, Perl, C++

    配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ プログラムを書いていると、他のプログラミング言語の記憶とごっちゃになって、「配列の後ろに要素を追加するのは push だっけ、 append だっけ」などと混乱することがあります。特に Ruby, Python, JavaScript はコードの書き方が似ているので、この問題が起きがちです。 そこで、備忘録として、 Ruby, Python, JavaScript, Perl, C++ の配列操作の比較表を作りました。一番慣れている Ruby を基準にしています。間違いなどがあったらご指摘いただけると助かります。他の言語のもあるといいなあ。 Ruby (Array) Python (list) JavaScript (Array) Perl (@) C++ (std::vector)

  • (((foo))) in C++ - bkブログ

    zetamatta
    zetamatta 2005/06/09
    C++ で、不特定多数のオプションを渡す変態テクニック!?。『Foo& operator() () { return *this; }』とすれば、なんぼでもパラメータをつなげられる
  • pdumpfsによる定期バックアップのススメ

    最終更新日: 2004-03-30 (公開日: 2004-03-30) Software Design誌 2003年8月号 に掲載された記事の元の原稿です。 pdumpfs*1 は毎日のス ナップショットを保存するバックアップシステムである。稿では pdumpfs のインストール方法から使い方、仕組みまで幅広く紹介す る。 はじめに ここ数年、ハードディスクのクラッシュにあっていない。定期的な バックアップは欠かさずに行っているが、クラッシュが起きないた め、それが役に立つ機会はほとんどない。 こうなるとバックアップなんてしなくてもいいのではないか、とい う気もしてくるが、クラッシュしたときのことを考えると、やめる わけにもいかない。また、ディスククラッシュがなくても、誤って ファイルを削除してしまったときの保険という意味でバックアップ は大切である。 私の場合は、以前に、バックアップを

    zetamatta
    zetamatta 2005/04/03
    ハードリンクを利用してディスク消費を節約しつつ、毎日のスナップショットを取る方式の紹介
  • 1