タグ

ブックマーク / hnw.hatenablog.com (11)

  • PHP勉強会10年の歴史をふりかえる - hnwの日記

    PHP勉強会@東京が今月で10周年の節目ということで、大変めでたいですね。僕にとっては初めて参加・発表した社外勉強会だったこともあり、不思議な感慨があったりします。 そこで、ふと思いついてPHP勉強会の10年を表形式でまとめてみました。古参の人が懐古する以外の用途はほぼ無いと思いますが、現在の参加者の方や他の勉強会の運営をしている方の参考になる部分が1%くらいはあるかもしれません。 (企業名などは全て当時の名前です) 2005年 開催日 募集ページ 募集人数 会場提供 幹事 2005-06-18 (土) 第1回PHP勉強会 in Tokyo 24 株式会社HDE ELF 2005-07-23 (土) 第2回PHP勉強会 in Tokyo ? 株式会社HDE ELF 2005-08-28 (日) 第3回PHP勉強会 in Tokyo ? 株式会社ぷらっとホーム ELF 2005-09-18

    PHP勉強会10年の歴史をふりかえる - hnwの日記
    cos31
    cos31 2015/06/24
  • 第70回PHP勉強会で浮動小数点数の話をしました - hnwの日記

    7月22日に開催された第70回PHP勉強会で発表してきました。以下が発表資料です。 浮動小数点数周りのトピックを3点紹介する内容でしたが、思ったより反応が良かったように思います。 ただ、面白おかしく話そうとして、聞いている方々に無駄に恐怖を与えてしまったかもしれません。冷静に読み返していただければ、怖いように見える内容もレアケースの話題が多いことがわかるかと思います。 また、PDOの挙動については誤解を与えてしまったかと思いますので、プレゼン資料の25ページ目を大幅に差し替えてアップロードしました。 この点についてもう少し説明します。PDOでプリペアードクエリを利用する際、プレースホルダに値を埋め込むのにPDOStatement::bindValueメソッドを利用することができます。この際、bindValueメソッドの第3引数で利用でPDO::PARAM_INT定数を指定しても、第2引数の

    第70回PHP勉強会で浮動小数点数の話をしました - hnwの日記
    cos31
    cos31 2013/07/23
    鉄板ネタ
  • .gitignoreを作ってくれるgiboが便利すぎる - hnwの日記

    gitignore-boilerplates(長いので以後giboと呼びます)という便利なツールを紹介します。これは.gitignoreのひな形を作ってくれるものです。 https://github.com/simonwhitaker/gitignore-boilerplates もう少し詳しく説明すると、giboは様々なOS・エディタ・言語・フレームワークなどに特化したファイルの情報を利用して、複数環境を考慮した.gitignoreを作ってくれます。 .gitignoreに入れたいファイルは環境ごとに変わってくるわけですが、各人がcommitしたくないファイルの存在に気づくたびにチマチマ.gitignoreに追記していくのって当に無駄だと思うんですよね。giboはそれを自動化してくれるというわけです。 例えば、WindowsMacOSXの2環境、Emacsとvimの2エディタを使う人

    .gitignoreを作ってくれるgiboが便利すぎる - hnwの日記
    cos31
    cos31 2012/12/21
    ふつーに便利
  • PHPカンファレンス2012でphp-timecopについてLT発表しました - hnwの日記

    9月15日に開催されたPHPカンファレンス2012でLT発表してきました。以下が発表資料です。 発表資料:「php-timecopを実戦投入してみた」(slideshare版)(PDF版) ただ、利用シーンがイマイチわからないという声を何件か頂戴しましたので、稿で改めて補足します。僕が想定している利用シーンは次の3つです。 非エンジニアが、時刻に依存する手動テストを行う場合 この場合、ステージング環境で利用することになると思います 例:20時からセールが始まるのを、19時時点で動作確認したい エンジニアが、時刻に依存する手動テスト・自動テストを行う場合 例:絶妙なタイミングで日またぎや年またぎが起こる状況を再現させたい パラノイアなエンジニアが、date関数の第二引数が省略されたコードを見てブチ切れた場合 社内のニーズとしては1番目だったので伝えるには一番わかりやすいかと思ったんですが、

    PHPカンファレンス2012でphp-timecopについてLT発表しました - hnwの日記
    cos31
    cos31 2012/09/17
    あぁ、日付まわりで第2引数ないか、総ざらいで検査した覚えがある。。こういうまともな解決策を考えるべきよね。。
  • MacPortsでPHP5.2.10をインストールする方法 - hnwの日記

    先ほど気づいたのですが、MacPortsのphp5パッケージの中身がPHP 5.3.0になっていました。「port upgrade php5」すると名前空間とか無名関数とかが使えちゃうと思います。でも、僕は保守的なのでPHP 5.2.10がインストールされた方が嬉しいんですよね。 そんな人のために、Macportsで古いバージョンをインストールする方法が「howto/InstallingOlderPort – MacPorts」という文章に書いてあります。しかも、「An example」にそのものズバリPHPの例が書いてあります。僕はvariantsの設定をいじって下記のようにインストールしました。 svn co -r 53555 http://svn.macports.org/repository/macports/trunk/dports/lang/php5 cd php5 sudo

    MacPortsでPHP5.2.10をインストールする方法 - hnwの日記
    cos31
    cos31 2011/03/04
    助かった
  • PHPのcopy関数がファイルサイズ分のメモリを消費する件の対策 - hnwの日記

    補足(2010/08/24 15:00):rename関数について言えば、同一ファイルシステム上であればrenameシステムコールを利用するのでこの問題は起こりません。さらに蛇足ですが、ファイルシステムをまたがってrename関数を利用するとコピーしてから削除することになり、アトミック性を保証できないため、障害の原因にならないかどうかの検討が必要だと思います。 「AKIBA de: PHPのrename()関数はファイルシステム間で使うとメモリをバカいする」で指摘されている通り、PHPのcopy関数やファイルシステムをまたがってrename関数を使う場合に、PHPがファイルサイズと同じ大きさのメモリを消費してしまいます。環境によっては再現しないかもしれませんが、僕の手元のMacOSX 10.5+PHP5.3.3環境では再現しました。 <?php // 「dd if=/dev/urando

    PHPのcopy関数がファイルサイズ分のメモリを消費する件の対策 - hnwの日記
    cos31
    cos31 2010/08/24
    「貧乏なのでパッチ書いた」節約術にしては高度過ぎる。。
  • PHPでマルチバイト対応のtrim関数を作る - hnwの日記

    (2009/06/29)追記4:記事のmb_trim関数が動かない環境があったので、詳細を「PCREはUnicode文字プロパティをサポートするとは限らない」にまとめました。よりポータブルなmb_trim関数も紹介していますので、併せてご覧ください。 追記:「mb_ereg_match('^[\0[:space:]]+$', $str);」で、今回pregで作った正規表現'/^[\s\0\x0b\p{Zs}\p{Zl}\p{Zp}]+$/u'と同一になりました。mb_regex_encoding関数が使える分だけmb_ereg版の方が使い勝手も上です。ちょっとショック。 (2009/02/24 17:00)追記2:もっと簡潔に、「mb_ereg_match('^[\0\s]+$', $str);」でいいことがわかりました。POSIX正規表現風の表記がキモいな、と思っていたので、これは素晴

    PHPでマルチバイト対応のtrim関数を作る - hnwの日記
    cos31
    cos31 2009/06/18
    すげーすげー
  • PHPのsort関数は相当おかしい - hnwの日記

    追記(2009/02/28 15:35):ソートする配列の要素が数値または数値形式の文字列のみの場合は、<、==、>が推移律を満たすので、この記事のような矛盾は起こりません。念のため。 オヤジギャグがこらえられなくなったら立派なオヤジだと思います。それはさておき、今日はPHPのsort関数が不思議な挙動をする例を紹介します。 sort関数の紹介 sort ― 配列をソートする 説明 bool sort ( array &$array [, int $sort_flags= SORT_REGULAR ] ) この関数は配列をソートします。この関数が正常に終了すると、 各要素は低位から高位へ並べ替えられます。 PHP: sort - Manual マニュアルをみる限り普通のソート関数です。省略可能な2番目の引数の意味は次の通りです。 sort_flags オプションの 2 番目のパラメータ s

    PHPのsort関数は相当おかしい - hnwの日記
    cos31
    cos31 2009/02/27
    ダジャレと聞いて飛んできました
  • シェルからCarbon Emacsで開くファイルを指定する - hnwの日記

    MacOSXのシェルで作業しているときに、カレントディレクトリのhogehoge.txtをCarbon Emacsで開きたいことがあると思います。そんなとき、僕は下記のコマンドを打ちます。 $ eopen hogehoge.txt eopenというのは僕が.zshrcで定義しているエイリアスです。 alias eopen='open -a emacs' 割と便利なので、いつも悩んでいる方はどうぞ。completeを定義していないせいか、時々タブを打つと固まる気がしますが、気にしないフリをしています。

    シェルからCarbon Emacsで開くファイルを指定する - hnwの日記
    cos31
    cos31 2008/12/17
    痒いところに手が届いて嬉しいっす
  • 濁点ファイル名も扱えるSubversionをMacPortsでインストール - hnwの日記

    さて、今日はMacを開発環境にしている人なら全員共通の悩みをババーンと解決しますよ!というわけで、濁点や半濁点を含んだファイル名を扱えるようなSubversionをMacPortsでインストールします。これは僕の作った野良Portsですが、MacPorts管理になるので他の方法より気軽に導入できると思います。 背景 MacOSXを開発環境にしている人なら直面したことのある状況だと思いますが、svn checkout直後にsvn statusすると次のような不可解な内容が表示されることがあります。 $ svn status ? docs/濁点だよ.txt ! docs/濁点だよ.txt ひらがなの濁点を含むファイル名に関して、1行目はSubversionで管理してないよ、と言われていて、2行目は全く同名のファイルに見えますが、Subversion管理されているはずのファイルが見当たらないよ、

    濁点ファイル名も扱えるSubversionをMacPortsでインストール - hnwの日記
    cos31
    cos31 2008/10/25
    ktkr!!まさに今日ハマって断念したので、うれしい限りです。ありがとうございます。
  • PHPへのバグ報告の手順 - hnwの日記

    shimookaさんの先日のエントリ「bugs.php.netへのバグレポート」には同感です。「そうそう、みんなもっと気楽にバグ報告すべきだよね」とうなずきながら読みました。一方で、自分も最初にバグ報告したときは手順がよくわからなくて面倒だな、と感じたのを思いだしました。 そこで、「バグ報告はこうすればできるよ!」という手順をまとめてみました。これを見れば誰でもバグレポできる気がしてきませんか? バグ報告に必要な、必要最低限にシンプルなコードを用意 http://bugs.php.net/report.php へアクセス、適当に空欄を埋める 「Type of bug」を選ぶのが少し面倒ですが、不適切なら中の人が直してくれます。たぶん。 「Summary」はバグの題名になるので、少しだけ悩みましょう。タイトル重要。これも不適切なら中の人が直してくれますけどね。 「Reproduce code

    PHPへのバグ報告の手順 - hnwの日記
    cos31
    cos31 2008/10/22
  • 1