programming introduction

Programming seminar for architectural design and research

github

Goal

  • pythonでのオブジェクト指向プログラミングを理解する
  • 自分の開発環境を持つ
  • 独学するためのはじめの一歩

languages

library

  • pip
  • numpy
  • scipy
  • networkx
  • matplotlib
  • ipython

version control

  • github
  • bitbucket
  • dropbox

assignment

150724までのassignment宿題
ファイル名は150724assignment_[自分の名前].py
Github
1)アカウントを作る。githubソフトもインストール
2)アカウントを安田に知らせる。Githubの門内研organizationにinviteします
3)inviteをメールで確認して承認する。
4)slytherin_2015のrepositoryがあるので,それを自分の作業環境にcloneする。
5)slytherin_2015/150724_assignment/[自分の名前]フォルダの中に自分の宿題ファイルを置く。(このファイルをコピーするとよい)
6)宿題が途中でも完了しても,とりあえずcommitしてsync(push)しておく。
Python
###かかった時間を関数の中にコメント(#)で記しておいてください。
1)(例)func1(x) = 2x + 1 の関数(名前はfunc1)
2)(復習)func2(x, y) = x^2 + y^2 の関数(名前はfunc2)
3)(復習)func3(n) = ‘偶数です’(nが偶数の場合)・’奇数です’(nが奇数の場合)
4)(復習)func4(n) = (n番目のフィボナッチ数)
5)(演習)func5(n) = (n番目の素数)#1番目の素数は2とする
6)(演習)func6 何か面白い関数を作る。引数(ひきすうargument:f()の()の中のパラメータ)はなんでも良い。

やったこと
string, integer, float
for, while, if
def function(hogehoge):
hogefuga
return fugafuga
list
range()
わからなければわかりそうな人に聴いてみる

reference

pyqtの中でnetworkxを表示する方法(pyplotなしで)

pyqtでnetworkxによるネットワーク図を表示したい。

しかしpyqtとmatplotlib.pyplotは一緒に使うことは複雑。
(普通はmatplotlib.backends.backend_qt5agg的なものをつかう)

どうやるか→How to draw my graphs with networkX without pyplot.

一部分だけ書くとこんな感じ

self.axes.clear()
 G = nx.Graph()
 G.add_edges_from([(1,2), (3,4), (1,3), (2,4), (1,4), (4,5)])
 nx.draw(G, ax=self.axes)
 self.canvas.draw()

nx.draw()の引数はチェックしてなかった。

tex環境導入

tex未経験者がtexを導入したい。

エディタ

まずエディタとしてtexstudioというものがあり,スクリーンショットを見る限り,tex未経験者でもつかうことができそうだということで,導入開始。
ちなみに,エディタにはtexMakerというのもあるが,そこから派生したのがtexStudioで,一緒にgoogle検索したらtexStudioの方が上位に出たので選択。

インストール

とりあえずhomebrewで texstudioをインストール。
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?TeXstudio
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?TeXstudio%2F%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

$ brew install caskroom/cask/brew-cask
$ brew cask install texstudio

 

tex環境

でもエディタだけでは機能しないので,tex環境をインストール。
そこでMacTexというもろもろ含まれた便利なパッケージがあることを知る。
mactexはchromeではうまくDLできなくて,safariでやる必要あった。
https://tug.org/mactex/
http://tandoori.hatenablog.com/entry/20130802/1375451791
http://qiita.com/enokawa/items/3e12c419ca6ded097e0f

tex環境の設定

http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?cmd=read&page=TeXstudio%2F%E8%A8%AD%E5%AE%9A%2FOS%20X
英語の変換はできたけど,日本語がうまくいかなかった。
→http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?TeXstudio%2F%E8%A8%AD%E5%AE%9A
ちゃんと設定したらできた。dvi-pdfチェーンなど。

他参考

http://kamiwo-koete.hatenablog.jp/entry/2014/12/30/101759
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?TeXstudio
http://toggtc.hatenablog.com/entry/2012/02/20/230500

pyQt wxPython PySide – pythonのGUIにはどちらを導入すれば良いか

PyQt wxPython PySide
64bit対応 ok ok ok
python3対応 ok 開発者向け? ok
matplotlib対応 default できそう ok
ライセンス GPL wxWindowsライセンス LGPL

ということで,PySideが良さそう?PySideが最も歴史が浅いらしいのでドキュメントなども少ないみたいだが,活発に開発されているらしい。。なんとなくググった感じだと。

参考

http://python.matrix.jp/2013/02/10/pyside1.html

など

2015 Apr. lifelog

 

4月の間は建築家・難波和彦氏を真似て,毎日の行動をブログとして記述してみました。
このデータを用いて,簡単にグラフに表してみました。目的は(知的)生産性(=作業時間*集中度?)を増やすことかと思いますが,来月(5月)の指針を考えてみます。

ライフログを分析するモチベーションは『データの見えざる手』の影響。

上図の折れ線は起床時刻と就寝時刻,棒グラフは作業時間,起きていた時間,睡眠時間(前日から当日)を意味します。4月7日からつけ始めて30日までの24日間の記録です。
他にも「運動したかどうか」「入浴(シャワー除く)したかどうか」「桂キャンパスに行ったかどうか」「飲酒したかどうか」「(どこの)カフェに行ったか」「(どこの)ラーメンにいったか」をきろくしています。

まず,起床・就寝時刻を見てみると,その日のうちに寝た日が4月27日の一日だけで,徹夜をした19日夜(20日朝)を除いて,起床時刻は早くても7時。平均8:58。社会人に怒られそうだが,定時がない特権。7時に起きてるのは研究室会議やレクチャーの時である。寝る時間が遅くなるのは,作業して切りが悪いこともあれば,締め切りのために頑張ってることもあれば,のんびりしてることもある。むしろ疲れないと早く寝ていない。つかれているときは前日の起床時間が早いのがよいか遅いのがよいかは作業時間などと比べてみないとわからないので,ここでは「早起きは三文の得」などどは言わないこととします。三文の得かどうかは,検定してみないとわからないのです。

rising time bed time
mean 8:58 26:25
median 9:00 26:30
standard deviation 1:50 1:54
coefficient of variation 0.206 0.072

起床時刻より就寝時刻のほうがバラバラな気がしましたが,変動係数を見てみるとその逆。というか,正規分布ではないのかもしれない。度数分布はまた明日見てみよう。

睡眠時間,作業時間,活動時間(=起きている時間)の基本統計量は以下の表。

summary statistics previous_sleep_hours awake_hours work_hours
mean 6.632 17.451 5.678
median 6.250 17.375 5.000
standard deviation 2.213 2.048 2.590
coefficient of variation 0.334 0.117 0.455
maximum 11 22.667 11.000
minimum 0 14.5 0(不明分)

睡眠時間より作業時間が短いのがなんとも悲しいです。会議とか授業とか読書を含めてないにしても,もう少しふやしたいものですね。そして,活動時間の変動係数が0.117と小さく,バラツキが少ないことがわかります。もし活動時間が完全に等しいとしたら,起きていられる時間には限りがある(時間がたてば眠くなる)かつ,ある程度時間が経つまで眠くならないのではないかという仮説が立ちます。睡眠時間と活動時間には相関がないのでしょうか。もしくは,長時間寝た後は長時間起きていられるのでしょうか。

起きる前の睡眠時間(pre_sleep_time)と活動後の睡眠時間(following_sleep_time)の散布図をとりあえず出してみました。

followingSleep-awake_2015-04 preSleep-awake_2015-04

相関はないですね。(寄与率R2もどちらも0.1以下です)
ちなみにfollowing…とpreviousは弱い相関(R2=0.256..)があって,よく寝た次の日はあんまりねてない,という感じです。当然といえば当然ですが。

起きる・寝るというのは,深部体温リズムとメラトニンリズムとに関係していて,これをうまくコントロールすることが重要らしいので,時間より波をコントロールするほうが正しいのかもしれません。

 

そこで,前夜睡眠時間と今夜睡眠時間の合計をみてみると平均は13.139時間で変動係数が0.172と睡眠時間よりさらにばらつきがすくなくなっていることがわかります。つまり,頑張って徹夜しても次の日にたくさんねてしまうというわけですね。たしかに,徹夜をした4/20前後はよくねています。でも19日ー21日にかけては作業時間も多くなっていることに注意です。

では作業時間work hoursとの関係をプロットしてみると,

work_2015-04

唯一ちょっとだけ相関あるのが,前日の睡眠時間。たくさん寝たほうが作業時間が増えるとのこと。たしかに集中力が睡眠不足だと落ちるのは実感しています。また,起きている時間が長くても作業時間が増えていないのです。

今回はここまでにして,次回は起床・就寝時刻と各累積時間の関係や,スポーツ,入浴,風呂との関係をみていきたいと思います。

また,5月はこれに加えて,「その日の満足度」「食事時刻」を計測すべきと思います。飲酒も量が大事でしょう。

このようなライフログを簡単に記録できるアプリなどあれば良いですね。
知り合いは昔googleフォームを使って家計簿をつけていたらしいですが。

apple watchとかで出ないかなー

 

 

 

 

150429

水曜日,昭和の日。9時起床。7時間睡眠。

よる飲みのお誘いがあったが,今日はコーディングする日ということでパス。

昨日作ったハッシュドビーフを朝食にして,weekenders blendを淹れて作業。

simpy以外にpythonで使えるライブラリがないかリサーチしてみる。開発の歴史や最終更新を見る限りsimpyが良さそうだが,simpyがdiscrete event simulationを目的としているので,自分の目的と合うかまだわからないが,とりあえずインストールする。pipが動かなかったりしたが,調べてすぐ解決。

チュートリアルコピペして動かしたりする。

昼飯は昨日スーパーで買った賞味期限切れおつとめ品の半額ラーメンを茹でる。

15時ごろ眠くなってきたので,覚ましに外出する。何か新しいコーヒーデバイスを入手したく,北白川のworld coffeeに行く。次に出町輸入食品まで歩き,ここで調子が良くなってきたので,angerまでジョギングする。ここでコーノ式名門フィルターを購入。850円。

本読みながら3番で帰る。

帰宅後,公園までまた短距離のトレーニングしにいく。ジャンピングが一晩寝たらできるようになったのが嬉しかったが,まだぎこちない感じではある。

意外と筋肉痛で,作業すこしするが疲れたので,夜のfab academyに備えて小一時間寝る。起きて晩飯くって本日3杯目のコーヒーをコーノ式で淹れる。コーノ式フィルターの重さがちょうど100gだったことに感動した。

22時前にfab academy@吉田ファブに行く。今日はnetworking & communicationsで分野外でさっぱりであった。

2時前に帰宅して,作業しようとするが集中できない。

4時ごろ入眠。作業時間8時間

 

sublime text 3でインデントのスペースをタブに置換する

sublime textでpythonで書いてますが,インデントがタブとスペースが混ざっているとエラーが起きます。

スクリーンショット 2015-04-30 14.22.19

 

これを解決するには,

View→Indentation→Convert Indentation to Tabs

を使います。

また,これをショートカットにするには,Default (OSX).sublime-keymap fileに

[
 { "keys": ["option+c"], "command": "unexpand_tabs", "args" : {"set_translate_tabs" : true} }
]

と書き込みます。

参考:
http://qiita.com/s0hno/items/6d39ca6ee29f4ecf8036
https://www.sublimetext.com/forum/viewtopic.php?f=4&t=2084

nervous system, pleats

nervous system
http://n-e-r-v-o-u-s.com/blog/?p=6490

2011年学部4回生の時,open source hardwareについて調べていた時に見つけました。そのときはたしかprocessingで指輪をparametric designしてユーザーが好きな大きさ,形を決定して発注すると送られてくる,というシステムだったと思いますが,いまいろいろなものが出てますね。
とくにヒダ。

平田晃久氏がヒダで建築を作ろうとしているけれども,プロダクトだとすぐにプリントできるから早いですね。
http://www.hao.nu

pip – importerror: cannot import name httpshandler

今朝早速simpy始めようとおもってpip install simpyやると,まずpipがエラー。道具が埃かぶってる感じですね。プログラミングしてないのがばれます。

pipを再インストール↓

http://qiita.com/who_you_me/items/831d62f396e6d66dda66

したが,だめで,エラーを調べると,すぐにstackoverflowに解決策があった。

ちなみにエラーは

importerror: cannot import name httpshandler

というもの。

http://stackoverflow.com/questions/25372911/python-pip-error-on-osx

これで解決。5分。