カテゴリー別アーカイブ: program

MSDNサブスクリプションが延長されてる

MSDNはライセンス料が高いので更新できず、
数年前に購入したライセンスのまま
Visual Studio 2010を使い続けてたのだけど。

今朝MSDNサブスクリプションのページを見たら
何か色々使って良い事になってた。

後で請求が来たらどうしようと思うと、
怖いので、やっぱり使えない。

emacs magitでソース管理

cygwin上のemacsから使い易い gitクライアントが無かったので、
Windowsでの開発では、ソースの編集はemacsでやっていても、
バージョン管理には TortoiseGit を使っていた。

TortoiseGit は GUIが上等なので、それはそれで便利なのだけど、
いちいちマウスを持つのが面倒なので、
編集に関わる作業は全部emacsの中で連続してやってしまいたい。

で、 magit を使うことにした。

今迄 emacs内でgitを触りたくなかったのは
cygwinのファイルアクセスが異常に遅いのが理由なのだけど、
最新のemacs-win64(25.0.50)とmagitの組み合わせなら何とかなる範囲。

で、インストール。

一旦、magitをGitHubからダウンロードしたものの、
中のドキュメントを見たら、 emacsのパッケージからインストールできる、
という事だったので、そっちに方針変更。

ドキュメント内では、 Melpa と Marmalade のパッケージが説明されていたけど、
結局、 Elpa 内の magit を使うことにした。

使用している git は 2.5.0、emacsは25.0.50 なので、
動作条件は満しているものの、 emacsがHEADのせいか、
こういう状況だった。

  • Melpa は、パッケージ自体に問題がちょいちょい起こるのでリストから外している
  • Marmalade の Magit は、バージョンが 1.2 だったけど、エラーで動作せず
  • Elpaの Magit は、バージョンが 0.8.1 で、かなり古いけど、問題なく動作する

Elpaのパッケージは更新されそうにないので、
そのうち GitlHub の Magit 2.1.0 に乗り換えるかも知れない。

で、Magitの使用方法は、とても簡単。

で、今のソースの更新状況が表示される。

これが emacs に出るのが本当に嬉しい。
うっかり編集や、気の迷いでチョット修正したのを忘れてしまう、
という、本当におバカなミスを防いでくれる。

TortoiseGit だと気付くタイイングが大分後になってしまうし、
そもそも作業が億劫なので、こまめに commit しなくなるから
gitの有難味が、ちょっとそがれてしまう。

emacs の magit-status 画面で普段使う機能は以下の通り。

  • s でファイルを一つ add
  • S 全ファイルを全てadd(git add -A)
    • 実際には C-u S とする
  • c コミット
  • u addの取消
  • l ログ一覧表示
  • L ログ一覧詳細表示

Macでの作業は、基本個人のローカル運用なので、コレで十分。

Windowsの開発案件で必要な pull/push/merge などは、
今のところ TortoiseGit を使っている。
外部と関わる重要作業は、GUIがしっかりしていた方がちょっと安心なので。

python K-means法の結果が毎回異なると困るので

クラスタ分類に、pythonのkmeans()を使っていたのだけど、
毎回結果が異なるので、解析結果の資料を残すのに具合が悪い。

Kmeans法は初期クラスタを乱数で決めるので、
とりあえず乱数の種の方を固定しようと。。。

しても、実行する度に結果が変わってしまう。

正解は

でした。

使用している kmeans() が scipy.cluster.vq の物だったので。

OpenCV や scikit-learn にも kmeans があって、
それぞれ使っている乱数の関数が違うかも知れない。

それぞれで使っている乱数を調べないとね。

wordpressのプラグインを作ってみる org-modeのテーブルをそのまま使いたい!その2

org-modeで書いたテーブル

みたいなのを、
blogに書くときにプラグインでHTMLのtableに加工したい。

という訳でプラグインを自作したものの、
org-modeで書いたテーブルがあると
WP-MarkDownが書式を壊してしまって動かない。

プラグインの優先度を上げて先に編集すれば、
最初の編集ではどうにかなるけれど、
再編集ができない。(トホホ)

かと言って
WP-MarkDownを使わないのも不便だし
自分でMarkDown機能を実装するのも面倒臭い。

という訳で、
WP-MarkDownに対抗する暫定対応を加えた。

で、こんな感じに動作する。

ヘッダがある場合。

|——+——+————|
| 名前 | 価格 | 日付 |
|——+——+————|
| あれ | 100 | 2015/01/01 |
| これ | 1000 | 2015/02/01 |
| それ | 99 | 2015/03/01 |
|——+——+————|

ヘッダが無い場合。

|——–+——|
| あっち | 100 |
| そっち | 1000 |
| こっち | 99 |
|——–+——|

めんどいなぁ。

Mac Homebrew OpenCV3をインストール その2 Airでは…

Mac Homebrew OpenCV3をインストール

と同じ手順で、Airにも OpenCV3をインストール。

と思ったら。
同じ手順なのに、 こっちは OpenCV2の最新版 2.4.12 になってしまう。

あるし! opencv3!

もう一度 MacBookProの方でもやってみたら、
やっぱり opencv3 が出て来た!

なんだそりゃ。

MacBookProの方は、間違いなく opencv –HEAD で
3.0.0-dev になってるんだけどな。

homebrew-science/opencv.rb

を見ると、確かに head はopencvの 2.4 ブランチを見ることになってる。

brew update のタイミングが微妙だったのかも。

てな訳で、SSDの逼迫している MacBookAir の方は、
潔く opencv を uninstall して、 opencv3 を入れることに。

せっかくなので gcc も ビルドし直しておく。

opencv3 のオプションは…

適当にオプションを選んで。

–with-contrib は失敗するので外した方が良い。

指示通りに opencv3 のパスを登録して

pythonから確認。

ちゃんと、’3.0.0-dev’になりました。

OpenCV 3.0 でハマった事

割りと軽いノリでOpenCV 3.0 に移行した結果、
あれこれハマった事や面倒だった事のメモ。

ビルドの問題に関しては、
cudaを使ってるのが主な原因の様な気がする。

contribでビルドできないmoduleが、いくつもある

gitでも3.00のアーカイブでも同様。
opencv-text や opencv-tracking は、試したかった機能なので残念。

cudaを使わなければビルドできてた様に覚えているし、
ビルドエラーは見れば直ぐに修正できそうな感じなので、
早晩対応されると思う。

pyton-bindingがビルドできない!

gitでも3.00のアーカイブでも同様。
OpenCV3のウリの一つだっただけに、これは本当に残念。

Windowsのpythonからは、今もOpenCV2を使ってる。

機械学習以外では困らないので、まぁ良いか。

CV_~の定数を、cv::~に置き換える

CV_~の定数は、まだ使えるみたいだけど
そろそろcv::~ のenumに書き換えた方が良いみたい。
CV_BGR2GRAY → cv::COLOR_BGR2GRAY とか

でも、どれが移行出来るのかとか、一覧できないので
順次、気がついたソースから修正中。

OpenCV 1.x 風マクロの置き換え

OpenCV1 APIからC++風APIに書き換えるのは、地味に面倒。
やっぱり、動いたり動かなかったりするので
ビルドしてみてエラーになった物から修正中。

とりあえず、VideoCapture や VideoWriter かな。
あと、画像処理のAPIのドキュメントが無かったりするので、
何となくエラーが出ないように場当たり的に修正している状況。
動いてはいるみたいだけど。

IplImage * と cv::Mat を暗黙で変換してくれなくなった

コンストラクタで暗黙変換しなくなったのが一番影響大きいかな。
そもそも、もう IplImage は使わない方が良いんだろうけど、
プロジェクト単位で見ると、地味に修正箇所が多い。

意を決っして全部修正する事にした。

どうしても IplImage を使いたいところは

とかしてる。

CV_RGB から cv::Scalar に置き換え

RGBの順番が変わるので要注意。

色指定はCV_RGB が便利なんだけど、
中途半端はイヤなので、cv::Scalar に修正中。
揃えるのも大事。

Macはどうしよう…

HomeBrewのOpenCVでは
opencv3が廃止されてopencvに統合されたので
使い分けが面倒になった。

どのみち移行するので、OpenCV3にしてしまった。
これからハマるかも知れない。

MAC標準のapacheでJenkinsを動かす 2015

アップデートしようとして動かなくなったJenkins。

今日は色々アップデートしたから、何が原因か分からない。
とりあえずインストールした時の記憶を頼りに再設定しよう。

脱MAMP 標準のapacheでJenkinsを動かす

前のMacBookProではMAMPでJenkinsを動かしていたけど、
ちょっと大袈裟だから 標準のapacheに変更してたのだった。

Jenkins自体の動作確認

アップデートしようとする前の古いバージョンのJenkinsが
/Applications/Jenkins にちゃんとある。

手動で起動すると。

となって、Jenkinsの標準的なアドレス

http://localhost:8080/

を見に行くと、ちゃんと動いている。

これを、デーモンにすればOK。

apacheとの連携確認

あぁ〜
原因はコレか。

デーモンの設定ファイルがゴッソリ消去されてる。トホホ

これは、何とかして Jenkinsを再インストールしないとダメだな。

Jenkinsの再インストール

調べてみたら、
今やJenkinsは、 Caskじゃなくて素のHomebrewからインストールできるのだった。

Cask版のJenkinsはbrewからアンインストールできなかったので、
手動でファイルを削除しておいた。(ややこしくなるので)

そして

で動作することを確認!

改めてapacheとの連携

言われるがまま。

よしよし。
動いた。

しかも apacheの設定が全く必要ないんだな。。
MAMPより楽ちんですわ。

HomeBrew CaskroomのアプリGAE/Jenkins/Gimp/firefox/Blenderを更新

OpenCV3のインストールのついでに、GAE/Jenkins/Gimp/firefox/Blenderも再ビルドしておこう。

CaskRoomのアプリは、 ~/Applications/ にリンクされる。

なんだけど、 Jenkins は、 /Applications/Jenkins に直でインストールされる。
デーモン化する時に、jennkins.war を毎回探してしまう。(汗)

あぁ… 何かダウンロードしたファイルが壊れてるらしい。
Jenkinsのインストールは、ちょいちょい問題を起すなぁ。

今日は、しょっちゅう brew udate してる気がする。

言われるまま。

結果は変らず。インストール前にダウンロードで失敗。

あれ? インストール済みの古い Jenkins も動かなくなった。

何だよぉ〜。

続く。

Mac Homebrew Emacsをgit-head版に更新

Windows版のemacs-w64のHEAD版が調子良いので、
Macもcsv-Head(いやgit-Headか…)に更新してみた。

気持ち、モッサリした気もするけど。
まぁイイか。

バージョンは殆ど変化なし。
今回:GNU Emacs 25.0.50.1 (x86_64-apple-darwin14.4.0, NS appkit-1348.17 Version 10.10.4 (Build 14E46)) of 2015-08-09 on mbpr15.local
前回:GNU Emacs 25.0.50.1 (x86_64-apple-darwin14.3.0, NS appkit-1347.57 Version 10.10.3 (Build 14D136)) of 2015-05-05 on MacBookPro.local

Mac Homebrew OpenCV3をインストール

インストールに時間がかかるものを、お盆前の暇なうちに入れ直しておく。

OpenCV3 に乗り換え

仕事用のWindowsは、OpenCV2とOpenCV3の混在環境になっていて、
cuda版も合わせて4種類でビルドしたライブラリを使い分けてる。
ちょっとイヤな感じ。

OpenCV3で心底困る事は無いし、機械学習には具合が良いから、
MacBookProの環境は OpenCV3 に乗り換えよう。

まずは、一応OpenCV2も更新しておこう。

gccも再インストールしたので、
ここまでで45分ほど。

ログを見ると、あれれ。

openMPを使えるように、gccを再ビルド

multilibは必要ないけどOpenMPは欲しいのでヤリ直し。

ログは省略。

さて。OpenCV3をのインストール

あれ?、 OpenCV3 が見付からない。
リポジトリを直接見ると有るんだけどな。

さっき brew update はしたし。。。

どうやら、opencvに取り込まれたみたいだ。

OpenCV3はリリースしたてだし、 3.0.0-rc1 よりは HEAD だよね。
ビルドオプションも、今のに合わせて再ビルド。

OpenCVのバージョン確認

インストールは10分ほどで終了。
念のためバージョンを確認しょう。

ちゃんと、 OpenCV3 になってました。

それにしても…
2015年の MacbookPro Retina 15は、2012年版よりもファンがやかましい。
Homebrewのインストールではファンが回りっぱなしで、膝がメチャ熱い。