RASPBIAN JESSIEでSSH接続

ちょっとはまりました。

RASPBIAN JESSIEの2016-11-25バージョンではデフォルトでSSH接続が外部からできなくなってしまいました。

外部から接続しようとするとこんな感じ

どうやら仕様変更があったようです
http://downloads.raspberrypi.org/raspbian/release_notes.txt

解決方法はブートパーテーションにsshという名のファイルを作るだけ。

セキュリティのためとはわかりますが、いきなり塞がれると困ってしまいました。

Rで株価データ取得

Rで株価データの取得のメモ
quantmodは素晴らしい!!

DOW

DowはYahoo.comから取得します。srcに”yahoo”をセット

デフォルトの名前では使いづらいので、必要なデータを別のデータフレームに入れて名前をつけます。

取得するデータはxts型ですので扱いやすいです

日本株

日本株はsrcにyahoojとYahooJapanを指定するだけです

追記 19.06.18


上記のやり方ではどうやらエラーが出るようになりました。

取得方法がどうやら変わったのでしょうか?
下記のやり方でとれるようです

CPLUS_INCLUDE_PATH

Cabochaをローカルにインストールさいのメモ

共用環境だと何かライブラリをインストールする際にも自分のローカルにインストールする必要があります。その際にハマったのでメモ

mecab

cabochaはMecabを使用しますので予めインストールしておきます。

CRF++

まず、ライブラリをインストールします。こちらから最新版をダウンロードします。現在はCRF++-0.58が最新版なのでこちらをダウンロードします。その後インストールします

環境変数

環境変数を設定しておきます。これを設定しておかないとcabochaのコンパイル時に下記エラーが出ます。

環境変数

cabocha

次にcabochaをインストールします。こちらから同様に最新版をダウンロードします。現在では0.69です。

環境変数は.bashrcなどに入れておくと面倒がなくていいです

shinyでデバッグプリントを出す方法

すぐ忘れるのでメモ

shinyとは

Rの軽量Webフレームワークshiny。Rで計算した結果をWebで簡単に表現できるので非常に便利です。

RStudioを使ってデバッグすればいいのでしょうが、サーバサイドでいきなりコーディングし、訳の分からないエラーが発生した時には非常に困ります。
簡単にデバッグする方法は以下のとおりです

ブラウザ

Chromeのメニューから「その他のツール」ー「デベロッパーツール」を選択します。
そのメニューからConsoleを表示させると、Javascriptでサーバ側のエラーを表示してくれます。
これは非常に便利。

デバッグプリント

ソースコード上にデバッグプリントを埋め込んで変数の内容を確認するには

こんな感じでserver.R上に記述します。これで /var/log/shiny-server以下のファイルに出力されます。

まとめ

Rはスクリプト言語なので、エラーになる直前までは普通に実行してくれますので、エラーとなる直前にデバッグプリントを仕込むと良いでしょう

激安$3以下のebayで買ったArduino nanoを動かす

激安ArduinoNanoをなんとか動かしたメモ

ebayで最近よく物を買っています。Arudinoなんかですと国内で買う価格の半額どころか10分の1くらいの値段で手に入ります。

しかし、互換チップなどを使っているのでドライバーを入れたり色々面倒なことが起きたりします。

今回、購入したこちらのArudino uno ですが一筋縄ではいきませんでしたのでその対応のメモです。

環境

PC: Mac OS X 10.11
IDE: Arduino IDE 1.6.11

ch340gドライバ

こちらのUSBドライバは格安の互換品らしく、ドライバーを別途入れてやらないとPCからは認識できません。この辺りの手順は色々なところに書かれていますので、このあたりを参考にドライバー追加します。

IDE

ドライバを追加し、Arduino Nano をPCに接続してやります。自分の場合はMACなのでポートはArduinoIDEからは

/dev/cu.wchusbserial1420

というデバイスで認識されますので、ポートをこちらに接続してやります。

Blinkプログラムの書き込み

USBを接続し、ファイルメニューからスケッチの例ー01.BasicーBlinkを開いてやります。
ツールのボードをArduino Nano にし、プロセッサをATmega328、ポートは先ほどのポートをセットします。
そのまま、マイコンボードに書き込むを実行すると

このエラー。。。。。色々調べたのですが、ケーブルを入れさししろとか、リセットを押しながらケーブルを入れるとか。。。全く改善されません。

よーく見るとRXやLのLEDが電源をONにしても光っていないことに気づきました。

ブートローダを書き込む

どうやらブートローダが書き込まれていないのではという目星をつけて色々調べたところ、こちらにまさに解決方法が!

手順は以下に示しておきます

必要なもの

Arduino UNO
オスーメスのジャンパーピン

手順

STEP 1

  • Arduino UNOをPCに接続
  • ツールメニューのシリアルポートをArduino UNOのポートに
  • ツールメニューのボードをArduino UNOに
  • ファイルメニューのスケッチの例からArduino ISPを開く
  • マイコンボードに書き込むを実行
  • USBケーブルをはずしてPCからはずす

STEP 2

  • Arduino Nanoのジャンパーピン1からUNOのD12へ接続
  • Arduino Nanoのジャンパーピン2からUNOの5Vへ接続
  • Arduino Nanoのジャンパーピン3からUNOのD13へ接続
  • Arduino Nanoのジャンパーピン4からUNOのD11へ接続
  • Arduino Nanoのジャンパーピン5からUNOのD10へ接続
  • Arduino Nanoのジャンパーピン6からUNOのGNDへ接続

STEP 3

  • Arduino UNOをPCに接続
  • ツールメニューのシリアルポートをArduino UNOのポートに
  • ツールメニューのボードをArduino Nanoに
  • ツールメニューのプロセッサをATmega328に
  • ツールメニューの書き込み装置をArduino as ISPへ
  • ツールメニューのブートローダ書き込みを実行

これでブートローダが書き込まれて無事Arduino Nano のLのLEDが光ります。

STEP 4


ケーブルを全て外してArduino Nanoの動作確認をします

  • Arduino NanoをPCに接続
  • ツールメニューのシリアルポートをArduino Nanoのポートに
  • ツールメニューのボードをArduino Nanoに
  • ツールメニューのプロセッサをATmega328に
  • ツールメニューの書き込み装置をAVRISP mkIIに戻しておく(不要かも)
  • ファイルメニューからスケッチの例ー01.BasicーBlinkを開く
  • マイコンボードに書き込むを実行

これで無事にLチカができました

bottleでMVC

pythonでデータ解析をしていると、その結果をヴィジュアル的に見せたくなってくる時があります。
PythonのWebフレームワークは様々ありますが、最もシンプルなbottleで作成するのが一番簡単です。

こちらのサイトで、BottleをMVCフレームワーク的に作成されているサンプルがありましたのでちょっといじってみました。その際、ちょっとハマったのでのメモです。

環境

  • OS: ubuntu14.04
  • python: 2.7.6
  • MySQL version: 5.1.63
  • MySQL encode: shift_jis
  • nginx 1.4.6

設定

nginx

http://server/pythonでアクセスできるようにnginxの設定ファイルを修正します

/etc/nginx/site-availables

スクリプト

起動スクリプトを作成します

start.sh

gunicorn.conf.py

文字化け

上記環境で参考サイトを元に作成すると、DBの文字列を表示する際に文字化けしてしまいます。この対処法は散々悩んだ挙句この修正で行けました

app/models/db.py

ESP-WROOM-02とArduino unoでWifi

Arduino UnoとWifiモジュールのESP-WROOM-02 DIP化キットをつないで通信をしてみます。

ESP-WROOM-02自体でもArduinoとしてプログラムを書き込んで使用できるようですが、ESP-WROOM-02に繋ぐためのUSBシリアル変換インターフェースを持っていないのでとりあえずArduinoと接続して使えるかどうか確認します。

使用する機器

回路

ArduinoとESP-WROOM-02を繋ぐ回路が必要なのですが、このDIP化キットとArduinoUnoをつないだ回路をWebで発見することが出来ず苦労しました。
このあたりこのあたり、あとこのページを参考にさせていただいて作成したのがこれ。

DSC_0250

プログラム

参考にしたサイトからこれを作成しました。

実行

Arduino IDEからツール、シリアルモニタを開いて確認します

入力した文字がそのままエコーされています

まとめ

プログラムを実行しても Hello, Worldが返ってこなかったりし、いろいろ回路をいじったりしましたが、なぜこれで動くのかちょっとわかりませんが動くのでこれでよしとします。次は実際にWifi通信してみることにします

pythonのmatplotlibでcandlestickチャート

MySQLからデータを取得し、Pythonのmatplotlibでローソク足を描画します。

環境

  • OS:MacOS10.11
  • python:2.7.12
  • MySQL 5.6

テーブル

MySQLのテーブル形式は以下のとおり。日足でも週足でもなんでも構いません。
データベース名はdbnameとしています

休日考慮

シンプルにローソク足だけ表示します
休日がある場合には間を空けます

休日考慮しない

シンプルにローソク足だけ表示します
休日を無視して詰めて描画します。テクニカルを重ね合わせる場合はこちらのほうが都合がいいです

これでとりあえずチャートが表示されます

Rのh2oでエラー対応法

H2Oパッケージを触っていてエラーが出たのでメモ

環境

  • ubuntu14.04
  • R-3.3.1
  • h2o-2.0.1

インストール

まずここを参考にインストールします

cmake

h2o

設定

起動

サンプル

ここのサンプルを実行してみます

ここでエラー発生

どうやら、h2oの仕様が変わったようです。こちらを参考に修正します

またまたエラー

仕様をみると、また変わっていました。以下のように修正します

続けます

これでうまく実行できました

終了

仕様がよく変わるので、メジャーバージョンアップ時は要注意です

Word Cloudを使って見る

WordCloudなるライブラリがあるので使ってみました。
自分の環境ではそのままではちょっとうまく動かなかったのでメモです。

こちらを参考にしました。

環境

– MacOS10.11
– python 2.7.12
– mecab 0.996

インストール

エラー

こちらのサンプルをそのまま実行するとエラーが出ます

HTMLパーサーを明示的に入れます

そのまま実行するとまたまたエラー

どうもUnicodeがらみのエラーです。stop_wordsのUnicode変換がうまくいっていないようなので普通の文字列にします

コード修正

自分の環境に合わせていじります

実行

これで画像が表示されます