nginx + uWSGI + Python3 + bottle でHello Worldまで

雑に動かすところまでやってみたのでメモ。
PythonフレームワークDjangoが有名だけど、シンプルなbottleを使ってみることにした。
「bottle.py」だけでできているので入門に最適らしい。

環境

uWSGIをインストール

$ pip install uwsgi
$ uwsgi --version
2.0.12

インストールできた。

bottleをインストール。

$ pip install bottle

bottleで簡単なプログラムを書く

$ mkdir myapp
$ cd myappp
$ vim index.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-

from bottle import route, run, default_app

@route('/')
def hello():
    return 'Hello World!'

if __name__ == '__main__':
    # コマンドから"python3 index.py"で起動した場合
    run(host='localhost', port=3030)
else:
    # uWSGIから起動した場合
    application = default_app()

nginxの設定

vim /etc/nginx/conf.d/myapp.conf

server {
    listen 80;
    server_name  myapp.com;
    access_log   /var/log/nginx/myapp.com.access.log;

    location / {
        include uwsgi_params;
        uwsgi_pass  unix:/var/run/uwsgi/myapp.com.sock;
    }
}

uWSGIの設定

[uwsgi]
socket       = /var/run/uwsgi/myapp.com.sock
pidfile      = /var/run/uwsgi/myapp.com.pid
daemonize    = /var/log/uwsgi/myapp.com.log
chdir        = /home/vagrant/myapp/
master       = 1
file         = index.py
chmod-socket = 666
uid          = nginx
gid          = nginx
py-autoreload = 1

ディレクトリ作成して、オーナー変更

$ sudo mkdir /var/run/uwsgi/
$ sudo chown nginx /var/run/uwsgi/
$ sudo mkdir /var/log/uwsgi
$ sudo chown nginx /var/log/uwsgi

uwsgiを起動

uwsgi --ini uwsgi.ini

あとはhosts設定してアクセスすると、Hello World!が表示される。

とても参考になったブログあったんだけど、URLなんだったかな。。。

若手おじさん業をはじめた

先日イベントで会った高校生に、プログラミングに関して聞きたいことがあるので会いたいとDMをいただいたので、今日話してきた。
高校生がプログラミングに興味を持っていることがすごいと思ったし、行動的なところも非常にいいなと思った。自分が高校生のときはこんな勇気なかった。

プログラミング始めたてのころは色々なことで詰まるし、自分のスキルのなさに絶望することもあるんだけど、どうか気を落とさないでほしい。みんな同じ道を通ってきているんだと知ってほしい。
また、エンジニアとしてインターンをしてみたいということも話していたので、そこらへんも参考になると思う。
というわけで、定期的に読みたくなる記事を紹介したい。


Evan Priestley 氏がどうやってプログラミングを学んだかを教えてください

Facebookの元エンジニアがどのようにプログラミングを学んだのかという記事。
すごいと言われるエンジニアでも駆け出しの頃はミスもするし、その経験があったからこそ、Facebookで活躍したエンジニアになったんだなと思う。

教養としてではないプログラミング╭( ・ㅂ・)و

この記事にあるスライドだけでも見て欲しい。
初心者のときは誰でもこういう経験あったのでないだろうか。
教える側もインターンや新卒に対しての対応を気をつけたい。。。

不自由なプログラミング

わかる。共感するところが多い。


パッと思い浮かぶのはこれくらいなんだけど、他にもいい記事はたくさんあるはず。
プログラミング楽しいから、少しずつ頑張ろう (僕も頑張る)

YAPCにボランティアスタッフとして参加してきた #yapcasia

昨年も参加したYAPC、今年はボランティアスタッフとして参加した。

写真はスタッフTシャツとアロハシャツと腕章

なぜボランティアスタッフ?

今年のYAPCにボランティアスタッフとして参加したのには理由がある。
それは、昨年のYAPCが今まで参加してきたイベントの中で1番素晴らしく、心打たれたからである。
そんなYAPC::Asia Tokyoが2015年で最後ということで、ボランティアスタッフに応募した。
「今年スタッフやらないと後悔する」って直感が言ってた。

主な仕事

初めてのスタッフだったので不安もあったけど、周りの方に支えていただきながら、楽しく仕事できました!

0日目

1日目

  • 受付

2日目

  • 受付
  • 入場誘導

トーク

空いた時間で気になるトークも聞きに行けた。

  • Electron: Building desktop apps with web technologies
  • サーバーサイドエンジニア(特にPerl)のためのiOSアプリ開発入門
  • LT(1日目、2日目)

まとめ

大変だったけど、それ以上に楽しいと思えるYAPCだった。
PHP最高!!

2014年振り返って

1年もの凄い早さで過ぎていったなーと毎年思うんだけど、今年は特に早かった。 今年を振り返ってみる。

2014年あったこと(主によかったこと)

あんまりこれといってイベントなかったな。
入社してから少しプログラムが書けるようになり、プログラム書けることに喜びを感じてる。
Webエンジニアになってよかった。
プログラミング楽しいよ!皆やろうよーって感じ。
どこまでいけるかわからないけど、いけるところまでエンジニアで頑張っていきたい。

2015年の抱負

  • プライベートでiPhoneアプリリリースする(クオリティはどうでもいい)
  • PHPRailsで自己満のサービス作って公開までする
  • 運動をもっとして食生活も改善する
  • UVERのライブに行く
  • 趣味を作る

どんなこともコツコツやるしかない。
それでは良いお年を〜!

Vimで書いたMarkdownをプレビューできるようにしたら快適になった

Markdownで書くときはMouやKobitoを今まで使ってたんだけど、やっぱりVimで書きたい。
Vimがいい!Vimじゃなきゃダメなんだ!
ということで、Vimで書いたMarkDownをブラウザでプレビューできるようにした。
今回使ったプラグインprevim

インストール

.vimrcに以下のように書くだけ

NeoBundle 'kannokanno/previm'
NeoBundle 'tyru/open-browser.vim'

open-browserプラグインなくても大丈夫らしい

設定

同じく.vimrcに書いていく。
正直.vimrcの書き方に自信ない。。。
キーマッピングも設定。Control + M でプレビューが見れるようにした。

"-------------------------------------------------
" previm
"-------------------------------------------------
let g:previm_open_cmd = ''

augroup PrevimSettings
    autocmd!
    autocmd BufNewFile,BufRead *.{md,mdwn,mkd,mkdn,mark*} set filetype=markdown
augroup END

noremap <C-M> :PrevimOpen<CR>

VimMarkdownが快適に書けるようになった。 やっぱりVimだなー

【Vim】カレント行に下線をつけて編集行をわかりやすくする

最近作業していると「どこの行編集していたっけ?」とふと思う瞬間があって、この一瞬もったいないなーと感じてた。

.vimrcを以下のようにするとカレント行に下線がついてわかりやすい

" カレント行ハイライト
set cursorline
" アンダーラインを引く(color terminal)
highlight CursorLine cterm=underline ctermfg=NONE ctermbg=NONE
" アンダーラインを引く(gui)
highlight CursorLine gui=underline guifg=NONE guibg=NONE

こんな感じになる

f:id:tky-24:20141022152346p:plain

PHPカンファレンス2014に行ってきた

f:id:tky-24:20141013232100j:plain

PHPカンファレンス2014に参加してきた。

午後から参加してきた。
HHVM + Hack == PHP++の話の後半から聞けた(このトークかなり評判が良かったので、最初から聞きたかった。。。)

中年以降エンジニアの成長戦略

ひよこテスト駆動開発

SlowQueryとの戦い

が面白かったし勉強になった。

PHPカンファレンス参加して1番の気付きだったのは、もっとインプットしなくてはいけないなということ。
知らないことが多すぎるし、僕と同じ新卒のエンジニアがLTに出ているのを見ると、このままではいけないなと感じた。
危機感を感じながら毎日過ごさなくてはダメだし、常に上を目指しながら進んでいかないと5年後10年後にきっと後悔する。

本当は懇親会も参加したかったけど、泣く泣く離脱。。。

あと、HHVMのステッカーもらった!

f:id:tky-24:20141013232042j:plain

簡単だけど、こんな感じで。 来年も是非参加したい。