タグ

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

  • 一から自分でコードをバリバリ書くという幻想 #21

    友人からこんなコメントをもらった。「最近 bk ノートが、何か困ると同僚に聞きに行くキャラになりつつありますよ。もっと上から目線で書かないと。するとカコイイ! とか言ってくれる人が出てきますよ」 そんなことを言われても、困ったら助けてもらうというのは事実なんだからしょうがない。そもそも、自分の弱さを認めるが強さの始まりというものだ、うんぬん。こんなことを書けば上から目線っぽい?。。が、やっぱりやめておこう。 話を変える。既存のコードをちまちまリファクタリングして、少しだけ新しいコードを追加して、デバッグして、なんてことを年がら年中やっていると、一から自分でコードをバリバリ書けたらどんなに楽しいだろう、なんてことを考えることがある。大きなプロジェクトの中で何かをやっていると、そういう機会は滅多にない。ぶつぶつ言いながら既存のコードをいじくりまわしていることの方が多いのだ。 が、あるとき、ひと

    t-wada
    t-wada 2016/09/05
    高林さんですらそうなのだ、というのがとても面白い
  • ある程度の年齢を迎えたプログラマが抱える悩み - bkブログ

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

    t-wada
    t-wada 2010/09/22
    何度も繰り返される "簡単ではなさそうです"
  • Ruby, Pythonで並列に逆引きを行う - bkブログ

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

    t-wada
    t-wada 2008/07/04
    Giant Interpreter Lock (Giant VM Lock?) というやつでしょうか
  • 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

    t-wada
    t-wada 2007/10/16
    "A collection of utilities for text escaping and unescaping in JavaScript."
  • Dependency Injection の基本的なアイディア - bkブログ

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

    t-wada
    t-wada 2007/04/07
  • いやなブログ - スクリプト言語用のデバッガの使い方 - 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

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

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

  • Binary Hacks in Action - bkブログ

    Binary Hacks in Action Development Environment Conferenceで15分ほど喋った内容のスライドを公開しました。 最後のスライドで、来月にオライリージャパンから出版予定の Binary Hacks の宣伝をさせていただきました。従来、あまりまとめられることがなく「知る人ぞ知る」的な存在だった低レイヤの技術のノウハウを集めて誰にでも使えるようにすることが書の目的です。ご期待ください。

    t-wada
    t-wada 2006/09/09
    Development Environment Conferenceのスライド。オライリーからはBinary Hacksが出る!
  • 私の情報整理術: 捨てる派の情報整理術

    捨てる派? 捨てない派? 情報整理術は興味の尽きないトピックです。誰もが何かしらのこだ わりを持っているため、ひとたび議論が始まると、自分はこうやっ てる、俺も昔はそうやっていたが駄目だった、などと始まって収拾 がつかなくなります。これはちょうど誰もがうまいラーメン屋につ いて一家言を持っているのと似ています。 私の観察によると、ある種の人たちが情報整理術について議論を始 めると永遠に平行線で終わるようです。それは「捨てる派」と「捨 てない派」です。 捨てる派によれば、「物理的なものにしろ電子的なものにしろ、い らないものはどんどん捨ててしまえばよろしい。不要なものがたく さんあるから必要なものが見つかりにくくなるのだ。第一、ものが 少ない方が気分がすっきりする。昔から、墓場まで情報は持ってい けないと言われているではないか」ということになります。 一方、捨てない派によれば「必要か不要か簡

    t-wada
    t-wada 2006/08/20
    "捨てる派の人間の行動パターンには、保有メリットより保有コストの方が高ければ捨てる、という合理的な面だけでなく、捨てるのが好きだから捨てる、という趣味的な面も多分にあります"
  • 詳解UNIXプログラミング - いやなブログ

    詳解UNIXプログラミング いつか全部読もうと思いつつ、長らくつまみ読みしかしていなかった『詳解UNIXプログラミング』を、ようやく思い立って最初から最後まで読みました。 こののすごいところは、ほとんどすべてのページに、Unix のシステムプログラミングを行う上で重要なことが書かれていることです。書を通読しながら、「こんなこともできたのか」「こんな落とし穴があったのか」「こういう仕組みだったのか」といった発見が数え切れないほどありました。 買った当初は、とりあえず持っておいて必要なときにリファレンス的に使えばいいや、と考えていたのですが、リファレンスというものは「何ができるか」をある程度知っていないと有効に活用できません。そういった意味でも通読して、Unix のシステムコールでどんなことができるのかを一通り知ったのは大きな収穫でした。 書では全編を通じて、システムプログラミングにあり

    t-wada
    t-wada 2006/08/20
    "この本のすごいところは、ほとんどすべてのページに、Unix のシステムプログラミングを行う上で重要なことが書かれていることです。"
  • ハッカー養成塾: 深追い、佳境、バッドノウハウ

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

    t-wada
    t-wada 2006/05/11
  • 横着プログラミング 第3回: 履歴マニア

    最終更新日: 2002-05-18 (公開日: 2002-05-18) Unix Magazine 誌に 2002年1月号から 2003年2月号にかけて連載し ていた記事の元の原稿です。 コンピュータの方がうまくできることに人間を使うな。 -- Tom Duff *1 私の見る限り、プログラマという人種は決まって事務作業が嫌いな ようである。同じような書類を何枚も書かされたり、1つ誤字があ るから書き直せと言われたりすると、異常にストレスがたまる。 同様に、計算機を使っていても、同じような作業を何度も繰り返し たり、ちょっとでも間違えたら最初からやり直し、というのは耐え られない。そこで、今回は履歴を活用して作業の再利用をするノウ ハウを取り上げる。 シェルの履歴 Unixを使い始めて間もない初心者が作業しているところを見ると、 打ち間違えたコマンドを律儀に最初から打ち直しているのに気づく

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

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

    t-wada
    t-wada 2005/09/24
  • いやなブログ: 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 を追加

  • 1