タグ

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

  • Amazon S3 stream wrapper で S3 を操作する

    AWS SDK for PHP2 に実装されている Amazon S3 stream wrapper で S3 を操作してみました。 Amazon S3 stream wrapper を使うと「s3://bucket/foo/bar.txt」といったパスで mkdir() や file_get_contents() などの標準関数から S3 を操作することができます。 Amazon S3 stream wrapper の使い方 Amazon S3 stream wrapper は AWS SDK for PHP2 に含まれているので、SDK をインストールしておきます。インストール方法などは下記をどうぞ。 AWS SDK for PHP 2 をインストールして AutoScaling の設定を行う Aws\S3\S3Client の registerStreamWrapper メソッドを実

    advblog
    advblog 2013/05/07
  • PHP5.4 で Zend OPcache をインストールしてベンチマークを取ってみた

    PHP5.5 から標準バンドルされる Zend OPcache を PHP5.4 にインストールしてみました。 インストールする環境は Vagrant 上の CentOS6.4 です。PHP は remi リポジトリからインストールしています。 $ php -v PHP 5.4.14 (cli) (built: Apr 11 2013 11:04:32) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies Zend OPcache のインストール remi リポジトリには Zend OPcache は存在しないようなので、github からソースをダウンロードしてビルドしました。 手順は Zend OPcache の github ページに記載

    advblog
    advblog 2013/05/01
  • PHP5.5 のコードキャッシュは APC から Zend OPcache へ

    PHP5.5 からコードキャッシュとして標準バンドルされた Zend OPcache を試してみました。 第6回関西PHP勉強会で Zend OPcache についてLTしたのでインストールやベンチマークなどはこちらで。 beta4時点では、Zend OPcache は拡張で提供され、opcache.so インストールされる。 Zend OPcache を使うには、php.ini で zend_extension=opcache.so の記述が必要。 やっぱりデフォルトでインストールされるのは楽。 PHP5.5リリースと共に使えるので安心。(PHP5.4 対応の APC はまだ beta) ユーザデータのキャッシュはできないので、別の方法が必要。 OCP – OPcache Control Panel Zend OPcache の利用状況(設定、キャッシュ量など)が確認できるスクリプトが

    advblog
    advblog 2013/04/30
  • Vagrant で自分の PC に「作って、壊して、元に戻せる」サーバを作る

    Vagrant 便利ですね。Web システム構築ではサーバ構築、設定を何度となく繰り返すので、こういった「作って、壊して、元に戻せる」環境が自分の PC にあるというのはとても重宝します。 ここでは Vagrant1.0 を使って、Mac OS X 上に CentOS サーバを構築します。また触ってみて便利だった機能もいくつかご紹介します。 1. VirtualBox のインストール 2. Vagrant1.0 のインストール 3. box ファイルのインストール 4. Vagrantfile の作成 5. 仮想サーバを起動 6. 仮想サーバを停止 7. 仮想サーバを削除 8. 仮想サーバでhttpdサーバを構築 9. sahara プラグインで、作って、壊して、元に戻せる環境を構築 10. 複数の仮想サーバを起動 11. 仮想サーバのエクスポート Q. OS X, ruby, gem

    advblog
    advblog 2013/03/23
  • 勉強会なんてやらなくても良い

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

    勉強会なんてやらなくても良い
    advblog
    advblog 2012/12/27
  • CakePHP 2.3 の新機能 ServerShell の話

    CakePHP 2.3 に追加された機能 ServerShell についてです。 CakePHP Advent Calendar 2012の11日目です。昨日は社会派ブロガーに仲間入りした yandod さんの「カンファレンスなどで海外からゲストを呼ぶ際に注意すること」でした。いつも横で見てるだけですが、海外から人を招くのは大変ですね。 さて11日目の今日は CakePHP 2.3 に追加された ServerShell を実装して、pull request したという話を。 ServerShell ServerShell は CakePHPアプリケーションを動かすための httpd サーバを起動する機能です。Apache などを設定せずとも簡単にCakePHPアプリケーションを起動することができます。 使い方 まず、CakePHP2.3RC1 をダウンロードします。githubzip

    CakePHP 2.3 の新機能 ServerShell の話
    advblog
    advblog 2012/12/11
  • PHPを使う理由

    今年もやって参りました年末を彩る PHP Advent Calendar 2012 です。3年目ということですっかり恒例行事となってきましたね。今年も完走目指してみんなで頑張りましょう! 参加枠があとわずかですが残っていますので、いっちょやってみようという方は参加表明をお願いします。 PHP Advent Calendar さて、初日は前から書いてみたかったテーマです。 PHPをWebシステム開発言語として使い出してかれこれ12年が経ちました。これだけ長い間使い続けているとうことは何か理由があるわけです。そこで、あらためてその理由を考えてみました。 1. 安定して動作する まず、なんと言っても大きいのが安定して動作し続けているということです。 規模の大小に関わらず数多くのWebサイトがPHPで動作しているのは周知のとおりです。私がこれまでPHPで構築してきたWebシステムが現在でも動作して

    advblog
    advblog 2012/12/02
  • PHPer が「JUnit実践入門」を読んだ

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

    advblog
    advblog 2012/11/20
  • いまどきの技術本執筆環境 - 「CakePHP2実践入門」

    原稿執筆 原稿は Vim で書いて、Marked のプレビューを確認するという形で進めました。 Vim 原稿の形式は、Markdown+独自マークアップのプレーンテキストだったので、執筆陣は各自好きなツールを使うことができました。 Vim は普段から使っていて慣れていますし、技術ということでソースコードを読んだり書いたりする場面が多いので同じエディタ上でそれができるのは楽でしたね。 Markdown ということで当初は専用のエディタなども試したのですが、やはり「書く」という行為に関しては手に馴染んでいるものが一番です。 Marked Marked は Markdown 形式で書かれたファイルをプレビューするツールです。Marked でファイルを開いておくと元ファイルが変更されるとプレビュー側も連動して更新されます。 あくまでプレビューに特化したツールなので任意のエディタと組み合わせて使用

    advblog
    advblog 2012/09/30
  • 6分でわかる最近のPHP ― 2012夏

    さて夏がやってきました。夏と言えばPHPということで、昨年に引き続き、最近のPHP事情をご紹介。 1. PHP5.4リリース PHP5.4が2012年3月にリリースされました。 Traits や Short array syntax(配列の短縮構文)、array dereferencing(foo()[0]) などのPHP言語拡張、PHPコマンドで起動するビルトインサーバ、そしてパフォーマンスの改善など大きな変更が加えられています。 言語自体の機能追加も注目ですが、ビルトインサーバは多くの人にとってメリットになるでしょう。これを使えばPHPアプリケーションの動作確認のためにApacheやnginxなどのhttpdサーバを自分のPCに入れる必要はありません。 下記のようなコマンドを打つだけで、ビルトインサーバが起動します。新しいフレームワークやライブラリ、アプリケーションを試してみたい時に手

    advblog
    advblog 2012/08/03
  • CakePHP データベースを使わないアプリケーション

    CakePHPはデータベースを使用することが前提となっているので、フレームワークがデータベースへの接続を自動的に行います。ただマッシュアップ系のサービスなどデータベースを全く使用しない場合はこの機能を無効にしたくなります。 そこでCakePHPアプリケーション全体でデータベースを使わない方法です。 ちなみにこの方法では[app/config/database.php]を作成する必要もありません。 1. モデルを使わない コントローラの$usesにnull or array()を設定することによりモデルを使用しないようにできます。データベースへの接続はモデルを介して行うのでモデルを使わなければ接続処理は行われません。(セッションやキャッシュをDBに保存する場合は別ですが) <?php class HogeController extends AppController { var $uses

  • 新 MacBook Air にやっぱりインストールしたアプリ23個

    MacBook Air のセットアップ進めています。 今回はアプリの棚卸の意味を含めて1からセットアップしているのですが、要不要を考えながらインストールしたアプリたちです。 システム環境設定はこちらで。 インストールしたアプリ

    新 MacBook Air にやっぱりインストールしたアプリ23個
    advblog
    advblog 2012/06/16
  • 携帯/iPhoneのGPSを試すサイトを作った

    携帯/iPhoneGPSを試してみるサイトを作ってみました。 いまや、ほとんどのモバイル機にGPSが搭載されており、foursquare、コロプラ、ロケタッチなど位置情報を使ったサービスも多くリリースされています。 そんな便利なGPSなんですが、実際のところ、どの程度の精度で位置情報が測定できるのか、そして、その位置情報を使ってどんなことができるのかをあらためて模索するために、簡単にGPSを試すページを作ってみました。 携帯電話GPSで位置情報を見る 内容は単純で、GPSで測定した位置情報を元に Google Map と住所を表示します。参考に緯度経度、誤差も表示しています。 => 携帯/iPhone GPSテスト ページにアクセスするとリンクがあるので、クリックします。この時にGPSを送信するか否かを確認されるので、送信に同意します。 GPSを使って測定した位置情報を表示します。 iP

  • Twitter疲れにオススメなiPhoneアプリ「聞きメール」をリリースしました

    1×1からiPhoneアプリ「聞きメール」をリリースしました。 「聞きメール」は一言でいうなら、良かったこと悪かったこと、愚痴などなどをキャラクター達に聞いてもらうアプリです。 日々の生活で言いたいあんなことやこんなこと。 みんなに言える話なら良いですが、誰にでも言える話ばかりではないですよね。 楽しい話ならまだしも愚痴系となるとなおさらです。愚痴系は聞いている方も嬉しくはならないので、できたら誰にも言いいたくない。でもやっぱり言ってスッキリしたい。じゃあ穴でも掘って叫んでみようと思っても、コンクリートジャングルでは穴が掘れる地面すら無い。 じゃあ、Twitterで発散しよう!ということでポロッとtweetしてしまうとそれは全世界に発言しているのと同じことで、誰が見ているか分かりません。RTにRTされて見知らぬ誰かから意図しない取られ方をすることもあります。 例えば「誰それが不倫した」など

  • Macに移行してやっと脱Officeできた4つのツール

    Mac で資料作成(システム仕様書など)に使うツールがようやく固まってきました。 Mac に移行してきて早 2 年、開発環境はすんなり移行できたのですが、なかなか移行ができなかったのが資料作成ツールでした。 というのも Windows では定番の Office(Word / Excel / PowerPoint) と Visio という強力なツールを使っていたため、Mac に移行した後も、結局、資料作成する時は vmware に入れた Windows XP を起動していました。 せっかく Mac に移行したのだから Mac 環境で使えるツールを使いこなしたいものです。あれやこれやと試してはいたのですが、結局決まらず悶々としていたある日、Google+でこんな質問をしました。 多くのコメントを頂いて、色々なツールを試した結果、ようやく Mac 上で資料作成できる環境が整ってきました。どれも便

    Macに移行してやっと脱Officeできた4つのツール
    advblog
    advblog 2012/05/02
  • CakePHP SQLをログに記録

    CakePHPで発行したSQLをログに記録する方法です。 DEBUG>=2にすれば画面下に表示されるSQL文ですが、DB処理後にリダイレクト等で遷移すると消えてしまいます。さらに番稼働時は画面に表示するわけにはいかないのでやはりログに出力したいところです。 フレームワークに手を入れるのが一番簡単なのですが、バージョンが上がると面倒なので既存のDboSourceを継承したクラスにログ記録を追加します。 1. DboSourceを継承 dboはフレームワークで用意されているものだけでなく、app/model/dboにあるものもフレームワークで利用する事ができます。 ここではPostgreSQLを使うとしてDboPostgresを継承したDboPostgresLogを作ります。 ログ出力をON/OFFする定数LOG_SQLは後でcore.phpで定義します。 [app/model/dbo/db

    advblog
    advblog 2012/04/09
  • CakePHP における Mass Assignment 脆弱性対策

    Rails 界隈で話題の Mass Assignment 脆弱性を CakePHP で防ぐ方法です。 Github に Mass Assignment 脆弱性が発見されて、Rails 界隈で話題になっています。この問題自体は目新しいものではなく、Rails 自体の問題というより、Rails アプリケーションの作り方の問題ということで、以前から作る側が注意を払う必要がありました。 この Mass Assignment 脆弱性は、Rails を手に発展してきた CakePHP アプリケーションでも同様の問題が発生する可能性があります。知っている人には常識なのですが、まだ知らない人もいるかと思うので、CakePHPにおける対策方法を書いてみます。下記コードはCakePHP2系を想定していますが、考え方はCakePHP1系でも同じです。 Mass Assignment 脆弱性 CakePHP

    advblog
    advblog 2012/03/12
  • PHP5.4 ビルトインサーバで CakePHP を試食する(CakePHP Advent Calendar 2011 4日目)

    Home > CakePHP | PHP > PHP5.4 ビルトインサーバで CakePHP を試する(CakePHP Advent Calendar 2011 4日目) PHP5.4のビルトインサーバで CakePHP を動かしてみました。 CakePHP Advent Calendar 2011 の 4 日目です。 いよいよ PHP5.4 の正式リリースが近づいてきました。5.3 からのマイナーバージョンアップとはいえ、Trait や Short syntax for arrays、Array Dereferencing など興味深い機能が追加されています。 そんな新機能の中から注目のビルトインサーバを使って、CakePHP を動かしてみました。今回は CakePHP1系と2系の両方を試しています。 PHP5.4RC2をインストール まずは現時点での最新版 PHP5.4RC2 が動

    advblog
    advblog 2011/12/04
  • iPhone ユーザが INFOBAR A01 を買って、2週間使ってみた

    INFOBAR A01 を買って、2 週間使ってみたのでレビューなど。 これまで持っていた au 携帯(SH005)を機種変更して、INFOBAR A01(以下、INFOBAR) にしました。自身初の Android 機なのですが、スマートフォンは iPhone 4(以下、iPhone) を持っているので、INFOBAR の印象やインストールアプリなどを iPhone との比較を交えて書いてみます。 このエントリでは、スペックではなく、実際に使った印象を書いていきます。各製品のスペックは以下のページにあるので、ご参考まで。 INFOBAR A01 iPhone 4 見た目に一目惚れ ここ 2 年、au 携帯と iPhone の 2台持ちだったので、正直、Android 機にはあまり興味が湧きませんでした。しかし、ここ最近の Android の普及っぷりを見るに、これはそろそろ買おうかなと思

    advblog
    advblog 2011/08/04
  • Google+ 非公式 API で情報を取得するPHPライブラリを使ってみた

    まだ登場していない Google+ の API ですが、非公式な API を利用して情報を取得するライブラリがあったので使ってみました。 Google+のストリーム で教えて頂いた php-googleplusapi というライブラリで github で公開されています。 はじめは README に従って、MySQL の設定などしたのですが、Google+ から情報を取得するだけなら、DB の設定は不要です。 付属のサンプルソースだと色々な処理が入っているので、直近10件の投稿を取得する単純なサンプルを書いてみました。 実行すると以下のように投稿を取得できます。 $ php gplus_fetch_posts.php 他にはプロフィール情報が取得できました。(そもそも、↑のサンプルソースはプロフィール情報に含まれている投稿を出力しています。)全部は見ていないので興味ある人は他に何が取れるか

    advblog
    advblog 2011/07/28