サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Switch 2
www.moonmile.net
昨日書いたばかりの、これだけど、SqlBulkCopy を使うとどれだけ早くなるのかを再び実験 LINQ の INSERT が遅いときは AutoDetectChangesEnabled を False にする http://www.moonmile.net/blog/archives/9646 結論 結論から言えば、SqlBulkCopy を使うほうが100倍位早いですね。1万件位だと6秒から0.06秒という誤差?っぽい感じだけど、100万件になるとLINQのINSERTでは難しいので、SqlBulkCopy を直接使えという感じです。 SqlBulkCopy は DataTable を受け取る SqlBulkCopy Class (System.Data.SqlClient) | Microsoft Docs https://docs.microsoft.com/ja-jp/dotne
0.01を10000回の件、 ・倍精度浮動小数点のバイナリ配置を言える者が笑いなさい ・桁落ちしない計算手法を提示できる者が石を投げなさい — Tomoaki Masuda (@moonmile) 2018年11月18日 元ネタの引用リツイートが3件ほど立て続けてに回ってきたのと、「俺たちはテストコードにいつまで ε を書かないといけないのだろうか?」というツイートがあったので、それを絡めて。 最初に TDD の話だけ書いておこう(一連のツイートには書かなかったので)。 xUnit のテストコードに誤差範囲を指定する 自動単体テストでは、Assert.AreEqual( 期待値, 実測値 ) な形で、数値や文字列を比較するけど、これ実数(double)の場合は、Assert.AreEqual( 期待値, 実測値, 誤差 ) という形で誤差の許容範囲を指定しないといけない。これ、文字列や整数
日本橋で「Turbo C 下さい」って買いに行ったら「X1 Turbo」を出された > RT https://t.co/XwKNPI7XxL — Tomoaki Masuda (@moonmile) 2016年2月26日 もうちょっと前に書こうと思っていたのですが、Turbo C++ のフリー版があるよ、ということで記事を残しておきます。 Turbo C++ or C for Windows 7, 8, 8.1 and 10 32/64-bit Full Screen Free Download – Home https://turboc.codeplex.com/ Windows 10 でも動くので、そのままダウンロードしてインストール。起動すれば ok です…が、全画面になってしまうのが困りものなので、起動時に「full screen mode…」のチェックを外します。するとウィンドウ
予算さえあれば、新規作成 or 完全移植してしまうのがベターなのだが、多くの場合予算の関係で VB6 の業務アプリをそのまま使い続けることがある。旧来の PC(Windows 2000やXPも含む)にインストールされている VB6 の業務アプリを専用機器のまま使う(あるいは、PC から吸い上げて仮想モード内のみで使う)方法もあるのだが、いくつかのネックがある。 既存バグが解消されない 新規システムと接続できない(修正できない) 既存PCの CPU 速度に引っ張られて遅い こともあり、 VB6 の業務アプリから何らかの形で引っ越したいところなのだが、予算がない、あるいは既存の業務アプリが複雑怪奇すぎるための引っ越しの予算が掛かかるかもしれない、という理由から、なんとか既存 VB6 コードを弄ろうとする。それは試算は試算なのだから、工場の機械よろしく使い潰すのがベターともいえる。 で、まったく
Visual Studio を使ってボタンのイベントを作ると button1_Click な感じにキャメルケース(camelCase)になるのだが、「名前指定の規則違反」を指摘されて、こんな感じに大文字で始まらなければいけない、と言われる。 毎度、なんじゃこりゃ?と思っている訳で、結構前から C# – イベントハンドラーで構文エラー「~button1_Click~」(100021)|teratail 問題があったりするわけだが。これ、命名規約のルールとして、 プライベートなメソッドは小文字で始める パブリックなメソッドは大文字で始める というパターンが妥当で(実際、以前からそうなっていたし)、イベントの自動生成もプライベートなフィールド名前(button1)から自動でイベントメソッド名を付けている訳で、このキャメルケースでいいような気もする。 というか、Microsoft の初期設定はま
巷ではGoogleのリアルタイム翻訳アプリが流行っているのだが、あいにく手元にある Android が古いので、それほど面白い画像が取れない。ので、Google Cloud Vision で OCR 機能を試してみたのだが、実は Microsoft OCR もあるよ、ってことで。 こんなものがある。 Windows.Media.Ocr namespace – Windows app development https://msdn.microsoft.com/library/windows/apps/windows.media.ocr.aspx?f=255&MSPPError=-2147217396&cs-save-lang=1&cs-lang=csharp#code-snippet-4 試してみると、Microsoft OCR も Google のそれに対してさほど悪い結果でないことが分
ラズパイ互換機の一覧がイイ感じでまとまっていたので、死蔵していた Orange Pi One を引っ張り出して samba まで使えるようにしてみた経過です。 「Raspberry Pi」より強力なシングルボードコンピュータ20選–競合製品の長所と短所 – TechRepublic Japan https://japan.techrepublic.com/article/35108435.htm Raspberry Pi Zero W が1,000円程度で手に入るようになったので、以前より「格安」感は薄れていますが、ラズパイ3と同等レベル(あるいはそれ以上)のスペックを求めるときと、1個ではなく大量に使いたい(5個以上とか)ときには有効でしょう。1個だけ使う場合は、資料が多いラズパイを使ったほうが無難です。 100個以上使って製品化する場合には、専用の回路を組むとか、長期的な供給源の問題も
iPhone(iOS 10以降)でUIWebViewを使って https 通信をするときに自己署名証明書を使っている場合、どうやっても接続ができなかった。 現状 色々調べたのだが、 ServicePointManager.ServerCertificateValidationCallback を使って、SSL証明書のエラーを回避する → そもそもここが呼ばれない。 Info.plist に NSExceptionDomainsとNSExceptionAllowsInsecureHTTPLoadsを追加して例外扱いにする → NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) のエラーになる。 非推奨の allowsAnyHTTPSCertificateForHost をオーバーライドし
ふと、Nano Pi K2 に Ubuntu を入れて .NET Core を使ってあれこれしようと思ったのですが、何やらこの OS がちょっと Ubuntu とは違う。Raspberry Pi に Ubuntu Mate を入れたときと挙動がちがう。そもそも CPU は同じ Cortex-A53 なのだから、GPIO まわりが違うとはいえ、Hello world 位は動くのではないか? http://wiki.friendlyarm.com/wiki/index.php/NanoPi_K2#UbuntuCore と思って、何の OS だか再確認すると「UbuntuCore」と書いてあります。これは、普通の Ubuntu とはどう違うのか?ってのが発端です。 そもそも Nano Pi K2 って何? Friendly ARM で購入できるラズパイ互換機です。Nano Pi にはいくつか種類
俺のラズパイ3で.NET CoreなF#が動かないわけがない | Moonmile Solutions Blog http://www.moonmile.net/blog/archives/8028 の記事が去年の8月末で、あれからほぼ1年が経ちました。経っているうちに、.NET Coreが2.0のプレビュー版になって、.NET Coreが動くようになりましたよ、という話。 core/roadmap.md at master ・ dotnet/core https://github.com/dotnet/core/blob/master/roadmap.md#technology-roadmaps Running a .NET Core 2 app on Raspbian Jessie, and deploying to the Pi with Cake | Jeremy Lindsay
「ハチワンダイバー」を通読したので、浦野真彦著「1手詰めハンドブック」を買いました。子供用にどうぶつしょうぎを買っている訳ですが、結構いけそうなので、それならば詰将棋を試してみようという次第です。自分で読むというのもあるけど。私は、7手詰め位でギブアップですね。 [amazonjs asin=”4839933324″ locale=”JP” title=”1手詰ハンドブック”] 将棋とプログラミングは似ている プログラミングは、新しい問題を解決すると同時に、既存の問題を解決する手段でもあります。新しい問題ってのは、人工知能とかVRとか、新しい技術ですよね。なんらかの技巧を駆使して実現するわけですが、一方で、みずほ銀行リプレースのような既存の技術の積み重ねで成り立っているところもあります。所謂、社内の情報システムの構築なんかは、大抵はこの「既存の技術」の組み立てで十分だったりします。そのあた
.NET Core が 1.0 になってリリースされて、ASP.NET Core MVC が Linux 上で動くようになったと思ったら、今度は .NET Standard ってのが出てきて、え?いきなり、.NET Standard 2.0 ってのは何ですか?ってな感じな人は多いと思いますが(私もそうでして)、ひとまず、.NET Standard とは何なのかを探っていきます。 Introducing .NET Standard | .NET Blog https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/ もともと、.NET Core って、Windows に依存する API を切り離してしまって、Linux やら Mac やら動く環境を作るのが目的じゃなかったんですか?と思っていたわけです
Web API の JSON 形式に関しては、 Building Your First Web API with ASP.NET Core MVC and Visual Studio ? ASP.NET documentation https://docs.asp.net/en/latest/tutorials/first-web-api.html に詳しい解説があります。 が、クライアント側が書いていないので、先の XML 形式と同じように WFP アプリでクライアントを書いていきます。 送受信の形式 WPF アプリで JSON 形式で送信 ASP.NET Core Web API で JSON 形式で返信 することを考える。データはいちいち JSON 形式に直すのは面倒なので、C# のクラスから Newtonsoft.Json.JsonSerializer を使ってシリアライズ/デシリ
ざっと記録として残しておきます。 5/30 に悪質サイトに登録される 仕事上、執筆やらプログラミングの折りには自分のサイトを Google で検索するのが多いのですが、5/30 の朝に検索すると悪質サイトとして登録されていました。 Google ウェブマスターからはこんな感じ。 なんぞ、クラッキングされたのか?と思ったものの、直で moonmile.net からアクセスして当 blog にアクセスすると大丈夫。でも、Google 検索をさせると駄目という状態で。なんら表面上は大丈夫なように見えるんですが、妙にアクセスが遅いのが気になるところでした。ページにアクセスしようとすると、windows defender が警告を発する状態です。 ソースコードが保存できない 表面上、何もないということは XSS を仕組まれたか何かなので、ソースコードを見ます。Firefox ではガードされて見れなか
昨日の続きを少し書き足しておきます。 Visual Studio Community 2015 で Xamarin.Forms を使う | Moonmile Solutions Blog http://www.moonmile.net/blog/archives/7873 Xamarin.Android/iOS を使ってそれぞれのプラットフォームに向けて C# で書けるのはそれはそれで充分です。UI にしても最新機種にあわせる場合は、Java/Swift で書くだろうし、iOS のほうはタイムラグ無しで Xamarin.iOS が出ていたし、Android のほうも数週間ほどで追随してきます。おそらく、Xamarin が Microsoft に買収された今後も同じ方針でしょう。同じ方針だけど、プラットフォーム三社の思惑があるし、そこはどう動くかわからない。ただし、あまり「最新機能」にとらわ
//Build/ 2016 で Xamarin が Visual Studio で無償で利用できるようになりました。ということで、一応、素の環境から Visual Studio Community を使って入れます。 Windows で Xamarin 開発をしたい方はインストールする前に読んでほしい – Xamarin 日本語情報 http://ytabuchi.hatenablog.com/entry/2016/04/05/142525 田淵さんがスタート向けを書いてくれたので、私のほうは既存の Visual Studio に追加というスタイルで話を進めます。 Visual Studio Community 2015 をダウンロード https://www.visualstudio.com/ja-jp/products/visual-studio-community-vs.aspx か
何故か、英語で CppUnit の解説を小一時間することになってしまったので、その後の展開的に残しておく。 使っている人は使っているらしいが github のコードを見ると大抵のフレームワーク系のライブラリは、 test フォルダがあってテストプロジェクトがある。まあ、実際に自分でやってみると適当な xUnit を書かないと立ち行かない場合が多い(スタート時点の複雑さに追いつかない&後で混乱して修正コストが高くなる)のとで残しておくのと、ライブラリのマニュアル的なものとして残しておくと便利なのでちらっと書いておくとよい。 が、どこでどう間違ってしまったのか、様々な原因で身の回りに実務で TDD をやっている人は少ない…というかいない。これは主に業務アプリを作っている私だからなのか、最近はあまりであることが少なくなったのか分からないが、テストコードを書いている人は少ない。変わりに、従来通りの
先日の JXUG の MVVM の補足 を書いたので、どうせだからもうちょっと突っ込んだ話題を残しておきます。Xamarin.Forms などを使う場合は、そんなに多くの人は関わらないでしょう。勉強会でもちらっと話しましたが、ひとりで MVVM すべてを作ったり、数名で MVVM を分け合ったりするのがほとんです。 せっかく V-VM-M と分かれているのだから、ある程度規模が大きくなれば分担しないといけません。最初に2つのパターンが考えられて、 縦割りにして、画面ごとに MVVM を一貫して作る。 横割りにして、V-VM-M を別々の人に割り当てる。 ことが考えられます。理想的には View をデザイナが受け持ち、VM をプログラマが、M をデータベーススペシャリストが担当するのが良いのですが、人数的な問題や規模的な問題、開発者のスキルのばらつき、遠地なのか近地なのか、同じ会社なのか別会
懐かしの パタンランゲージ を眺めつつ、ふと 再考: GoF デザインパターン が気になったのでさらっと流しておこう。 [amazonjs asin=”4306041719″ locale=”JP” title=”パタン・ランゲージ―環境設計の手引”] そもそもが GoF 発祥自体が 90年頃で、日本語の書籍は Java が発生した頃と前後してしまっているので、オブジェクト思考ブーム、UML, パターンのブームよりも随分前からある。C# や Java よりも前になので、今さら再考する意味もないのではないか?と思われるのだが(そもそも Qiita の「再考~」の記事自体が 2014 年だ)、歴史経緯から考えるのと、GoF の反省(あるいはドツボ?)からできあがった現在の C#, Java の言語拡張をみていくと、これらのパターンが言語仕様やライブラリに含まれてしまっていることが分かる。逆に言
海外のモータードライバと言えば L293D が乗っていることが多いのですが、ぼちぼちと SN754410NE に切り替えるのか?と話題があって。こっちのほうは秋月電子で150円で買えます。 それとは別に、TB6612FNG を買ってみたのでお試しとして。手元にあるのはスイッチサイエンスのものではなくて互換品で 3$ 程度で買っています。 ブレッドボードで配線 それぞれのモーターに対して IN/OUTが2本ずつとPWM線があるので、結構本数が多いのが難点ですね。まあ、Arduino Tank を動かだけの2個のモーターならばいいけど、多脚ロボットにしてそれぞれの足にモーターが付いている、ということになると、ちょっと考えないといけないかも。I2C 経由にすればよいのですが。いずれ ロジコマ作ってみる【ぼーだー1】 ‐ ニコニコ動画:GINZA を参考にして作ってみたいところ。 回路図 無線化も
本来ならば Bluetooth LE を使うところなのでしょうが、価格が高い(苦笑)なので安い方から手を入れていきます。 <b>連載</b>Bluetooth LE (5) Android 4.3 で Bluetooth LE 機器を使う (フェンリル | デベロッパーズブログ) http://blog.fenrir-inc.com/jp/2013/10/bluetooth-le-android.html Bluetoothでデバイスと通信するには | garicchi.com http://garicchi.com/?p=17111 なところで、BLE を使っているのでいずれ追いつこうということで。手始めには、先に作ったモーターの駆動系を Bluetooth で制御していきます。同時に Raspberry Pi の Bluetooth シールドも買ったのですが、まあ、これは要らなかったか
Electroharmonix フォントが何故、日本人に読めないのかを Tesseract-OCR で紐解く 日本人にだけ読めないという Electroharmonix というフォントが話題なので、どうして読めないのか?というのを OCR を使って解説します…と言いますか、理由は日本はカタカナを知っているけど、欧米人はカタカナが解らないから字形を見てアルファベットにしか見えない(という似た感じの文字を探す)というだけなんですけど、そのあたりを OCR を使って動作確認をしてみようという話。 日本人にだけ読めないフォント「Electroharmonix」が面白いと話題に! | netgeek http://netgeek.biz/archives/53486 ちなみに、Electroharmonix フォントは 1985年にできたのでフォント的には古いものです。なので、あちこちのゲームやポス
■目的 こんな画像から、14牌を認識する、とする。この画像自身の切り出しをどうするのか?って問題があるけど、麻雀牌自体は手元に置くことが多いし、ある程度画像認識の範囲を絞り込むことができるだろう…という仮定からスタートする。もちろん、これは「仮定」なので、前提条件が間違っている場合も頭の隅に入れておく。 ■手順を考察 いきおい、牌の物体認識から入ってしまうと思われるが、それは駄目だ。というか無駄だ。牌の形は「四角」で固定されているし、牌の表面は主に白でおおわれている。さらに背景は、白以外(大抵は緑のマット?)なのだから、わざわざ物体認識という大層なことをやらなくてもいい。白っぽい部分を抽出すれば、牌と特定できるだろう。 さらに、この場合は牌が14個連なっている。多少上下にずれているが、だいたいは真ん中で一直線になっている。牌の数は決まっていて、14個であるのだから、先に大まかな位置が分かっ
とあるプロジェクトで C++/CLI と C# ライブラリを混在させたときの構成マネージャの記録を残しておきます。ライブラリのほうは、既存のC/C++ライブラリを想定して、それをC#から使いやすいようにラップします。まあ、C#から直接C言語のDLLを呼び出すことは可能なのですが、後々のメンテナンスを考えると、インポート文の羅列はちょっと避けておきたい。C++/CLI を記述するにしても、これもメンテナンスが大変(C++/CLIを知っている人が少ない)なことを考えれば、ある程度C#で書ける部分を多くしておくほうがよいでしょう、という発想で構成を作ってあります。 この構成が妙に複雑なのは、デスクトップアプリ側にサービスとしてC/C++のDLLを利用する部分が存在し、これをストアアプリからローカルHTTPで利用しようとするスタイルのためです。ストアアプリではWin2Dを使っていますが、これがDi
PC でネットワーク通信をするときは IIS を使って HTTP プロトコルを使うのが定番なのですが、途中に IIS みたいな Web サーバーが入ってしまうのが難点です。いや、ASP.NET MVC や Web API レベルで C/S 作っている分にはいいけど、昔からの TCP/IP を使わないと実現できない(実現しやすい)というパターンを想定して、HttpListener と TcpListener を改めて使ってみます。 HttpListener を使う HTTPプロトコルを 8188 ポートで受けて、Win キーを押すというサンプルコードです。Win キーを押すのはおまけで、まあ、こんな感じで独自の HTTP サーバーが作れるという意味ですね。 private void button1_Click(object sender, EventArgs e) { string url
うちのサイトでは地味にアクセス数が多いページで、 意外と遅い DataTable 、なので List を使うと 5 倍早くなる | Moonmile Solutions Blog http://www.moonmile.net/blog/archives/2228/comment-page-1#comment-24840175301577487 というのがあります。もう4年程前の記事で、業務で VB.NET 2.0 を使わないといけなくて、LINQ が使えなかったので、DataTable にしようか、List にしようかという調査の記録です。今だと、もうちょっと色々なやり方があるのですが、ちょっとコメントとが付いたので、計測しなおしてみました。 ■list を使う ■list に構造体を使う 上記2つのケースについて、他の3つのケースにて行っている 「あえて最初に行を追加しておく」処理の記
Raspberry Pi 2 ではSDメモリカードが micro SD になりました。小さくなって飛び出し部分が少なくなった半面、micro SD を無くしやすい(苦笑)という罠が。 ただし、普通の PC とは違って、容量が小さい micro SD カードを丸ごとバックアップしておけば、他の micro SD カードにコピーできて便利です。 バックアップを取る理由 なんかやっているときに、micro SD カードが壊れる。パターンがあります、RPi の USB ケーブルをぶちっと抜いてシャットダウンしないと、壊れる可能性があります。まあ、初代から使っていますが、このパターンで壊れたことがないので、シャットダウンせずにぶちぶち切っていますが(苦笑)。あと、PC の USB ポートに繋いて試していると、PC がスリープして RPi に電源供給ができなくなってそのまま落ちる、ってのもありますけど
詳細は、公式 Windows IoT – Get Started と、翻訳 Raspberry Pi 2へのWindows 10 IoT Core Insider Preview版のインストール方法 ≫ DesignSpark を見てもらうとして、RasPi に Windows IoT を乗せるときに躓きそうな点を補足しておきます。 micro SD カードに Windows IoT Core を焼く Widows 10 が乗るのは、Raspberry Pi 2 のみで、それ以前のものはダメな訳ですが、Get Started からダウンロードできる、Windows_IoT_Core_RPI2_BUILD.zip の中にある Flash.ffu ファイルを焼くことができるのは Windows 10 TP だけです。Raspberry Pi に Linux を入れるときに Win32DiskI
娘のサンタクロースに Rolling Spider を貰ったので、ちょっと遊び&調べてみました。 Jumping Sumo のほうは、夏あたりに見たのを覚えていたのですが、こっちのほうもワンセットで発表されていたのです。実は、先日の MS グロサミで MVP の方がコントローラを使ってデモをやっていて、中身で何が動いているのか知りたかったのです。その後に行った MS ストアに売っていて Surface でデモをやっていたので、.NET Micro なのかと思っていたのですが、組み込み Linux だそうです。操作は、Bluetooth v4 が装備されている iOS/Android/Windows Phone があれば ok です。FreeFlight 3 のストアアプリ版もあるので、初代 Surface RT を使って動かすこともできました。ただし、Surface の場合は、Blueto
次のページ
このページを最初にブックマークしてみませんか?
『moonmile solutions』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く