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

でかいテーブルの恐怖

あけましておめでとうございます。 1月も既に半ばではありますが。 昨年10月の下旬から始まった仕事のスケジュールがこれまでと較べてかなりタイトなもので、ブログの更新もすっかり滞っておりました。

今回の仕事を含め、大学時代から、何故か他人が作ったシステムの分析・改修を手掛けることが多いのですが、それらの中には動作しているのが不思議なほどに設計・実装がグダグダなものが少なくありません。 特に、データベースを利用するような比較的規模の大きなシステムにおいては、そうした出来の悪さは「手の施しようのない」悲惨な稼動状態 (加えて、にも関わらずなんとかしなければならない凄惨な作戦状況) を生み出すことに。

このエントリでは、その要因の一つである巨大な (カラム数の多い) テーブルについて述べていくことにします。 テーブル定義が肥大化する要因を個別に検討する前に、私のおおまかな判断基準を示すと、

  • カラム数20超: 脳内で黄色ランプが点灯
  • カラム数60超: 脳内で赤ランプが点灯
  • カラム数100超: 赤ランプが回転

といった具合になるでしょうか。

ちなみに、これまでに遭遇したことのあるテーブルのカラム数の最大値は376。 定義をコンソールで確認しようとしても、テキストが一瞬で画面上方にスクロールして飛び去ってしまいます。(泣)

>> 続きを読む
成田
このエントリーをはてなブックマークに追加

増刷御礼

仕事が途切れ、二ヶ月半に渡る夏休みを過ごしていましたが、先月の下旬から新しい仕事が始まりました。 それに伴い、昨年七月に独立したときに作った名刺 (参考: 営業資料作成中) が底をついたので、増刷を発注。 当時は「この名刺を使いきるまで事業を続けられるのだろうか」と不安を抱いていましたが、周囲の方々のご支援とご協力により、今日に至るまで flint の名前での活動を続けることができております。

今度の仕事は、Access/VBA によって構築されたアプリケーションの改修作業 (の支援)。 またしても未経験のプラットフォームということで、学ばなければいけないことが多く、退屈している暇はありません。 技術者、殊にプログラマは、常に新しい技術を習得し続けなければ生き残れないということを改めて感じています。

なお、日本全国の Access ユーザの皆様におかれましては、テーブルやカラムの名前に全角英数字や半角カナおよびそれらの入り混じった文字列を使用することは出来る限り控えて頂きたく、ここに伏してお願い申し上げる次第です。m(_ _)m

成田
このエントリーをはてなブックマークに追加

震災の「呪い」としてのEM菌

東日本大震災からおよそ一年半が経過しました。 当時私が住んでいた会津若松市から東へおよそ100kmの地点にある福島第一原発およびその周辺地域はもとより、日本の至る所で、多くの人々が今なお、事故によって飛散・堆積した放射性物質に苦しめられています。

放射性物質による汚染が厄介なのは、その度合いが目に見えないこと、健康への影響が (あるとすれば) 長期を経て現れることに加えて、通常用いられる「消毒」「殺菌」などの手法が悉 (ことごと) く無効であるため。 例え放射性物質を一箇所に集めることが出来たとしても、それを洗おうが焼こうが、以前と変わることなく放射線を出し続けます。 むしろ、水と共に流れ出たり、灰に混じって飛び散ることによって、土壌や建築物のより深い部分まで拡散させてしまうことになりかねません。 従って、除染作業は、科学的に正しい知識を以って慎重かつ計画的に進める必要があるわけですが、現在、福島県やその周辺に、そうした事情を「食い物」にする手合いが跳梁しています。

例えば、「放射性物質を分解する」「内部被曝に効く」との触れ込みで販売される味噌・乳酸菌などの発酵食品や、機能水などがそれ。 放射性同位体は、「通常の元素」と化学的に非常に良く似た性質を持ち、それ故に、生物は各種の同位元素を識別することができません。 (その性質を利用して、同位体マーキングなどが行われる。) また、その放射性崩壊は化学反応ではなく、それよりも遥かに高いエネルギーを必要とする領域で発生する現象であるため、生物がいかなる作用をしたところで、それを阻止・阻害あるいは促進することは論理的に不可能であり、そうした現象が厳密な観測において確認された例も皆無です。 また、「酵素が放射線によって傷付けられたDNAを修復する」といって売り込まれるものについても、虚偽であると断定してよいでしょう。 DNAの修復に酵素が作用することは事実ですが、一口に「酵素」と言ってもその種類は山ほどある上、外部から摂取した酵素がそのまま体内で作用することは (少なくともDNAポリメラーゼについては) ありえません。 もしも、彼らの言う通りに、外部から取り込んだ酵素 (= タンパク質) がそのまま体内に拡散して作用するならば、アレルギーによって生命の危機さえ招くことになります。

そうした全く根拠も効果もない「放射能対策」を、不安と戦いながら自らの生活を支え、復興を進めている人々に売りつけ、貴重な金銭, 労力, 時間, 健康を詐取する連中は、「正真正銘のクソ野郎」どもと呼ぶのに相応しい存在。 「溺れる者は藁をも掴む」とは言いますが、だからと言って、藁を差し出してそれに縋らせる行為を正当化するロジックなど、どこにもありはしません。

追記 [2012/10/26]

本エントリ中で紹介していた動画が見れなくなってしまいました。 その内容を知りたい方は、以下のページを参照してください。

EM除染検証番組をぜひ全国ネットで - 杜の里から
http://blog.goo.ne.jp/osato512/e/af892477816c3e8e82e8b776e302ede9
フジテレビEM菌報道の文字越こし - Togetter
http://togetter.com/li/395287

追記 [2013/10/27]

>> 続きを読む
成田
このエントリーをはてなブックマークに追加

直線と点の距離

三次元形状を扱うプログラムを作成している場合、直線と点の距離を求める処理が必要になることが多々あります。 例えば、マウスクリックによってオブジェクトやその頂点を選択できるようにしたい場合などがそうでしょう。 二次元空間内であれば、直線と点の距離は

などに掲載されている式で求めることができますが、これを三次元に拡張した場合、平面と点の距離を求めることになってしまうため、目的の用途に使うことはできません。 この問題を正しく解くためには、直線と球の交点を求める式から出発する必要があります。 以下、図と式を簡略化するため、二次元内の直線と円の交点を求める方法をもとに解説を行っていきますが、最終的に得られる式の形に違いはないので、次元の違いには拘らずに以下を読み進めてください。

図1
>> 続きを読む
成田
このエントリーをはてなブックマークに追加

メタヒューリスティクス

現在、仕事のオファーが途切れているのですが、せっかく自由になる時間ができたので、営業活動と並行してサーバのメンテナンスや独自システムの開発などに手を付けています。 早期に公開して利用してもらえるようなシステムの計画もあるにはあるのですが、それとは別に若干毛色の変わったもの - 進化的アルゴリズムによる他のシステムへの応用が可能な問題解決の仕組み (メタヒューリティクス) を試作中。

地球上の生物は、(ごく大雑把に説明すると、) DNA上に塩基配列としてコードされた遺伝子を、突然変異自然選択によって進化させることで、複雑で高度な機能を有する肉体 (頭脳もその一部) を作り上げてきました。 この進化の仕組みを、肉体というハードウェアではなく、ソフトウェアへと適用すれば、複雑で高度な機能を有するプログラムを生成することもできるのではないか、というのがこのプロジェクトの基本的な発想です。

とは言え、汎用性のあるものを作ろうとすれば、その規模は非常に大きなものとなり、その開発も緻密な設計と長い期間を要するものに。 最初からそのようなものを目指してしまうと、アプローチの妥当性を検証したり、その結果を修正・改良へとフィードバックさせることは困難になってしまうでしょう。 そのため、現在は非常に限定された範囲 (ドメイン) の問題を解く仕組みを用い、そこで得られた知見をもとに、より広汎な問題を解けるものへとステップアップしていくことを企図しています。

>> 続きを読む
成田
このエントリーをはてなブックマークに追加

法律とビジネスと

Business Law Journal [Oct 2012]

私はこのブログにおいて「武雄市図書館問題」を取り上げ、そのプライバシー情報の取り扱い姿勢について批判してきました。

その最初の記事にも書いたように、特定個別の事案を批判するのはこのブログの性格上不適当であるという認識はありましたが、この問題をめぐってのIT業界の不穏な動向に危機感を覚え、上記の記事を書いた次第です。 そんなわけで、今後はこの問題への言及は行わないようにするつもりでしたが、ここに至ってまた新たな「悪しき流れ」が起こりつつあるため、これを食い止めるためのカウンタとして、急いでこの記事を書き始めました。

問題に気が付くきっかけとなったのは、高木浩光氏の以下のツイート。

Business Law Journal 2012/10月号 http://www.businesslaw.jp/contents/2012... 「ミログ第三者委員会報告書から考える プライバシー情報 ビジネス利用の問題 達野大輔弁護士」は必ず読むこと。 すごい。

これを目にした瞬間、「まずロクな内容ではないだろう」という予想が立ちました。 というのは、この記事見出しで触れられている「ミログ第三者委員会報告書」というものが公正中立を欠くどころか、その遥か斜め上を行くトンデモナイ代物だったからです。 というわけで、書店へと出向いてこの「Business Law Journal 10月号」(1,680円)を買ってきた読んだのですが、結論から言うと、予想を裏切らずしっかりとひどい内容でした。

>> 続きを読む
成田
このエントリーをはてなブックマークに追加

「客観」の落とし穴

社会の中で他者と関わるとき、とりわけ不特定多数を相手とする場面では、自分の考え方・感じ方、即ち "主観" を離れて、より広く理解・共有されることが可能な "客観" をベースとして行動することが重要である、というのはよく言われるところ。 実際、モノゴトの捉え方や理解の仕方は人によって異なるため、「私はこう思う」と言って主観をぶつけあうだけでは、相手の考えを理解したり、落とし所を見つけることは難しいでしょう。 そのため、そうした場面では、互いに了解しうる素朴 (プリミティブ) な事実の確認や、検証可能な尺度を用いた定量的な論述によって議論を進める必要が出てくるわけです。

ところで、この客観というものはそれ単独で超然と存在するものではありません。 客観というのは、複数の主観が共に認めうる事実・理論と、そこからの推論によって導かれるものによって構成されるもの。 従って、それを認める主観群と基本ルールを共有しない別の主観がやってくると、その客観はまた一つの主観に過ぎないという見方を否定することはできなくなります。

と、ここで話は大きく変わってキュウリについて。 世の中には「キュウリが嫌い」という人が少なからず存在するようです。 まぁ、どんな食材にも独特の風味や食感があるので、キュウリが苦手な人がいても不思議はありません。 しかし、私にとって意外なのは、彼らの何人かは以下のようなことを主張すること。

あんな栄養のない野菜なんかを喜んで (買ってまで) 食べる人の気が知れない。

確かに、Wikipedia のキュウリ#栄養の項目にも 「キュウリは全体の90%以上が水分で、栄養素はビタミンC, カロチン, カリウムなどが含まれるが含有量は非常に低い。 ギネスブックには、世界一カロリーの低い果実として掲載された。」 という記述があり、栄養価が低いことは間違いない様子。 けれども、私が抱いた疑問のポイントはそこではありません。 「あなたがキュウリを嫌いなのは味や匂いが原因であって、栄養的に貧弱だからではないでしょう?」と。 寒天大好きな私の立場はどうなっちゃうんですか。

どう考えてみても、彼らがキュウリを嫌う理由は、その栄養ではなく、味や匂いにあるのは明らかです。 けれども、そうした味や香りに対する感覚はあくまでも主観的なものにすぎません。 「どうしてこの味 (匂い) が嫌いなのですか?」と問われたとしても、「とにかくイヤなんだ」としか言いようがないのではないでしょうか。 論理的に説明することは不可能である上、どれほど理屈を尽くしたところでキュウリを嫌いでなくなるとは到底思えません。 これは主観に属する類の問題であり、主観に基づいて述べるのが正しく、客観的に議論しようと考えるのがそもそもの間違いなのです。

しかし、私たちの社会には主観に基づいて行動することイコール我侭・身勝手と考える傾向があることもまた事実。 本人にとってはキュウリを食べることが切実な苦痛であるにも関わらず、周囲から「我慢しろ」だとか「大人になれ」などと言われてしまったり。 また、実際にそう言われることはなくとも、「内心では身勝手な奴だと思っているのだろう」と考えたり、あるいは自分で自身の嗜好を我侭と捉えて苦しむこともあるようです。 そうした葛藤を退ける手段のひとつとして出てくるのが、「私が食べないのは、主観的なワガママではなくて、ちゃんした (客観的な) 理由があるんだ」という主張の組み立て。 栄養価云々というのは、それに使えそうなキュウリの欠点 (と考えられるもの) に過ぎず、それ自体にはたいした意味はありません。

>> 続きを読む
成田
このエントリーをはてなブックマークに追加

過去記事紹介: 「学習」編

独立前に書いたブログ記事に手直しを入れてアップロードしたものへの閲覧者及びクローラ誘導のためのエントリを作ってみることに。 今回取り上げるのは「学習」をテーマにした記事です。

プログラマに限らず、技術者は絶えず新たな技術を習得し続けることが要求される職業。 同時に、必要に応じてそれを後進に教え伝えていくことも、避けて通ることのできないものとなります。 そうした学ぶ・教えるという行為は、業界において色々と見落とされている要素があるように思えたため、そのあたりについて語ってみました。

確かに、コンピュータは、ここ20年ほどで台頭してきた新しいジャンルであり、(最近はその速度が緩んできてはいるものの、) 他の分野と比べて格段に速い進歩・革新が見られます。 しかし、そんな現在のコンピュータ技術もまた、これまで情報技術に携わってきた人々の創意工夫の積み重ねを基礎として成り立っており、何ができて、何ができないかといったことは、それなりの精度で確かめられています。 そうして積み上げられてきた常識・定石を覆すような画期的な発明を行うことは、容易なことではありません。 少なくとも「ちょっとした」思いつきや工夫でなんとかなるほど軽い話ではないわけです。 (もしそれでなんとかなるのであれば、先人たちはどれだけマヌケだったのかということになってしまいます。)

結局のところ、「裏技」を求める人々の心理の裏には、苦労せずに成功したい、というムシのよい考えがあるのではないでしょうか。 「プログラムを書けるようになりたいが、地道で退屈な勉強はしたくない。」 「画期的で高品質なサービスを作りたいが、研究開発や人材教育などのコストはかけたくない。」 そういった願望を持つ人々にとって、この手の「裏技」が非常に魅力的に思えることは想像に難くありません。 しかし、そうした「裏技」の99.9%は「スカ」であることは心に留めておくべきでしょう。

今日の高度に発達した技術に取り囲まれた社会にあって、学生たちの目には、IT業界で活躍するために必要な技能の習得が果ての見えない長く険しい道と映っているようです。 そうした事情も考えあわせれば、「すぐに役立つ」知識・技術に飛びつき、それ以外のことに注意を払わなくなるのもむべなるかな、と思えます。

しかしながら、そのような「効率的な学習」の背後には、「何が役に立ち、何が役に立たないか、予め判断できる」という思い上がりが見え隠れします。 先にも述べたように、見聞きし、触れ、考えたことは、人生において直接何かの役には立たずとも、その人がものを考えるための材料となります。 その材料を学びの過程で拾い集めることなく目的地にたどりついたとして、そこでいったい何ができるでしょうか。

歩いて目的地へ向かっているときは、好きな時に立ち止まったり、気になる路地を見つけたときにひょいとそこに入ってみることができます。 そうやって、面白そうなお店を見つけたり、道の繋がりに気付いたりした経験のある人も多いのではないでしょうか。 学習の場合もそれと同じで、最短経路からの「横枝」を拡げていくことで、これまで無関係だと思われていた事柄がリンクし、知識に幅が生まれます。 自分のいる場所を俯瞰できるようになり、頭の中に「地図」があがっていく感覚ですね。

ところが、移動 (学習) の速度があがるにつれ、この「横枝」を拡げるチャンスは少なくなっていきます。 自動車で移動する際は路地に入れませんし、列車で移動しているときは駅以外の場所で降りることはできません。 その結果、知識からは広がりが失われ、「地図」というよりは一本の線で綴られた「路線図」のようなものになってしまいます。

例えば、建築の現場では、高所作業のために足場を組みますが、この足場は建物の完成時には取り除かれるため、最終的にはそこに残るものではありません。 しかし、この足場をいかに素早く、安定したものを組むか、また、楽に撤収できるようにするかというところに、技術の本質があるのです。 足場は、その上で行われる作業のベースであり、その良し悪しが工事の期間や安全性を大きく左右する要素となることは想像に難くないでしょう。 また、建物が完成してすぐには気付かないかもしれませんが、全体が補修・拡張などの作業を想定して設計されているかどうかは、長期的に見た場合に、その建築物の品質に大きな影響を与えます。

ソフトウェアもこれと同じで、ロジックの共通化、インターフェイスの整備などにより、できあがった「もの」をちょっと眺めただけでは分からない、しかし、決定的な品質の差が生じます。 (参照: 拙速を尊ばない) その差を生み出すのは、一言で表すならば、作られるに際してどの程度「作りやすいカタチ」「壊れにくいカタチ」「直しやすいカタチ」が意識されたか。 しかし、残念なことに、この「作るときの意識 (あるいは思考, 目線)」はドキュメントにも完成品にも残らず、常に抜け落ちてしまうもののようなのです。

成田 (新しいエントリを書く気力がないので埋め草......じゃないよ!)
このエントリーをはてなブックマークに追加

琴川ダム

山梨市にある琴川ダムに行ってきました。 甲府から向かう場合は、甲府山梨道路終点の万力ランプで降りて雁坂みちを通り、牧丘トンネルを抜けたところで左 (西) に折れ、県道219号 (柳平塩山線) に入るのが良いようです。 (諸事情によってここ2日の間に数往復した経験より。)

ダム湖 (乙女湖) の湖畔には駐車場付きの公園があり、散策するには良い場所。 近くにある管理事務所に一般利用が可能なトイレが併設されているという利便性もあってか、釣り人にも人気のスポットのようです。

>> 続きを読む
成田
このエントリーをはてなブックマークに追加

The 1st Anniversary

執務室

甲府市へ引っ越して来てから、一年。 取引先の皆様や、個人的にお付き合い頂いている地域の皆様には大変お世話になりました。 今後ともよろしくお願い致します。

思い返してみれば、この一年間色々なことがありました。 際立った変化として挙げられるのは、これまでと全く異なる環境での仕事故に、習得しなければならない技術が次々と出てきたことでしょうか。

当時エントリで紹介した Asterisk, Ruby on Rails や Android に始まり、MySQL, PHP と続き、現在は TomcatActionScript に取り組んでいます。 とにかく (私にとって) 目新しい言語やフレームワークとの遭遇の連続で、退屈する暇がありません。 また、仕事でご一緒させて頂いている常駐先エンジニアの皆さんとの情報・意見交換は非常に大きな刺激となっています。

余談ですが、PHPについては、その言語仕様のあまりの腐りっぷりに幾度となく苦しめられてたので、近いうちにその駄目さ加減を指弾するエントリを書く予定でいますので、お楽しみに...。

そんなこんなで、扱うことのできる言語やフレームワークも増え、更にデキるようになりましたので、ソフトウェア開発のための人員確保に悩んでいるようであれば、お気軽に声を掛けて頂きたく存じます。

成田
このエントリーをはてなブックマークに追加
ページ: « 0 1 2 3 4 5 6 7 8 9 10 11 12 13 »