「Symfony」を含む日記 RSS

はてなキーワード: Symfonyとは

2016-03-24

サーバスペックが低くても負荷の高いサイト運用したい

何を作りたいかというとマルチプレイヤーブラウザゲームが作りたいんだよね。

phpsymfonyを使ってみたけど重い。

俺の開発用のceleron 1コアのメモリ1GB環境では重すぎる。

isoファイルを10000個同時にダウンロードしてるぐらい重すぎる。

ページの読込みがなかなか完了しない。

こんなクソ重いフレームワークはそれなりのサーバスペックがないとパフォーマンスに影響が出すぎるので除外したい。

phpフレームワーク一般に言えるんだけどプロジェクト毎にプロジェクトルートなかにフレームワークのコアファイルを置くのがなんか嫌だ。

railsdjangoのように分離させてほしい。

nodejsシングルスレッドなので負荷の高いサイトで使うのは厳しそう。

pythonでもgolangでもwebsocketは使えるのでnodejsにこだわる必要もないしvert.xを使う選択肢もある。

日本ではvert.xの話題あんまり盛り上がってないよね。どこかの企業さんが実践で使いましたって記事を書いたら会社の知名度が上がると思う。

scala,golang,elixirこの3つの選択肢でいいのかな。

でも負荷の高いブラウザゲームやってる会社ってrailsとかphpだよね。

railsphpでも問題ないのかな。

redisをうまく活用しとけばあんまりそれ以外でボトルネックとなるようなことって無いのかな。

艦これやってるdmmとかは何使ってるんだろうね。

スクエニさんのオンラインドラクエもどうやってるんだろうね。

あと海外ブラウザゲームってほとんどがaws使ってるのでaws使えばいいのかな。

でも怖いよね高額料金を請求されたらさ。

金儲けの為にサイトを作らないとawsは使ってられない気がする。

初めのスタートダッシュは定額制のレンタルサーバクラウドでいいか。

2015-12-24

日本楽団名称に「フィルハーモニー」付け過ぎ

東京交響楽団とかじゃだめなの?

なんで間にフィルハーモニー付けないといられないの?

というか交響楽団シンフォニーオーケストラだろ

東京フィルハーモニー交響楽団だと

TOKYO PHILLARMONIC SYMFONY ORCHESTRA」になっちゃうじゃん

TOKYO SYMFONY ORCHESTRA」でいいじゃん

なんでそんなにフィルハーモニーしたがるの?

みんな付けてるからとりあえず付けた、みたいな感じだろどうせ

日本楽団からフィルハーモニー」無くしたら印刷のインク代とか浮いて相当エコになる気がする

2015-10-07

PHPWEBフレームワークを使いたくない理由

LaravelやCodeIgniterFuelphpCakePHPなど、プロジェクトごとにフレームワークインストールしなければならないので、使い回しが出来ない。

Zend Frameworkはそんなことないが、雛形がないのでルールを決めないととんでもないコードを生む。

プロジェクト内にコアファイルを置くのが気持ち悪い。

限られた容量のレンタルサーバを使うときにLaravelを置くだけで15MB以上消費するのが気になる。

人気なフレームワークLaravelやsymfonyCeleron 1コア、メモリ1GBの環境では重かった。

数年毎にトレンドが変わるのでrailsdjangoのような鉄板がないこと。

2014-03-28

下請け底辺泥臭Webアプリデバッグ手法

次々とやってくるさまざまな環境で色々がんばる人のためのノウハウを集めてみよう。

必ずしも綺麗な環境で開発できる人ばかりじゃない。スパゲッティを手渡されラーメンを作れといわれる。

所詮下請けなので、そもそもこうした方がいいよとか軌道修正すらできない環境で足掻くために何ができるのか。

今回はみんな大好きPHPを使った場合の話をしましょう。

1. なんだよこれどこの処理通ってんだよわけわかんねぇよ。

朝はCakePHP、昼はsymfony、右向きゃ独自FW、左向きゃ素php

こんなこと、よくありますよね!

いろんなFWを使ってるとFW固有の機能とかもう何がなんだかわけがからなくなります

FW機能を使ってデバッグなんてやってられません。一番信頼できるデバッグ方法とはなんでしょう。

・・・うprintデバッグです!!!printデバッグこそ神!PHPならprint_rを使おう。

ただし出力バッファ捕獲したりするFWもあったりするのでprintだけだとどこの処理通ってるかわけわからんときがあります

そんなときはこれ!

exit

exitだけは何者にも犯せない最強の関数言語構造)なので確実に処理がとまってくれます。なのでわけわからんことになったら真っ先にexitしましょう。

2. ローカル環境作りたい?むぐぐこの定数とか関数とかローカルじゃうごかねぇよ

世の中には開発者PC環境ローカル環境)を作るのが困難な場合があります。例えば設置できたはいいが、ローカルでこの関数が動かないor動いたらまずいだとか

この定数はローカルだと微妙、書き換えたいとか。

こんなこと、よくありますよね!

そんなとき僕達がよくやる対策としてはソースコードを直接書き換えることですね!呼ばれたくない関数は中身をコメントアウトしたり、定数はローカル用の値に書き換えたりするわけです。

しかしこのやり方は少し問題があるのです。

例えばSVN等を使っている場合、常にこれらのファイルが変更状態のままになってしまます。間違えてコミットしちゃった!なんてこともあります

そして更にそのファイルに何か変更があった場合とても面倒です。関数コメントアウトを外し、定数は本番環境用に戻してからコミットする、なんてことになります。まぁ確実にいつか人的ミスが入るでしょう。

そこで僕が推奨するのはファイルを直接書き換えずに書き換えろ。ということです。

まりrunkitを利用するのです。

通常PHP関数や定数などを動的に上書きすることはできませんが、runkitを使えばそれができてしまうのです。このようなローカル環境を無理やり構築したい場合にはとても使える機能です。

もちろん本番環境においてrunkitを使うのはご法度だと思います伝家の宝刀馬鹿と鋏は使いよう、です。

3. 今何が最新なの?ねぇねぇ?もう僕わかんない

こんな経験はありませんか?

「ここを改修して欲しい」

「わかりました、じゃあSVNをUPDATEしてから改修しますね。」

「いや、今はステージング環境にあるファイルが最新なのでそこからダウンロードしてから作業してほしい」

「あ、そうなんですか、じゃあステージングから持ってきて対応します」

「改修完了しました。コミットしてステージングにアップします」

「動作問題無いので次は本番環境にアップしますね」

「あれ、なんか本番の動作がおかしい!デグレードしてますデグレードしてます!」

「どうやら本番環境のみに誰かがファイル書き換えていた模様」

「誰だrsync使わずアップしたやつわッ」

コミットもされてねぇ!」

「競合!競合!」

「うわああああああ、今何が最新なの?ねぇねぇ?もう僕わかんない。」

増税前にdiffすれば良かった」

こんなこと、よくありますよね!

この後の担当者の作業はこうです。

ローカル環境ファイルSVNdiffステージング環境diff。本番環境diff

改修対象ファイルが複数ある場合diff作業の大変さと言ったらもう筆舌に尽くし難いものとなります

僕は思いました。ローカル環境ファイルと、SVNステージング環境と、本番環境diffワンコマンドでさっとできたらどれだけ楽か・・・

そして作りました。それができるdiffコマンドを。

もちろん探せばそういったツールを見つけることは可能だとはおもいますが、探すのが面倒だったので自作しました。

そのツールをここに晒す事もできなくはないですが、この余白はそれを書くには狭すぎるので今回はそういうアプローチがあるということだけを書いて終了します。

とりあえず僕が自作したのはローカル(windows)とhttp(SVN)とftpssh対応した相互diffツールです。全ての環境の組み合わせでdiffをして差分を表示したり、特定環境だけをdiffしたりできるので開発効率アップです。

何より気軽にdiffしようという気が起きます

4. 見なかったことにしよう

タイトルで言ってしまった感がありますが、下請けで改修作業をしていると既知バグ発見してしまうことがあります

これは非常に難しい問題です。もう完全にクライアント次第としかいいようがないんですが、クライアントに報告すべきかしないべきかは慎重に考える必要があります

バグを報告するとちょちょっと直してよ、とかいクライアントもいますし、何よりクリティカルバグ場合見積もりしてくれと言われたとしてもとてもじゃないけど責任を請け負いたくない場合もあります

なので見なかったことにする。

む、ちょっと眩暈が。最近寝てなかったし。とか言いながら缶コーヒーでも飲んで一服しましょう。

するとどうでしょう、さっきまでバグを見過ごさないのはプログラマ矜持だとかなんとか言ってたのにあら不思議、とりあえず今改修対象のところだけ直そう。となります

・・・こんなこと、よくあります、よね?とほほ。

5. うん。もうない。

20個くらい書くつもりで見切り発車してみたものの、もうない。泥臭い作業にノウハウなんてないのだ。

所詮泥は泥。ドロドロ。細かいコードの書き方まで言い出せばいくらでもあるけど「些末なコードレビュー」の話したところで泥で足掻いてる人にとってはなんら救済にならないし別に必要ないよね。

さてここからは他にも泥臭い作業をしている人たちでノウハウを構築しようではないか。6番目以降を書く同志達を僕は待ち望んでいるッ!

2012-09-26

【2012超まとめ】確実にWEBサービスを作りたい人へ【前編】

(記事が長すぎたので前編・中編・後編に分けました)

僕ももう、リストラされそうなとあるおっさんなんですが、先日Webサービス公開しました

きっかけになったのはこの記事です。

自分WEBサービスを作りたいと思っている人へ

http://anond.hatelabo.jp/20101203150748

こんな事できたら良いなぁと思っていると、他にもやっている方たちがいました。

たった2日で製作されたWebサービス「お部屋晒し」って?

http://matome.naver.jp/odai/2131952812556433001

WEBサイト発注してみた。

http://anond.hatelabo.jp/20120318122617

Rails3 と jQuery で、真面目にオシャレなエロサイトをつくってみました - h300

http://d.hatena.ne.jp/inouetakuya/20120331/1333192327

週6フリーターWEBサービス作ってみました。

http://anond.hatelabo.jp/20120914214121

その他、ロプロスさんがまとめてくれています

http://blog.ropross.net/archives/99

これらを読んで自分もやってみたくなり、

先日の家入さんの折れずに挑戦を続ける姿を見てモチベーションも高まり

7月21日~8月19日の30日でWebサービス作りました

最後の一週間はお盆休みでしたが、それ以外は平日は仕事をしながら土日をフルに使っています

試行錯誤込みで、だいたい300時間くらいだと思います

その方法をできるだけ詳しく、具体的に書きます

と言っても、いきなり高度な事をするのは大変なので、

本当に自分が作りたいサイトをやる前に、一度シンプルサイトを作ってみる、という所までです。

やってみて改めて分かったのは、「自分WEBサービスを作りたいと思っている人へ」の中の人はかなりがんばったんだなぁ、と。

かなりの熱意とモチベーションをもって、効率良くやらないと、一から勉強してあの短期間であのサイトは作れません。

プロ顔負けの技術とおもしろいアイデア情熱をもって短期間でそれをやってしまった中の人は凄いです。

からWebサービスに夢を見る人(僕)も、Web業界の人も、あとHな人もブクマするのでしょう。(賞賛

それでは、一般人が一般的ながんばりで確実にやれるだろう手堅いラインをお届けします。

偏差値40の僕が最低限ここまで出来たので、きっとあなたならもっと出来るはず。

ステップ7まではサクサク進めて、分からなくてもどんどん次に行きましょう。

今回ぼくが作ったサイトはこちら

気になるあの人に内緒告白!「好きでいて.net

http://sukideite.net/

ステップ0:準備

パソコンを用意

インターネット接続環境

ブラウザChrome,IE,Firefox,Safariあたりをインストールしておく。Chrome便利。

・作りたいサイトアイデアデザインイメージドメイン名(○○○.comとか)のイメージ

・作る理由とやる気

はてブ便利、Web業界の皆さんの空気感を知るため、なるべくPCスマホでチェック。

ステップ1:HTML・CSS(10時間

HTMLCSSについて調べる。

ブラウザ右クリックして「ソースを表示」すると出てくるアレです。

Yahoo!とかのソースを見るとかなり長いけど、全部書くわけじゃないか大丈夫

ネットで調べても良いけど、やっぱり基礎知識は本が良いと思います

これを半日くらい眺めます

よくわかるHTML5+CSS3教科書

http://www.amazon.co.jp/%E3%82%88%E3%81%8F%E3%82%8F%E3%81%8B%E3%82%8BHTML5-CSS3%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8-%E5%A4%A7%E8%97%A4-%E5%B9%B9/dp/4839943486/ref=sr_1_2?ie=UTF8&qid=1347970693&sr=8-2

メモ帳で書いてブラウザで表示して、メモ帳で直してブラウザF5で更新して確認、

って流れで挙動を把握していきます

何となく分かってきたら、より具体的に理解するためにこの本を読みます

概要が分かればあとは実践で伸びるのでだいたいでOK。

XHTML/HTML+CSSスーパーレシピブック

http://www.amazon.co.jp/XHTML-HTML-CSS%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%83%AC%E3%82%B7%E3%83%94%E3%83%96%E3%83%83%E3%82%AF-%E3%82%A8%E3%83%BB%E3%83%93%E3%82%B9%E3%82%B3%E3%83%A0%E3%83%BB%E3%83%86%E3%83%83%E3%82%AF%E3%83%BB%E3%83%A9%E3%83%9C/dp/483993276X/ref=sr_1_1?s=books&ie=UTF8&qid=1347974663&sr=1-1

ステップ2:PHP20時間

PHPについて調べる。

初めはこの本が勉強になりました。

よくわかるPHP教科書

http://www.amazon.co.jp/%E3%82%88%E3%81%8F%E3%82%8F%E3%81%8B%E3%82%8BPHP%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8-%E3%81%9F%E3%81%AB%E3%81%90%E3%81%A1-%E3%81%BE%E3%81%93%E3%81%A8/dp/4839933146

書いてある通りロカールサーバー(XAMPPMAMP)を入れて、自分マシンPHPが動くようにします。

データベースの使い方も一緒に書いてあるので入門に最適です。

次はこれを読みます

普通に読んでいくと中盤のフレームワークを作る所で挫折するはずなので、一旦そこまででOK。

パーフェクトPHP

http://www.amazon.co.jp/%E3%83%91%E3%83%BC%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88PHP-PERFECT-SERIES-%E5%B0%8F%E5%B7%9D-%E9%9B%84%E5%A4%A7/dp/4774144371/ref=sr_1_1?s=books&ie=UTF8&qid=1347971428&sr=1-1

PHPの他の選択肢としてRubyPythonもあるみたいですが、学習コストがかかりそうなのと、そのままでは動かないサーバーがあったりで、

PHPと比べてまだまだエレガント感があります

最先端プログラマーになる必要はないので、レガシー&枯れたPHP一択です。

カッコつけずにモチベーションが持続するうちに勝負です。

ステップ3:サーバー10時間

サーバーを借ります

VPS(専用サーバーを仮想的に分割して安くしたサーバー)が流行ってますが、

学習コストがかかるのと勉強する事が増えるので割りきって始めは普通レンタルサーバーします。

VPSを借りるとLinuxの知識やWebサーバーメールサーバー、及びそれらの保守管理などの知識が必要になります

レンタルサーバーならある程度マネージドで、作ったプログラムが動かない時の原因の切り分けもしやすいです。

おすすめは「さくらレンタルサーバー」のスタンダードプランです。データベースの使えない「ライトプランは止めましょう。

http://www.sakura.ne.jp/

その他、ロリポップCORESERVERなどいろいろあるので最低限PHP,MySQLが使えるサーバーを選びます

サーバー契約したらアカウント情報を確認して、FTPログインしてみましょう。

FTPソフトフリー定番FFFTPを使います

http://sourceforge.jp/projects/ffftp/

ログインできたら、ステップ1で練習したファイルアップロードしてブラウザで表示してみたり、

ステップ2で作ったPHPファイルアップロードしてブラウザで実行してみたりします。

ローカルサーバーと同じように動けばOK。

慣れてきたらFileZilla FTP Clientが便利です。

http://filezilla-project.org/

ステップ4:ワードプレス(10時間)

Webサービスのしくみを理解するために、WordPressを借りたサーバーに入れてみます

WordPressPHPで出来たCMSコンテンツ管理システム)で、ステップ1~3がどう組み合わさって動くのか理解できます

ブログ会社案内サイト程度は作れてしまうので触れておいて損はないです。

テーマをいじったり、プラグインで遊んでみると理解が深まります

オススメはこの本。

WordPress レッスンブック 3.x対応

http://www.amazon.co.jp/WordPress-%E3%83%AC%E3%83%83%E3%82%B9%E3%83%B3%E3%83%96%E3%83%83%E3%82%AF-3-x%E5%AF%BE%E5%BF%9C-%E3%82%A8%E3%83%93%E3%82%B9%E3%82%B3%E3%83%A0/dp/4883377245/ref=sr_1_2?s=books&ie=UTF8&qid=1348060950&sr=1-2

プラグインのまとめはこの辺りが親切。

2011年版!絶対にインストールしたいWordPressプラグイン45個

http://vanilla-stone.com/blog/wordpress/2011-edition-45-wordpress-plugin-pieces-install-absolute/

TwitterInstagram連携するプラグイン入れたり、CRONで自動化したりすると楽しくなってきます

簡単なSNSくらいならここまでで出来てしまうかも。

ステップ5:CakePHP(20時間)

ここまでで何となくWebサイトのしくみが理解できると思いますが、

自分の作りたいサイトを一から書いていくと思うと心が折れると思います

そこで、CakePHP(ケーキピーエイチピー)というフレームワーク勉強します。

フレームワークというのはWebサイトの開発で必要になることが多い色んな機能をまとめてくれている枠組みソフトです。

PHPの文法で、フレームワークの書き方のルールに従うだけで、様々な便利機能を簡単に使用でき、

慣れると開発の効率も激しく上がります

フレームワークは他にRubyRuby on RailsPHPだとSymfonyYiiなどかなりの種類があります

CakePHPおすすめなのはこの二冊。

CakePHP 1.3によるWebアプリケーション開発―オープンソース徹底活用

http://www.amazon.co.jp/CakePHP-1-3%E3%81%AB%E3%82%88%E3%82%8BWeb%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA%E2%80%95%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9%E5%BE%B9%E5%BA%95%E6%B4%BB%E7%94%A8-%E6%8E%8C%E7%94%B0-%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798026646

プロになるための PHPプログラミング入門

http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE-PHP%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80-%E6%98%9F%E9%87%8E-%E9%A6%99%E4%BF%9D%E5%AD%90/dp/4774149721/ref=sr_1_2?s=books&ie=UTF8&qid=1348062131&sr=1-2

あと、余裕があればこれも購入。

この本の情報Webで調べれば解決できるのでなくてもOK。

Pocket詳解 CakePHP辞典

http://www.amazon.co.jp/Pocket%E8%A9%B3%E8%A7%A3-CakePHP%E8%BE%9E%E5%85%B8-%E6%BB%9D%E4%B8%8B-%E7%9C%9F%E7%8E%84/dp/4798027456/ref=sr_1_1?s=books&ie=UTF8&qid=1348062432&sr=1-1

注意したいのは、現在CakePHPバージョンは1.3系と2.0系がありますが、1.3を使うという事です。

2.0系は新しい機能が付いたりパフォーマンスが良くなったりしていますが、2012年9月現在

バージョンアップが激しく、関連書籍は2~3冊程度、Web検索でもヒットするのは1.3の情報が圧倒的に多いです。

MVCというデータ処理・表示処理・それらのコントロール処理を分離して記述するルールや、

ステップ2では踏み込んでいなかったクラスが出てきますので、慣れるまではかなりの心折設計です。

難しすぎて僕は理解できなかったので、ここで一旦CodeIgniter浮気しました。

CodeIgniterCakePHPと同じPHPで書かれたフレームワークで、インド方面で良く使われてるらしい。日本だとまだマイナー、かな。

ライセンス問題で下火になっていますが習得の容易さとパフォーマンスが良いのでフレームワークという概念の把握にはオススメです。

本はこれ一冊しか出ていませんが分かりやすくてオススメです。

僕はこれを読んでCodeigniterだけじゃなくてCakePHPも理解できました。

CodeIgniter徹底入門

http://www.amazon.co.jp/CodeIgniter%E5%BE%B9%E5%BA%95%E5%85%A5%E9%96%80-%E6%B2%B3%E5%90%88-%E5%8B%9D%E5%BD%A6/dp/4798116769/ref=sr_1_1?s=books&ie=UTF8&qid=1348062829&sr=1-1

ただ、CodeIgniterは簡単・高速で習得しやすいけど、

その分シンプル機能が少ないので、ちゃんとしたサイトを作ろうと思うほど自分で書く部分が増えていきます

セキュリティユーザー認証なども素人が自前で一から作るのは危険なので、やっぱりCakePHPお勧めです。

開発する時はgitHubに上がっているデバッグキットを入れると便利です。

cakephp / debug_kit

https://github.com/cakephp/debug_kit/tree/1.3

それから、ここいらで開発環境を導入します。

PHPの開発環境おすすめは2種類。

Eclipse+PDT

http://codezine.jp/article/detail/5105

NetBeans IDE

http://ja.netbeans.org/

僕はNetBeansを使ってます

NetBeansを使う時のCakePHP用の追加モジュールはここ

https://github.com/evilbloodydemon/cakephp-netbeans/tree/autocomplete

中編はこちら

http://anond.hatelabo.jp/20120926165533

2012-07-30

さくらレンタルサーバOpenPNEを設置するメモ

さくらレンタルサーバ スタンダード

OpenPNE バージョン 3.6.4

基本的に doc/ja/OpenPNE3_Setup_Guide.txt に従えばよい。

先にデータベース作成し、./symfony openpne:install --non-recreate-db で実行すること。

2011-03-29

典型的PHPerの13の悪癖

PHPerの問題点は、視野が狭いこと。典型的には以下のような悪癖を持つ。

何も知らないかPHPを愛せるんだよ、PHPerは。だからまず、HTMLCSSJavaScriptSQLを覚えろ。次に、Javaに移行しろ。そんなに難しくないよ、Java。特に大量にコードを書けるPHPerは、速度が出てライブラリ化が容易なJavaの方が向いている。今はVPSがあるので、小規模案件でも問題ない。

15年間ほどPHPインターネットを支えてきたが、そろそろ設計の脆さが問題になっている。PHP 6の開発が振り出しに戻ったのは、不幸な事故はない。ウェブ仕事をしていれば、PHPJavaで共通する知識も多い。PHPerはJavaを覚えてPHPさよならしろ。そして恥ずかしい悪癖を直すべきだ。

2010-02-23

第50回PHP勉強会いってきました

ブログとかもってないんでanondメモメモ

はてな記法とか無視で読みにくいですがゴメンナサイ。

かいたひと→http://twitter.com/chobi_e

follow/unfollowはご自由にどうぞ。

うん、次なんか書くまでにはブログ用意しておこう。

第50回PHP勉強会

===============

会社としてもOpenSocialに関わってるし、個人でもちょいちょい

勉強がてらに手を出しているので参加させていただきました。

会場を提供してくださったコンテンツワンさんありがとうございました。

http://www.contents-one.co.jp/


ほいではメモの公開。

聞き逃しや誤記もあるかと思うので参照はほどほどに。

mixiアプリについて(@Weboo)

=============================

mixi機能の紹介とOpenSocialAPIリファレンス的な説明。

技術的な情報についてはほぼ公開されている範囲内なので、

mixiデベロッパーページを参照ください。

あとは公開するのは微妙なので割愛。

PHPWEB開発を行うようにしてオープンソーシャルアプリを作る(@KuniTsuji)

=======================================================================

CodeIgniterを使ってのmixiアプリ構築についてのお話

OpenSocial開発しているので全て既知の情報だったので

メモがありません。ゴメンナサイ。

要約するとPCはつくるのめんどいけどモバイルだとぺらいちで済むし、

ユーザー認証mixiが全て受け持ってくれるので楽よね!

NDA的に微妙なので詳細割愛

運用した気になるモバイルオープンソーシャル (@cocoitiban)

=========================================================

ウノウさんは社員募集中、@cocoitibanは彼女募集中

@cocoitibanのお仕事

・緊急案件ネガティブ発言

・社内案件で困ると一緒に頭抱えるのがお仕事

会社でもここいちばんと呼ばれているそうです(ココイチ

ウノウサービス

映画生活(ピアに売却)、フォト増、clipp、まちつく

・まちつくについて

位置ゲー、もともとふつうモバイルアプリとして提供していた。(ユーザー数非公開)

http://mt9.jp/

mixiアプリ まちつく(ユーザー数250万人くらい)

 ・リリース

  ・社長がやりたい→同僚がすごい勢いで作成。@cocoitibanは横で傍観

  ・mixiアプリ開発工数がえらい少ない。

モバイルOpenSocialって元のサービスがあれば結構勢いですぐ作れるんですよね。)

  ・mixiアプリオープン日に各社アプリ大盛況

   ・開始数分でロードアベレージが100とかのサーバーが発生

   ・ロードアベレージ1000でも登録できるんだー

   そして、当然のように他社を含め登録ができなくなるw

   ・初日から1週間は1日10万のペースで増えた

    ・mixiに登録しているユーザーだからまちつくに登録という意識は低いっぽいですが

   ・画像生成用のサーバーパフォーマンスが最大の問題に。

    ・ウノウには3時間画像生成をキュー処理に書き換えたやつがいる

    ・ボトルネックになりそうなものを全部退治

    ・できる限り愛されゆるふわコーディング

    ・ハードウェア確実に足りないので購入進める

     ・二日目、三日目と同じように+10万人ってトラフィックをさばかなきゃいけない

   ・リリースから今まで

   ・初期(パフォーマンスアップ)

    ・回線が足りなくなりつつあることに気がつく100Mなのに・・・

    ・画像サーバーを外部へ→ AmazonS3

  ・サーバー間に合わないので一部の機能をEC2

   ・決めてから1週間くらいでリリース

  

  ・ユーザー数が数万想定のコードを書き直し

  ・Memcached適用範囲を増やす

   ・一部機能を企画レベルで見直しふかがひくなるかつ、よりよい動作へ。

  ・初期パフォーマンスアップ

    ・L7ロードバランサふやす

    ・DBマスタ分割

     クエリチューニングされていてCPUやDisk ioのreadはすかすかだけどWriteが痛い事に

    ・ORMの機能をつかって分割

     ・トランザクション上影響ないものを分割

      ・2層コミットとか。、XAトランザクションは適用せず。

    ・サーバー台数的にはそんなにない。

   ・中期

    ・DBサーバ分割も厳しくなってきた

     ・ちょっとだけいいサーバーに置き換え

      →あっさり解決

    ・本格的な機能改善

     ユーザーに不便かけてる機能とかを大幅見直し

    ・社員数増員

     ・8Fに追加して4Fに事務所を移すことに

     ・引っ越し大変でした

    ・課金等をリリース

     ・可能な限り早くしたかったがユーザーに不便をかけている段階ではリリースできなかった。

   ・中期

    ・一部処理をQ4Mに置き換え

     ・EC2とはおわかれできた

     ・EC2は悪くないがサーバーがある現状ではコスト間と運用の体制のにゃー(メモ終わる前に次のページへ)

   ・まとめると

    ・数ヶ月、数人のエンジニアでおこなわれたので長短納期

    ・力業だが安定志向を目指す方がいい

    ・変わったことやると大体トラブって死ぬ

     ・しかし新しい事やらないと間に合わない

  [そのほかメモ]

PHPキュー処理って何使ってます?

   ・Q4M

   ・Gearman

   ・ActiveMQ

 

   ・ワーカーのPHPdaemon化ってどうしよう?

    ・daemontools

    ・自前で実装

    ・そのほかいいのがあれば

   ・キュー処理っているの?

    ・実装クイズ

    ・Friends1000人いて全員取りに行く場合どうする?

    ・本サイト側では追加更新もあるし

    ・キャッシュとして定期的に削除しなきゃだめ

    ・ユーザー数分パッチでとってくる?

    ・いや1000人とってきちゃおうよ

    ・FRIENDSランキング

    ・PCだと事情は違うかもしれない

   ・トラフィックの波が激しい

    ・流入云々でかなり違う

    ・コスト意識的にどう設定したらいいのかが難しい

    ・分散のネックはやはりデータベース

    ・ORMは使うべき

    ・流行るか流行らないか分からないサービスをつくる場合には必要

     ・はやった場合にすぐ分割できるか

      ・トランザクションがネックになる

      ・DBが分かれた場合に二層コミット的なものが必要になる。

       ・XAトランザクション

      ・普通に書いただけでそのコードになるか

      ・トランザクションを正しく処理できるか

    ・KVSとの透過性

    ・逆をいえば上記はコードを綺麗にかけるかどうかなので使わなくてもいいと思う

   ・エンジニアとして思ったこと

    ・EC2はありだけど運用がイントラで運用するのとは違う形になるので経験が必要だと感じた。

    ・AmazoRDSが別の地域で使えるようになるといいなぁ。

   

   ・どきどきするのが課金コストをいやいやでもエンジニア意識せざるを得なくなる

   ・mysql

     ・かなりはやい

   ・半年1年後、国内レベルトラフィックであれば大半のWEBサービスは1台でおk

     ・別案件inno db pluginつかったら半分に

   ・ip_conntrack/iptable

   ・ulimit

   ・Symfony

    ・Symfony使ったけどそんなボトルネックにならなかった的な話。

   ・バッチ処理とかforkで悩むことが多い

# 総評

最近はめっきり大きなトラフィックを扱うことがなかったからちょっと刺激もらえました。

前の会社ではサーバー200台くらい管理してたけど今の会社では数十台程度だし、

そこまでトラフィックもこないのでサーバーエンジニアとしては体たらく気味。

まぁ、業務的には様々な方面でやっているので仕方のない事ですが。

とりあえず現状で出しておいて流行したら確実に死ぬ&寝れなくなるので事前に

コードレビューと対策だけはとっておこうかしらん。

懇親会ももちろん参加させていただきましたが非コミュの私は

震える子鹿のようにただビールをひたすら飲むのでありました。

そんな私に声かけてくださった皆様、ありがとうございます。

名前/ID出していいのか微妙なので割愛させていただきますが、感謝感動雨あられでございます。

そうそう、個人的には今の流行がTwigなので@cocoitibanともうちょっと

お話したかったですが懇親会LTもありーの、飲み過ぎて気持ちわりーので実現せず。

Twigすごく良いとは思うんだけどいまいちドキュメントが少ないので

本当にこれでいいんか?て思うことが結構あるのよねー。

Node周りの実装がぱっと見分かりづらいので難儀。

そいじゃ会社いってきまー

2009-09-12

kayac

typoからcake.kayac.com って打ったらcakephpの画面出た symfony.kayac.com って打ったらsymfonyの画面出た なんぞ

2009-09-09

PHPdisってるやつはダメシグナル効果を発してると思うペチパー

javajava

java対LL

でみんな忙しいので

オチにPHP使うのはレベル低い内輪ネタの証

phpといえばセキュリティヲタにも相手にされず

フレームワークではdjango, railsの下にまで迫ってると思ってるのはsymfonycakephpユーザ層だけだし

pearだけ絶賛放置中だし

appengineにも相手にされないし

拡張いじるおもちゃ以外の何者でもない

しかし水面下では意味不明に勢力拡大中だって聞く

姿は見えない

どこにいるんだおまえら

2008-11-19

教えてくれ!Webフレームワークって本当に便利か?

ちまたじゃ、みんなフレームワークのことを当たり前のように論じててすごいなーと思うんだ。尊敬するぜ。だから、ミーハーなオレもフレームワークが気になって仕方ない!

だから、30歳近いプログラマのオレがプライドを捨てて優秀なハテナ住人に聞くが、

Webフレームワークって本当に便利か?

バカなオレだけど、MVCパターンが良い事は理解できるよ。

だが、そこまでだ。

Javaだと、StrutsSpringSeasarWicket等をよく目にするけどよぉ、ドキュメントの量どんだけだよ。

入門ドキュメントだけ見ると簡単そうに思えるけど、仕事で使えるレベルまで理解が深まるまでどんだけ時間かかんだよ。

起動遅い、動き遅い、定型パターンを外れたら、やる方法が見つかんねー。

で、苦労して作ってもよぉ、結局は、HTMLがピロッって出力されるだけで、見てくれが変わるわけでもなく、全然努力が報われん。

これって、どゆこと?

Servlet+JSP+簡単なライブラリ 程度で十分じゃね?

PHPだと、Zend FrameworkCakePHPsymfony等をよく目にするけどよぉ、ドキュメントの量どんだけだよ。

入門ドキュメントだけ見ると簡単そうに思えるけど、仕事で使えるレベルまで理解が深まるまでどんだけ時間かかんだよ。

デバッガの使い方分かってねーオレが悪いとは思うんだが、開発効率悪いぞ。(フレームワーク以前の話だが…)

統合開発環境何使えばいいの?わざわざクラス名や関数名覚えてられんぞ。(フレームワーク以前の話だが…)

何で、拡張子変えたがる。何で、変なテンプレートエンジン使う。エディタ認識されねーから開発効率悪いじゃねーか。デザイナがコーディングした分かりくいHTMLコードをよ、何で編集してるわけ?

PHPフレームワーク使わない方が便利じゃね?

ついでに聞くけどよぉ、ORマッピングライブラリって使えるの?

確かに書くコード量は少なくなっていいんだがよぉ、目に見えて遅いと思うのはオレだけか?

ディスクアクセスは明らかにボトルネックになるのに、巨大なライブラリコードを毎回走らせるんだよ。普通サーバじゃ余裕なの?

話題がそれたが、

Webフレームワークって本当に便利か?

実は、みんな、上司や先輩に言われて使ってるだけなんじゃないの?

ハテナ住人の優秀なエンジニアは、どんな目的フレームワーク使ってんだ?教えて偉い人!

ま、誰も見ないんだろうけど。

2008-10-29

転職の事考える。

WEBプログラマを始めて2年ちょい。

この仕事辞めようと思っている。

入社当時の私はWEBプログラミング経験で、

学校C++とかJAVAとかVBとか…色々ごちゃごちゃ習ってたけど、正直現場ノウハウなんぞサパーリな状態だった。

だから、その会社プログラマが居なかった事は物凄く不幸だった。

WEBシステム開発部門を作るという事で、私を含めプログラム経験者が二人採用されたんだ。

細かいこと言うと、私と一緒に入社した人は、一応PHPPerlは組んだことが有るけど、「現場ノウハウを知らない」という点は私と同じだった。

入社してからは、もう全部手探り。

開発環境の整え方なんぞ全然分かってない。

取り敢えずPHPやれ、と言われたから、結構必死で勉強しながらメールフォームとか簡単なコード書いた。

当時は画面が切り替わる度に変数初期化されたりするのが不思議だった。

MySQLをやれ、と言われて、本気で必死こいて勉強した。

一緒に入った同僚は、「Postgre専門だからMySQLはよく分からん」と言う。

仕事の渡され方は大概丸投げ。

営業がリスニングをして、私は営業から案件の内容を聞く。

その仕様ってのが結構曖昧。何というか、「流れ」だけ説明される。

「管理画面で商品を登録すると、商品一覧に追加されるんだけど、登録する時に一緒にカテゴリを設定できるように…」

カテゴリは大カテゴリ・中カテゴリ・小カテゴリがあって、管理画面で登録できるように…」

とか、そんな感じ。

こういうのを聞いてプログラミング出来るのが当たり前なんだろうけど、私は凄く苦手だった。

苦手だからってやらない訳にはいかないからやってたけど、難しく考えるからだろう、時間がかかった。

後、基本的に画面イメージがない。

仕事を渡されると、全部任される。

テーブルの設計をしながら仕様を確定していって、画面イメージを作成していく。

最初の内は、正規化すら全然知らなかったからぐだぐだなテーブルばっかり設計して、コードを組む段階になってヒーヒー言ってた。

最初から書き直す事もしばしばだった。

もっと効率良くやりたい、と助言を乞おうにも、先輩なんて居ない。

同僚はその辺の作業進行は上手いものの、開発レベルは私と同じぐらい。コードスパゲッティ

人達プログラムやってたりするけど、WEBプログラムじゃないから相談しても色々と噛み合わない。

仕方がないから、うまいやり方は無いか、とひたすら暗中模索でやってきた。

で、そんな事を1年程続けた辺りで、長年プログラミングしてきた人と交流する機会が有った。

短い間だったけど、その人が教えてくれた知識でかなりショックを受けた。

開発環境の整え方とか、テストケースとか、フレームワークの事とか、えーと、まぁ、なんて言うか、プログラミングの考え方(みたいなもん)とか。

(ちょっと上手く言えない。現時点でも私は、とてもじゃないが自分の事をプログラマだなんて胸を張って言えない程未熟だと思っているし)

そして、ショックを受けたのは同僚も同じだった。

正直今まで自分がやってきた事の全部をひっくり返された気分だった。

全部が全部無駄だったという訳じゃないが、今まで非効率的で馬鹿で遠回りな事ばかりしていた。

その後はSubversionTracが導入された。

同時期に私は新しい案件を任された。

その案件の規模は小さめで、私は今まで不安定だった開発スタイルを整えようと、半分賭けでその案件cakePHPで構築しようと決めた。

無論、全然分からないから参考書とか公開されてるソース見たりとか、ネット情報とかで勉強しながら、だけど。

symfonyとかZend Frameworkとかでも良かったと思うんだけど、

たまたま先のプログラマの人がcakePHP使ってる、と言ってたから「じゃあそれにするか」とcakePHPを選んだ。

違いも分からんから最初は何でもいいや、と思ったってのも有る。

何度も躓いたり挫折しかけたりしたが、なんとか構築しきった。

つたないものでは有るが使い回しの効くメソッドなりを作れたし、正直凄く嬉しかった。

その頃には、ある程度ではあるがフレームワークでの開発が手に馴染んでいた。

そんでも一人でじめじめコーディングするスタイルは変わらなかったから、コードの中身はお察しくださいなスパゲッティ

もうこの会社に居続けても意味が無い、と思った。ひとりよがりコードを量産するだけだ。

だから、「今年いっぱいで会社を辞めようかと思います」と告げた。

それが大体半年前。

今年が終わるまで@2ヶ月ぐらい。

こんな経験年数半端な人材って、需要有るんかなぁ。女だしなぁ…、というかそもそも転職回数が多いのが一番痛い。ブラック企業ひきすぎ。

無知を乗り越えるという性質のやる気はあるから、がらっと業種を変えても良いかもしれない。

というか、ぶっちゃけ残業時間がえらい事になってたから、IT業界はもうしたくないな、と思う一方で、

やっぱりプログラム好きだからプログラマやりたいという思いが有る。

でもプライベートでやりたい事あるから、あんまり仕事時間を割かれるのも困る。

後、親が元気な内に孝行しときたい。

こないだ、カーチャンのスレ見てたのがかなり効いてる。

「あんた転職するんでしょ? 転職前に休み作ってよ。一緒に旅行行きたいから」とか言ってるし…

今までサビ残当然の会社ばっかり行ってたもんで、

仕事が忙しいから」とか「疲れてるんだから休ませてくれ…」とか言って全然孝行出来なかったから、そろそろ生活における仕事の割合を減らしていきたいところ。

でも、

難しいよなぁ。

転職、どうしたもんだかなぁ。

2007-11-10

WEB系 専門誌を女性ファッション誌風にしてみた

[デザイン]

CSSであなたのウェブサイトキラキラさせる!

・100人のセレブデザイナーが選ぶ 秋色サイト

・もうカラム落ちなんて言わせない!絶対にウケるCSSハック!

・カッコカワイ進化形 HTML5!

[PHP]

・今年のモテフレームワーク Symfony × CakePHP × Zend Framework 大特集!

 おしゃれなコに人気上昇中↑なフレームワーク★今年の3大モテフレームワーク

 SymfonyイケてるOR/マッピング!PHP4でも動くCakePHPスイーツな魅力!

 Zend Frameworkキレイになるソース! ちょいカジュアルコーディングルールだけど、Zendらしさも忘れないキレイになる方法を新提案!

[コラム]

・愛されHTMLコーディング

モテプログラマーに必要なライフハック

http://anond.hatelabo.jp/20080201185253

2007-02-23

SymfonyGIGAZINEニュースサイトを作ってみようか(第2回)

説明

趣旨や概要につきましては第一回をご覧ください。

Digg Videosにも対応してみよう

GIGAZINEといえばおもしろ動画情報転載ということで、Digg Videosを使って対抗してみた。

完成

映像 - TERAZINE

 
アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん