Google App Engine/Python3.7でResponderアプリを動かしてみる

この記事はGAE (Go/Python) もくもく勉強会 in 横浜タネマキ vol.58開催中に書きました。 最近興味があるResponderというPythonのウェブフレームワークをGoogle App Engine/Python3.7で動かしてみました。 ...

10月 27, 2018 · Ryuji Tsutsui

「テスト駆動Python」のレビューをしました #pytest #テスト駆動Python

「テスト駆動Python」という本のレビューをしました。 ...

9月 3, 2018 · Ryuji Tsutsui

レガシーコード改善の記録

komagataさんの レガシーPHP改善日記 シーズン2 エピソード1 - komagata に触発されて、書いてみました。 最近のPHP、とても開発しやすくなりましたよね。「理想の環境」を拝見しましたが、誰が見ても魅力的な環境だと思います! ...

2月 12, 2015 · Ryuji Tsutsui

PHPのマイクロフレームワークSlimでテストをできるようにしたスケルトンを公開しました

あけましておめでとうございます。本年もよろしくお願いします(遅い)。 今年最初の記事は、PHPのマイクロフレームワーク Slim についてです。 ...

2月 1, 2015 · Ryuji Tsutsui

requirements.txtをPythonコードの中でパースする方法

pipにあるparse_requirements関数を使えば簡単にできます。 試しに、 django-skel のrequirements.txtをパースしてみます。 これがサンプルコードです(Python2.7, 3.4で動作確認しています): from pip.req import parse_requirements install_reqs = parse_requirements('requirements.txt') for i in install_reqs: print(i) これが出力結果です: Django>=1.5.0,<=1.5.9 (from -r reqs/common.txt (line 1)) django-celery==3.0.21 (from -r reqs/common.txt (line 2)) django-compressor==1.3 (from -r reqs/common.txt (line 3)) Fabric==1.6.1 (from -r reqs/common.txt (line 4)) South==0.8.1 (from -r reqs/common.txt (line 5)) Sphinx==1.1.3 (from -r reqs/common.txt (line 6)) boto==2.9.5 (from -r reqs/prod.txt (line 2)) cssmin==0.1.4 (from -r reqs/prod.txt (line 3)) django-heroku-memcacheify==0.4 (from -r reqs/prod....

4月 12, 2014 · Ryuji Tsutsui

django-model-utilsでmodel設計(Fields編)

先日の Django Meet up で読んだ Tow Scoops of Django 1.6 に載っていた django-model-utils がいい感じだったので、ちょっと調べてみました。 このエントリーでは、以下の環境で動作確認しています。 Python 3.4 django-model-utils 2.0.3 Django 1.6.2 ...

4月 9, 2014 · Ryuji Tsutsui

Google Places API のオートコンプリートを日本国内限定のWebアプリに組み込む場合の設定

Google Places API を使うと住所の入力欄に オートコンプリート機能 を追加できますが、日本国内限定のWebアプリに組み込む場合の設定方法についてメモしておきます。 以下の設定を行います。 候補選択後に住所の先頭の「日本」を表示させない 表示させる候補を日本国内の住所に限定する これがサンプルコードです。1 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Google Places API のオートコンプリートを日本国内限定のWebアプリに組み込む場合の設定例</title> <!-- 1. region=jpを指定すると、候補選択後の「日本」が表示されなくなる --> <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places&sensor=false&language=jp&region=jp"></script> <script> (function(window, document)) { google.maps.event.addDomListener(window, 'load', function() { var input = document.getElementById('address'); var options = { componentRestrictions: {country: 'jp'} // 2. これで日本国内の住所しか表示されなくなる }; autocomplete = new google.maps.places.Autocomplete(input, options); }); })(window, document)); </script> </head> <body> <input style="width: 300px;" id="address" type="text" placeholder="場所を入力" autocomplete="off"> </body> </html> 「region=jp」の設定は以下のURL「When invoking Google API, specify attribute “region”:…」を参考にしました...

3月 27, 2014 · Ryuji Tsutsui

Amazon S3に置いたWebフォントがFirefox, IEで表示されない現象の回避方法

今日調べて分かったのでメモ。 最近のFirefox, IEでは、クロスドメイン制約があるため、デフォルトでは異なるドメインのWebフォントを読み込めません。 サーバー側のレスポンスヘッダにAccess-Control-Allow-Originを指定すればいいのですが、Amazon S3の場合は以下のようにします。 S3 Management Console をブラウザで開いて、画面右の「CORS Configuration(下の図 赤丸の部分)」を 以下のように編集します: <CORSConfiguration> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <MaxAgeSeconds>3000</MaxAgeSeconds> <AllowedHeader>*</AllowedHeader> </CORSRule> </CORSConfiguration> これで、Webフォントが読み込まれるようになります。 参考: CORS(Cross-Origin Resource Sharing)によるクロスドメイン通信の傾向と対策 | Developers.IO

3月 4, 2014 · Ryuji Tsutsui

ブログへのTwitter Cardsの設置方法について

最近のTwitterでは、リンクを貼るとこんな感じで、リンク先の内容が表示されるようになります。 これは Twitter Cards というらしいのですが、自前でドメインを取得してサイトを構築する場合、このような表示にするためには、以下の準備が必要です。 (1) Card Validator を使って、表示させたい形式に合わせてmetaタグを作成し、サイトに貼り付けます。 (2) Card Validator の画面左「Validate & Apply」のタブをクリックして、1. のmetaタグを貼ったサイトのURLを入力し、「Go」ボタンを押すと、「○○ not approval」というメッセージが表示されます。この状態で「Request Approval(画像の赤丸の部分)」ボタンで申請します。申請にはTwitterアカウントが必要です。 私がryu22e.orgを申請した際は、ほぼ24時間後に通りました。

12月 27, 2013 · Ryuji Tsutsui

FabricのDjango Integrationが地味に便利そう

Fabricの0.9.2から、 Django Integration という機能があるようです。 これを使うと、FabricからDjangoのコードを呼ぶことができます。 先日紹介した factory_boy と組み合わせると: # -*- coding: utf-8 -*- from fabric.api import task from fabric.contrib import django # Djangoのコードのimportの前にこれを書く django.project('fabric_django') from example.factories import BookFactory @task() def generate_books(): for i in range(10): BookFactory() これでWeb上の動作確認をするためのデータを生成することもできます。 今まで、私はこういったことをやるために、Djangoのコマンドを自作していたのですが、こちらの方が簡単に書けそうでいいですね。

12月 24, 2013 · Ryuji Tsutsui