インポートしてみた

ブログ書くたびに、はてな記法忘れてるから MarkDown で書きたいし はてブロに引っ越しかなぁ とか思いつつ何年も経ってる— どぅーあき (@do_aki) 2018年3月19日

「PHP と SAPI と ZendEngine3 」についてを #phperkaigi で話してきたこと

php

概要 各種 PHP の実行環境 と PHP 内部の動きについて、 PHPerKaigi2018 前夜祭 で話してきました。 PHP と SAPI と ZendEngine3 と from do_aki 経緯とか PHPerKaigi2018 の存在を知ったのが 1/9 window.twttr = (function(d, s, id) { var js, fjs = d.get…

同じように見えて異なる PHP の文字列についての話

php

はじめに 本記事は PHP Advent Calendar 2017 18日目 です。先に断っておきます。 この記事の内容は、 php スクリプトを書く上で全く必要のない知識です。知ってすぐ何かに役立つような情報を求めていたらごめんなさい。 https://qiita.com/advent-calendar/…

再考:列挙型

php

はじめに php で列挙型と言えば、 @hiraku さんの http://qiita.com/Hiraku/items/71e385b56dcaa37629fe みたいな実装がほとんどかと思います。自分もだいたいこんな感じでいいかなと思っているのですが、2点ほどどうしても実現したいことがありました。1. I…

闇PHP勉強会 #yamiphp でASTとsignalについて話してきたこと

時間が開いてしまいましたが、先週 第七回闇PHP勉強化に参加し、トークしてきました。タイトルは「PHP AST 徹底解説(補遺)」および、「signal の話 或いは Zend Signals とは何か」です。前者は、過日 PHPカンファレンス2016 で発表した「PHP AST 徹底解説」…

PHPカンファレンス2016 #phpcon2016 で PHPのASTについて話してきたこと

php

概要 PHP7 で導入された AST(Abstract Syntax Tree) について、その概要と、導入によるPHPの変化を解説しました。 おまけでASTの利用法についても少し。AST の可視化は https://dooakitestapp.herokuapp.com/phpast/webapp/ にて試せます(動いてなかったらご…

生成される hash 値が php7 で少しだけ変わった件

この記事は 闇PHP Advent Calendar 2015 10日目 ですphp の連想配列で用いられているハッシュ関数は DJBX33A と呼ばれるものです。 実装は php5.6 までは Zend/zend_hash.h 、php7 からは Zend/zend_string.h に、どちらも zend_inline_hash_func という関数…

ext_skel の 雛形ファイルは php7 でどう変わったか

この記事は 闇PHP Advent Calendar 2015 9日目 です 先日の 闇PHP勉強会で、 ext_skel スクリプトで生成される雛形って、ほとんど更新されてないのでは 的な話をしたので、気になって調べてみました。上は php-5.6.16 と php-7.0.0 の skelton.c の diff で…

pcntl 拡張と signal

この記事は 闇PHP Advent Calendar 2015 5日目 です pcntl 拡張で signal を扱う php で signal を扱うためには pcntl 拡張を利用します。使い方は簡単で、pcntl_signal 関数で トラップしたいシグナル番号とコールバックされる関数(シグナルハンドラ)を登録…

ZEND_TICKS と tick 関数

この記事は 闇PHP Advent Calendar 2015 4日目 です tick について ZEND_TICKS とは、tick 不可能行*1の後に発行されるオペコードで、多くは、セミコロンで終わるステートメントごとに発行されます。ただし、デフォルトでは発行されず、利用するためには dec…

Casualに闇とBLTしてきました

2015/11/20 MySQL Casual Talks vol.8 2015/11/22 第六回闇PHP勉強会 2015/11/24 PHP BLT #1 意図せず、飛び石でトークすることになってました。 MySQL Casual Talks vol.8 N対1 レプリケーション + Optimizer Hint from do_aki いつものアレに対する近況報…

PHPカンファレンス2014 で「mysqlnd 徹底解説」を話してきたこと #phpcon2014

去る 2014/10/11。大田区産業プラザPiOにて PHPカンファレンス2014が開催されました。その中で、「mysqlnd 徹底解説」というタイトルでトークさせていただきました。 20141011 mastering mysqlnd from do_aki 雑感 思い返せば PHP カンファレンスで初LT をし…

ISUCON4 予選に参加した話 #isucon

去る、9月27日(土)に ISUCON4 予選に参加しました。 チームは「ご注文は php ですか?」です。 利用言語は go でした。名前に偽りありと言われそうですが、チーム名決定した後に利用言語を決めたのと、候補の中には「彼女募集中」とか、「ぺちぱー合コン部」…

MySQL Casual Talks vol.6 で N:1レプリケーション 書き換えについて話してきたこと

去る 2014年07月11日、MySQL Casual Talks vol.6 が開催され、例のごとく LT してきました。 ちとごたごたして書いてなかったので、今更だけど書き綴る。 N:1 Replication meets MHA from do_aki MySQL Casual Talks vol.6 の自分以外のトークについては @na…

闇PHP勉強会でphpのランダマイズについて話してきたこと

php

導入 "配列のランダマイズ、出来ますか?" を読み、php の場合はどうなの? と思ったので、調べてみましたというお話。結論としては、4.3.0 以降の php では等分散されます。ただ、疑似乱数生成器が libc 依存なため OS によって異なる結果となるので、異な…

CentOS6 でデフォルトレイアウトでインストールしてしまったけど後から一つのパーティションにまとめたメモ

概要 ある程度のディスク容量がある場合、なーんも考えずにそのままインストールすると、 /home に多くの容量が割り当てられます。これはこれで使いやすいケースもあるのだけど、/home を / に統合して一つの空間として使いたかったのでまとめた時のメモ。 …

第1回 PHP勉強会@相模原で、php 処理系の全体像について話してきました

php

@yoya さん主催のPHP勉強会@相模原 に参加し、トークしてきました。当初は SAPI 周りのことを入念に調べて、SAPI が何をするモノで、どのように動くのかを発表するつもりだったのですが、SAPI って実装ごとにかなり性格が違う。 結局、SAPI については処理の…

PHP 文字列リテラルにおける変数展開ノ全テ

php

はじめに 本記事は、PHP Advent Calendar 2013 18日目です。前日は @oasynnoum さんの http://oasynnoum.blogspot.jp/2013/12/raspberry-pi-php.html でした。ラズパイ x php ってあまり見ない組み合わせだったので、なかなかに新鮮でした。 さて、まず初め…

UNSIGNED の不思議な挙動 #mysqlcasual

かじゅある!この記事は、MySQL Casual Advent Calendar 2013 4日目です。3日目を数秒差で @kamipo さんに取られてしまい*1、ネタかぶったらどうしようとドキドキしていましたが、そのようなことはなくこれでようやく安眠できそうです。 MySQL では、UNSIGNE…

AngularJS 勉強会 に参加してきた

前から気になっていて、ささたつさんの記事 を読んでから、これは良いなと思っていつつも、ずっと触れずにいた AngularJS の勉強会が開催されるという情報を得たので、参加してみた。ほんとは、参加するまでに何か軽く作っておきたかったのだけど、 結局今日…

MySQL Casual Talks vol.5 で、マルチソースレプリケーションについて話してきたこと

前半はいつものネタ。"相変わらず安定稼働してる" というだけの話なのだけど、実は裏でちょこちょこ改良していて、ちゃんとものができていればそれを話す予定でした。んで、次に マルチソースレプリケーションの話。こちらは実際に試してみたので、その挙動…

isucon3 予選に参加して惨敗してきた話

選択言語は PHP。スコアは、FAIL でまくって 0。 完全に InnoDB Memcached の罠にはまってました。PHP 使ったチームだと、 @dekokun が素敵なエントリを書いているので、それを読むのが良いと思う。 → ISUCON予選にPHP実装で参加して3位になりましたーやった…

packagist に net-empty_port というモジュールを公開した話

php

packagist: https://packagist.org/packages/dooaki/net-empty_port github: https://github.com/do-aki/Net-EmptyPort net-empty_port とは 実行したマシンの空いてるポートを探し出してくれるモジュール。 https://metacpan.org/module/Net::EmptyPort に…

MySQL Casual Talks vol.4 で マスタn対スレーブ1レプリケーション と mysql_config_editor について話したこと

マスタn対スレーブ1レプリケーション については、 vol.2、 vol.3 で話したことに加えて、 pt-online-schema-change と相性悪いという話をしました。 同じ内容だけど、少しずつ加えてるのですよ。ただ、これだけだとあまりに内容が薄いので、もう一本続けて…

闇PHP勉強会で、不死身のphp拡張を作ろうとしている話をしてきた事

Immortal from do_aki 気軽に die するプログラムがあってテストしづらい、という話を以前聞いたことがあり、「たしか、拡張で opcode フックできたよなー」と思ったので、 die したときに単純に死ぬのではなく、何かをすることができる拡張をつくってみよう…

ブラウザだけで Excel 向け日本語 CSV ファイルを作る方法

※ ただし IE を除くブラウザで表示しているデータをCSV ファイルにしてダウンロードしたかったので調べてみると File API の Blob + createObjectURL でさくっとできるっぽい。 *1 だけど、日本語が utf8 になってしまう。そのまま Excel で開くと文字化けて…

Excel は Editor ですか? いいえ、Image Viewer です。

だいぶ経ってしまったのだけど、 東京Ruby会議10 事後懇親会: Q で即興で LTしてきたもの。Excel 方眼紙って、目を細かくしたらドット絵になるよなぁと思って、画像から Excel ファイルを作るスクリプトを組みました。という話です。 こんな画像(png) が、こ…

東京Ruby会議10 #tkrk10 で発表してきました

2013/01/13,14 と開催された 東京Ruby会議10 に参加し、またもやPHP関連ネタを発表してきました。最近、図らずも PHP 芸人としての腕が上がっている気がします……。 A bridge between php and ruby from do_aki 自分の発表について たった15分の発表なのだけ…

PhantomJS を CentOS 5.8系に導入したメモ

PhantomJS を導入しようと思ったら公式で配布されているバイナリが CentOS 5.8 だとバージョン合わずにインストールできないので、ソースから構築した。ついでに RPM 作ろうとしたら、付属の spec ファイルが 1.7 用だったので 1.8 用に書き換えたよという話…