flint>flint blog
Page: « 0 1 2 3 4 5 6 7 8 9 10 11 12 13 »

生トマトドリンク

7月も残すところあと少し。甲府は最高気温33~34℃という灼熱の日が続いていますが、皆様におかれましては如何お過ごしでしょうか。 連日こうも暑いと、調理をするのはおろか、食事を摂ることそのものすら億劫になってきますね。 私自身そうした傾向が顕著なので、「夏を乗り切る」料理のレパートリー拡充は重要な課題だったり。

そんなわけで、今回は一般的なトマトジュースとは一味違う、トマトを使った特製飲料の作り方を紹介したいと思います。

read more >>
Narita
このエントリーをはてなブックマークに追加

The 4th Anniversary

月日の過ぎるのは本当に早いもので、独立してから4年が経ちました。 未だ法人化もできてはいませんが、それでも縁故もなかったこの山梨で事業を継続できているのは、ひとえに周囲の皆様の力添えによるものでしょう。

さて、これまでの仕事であちこちの現場に入らせて頂いていますが、その在り方は本当に多様です。 規則・規約でアウトプットの内容と形式を厳格に制限し、技術者を「部品として扱う」ことが徹底されているところもあれば、「技術者に (しかも外部委託先である私) にここまでの裁量を与えて大丈夫なのだろうか」とこちらが心配になるほど奔放な会社も。 また、内部の雰囲気についても然りで、従業員間で公私共に良い関係が築かれている職場もあれば、互いのプライバシーには極力干渉しないといったスタイルもありで、一概にどれが良い・正しいと言えるものではありませんが、そうした違いを観察できるのは、個人事業主ならではの醍醐味かも知れません。

そんなわけで、このエントリでは、そうした多様な現場を渡り歩いた経験から、特定の企業・団体に限らず、IT業界全体 (といっても私の観測範囲など多寡が知れていますが) について私が感じていることを述べてみることにします。

read more >>
Narita
このエントリーをはてなブックマークに追加

引数のデザイン

私が受ける仕事には、新規のプログラムを開発するのではなく、既存のプログラムの動作を変更したり、新しい機能を追加したりする「改修案件」が多く含まれています。 この改修案件では、新規開発と比べて、書かなければならないコードの量はずっと少なくなるのですが、その前段階にある「他人が書いたコードを読み解く作業」がなかなかのクセモノ。 つい先日も、JavaScript を使用したウェブページ上のアニメーションの改修作業を行ったのですが、まず既存コードがどのような動きをするのかを調べるのに大変な苦労をしました。

そのコードの動作を追うのが難しい理由は色々ありますが、最も大きな要因は、プログラム内で定義されている各関数の使い方が分かりづらいこと。 関数とは処理のシーケンスの中から関連する部分を分離して名前を与えたものであり、プログラムを読み解くための重要な手掛かりとなります。 しかしそれ故に、関数の設計が適切になされていないプログラムの読解は非常に厄介なものになってしまいます。

通常、プログラムを書くときは、処理をただ順番に書き下すのではなく、いくつかの「関数」に分割します。 これによって各ステップの処理が部品化され、再利用が可能になるわけですが、関数分けの効用はそれだけに留まりません。 たとえ、たった一度しか実行されない処理でも、これらを上手く関数化し、本体から分離することで、プログラムの可読性・保守性を向上させることができます。

flint blog: 関数分けの効用
read more >>
Narita
このエントリーをはてなブックマークに追加

「選択アルゴリズム」と「中央値の中央値」

ある小説の登場人物、あるいは、あるアーティストの曲といった集合について考えるとき、「それらの中で最も好きなものはどれですか?」という問いに答えることは (甲乙付け難くて悩むケースもあるかも知れませんが) 比較的簡単です。 しかし、「2番目に好きなものは?」「3番目に好きなものは?」...といった具合に質問を続けていくと、どんどん回答が困難になっていくはず。 最も嫌い (好きでない) ものについては、好きでないものと同じように簡単に答えられるので、最も特定が困難なのは、好きな (あるいは嫌いな) 順に並べたとき、そのシーケンスの中央に位置する要素だと言えるでしょう。

私はこれまで、プログラミングにおいてもこれと同様の問題が存在する、即ち、ある配列 (要素数n )について特定の指標に沿っての並べ替え (ソート) を行ったときに中央あるいはその付近に配置される要素を特定するには、ソートそのものと同じオーダ、つまり最低でも O(n logn ) の計算量が必要になると考えていました。 しかし実は、それはまったくの間違いで、選択アルゴリズムと呼ばれるものを使用すれば、線形、即ち O(n ) の計算量でこれを探し当てることができます。

このことは計算理論ではごく初歩的なトピックらしく、これまで知らなかったことについて大変恥ずかしくなってしまうわけですが、実際に調べていくとなかなかに複雑なものであることが判明。 そこで、自分なりに理解できたことをまとめて、ひとつのエントリとしてみることにしました。

read more >>
Narita
このエントリーをはてなブックマークに追加

内製のススメ

気が付けば前回の投稿から随分と時間が経ってしまいました。 仕事の方がなかなかにスパイシーな状況であったため、平日は殆ど何もできず、休日は家の中のことや、各種手続き、そして何より疲労の回復が最優先となり、ブログ記事を書く余裕を持つことができなかった次第。 しかし、それらのゴタゴタもようやく一段落し、気力・体力ともに以前の水準まで復旧しつつあります。 そんなわけで、文章作成のリハビリも兼ね、以前より構想していた「業務管理システムの内製」について、思うところを書いてみたいと思います。

私はこれまでに幾つかのお客様のオフィスに入って仕事をさせて頂いてきました。 その際、どこの現場でも共通して感じるのは、製品として提供されるソフトウェアシステムの開発技術と比較して、社内の業務を管理・支援するシステムが圧倒的に貧弱である、ということ。 顧客向けのプロダクトして創意と工夫を凝らしたソフトウェアを生み出す一方で、勤怠・スケジュール管理, 内部レビュー, インシデント報告, 各種申請・稟議といった社内業務は市販のグループウェアや、Excel などによって賄われている場合が殆どです。 もちろん、それで業務が効率的に回っているのであれば問題はないのですが、実際のところ、そうした本質的でない作業 (およびそれらが正しく行われているかのチェック) にかなりの時間と労力が費やされています。 ひとつひとつの手間は些細なものでも、職場全体で1日あるいは1ヶ月あたりにこうした作業に浪費されるコストを見積もってみると、「必要経費」として簡単に割り切ることが難しいほどに大きくなるのではないでしょうか。

私は以前、自分の勤務時間を毎日4ヶ所に入力しなければならない現場に入ったことがありましたが、それぞれの入力ファイル/画面上での配置や書式が異なっていたため、食い違いなくデータを記入するために (それなりに) 神経を使いました。 各作業員が留意に努めて、1日あたりの記入ミス発生率を0.5%まで抑えたとしても、20人がいれば、そのうちの誰かが間違える確率はおよそ1割。(1 - 0.99520 ≅ 0.095) 平均すれば10日に一度は集計にエラーが紛れ込む計算になります。

とは言え、こうした社内業務のためのシステムを自分たちの手で作るとなれば、やはりかなりのコストが掛かることは想像に難くありません。 しかしながら、システムの内製は、適切な管理・運用を行うことさえできれば、それを補って余りあるメリットを生み出すことができる、というのがこのエントリにおける私の主張です。

read more >>
Narita
このエントリーをはてなブックマークに追加

プラセボ効果との付き合い方

みなさんは、「プラセボ (プラシーボ) 効果」と呼ばれるものをご存知でしょうか。 最近ではネットなどで発信される健康・医療情報や、フィクション内での薀蓄として言及されることも多いため、聞いたことがあるという人も多いかもしれません。

しかしながら、その内容をきちんと理解している人はごく僅か。 殆どの人は「暗示や思い込みによって病気が治ること」だと認識しているのではないでしょうか。 ある種の人たちによって、精神の力で病気や障害を克服する、いわゆる「念ずれば通ず」の例として取り上げられることもしばしば。 また、科学・医学では説明のつかない (とされる) 超常的あるいは神秘的な現象に説明を与えるためのロジックとして用いられることも多いようです。

ガダラの豚 (III)

「こんなことは大生部先生の方がお詳しいでしょうけれど。 たとえば学者の間でよく話題になるのに "プラシーボ" ってものがあるわ」
「プラシーボ。 偽薬だね」
「そう。 通常のお薬でなかなか症状の退かない患者さんに、小麦粉を渡すの。 その際、"これは非常に高価で貴重な薬だが、特別に処方します" といった情報を与えておくの。 それでみるみるうちに症状がおさまってしまうことが実験例としてあるわけ」
「メリケン粉でかね」

「そうね。 西洋医学者の中にはムキになって反論する人もいるけれど、私は認めるわ。 病気と言うのはね、人間のひとつの "表現" でもあるのよ。 肉体が何かを訴えかけてきていて、無意識のうちに治ることを拒否している場合もある。 そういうときにプラシーボ的なもの、それは偽薬じゃなくて呪文だっていいわけだけれど、そっちのほうが効く場合もあると思うの」
大生部が言った。
「それは封じ込められていた人間の自然治癒能力を引き出すってこったな」
「そう。 ただの鍵にすぎないのよ。 パワーの詰まった部屋の扉を開けてあげるの」
「私も異論はないね。 キリストも空海も、マホメットも、聖人というのは万能の合鍵を持っていて、人々に奇跡を起こしてきたんだ。 欧州には昔から "ロイヤル・ハンド" というものがある。 これはいわば国王による手かざしだな。 病人には劇的に効くもんだそうだ」

こうした通俗的な見方に反して、現代の医学・医療においては、プラセボ効果は強く注目されると同時に、詳しく研究されてもいます。 ただし、上記で述べたような「人間の可能性 (自然治癒力) を引き出すもの」「新たな治療を拓くもの」としてではなく、治療効果の正しい評価を妨げる厄介な相手として、ですが。

read more >>
Narita
このエントリーをはてなブックマークに追加

ナスとキュウリの塩揉み

5月が終わったばかりだというのに、先日より真夏日が続いてる甲府市。 今日の気温は35度だそうで、この調子ではまた昨年のように記録的な猛暑になるのではと恐れ戦いております。 いやぁ、あの生命力の塊のようなセイタカアワダチソウが立ち枯れるさまを今年もまた見物できるとは愉快至極......なわけもなく、今から憂鬱なことこの上ありません。

さて、こうも暑いと食欲も減退気味なわけですが、食事を疎かにすれば身体はますます弱っていく一方。 そんなわけで、今年もまた個人的に頼りにしている「夏を乗り切るための料理」を紹介してみたいと思います。 (ちなみに一昨年紹介した料理はこちら: 冬瓜と鶏肉のスープ)

read more >>
Narita
このエントリーをはてなブックマークに追加

Less Chance to Make Mistakes

私の大学時代の指導教官 (Prof. Nikolay N. Mirenkov) は、このようなフレーズをよく口にしていました:

"There is more (less) chance to make mistakes."
「そういうやり方だと、間違い易く (難く) なるよね。」

これは要するに、「間違えて欲しくない操作を受け付けるシステムは、そもそも間違えることができないようにするべきだ」という主張です。

ソフトウェア工学において、ユーザインターフェイスの設計は重要な研究課題のひとつ。 人間工学などの観点を取り入れ、それを使う人間にとって、より負担の小さい、「自然な」システムを作るための知見や方法論が積み重ねられています。 例えば、「フールプルーフ (バカ避け)」と呼ばれる設計思想などがここに含まれます。

ところが、現在のIT産業の現場を見渡してみると、こうしたソフトウェア工学の概念あるいは技術が未だ充分には浸透していないように観察されます。 顧客に向けて便利で快適なシステムを提供することに腐心する一方で、自分たちの日々の業務に関しては、時代錯誤的とも言えるほどに原始的で不便な仕組みが採用されている現場は意外に多くあるもの。 これぞまさしく「紺屋の白袴」というやつです。

read more >>
Narita
このエントリーをはてなブックマークに追加

息抜きの作法

ペンローズ・タイル

先日、探し物をしていたら、部屋の片隅から会津にいた頃に作った玩具 (左写真参照) が出てきました。 これは段ボールペンローズ・タイルと呼ばれる、周期的でないパターンで敷き詰めることのできる形に切ったもの。 これを上手く並べるにはちょっとしたコツが必要で、全体の構造を考えながら進めていかないと、ピースを入れられない隙間ができてしまいます。

仕事に詰まったときなど、床に座ってこれを並べていると、しばらくは無心でタイリング作業に没頭できるので、気分転換にはうってつけ。 ピースの数がそれほど多くないので、気が付いたら30分も経っていた、ということもありません。 こうした気晴らしの手段をどれだけ持っているかということは、仕事を長く続けていく上では意外に、そして、なかなかに重要なことなのではないでしょうか。

そんなわけで、今回は私のリフレッシュ法のいくつかを紹介してみたいと思います。

read more >>
Narita
このエントリーをはてなブックマークに追加

短縮URL廃絶運動

私が常々「ウェブ上から消えればいいのに」と思っている仕組みのひとつに、短縮URLサービスがあります。 短縮URLとは、例えば以下のURL:

http://t.co/rxhxUZXsR6

のようなもので、これをブラウザのアドレスバーに入れて移動すると、

flint blog: チョークのマークひとつ
http://www.flint.jp/blog/?entry=56

へとリダイレクトされます。 この種のサービスが出現したのがいつのことかは定かではありませんが、1投稿あたり140文字までという制限のある Twitter の普及に伴って、頻繁に目にするようになりました。 現在では、多くの人が、毎日、大量の短縮URLをクリックして、ウェブコンテンツの移動を行っていることでしょう。

しかしながら、短縮URLには「健全な (と私が考える)」ウェブの発展を阻害する性質が備わっています。 このエントリでは、それらの性質について紹介していきます。

read more >>
Narita
このエントリーをはてなブックマークに追加
Page: « 0 1 2 3 4 5 6 7 8 9 10 11 12 13 »