Perl日記

日々の知ったことのメモなどです。Perlは最近やってないです。

PHPのジェネレータについてLTしませんでした

PHP

社内勉強会で、時間の関係でできませんでしたが、作った資料がもったいなかったのと、Speaker Deck使ってみたかったので試しに貼ってみます。

PHPでUnix時間からDateTimeオブジェクトを作るときのタイムゾーン設定

PHP

はまったのでメモ。 UnixタイムからDateTimeオブジェクトを作るときに、他のやり方と同じノリでタイムゾーンを第二引数に渡しても効いていなかった。一応、マニュアルにも書かれていた。 PHP: DateTime::__construct - Manual 注意: $time パラメータが UNIX…

PythonでMacの濁音・半濁音のファイルを扱う

MacはNFD形式で日本語のファイルとかディレクトリを作るので、スクリプト内の日本語でひっかけられない。 import os os.mkdir("はっぴー") os.path.exists("はっぴー") #=> True これは引っかかる for file in os.listdir("."): if file == "はっぴー": #=> …

PHPのジェネレータまとめ

PHP

PHP5.5から使えるようになったジェネレータについて、社内普及用にまとめる。 ジェネレータとは ジェネレータは、プログラムにおいて、数列の各要素の値などを次々と生成(ジェネレート)し他の手続きに渡す、という機能を持っている手続きである。値を渡す…

ReactでJSON整形ツール書いてみた

できたもの https://dl.dropboxusercontent.com/u/9152456/json_stringify/index.htmlいろいろやった後、削りまくったら結局stateしか使わなかった。 <html> <head> <meta charset="UTF-8"> <title>JSON整形ツール</title> style略 <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.2/react.js"></script> </meta></head></html>

PHPの知見がたまったので共有します

PHP

順不同です。 インスタンスメソッド内でのクラス変数取得 from_static() ); //=> array(123, 234, 345) p…

PHPのつらいところまとめた

PHP

半年近くPHP5.3を仕事で使っててつらかったことをまとめた。 キーワードも関数名も大文字と小文字を区別しない h(); // hoge! 複数人で作ってるとほんとこういう些細なところで余計な手間がかかる。 チェックするのを自動化するのも手間。 あるいは、これく…

PHPの関数の引数メモ(デフォルト値の定数、タイプヒンティングのnull)

PHP

関数の引数の挙動メモ。 デフォルト値 デフォルト値は、定数式である必要があり、 (例えば) 変数やクラスのメンバーであってはなりません。 http://php.net/manual/ja/functions.arguments.php#functions.arguments.default定数ならばよいということで、定数…

PHP5.3での無名関数内でのselfや$thisは解決できないから気をつけろ

PHP

ハマったのでメモ。 PHP5.4以降なら問題ないっぽい。 無名関数内でselfや$thisを使うとエラーになる。

PHPのオブジェクトはnewできる

PHP

なんか動いたのでメモ。 str = $str; } } $hoge = new Hoge("hoge"); print_r($hoge); $fuga = new $hoge("fuga"); // ★オブジェクトにnewする print_r($fuga); __construct() is called. Hoge Object ( [str] => hoge ) __con…

PHPのarray_walkはforeachに置き換えよう

PHP

PHP: array_walk - Manual array_walkはforeachに置き換えた方が圧倒的に可読性が良いと思う。 特に引数でそのまま無名関数を渡してしまう場合。 array_walk版 15 // [1] => 25 // [2] => 35 // [3] => 45 // [4] => 55 //) foreach版

PHPのabstractクラスのstatic関数は呼べる

PHP

呼べたのでメモ。

PHPのいいところを考える

PHP

辛いところを見ていても辛くなるだけなので、PHPのいいところを考えてみる。 タイプヒンティングがある PHP: タイプヒンティング - Manual関数の引数に型指定ができるよ。 ただしintやstringなどのプリミティブ型は指定できないよ。

PHPのtraitはinstanceofで確認できない

PHP

PHPではtraitというメソッドの固まりみたいなものをクラス内に差し込むことができる。 が、interfaceと違って、instanceofで特定のtraitが使用されているか判定することができないようだ。traitの場合 bool(false) interfaceの場合

PHPの配列は配列ではないので気をつけろ

PHP

PHPの配列は配列ではない。 PHP の配列は、実際には順番付けられたマップです。 http://php.net/manual/ja/language.types.array.php他の言語でいうところの配列は、PHPでは添字がキーになった辞書である。 なので、値のリストと、キー・値のペアを一緒に混…

PHPのarray_filterは添字を維持するので気をつけろ

PHP

やることはPerlのgrepやRubyのArray#selectと同じなのに、PHPのarray_filterは添字を維持してフィルタしてくれやがる。Ruby [10, 11, 12, 13, 14, 15, 16].select{|i| i % 2 == 1} #=> [11, 13, 15] PHP Array //=> ( //=> [1] => 11 //=> [3] => 13 //=> […

PHP CodeSnifferを使ってみた2

PHP CodeSnifferを使ってみた1 - Perl日記の続き。PHP_CodeSnifferをインストールするとデフォルトで幾つかの規約セットがすぐに使える。 $ ./vendor/bin/phpcs -i The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz and Zend…

PHP CodeSnifferを使ってみた1

コーディング規約に沿っていないコードを素早くチェックするために調べたメモ。https://github.com/squizlabs/PHP_CodeSnifferこのPHP CodeSnifferというのを使ってみた。 Snifferはネットワークのトラフィックを監視するひと・ものの意味らしい。Composerを…

野良スクリプトを保護してる話

数年続いているプロジェクトに放り込まれたのはいいものの、各地に散らばったサーバに広がっていたのは場当たり的に作られたシェルと無造作に放置されたシェルファイルと誰が設定したか使途不明のcronだった…。というわけで、このままではいつか必ず爆発する…

社内LTで得られたスライド作成知見まとめ

何回かスライドを用意してのトークを十人くらいの前でやってみて、スライド作成についての得られた知見メモ。 LTというかカジュアルに10〜20分くらい話す感じのもの。 表紙には日付を入れる あとで見た時のため。 日付は、どれくらい腐っているのかの最も重…

辛いコードに立ち向かうときのメモ

心を落ち着ける 猫などのなごむ画像を用意する お菓子を用意する 紙とペンを用意する 構造などを手で描いてみると把握しやすいときもある 手元に叩いてしまいそうなものを置かない モノは大切に コメントは、コミットされたタイムスタンプを見て、古ければ古…

動けばいいや

このエントリーは闇堕ちモードで書かれています。 インデントが揃っていなくても動けばいいや 変数名が全部$iでも動けばいいや 変数名が変な英語でも動けばいいや 関数名が変な英語でも動けばいいや 言語が保証していない嫌な動きでも動けばいいや コピペだ…

隣のプロジェクトが青い

最近新しいプロジェクトに参画したのだけれど、隣で開発しているプロジェクトが羨ましい。 自分のプロジェクト 隣のプロジェクト ユニットテスト 書かない→JenkinsでPHPUnitを動かす環境を作ったが誰も書かない チームメンバ全員が書く 見通し いろんな人の…

ゲームの企画会議に参加した

初めてゲームの企画会議に参加したので感想など。 ゲームといってもソーシャル的なアレ 男女含めて7,8人、立場もプログラマからプランナからいろいろ 事前に案を考えてきて、と言われたので考えた 既存のゲームをベースにした「xxxみたいなゲーム」 世には出…

PHPでMySQLにつなごうとしてエラーになった

PHP

$ sudo apt-get install php5-mysql接続情報などをいれて、アクセスすると、 could not find driver既にMySQLなどは動いている状態。Nginxを再起動しても解決せず。 いろいろ確認した結果、PHP FPMを再起動しないとだめなのだった。 $ sudo service php5-fpm…

やる気とは何か

やる気とは何だろうか。毎日残業することか? 違う、それはただ目測を誤っただけだ。無遅刻無欠勤で働くことか? 違う、それはただ運が良かっただけだ。お金を儲けるために奮起することか? 確かにそれはあるかもしれないが、それは結果だ。 最近僕が思い至…

振り返らないプロジェクト

今日チャットにこんなことを書いていた。 前を向いているつもりが全然違う方向になってしまわないように、時々後ろを振り返ったほうがいいですね 猛進するプロジェクト 先日、携わっていたプロジェクトがようやくリリースされた。しかしプロジェクトとして全…

最近考えていること

試用期間終わったのでいろいろ良くないところに口出していきたい。

最近読んだ本とか

最近読んだ本SQL Antipatterns: Avoiding the Pitfalls of Database Programming (Pragmatic Programmers)作者: Bill Karwin出版社/メーカー: Pragmatic Bookshelf発売日: 2012/11/06メディア: Kindle版この商品を含むブログを見るマイクロインタラクション …

ハッカーと画家を読みました

「オタクの話」→「Lisp」→「社会の教科書」→「Lisp」→「Lispいいよ」という印象でした。ハッカーと画家 コンピュータ時代の創造者たち作者: ポールグレアム,Paul Graham,川合史朗出版社/メーカー: オーム社発売日: 2005/01メディア: 単行本購入: 109人 クリ…