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 からの脱却 ローカル環境のデータベースへアクセスしていたときは、デ…

Firebase 入門(4) ~ Todo アプリをデプロイできるのか? (2)

この数日、Firebase Authentication と格闘してた。一応目処が立って Firebase realtime database を使ってのTodoアプリも完成したんだけど、FIrebase Authentication は 「Todo アプリをデプロイできるのか?」というとこの本質ではなかったなぁと思った。…

Firebase 入門(3) ~ セキュリティの向上

Authentication Database ルール修正 今のままだと、データベースがどのユーザーでもアクセスできてしまうので、アクセス制限をする。まず、Database のルールを以下のように変更。内容としては、認証されたuidと同じ場合のみアクセスを許可している。 { "ru…

Firebase 入門(2) ~ Firebase Realtime Database

作ったTodo アプリではサーバー側をgoで作成していたが、Firebaseにはサーバーを置くような機能はないので、Firebase Realtime Database でどうにかしたい。(できるのかもわからない) Database を作成 todo プロジェクトから Database を選択し、データベー…

Firebase 入門(1) ~ Todo アプリをデプロイできるのか? (1)

今まで作ってきた Todo アプリを FIrebase にデプロイしてみる。 まず、新たにプロジェクトを作成して、Hosting に js をデプロイしてみる。作成したときの Project ID を覚えておく。あとで使う。 まず、Firebase ツールをインストールする $ npm install -…

React16.8 というものがリリースされたらしい

React16.8 がリリースされたらしい。巷で噂になっている。 なんでも Hooks という新しい機能が入ってそれが便利なんだとか。 ということで、もう一度環境構築から初めて Hooks がどういうものなのか 使ってみようとおもう。 ベースは ここ をベースにした。…

React 入門 (14) ~ TODOアプリを作る(9) ~ sendToApiServer のテスト

今日は sendToApiServer のテスト。fetch が絡むので mock ライブラリを導入する。 $ npm i --save fetch-mock $ npm i --save @types/fetch-mock fetchMock は import * as fetchMock from 'fetch-mock' でインポート可能。 一旦以下のように作ってnpm test…

React 入門 (13) ~ TODOアプリを作る(8) ~ AddTodo コンポーネントのテスト

昨日に引き続き、コンポーネントのテストを書く。昨日よりも簡単に書けると高をくくっていたが、意外とハマった。 第一に AddTodo コンポーネントが shallow 出来なかったのだ。 調べてみるとなんてことはなく、TodoList コンポーネントは React の素のコン…

React 入門 (12) ~ TODOアプリを作る(7) ~ TodoList コンポーネントのテスト

今日は enzyme を使って TodoList コンポーネントのテストを追加する。ここ の Counter-test.js のようなものを作成していく。 まず、sinon をインストール $ npm i sinon --save $ npm i @types/sinon --save 記事のサンプルを参考にある程度似せて書いてみ…

React 入門 (11) ~ TODOアプリを作る(6) ~ リファクタリング

ある程度実装できたので、ここらへんでコードの整理をしようと思う。NumberList とかいう名前もおかしいし、Redux を導入したので、コンポーネント間でstateを受け渡しできるようになったこで、コンポーネントの分離もしていきたい。ただ、その前にある程度…

React 入門 (10) ~ TODOアプリを作る(5) ~ データの永続化(2)

今回は残りのアクションに関して実装していく。残りのアクションは以下の3つ タスク完了時のアクション 削除時のアクション 初期描画時のアクション 初めの2つについては既存のアクションだが、最後の1つは今回新たに追加するアクションだ。 タスク完了時の…