タグ

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

  • Google+を2週間使って分かったこと、感じたこと15

    Googleが開始したSNSGoogle+にすっかりはまっています。ここ2週間ほど使ってみて分かったTipsを書いてみます。 Google+(グーグルプラス)は、Googleが運営してるソーシャルサービスです。 Googleのソーシャルサービスといえば、これまで幾つかありましたが、どれもいまひとつ盛り上がり切らなかった感があり、2011/06/29 にクローズドテストが始まった直後は静観していました。 しかし、せっかく招待状を頂いたので、登録して使っていくうちにどっぷりハマっていくことになりました。 ここ 2 週間使ってみた中で、見えてきた点を書いてみます。 このエントリは、2011/07/14 時点の内容です。Google+は日々改良が重ねられていますので、もしかするとあなたが読んでいる今は内容が変わっているおそれがあります。ご注意を。 1. どうやってはじめれば良い? 現在はクローズ

    advblog
    advblog 2011/07/17
  • 現状のPHP環境はそのままで、PHP 5.4 を試す

    現状のPHPはそのままで、新しい(別の)バージョンをPHP試す方法です。 PHP 5.4.0 alpha がリリースされました。Traits や Array dereferencing support など試してみたいですけど、さすがにメインのPHP環境を変えるのは早いですね。 そこで新しいPHPをビルドして、インストールはしない方法で試してみました。 PHP 5.4.0 alpha をビルド qa.php.netから、PHPのソースをダウンロードします。 $ wget http://downloads.php.net/stas/php-5.4.0alpha1.tar.bz2 展開して、configureして、makeします。とりあえずコンパイルオプションはナシで。 $ tar jxvf php-5.4.0alpha1.tar.bz2 $ cd php-5.4.0alpha1 $ ./co

    advblog
    advblog 2011/06/30
  • コマンドラインからPHPマニュアルを見るpmanコマンド

    コマンドラインからPHPマニュアルを見ることができるpmanコマンドが登場しました。 manコマンドのようにコマンドラインからPHP関数やSPLのクラスについて調べることができます。 インストール pearコマンドでインストールします。 $ sudo pear install doc.php.net/pman 手元のMac OS X 環境では、/usr/bin/ に pman コマンドがインストールされました。 $ which pman /usr/bin/pman 使い方 pmanコマンドに調べたい関数名を指定します。例えば、array_map のマニュアルを見たいなら以下のように指定します。 $ pman array_map ARRAY_MAP(3) 1 ARRAY_MAP(3) array_map - Applies the callback to the elements of th

    コマンドラインからPHPマニュアルを見るpmanコマンド
    advblog
    advblog 2011/06/27
  • コードカバレッジ測定ツールPHP_CodeCoverageをCakePHPで使ってみた

    PHP_CodeCoverageで、CakePHPのユニットテストのコードカバレッジを表示してみました。 CakePHP標準のテストランナー(test.php)でも単一のテストケースについてはコードカバレッジが表示できるのですが、All tests の時はコードカバレッジが表示されません(All testsでも表示されることもあるようです。hiromi さん、ありがとうございます)。 そこでPHP_CodeCoverageを使って、All testsのコードカバレッジを表示してみました。 1. PHP_CodeCoverage インストール PHP_CodeCoverageは、PHPUnitでおなじみのSebastian Bergmannが開発した、コードカバレッジやCRAPを計測、表示するツールです。 PEARパッケージで提供されているので、pear コマンドでインストールします。 20

    advblog
    advblog 2011/06/16
  • Webシステム開発に便利な7つのツール

    Webシステム開発で使っている便利なツールをあげてみました。 あらためて社内の開発環境を見直す機会があったので、使っているツールを並べてみました。こうして見ると色々なツールを使って開発をしていますね。わりと定番系なものが多いですが、良かったら参考にどうぞ。 1. Apache / PostgreSQL / PHP Mac OS X に MacPorts でインストールしたApache / PostgreSQL / PHP 環境を使って開発をしています。 PHPは5.3、PostgreSQLは8.4 or 9.0です。 ただ旧バージョンのPHPを使ったり、Linux でなければ動かないモジュールを使うこともあるので、その際は社内のCentOSサーバにSSHで入って開発したりもします。 Vimを使ってるので、SSHで入ればどのサーバでも開発できるのは利点ですね。 Mac を使い出して、しばらく

    Webシステム開発に便利な7つのツール
    advblog
    advblog 2011/06/06
  • PHPでsleep sort

    コロンブスの卵的なソートアルゴリズム「sleep sort」をPHPで実装してみました。 via . 常識を覆すソートアルゴリズム!その名も”sleep sort”! – Islands in the byte stream fork使うので、pcntlを有効にします。 sudo port install php5-pcntl さくっと実装。 実行 % php sleepsort.php % 12345678910 トラックバック:2 このエントリーのトラックバックURL /blog/2011/05/sleep_sort_php.html/trackback Listed below are links to weblogs that reference PHPでsleep sort from Shin x blog pingback from Sleep sortの各言語での実装まとめ

    advblog
    advblog 2011/05/20
  • さあ、AWSをはじめよう! for PHPer

    春ということで、Amazon Web Services(AWS)をはじめてみませんか。 AWS盛り上がっていますね。2011年3月に東京リージョンができたことで、そろそろ触ってみようかなというPHPユーザの方も多いかと思います。 そんなあなたへ、AWSをはじめる際に役立つ情報をご紹介です。 1. AWSアカウントを新規作成して、EC2の利用申し込みを行う まずAWSのアカウントを作成して、EC2の利用申し込みを行います。 手順については、AWSエバンジェリストの @KenTamagawa さんが書かれた以下の資料が参考になります。このとおりに進めていけば、おおよそ問題無いと思います。 進める中で自分が詰まった点は以下。 郵便番号、電話番号にはハイフンを 郵便番号、電話番号はハイフンが必要なので入力するようにして下さい。 書式は日国内のもの、郵便番号8ケタ(ハイフン入り)、電話番号は12〜

    advblog
    advblog 2011/04/15
  • PHPカンファレンス関西を2011/04/02に開催します

    2011/04/02に大阪で「PHPカンファレンス関西」というイベントを開催します。 昨年末からイベントや直接お会いした人にはお話していたのですが、PHPカンファレンス関西というイベントを開催します。 東京でもう11年も開催されているPHPカンファレンスようなイベントをぜひ関西でやってみたいということで企画しています。 PHPカンファレンスを関西で! PHPカンファレンスは、国内最大のPHPイベントで、毎年東京で開催されています。 国内・海外PHPに精通する識者たちが発表を行うイベントで毎年数百人の参加者が集まります。おそらく関東近郊のPHPユーザの方なら一度は参加したことがあるでしょう。(まだの方はぜひ参加してみてください) 私は関西在住なのですが、これまで何度か参加したことがあります(発表も!)。初めて参加した時は、日頃ネットやの上でしか知ることができなかった技術について、実際の活

  • 第2回関西アンカンファレンスふりかえり

    2011/01/08に第2回関西アンカンファレンスを開催しました。 新年早々の開催ながら、前回を上回る多くの方(120人!)にご参加頂き、当にありがとうございました。 素晴らしい会場を提供頂いた兵庫県立大学様、そして多大なご協力を頂きました力宗先生にお礼を言いたいと思います。ありがとうございました。 今回も多様な発表が行われ、盛り上がりました。この独特の盛り上がりは、やはりアンカンファレンスならではかもしれません。 参加された方達からイベント直後の懇親会で「次回はいつですか?」と言ってもらえたのが何よりでした。 今回のイベントを終えて感じたことをふりかえってみます。 開催に向けて 前回が2009年年末だったので、今回も2010年末開催を目指して準備をしていました。 ただやはりネックだったのは開催場所。なかなか条件に合うところが無くて困っていたところに @hirokazu1225 さんから

    advblog
    advblog 2011/01/14
  • 「半歩先のWebシステム構成」を発表してきました - 俺の話を聞け!

    「俺の話を聞け!」という名のイベント(ほんとにイベント名です:D)で発表してきました。 イベントの詳細はこちらから。 去年やった関西アンカンファンレスを小規模でやったようなイベントです。できるだけ多くの人に発表の機会をということで、初めての方から発表慣れしている方まで総勢19人が発表を行いました。 参加しての雑感をつらつらと。 会場はクロノスさん。素晴らしい会場でした。ありがとうございます! これからもよろしくお願いしますm(_ _)m 事前に聞いていたのに全然手伝えなくてごめんなさいm(_ _)m やっぱりテーマソングはこれ。 大事なこと。「人は人、自分は自分」 とにかく楽しかった! 発表した人は印象は残りやすいし、発表者同士の親近感もある。やっぱりできるだけやった方が良いと思う。 初発表の人の方がちゃんと準備をしていた。すばらしい! デモ最強。百聞は一見にしかず。 笑いを求めるサガ:D

    advblog
    advblog 2010/12/15
  • CakePHP Modelとの付き合い方(CakePHP Advent Calendar 2010 3日目)

    CakePHPのModelに悩む人が多いようなので、自分なりの付き合い方(考え方)をご紹介します。 CakePHP Advent Calendar 2010の3日目です。 前日の k1LoW さんのエントリ、参考になりますね。GETのフォームをdata[]でやるとURLがすんごいことになるので、ウチでは別途対応できるライブラリを作ったりしてます。 さて、3日目の今日は書きたいネタは幾つかあったのですが、「君の当たり前に僕らは感嘆させられるんだ」の精神に従って、自分なりのModelの使い方、考え方を書いてみます。 1. 適正なインターフェイスを用意して処理をカプセル化 まず基的な考え方。 Model(に限らずですが)では、処理単位でインターフェイス(メソッド)を用意して、実装はカプセル化しておきます。 こうすることによって、Modelを利用する側(Controllerや他のModel等)は

  • PHP シリアライズデータ型(PHP Advent Calendar jp 2010 Day 2)

    今年(2010年)は、日でも技術系コミュニティのAdvent Calendarが流行していますね。 PHP関連だとCakePHP(明日書きます!)やSymfony、OpenPNEなどはあるのですが、PHP単体が無かったので作ってみました。 PHP Advent Calendar jp 2010 Advent Calendarについては、下記リンクが詳しいです。これを書いている段階では、まだ参加枠があるので、どんどん参加して下さい。みんなのちょっとしたPHPネタを書いていきましょう! 技術系Advent Calendarについて 他の Advent Calendar というわけで、まず初回(12/2に始めたので、Day1は空席で)のネタは、最近自分の中で流行中のPHPのシリアライズデータ(serialize()/unserialize())について。 シリアライズデータのデータ型 Cake

  • シンプルなTwitter検索「findTwitter」を作りました&ソース公開

    AutoPagerize対応したシンプルなTwitter検索「findTwitter」を作りました。 Twitterのつぶやきを検索 機能はシンプルです。テキストボックスに検索したいキーワードを入力して、「検索する」ボタンをクリックするとキーワードに合致したつぶやきを表示します。 「shin1x1」で検索 検索パターンとしては以下のような組み合わせが可能です。 単語で検索。(ex. [CakePHP]) スペースで単語を連結してAND検索。(ex. [PHP カンファレンス]) 「OR」で単語を連結してOR検索。(ex. [shin1x1 OR msng]) 仕組み TwitterAPIを叩いているだけ 仕組みはごくごく単純でTwitterの検索APIを叩いてるだけです。 検索結果はAPIの挙動に依存しているので、検索漏れや古いつぶやきが検索対象にならないなど現象があります。 CakePH

    advblog
    advblog 2010/11/25
    なーんだ。ツイッター検索これでいいじゃん。
  • CakePHPのSecurityComponentに深刻なセキュリティホールが見つかりました

    すでにご存知の方も多いと思うのですが、CakePHPに深刻なセキュリティホールが見つかりました。 SecurityComponentの実装に問題があり、結果、外部から任意のコードを実行させることができるという深刻な内容です。 セキュリティホールの概要や攻撃手順については以下のエントリが詳しいですので、ご一読を。 CakePHPPHP コード実行の脆弱性を使って CakePHP を焦がす なお、今回の問題はSecurityComponentを利用していない場合は発生しません。 もしSecurityComponentを利用している場合は、以下のいずれかの方法で早急に対策してください。 1. CakePHP1.2.9 or 1.3.6にアップグレードする。 この脆弱性を受けて修正バージョンが出ています。 CakePHP 1.3.6 and 1.2.9 released | The Bake

    advblog
    advblog 2010/11/18
  • CakePHP $_GET/$_POSTの値はどこに?

    PHPのスーパーグローバルの値をどのように参照すれば良いかまとめてみました。 Controller#dataやアクションメソッド引数のようにフレームワークで想定された使い方をしている分には特に問題無いのですが、ちょっと他のことをやろうとすると、どこに値が格納されているか分からず困った事がありました。 # もちろん$_GET/$_POSTを使えば値は取れますが、せっかくのフレームワークなのでなるべくその中で値を使いたいものです。 1. $_GET $_GETの値はController#params[‘url’]に格納されます。 ちなみに$_GET[‘url’]はURLルーティング(リクエストURIからコントローラ・モデル等を決定)で、$_GET[‘file’]は[app/webroot/js/vendors.php]で参照されています。 [http://example.com/foo/ind

  • CakePHP PostgreSQLではgetInsertID()に注意

    @deprecated この情報はCakePHP1.2RC1までのものです。2008/06/26現在のリポジトリではチケットが反映され修正が完了しています。 CakePHP+PostgreSQLでModel#getInsertID()を使う場合、別セッションのシーケンス値が取得される問題があります。 問題点 ユーザ情報とその付加情報や、注文情報と明細情報などINSERT後にそのレコードに関連する情報としてid値を活用する場合、来とは異なるレコードに結びつく可能性があります。 ex) 別の注文情報に明細が登録される等 ただ、これはほぼ同時にINSERT文が発行された際に起こる現象ですので、それほど登録処理が行われないサイトではあまり遭遇するものではありません。(ですので、これまであまり表面化しなかったかと。) CakePHP1.2RC1/1.2-beta/1.1.19でこの問題があります。

  • GoogleAppEngine に関する議論について思うこと

    appengine関連でTogetterから議論が巻き起こってますね。最近すっかりappengineをご無沙汰だった自分としては、一連のtweetやblogを読んだおかげですっかり熱が戻ってきました。 議論の発端になったのは以下のTogetterTogetter – 「Google AppEngineについて思うところ」 議論を見ていて感じるところがあったので、ざざっと。 @makotokuwata さんの主張自体は自分はそれほど違和感無かった。ただ表現がキツイ箇所があったのが琴線に触れてしまったのかな。 議論から有用なtweetやblogエントリが生まれてきた。これはとても参考になった。 意識的にそうしていたわけではないだろうけど、寄ってたかって反論していくのは見ていて @makotokuwata さんが気の毒に感じた。 @makotokuwata さんがこれまでされてきた活動(Py

    advblog
    advblog 2010/11/11
  • PHPerのためのYAPC::Asia2010

    YAPC::Asia2010 の発表資料、動画が面白いので、まとめ。 YAPC=Yet Another Perl Conferenceは、その名のとおりPerlのイベントです。PHPで言うならPHPカンファレンスにあたるでしょうか。(違ったらごめんなさい) Perl のイベントということで特に気にしていなかったのですが、先日行われたYAPC::Asia2010の発表資料を見ると PHPer が見てもかなり面白いです。もちろんPerlならではの発表もあるのですが、言語を問わずWebシステム開発をするなら参考になる内容が多くあります。 Perl だから、という理由だけで避けるのはホントに勿体無いので是非見てみて下さい。 PHPerにオススメな発表 PHPユーザの自分が見て面白かった発表です。リンク下にある一言は自分が面白いと思った点で、要約では無いです。内容は各発表を見てみて下さい。 ソーシャ

    advblog
    advblog 2010/10/19
  • CakePHP Modelに関する6つの誤解

    CakePHPのModelはActiveRecordライクなDBアクセス方法を提供しており、さらにアソシエーションを設定することにより複数テーブルの値を同時に操作できるなど、DB操作に対するインターフェイスが数多くあります。 ただ「手軽にDB操作ができる」という印象が先行しているゆえ誤解を招くことがあるようです。 1. クラス名に対応したテーブルしか操作できない Modelのクラス名とテーブルを自動でマッピングするのはフレームワークのいわば便利機能です。デフォルトでそのような動作をするだけで、容易に変更することができます。 Model#$useTableにテーブル名を指定すれば任意のテーブルを操作できます。 <?php class Foo extends AppModel { public $useTable = 't_user'; // t_userテーブル } ?> 2. DBを使わな

  • CakePHP 公開する時はデバッグ情報を出さない

    CakePHPで作ったシステムを公開する時は、フレームワークが出力するデバッグ情報に気をつけましょう。 1. SQLログ DEBUG定数の値を2以上に設定すると実行されたSQL文がログとして画面に表示されます。通常稼働する際はDEBUGを0にしてこの出力は抑制するのですが、たまに稼働でもSQL文がログが出力されているサイトがあります。 ちなみにSQLログに含まれるキーワードをGoogleで検索すると出力したままのサイトが見つかったりします。 “queries took” “Took (ms)” – Google 検索 対策 [app/config/core.php]にあるDEBUGを0にしておきます。公開サイトでSQL文を確認したい場合はCakePHP SQLをログに記録する方法などを使ってログファイルに出力するのが良いでしょう。 [app/config/core.php] // de