タグ

ブックマーク / www.1x1.jp (24)

  • 「レイヤードアーキテクチャを意識したPHPアプリケーションの構築」を発表しました

    2015/06/27 に開催された PHPカンファレンス福岡2015 にて、「レイヤードアーキテクチャを意識したPHPアプリケーションの構築」という発表をしてきました。 MVC フレームワーク(CakePHP / Laravel)で構築したアプリケーションをレイヤードを意識して改善したという内容です。参加いただいた皆さんの顔ぶれを見ると歴戦の勇者みたいな方ばかりでしたが、和やかな雰囲気でセッションを進めることができました。ご参加ありがとうございました。 発表資料 発表資料は以下です。 MVC にサービスレイヤを追加して、それぞれの役割を意識して作る。レイヤ間の依存を明確にする。サービス(ドメイン)を中心に考える。よく言われていることなのですが、実際に実践する中で、ハマりがちなことや実際に実践してきた中で感じたことを紹介しました。もちろん、これで ok ということはないので、今後取り組んでい

  • Composer を倍速にした、たった 1 行のコード

    まだ 12 月早々ですが、PHP ユーザに素敵なクリスマスプレゼントが届きました。 いまや使うのが当たり前となった Composer ですが、複雑な依存解決に実行時間がかかるのがネックでした。 これは日国内だけでなく、海外のユーザも同じで、皆がしょうがないと思いつつも、小さな不満を持ちながら使っていました。 そんな、ある�日、わずか 1 行のコードが追加されたことで、実行時間が、わずか半分になるという現象が起こりました。 Composer を倍速にするには? composer self-update を実行して、最新版にするだけです。 $ composer self-update 実際の効果 このコードの効果を見てみましょう。composer コマンドの --profile オプションを使って、実行時間と使用メモリ量を出力します。 $ composer update --dry-run

  • 「Ansibleではじめるサーバ作業の自動化」を発表してきました

    2014/10/11 に開催された PHPカンファレンス にて、「Ansibleではじめるサーバ作業の自動化」という発表を行ってきました。 午前中のセッションだったのですが、多くの方にご参加頂き、ありがとうございました。 発表資料 発表資料をslideshareに公開しました。 今回は、これからAnsibleを使ってみようという方を対象として、Ansibleの基的な内容をメインにしました。また、実際に私自身がPHPプロジェクトで採用した際のユースケースを紹介しています。 発表後、「Ansibleをやってみます!」という意見を頂けたので、このセッションの目的は達成することができました:D このセッションのフィードバックは、joind.in にて受けて付けています。すでにいくつか好評価を頂いていて安心していますが、もし良かったらお願いします。 https://joind.in/talk/vi

  • Vagrant のプロビジョン時間を削減する vagrant-cachier プラグインが良い

    インストール vagrant-cachier プラグインをインストールするには、vagrant plugin install コマンドを実行するだけです。 $ vagrant plugin install vagrant-cachier Vagrantfile への記述 vagrant-cachier プラグインを有効にするには、Vagrantfile に下記の設定を行います。config.cache.scope では、キャッシュスコープを設定します。 下記では、:boxを指定しており、これは、プロビジョンでインストールしたパッケージを Box 単位でキャシュします。同一 Box を使う Vagrantfile であれば、別の VM でもキャッシュを共有することができます。 私の用途であれば、この設定が使いやすそうです。 あとは、通常どおり、vagrant up を行うとプラグインが有効と

    hamaco
    hamaco 2014/09/30
  • Ansible で、複数サーバの RPM を一括で更新する

    Bash 脆弱性が出ましたね。対策がまだの方はお早めに。 修正 RPM が提供されているとはいえ、複数サーバにログインして、yum update していくのは、骨が折れる作業です。元から構成管理ツールを導入していて、一括更新出来る場合は良いのですが、なかなか導入できていないところも多いでしょう。 このエントリでは、Ansible を使って、複数サーバに対して、一括で RPM 更新を行う方法を見ていきます。 Ansible インストール Ansible の操作を行う PC or サーバにインストールします。これは ansible コマンドを実行する環境にのみインストールします。例えば、サーバ管理者の PC などです。チームで行う場合は、操作用のサーバにインストールして、SSH で操作サーバにログインして、実行すると良いでしょう。 OSX なら、Homebrew で入れるのが簡単です。 $ b

    hamaco
    hamaco 2014/09/26
  • Laravel 4 環境ごとの設定

    Laravel には、アプリケーションの設定を環境によって切り替える機構があります。これを使うことで、開発環境、ステージング環境、番環境、テスト環境で設定を切り替えることができます。 ここでは、Laravel 4.2 を対象とします。 環境設定の指定 環境設定の指定は、bootstrap/start.php の以下の箇所で行ないます。デフォルトでは、ホスト名がhomesteadの場合はlocal、それ以外はproductionとなります。 $env = $app->detectEnvironment(array( 'local' => array('homestead'), )); このdetectEnvironmentメソッドでは、クロージャが引数の場合、その戻り値を環境設定として扱うことができます。 私は、環境変数での切替の方が扱いやすいので、LARAVEL_ENVという環境変数の値

  • Mac OSX をクリーンインストールしてからの環境構築メモ

    Macbook Air の OS をクリーンインストールしたので、OS 起動後に行った環境構築のメモです。 1. OSX 環境設定 OSX 関連の設定は、以前に書いた下記エントリの内容で行います。 下記は Moutain Lion のものなので、若干、設定項目の表記や位置が異なりますが、概ねこの通りで。 http://www.1×1.jp/blog/2012/06/macbook_air_system_preferences.html 2. Homebrew、コマンドラインツール、XCode インストール アプリは、Homebrew cask と Brewfile を使ってインストールしたいので、Homebrew をインストールします。 $ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

    Mac OSX をクリーンインストールしてからの環境構築メモ
    hamaco
    hamaco 2014/04/08
    環境設定とかそれぞれのアプリとかそういう設定どうしてるんだろう? 頻度的にあんまり意味なさそうだしやっぱり使う時に手作業かな?
  • 「世界を変える」という言葉への違和感

    Shin x blog Advent Calendar 2013 の 22 日目です。 「世界を変えたいんです!」 インターネット上やイベントなどでたまに見聞きする言葉です。それを聞くたびに何か違和感のようなものを感じていました。 世界を変える? 「世界を変えたい!」というフレーズは、威勢が良く、何か立派な志のように聞こえます。その想いは素晴らしいとは思うのですが、聞いている方からすると結局何がやりたいのかが分からず、「なんかすごいね」程度しか感じなかったりもします。 「世界を変える」ということは、変える前と変えた後の世界があり、その二つの世界には何かしらの差分があるはずです。この差分を作り出すこと = やりたいということであれば、その差分をそのまま伝えたほうが良いのではないでしょうか。 ガンで死ぬ人を無くしたい、飢餓を無くしたい、空飛ぶ自動車を作りたい、人型ロボットを作りたい、みんなが夢

    hamaco
    hamaco 2013/12/24
  • 個人事業から法人化した理由

    Shin x blog Advent Calendar 2013 の 19 日目です。 2000年に個人事業として1×1を開業しました。それから 5 年後の 2005 年に有限会社として法人化(法人成り)を行いました。(その後、組織変更を経て、現在は株式会社です。) 個人事業から法人化した経緯や理由について書いてみます。 法人化への思い 当時、受託開発をメインに行っていました。仕事を受注して、家でこなすというスタイルが多かったのですが、仕事上で法人格を要求されることはなく、個人事業でも困ることはありませんでした。(今にして思えば、その時点で選別されていたのだと思います。) 開業した頃はとにかくい扶持を稼ぐのに必死で、法人化など考えもしなかったのですが、ある程度、売上が立つようになると、「次のステップ」というのを考えるようになりました。 なんとなく、次のステップとしての法人化を意識しつつ、

    hamaco
    hamaco 2013/12/20
  • 6分でわかる最近のPHP 2013年冬

    Shin x blog Advent Calendar 2013 の4日目です。 6分で分かるべく最近のPHP事情をざざざっとご紹介します。 過去のエントリはこちら。 6分でわかる最近のPHP ― 2012夏 5分でわかる最近のPHP – 2011夏 1. PHP 5.5 リリース PHP5系の新しいバージョンとして、PHP 5.5 が 2013年6 月にリリースされました。 新しい機能としては、ジェネレータや finally 句の、パスワードハッシュ関数、OPCache などが追加されています。 2013/12/04 現在では、5.5.6 が最新版となっています。 PHP5.5 のコードキャッシュは APC から Zend OPcache へ PHP: PHP 5.4.x から PHP 5.5.x への移行 – Manual PHP 5.5の新機能:さっくり理解するPHP 5.5の言語仕

    hamaco
    hamaco 2013/12/04
  • Mac で集中して文章を書く環境を作るアプリ(Shin x blog Advent Calendar 2013 Day1)

    Home > Advent Calendar 2013 | mac > Mac で集中して文章を書く環境を作るアプリ(Shin x blog Advent Calendar 2013 Day1) さて、はじまりました。Shin x blog Advent Calendar 2013。今日12/1から12/25まで、毎日エントリを書いていきます! 初日は、まず blog を集中して書く環境作りから。 blog を書こう書こうと思い立って、MacBook Air を開くのは良いのですが、ついつい Twitter 見たり、Facebook 見たりして、TL に流れてくるエントリやスライドを眺めているうちに、もう blog 書くことがどうでも良くなって、また今度にしよう、となることがままあります。 書きたい!と思ったネタは、その瞬発力に任せて一気に書き上げられるように集中できる環境を作りたいもので

    hamaco
    hamaco 2013/12/02
    試しにRainy Mood開いて仕事してる。
  • PHP開発環境のサンプルVagrantfile

    PHPカンファレンス2013でPHP開発環境をVagrantで作る発表を行ったのですが、具体的なVagrantfileが欲しいという声を頂いたので、GitHubに公開しました。 ご自身で構築するベースになれば良いと思うので、どう作れば良いの?と言う方は参考にしてみて下さい。 なお、このリポジトリの Vagrantfile は、開発PC内の VirtualBox 上で開発環境として動かすことを想定しています。セキュリティについては考慮されていないのでご注意下さい。 vagrant-lapp-sample https://github.com/shin1x1/vagrant-lapp-sample このリポジトリは、PHPアプリケーション(CakePHP)をイメージしています。構成は以下です。 CentOS 6.4 Apache 2.2 PHP 5.4 PostgreSQL 9.3 phpPg

  • 関西PHP勉強会で「いまどきのPHP」を発表してきました( in JAWS FESTA Kansai 2013 )

    9/28に京セラドームで開催されたJAWS FESTA Kansaiの1トラックとして、関西PHP勉強会を開催しました。 Photo by omoon. 午前のセッションにも関わらず、多数の方に参加頂き、ありがとうございました。 いまどきのPHP 今回の勉強会では、3セッションを行ったのですが、私のセッションでは「いまどきのPHP」について発表しました。 いつもの勉強会とは違い、JAWS FESTA Kansai の中で開催したので、PHPユーザ以外の方(普段は別の言語で開発している、以前は書いていたけど最近の動向は知らない)が参加されるかもと思い、いま多くの言語で行われているオブジェクト指向開発がPHPでもきるんだよということを伝えたくて、PHPのオブジェクト指向機能をメインにしました。 結果としては、ほとんどの方がPHPをメインで使われているとのことだった(まあ、PHP勉強会なので当た

    関西PHP勉強会で「いまどきのPHP」を発表してきました( in JAWS FESTA Kansai 2013 )
    hamaco
    hamaco 2013/10/02
  • Vagrantで作るPHP開発環境[実践編]をPHPカンファレンス2013で発表してきた

    (2013/10/09追記) PHP開発環境を構築するサンプル Vagrantfile をアップしました。 PHP開発環境のサンプルVagrantfile 第7回関西PHP勉強会で発表した下記の内容をベースに、より実践的な内容を追加しました。 PHPシステムの開発環境をVagrantで作ることを題材に、基的な流れをお話しました。 ポイントは、プロビジョニングにシェルを使う部分と、やはり synced_folder ですね。AWS上にも同じ環境を構築できる部分ももう少し深くお話したかったのですが、時間が足りませんでした>< また、Vagrantfile があるディレクトリ(vagrant upしたカレントディレクトリ)も synced_folder となっていて、仮想マシンでは /vagrant としてアクセスできるということも知っておくと便利です。これを利用するとChefのtemplat

    hamaco
    hamaco 2013/09/19
  • Vagrantをはじめてみたい方へ「Vagrant入門ガイド」を書きました

    「Vagrant入門ガイド」という電子書籍技術評論社さんから出版しました。Kindle ストア と Gihyo Digital Publishing にて購入できます。 Vagrantは、まだエンジニアが中心に触っている状況ですが、いずれはWebデザイナーやコーダーの方など、サーバ構築を自分ではやらない人にも、制作するWebサイト、システムの動作検証を行う環境として利用する場面が増えていくと思います。 blog エントリなども多数あるのですが、断片的な情報も多く、また、Vagrant自身の進化が早いため、最新の環境だと上手くインストールできなかったり、動かないということがままあります。(このblogの過去エントリも。。。) もちろん、じっくりと調べていけば解決できる問題なのですが、できれば、はじめの一歩くらいは、まとまった情報が日語であると良いなと思い、書を書きました。 目次 書は

  • Vagrant + VirtualBox で nfs を使って、synced_folder を速くする

    Home > Vagrant | 開発環境 > Vagrant + VirtualBox で nfs を使って、synced_folder を速くする Vagrant + VirtualBox で便利な synced_folder を nfs を使ってパフォーマンスを向上する方法です。 開発環境として Vagrant + VirtualBox を使う上で欠かせないのが synced_folder です。ホストとゲスト間でディレクトリを共有できるので、ホストで書いたコードをゲストですぐに実行することができます。 synced_folder はVirtualBox が持つ shared folders という機能をつかているのですが、代わりに nfs を使うことで、パフォーマンスを向上させることができます。 nfsd をホスト側で起動 synced_folder に nfs を利用するには、ホ

    hamaco
    hamaco 2013/08/21
  • nginx で Too many open files エラーに対処する

    nginx では1プロセスで多くのアクセスを捌くので、アクセス数が増えるとToo many open filesエラーが発生することがあります。 ここでは対処法と調べた内容を残しておきます。 1. fs.file-max の確認 まず fs.file-max の値を確認しておきます。fs.file-max は、システム全体でのファイルディスクリプタの上限数となっており、この値以上のファイルディスクリプタは確保することができません。 現在設定されている値は以下で確認できます。 $ cat /proc/sys/fs/file-max 167488 通常は上記の値で問題無いと思いますが、もしこの値が不足しているようなら設定値を更新します。 $ sudo -s # echo 320000 > /proc/sys/fs/file-max # cat /proc/sys/fs/file-max 320

    hamaco
    hamaco 2013/05/29
  • Shin x blog

    PHPでWEB+DBシステムの開発をやっています。

  • 勉強会なんてやらなくても良い

    勉強会について考えているもやもやを。 私は、主にPHP界隈の勉強会やカンファレンスを開催したり、運営側として関わったりしているのですが、勉強会を開催することについて最近もやもやと考えています。 勉強会に色々な関わる人(開催、運営、発表、参加などなど)からの意見も聞いてみたく、2012年の終わりに一度吐き出しておこうと思います。勉強会についていろいろなコメントを頂けると嬉しいですm(_ _)m はじめに、ここでいう「勉強会」というのは、オープンソース界隈で良く開催されている有志がボランティアベースで運営されているものを指します。有料セミナーや別カテゴリのものは想定していません。 また、自分が開催する勉強会について書いていますので、他の方が開催されている勉強会について指摘する意図は一切ありません。 勉強会なんてやらなくても良い 業が忙しくなると、ついつい勉強会の開催が億劫になってきます。勉強

    勉強会なんてやらなくても良い
    hamaco
    hamaco 2012/12/27
    \ キャ- シンバラサーン /
  • PHPer が「JUnit実践入門」を読んだ

    「JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)」を献して頂いたので読んでみました。 普段は PHPUnit でテストを書いているので、その家とも言える JUnitは興味津津でした。 実は、今でこそ PHP 三昧の日々ですが、数年前(JDK1.3 とか 1.4 の時代ですが)は Java で開発していたこともあったので、いまどきの Java、JUnit がどうなっているか知りたくもあり、興味深く読み進めることができました。 読んでみて感じた点を挙げてみます。 1. 圧倒的なボリューム まず目次をざっと見た時に感じたのがカバーしている範囲の広さです。正直よく一冊に収まってるなあと:D JUnit の解説からはじまり、JUnit を使ったテストの書き方、ソフトウェアテスト・テスト技法、ユニットテストのパターン、そして JUnit のより

    hamaco
    hamaco 2012/11/22