【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

Silverlight

構造を表示

id:n7shi:20101204のファイルシステム読み込みツールを改造して、ディレクトリやファイルの構造が表示できるようになりました。今まではイメージ全体をZIP圧縮して取り出すことしかできませんでしたが、ファイル単位で取り出せるようになりました。Windows F…

名古屋Geek Bar LT

名古屋Geek Bar 5月2日(月)でLTをして来ました。V6関係のツールがメインですが、自己紹介に絡めて独自言語のセルフホスティングも取り上げています。V6 Interpreter (Nagoya Geek Bar 2011-05-02)

コンパイラが動作

id:n7shi:20110330で開発に着手したPDP-11のインタプリタですが、最低限必要な命令とシステムコールを実装して、ようやくV6のコンパイラが動くようになりました。Silverlightに対応した環境ではブラウザ内で動きます。 実行 ⇒ http://7shi.net/v6/ ソース ⇒ …

インタプリタ

id:n7shi:20110322で開発したPDP-11の逆アセンブラを拡張して、UNIX V6のバイナリを対象としたインタプリタの開発に着手しました。まだ未実装の命令やシステムコールが多数ありますが、とりあえずprintf()くらいは動くようになりました。Silverlightに対応し…

逆アセンブラ

PDP-11の命令について調査するため、Silverlightで逆アセンブラを作成しました。UNIX V6のa.outに対応しています。 実行 ⇒ http://7shi.net/v6/ ソース ⇒ https://bitbucket.org/7shi/v6/src/e49b87e118af Lions本では8進数に戸惑ったため、デフォルトの出力…

初級勉強会

※地震の影響による電力・交通事情を踏まえ、中止しました。まだ少し先ですが、Silverlightの初級勉強会を開催することになりました。初心者を対象としていますので、開発は初めてという方でもお気軽にご参加ください。 2011年3月19日(土) 午後1時〜6時 ア…

言語変換でいきなり実用を目指す

※このエントリは F# Advent Calendar jp 2010 第17回目の参加記事です。F#の話題を目にしても「何やら難しそうなコードが掲載されていて、自分には関係なさそうだ」と素通りしたことはないでしょうか?実は、私もそうでした。F#の本を入手してぱらぱら眺めて…

ファイルシステムの読み込み

id:oraccha:20101101の手順を参考に、UNIX V6をSIMHで動かしてみました。分析のためファイルを取り出そうとしたのですが、TCP/IP以前のOSのためネットワークが使えるのか不明で、ディスクイメージからファイルを取り出す方法も分かりません。仕方ないのでカ…

高速化

id:n7shi:20100727でAlpha逆アセンブラをインタプリタ上で動かしましたが、あまりにも遅かったです。使用しているすべてのlibc関数をfopen()等と同じようにF#でインタプリタ側に実装して、ループの無駄等を見直しました。その結果、約10倍ほど高速化しました…

逆アセンブラのホスティング

C言語でAlphaの逆アセンブラ(以下7d)を開発して、id:n7shi:20100712でSilverlight化したAlphaインタプリタ上で動かしてみました。デフォルトでDisassembleのタブに出てくるアセンブリが7dの出力です。横のコンボボックスで従来の組み込み逆アセンブラと切…

逆アセンブラ・インタプリタ

id:n7shi:20100710の方法でVWD2010EEでもF#が使えるようになったので、id:n7shi:20100709でF#に移植したAlpha逆アセンブラ・インタプリタをSilverlight化しました。 実行 ⇒ http://7shi.net/betelgeuse/ ソース ⇒ http://github.com/7shi/Betelgeuse/tree/20…

列挙型配列の初期化エラー

【追記1】いげ太さんより、XP SP3 + Visual Studio 2010 Proの環境でも同様の問題が発生するとのご報告がありました。【追記2】いげ太さんより、Don Syme氏直々のご回答をご報告いただきました。 window.twttr = (function(d, s, id) { var js, fjs = d.getE…

VWD2010でF#

SilverlightでF#を使用する場合、Visual Studio 2010 ProfessionalではC# SilverlightアプリケーションとF# Silverlightクラスライブラリを組み合わせる方法が推奨されているようです。 F# for Silverlight 4 available - Inside F# フリーのVisual Web Deve…

逆アセンブラ・インタプリタ

Alphaの命令について調査するため、Silverlightで逆アセンブラ・インタプリタを作成しました。以下でホスティングしています。ページ上部の[Test1]などのボタンを押すとサンプルを読み込んで実行します。 Sirius - Alpha Canis Majoris (名前の由来:最も明…

TextBoxを流用したIME入力

IMEの状態が検出できるようになったので、内部でTextBoxを利用して独自コントロールで文字入力してみました。 ⇒ 動作確認とソースキャレットは点滅しません。カーソルキーやクリックで移動できません。編集は[Backspace]だけです。たまに変換中に文字を取り…

IMEの状態を検出

Silverlight 3でIMEの制御は、TextBoxでの有効・無効の設定しかできません。TextBox以外からIMEを利用する方法はありません。キーストロークから文字を取得(例: [Shift]+[1]→!)する方法もありません。このような状況でエディタを作ろうとすると、全部自前…

再生・一時停止・停止ボタン

デバッガもどきを作ろうとして挫折しました。後で使い回すかもしれないので、ボタンのXAMLを貼っておきます。画像ファイルを用意しなくてもアイコンが作れるのが新鮮でした。

WebRequestの同期呼び出し (2)

id:n7shi:20090731:1248967824でMonitorを取り上げましたが、AutoResetEventを使った方が簡単だということが分かりました。詳細はid:n7shi:20090731:1248967824を修正したのでそちらを参照してください。AutoResetEventについてはParallel で最適化してみる…

XAPコンテンツの読み込み (2)

id:n7shi:20090714でXmlXapResolverを取り上げましたが、Application.GetResourceStream()を使った方が簡単だということが分かりました。詳細はid:n7shi:20090714を修正したのでそちらを参照してください。

MIZU GAME for Silverlight

id:fslashtさんのMIZU GAMEをSilverlightに移植しました。動作確認とソースのダウンロードは以下です。 MIZU GAME for Silverlight オリジナルを初めて起動したとき、流れるような水の表現に圧倒されました。それを再現するため、SDL.NETを使用している部分…

FontSourceによるフォントの取得

SilverlightではSystem.Windows.Documents.FontSourceでフォントを読み込んで描画に使用できます。GDI+のPrivateFontCollectionに相当しますが、Familiesに相当するものがないため、あらかじめフォント名を調べておく必要があります。mplus-2p-black.ttfなら…

MediaElementとビジュアルツリー

MediaElementをXAMLに記述しないでコードから呼ぼうとしてハマりました。検索しても情報が錯綜しています。 id:beta_magnus:20090625:1245906963 : SilverlightのMediaElementはビジュアルツリーに組み込まないと音声再生などができないらしい、という噂を聞…

Super Maryo World for Silverlight

id:n7shi:20090801のスーパーマリョーワールド(仮)をSilverlightに移植しました。実際にプレイできます。動作確認とソースのダウンロードは以下です。 Super Maryo World for Silverlight 移植にはid:n7shi:20090730で開発したWindows Formsエミュレーション…

WebRequestの同期呼び出し

SilverlightのWebRequestには非同期のBeginWebResponseしかありませんが、以下のような拡張メソッドでGetResponse相当の同期呼び出しができます。メインスレッドからは呼べないので注意が必要です(詳細は後述)。

h01/y01 for Silverlight

id:m107さんのh01とy01をSilverlightに移植しました。ゲームとしては遊べませんが、実験の一環です。動作確認とソースのダウンロードは以下です。 キャラクタが一人 キャラクタが四人 拡大・縮小・スクロール キャラクタの移動 効果音 フリック動作 BGM アイ…

UIElementをXAMLで出力

UIElementをラスターデータで出力するのにはWriteableBitmapが使えますが、ベクターデータで出力するのにXAMLを使ってみました。サンプルではVisual TreeをTreeViewで表示しているため、コントロールの内部構造と比較できます。 ⇒ 動作確認とソースSilverlig…

WriteableBitmapをBMPで保存

WriteableBitmapのイメージは簡単にBMPファイルとして保存できます。 var bmp = new WriteableBitmap(LayoutRoot, null); var sfd = new SaveFileDialog { Filter = "32 ビット ビットマップ (*.bmp)|*.bmp|すべてのファイル (*.*)|*.*", DefaultExt = ".bmp…

Andromeda for Silverlight

自作言語AndromedaをSilverlightに移植しました。Win32バイナリを出力するネイティブコンパイラです。動作確認とソースのダウンロードは以下です。 Andromeda for Silverlight Andromeda クラスマップ ツリーのSamplesからビルドしたいサンプルを選んで[Buil…

Cyan/Yellow for Silverlight 3

id:takuto_hさんのCyanとYellowの移植をSilverlight 3に対応しました。動作確認とソースのダウンロードは以下です。 Cyan for Silverlight Cyan クラスマップ Yellow for Silverlight Yellow クラスマップ 変更点は以下の通りです。 ドキュメントリストをLis…

TreeViewのダブルクリック

Silverlight 3でTreeViewがサポートされました。デフォルトでは参照されないため、System.Windows.Controls.dllを参照に追加する必要があります。ItemsにはTreeViewItem以外も入れられますが、子ノードをぶら下げられるのはTreeViewItemだけです。以下は親ノ…