Archive for 6月 2009
たまたま
昨日のブログ書いててふと思った話。
僕は「趣味: 数学」とか「母国語は日本語じゃなくて数学」とか言い出す程度に数学好きなわけですが、最近はすっかりそっち方面おざなりで、ウェブでも C# な話題ばっかり書いてたり。
昔はというと、職の安定とか気にしなければ、あるいは、大学に骨を埋める覚悟ができてたならば、情報系じゃなくて理学部の物理とか数学に進んでたかもしれないくらいで。
そのころと今との間には、いろんな「たまたま」があってつながってるなぁとしみじみ思ってみたり。
- たまたま高校の恩師がセミプロのプログラマだったり(ちなみに、理学部物理学科卒で博士号持ちの変わった人)
- 就職を気にして情報系を選んでみたり
- たまたま大学の恩師の専門がコンパイラで、そっちに興味持ってみたり
- たまたま、何かの課題でウェブページ作れって言われたときに、C# って新言語誕生のニュースが出たんで、それをネタにページ作ったり
- (それをそのままウェブで公開したのが ++C++; の始まり)
- MS を好きになったのは C# が出て以降。それがたまたま研究室配属決定直後だったので、研究室のノリと自分の興味が離れ始める
- たまたまタイミング悪く、コンパイラ専門の先生が他大学に異動になっちゃったり、教授の先生が定年退官したりで、ますます研究室にいる理由なくなったり
- そんな折に、たまたま今の職場を紹介してもらって転職
という感じで、本業の方では C# とか Microsoft とか全然関係ないところをうろちょろしつつも、++C++; の記事はどんどん C# に染まっていくことに。一般的なプログラマの人が持ってない、業界的にレアな知識色々持ってるのはそういう経歴のせいだったり。
こみゅぷらす Community Launsh 2009 に行ってきた
こみゅぷらす Community Launch 2009 に行ってきた。
懇親会で飯食い過ぎて。ものすっごい苦しい・・・
まあ、それはさておき、懇親会で出た話題をいくつか。
痛IDE計画、なんかどんどん新しい案が
ほんとに Codeplex 辺りにプロジェクト立ててもいいんじゃねぇかと思う今日この頃。
- キー入力拾って色々できないか?
- バックスペースが多いと、「調子悪いの?」とか心配してくれる
うざい人口無能 - 声付ける?
- もはやゆっくり霊夢の声として定着しちゃったけど、Windows の音声合成機能使う?
- 意外とプロの声優雇うの安いよ。
- 同人ゲーム・同人アニメに結構有名どころの声優さん使われてるのからもわかるとおり、結構手軽に雇える
- 個人的に、ポケットマネーで相当額出してもいい。
自分の趣味的に、後藤邑子雇えるなら○○万円まで出すよ! - 絵をどうしよう。著作権がネックw
- フリーのベクター画像欲しい
- XAML共有サイトとかできないかなぁ。
- フリーのデスクトップマスコットのスキン画像とか使わせてもらう?
- むしろ、版権持ってるメーカーは積極的に販促に使ってくれ!
- 某 m@ster な会社辺りが、TGS とかで来場した開発者様にア○マス IDE 配るとか
Silverlight の使い方
「Silverlight、使ってます?」とか聞かれ、「使ってはいるんですが・・・」と答えに窮する。
明らかに一般的ではない使い方をしてるもんで。
元々、信号処理系の研究とかやってた人間なんで、GUI に縁がないんですよねぇ。GUI っていうと、データの視覚化とかに使うもの。
まあ、ある意味正しい Silverlight の使い方なんですけどね。視覚化すると分かりやすいけど、今まで大変だから視覚化されてこなかったものを、ちゃんと視覚化するっていうの。ほんと Silverlight 使うと、適当に作ってもそれなりにクオリティ高いデモになるんで。
あと、大学時代の恩師の1人がコンパイラの研究してる方なんですけど、その方のコンパイラの授業はほんとわかりやすかったんですよね。学部の授業以来、別にコンパイラ作りとかやってなかったけども、意外と覚えてるもので、今やってみるとあっさりプログラム作れてびっくり。一度しっかり覚えたことは忘れないもんですねぇ。
GUI 素人
懇親会で出た話題ってのとはちょっとそれるけど、↑の Silverlight の話が出たついでに。
うちのサイトに、WPF とか SQL の話があるんで、GUI でデータベースアプリとか書いてる人だと思われることが時々あるんですけども、上述の通り、GUI はあまり縁がない。それで飯食った事がないって意味では、実は素人。(最近は社内ツールとかは作ってますけど、外に出す製品としては GUI 作った事がない。)
すごいのはやっぱ .NET とか Visual Studio なんだと思うんですよ。(GUI 的な意味で)素人でもほんと簡単に GUI 作れちゃうんで。
昔、物理シミュレーション系のデモアプリを作ったことがあるんですけど、こういうの作ろうと思うと、
- 力学とか微分方程式が分かってないといけない
- GUI アプリも書けないとダメ
という2重の敷居の高さがあるわけです。
昔だったら、これの両方できるなんてほんとにきつい敷居の高さだったわけですけども、今はもう、GUI 書くのは簡単な時代になった。前者にだけ詳しければ、割とこういうアプリが書けてしまう。
上述の話でも、コンパイラの仕組みが分かる人ってのと GUI 書ける人ってのは、どっちか片方ならいたけども、両方こなせないことにはああいうデモは作れなかった。今なら前者だけできりゃ、あとは Visual Studio に頼って適当に作れちゃう。ほんといい時代ですよ。
Smooth Streamingの実力&XBOX360でSilverlight
http://www.iis.net/media/experiencesmoothstreaming1080p
すげぇ、ほんとに適当にシークバー動かしまくってもほとんどラグなしで再生される。細かくシークできるのもいいなぁ。
http://shinichiaoyagi.blog25.fc2.com/blog-entry-178.html
もう1個。XBOX 360上でSilverlightが動くようになるかも。
XNA Game Studio 3.1 と、VS International Feature Pack 2.0 β
・Microsoft XNA Game Studio 3.1
3.0からの追加は、要するに、昨年末に色々と追加されたアバターとかLIVE Partyとかの機能がXNAから使えるようになったってことみたい。
・Microsoft Visual Studio International Feature Pack 2.0 Beta
国際化パックと言いつつ、実際のところ中国語、日本語、韓国語ライブラリなInternational Feature Packの2.0βが出たそうです。
2.0に入ってる日本語関連のものは「よみがなフレームワーク」のみ。
オンラインIDE
これはすごい。(惜しむらくはこれがWindows AzureじゃなくてAmazon EC2なことですが・・・)
ブラウザー中でASP.NET(.NET 3.5)、PHP、JavaScript、HTMLの編集ができる。作ったウェブアプリはそのままcoderunのもとでホストしてもらえるという素敵なおまけ付き。
最近、アプリのインストール作業自体が初心者にとっては結構な障壁っぽいので、確かに入門用にこういうオンラインIDEは欲しかったんですけども。
流石に、キーワードハイライトだけならまだしも、インテリセンスまで実装するとは。
正直、やり過ぎ感は否めませんけど(笑) クソ重たくて、これはこれで障壁高い。
軽く試してみた
ということで試してみた。
http://ufcppnet.s2.coderun.com/Projects/Seventeenist/Default.aspx
結局、Visual Studio で編集したのを張り付けただけという、オンラインの意味ない状態。ホストしてもらえる利点はあるけども。
あと、コードビハインドがうまく働いてくれなくてインラインコードでイベントハンドラ書いたり、日本語が化けたり、いまいちなところも多々。
メモ書き色々
今週はちょっとMP切れ気味なので、あれこれメモ書きのみ:
- Peering into script modules
- Import-Moduleなんてあったのか。便利そう。
- ただし、v2の新機能。
- Auto Wiring INotifyPropertyChanged
- 昔、INotifyPropertyChanged実装するのめんどくせぇってぼやいたことがあって、PostSharp使えば自動実装できなくもないけどねみたいな話になったことが。
- 件の記事は、動的プロキシ使ってやってるっぽい。
- 確かにプロキシ使っちゃえばできるんだけど、new AutoNotifyPropertyChangedProxyCreator().Create<MyViewModel>(); みたいな感じで、インスタンス生成に1段はさまないと行けないのがなんとも・・・
- Maintaining balance [A versatile red-black tree implementation for .NET (via Silverlight/WPF Charting)]
- SortedDictionaryとかだけじゃなくて、確かにたまに生の平衡二分木欲しいときあるんですよねぇ。
Left Leaning Red Black Treeとかいうアルゴリズムがあるのね
2008年に論文出てるとか。平衡二分木のアルゴリズムでもまだまだ新しいの出るもんなんですね。
LINQ to SQL changes in .NET 4.0
- ここんとこTwitterのタイムラインでも話題になってたけど、修正盛りだくさん。
- LINQ to Entityの方とかどうなるんですかね。
- Office Casual
- 動画で手短に解説!とか一度やってみたいなあ、と最近思ってたり。
- そういう意味で、このOffice Casualとかいう動画はすごいいいなぁ。
- VC#でHello Worldを表示するまでとか。
- C#やObjectve-C、Python本は成長 米国でRuby関連書籍の売り上げが減速か
- 今年2月の記事だけど、アメリカでのプログラミング関連書籍の2008年発行部数、C#が1位らしい。
- 書店のプログラミング言語コーナー見てると日本じゃ考えられないなぁ。
人間の想像力は、過去に見聞きしたことのあるものの枠は超えられない
自分の考えたアイデアを内緒にしたがるひと – はてなポイント3万を使い切るまで死なない日記
「プレゼン屋は居るし要るけど、企画屋なんていない」ってのはほんとそうかもなぁ。
(自分が今いるのが技術屋中心の会社だからってのもあるけど、)企画やってる人の実際のところの仕事って、社内の意見取りまとめたり、意見の見せ方考えたり、他社様とのミーティング設定したりが主だし。
別に企画に限った話じゃないですけどね。この世にひらめき・発想の飛躍なんてないし、知識水準が同じならほぼ同じアイディアしか出てこない。研究者や技術者にとってもまったくもってその通りだと思う。
ひらめき
はっきり言うと、「偉人のひらめきはすごい」みたいに思うのは単に知識不足なだけ。
例えば、「アインシュタインって人は相対性理論っていうすごい理論を唐突にひらめいた」みたいなイメージは間違い。科学に飛躍なんてものはなくて、当時の最先端の科学者にとっては、相対性理論的なアイディアは常識に近いもので、みんななんとなく同じようなイメージを持っていたみたい。
知識のない人にとっては古典論と相対論の間には断絶があるように見えるけど、ちゃんと歴史を追っていくと、その間を埋める科学の着実な進歩・1歩1歩の小さな積み重ねがあるわけです。
アインシュタインの業績ってのは、そのイメージを初めて言葉にしたこと。「なんとなく」だったイメージをはっきりとした理論にまとめて、プレゼンしたという部分にもっとも大きな価値がある。
大事なのは知識水準の維持と、知識を人に伝えること
ということで、「ひらめき」なんてよくわからないものではなく、本当に大事なのは以下の2点:
- 知識水準の維持。最先端の話題・重要な機会を見逃さないこと。
- 知識を人に正しく伝える技術。要するにプレゼン能力。
知識水準の維持が重要だから「日々これ勉強なり」とか言われたりするわけだし、知識を仕入れるために研究会・勉強会参加とかのコミュニティー活動が大事になるわけです。
あと、知識ってのは、人に伝えられなければ大した価値にはならない。自己満足のために1人で趣味でやってるならいいですけども、仕事であったり、そこから価値を生み出したいのなら、「知らない」と「伝えられない」に大差はないです。
なぜ2時から5時までは3時間で、2日から5日までは4日間なのか?
なぜ2時から5時までは3時間で、2日から5日までは4日間なのか? – メタメタの日
こういう話する時は、図を書いた方がいいと思う。
まあ、単に区間を持ってるかどうかの問題な気も。離散量の「日」を連続な数直線上に載せたから区間持っちゃったってことだから、離散と連続の差でもあるけど。
とりあえず、数学を文字だけで議論しちゃダメ。数式と図ってのは、この分野においては自然言語よりも重要な「言葉」なんで、まずそっちで語ることを考えないと。