ツタンラーメンの忘備録

プログラミングや精神疾患、ラーメンについて書いていきます。たぶん。

raspberry pi 3で固定IPを割り当てる

調べれば出てくるのでとりあえずやってみた

Raspberry Pi 3 (Raspbian Jessie)の無線LANに固定IPアドレスを設定する - Qiita

無線LAN設定はしてあるので、「固定IP設定」の章から読む。


で、むっちゃ初心者なので固定IPアドレスってなんでもいいと思っていたんだけど、そんなことはなかった。いろいろ迷ったあげく、現状割り当てられているIPアドレスを書いておいたら動いたので、よしとしている。変わらないといいんだけど…。
知らなかったんだけど適当なIPアドレス割り振っても

ip addr

のコマンド打てばちゃんと表示される。しかし、インターネットにすらつながらなくなるのね

パソコンのIPアドレス・デフォルトゲートウェイ・DNSサーバーアドレスの確認方法
固定IP以外の二つはwin端末から上記方法で解決した。情報が古いがそのまま使える。


暖房の使い過ぎでブレーカーが落ちて停電してからIPアドレス変わったので固定したほうがいいかなーとか思ったけど、意味あるのだろうか。

VBAの特殊性

VBAは意外と便利なんだけど、文法が特殊。しばらくVBAをやらなそうだからいくつか備忘録的に書いておこう。

Dim hensuu As Integer '変数名も大文字から始めることが多いイメージ


'コメント


If A = B Then

ElseIf

End If


Dim i As Integer
For i = 0 To 10 Step 1
  '10も含む
Next i


Dim A(9) As String '配列、10個用意される、0~9まで


'参照渡し?ができる
Function Plus(A, B, C)
  C = A + B + 1
  Plus = A + B
End Function
'とすると
Result = Plus(1, 2, Kai)
'とできて
'Result = 3
'Kai = 4
'となる

ごめんなさい。記憶で書いているので間違っているかも。とにかく特殊性があるということが言いたい。他の言語やってればやっているほど、不思議な感覚がする。

ちなみに予測変換は

Ctrl+space

で出ます。
あといちいちエラーのところに戻されるので、設定で切っておくべきだと思います。

javascriptのappedFileが勝手に空白を入れてくる問題

javascriptにはファイルに追記するために

appendFile(path, text, code, callback)
appendFileSync(path, text, code, callback)

という関数があります。
blog.codebook-10000.com
ここがわかりやすいんじゃないですかね。

ところが、変な空白が入ります。

fs.appendFileSync('data.txt', data.word + '\n', 'utf8')

とすると

a
 b
 c
 d

などという結果が返ってきます。
空白いらないんだけどな…と思っていろいろ調べました。

ないんだよね。

こんな初歩で誰も躓かないらしいです。


結論とすると

fs.appendFileSync('data.txt', (data.word).trim() + '\n', 'utf8')

とすれば解決しました。勝手に文字列に空白を付け足すらしいです。

よかったよかった。

node.jsで音声認識をする1

音声認識がしたかったので手軽にできるものを探しました。別に英語でよかったのですが、いろいろ探した結果
liginc.co.jp
こんな記事を見つけました。いいですね。なんか簡単そうです。

さっそくどんなもんか見てみるために下記サイトにアクセスして動きを見ました。
www.yoheim.net


paiza.hatenablog.com
さっそくこれを丸コピして使ってみます。

動かない

当然っちゃ当然で、サーバ側の処理何もしてないのでURLにhttpとかhttpsとか入っていないので、認証できないんですよね(たぶん)


というわけでサーバ側を描きます。今回はnode.jsを使います。
フォルダ構成は
voice.js
∟public-index.html
ああああ∟app.js
という感じにします。
index.htmlとapp.jsはそのままです。

npm install express path

してから

const http = require('http');
const path = require('path')
const express = require('express');

var app = express();
app.use(express.static(path.join(__dirname, 'public')));
var server = http.Server(app);
server.listen(process.env.PORT || 8080);

これ書いて

node voice

してlocalhost:8080にアクセスすればいいわけです。

動かない

どうやらFireFoxでは動かないようなのでChromeで動かします。
許可すれば動きました。
右クリックして「検証」を押して、コンソールで見れます。

日本語の精度はけっこういいです。けっこうというかかなりいいです。
なぜか英語が悪いです。悪いというか過学習気味なのか。単純に発音が悪いだけなのでしょうが…。英語やらねば。
公式のサイトにもデモみたいなのがあるのでそっちも使ってみてください。


さらに、継続的に音声認識する方法もあります。
適当に

recognition.continuous = true;
recognition.interimResults = true;

をつっこむだけです。いいですね簡単で。

それでも、しばらく音声がないと止まります。
それを解決するのが下記サイト
jellyware.jp
いい感じにずっとできます。あとはsocket.ioでnode.js側に飛ばしていろいろ処理します。

raspbianでmongodをしたら止まらなくなった。

原因がわかりませんが、とにかく止まらなくなって焦りました。
結論

mongo
use admin
db.shutdownServer()

で止まりました。確認で

mongo

と打つと「だめー!」とエラーが出ます。
めでたしめでたし。

openframeworksで自分の手入力した曲線の多項近似式を算出してくれる。

Visual Studio 2015
openframeworks 0.9.8
です。

こんな感じに自分でこんな感じの曲線がほしいなと思ったときに、書いてみると近似曲線が得られます(すごく需要のない…)。現状は2~9次曲線までです。いや普通に20次とかもできるっちゃできるんですが、確か21次くらいでdouble型の上限を越えます。
左上の数字(小さいが…)が最高次数です。ちなみにx、yともに0~1です。プログラム上は(0, 0)で始まって(1, 1)で終わるようになあっていますが、もちろんそうじゃないようにもできます。
かなり独力で頑張ろうとしたのですが、普通に無理だったので
www.mk-mode.com
こちらを参考にしました。最小二乗法を解くのに、ガウスジョルダン法なんてあるんですね、知らなかった。

こういう風に絵が簡単に描けて、C++の強みも活かせるopenframeworksはすごく便利ですね。

ちなみにこのソースコードgithubにあるっちゃあるんですが、その…次数をfor文で回そうとした痕跡がかなりあって…気持ち悪いコードに…。

GitHub - hungrykirby/curveFitting

一応載せておきます。誰も見ないとは思いますが。ちなみに個人利用用だったので一切例外処理をしていません。エラーが出たら起動し直します。

windowsは本当にMacに劣るユーザビリティなのか。

今回はwindows10を想定しています。7や8.1は考慮していません。
研究室ではちょくちょくMacを使います。
たまにしか使わないので比較する記事ではないことをご了承ください。

ターゲットはある程度プログラミングなどをするヘビーユーザです。

fukuyuki.net

これをとりあえず覚えてください。無理ならマルチデスクトップの項だけでも覚えてください。実際のところ私も「こんなの使うのか…?」「Alt+tab」でいいのでは…(あんまり使いやすいと思ってないけど…)。などと思っていました。
とはいえ、使ってみると

あら便利!

個人差はあると思いますがむっちゃ便利です。すっきりして見やすいし、ノートパソコンでは(も?)「Alt+tab」って押しにくいんですよね。いや、なんかうまく説明できないんですけど開発も含めてすべてがすごく楽になりました。

次はMac book Pro買おうかなと思っていたのですが、次もWindowsにします。いい時代になったものだ。