12

pythonその4 環境周りとdjangoインストール

ファイルの先頭行に何を書くのか? 直接実行したい時は以下を書くと良い。 具体的には直接実行しないクラスを書いたファイルには不要。 デフォルトエンコーディングは書いておいた方が良さそう。 rubyでのrbenvみたいなのは? わたしゃさくらのvpsにubuntu 14.04.02 LTSを入れて学習中。 なのですが、既に以下の状態。ここから実行環境の切り替えとかできるんだろうか… rubyのrbenvみたいなのは、direnvかpyenvらしい。virtualenvはその前みたい。誰かその辺の歴史みたいなのとかまとめてくれんかな。direnvはpythonもrubyもまとめて面倒みまっせ的なものみたいだけど、既にrbenvは導入済だし、今回はpyenvでやってみることにする。他の人のやり方を見つつ、以前にrbenv入れたのをhistoryで推測しながら以下を実行した。 なお、参考にさせていただいたのは以下でございます m(. .)m Ubuntu 12.04でpyenvを利用して速攻でPython3.4 + Nginx + uWSGI + FlaskなWebアプリケーション実行環境を作る (Qiita) Ubuntuにpyenvを用いてpythn環境を構築しました。(たくのこWeb) /usr/binにインストールされているpythonは置いといて、version 3.4.3をインストール。インストール前にdjangoとversionの整合性は確認した。インストールにはそこそこ時間かかる。何やらWARNINGが出てるが、気にしないったら気にしない。   rubyでいうところのgem(パッケージ管理)はpipだそうだ。pipは実行環境を先ほどインストールした3.4.3に切り替えたら入ってた。なのでdjangoをインストール。公式にある通りコマンド打ってみる。  

10

pythonその3 ユニットテスト

pythonでユニットテスト。unittestという機能が標準で入ってるらしい。しかし、importとfrom x import yはどういう順序で書くのだろう?とりあえずcのincludeと同じと考えて、以下で書いてみる。 ユニットテストをこさえた時点でこんな感じになった。 calc_test.py 自作のCalcクラスのadd()は、引数としてxとyを取る。xとyは整数型を期待してるんだけど、検証は全くやってないんで、引数を検証する処理を追加して、テストケースを追加で書いたのが以下。 引数チェック追加 データ型の変換については 細かすぎて伝わりにくい、Pythonの本当の落とし穴10選(私の小岩ホッチキス)、例外のテストのやり方はPython – unittestのassertRaisesの使い方(ぼっち勉強会)を参考にさせていただきました。 さらに追加テスト。個々の値の検証はできたとして、最大値+1したらどうなるか、int型として超えちゃうから実行時例外が発生するかなと思ったけど、できちゃった…返り値のデータ型がintじゃなくてlongで帰ったんだろうか? 実行結果。

10

minecraftのイベント

行ってきた。http://www.mcedu.jp/ こども的には面白かったらしい。マルチプレイはこの時が初めてだったので、楽しかったらしい。早稲田の構内だし、他のこどももいるしで、写真が撮れなくて残念。   自分としては相互乗り入れのおかげだが、早稲田が電車一本で行けることという事実にびっくり。それとガラス越しにサーバルームが見れたのがテンション上がった。機種やらメーカやら書くとまずいかもしれないので、とにかくあったとだけ。こどもを待ってたのだけど、勝手にやってたので、自分もマイクラサーバ構築のセミナーに参加すれば良かった。   あとスピーカーセッションで小学校の校長先生が来られていて、教育は最先端の場ではなくなった。とか仰ってましたが、ぼくとしては、学校は基礎(読み書きそろばん)を鍛える場で良いんじゃなかなぁと思う次第です。天才肌の人もいるとは思うけど、応用をやるためにはやっぱり基礎がいるんじゃないんでしょうか?

09

c++のコードを自動生成する

codegen.sh c++のコードを自動生成するシェルスクリプト。 使い方の例は以下。 まず、~/binとかにcodegen.shを置いて とすると、personディレクトリができる。中身を見てみると、 Personクラスとmain()があるmain.cppとMakefileが出来上がり。 これでmakeするとmainって実行可能プログラムが出来る。 あとはPersonクラスにsay()だのeat()だのを追加していくですかね。 仕事でサンプルプログラムを書くのに、なんでもmainに突っ込んで確認するのもしょっぱいので、こんなもん作ってみた。  

07

pythonその2

def add(x,y)はダメ。以下のエラーが。。。 typeError: add() takes exactly 2 arguments (3 given) def add(self, x, y)ならオッケー。selfが必須なのか?!ネットで調べると、確かにそんなこと書いてある。そして他言語から来た人にはキモいとも書かれている… calc.py ネットで例を見てたら、selfを書いていないのもある。どっちが本当?と思って試してたらclassのメソッドはselfが必要だけど、ただのメソッドなら要らないみたいで、以下はオッケーだった。 別のファイルからクラスをnewしてメソッドを呼び出すというのもやってみた。from ファイル名 import クラス名と書くらしい。unit testはまた今度。  

26

python

rubyできればいいかなと思ってたけど、そんなにrubyも究めることもないだろうし、pythonもやってみようと思った。ということで、githubにお勉強用のリポジトリをこさえた。assemblaに置いてたコードもgithubにまとめようかなー。 昔触った事はあるはずだが、class定義して呼び出すだけで悪戦苦闘… メソッドの後ろに”():”が必要だったり、引数なしの場合でも”()”じゃなくて”(self)”としないと、自分の作ったexecute()メソッドがこんなエラーになったり。前途多難ですな。 TypeError: execute() takes no arguments (1 given)  

12

こどもが生まれた

バルサ対ユベントスの試合を見ようと思って1時から起きてて、4時になりそうになった時にヨメ様が起きてきて、「陣痛の間隔がはえー。もう生まれる思う。」とのこと。 イニエスタのアシストを見てから病院に連れて行った。 その日はすごい眠かったけど、無事生まれてくれて何よりでした。  

13

焼き肉牛仙

月に1度くらいはぜいたくな外食がしたい!! かつ、珍しくおかーさんが「肉が食べたい」と言った瞬間を逃さず、3連休はどこにも行かないし、焼き肉を食べに行こうとなり、牛仙にいった。 ここに住み、はや6年。前から行って見たかったのだが、ようやく行くことができた。 おかーさんは脂ののったとろけるようなお肉はあまり好きではないので、上位ランクのお肉は頼まなかったが、なんだか牛肉の味が濃い?甘い気がする。 どれもおいしかったが、特にホルモンがおいしかったように思う。写真撮ってないけど。   塩タン。厚みはあるのにコリコリしすぎず、こどもおいしいと言ってた。   ロース、ハラミ、奥がカルビ。ロースはこの後追加でもう一人前した(^^)  

09

誕生日

こどもの誕生日だった。 ケーキにろうそくを付けるときに、マッチが短いが短いせいかヨメさん焦ってた。 どうにか全部のろうそくに火を灯し、マッチの火を消そうと息を吹きかけたとき、向きを変えずに吹いたので、せっかく火をつけたローソクを消した。たった一本残して… 爆笑だった。

05

markdownパーサを作った

ブログとは別のかたちで、今まで書いたメモをネットに載せたく、でもWikiだとメジャーなのはphp製なので中身が分からなかったり、ネット上で書くのがなんとなくおっくうだったり、最近fcgiの勉強したけど、使い道がなかったり、他の人と変わったことがして見たかったりで、fcgiで動くc++製のmarkdownパーサを書いてみた。 notes wikiを書くのはおっくうだけど、結局ローカルに持ってるノートもmarkdown形式に書き直す必要があったり…でも、そこはkobitoで書いて、サーバにアップロードしようかと思っている。