GDBのシミュレータでエンディアンを確かめる

インテルのCPUはリトルエンディアン、ルネサスの SH や H8 はビッグエンディアン。 これをどうやったら確かめられるか考えた。GDBにはシミュレータ機能があることを思い出した。そこで、簡単なソースコードをシミュレータで動かし、メモリの内容を表示させて…

関数型言語のツール整理

関数型言語の各種ツールについて、整理する パッケージ管理 対話的実行環境 ビルド テスト Web Application Framework 対象言語は Haskell Elixir Scala Typescript また、関数型言語の特徴について、比較する。 カリー化 高階関数 部分適用 パターンマッチ…

関数型言語のツール整理

関数型言語の各種ツールについて、整理する パッケージ管理 対話的実行環境 ビルド テスト Web Application Framework 対象言語は Haskell Elixir Scala Typescript また、関数型言語の特徴について、比較する。 カリー化 高階関数 部分適用 パターンマッチ…

PlayFramework, Scala, typescript を触ってみよう

Webなアプリケーションはほとんど作ったことがない。 すこし勉強してみることに。

memory leak check by sanitizer

#include <iostream>using namespace std; class X{public: X(); ~X();}; X::X(){ cout << "X()" << endl;}X::~X(){ cout << "~X()" << endl;} int main(){ X* pX = new X(); //pX->~X(); delete pX; return 0;} kzono@rachael:$ g++ -Wall callDestructor.cpp -fsanit</iostream>…

std::chrono::system_clock::time_point と time_t

時刻を秒単位で記録できればよいのであれば、time_t で十分見たい。 system_clock - cpprefjp C++日本語リファレンス 今回は通信用または記録用に時刻をシリアライズしたいわけなので、結局は time_t に変換することになりそう。 time_t は long に typedef …

MessagePack と日時(タイムスタンプ)

各種のセンサーから取得した値をサーバへ送る場合、シリアライズする必要がある。MessagePack が良さげ。圧縮率、対応言語の多さ、IDL不要など。 google さんの protocol buffers はIDLが必要。 で。センサーの計測データなので、計測日時が必要。C**の場合…

raspberrypi, mbed, esp32

デバイスの制御はラズパイよりmbed, esp32 のほうが適している。タイマーやADコンバータなどのペリフェラルが違う。 ラズパイに 向いているのは、タッチパネル、動画のストリーミングなど。 、

シリアライズライブラリ

ソケット通信でデータを送受信するとき、ネットワークバイトオーダや構造体のパディングなどを考慮して、通信用バイト列に変換する必要がある。 自分でゴリゴリ作るより、便利そうなライブラリを探し、使うことにする。 Google Protocol Buffers MessagePack…

【ソケット通信】ネットワークバイトオーダと recv の戻り値

C言語のソケット通信プログラムの続き。固定長文字列の送受信まで昨日成功していたので、shot int(16bit) や int(32bit) ,long(64bit) など、ネットワークバイトオーダが問題となるデータを送受信するサンプルを今日動かした。 が。簡単だと思ってやってみる…

【ソケット通信】CとC++ サンプルコードの修正

動いたサンプルをベースに、言語をまたいでクライアント/サーバのソケット通信をするため、通信仕様を揃えるべく、修正。 昨日、C言語の修正がうまく行かなかったのは、送受信のときにデータ長を固定で送受信しなかったこと。可変長でテストしてしまった。 …

C言語でソケット通信

漸くC言語でクライアント・サーバなソケット通信プログラムのサンプルが動いた。 ネット上のサンプルと、微妙にヘッダファイルの名前やパスが違っていて手こずった。 これで、C/C++/python の3言語で、それぞれクライアントとサーバのサンプルが動いたこと…

nc(netcat) on ubuntu

サーバ・クライアント間のソケット通信サンプルプログラムの動作確認などに便利なコマンドを発見。 nc(netcat)コマンドで覚えておきたい使い方8個 | 俺的備忘録 〜なんかいろいろ〜 ネットワーク診断の現場から(netcat編・その1) | NTTデータ先端技術株式…

すこし汎用的な Makefile

比較的簡単なプロジェクト用に Makefile のテンプレートを作った。 ソースファイルとオブジェクトファイルのディレクトリを分けたところが、少し工夫したところ。 とはいえ、昔は階層化 Make まで頑張って対応していたので、あくまで簡易版。 # DirectoriesS…

【ESP32】Boost.asio を使ったソケット通信

ubuntu への boost のインストール boost のパッケージがリポジトリにあるかどうか探した。 $ sudo apt-cache search boost たくさん見つかった。おそらく最新版ではなく結構古いバージョンだと思われるが、標準でサポートされているのが安心。自分でビルド…

【ESP32】ソケット通信のお勉強

ESP32の特長は、WiFiとBluetooth を安価(チップは800円、ボードで1600円)で使えること。しかも、ROM/RAMはArduino(AVRMega386)より多いこと。 マイコンとしてのペリフェラルも充実している。ペリフェラルのサンプルコードも公開されているので後で…

【ESP32】HelloWorld まで成功!

Windows10上の MinGW+MSYS や Cygwin だと、微妙にエラーが出てしまった。 VirtualBox 上の Ubuntu で環境構築を試みたところ、サンプルプロジェクトのビルドまではできるのだが、USBケーブルによるダウンロードができなかった。USBシリアル変換チップを使い…

【ESP32】arduino IDE シリアル通信できた

Arduino のシリアル通信のスケッチがそのまま動いた。(^^) esp32用ライブラリがシリアル通信をサポートしているということ。 GPIO:LEDとスイッチ ADC:可変抵抗器(ボリューム)、各種センサ(加速度) Timer(PWM):LED調光、スピーカ、DCモータ、サーボモ…

ESP32DevkitC を始めるよ

しばらく前に買って放置していたESPDevkitC をいよいよ触り始めることにする。

ソレノイドの駆動回路

ソレノイドを稼働する場合、マイコンと直接接続するのはまずい。電圧・電流が大きく違い、ノイズや逆起電力でマイコンを破壊したり誤動作させたりする。それを防ぐ為にフォトカプラを使って絶縁する。FETをフォトカプラに繋ぎ、小さい電圧変化で大電流を駆動…

IoTなアイデア

宅配ボックスの自作。 宅配業者さんのWebにユーザ登録しておくと、配達予定のメールが送られてくる。これをトリガーとして、宅配業者さんにメールを送る。 メールには、宅配ボックスの暗証番号が記載されている。 暗証番号は配達物ごとに違うものにする。 宅…

プログラミング言語とソフトウェアアーキテクチャ

実装言語はソフトウェアアーキテクチャにどのくらい影響があるものだろうか? 実装言語を選択する基準としていくつか考えられる。 言語仕様による部分もあるが、 ライブラリやフレームワークが充実していること は重要な条件だと思う。今、AI・ディープラー…

関数型プログラミング言語とその特徴

関数型プログラミング言語の特徴 参照透過性 パターンマッチング 高階関数 関数を引数にできる 関数を戻り値にできる クロージャー 遅延評価 部分適応 カリー化 特徴それぞれについて、具体的に理解したい。 What それはなにか? 概要。書式。 Why なぜそれ…

もっと使い慣れるツール

github と git 使っているといえば使っているが、もっと日常的に使うべき。 Redmine と backlog チケットドリブンな開発とガントチャートをちゃんと使えるようになりたい。 docker と virtualbox ポータブルな開発環境を使えるようになりたい。Windows に縛…

jupyter notebook

エクセルシートを python から読み書きする例。 名簿ファイルを読み取り、辞書オブジェクトに保存する。 --------------------------------------------------------------------------------------------------- import openpyxl as px # excel操作用ライブ…

パスワード管理ソフト

数ある管理ソフトのどれを使うのが良いのか、いろいろ調べたり試してみた。 結論を先に書く。 クリティカルなパスワードはローカルに保存。頻繁にアクセスするウェブサイト等はクラウド型。 非常に重要なパスワード お金が絡むもの。銀行、クレジットカード…

Microsoft のループバックアダプター

Windows でポートフォワーディングするにはループバックデバイスが必要らしい。 www.pingzic.com で、これを使って windows7 から ssh 経由で samba を使う方法 CIFS-over-SSH for Windows 7 手順が長く設定項目が多い。スクリプトで自動化したいところ。pow…

ssh の鍵の種類

以前に putty を使ったとき、putty で作った鍵は何か変換をしないと使えなかった記憶がある。 ので。ちょっとググった。 qiita.com 自分の場合、商用SSHを使う機会はほぼなく、OpenSSH ばかりのはず。 また、改行コードの紛らわしさを考えると、鍵はサーバ側…

webサービス連携

google カレンダー slack gmail google drive google spreadsheet google さんのサービスで統一しようかと思ったが、チャットサービスの hangout は 有料サービスだった。ので。無料の slack にした。 slack は google カレンダーと連携する機能がある。 htt…

通信環境見直し

WiMAXの更新月は2017年3月だった。 So-net の WiMAX2+ をそのまま継続すると、キャンペーンサービスの対象にならない。 ので。一旦解約する。その後、So-net か UQWiMAX でWiMAX2+ の契約をする。 一方、docomo の契約更新月は2017年2月。(1月25日が更新日…