サーバーサイドを扱える言語はたくさんあって、PerlとかPHPとかPythonとかRubyとか色々あるらしいのだが、色々悩んだ結果PHPにした。WebサービスならPHPが良いらしい。レンタルサーバーなどでも簡単に扱えるらしい。後でPHPがクソ言語という話も聞いたが、とにかく最初に選んだのがPHPだったので。それになにがクソ言語かとか、未だによくわからない。■入門の勉強で使ったもの。わかるPHPの教科書。http://www.amazon.co.jp/dp/4839933146/MySQLとかについて一通り書いてあるので良かった。二週間くらいでなんとか全部こなした。xamppなども触って、ローカルサーバーで色々試した。http://www.amazon.co.jp/dp/4774144371/パーフェクトって書いてあるから、パーフェクトなはずだと勝手に思い込む。実際かなりすごい内容で、胃もたれ起こした。一ヶ月くらいで三回くらい読んで、大体のところを理解した。フレームワークにCakePHPを使ったので、MVCについてのくわしい記述は大変参考になりました。・MySQL基本的には、よくわかるPHPで概要をつかんで、それから基礎からのMySQLで勉強。http://www.amazon.co.jp/dp/4873114268/でインデックスの貼り方などについて勉強した。■チャットに向いている技術?とりあえず掲示板くらいはつくれるようになったので、チャットについてリサーチ。ajaxとかよくわからん技術やnodejsを使った非同期処理などがあると知る。nodejsはC10K問題という問題を解決するすごいものらしく、かっこいいらしいのでこれを勉強することに。ついでにnodejsと相性の良い、mongoDBも勉強することに。http://www.amazon.co.jp//dp/477414813X/パーフェクトjavascriptはnodejsについてものすごく詳しく書いてあったので、とても参考になった。このあたりで、LINUXというOSを扱わなくてはいけないと気付き、自宅PCをウィンドウズから、LINUX(ubuntu)に変えた。■mongoDBの勉強。これはとにかく触ってなんぼでした。MySQLと感覚が違い、苦労しました。CakePHPでmongoDBを扱うのはhttps://github.com/ichikaway/cakephp-mongodbという素晴らしいものを利用させていただきました。■このへんで一回限界がきた。なんとなくnodejsを扱うこともできるようになり、それなりに楽しいと思ってはいたものの、「SNS作ったる!」と思ってから六ヶ月以上が経過していた。Webサービスを公開するにはデザインもそれなりにしなくてはいけないらしく、CSSなどについて勉強しなくてはいけないと知る。勉強に終わりが見えなくて、「しんどいなぁ」と思った。一人でWebサービス作ってる「ゆーすけべー」さんとかすごいなと思った。勘違いサブカル野郎だと思っていた「家入一真」とかもやっぱりすごい人なんだと思った。自分はなんもできないなぁ。悩んでても仕方ないので、デザインはバッサリあきらめることにした。なんでもかんでもやるのは無理なので、捨てるものは捨てることにした。■それなりのデザインを他力本願で。(Twitterっぽい今時な感じのデザインが簡単に使える)を使うことに。(きれいなデザインテンプレートがあるサイト)も使うことに。デザインについてはこれだけ。■大体できたら、あとはセキュリティ。自分のサイトでは一応、登録制なのでフリーメールアドレスなどを預かる。これは流出させたら困るし、なによりユーザー様が安心して使えないなんてだめなので。これにはかなり注意したつもりです。http://www.amazon.co.jp/dp/4797361190/で勉強。これははてなさんが公開しているものです。この場を借りて感謝します。ありがとうございます!あとはSSHへのブルートフォースを防ぐために、DenyHostというツールを利用するなどした。それからバックアップ。クラウドサービスを利用しているので大丈夫だとは思うのですが、一応rsyncコマンドでバックアップを定期的にとることに。サーバー上の別の場所にGzipで保存し、それを自宅サーバーのCentOSで保存するという形式です。深夜にcronで自動的に実行しています。参考サイトは、http://mukaer.com/archives/2012/03/14/vpscentos/です。■パフォーマンス向上のために少しだけはじめはサーバーはapacheだけだったのですが、今は画像ファイルなどはNginxというサーバーを使うのが良いそうなので、Nginxを使いました。あとはPHPの中間キャッシュを利用するAPCなども利用することに。このへんについては、http://bren.jp/blog/%E3%81%95%E3%81%8F%E3%82%89vps%EF%BC%9Anginx-apache-%E6%A7%8B%E6%88%90%E3%81%AE%E8%A8%AD%E5%AE%9A%E6%96%B9%E6%B3%95/このような解説記事がたくさんあったので、参考にさせていただきました。調子にのって、最期にグーグルアドセンスも貼ってみました。なんとか完成しました。いちおう妄想していた機能は実装できたかと思います。製作期間は勉強期間なども含めて、大体9ヶ月くらいです。使ってみた感想や、ダメ出しなど頂ければ狂喜乱舞します。■モチベーションを維持するためにやったこと。書きましたが、実際は失敗の連続でやる気が萎えてばっかりでした。疲れて帰ってきて、なにもやる気の起きない時もありました。いう時は、とにかくサポートページのQ&amp;Aの1文でも良いから書いてみるとか、とにかくパソコンとエディターだけ立ちあげてみるとか、していました。ものすごーく覇気のない目でキーボード打ち続けていましたが、それでもなんとか完成することができました。惰性だろうとなんだろうと、少しずつは進むのだとわかりました。■SNSを作ってみたわかったこと。1から完全自作をするのは無謀だった。プログラムをやったことのない素人でも約一年頑張ればそれなりのSNSもどきを作ることができた。これも先人たちの作ってくれたフレームワークや様々なツール、そして参考書などのおかげ。私のようなアホでも頭の良い人の力を借りればなんとかなりました。ありがとうございます!そしてプログラムは一人でも出来るので、私のように非コミュでも楽しめる素晴らしい趣味である。今はRubyに夢中です。くり返し処理がすごくきれいにかけるので素敵な言語だと思っています。あと、javascriptも面白いので毎日いじくって遊んでいます。PHPももちろん触っています。非コミュはあいかわらずですが、プログラムが楽しいので前より幸せです。さくらVPS4Gプランを使用しています。Apache,Nginx,nodejsを利用しています。mongoDBとMySQLを使っています。