ビジネス向けの製品は嫌い

ビジネス向けやエンタープライズ向けといって売られている製品に、会社員をしていますとよく出会います。特に IT ベンダーはこれらの言葉を好んで使います。しかし、私はそういったビジネス向けの製品を好ましく思っていません。 ビジネス向けと特別に言わな…

やりたいことをするのにどうして許可がいるのだろう

あなたは何がしたいのですか? よく聞かれます。私はこの問いが理解できない。シェンロンなのでしょうか? お前の望みを言え。 これなら分かります。俺を不老不死にしてくれとでも答えましょうか。でも、何がしたいの、と聞く人は私の願いを叶えてくれるわけ…

シェルスクリプトのキモいところ

シェルスクリプトのインタプリタを作ろうかと、シェルスクリプトの仕様を調べています。気持ちの悪い仕様をいくつか見つけました。仕様書*1を見ながら、dash で試しました。 丸括弧と波括弧のふるまいが違う。 丸括弧はサブシェル、波括弧はコマンドのグルー…

ケリー基準

ケリー基準という、賭けに投じるべき額の総資金に対する割合を与える式があります。次のような問題があったとしましょう: 賭けに勝つと掛け金の r 倍が利益になる。賭けに負けると掛け金分が損失となる。賭けに勝つ確率は p である。総資金の一定の割合 f …

IBM Watson の性格診断で遊んでみた

IBM が Watson というブランド名で AI っぽいサービスを展開しています。以前から気になっていました性格診断のツール、Personality Insights で遊んでみました。 下のページからデモができます。日本語にも対応しています。 https://personality-insights-d…

マネージャをマネジメントする。

マネージャと呼ばれる職種の人はどこの組織にもいます。いわゆる中間管理職の人々です。個人の人格は別にして、彼らには組織上の機能の要請から、共通の行動原理があります。マネージャは例外なくこの行動原理にしたがって動きます。特に優秀なマネージャで…

接点 t を見つける

現実はおそらく一つなのだろうけれども、どの断面で切り取るかによって見え方は全く異なるものになります。人の知性では世界をそのまま認識することはできず、何かしらのフィルターを通して世界を見て解釈します。フィルターとはフレームワークやパラダイム…

愚者は経験に学び、賢者は歴史に学ぶ

経験とはそう大切なものなのだろうか。 何かをするにあたって、経験が全くないよりは豊富に経験があった方が上手くできるでしょうし、年の功が役に立つことはあります。役に立つとは問題を解決するのに有効かどうかということです。問題を解くことに効果があ…

社員は大事にされなきゃ貢献もしない

4月――どこからともなく新入社員が会社に入ってきます。私も会社員をしている時間がずいぶん長くなってしまい、彼らを指導する立場になってしまいました。会社員をやっているものの、私は会社組織というものがあまり好きではないのだが、彼らには会社組織に愛…

実装に依存するな、仕様に依存しろ

仕様とはわかりくい概念です。辞書には次のようにあります: 製品や注文にあたって、あらかじめ定める仕上がり品の構造やデザイン。 仕様は発注者が定めて、受注者がそれに従うもののようです。仕様書を固めて、そのとおりに製造し、仕様書と照らし合せて完…

社会は素人ばっかりだ

社会に関する驚くべき事実の一つが、ほとんど全ての人が労働をして給与所得を得ていることです。大体の人は働かないと文化的な生活が維持できないので、何かしらの職業についています。当たり前のことではあるが、よくよく考えてみるとすごいことです。こん…

設計は名前のことだけ考えろ

ドゥルーズという学者は 哲学とは概念を創造することだ と述べていますが、現代で「概念の創造」という仕事を最も行っている職種は哲学者ではなくてプログラマでしょう。辞書を引くとコンピュータ用語が多く出てきます。それだけ新しい概念が作られたという…

パッケージングと付加価値

安く買って高く売るは、商売の基本です。世の中には仲介業者というのが大勢いて、(ちゃんと調べたことはないですが)労働者のかなりの割合が仲介業をしていると思われます。 しかし、今や21世紀であって、これだけ IT 化が進んできますと、ただ右から左にも…

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

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 で書かれたテーブ…

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

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

ttap: ファイルシステム階層によるテスティングフレームワーク

実行可能なテストスクリプト群のディレクトリ構成を定義して、整理するためのフレームワークを作りました。半年ほど前に作ってたやつです。*1塩漬け期間を経たのでリリースとします。 GitHub - fjkz/ttap: ttap: a testing framework with file system hiera…

『方法序説』を読んだ

デカルトの『方法序説』を読みました。昔読んだはずなのに全然覚えてなくて、びっくりした。 デカルトといえば『我思う故に我あり』の言葉で有名な昔の学者です。それ以外にもデカルトの影響は現代にも強く残っていて、ax + b = c というように、未知数を x,…

無向ネットワークのリンクの結合度

ネットワークサイエンスについて勉強している。 ノード間のリンクの結合の強さを表す尺度を思いついた。既に発見されているかもしれないが記録しておく。*1 仮説1: リンクに重みが予め付加されていない場合でも、ネットワークの構造からリンクの結合度を表…

クラスの依存関係グラフ 4

Java および Scala のクラスの依存関係のグラフについて調べている。 今回はクラスタリング係数を見てみる。 クラスタリング係数とは、あるノードにリンクしたノード群が互いにリンクしている割合を表します。C で表します。ノードごとに値を持ち [0, 1] の…

クラスの依存関係グラフ 3

1回 クラスの依存関係グラフ - 超ウィザード級ハッカーのたのしみ 2回 クラスの依存関係グラフ 2 - 超ウィザード級ハッカーのたのしみ Java および Scala のクラスの依存関係のグラフについて調べている。 驚くべきことに(まあ予想はしていたけれども)…