Shin x Blog

PHPをメインにWebシステムを開発してます。Webシステム開発チームの技術サポートも行っています。

勉強会やカンファレンスにライブ配信は必要か?

ひと昔前(といっても数年前ですが)の勉強会では、Ustream を使ってセッションをライブ配信するということが一般的でした。私は、関西在住のため、特に東京で開催されているイベントをライブで視聴できるのはとても便利でありがたいものでした。 私自身がラ…

PHP + PostgreSQL カーソルを使ったデータ取得の計測

php

PHP(pdo_pgsql)から PostgreSQL に SELECT 文でデータを取得する際に、カーソルを使った場合と使わなかった場合で、どのようにリソース消費(主にメモリと実行時間)の違いがあるのかを計測してみました。 検証内容 PostgreSQL テーブルに、1,000,000 件の…

「制約でコードに秩序を」を PHP カンファレンス福岡 2016 で発表してきました #phpconfuk

PHP カンファレンス福岡 2016 で、「制約でコードに秩序を」という発表を行ってきました。 発表資料 サンプルコードは、下記です。 github.com セッションでは、資料は最低限のものにして、PhpStorm によるライブコーディングをしながら解説するというスタイ…

ここを気をつけるともっと良くなる勉強会の発表

勉強会や技術系のイベントで色々な発表を聞いていると、せっかく勇気を出して壇上に立ったのに、ちょっとしたことでもったいなあと感じることがあります。これは特に、発表に慣れてない人に多く感じます。 本エントリでは、大いなる自戒を込めて、発表慣れて…

CircleCI + Docker で PHP 7 と PhantomJS 使って CI する

CircleCI で、とあるプロジェクトの CI 環境を作りました。このプロジェクトは、PHP 7 で開発しているのですが、まだ CircleCI 公式では PHP 7 がサポートされていません。 そこで、Docker を使って、PHP 7 + PhantomJS 環境を構築しました。 構成 PHPUnit …

「サーバ/インフラエンジニア養成読本 DevOps編」にて Ansible 2 について書きました。

2016/02/26 に出版される「サーバ/インフラエンジニア養成読本 DevOps編」というムック本にて、Ansible 2 について書きました。 本書は、昨今では普及してきた DevOps や Infrastructure as Code といったキーワードに関心がある方向けの本です。はじめに概…

Vagrant + Ansible で開発環境を作るなら ansible_local プロビジョナがいい!

Vagrant 1.8 で、ansible_local という新しいプロビジョナが追加されました。 これは、Ansible をゲスト(VM)側にインストールして、ローカルコネクションで VM 内で実行するものです。これは、まさに待ち望んでいた機能ので紹介します。 Vagrant + Ansible…

PHP 7 でコードを書いたファーストインプレッション

正月の書き初めとして、PHP 7 でコードを書いてみました。 年始から始まるプロジェクトで PHP 7 に取り組む予定なので、素振りも兼ねています。実際に書いて感じたことを挙げてみます。 書いたコード 今回書いたのは、Markdown からコードブロックを抜き出し…

2015年発表資料と活動まとめ

2015年も残り僅かとなりました。年の瀬に今年の活動をまとめてみます。 技術サポートと開発 本業の 1×1 では、技術サポートと開発を両輪として活動していました。 私が行っている技術サポートは、昨今よく話題に上がる「技術顧問」のようなものですが、主…

CI で PHPコードスタイルをチェックする Style CI

PHP コードスタイルのチェック、整形を行うサービスである Style CI を紹介します。 このエントリは、Laravelリファレンス Advent Calendar 2015 の22日目です。 Laravel 公式が利用しているサービス Style CI は、Alt Three が運営している GitHub にホスト…

2015年の技術本執筆環境

2015年は「Laravelエンジニア養成読本」「Laravelリファレンス」、そしてまだ未発表ですが、もう一冊の技術本の執筆に参加しました。 時代によって技術本の執筆環境も変化してきています。今年、技術本の執筆に利用したツール、サービスを紹介します。 過去…

Laravel セッターインジェクションによる DI

Laravel のサービスコンテナでは、DI の手法として、コンストラクタインジェクションとメソッドインジェクションをサポートしています。サービスコンテナの機能を応用することで、セッターインジェクションを利用できます。 このエントリは、Laravelリファレ…

Laravel 5.1(LTS) を解説した「Laravelリファレンス」を執筆しました

「Laravelリファレンス」という書籍を執筆しました。 Laravel リファレンス[Ver.5.1 LTS 対応] PHPカンファレンスの壇上でご紹介した書籍がいよいよ登場します。色々な事情で、出版予定日は年を越す形(2016/01/08)になりましたが、何とか年内に入稿まで進…

OSX の開発環境を Ansible で自動構築する(El Capitan / Yosemite)

13inch MacBook Pro を購入したので、開発環境の構築を行いました。 以前は、brew bundleで自動構築していたのですが、今回は Ansible を使って構築を行いました。このエントリは、Ansible Advent Calendar 2015 の 9 日目です。 今回の構築にあたっては下記…

iPhone 6s の LTE 通信量を 20分の1 に節約した

2015/10/17の朝、KDDIから「通信量が6.50GBを超え通信速度制限が迫っています」とショートメッセージが来ました。 たしかに iPhone 6s を買ったばかりだったので色々ダウンロードはしましたが、それほど使い方が変わったわけでは無いです。この月は出張があ…

PHP 7 の無名クラスから考えるクラスの在り方

いよいよ、PHP の次期メジャーバージョンの PHP 7 がリリースされます。すでに、RC4 が登場しており、来月予定されている本リリースが楽しみです。 PHP 7 には幾つかの新機能が盛り込まれているのですが、その中でも気になるのが、無名クラスです。 無名クラ…

「いまどきのPHP開発現場 -2015年秋-」を発表してきました&参考資料まとめ

2015/10/03 に開催された PHPカンファレンス2015 にて、「いまどきのPHP開発現場 -2015年秋-」という発表を行ってきました。 このエントリでは、発表資料とセッションで取り上げたツールやサービスを利用する上で参考となる資料をご紹介します。 発表資料 い…