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

この世に要件定義ができる人間は何人いるのだろう?

ITエンジニアの求人倍率が5倍以上と、非常に高い。世間ではエンジニアにやらせたい仕事の数に比べて、エンジニアの数が極端に不足しているということです。しかし、このことは私の感覚に合っていない。エンジニアの層は薄くて総数は少ないように思いますが…

難しいことは仕事ではない

仕事が難しくなければならないなんて一体誰が決めたのでしょう。このことを誤解している人が多いように思いますし、そのために私もずいぶん長らく勘違いをしていました。しかしながら、考えを改めまして最近では、難しいことは仕事ではないと思っております…

オブジェクトは目的語

オブジェクト指向プログラミング言語ではメソッドを呼び出したいとき、 <インスタンス名>.<メソッド名> とインスタンスを示す変数の名前のあとに、そのオブジェクトに属するメソッドの名前を示します。このプログラミング言語の構文は、誤解も招く良くない構…

ソフトウェアの設計など不要では?

ソフトウェアの設計技法は数多く提唱されてきました。構造化設計から始まり、オブジェクト指向設計、デザインパターン、ドメイン駆動設計、など。私も趣味でこれらについてかなり勉強してきたように思います。問題を綺麗に解くことが好きだからでしょう。 し…

有効数字で浮動小数点数を丸める

浮動小数点数の時系列データを圧縮するのに xor encoding という手法があるそうだ。 Gorilla の論文 http://www.vldb.org/pvldb/vol8/p1816-teller.pdf 時系列データベースに関する基礎知識と時系列データの符号化方式について - クックパッド開発者ブログ …

プログラミングと英語

英語ができなかったら、プログラミングはできるとは言えないのではないか。英語ができなければ近いうちにソフトウェアエンジニアと名乗れなくなるのではないかと思う。私は英語ができない側の人間だから、こんなことを考えるのだと思いますが。 日本社会とし…

Bloom Filter を作ってみた

Bloom Filter を実装してみた。簡単な実装なので、速度や空間効率は悪いです。 Bloom Filter というのは、確率的データ構造の一つで、ある要素が集合に含まれるかどうかを試験するものです。空間効率が非常に良いのが利点で、偽陽性、つまり集合に含まれない…

プログラムのレイヤーは降りれても登れない

プログラムにはレイヤーというものがあります。レベルとも呼びます。プログラムというのは人間の理解を超えて複雑なものなので、全容を知るということは人間には出来ません。理解できない複雑なものを理解するために、人間には便利な思考法が備わっています…

正しい人間になりたい

このところずっと心に思っていることがある、ちょっとはマシな人間になりたい。恥の多い生涯を送って来ましたが、そろそろお天道様に顔向けできるような人生を歩みたいです。 マシな人間とは正しいことをする人のことです。正義を信じ、正義を貫ける人に私は…

inline_table ― ソースコードに ASCII テーブルを埋め込むための Python モジュール

inline_table という名前のソースコードに ASCII テーブルを埋め込むための Python モジュールを作ってみました。 GitHub - fjkz/inline_table: Python module for embedding text tables into source-code 以下のように reStructuredText で書かれたテーブ…

ソフトウェアの拡張と劣化

デカルトの『方法序説』に面白いことが書いてあった: たくさんの部品を寄せ集めて作り,いろいろな親方の手を渡ってきた作品は,多くの場合,一人だけで苦労して仕上げた作品ほどの完成度が見られない.たとえばよくあることだが,一人の建築家が請け負って…