Github

【python】Mac OSX anaconda&Lasagne環境構築時メモ

最近ちらほら見かけるDeepLearning用ライブラリのLasagne
ちょっと調べると導入に苦労しているような記事をちらほら見かけたので恐る恐る
導入してみたら意外とあっさり行けたのでメモ

導入環境は下記の通り
OS:mac OSX
anacondaで開発環境構築済み
(python3.4)
以下はcondaで構築した環境上での操作

①theanoの導入

※このコマンド、実行はしたが②の↑のコマンド打ったらpipで導入されたv0.8が消されてv0.7がインストールされたので
 多分不要。
②lasagneの導入

以上で完了。
はい、公式に書いてある方法そのまんまでいけました。

ちょっと遊んでみて記事化できそうなら別途記事にする予定。

2016/07/10追記
サンプルのminstコードを動かしてみたら動かなかった・・・
ただ、lasagne周りのエラーじゃなくてtheanoのエラーだったからもしかしてサンプルコードがミスってるのかも。
ちょっとthenoを本格的に調査してみるか・・・

Mac OSXへmatplotlib導入時メモ

OSXにmatplotlibを導入してみた、公式サイトの解説では

でいけるとの説明があったがエラー発生(下記参照)

REQUIRED DEPENDENCIES AND EXTENSIONSを参照する限りどうもFreetype入っていないため
エラーとなっている模様。
そこでbrewを導入

導入は問題なく完了、再度pipにてmatplotlibを導入しようとしてみても同様のエラー
freetypeインストールされてるのにno(認識されていない)とはどういう事かと思い調べてみると
どうもMacOSXはもう一個追加してあげないとダメな模様

pkg-config導入後に再度pipからmatplotlibインストールをためしてみると今度は成功。

途中諦めそうになったぜ・・・

【Fedora】ノートPC(Acer)でのFedoraデュアルブート【Win8.1】

ちょっと思うところがあって、安めのノートPCを買ってきてLinuxとWin8.1のデュアルブート環境を作ってみた際のメモ

必要になった作業

①SecureBootの停止
 UEFIからSecureBootを停止する
 これは、USBメモリでLinuxをブートする際に必要
 OFFにしておかないとそもそもUSBメモリからOS起動ができない

②パーティションの確認、削除
 ノートPCは標準パーティションで作成されているかと思うので、
 その場合には新規にOSを入れるためにパーティションの数を4つ以下に
 しておく必要がある。
 なおこの作業の際が一番あぶない。
 ぶっ壊れても知らんのでバックアップをとったほうが良いと思うが、
 ぶっちゃけるとパーティション崩したらもうどうしようもない気がする。

③OSインストール
 これは説明する必要もないと思うので割愛
 適当にやっても①、②がきちんとできてればインストールできるはず
 逆に言えばインストーラがこける際は①、②があやしい。
 特に②のパーティション数が4つ以上になってる場合には要注意

④SecureBootのuefファイルの認識
 UEFIのSecureBootの設定をいじる
 これが今回一番の収穫だった。
 SecureBootを①できっていたとしても、uefファイルを読み込める設定を
 入れておかないと起動時の選択はおろかOSのブート設定の優先順位の場所にさえ
 表示されなかった。
 なお、こいつの設定が他のノートPCでも必要かどうかは不明。
 もしかしたらSecureBootとUEFI依存かもしれないが、今回購入したPCでは必要だった。

 他のPCを検証する気はないので悪しからず。

Python3とPyQT5でGUIアプリ作成 ~処理作成編~

だいぶ前回投稿から間が開いたがPyPT5のGUIアプリの処理を作成する。

今回はサンプルとしてボタンを押すと新規ウィンドウを立ち上げるアプリを作成してみる。

まずはQtCreatorで作成したファイルをコンパイルする。
※パスの命名がウンコですが気にしないで下しあ

コンパイル後のファイルを確認してみる
-mainwindow-

-newwindow-

生成されたコードを確認するとクラス名がQTCreatorで指定した名前にUi_が追加された形で
生成されている事がわかる。
また、今回はQtウィジェットアプリケーションをテンプレートに指定し、PushButtonをQtCreator
で配置している。そのため、Ui_MainWindowにpushButtonという名前のQPushButtonインスタンスが作成される。

PyQtはQtのラッパー関数となっているため、当然ながらQtのリファレンスにある関数は基本的に使用する事ができる。

以下、サンプルコード(長いので省略、見るときはクリック)

PyQtを使う際のポイントとしては、PyQtのリファレンスを見るのではなくて
Qtのリファレンスを確認する事。
基本的にPyQtはQtのラッパーなのでQtでできる事はだいたい出来るハズ。

また、今回新しいWindowを作成するトリガーとして使用したQPushButtonの関数
clickedはQtでシグナルと呼ばれている物となっている。
このシグナルは、各種操作系の関数clicked,pressed,toggled等に実装されており
connect関数を使って操作を検知する事ができる。

詳しいことは気が向いたら説明するかもしれませんが、今回はあくまで処理作成編なのでパス。
説明ページもあって需要なさそうやし

以上の3ファイルを同一フォルダに配置し、__init__.pyを実行することでGUIアプリケーションが起動します。

調査方法がわからないとどこ見たらいいのかさっぱりわからんので非常に面倒だが、いざわかってみると
いろいろ整備されてるお陰で結構いろんな物に応用が聞くようになるので、作る際にはQtリファレンスみながら
頑張ってみてください。

※今回のコードはgithubにおいて置く予定。

Python3とPyQT5でGUIアプリ作成 ~GUI画面作成編~

QtCreatorでのGUI画面作成

Qtをインストールすると自動的に入る”QtCreator”というアプリで
GUIを使って画面を作成することができる。
※昔はQtDesignerって名前でした

まずはじめに他のIDE同様にプロジェクトを作成する必要がある。プロジェクト作成画面

いろいろプロジェクトのタイプがありますが、今回はWtウィジェットアプリケーションを選択。
その後キットの選択、プロジェクトパス等の設定を行う(全部そのままOKを押し続けるだけでOK)とプロジェクトが作成される。
プロジェクト作成直後

プロジェクトが作成されるとヘッダーファイル(.hファイル)
メインプログラム(.cppファイル)、フォーム(.ui)が作成される。

GUI画面の作成はフォームを編集する事になる。また、PyQTを使う際にはこの
フォームファイルを.pyファイルに変換して使うことになり、その他のファイルは今回使用しない。

フォーム編集画面に行くためには、編集するファイルを選択する事で行ける。
編集画面にいくと各種ボタン、表などがパーツごとに表示されており、これらを
ドラッグアンドドロップで貼り付けていくことができる。
ui編集画面

編集が終わったら、uiファイルをpyファイルに変換する必要がある。
これは、PyQtで自動に導入されるpyuicを使用する。
(macユーザはパスを通してあげる必要あり,デフォルトパスは
多分コレ⇛/Library/Frameworks/Python.framework/Versions/3.4/bin)

pyuic ファイル名 -o 出力ファイル名
で変換することができる。今回の例だと
pyuic mainwindow.ui -o mainwindow.py
として変換する事になる。
これでPythonでQtを使う準備が完成。

次回は実際に処理を書いてみる

WDSでの別会社製品の無線ルータ連携:機器設定編

-前回までのあらすじ-
ASUS:RT-AC87U と PLANEX:FFP-1200DHP(FFP)を購入。
詳細は前回投稿記事を参照

※注意※
今回の設定では2つのルータを片方をルータモード、片方をAPモードで稼働。
同一ネットワークセグメント内にルータが2つ存在する構成になります。

①無線親機(ASUS:RT-AC87U)の設定
1.設定画面[192.168.1.1]へアクセス、IDとパスワードを聞かれるので入力
  ※マニュアルに書いてなかったのでググって調べたらでてきました。

2.インターネット設定
  インターネットへ接続するための各種設定を最初にやらされるので実行、基本的には
  無線設定とプロバイダからもらう資料でなんとかなると思う。
  ちなみに無線設定は後からでもふつうにいじれるのでそのあとの作業に支障ない程度に
  色々設定するといいと思う。

3.ルータ設定
  2.が完了すると↓のような画面がでる。必要であればこの段階で各種LAN設定を変更して使えるようにしておく。
  ASUS無線設定

②無線中継機(PLANEX:FFP-1200DHP)の設定
1.設定画面[192.168.111.1]へアクセス、こっちもIDとパスワードを聞かれるので入力。
  ※こっちも例のごとくマニュアルに書いてなかったのでググって調べる

2.同一の無線設定を入れる
Planex無線基本設定
↑の画面で親機で設定したWDSを設定するSSIDと同一の名前に変更する。(周波数帯に注意)
 更に、チャンネル幅、チャンネルも親機側の設定に合わせる。

3.TCP/IP設定の変更
Planex無線TCPIP設定
IPアドレス、サブネットマスク、デフォルトゲートウェイを再設定する。
なお、今回自分がやった構成(同一ネットワークセグメントに配置)を行ったため、親機側のIPアドレス(例:192.168.1.1)に
子機も合わせる形になってます(192.168.1.2のように設定した)
☆注意☆
デフォルトゲートウェイはAPモードで動く中継器側も自分自身(例でいうと192.168.1.2)を設定しないといけない。
いまいちこの辺の理屈はわかってなかったり。ちなみに親機側を最初にデフォルトゲートウェイに設定していたときには
親機側で無線に接続したMacbookProから中継器の先にあるマシンにssh接続ができなかった(pingも通るときと通らない時がある)
動作がめちゃめちゃなんでなんでこういう動作になるのかさっぱりわからんでした。知ってたら誰か教えて。
☆注意終わり☆

③WDS設定
 1.親機側で子機のmacアドレスを登録
   ↓の画面で子機のWDS設定欄にあるmacアドレスを入力、
   もしかしたら自動で入ってる場合があるかもしれないが
   その時はその設定を入れればいいんでないでしょうか。
ASUS無線WDS設定
   設定すると表(赤い四角のあるところ)に入力したmacアドレスが表示される。
※自分が最初に設定したときには5GHzのmacアドレスが表示されてませんでした、再起動したら表示されるようになったのでバグか仕様なのか・・・

 2.子機側で親機のmacアドレスを登録
   1.と同様に通信相手のmacアドレスを手動登録する。
Planex無線WDS設定
   こちらも入力後に表の中にmacアドレスが表示される。

以上で親機、および子機側で正常にネットワークが動作するようになるはず。
WDS設定は説明した通りmacアドレスを入力するだけなので、もしネットワークの動作がおかしいようだったらTCP/IP設定あたりを見直してみるといいかもしれない。
まぁ無線LANの動作がおかしいときに真っ先にやるべきはルータ再起動な気がするが・・・
ちなみに、片側再起動した後にネットワークの挙動がおかしくなる事があったので注意
親機再起動後、中継機再起動で治りました。

以上、動作報告および設定方法の公開でした。

WDSでの別会社製品の無線ルータ連携:機器選定編

すこぶる無線ルータの調子が悪くなってきた(Skullgirls対戦中にガクガク、たまに切れる)のでついに無線LANを変える決心をした。
調べてみたらこれまで使ってきたルータが実は家庭無いLAN環境のボトルネックに
なっていた事が判明(光回線なのにギガビットイーサじゃなかった^q^)

社会人になった事だし、SEだしここは本腰入れてセキュリティを考えた上でかつ安定性があり
高速な無線LAN環境を作ることを決意。

802.11ac製品もそこそこ出てきた事だし、ごつい無線ルータを探していたところ↓の製品を発見、(格好いいから)購入。

問題は中継機、現在はセットでついてきた中継器にギガビットスイッチをつけて 
WAN⇔無線ルータ⇔無線中継機⇔スイッチ⇔各種マシン
といった構成になっている。
昔はセット商品が結構あった(某B社のヒト曰く)らしいのだが、現在は分けて販売するようになったとのことなので別に探すことに、しかしいざ探してみると困った事になかなかいい製品がない。

そもそもの問題で↑のルータの性能が良すぎて釣り合う中継機がない、速度が1700MAXなのに代替の無線ルータ(親機)で最大800M程度がほとんど、中継機になると400M台まで落ち込んでしまう。
400Mじゃ今の環境と大差ないじゃないですかやだー、と思ってさらに探してみると中継機は実はイーサのLANケーブルが無いものがあったりあってもギガビットイーサじゃなかったりと
スペック厨には許せない構成である事がだんだんと判明。
(スイッチあるから関係ないじゃんという声は聞こえない)

最終手段として親機2台編成にする事を決意、いろいろ探した結果コストと性能から↓の製品に決定。

次回は実際にWDSでASUSの無線ルータを親、PLANEXの無線ルータを子機としての設定方法を解説

Python3とPyQT5でGUIアプリ作成 ~導入編~

前回に引き続きPyQt

Pythonの導入に関してはカット(公式サイトからインストールするだけなので)

Qtの導入—————————————————————————————————————
公式サイトのDownloadページから”Community”エディションを選択してDL
QtDownload
インストールはインストーラで行われるので適当にOKを押していれば導入完了
【よだん】

今回の記事かいてて気づいたけど前回の投稿でライセンスがLGPLじゃないからPyQtはうんぬんとか書いてたけど、実はQtも商用に使うと別ライセンスになるっぽい?

ライセンスはそのうち勉強したほうがよさそう・・・

——————————————————————————————————————————

PyQtの導入
こちらも基本的には公式サイトからDLしてくる。
PyQtは前提としてSIPというモジュールが必要になるので、先にそちらから実行。

SIPの導入
1.公式サイトからSIPをダウンロード
pyQtDownload
2.ダウンロードしたファイルを解凍し、configure.pyを実行
※注意※
Linuxライクなシステムでconfigure.pyの実行をなにも考えずに”python configure.py”と実行すると当然ながらパスが通っているpythonが実行される事になる。
得にmacユーザはデフォルトでpython2.7がプリインストールされているので、python3を使ってPyQtを使おうとするとまずここで躓く。
macはシステムでpythonを使っている様なので、Python2.7を削除とか力技はやめたほうが無難。
おとなしく”python3 configure.py”のような形で実行しておく。

PyQtの導入
これも基本的にはSIPと同じ流れなので割愛。
上記の公式ページから使うVersionのPyQtをダウンロードしてきて解凍してconfigure実行
pyQtDownload

次回からはPyQtの基本的な使い方の解説をしようかと思ってます

Python3とPyQT5でGUIアプリ作成

QTDesigner
Pythonの修行兼実用のために自分用家計簿アプリを開発してみた。
とりあえずプロトタイプが完成したので記事化。

【使ったもの】
・Python3.4
・Qt5
・PyQt5

【QtとPyQtに関して】
 C++のGUIフレームワーク、詳しく説明してるサイトは腐るほどあるので割愛。
 QtDesignerというGUIでのGUI制作ツールがある。コレが使いたいがために今回は
 これを採用。
 このQtをPythonで使用するためのフレームワークがPyQtじつはコレ以外にもPySideという
 フレームワークがある。できる事はそんなに変わりない様だがライセンスが微妙に違う。
 ※PyQtはプロプライエタリ・ソフトウェア+Fee
  PySideはLGPL
 今回は完全に私用で作成する上に多分そのうち改造し続けて作りなおす事を見据えてなんとなく
 PyQtを採用。

次回更新はPyQtの導入&使い方の予定。

Fedora20へのepgrecd導入ログ

録画はこれまでトルネをつかってやってきたが、PS3の容量と録画したもんを見るためにわざわざ
PS3起動→アンプ切り替えが面倒くさすぎたので録画サーバーを立てる事を決意。ただしサーバー機は
現在Linux(Fedora20)のみのため、必然的に機器が狭まってた事と導入ログが結構多い下記製品の導入する事に。

結果としては導入できたけどいろいろと苦しめられたのでここに作業記録を保存。

1インストール、稼働確認
2いろいろ作業(間欠運用を目指して)
3不調(番組表取得できなくなる)
4不調解決(イマココ)