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

Windowsのウィンドウをキャプチャしたい (1)

ふと、Windowsのウィンドウをキャプチャしたいと思ったので調べてみた。 qiita.com この記事が大変参考になる。上に重なっているウィンドウも一緒くたにキャプチャしたい場合はこの方法でいけそう。 なぜか、とりたいウィンドウだけを指定すると真っ黒になる…

Macに最新のVimを入れる

Vim

Homebrewを使えるなら、brew install vim --HEAD で最新のVimがインストールできる。ただ、ビルドするのでインストールに時間がかかる。 あと、途中でsymlinkが作れなくてエラーで終了してしまった場合は brew link --overwrite vim とすること。

Windows XP でファイルの更新日付やサイズが欲しい場合は syscall.GetFileInformationByHandle() を使おう

Go

はじめに ひょんなことから Windows XP で ファイルの更新日付やサイズを取得して一覧で表示しないといけないミッションがありました。Windows 10 でそのようなプログラムをGoで書いていたので、それを使えばXPでも動くだろうと高をくくっていたら、File.Sta…

GoのSliceでハマった話

Goで配列の順列組み合わせを列挙するプログラムを書いているときに、 配列のサイズが大きくなると、同じパターンが列挙されてしまって ちゃんと動かないという問題が発生した。 結論としては、appendの仕様を間違って理解していたために 同じSliceに対して処…

open62541のサンプルをMinGWで動かす

今日は open62541 のサーバーのサンプルを MinGW で動かす。 ファイル構成はこんな感じとする ./ ├ open62541 // git clone https://github.com/open62541/open62451 でとってきたファイル群 └ myServer.c // 今回動かすサーバーサンプル まずは ライブラリ…

open62541のサンプルを動かす

前回の記事でopen62541のビルドに成功して、 open62541.lib が生成できるのは確認できた。 けど、これができたからといって実際には使えないので、このライブラリを使ってexeを作る必要がある。 んで、githubのページのREADMEにはサンプルが示してあって、今…

open62541のcmakeをMSVC用に実行する

open62541 は OPC UA の標準規格版なのかな? なんしか、C言語を使って OPC UA を使うことができるみたい。 MSVCでビルドするのに、CMAKEを使うんだけど、CMAKEよくわからん勢なのでメモ。 Building open62541 — open62541 1.0.0-2-gf6f855d0 documentation …

Windows 上に Python3.7 embeddable と pip をインストールする

なんか、普通にダウンロードしてきて pip をインストールするだけだとうまく動かなかった。 具体的には .\Scripts\pip.exe -V を実行すると以下のエラーが発生して pip が使えない。 Traceback (most recent call last): File "D:\obj\windows-release\37win…

試験的にC#(WPF) と Go を GRPC を用いて連携させる

最近、趣味のコーディングは Go を使ってやることが多かったりして、Goでなんでも書きたい欲が強くなるんだけども、やはりGUIアプリを作成するときにはWindowsならC#一択になる傾向があるのが、私の最近なのですが、C#で記述する部分をできるだけなくして、…

microsoft/vs-streamjsonrpc のバージョンが 2 になっていたので使ってみた。

ほんとにさわりだけ使ってみただけ、使用感はさほど変わってなかったけど、golang 使わずに C#だけで作ったら NamedPipe の使い方がよくわからず躓いたのでメモ代わりに記事を書く。 登場人物は3人、Target と Client と Server Client 部分はほとんど 以前…

OPCUAクライアントライブラリのLuaバインディングサンプル書いた

OPC UA クライアント ライブラリの Luaバインディングサンプルを書きました。 github.com 今は、同じフォルダにある opcua.lua というフォルダを読むことしかできませんがOPC UA のクライアントのサンプルとしては十分だと思います。 Lua は NLua を使ってい…

フリーの OPC UA クライアント Jupiter を作りました

OPC UA クライアント Jupiter を作りました。 github.com OPC UA Foundation が提供している OOS のライブラリを使って作ってあるので、ある程度の信頼性はあります。 やれることは、 セキュアコネクション 1 セッションのサブスクリプション 一括読み出し &…

DockerでWindowsコンテナを起動する為に必要な設定

Docker for Windows では、 Windows コンテナが起動できるようになっています。 開発者に朗報! Windows 10でWindows Serverコンテナが実行可能に (1/2):企業ユーザーに贈るWindows 10への乗り換え案内(42) - @IT https://hub.docker.com/_/microsoft-wi…

空白区切りの文字列をそれぞれのワードで括る簡単なやり方

Vim

vim-jp の slack で以下のような質問をした すると、すぐに数人の方からレスポンスをいただいた。 置換を使う方法や ciw と ドットオペレーションと組み合わせてやる方法 マクロを使うことを提案していただいたりもした。 置換を使う方法で、 & が 使われて…

vaffle.vim から netrw にお試しで移行してみた

今まで、vimのファイラとして vaffle.vim を使ってきた。正確な使用期間は思い出せないが私がvimを使い始めてから結構な期間使っていたと思う。 github.com ただ、vaffle.vim は buftype を nofile に設定している関係上、 grep をしたときに閉じずに残って…

vim の :rubyfile は rb_load を使うが ruby の load は rb_f_load を使う

事の発端 if_ruby を使って何かしたいなぁということで :rubyfile test.rb を実行したが、LoadError: cannot load such file -- test.rb となって実行できなかった。ただ、:ruby load "test.rb" は実行できるので、何が違うのか?という疑問が事の発端 vim-j…

if_ruby 付き vim を使って ruby を実行するには PATHに ruby_builtin_dlls も足す必要がある

Could not load library msvcrt-ruby240.dll · Issue #2660 · vim/vim · GitHub 毎日ビルドしている Vim に if_ruby を足したのだが、 :ruby print "Hello" をしても dllが見つからない旨のエラーが発生してしまってなんでだ?と思っていたら、上のサイトで…

WEB上で打刻できるタイムカードサービスを作った

タイトルで落ちてるんですが、WEB上で打刻できるタイムカードサービスを作りました。 Time Card アクセスすると、ログインダイアログが表示されます。 Sign-Up ボタンを押すと、ユーザー登録画面になります。 ユーザー登録してもらうと、仮登録状態になりま…

自然順ソート(マルチバイト対応改良版 & Windows エクスプローラー準拠)

何度も同じようなブログを連投してしまいますが、先のブログには大きな数字を使うとちゃんと動かないという欠点がありました。今回はそれを改良したバージョンになります。 先のバージョンでは、strconv.Atoi を使用している関係で どうしても数値が int の…

自然順ソート(マルチバイト対応)

2019/4/17 追記 改良版書きました!! 自然順ソート(マルチバイト対応改良版 & Windows エクスプローラー準拠) - bamch0h’s diary 前回、前々回 の続きですが、マルチバイトの数字には対応できていなかったので対応させました。こちら を参考にしつつ、Windows…

自然順ソート別実装(Windows エクスプローラー準拠?)

2019/4/17 追記 改良版書きました!! 自然順ソート(マルチバイト対応改良版 & Windows エクスプローラー準拠) - bamch0h’s diary 前の記事 の最後に、ゼロパディングされた数値とそうでない数値が存在した場合に数値順に並んでくれないという問題があると書き…

自然順ソートをGoで実装

文字列の中に数値があるような場合、ソートの時にその数値の桁がそろっていないと意図しない順番になることがあります。 a1 a10 a2 のようなケースです。実際には a1 a2 a10 のように数字順に並んでほしいですよね、それを実現するのが自然順ソート(Natural …

ブルームフィルタをGoで書く

要約 Turing Complete FM #13 を聞いていると、ブルームフィルタというデータ構造についての話題がありました。ブルームフィルタというものを知らなかったので色々調べてみると面白そうだったのでGoで実装してみました。 ブルームフィルタとは? 誤解を恐れず…

Go製 Felica ライブラリ pasori に MAC付きRead とMAC付きWriteを足した

前回のブログ の続きです。前回はMACをつけないRead/Writeのコマンドを足しましたが、今回はMAC付きのRead/Writeのコマンドを足しました。前回から10日間ずっと、この実装のバグが取れずに悩んでたのでようやくブログにできる程度に実装できたのは素直にうれ…

Go製 Felica ライブラリ pasori に read without encryption コマンドと write without encryption コマンドを足した

Windows だけだが、拙作の Go製 Felica ライブラリ pasori に read without encryption と write without encryption コマンドを足した。 参考にした記事/サイト一覧 FeliCa Lite-S ユーザーズマニュアル FeliCa - おなかすいたWiki! [PASMO] FeliCa から情…

TODOアプリに react-beautiful-dnd を追加する

Drag and Drop している様子 TODO アプリに ドラッグ&ドロップでタスクを動かせるようにした。 苦労した点1 Typescript と react-beautiful-dnd の相性 react-beautiful-dnd では公式には Typescript をサポートしていません。型定義にはflowtypeを使用して…

react-beautiful-dnd を触ってみた

TODO アプリのTODOをドラッグ&ドロップで移動させたいなぁ。という欲求が高まってきたので、そういうライブラリがないか探してみたら、Atlassianが提供してる react-beautiful-dnd というライブラリがあるようだったので使ってみた。 GitHub - atlassian/rea…

TODOアプリにfavicon を設定する

TODOアプリに favicon を設定する。ただ、Reactだとbody部分の要素しかいじれないので webpack で設定する。 色々試したけど、favicons-webpack-plugin が最終的にやりたいことにマッチしたので、それにした。 まず、プラグインをインストール。 $ npm i --s…

webpackでビルドしたjsファイル名にコンテンツハッシュを追加する

ローカルで開発をしていると jsファイルがブラウザでキャッシュされていて「あれ?動かないぞ?」という場面が何度かあった。Webブラウザ上だったら強制更新(Chrome だったら Shift + Ctrl + R) で解決できるんだけど、iPhoneとかのモバイルブラウザだとそう…

Todo アプリを firebase にデプロイしたがテストの書き方がわからなかった

ここ最近はブログの交信がさぼり気味だった。というのも、realtime database のテストの仕方がわからずに試行錯誤していたので、成果をあまりだせなかったというのが大きい。 fetch-mock からの脱却 ローカル環境のデータベースへアクセスしていたときは、デ…