タグ

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

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

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

    tenkoma
    tenkoma 2010/09/23
  • プログラミングの力を生み出す本 - bkブログ

    プログラミングの力を生み出す 知人がお勧めしていた『プログラミングの力を生み出す』を読みました。 読みはじめてすぐに、このは異色なプログラミングの入門書であることがわかりました。普通のプログラミングの入門書は「プログラミングとは」という序論が終わったら hello, world 的なものからコードを書き始めるものが多いと思うのですが、書の導入はまるっきり異なります。1章の目次は以下の通りです(カッコ内は私のコメント)。 1章 プログラミングへの導入 プログラミングことはじめ(なぜか例が x-y プロッタ) プログラミングの構造(なぜかフローチャート登場) データ(整数、文字列、論理型など) プログラミング言語の構造(コンパイラ、リンカの説明とか) x86 CPU の概要(レジスタの説明とか) GCC と GNUPLOT(なぜか GNUPLOT が導入に登場...) GNU アセンブ

  • yak shaving で人生の問題の80%が説明できる問題 - bkブログ

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

  • coLinux の開発版のスナップショット - bkブログ

    coLinux の開発版のスナップショット ひさびさにcoLinux (Cooperative Linux) をインストールしよう思い立ち、開発版のスナップショットを入れてみました。 まずはスナップショットのページから devel branch のバイナリをインストール。日の時点では Snapshot 20070708 of version 0.8.0 with kernel 2.6.17 が最新でした。 インストールしてすぐに気づいたのは、設定ファイルのフォーマットの変化です。以前はXMLだったものが、行志向の単純なフォーマットに変更されていました。 今回はネットワークに slirp を使うことにしました。以前にインストールしたときは TAPドライバを選択して、設定がなかなか厄介だったのですが (0.6.4より前の古いバージョンでは slirp は不安定だったようです)、 slirp

  • いやなブログ - 文字列操作の比較表: Ruby, Python, JavaScript, P...

    文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++ Ruby, Python, JavaScript, Perl, C++ の文字列操作の比較表を作りました。配列操作の比較表の続編です。間違いなどがあったらご指摘いただけると助かります。 Ruby (String) Python (str) JavaScript (String) Perl C++ (std::string)

  • http://0xcc.net/blog/archives/000145.html

    tenkoma
    tenkoma 2006/11/21
    一眼レフデジカメ
  • Binary Hacks - バイナリアン度チェック

    Binary Hacks 的な技術に精通したエンジニアのことを、専門用語で 「バイナリアン」と呼びます。 ここでは、みなさんのバイナリアン度を診断できるチェックリストを用意しました。 目次を見て、 「こんな内容はぬるい」と思った方も、 「バッドノウハウばっかり」 と思った方も、ぜひ挑戦してみてください。 診断には JavaScript が有効なブラウザが必要です。 問題は15問あります。 診断スタート

    tenkoma
    tenkoma 2006/11/21
    40点でしたorz
  • 自転車置場の議論 - bkブログ

    自転車置場の議論 人が集まると、なぜかどうでもいいようなことほど議論が紛糾してしまう傾向がありますが、このような現象のことを、FreeBSD のコミュニティでは自転車置場の議論 (bikeshed discussion) と呼んでいることを知りました。 この、「瑣末なことほど議論が紛糾する現象」はパーキンソンの法則というの「議題の一項目の審議に要する時間は、その項目についての支出の額に反比例する」という法則として知られています。 このの中で著者は、原子炉の建設のような莫大な予算のかかる議題については誰も理解できないためにあっさり承認が通る一方で、市庁舎の自転車置場の屋根の費用や、果ては福祉委員会の会合の茶菓となると、誰もが口をはさみ始めて議論が延々と紛糾するというストーリーを紹介しています。 このように、「瑣末なことほど議論が紛糾する現象」はパーキンソン氏によって見事に説明されているの

    tenkoma
    tenkoma 2006/10/24
    パーキンソンの法則
  • いやなブログ - PuTTYのフォントを「モトヤシーダ1等幅」に設定する

    PuTTYのフォントを「モトヤシーダ1等幅」に設定する PuTTY のフォントを「モトヤシーダ1等幅」に設定してみました。小さいサイズでの視認性は MSゴシックと同等に高く、文字を大きくしたときに断然きれいなのがいい感じです。 PuTTY (私は日語版を使っています) のフォントはデフォルトでは Terminal に設定されています。これは視認性の高いビットマップフォントです。 しかしながら、ビットマップフォントゆえに、私がよく使う「最大化されたときだけフォントの大きさを変更する」という機能と相性が良くありません。この機能はウィンドウを最大化したときに、端末の桁と行を増やす代わりにフォントを大きくするもので、PuTTYの設定の「ウィンドウ」の欄にあります。

    tenkoma
    tenkoma 2006/09/15
    コンソール
  • プログラミングのノウハウ

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

  • Ruby, Pythonで並列に逆引きを行う - bkブログ

    Ruby, Pythonで並列に逆引きを行う ウェブサーバのログを解析するときなど、IPアドレスからホスト名を引く処理 (逆引き) を大量に行いたいときがあります。DNS への逆引きの問い合わせには場合によっては数秒待たされることがあるため、大量の IP アドレスをひとつづつ順に処理していくとかなり時間がかかります。 記事では Ruby または Python でマルチスレッドで並列に逆引きを行う方法を紹介します。 Ruby の場合 Ruby で逆引きを行うには socket ライブラリを使う方法と、Resolv ライブラリを使う方法があります。マルチスレッドで並列に逆引きを行うには Resolv ライブラリを使う必要があります。 socket ライブラリを使った場合、 Socket.gethostbyaddr か Socket.getaddrinfo を使って逆引きを行います。これらは同

  • GCC の最適化で printf が puts になる場合 - bkブログ

    GCC の最適化で printf が puts になる場合 GCC の最適化により printf の呼び出しが puts に置き換わることがある、と 先日、教えてもらったので試してみました。 次のような hello.c をまず最適化なしでコンパイルします。 #include <stdio.h> int main () { printf("hello, world\n"); return 0; } % gcc -o hello hello.c そして、実行可能ファイル hello を readelf コマンドで覗いてみると、 printf という文字列が見つかります。 puts は見あたりません。 % readelf -a hello | egrep 'printf|puts' 080495d0 00000207 R_386_JUMP_SLOT 00000000 printf 2: 0000

  • コンピュータ関連の読み物 5冊: ハッカーズ、他 - bkブログ

    書は、1950年代から80年代までのハッカー歴史を、当事者であるハッカーたちへの膨大なインタビューを元にしてまとめられたです。50年代の鉄道模型ハッカーにはじまり、60年代 MIT ハッカー、70年代西海岸の自作コンピュータハッカー、80年代のゲームハッカーまで、書で取り上げられるハッカー列伝は多岐にわたります。 著者自身はジャーナリストであり、ハッカーではありません。このため、ハッカーをヒーローとして扱いつつも、ハッカーの傲慢さや、浮世離れぶりについてはあくまでも冷静に捉えています。天才的なハッカーの武勇伝だけでなく、彼らの挫折や岐路についても描いているところが、書をひと味深いものとしています。

  • 便乗5冊企画: スーパーエンジニアへの道、他 - bkブログ

    最初の一冊はワインバーグの「スーパーエンジニアへの道」にしました。 このコンサルタントの秘密―技術アドバイスの人間学と相補的な内容となっています。スーパーエンジニアの方は主に自分が学ぶするための方法、コンサルタントの方は人に影響を与えるための方法について書かれています。以前に、コンサルタントの秘密を読んで改心した話を書いていますが、結局のところ、基的にはあまり変わっていないような気もします。

  • いやなブログ: SpiderMonkey で JavaScript のインタラクティブシェル

    SpiderMonkey で JavaScript のインタラクティブシェル JavaScript のコードをインタラクティブに動かせるツール (Ruby における irb のようなもの) が欲しいと以前から思っていたのですが、今日になってようやく SpiderMonkey のインタラクティブシェルをインストールしました。 Debian GNU/Linux なら sudo apt-get install spidermonkey-bin を実行するだけでインストールできます。インストール後、 js コマンドを実行するとインタラクティブシェルが立ち上がります。 式を入力すると値が表示されます。 readline ライブラリがリンクされているので、コマンドライン編集は bash と同様にできます。 js> a = [1,2,3] 1,2,3 js> a.push(4) // 末尾に 4 を追加

  • いやなブログ: 配列操作の比較表: 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)

  • いやなブログ: UTF-8 への移行計画

    UTF-8 への移行計画 以前からやろうやろうと思っていた、 UTF-8 への移行計画を実施し ました。これまで手元のテキストファイルの類はすべて EUC-JP で 保存していたのですが、これを UTF-8 にしようという計画です。 Emacs の設定 まずは Emacs の設定です。これまで euc-jp となっていた部分を utf-8 に置き換えました。 (set-language-environment "Japanese") (set-terminal-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8) (set-buffer-file-coding-system 'utf-8) (setq default-buffer-file-coding-system 'utf-8) 新規に作成したファイルの文字コードを UTF

  • wxWidgets でクロスプラットフォーム GUIアプリを作ろう

    最終更新日: 2004-10-08 (公開日: 2004-10-08) UNIX USER誌 2004年8月号 に掲載された記事の元の原稿です。 文中の「原稿執筆時点」は「2004年 6月半ば」を指します。 wxWidgets は Linux, Windows, Mac OS X など多くのプラットフォー ムに対応したオープンソースの GUI ツールキットである。稿で は wxWidgets を用いてクロスプラットフォーム対応の GUI アプリ ケーションを開発する方法を紹介する。 はじめに Unix の大きな魅力のひとつに、強力なコマンドライン処理がある。 zsh などのシェルと perl などのワンライナーを組み合せて、大量 のファイルを一気に処理するときなどは、「これぞコマンドライン の醍醐味」と感じる瞬間である。 一方、Unix の大きな不満のひとつに、凶悪なコマンドライン書法

    tenkoma
    tenkoma 2005/05/09
  • 1