C言語ファイルをNMAKEする為の最小Makefile

タイトルはちょっと盛った。 C言語のHello WorldのファイルをVisual Studioのコンパイラでmakeする #include "stdio.h" void main(void) { printf("Hello World\n"); } 参考にしたサイト makefile と nmake ~ makefile を読み解く - C/C++ による Windows …

10進数、16進数、8進数をコンボボックスで切り替えつつ入力チェックもしてくれる実装サンプル

あらすじ こんな感じのものを実装しました。 XAML

UDPでNAT超え

あらすじ NAT超えという技術を知り、いったいどういうものなのか?を調べて、Goで簡単に実装してみました。 NAT NATというのはグローバルIPとローカルIPを変換する機構です。グローバルIPの枯渇を防ぐため、ローカルIP以下のデバイスに対して同じグローバルI…

クリックした箇所をヒートマップで表示するサービスの技術的検証

概要 クリックした箇所をヒートマップで表示するにはどういうサービス構成になるのか?という技術的興味から heroku で以下のように表示をするサービスを作成しました。いろんな理由で実際の使用には耐えられないので、技術的検証というタイトルにしています…

ジェネリックのキャスト

C#

ただの愚痴です。 なんしか、↓これがコンパイル通るのに実行時にキャストエラーになるのが納得いかない。 using System; using System.Collections.Generic; namespace GenericTest { class Program { private static void Fn1(object list) { foreach (var …

JenkinsのジョブをキューイングするGoアプリ作った

概要 トリガとなるジョブと実行の遅いジョブとを連結させた場合に全体の実行が遅いジョブに依存してしまう問題を解決する為に、実行の遅いジョブの前にジョブキュー用のGoアプリを挟むことで問題を解決しました。 問題点1 ジョブキューにどんどんジョブが溜…

相対パスでimportできない場合は go.mod に module 名を書こう

Go

今まで、$GOPATHの外でgoを書いているときにサブパッケージを作って、それをインポートするときに、以下のように指定していた。 import "./hoge" だけど、最近はこの書き方は推奨されていないらしい。というかエラーになる。 Go Moduleでローカルパッケージ…

OpenCV を使って テンプレートマッチング

↓の画像を使って www.pakutaso.com ↓こういうテンプレート画像を探し出す OpenCVの操作を Python で書いた。 import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread('cat.png') template = cv2.imread('cat_face.png') _, w…

テキストの縁取りをする script-fu 書いた

最近、Youtube でもくもく読書配信をするのが日課になりつつありますが、サムネを作る時に見栄えよくするためにテキストの縁取りをしようと思い立ち、私は昔からGimpを使うことが多いので、サムネもGimpで作っていたのですが、Gimpにはテキストの縁取りをし…

<ESC>O を押した後に挿入モードに入るのに一瞬のラグがある場合は ttimeoutlen を設定せよ

Vim

Macのターミナル等で int main() { }| のようなコードを打った後 ( | がカーソル位置) <ESC>O を押すと1秒ぐらいのラグの後、挿入モードに入ることがある。 理由は <ESC>OA が UPカーソルに設定されているターミナルがあり ターミナルが A の入力まちになるのが問題の</esc></esc>…

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…