2013/11/03

【Python】Django 始めました【Web Framework】

タイトル通り,Python の Webフレームワークである Django を始めました.
とりあえず,今回は wiki 的なものを作成.

過去に使ったことのあるWebフレームワークは bottle だけだった.
bottle は入門として最適だと思ってる.(他のフレームワークを使ったことなかったけど,1ファイルなところがステキだよね,bottle.)

きっかけは...これもまた前にやろうとしてたけど,やっぱり目的がないと使わないし「そのうちやる」の todo に入ってただけです.

というのもアレなんでそれっぽい理由として,今年の夏はインターンシップに行ってきたわけで,せっかくだったらインターンだけでなくてインターン中の個人的な目標としてサービス一個作るとかでもいんじゃないかなと思ったりもしてたのでついに重い腰をあげたという経緯.(他の理由に PyCon で感化されたとかされてないとか)


とりあえず,環境構築だけ.
Django本体 と デバッグツール と DBリセットコマンド と adminページのカスタマイズに必要なもの.
$ pip install django
$ pip install django-debug-toolbar
$ pip install django-pdb
$ pip install django-reset
$ pip install django-suit

あと wiki的なものを作るときに markdown で書きたかったのだけれど,
デフォルトの markdown そのままだと微妙なのでサードパティをいれてカスタム.

Python-Markdown
Officially Supported Extensions
Third Party Extensions

今回は細かい話は特になし.

【Mac OS X】Mountain Lion → Mavericks

無料だったのでこの前アップデートしました.OS X 10.9 に.
(2000円ぐらいかかるんだろうなと思って iTunesカード を買ってたのは内緒.)

アップデート直後は違和感があったものの,もう慣れました.
個人的には,マルチなディスプレイとかマップとか便利.
Finder はデフォルトでタブ機能付いたけど,まだまだ XtraFinder には及ばない.

ただね,ソフトウェアがね,ちとね,ちょこちょこね,ということで,
アップデートして一発目の起動で不具合があったものを列挙.

Python
VirtualBox

せっかくOSアップデートするなら,ある程度環境を整理してからにしよーと思って,
ずっと Python の 2系 は 2.7.3 で運用してたんだけど,最新版は 2.7.5 なわけでいい機会だったので入れ替えました.
(前も何度か入れ替えようとはしてたけど,2.7.5 を入れると vim がエラー吐いて作業ができなくなっちゃう罠にハマってたので放置してた.)

というわけで,Python 2.7.5 を入れるついでに vim も 7.3 から 7.4 にあげといた.
もうちょい何かした気がするけど忘れた.

で.
Marvericks にアップデートして Python の対話シェルを開いていつも通り作業しようと思ったら,
Python 2.7.5 (v2.7.5:ab05e7dd2788, May 13 2013, 13:18:45)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 1
1
>>> 2
Segmentation fault: 11
セグメンテーションエラー.
何度やってもセグメンテーションエラー.
対話シェルの二回目の入力で.

ググったら出てきました.
$cd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
$mv readline.so readline.so.disabled
これで解決と.

公式の issue とか StackOverflow にありました.
Issue18458
Python crashing when running two commands [closed]


次に VirtualBox.
Version 4.3(最新版)を使ってください.以上.

2013/06/03

【Quick Look】クイックルックをもっと使おう【Mac OS X】


Skypeでファイルが送られてきたりほげほげしたとき,
画像ファイルやら文書ファイルやらをさくっとプレビューしたい!

そんなときにQuick Lookを使う.

Quick Look(クイックルック)は、Mac OS Xに搭載されている、ファイルを手早くプレビューし確認することのできる機能。 Mac OS X v10.5のFinderの機能の一部として、アップルのADC 2007で発表された。(Wikipedia:Quick Look

だけど,デフォルトじゃ見れるだけ.
なんでだー!せめてテキストのコピーぐらいさせてくれ!
と思いながらググってたら見つけました,クイックルックプラグイン.

Macをより便利にするQuick Look無料プラグイン10選+α
MacのQuickLookを快適にするプラグインや小技など17個のTips


いや,テキストのコピーは別の方法なんだけど...

defaults write com.apple.finder QLEnableTextSelection -bool TRUE; killall Finder
これでクイックルック内でテキストの選択ができるようになってるはず.


でだ,話は戻りクイックルックプラグイン.
↓ 入れたもの一覧 ↓

BetterZipQL
  − 圧縮ファイルの中身を見れる
QLColorCode
  − ソースファイルに色を付ける
qlImageSize
  − タイトルバーにサイズと容量を表示する
QLMarkdown
  − Markdownで書かれたファイルをプレビューできる
QLStephen
  − 拡張子がないテキストファイルをプレビューできる
QuickLookCSV
  − CSVファイルを見やすくする
ScriptQL
  − AppleScriptをプレビューできる


【各プラグインのインストール方法】
/Library/QuickLook 内に「ほげほげ.qlgenerator」をいれて
ターミナルで qlmanage -r と打ち込めばおk.

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
※ちなみに,Mountain Lionでは
 ファイルを選択後,三本指タップでクイックルックできる!
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

2013/05/02

Terminal.appを快適に


今回は
環境変数PS1を設定すると捗るよ
Terminal.appがアクティブになったら英数に切り替えるよ
の2本です.



一本目環境変数PS1を設定すると捗るよ
====================
PS1を設定して良いターミナルライフを!ということで
ホスト名,作業ディレクトリ名,ユーザ名に色付けしちゃいましょう.

僕の設定は,
┌ ホスト名,作業ディレクトリ名:Blue
└ ユーザ名          :Green
となっています.

.bash_profile内に下の一行を追加してやれば変わります.
export PS1='\e[1;34m\h:\W \e[1;32m\u\$ \e[0m'

詳しくはこちらを参考に.



二本目Terminal.appがアクティブになったら英数に切り替えるよ
================================
ブラウザやらなんやらでかな入力をしていて,ふとターミナルに戻りコマンドを打つ際に
そのままかな入力で打ってしまうことはないですか?よくあります.

はい,SwitchToUSを導入しましょう.
SwitchToUSはSIMBL上で動作するものですのでSIMBLも同時に導入しましょう.
SIMBLには便利なGUI版があるので,僕はそちらを導入しました.

EasySIMBL
SwitchToUS on SIMBL

導入:
1.EasySIMBL.appを開く
2.ShowPluginFolderをクリック
3.Pluginsフォルダの中にSwitchToUSonSIMBL.bundleを移動
4.EasySIMBL.appに戻ってUse SIMBLにチェック
5.Installed Plugins:のSwitchToUSonSIMBLにチェック

使い方:
1.Terminal.appを再起動
2.メニューバーのターミナルをクリック後,Switch to USをクリックし,チェックが入れば設定完了.

これで作業効率があがるはず!

こちらを参考に.

2013/04/01

【Python】Raspberry PiでDropbox APIを弄る【RasPi】


ARMに対応したGUI版Dropboxがない.

ではCUIで.


とりあえずちゃっちゃとアプリ登録を済ませておく.
https://www.dropbox.com/developers/apps

1.【Create an app】をクリック...
  - App name : ご自由に
  - App type : Core
  - Domains  : 空欄可

2.【Create app】をクリック...
3. アプリの作成終了
-------------------------------


Dropbox - Developers
https://www.dropbox.com/developers

Core APIのSDKをダウンロード
https://www.dropbox.com/developers/core/sdk



wget https://www.dropbox.com/static/developers/dropbox-python-sdk-1.5.1.zip


unzip dropbox-python-sdk-1.5.1.zip


sudo cp -r dropbox-python-sdk-1.5.1/dropbox /usr/local/lib/python2.7/dist-packages

ここまででとりあえずはPythonでDropbox APIが使えるようになった.


pi@raspberrypi ~ $ python
Python 2.7.3 (default, Jan 13 2013, 11:20:46)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import dropbox
>>>

実際に使ってみる


pi@raspberrypi ~ $ vi dropbox-python-sdk-1.5.1/example/cli_client.py


APP_KEY = '先ほど作成したアプリのApp key'
APP_SECRET = '先ほど作成したアプリのApp secret'
ACCESS_TYPE = 'dropbox'

いよいよ動かす

pi@raspberrypi ~ $ python dropbox-python-sdk-1.5.1/example/cli_client.py
Dropbox> login
url: https://www.dropbox.com/1/oauth/authorize?oauth_token=XXXXXXXXXXXXX
Please authorize in the browser. After you're done, press enter.

linked account: { 省略 }
Dropbox> ls

Dropbox> exit

exitで抜けるとexampleフォルダ内に
token_store.txtが生成され,以降loginする必要がない.


以上.


RasPiでDropbox内のファイルを弄れるようになったので色々できる!