02

Mac Bookのアップデート

El Capitanにアップデートした。 前のYosemiteの時はbrewが動かないとかあったけど、今回はすんなりできた。他になんかあんのかな?と思ってxcodeを動かしてみたけど、一応動いた。何も作ってないので、あまり確認のしようがなかった。 Eclipseはjavaのバージョンがどうこう言われて動かなかった。たぶん大分前からそうだったんだろうな…

02

vagrantでdjangoでユーザ認証

ユーザ認証して、認証後のユーザ利用まで動作できたのでまとめる。 できたけど、フレームワークが提供してくれてるがいろいろ面倒くさい。 djangoって結構自前で作る部分が多いかと思うので、フレームワークがやってくれるのか、そこは自前なの?!、とかが分からなくてしんどかった。 Djangoのユーザ認証まとめ | c-bata web とはいえユーザ認証する部分は上記サイトをまるまる参考にさせていただきました。 せいぜいurls.pyの書き方が違うくらい。 ユーザ認証を別のアプリケーションから利用するところが今回の記事のメインなんだけど、モデルを起こすところも、c-bata webさんの記事を参考にさせてもらいました。しかし、差分だけ書くと作業の流れがわかりにくいので丸々書く。 アプリケーションをこさえる。todoを残すだけのアプリ。 $ python manage.py startapp todo setting.pyのINSTALLED_APPSにtodoを追加。 +++ b/django_auth/settings.py @@ -38,6 +38,7 @@ INSTALLED_APPS = ( ‘django.contrib.messages’, ‘django.contrib.staticfiles’, ‘account’, + ‘todo’, ) urls.pyにルーティングを追加。 +++ b/django_auth/urls.py @@ -23,5 +23,6 @@ urlpatterns = [ url(r’^logout/$’, ‘django.contrib.auth.views.logout’, {‘template_name’: ‘account/logout.html’}), url(r’^account/’, include(‘account.urls’, namespace=’account’)), + url(r’^todo/’, include(‘todo.urls’)), ] モデルを定義。外部キーとしてdjangoのUserモデルを指定。 admin.py。 todo/urls.pyはフレームワーク生成ではなく、自分で作成。表示のみ。更新はadminからやる。 views.py。何をこんなにimportしなきゃいかんのか分かってないけど、やる。しょうがない。まだdjangoはチュートリアルと、これしか作ってないし。 テンプレートの追加。ディレクトリ構成が気持ち悪いけど、他の書き方がよく分からない。 % mkdir -p todo/templates/todo/ % touch todo/templates/todo/index.html あとはDBを更新すれば出来上がり。 % python manage.py makemigrations % python manage.py migrate 出来上がったのはこれ。ログイン後にhttp://127.0.0.1:8080/todoとかでアクセスすれば、adminで追加したメモがUser毎に表示されるハズ。 https://github.com/vottie/django_auth 苦労したのはtodoのviews.pyでどうやればUserを利用できるか、だった。 結果Userモデルをimportしてあげることで解決できた。 もう1点はListViewでどうやればログインしたUserがGETできるかだったが、ドキュメントをしらみつぶしに読んでいったらUserはRequestオブジェクトに入っていることが分かって、ListViewのselfはrequestオブジェクトを含むことが分かって解決した。 最後に今回の環境は以下。 vagrant ubuntu14.04 python 3.4.3(pyevn) django 1.8

10

vagrantのport forward

djangoをvagrantにインストールしたのだけれど、runserverしてもホスト(この場合はmac)側のブラウザで管理画面が見えない。ポートフォワードの設定がおかしくなってる。 具体的にはguest:8000, host:28000で定義しているにもかかわらず、ホスト側からはlocalhost:18000でアクセスできてしまう。 ポートフォワードせずにvm上でw3mでアクセスするとguestのポートは8000であることは確実。 なぜにポートフォワードがトチ狂うのか?と思ってたが、vagrantのgunicornの設定で8000番を使ってて、かつ18000番にポートフォワードしてた。。。 vagrantでは28000番を使って、ホスト側は28001番のフォワード設定で解決した。と思いきや、ぜんぜんつながらない。 tcpdumpまでひっぱりだして3,4晩ウンウン唸ってたけど、”django vagrant”でググったら一発で解決した。   5分でできるVagrantでDjangoの環境構築 | qiita そういえばrailsか何かでハマったような気もする…  

04

gunicornの設定

djangoで何か作って運用するための準備としてgunicornを使ってみた。 gunicorn トップページには簡単に動きまっせみたいなことを書いているが、3晩はかかった。仕事だとしたらば1日潰れたぐらい時間がかかった。   まずはvagrantで動いてるubuntu 14.04にインストール   つづいてサンプルアプリの写経 ~/src/gunicorn/myapp/myapp.py   動かしてみると、おー動く。 でもブラウザからは動作はしない。vagrantのポートフォワードの設定をしてもダメ。webサーバ、うちの場合はnginxの設定も必要らしい。 gunicornのインストール | i2bsの日記 なんとなく真似てgunicornのグループを作成して、vagrantユーザを所属させてみたが、結局confの設定は正しく読めなかった。 nginxの設定もunixドメインソケットのupstreamの設定がキモっぽいがsite-available/defaultに書いてると、/var/log/nginx/error.logに以下のエラーが出てnginxが起動しない。 ググってみるとどうもバーチャルホストの設定が必要らしくconf.d/になんか書く必要があるとのこと。参考にさせてもらったサイトでもよくみるとそうなってたので、そのようにした。でもconf./dの設定とsites-availableの設定の関係性が分からなくなった。   confの設定がどうも効かないので、CLIから直接起動。アプリを書いたディレクトリで、以下を叩く。   今度はListeningのlogが変わった。   がしかし、http://127.0.0.1:18000/にアクセスすると、gunicornのアプリがエラーする。(18000はvagrantへのhttpアクセスのport forwardの設定port)   “gunicorn type error not a byte”でググって、stackoverflowで解決。 gunicorn (Python3.4 and 3.3) sends in response only headers without data | stackoverflow 元のアプリがpython 3系だとダメらしい。以下のresponseとおぼしき1行を修正してブラウザからの動作は確認できた。 – return iter([data]) + return [bytes(data, ‘utf-8’)]   残すは設定ファイルからのgunicorn起動。   2015/10/05追記 設定ファイル書けた。たぶんファイルのパーミッションの問題で、daemon化ができていなかった。以下は動作が確認できたファイルで、logファイルは先に作成して、chmod 666した。 なお確認したソフトのバージョンは、以下。 python 3.4.3 nginx 1.4.6 gunicorn 19.3.0

30

人工甘味料撲滅の会

tropicanaのスクイーズ。 去年の塩グレープフルーツも美味しかったが、ピングレもおいしい。   何よりこのシールがいいですね。人工甘味料って口に残るし、お腹がゆるくなるし嫌いなんですよね。流行ればいいなーコレ。  

30

赤ちゃんに食べられるの巻

次男坊は長男がやらなかった行動をとります。それは何かというと、父さんの腕を食べるのです。母さんの腕は食べません。仕事から帰ってから食べられることが多いので、汗がしょっぱくて美味しいのかと思われますが、ばっちーです。そして、ヒットするととても痛いです。おっぱいが出るのものと勘違いしているのか噛みしだきます。お母さんはおっぱいあげるの大変だなと思いました。  

25

iphoneからも書ける

ちゃんとした証明書になったので、iphoneからの投稿もできるようになりました。 nginxのログ見てもパスワードは見えてまへん。 でも写真はそのままアップすると位置情報が入ってるから一工夫しないと、です。

25

さくらのSSLでhttpsアクセス

ようやっとhttpsでアクセスできるようになりました。 http://www.sakura.ad.jp/campaign/rapid_ssl/ 申し込んでほぼ3週間。自分の申請に謝りがあったのが、良くなかったのですが、サポートの方とやりとりして、ようやくSSLでアクセスできるようになりました。 オレオレ証明書の赤いのが出ないし、信頼できないサイトかもよーの手間が省けるので、すごく快適です。      

22

markdownパーサをgithubで公開した

以前やろうとしたc++製markdownパーサのgithubでの公開、ようやくできた。前回はvagrantの環境作成で止まったが、結局ubuntu 12.04を無理やり使うのはやめて14.04のvmを新たに作った。   公開するのにサイト名とかいろいろハードコーティングだったのを設定ファイルに追い出す修正をするだけで、すごい時間がかかってしまった。まだ他にも気になる点はいろいろあるけど、直してると2015年終わっちゃうので、とりあえず公開した。 https://github.com/vottie/notes

21

kalafinaを見てきた

twitterにも書いたけど、kalafina見てきた。ラゾーナ川崎で。たいがい3月と9月にプロモーションで来てるけど、今年はどうも5月に来てたらしく見逃してた。なので約一年ぶりのkalafina。   1時間前だと気合い入り過ぎだし、30分前だとリハーハル始まってたりするしで45分前に到着。結構人がいて、前列と後列を隔てる赤いテープが貼られていた。運営もいろいろ考えるんだなーと思いつつ前列はもういっぱいだったので後列に並ぶ。最近涼しくなってきたけど、超暑い。クッソ暑いのに詰めて下さいと言われて前列に並び直す。密度が上がってさらに暑い。 9/16発売のnewアルバムのプロモーションなので、歌ったのはnewアルバムから3曲。見に行く割には知らないkalafina。NHKのヒストリアの歌 far on the waterは爽やかで好きです。