tetsunosukeのnotebook

tetsunosukeのメモです

php

与えられた変数が数字かどうか調べる のに ctype_digitを使って死んだ話

PHP

プログラムの受け入れテストをしていて、どうしても通らない箇所があって、こんな感じに書いてあったのです if (ctype_digit($num)) { // 通ってくれない処理 } まあもっと言うとこんな $list = array( '1' => 10, '2' => 20, ); foreach($list as $key => $…

if(hoge) の危険性

PHP

if (DEV) ↘ DEVをdefineしてなかった! ↙ DEV=string(3) 'DEV' ↘ if ('DEV') -> true ↙ _人人人人人人人人人人人人人人人_ > defineしないとDEVってことに <  ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄

数値の割り算でハマる

「PHPとPostgreSQLに投げてfloorを計算させたら結果が違うんですっ!」とか言われてちょっと何言ってるかわからない状態になった。どうもこういうことらしい。int(に見えるリテラル)をintで割ったときの挙動の問題のようだ。PHPの floor(-155/10)の結果 $ …

ファイルからメソッドを抜き出して分割しまくってやるぜ

php

複数のファイルに全く同じメソッドを発見してしまいキレたの巻。メソッドごとに切り出してそれが同じものであればコピペしやがったなこのやろうしけいだ!ってできるかな、と思った。まあ昨日の流れでphpcpdとかでチェックする話なのだろうけど、いざチェッ…

phpcpd だとCopy Paste Detectをあまりしてくれない件、でjenkinsで困った。

php

phpcpdとpmd とりあえずコピペした下記のような2つのクソコードを作ってみる。 Dollar.php prefix = "$"; $this->value = $value; } public function __toString() { return $this->prefix . $this->value; } } Yen.php

これから始めるPHPerのJenkinsでCIやってみよう に参加してきた

php

id:officel(@raki) 主催の これから始めるPHPerのJenkinsでCIやってみよう(DevHub西新宿) #DevHub0128 に参加してきました。共催というか。まあ今回は会場提供だけ、の予定だったのですが、前日にちょっと予習をしようと思って、というかうちの会社のメン…

Page に写真をアップできない...

2011/6/11 に開催した、Facebookアプリつくろう会から4ヶ月が経とうとしていますが、みなさんアプリ作っていますか?今日は一般のユーザとして、ファンページ(コミュニティページ?)へ、写真を投稿しようと思いプログラムを書いてみましたが、どうもうまく…

組み込みの機能にもテストを書こう

PHP

割と有名な、PHPの文字列と数値を「==」で比較するときは気をつけましょう っていうやつなんですけど、 こういう挙動っていつの間にかPHPがアップデートされたら治るかもしれないし、 そもそも挙動を確認するためにみんなちょっとしたスクリプトを書いてみた…

PHPUnitによるユニットテストについて

php

単純な関数に関してのユニットテストは簡単ですが、DBを伴うユニットテストについては自動化が面倒な状況にありました。RubyOnRails等で使われている、fixturesの考えに基づいて、以下のような方法で自動テストを行うことができるようになったので記録してお…

Google URL ShortenerのAPIが公開されたので

php

PHPなんですけどちょろっと書いたのでメモ。URLの短縮に関してのAPIドキュメントは下記。 http://code.google.com/intl/ja/apis/urlshortener/v1/getting_started.html#shortenデータとしてJSONをPOSTするらしい。 public static function getGoogleShortUrl…

コードレビュー会をやってみた

アジャイル開発とか、チームビルディングに興味のある今日この頃。とりあえず社外で勉強会とかやってるのに、社内はいまいちだよな、というわけで、どういう成り行きだか忘れたけど、コードレビュー会をやってみることになった。お題は、ジョジョということ…

mor.phためした。

PHP

PHPは書かないつもりでいたのですが仕方なく。なんかクラウド環境ということで、Java関連を調べていたら"mor.ph"とかいうのを発見したので試すことにする。GW(GeekWeek)らしいので。アカウントもすぐに取得でき、アプリケーションの作成も簡単。ただし、若干…

人のコードを見ることは大事だよね

最近PHPを書くのはやめてPythonというかGoogleAppEngine界隈でgeekDB入りを目指すtetsunosukeです(ぉ見ることが大事だけじゃなくて、それについて自分も考えて書いてみることが大事だよね。ってことで。"ギークなお姉さんは好きですか:初心者向けPHP練習問…

PHPカンファレンス2008にいってきた

PHP

まとめる時間がないのであとでかかなきゃと思いつつ、まだない。職場でブログ書ける時間欲しい。仕事上のブログもまだリリースしてない。だめすぎる!というわけで今年のレポートでの一番の印象深いのはこれだ二件目の藤本真樹 http://www.google.co.jp/sear…

Zend_Form を使ってみている。

PHP

Zend Framework の 1.5 がリリースされたとのことで、早速新しい機能を使ってみた。contextSwitchとか結構やりやすくてよい。ところで Zend_Form なんだけど、 Validation がちょっとうまくいかない感じ。こんな感じでチェインするところなんかはクールなん…

PEARの見てるphp.iniが思い通りに行かない。

Mac のphp5なんだけどね。pear show-configしたときのphp_iniを設定したのだけど、どうもそのphp.iniを見ていないご様子。 おかげでmemory_limitを超えてしまってzend frameworkをpear経由でインストールできなかった。php.ini location php_ini /usr/local/…

Zend PHP5 Certification 講習会開催のご案内<ins datetime="2008-04-02T10:12:19+09:00">締め切り間近?!</ins>

PHP

おととい、PHPの中級者向けコミュニティを作るということを書きましたが、第一回目のイベントとして、Zend PHP5 Certification 取得のための講習会を行うことになりました。講師にはZend Japan様にて技術アドバイザリおよびセミナー等の講師を務める照井様を…

中級〜上級者のためのコミュニティ作るよ!@渋谷

PHP

このへん(http://events.php.gr.jp/event.php)に掲載されるイベントはちょっとレベルが高すぎて参加しずづらいなあと思っている人のために、PHPに関して中級から上級者へのステップアップを目指すためのコミュニティを作ることになりました。第一回はZend …

昨夜のべにぢょは寝ていたのか?

PHP

つまり、読み込み専用ファイル guest.dat に$line の内容を書き込め シャア専用ザクにアムロが乗ってる・・・。ついでなので軽く突っ込んでおくと $line. というのが変数なのではなくて「.」自体に意味がある。 っていうかこれまでの回で使っているぞ! $a .…

(昨日のことですが)PHP拡張勉強会いってきた。

PHP

荻原さん(id:i_ogi)主催のPHP拡張勉強会の第一回にいってきた。 初のサイボウズラボ。(id:shimookaさんによる写真にちょっと写った) http://photozou.jp/photo/show/106524/6875339詳しい資料は荻原さんがアップしたこちらで。 http://www.slideshare.net…

時間がなくてできてないことをやってる人たちがいたのだけど

PHP

PHPでTwitterのBotを作ってみるまず、ブラウザを起動してmetaで再読み込みなんてそれbotっていわねーよとか思った。まあ、とりあえずcronが使えるなら使えばいいと思うのですが、使えないのかな?で、自分が本当に作ろうと思っているbotは、Twitterの場合、…

はてなグループに拡張日記書いた

PHP

早速インストールではまってみたとか。 http://phpext.g.hatena.ne.jp/kidd-number5/

拡張勉強会行くよ!

PHP

PHP拡張勉強会参加します! http://events.php.gr.jp/event.php/event_show/34TypeKeyプロフィールも書き直した! http://profile.typekey.com/itotetsunosuke/はじめての方(ほとんどだと思うけど)よろしくね!

test++ ?

早速ですが、PHPのキモい仕様のお時間です。

castの恐怖 以下のスクリプトの実行結果は?

dateを第二引数なしに二回呼んじゃらめええ

PHP

ギークなお姉さんは好きですか 9日目 カレンダを作ルンダ♪に、またよくある本にありがちな過ちを発見。これほんとそこらじゅうでよく見かけるんだよねえ・・・。 2 $today_year =date("Y"); 3 $today_month =date("n");これはダメだって。date関数は第二引数…

Ustreamのchatにtelnetでつなぐ

接続するとこんな感じになる $ telnet chat1.ustream.tv 6667 Trying 216.52.240.155... Connected to chat1.ustream.tv. Escape character is '^]'. :chat2.ustream.tv NOTICE AUTH :*** Looking up your hostname... :chat2.ustream.tv NOTICE AUTH :*** F…

ブクマコメより

先日countをforの中に書くなよって話を書いたらid:fbisさんよりコメントいただきまして for($i=0; $c=count($array); $i<$c; $i++){ ... } と書いているとのこと。 coool! ナイスギーク!略してNG(ヤメ アレよね、入門書もたいてい、forの最初の部分が「初…

文字列と数値の比較について、それはクソだろう。

PHP

'abc' == 0 になることなんてPHPをちゃんとやっていれば有名な事実なのですがこれも気をつけたほうがいいと思います。 $ php -r "echo '011' == 9 ? 'equal':'not equal';" not equal $ php -r "echo '011' == 11 ? 'equal':'not equal';" equal php -r "…

Benchmarkブームなのでarray_pushについて書いておく

PHP

"PHPの素朴な疑問とか - まちゅダイアリー"にて、ループに関するベンチマークの補足をしてもらいました。コンパイル時の最適化、というのは確かにあるのかもなあ... で、1~10000までの数値を要素とする配列を作る例について、今更感もあるが測定結果。 -----…