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: リファクタリング中は考えることを止めよう 個人的には、リファクタリングに向き合うときはハノイの塔を解いている気分になる。 円盤(コード)を移動させる前に、完成までの手順が見えていなくてはならない。 完成までの手順が見えないなら、円盤を…
DVCSを比較すると、いつも Bazaar が良さそうだという結論になる。 そうして試してみるものの、いつも「よくわからない」という結果に終わる。 何度も繰り返してたどり着いたのが Mercurial で、いまのところ不満はない。 しかしながら、Bazaar の何が良くな…
Apache Thrift を自作ソフトの通信に使おうかと思って調査。 非同期のサポートがない。(THRIFT-1というプロトタイプがどこかにあるらしいが、リリースにはない。) メモリバッファの扱いが適当で、通信のたびに細かく生成しまくる実装になっている。GCへの…
メモリリークを取っていたが、最後の最後のヤツはこんなんだった。 次のようなコードでメモリリークする。 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年とはいえ、、、。 非常に直感的に説明すると、オブジェクト指向ではシステムを全体から部分へ階層的に分割する。システム全体は、…
学習する組織を読んでいる。 ちょっと前に記号と再帰という本も読んだ。 両者に共通するのは、再帰、フィードバックという概念。相互依存、循環、ループ。 現在容易に解決できない種類の問題は、かならずこのような性質を含んでいると思う。 私は昔から、問…
.NET Framework 4.0 で以下のfuncの呼び出しは、this のほうが速い。 遅い方。 var me = this; me.func(); 速いほう。 this.func(); 「そりゃ変数代入の分だけ遅い」ではなくて、呼び出し単体で遅いのである。 利用は、NullReferenceException チェックのた…
http://msdn.microsoft.com/ja-jp/library/system.threading.threadpool.registerwaitforsingleobject.aspx こういうやつで、要は WaitHandle がシグナルしたらスレッドプールを使ってコールバックしてくれる。 public static RegisteredWaitHandle Register…
米国 個人破産・ミニマムペイメント 〜アメリカ経済がおかしい〜 日本 大返済時代 〜借金200兆円 始まった住民負担〜 動画を見て、同じだなと思った。 アメリカ人は個人で借金して、個人が払えなくなって、個人が破産する。 日本人は、国やら自治体が借金し…
BUILDwindows2011のスライドを観た。世の中的にはMetroデザインがどうとからしいが、そんなの割と些末だった。 特筆すべきトピックは下記の2つ。 Windows Runtime (WinRT) Asynchrony 以下説明。 Windows Runtime (WinRT) とうとうついに Win32 がレガシー…
HttpWebRequest.BeginGetResponse は、非同期メソッドのくせにスレッドをブロックする。 なんてこった。今まで気がつかなかった。そんなことあるわけないと思っていた。 手元のコードで実験したら、17秒もリターンに掛かっていた。 どうしよう。 英語のレフ…
モバゲーをけなす30代男性を見て思うこと:http://blogs.itmedia.co.jp/fukuyuki/2010/09/30-d031.html 記事の要点は 「若者文化をけなすのは古来からの繰り返し」 というもの。 そうではないと思うけど、そうかも知れない。 ■社会貢献の欠如 繰り返しではな…
プログラミングに不自由を感じることはなくなったと思っていたが、やはり難しいものだ。 プログラムで日付を扱うことが非常に多いことは論を待たない。したがって、標準ライブラリは日付を扱うための処理を提供することが普通である。.NETにおいては、たとえ…
IS12Tを発売日当日に購入したが、ケータイとしての普段使いは無理。 アドレス帳の移行手続きがバグっている。友人のメアドが消えたりした。データを中継するlive.comがふりがな未対応のため、「姓の前部にふりがなを追記して凌ぐ」というあり得ない応急処置…
Amazon、便利です。が、本屋も好きなのです。 Amazonばかりだと本屋が潰れるので、できるなら本屋も使いたい。わざわざ遠いところから運んでもらわなくても、近くにあるなら近くでいい。 でも、在庫検索ができる本屋が少なすぎる。行ってみるまで売っている…
目標はSMARTに、評価指標はCREAQに。 SMART Specific (具体的) Measurable (測定可能) Attainable (達成可能) Relevant (適切) Timely (適時) CREAQ (from BABOK) Clear/Concise (明確簡潔;曖昧でなく必要十分である。) Relevant (適切;評価…
PLINQ (Parallel LINQ) は黒歴史かも知れない。 私はLINQが好きだ。愛しているといっても過言ではない。 着実な言語的積み重ねの上に成り立つ、これほどスマートな改善を見たことがない。 LINQを知らない人のために簡単に説明しよう。(知っている人は次のコ…
ソフトウェアの共通化を作業の目的にしてはいけない。 チームAとチームBの似たコードを括りだしてCを作ることは、一般に良くない。 特に、共通化によって掛る工数が下がるだろうと言うのは大きな間違いである。 工数は決して下がらず、まず間違いなく増加す…
友人との議論で、掲題について質問をもらった。質問に答える過程で、さらに深く考えることができたので、続きを書く。 そもそものエントリはsetter/getter は不要である。このエントリにおいて、次のような趣旨の主張をした。 単にフィールドにアクセスする…
タイトルの用語について明確に理解していなかったので整理した。まずは用語の一般的定義から。 概念化 まだ概念的に説明されていなかったり、それを言い表すちょうど良い表現がないような特定の現象やものごとなどについて、新しい概念や用語などを作り出し…
ずっと、ツリー横断的に階層が揃うツリーエディタがほしかったので、FreeMind にパッチして作ってしまった。
Windows Phone 7 の ListBox コントロールは、コンテンツが重いときに、スクロール操作への反応が精密でなくなるというバグがあるように思う。January Update, March Update (NoDo) のどちらでも再現する。 以下、再現手順。リストビューをスクロール開始(…
どうも、アイテムごとに高さが違うとダメみたい。 ListBoxはVirtualizingStackPanelを内部で使うけど、こいつが可変長高さに対応し切れてない。 ItemsPanelTemplate を StackPanel にするか、ScrollViewer + ItemsControl の組み合わせにすると、うまく動く…
ソフトウェアに関するエラーの種類をググってみたが、あまり見つからない。 参考までに、私の認識を示したいと思う。手前のものほど原始的であり、一般には検出しやすい。 ・シンタックスエラー コンパイラが静的に検出できる。 if 文のない else は誤り。 …
端末購入までの流れ 2/18 深夜 HTC HD7 を衝動買い 56,800円 3Gmobile池袋東口4分BodyANDSoul で購入した。安い。(でも、予算内だったので相場を調べずに即決だったけど。) 最終的にモノは来たが、音沙汰ない上に日本語が微妙なのでかなり不安になる。。。…
Javaに多いと思うが、こんな例をたくさん見かける。 public class MyClass { private int myField; public int getMyField() { return this.myField; } public void setMyField(int value) { this.myField = value; }} 出典はパッと示せないが、教科書みたい…