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

ソースコードの著作権表示

いつごろからある慣例なのかは知らないが、ソースコードのファイルの先頭は必ず著作権についてのコメントが入れられている。おそらくフリーソフトウェア運動が始まった頃からだと思う。ソースコードの著作権がなかったら、表記なんてできないし、ソースコー…

オープンソースの弱点(2)GUI

OSSが弱そうなところについて書いています。 日本語 GUI 運用 サポート のうち今回はGUIについて。 GUI 一般にOSSのGUIはあまり使いやすくないと思う。GNOMEも何が悪いのかは分からないが、なんか使いにくい。UbuntuのUnityもなんか使いにくい。 コミュニテ…

オープンソースの弱点(1)日本語

今やオープンソース・ソフトウェア(OSS)を無視して計算機は語れない。OSSを制するものが業界を制する状態だ。 ソフトウェアを作って売るという商売をしているとどうしてもOSSと比べて競争しようとしてしまう。縄張りに侵入してきている外敵に見えるのだ。…

大きいコードを書くには

前回、コードに垂直方向のスケーラビリティ――コード規模のスケーラビリティについての式を考えた。 Nがコードの規模、Wがそのコードを作る労力であり、wが単位規模のコードを作る労力、rがコードを加える際に既存のコードを調べたり・改造したりする割合を示…

コード規模のスケーラビリティ

前回、ソフトウェアの開発には水平方向・垂直方向のスケーラビリティがあると軽く触れた。水平方向のスケーラビリティとは人を増やせばそれだけ開発能力が向上するということで、垂直方向のスケーラビリティとはソフトウェアの規模が大きくなっても開発速度…

ソフトウェア開発のスケーラビリティ

人月あたりの生産量、1kステップあたりのバグ数みたいな指標は便利なのでよく用いられる。私も、 プログラマの生産性の公式 - 超ウィザード級ハッカーのたのしみ で単位時間あたりの動くコードの生産量といった数をおいた。単に数値を数値で割っているだけ…

ビルドツールに関数型プログラミングが向いている

世の中にビルドツールは数あれどどれも気に食わない。いっそのこと自分で作っちまおうかとすら思い、ビルドツールに必要な機能を考えている。 ビルドツールは手続きを書くのが主流だが、関数型プログラミングを意識して作った方が上手く作れるのではないか。…

プログラマの生産性の公式

n行の動くコードをコーディングするのにかかる時間をTとすると、Tはざっくり以下のようになるだろう。 T = n*(tc + tw) + n*b^2*(tc + tw + tb) + n*b^3*(tc + tw + tb) + ... = n*(tc + tw + tb) / (1 - b) - n * tb ここにtcはバグの有無を問わず1行のコ…

読まないドキュメントより読めるコード

ウォータフォール開発はとにかく仕様書を書くことが求められる。文章を書くこと自体は嫌いでないが、仕様書を書くことは嫌いだ。なぜなら、意味がないからだ。その仕様書を他の人が読んで意思決定が行われたり、その仕様書をもとに他の人が開発をするなら、…

機械が使うものか人間が使うものか

機械には 人間が使う機械 機械が使う機械 の2種類がある。 人間が使う機械とは、UI(ユーザーインターフェース)を持っている機械のことだ。従来道具と言われてきたものは、人間が使う機械である。自動車もスマートフォンもそうだ。 システムとして見た場合…

ITこそITで効率化せよ

情報通信技術(IT)の主な用途は既存の業務の効率化である。計算機は決まった作業を正確にするのに優れている。帳簿をつけたり、そろばんを弾いたり、書類を回送したりする作業は人間がするよりも機械がおこなった方が効率がよい。そのため、計算機はこれらの…

ブログの文章は1500字

ブログの記事にするのに調度良い長さというのはどれぐらいなのだろうか。 一般に文章は短くなっている傾向だ。比較的活字に親しんでいる年齢層が使う掲示板もコメントは3行以内だ。ほとんどの場合は1行である。ニコニコ動画のコメントは単語のみで、文にな…

OSSとは標準規格である(3)――OSSを作る側の幸福

企業としてOSSを開発することにどういった利点があるのだろうかということについて ソフトウェア規格の奪い合い OSSは最大多数の最大幸福を実現する OSSを作る側の幸福 の順に書いている。今回は3回目である。 OSSを作る側の幸福 OSSは利用者を幸せするから…

OSSとは標準規格である(2)――OSSは最大多数の最大幸福を実現する

企業としてOSSを開発することにどういった利点があるのだろうかということについて ソフトウェア規格の奪い合い OSSは最大多数の最大幸福を実現する OSSを作る側の幸福 の順に書いている。今回は2回目である。 OSSは最大多数の最大幸福を実現する ソフトウ…

OSSとは標準規格である(1)――ソフトウェア規格の奪い合い

OSSは今や当然の存在だ。ソフトウェアが欲しいときに最初に検討するのはOSSだ。OSSを無視して計算機システムを考えることは不可能だ。 OSSは篤志家が開発していることも多いが、最近では企業が争って開発に参加している。私がお世話になっているHadoopもほと…

「Infrastructure as Code」について

「Infrastructure as Code」という言葉を良く聞く。基本的にはバズワードは好まない。馬鹿だと思われるからだ。 ビッグデータという言葉は嫌い - 超ウィザード級ハッカーのたのしみ しかし、Infrastructure as Codeは好きだ。言葉というより、コンセプトに同…

深いネストは忌むべき

Zen of PythonはPython以外の言語であっても私がコードを書くときの指針である。 その一つに、 Flat is better than nested. という文句がある。深いネストはコードの可読性を著しく落とす。スクリーンの右のほうに文字が寄っているコードは大変読みづらい。…

正しい開発プロセスなんてあるのだろうか

良いソフトウェアを生み出すためには良い開発プロセスが必要である。ソフトウェア工学のセントラルドグマだ。 複数人数で管理のない体制の中でまともな製品が生まれることはない。烏合の衆が勝手気ままに動いて製品が出来上がるほど我々は賢くない。 大きな…

文章作法指南書一覧

2015-08-29 『「超」文章法――伝えたいことをどう書くか』を追加した。 2015-08-29 『日本語の作文技術』を追加した。 2015-09-06 『考える技術・書く技術』を追加した。 文章作法についての本を集めて読んでいる。 読んだ本それぞれについて、特徴・感想をま…

無駄に段落が多い本が嫌い

近年に出版された本は、段落の数が多い。一つの段落の文字数が少なく、頻繁に改行が入っている。1文ごとに改行しているような場合も多い。幻冬舎新書や星海社新書といった新書はその傾向が強いように思う。 以下の1つ目の写真は中公新書『理科系の作文技術…

熱的に死んだ世の中が見てみたい

系の安定点とそこに至る過程を調べることはほとんどライフワークですが、近頃の興味はもっぱら人間です――権力構造がどのようなプロセスで出来上がるのかとか、男女の最適なカップリングはいかなるものか、どうやったらそれを実現できるのかとか。 人間の歴史…

差別化というけれど

差別化が大事、差別化しないと売れない、といいますが本当かなと疑っています。 確かに違いを明確にした方が理屈は付けやすい。 論理とは比較して示すことです。 売る方もアピールしやすいし、買う方も判断がしやすい。私も訊いてしまいます、「何が違うの?…

テストの自動化なんてするもんじゃない

何でもかんでも自動化すればいいってものではないということ。 感覚的にですが、テストを自動化しようと思ったら手動でやる場合に比べて2倍から10倍の手間がかかります。保守を含めると、作るだけに比べて2〜3倍の手間がかかる。合わせると4倍〜30倍の手間…

Scaling parameters of the straw buckets in CRUSH

Scaling parameters of the straw buckets in CRUSH

CephのStraw2について

Cephについて調べております。 CRUSHの中のstraw bucketというアルゴリズムに驚嘆したのですが、改良の余地がありそうだと思えたので、もっといい方法はないかと考えてしました。しかし、Cephの作者はおそろしく頭がよく、私の発想の2段階先に行っていました…

『日本語の活かし方』

日本語の活かし方 (星海社新書)作者: 福嶋隆史出版社/メーカー: 講談社発売日: 2015/06/26メディア: 新書この商品を含むブログを見る 論理とはなんぞやとずっと考えています。最近気づいたのは、 論理学的な意味での正しさを求める論理 何かを主張するための…

Ceph, 特にCRUSHアルゴリズムについて

Cephに興味が出たので調べていまして、そのメモ代わりに…… どのサーバーが何のデータを持っているのか覚えておかなければならない問題 分散ストレージシステムで面倒な課題にデータの位置の管理があります。あるファイルがあったとして、そのデータを読みた…

AZIT: 高効率ローマ字入力法AZIK改良版

ローマ字入力の効率を向上させる入力法AZIKというものがあります。これを改良したAZITというローマ字入力法を作っています。 Google日本語入力用のローマ字テーブル: mozc_azit.txt 入力方法: README.md 今回は、AZIKのどこをよいと思ったのか、どこが気に…

日本語入力効率化のためのローマ字表

役人は文章を書くのが仕事です。 日本語入力を素早くすることは、役人の生産性向上のためには必須です。 親指シフトを覚えようかと本気で考えていました。しかし、親指シフトは学習コストが高すぎます。また、今後消滅するの方向にあるのはまちがいありませ…

連歌とWebと

連歌というものがあります。五七五と七七の句を交互に出し合って、複数人で歌をつくるというものです。 これ、Webでやったら面白いんじゃないの?と思いました。 懐かしのCGI掲示板的なものは見つけました: Web連歌 これはこれでサービスとして成立していま…