サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Nintendo Direct
blog.candycane.jp
2013年も残す所数時間です。色々と思い残すところもありますが、今年の活動をまとめてみようと思います。 ブログ ブログについてはこの個人ブログ、会社のブログ、友人と運営しているブログの3ヶ所で執筆し、それぞれ下記の本数を書きました。 candycane development blog – 9本 Engine Yard Blog – 38本 A-Listers – 28本 合計で75本、かなりがんばって書いているのですが昨年の80本からすると微減です。業務内で執筆していてもやはりフルタイムで働くと記事は減るようです。個人として執筆した中で反響が大きかったのが下記の記事です。 16の言語と57のフレームワークを比較したベンチマークが凄い | A-Listers GitHubが(何故か)ミュージックビデオを公開 | A-Listers AWSの認証キーを奪われて仮想通貨を採掘される攻撃が発
タイトルの通りなんですが、継続的インテグレーションのSaaSであるTravis CIのドキュメントを少しだけ和訳してみました。訳がおかしいところや、足りない部分は気がついた人がまたプルリクエストすればいいんじゃないかなと思います。 今回翻訳したのは下記の2ページ Travis CI: Travis CIへようこそ Travis CI: はじめに Markdown形式なのでサクサク翻訳できますよ。ローカルでの確認はJekyllで行います。クローンした後に次のような感じで。 bundle install ./bin/jekyll serve -w リポジトリは下記です。やってみた感じ流れはスムースでした。 https://github.com/travis-ci/travis-ci.github.com add Japanese translation for first page. by
WordPressのログインフォームへの攻撃が問題になっているみたいですが、ユーザー名とパスワードだけの認証という方式自体を見なおしてみるという方法があります。具体的にはユーザー名とパスワードに加えてスマートフォンに表示される認証コードを入力してログインする2要素認証がWordPressでも利用できます。 利用するには下記のプラグインを使います。 WordPress › Google Authenticator « WordPress Plugins また下記のアプリケーションをスマートフォンにセットアップしてください。 Google 認証システムのインストール – Google アカウント ヘルプ プラグインを有効にするとアカウントごとのパスワード設定ページにアプリに読み込ませるQRコードが出てくるのでこれをアプリでスキャンします。またこの認証を使うかどうかはアカウントごとに有効かど
先日告知したCandyCaneの開発会が無事に執り行われました。参加者の皆様にはCandyCaneの特製パーカーと肉たくさんカレーを進呈させていただきました。Hamacoさんの動きっぷりにイベントの盛況さが現れています。 丸一日のTDDは強烈な成果 今回は新しく開発に加わってもらう方を募るという事も兼ねて、ユニットテストを厚くするという作業を中心に丸一日の開発を行いました。よって1日で20以上のプルリクエストをマージしましたが、昨日は何も増えていません。とはいえ実際に稼働するアプリケーションのソースコードにテストを書き、プリリクエストとCIを併用したチーム開発を行うという内容は実にチャレンジでTDD未経験の方にとっても実りある内容になったようです。 Travis CIは最強 コミットがプッシュされる度に自動的にユニットテストを実行して結果をレポートしてくれるTravis CIですがやはり便
今週末、連休前の土曜日にCandyCaneの開発会を行います。 CandyCaneの機能やプラグイン、テーマの開発に興味がある方の参加ももちろん歓迎ですが、CandyCaneのユニットテストの増強を通じてTDDを体験したい方の参加も受け付けたいと思います。 参加資格としてはPHPを使った開発経験があり、ローカルにCandyCaneが動作する状態にしてくる事です。 動作さえしていればテストの実行は直ぐにできるのでそこからテストケースの増強作業に参加してもらおうと思います。 作業ベースで担当をアサインして進めますので実際の開発案件なみにリアルなTDDが体験できるでしょう。 参加登録はATNDで受け付けています。 CandyCane 開発会 2013春 : ATND ※参加してくださった方には記念品を差し上げます。 参加をお待ちしております。
Ruby Hirobaというイベントのスタッフ的な事をやることになりました。(Ruby Kaigiの翌日の日曜日です。)その中のメインのコンテンツの一つとしてLTがあるのですが、これまでLTをしたことが無い方や遠方から参加される方にたくさん喋って貰えたら素敵だなと思っています。 どうすればLTをした事がない方(あなた、もしくはちょっと前のあなた)が応募をしない理由を教えてもらえないでしょうか?コメント、ツイート、ブクマコメなどなんでも構いません。ぜひぜひご意見をお願いします。
Tags · yandod/candycane GitHub上でダウンロード数が分からなくなってしまいましたが、v0.9.1を公開しました。ブログを書く時間もほとんど無い状況なのですが、おかげさまでバグの修正などは順次進んでいます。 またTravisでのテストがグリーン状態になったのも喜ばしいニュースです。今回のバージョンで修正されたバグは下記の通りです。Bug #308: ウォッチャーの追加Bug #345: Comment edit is broken.Bug #397: Cannot edit and cannot quoteBug #402: Unable to quote from issue descriptionBug #403: Tags in description not handled correctlyBug #411: multiple delete doesn’
いつのころからかPHPに関するイベントなどのゲストスピーカーとして海外からお客さんを招くことが多くなりました。さまざまなトラブルに見舞われつつもノウハウが溜まってきたので今回、記事に纏めてみることにします。CakePHPの日本での普及の裏話とも言えると思うのでちょっと無理がありますが、書いて見ることにします。来日の依頼をする海外からゲストを招くとなった場合、本人にコンタクトを取って依頼をする必要があります。スピーカーをするような方であれば連絡先はWebから見つける事が出来ると思いますのでメールでのやり取りという事になるでしょう。この際に注意すべき点としては下記の点でしょう。事前に交流がある人に依頼する依頼は早めに、有名カンファレンスの時期を調べる渡航費や謝礼などの支払いを伝える依頼したいセッション内容などを決めるこれは依頼を受ける側の立場を想像するとわかりやすいでしょう。何処の誰ともわから
フレームワークの処理に介入するには以前はコールバック関数を使った方法が主流でした。クラスの継承とメソッドのオーバーライドを使った方法は比較的わかりやすいものでしたが、下記のような問題があります。コールバックを使うためだけにサブクラスを作るのは面倒独自のクラス階層を作っているとコールバックを差し込む場所をよく考える必要があるコールバックを差し込んだ箇所を後から探すのが難しいControllerからViewを表示する前になんらかの処理を行うという拡張をコールバックを使った方法で行った場合は下記のようになります。 AppController extends Controller { public function beforeRender() { //do something } } CakePHP2.1から採用されたEventManagerを使う事で上記の問題をシンプルに解決できます。Cont
CoderDojoの概要いよいよ開催まで一ヶ月を切ったPHP Matsuri 2012ですが、今回は祭り2日目の11/4(日)の午前中に子供向けのプログラミング教室 CoderDojoも併せて開催します。CoderDojoの詳しい内容についてはコチラの記事がとても詳しいですが、大雑把にまとめると下記のようなイベントです。アイルランドで始まり現在は世界各地で行われているプログラミング教室対象者は小学生から中学生までのプログラミングを学びたい子供学習の内容はHTMLやJavaScript、Scratchを使ったゲームプログラミングなど子供とメンターは基本的に一対一でそれぞれの子供の興味やスキルに合わせて進行する(一斉授業の形ではない)子供は保護者と一緒にラップトップを持参して参加する今回は東京や沖縄でイベントを開催したスタッフも現地入りしてお手伝いするのですが、開催に興味がある方がいれば是非と
About yandod 文系出身PHPエンジニア。candycaneというバグ管理システムを作りつつ、PHPとCakePHPのコミュニティで活動中。2011年末に日本に帰国後はノマド生活。
日本法人の設立がニュースにもなっていたEngine Yardの提供するPaaSサービス、「Engine Yard Cloud」についてアカウントの取得からデプロイまでの流れをまとめた日本語記事が無かったのでまとめてみました。Engine Yard Cloudの概要Herokuと同様に主にRubyをサポートするPaaSスタックとして知られているEngine Yard Cloudですが、実際に使ってみると気がつく特徴がいくつかあります。アプリケーションごとに独立したEC2インスタンスを専有して動作インスタンスの構築はchefを利用した自動構築インスタンスを日本リージョンに配置する事も可能gitレポジトリからアプリケーションを自動デプロイ稼働中のインスタンスへのsshログインも可能直接の比較対象になりやすいHerokuは大きなクラスタをさまざまなアプリケーションが共用するイメージですが、Engi
新標準PSRに学ぶきれいなPHP from yandodすでにご覧になった方も居るかとおもいますが、PHPのコーディング規約であるPSRについてのセッションをFukuoka.phpとShimokita.phpで行って来ました。後者はUstでの録画もあり生放送では20名くらいの方にご覧頂きました。 Video streaming by Ustream開きブレースの位置やソフトタブなど賛否両論がある規約もありますが、著名なプロジェクトのメンバーが統計と投票を元に採択した規約という事で無理なく採用できるよい規約ではないでしょうか。ただし資料でも言及していますが、敢えて制定していないコメントや代入などに関する規約については採用するフレームワークに合わせるなどの工夫が必要です。Fukuoka.phpもShimokita.phpも今後も開催が続く予定です。お時間に余裕のある方は是非どうぞ。
Photo by Lindすでに半月前になりますが、PHPカンファレンス2012で実行委員長をさせて頂きました。 当日はPHPカンファレンスには約600人、同時開催・共催のWordCamp Tokyoには1100人と合計で1700人という多くの方にご来場頂きました。今年はRubyKaigiやPyConなどと日程が重なってしまった事もあり、お越し頂けなかった方もいた中で多くの方に来場していただけて感謝しております。これだけの規模のイベントが滞りなく開催できているのは熱心なボランティアのスタッフ、スポンサー、スピーカーと参加者のみなさんのご協力があっての事だと思います。また今年はWordCampと一緒にイベントを開催するという事で関係者の皆さまには多大な労力を割いて頂きましたが、その甲斐もあって見たことのないイベントになったかと思います。皆様、お疲れ様でした。 参加者の方からのアンケートやツイ
さて二日目です。 なんだかんだいって一日目で山場は過ぎており、基調講演も終わっているのでかなりまったりした感じの展開です。そもそも起きてこない人も多かったですし。 内容的にもどうしても失速感というか、イベントの山場を前半に持ってくるとか後半で盛り上げるとかは考えないといけませんね。 そんな訳でメモの量は少なめです。Simple search with elastic search By: Mark StoryMark Storyさんは検索エンジンをCakeから使ってみたという例ですが、大部分はElasticそのものの説明という感じでした。肝心の連携もプラグインが複数存在しており、またJSONで返されたレスポンスをデコードさえすればなんとかなるよねということで連携そのものはあっさりしていました。とはいえこういった構成をプラグインなどの形でやりきるあたりが欧米のエンジニアの底力な気がします。
※書影はPhotoShopで加工した画像です。かねてからイベントなどでも告知していましたが、CakePHP2の解説書籍の原稿が7月末に脱稿しDTPに入り、9月ごろに技術評論社より出版されます。タイトルについてはまだ仮の状態ですが書影のイメージのようにWEB+DB PLUSのシリーズとして「CakePHP2実践入門」無いしは似たようなタイトルになる予定です。これまでも書籍の執筆は何度か行いましたが今回は特にCakePHP2世代の決定版書籍にするべくかなりの労力(今年の上半期全て。。。)を割いてきましたのでほっとしています。充実の執筆陣 安藤 祐介 岸田 健一郎 新原 雅史 市川 快 渡辺 一宏 鈴木 則夫今回の執筆陣は日本のCakePHPコミュニティの中でも有数のメンバーによる執筆陣といった形です。各々が得意分野を担当するとスタイルになっており、紙媒体としては特にクオリティの高い内容になって
今回も怒涛の8時間耐久という感じで、いつになくハードな内容になりました。 VPSを借りたりするとブログなどをみて見よう見まねで構築をする事もあるかと思いますが、ソースからPHPをビルドしてインストールするという流れを通じてPHPの動作原理や、はやりのnginx + php-fpmの構成を構築してWordPressを動かすというスパルタな感じの勉強会でした。途中、仮想マシンのMACアドレスの問題やmbstringの問題でapacheがクラッシュするなどの問題に直面しましたが、ひとまず西川さんがnginx + php-fpmでWordPressを動かすというゴールには到達する事ができました。また副産物としてCでHello Worldを動かすという作業もしてみたのでビルドしてバイナリを作るという流れが身についたのかなと思います。これで4つ目の8時間耐久シリーズになったわけですが、希望があれば内容
Heroku上でPHPのコマンドラインを使おうとすると標準ではモジュールのロードに失敗したエラーメッセージが出てしまいます。$ heroku run /app/bin/php Running `/app/bin/php` attached to terminal... up, run.1 /app/bin/php: error while loading shared libraries: libmcrypt.so.4: cannot open shared object file: No such file or directoryこれはどうやらビルドの問題らしいのですが、とりあえずの解決手段として環境変数を追加する方法がアナウンスされていました。heroku config:set LD_LIBRARY_PATH="/app/php/ext"上記の設定を行えば下記のとおりにコマンドライン
みんなの短歌 Hinetterという短歌を投稿できるサイトを作ってみました。ここのところよく解説していたHerokuのPHPスタックの上にCakePHP2.1とJQuery Mobileを載せて開発しています。アイデアを思いついてからは24時間くらい、実質の開発時間は半日ほどで特にFacebook連携と見た目の部分に時間をかけた感じです。Herokuによる開発速度はとんでもない月曜の朝にFacebookのウォールになんとなく短歌を投稿したのですが、その後なんとなく話しが盛り上がり名前の案が出た所でheroku createしています。当日の夜は何もせず、翌日下北沢オープンソースカフェで作業を始めました。環境の構築などが必要なく、ただひたすらにGitでpushするだけでいいのでお昼すぎには動くアプリをデプロイする事ができました。また副産物としてCakePHP2をHerokuで動かす為のプラグ
あまり経緯はわからないのですが、DevLoveが主催するHeroku Junior CampでHeroku+PHP+Facebookな感じの講演をやってきました。大体3時間くらいはしゃべりっぱなしという感じでですが、参加者の方はみなさんFacebookのAPIを叩くアプリケーションの作成方法を実際に体験してみることができたように思います。Herokuの利用方法については特に問題はありませんでしたが、gitを使ったことがない人はgitに戸惑っていたようでした。何にせよPHPを動かす環境としてもすぐに使える環境である事は改めて証明されたように思います。日本語でPHPが使えるスタックの資料についてはhnwさんのブログ記事が大変詳しく、参考にさせて頂きました。 HerokuのBuildpackを利用してmbstringが有効なPHPサーバを立ててみた – hnwの日記スライド4時間耐久 PHP o
Herokuでは無料で使えるデータベースはPostgreSQLになります。Rubyなどであればdb:migrateなどのツールでDBを管理しますが、PHPではデファクトといえるほどのツールがありません。ひとまず手早く管理するべく。phpPgAdminに魔改造を施してHerokuの環境変数を読み取って動作するフォークを作成しました。導入方法PHPを使って動作しますので、PHPスタックで初期化されたアプリ内で下記のコマンドを実行してください。(Facebook Developerから作成したPHPアプリなどでOKです。)heroku addons:add shared-database git submodule add git://github.com/yandod/phppgadmin-heroku.git git add . git commit -m "Add phppgadmin-h
もう何回目かわからなくなってきた8時間耐久シリーズですが、今回は新作となるPHPUnitの教室を下北沢オープンソースカフェで開催してきました。初物という事もあり色々と試行錯誤な部分もありましたが、参加者の皆さんのご協力のおかげで楽しい時間を過ごすことができました。開催してみて思ったのが、PEARのセットアップ方法が環境ごとにカオスすぎるという事です。Macの場合はPHPの導入方法がOSバンドル、MAMP、MacPorts、自力ビルドと豊富かつ、重複して導入されている可能性が極めて高いのでパスの解決などが人によって違っています。PEARのinclude_pathを基準とした動作スタイルは実習の手順にはかなり影響が大きかったです。(セッションの為にphp.iniを変更させるというのは極力避けたいですし)またユニットテストは強制的に触る機会がないとなかなか始められないという事もあり、こういった内
小川雄大さんの新刊、効率的なWebアプリケーションの作り方 ~PHPによるモダン開発入門 をPHP勉強会のarray_randのお陰で頂いたので読んでみたので感想を。実質的にはSymfony2の貴重な日本語書籍この書籍はMVCやオブジェクト指向の基礎からスタートして、Symfony2(Symfony Standard Edition)、Doctrine、Twigやgit、git-flow、Twitter bootstrap(v2)、PHPUnit、Stagehand_TestRunnerといったツールを駆使してアプリケーションの開発を行う流れをソースコードを発展させながら解説するという書籍です。見ての通り最新のツール群を取り揃えた形の解説書籍になっています。特にSymfony2を使ったコードが(namespaceが付いたコード)書籍で確認できるという意味では貴重なのではと思いました。 また
懇親会LTの様子久々のPHP勉強会「第59回PHP勉強会@東京 : ATND」はとても盛り上がりました。今回はPHP勉強会が初めてATND上で募集を行ったという会なのですが、うまい具合に初参加の方と古参の方が混ざった勉強会になっていました。特にLTの方々のレベルがとても高く、よくそこまでネタを作りこんだ!という感じのものが並んでいました。またフレームワークを使っていないという事でより広い意味でPHPを使おうとしている人が来ていたのかなと思いました。そういう意味ではもうすこし一般性のあるネタも用意しておかないといけないなぁと思いました。今回はストックされているネタの中からZendFrameworkのキャッシュ処理とページング処理について紹介をしました。Zend四十八手シリーズ Zend_Cache Zend_Paginator サンプルコードを交えながらライブラリの紹介をした形ですが、Zen
PHPカンファレンス関西のLTで発表したネタです。スペインやロシアからも開発者が参加するようになりさらに開発の活発さが増しているCandyCaneですが、今回はコンプガチャ機能を実装してみました。前日の飲み会でネタとして発送し、そこから無限もやしを摘みながら4時間程度で実装したプラグインです。 現在は無制限にガチャを回せていますが、チケットを閉じる度に回せるとかペイパルで送金したらさらに回せるみたいなソリューションとして育てていける訳ないですね、、、はい。また移行作業ではインストーラーについてもCake2で動くように改造しています。こちらも見た目で変化がわかるようにシロクマのキャラクターを背景に追加しました。やっぱり可愛いほうがヤル気が出ますからね。発表につかったスライドは下記になります。新しいインストーラーとコンプガチャを試してみたい方はダウンロードページからα版をどうぞ。CakePHP
40分濃縮 PHP classの教室 すでにブックマークなどでご覧になった方もいるかと思いますが、表題の講演をPHPカンファレンス関西で行って来ました。サブ会場での講演でしたが40人以上の人にお越し頂けたので弾丸でしたが大阪にいってよかったと思います。既に動画などは上がっている内容であっても、参加者のニーズがあるのであれば再演するというのはいいことなのではと思いました。なお今回のセッションの動画もすでに公開されています。 Video streaming by Ustream今回は時間の関係で内容を大幅に削っています。継承やstaticにほとんど触れないオブジェクト指向というのもさみしい気もしますが、まずは関数ベースのコードを理解できる人がクラスを使ったコードを追うことができるのが目標でしょうか。今後もこのような中級者向けのセッションとしてPHPUnitやPHPの環境構築、セッションの取り扱
PHPが動くPaaSの中でも知名度の高いheroku phpfog orchestraのそれぞれ実際のところどの程度のパフォーマンスが出るのか気になったので調べてみました。結論から言うとどのプラットフォームもAmazon EC2内のネットワークがボトルネックになっておりパフォーマンスの差はほとんどありませんでした。テストは下記の簡単なスクリプトに対してabで並列数1でリクエストを投げるという形で行いました。下記のグラフは1秒間あたりに処理したリクエスト数です。<?php echo json_encode(getdate());結果が頭打ちになってしまっている原因はおそらくネットワークです。3プラットフォームに対してtracerouteを取ってみましたがどれもAmazonのネットワークに入った後に追跡ができなくなっています。どのプラットフォームも連続的に接続を行うと接続がリセットされてしまう
そろそろgithubと並んで使った事が無いなら危機感を感じるレベルなPaaSですが、PHPの場合は何を使っていますか?PHP FogやOrchestra.ioといったPHPに最適化されたプラットフォームもありますが、PaaSの王道とも言えるHerokuでもPHPは非公式にサポートされています。しかもこれが非公式サポートであるにも関わらず、facebookの開発者コンソールからクリックだけでデプロイできるので密かにメジャーなプラットフォームになっているという不思議な状況です。Ruby界隈では常識かと思われるHerokuがPHP界隈で流行っていない原因に「mbstringがサポートされていない」というのがあります。しかし今回ちょっとやってみたらmbstringをHeroku上にセットアップする事が出来ました。ひとまずコチラが実際の環境です。 phpinfo() on Herokumbstrin
下北沢オープンソースカフェでPHPのオブジェクト指向入門講座を開催しました。 公開したスライドにかなりブックマークをした貰ったので既に資料をご覧になった方もいるかもしれません。 現場での参加者は4名でWordPressのテーマ作成などはしているけれど、classが出てくるとコードが追えなくなるという話を以前、プリンス西川さんが言っていたのでそれに応える形で話をしました。 実際のところfunctionとグローバル変数の組み合わせでも頑張れば何でも作れるわけですが、肥大化する引数やグローバルな変数や関数の乱立は他のプラグインの導入の際のリスクになりえます。そこから脱する為に必要な文法の知識を取り扱っていました。また何度かにわけてやると集まるのが大変なので8時間耐久フォーマットで一気に実施しています。(今回は6時間くらいで終われました)PHPでオブジェクト指向というと下岡さんの書かれた本などもあ
次のページ
このページを最初にブックマークしてみませんか?
『candycane development blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く