【雑記】 |
2009/12/30 うぁ |
区切りを付けて帰省、の予定だったのだけどここに来て食中りで丸1日寝込む(x_x) 未だ回復ならずでかなり引きずり気味、残り1日を切ったが間に合うか?
|
2009/12/28 いつの間にか専門職? |
PHPで暗号化を検討する必要があったので色々調べてみるがどーも標準では用意されていないみたいなので、外部モジュールから引張ってくるか自前で起こすか、あるいは見送るかについて検討を要す. 外部から持ってくるのは既に組み込まれているなら問題無いが、そうで無い場合は先方の管理コストを考えると余り望ましくなく、一応手持ちのコードとしてはAESとBlowfishがあるのだが、AESは移植に手間がかかるのと若干スクリプトに乗せるには実行コストがかかるのが難点、反面Blowfishはサルでも実装できる(*1)のでそれだけメジャーに扱えるので少々心配だったり. まぁそれはさておき (PHPに限らず) 暗号化について検索してみると、モジュール引張ってきて何となく使ってというのが圧倒的に多い事に驚く、それも異なるプラットフォームで違うライブラリを取ってきて、それぞれの結果が一致するものを使って処理するとか、正直考えられん話がちらほらと、、、しかも「何となく」素のECBを先頭から適用ってそりゃあり得んわーみたいな、数年前はともかく今だとDVD-ROMやBlueRayも実用化されているのでレインボーテーブルも得易くなっている、クラウドブームのおかげもあるので、新しいロジックに対するレインボーテーブルの生成や検索もご家庭で簡単にできる時代、せめて先頭にランダムバイトを付加した上でのCBCもしくはOFB,CFBだよなーなんて考えながらつらつら眺める. この手の話は暗号扱うなら当たり前だと思っていたのだけど、意外と世間はアレなんかねーなんて思いながら、そういえば以前も画面の描画品質がキモになるアプリケーションの設計でアンチエイリアス処理にGDI+を使うという話を揶揄した際に友人のプログラマに「何が間違っているのか分からない」と言われて愕然とした事があったのだが、何ともはや. まぁ専門バカの典型にはまり込まぬよう、リスクや戦略上の想定ケースをクリアできるなら何でも良いったー何でも良いのだが(笑) それでもその想定ケースさえ見えてなくて「おまじない」になっていたら超ヤバい、っつーかそれで「技術」とか言ってたら明確に詐欺だよなーなんて思ってみたり. まぁとは言えその辺に呆れ果て世から背を向けた身であるので今更誰かに何かを言おうとも思わぬが. 例えばGDI+やJavaのフォントのアンチエイリアスにしてもゲームなんかの一時表示なら全然問題無いが、フォント自体の字体が主体になる製品じゃ全然使い物にならないじゃんみたいな話とか、実際に作っているプログラマがそれを理解できないとしたら致命的を通り越して論外じゃーんとも思ったりするのだが、、、 :-< まぁ何も言わないとは書いたけど、取り合えず以前友人に「コンピュータ言語の一つも実装できないヤツとは一緒に仕事なんてできない」(*2)と言われて激しくムカついたので、似たような話で「PhotoShopのフィルタ程度全て実装できないヤツはプログラマとは言わない」(*3)位は言っておきますかね :-P そんなこんなで今年も結局相変わらずな一年、来年もまー似たようなモノでしょーみたいな. 取り合えず年末は実家に帰る予定なので、これで打ち収め、もしかしたらもう一回位何か書くかも、みたいなそんな具合で ;-)
*1) あくまで「実装は」の話であって決してBlowfishそのものを愚弄する意図は無い、その理論の構築に至る人間の知恵については無論賞賛され、また最大限の敬意を以って然るべしとは思っている. *2) とは言えこれは決して極端な意見でも無い、プログラム言語処理系の作成では非常に細かい粒度のデータ構造が発生し、特に実装をGCの無い言語で扱う場合に、安定したプログラムを作成するにはこれらを適切に管理せねばならず、また使用するアルゴリズムも非常に基礎的なものの複合体になる為、データ構造の設計やアルゴリズムの教材としては非常に良いものではある. *3) と書いてみたものの実際のPhotoshopのフィルタは一見教科書通りに見えても境界処理や極限条件などを考慮した非常に質の良い実装がされており、他の画像処理ソフトにありがちな取り合えず実装した機能とは一線を画している、これらについてコンピュータ業界でよく言われる言葉だけの「品質」という虚言を捨てて、本来あるべき製品の品質とは何ぞと考えてみるのもまた一興也哉.
|
2009/12/11 |
何かこういうのを取り上げるのって欲求不満や口煩い年寄りっぽくてどうかと思ったのだけど、やっぱり挙げてみる. んーまぁどこの業界も似たようなカンジなのかねぇ、みたいなカンジで苦笑する事しきり、ちなみにトップページはこちら まぁ耐震偽装の時にコンピュータ業界ではこういう話は日常茶飯事だ、といった趣旨を書いた、しかも恐ろしい事にそれが「当たり前の事」として技術系のページや掲示板などでも頻繁に与太話やともすると本題に関連して出てくる辺りは、まだそういった話が「隠される」建築業界より深刻 (というか異業種ではまずこのような状況はあり得まい、例えるなら食品工場の話で「現場はゴキブリだらけでね、仕方ないから消毒液を直にかけているんだ」みたいな話と同質のものだし) と言えるかもしれない. まぁ職人芸という話も技術面やプログラマのやり甲斐といったものを抜きにして、経営面から考えると非常に難のある話なので、多少辛辣ではあるが一概にこれが良いとは言えまい(※1) 実際「ソフトを売る」のか「インフラ(※2)を売る」のか、あるいは「サービスを売る」のかによってこの辺りのリスク管理の比重は変わってくる、まぁわかり易く言うと最初のものでは相変わらずC/C++が主流にならざるを得ないし組み込みで無くデスクトップで動かすものでさえアセンブラの重要性すら失われていない、2番目のものは昔はVBなどの分野でJavaや最近ではC#などが食い込んでいる、最後の分野は最近出てきたLL系などは主にこちらに分類されよう. 売っているものは一見同じでありながらも売り手・買い手側の様々な想定リスクによる重要性の配分は明らかに違う文化圏を生み出しているとも言える. まぁそういった話を抜きにして少なくとも自分の場合今の得意分野 (比較的コアのアルゴリズム部) をメインで行く限りは、少なくとも望めば幾らでもソースコードを復元できてしまうJavaやC#を使う事はまずあり得ぬ(※3)ので悩むだけ無駄ではあるのだが(苦笑)
※1) とは言っても実際の所「自分の住む家」となるとやはり職人さんに作ってもらいたいのが常であり、物事の本質的にはそれ以外の何物でも無いので、それ以外は全て詭弁ではないかという言い分にも一理あるのも確かなのだが. ※2) システムという言い方の方が分かり易いかもしれない、ただこの単語はその中の比重配分を覆い隠してしまう気がするので意図的に避けた ;-) ※3) 別にケチってるつもりも無いし、昔は全てのソースコードを公開してたものだったが、結局コンピュータの普及やオープンソースが一般に声高に言われるようになった頃から、プログラマ界隈のコミュニティもS/N比のNが非常に増加したし、プログラム系の掲示板やMLもともすると学生の宿題や職業プログラマの目の前のノルマを解消する為の質問専用掲示板のようになり、回答側と質問する側で明確に階層が分かれてしまった気がしている. そういった意味では今のプログラムコミュニティには昔のような親近感は感じないし、公共の利益という言葉もまた実に空虚なものに感じられる. また自分自身の腕が上がる (と言う程まだまだできるワケでもないが(^^;) につれ手持ちのものの中には専門の商用ソフト以上の結果を出せるものも増えてきた中では、そういったものに安易に万人がアクセスできる状況にする事が必ずしも、正直者が報われるフェアな社会に貢献する事にはなるまいという所にて. 後は様々な社会経験の中で周辺に群がるハイエナのような人間も沢山見てしまったし、もうあの頃には戻れない〜みたいな :-P --------------- まーこんな事は余りチマチマ考えてても殺伐とした内容にしかならぬので、お口直し. シンダーハンネス (注:マクドナルドやKFCの新しいメニューの名前では無いので注意) アノマロカリスから+1億年、実に素晴らしい. デボン紀と言えばやはりウミサソリなのだが、昔アノマロカリスの絵を見た時最初に連想したのがウミサソリだったのだが、この辺の関連が解明されていく事を期待 :-D~~~ カンブリア紀の生物って奇妙だと言われるけど、カブトエビとかグソクムシを考えると余り変でも無いよーな気もするのが面白い、カブトエビも目は3つあるしね ;-) いやまー古虫生物門とかネクトカリス辺り (個人的にはハルキエリアもイマイチ納得行かない) は確かによー分からんが(笑) # ちなみにカブトエビ飼育キットは廃刊になってしまった学研の科学の付録だったのが記憶に残っている、脱皮の皮がほぼそのままの形で残っているのを観察したり、実に面白かった. その後近所の田んぼにもコオイムシと一緒に大量発生していたので取りまくった事なども子供時代の良い思い出ではある、その田んぼも今は埋め立てられて駐車場になってしまったが(苦笑) LHCもやっと動き出したし、色々楽しみだ :-) |
2009/12/7 |
調べ物をしていて見つけたページ (少々今更ではあるけど、web系は全くの専門外なんで許して(^^;; あー成程成程というカンジ、行列Mは (非常にざっくりとした表現だが) ランダムにページを訪問した場合に各ページに訪れる率を表す写像で、これを無限に反復した場合の各ページの獲得訪問率は絶対値最大固有値に支配される (これは写像の一般論) ので固有ベクトルの成分比によって表現されるという事になるワケか、うーん言ってみれば当たり前なんだけど無からこれを思いつくのは結構大変な話だなぁと感心する事しきり (ただ大学時代これと似たような話をプラントの連結分析でやったよーな気もするのだが、この頃は遊び呆けてたので余り定かでは無かったりorz) まー頭の体操がてらという程度の話ですが、非常に面白かったので(^^;; 2009/12/8追記) ちなみにPageRankで検索(※1)すると何か色々書かれてて、最近はこのアルゴリズムでは無いか、上の話は単純化されたものでリンクの判定条件などには様々なバイアスをかけて工夫しているような気がする. ※1) 余談だがこの検索結果でピックアップされる項目を見るに人間の業なのかねぇ、みたいなカンジでちと寂しいものを感じる部分はアリにて、まぁその界隈にはその界隈の事情とかあるのだろーとは思うけど何かもの凄く空虚なものを感じてしまったりsigh :-< |
2009/12/3 |
改めて2次元DFTの式を見直す、教科書通り漠然と縦横で2回DFTかけてそれで2次元の拡張もいけるんだ、みたいな見方をしていたのだが、結論としてそーなるだけで基底としてはx方向とy方向の基底を掛け合わせたもの φxi (t) ・φyi2 (s)を基底とした分解になる模様 (それぞれの制約からこれもまた直交基底の条件を満たす) それで直交基底の係数分解はグラムシュミットの直交化 (難しい名前がついているけど要はベクトルを全部の基底に投影(内積)してやればその成分の係数が求まるって話) を用いる為、Hermite内積を取るが、ここでconj( f(x)・g(x) ) = conj( f(x) ) ・ conj( g(x) )より結果的にあの式として縦横の分離したものと一致していると言う事っぽい. うん、まぁそれだけ、備忘録代わり(笑) 後はwaveletも取り合えず計算を一通り流して、一般化された基底の話など一応基礎的な内容は理解できたと思う等々. PHPは、、、キカナイデ (ヲイ --------------- Javaで何か作るかとつらつらコーディングするものの、相変わらず内容が冗長になり過ぎて途中で挫折. まぁ無理して用途を探す必要も無い気もするのだが、一応世間では最もよく使われる言語だし、これだけオモチャやネタがあるんだから全く使わないのも何かもったいないなーという所だが、どーにも良い具合に生かせる個所が思いつかぬ辺り、どうにも年かなぁなんて思ってみたり、うーむ :-< --------------- あれまー 学習は正直どうでも良いが(ぉ、科学は子供の頃購読していて、その後の自分の趣味にも大きな影響を受けただけに少し寂しいものが、、、やっぱりカリキュラムで結果までお定まりの実験とかじゃなく、自分で考えて試行錯誤しながら事象を様々な角度から見て触れられるというのは物事に対する興味を育む上で重要だよね、なんてガラにも無い事を言ってみる :-< |