Atomで”markdown-pdf referenceerror callback is not defined”

Atomとは、Github謹製のリッチなエディターです。SublimeTextの対抗といったところでしょうか?
プラグインも豊富でかなり使い勝手がいいです。特にMarkdownで文章を書いたりするのが非常に便利

markdown-previewプラグインを入れればctrl+shift+mでMarkdownで書いたドキュメントの成形したプレビューを見ることができます。また、MarkdownからPDFを作成することもできるので非常に便利です

ただし、この設定を上手くしておかないとエラーが出ます。

このエラーが出た場合には、markdown-pdfとmarkdown-preview-plusというプラグインがEnableになっていると思いますので、markdown-preview-plusをdisableにして、markdown-prevewをenableにすれば治ります

参考URL

macにwgetを入れてみた

MacOSX10.8にはデフォルトでwgetが入っていません。必要ならばソースコードからコンパイルする必要があります。

まず手始めにはgccをインストールする必要があります。こちらを参考にコマンドライン版gccもいれます

wgetはソースコードからコンパイルするため、ブラウザでGNUのページからダウンロードします

こんな感じでインストールできます。

ちなみに–with-ssl=opensslをつけないとconfigureに失敗しました

KH CoderをMacにインストール

KH Coderという、自然言語の解析用の統合ソフトウエアをMacにインストールする際のメモ

環境

    • MacOS10.11
  • 関連モジュールのインストール

    まず、関連するモジュールをインストールします。KH Coderは内部でR,MySQL,mecab,Perlを使用しますのでMacにあらかじめこれらを入れておく必要があります。

    mysql

    brewで入れるのが簡単です
    brewって何って言う人はこのあたりを参考に入れてみてください
    このあたりを参考にインストールします。DBのユーザ名、パスワードは任意に決めておきます

    KH CoderはMySQL5.7だと不具合が出るのでsql_modeをブランクにしておきます
    確認します

    R

    同じくBrewが簡単です

    mecab

    Perl

    Macには初めからPerlがインストールされているので、今回は関連するモジュールを追加します。

    初めて起動する際には色々聞かれますがデフォルトで全てOKです。黙ってリターンキーを押しましょう
    CPANのシェルが起動すれば黙々と以下インストールします

    こんな感じでインストールしていきます。
    たまにエラーが出る場合にはあわてず以下の通りにします

    例えば Spreadsheet-ParseExcelがエラーになった場合には

    こんな感じです。

    KH Coder

    こちらからソースコードをダウンロードして解凍しておきます
    KH Coderをダウンロードしたディレクトリに移動し一度起動します。こすればconfigいかにファイルが作成されます

    そのあと設定ファイルを設定します。インストールした際のMySQLのユーザ名とパスワード、Mecabを設定します。

    設定ファイルの文字コードを修正します。nkfが入っていない場合にはbrew でインストールしてください

    起動

    KH Coderをダウンロードしたディレクトリに移動します

    これで起動できるはずです。

    こんな感じでPerlのエラーが出た際には、Perlのモジュールを入れてください。以下の例だとDBD/CSV.pmが足りないので install DBD::CSVをインストールします

    おまけ

    mysql5.7でのエラーについて

    前処理を実行するとこういうエラーが出ます

    こちらによると5.7からGroupBYの仕様が変わったらしいです。

    Day Of Yearカレンダープラグイン

    WordPressのプラグインでDayOfYearを表示するものを作成してみました

    プラグイン作成準備

    最初にディレクトリを作成します。今回は自分用に作成するので特に名前も気にしていないのですが、公開する場合には名前のかぶらないものにすることをお勧めします。

    このディレクトリにplugin.phpファイルを作成しヘッダを作成します。
    この辺りはお決まりですので、このあたりのサイトに書かれている通りにします

    こんな感じで十分でしょうか?

    ショートコード対応

    今回はWordpressのプラグインとしてショートコードをページに記入レバ表示できるような仕様にします。
    また、ページには1年間分のカレンダーを表示し、年をテキストボックスでフォーム入力し、Submitすることにより切り替えます。
    この際に、FormからはGetパラメタで送信し、プラグイン内でGetパラメタを取得して年を切り替えます。

    カレンダー作成

    最初から作ってもいいのですが、こちらを参考にさせていただきました。

    ソースコード

    で、完成したコードがこちら

    リリース

    できたコードをディレクトリごとZIPファイルにし、Wordpressのプラグインに追加します。
    また、ページにはこんな感じで書けば無事カレンダーが表示されます

    デモ

    作成したデモサイトはこちらになります

    pdftotextでPDFを文字列化

    最近の人工知能ブームでテキストマイニングから法則を発見するといったこともしばしば行うようになってきました。
    PDFから文字列を抽出する方法をメモっておきます

    環境

    • mac os 10.11

    インストール

    まずはpdftotextをインストールします

    このまま実行するとエラーになります

    こちらを参考に修正します

    実行

    2ページ目から出力してみます。

    test.txtというファイル名で作成されます

    UCD-DISKIO-MIB::diskIODevice = No more variables left in this MIB View (It is past the end of the MIB tree)エラー

    Hinemos5.0でサーバ監視をしているのですが、EC2のAmazonLinuxで作成したサーバのリソース監視がデフォルトではうまくいかなかったのでメモ。

    * Amazon Linux AMI release 2015.09

    AmazonLinuxは作成すると自動で、SNMPが起動されています。そこに対してHinemosから監視をかけるわけですが、タイムアウトというエラーが出たりします。

    まず確認用に監視サーバからコマンドを打ちます

    こんな感じのエラー。
    こちらに対処法が書いてありましたので実行してみます。

    被監視サーバの設定を修正します

    先のブログには再起動と書いていますがリスタートのみでOKです

    再度、監視サーバからコマンドを打ちます

    無事コマンドが通りました。
    しばらくするとエラーになっていたHinemosの監視項目にも値が入るようになります

    ElasticSearchでClusterBlockException[blocked by: [FORBIDDEN/8/index write (api)]エラーの対応

    ElasticSearchをAWSで運用しているとたまにエラーが出ます。

    このメッセージが出る場合の対処方法ですが、こちらの記事にある通りにディスクフルの場合には容量アップで対応できるみたいですが、そうでない場合もあります。

    http://qiita.com/dorachan1029/items/f3b47f4d9859450d9b90

    その場合には再度テーブルを作成しなおすとなおったりします。こんな感じで。

    http://qiita.com/shouta-dev/items/c2d2eb6cf61bb1fa8e1b

    自分の場合には、データを毎日入れ替えていたのですが、全入れ替えするとその間検索ができなくなってしまうので、要、不要を判断し、1レコードづつ入れ替えていたのが悪かったのかもしれません。半年ほど運用していたらこのエラーになりました。

    tcpdumpでパケット通信サイズを求める

    WebサーバとDB間の通信など、DBが他のサービスなどと共用だとそのDBへの通信量などが気になったりします。

    WebサーバからDBへの通信パケットサイズをtcpdumpを使って測定してみます。

    条件

    • DB Server: 192.168.10.100
    • DB Application: MySQL port 3306

    測定

    こんな感じでバイト数が求まります

    TensorflowでMNIST(5)

    毎回学習させるのは効率が悪いので、一度学習させそれを保存しておき、判定時には判定のみをさせるように修正します

    畳み込みニューラルネットワーク(CNN)のプログラムを修正していきます

    学習用

    tf_cnn3.py

    判定用

    tf_cnn3_exec.py

    実行

    学習させて、テストデータの先頭の1つを判定します。その際、どの数値をどの確率で判定しているかのリストを表示させています。その数値が最も高いものがこのエンジンでの判定結果となります。

    この結果では7が9.99985099e-01で最も数値が高くなっています

    TensorflowでMNIST(4)

    前回までで、MNISTをDeeplearningするにあたって、回帰分析、多層パーセプトロン、畳み込みニューラルネットワークとTensorflowで実装してみました。

    入力データに関しての補足です

    入力用のデータはMNISTのデータを使っているのですが、28×28のビットマップデータを0-254までの数値(白黒)で表したデータを入力とします。

    これを用いてTensorflowの入力データ用に1次元配列に変換します。その際、ビットマップデータを左上から順に1次元の配列に格納しているので、結局784要素の配列となります。これを、ビットマップデータ数分用意(60000)するので結局、784×60000という巨大な行列が入力となります。

    実際の入力利用したデータは、その列の先頭に正解を付与しているので、785×60000でできたファイルとなります

    入力ファイル

    これが1つのデータです。先頭の5が正解データ、それ以降0から続くデータがビットマップの数値表現です

    train.txt

    Tensorflow入力

    実際にTensorflowに計算させる際には0-254のビットマップデータを0-1の表現に変更します

    教師データ

    正解データは1-of-k方式のデータに直します。下記ですと7になります

    回帰分析のダミー変数みたいな感じだと思えばいいかと思います