以前 Qrunch に投稿してた記事を持ってきました。 Python の attrs が便利すぎて、データ保持用のクラスを作る時なんかは専らコレばっかり使っています。 そんな attrs で入力されるデータに validation をかける方法です。 attrs で入力データをチェック 例…
以前 Qrunch に投稿してた記事を持ってきました。 Python 3 で周波数からノート名に変換 A4 は 440Hz、 C3 は 130.8Hz のようにノート毎に周波数が決まっていますが、周波数からノートに変換するコードを Python 3 で書いてみました。 import math SCALE_LIS…
ずっと聞き取れないところがあるなーと思っていたんだけど、イヤホンを変えてみたらだいぶ聞き取りやすくなったのでメモメモ。 毎朝満員電車に揺られてゴクロウサン あぁ大変だ会社で家庭で小言を言われてゴクロウサン もうたくさんです 毎朝満員電車に揺ら…
この記事では、Python でファイルを生成せずに zip 圧縮したデータを生成する方法を紹介します。 zip 圧縮したデータを Python 内からアップロードしたい場合なんかに、ファイルに書き出して後から削除する手間を避けたかったり、FaaS などそもそも ReadOnly…
概要 Python3 + Chainer を使った API を AWS の API Gateway + Lambda で動かす方法を紹介します。 ちなみに Deep Chord というウェブアプリのバックエンドで使っています。 以下の2点がポイントです。 Chalice を使う EC2 の Amazon Linux 上で一旦 Chaine…
めちゃくちゃ苦戦したのでメモ。 困ったこと Django のアプリを ECS(FARGATE) 上で動かすと Invalid HTTP_HOST header: '10.0.X.Y'. You may need to add '10.0.X.Y' to ALLOWED_HOSTS. みたいなエラーが出て、 ELB のヘルスチェックで落ちる。 だからといっ…
本記事では、Debian Stretch の PC で Bluetooth イヤホンを A2DP プロファイルで利用する方法を説明します。 動作環境 Debian Stretch (Debian 9) の PC Bluetooth 4.2 (PC・イヤホン) Debian Stretch で Bluetooth で音楽再生 Debian Stretch をインストー…
この記事では、Golang の ORM である Gorm を使って、 PostgreSQL の JSONB 型の中身の key や value による絞り込みをかける方法を紹介しています。 動作環境 Go 1.10 PostgreSQL 9.6 Gorm で PostgreSQL の JSONB を絞り込む モデル 例えば、以下のような…
本記事では Debian 9 Stretch に protobuf 3.6 をインストールする方法を紹介しています。 C++ で gRPC/protobuf を利用するためには、ソースからコンパイルする必要があります。 deb パッケージ提供してほしい。。。 環境 Debian 9 Stretch protobuf v3.6.0…
この記事では Debian Stretch に OpenCV 3系をインストールする手順を紹介しています。 環境 Debian 9 Stretch OpenCV 3.4.0 インストール手順 Releases - OpenCV library からインストールしたいバージョンの zip ファイルをダウンロードします。 もしくは…
この記事では、Debian Stretch の PC で Planex GW-450S という USB 無線LAN 子機を使えるようにする方法を紹介します。 動作環境 Debian Stretch (kernel: 4.9.0-6-amd64) Planex GW-450S ドライバのインストール手順 以下の手順は対象の PC が有線 LAN 等…
Python の matplotlib 上で、マーカーをドラッグ可能にするプログラムの参考例です。 動作環境 python 2.7 matplotlib 1.5.3 実装例 github.com 使い方 プロット上で左クリックで点を追加 プロット上の点をドラッグで移動 プロット上の点を右クリックで削除 …
カメラ画像を録画した rosbag データから、連番の画像ファイルを生成する方法です。 画像ファイルを生成する 基本的には ja/rosbag/Tutorials/Exporting image and video data - ROS Wiki に載っている手順の通りに行うだけです。 launch ファイルの作成 以…
動作環境 Ubuntu 16.04 Git LFS でサイズの大きいファイルの転送に失敗する場合 Git LFS を用いて BitBucket にサイズの大きいファイルを push する場合、 timeout エラーが発生して失敗することがあります。 特に HTTPS ではなく SSH で接続している場合に…
python の multiprocessing を用いてマルチスレッド処理を行う際に、複数の引数を持つ関数を扱うときの Tips です。 動作環境 Python 2.7 方法 やり方は簡単で、目的となる関数をラップするだけです。 # -*- coding: utf-8 -*- from multiprocessing import …
動作環境 ansible 2.1 with_subelements でネストされたループを回す with_items のかわりに with_subelements を利用することで、ネストされた item に対してループを回すことが出来ます。 例 vars/main.yml users: - sam: email: - sam@example.com - sam@…
Mac OSX で ROS を動かすまでの環境構築手順です。 環境 Mac OSX El Capitan ROS Kinetic ROS の環境構築 GUI 系のツールを動かそうとすると Qt5 周りの依存関係でハマったので、とりあえず ROS の基本パッケージのみ(ROS-Comm)の環境構築を行いました。 基…
この記事では ROS の開発に Jetbrains 製の IDE である PyCharm や CLion を使う際に、便利に開発を進めるための設定を紹介しています。 環境 Ubuntu 16.04 (14.04) ROS Kinetic (Indigo) PyCharm 2016.X CLion 2016.X 環境変数を設定 Ubuntu にインストール…
FTDIのFT2232C (Dual RS-232)というUSBシリアルを接続した際に、他のデバイスと識別できるよう、/dev/以下にシンボリックリンクを作成するudevのルールです。 通常のUSBデバイスならば、Vendor IdとProduct Idを指定すれば良いのですが、FT2232Cは2つのシリ…
ROSでオイラー角とクォータニオンを変換するには、tfパッケージの関数を利用すれば良いのですが、 単体の関数として使うには少々使いづらいので、簡単なラッパー関数を作りました。 オイラー角からクォータニオンへの変換 import tf from geometry_msgs.msg …
ROSでuint8[]型を利用しているトピックをPythonで使う場合にハマった点です。 環境 Ubuntu 14.04 ROS Indigo rospyにおけるuint8[]型の扱い ROSのメッセージ型に関するリファレンスを参照すると、uint8[]型について以下のような記述があります。 uint8 has s…
タイトルの通り。BitBucketとWerckerとFTP(lftp)で静的なウェブサイトを自動デプロイする方法です。 ちなみにBitBucketとWerckerを使っているのは、プライベートリポジトリを無料で使えるから。 BitBucketの設定 Gitのリポジトリを作って、ウェブサイトのフ…
IDCフロンティア主催のIoTと健康をテーマにしたハッカソン、サバフェス 2016で Healthy Voice Netというシステムを作ったので紹介します。大雑把に言うと、ニューラルネットワークを用いて声色を分類することで、声から体調が分かるシステムです。 プレゼン…
めちゃくちゃ簡単。 環境 Ubuntu 14.04 ROS Indigo bagファイルをcsv形式で出力 以下のコマンド1行でいける。 $ rostopic echo -b bagファイル.bag -p /トピック名 > csvファイル.csv 例えば、Twist形式だと以下のようになる。 $ rostopic echo -b bagファイ…
aitendoの脈波センモジュールをArduinoに接続して脈波を取ってみます。 必要なもの 脈波センモジュール - aitendo Arduino Uno ジャンパーワイヤ3本(センサモジュールに付属) 接続方法 基板にマイナスマークのついている端子をArduinoのGNDに、プラスマーク…
Bootstrapで、iframeが含まれているページを作った時に、navbarが開閉できないという問題に遭遇しました。 問題のiframeは以下の通り。 <iframe src="hoge.html" class="hoge" name="hoge" width="340" height="200"> 原因は単純で、</iframe>で閉じるのを忘れていただけで、以下のように修正したら無事動くようになりました。 <iframe src="hoge.html" class="hoge" name="hoge" width="340" height="200"></iframe> 参考URL j…
Arduinoで超音波距離センサ SRF02のI2Cアドレスを書き換える方法です。 元のアドレスを確認 デフォルトではSRF02のアドレスは0xE0(224)なので、I2CScanerのスケッチを利用すると、0xE0の上位7bitである0x70(112)にデバイスが見つかります。 シリアルモニタの…
2016年3月1日にIntelからRealSense R200の新しいROSパッケージがリリースされましたので、早速インストールして使ってみました。 GitHub - intel-ros/realsense: Intel(R) RealSense(TM) ROS packages 動作環境 Ubuntu 14.04 ROS Indigo RealSense R200 Came…
Milkcocoaを利用すると、センサー情報をクラウドに上げてウェブサイト等で利用するといった、IoTチックなことが超簡単にできてしまいます。 僕も、自宅にあるRaspberry Piに接続した温湿度センサとPIRセンサの値をMilkcocoaにアップロードして、僕のウェブサ…
見守りシステムで家の中に監視カメラを置くなんて話がありますが、さすがに部屋をずっと撮影されているといい気持ちはしないと思います。そこで、前の記事で紹介したaitendoの人感センサ(SB00412A-1)のデータをRaspberry PiからMilkcocoaにアップロードして…