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

2011-01-01から1年間の記事一覧

判別共用体 (1)

F# C#

以前、C#からF#への変換によって、F#に触れるきっかけを作ろうとしました(id:n7shi:20090722, id:n7shi:20101226)。この方法だととりあえずF#で何か作れるようにはなりますが、F#特有の概念の理解にはあまり役に立ちません。ぜくるさんが判別共用体につい…

EXEを作る (4)

id:n7shi:20110421の続きです。リフレクションを用いて、クラスの中のクラスを追えるようにします。 https://bitbucket.org/7shi/peben/src/6368e0962f3f/04/04/

EXEを作る (3)

id:n7shi:20110420の続きです。フィールドを1つずつ指定して書き込むのは面倒なので、リフレクションで自動化します。 https://bitbucket.org/7shi/peben/src/6a8b74715084/04/04/

EXEを作る (2)

id:n7shi:20110419の続きです。バイナリの中をオフセット指定でベタ書きするのは問題があります。名前でアクセスするためクラスを定義します。まずDOSヘッダです。 https://bitbucket.org/7shi/peben/src/dd0d83d89032/04/04/

EXEを作る (1)

id:n7shi:20110418で告知した第4回 PE勉強会用にサンプルの準備を始めました。進捗状況は以下のリポジトリの04フォルダで確認できます。 https://bitbucket.org/7shi/peben/src 第3回(id:n7shi:20110416)では、簡単なプログラムならC++を本格的に勉強して…

第4回 PE勉強会

Windowsの実行ファイル (EXE/DLL) で使われているPE (Portable Executable) 形式についての勉強会です。バイナリいじりの基礎から始めて、EXEファイルやDLLファイルをコンパイラなしで作って動かすことを目標にします。PEをきっかけにして、x86のマシンコー…

勉強会

ZIP

ZIP圧縮についての勉強会です。ファイルが格納される構造(コンテナ)、エラーチェック(CRC-32)、圧縮アルゴリズム(Deflate)について説明します。 2011年5月14日(土) 午後1時〜6時 マイ・スペース&ビジネスブース池袋西武横店 7号室 (東京都豊島区南…

第3回 PE勉強会 完了報告

id:n7shi:20110227で告知した第3回 PE勉強会が無事に完了しました。ご参加の皆様、お疲れ様でした。 配布資料: peben03.pdf(全ページ), peben03-1.docx(1ページ), peben03-2.xlsx(2ページ以降) サンプル: https://bitbucket.org/7shi/peben/src/902f63…

コマンドライン版インタプリタ

id:n7shi:20110408で開発したSilverlight版のPDP-11インタプリタですが、ブラウザから出してコマンドラインで動かなければ、実用には厳しいと感じました。そのためC++で書き直して、Win32とPOSIXに対応しました。Win32はMinGW、POSIXは Interix 3.5, NetBSD …

コンパイラが動作

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進数に戸惑ったため、デフォルトの出力…

勉強会の中止・延期について

地震の影響による電力・交通事情を踏まえ、以下の勉強会を中止または延期とさせていただきます。 id:n7shi:20110115 3月19日(土) Silverlight 初級勉強会 【中止:次回開催の目処が立たないため】 id:n7shi:20110228 3月23日(水) Meopad勉強会 【延期:…

クロスコンパイラ

MSYSでPDP-11のクロスgccをビルドしました。バイナリを置いておきます。 gcc-4.6.1-msys-cross-pdp11-aout.tar.xz /usr/localに展開すれば、pdp11-aout-gccとして呼び出せるようになります。特定OS用のcrtなどは含まれていないため、実行ファイルを出力する…

Meopad勉強会

※地震の影響による電力・交通事情を踏まえ、中止いたしました。加賀ハイテック株式会社より発売されているタブレット型端末Meopadを活用するための勉強会を開催します。開発元の協賛により人数分の実機をご用意しますので、実際に触れていただけます。Meopad…

第3回 PE勉強会

Windowsの実行ファイル (EXE/DLL) で使われているPE (Portable Executable) 形式についての勉強会です。バイナリいじりの基礎から始めて、EXEファイルやDLLファイルをコンパイラなしで作って動かすことを目標にします。PEをきっかけにして、x86のマシンコー…

第2回 PE勉強会 完了報告

id:n7shi:20110117で告知した第2回 PE勉強会が無事に完了しました。ご参加の皆様、お疲れ様でした。 配布資料: peben02.docx, peben02.pdf (第1回目参加者のご意見を参考に書き直しました) 参加者のtwitterリスト: http://twitter.com/7shi/peben (私が把…

引数と戻り値の省略

PE勉強会(1)で配布した資料(id:n7shi:20110219)のサンプルコードに問題があり、ご指摘を受けました。調べた所、色々な意味で突っ込みどころが満載でした。 int _main() {} 結論から言うと、以下のように書くのが無難なようです。 int _main(void) { return…

第1回 PE勉強会 完了報告

id:n7shi:20110108で告知した第1回 PE勉強会が無事に完了しました。ご参加の皆様、お疲れ様でした。 配布資料: peben01.xlsx, peben01.pdf 参加者のtwitterリスト: http://twitter.com/7shi/peben (私が把握している範囲内、他の回も含む) Togetter まとめ…

TortoiseHgのコミットメッセージ

TortoiseHgからタグを付けたらコミットメッセージが日本語になってしまいました。最初から日本語でメッセージを書いているなら問題ないのですが、途中からだと困ります。(外国に配るわけではないため無理してインチキ英語で書かなくてもとは思いますが、そ…

GitからMercurialへの変換

しばらくgitとhgを併用していましたが、最近hgを使うことが多くなりました。そうなると以前gitで管理していたリポジトリをhgに移行したくなります。gitからhgへの変換はhg convertを使うのが一番簡単なようです。 Converting from Git to Bitbucket hg conve…

スキャンPDFモバイル向け調整ツール

スキャンで作成したPDFをモバイル用に調整するには、トリミングで余白を落として、コントラストを調整して、解像度を落とす必要があります。そのためのツールを作成しました。実行には.NET Framework 2.0が必要です。 ソース閲覧: https://bitbucket.org/7sh…

スキャン画像モバイル向け調整ツール

スキャンしたデータは保存用に高画質で残しておきたいですが、モバイルで見るにはオーバースペックです。トリミングやコントラスト調整なども考えると、単純に低画質で再スキャンすれば済むという問題でもありません。そこでトリミングやコントラスト調整の…

スキャンPDFからJPEG抽出 (2)

id:n7shi:20110208のPDF解析コードを利用して、id:n7shi:20110201のJPEG抽出ツールを自前のコードに置き換えました。実行には.NET Framework 2.0が必要です。 ソース閲覧: https://bitbucket.org/7shi/pdf2jpeg/src ダウンロード: https://bitbucket.org/7sh…

解析ツール

PDF関連のツールを作ろうと試行錯誤しています。仕様書とバイナリエディタとテキストエディタを見比べながら開発するのは効率が悪かったため、構造を抽出して表示するツールを作りました。実行には.NET Framework 2.0が必要です。 ソース閲覧: https://bitbu…

FlateDecodeと差分圧縮

PDFで/Filter /FlateDecodeが指定されているストリームはdeflate圧縮されています。.NETのDeflateStreamで展開しようとしてもエラーになりますが、最初の2バイトを飛ばすと読み込めます。 DeflateStream throws exception when inflating PDF streams /Decod…

アーカイブ

C#で任意の数のJPEGを埋め込んだPDFを生成してみました。id:n7shi:20110205に掲載したPDFを複数ページに拡張して出力しています。以下にコードを掲載します(パブリックドメイン)。コードから呼び出しているGetJpegSizeはid:n7shi:20110204に掲載しています…

アーカイブ

JPEGをアーカイブするのに無圧縮ZIPを使っていましたが(id:n7shi:20100923)、PDFの中にはJPEGがそのまま入っているため(id:n7shi:20110201)、PDFはZIPと同じようにコンテナとして扱えることに気付きました。さっそく試そうと思い、以前id:m107さんに教え…

画像サイズを取得

以前(id:n7shi:20090519)C言語で外部ライブラリなしにJPEGの画像サイズを取得しましたが、同じことをC#でもやってみました。イメージを展開せずサイズだけ知りたいときに便利かもしれません。パブリックドメインです。

数字を含んだ文字列の比較

C#

文字列をソートすると2より10の方が先に来てしまいます。数字を認識するようにIComparerを実装してみました。 https://gist.github.com/807274