GROUPエンジニアブログです。2014年03月2014年03月26日13:00カテゴリ14卒エンジニア内定者育成支援PJこんにちは。三浦@hironomiuです。GROUPでは去年入社前にエンジニア育成支援を行いました。今年も入社前に実力を伸ばしたいと考えている14卒エンジニア内定者に対して2013年10月から週1回のペースで内定者育成支援PJが立ち上がりました!育成支援PJ最終日後の1コマ育成支援ですので基本的に実力を伸ばしたい意思のある人のフォローをすると言う位置付けで行っているので任意参加です。合計6人と言う豪華なサポータ体制で始まりました!フォローの進め方ですがテーマを設けることで発散を避け他の内定者のアウトプットを参考に出来るメリットがあると考え10月、11月、12月はテスト駆動開発(TDD)をテーマに、1月、2月、3月は徳丸本をテーマに進めました。req、issueなどを駆使しロケーションのギャップを埋める形で進みます。1月からは月に1度集まり、丸1日を使っての実機を用いたワークショップ形式の実習を行いました。内定者とサポーターで話し合い手探りの中進めていきましたが、成長に関してかなりの手ごたえを感じました。(2月は大雪のため中止となりましたが。)3月最終日のワークショップ風景このような形で約半年ほど育成支援PJが進んだのですがサポータ、内定者ともに成長出来る機会だったと個人的に思っています。定期的にサポータが集まりKPTを実施し次回のテーマの支援に繋げる動きや内定者の忌憚の無い質問から様々な技術的な気付きもありました。14卒エンジニア内定者も育成支援によって気付きや成長があったと思います。Relicのなかなか凄い新機能を試してみたこんにちは、こんばんは、おはようございます。弊社adingoは月間200億impを捌くSSP「Fluct」を提供しており、100台近いサーバでリクエストを捌いたり、大規模データの分析をしております。Relicがなかなか凄い新機能をβリリースしていたので簡単な紹介をしたいと思います。Relicとはアプリケーションとサーバのモニタリングを行うサービスです。yumでagentをインストールするだけで手軽に導入できます。今回紹介する新機能は「JSのエラーレポート機能」と「AJAXの実行時間レポート」で、リリース文は以下となります。新機能を使う前にまずアプリケーション設定を行う必要があります。Account」ボタンから新規にアカウントを作成します。ログインして「Application」のメニューを選択するとメニュー画面が表示されますので、案内に従ってアプリケーションの設定を行ってください。自分(CentOS)の場合は以下のコマンドで登録しました。restartphpinfoで以下のようにnewrelicが表示されればOKです。Application」のようにアプリ名が表示されます。features」にチェックを入れて保存します。以下のように「newrelic/render_js.php」を作成後、ブラウザで開いてみてください。(「alert」をスペルミスしているためスクリプトエラーになるはずです。詳細を見てみるとすげええええ!!!JavaScriptのエラーをハンドリングして表示してくれました。(3)AJAXの実行時間レポート機能を試す次に以下のように「newrelic/render_ajax_js.php」を作成して、ajaxのリクエストを発生させます。</body></html>しばらく待ってレポートを見てみると以下のようにレポートに反映されました。下記の値がグラフされるようです。Relicに追加された新機能の紹介でした。htmlにJavaScriptのハンドリング処理を差し込むので本番環境に入れるのは少し怖いですが、テスト環境に導入してみるのは良いかもしれないと思いました。BoxでCakePHPをさくっと動かしてみたこんにちは、ECナビ事業本部の新卒エンジニアのブライアンです。前に配属されたと思っていたら、4月には2年目突入です。1年なんてあっという間ですね。入社前は内定者エンジニア向け育成支援や、朝から晩までペアでTDD漬け等々の研修、配属後も優しくマサカリを投げてくれる先輩エンジニア達のおかげで、メキメキと技術力を伸ばしてきました。(自称)できることも増えてきて、なにか作りたい欲がふつふつ湧いてきましたが、VPS借りてサービス公開するにも、いかんせんサーバーに関してはまだまだ勉強不足。いうことで、サーバーのことはお任せしてサービスの開発に集中できるPaaSを使ってみることに。Boxを使うことにしました。RAMのMySQLを使うことができるため、無料でさくっと何か作って動かしたいというにはちょうど良い感じですね。課金すればスケールアウト、スケールアップもできます。Boxに登録ということで、早速新規登録から。Free」からメアドとかを入れて登録します。accountをクリックして認証します。認証が終わったら、早速ログインして作成開始です。Application」のボタンを押すと、アプリケーションの作成方法を選ぶことができます。アプリケーションの作成には、CakePHPやcodeigniterなどのフレームワークをインストールする方法と、既存のgitリポジトリを利用する方法、とりあえず空のリポジトリを作成する方法が選べます。今回は、Slimを使おうと目論んでいたのですが、何回やってもインストールに失敗したので、CakePHPをインストールすることにしました。「Quickstart」をクリックして「delicious-cake」を選択します。App」のリンクが出てきます。今度はローカルの開発環境側で、CakePHPを動かして少しいじってデプロイしてみたいと思います。Linuxをインストールして構築していますが、手軽にやるならXAMPPやMAMPでLAMP環境を構築するのも有りだと思います。Boxのgitリポジトリにpushして行うので、まずはSSHキーの生成と登録から始めます。Box用の公開錠と秘密錠は、それぞれ、pagoda_box_id_rsa、pagoda_box_id_rsa.pubとかにリネームしてやって、configファイルを作成して使い分けするようにしておくと便利です。~/.ssh/configconfigファイルはこんな感じで。~/.ssh/pagodabox_id_rsaconfigファイルのパーミッションが誰でも見れるようにしていると怒られるので、自分しか見られないように変更します。Key」をクリックして登録します。keyとか出て焦ったけれど、もう一回作り直してみたらすんなり通った。なんかのバリーデーションに引っかかってたのかな。Boxに公開錠を登録できたら、早速Pagodaさんに挨拶しに行ってみます。cloneしてきます。URL」をクリックすると表示されます。git@git.pagodabox.com:*****.gitとりあえずブラウザからローカルのドキュメントルート見に行くと動いていますね。present.とかCakePHPセットアップのお決まり文句言ってます。Appでは、そんなエラー出てないのに。なんか、FAQにデプロイする際にBoxfileをむにゃむにゃする的なことが書いてあった気がするので、そいつの中を見てみます。mysqlafter_buildのところで、database.phpとcore.phpを書き換えてるっぽいですね。開発環境とデプロイ環境の設定とかはこれでよしなにやるのか。デプロイしてみるとりあえずapp/Config/core.phpのSecurity.saltとSecurity.cipherSeed書き換えてブラウザで確認してみます。(CakePHPのセットアップについては、ブログチュートリアルがとても参考になります)とりあえずSecurity.saltとSecurity.cipherSeedの警告は消えたのでコミット・プッシュしてみます。pagodaboxのリポジトリにプッシュするとデプロイがされます。masterなんか色々走って終わったみたいです。Bakeでアプリのひな形を作るせっかくなので、一つのテーブルを使って、CRUDができるものをCakePHPのBakeで作ってみようと思います。ローカルの開発環境にデータベースとテーブルを作成して、Bakeを叩きます。bakedatabase.phpがないと設定を色々聞かれるので、ぽちぽち答えていきます。database.phpが作成されたので、一旦コミットしておきます。all焼き上がったらブラウザでアクセスしてみます。良い感じに焼き上がっていますね!早速コミットしてプッシュしてデプロイします。Appを見に行きます。Box側にはテーブルがないので怒っていますね。Box側のDBに、ローカルに作ったテーブルと同じものを作成します。Pagoda-BoxのDBに触るには、Pagoda-BoxのターミナルクライアントのRubyGemを使います。pagodagemのインストールができたら、Pagoda-BoxのDBに接続してみます。-cは接続する先を指定していて、アプリ管理画面のダッシュボードの、db-1とかに対応しています。最初にtunnelで接続しようとすると、認証のためにユーザーネームとパスワードの入力を求められるので、ユーザーネームにはダッシュボードの右上に書かれているものと同じものをPagoda-Boxの管理画面にログインするものと同じものを入力します。******************無事認証が済むと、Pagoda-BoxのDBとのTunnelが出来上がります。MySQLに接続している間、このシェルは立ち上げっぱなしにしておきます。MySQLの接続が必要なくなったら、ctrl-cでTunnelを閉じることができます。3307を使って、Pagoda-BoxのDBに接続します。Credentialsをクリックすると確認することができます。mysqlへの接続は、普段使っているクライアントを使っても大丈夫です。mysqlに接続できたら、データーベースとか権限とか見てみます。PRIVILEGESのデータベースレベルの権限が付与されているので、このデータベースに、ローカルで作成したテーブルと同じテーブルを作成します。Appを見に行ってみる。動いてにっこりですね。Punch!!!こんにちは。MARKETINGで学生インターンをしている西尾@blackstar240と申します。弊社にはCREEDという経営理念があり、その中の一つに『圧倒的スピード。』という言葉があります。本日は『圧倒的スピード。』を誇るPHPのフレームワーク、Phalconを使い、テストプロダクトを作ったことについて書こうと思います。はじめにはじめに、Phalconについて簡単にご紹介します。Extentionであり、こちらのベンチマーク結果からもお分かりのように、PHPのフレームワークの中では『圧倒的スピード。』を誇るフレームワークです。devtoolsという、スケルトンコードを生成する便利なスクリプトのコレクションもあり、これまた『圧倒的スピード。』で実装が出来そうな予感がします。こちらを参考にフレームワークとdevtoolsのインストールを行い、さくっとプロダクトを作ってみようと思います。雛形作りまず、devtoolsを使ってMVCモデルの雛形を作ります。name]コマンドを叩いて下さい。すると、プロジェクトの雛形が完成します。続いて、controllerの雛形を作ります。name]コマンドを叩いてください。すると、Phalconの命名規則にのっとった名前に変換され、controllerの雛形も完成されます。続いては、controllerにecho文を書き、正しく呼び出されているか確認してみようと思います。routingまだ、routingを書いていません!!これでは、せっかく書いたcontrollerも動くはずがありません。ここは落ち着いてroutingを記述しましょう。configディレクトリ配下にroutes.phpファイルを作成します。config/route.phpの記述例がこちらになります。$router;続いて、confifg/service.phpに以下の記述を追記します。serverではhttp://localhost:9000/index.php?_url=$1のリクエストで開発しつづけなければなりませんそこで、先ほど作ったconfig/routes.phpに以下の記述を追記しましょう。$router->setUriSource($router::URI_SOURCE_GET_URL);$router->setUriSource($router::URI_SOURCE_SERVER_REQUEST_URI);これで、http://localhost:9000/phalconのような綺麗なURIでの実装も可能となりました。テンプレートの使い分けここまで、controllerから直接echo文を実行し、挙動を確認してきました。続いて、viewのテンプレートを各コンテキストごとに使い分けてみようと思います。app/views/layoutディレクトリにcontrollerと対応する名前の.volt(.phtml)ファイルを作成します。controllerからメソッドでviewファイルへのレンダリングを記述します。}}ここまで記述した所で、実際の挙動を見てみましょう。今回、Phalconを使ってテストプロダクトを作成致しました。日本語でPhalconについて紹介する記事がまだまだ少ない中、開発において必要不可欠な要素についてご紹介することが出来たので、Phalconを使ってみたいと思っている方の一助となれば幸いです。Webサービス作りにおいて、フレームワークの選択が重要となる昨今、今回のテストプロダクト作りで得た知見も活かし、今後も努力を重ねていく所存であります。公式ドキュメント上にはサンプルコードも掲載されているので、よろしければお試し下さい。最後に、このエントリーの内容を実装したものがこちらになります。https://github.com/Nissy0409/phalcon最後までお付き合いいただき、ありがとうございました。