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

あなたを伸ばす、あるいは毀損する、リーダーシップの資質

This One Leadership Quality Will Make or Break You (あなたを伸ばす、あるいは毀損する、リーダーシップの資質) Mike MyattOne of the most often overlooked aspects of leadership is the need for pursuit. Great leaders are never satisfied with …

本日気になった記事

出世ナビ|NIKKEI STYLE 落としてから誉める。 逆はだめ。 たびたび聞くね、この方法。 無理やり子育てにからめておこう。 叱ったら、そのあとで誉める。 ちゃんと謝れたねとか、こうしたところは良かったねとか。ソーシャルメディアが急激に衰退する可能性:…

本日気になった記事

大容量は必須、LTEでバッテリーが重要なワケ - 日経トレンディネット LTE では、基地局と端末が 1.28 秒間隔で通信する。 3G では 2.56 秒間隔だったので、倍の回数、待ち受け状態でも通信している。 一方、通信中の電力消費はほぼ変わらないため、同じデー…

本日気になった記事

教えて岡村先生! お金のことアレコレ(1):ライフタイムコストってなに? 長野真歩が聞いてきました (1/4) - ITmedia ビジネスオンライン ライフタイムコスト。 目先の浮き沈みにとらわれず、先のことまで考えてコストを考える。 あー、投資の話につながる…

foldr で dropWhile を再定義する

Haskell の Prelude に定義されている関数を、高階関数をつかって再定義してみようという「プログラミング Haskell」第 7 章の問題について。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; i…

優先度逆転

Priority inversion occurs when two or more threads with different priorities are in contention to be scheduled. Consider a simple case with three threads: thread 1, thread 2, and thread 3. Thread 1 is high priority and becomes ready to be …

今日の単語: lie

「嘘おっしゃい」、母さんが言う。 「ほんとうのことをお言いでないね」 「拒食症だなんて、こんなに太っておいて」 "Your lie," said Mother. "You do not tell the truth. "You are much too fat to be anorexic." My First Dictionary: Today's word is l…

続・クイックソート

そういえば、同じ値がたくさん入っている列をソートするときに、先日の partition をつかった実装だと、再帰呼び出しのなかで再度おなじ値の比較が走ることになって比較コストがばかにならないなあ… とおもった。 strcmp のように、一回の比較で同じか、小さ…

curry/uncurry 関数の使い方がわかった(かも?)

∧ を再定義する演習に取り組んでいるときに、検算を map で実行しようと考えた。 ∧ を and という名前の関数で定義したとして、これは二引数の(見かけをもったカリー化された、 Bool → Bool → Bool の型を持つ)関数になる。一方、ふたつの Bool 変数の全組…

今日の単語: bough

大枝は木の枝である。 この大枝から、ぼくらはメイ氏の寝室をのぞく。 この大枝から、ぼくらは手錠、皮の拘束具、そして泣き叫ぶ小さな男の子を見る。 A bough is a branch of a tree. From this bough, we can see Mr May's bedroom. From this bough, we c…

クイックソート

「プログラミング Haskell」の第1章に、次の定義のクイックソートが出てくる。 qsort [] = [] qsort (x:xs) = qsort smaller ++ [x] ++ qsort larger where smaller = [a | a ← xs, a ≦ x] larger = [b | b ← xs, b > x]この章の例題を解いていて気が付い…

static 宣言の後に extern 宣言しても大丈夫

static int N = 256; extern int N; と書くのは合法 (そして N は static)。 妙だ。 非常にむずがゆい。逆はダメ。 つまり extern int N; static int N = 256; と書くとエラー。

簡易メモリー使用量計測器

リークしてるんじゃない? ということで、簡単に現時点でのメモリー使用量のスナップショットを取りたくなった。Linux なら /proc/[pid]/statm を参照するのが簡単だということでこんな感じのユーティリティーを実装。 #include <unistd.h> // for getpid() #include <memory> </memory></unistd.h>…

今日の単語: healthy

お母さんは競争が健全だとかんがえている。 競争がぼくらのためになるとおもっている。 来月、いちばん伸びた子が、お父さんについていって一緒に暮らせるそうだ。 Mother thinks competition is healthy. She thinks competition is good for us. Whoever g…

ARM の関数呼び出し

ARM の関数呼び出し、正確には関数呼び出しからの戻りかたの処理がおもしろかたのでメモしておく。お試しソースはこれ。: /* fcall.c */ int foo() { return 1; } int simple_call() { const int v = foo(); return v; } int call_twice() { return foo() +…

平衡三進数

まだまだ途中だけれど、とりあえず公開。 随時追記していきます。 ternary.lhs > bt x = tail.fromJust.find ((0==).head) $ iterate (\(x:ts) -> div (x + 1) 3 : mod (x + 1) 3 - 1 : ts) [x] 掛け算 0 を掛けると 0 になり、符号の異なる trit を掛け合わ…

同名のシンボルを持つ同名のライブラリーをリンクしたライブラリーを dlopen したときの名前解決

昨日のエントリーのあとで、では dlopen/dlclose で明示的にリンクしたらどうなるか? という疑問がわいたので引き続いて調査。 (リンカー・ローダーのソースを読まずに動作から確認している…というあたり、弱いなあ)main というアプリケーションが one/li…

同名のシンボルを持つ複数のライブラリーをリンクしたときの名前解決

GOT やリンカー・ローダーの仕組みを考えれば、そうなるかな、と納得はできるんだけれど、たいそうショックを受けたことがら。次のような三つのソースを用意する。 /* a.c */ int puts(const char *str); void foo() { puts("hello"); } void bar() { foo();…

const 宣言できたとしても、すべきでない場合

例として次のような int をラップしているだけの Number クラスを考える。 class Number { int *const v; public: Number() : v(new int(0)) {} ~Number() { delete v; } void set(int value) const { *v = value; } int get() const { return *v; } }; ここ…

今日の単語: agree

ジョディーの頭の中の声はまとまることがない。 彼らは同じことを決していわないのだ。 だれかが殺せといったとしても、ほかはひどい性暴力を喜んでいたりする。 The voices in Jodie's head never agree. They never say the same thing. One tells her to …

関数引数で初期化される変数と戻り値をともにクラスの const メンバーにしたい

C/C++ の関数は複数の値を戻すのが苦手なので、たいていのプログラマーは関数の引数を戻り値を格納する場所として使う方法に染められていく。 /* create new Object and returns its id */ Id object_initialize(/*[out]*/ Object** object); さて、この Id …

初期化リストにおける基底クラスの初期化順序

基底クラスの初期化につづけてメンバー変数の順で初期化されるから注意しましょうという話。テストケースをつくるときに、にかよった設定をするオブジェクトがたくさんあるので、そのベースクラスをつくり、ちょっとした違いを派生クラスでカバーしようと考…

10 進数を平衡三進数に変換する haskell ワンライナー: bt x = aux [] x where aux ts x = let (q, r, y, ts') = (div y 3, mod y 3, x + 1, r - 1 : ts) in if (0 == q) then ts' else aux ts' q

世の中に平衡三進数、あるいは対称三進数、英語で言えば balanced ternary というものがあると知ったのが昨日のこと。(「http://www.amazon.co.jp/gp/product/4622075482/ref=as_li_ss_tl?ie=UTF8&tag=ryohji-22&linkCode=as2&camp=247&creative=7399&creat…

今日の単語:shock

あたらしいカーペットはジョーイをショック状態におとしいれた。 信じられない。 黄色だって? このカーテンと? なんてくs The new carpet sent Joey into shock. It sent him into a state of disbelief. Yellow? With those curtains? What the fu My Fi…

この数値より小さいことをテストする

パフォーマンス調査用のテストケースで if (timeDiff > 200) fail(); のように書かれていたのを assertTrue(timeDiff どうせならテストの結果で expected: but was: と表示されるようにしたいなあ…ってんでつくってみました。 class LessThanEqualTo { priva…

コマンドラインのプリプロセッサー定義で文字列を渡す

$ cc -o hello hello.c -DHELLO="\"hello, world!\"" $ ./hello hello, world!などと、コンパイルオプションで渡した文字列をソースコードで使うにはどうしたらいいか?解答編: #define quote(x) q(x) #define q(x) #x #include <stdio.h> int main() { puts(quote(H</stdio.h>…

例外を捕捉するテストの書き方

例外が送出されることを期待する Java のユニットテストの書き方は、テストメソッドの中に例外を捕捉するコードを書いて、期待する例外を捕捉したら return し、メソッドの末尾では fail を呼び出すような書き方をするのが常道のよう。 public void test001(…

今日の単語: puff

煙がもくもくと煙突から出てきた。 お母さんが入っていて、お客さまがたを受け入れているのだ。 A puff of smoke came from the chimney. Mother is in, and accepting gentlemen callers. My First Dictionary: Today's word is puff

スカイプにサヨナラを

そう、マイクロソフトがスカイプを買収した。おそろしいニュースだ。これでスカイプはダメになるだろう。おしまいだ。どうしてマイクロソフトはなんでも買収しようとして、そしてダメにするんだ?なぜだ? つまり、ぼくらはみんなマイクロソフトがゆっくりと…

ease out: x[n] = (1 - r)^n * (x[0] - p) + p

UI 部品のなめらかな移動はゲームに限らず、 iPod などの iOS や Android などの組み込み製品や最近のデスクトップアプリケーションでもみかけるようになった。数年前、自社の UI フレームワークを移植する仕事をしていたときに、その動きを実現する式が x +…