pythonとflask触ってみた

ふと、pythonを触ろうと思ってなんとなく触ってた。
殴り書き程度のメモでしかないが…。

できたもの

以下、殴り書き

とりあえず環境構築

flask

vagrant

デプロイ

AWSについて

  • 起動してみると全くsshが繋がらない。ssh -vvとかやってもよくわからない。
  • Amazon LinuxからUbuntuに変えてみると速攻繋がったのでUbuntuでやった
    • なぜ繋がらなかったのかはよくわからん。
  • Amazon EC2 のインスタンスを Amazon VPC で起動してSSH接続する - tnil's memo
    • 多分これが一番わかりやすい。
  • EC2のセットアップも1からやるのはめんどいので、vagrant使ったときに使ったfabricを再利用。
    • hostとか鍵をいじってコマンド叩くだけでpythonやらmysqlやらのセットアップ完了。
  • あとはES2上でuWSGIを起動してブラウザで叩くだけでページが表示されることを確認。
    • uWSGIを自動で起動とかその辺は全然やってないし、DNSとか何も触ってないのでデフォルトのまま

まとめ?

  • まだまだpythonよくわからない部分が多いけど、とりあえず動いたって感じ。
  • なんか作るかなー
  • PyConには今年行きます。

Concrete5をfablicを使って環境構築

諸事情により、ベースキャンプ名古屋 にいて「Concrete5の日」というイベントのに参加してるのでせっかくなので適当に作ってみました。

さらっと作ったもの

内容

  • vagrant + fabricでお手軽に環境構築する
  • chefとかpuppetでできればいいと思うけど、学習コストが高い(と思ってる)
  • fabricはpythonで書かないとダメだが、シェルスクリプトとほぼ同じような感じで書ける(多少構文覚える必要あり)
  • cuisineという冪等性をある程度サポートしてくれるライブラリもあるので普通のシェルスクリプトよりは安心
  • もうちょい頑張ればfiles.existsとか使って2回以上実行されてもエラー出ないようにできるがめんどくさい時間がなくて断念
  • Dockerも触ってみたいけど、それはまたの機会でー

githubを便利にするhubコマンドでよく使うコマンドたち

githubを使うのに便利なコマンドであるhubはほとんど使ってなかったが、ちょっと使うようになってきたのでメモ
詳細は公式を見てください

基本的にはgitのコマンドを簡易化するものだと思いますが、自分が使うのはブラウザと絡めて使うときがメインなのであしからず…

自分がよく使うコマンド一覧

今見てるリポジトリをブラウザで見たい

$ hub browse

hubを使えばPullRequest出すのもコマンドから出来ますが、事故るのが怖いのでいつもブラウザで開いてからやってます
その時にターミナルからchrome開くのがめんどくさいので、このコマンドで該当のリポジトリを速攻で開くのに使います
※browseってのがめんどいのでgitconfigでaliasで hub see という形にしています

今見てるリポジトリのpull request一覧をブラウザで見たい

$ hub browse -- pulls

今見てるリポジトリのpull request一覧をブラウザで見たい(自分だけの)

$ hub browse -- pulls/$(git config user.name)

これは毎回打ってられないので、aliasに適当に登録してます
指摘されたPRの内容なんだっけ?みたいなときに使います

tig上でログみてるときにブラウザで見たいとき

.tigrcに設定
# hubコマンドが入ってたら、Gで差分をブラウザで表示する
bind main G !@hub browse -- commit/%(commit)
bind diff G !@hub browse -- commit/%(commit)

tig上でファイルは見れなくはないけど、ブラウザで見たいなーってときはこれをやる
tigで対象のコミットを見てるときにGを押すとブラウザに飛ぶ

Pull Requestを送られたブランチをcheckoutする

$ hub checkout https://github.com/defunkt/hub/pull/73

git co -b feature/hoge remotes/origin/feature/hoge
が通常のgitでのコマンドだと思うけど、毎回忘れるのでzshの履歴から引っ張ってるのでhubで出来ないかなーと思ったらあった

まとめ

あんまりhub自体使ってないけど、自分のくせで使わなくなったブラウザのタブはすぐ閉じちゃうので、そういう人じゃなかったら別にいらないかもしれない
2.20がリリースされて新しい機能増えてそうだけど、追ってないのでわからず

深夜の山手線を自転車で一周してきた

自転車で山手線一周してきた(夜) - 機械

このブログを読んだときからいつかマネしようと思ってたが、つい先日カメラを買ったのでノリで一周してきた

買ったカメラは、Canon デジタル一眼レフカメラ EOS Kiss X7 (amazonへのリンク) 一眼レフなのにすげぇ軽いのが魅力的。触ってみてこれが一番よかったのでこれにした。

1人だと心細いので知り合いのチャリとカメラ持ってるやつに声かけて二人で新宿駅から回ることにした。 お互いクロスバイクです。

続きを読む

# YOと戯れてみた

  • 諸事情により、定期的にiPhoneに通知を飛ばしたくなったのでYOをいじってみた
  • 標準時計のアラートでもいいと思うけど、いちいち止めるのめんどくさいし、本当に通知だけを飛ばして気付きたいだけ

YOとは

リンク

とりあえずPHPで動かす

  • もちろん、前提としてYoのアプリ(iPhone)をインストールしてる必要がある
  • Github - YoApp/yo-php
  • 上記リポジトリをCloneしてきて、サンプルのPHPをパクって作る。
  • apiKeyのところは作ったアカウントからコピペする
  • とりあえず名前を変更
<?php

// Add file
require('yo.php');

// Get an API Key at dev.justyo.co
$apiKey = 'hogehoge'; // アカウント作ったときにできたAPIをツッコむ

// Instanciate
$yo = new Yo($apiKey);

// Send a Yo to all your subscribers
$yo->all();
?>

実行

$ php index.php

さくらVPSにでもあげて動かす

  • 一番最初に書いた通り、定期的に通知を飛ばしたいので自分で借りてるさくらVPS上で動かす
  • 適当にvpsにアップするrsyncのコマンド書いて、サーバー上にあげて、適当にcronを仕込む
00 12,18,22 * * * php /var/www/html/index.php

まとめ

  • とりあえずこれで実行するだけでiPhoneに通知が来た。
  • PHPでやったけど、PythonとかRubyとか基本的な言語はほとんどありそうなんで何でも書けそう
  • subscribersじゃなくて、アカウントをフォローすればYoAllでフォローしてるユーザーに飛ばせる
  • 単純に叩くだけじゃなくて、本番環境にデプロイしたタイミングでかますとか、エラーログが一定数超えたら飛ばすみたいなヘルスチェックにも使えそう
    • プッシュ通知が簡単に飛ばせるからいい

達人出版会から出ているUnityの本「UNIBOOK」を読んで

UNIBOOK - 達人出版会

  • Unityでのゲームの作り方というよりももっとバッドノウハウというかハマりどころの小さいTipsがいろいろ書いてました。
  • 1章から44章まで大まかに分けて44つの項目が書いてあって、500円なのでめちゃくちゃ安いと思います。
  • 気になったところとか個人的なメモをのっけときます。
    • 本の内容にまでは言及するとあれな気がするのであくまで自分が読んだ感想メモです。

前提

  • 自分のUnity歴は2ヶ月ぐらい
  • C#も覚えながらやってるのでへぼい

第5章 MonodevelopのIndentWidthを強制的に4にする

  • これ最初にMonodevelopを使うと絶対イライラするところだと思います。
  • Enter押して改行したときのカーソルの位置の絶望感は異常
  • すでに自分は設定してたけど、やっぱみんな設定変えてるんだなぁと共感できた
  • xamarinって使ってる人あんまいないのかな?

第6章 コードテンプレートでらくらく補完

  • あんまり使ったことなかったけど、具体例見ると楽そうだなぁと思った
  • よく新規クラス作るときに #region でpublicとか切ってるのでそれ

第12章 スクリプトからGameObject またはコンポーネントを検索するには

第13章 Prefabのあれこれ

  • 本書とは全然関係ないんだけど、Prefabの更新がたまに更新されないときがあるのは何でしょうかね(俺だけかも知れないが)
    • よくわからんので、一旦PrefabをHierarchyにもっていって、抹殺して設定を変更して再度Prefab化するという謎の手順でやってる(多分正しくはないと思う)

第17章 SendMessageの効率的な使い方

  • 使うどころを誤らなければ便利そうだと思ったけど、チーム開発とかやるには設計段階(フレームワーク的な)で決めておかないと破綻すると感じた
    • Unityの有識者の人がこういう設計でやるって言ってルール化されてるならいいと思う

第22章 シーン名/タグ名/インプット名を定数で扱う

  • 普通にEnumペチペチ書いてたけど、ここみたいに自動生成してもいいかもしれない
  • まぁ文字列は事故るんでないですよね…

第30章 Missing を見つけるには

  • これめっちゃいい!
    • ソースコード変えたり、Sprite変えたりすると勝手にはずれることしょっちゅうあるからNULL落ちが…。
  • 全シーンからチェックできるのがいいな
    • リリース前とかCI回すとかやるときに使いたい

第32章 モバイルでの描画速度最適化について

  • まだそんなに詰まってないけど、後々絶対詰まる部分なので参考になる
  • アニメーションのチューニングよりもUIの場合のチューニングが大変そうなイメージ
  • Debug.logって結構重かったのか…。

第33章 Unity でGit(バージョン管理)

  • これも本書とは関係ないんだけど、 force textでmetaファイルとか管理してるときに謎の差分出る時があるのはなんだろう…。
    • Aさんの手元でなんかのパッケージしたアニメーションとかを入れる
    • Gitで差分確認して差分を全部Pushする
    • Aさんの手元では差分がない(ここまではOK)
    • BさんがPullする(Aさんの変更含む)
    • BさんがUnityを起動する
    • その後、Bさんがgit statusで確認するとAさんのファイルが差分で見える
    • バイナリ?のまま(foece textなのに)になってるとかファイルのサイズが違ってるとかの差分だった気がする
  • って状況になることがちょこちょこある
    • Unityにパッケージ放り込んだら1回Unity再起動しないとだめなんかなぁ…

第35章 LINQのススメ

  • 結構な量を使って説明してるのでわかりやすい(書いてる内容の目線が低いのですらっよみやすい)
    • 本書で一番気合入ってる…?
  • 便利らしいけど、iOSでたまに死ねるって聞いた
  • 地雷さえ踏まなければ便利らしいので、踏まないように頑張ります(;゚Д゚)

第38章 HierarchySort を作成しよう

  • 便利!!!
  • 19 章「GameObject で拡張しておきたいメソッド」の内容がここを読んで理解できた

オチのないまとめ

  • また3ヶ月後とかに読んだりすると違った感想が得られると思うので気になったらまた読み直したいなと思う。
  • Unityゲームの作り方とかそんな本は腐るほど出てるので、こういうクックブック的なものはすごく助かる
  • JSでのサンプルコードがなかったのでやっぱりほとんどのゲーム開発現場ではC#なんだろうなぁ…
  • フォルダ構成とかどうしてるのかちょっと見てみたいからその辺の情報あったら嬉しかった(テラシュールさんのブログにまとまってたあれば大体標準なんかなぁ…)