プロトタイピングとしてのF#

F#

はじめに いきなりですが、皆さんはプログラムを書くときにどのように書いていますか? 弊社は定型的なコードはともかく、まずは簡単なプロトタイプを書いて考えをまとめてからプロダクトコードを書いています。 いままでは適当なコンソールアプリケーション…

VB.NETでもコマンドライン引数を楽にパースしたい(またの名をVB.NETとF#で連携したい)

はじめに 好きなイヤホンはBOSEのQuietComfort 20 どうも弊社です。 前になんかいい感じのコマンドライン引数をパースするライブラリを見つけたいとか書いたのですが、DSL付きで見つけました。 なんとこちら、DSLなのに.NETの型システムと高い親和性を持って…

VB.NETでもクラスとモジュールの違いを知りたい

はじめに 好きな沿海域戦闘艦はフリーダム級沿海域戦闘艦 どうも弊社です。 計画倒れとか言われても、47ノットで洋上を爆走する姿はかっこいいと思います。 皆さんは新人くんの VBのクラスとモジュールの違いは何ですか? の質問にどのように答えているでしょ…

VB.NETとログについての伺か

はじめに 最近気になるカメラはPENTAX K-1 どうも弊社です。 弊社はロギングライブラリとかの扱いについて割と長い間悩んでいたのですが、自分の中のとりあえずの答えが出たので今回はそんな感じです。 ログライブラリへの強依存 さて、弊社はログライブラリ…

VB.NETでもAutofacで依存性を注入したい

はじめに OpenCoverのコードを読んでいたら、AutofacというDIライブラリが使用されており、気になったのでそれについてです。 チュートリアル Getting Started — Autofac 4.0 documentation 大体の手順をざっくりと列挙すると 脳内でいい感じに制御の反転を…

VB15の新機能の確認したい

はじめに 3月7日にVisual Studio 2017がリリースされました。 と言うことで今回も露骨なアクセス稼ぎVB15の新機能を確認していきましょう。 どうでもいいですが、VS2017のアイコンって梵字っぽいですよね。筆で書かれたっぽくして色を周りに合わせたら紛れて…

VB.NETでも遅延バインディングの呼び出し規則を確認したい

はじめに 遅延バインディングを使用したコードを眺めていた時にふと思ったのですが、遅延バインディングはどういう呼び出し規則でメソッドを呼び出しているのだろうと気になりました。 軽く調べてみたところ、言語仕様っぽいのは見つかりませんでした。 分か…

VB.NETでもパーサコンビネータを実装したい

はじめに 自宅でカンタン イルカセラピー どうも弊社です。 ヤフーでググったところ、今のところ誰もVBでパーサコンビネータを実装してないっぽかったので実装してみました。 実装にあたり、こちらのブログを参考にさせていただきました。感謝 blog.anatoo.j…

.NET FrameworkのRegexの文字クラスはバグっているのか?

はじめに 正規表現のお話ですが、『.は任意の一文字にマッチする』みたいな文法解説ではありません。 そんなの大手サイトが死ぬほど書いてますしね。 妙なバグを踏み抜くことに定評がある弊社ですが、今回は正規表現の文字クラス関係でわりと意味がわからな…

VB.NETでも文字列オブジェクトのサイズを計算したい

はじめに VBと言ったな。あれは嘘だ。 前の記事でオブジェクトのメモリ上のサイズを計算してみましたが、結局System.Stringのサイズがよく分かんないというなんでそれ書いたんだよって感じのアレになりました。 そのままだとなんか悔しいので、調べなおして…

VB.NETでもオブジェクトサイズの概算をしたい

はじめに 好きなトラックボールはKensingtonのSlimBlade どうも弊社です。 この記事はVisual Basic Advent Calendar 2016の11日目の記事となります。 10日目はamay077さんのVB.NET でパスワード付き共有フォルダにファイルをコピーするでした。 数十・数百万…

VB.NETでも割と楽に状態を扱いたい

はじめに 好きなポストイットは強粘着ノート75mm×75mm どうも弊社です。 .NETチームのブログを眺めていたところ、面白そうなライブラリを見つけました。 blogs.msdn.microsoft.com github.com オブジェクトの状態遷移を管理するためのライブラリで、状態遷移…

C#でもUbuntu+Docker+Jenkins+GitBucket+MonoでCIしたい(CI編)

C#

はじめに 好きなお寿司はイクラ どうも弊社です。 前回はJenkinsとGitBucketの環境を構築しました。 今回は実際にJenkinsでビルドとテストを実行させてみましょう。 プロジェクトの作成 まずはCIをブンブン回すプロジェクトを作成します。 テストの実装及びJ…

C#でもUbuntu+Docker+Jenkins+GitBucket+MonoでCIしたい(環境構築編)

C#

はじめに 好きなSF小説は『銀河ヒッチハイク・ガイド』シリーズ どうも弊社です。 皆さん、CIしてますか? ヘイシャハデキテマセン 今回はLinuxサーバ環境で半ば無理やりCI環境を構築して.NETプラットフォームのアプリケーションをCIするという誰が得をするのだろうと…

VB.NETでも制約ソルバーを用いて数独を解きたい その2

はじめに 好きな重原子力ミサイル巡洋艦はキーロフ級ミサイル巡洋艦 どうも弊社です。 前回は地獄のSMT-LIBコピペ祭りを経て、z3で数独を解くことに成功しました。 今回はVBから制約を発行してz3に数独を解かせてみましょう。 .NETバインディング z3には.NET…

VB.NETでも制約ソルバーを用いて数独を解きたい その1

はじめに 好きなフォントはにゃしぃフォント どうも弊社です。 マイクロソフト・リサーチが開発しているz3定理証明器に興味を持ったのでそれについてです。 『セオレムプロバー』と『フィジカルリアクター』って似てると個人的には感じてるのですが、z3には…

VB.NETでも形態素解析っぽいことをしてExcel方眼紙から漢字を抽出したい

はじめに 好きなMSILオペコードはldloca.s。どうも弊社です。 いやまぁローカル変数256個越えとか普通しないじゃん。ふつう 皆さんは漢字は得意ですか? 弊社はクッソ苦手です。 パソコンに頼り切っちゃってるのでまぁ当たり前っちゃー当たり前だし、普段パソコ…

C#でもILGeneratorでダイナミックにToStringしたい

C#

はじめに 好きなLinuxディストリビューションはDebian。どうも弊社です。 動的にToStringするのに定評がある[要出典]弊社ですが、ライブラリを追加するレベルでもないけど手軽に1ソースコードを追加するだけでパパッと使えるものが欲しいな~と考えておりま…

VB.NETでもWinDbgしたい

はじめに この記事はWinDbgで.NET Frameworkのデバッグをするときのコマンドの備忘録です。 解説はありません。希望もありません。 ダンプの取得 ダンプは別途ソフトウェアをインストールする必要なく、タスクマネージャから取得することが可能。 しかし、ダ…

VB.NETは解析されやすいのか?(その2)

はじめに 好きな戦車はルノー FT-17。どうも弊社です。 今からBF1が楽しみですね。 jyuch.hatenablog.com 前回はildasmを用いた逆アセンブルとプログラムに出現する文字列から当該処理を行う箇所を特定し、特定の処理の迂回をやってみました。 今回はデバッ…

VB.NETは解析されやすいのか?(その1)

はじめに 好きなサブマシンガンは KRISS Vector。どうも弊社です。 C#やVBなどの.NET言語はリバースエンジニアリングに弱いと言われています。 ちょっとした用事でソースコードを紛失したライブラリを解析してその事を実感したので今回はその事です。 イント…

VB13以前でもNull条件演算子を使いたい

はじめに ちょっと前にVB14の新機能についての話をしたじゃないですか。 その中にNull条件演算子なんてものがあったと思います。 弊社はEntity FrameworkみたいなライブラリでFirstOrDefaultみたいなクエリを割合ぽいぽい投げ返ってきた値がNothingかそうで…

C#でもSigilでデリゲートをダイナミックに生成したい

C#

はじめに 万年5月病。どうも弊社です。 飽きもせずに.NET黒魔術シリーズです。 SigilといってもEPUBの方のSigilではないです。そっちの情報を求めていた人はまわれ右してお帰りください。 やる気が起きなかった時にネットサーフィンしていたところ、こんな記…

VB.NETでも処理を高速化したい その2

はじめに お前に足りないものは、それは! 情熱・思想・理念・頭脳・気品・優雅さ・勤勉さ!そしてなによりもォォォオオオオッ!! 速さが足りない!! 私が一番?やっぱり? そうよね! だって速いもん! どうも弊社です。 ブログのアクセス解析を見るとプ…

いろいろな雑記

はじめに 独立した記事にするにはちょっと大げさな正直どうでもいい内容を一つにぶち込んでしまおうという記事です。 ReflectionToStringBuilder ver.1.4のリリース 機能及びライブラリの内部構成はほぼほぼ変わっていません。 github.com CLSへの準拠 アセ…

VB.NETは共通言語仕様の夢を見るか?

はじめに kotlinの正式版が出てテンションが上がっている弊社です。 余談ですが、「ことりん」って響きってアイマスとかラブライブとかに出てきそうですよね。 .NET Frameworkは言語に依存しないプラットフォームです。 つまり、C#で書かれたライブラリをVB…

VB.NETでもside-by-side実行をしたい

はじめに 新幹線は意外と乗りごごちが良く無いなぁと。どうも弊社です。 はじめに一つ釈明といいますか謝罪的なアレなんですが、タイトルにVB.NETと冠していますが正直VBほとんど関係ありません。 サンプルコードにVBを使ってるだけで正直C#でもVBでも大して…

VB.NETでもMono.Cecilでアセンブリを書き換えたい

はじめに 某家電量販店でSurface Bookを予約したら全店舗で初予約者でした。どうも弊社です。 しばらくは霞を食べて生きていきます。 さて、シリーズになっているのかなっていないのかよくわからん.NET黒魔術(メタプログラミング)シリーズですが、今回はMo…

C# + RoslynでVB.NETのコード分析ツールを作りたい

C#

はじめに あけましておめでとうございました。 普段メタプログラミング・リフレクション大好きと言っておきながらいつまでもRoslynを触らないのはどうなのかなぁ。 ということでC#とRoslynでVBの簡易的なコード分析ツールを作ってみました。 まぁ、コード分…

ボックス化は遅いのか?最終鬼畜言語VB.NET

はじめに 最近の流行ワードは「サイクロマティック複雑度」。 どうも弊社です。 いきなりどうでもいい事なんですが、C#でdynamicを使うとサイクロマティック複雑度が上がっちゃうんですね。 まぁ、コンパイラが生成するコードなんでしゃーないんですけど。 …