2010-01-01から1年間の記事一覧
※このエントリは F# Advent Calendar jp 2010 第17回目の参加記事です。F#の話題を目にしても「何やら難しそうなコードが掲載されていて、自分には関係なさそうだ」と素通りしたことはないでしょうか?実は、私もそうでした。F#の本を入手してぱらぱら眺めて…
Excelで動くコンパイラ(id:n7shi:20100519)をOpenOffice.org Calcに移植しました。マクロを使用しているため、セキュリティを中にしてご利用ください。 ooo-exe-4.ods (スクリーンショット) 以下のアーキテクチャのバイナリを出力できます。 Windows (x8…
id:n7shi:20101120でVC# 2010 ExpressによるWM開発方法をご紹介しましたが、その手法を使った勉強会の第2回目を開催します。 2011年1月15日(土) 午後1時〜6時 喫茶室ルノアール 池袋パルコ横店 1号室 (東京都豊島区東池袋1-42-8 第一イン池袋ビル地下1階…
FFIでC言語を呼び出せたので、extern "C"でラップした.NET APIを呼び出せるか試しました。Windows FormsでGUIが表示できました。右がスクリーンショットで、以下がソースです。 https://gist.github.com/738961 gccではC++/CLIを扱えないため、DLLはVisual C…
DLLからシンボルがエクスポートされていれば、HaskellからFFIで呼び出せることが分かりました。独自言語(Andromeda)で開発した簡易リンカでDLLを出力してHaskellから呼び出してみました。※独自言語はEXEしか出力できないため、独自言語から直接DLLをコンパ…
Haskellをどこから使い始めれば良いのか分からずに放置していたのですが、何気なく検索したFFIが気になったので遊んでみました。
id:oraccha:20101101の手順を参考に、UNIX V6をSIMHで動かしてみました。分析のためファイルを取り出そうとしたのですが、TCP/IP以前のOSのためネットワークが使えるのか不明で、ディスクイメージからファイルを取り出す方法も分かりません。仕方ないのでカ…
Lions' Commentary on UNIX 読書会 Part 002に参加しました。初回は参加できなかったため途中参加となりましたが、いきなりアドレスが8進数で書かれているのに面食らいました。アドレスは16進数に変換してどうにか理解できましたが、アセンブリ言語がよく分…
Windows Mobile勉強会(id:n7shi:20101108)で使用した資料を公開します。 勉強会で発生した問題などを踏まえて、一部加筆修正しています。 VB.NETではmscorlibを差し替える設定が分からないため、同じ手法は使えません。 【追記】コメントでVB.NET 2008での…
Windows Mobile 6.5.3 Developer Tool Kitの日本語エミュレータイメージをインストールしてもスタートメニューにショートカットが作成されないようなので、単体起動用にショートカットを作ってみました。 WM653.zip イメージ自体に問題があるらしく、VGAやSq…
.NET Compact Framework 2.0にどんなコントロールが含まれているのか見渡したくなったので、System.Windows.Forms.Controlクラスの派生関係を調べました。
id:n7shi:20101108で募集した勉強会の日時と会場が決定しました。 2010年11月20日(土) 午後1時〜6時 カフェ・ミヤマ高田馬場駅前店 3号室 詳細・参加登録 ⇒ http://atnd.org/events/9747 まだ人数に余裕がありますので、引き続き参加者募集中です。終了し…
id:n7shi:20090106でVC# ExpressによるWM開発方法をご紹介しましたが、その手法による勉強会を開催することになりました。説明だけではよく分からない方など、お気軽にご参加ください。 http://atnd.org/events/9747 どのくらい人数が集まるか分からないため…
F#でZIPの圧縮・展開を行うアプリを作成しました。GUIデザイナーの関係上、GUI部分はNemerleで作成しました。パブリックドメインで置いておきます。 http://github.com/7shi/FSharpZip Deflateの展開は規格通りに実装していますが、圧縮は固定ハフマンのみサ…
ZIP実装会 Part.004で発表したDeflateのスライドを公開します。Deflate
oPad MID701を入手したので、Windows CEをインストールしてもらって、自分でスキャンした本の閲覧に使うことにしました。機能は単純でもサクサク動くものが欲しかったので、C#(.NET Compact Framework 2.0)で簡単なビューアを自作しました。id:n7shi:20090…
F#のクラス定義の構文について、ずっと「なぜこのような書き方をするのか?」という疑問を持っていました。考えても分からないので、とりあえずアプリオリな規則として使い続けて来ました。しかし先ほどふと、状態を持ったクロージャを返す関数に見立ててい…
Streamの一部を取り出すため、別のStreamでラップしてみました。C#とF#の両方のコードをパブリックドメインで貼っておきます。C#とF#の対比や、カスタムStreamの例として使えるのではないかと思います。F#の構文はC#と掛け離れていますが、簡潔なので慣れれ…
Excelから無圧縮ZIPを出力してみました。パブリックドメインとして置いておきます。 ExcelZip.xls VBAのコードだけを抜粋したものも置いておきます。 http://gist.github.com/573576 CRCの計算は昨日のコード(id:n7shi:20100910)を使っています。ちなみに…
Excelから無圧縮ZIPを出力できると便利そうなので、取っ掛かりとしてVBAでCRC-32を実装してみました。
ZIP実装会 Part.003で発表したCRC-32のスライドを公開します。CRC-32
南関東開発機構さんがBrainfuckインタプリタを公開されています。 南関東開発機構 : Brainfuckのインタプリタを作ってみました これをコンパイラにしてみました。Win32(x86)ネイティブのEXEを出力します。 http://gist.github.com/531154 インタプリタ処理を…
id:n7shi:20100802で実装した割り算をF#に移植しました。ついでに剰余や、商と剰余をtupleで返す関数も実装してみました。剰余だけを求めるときは商が不要なので簡単です。 http://gist.github.com/512947
Alphaには除算命令がありません。インタプリタ側で計算することで実装は回避しましたが、どうやって実装するのか気になりました。最初は10進数に引っ張られて小難しく考えていたのですが、2進数で考えると、除数をシフトしながら被除数を引いていけば良いと…
Windows XP SP3でVisual Studio 2010を使っていると、たまに画面にゴミが残ることがあって気になっていました。私の環境ではGeForceでもRadeonでも最新ドライバで発生しました。以下の手順でアクセラレーションを無効にすることで改善しました。 ツール→オプ…
id:n7shi:20100727でAlpha逆アセンブラをインタプリタ上で動かしましたが、あまりにも遅かったです。使用しているすべてのlibc関数をfopen()等と同じようにF#でインタプリタ側に実装して、ループの無駄等を見直しました。その結果、約10倍ほど高速化しました…
C言語でAlphaの逆アセンブラ(以下7d)を開発して、id:n7shi:20100712でSilverlight化したAlphaインタプリタ上で動かしてみました。デフォルトでDisassembleのタブに出てくるアセンブリが7dの出力です。横のコンボボックスで従来の組み込み逆アセンブラと切…
VS2008ShellのF#ではGUIデザイナを使うことができません。複雑なレイアウトをコードだけで書くのは面倒なので、他の言語と組み合わせることにしました。C#やVBは使えないため、それ以外の言語を色々と試した結果、Nemerleに行き着きました。ツールチップがカ…
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…