ichou1のブログ

主に音声認識、時々、データ分析のことを書く

プログラミング

EncoceとDecodeに関するメモ

マルチバイト文字の扱いに関するメモ。UTF-8として保存されたファイルがあったとする。 % file /tmp/hoge.txt /tmp/hoge.txt: UTF-8 Unicode textこれをpythonのコードで読み込む。 with codecs.open('/tmp/hoge.txt', 'r', encoding='utf-8') as f: lines =…

OpenSSL APIメモ(HTTP/2対応その1)

OpenSSL APIを使うクライアントプログラムで「SSL_ERROR_SYSCALL」が返ってきた。エラーを返している部分はSSL_connect()通信内容を確認してみると、アクセスしようとしているサイトはHTTP/2対応だった。 (WEBサーバはNginx)段階的に修正してみる。HTTP/2…

C++メモ(C++14を使うためのGCCアップデート)

C++14機能の「std::make_unique」を使おうとしたらコンパイルエラーが出た。 error: ‘make_unique’ is not a member of ‘std’使っているGCCのバージョンは「4.8.4」サイトを確認すると、 GCC 4.9 Release Series — Changes, New Features, and Fixes - GNU P…

OpenSSL APIメモ(handshake failure)

OpenSSL APIを使うクライアントプログラムを書いて、あるサイトにアクセスした時にエラーが出た。 ハマったのでメモしておく。 error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failureTLSを指定している(↓)のに何故SSLv3? ctx = SSL_C…

ビットコインの仕組みを追いかけてみる(1)

まずは、GitHubからCoreのソースを落とす(他の言語による代替実装もあるらしい)。Git リポジトリのコピー。 git clone https://github.com/bitcoin/bitcoin.gitリモートブランチを一覧表示。最新バージョンは「0.15」。 git branch -r origin/0.10 origin/…

ソケットプログラミングにおけるKeepAliveの考え方メモ

ブラウザ上で閲覧する1つのWEBページは、HTML、JavaScript、CSS等、複数のファイルから構成されることがほとんど。 ソケットプログラムを書くとなると、1ファイル=1要求として関数を書くことになると思われるが、 ソケットの作成は、毎回、行わなければなら…

fgets関数とwhileループ(feof関数の使い分け)

fgets(3)はwhileループの中でどう使えばいいのか、検証してみた。以下、ソース全文。 whileの部分を変えてみる。 #include <stdio.h> #include <string.h> void testfunc(char *buf){ printf("%s\n", buf); } /* end of testfunc */ void main(int argc, char *argv[]){ if(argc</string.h></stdio.h>…

OpenSSL APIを試してみた

以下のdeveloperworks記事を参考にOpenSSL APIを試してみた。www.ibm.com今回は"SSL_CTX_load_verify_locations"(証明書の検証)に関する部分のメモVerisignのサイトで試してみた。以下のコードに、エクスポートした各階層の証明書を入力して、 /* Load the t…

GitHubの更新ができなくなったのでFirefoxをバージョンアップ

GitHubを更新しようとしたらワーニングが出た。 Please note that GitHub no longer supports old versions of Firefox. この時のUser-Agentは User-Agent Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:44.0) Gecko/20100101 Firefox/44.0 2017年8月8日にバー…

音を作る

純音(一つの正弦波だけで作られる音)を作る 1.ソース ピアノ鍵盤でいうところの「ラ」の音(周波数 880Hz) サンプリング周波数 : 16k(1秒間にいくつ区切るか、電話だと8k、今回は毎秒16000回サンプル) 1秒間鳴らす 値の範囲は「1〜255」(後ほどodコマン…