Posts by dodo5522

Python製WebアプリケーションフレームワークFlaskが思っていたよりパワフルで深い。

せっかくPython始めたのでWebアプリの一つでも作ってみたいと思い、この本を読みながらFlaskの使い方を勉強していたんですが、正直扱いづらいなぁ・・・と感じていました。 Pythonプロフェッショナルプログラミング 第2版posted with カエレバ株式会社ビープラウド 秀和システム 2015-05-21 Amazon楽天市場 ちょっと規模が大きくなると、Viewを機能ごとに複数のソースファイルに分けたり、機能ごとにテストを組みたくなってきて。 デコレータで手軽にroute設定できるのは利点なんですが、このappインスタンスを複数ファイルから参照するのは何か嫌だし。 from flask import Flask app = Flask("hoge") @app.route('/users/') def show_users(page): users = User.query.all() return render_template('users.html', users=users) if __name__ = "__main__": app.run(host="0.0.0.0", port=80)…

春になって活動開始したキウイ。自動水やり機の出番が近い?

冬は全て落葉してしまい、それを見ていた嫁は完全に諦めていたという、庭の鉢に植えたキウイ。 たぶん大丈夫なはずと諦めずに水やりと、時々追肥していた自分。 それに応えるかのように、4月になったとたんに活動を再開。 葉が開きました! そして、その葉をさっそくむしり取ろうとする1歳の娘。ヤメロ。 キウイには雌と雄があるので、実を収穫するにはそれぞれ1本育てる必要があります。 こちらが雌。 で、雄。 今の時点では見分けがつかないので、もしかすると逆かも。 花粉が出て来そうな雰囲気で、見るだけで鼻がムズムズしてくる…。 鉢植えで育てているので、水不足が心配なところ。 数年前に作った自動水やり機の出番が近いかもしれない…。 庭に植えたキウイが活動開始してきたので、いよいよコレの出番かな…?家庭菜園の土の乾燥状態等をリモート監視する(将来的には自動水まき機能付加の予定) on @Qiita https://t.co/F5BtnBpoor— takashi ando (@takashi7ando) 2017年4月15日…

遊びながらプログラミングに必要な考え方が身につくロボット玩具、Cubettoが我が家に来ました。

遊ぶだけ遊んで、すっかり遅くなってしまったロボット玩具Cubettoレポート。 KickstarterにCubettoプロジェクトが公開された2016年3月に、思わずポチってしまいました。 その後、たった半年程度で、工場で量産開始した旨の連絡があり、自分の支援金が役に立てたのかと思うと、感慨深かったです。 木製ロボット玩具、Cubettoが工場生産開始! どこで売ってる? いつのまにかプリモトイズ日本販売総代理店までできてました。勢いあるな…。 日本語対応した本家HPで普通に購入できます。 もちろん日本円で、29,600円(税込31,968円)となっています。 春夏号ベビモで紹介されたCubetto さて、そんな希少価値感があったCubettoですが、今では普通に購入できるようです。 さすがにヨドバシで買うような手軽さではないようですが。 というのも、春夏号ベビモで紹介されているのです。 Baby-mo(ベビモ) 2017年 04 月春夏号 [雑誌][Kindle版]posted with ヨメレバBaby-mo編集部 主婦の友社 2017-03-15 Amazon[書籍版] そのページがこちら。 正直3歳から学べるというのは無理がある気もしますが…4歳のウチの子でもちょっと遊び方の理解が怪しいので。 …教え方が悪いという可能性も高いですが。 Cubettoと戯れる我が家の4歳児 同梱されているCubetto専用マップを走らせるのもいいんですが、自分で好きな地図を作るのも良いです。 専用のブロックを操作盤にはめ込んで、ロボットの動きをプログラミングしていきます。 こちらの動画は、同梱されていたCubetto専用マップで実際に動かしてみた様子。 Cubettoの活用法 2020年から、…

賃貸アパートでオフグリッドしよう。チャージコントローラの選びかた。

こちらで紹介している、賃貸アパートの庭に作ったオフグリッドシステム。 オフグリッドシステム制作にあたって、重要な部品は以下の4点です。 太陽光パネル チャージコントローラ 蓄電池 直流->交流インバータ または直流->直流コンバータ チャージコントローラとは? その中でも中核を担うチャージコントーラという機器。 太陽光パネルが発電した電力を効率的に充電し、パネル側の高い電圧を電流に変換してより効率的に働き、蓄電池が満充電近くになれば流す電流を弱める、などの制御をしてくれる、大変ありがたいものです。 ググるとわかりますが、結構な種類が販売されているので、どれにするかとても悩みます。 Tristar社製TS-MPPT-60という製品 ソーラーチャージコントローラー TS-MPPT-60 Morningstar社 桐生保証有 日本語取扱い説明書付きposted with カエレバ Morningstar社 Amazon楽天市場 我が家の場合は Ethernet経由で発電状況などの情報を取得できるか? が重要だったので、選択肢はとても少ないんですが、それを抜きにしてもTS-MPPTシリーズが謳う97%という高い充電効率は魅力でした。 個人でも手が出る価格帯の太陽光チャージコントローラの中で、この情報取得機能について明記している機種って、意外と少ないんですよね…。 自分で電流電圧センサー付けてゴリゴリ作る選択肢も、あるにはあるんですが、正直めんどくさい。 HTTP経由で、さらに贅沢言えば何かしらのAPIを介して情報取得できるとなお良し。 という厳しい条件をクリアしたチャージコントローラが、TS-MPPT-60です。 日本で買うと、為替レートや中間マージンのせいか、10万は軽く超えちゃうんですが、US Amazonで直接買うと$539です。意外と安い。 どんな情報を見ることができるか?…

MNIST手書き文字機械学習。TensorFlowチュートリアルの前に、scikit-learnのSVMで復習する。その2。

前回惨敗の正答率だった、SVMによるMNIST手書き文字分類。 まずはscikit-learn付属のデータセットで復習してみることにする。 scikit-learn付属の手書き文字データセットは解像度がひどい こんな感じで試してみると、 from sklearn.datasets import load_digits from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score from sklearn.svm import SVC d = load_digits() X_train, X_test, y_train, y_test = train_test_split(d.data, d.target, train_size=0.8) svc = SVC() f…

PHP開発環境を整備しとこうと思ったら、anyenv最高だと思ったけど、OSX環境でうまくいかず泣きをみている件。

知っとくと後々便利そうだと思い、最近いじり始めたPHP。 ブラウザで手軽に実行できるのはいいのだけど、デバッガないのかな?とググってみたら、やっぱりありました。 phpにもデバッガが同梱されていたとは知らなんだ。PHP 5.6 に採用されるデバッガ phpdbg を使ってみた https://t.co/xtMIFKtR4U @shin1x1さんから— takashi ando (@takashi7ando) 2017年2月14日 PHP5.6以降は実行環境に同梱されているんですね。 ということで、OSX環境といえばbrewで・・・ とコマンド打つ前に立ち止まり、そういえばpyenvやrbenv、ndenvがあるくらいならphpenvもあるんじゃ? と思ってコマンド打ってみると、やっぱりありました。 anyenv便利。 bash-3.2$ anyenv install -l Available **envs: Renv crenv denv erlenv exenv goenv hsenv jenv luaenv ndenv nenv nodenv phpenv <-…

MNIST手書き文字機械学習。TensorFlowチュートリアルの前に、scikit-learnのSVMで復習する。

TensorFlowを手持ちのMacにインストールしてチュートリアルを写経...する前に、まずは復習がてらscikit-learnのSVMを使って分類してみようと思います。 久々ですっかり忘れてきているもので。 MNIST手書き文字イメージデータのダウンロード THE MNIST DATABASEからトレーニング用とテスト用の手書きイメージデータをダウンロードしましょう。 以下4つです。 train-images-idx3-ubyte.gz: training set images (9912422 bytes) train-labels-idx1-ubyte.gz: training set labels (28881 bytes) t10k-images-idx3-ubyte.gz: test set images (1648877 bytes) t10k-labels-idx1-ubyte.gz: test set labels (4542 bytes) 手で落としてgunzipしてもいいんですが、せっかくなのでpythonで書いてみます。 MNIST手書きイメージデータを扱うためだけのクラス ダウンロードしてgzip伸長する関数を書くと、こうなります。 …最初メモリを節約しようとgeneratorで書いたんですが、データ数が多すぎて処理が重くなったのでやめました^^; 代わりに、流行り?のasyncioを使います。 MNIST手書き文字イメージデータのDataFrame化 先ほどのクラスを使えば、手書き文字イメージデータをDataFrame化するのは簡単です。 from mnist_dl import…

matplotlibをOSXのpyenv仮想環境下で使用するには。

matplotlibを使いたかっただけなのに、まさかトラブるとは思っていませんでした…。 ちょと前まで普通に使えていたはずなのですが、そういえばSSD換装後にOSXを再インストールして以降、使った覚えがない。 pyenv環境下でmatplotlibを使用するためには色々と下準備が必要ということを今更知り、とりあえず解決したので、その備忘録です。 import matplotlibでいきなり警告 pip install matplotlibは何事もなく成功するのですが、import matplotlibでおもむろに警告が出力されます。 が、これは問題ありません。 フォントのキャッシュを作ってるのでしばし待てと。 OSX再インストール前にも表示されたかどうかは… うーん、記憶にない。 In [11]: import matplotlib.pyplot as plt /Users/takashi/.anyenv/envs/pyenv/versions/3.5.1/lib/python3.5/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list.…

Python asyncioのソースを眺めていて、すっかり忘れていた '*' (アスタリスク) 1個が示す意味。

これです。 __init__の引数に '*' (アスタリスク) が1個、ポツンとありますよね。 class Queue: """A queue, useful for coordinating producer and consumer coroutines. ... """ def __init__(self, maxsize=0, *, loop=None): if loop is None: self._loop = events.get_event_loop() else: self._loop = loop self._maxsize = maxsize # Futures. self._getters = collections.deque() # Futures. self._putters = collections.deque() self._unfinished_…

買ってはいけない太陽光チャージコントローラ。

12V/24Vを自動認識してくれる上、驚くほど安いので試しに買ってみたのが、このチャージコントローラ。 Anself 10A12V/24V ソーラーパネル用 チャージコントローラー オートレギュレータ バッテリーシステム 過充電 保護 LCDディスプレイposted with カエレバ Anself Amazonで調べる楽天市場で調べる 蓄電池の電圧をデジタル表示してくれるインジケータ付きなのはとても便利で、実際、とらんじしょん昭島主催のオフグリッド映画上映会ではとても重宝しました。 が、普段の蓄電に使用するには不向きであることが判明。 きっかけは車のダッシュボードに設置した蓄電システムの、曇天時の状況。 ちょっと信じがたい事態が起きたのでした…。 このチャージコントローラが持つ問題点 チャージコントローラ自体の電力消費がデカすぎる 曇天続きだと発電できるほどの太陽光が降り注いでくれないので、チャージコントローラ自身と、負荷側(スマホ充電器とかですね)が消費するだけになってしまいます。 チャージコントローラには過放電防止機能が付いているんですが、その機能でカットできるのは負荷側のみで、自分自身の消費電力はカットしようがありません。 ので、何が起きるかというと、チャージコントローラが蓄電池の容量全て使い切ってしまう!のです。 蓄電池の寿命を延ばすため、通常は容量の半分程度に留めるべきなのに、本当に全部使い切ってしまうんですよね…。 曇天が5日ほど続いたある日見ると、チャージコントローラのインジケータが6[V]程度を示していました。 蓄電池容量は24[V] 24[Ah]。 ほぼ全て使い切ったとみなして、チャージコントローラ自体の消費電流量がどの程度なのか、計算して見ると、以下の通りです。…