バカンス駆動開発

この前バカンスって言ったら「古っ」って言われました

PHP BLT #3 発表まとめ! #phpblt

2016年3月1日、メルカリオフィスで開催されたPHPBLT#3に参加してきました!
オーディエンスより発表者の方が多いという血気盛んなこのイベント、LT枠以外にも「ブログ書く枠」が用意されていて自分はこの枠で参加してきました。
第3回の今回初参加でしたがめちゃくちゃ面白かったです!
もうすでに第4回の募集が始まってますのでまだ参加したことないPHPerの方々は是非!(一番↓にリンクあります)

写真撮り忘れていたので@uzullaさんのつぶやきを拝借・・

では発表を紹介していきます!

続きを読む

yumのリポジトリの追加とか設定とか

サードパーティリポジトリを追加する(2016/02/01時点)

// epel
sudo rpm -Uvh "http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm"

//RPMForge
sudo rpm -Uvh "http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm"

// remi
sudo rpm -Uvh "http://rpms.famillecollet.com/enterprise/remi-release-6.rpm"

//IUS
sudo rpm -Uvh "https://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/ius-release-1.0-14.ius.centos6.noarch.rpm"

他のリポジトリCentOSWikiに記載されています。
AdditionalResources/Repositories - CentOS Wiki

インストールされているリポジトリ一覧を確認する

yum repolist

設定ファイルを確認する

// yumの設定ファイル
/etc/yum.conf

各項目の内容はこちら
2.2 Yumの構成

// リポジトリごとの設定ファイル
/etc/yum.repos.d/*.repo

/etc/yum.confにグローバルに設定して、/etc/yum.repos.d/*.repoで個別に上書きします。

パッケージを探す/パッケージの情報を確認する

// httpdが名前または説明に含まれるパッケージを探す
yum search httpd

// mod_sslについてremiリポジトリを指定して探す
yum search --disablerepo=* --enablerepo=remi mod_ssl

// httpdのパッケージ情報を見る
yum info httpd

// httpd24uのパッケージ情報をIUSリポジトリを指定して見る
yum info --disablerepo=* --enablerepo=ius httpd24u

雑記

基本はコマンド実行時に--enablerepo=xxリポジトリを指定して使っています。複数リポジトリを使用して依存関係が混乱するより、リポジトリは少なくしてリポジトリにないものはソースからビルドするのが良いのかどうかとかその辺りはまだ良くわかっていません。

python始めるにあたって漁った記事など

自然言語処理楽しそうだなーとかPHP飽きたなーとかでpython始めました。

pythonの始めの一歩をスタートするために読んだ記事などをメモしておきます。

現在のpythonのバージョンは3系が最新らしいのでできるだけ2系は排除する。

PHPでいうところのPHP: The Right Waypython版があれば一番助かる感じです。見つかりませんでしたが。

ドキュメント

概要 — Python 3.4.3 ドキュメント

環境構築

Mac

Macでpyenv+virtualenv - Qiita
phpenv,rubyenv的な。~~envを使うことで各言語の任意のバージョンをプロジェクトディレクトリごとに変えることができて便利です。もしかしたら2系も使うかもしれませんのでこれで入れます。素晴らしすぎますね。。

Linux

PyenvをCentOS6.3でセットアップする(超かんたんリファレンス付き) - Qiita

パッケージ管理

pipを使います。python3.4以降の場合は始めから付随してきます。

文法

Python3系 基礎文法 - Qiita

Google Python スタイルガイド — PyGuide - 2.29

Dive Into Python 3 日本語版

[python] 年末大感謝祭!初心者脱出のためのPythonTipsを50個紹介 | 私の小岩ホッチキス

Pythonらしいコードの書き方 - Kesin's diary

[python] 細かすぎて伝わりにくい、Pythonの本当の落とし穴10選 | 私の小岩ホッチキス

チュートリアル

Pythonで学ぶWebアプリ開発のABC みんなのPython Webアプリ編 HTML版(無料) | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

php プログラマのための Python チュートリアル — phpy 0.1 documentation
PHPからpythonへ移行するためのチュートリアルです。素晴らしい!僕にぴったりじゃないですか。

Pythonでつくる検索エンジン(Webクローラ, Mecab, MongoDB, Flask) - c-bata web

Webアプリケーションフレームワークとか

PythonのWebフレームワーク6種をかんたんに紹介 - モジログ

Pythonの軽量WebフレームワークBottleを試してみた(その1) - ルーティング編 (Advent Calendar 23日目) | アライドアーキテクツ エンジニアブログ

XdebugをLinux(CentOS6)に入れる。初期設定とかはまったとことか

ソースから入れる方法です。

// 最新のバージョンをダウンロード
# wget http://www.xdebug.org/files/xdebug-2.3.3.tgz
# tar xzvf xdebug-2.3.3.tgz
# cd xdebug-2.3.3/
# phpize
# ./configure --enable-xdebug 
# make
# make install

phpizeで以下のようなエラーが発生する場合

Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "ja_JP.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "ja_JP.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

環境変数を指定あげるとうまくいきます。

# echo ”export LC_ALL=C” >> /root/.bashrc
# source /root/.bashrc 

make installが成功すると以下のようなxdebug.soのパスが表示されます。

Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-non-zts-20131226/

このパスを元にphp.iniを編集します。
phpinfoを使ってLoaded Configuration Fileに指定されているphp.iniのパスを確認します。
もし指定されていなければその上のConfiguration File (php.ini) Pathのパスのディレクトリ以下にphp.iniファイルを作成します。

php.iniに以下を追記します。

;xdebug
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
xdebug.default_enable=1
xdebug.remote_enable=on
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_autostart=1
xdebug.remote_host=localhost
xdebug.var_display_max_children = -1
xdebug.var_display_max_data = -1
xdebug.var_display_max_depth = -1

サーバー再起動

# /etc/init.d/httpd restart

phpinfo内にxdebugで検索して何か入っていたらだいたい成功です。

ブラウザ上でxdebugのオレンジ色のテーブルのエラーが表示されない場合、html_errorsがOffになっているかもしれません。

# vi php.ini

html_errors = Off
↓
html_errors = On

backboneからのajaxがpayloadでPHPの$_POSTで取得できない

なんか何言ってるかよくわからないタイトルになっちゃいました。

状況としては、BackboneからサーバーにBackbone::synsを通じてPOST→通常のajaxと同じようにサーバー側(PHP)の$_POSTで取得しようとすると値が空。

chromeのdevelper toolのnetworkタブで送信内容を確認すると普段はFormDataとなっているところが 送信されるものがpayloadとなっていました。どうやらこれが原因のようです。

f:id:egapool:20150728224852p:plain

続きを読む