2011-01-01から1年間の記事一覧

最も根本的なスキルは「想起」だと思う

仕事でソフトウェア開発スキルを扱うことが多いが、最も根本的で得がたいスキルは「想起」、つまり、それが必要とされることを認知する能力だと思う。これがなければ、どんなに知識を身につけても意味がない。 たとえば、「会議ではクロージングを意識する」…

行動ターゲティング広告

最近PayPalを利用する機会があり、Googleに “PayPal”, “PayPal 支払い”, “PayPal API IPN” などと検索しまくっていたら、Google提供のWeb広告がすべてPayPalになってしまった。 これぞまさしく行動ターゲティング広告、……なのだろうか。 PayPalと入れたからP…

「読み取り専用」は汎化ではない

InfoQ: .NETのリードオンリー コレクションインターフェースの物語 読み取り専用コレクションが.NET4.5で追加されると言う話。 記事は「ようやくかよ!」という感じだが、.NETチームのこれまでの判断は妥当だと思う。 面白いのが、IList<T>は、IReadOnlyList<T>か</t></t>…

リファクタリングはハノイの塔

InfoQ: リファクタリング中は考えることを止めよう 個人的には、リファクタリングに向き合うときはハノイの塔を解いている気分になる。 円盤(コード)を移動させる前に、完成までの手順が見えていなくてはならない。 完成までの手順が見えないなら、円盤を…

Bazaarの概念モデルは過度に複雑すぎる

DVCSを比較すると、いつも Bazaar が良さそうだという結論になる。 そうして試してみるものの、いつも「よくわからない」という結果に終わる。 何度も繰り返してたどり着いたのが Mercurial で、いまのところ不満はない。 しかしながら、Bazaar の何が良くな…

Thrift

Apache Thrift を自作ソフトの通信に使おうかと思って調査。 非同期のサポートがない。(THRIFT-1というプロトタイプがどこかにあるらしいが、リリースにはない。) メモリバッファの扱いが適当で、通信のたびに細かく生成しまくる実装になっている。GCへの…

Ghost in the Stack

メモリリークを取っていたが、最後の最後のヤツはこんなんだった。 次のようなコードでメモリリークする。 void UndertakeOnNewThread() { while(true) { Task task; task = WaitForTask(); Process(task); }} ただし、UndertakeOnNewThread は独立スレッド…

コンテキストに沿い、インテントを持ち、セマンティクスを踏まえ、シンタックスに則る。

UMLの重要性は明らかだが、UML記法に従っていれば有用だと思われている節がある。文法的に正しければ良いわけではない。良いUML図とは、コンテキストに沿い、インテントを持ち、セマンティクスを踏まえ、そしてシンタックスに則っている。 最も大切なのはイ…

ちょっとひどいと思ったオブジェクト指向の解説

http://www.csg.is.titech.ac.jp/~chiba/notes/aop03/index.html これはひどい。オブジェクト指向を誤解しているのでは。`03年とはいえ、、、。 非常に直感的に説明すると、オブジェクト指向ではシステムを全体から部分へ階層的に分割する。システム全体は、…

相互依存問題への間違ったアプローチ

学習する組織を読んでいる。 ちょっと前に記号と再帰という本も読んだ。 両者に共通するのは、再帰、フィードバックという概念。相互依存、循環、ループ。 現在容易に解決できない種類の問題は、かならずこのような性質を含んでいると思う。 私は昔から、問…

this によるメソッド呼び出しは速い

.NET Framework 4.0 で以下のfuncの呼び出しは、this のほうが速い。 遅い方。 var me = this; me.func(); 速いほう。 this.func(); 「そりゃ変数代入の分だけ遅い」ではなくて、呼び出し単体で遅いのである。 利用は、NullReferenceException チェックのた…

ThreadPool.RegisterWaitForSingleObject は狂っている

http://msdn.microsoft.com/ja-jp/library/system.threading.threadpool.registerwaitforsingleobject.aspx こういうやつで、要は WaitHandle がシグナルしたらスレッドプールを使ってコールバックしてくれる。 public static RegisteredWaitHandle Register…

バブル崩壊の動画

米国 個人破産・ミニマムペイメント 〜アメリカ経済がおかしい〜 日本 大返済時代 〜借金200兆円 始まった住民負担〜 動画を見て、同じだなと思った。 アメリカ人は個人で借金して、個人が払えなくなって、個人が破産する。 日本人は、国やら自治体が借金し…

BUILD windows のスライドを23個観た

BUILDwindows2011のスライドを観た。世の中的にはMetroデザインがどうとからしいが、そんなの割と些末だった。 特筆すべきトピックは下記の2つ。 Windows Runtime (WinRT) Asynchrony 以下説明。 Windows Runtime (WinRT) とうとうついに Win32 がレガシー…

HttpWebRequest.BeginGetResponse blocks your thread synchronously.

HttpWebRequest.BeginGetResponse は、非同期メソッドのくせにスレッドをブロックする。 なんてこった。今まで気がつかなかった。そんなことあるわけないと思っていた。 手元のコードで実験したら、17秒もリターンに掛かっていた。 どうしよう。 英語のレフ…

モバゲーGREEはパチスロ

モバゲーをけなす30代男性を見て思うこと:http://blogs.itmedia.co.jp/fukuyuki/2010/09/30-d031.html 記事の要点は 「若者文化をけなすのは古来からの繰り返し」 というもの。 そうではないと思うけど、そうかも知れない。 ■社会貢献の欠如 繰り返しではな…

プログラムは難しい

プログラミングに不自由を感じることはなくなったと思っていたが、やはり難しいものだ。 プログラムで日付を扱うことが非常に多いことは論を待たない。したがって、標準ライブラリは日付を扱うための処理を提供することが普通である。.NETにおいては、たとえ…

Windows Phone 7.5 端末は(まだ)買ってはいけない

IS12Tを発売日当日に購入したが、ケータイとしての普段使いは無理。 アドレス帳の移行手続きがバグっている。友人のメアドが消えたりした。データを中継するlive.comがふりがな未対応のため、「姓の前部にふりがなを追記して凌ぐ」というあり得ない応急処置…

Amazonをなるべく使いたくない

Amazon、便利です。が、本屋も好きなのです。 Amazonばかりだと本屋が潰れるので、できるなら本屋も使いたい。わざわざ遠いところから運んでもらわなくても、近くにあるなら近くでいい。 でも、在庫検索ができる本屋が少なすぎる。行ってみるまで売っている…

SMART と CREAQ

目標はSMARTに、評価指標はCREAQに。 SMART Specific (具体的) Measurable (測定可能) Attainable (達成可能) Relevant (適切) Timely (適時) CREAQ (from BABOK) Clear/Concise (明確簡潔;曖昧でなく必要十分である。) Relevant (適切;評価…

PLINQは黒歴史

PLINQ (Parallel LINQ) は黒歴史かも知れない。 私はLINQが好きだ。愛しているといっても過言ではない。 着実な言語的積み重ねの上に成り立つ、これほどスマートな改善を見たことがない。 LINQを知らない人のために簡単に説明しよう。(知っている人は次のコ…

共通化は目的に相応しくない

ソフトウェアの共通化を作業の目的にしてはいけない。 チームAとチームBの似たコードを括りだしてCを作ることは、一般に良くない。 特に、共通化によって掛る工数が下がるだろうと言うのは大きな間違いである。 工数は決して下がらず、まず間違いなく増加す…

続 setter/getter は不要

友人との議論で、掲題について質問をもらった。質問に答える過程で、さらに深く考えることができたので、続きを書く。 そもそものエントリはsetter/getter は不要である。このエントリにおいて、次のような趣旨の主張をした。 単にフィールドにアクセスする…

抽象化、概念化、一般化、普遍化、演繹、帰納

タイトルの用語について明確に理解していなかったので整理した。まずは用語の一般的定義から。 概念化 まだ概念的に説明されていなかったり、それを言い表すちょうど良い表現がないような特定の現象やものごとなどについて、新しい概念や用語などを作り出し…

階層重視のFreeMind

ずっと、ツリー横断的に階層が揃うツリーエディタがほしかったので、FreeMind にパッチして作ってしまった。

Windows Phone 7 の ListBox コントロールはタッチスクロールに精密に反応しない

Windows Phone 7 の ListBox コントロールは、コンテンツが重いときに、スクロール操作への反応が精密でなくなるというバグがあるように思う。January Update, March Update (NoDo) のどちらでも再現する。 以下、再現手順。リストビューをスクロール開始(…

ListBoxのスクロールがおかしい件

どうも、アイテムごとに高さが違うとダメみたい。 ListBoxはVirtualizingStackPanelを内部で使うけど、こいつが可変長高さに対応し切れてない。 ItemsPanelTemplate を StackPanel にするか、ScrollViewer + ItemsControl の組み合わせにすると、うまく動く…

ソフトウェアにまつわるエラー

ソフトウェアに関するエラーの種類をググってみたが、あまり見つからない。 参考までに、私の認識を示したいと思う。手前のものほど原始的であり、一般には検出しやすい。 ・シンタックスエラー コンパイラが静的に検出できる。 if 文のない else は誤り。 …

Windows Phone 7 (HTC HD7) を購入した

端末購入までの流れ 2/18 深夜 HTC HD7 を衝動買い 56,800円 3Gmobile池袋東口4分BodyANDSoul で購入した。安い。(でも、予算内だったので相場を調べずに即決だったけど。) 最終的にモノは来たが、音沙汰ない上に日本語が微妙なのでかなり不安になる。。。…

setter/getter は不要

Javaに多いと思うが、こんな例をたくさん見かける。 public class MyClass { private int myField; public int getMyField() { return this.myField; } public void setMyField(int value) { this.myField = value; }} 出典はパッと示せないが、教科書みたい…