Perl日記

PerlとかRubyとかPHPとかPythonとか

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人 クリ…

Lean UXセミナーに行ってきた #LeanUXja

『Lean UX――リーン思考によるユーザエクスペリエンス・デザイン』刊行記念セミナー at GREE | Peatix に行ってきたので、以下メモ。 Javelin boardというフレームワークがあるらしい 米Yahoo!のMarissa Mayerさん リモート勤務からオフィス勤務に 無駄をなく…

なぜコーディング規約を守らなければならないのか

答え. 規約が守られていないと、そこばかり気になって肝心の「何をしているか」がぼやけるから。 (例). Pull Requestにて。「ここスペース空いてない。ここインデント揃ってない」「直した。マージおk?」「まだ見てねーよ」(例). 機能追加にて。「この辺の…

技術的負債について思うこと

ぐだぐだ言ってないで返済できるように考えるべき。

iTermのビジュアルベルを変える

聞かれたので書く。yudaiさんがやってたのを真似しただけ。 /Applications/iTerm.app/Contents/Resources/bell.pngを変更します なのでpngファイルである必要があります iTermのPreferences->Profiles->Terminal->Flash visual bellをチェックします screen…

外部サービスに依存しすぎるとなんかあったとき怖い

いろいろ書いて全部消した。 大切なのは、お金払っているサービスだからって安心せずに、バックアップとか止まった時の対応策とか、ゆっくりでも進められるのか完全に止まるしかないのか、ちゃんと日頃から考えておいた方がいいってこと。 依存しすぎると共…

キャプチャした$1はもう一回m||すると消える

久しぶりPerl書いたらハマったのでメモ。こんな仕様だったか。 my $str = "hoge123fuga"; # 123をキャプチャ $str =~ m|hoge(\d+)fuga|; warn $1; # 括弧使わないで正規表現マッチ $str =~ m|hoge|; warn $1; # さっきの$1は消える 123 at - line 5. Warning…

Pythonを初めて触ったメモ

printにも括弧は必要 予約語が少ない (33個?) インデントでブロックを作るのでブロックの終わりがどこか不安になる undefとかnullとかnilではなく、None 真偽がTrueとFalseでucfirstだった 関数からの値の返却にreturnが必須 return a, b, c でTupleを返せる…

Pythonでスクレイピングしてみた

初めてちゃんとPython使った。 バージョンは3.3.3。pyenv上で動かしてる。 ライブラリ requests Beautiful Soup 4 pip installした。 この2つは素晴らしいとおもいました。 やってみた はてなホッテントリのタイトルとリンクを抽出。 import requests from …

リアルカンバン作った

だらだら書く。開発チームでJIRAのAgileボードを使っていたけれど、なんかずっとやりにくいなーと思ってて、やっぱりスタンドアップミーティングとか集まって話すのにデジタルは不向きだなという結論になった。あと開発チームと営業チームの情報共有がうまい…

JenkinsでSlackに通知してみた

仕事場の開発チームでSlack使ってる。 Slack: Be less busyJenkinsでも簡単に通知できるみたいなので、やってみた。ていうか全部https://my.slack.com/services/new/jenkins-ciに書いてある。 Slack Add Service IntegrationsからJenkins CIを選ぶ https://m…

2013年振り返り

2013年は社会人になってから一番いろいろあった年だったとおもう。 初めてインフルエンザになった 初めて転職した 初めて外人と一緒に働いた 否が応でも英語を覚える羽目になった 文化の違いに四苦八苦した テスト書いて自動で回した 興味の移ろい ちょうど…

ログインとサインインで悩む

いま認証周り作っているのでLoginとSign inってどっちがいいんですかとアメリカのひとに聞いたらどっちでもいいと一蹴されたのでそういえばGithubとかどうなってたっけと確認したら余計混乱した。Github https://github.com/loginURLがログインでボタンがサ…

greetech04行ったのでメモと短い感想

GREE Tech Talk #04 : スマートフォン時代のソフトウェアテスト 時間経ってしまいましたが一応メモとか。 「未来を知る最善の方法はそれをつくることだが、次善は歴史を知ることだ」 スマホアプリ 受け入れテスト「お客さんが鍛えられてない」 「プライバシ…

開発の引き継ぎ時に聞いておきたかったこと

出入りの比較的多い業界なので、急に開発や保守の引き継ぎをすることも稀によくある。 前任者に話を聞ける内に聞いておきたかったことを書いた。 特に記録が残っていないと代わりに絶望だけが残るのでもっと注意しておけばよかった。 あなたがそれを選んだ理…

開発時に出会いたくないパターン

悩んだりうまくいかなかったり解決したり。だらだら書いた。 手作業症候群 とにかくなんでもかんでも手で確認・作業する必要があると思い込んでしまう病。 そりゃiOSアプリとかAndroidアプリとか最終的には実機確認は必須だけれども。その前にやれることは多…

転職してから半年くらいでやったことまとめ

IRCを導入した 遠隔地で作業しているひともいた中でメールでのやりとりはとても面倒だった。(同じオフィスで開発してるひとからもメールでいろいろ来た) だるかったので、ngIRCdを導入して、やりとりがすごく楽になった。(基本英語だが) リポジトリを分割し…

あまのじゃく気質

どうも言われたことの逆をしようとしてしまう。 今日はもう帰っていいよ、と言われると、もう少し頑張ろうと思ってしまう 今日はこれを仕上げてね、と言われると、だるさ全開で早く帰りたいとしか思えない 営業部のひとから、 時間あるときにちょっとこここ…

もしチーム共有の開発環境があるなら

できるだけ綺麗な状態を維持するように心掛けよう。どうしても手動で変更する必要があるときは、他のひとたちに声をかけよう。何かDBのデータを変な値にしたいときは、他のひとたちに(ry負荷をかけてみたいときは、(ryもし作業がつつがなく終わったら、元の…

近況

Perlほとんど書いてない。 だいたい毎日RubyでSinatraとMySQLと戯れている。 あとAndroidアプリ作るためにJava勉強し始めた。 AndroidStudioと迷ったけど、最初はEclipseでググりながらいろいろいじってみてる。 あといま読んでる本とか。 情熱プログラマー …

はてなブログに移行しました

そろそろいいかなと思ったので。

"見える化"のススメ

元ネタ。 カタルエ - 専業主夫の漫画ブログ: “見せ家事”のススメ ぼく「一部のAPIで応答する処理が他の仕様とちぐはぐだったので、統一させて一気にシンプルにしました!」 (↑少しずつ既存の部分が壊れていないか確かめながら手間暇かけた) じょうし「……、…

JenkinsがGithubにpushされたbranchをテストする

頑張ったので忘れずにメモ。 master以外のbranchがpushされたときにはそのbranchでテストが走ってほしい。 結論からいうと、Gitプラグインの$GIT_BRANCH変数を使えばいいみたい。 Jenkinsにアカウントを作る githubさんを追加しておく。 行列による権限設定 …

最近思ったり考えたりしてること

CIは大切 プロジェクトの最初に空っぽでも仕組みをいれておくべき でないとずるずると引きずる羽目になる 手作業をなくす努力をしなければならない 管理用の仕組みは用意しておくべき DB直接更新は怖すぎるし鬼畜だ 関係ないファイルをコミットしない リポジ…

carton execでGetopt::Long

自分もメモ。 コマンド実行時に「--」で明確に引数の終わりを示さないと、carton上のGetopt::Longが動かなかった。 # hoge.pl use Getopt::Long; my $verbose = ''; GetOptions ('verbose' => \$verbose); print "verbose: $verbose\n"; $ carton exec perl …

Perl勉強会で話した

3/8 18:40から約2時間、自分含め7人くらいで、Perlについて語り合った。いいね! 前回と違い、何も準備しなかったのがよかった 最初に内容を固定してしまうと、どうしてもそれに沿った内容を意識してしまって、柔軟性がなくなるからかな 参加者同士の質疑…

Github上のPull Requestで気をつけていること

ブランチ→ブランチのPR PRするとき、レビューするとき共通 トピックブランチの名前 Redmineのチケット番号を含めたか マージ先のブランチ 間違えていないか 各コミットメッセージ Redmineのチケット番号を含めたか 「なぜ」そうしたのかを書いたか 「〜から…

Redmine-Chanに「いつやるのか?」「いまでしょ!」機能を追加した

Redmine::Chan で IRC からプロジェクト管理を見て使わせていただいております。 https://github.com/onishi/Redmine-Chan 空前の「いまでしょ!」ブーム(職場限定)なので、minechanにもこのビッグウェーブに乗ってもらうことにしました。 優先度をMAXにして…