コーヒー飲みながら仕事したい

仕事で使う技術的なことの備忘録とか

Observer パターンを自分なりに整理してみる

免責 いきなり免責というのもアレですが、この記事の真偽は一切保証を致しかねます。 正直、かなり怪しいと思いますので、少なくとも情報収集されている方は、この記事はスキップされたほうが無難かと思われます。 (私のアカウントに書いてあることはもとも…

Visual Studio 2017 で欠かせないプラグイン 4+1つ

個人的にこれは欠かせないっていう Visual Studio のプラグインを備忘録として残しておきます。 Format document on Save Ctrl + S で保存時、自動整形を実行してから保存してくれるプラグインです。 Visual Studio 自体にもプラグインの機能があるのですが…

Visual Studio でビルド時に「のプロジェクト情報が見つかりません。これは、プロジェクト参照がないことを示している可能性があります。」でエラーになったときの対処法

C#

(備考:もしかしたら .NET Standard のみの事象かもしれません) 事象 主題の通り、 Visual Studio でビルド実行時に、以下のようなエラーになりました。 (xxx.csproj はソリューション内で参照しているプロジェクト) 'xxx.csproj' のプロジェクト情報が…

単体テスト<C#> async な moq をセットアップするときにハマったこと

C# で単体テストで moq を使用した場合のお話です。 備忘録として残しておきます。 以下のようなインターフェイスがあったとします。 public interface IHoge { Task SomethingAsync(int x); } これを moq でセットアップする場合、以下のように書く必要があ…

C言語の JSON シリアライザー parson について

parson の紹介 C言語で JSON をシリアライズすることができないか探していると、 parson なるものを見つけました。 速度はわかりませんが、特徴としては以下のようです。 シリアライズ/デシリアライズの両方可能 . (ドット)を使用して表現できる 下記の参考…

npm で fatal: unable to connect to github.com: と怒られるとき

npm

npm コマンドを使ってインストールを行うとき、fatal: unable to connect to github.com: と怒られました。 その解決方法です。 条件 ファイアウォールの問題らしいです。 恐らく社内等のネットワーク環境とかが考えられます。 対策 以下を実行します。 git …

ProtocolBuffers の C# 版の Timestamp について

前に ProtocolBuffers の C# 版の導入をやってみたのですが、 tassi-yuzukko.hatenablog.com このときに proto ファイル import google/protobuf/timestamp.proto が読込めないせいで以下のようにクラスファイル変換のコンパイルに失敗していました。(この…

Pandoc で PlantUML を出力

pandoc は、当然ですがデフォルトでは plantuml に対応していません。 しかし、 markdown でドキュメントを書く際は、 plantuml をよく使用するので、 plantuml の画像を出力できるようにします。 前提 お約束の前提ですが、以下の環境とします。 Windows 10…

plantuml で日本語を扱う

plantuml で日本語の仕方を忘れていたので備忘録として残します。 ここでは、単体で plantuml を扱う場合です。(plantuml.jar を使用する場合) ソースファイルは UTF-8 とします。 java -jar .\plantuml.jar <ソースファイル> -charset UTF-8

Pandoc を使って、Markdown を HTML に変換する

主題の通り、 Pandoc というツールを使って Markdown 形式のファイルを、HTML形式に変換します。 前提 環境は、例によってWindows 10 Home 64bit です。 Pandoc のインストール github pandoc から最新版の Pandoc-XXX-windows.msi を DL DL した msi ファイ…

Windows の環境変数の設定画面のショートカットキー

小ネタです。 結論から言うと、主題の目的を果たすことができるショートカットキーは存在しないようなのですが、 Windowsキー + Pause/Breakキー (同時押し) で、コントロールパネルのシステムの画面が表示されます。 環境変数を変えるたり確認することが…

gitlab-ci と gitlab runner 連携の環境構築

とりいそぎ備忘録です。 gitlab-ci や gitlab runner が何なのかはここでは省略します。 動作環境 gitlab-ci 側 gitlab.com を使わせてもらいます。本当はローカル環境で構築したかったんですが、前回 Docker 上で動作させることができなかったので一旦断念…

gitlab を Docker で動かす(途中)

主題の通り、 gitlab を Docker 上で動かしてみます。 イメージの取得 docker-compose.yml を使用します。 下記サイトを参考に、以下のようなものを用意しました。 version: '2' services: gitlab: image: 'gitlab/gitlab-ce:latest' restart: always ports:…

Docker Hub を使ってみる

主題の通り、 Docker Hub がどんなものなのかを試してみます。 どうやら、github と連携したりすることができるそうです。 感覚としては、 docker のイメージを github のリポジトリのように登録できるのかなという感じです。 アカウント登録 github のアカ…

docker-compose でイメージを作る

docker-compose コマンドで build -> up -> run します。 以下、docker-compose.yml が置いてあるディレクトリで実行します。 > dock-compose build > docker-compose up <サービス名> > docker-compose run <サービス名>

Docker でコンテナをコミットする

以下、コミットの流れを備忘録として残します。 コミット docker commit <コンテナID> <コミット名>:<tag> 上記でコミットしたコンテナは、イメージとして利用できるみたいです。 docker run -it <コミット名>:<tag> コンテナへのアタッチ ついでに、コンテナへのアタ</tag></tag>…

mosquitto で CommonName が異なっていても無理やり TLS 接続できるようにする

追記(修正) mosquitto Ver1.4.15 にて修正されているようです。 ですので、最新の mosquitto を使用すると、 CommonName が異なっていても、 --insecure オプションをつければ、無理やり TLS 接続できます。 mosquitto クライアントアプリの TLS 接続にお…

SSL/TLS の仕組みについて備忘録

備忘録と言いつつ、ほとんど参考サイトの掲載になるが、↓のサイトの「デジタル証明書の仕組み」の絵が非常に参考になります。 www.infraexpert.com これで、認証局とか CSR(証明書要求)とかの登場人物がどういう関係かがわかります。最強です。感謝。 なお…

mosquitto を Visual Studio でコンパイルする

githubに公開されている mosquitto のソースファイルを、Visual Studio でコンパイルします。 前提 今回は Visual Studio 2010 を使用する(たぶん2017とかでも大丈夫) Visual Studio の C++ コンパイラがインストールされていることが前提 CMake を使用し…

EMQ を使用して mqtt の通信をする

EMQ とは EMQ とは、 Erlang で実装された mqtt ブローカーです。 mqtt ブローカーとしては mosquitto が有名ですが、以下の特徴があります。 mosquitto と比較しても、 EMQ もなかなか性能が良い(らしい) mosquitto ではできない、ブローカーのクラスタを…

EMQ で TLS 接続する

今回はEMQ(emqttd)を使用して、mqtt の TLS 接続をする方法。 EMQのインストール方法とかは割愛。 サーバーの公開鍵/暗号鍵の生成、それらのオレオレ認証 ↓が参考になった。 基本的には前記事の mosquitto の場合と同じ。 medium.com EMQ側の設定を変更 …

mosquitto で OpenSSL を 用いて TLS 接続する

mosquitto をで TLS 接続する方法です。 OpenSSL を使用するのが簡単だと思うけど、ちょっと間が空くとすぐやり方を忘れてしまうので備忘録として残しておきます。 2018/03/11 追記/修正 いろいろ TLS について勉強してみると、言葉の使い方や理解が正しく…

Protocol Buffers の C# 版で遊んでみる

Protocol Buffers のC#版 有名どころでは、以下の2つがあるようです。 protobuf-net 特徴:.proto ファイルが不要で、すごくシンプルにシリアライズ/デシリアライズできる。 Google.Protobuf 特徴:.proto ファイルが必要で、事前にシリアライズ/デシリア…

Visual Studio 2017 で protobuf-c を試してみる

前回の続き。 tassi-yuzukko.hatenablog.com もろもろの準備がやっとできたので、 Visual Studio 2017 で protobuf-c を試してみる。 前準備 あらかじめ下記内容で amessage.proto を用意しておく(前回生成済み) syntax = "proto3"; message AMessage { in…

protobuf-c で今度こそ遊んでみる(proto2とproto3の違い編)

あらすじ もともと軽い気持ちで Protocol Buffers のC言語版を遊んでみようと思っていたら、意図せず Docker を巻き込んだ一大イベントに発展した。 やっとこさ準備ができたので、楽しく遊ぼうとしていた。が、しかし・・・ protocol buffers のバージョン2…

Protobuf-c を Docker 上の Ubuntu 環境でインストールする

あらすじ 前回、 protobuf を Docker 上の Ubuntu 環境でインストールした。 tassi-yuzukko.hatenablog.com 今回は、いよいよ protobuf の C言語版である protobuf-c をインストールする。 protobuf-c をインストールするまでの手順 基本的には protobuf と…

Protobuf を Docker 上の Ubuntu 環境でインストールする

あらすじ 前回の続き tassi-yuzukko.hatenablog.com 今までの流れの概略 protobuf-c をコンパイルしようと思ったら Windows 上ではうまくいかなかった →Ubuntu 環境だったらうまくいくのではと思い、 Docker (Docker ToolBox)を導入してみた →Ubuntu のイ…

Dockerfile を使って、自分用の Ubuntu の Docker イメージを作成する

前回の続き。 tassi-yuzukko.hatenablog.com 今回の目的 docker pull ubuntuで最新版のubuntuイメージを取得することはできる。 しかし、その場合、 sudoすら入っていない状態なので、一つずつ apt-get で環境整備する必要が出てくる。 そこで、Dcokerfile …

Docker でホストマシンのストレージ移動と共有フォルダのマウント

Docker ホストマシンのストレージを移動する イメージを入れる前に、Docker ToolBox を使用している場合は、C:\Users\<ユーザー名>\.docker\machine\machines\<マシン名>に仮想ディスクファイル (.vmdk) が作られるらしい。 私の環境ではCドライブが切迫して…

Docker を Windows 10 Home 環境で動作させてみる

あらすじ 前回 tassi-yuzukko.hatenablog.com Windowsでのmakeとかがうまくいかなかったので、開き直って「もうLinux環境でやってやる!」となったので、Dockerをインストールすることにする。 Docker ToolBox どうやらWindows 10 ProじゃないとDocker for W…