読者です 読者をやめる 読者になる 読者になる

AWS / PHP / Python ちょいメモ

amazon web service , PHP, Python を使ったときのメモ。日本語でググってもわからなかった事を中心に。

Mac に pythonz 入れる時の OPTION 設定

以前書いた pythonz on Mac の手順が、通用しないようだったので修正方法を探ってみました。結果としては、pythonz で install する時にオプション設定をすることで解決しました。 MacOS ver 10.11.6 (OS X El Capitan) /usr/local/opt/openssl 1.0.2j (by h…

php シェルを使って簡単に検証

ちょっとしたコードの動作を確認したい場合に使えると思う。というか使った。インタラクティブ Shell便利ー $ man php ... -a Run PHP interactively. This lets you enter snippets of PHP code that directly get executed. When readline sup- port is en…

管理時に欲しくなる yum オプションをまとめておく

ついつい忘れてググッてしまう。 インストール済み yum list installed : インストール済みパッケージを一覧表示 過去の履歴 yum history list all : 過去に実施した yum の履歴を一覧を全件表示 yum history info : 特定のTransaction IDの詳細表示 yum …

Beautiful Soup 4.x では parser を明示指定しよう

python で スクレイピングなどを行うときに便利なのが BeautifulSoup (ここでは bs4 を扱っています) 。 parserを選択できる仕様になっていますが、 4.3.xまでは明示的に指定しなくても、適度に動いていました (どう動いてたかは、調べてない)。 こちら…

Mac に pythonz 入れる前にやっておくこと

direnv構築 していて遭遇した問題の原因がわかった。homebrew版のpythonが必要なのではなく、「homebrewでopensslを事前にインストールしておく必要がある」が正解だった。先に openssl を入れておかないと、pythonz で落としてきたpythonのBuild時に openss…

Pillow インストール前にやっておきたいこと

Sphinx で blockdiag + IPAフォントを使った時のTIPS。Ubuntu上で make html を行ったところ、次のエラーがでて図が出力できなかった。 ImportError: The _imagingft C module is not installed blockdiag_fontpath で、IPAフォントを指定したところエラーが…

STATIC_URL と MEDIA_URL は 異なる値が必要

タイトルの通りです。本番側でDebug=Falseで触ってたら気づかなかった。 FileField 使ったのですが、同じパスにしたら、上げたファイルをapacheの設定変えなくても見えるじゃんと、手抜きしたのがいかん。ちゃんと、開発でDebug=Trueで作業してからあげまし…

homebrew direnv には homebrew python が必要?

(4/27 追記) homebew版 python が必要ではなく、direnv で使ってた pythonz で pythonを入れる前に homebew版 openssl が必要だったのが問題点でした。 Mac に pythonz 入れる前にやっておくこと - AWS / PHP / Python ちょいメモ - direnvをよく目にする…

Django の Debug Toolbar をリモート接続で表示

以前書いたエントリーの追記。やはり、リモートでデバッグしてる時にも、Debug Toolbar を使いたくなったので調べてみると、接続元IPがわかれば、設定に書いてあげることで表示が可能でした。 設定方法 settings.py とかに、次の変数をセットしてあげればOK…

Apache で VirtualHost一覧を表示

久しぶりに触るたびに、忘れてる気がするのでメモ。簡単なコマンド: apachectl -S VirtualHostのみを表示する場合: apachectl -t -D DUMP_VHOSTS すごく便利ですよね?Apache使いなら、当たり前なのだろうと思いつつも。

Python & Django 読んでおきたいエントリー

ここ一年ほど、Python&Djangoをやってきて気になったエントリー集。けっこう好きになった気がする > Python。壮大なフレームワークなんだねと実感してきた > Django。読破したというより、読んでみたいがメインではあります。あと、Pythonメインの選定になっ…

flake8 2.5.0 のエラー対処 on Ubuntu

Ubuntu に pip で flake8 を入れたら、上手く動かなかった。次の対処で上手く動作したのでメモ。 対処1 設定ファイル書くか -j0 オプション付けて並列処理をなくしたら動作。 vi ~/.config/flake8 [flake8] jobs = 1 $ cat /etc/os-release NAME="Ubuntu" VE…

dateutil で 曖昧な日付をパースする

python の dateutil ライブラリ。標準の datetime.strptime で日付を構文解析するよりも手軽にパースすることができます。2.x/3.x 両対応。今回、このようなフォーマットの日付をパースしたのですが、表記が曖昧なので、結果が揺れてしまいました。 In [1]: …

Python仮想環境ツール一覧 virtualenvwrapper, direnvとか

Pythonなど新しいバージョンがリリースされる言語は、プロジェクトや勉強に合わせたパッケージ用意したりと、1つの環境で作業しているとグチャグチャになります。 そこで1台のPC上に独立した個別環境を複数作れる、Python仮想環境を用意するツールを利用し…

Beautiful Soup 4.4.0 で extract() を使うとDOM treeが壊れる?

Python で Beautiful Soup 4.4.0 を使った時に遭遇した問題。stackoverflow でも取り上げられていて、取り敢えずは 4.3.2 に戻すことで対処しました。 python - Beautiful Soup Not able to get_text after using extract() - Stack Overflow 環境 Ubuntu 14…

urllib2.urlopen() で GET/POST を使い分け

Python の urllib2 で、ちょっとした仕様に気づいてなかったのでメモ。urlopen() の 第2引数 data を渡すと、必ずPOSTの挙動になるようです。確認環境: Mac OS X , Python 2.7.6 POST Data なにげに data を渡すと、POST methodが送られる Requestオブジェ…

OS X で Wireshark を使う

思い立って調べてみたところ、うまく動作したのでメモしておきます。OS X 10.10.2 (Yosemite) に、homebrew を使って wireshark 1.12.4 の Qt版をインストールしました。 '--with-qt' なしでインストールしたら、GUIなプログラムがインストールされなかった…

言語・locale 変更方法 (日->英, 英->日)

Linux の言語(ロケール / locale)変更するときのコマンドや関連ファイルのメモ。X 上で設定画面があるディストリビューションもあるのかもしれないのですが、Debian/Ubuntu系でのコマンドを使った方法の紹介です。 コマンドや設定ファイル だいたい、これ…

Django と SQLite/MySQL : 最大値とUNIQUE

前回に引き続き、DBを移行する場合にひっかかりそうなTIPS第2弾。Djangoってよりは、Modelの裏側の意識が必要なケースありますね的な話です。MySQL使っていて、こんなエラーが出た時には参考になるかもしれません。 Specified key was too long; max key len…

Django と SQLite/MySQL : 照合順序を意識しよう

Django は、pythonのWebアプリケーションフレームワークで、MVCならぬMTV (Model - Template - View) モデルで構成されています。Model を定義することで、バックエンドのデーターベース定義などは自動で生成してくれる形となっており、プログラミングする事…

CakePHP 多言語化ステップ

CakePHPのi18n(+10n?)機能を使うと、Webページの文章の多言語はもとより、404, 500エラーなどのエラーページのメッセージなども多言語化できます。そもそも、デフォルトで生成されるコード(Layout/default.ctpなど)は、多言語化利用を前提としたつくり…

Django はじめた時に、便利と思ったサイト4つ

Django 使う時のTIPS集をいくつか紹介。どれも、便利だなぁと思うヒントが沢山あるので、おすすめ。Djangoチュートリアルが終わって、とりあえず1つ2つ作ってみたというタイミングだといいのではないかと。注意点として対象バージョンがマチマチなので、自…

CakePHP Upload プラグイン TIPS

以前使った CakePHP Upload Pluginを、久しぶりに使った際のメモ。 以前の利用時メモは、こちら > CakePHP2.x対応 ファイルアップロード機能追加プラグイン - AWS / PHP / Python ちょいメモ 。 ドキュメント Welcome to CakePHP-Upload’s documentation! — …

(調べがちの)たまーに必要な Git コマンド

git の使い方って結構しらべませんか?僕は、開発してると数日に一回は調べてる気がします。 たまーに欲しくなるコマンドを列挙してみました。まだ間違いはあるかもしれないのですが、自分のメモ代わりに。 ブランチ ブランチ名の変更 ローカル 可能 git bra…

Django の paginate に GET パラメーター渡し機能を追加

paginate/pagination は、 Django core として標準ではいっています。ただ他のパラメーターを、次のページに引き継ぎたい場合には、一手間必要なようです。StackOverFlow の 次の Question を参考に、思案してみました。 pagination - How to paginate Djang…

Django の Debug Toolbar カンタン導入

Debug Toolbar こんなに簡単に導入出来るのか!ということでメモ。最初から入れておかないと、時間がもったいないですね(;CakePHPでいうDebugKitに相当する機能です。手順的には、Djangoの方が一手間少ない、かな? カンタン導入手順 Debug Toolbar APP を…

webmaster@localhost が FROM に使われてるのは。。。

Django send_mail() を使って送るメールのFROMアドレスをどこで変更するのか調べた。'webmaster@localhost' + domain という、なんとも奇妙なアドレスが使われているため変更しようと思い。 設定箇所 settings.py の DEFAULT_FROM_EMAIL がデフォルトのまま…

settings.py を便利に使う 初心者向けTIPS 3選

Djangoは、設定ファイルが .py : Python コード で記述されています(昔触った MoinMoinWikiもそうだった気がする)。Python初めての時は、インデント間違いに気づかず動作しないなど苦労した苦い思い出がありますが、いやいや便利ですよね。設定ファイル中…

Redhat6.x + SCL 使う時に気をつけたい3つのポイント

Redhat系で新しいパッケージを公式サポートしてくれる SCL : Software Collections を使った際にはまったポイントを3つメモしておきます。慣れた方なら当たり前な事かもしれませんが、初心者にはハードル高く、何度もつまづきました。 SCL とは Redhatはサ…

.gitignore_global を利用する

Git ポチポチ使ってますが、先日教えてもらって便利!と思ったのでメモ。 .gitignore_global リポジトリにコミットしたくないファイルを記載する .gitignore ファイルをプロジェクト毎に作れます。ちょっとバックアップしておいた *.bak ファイルとか。自分…

カゴヤ VPS 利用時TIPS

手軽に利用できる KAGOYA の VPS。設定などを凝りたい時に、知っておかないと困った事があったのでメモしておきます。使っているOSイメージは、Ubuntu12.4TLSです。 仮想化手法 OpenVZが利用されています。ホストのLinuxカーネルを全てのインスタンスで共有…

virtualenv と vim-virtualenv 利用時のTIPS

vim で virtualenv内のpython3開発環境で、コマンドが動かない等の問題に遭遇したので対応したメモです。virtualenvをいれてPython3.4の開発環境を作っていたのですが、workonした後のPython3をvimで触っているときに、シェルやコマンドを実行する際に、/usr…

CakePHP の validation でツマヅイタ

CakePHP2.4.10でパスワード変更画面を作成していてツマヅイタのでメモ。 ポイント モデルで定義したValidationルールは、コントローラーの任意の箇所で解除(・追加も?)が出来る 例) //ユニークバリデーションを解除 unset($this->User->validate['email'…

CakePHP2でカスタムエラーページ、メッセージを準備

開発してると後回しになりがちなエラーページなどの対応を、まとめ。CakePHPのようなMVCフレームワーク、ルールが多くて勉強の必要性を感じます。確認したバージョンは、CakePHP2.4.6です。 カスタムエラーページ app/View/Errors/ の中に、デフォルトで次の…

curl コマンド利用TIPS ヘッダー変更、HTTPヘッダー取得など

curl って使える!と思った使い方のメモ。さっそくWindでも使うべく、Cygwinに追加インストール。なんでも、よく目にするコマンドは、ちょいと使ってみないとですね。 複数パラメーターをもってる場合は "" で囲む $ curl -X GET "http://hogehoge.hoge/api?…

Apache2.4.x on Ubuntu12.04 で、mod_rewriteのログを取得

Apache2.4.x on Ubuntu12.04でmod_rewriteのログを取得したいときの設定。2.2と2.4は、大きく違うんですね。追いかけてなかったから全然知らなかった。読めば、ちゃんとconfファイルにコメントされてるけど。。。 例)デフォルトサイト設定を変更する: /etc…

CakePHP2.x Fromヘルパーのyear(),month()メソッド

他のinputメソッドと並べて使ったら、うまく値がとれなくて??調べてみると、year(), month()メソッドの場合には、生成される name属性の扱いが特別でarrayになるようです。これは、同じ名前がページ内に複数配置されたりする事が多そうだからなのかな?最…

CakePHP2.x で find() 取得したデーターのデフォルトはstring型

CakePHP2.xでは、MySQLへのアクセスがPDO(PHP Data Objects)を利用しているため、PDO(mysql)のデフォルト設定の影響を受けて、この動作になるそうです。PHP5.3以上の環境だと「PDO::ATTR_EMULATE_PREPARES = false」などを行うことで、この動作を変更する事…

SDKドキュメントにcontributeしようメモ(2)

前回のエントリー で、自分でハードルを上げてましたが、別サービス:SimpleDbを見てみたら、もっとライトで良い気がしてきました。 構造を探ってみる(2): SimpleDbを参考に SimpleDbのUsersGuideを参考に、構造を探ってみました。 SimpleDbのUsersGuideに該…

SDKドキュメントにcontributeしようメモ(1)

aws-sdk-php v2のUserGuideドキュメント、Auto Scaling, Amazon Elastic Compute Cloud, Amazon Elastic MapReduce, Amazon Glacier など、まだincomplete(完成してない)ものがチラホラあります。API referenceを見れば使えるので、そこまで困りませんが、…

WindowsのSphinxスタンドアロン環境でSDKドキュメントを書く準備

aws-sdk-phpのドキュメントは、SphinxというPython環境で動作するツールで作られています。PHP系なのに面白い!と思ったところ、Sphinx自体が便利なのであらゆるところに広がってるようですね。Windowsでドキュメント書くのにSphinx環境を作るのは、何が手軽…

EMR上でHiveを使うときのチューニングメモ

AWS EMR(Elastic MapReduce)でHiveを使うときに使えそうなチューニング情報。そもそもMapReduceの仕組みと、Hiveが裏でやってくれる事を理解していないと、出来ないチューニングポイントの方が多いのですが、ここらにあるということだけを、メモしておきます…

aws-sdk-php 2.4.4リリース

ふとSDKのドキュメント見てたら、書式が変わったり、いくつか記述ミスが修正されてました。 http://docs.aws.amazon.com/aws-sdk-php-2/latest/ Guzzelフレームワーク用のArray?は、結構階層が深い事があるので、今の方が見やすい気がします。古いものがな…

EMR利用時のURI Prefix "s3:// " と "s3n://" の違い

EMRからS3へアクセスする時に、次の2種類のURI記述方法があります。 s3://hogehoge... s3n://hogehoge... ふとどうやって使い分けするんだっけ?と思ったので調べてみました(どこかで、s3n://が今後推奨されるという表記を見た気がしたのですが、次の情報を…

AWSコマンドラインツール:aws-cli

AWSの運用として、外せないのはブラウザベースのManagementConsole。まず最初はここからですし、ドキュメントも豊富ですしね。次の一手というとEclipseのAWS Management?などでしょうか?GUI系は便利なのですが、CUIでも使えるものが必要なのではということ…

AWS運用支援サービス:Cloudworks

Webブラウザで使うManagementConsole、大変多機能なのですが、ちょっと隙間を埋めてくれるサービスを発見。クラウドワークス社のCloudworksサービス。次のリンク先から登録して使えます。Freeプランなれば無料。日本の会社が提供してますので、UIはもちろん…

S3バケットから正規表現にマッチするファイル一覧を取得

S3バケット内のファイルを、正規表現にマッチしたものだけ取り出したいのですが、以前のSDKにはあったメソッドが、現在のv2にはなかったので、それっぽいものを作ってみました。 v2 に map_string( $pcre ) 次のコマンドで、イテレーターオブジェクトを取得…

SimpleDbのドメイン存在確認方法

タイトルの通りのメソッドがSDK for PHP v2に見つからなかったので、代案を考えた。というエントリー。S3だとS3Clientに doesBucketExist() があり、バケットの存在確認ができ、booleanで結果が返ってきます。 AWS SDK for PHP 2 : doesBucketExist() Simple…

AWS SDK for PHP 2 を Composer経由でセットアップ

PHPのライブラリ管理として有名なのは pear なのかと思います。ですが、AWS SDK for PHPでは、Composerの利用を推奨してましたので、こちらを利用してみました。 簡単な記述で、自身のプログラムとの依存関係が明確になるのが良いですね。依存するバージョン…

Amazon S3 stream wrapper で S3 操作時の注意点

S3を触っていて、これは便利と思った機能。「s3」というプロトコルが使えるようになり、ローカルのファイル操作と同じように、S3上のファイルを触れるようになります。触って、ちょとだけはまったのが次のポイント。※2013/08/13に修正・追記 S3のフォルダは …