サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
cocoiti.hatenablog.com
この記事は、PHP Advent Calendar 2014 - Qiitaの記事です。 1年に1度くらい、「あー二相コミットしてーなー」って時、PHPエンジニアだとあるかもしれません。正直僕にはありません。 とはいえ、時々「二相コミット」って言葉聞きますが、どういうものかイマイチ分からないので、非常に上辺だけですが、実装をしてみました。 そもそも二相コミットとは? Two Phase commitでぐぐるといろいろ出てきます すごく単純にいうと複数にデータベースを分割している場合に通常のトランザクションでは保証できない部分を保証できる仕組みです。 通常の二相コミットを使わず複数にデータベースを分けている場合のトランザクションは 以下の様な感じになると思います。 $first = $doctrine->getConnection('first'); $second = $doctrine-
AWSとかAmazonとかSOAPとかRESTなサービスのコードを書いているとPHPでEnum型とかをClassで表現したくなるわけです。 たとえばこんなイメージ <?php class Hoge extends Enum { const MOTE = 'motemote'; } Hoge::keys(); //array('MOTE'); で実装まよってたんですが、AWS SDKの実装が参考になったのでメモ https://github.com/aws/aws-sdk-php/blob/master/src/Aws/Common/Enum.php <?php /** * Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache Lic
本人いやがる気がするが、あえて書いちゃう。 数年、誰も更新してなかったラボブログに再び火をいれた記事。 「フォト蔵、そしてウノウラボ 」 http://labs.unoh.net/2012/07/photozou-with-unoh-labs.html に続いて、僕が書いた公開終了の記事。 「ラボブログの更新停止について 」 http://labs.unoh.net/2012/07/crying-out-love-in-the-center-of-the-internet-world.html id:perezvonがいろいろ動いてくれて僕に依頼してくれたからこそ書けた記事。 彼は間違いなくウノウ時代からZynga Japanまで先頭を切って会社の技術を高めていった人。 たぶん彼と仕事したことある人は全員が納得してくれると思う。 で、まぁそれは、あれなんだけど、僕はすでに退職してててBlo
6月末をもって、Zynga Japanを退職します。28日が最終日になります。 いろいろ私事で立て込んでいるため、本来個別にご連絡したい方にも、ご連絡できてないですが、取り急ぎこちらでご報告させていただきます。 ウノウ時代から足掛け6年いかないくらいだったとおもいますが、たぶん、ウノウに入っていなかったら体験できなかったことを、たくさん経験できたと思います。 個人的にはモバイルのOpenSocialのゲームの走りだと個人的にはおもっているまちつく!に関って数週間にわたってユーザが10万人ずつ増え続ける体験と対応をしたのは誇りに思えますし、今ではだれでも知るところのWikipediaの創始者のジミー・ウェールズ氏と同じイベントに登壇したというのも奇妙なことでした。(なぜあの時俺は写真とらなかったのだ) ウノウ買収が噂になった時に、Zyngaならぬ、Tengaのグッツが当選して、Tenga J
効率的なWebアプリケーションの作り方 ~PHPによるモダン開発入門 作者: 小川雄大出版社/メーカー: 技術評論社発売日: 2012/05/26メディア: 大型本購入: 6人 クリック: 146回この商品を含むブログ (8件) を見る小川さんというか高橋さんというか、@fivestr さんの描いた「効率的なWebアプリケーションの作り方」をいただいた。 まだ3章くらいまでしか、読み終えてないのだけどいまのところ感想 パーフェクトPHPと同じように教科書的に読むといいと思う パーフェクトPHPは、日本のPHPエンジニアが読むべき本でしたが、あの本の作者うちの1人が書いた本のためか、「効率的なWebアプリケーションの作り方」も非常に近い印象を受けました。 その印象は、アーキテクチャに対して深い洞察を持った人によって書かれているので「PHPはこうなってるから仕方がない」的な内容ではなく、「PH
この記事は 17 日目の@rskyさんに続いて、PHP5.4 Advent Calendar 2011 18日目エントリです。彼の朝はいつ開けるのでしょうか。 さて、このAdvent Calenderではそーだいさんの記事に続き2回目になるhtmlspecialcharsネタ。 そもそもそんな一つの関数に 2回も同じネタやる意味あるのかと悩んだのですが、突撃してみたいとおもいます。言いたいことは大体、先の記事に書いてあるので僕からは、もう少し別の角度からいってみたいと思います。 きっかけ そもそもこの記事を書こうとおもったきっかけなんですが、久しぶりに、PHPマニュアルの htmlspecialchars のページ開いたときでした。。 string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML
昨日ふとしたきっかけで、simplateの作者の方がお亡くなりになってたことを知った。 もともと、進行性の病で引き継ぎ先を探していたことはしっていて、僕自身はというとスキルの問題とsimplateそのもの利用してないこと、また立候補者がいたことがあってみているだけだった。 http://slashdot.jp/developers/article.pl?sid=08/10/20/0610257 ふと昨日気になって調べていると、とある方のblogですでにお亡くなりになっていることと、別の方が引き継いだ方がリリースをされていたことを知った。 http://sourceforge.jp/projects/simplate/wiki/FrontPage 個人的におもったこと オープンソースのビジネスなんたらとかリスクとかはあんまり興味がなくて、(だって会社でやってることだって主要なエンジニアが全部
取り急ぎ発表資料をPDFであげておきます。 http://cocoiti.com/docs/phpstudy-50-cocoiti.pdf 個人的な思いとしては PHPerがオープンソーシャルにどんどん参加してもらって、ライブラリとかがバンバン公開されて、より本質的なサービスに近いコードを書くだけで済むようになったらいいな ウノウに興味もってくれて社員募集に応募してくれる人がいるといいな そして休みが増えるといいな です。 応募は下記からできるみたいです。 http://www.find-job.net/fj/showjob.cgi?id=50212 手短ですが、これくらいで
夜21時くらいからはじめてこんな時間までかかってしまったが、sfTwigPluginをこういう風に使いたいなーってサンプルコードを書いてみた。 http://github.com/cocoiti/cocowiki/ 眠いのであとでちゃんと書くが、要約すると、デザインにかかわるテンプレートファイルは通常symfonyのレイアウトファイルを配置するディレクトリに配置する。 module側にはアプリケーションにかかわる部分(主にフォーム関係やエラーメッセージ)を入れる。 ということがやりたかった。 そして、それを実装するためには現在のsfTwigPluginは機能がたりなかったのでsfTwigPluginをforkしてEventListenerを追加した。 http://github.com/cocoiti/sfTwigPlugin/ 下記のようなコードでEventを追加してやれば、継承や本体の
Twigいいよ!とかいってたけど、それを使うフレームワーク書いてる精神的な余裕がなくなったので、symfony1.4と組み合わせて使えないかしらといいろごにょってみた。 オリジナルはここのなんだけど10月くらいに更新をやめてしまってる。 http://github.com/henrikbjorn/sfTwigPlugin とうぜん絶賛開発中だったTwigがそのままでは動くわけもなくforkしてみた。 http://github.com/cocoiti/sfTwigPlugin とりあえず試してみたいひとは下記な感じで 使い方 インストール $ cd {PROJECT_DIR]/plugins/ $ git clone git://github.com/cocoiti/sfTwigPlugin.git $ cd sfTwigPlugins/ $ git submodule init $ gi
終的に$qに入るものが同じであることと、コードとして同じ意味であるかは、別じゃないでしょうか。 以上の話は僕ももってないんだけど、僕が使わない理由とその線引きについて、ちょこっとだけ書いてみます。(元の本とは関係ない話です) プログラム初心者の方が悩んでいたりしてコードを教えたりする時に「とりあえず日本語に直して説明できる?」みたいな質問をすることってあるじゃないですか。あの感覚って重要で、コードを書いていて大きくなった関数など分ける時は日本語に直して(いや英語でも別言語でもいいけど)考えたりするわけです。 なにいってるかわからないかもしれないですけどまぁ日本語に直しましょう。 えーっとぱっと見のレベルです。 $q = isset($_GET['q']) ? $_GET['q'] : NULL; の場合は、 $_GET['q']が存在したら$qには$_GET['q']が入る $_GET['
まぁテンプレートとかあったらいいよねーというわけでテンプレートエンジンについていろいろ考えてみた。 結論としては、short_opentagな(<?=みたいなやつね)素のPHPでかいたら楽だし、配布も楽かなーと妄想するわけです。 でも、smartyみたいにmodifierでチェーンとかしたい。 つまり <?=h($str)?> 結果: '<>" <?=h($str)->u()?>エスケープしたのちURLエンコード(実際やるときは順番逆ですね) 結果: %26%23039%3B%26lt%3B%26gt%3B%26quot%3Bこんな感じにかけたらいいんじゃないかと。 というわけで作った。 http://github.com/cocoiti/cocochat/commit/b32b64c55f6605d7ee9da93fdb50b6e0596eef2c htt
PHPのセッションストレージにファイルを使うというのはわりとありですが、2台以上の構成になるとNFSやその他のネットワークのファイルシステムにするか、MySQLなどのDBをセッションストレージとして利用するパターンが一般的でした。 わりと手軽な選択肢の一つにmemcachedをセッションストレージにするという手段があります。 利用の仕方も最近のPHPでは非常に簡単でセッションハンドラーのコードを書くことなく下記の2点の設定を書くだけです。 session.save_handler = memcache session.save_path = "servername:11211" ただ問題があり、簡単なのはいいのですがmemcachedはオンメモリでありストレージに書き込むことがないため、サーバ再起動時にはデータが消えてしまうという問題がありました。(もちろんセッションに依存しない仕組みを用
PHP の設定で display_errors=off である場合は、この問題の影響を受けません。 の時点でまぁ自分の手元にはほぼ影響ないんですが、該当の記事からのリンク先であるPHPのChangeLogにはそれっぽいのがかいてなくて非常に気持ち悪い思いをしてるわけです。 こまってWassrでつぶやいてみたらますがたさんよりこれじゃないかみたいなレスをもらったけど、Cookieまわりっぽいので、CookieってXSSないとそもそもかきかえられないよなぁ(いや、レンタルサーバとかだといろいろあるけえど)とか悩んでるわけです。で、もし詳細ご存知の人いたら教えてください。 というわけでメリーXSS
今年最後のPHP勉強会でid:sotarokが紹介してくれた http://d.hatena.ne.jp/shimooka/searchdiary?word=*[PHP] http://events.php.gr.jp/ 思い出す 要約すると下岡さんの記事をまとめてevents.php.gr.jpのをマージしただけ id:shimooka++ eventsつくったhaltさん++ 1月 空前のPHP拡張ブーム PHP本体のイベント 勉強会 第30回PHP勉強会 PHP対応版kmyaccを作った モバイルPHP 「意外と身近なphar - PHp ARchive」の続き 実用性皆無なPseudo_Perlの紹介(ネタ) PHP5再入門「既存環境のPHP5移行」 PHPがDISられる http://www.rubyist.net/~matz/20080126.html#p04 定期的にネタにな
id:sotarkの話をみて、RPMつくればいいじゃないとおもいつつ、自分もCentOSにImageMagickいれる必要があったのでそのあたりのメモを残しておきます。 基本的にはid:elfさんのこことか(いまぐぐった)参考になるとおもいます。 ユーザはcocoitiというユーザです。 まずは~/.rpmmacrosを作成 中身 %_topdir /home/cocoiti/rpm作業ディレクトリの作成(elfさんところまるぱくり) mkdir -p ~/rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS}で、ここまで書いてrpmbuildとかgccが入ってないことに気がついてあわててインストールする sudo yum install rpm-build gcc gcc-c++ImageMagickのSRPMは、id:sotarokがダウンロードしたところの上位のディ
あ、ありのままおこったこと話すぜ。 昨日の日記を書いたあと、目がさめたら、Tokyo TyrantのネイティブのAPIをしゃべるPure PHPライブラリができていた。超能力(ry 以下言い訳が長いので先に結論を 結論:「codereposに晒してみました。誰か適当に直してください!」 というわけで、小人さんが書いたので、コメントもまともなテストもないし、ライセンス表示とか著作権表示すらまともに書いてないっていうか、もともと、つながるかテストするために関数で書いてたのがここまでいつのまにか広がったものだし、あ、あなたのために書いたじゃないんだからねっっ!別によく考えたらTT、別にすぐ使わないし、そもそもmemcached互換のインターフェースで基本、間に合うし(ただ、httpとかmemcached互換のインターフェースだと一部、使えない機能がある。)しかも参考になりそうなソースがCしかなか
PHPには、memcacheをセッションハンドラにする機能があります。 shimookaさんが簡単にご紹介されています 一方Tokyo Cabinet(以下TC)をネットワーク越しで使うTokyo Tyrant(以下TT)は、memcache互換のインターフェースがあります。 「・・・・もしかして、Tokyo Cabinetをストレージにできるんじゃね?そしたら永続化できるんじゃね」とおもったのが夕方。 仕事がおわってさっきためしてみました。 TCとTTはとりあえず、RPMを作ったんですが、ちょっと煩雑なので、id:perezvonのTTはじめましたの記事のコンパイル方法参考にするといいかとおもいます。 TTのサーバを立ち上げて、(TTの1.0だとttservctlというスクリプトがありました。) ttservctl start php側の設定で、 php.iniに session.sav
世間がこういう話している時に http://d.hatena.ne.jp/Yoshiori/20080624/1214298087 http://d.hatena.ne.jp/higayasuo/20080624/1214305064 こういう受け方ができるPHPerもいるなかで [rubykaigi2008]もはやPHPにいたっては、いじられてナンボですから全く気になりません。 http://b.hatena.ne.jp/koyhoge/20080624#bookmark-9064065 こういうことをPHPカンファレンスで行う パネルディスカッション 「激論!PHPの次に学ぶ言語はこれだ」(仮題) (パネラー) サイボウズ・ラボ株式会社 竹迫良範 日本Rubyの会 高橋征義 日本Pythonユーザ会 柴田 淳 Seasarプロジェクト ひがやすを id:amachang (モデレータ)
こういうことはmixiの日記にでも買いてろって話なんですが、なんとなく。 もう4,5年前の初夏のある時期に友人と京都に遊びにいった時の話。 清水寺の同じ境内にある京都地主神社にいったのです。 ここには、恋占いの石というのがあります。10m程度離れた2つの石があり、目をつぶって片方の石からもう片方の石にたどり着いたら恋愛成就するという人気スポットです。 修学旅行っぽい学生さんとかも挑戦していて、目をつぶって歩いている学生さんが、別のグループの人にぶつかったりしているのを見て、「あ、ごめんなさーい」とかいってるの見て「あ、これがもしかして出会い!?」とか思いつつ、友人に乗せられて自分も挑戦してみることにしました。 ちょうど時期にして夏の夕方、目をつぶってあるいても1分かからない距離。 片方の石の前に立ったときにいやな予感がしました。 目をつぶる前にはすでにその予兆があったのです。 一歩前に足を
wide系 %Ethna Ethna %PHPStudy PHP勉強会 %MobileStudy モバイル関係 %PHP よくわからない %CameraStudy 写真 freenode系(utf-8) #zftalk-ja ZendFramework #as-users ActionScript あといくつかるけど公表していいのかよくわからないので自重した。 もし、ヲタ系含めていいところあったら呼んでください。 今から会計処理してくる 技術系勉強会が楽しくなるかもしれないことの裏です。 そもそも、PHP勉強会握り続けるつもりがないとかいいつつ、引継ぎとかしてない僕がいるので少しだけメモを残してみようかと思います。 要するに、新規参加者の敷居を下げることとクオリティをあげる方法を試行錯誤した記録というか、そこらへんid:ripjyrのやってるまっちゃ139を大いに参考にさせていただきながら
ノッキングオンの会議室使いたい! お題: PHP勉強会 内容: PHPで変態的なことをしてハァハァする 希望日時: 2月26日(木) 人とか:20人くらい・エンジニア・デザイナ・変態さん PHPEditorで有名な(単純に僕が使ってるだけだけど)PHPSpotさんの記事 http://phpspot.org/blog/archives/2008/02/phpdlphp.html 趣旨は、Content-Lengthとかヘッダなんだけど、これをコピーして使おうとすると、大きいファイルだとほとんどの環境では動作しないと思うのでちょっとだけ書き直してみた。 <?php set_time_limit('-1'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment;fil
このページを最初にブックマークしてみませんか?
『cocoiti's diary』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く