Archive for 2月 2010
MultiPoint Server、パワポでカスタム図形作り、Silverlightでブログ、SilverlithでAR
- Windows MultiPoint Server 2010
- 1台の PC をみんなで共有
- 今までの技術でもできそうな気がするけど
- 教育機関向けに Client Access Lisence 緩めたようなものかな
- Creating Custom Shapes in PowerPoint 2010
- Shape 同士の合併・共通部分・差・相互排他とか、標準で作れたんだ
- 標準の状態だとメニューに出てないんで、リボンのカスタマイズが必要
- tech days で出てたネタ
- 一見、ただのブログに見えるけど、よく見るとページ全部 Silverlight 製w
- なかなかきれいな見栄えになってるけど、IE のアクセラレーターとかが効かなくなるのは結構痛いなぁ
- 英語ブログとか見てる時、アクセラレーターの Bing 翻訳がかなり便利なんで
- Silverlight 向けの拡張現実ツールキット
- NyARToolkit に基づいてるって
- 「C# の誕生日っていつだろう?」みたいな話をする
- 開発中のことはわかんないんで、とりあえず公になった日でいうと、2000年6月26日かなぁ
- この当時は CTP 版
- あと4か月ほどで10年なのよね
- ++C++; もほぼ10年。
ハイブリ ソフトウェア更新、Windows Phone 7 開発環境、HTML5?
- HYBRID W-ZERO3(WS027SH)ソフトウェア更新のお知らせ
- 早くも更新来た。
- と思ったけど、3G 回線が圏外から圏内に復帰しない不具合の修正のみ。
- 確かに、残りの問題は単なる bad UX だけども、こいつだけはまぎれもなく不具合だけども。
- 早くも更新来た。
- Silverlight/XNA confirmed as developer frameworks for Windows Phone 7
- なんかリーク情報より、窓 Phone 7 の開発環境は Silverlight と XNA。
- Top 10 Reasons why HTML 5 is not ready to replace Silverlight
- まあ、結局のところ、色々と機能不足なものを、今の Silverlight よりも(かなり甘めに見積もっても2年以上)遅れて出して競争力あるの?と。
- HTML5 がきっちり世に出てくる頃には Silverlight は6か7か・・・
- Silverlight ばかりを持ち上げるつもりはなくて、同様のことは少なからず Flash でも言える部分もあるわけで・・・
- 何か探し物があるときはここ頼れそうな感じ。
10 の理由に増やしてみた
うん、「また」なんだ。済まない。
http://d.hatena.ne.jp/ufcpp/20100219/1266594885
とりあえず、本音のほどを。
- まあ、結局どっちがいいかとか結論付ける気はないんですけども、とりあえず見るだけ見てみて。
- というのが一番の目的なので、わざと釣り風味記事に。
- つくづく思うけど「好きの反対は嫌いじゃなくて無関心」よね、ということでまず関心得ることが大事というノリ。
- 10年前の最良は今でも最良ですか?
- 一応、受けた理由は動画貼っつけてるののインパクトだと思いたい。
- 最近改めて思うけど、やっぱ動画は強い。
- ただし、思うに、要点まとめて1分とかのコンパクトな動画にするのがコツかも。
- それ差し引いても、みんなテンプレが好きよねぇ。○○の理由的な。
- 最近改めて思うけど、やっぱ動画は強い。
ちなみに、今日のこの文章、大部分はデブサミの休憩時間にポチポチと携帯(Hybrid W-ZERO3)で打ったもの。自分のベル打ちのスピードについてきてくれないケータイ Shoin にまた軽く絶望。ネタさえ思いつけば後は速いんだけどもなぁ。乗らないときは全然物書き進まないのに。
あと、こんなものも作った↓。
http://cid-5c622397e11c979d.skydrive.live.com/self.aspx/ufcpp/MsOffice/WordMathAcl.xlsx
数式の ASCII 入力 → Unicode 記号変換(実体は MS Office の自動補完)の一覧。
普段、めったにかかわらない Unicode のサロゲートペアにぶち当たってちょっとだけ悩んだりも。
追記:
TeX 擁護な方に、「Word も ℵ(aleph)は出るみたいだけど、ℶ(beth)はでないのかよ。集合論をなめるな。あと、⊢ や ⊣ も!」とかいうお怒りの言葉をいただいて困惑。なぜなら ℶ も ⊢ も ⊣ も普通に出せるから(それぞれ beth, vdash, dashv)・・・
意図的に釣り記事を書いておいてなんなんですけども、昨日、twitter 上で以下のようなつぶやきを見て自分も怖くなる。
頭の体操として反論を誘うつもりで脇の甘い議論をしているのに痛烈な反論が出てこない。どこかで読むだけ読んで静かに怒ってる人とかいたら怖いな
感情論的な議論呼びそうな書き方はやっぱり不毛だわ。話題を呼ぶという意図にはいいんだけども・・・
まあ、でも、釣られる人がいる限りは釣り師は減らないですしねぇ。流行りの「若者の○○離れ」にしたってそうですけども、それで PV 取れるんならそりゃ書く側もやっちゃいますよ。
数式入力あれこれ
8・9年前から HTML だけで数式書いたりっていう邪悪な魔術を使ってる身なんで、実はテキストだけで文章書く TeX を非難するようなキャラじゃないんですよ。
ただ、それはあくまで「8・9年前だったからしょうがなくやった妥協」であって、今なら多分やらなかったでしょうねぇ・・・。(黒魔術な手法はほんと最終手段にしたい。)8・9年の技術の進歩は素晴らしいです。例えば:
- 昔は Unicode に数学記号なんてなかった
- 2.0 な頃からコード的には結構色々入ってはいたんですけど、たいていフォントが対応してない・・・
- ℵ(ヘブライ文字のアレフ)入力したら右→左書きの文章になったりもしたし・・・
- 注: ヘブライ文字としてのℵと、数学記号のℵは Unociode 上、別々にあったりする
- ヘブライ文字のℵを IE 上に表示すると文字の方向反転する
- MS-IME 2007 の記号辞書で出せるℵは数学記号の方のℵ
- 今や、MS-IME で数学記号出せちゃう時代ですよ(追加辞書不要)
- 数式エディターもあんまりいいのがなかったし
- Word 上でキーボードだけで入力ができる日がくるなんて夢にも思わず
- しかも、かねてからずっと僕も思ってた「Unicode に文字入ってるのに使わない手はない」ってのを地で行くエディター
- XML 使って数式を書いてるわけですけど、昔は XML の入力補助アプリもイマイチでしたし
- Visual Studio 2008 で、XSD を書いておけば自作スキーマのタグ補完ができるって気付いたときは割と感動
今はまあ、数式エディターの使い勝手は動画にしたとおりですし、TeX で出せるような文字は一通り全部 Unicode に入ってるっぽいし、ほんとにいい時代になったもんです。
というのような悪あがきを色々してきた身としていうわけですよ、「10年前の最良は今でも最良ですか?」って。
最近、MS Equation Editor にどっぷり
まだ微妙に書きかけですが、最近このようなものを書いています。
- http://cid-5c622397e11c979d.skydrive.live.com/self.aspx/ufcpp/MsOffice/WordMath.docx
- PDF/XPS 化したものも同じ階層に置いてあります。
ということで、久々にはてなの方にブログ書いた。たぶん、こっちで似たようなこと書いても「うん、そうだよね」って言う人ばっかりだと思うんで、あえてアウェイなあっちで。
はてなっぽいノリで書いてたつもりが、気が付いたら英文を和訳したような文体に。「私が○○した○つの理由」テンプレにのっとって書こうとしたけど、3つしか理由が並べられなかった辺りがぬるい。ぬるすぎる。
追記:
「ほってんとりってこんなノリよね?」とか悪ふざけなノリではてなにブログ書いたらほんとに人気記事に入っちゃって申し訳ない気分でいっぱい。
なんかもう、オタ的に例えると「日和って東方の同人誌描いたら普段の何倍も売れちゃったんだ」みたいな気分。
こんなことならちゃんと○○の理由、10個くらいでっちあげとけばよかったなぁ。同僚からは「話半分でもっといい加減なこと書かないと! Word はかっこいいとか、Word には culture があるとか、もっと信仰心こめて!」とたしなめられたり。ほんとごめんなさい。
その後:
はてぶのコメントさらりと見てみた。
- とりあえず、話題にすること自体が目的だったんで、それは達成されたようで満足。
- ちなみに、話題にしたかった理由は、数式の Unicode 行形式入力が案外気に入ったから。
- ただ、これだけ話題になる = TeX ってまだまだ根強いんだなぁって改めて思った。
- 「タイトルからして煽ってるなぁ」って突っ込んでくれた人とは気が合うかもw
- TeX を「書いてて楽しい」とか「プログラミングの延長」とか「俺理系してる感がいい」とか言ってる人はちょっと怖い
- 手段が目的と化してる。
- いまどきは、プログラミングですら GUI で RAD ありきで考えた方がいいのに・・・
- あとはなぁ・・・
- 国際化対応の具合とか、SharePoint と連携、グループ文書・サブ文書辺りの話拡充して、ちゃんと10の理由にするか?
- で、「前回書いた3つの理由がこれだけ話題になるってことは、ほんとにみんな TeX を使っているんだね?僕は悲しいよ。」とかいう煽りから始める。
数式エディターに関して補足
ちなみに、Word 2007 以降の数式入力を見て「TeX にしか見えない」って言ってる人がいますが、まあ、正解ではないかと。実際、あれはかなり LaTeX を研究して作られてるみたいです。∞ 記号が infty な辺り、ある意味、微妙なところまで LaTeX を参考にし過ぎ。
から始まる ASCII 文字列は残らない
ただ、LaTeX っぽい記述を、対応する Unicode 文字に変換してしまうところが実はポイント。元の ASCII テキストが残らないのを嫌う人もいるとは思いますが、alpha/beta よりは α/β の方が、行形式の可読性高いよねという。大元の発想は、「TeX って Unicode 文字使って書き直したら可読性高くなるんじゃね?」ということらしいです。
alpha を α に変換する処理は、数式エディターの機能というか、実は Office のオートコレクト機能だったりします。ユーザーフォルダー以下にある、 "AppDataRoamingMicrosoftOfficeMSO0127.acl" を見てみるといいですよ。acl = Auto Correct List。これの中に変換される文字一覧が入っています。
ヒューリスティック
あと、LaTeX だと厳密に {} 指定しないといけないのが結構面倒なんですよね。Word のは、経験則に則って、() を省略した時の挙動が文脈で変わるようにできてて、それが(余計なお世話と感じるかもしれないけど)慣れると案外気持ちよく数式書けるようになります。
∫の後ろの () は消えなくて、/ の前後の () は消える。それは、実際に数式を書くとき、そう書くことが多いから。
リアルタイムレンダリング
あと、やっぱり一番大きいのはこれですかね。打ってるそばから変換されていくところ。書いてるところと表示されてるところが離れてると、なんだかんだ言ってストレスですからねぇ。
おまけ:手書き
ちなみに、Windows 7 ならこんなのも使えますよ↓。
http://windows.microsoft.com/ja-JP/windows7/Use-Math-Input-Panel-to-write-and-correct-math-equations
Word の数式は MathML のコピペに対応してるので、こいつ使って Word に数式を送ることもできます。
Windows Phone 7
発表されましたね。
昨日、基調講演をストリーミングで見てた感じ、完璧に Zune ですね。まあ、元々 Zune HD ベースで開発してるって情報リークしてましたけども。さて、完璧に Zune だということはですよ・・・
- 今までの Windows Mobile とは互換性ない
- XNA が動くことは期待できる
- 逆に、ネイティブアプリ開発できない?
- 日本発売は大丈夫なの?というのが非常に心配
- Zune ストア、日本じゃやってないし
- ついでに、Bing とも連携してるらしいけど、日本じゃ Bing も全然ぱっとしないし(英語圏限定の機能多すぎ)。
- facebook との連携頑張ってるくさいけど、mixi とか gree は対応されないだろうなぁ・・・
- Zune、日本語フォントも入ってなかったし
- 日本人ならテンキーでトグル入力 or ベル打ちが基本だろ!という要望は届かないんじゃなかろうか・・・
というような予感がひしひしとするわけです。日本で発売されるのかなぁ・・・
アプリに関しては、Out-of-Browser な Silverlight for Mobile が載るんでそれで作れっていうような噂もありますけど、Windows Phone 7向けのSilverlightのパフォーマンスは大丈夫なんですかねぇ。これもまた心配。
.NET 4 日本語技術資料、Office Labs、Smooth Streaming 利用サイト一覧
- .NET Framework 4 技術資料一覧
- 日本語資料が出てた。
- Microsoft Office Labs
- MS Office の実験的な試みを公開してるサイト
- pptPlex とか Canvas For OneNote とか面白そう
- 2007 でしか試せないのが残念
- List of sites using Smooth Streaming
- 気が付けば Smooth Streaming 使ったサイト結構増えたなぁ
- それはいいから、Smooth Streaming のエンコード&動画ホスティングサービスとか無料で提供されはしないものか・・・
- ホスティングはまあ、この際あきらめるにしても
- Smooth Streaming のエンコードが有償版の Expression Encoder でしかできないのが
- 特許の関係で無料にできないんだと思うけど
- ついでに言うと、エンコード、サムネイル生成、Silverlight のプレイヤー(自分でコード書かなくても使える状態のもの)のセットは用意して欲しい
- 今、「Silverlight Media Player」とかの類で検索すると、ソースコードとか DLL は出てくる(例えば SMF)けども、「xap をサイトに置くだけ」みたいな状態のものは皆無なんですよねぇ
- Quick FAQ on Visual Studio 2010 RC release (February 2010) and Silverlight development
- 「日本語へのローカライズは未定」だったり、Silverlight 4 とか RIA Services は RC 未対応だったり、やっぱりかなり「急きょ公開」っぽいのね
- 元々 RC の公開は予定してなかったっていうし
- β2 からパフォーマンスうが劇的に改善してるってところを見せておかないと不安っていう判断なんだろうけども
VS 2010 & Iron Python RC、Ideone API、Azure の自動スケール
- VS 2010 / .NET 4 Release Candidate
- VS 2010 の RC 版が出たわけですが
- Iron Python も RC になったらしい → Iron Python 2.6.1 RC Now Available
- RC の日本語版は出ないらしい
- 自分は最近、英語版しか使ってないから別にいいんだけども・・・
- Free Ideone API
- オンライン IDE やってるサイトが API 公開したみたい
- ソースコードをアップロードしたり、サーバー上で実行したり、実行結果をダウンロードしたりする機能を提供
- Auto-scaling in Azure.
- 負荷に応じて Azure のインスタンス数を制御する話
- 負荷の監視とインスタンス管理のために1つ WorkerRole を立ててやってるんで、結構大規模なサービスでないと意味なさそう
- 昔、Azure 界隈な方々と「負荷の監視とインスタンス管理だけ Google App 使ってやるか!」みたいな話をしたことがあったり
C# 基礎文法最速マスター あとがき
こないだ書いた C# 基礎文法最速マスターの話、http://ufcpp.net/ に清書。
で、いくつかあとがき的な話を。
動画
記事の中に動画をどうやって埋め込もうか悩む。
Live Spaces のブログへの動画埋め込みは、結局、YouTube を使う。
- YouTube
- http://www.youtube.com/user/IwanagaNobuyuki
- Windows Live Writer は YouTube の URL をコピペするだけで動画を表示できる。
- てか、Silverlight Streaming サービス、続けて欲しかったなぁ・・・
- どのサービス使うか比較検討する段階で、1個だけニコ動にもアップしてたりする。
- 1個だけって状況がちょっと不恰好・・・
++C++; の方の記事では wmv を自サイト内に置いて、Silverlight を使って再生することに。
- 動画、合計で 6.7MB
- うちで使ってるレンタルサーバーは容量 1GB だからかなり余裕。
- (ちなみに、今現在、全データ合わせて 80MB 程度。そのうち1割程度を今回の動画が占めたと思うと、でかいと言えばでかい。)
- 大したことないとはいえ、サムネイル画像くらいは使うようにした方がいいかも。
- 今のプレイヤーの作りだと、ページ読み込み時に全部の wmv ファイル読みに行ってるっぽい挙動。
- ホスティング会社に怒られなきゃいいけども・・・
- プレイヤー
- Silverlight の公式コードギャラリーから Silverlight Video Player を取ってきて、多少自分で改修入れたもの。
- 自分でコードに手を入れなきゃいけないとか、ほんとはやりたくないんだけどもなぁ・・・
- xap 拾ってきて終わりにできるってのが理想だったんですが。
文法最速マスター(笑)
- 「それ、文法マスター講座じゃなくて、IDE マスター講座じゃない?」とか言わないで。
- だって、文法覚えるにしたって、IDE の補助受けながらの方が速いし。
- 文字だけで文法の説明だけして「最速」とかいう方がむしろおかしくない?
- 手段と目的間違えてない?
- あるいは、時代を見誤ってない?
- 敷居
- そりゃ、よく「開発環境をインストールするところが最大の敷居」とか言われるけども・・・
- かといって、今回上げた動画みたいな開発スピード、IDE なしで出るの?
- 全部、早送りとかカットとかなしのリアルタイム撮影。
- 取り直しも、多いやつでせいぜい1・2度。
- 特に、メソッド抽出(リファクタリングで効果大)とか、Usage First(テスト駆動開発で効果大)とか。
正直、むしゃくしゃしていてやった。後悔はしていない。最近、「コード以外何も残さない人」の相手してて少々疲れ気味で。コード書くことにばかり目が行ってて、ほんとの問題はそこじゃない的な状態の。
Azureの研究者向け無償提供、Alvas.Audio
- Microsoft、科学研究者に「Windows Azure」への無償アクセスを提供
- いいなぁ、うらやましいなぁ
- Alvas.Suite
- こんなのあったんだ
- Alvas.Audio ってのもある
- mp3 とか、いろんな形式の音声データの読み書きもできるみたい
- 久々に音声フィルターがらみのことやってみるかなぁ
C# 基礎文法最速マスター(構造化プログラミング編)
追記: あとがき
もちろん便乗。
まずは構造化プログラミング編。
合言葉は「最速マスターしたいだって? じゃあ、VS 入れて、プロジェクト作って、Ctrl+スペース押せ」。
基礎
とりあえず、Visual Studio をインストールしましょう。無料版の Visual C# Express Edition もあるので、はじめての方はこれを。
準備ができたら、以下の操作を行いましょう。
- プロジェクトの新規作成
- [Visual C#] → [コンソール アプリケーション] を選んで、適当な名前を付けて [OK]
- ひな形ができる
- cw と入力した後、[Tab] を2回押す
- Console.WriteLine ってのが補完で出てくる
- WriteLine の中に、"" でくくって適当な文字列を入れる
- ビルド
- メニューから [ビルド] → [ソリューションのビルド]
- もしくは、[F6] キーを押す
- もしくは [Ctrl] + [Shift] + b
- 実行
- メニューから [デバッグ] → [デバッグなしで開始]
- もしくは [Ctrl] + [F5]
- 入力した文字列が表示されるはず
変数
- int i = 10;
- 整数型の変数 i に 10 という値を代入
- double x = 1.0;
- 小数(正確には「倍精度浮動小数点数」)に値 1.0 を代入
- var で型推論ができる
- var i = 10; だと、10 が整数なので i は int になる
- var x = 1.0; だと、1.0 が小数なので x は double になる
四則演算
- x + y とかで加減乗除ができる
- + で足し算
- – で引き算
- * で掛け算
- / で割り算
- その状態で [Ctrl] + v で行の貼り付け
- その後、+ のところだけ書き換え
キャスト
- 精度の低い型への変換は明示的に書く必要がある
- double を int にすると、小数点以下が失われる
- int i = (int)x;
文字列
- string s = “サンプルテキスト”;
- 文字列型の変数 s を定義
- + 演算子で2つの文字列をくっつけられる
- string.Format で書式指定で文字列化ができる
- string.Format(“({0}, {1})”, 10, 20);
- {0} のところに 10 が、{1} のところに 20 が入る
- string.Format(“({0}, {1})”, 10, 20);
配列と反復
- int[] で int 型の配列になる
- int[] x = new[] { 1, 2, 3, 4, 5 }; で5要素の配列を作る
- while まで入力したら [Tab] を2回押す
- while (反復の継続条件)
- ぶっちゃけ、あんまり while 使うことない
- for まで入力したら [Tab] を2回押す
- for (初期値; 継続条件; 値の更新)
- 「10回繰り返す」とかやりたい時に使う
- ぶっちゃけ、配列の中身の列挙には次の foreach の方を使う
- for (初期値; 継続条件; 値の更新)
- foreach まで入力したら [Tab] を2回押す
- 配列とかの、コレクションの列挙
- foreach (var 変数 in 配列)
条件分岐
- if まで入力して [Tab] 2回もできるけど、それほどタイピング量減らない
- if (条件) 式;
- 必要なら if (条件) 式1; else 式2;
関数
- 意味のある単位で細かく関数化しましょうね
- 関数化したい範囲を選択して、右クリックして [リファクター] → [メソッド抽出]
- (ただし、確か、Visual Studio Proffesional 版以上のみの機能)
構造体
- struct Point { public int X; public int Y; }
- struct で構造体定義
- 今のところ、public とかは「おまじない」
- いずれ、OOP 編をやります
- Usage First 開発
- Visual Studio 2010 からの新機能
- 「使い方」の方を先に書いて、そこからクラスや構造体を生成