銀の弾丸

プログラミングに関して、いろいろ書き残していければと思っております。

「プロミス地獄」に落ちないための基本事項を書いておきます

「コールバック地獄」からボクらを救ってくれた「Promise」ですが、ふと気が付けば、ちょっと種類の違う別の地獄に落ちてる場合がありますよと。 「なんだPromiseお前もかっ!」的な(笑) 「コールバック地獄」は見た目にネストが深くて「ダメだコリャ感」…

WHATWG Fullscreen API を仕様通りに使えるモジュール「fullscrn」

WEBページ内の特定HTML要素を画面全体に広げられるフルスクリーンAPIのラッパーモジュールをnpmで公開しました。 WHATWGが策定しているフルスクリーンAPIは、現状(2017年5月現在)、多くのブラウザで、プリフィックス付きの実装(mozとかwebkitというアレで…

SVGの重なり順序を操作する「svg-z-order」

npm の svg-z-orderは、 JavaScriptからSVG要素の重なり順(Z-Order)を操作するモジュールです。 SVGには、HTMLに使えるz-indexスタイルは効きません。 なので、重なり順を変更するには、要素を並べ替えるしかないのです。 コードからDOM要素を並べ替えるに…

D3.js v4 でドラッグするには d3.drag() で behavior を取得する

D3.jsでドラッグイベントを処理する必要があったのですよ。 ほぼ初めてのD3ですからグーグル先生にいろいろ聞いて、「ほうほうなるほど」と学習していたのですけど、 ドラッグに関して各所で示されていたサンプル通りにやってみたら、まさかのエラー。 結局…

JavaScriptのラムダ式(アロー関数)は丸括弧で括らなければ即時実行できませんのね

Link: Flickr PAGE - CC BY 2.0 Node.jsで以下のようにラムダ式を即時実行していたのですが、ブラウザでは構文エラーとなって動かないんです。 (()=>{ console.log("これ動きません"); }()); まさかコレが動かないとか思いもよらず。 どう見直しても問題があ…

JavaScriptでマイクロ秒単位の定期処理を実行する(npm fractional-timer)

JavaScriptで1ミリ秒より短いインターバルタイマー処理を提供するモジュール fractional-timer のご紹介。 Link: Flickr PAGE - CC BY-SA 2.0 実際のところ、精度はよくありませんので、クリティカルな用途には向きません。 単純な処理をなるべく高速にタイ…

.NETのアプリケーション設定を編集可能なXMLに保存する

アプリケーションの設定を編集可能なXMLファイルとして利用するための基本クラスとサンプル実装をご紹介

OpenCVの画像処理をお手軽に ― OpenCVフィルター処理ライブラリ cvImagePipeline のご紹介

画像処理・機械学習プログラミング OpenCV 3対応posted with amazlet at 17.06.24浦西 友樹 青砥隆仁 井村誠孝 大倉史生 金谷一朗 小枝正直 中島悠太 藤本雄一郎 山口明彦 山本豪志朗 マイナビ出版 (2017-06-21)売り上げランキング: 2,966Amazon.co.jpで詳細…

まだ間に合うXAMLの基本

「XAMLはなんだか複雑だ」と思ってました。 しかし、あることに気が付いてから「なかなかシンプルなんじゃない?」と思えるようになりました。 ちゃんと知っている方にとっては、当たり前のことかと思いますが、その「ちょっとしたこと」を出発点に、1段掘り…

MVVM的に真っ当にMessageBoxを表示する

MVVMの考え方に沿ってメッセージボックスを表示するC#のサンプルコード。メッセンジャーパターンを使用します。従来コードからの移行も簡単。ユニットテストも対応可能。

WPFのMVVMでコマンドをバインディングする利点

photo credit: Storm Trooper at Oxford via photopin (license) MVVMパターンでは、ボタンを押した時の処理などは、コマンドにバインディングいたしましょうということらしく、 従来の「Clickイベントをコードビハインドで受けて、、、」というのは嫌われる…

C#のラムダ式はAction・Funcと一緒に理解を深めるとヨロシイようで

年に一度のパートタイム・シーシャーパー(C#erと書くらしいですね)ですが、今年は少し期間が長く、去年よりは深い仲になれそな予感がしてます♪ とはいえパートタイム・シーシャーパー(もういい)なので、最新の動向を追いかけるのには四苦八苦。 てことで…

セルの範囲に入力された最も右の値を得るにはワークシート関数「MATCH」を使えば良いらしい

MATCHと一緒にINDEXとMAXも使います。 何の話かってエクセルです。セルの中の計算式。 エクセルのワークシート関数はたくさんあって、かなり強力。統計用の関数とか、行列演算さえできてしまう。 さらに、今や Google Drive のスプレッドシートなど、他の表…

最近気づいたVisualStudio 2015 C# で便利に使える5つの機能

全国的に梅雨も明け、本格的な夏ですね。 自分的には(仕事で)年に一度の恒例のVisualStudioシーズン・イン。 昨年までは冬場が多く、期間は長くても2か月程度。 しかし今年は 6月初めから徐々に動き出して、7月以降に本格化。 期間はトータル4、5か月にな…

Visual Studio 2015 Update 3 適用でテストウィンドウに例外発生 ⇒ 言語設定を英語にすれば治りますけど・・・

VS2015の日本語環境に Update 3 を適用するとTestWindowの初期化中に例外投入されまして、、、

【機械学習基礎固め】線形回帰(Linear Regression)の初歩的ポイントを再確認して書いておく

昨年の今頃、CourseraのMachine Learningの講座を受講しましたが、 急いで詰め込んだ情報ってのは、やっぱり消えていくのも早いようです。 当時、仕事で炎上案件の火消し作業に関わっておりまして、 深夜に帰宅し、晩御飯をいただきながらネットで受講。 字…

Octave-Forge for Windows をインストールしてMinGW / MSYSから利用する

MinGW用(?)Octave-Forge for Windows を、Windows 10 にインストールして、MSYS(GitHub for WindowsについてるGitBash)で利用できるようにセットアップしたので、その手順を書いておきます。 photo credit: I23 - SPANning an octave via photopin (lic…

WPFのDataGrid:カラムの表示・非表示をバインディングで切り替える

WPFのDataGridで、特定の列の表示・非表示をバインディングで切り替える方法を書いておきます。 photo credit: National Building Museum via photopin (license) 当初、「Visibilityをバインドするんでしょ?」と、簡単にやってみたけど無理でした。 調査の…

ShellでZIPの特定ディレクトリ以下全ファイルをUnzip

CLIのunzipで、ZIPファイルから特定ディレクトリ以下の全ファイルを取り出す方法の覚書き。

DynamoDB:条件式のプレースホルダを自動生成してみましょう

Amazon DynamoDBのテーブルをコマンドラインから操作する3つのコマンドをご紹介。 条件式で厄介なプレースホルダーを気にせずに使えるようにしています。

npm「list-it」― コンソールへ列を揃えてデータを表示

コンソールへ表形式での表示を支援するNode.jsのモジュールです。

npm 「hash-arg」 ― コマンドラインパラメータに名前でアクセス

コマンドラインで指定されたパラメータに名前でアクセスする為の、シンプルなNode.jsのモジュールをnpmで公開したので御紹介。

Node.jsで正常終了:process.exit(0) は呼ばないほうが良いですね

「ダメ!絶対!」ということでも無いですが、Node.jsで、正常終了するとき、`process.exit(0)`と明示的に呼び出さないほうが良いですねっていう小ネタです。いや、引数0は省略できるとか、そういうことではなくて。

AWS Lambdaの関数アップロードをお手軽に

AWS Lambdaの関数を、ローカルPCからアップロードするコマンドのご紹介。ダウンロードも出来ますよ。

AWS LambdaからDynamoDBをQueryする

Node.jsのLambda関数からDynamoDBを操作するサンプルコードを示してみます。

ブラウザでマルチスレッド ― JavaScriptのWeb Worker を使用してサブスレッドと通信する(応答をコールバックで受けとる機構を実装する)

ブラウザで動作する8ビットマイコンのエミュレーターを作っており、動作速度と安定性を確保するため、Web Workerを使用したので、そこで得られた知見などを書いてます。

C++の参照型の落とし穴:クラスメンバに参照型は使わないほうが良さそうだ

先日来、C++のデストラクタで、おかしな動きにぶち当たり「おかしい!バグか?」と大騒ぎした後、最終的に自分のミスに気がつきました。 タイトル通り、クラスにおける参照型に関する落とし穴です。 経緯とともにホントにお恥ずかしい限りですが、忘れた頃に…

んなわけないし→デストラクタで参照型のメンバ変数が使えない?

この記事無効です。全て自分が悪かった。気を取り直して自分のミスの暴露記事は下記参照。何卒よろしくお願いいたします。 http://takamints.hatenablog.jp/entry/2015/12/29/the-pit-fall-of-a-reference-type-in-cplusplus

大間違い→デストラクタが自動的に呼ばれない

この記事無効です。全て自分が悪かった。気を取り直して自分のミスの暴露記事は下記参照。何卒よろしくお願いいたします。 http://takamints.hatenablog.jp/entry/2015/12/29/the-pit-fall-of-a-reference-type-in-cplusplus

テキストを日本語的に傍点(圏点)で強調するJavascript

ふと思いついてテキストに傍点をつけるためのスクリプトを作りましたので、ご紹介。(ソースはGitHubに置いてます) 「傍点」は「圏点」ともいうらしいのですが初耳でした。この文書では以降「傍点」で通します。 「傍点によるテキストの強調」は、CSS3のtex…

SQLiteのSQLのパラメータ化できる箇所

SQLiteのSQLiteDatabase.rawQueryで、SQLのパラメタライズが、できる場所とできない場所がありまして、調査結果を記しておきます。 「単なる文字列置換」では無いようです(よくよく考えれば当たり前ですね)。 SQLite入門 第2版posted with amazlet at 15.1…

キャリブレーションしてステレオマッチングやってみた

例によって、百均で購入した2台のWEBカメラをステレオキャリブレーションして、ステレオマッチングをやってみました。 低価格&低品質のウェブカメラで、マジメにキャリブレーションする意味なんてあるのかどうかわかりませんが、今後とも頑張ってやっていき…

OpenCVステレオキャリブレーション用チェスボードコーナー検出ツール

ステレオカメラのキャリブレーションのために必要になる簡単なツール stereoShot を作りましたので、ご紹介。 stereoShotは、2台のカメラで同時にチェスボードをキャプチャーして、コーナー検出の情報を表示し、複数の画像ファイルを保存します。 複数の画像…

ほぼ初めてのPLCで感じたラダーの勘所

photo credit: Ladder via photopin (license) この夏、ラダーが熱かった。7月半ばに、初めて本格的なPLC案件を担当してから、もう2ヶ月か・・・。 本来パソコン側のソフトウェア担当です。PLCと通信して機器設定情報を編集したり、生産実績を収集するよなソフ…

jQueryプラグインを正しく簡単に作る方法

キチンとしたjQueryプラグインを簡単に作れるようになる関数のご紹介。 javascriptのクラスを作れる人なら、「jQueryプラグインはjQuery.fnに~」とか、「メソッドチェインをするために~」なんてことを詳しく知らなくても大丈夫。

WEBでお手軽行列演算 OCTAVE ONLINE β

「あればいいな」と検索したら、ホントにあって驚いた。 この度「ブラウザーで動くOctave」を見つけまして、軽く使ってみたのでご紹介。「そんなの常識、前からみんな使ってるよーん」ってな場合は是非ともスルーでお願いします。 そう、これはOctaveのWebア…

ラズパイにシャットダウンボタンを付けました

買っててよかったブレッドボード。 Raspberry Pi 用 GPIOポートキット ブレッドボード、LED、抵抗、プッシュボタン、ジャンパーワイヤー付きposted with amazlet at 15.06.13ZX3 Tech 売り上げランキング: 102,134Amazon.co.jpで詳細を見る ↑これで一通りそ…

ラズパイで自動起動するデーモンを自作する

Raspberry Piで動作するデーモンをC言語で作る方法と、自動起動する設定手順などをまとめました。 Raspberry Pi2 Model B ボード&ケースセット (Standard, Clear)posted with amazlet at 15.06.07TechShare 売り上げランキング: 146Amazon.co.jpで詳細を見…

CMakeでジェネレータを判定して分岐する

GCC で MinGW と Raspberry Pi 両方で動くプログラムを書いていて、リンクするライブラリは切り替えたいという状況。 色々調べて何とかなったので書いておきます。もっと良い判定方法があるかもしれないですけど、とりあえず。 CMakeLists.txt : ジェネレー…

Visual C/C++用getoptでPOSIX的コマンドラインオプション解析

苦しんで覚えるC言語posted with amazlet at 15.04.27MMGames 秀和システム 売り上げランキング: 3,709Amazon.co.jpで詳細を見る POSIXのgetoptは文化遺産。コマンドラインオプション解析の標準ですから。Windowsでは argc と argv を直接解析しがちですが、…

SQLで文字列の出現回数を調べる

SQL

photo credit: Illustrious company via photopin (license) SQLで、テーブル内の文字列フィールドから、特定のキーワードの出現回数を得る方法です。 チョット考えただけでは無理だと思っておりましたが、ミソは置換と文字数でした。 全体文字数から、キー…

【翻訳】Choregrapheの仮想PepperへPythonスクリプトをアップロードする方法

(2015年7月追記): 本ページのリンク・画像は全て切れています。もともと一般公開されていたページではなかったのかもしれませんので仕方がないです。 すでにPepperの一般販売が開始されており、さらに、Pepperがなくても DEVELOPPER PROGRAMに登録(無料…

OpenCV + Python + NumPy で画像の画素を操作する

Python+OpenCVで、イメージの画素単位での操作方法をまとめました。実質的にはNumPyでの行列操作方法の説明です。 「Python+OpenCV」で、画素単位での画像操作をするケースはそう多くありません。 でも、「まったくやり方がわからない」ってのも困りますの…

USBシリアル変換ケーブル無しで、ループバックテストができる、「仮想シリアルポートドライバ Null-modem emulator(com0com)」

最近の、ほとんどのPCには「シリアルポート(COMポート)」がありませんので、シリアル通信するソフトは、「USBシリアル変換ケーブル」を使うと思います。 実際に通信をするには、この変換ケーブルとクロスのシリアルケーブルが必要になります。 PC単体で動…

32ビットの実行モジュールが64ビットWindowsで動いているか判定する

ここでは、 IsWow64Process を使う方法を説明します。他にも方法があるかもですけど。 「VC++ x64 判定」とか検索すると、別目的の方法や、ちょっと妖しい情報も混在します。 確かにちょっとヤヤコシイから混乱しやすい。そこ考慮して書いときます。 やりた…

jQuery UIで普通のテキスト入力を少し立派に見せるjQueryプラグイン

フォームのテキスト入力項目の見た目を、jQuery UI の spinner(スピンボタン付き数値入力ウィジェット)と同じようにする、jQueryの簡単なプラグインです。spinnerのスタイル(CSS)を利用するので、jQuery UI も必要です。 spinnerは結構高さがあって、ボタン…

PHPの正規表現でメールアドレスをチェックする

フォーム入力のメルアドチェックをphpでやることにななりまして、「正規表現で軽く一発」とのことでした。 そういえば今まで厳格にやったことがなかったな、と「メールアドレス 正規表現」でぐぐってみたら、わんさか出てくるじゃないですか。 しかしなんだ…

WEBカメラ2台のステレオマッチング結果をリアルタイムに表示する

リアルタイムにステレオマッチングの結果を表示してみました。相変わらず百均カメラ2台で頑張って(謎)います。 最初は前回(100均Webカメラ2台でステレオマッチングやってみた - 銀の弾丸)と同じく、Pythonで書いてみたのですが、出力の可視化処理が遅過…

100均Webカメラ2台でステレオマッチングやってみた

数ヶ月前に100均で入手して箱に入ったまま眠っていた2台のカメラで、ステレオマッチングしてみました。 2つのカメラの視差によって奥行き情報を算出するってことですね。 あまりややこしいことはしていません。 キャリブレーションせずにステレオマッチング…

LS_COLORS : MinGW,MSYSで、lsのディレクトリ名を見やすくする

MinGW,MSYSの端末でlsすると、ディレクトリ名が青色で表示されますが、バックが黒で非常に見づらい。 こんな感じ。 user@windows ~ $ ls 黒地に暗い青/ こんな色では/ 読めないよ(怒)/ ディスプレイ全体を明るくすればマシになるけど、他が明るすぎて目が…