メモ置き場

メモ置き場です.開発したものや調べたことについて書きます.

[tex: ]

Rustでグローバル変数の実現

最近はRustの勉強をしている。 Rustはコンパイル時にいい感じにメモリ管理ができる一方で、C++とかで実現できることが簡単にできなくなっている。

ミュータブルなグローバル変数(とくにシングルトン)を実現したかったので、その方法をメモしておく。

続きを読む

C++の可変長テンプレートを使って多次元配列を実装する

元ネタはこれ

c++ - Variadic Templates Multidimensional Array Container - Stack Overflow

int a[10][20]とかdouble b[1][2][3][4]のように,多次元配列を可変長テンプレートを使って実装する.
array<int,10,20> aarray<int,1,2,3,4> bと書くことで,上と同じ配列となるようなクラスを実装する.

続きを読む

C++のテンプレートクラスでoperatorをオーバーロードする

C++でテンプレートクラスに << 演算子オーバーロードしてcoutに出力しようとしたら思ったより大変だったので,メモしておく.
普通のクラスに対して << オーバーロードしようとすると,クラス定義内でfriend宣言してからオーバーロードすることが一般的だと思う.
テンプレートクラスでは事情が違うみたいで,結論から言うと,friend宣言して << 演算子オーバーロードすることはできなかった.

うっかり, やっぱり残しておきます, templateクラスのfriend関数, test1.cppのコンパイル, アドバイスに従って書き換えてみる, 宣言だけ省いてみる, test1.cppのリンクが成功するようにしてみる, temp.. - 忘れたときに備えた記録(2008-01-22)

やりたいことが書いてあったページ

続きを読む

ソフトバンク光と市販ルータを組み合わせて家のネットワークにVPN接続できるようにする

家にVPN接続できるようになったので,使用環境や設定方法についてまとめておく.
VPN使いたい!って人の参考に慣れば幸いです.

続きを読む

Websocketでバイナリデータを送る

この記事この記事でWebsocketを実現する方法を書いた.
参考にしたコードはこちら

このサンプルコードでは,lws_write関数の第3引数にLWS_WRITE_TEXTが指定されていることからわかるように,Websocketから送られてくるデータはテキストデータとなっている

Zynqでリアルタイムなモニタを構築する場合,データはバイナリデータとして送ったほうが効率が良い.libwebsocketsでバイナリデータを送るための方法についてまとめる.また記事の後半で,JavaScriptからバイナリデータを受信する方法について述べる.

続きを読む

libwebsocketを使ってZynqにWebsocketサーバを実装してみる:JavaScript編

前回の記事でWebsocketサーバーをC言語で実装する方法を書いた.今回はクライアント側のアプリケーションとして,JavaScriptでWebsocket通信を行う方法についてまとめておく.

続きを読む

libwebsocketを使ってZynqにWebsocketサーバを実装してみる:C言語編

ZynqとWebsocketを組み合わせてリアルタイムモニターシステムを構築したという記事を書いた.Websocketサーバをどのように実装したかについてメモを残しておく.

このgithubのコードを基本としてサーバを実装した.

このページでは,上記コードを例にとってどのようにWebsocketサーバを実装すればよいかについて述べる.

続きを読む

HHKBを買った! Ubuntu18.04で使うときの設定

HHKBを購入しました!
購入したのはHappy Hacking Keyboard Professinal2の墨.
キータッチが非常に軽く,キーの配置もコンパクトで非常にタイピングしやすいキーボード.

f:id:okchan08:20190511185245j:plain

Ubuntu18.04に接続して使うときの設定方法を残しておく.

続きを読む