「CakePHP」を含む日記 RSS

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

2014-05-17

オタク婚活パーティーアエルラに行ってきた結果wwwwwwwwww

彼女は出来ませんでした。Googleにでも広告出したほうがよかったか

まぁ、せっかくなのでレポでも書いてみようと思う。なんかの役に立つ人がいるかもしれないし。

俺のスペック

  • 29♂
  • 渋谷IT企業勤務
  • 年収は600万円ありません
  • 見た目については察してください

パーティの流れ

公式サイトシステムから予約をとる

野郎は8000円で、女の子2000円だ。まぁまぁする。

男性10名、女性10名が参加することになっている。

当日、開始前15分に開場

連絡メールには「開場30分前ぐらいに来るといいですよ」とか書いてあったのだが誰も来ていない上に廊下で待たされるハメになった。なかなか素晴らしい運営だと思った。

手荷物を預けて、小道具一式を受け取る

指示された席について待つ

スタッフの人がドリンクを持ってきてくれる

ドリンクフリードリンクになっていて好きなだけいただける

司会から諸注意の説明がある

スタッフは司会+5名前後で全て女性なので女性安心かもしれない

以下の点について注意がある

自己紹介タイム10人を1人持ち時間5分で周る

5分と言うのは恐ろしく短くてあっという間に終わるのだが、それを10人、休憩なしでしゃべりっぱなしなのでかなり疲れる。コミュ症というか話すのが苦手な人は相当しんどいと思う。

・・・といっても、大体の場合は(自分も、相手もだが)一目見た印象と相手のプロフィールシートを見て一言二言会話してその瞬間にOKかNGかが判断されてしまうので、5分のうち3分ぐらいは殆ど無意味であると思う。

中間集計を取る。手元の紙に第一・第二・第三希望の相手の番号を書いてスタッフに渡す

20分休憩

ケーキいただきつつ、野郎同士で楽しく仕事の話でもした。異業種交流はやはり面白い

中間集計結果が出て、各人に紙で渡される

このシステムはなかなか良く出来ていた。書いてある内容は以下のとおり

こう書かれるとなかなかテンション上がって舞い上がるものなのだが、よくよく冷静に考えてみると、10人いるうちの1人が俺に投票する確率が全て均等だとすると

1 - (9/10 x 8/9 x 7/8) = 0.3

で、10人いるので

0.3 x 10 = 3.0

となり、まぁ何もしなくても普通に3票ぐらいは入るのである。つまり平均ピッタリ。そもそも最終的なマッチングではおそらく本命となる第一候補が優先されるはずなので一番目以外の票はあんま意味ない気がする。

次は指名しての会話タイム。1回につき10分、4回指名が可能で、

  • 1回目は女性から男性を指定
  • 2回目は男性から女性を指定するが、一度話した相手とは重複してはならない
  • 3回目はどちらがどのように指定してもよいが、一度話した相手とは重複してはならない
  • 4回目はどちらがどのように指定してもよい、一度話した相手との重複も良い
  • 指定方法は番号順に1列に並びその人のもとに歩いて行くというパブリック形式

さすがにもうだいぶヘロヘロである正直しんどい

人気のある人は一瞬で埋まるようだ。

最後余った人が出たようで、女性同士二人で話している姿が見られた。なんだそれ。

最終投票中間集計と同じように行う

結果を待つ

結果発表、以下のように結果発表が行われる

  • マッチングの結果を、その場で、全員の前で、司会の読み上げで発表する
  • マッチングした相手同士は起立
  • 発表順序は番号順だが、おそらく一番人気の人のマッチング発表のみ最後に回されている

結果発表後、マッチングしなかった女性陣だけが全員が見守る中、手荷物を渡されて撤収

その後マッチングしなかった男性陣も全員が見守る中、手荷物を渡されて撤収

女性側にはリピートフォロー施策が入っているようだ。最後に次回使える割引券を配っていた。俺ら野郎には何もなし。

問題点

少々乱暴だが、以下、マッチングしたものを勝者、しなかったものを敗者とする。

問題点その1。見ればわかるが最後結果発表まわりがあまりにもクソである。企画やってる人間を即座に更迭していいレベルでクソ。公衆の面前で敗者を晒すとか何考えてんじゃボケ

ちょっと考えてみよう、運営利益を最大化するのに必要なのは何か?新規顧客またはリピーターである。このうち新規顧客よりもリピーターのほうが圧倒的に得やすい。現行のシステムは勝者側に優越感を与えさせることは可能かもしれないが、それが勝者側の満足感につながり口コミの機会を与え新規顧客開拓になる確率と、敗者側がこのシステム屈辱を受け絶望して離脱する確率、どちらが高いか、こんなもん即答ではないか。ただでさえ弱いオタクマインドを踏みにじって楽しいか?それより中間集計と同様に書面でこっそり渡し、ペア同士をあとから別の建物に移動させてマッチングさせて、ふたりきりにしてあげればいいではないか。敗者は傷つかない、勝者はドキドキしながらマッチングを楽しめる。どうして技術屋の俺程度が思いつく程度の演出すら思いつかないのか。何年運営やってんだこいつら。アホか。

とにかく敗者側に対するフォローが圧倒的に重要なのである。今回はペアにならなかったけど、あなた投票してくれた人がこんなにいるのよというのを最終結果で見せてあげればいい。モラルとしてはクソだが、利益がほしいなら最悪嘘をついてこんなに沢山の人から投票されてましたが惜しくもマッチングなりませんでしたと偽っていい。そうすればもう一度リピーターとして来てくれるかもしれないではないか。それが出来ない理由が・・・まあ邪推だが、次の問題点になる。

問題点その2。最終結果のマッチングロジックが完全にブラックボックス。誰が誰に何票投じたか当事者にすら伝えられない。ただ結果だけが発表されるのである。つまり運営側恣意的チートがいくらでも可能になるのである。もちろん自分が書いてもいない相手にマッチングしたら一瞬でバレるが、2番目3番目の人であれば好き放題に組み合わせることが原理上可能だ。これも当然敗者側の不満になる。

その他感想

正直8000円の価値あったかというと微妙。まぁお金出して実質成果ゼロなんで微妙に決まってるのだが。これでは最近始めたモンストガチャを8000円ぶん回したほうが有意義である自分に成果がなかったのでもちろん意見マイナス方向の強烈なバイアスがかかっているのだが、それでも割高感はあるし、何よりすでに書いたが司会進行・運営が本気でクソだと思っている。比較対象として、以前SCRAP実施していたリアル婚活ゲームと言う名前出会い系リアル脱出ゲームに参加したことがあるのだが(これも成果はなかった)、値段も通常のリアル脱出ゲームと同じだったし普通に楽しく満足して帰ることができた。女の子とも話せたしね。

女の子と話せたといえば、人間観察の練習にはなるなと思った。女の子は実にウソをつくのがうまい、興味があるかのようにこちらの話を聞くのが本当に得意だ。自分馬鹿正直で思考が全部表に出るのでそういうスキルが大変羨ましい。まぁそれでもよく観察していると自分に興味があるかなかぐらいと、誰に興味があるかぐらいはすぐにわかるので、そういう練習に良いと思う。

あと、10人も来れば1人ぐらいは普通に自分好みの可愛い人が来るってのはわかった。といっても先方はこっちに興味が無いのがすぐにわかったのでつらたん

反省点としては、名乗る名前本名がやっぱりいいです。ハンドルネームはそれだけでなんか良くないですね。

余談

終了後、負け組4名のうち3人で意気投合して飲みに行った。レトロゲームの話などして実に楽しかった。一人は明らかに仕事できそうな一部上場企業の品管で、もう一人が工場技術屋だ。彼らは知り合いで、もう一人連れてきて三人で参加したらしいのだが、二人はダメでうまくいったのは一人だけということらしい。マッチング後がどのようなシステムになっているのか気になるので、彼らからの続報が非常に楽しみだ。それにしても俺はともかくとして彼らのスペックダメってのが正直わからん。見た目もぜんぜん悪く無いと思うし。・・・まぁどうでもいいことだ、きっと女の子と言うのは総じて技術屋が嫌いか、またはよく喋る男が嫌いなんだろう、知らんけど。もう二度と行く気もしないし、アカウントも消すなり凍結するなり勝手にして頂いて結構だ。

余談2

うそう、彼らのウェブサイト (http://aellura.com) だが、PHP、おそらくCakePHPで動作しているようで、決済系や申し込み系のURLがauto_incrementalなintになっていてなかなか香ばしいなと思った。例えばエントリー確定のURLhttps://aellura.com/secure/entries/fix/45000 で、決済確定のURLhttps://aellura.com/secure/payments/send/45000 と言った具合だ。ふーん、4万5000人ぐらいが使ってるんですか。ちっともセキュア感がない。同社の別サービスアエルネも同じシステムを使用しており、同じようなURL設計になっている。個人的にはこれだけでずいぶんとげんなりだ。

追記
追記2
  • 計算式を直したつもりで直ってなかったので再修正。3が正解です。

2014-05-06

http://anond.hatelabo.jp/20140506200711

零細経営者だが、こういう人見つかるかききたい。

PHPモックアップしたウェブサービスの追加開発(いっそRubyとかCakePHPで1から作りたかったらつくってくれてもいい)

希望

企画設計から入ってほしい。

<月収>

月100時間労働20万円。他でダブルワークしてもらって構わない。

あるいは月200時間で40万円で、ダブルワークはなし。

必要技術力>

ドットインストールレベルは最低限必要

その他、クローリングやその都度覚えて開発するマインドがあることが重要

なお、ドットインストールぐらいは社長自分自身ができる(私は営業畑)ので無茶なお願いはしないと思う。

なお機能的なデザインへの関心が強いことが望ましい(無印はてなCookpad,iPhoneを美しいと感じる人、なんで美しいのかなんで使いやすいのかを考えたことがある人がいい)

<なぜ採用したいか>

ユーザー数の伸び。収益の伸び。

サービス市場シェアを取りにいきたいが、ざっと作ったサービスのため荒い。

かい詰めをしていきたい。

<なぜlancers,Crowdworksではないか>

丸投げではなく、コミュニケーションをとりながら「良いサービスづくり」を頑張ってほしいから

こちらにはお客様の声やこういう機能があるとよいという案がたくさん溜まっているが継続的な開発が必要だと思うので大切にしたい。

2014-04-29

増田

増田って名前かとおもった

CakePHPやってみようと思ったらなんかエラーでてる

時間がなんとかとか

英語勉強しておけばよめたかなぁ

2014-04-08

本当にいたキモいエンジニア

ホントキモくて鳥肌たった(もう二度と飲み会に呼ばない)のでここで吐かせてもらう

1.灰色ハイジを欠かさずチェックしてて勝手兄貴気取りでブクマしてる

2.モモクロがすきで応援する用の棒みたいなのもってる

3.サイバー女子で抜いたことがある(恋するフォーチュンクッキーサイバー版は100回ぐらいみて、PVにでてるこの顔見たらどこの部署かわかる)

4.CakePHPをヤケに薦めてくる

5.JKを診察する系のAVDMMで買ってた

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番目以降を書く同志達を僕は待ち望んでいるッ!

2014-03-26

4月から社畜になる文系東北大生が3ヶ月でエロwebサービスを作った


3月で東北大学卒業して、4月から企業社畜となる22歳です。

文系学部出身なので、ITやらプログラミングの知識は完全に独学です。

特にITに興味を持ってはいなかったのですが、就活が終わったあたりに

映画ソーシャルネットワークとかを観たりしてプログラミング勉強しようと思い立ちました。

そんで実際に勉強し始めるとなかなか興味が持てる分野だったので、去年の秋の試験基本情報技術者を取ったりもしてました。

でもここまでひと通り勉強し終えた時点で、このあとどうしよう?ってなったんですね。

HTMLやらPHPの本を写経して、『やったー、Hello,World!を100回分表示させたぞ!』なんてやっぱりすぐ飽きるわけですよ。

プログラマって毎日こんなことしてんの?と思ってネットを漁ってみると、色々と面白い情報をはっけん!

  http://anond.hatelabo.jp/20101203150748

  http://anond.hatelabo.jp/20130120190550

  http://anond.hatelabo.jp/20130122180847

やっぱ何かを創ってなんぼだよね!

ということで人生最後冬休みから構想を練り始め、今年に入ってから本格的にwebサービス作成に取り掛かりました。

ちなみに本記事タイトルは『京大画像処理を学んだ僕が本気でエロWEBサービス作ったった』をリスペクトさせて頂きました。

この人はIT関連が専門みたいで、創ったものレベルが違うんですけどね。まぁキャッチータイトルにしたかっただけです。

目標

卒業までに完成させる』ことを目標としていました。

やはり社会人になるとなにかと時間が限られてしまうと思うので、

多少未完成でもまずは公開してみて少しづつ付け足していこうと。

結果として、この記事を書いている時点でお問い合わせフォームとかを実装してませんし、

他にもいろいろとやりたい機能をとりあえず諦めざるを得ませんでした。

今後頑張ります

事前知識

今年の1月時点での自分の知識を大まかに説明すると、

HTML → 基本は分かる。でもdivとかをうまいこと調整するのは苦手

CSS  → ぶっちゃけあんま理解してない。今回の創作物もtwitterbootstrapに頼っちゃった

PHP  → 基本は分かる。forとかforeachとかwhileあたりが使えるくらいだけど、実際それで何とかなったしこれからもっと勉強するし

javascript → たしか一番初めに勉強したけど、もう忘れた。今回のサービスにも使ってない。

まぁこんなもんです。

創作物

マイナーAV女優もっと出会おう!

『未痴との遭遇』

http://michi-ai.com/minor/

やっぱりエロいのだとモチベーションも続くし、やっててたのしいかなぁと思いまして。

製作の流れ

1.全体像の把握

基本情報技術者を取得したんですが、サーバーとかFTPとかの単語をあまり理解してなかったんですよね。

具体的にどうすればホームページwebサービスを公開できるのかを理解するようにしました。

上に書いたようないわゆる『つくってみた』系の記事も沢山読みました。

ふむ、手っ取り早く作るにはフレームワークとやらがいいらしい。

2.CakePHP勉強

ということでCakePHP勉強を始めました。

具体的には公式サイトブログチュートリアルから入って、『CakePHP 入門』とかで検索して出てきたサイトをいろいろとまわりました。

覚えることは多いですが、確かに便利なので頑張って修得することをおすすめします。

まぁ私もあんまり分かってないとこがほとんどですけど。

とりあえずサイトの作り方はわかったので先に進む。

3.DMMAPI勉強

APIを利用したサービスがたくさんあったので僕のサイトでも使ってみようと思いました。

勉強ってほどのものではないですが、DMMAPIコードを公開しているサイトを参考にしました。

DMMサイトの説明だけでは初心者は絶対わからないよあれ。

4,スクレイピング勉強

僕の創ったサイト必要データAPIでは効率よく取得できないことがわかったので、

DMMサイトスクレイピングして必要データを集めることにしました。

Simple HTML DOM Parser ってやつを利用。

これは参考になるコードネットにいっぱい落ちてる。

5.メイン機能搭載

ここからメインとなる機能を作り始めました。

まずはAPIスクレイピングを利用してデータベース必要データを集めました。

スクレイピングうまいこといかなかったり、なぜかデータが重複しまくったりといろいろ苦労はしましたがデータベースはなんとか完成。

その後、メインページを作成して、ランダム表示ができるようなスクリプトを書く。これは簡単。

6.他のページの作成

メイン以外のページを作成

twitterbootstrapもここで導入。

でも間に合わなそうだったので、目標達成のためにとりあえず飛ばすことに。

7.ドメインサーバー

ドメインはお名前.comで取得。

特に希望のものはなかったのですが、まぁそれっぽいものを購入。

問題はサーバーですよ。

初めはGMOクラウドVPS無料お試しをしたのですが、これがまた難しい。

ネットでいろんな情報を探して、試して、動かなくなって、OSインストールって流れを5回ほど繰り返して断念。

結局FUTOKAのレンタルサーバー契約しました。こちらは非常に扱いやすくて、らくちんです。

8.公開

最後ファイルサーバーに乗っけて公開完了です。

こんなしょぼいサイトでも公開できただけでうれしいものですね。

約3ヶ月の苦労は無駄ではなかった。これで僕もクリエイターの仲間入りだ。


webサービスに興味を持ったひとへ

文系の僕でも3ヶ月でひとりでwebサービスの公開まで漕ぎ着けることができました。

この期間が長いと思うか短いと思うかは人それぞれでしょうが自分アイデア現実化させることは想像以上に楽しいことですよ。

壁にぶつかることはたくさんありましたが、不思議と辛くはありませんでした。だって楽しいから

用事がある日にも、早起きして作業することが苦になりませんでした。だって楽しいから

変に敷居の高さを感じている人がこの記事を見て、『俺もやってみよう』と感じてくれると嬉しいです。

2013-07-31

http://anond.hatelabo.jp/20130728233241

はじめまして過去「Web系の会社を解雇されて思った事」を書いた者です。ぜひお話だけでも聞かせてもらえないでしょうか?自分9月から仕事が決まっていて、その合間を縫ってできることならと思いまして。主に使える技術は、PHP/CakePHP/MySQL/UNIXコマンド使用可となります

2013-07-24

便利なものはどんどん使おう

今すぐ辞めて欲しい、「Ruby on Rails勉強してます」「CakePHP勉強してます

http://blog.sumyapp.com/2013/07/no-recommend-rails/

とか、

Ruby on Rails勉強しない方が良い100の理由

http://ledsun.hatenablog.com/entry/2013/07/24/112644

とか。

便利なものはどんどん使いましょう。

でも、それだけだと行き詰まることもあるから勉強しようぜ!

って何で言えないんだろう。

2013-05-29

http://anond.hatelabo.jp/20130528185014

キャベツの千切りもできないのに板前修業に行ったようなもんで、頭おかしいと思う。会社でなくあなたが。

まずCakePHP+MySQLを使ったCMS回りの機能の追加の他、初めてJavaScriptJQuery担当する事となった。全く触った事の無い言語だった。

最後案件Javascriptクラスを使った案件だった。上記のリンクコードを見れば分かると思うが、自分オブジェクト指向が苦手で、Javascriptクラスの仕組みをする事が出発点だった。

2013-05-28

Web系の会社解雇されて思った事

試用期間3ヶ月が過ぎようとしたある日(5/27)の事。社長からいきなり「今月一杯で辞めてもらう」という宣言を食らった。通例解雇の予告は30日前に行われねばならず、いくらなんでも急過ぎるだろと思ってしまう。ここから入社してからの経緯を簡単に話そうと思う。

今回入社したのは社員10人未満の小さい会社だった。まずCakePHP+MySQLを使ったCMS回りの機能の追加の他、初めてJavaScriptJQuery担当する事となった。全く触った事の無い言語だった。基本を覚えながら、分からない事は先輩に聞きながらの作業で、いよいよ一案件が完成し、JQueryのほうも○×ゲームを作る位は覚えた。

しかしながら既存ソースコードの改修が苦手なのもあって、案件JavaScript回りで時間がかかってしまった。例えば最後案件Javascriptクラスを使った案件だった。上記のリンクコードを見れば分かると思うが、自分オブジェクト指向が苦手で、Javascriptクラスの仕組みをする事が出発点だった。

最終的に「一つのトップページで一ヶ月をかけるのは費用効果で、君を雇う意味が無くなってしまう。大きい企業なら補填が聞くのだが」と言われてしまったわけだ。労働契約の面では配置転換が出来ない事による普通解雇に当たるはずだ。

しか仕事面では「俺じゃなくお前のせいだろ」と言ってやりたい。ある案件ホームページは途中まで自分が作っていた。しかし三月中旬、突然上の思いつきで仕様変更が入り、プログラムの大部分を修正しなくてはならなくなってしまった。先輩にも「無理なら無理と言っていいんだよ」と言われた程だった。その案件のものの期限も一ヶ月延びたのもあり、他の案件でやらねばならない事も後ろに伸びてしまった。それがずるずる来て今日に至る。

「家は小さい会社から何でも出来る、やりたい人を募集している。ミスマッチだ」と言われたが、フロントエンド/バックエンドの両方できる人ってそういないと思う。無論できる人もいると思うが、それが出来るような人は今の会社に来ないと思う。

かくいう俺も俺はそこまでプログラムが得意ではないし、何でもできる訳では無い事を考慮してくれればありがたかった。正直やってられない気持ちで一杯で、この業界から身を引く事を真剣に悩んでいる。

2013-05-17

アフィリエイト勘違いした大学生の末路

ただの趣味で始めたはずなのに

大学生だった2007年から趣味で他愛もないホームページをつくっていた。

ワードプレスライブドアブログのようなCMSには頼らず、1から10まで自分で作ることにこだわった。

すぐにのめり込んでいき、大学図書館にこもりWEB関係の本を借りまくった。

しかWEB関係といってもPHPSQLは理解できなかったので、まずはHTMLCSSだけ勉強して静的なページをべた書きで量産していった。

HTML,CSSですら最初はつまづいていたけれども、自分意図した通りにデザインできるようになってから面白かった。

アクセスは全く増えず、一日100PVにも満たなかったが、僕はめげなかった。

講義には出ず、学園祭にもサークルにもいかなくなり、周囲からは「まだやってたの」「何がしたいの」と呆れた目で見られるようになった。

付き合う人も限定されて社交性は衰えていった。


半年が経っても動的なページをつくれる技術はなかったので、未だに力押しでページを量産していた。

しかデザインにはこだわっていたので、単純なHTMLでも、見た目にはそれなりのサイトに仕上がっていた。

内容はくだらなくても、いっちょまえなレイアウトで書けば、それだけで見栄えのする物になった。

PVはすぐには伸びないとわかっていたので、平均滞在時間、平均PV直帰率目標にしていた。

ユーザビリティには独自性無用で、正解があると思っていたので、ヤコブニールセンWEBユーザビリティの本を買って、素直に勉強した。

PVが少なかったので、平均をとっても余り意味がないのだけれども、平均PVは8はあったと思う。

ビジネスの基本は選択と集中だと考えいたので、PVが伸びなくてもサイトテーマは広げず、なるべく狭く深くを追求していった。


勘違いのはじまり

サイト制作をはじめてから8ヶ月ごろではじめてグーグルアドセンスが振り込まれた。

一度軌道に乗るとサイトアクセスは乗数的に増えていった。

2年目にはサイトPVは月100万を超えていた。

ヤフーニュースの関連する記事にリンクが貼られたことも大きかった。

アフィ収入は年間400万を超えて、僕は大学3年で親の扶養を外れた。

稼げるようになってから、周囲の目が変わった。

いまどきアフィリエイトかよと呆れていた人が僕にジャンル手法を訊いてくるようになった。

この頃から僕は自分にはプログラマの適正があると勘違いし始めた。

HTMLCSSは狭義のプログラミングではないにもかかわらずだ。

調子に乗った僕はプロの話を聞きたいと思って、広告で見た翔泳社デベロッパーサミットに参加した。

年に一度開かれるITエンジニアの割と大きなカンファレンスだが、仕事で来てる人がほとんどだと思う。

名刺がないので受付で恥ずかしい思いをした。

javaカリスマエンジニアオラクルNTTデータMSの偉い人、はてなの人などが講演していた。

当時HTMLCSSしかからず、PHPMYSQLをかじったばかりの僕には話の内容は1割も理解できなかった。

それでも僕は卒業後はIT業界で働きたいと思いはじめていた。


IT仕事

引きこもってプログラマごっこを続けているうちに大学4年になった。

一生アフィで食っていけるわけもないので、就職活動をはじめた。

WEB系はブラックが多いとそれとなく聞きかじっていたので、大手IT企業大手SIerを中心に受けた。

新卒WEB屋の門を叩かなかったことを、今でも本当に後悔している。)

結論から言うとMSデータオラクルグーグルユニシスも全部落ちた。

営業職も応募したけれど、いずれにせよPHPSQLをかじっただけでは戦力にならないし、そもそも、WEBとSIでは言語の畑が違うのだろうが、たぶんそういう技術的な事はどうでもよかった。

技術的な事は入社後に教育する体制ができてるので、学生には何よりもまず社交性を求めていたのだろう。

人間よりもPCと付き合ってた僕の社交性は衰えていた。

~現時点で私が御社提供できるスキルは何もありません。

~でも、私には在学中に専攻外の事を勉強していった自主性があります

~これに関しては誰にも負けません。

とアピールしたのだけれども、ダメだった。ただの独り善がりの変なヤツに見えたのかもしれない。疑わしきは落とす。


結局僕は社交性、人間性、社畜適正、その他、大企業学生に求める普遍的な魅力を欠いていたか内定がでなかったのだろう。

文系学生が独学で中途半端プログラミング勉強を始めたばかりに、それはIT業界から内定を得る上での強みになるどころか、致命傷になったのだ。

皮肉な話である


友人は立派な会社就職していったので、当時リーマン不況のまっただ中で就職難だったというのは理由にならない。

facebook大学の友人をみると勤務先がNTTデータとかアクセンチュアになっていた。僕よりも人間的な魅力があったのだろう。

技術なんて一切関係なかった。僕は悔しかった。

幸い他の業界内定をもらえたので、そのまま就職した。

サイト制作趣味と割り切り、日本を支える製造業仕事に選んだ。

起業

内定をもらってから卒業するまでの間に、僕よりもずっとITに明るい友人に、アフィで成功していたことを買われて起業を持ちかけられたが、何度も衝突し、結局2ヶ月で僕の方から音を上げてやめた。

起業するなら一人でスタートして人を雇うなり外注するなりすべきで、チームで始めるにしても誰が一番偉いのか最初に明確にすべきだと、このとき確信した。

仕事なんてクソだろ?

就職したが、毎日のような飲み会と、週末のゴルフ、一発芸の強要など体育会系の慣習に嫌気が差した。

日本大企業がどこもこうなのかと思うと、哀しかった。

僕は仕事の傍らの片手間の作業でも収入が増えていくアフィに目をくらませて、半年退職し、専業アフィリエイターになった。

今は無き海外ニートブログ労働観と、後述するコピペが僕を後押しした。

砂の城

賃貸物件審査確定申告書を見せたら通った。

専業になってから収入は伸び続け、一番多いときで月80万を超えたが、その代わり孤独になったので、以前のような精神的な余裕がなくなった。

技術的には大学在学中からほとんど成長しておらず、未だにhtmlのべた書きで、サイトの一部でphpsqlを使用してる程度だったからだ。

僕のサイトWEBサービスといえるような代物ではなく、ただの一方通行サイトで、コメント欄をつくる技術もないので、放置していもユーザー勝手コンテンツ価値を高めてくれるということはなかった。


ページを増やすのは社員を増やすようなものだと考えていたけれども、僕の身体は一つなのでべた書きで増やせる量には限界がある。

一人で安定してコンテンツを生み出すには、今後は趣味サイトから卒業し、より商業的なユーザー参加型のCGMを作らなくてはならない。このままではまずいと感じていた。



しかし僕はcakephpのようなフレームワークを使用せず、というかMVCを理解できず、。

ワードプレスのようなCMSもつかわず、力押しでべた書きで作っていたので、できることには限界があった。

僕と同じ個人事業主がつくっているW3Qのような立派なサイトをみるのが怖かった。

毎日が夏休み

僕のサイトブログニュースサイトではなく、テーマ普遍的サイトだったので、放置していもPVは減るどころか増えていった。

多い時で1日12PVはあったと思う。

あぐらをかいた僕はサイト制作を完全に放置して、不安を紛らわすために現実逃避で遊びはじめた。

目的地も決めず、平日に思いつきで一人旅サイクリングにいった。

仕事を辞める引き金をひいたのが、2ch独身男性板でみたこのコピペだった。

もし仕事に行きたくなくなったら、そのまま反対の電車に乗って、

海を見に行くといいよ。

海辺の酒屋でビールピーナツ買って、海岸に座って

陽に当たりながら飲むといいよ。

ビールが無くなったら、そのまま仰向けに寝ころんで、

流れる雲をずっと眺めるといいよ。

そんな穏やかな時間がキミを待ってるのに、何も無理して

仕事になんか行く必要ないよ。



毎朝ネクタイを締めるときストレスで吐いていた僕の背中を押してくれた。

なんて罪なコピペだろう。

気晴らしのはずの一人旅なのに、旅館の人に今日お仕事休みですか?と聞かれたのが辛かった。

他にも一人で野球観戦に行ったり、映画を借りまくったり、早朝深夜のメジャーリーグ試合を見まくったり、夜更かししてロンドンオリンピックを見まくったりした。

野球中継に関してはスカパープロ野球セット契約していたので、144試合中130試合は1回から9回まで見ていたと思う。

僕はサラリーマン時代に味わえなかった自由をほとんどすべて享受した。

サイトの方はなんだかんだで半年以上更新してなかっただろうか。


瓦解

そして昨年の11月に事件が起こった。

グーグルアルゴリズムが変わり検索順位が大きく下がったのだ。

多い時で80万円あった収入20万円台にまで落ちた。

打開するための次のサイトアイデアはあるのだけれども、技術がない。

周りに相談する人もいないので質問サイトを使うしかない。

フロー理論でいう挑戦と技能の間の大きなギャップがあり、不安に駆られ現実逃避しか出来なくなった。


ゲームオーバー

収入は落ち込んでいくのに、サイト制作をする気にもなれず、この一ヶ月前に自営業を断念した。

僕は公務員を目指すことを考え始めた。

一ヶ月後の6月試験である参考書だけ買って全く勉強は進んでいない。

今年は無理だろう。

しかし今年で27歳だ。公務員になるにはそろそろ年齢制限にひっかかる。

来年筆記試験にうかったとしても、年増が面接に受かるだろうか。

勉強したあげく面接に落ちたらどうなるだろう。

27歳にもなるのに職歴がなく、独学でphpSQLを囓った程度ではWEB制作会社は雇ってはくれないだろう。

詰んだかな、これ。

もっと外に出て、みんなと同じ大学生活を送って、みんなと同じ就職活動をして、みんなと同じように働いていれば。

これから僕の人生はどうなるのだろう。嗚呼

I see my life fading away.



2013年5月17日 現実逃避野球中継を見ながら執筆



初めての増田

気持の整理ができたのでよかった。

追記

13/5/18 15:00

はてなツイッターでの様々なご意見、ご指摘ありがとうございます

自分を少しは客観視できるようになりました。

27歳で実務経験のない僕が現時点でのスキルWEB制作仕事にありつけるとは思えず、納期がある請負も性にあっていないので、やはり公務員試験勉強をがんばります

僕のサイトははてぶ400userもありませんが、最後ホッテントリ入りしてWEBに小さな足跡を残せたので、悔いはありません。

2013-02-26

オンラインブックマークサービスを作ってみました。

「らびっとブックマーク

http://rabbit-bookmark.com

管理をする」ことに重点を置いた(ノンソーシャルブックマークサービスです。

■作ったいきさつ

ブラウザブックマークが貯まりに貯まってたので、ブラウザじゃなくてオンライン管理しようと思ったところ

丁度いいブックマークサービスが無かったので

「じゃあ自分で作ってみるか」

ということで作りました

はてブは?

もちろんはてブでもブックマーク管理してたんですが「もっと一覧性が高かったらなぁ」とか、「ラベリングができたらいいなぁ」とか、

単純に管理するという点に注目したときもっと機能が欲しいと考えました。


制作について

製作期間は2ヶ月くらい。

使った言語PHPで、フレームワークは「CodeIgniter」というものを使いました。

日本CodeIgniterユーザ会」

http://codeigniter.jp/




Webサービス制作で紆余曲折した話

実はプログラミング勉強は1年半ぐらいやってて、Webサービス(のプロトタイプ)をいくつか作ったことがありますが、リリースまで出来たのは今回が初めてです。

最初流行の「Ruby on Railsから勉強しました。

本を買ったり、ネット上のチュートリアルを参考にしたりしました。

流行だったこともあって、情報収集にはそこまで困りませんでした。

そこで当時考えたToDoリストゲーム性を加えたWebアプリを作ろうとしたんですけど、どうしても本番環境へのデプロイができなくて、そこで挫折…。

デプロイだけで2~3週間ぐらい奮闘してたと思います。)

ならば別のフレームワークを!と思って次に手をつけたのがPythonフレームワークDjango

Railsより動作が速く、もともとPython勉強してたこともあり、親しみを持てた一方で書籍ネットでの情報が少なくて苦労もしました。

簡単なアプリを作ってデプロイを試みたんですけど、結局こちらでも成功まで辿りつけませんでした…。

サービスを作っても公開できなきゃ意味ないじゃん!」

と焦り始めたところで、次に目をつけたのがPHPの「CakePHP」でした。

PHPを使ったら負け」みたいな文言ネットでよく見かけていた

(結果として今現在かなりお世話になっていますが)

ので、あえて敬遠していたのですがここまでくると手を出さずにはいられませんでした。

結果から言うとこちらは先の2つでの苦労が嘘のようにいとも容易くデプロイができました。

このままCakePHP制作を進める予定でしたが、何故かここら辺で別の事に手を出して、構想していたToDoリストアプリの制作を中断しました。

そして数ヶ月の空白期間を隔て、今回のオンラインブックマークサービスネタを思いつきました。

その間に出会ったのが「CodeIgniter」というフレームワークで、CakePHP同様PHPベースですが、こちらは軽量フレームワークです。

動作が速く、学習コストも低いのが魅力的でした。(デプロイも簡単。)

ということでこちらを採用して制作し、今回リリースまでこぎつけました。

これから独力でWebサービスを作ろうと思ってる方は、使うフレームワークの仕組みだけでなく、本番環境デプロイすることまで見越した勉強をしないと

自分みたいにフレームワークに左右されて余計な時間を取られてしまうので、その辺は注意した方がいいかもしれません。

(ただそれらを通して学んだことは無駄にはならないと思います。)


感想

今回実質の製作期間は2ヶ月くらいでしたが、それに至るまでの勉強も含めるとかなりの時間と労力を費やしていて、Webサービスをちゃんとしたサービスとして

リリースするのは本当に大変なことだと痛感しました。

立ちはだかる壁としては

技術がなぁ…

デザインがなぁ…

↓(ある程度の妥協

デプロイがなぁ…

宣伝がなぁ…

運用がなぁ…

みたいな感じだと思います

最近はてブでも「Webサービス作った」系のエントリが上位に昇っていますが、

素人でも独力で数ヶ月でサービスを公開してしまう方は本当にすごいなと感じました。

自分はまだ勉強中の身で至らないところもありますが、どうぞよろしくお願いします。

2013-02-11

無職になって暇だからWebサービス作った

もうすぐ30歳になるのに、昨年末職場がなくなりハローワークに行っても求人が無いので

PHP ruby Nginx WordPress Bootstrap を使ってWebサービス作りました

作ったサイト

SKE48過去ブログ

http://skeblog.48matome.com/

名古屋栄を拠点に活動しているアイドルグループ

SKE48オフィシャルブログを保存して表示するサービス

なぜ作ったのか

今までバックエンドしか作ったことがなく、フロントエンドをやりたかった。

趣味でやっていて目標の物を作ったら満足し、継続してやらない。

なので今まで覚えてた事を忘れて一からやり直す事が多かった。

じゃあ。仕事決まるまで毎日触ってればいいんじゃね?

とゆう勢いで…

Rubyも覚えたかった…

構成

Bootswatch

PHP Simple HTML DOM Parser

Mechanize

スクレイピング

■対象ブログ仕様

  • 最新記事のみ無料で閲覧可能
  • RSSで全文を取得出来ない。

スクレイピングしなきゃ!

いつもスクレイピングSimple HTML DOM Parser

メモリとかエラー処理をしないと。

ここでRubyに同じようなのが無いか検索

http://t-taira.hatenablog.com/entry/20120429/1335658939

「なにこれRubyすごいこんな数行で」

ここからドットインストールRuby勉強しました。

Rubyの読みやすさと書きやすさに感動。

RubyスクレイピングしたデータMYSQLに保存までは完成。

どうやって表示しよう…

次はサイトをどうしようかと考え…

cakePHPかな…

Zend Frameworkかな…

いや!ブログ掲載するんだからCMSだ!

WordPressに決定。

デザイン

一番時間がかかった…

デザインは昔からまったく出来なかったので Bootstrap に。

そして検索して見つけたのがBootstrapのテーマ

  • Bootswatch

http://bootswatch.com/

デザインが出来ないから仕方ない!

http://dotinstall.com/

ドットインストールでBootstrapを勉強しました。

WordPressテーマ

デザインWordPressテーマに変換

http://webdesignrecipes.com/first-time-wordpress-origin-theme/

ここを見ながらテーマに落としていくのは簡単でした。

カテゴリでページングなどするために関数を追加

http://elearn.jp/wpman/

WordPress初めてなのですごく参考になりました。

Webサーバー

Apacheテスト環境テストすると表示が遅すぎる…

nginx高速化出来るみたい。

http://kray.jp/blog/wordpress-tuning/

http://tech.aainc.co.jp/archives/3022

nginxシンプルな設定ファイルに感動

まとめ

Webサービスを作って公開するのが、こんなに楽しいとは思わなかった。

特に今回作成したもの自分必要とするものだったので。

次はCakePHPとかフレームワークを覚えて新しいサービスを作りたい。

ruby on railsもいいな

でも、早く再就職したいです…

2013-01-22

京大画像処理を学んだ僕が本気でエロWEBサービス作ったった

日々の妄想が出発点

facebookってなんなの!?

リア充DQNの知り合いが

可愛い女の子集団BBQしている写真をのっけてたり

昔好きだった女の子ブサメンとのデート写真をのっけていたり

ごごごごごっ

湧き上がる嫉妬心


あー

あんな可愛いおにゃのこセクロス出来たらさぞ幸せだろうな

モフッモフッ どぴゅっ

と多くの紳士淑女が妄想していた事でしょう


そんなおまいらの為にWEBサービス作りましたよ。っと

おまいらの夢、叶えちゃいなよ。っと

作成したサイト

おまいらの夢

http://omaira.info/

アイコン写真アップロードすると

似ているAV女優検索出来るWEBサービスです。

影響を受けたサイト

計量学習を用いた画像検索エンジンアニメ顔類似検索v3について

http://ultraist.hatenablog.com/entry/2013/01/09/215045

【これはスゴイ】誰もが知ってる歴史上の人物肖像画カラーに加工!!やたらと身近に感じられるようになった件

http://irorio.jp/asteroid-b-612/20121221/40981/

ゴミ回収ドライバーが作るエロWebサービス

http://anond.hatelabo.jp/20130120190550

本職の僕が負ける訳にはいかないぜww

システム構成

サーバーAWS

WEBサーバーEC2

SQLサーバー:RDS

PHPフレームワークcakePHP2.2

CSSフレームワークtwitter bootstrap

データベース : MySQL

インターフェースjQuery

画像処理ライブラリ

libpuzzle

http://www.pureftpd.org/project/libpuzzle


本当はもっとしっかりとした face.com とかの

認識システム(Facial Recognition System)に特化したライブラリを使いたかったのですが

実験してみたところそれなりの精度で結果が返ってきたので

とりあえずはこれで良いかな。

って感じです。

参考にしたサイト

ドットインストール

http://dotinstall.com/

cakePHP, twitter bootstrap, jquery など今回使った開発環境ほとんどを網羅しています

本当、このサイトはこれからWEBサービスを作る方は要チェックです。

cakePHPについて

これ超いいよ。最初覚えるのは大変だけどフレームワークは絶対に覚えるべき。

最近Ruby流行っているみたいですが、PHPの方が環境構築が楽な気がします。

Twitter BootStrapについて

これも超いいよ。

だけど同じようなデザインサイトが出来あがっちゃうので

そろそろ卒業したいな と思ってます

これもドットインストールを見ればすぐに使えるようになります

最後

今は、某企業ソーシャルゲームを影から支えるお仕事をしているサラリーマンの僕ですが

学生時代監視カメラ画像から人間の動きを追跡する研究なんかをやっていました。


その時はC,C+ とか 画像処理ソフトHALCONなんかを使ってゴリゴリコード書いていたんですけど

最近になってふと調べてみたら

今はphpでも良いライブラリが出ている事が分かったので

やるっきゃない!と作ってみました。

時間出来たらもっと精度高く顔検出出来るように改善していきます

楽しみにしていてくださいね

『おまいらの夢』をよろしくおねがいしま

http://omaira.info/

※第三者の写真アップロードをする時には、必ず本人の許可を貰うようにして下さい

-------------------------

1/24追記

公開後に感じた事を別記事にまとめました

http://anond.hatelabo.jp/20130124122021

2013-01-04

素人が完全自作SNSを作ってみてわかったこと。

ひっそりと、Webサービスリリースしました

http://tag-chat.net

で、チャットがメインのSNSです。

自動マッチングしてチャット相手を見つけてくれるマッチングチャットや、すぐにチャット相手を見つけてくれるフリーチャットコミュニティチャット、フレンドチャットなど、とにかくチャットがメインのSNSです。





自分について

昨年の4月からプログラムを学び始めた素人。22歳。札幌在住。





■今更SNSを作ろうと思ったきっか

FaceBookがウザい。というか嫌い。

これがきっかけ。

顔本が良いSNSだと話題になっていたので、実名登録してみた。大学の知り合いが見つけてくれて、友達登録などが増える。(ほとんど話したことがない人から友達登録が来て、「おぉ!これで俺も友達が増えるんだ!」とワクワクしていた)。

が、流れてくるのは自慢ばっかり。

コミュ障彼女はおろか、女友達ほとんどいない自分にとって顔本で「飲み会行ってきたぜウェーイw」とか、「○○ちゃんの誕生日なう!」とか、「○○勉強会行ってきたました! みんな熱い人ばっかりで最高!」とか書いてあるのを見て「こんなSNSは嫌だ……」と思った。


ようするに嫉妬です。

で、自分の好きなようにSNS作ってみたいなぁ。と思いました。

自分趣味レトロゲーなので、自分と同じ趣味の人と話せたら素敵だな。ということでチャット式のSNSを思いつく。

が、Webサービスを独力でつくるのはこれがはじめて。というより、プログラム自体がはじめて。

案の定、前途多難だった。

やはりザッカバーグは天才だった。

そして私はアホだった。

■とにかく計画を立てる。

ざっくり、どんな機能が欲しいか考える。自分の力じゃ無理そうでもOK.とにかく妄想を爆発させる。

妄想した機能

・基本的なSNS機能

メッセージ機能コミュニティ機能あしあと機能日記機能コメント機能つぶやき機能など。

・核となるチャット機能

ミニティ専用のチャットルーム、アカウント専用のプライベートチャットルーム(鍵をかけられる)、自動チャットが開始されるフリーチャット自分の指定した条件にあう人を自動で見つけてきてくれて、チャットができちゃうマッチングチャット

などなど。






■そんなに簡単にSNSが作れるわけがない。

妄想するのは簡単だ。でも、全くわけがからない。何から手をつけていいのかわからない。

とりあえずグーグル先生相談

OpenPNEという簡単にSNSが作れるものがあると知る。

「うはwwww これで勝つるwww」と思ったけれど、どうやってチャット機能を追加して良いのかわからなかった。改変しようにも謎の記号がめちゃくちゃにならんでいてどうして良いかからない。

しかも、改変したら改変したでそれを全世界に公開しなくちゃならないらしい(オープンソースというらしい)。

無理だ。

と思ったので1から勉強することにした。

とにかくサーバーサイドの言語と、データベースについて勉強しろや! とのことだった。






■使う言語について。

サーバーサイドを扱える言語はたくさんあって、PerlとかPHPとかPythonとかRubyとか色々あるらしいのだが、色々悩んだ結果


PHPにした。WebサービスならPHPが良いらしい。レンタルサーバーなどでも簡単に扱えるらしい。

後でPHPがクソ言語という話も聞いたが、とにかく最初に選んだのがPHPだったので。

それになにがクソ言語かとか、未だによくわからない。






■入門の勉強で使ったもの

PHP 

よくわかるPHP教科書http://www.amazon.co.jp/dp/4839933146/

MySQLとかについて一通り書いてあるので良かった。二週間くらいでなんとか全部こなした。xamppなども触って、ローカルサーバーで色々試した。

これが終わったら、

パーフェクトPHP http://www.amazon.co.jp/dp/4774144371/

パーフェクトって書いてあるから、パーフェクトなはずだと勝手に思い込む。

実際かなりすごい内容で、胃もたれ起こした。一ヶ月くらいで三回くらい読んで、大体のところを理解した。

フレームワークCakePHPを使ったので、MVCについてのくわしい記述は大変参考になりました。



MySQL

基本的には、よくわかるPHP概要をつかんで、それから

基礎からMySQL勉強。 http://www.amazon.co.jp/dp/4797344385/

最期

ハイパフォーマンスMySQL http://www.amazon.co.jp/dp/4873114268/

インデックスの貼り方などについて勉強した。






チャットに向いている技術

とりあえず掲示板くらいはつくれるようになったので、チャットについてリサーチ

ajaxとかよくわからん技術nodejsを使った非同期処理などがあると知る。

nodejsはC10K問題という問題を解決するすごいものらしく、かっこいいらしいのでこれを勉強することに。

ついでにnodejsと相性の良い、mongoDB勉強することに。







javascript勉強

よくわかるjavascript  http://www.amazon.co.jp/dp/4839941874/

終わったら、

パーフェクトjavascript http://www.amazon.co.jp//dp/477414813X/

パーフェクトjavascriptnodejsについてものすごく詳しく書いてあったので、とても参考になった。このあたりで、LINUXというOSを扱わなくてはいけないと気付き、自宅PCウィンドウからLINUXubuntu)に変えた。


mongoDB勉強

これはとにかく触ってなんぼでした。MySQL感覚が違い、苦労しました。

CakePHPmongoDBを扱うのは

https://github.com/ichikaway/cakephp-mongodb

という素晴らしいものを利用させていただきました。




■このへんで一回限界がきた。

なんとなくnodejsを扱うこともできるようになり、それなりに楽しいと思ってはいものの、「SNS作ったる!」と思ってから六ヶ月以上が経過していた。

さらWebサービスを公開するにはデザインもそれなりにしなくてはいけないらしく、CSSなどについて勉強しなくてはいけないと知る。



勉強に終わりが見えなくて、「しんどいなぁ」と思った。

一人でWebサービス作ってる「ゆーすけべー」さんとかすごいなと思った。

勘違いサブカル野郎だと思っていた「家入一真」とかもやっぱりすごい人なんだと思った。

自分はなんもできないなぁ。と痛感した。



で、悩んでても仕方ないので、デザインはバッサリあきらめることにした。


もうなんでもかんでもやるのは無理なので、捨てるものは捨てることにした。

■それなりのデザイン他力本願で。

基本的に Initializr  http://www.initializr.com/  (テンプレートエンジン

TwitterBootStrap   http://twitter.github.com/bootstrap/  (Twitterっぽい今時な感じのデザインが簡単に使える)

を使うことに。

でも、これだとまさにTwitterそのまんまっぽかってので、

http://bootswatch.com/ (きれいなデザインテンプレートがあるサイト

も使うことに。デザインについてはこれだけ。

無理はしないことに。



■大体できたら、あとはセキュリティ

セキュリティ大事自分サイトでは一応、登録制なのでフリーメールアドレスなどを預かる。これは流出させたら困るし、なによりユーザー様が安心して使えないなんてだめなので。

これにはかなり注意したつもりです。

まず基本的なことは 『体系的に学ぶ 安全ウェブアプリケーションの作りかた』  http://www.amazon.co.jp/dp/4797361190/

勉強

本番環境に公開する前には グーグル先生が公開している skipfishというツールでチェックをしたり、

Dos攻撃対策に、

http://up-point-server.info/?p=54

などに書いてある

mod_dosdetector などを利用。

これははてなさんが公開しているものです。この場を借りて感謝します。ありがとうございます

あとは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&Aの1文でも良いから書いてみるとか、とにかくパソコンエディターだけ立ちあげてみるとか、していました。

ものすごーく覇気のない目でキーボード打ち続けていましたが、それでもなんとか完成することができました。惰性だろうとなんだろうと、少しずつは進むのだとわかりました。

SNS作ってみたわかったこと。

やはり1から完全自作をするのは無謀だった。でも、プログラムをやったことのない素人でも約一年頑張ればそれなりのSNSもどきを作ることができた。

これも先人たちの作ってくれたフレームワークや様々なツール、そして参考書などのおかげ。

私のようなアホでも頭の良い人の力を借りればなんとかなりました。ありがとうございます

そしてプログラムは一人でも出来るので、私のように非コミュでも楽しめる素晴らしい趣味である

現在

今はRubyに夢中です。くり返し処理がすごくきれいにかけるので素敵な言語だと思っています。あと、javascript面白いので毎日いじくって遊んでいますPHPももちろん触っています

非コミュあいかわらずですが、プログラム楽しいので前より幸せです。


仕様した技術など一覧

サーバー さくらVPS4Gプランを使用しています

Apache,Nginx,nodejsを利用しています

データベース mongoDBMySQLを使っています

フレームワーク CakePHP,socket.io

使用言語 PHP,Javascript

できたもの http://tag-chat.net

2012-11-07

PHPフレームワーク

PHP勉強しようと思ってる。

入門本によくあるような「勉強のための勉強」は勉強しても実務で役にたたないのでごく最初の入門レベル以外はあまり意味がないと思ってる。

CakePHPが良いのか、Zend Frameworkがいいのか迷ってる。

PHPによるWebアプリケーションスーパーサンプル 第2版」は良書だけどさすがに古いっぽいしなあ。

2012-09-26

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

前編はこちら

http://anond.hatelabo.jp/20120926165407

中編はこちら

http://anond.hatelabo.jp/20120926165533

ステップ11:残りの開発(50時間)

基本的な機能デザインが出来てきたら、細かな機能や説明ページなどの静的コンテンツも作っていきます

8割程度出来たと思ったら、一度サーバーアップロードして動作チェックしてみます

たいていは上手く動作するはずですが、途中で一度チェックしておいた方が出来上がってから不具合を修正するよりは効率的です。

僕ははじめCORESERVERを使っていましたが、メールが送信できない不具合に遭遇して時間を取られました。

結局はCORESERVERgmailの相性が悪いせい、という事で最後さくら移転しました。

あと、何となく動いているのが確認できたら、

このタイミングGoogle AdsenseAmazonアソシエイト、A8やバリューコマースアフィリエイトサイトに申し込みましょう。

特にアドセンスは申請してから使えるようになるまで1週間とかかかります

2012年現在アドセンスを含むアフィリエイトは期待するほど儲かりません。

でも、色んなWebサイトで見かけるこれらの広告の表示方法を学ぶことで、Webサービスに対する理解も深まりますし、

あと、全然からなくてもサイトにこれらの広告を表示しておくと、社会と繋がっている雰囲気が出て活況感が高まったり

自分サイトちょっと立派に見えてテンションが上ったりします。

それぞれのプログラムの使用方法検索すると出てきますが、敢えて本でおすすめはこの2冊。どちらも基礎です。

増補改訂版 グーグルアドセンスの歩き方

http://www.amazon.co.jp/%E5%A2%97%E8%A3%9C%E6%94%B9%E8%A8%82%E7%89%88-%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB%E3%83%BB%E3%82%A2%E3%83%89%E3%82%BB%E3%83%B3%E3%82%B9%E3%81%AE%E6%AD%A9%E3%81%8D%E6%96%B9-%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB%E3%83%BB%E3%82%A2%E3%83%89%E3%82%BB%E3%83%B3%E3%82%B9%E7%A0%94%E7%A9%B6%E4%BC%9A-%E7%B7%A8/dp/4478041555/ref=sr_1_cc_1?s=aps&ie=UTF8&qid=1348500894&sr=1-1-catcorr

アフィリエイトで<得する>コレだけ!技 BEST100

http://www.amazon.co.jp/%E3%82%A2%E3%83%95%E3%82%A3%E3%83%AA%E3%82%A8%E3%82%A4%E3%83%88%E3%81%A7%253c%E5%BE%97%E3%81%99%E3%82%8B%253e%E3%82%B3%E3%83%AC%E3%81%A0%E3%81%91-%E6%8A%80-BEST100-%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97/dp/4774138487/ref=sr_1_2?s=books&ie=UTF8&qid=1348500937&sr=1-2

ステップ12:リリース(10時間)

サイトがだいたい仕上がったら、リリースしましょう。

サーバーに最新のファイル一式をアップロードして、入念に動作チェックをします。

CakePHPセキュリティレベルは下げたか

セキュリティソルトは推測が難しい値になっているか

core.phpのsession idデフォルトの状態から違うものに変更したか

全てのコントローラーデバッグツールキットはOFFになっているか

CakePHP本体は公開フォルダと別の階層アップロードしているか

htaccessの設定は間違っていないか

データベースに余分な情報は溜まっていないか

などを確認します。

あと、ここからもう一歩、公開用に細かな設定をしていきます

URLwww付きとwwwなしはどちらかにリダイレクトさせて1つに統一できているか

存在しないURLアクセスされた時のエラーページに余分な情報が表示されていないか

検索エンジン用のrobots.txtを用意、

ファビコンを設定する、

アクセス解析を設定する、Google Analyticsに登録しコードサイトに埋め込む。

http://www.google.com/intl/ja/analytics/

Google先生挨拶する。Google ウェブマスターツールに登録し、必要情報入力、Analyticsと紐付ける。

https://accounts.google.com/ServiceLogin?service=sitemaps

facebookのいいねボタンオープングラフ

http://developers.facebook.com/docs/reference/plugins/like/

Twitterツイートボタン

https://twitter.com/about/resources/buttons

その他、mixiGoogle+などのボタン類も必要ならつけましょう。

全部出来たら、完成です。

ステップ13:PRとこれから(10時間)

Webサイトは作っただけでは(本当に)誰もアクセスしてくれません。

出来上がったサイトはPRしましょう。

エイトビットさんのこの記事が参考になります

Webサービスを作ったそのあとに、「自分でもできる低コストWeb PR方法

http://blog.8bit.co.jp/?p=1944

こちらもチェック。

作ったwebサービスPRできる!webサービスリンク集サイトまとめ

http://smkn.xsrv.jp/blog/2011/11/web-service-linksite/

リリースした直後はGoogleインデックス数も少なく、検索エンジンからアクセスは期待できません。

検索エンジンからの流入は1ヶ月とか、時間が経つにつれ少しづつ増えてくるので気長に待ちます

サイト情報のチェックはSEOチェキ!とコメポンが便利。(作者のロプロスさん様様)

SEOチェキ

http://seocheki.net/

Komepon!

http://komepon.net/

それからステップ11で紹介した本にも出ててますフェレットも便利。

Ferret

http://ferret-plus.com/

作ったサイト継続して手を入れていきましょう。

自分の作ったサイト改善点や評価が気になったら、

500円で客観的に評価してもらえるこちらも活用すると良いでしょう。

2012年9月26日現在、このサイトは僕はまだ利用していませんが気になっています

ホームページ評価.com

http://www.hphyoka.com/

最後

ここまでやってみると、Web開発の一連の流れが分かった気がしてきます

初めて作ったサイトはしょぼくても、ひと通りやってみる事で

Webサービス開発者としての入り口には立ったな、位には思えるはずです。

今回は勉強をしながら300時間かけて作りましたが、

同程度の物を次に作るなら100時間からないでしょう。

継続することで、それがあなたの強みになっていくと思います

ここまでの知識をベースに、

VPS借りてサーバー勉強をするもよし、

SEOをがんばるもよし、

jQueryやHTML5でデザインにこだわるもよし、

ベリサインジオトラストサイト証明入れてみるもよし、

会員サイトログインさせたり決済に対応するもよし、

アドセンスやA8などのアフィリエイトで稼ぐしくみ作りをするもよし、です。

この記事を読んでアクションしたら、僕と同じようにアウトプットして、

そのリザルトシェアしてトゥギャザーするオポテュニティをテラユビキタス

1つ気をつけたいのは、

開発したサイトサーバーの種類とか、CakePHPで作ってるとか、そのバージョンは1.3だとか、

そのサイトの詳細仕様は安易にこういう記事に書かないようにしましょう。

悪意のあるハッカーに攻撃の糸口をプレゼントする事になってしまます

この本も参考になります(まだやるか)

体系的に学ぶ 安全Webアプリケーションの作り方

http://www.amazon.co.jp/%E4%BD%93%E7%B3%BB%E7%9A%84%E3%81%AB%E5%AD%A6%E3%81%B6-%E5%AE%89%E5%85%A8%E3%81%AAWeb%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9-%E8%84%86%E5%BC%B1%E6%80%A7%E3%81%8C%E7%94%9F%E3%81%BE%E3%82%8C%E3%82%8B%E5%8E%9F%E7%90%86%E3%81%A8%E5%AF%BE%E7%AD%96%E3%81%AE%E5%AE%9F%E8%B7%B5-%E5%BE%B3%E4%B8%B8-%E6%B5%A9/dp/4797361190/ref=sr_1_1?s=books&ie=UTF8&qid=1348641593&sr=1-1

最後最後に、役立つ本を書いて下さった著者さん、

有益情報ネット上に提供して下さっているWeb業界の皆さん、

それにいち早く辿り着けるはてなブックマーク

皆さん、に感謝

ツイッターはじめました

http://twitter.com/masayaseto

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

前編はこちら

http://anond.hatelabo.jp/20120926165407

ステップ6:MySQL(10時間)

会員情報や文章などのコンテンツを保存しておくデータべース、MySQLを調べます

データベースは他にもPostgreSQLSQLiteなどが有名ですが、やはり王道勉強します。

MySQLCakePHPや、ステップ4のWordPress他、よく使いますので把握しておきましょう。

基礎からのMySQ

http://www.amazon.co.jp/%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E3%81%AEMySQL-%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E3%81%AE%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%AE%E7%A8%AE%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E8%A5%BF%E6%B2%A2-%E5%A4%A2%E8%B7%AF/dp/4797344385/ref=sr_1_1?s=books&ie=UTF8&qid=1348063628&sr=1-1

今はまだ関係ありませんが、余裕があればこれも読むといいです。

MySQLによるタフなサイトの作り方

http://www.amazon.co.jp/MySQL%E3%81%AB%E3%82%88%E3%82%8B%E3%82%BF%E3%83%95%E3%81%AA%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9-%E4%BD%90%E8%97%A4-%E7%9C%9F%E4%BA%BA/dp/4797353937/ref=sr_1_1?s=books&ie=UTF8&qid=1348063787&sr=1-1

操作コマンドラインを覚えていく方向で、始めはブラウザ操作できるphpMyAdminを使ってOKです。

ストレージエンジンはとりあえずInnoDBで。

ステップ7:休憩(10時間)

技術調査はこの位にして、これからは実際にWebサイトを作っていきます

ここまで来ると何となくWebサイトがどんな仕組みで動いてるかが分かってくるので、

ステップ0でイメージした作りたいサイトがどんな技術で実現出来るか調べます

冒頭の「完全に一致」の中の人のようにスクレイピングしたり、

TwitterGoogleYahooAmazonなどのAPIを使ってサテライトサイトを作っても良いと思います

が、高度な事をするとはまりやすいので、ある程度やって無理だったらあきらめて次回にまわしましょう。

まずは何か一つ完成させる事のほうが大切です。

それから開発効率UPのため、Chromeプラグインを入れましょう。

説明はそれぞれのリンク先を見て下さい。

CSSViewer

https://chrome.google.com/webstore/detail/ggfgijbpiheegefliciemofobhmofgce

Firebug Lite for Google Chrome

https://chrome.google.com/webstore/detail/bmagokdooijbeehmkpknfglimnifench

View Selection Source

https://chrome.google.com/webstore/detail/fbhgckgfljgjkkfngcoeajbgndkeoaaj

Pendule

https://chrome.google.com/webstore/detail/gbkffbkamcejhkcaocmkdeiiccpmjfdi

BuiltWith Technology Profiler

https://chrome.google.com/webstore/detail/dapjbgnjinbpoindlpdmhochffioedbn

iPSim

https://chrome.google.com/webstore/detail/gcligifbhamdimemnemmlkffkpmflehh

Color Picker

https://chrome.google.com/webstore/detail/ohcpnigalekghcmgcdcenkpelffpdolg

CSS Tester

https://chrome.google.com/webstore/detail/pjncppaiejjkcjlcgegcbmhgkflhenfp

MeasureIt

https://chrome.google.com/webstore/detail/pokhcahijjfkdccinalifdifljglhclm

あとはFireFoxにはFireBugデバッグ定番らしいです。

https://addons.mozilla.org/ja/firefox/addon/firebug/

それから、空いた時間無料プログラミング動画サイトドットインストール」を見ておくと

ここまでの知識が定着すると思います

ドットインストール

http://dotinstall.com/

ステップ8:ドメインを取る(10時間)

ステップ7で作りたいサイトイメージ出来てきたら、ドメインを取りましょう。

サーバーさくら場合ドメインさくらで取得すると楽ですが、もっと安いところもあります

希望するドメインが空いているか調べて取得、空いていなければ他のドメインを考えます

さくらドメイン取得

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

ムームードメイン

http://muumuu-domain.com/

バリュードメイン

http://www.value-domain.com/

定番の.com、.net、.orgは誰が見ても親しみがあるし安いので、できればこの3種類のどれかにしたい所ですが、

一般的な言葉はほぼ埋まっているので、その場合.jp等にしても良いでしょう。

日本語ドメイン(www.日本.netみたいな)は流行っていないですが、

自分サイト名が「○○○.com」のような名前場合は一緒に取得して、アルファベットドメインリダイレクトしましょう。

ChromeユーザーURL欄で検索する時、「○○○.com」のように後ろに.xxxが付いているとそのURLに直接アクセスしてしまい、

 検索にならないので、アクセス機会損失を防ぐため。)

僕はバリュードメインで取得して、サーバーさくらレンタルサーバーしました。

その際の親切な設定方法の解説はこちら。

VALUE DOMAIN で取得したドメインさくらレンタルサーバで使う

http://nekohacks.com/wordpress/domain/value-domain/

ステップ9:サイトの基礎部分の開発(100時間)

実際にサイトを開発していきます

どんなサイトで、どんな機能があって、どんなページがあるかノートに書き出して行きます

初めにデータベースのテーブルやレコード構造を考えて、

次にメインとなる機能プログラムして行きます

サイトの基本的なレイアウトCSSで組みながら、デザインイメージもしておきましょう。

ここではデザインはまだやりません。

先にデザインを作っても、プログラムを進めていく過程で変更がでたりする為です。

(でもあんまり後回しにしても、見た目がチープなせいでモチベーションが下がったりするので、次のステップでやります

あと、ここで気をつけたいのは、あくまでメインとなる機能の開発を優先することです。

「あったほうが良いな」程度の機能は後回しにします。

外堀から埋めていくとそこでモチベーションが尽きてしまったり、

メインの機能を実装してみたら外堀の修正が発生してしまったりするためです。

始めると分からない事がどんどん出てくると思うので、本を読み返したりGoogle先生検索しながら進めて行きます

なかなか進まなくて検索8割、コーディング2割くらいの進め方になると思いますが、それでOKです。

長い暗闇を抜けると、少しづつ視界が開けてきます

メインの機能がなんとなく出来たら次に進みます

ステップ10:サイトデザイン(30時間)

メインの機能何となくできたら、デザインをやります

鉛筆殴り書きで良いので紙に描いてみます

いきなり慣れないCGソフト上でデザインすると、

いじっているだけでモチベーションを使い切ってしまったりするので危険です。

CGソフトは色々ありますが、おすすめフォトショ(Photoshop)です。

WebサイトデザインFireworksなども有名ですが、学習コストがかかるので、

Webサイトにもそれ以外にも使えて一番つぶしが効くフォトショップでOKです。

今年からクラウド契約が始まり、今なら1ヶ月8000円、年間契約なら1ヶ月5000円で

Adobeソフトが全部使い放題です。

Adobe Creative Cloud

http://www.adobe.com/jp/products/creativecloud.html

お勧めの本はこれ

10日でおぼえるPhotoshop入門教室

http://www.amazon.co.jp/10%E6%97%A5%E3%81%A7%E3%81%8A%E3%81%BC%E3%81%88%E3%82%8BPhotoshop%E5%85%A5%E9%96%80%E6%95%99%E5%AE%A4-CS2-CS%E5%AF%BE%E5%BF%9C-%E4%BA%95%E4%B8%8A-%E3%81%AE%E3%81%8D%E3%81%82/dp/4798111953/ref=sr_1_1?s=books&ie=UTF8&qid=1348498454&sr=1-1

基本操作を覚えたらWeb情報を収集します。

PHOTOSHOP VIPさんが親切です

http://photoshopvip.net/

から全部自分で作らなくても、素材サイトからダウンロードして加工するなどして手間を省きます

PCスマホ携帯(ガラケー)全部に対応するのは大変なので、

初めはそのサービスを最も使うだろうと思われるどれか1つに絞ります

初めに作る際のお勧めPCサイトです。

PCサイトならスマホでも最低限アクセスはできるし、携帯は縮小傾向なので優先度低、

スマホ画面サイズがまちまちでタブレット端末が目下発展中、AndroidブラウザがたくさんあるがChromeに統一されていくかも、

混沌とした状況なのでお勧めしません。

複数デバイスへの対応リリース後でも遅くありませんが、

対応する際はCSSを切り替えてレスポンシブレイアウトにするのがお勧めです。

その他、困ったらTwitter社が公開しているブートストラップを使うのもお勧めです。

ブートストラップcssフレームワークで、簡単にシャレ乙なデザインに仕上がります

超便利!Twitter BootstrapでさくさくWeb開発

http://blog.asial.co.jp/887

どうしても自分イケてるデザインが出来ないと思ったら、友だちに頼んだり、SNSコミュで募集したり、

デザイン系の大学専門学校掲示板にビラを貼らせてもらったりしましょう。制作費が出せればランサーズで募ってもいいかも。

Lancers - 仕事フリーランス発注できるクラウドソーシングサービス

http://www.lancers.jp/

僕はたまたまフォトショップの使用経験があったので、ここにかけた時間は30時間ではなく5時間程です(トータル275時間で開発)。

後編はこちら

http://anond.hatelabo.jp/20120926165920

【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-22

留年たか他力本願ウェブサービス作った。

留年した上に、色々とどん底だったので引きこもりがちになった。

暇だったので、ウェブサービスでも作ろうと思いたった。

どうにか形になったので、誰かの参考になればと思い、その経緯を書いてみる。

■出来上がるまでのあらすじ

ウェブサービスを作るには、プログラムが書けないとダメらしいので勉強する事に。

主にPHP,ruby,pythonなんかがメジャーらしく、最近ではrubyが人気だと知る。

Ruby勉強しようかと思ったけれど、PHPのほうがオススメとどっかのブログに書いてあったのと教科書がたくさんあったのでPHP勉強することに。

「よくわかるPHP」みたいな入門書で一ヶ月くらい勉強して、ある程度は書けるようになった。

本格的なウェブサービスを作るにはフレームワークを使えと書いてあったので、cakePHP勉強した。

コントローラーとかビューとか、モデルとか意味不明過ぎた。

開発環境XAMPPというのをインスコしようとしたけれど、上手く行かず、結局レンタルサーバー上で作る事に。


HTMLとかCSSとか、1から勉強するといつまでも終わらない気がしたので、フリーテンプレートを探した。

http://cakephp.seesaa.net/article/20616700.html

ここのサイト無料で商用化だったので、それをちょっとだけ変更して使った。

考えていたウェブサービスTwitterつぶやき自動回収して検索できるというもの

自動回収するには、プログラムを定期的に動かす必要があり、cronと言うらしい。

LINUXとかの知識が必要と書いてあったが、LINUXなんてわからないし、勉強しようにも空いているパソコンなんてないので焦る。

その後、レンタルサーバーによってはcronの機能提供しているという情報を得る。

借りていたXサーバーにもその機能はあったので、書いたPHPプログラムを走らせてみたら、無事動いた。

後は、簡単にDBの仕組みと検索とページネーションというのを勉強した。

検索とページネーションを実現するのが、難しくてモチベーションが下がったけれど、プラグインという便利なものがあったのでそれを利用したらなんとかできた。cakePHPとかフレームワークプラグインが充実していると後で知る。

このまま公開しようかと思ったけれど、セキュリティ関係が怖かったので一通り勉強した。

ゆーすけべーさんのサイトに「安全Webアプリケーションの作り方」がオススメと書いてあったので、読んで実践した。

■完成

そして、なんとか完成したのが

@ごちです

というウェブサービス

http://gotidesu.com

Twitterから食事の記録が簡単にとれるというウェブサービスです。はっきり言ってウェブサービス(笑)程度の出来ですが、自分としては頑張ったつもりです。

製作期間は一ヶ月くらいです。

ずっと家にいて、試行錯誤していたので作業時間は一日8時間くらいです。

(後の時間キルゾーン3っていうゲームをしていました)

なので、8×30=240時間くらいで完成しました。

多分、一流のプログラマなら半日もかからないで出来るレベルしょうが自分では思ったより早く出来たような気がしています


勉強したもの(もう少し詳しく)

HTMLCSS

これは上にも書いた通り、無料テンプレートを使ったのでほとんど勉強していません。

ただ、テンプレートをいじくるのにも最低限の知識は必要なので「HTMLCSS辞典」みたいなのを買ってきてわからない事はその都度調べていました。

PHP

『よくわかるPHP教科書』というので勉強した後、『パーフェクトPHP』で勉強した。

あと、プラグインなんかについてはその都度、グーグル先生に聞いたり、プログラマブログを参考にさせてもらいました。

こことか、

http://torhamzedd.halteria.com/2012/01/cakephp20search-plugin2.html

こことか、

http://libro.tuyano.com/index2?id=734001cakePHPに関しては、ここが1番わかりやすかった。個人的に)


TwitterAPIについて

これもグーグル先生


MySQLとかのデータベースや、SQL文について。

『よくわかるPHP教科書』で最低限のもの勉強した後、グーグル先生を使って独学。


セキュリティ

安全Webアプリケーションの作り方」を読んで、自分の書いたプログラムをチェックしました。

フレームワークを使えば、(ある程度はフレームワーク側で処理してくれるので)初心者でも比較的簡単にセキュリティ対策ができるようです。



■偉そうにアドバイスなんかしてみる。

アドバイスなんて出来る立場じゃないけど、プログラムは最低限のものが書けて読めれば後は他力本願でなんとかなると思います

難しそうな事があれば、ライブラリフレームワークに頼ればなんとかなります

あとは、集めてきたライブラリなんかを切り貼りすればどうにかなりました。

後はわからない事はグーグル先生か、質問サイトで聞けば教えて貰えます

ただ、配列変数などのプログラムの基本的な仕組みを理解しないとOKwavweとかヤフー知恵袋でも解答をもらえないような意味不明エラーが出ます

基本的な文法エラー

http://jp.piliapp.com/php-syntax-check/

こういうサイトでチェックしていました。


エディタやなんかはvimとか高級な奴は多機能過ぎて意味不明だったので「サクラエディタ」を使っていました。

デプロイプログラムウェブ上に公開して使えるように準備することらしいです)も自動化するべきらしいのですが、普通にFFFTPで手動でデプロイしていました。


まったくプログラムがわからない状態から初めて一ヶ月ほどでそれっぽいものが出来ました。


ネット世界には自分みたいな初心者にもわかりやすく解説してくれている先輩たちがたくさんいます


最低限のことは勉強する必要がありますが、後はグーグル先生や先輩のサイトに頼れば思ったより早くいろんなものが出来ると思います


なにより、自分の書いたプログラムが動いているを見るとすごく感動します。


プログラム出来て幸せでした。

これから自分のペースで作り続けたいと思います

あ、よければ@ごちです使ってやってください。

http://gotidesu.com

2012-07-05

http://anond.hatelabo.jp/20120705143656

Controllerが何かというのは、ここでは単にRailsとかCakePHPとかのウェブアプリケーションフレームワークのControllerのつもりです。

ウェブアプリケーション場合処理の結果に応じて画面にいろいろ表示しないといけないわけですが、その画面表示の部分(表示するViewの選択とか、表示するメッセージの設定とか)はControllerに書かないといけないわけですよね。

そうすると、Modelで何か起こったときにControllerにそのことを通知して、それに応じたViewへの仲介をControllerに書かないといけないのですが、これがめんどくさいわけです。

正常系だけならいいですけど、途中で異常が起こって処理が中断されるなんてところを考えると、その部分を全部Model→Controller→Viewの2段階で書くのが大変に感じてしまって。

処理をControllerにベタ書きしていれば、そこで直接Viewに処理を渡せるわけですからね。

2012-04-25

無職が一ヶ月かけてWebゲームみたいな奴を作った

Webゲームっていうか、ブラウザ上で動くような奴。PHP(5.3)で突貫工事したので、ペラペラな感じだけど、なんとか公開できて、たまに遊びに来てくれる人がいて(一時はVIPに募集スレも立ったらしい)、何戦かして帰っていくので、とりあえずサーバー代を払った価値くらいはあったかなーという感じ。

で、どういうゲームかっていえば、人狼みたいに「陣営に別れて、決められた目標クリアするゲーム」です。

レジスタンス』っていう卓上ゲームというのかな?それを参考にして作りました

レジスタンス・チャット

ちょうど開発してから、一ヶ月程度になったので、宣伝をかねて、現状みたいなのをメモ

俺のスペック

一応、前提としては、Pythonだったら、何かしらのシェルプログラムを書いてcronしてるけど、それ以上のことはしていない程度の、技術ワナビー

ほぼ業務経験なし。継続してスクリプトを開発したのは、今回が始めてという感じ。

作ろうと思ったきっか

単純にPHPで何か作りたいなーと思ったから。一度はPHPを書くべきだなあと思ったりした。それで、何かいい題材ないかなーと思って探してた。

「昔、人狼BBS遊んだとあるなー、でも同じ人狼ゲームを作っても芸が無いしなー」と考えていたところ、知人と遊んだレジスタンス』ってゲームにピンと来て、「こういうゲームWeb上で遊べたらいいかな。調べたところ、Web上でも人狼っぽいって言われるし、上手くそういう層にアピールできそう」ということで作り始めたのでした。

反省

綺麗なコード意識する

はいえ、最初は勢いで書き散らしたので、本当にClassとかまったくなかった。それを徐々に整え直して、なんとかファイル分割できるようになった。それでも、全く足りない。具体的には下のような部分が汚い。

MVCをちゃんと意識する

本当はCakePHPとかそういったフレームワークを使えば良かったんだろうけど、「重いんだったら仕方ないしなー」というわけで、フレームワーク無しで使ってみたんだけど、結果として表示部分にやたらと処理が入って醜いったらありゃしない。

表示部分と、実際のシステム部分はわけられるべきだし、フレームワークを使わないまでも、そういう風な機能分割は必要

そうなるとある程度までは綺麗なコードになるような気がする。

で、そういうコードを書いたせいで、下のようなことが起きる。

テストは丁寧に書いておく

PHPUnit使ってユニットテストは書いているんだけど、まったく足りない。

全部グリーンにはなるんだけど、実際に動かしてみるとバンバンエラーが出る。

幾つかの関数テストを先に書いたりしたんだけど、表示部分とかは「ここテスト書きにくいから誤魔化しちゃえー」といって書いたりした。

で、何が起きるかっつーと、リファクタリングするときガンガン機能が落ちる。そして死ぬ

さすがに一つのClassが1000行くらいになってきたので「うっわー、これは駄目だわ。分割するべき」って、ゴミみたいなコードに手を入れ始めるんだけど、全く歯が立たない。

とりあえず、既存テストグリーンになるけど、どこかで処理がつまづいているという状態でこれは駄目。

「うわ、この部分、テスト書きにくい!」って思った時点で、何かを嗅ぎつけてちゃんとテストに落としておけばよかった、と反省することしきり。

結果として手作業で複数ブラウザ起動して……みたいなことになっちゃう。バグの温存。

楽ができるならば、楽をする

CSSとか勉強のために、自分で1から書いているけれども、これは本当にだるい

知人から、綺麗にコードが書けるから、と薦めてもらったSaSSを使っているけれども、なかなか綺麗にできない。

一応、Twitter BootStrapは知っていたけれども、それに頼るよりは一から書こうと決心して書いたためか、ようわからないし、デザインとしてもこなれていないために気持ち悪いことになっている。

上記のフレームワークについてもそうだけど、流行っているものには、それなりの理由があって、それをわざわざ避けても、結果として、それ以上のものは(素人に毛が生えているくらいでしかない以上)ならないような気がする。

ならばとっととそういうものを使って、さっさと済ませてしまえばよかったなーと思ったりした。

ゲームという性質である以上、どんどん情報量が増えていくために、そういうのを表示しまくっていると、本当に画面がぐちゃぐちゃになる。

ユーザーインターフェイスまじで苦労する。

セキュリティー……

セキュリティーには本当手をつけられていない。(徳丸本読めという話になると思う)

ドキュメント……

(略)

一ヶ月間続けてみてよかったこと

で、本当にボロボロになりながら作ってみて良かったことをメモしておく。

単純にプログラミングって楽しいよね

自分は割と現実逃避の為に何かに没頭することがあって、その逃げ先としてプログラミングっていいなあと思ったりした。

あと、自分が書いたコードがヒョコヒョコ頑張っている姿をみていると、すごくかわいくなる。形にもなるし、「こういうものを作ったよ」とも言える。それは単純に楽しい経験

自分が作ったものが単純に楽しい

元々、自分が好きそうなものから題材をピックアップしただけあって、自分が作っているものが、自分が一番愛用しているというのは幸せなことだなと思う。

自分が楽しむためのものから自分が一番のユーザーであるし、自分が快適に使いつづけるために改良を続けてる。

から「こうしたらいいんじゃないの?」というのも勉強になるし、自分がちゃんと&楽に機能拡張できるように、ちゃんと勉強しようとも思う。そういうのは本当にいい循環。

使ってくれる人がいる

大抵は、自分が使うから自分だけのものだったので、あまり他の人が使ってくれることを期待していなかったんだけど、今回のは、ときどき遊びに来てくれる人が居る。

例えば、VIPスレが立ってたり、あるいはニコニコ生放送プレイ実況を配信してくれたり。

割と「くっだらねー」と思うけど、一人で細々と開発していると、そういう些細なことが嬉しかったりする。

なので、ついついみてしまったり、場合によっては、プレイしているところをいつまでも一緒に徹夜して観戦していたりする。人のプレイしている姿が楽しいというのも、自分が作って良かったなあと思う。

逆に言えば、使ってくれる人がいるからこそ、一ヶ月間開発が続いているようなもので、「ああ、自分プログラムで楽しんでくれる人が居るんだな」という手応えみたいなものが、モチベーションになっている。

遊んでくれる人が見えるというのは、自分にとっては、モチベーション維持に大切になってる。

今後として

だいたい三日坊主で終わっている自分としては、開発が長く続いているほうだと思う。

目指すところは、もっと綺麗なソースコードにして、Githubで公開すること(いや、もうアカウントは既に持っているんだけど、公開するのは凄く恥ずかしい)。

まだまだ勉強することが多いなー、というわけではてブPHPの記事をあさったりしているところです。

2012-01-18

Python vs Ruby vs PHP vs Haskell プログラミング言語バトル part1

 

42 : デフォルト名無しさん : 2011/11/12(土) 23:53:51.20

Pythonの方が弄れる対象が多いのに、なんでウェブ系だとPHPの方が流行ってんだろ

端末からテキスト処理も楽だし、数値計算周りのライブラリも充実しているのに

PHPが優遇されているのって歴史的な経緯以外に何か他の理由でもあるのか?

けどまぁ、情弱文系SEが大半を占めているバカだらけの日本じゃ別にPHPで困ることもないか

45 : デフォルト名無しさん : 2011/11/13(日) 01:41:24.25

数値計算や端末からテキスト処理なんてWeb系じゃ大して使わないからなあ…

43 : デフォルト名無しさん : 2011/11/13(日) 00:04:23.30

PHPが未だに現役なのは、単に歴史的な経緯でしかないだろ

Pythonに関しては、ZopeさえコケていなければWebサーバLLとして大成功していたはずなのに、

Railsなんかが登場したおかげで、すっかり影が薄くなってしまますた....

44 : デフォルト名無しさん : 2011/11/13(日) 00:49:55.28

zopeってコケてたんだ

ってか、railsインスパイアされたフレームワークって今じゃ幾らでもあるよね

djangoとかCakePHPとか。rubyってRoRを使いたいユーザを除くと、

pythonPHPの方がユーザー数は圧倒的に多いと思うんだけど

本家railsって、他を遥かに越えるほど良いものなんだっけ?

48 : デフォルト名無しさん : 2011/11/13(日) 08:30:25.68

44

Zopeが登場した当時、RDB+PHPはもう古い、これからOODB+ZopeWebの中軸になる!」

さかんに宣伝され、雑誌でもZope特集が組まれていた

 

少なくとも自分ZopeからPythonという言語を知ったし、その時点でRubyは知らなかった

そして、その後のORM(RDB)+Railsの出現と華々しい革新性への注目は、誰もが知っているだろう

今でもZopeの開発は継続されてはいるが、結果的に当初の期待が大きく裏切られたという事実は動かしがたい

 

djangoCakePHPについては実際に触っていないので憶測になるが、おそらく技術水準ではRailsと同等だろう

しかしRailsはRailsコミュニティの活動が活発だし、その進化は異常に早い

 

Railsに何か致命的なトラブルが発生して開発が停滞する、あるいはdjangoCakePHPから

何かのイノベーションが提示されでもされない限り、後発のdjangoCakePHPRailsに追いつくのは無理

Railsは決して技術的に完璧Webフレームワークではないんだけどね....(たとえばSeaSideのような.... )

 

からこそ「もしもZopeが....だったなら」という「たら・れば」感はPythonコミュニティの潜在認識になっている

51 : デフォルト名無しさん : 2011/11/13(日) 12:55:40.83

 C a k e P H P は う ん こ   

遅い、設計が古い、動作がおかしいの3重苦

日本では流行ってないけど海外だとYiiが流行ってきてる

55 : デフォルト名無しさん : 2011/11/13(日) 17:31:12.14

CakePHP使ってんの?

可哀そうにw

53 : デフォルト名無しさん : 2011/11/13(日) 14:44:48.55

求人PHPばかりだからPHPやるしかないだろ。

57 : デフォルト名無しさん : 2011/11/13(日) 19:34:04.95

でもやっぱりいつもの使い慣れたLL(Python/Ruby)で

Webサービスを書きたいってのがある

73 : デフォルト名無しさん : 2011/11/15(火) 17:32:46.07

アメリカ言語ユーザー数は

Python>>>>>>>>Ruby

求人数は

Ruby on Rails>>>>>>>>Django

http://www.indeed.com/jobtrends?q=django%2Cruby+on+rails&l=

どういうことなの?

74 : デフォルト名無しさん : 2011/11/15(火) 17:48:15.59

RubyRails以外に使い道がないか

75 : デフォルト名無しさん : 2011/11/15(火) 17:54:35.50

海外ではRubyは昨今のRailsバブルのお陰で

もはやWebスタートアップ共通語になってるらしいからね

求人数が多いのはそのためだと思うよ

76 : デフォルト名無しさん : 2011/11/15(火) 18:03:23.05

なんかのミスかと思ったがアメリカでもRuby on Railsは人気があるのかなあ・・・

Pythonのほうが使いやすいと思うのだがフレームワークRailsが優位なんだろうか

77 : デフォルト名無しさん : 2011/11/15(火) 18:23:14.33

Djangoは周辺ライブラリ微妙だし本体も鈍くさい感じがする。

でも、FlaskはSinatraより好きだからPythonが嫌いってわけではない。むしろ好き。

 

ただ、いざ作り始めるとやっぱりRailsが楽だなあってなって、Railsを使い続けている。

78 : デフォルト名無しさん : 2011/11/15(火) 18:38:46.28

同感だ

同じように思っている人が他にもいて安心した

79 : デフォルト名無しさん : 2011/11/15(火) 18:54:37.13

PHPJavaScalaには

Railsみたいなフレームワークあるのに

Pythonはいいのないんだよな

80 : デフォルト名無しさん : 2011/11/15(火) 21:19:09.89

PHPフレームワークが乱立しすぎているから、RailsPHPで実装してみようというやつが出てきた。

Scalaも注目されだしたのはつい最近のことだしな。

それに比べてPythonは、Zopeというデファクトスタンダードが既に存在していたけど、

つの間にかフェードアウト

ただ、どうやってもRailsもどきRailsを超えることはできないのは間違いない。

83 : デフォルト名無しさん : 2011/11/15(火) 21:25:38.55

パクリオリジナルを超えられない(キリッ って定型句だけど、

これってキリッって言いたいだけだと思う。

後発品が先に出たものを超えたものなんていくらでもあるから

84 : デフォルト名無しさん : 2011/11/15(火) 21:30:04.39

D言語って超えたって?

85 : デフォルト名無しさん : 2011/11/15(火) 21:31:12.00

B言語って超えたって?

86 : デフォルト名無しさん : 2011/11/15(火) 21:53:33.76

でもRailsRubyの黒魔術を使いまくりから

PHPで同じ事をできないわけではないだろうけど、Ruby on Railsほど簡潔にはできない

90 : デフォルト名無しさん : 2011/11/15(火) 22:50:07.81

スタートアップなんて根無し草の集まりにとって、

googleが囲った言語coolさを見出せないんだろ

123 : デフォルト名無しさん : 2011/11/20(日) 11:32:16.79

まあくだらねえWEBサービス作って喜んでる情弱は早く死ねって事だよ

91 : デフォルト名無しさん : 2011/11/15(火) 22:52:42.98

そういう理由じゃなくてRailsのほうが単純に情報プラグインも多いからでしょ

3 : デフォルト名無しさん : 2011/11/15(火) 23:07:07.67

linuxじゃデフォのツールなんだし、ツールとの連携を考えたらpython一択じゃん

わざわざ不合理で不完全な言語を使うなんて

社会からハミ出た奴らの精神的な作用によるものじゃないの?

95 : デフォルト名無しさん : 2011/11/15(火) 23:20:20.21

django情報プラグインが増えないという、

現実に対する鬱憤を吐いてるようにしか聞こえないな

もしも

linuxじゃデフォのツールなんだし、ツールとの連携を考えたらpython一択じゃん

真実であるのなら、今頃はdjango情報プラグインが溢れかえっているはず

104 : デフォルト名無しさん : 2011/11/16(水) 01:20:49.05

Python信者乙。

yumや、gdbgnome拡張pythonであるからといって、それをwebアプリでも使いたいと思う人は少ないというだけのこと。

ソースからインストールする必要があったとしても、web開発ではrubyを使いたいという人が多いというだけのこと。

94 : デフォルト名無しさん : 2011/11/15(火) 23:15:11.93

というか、世界中Pythonプログラマが Remeber Zope!! を合い言葉

打倒RailsたるWebフレームワークを開発しているはずだけど、

いまだにRailsを超えるプロダクトが登場しないのはナゼ?

Railsも登場してから、かなりの年月が経過しているんだけどなぁ....

その間にもRailsRails 3が登場して、REST/AJAXの強化等の進化継続しているよ

347 : デフォルト名無しさん : 2011/12/09(金) 10:16:35.22

Ruby では

ary.map {|x| x**2}

となるものが、Python では

map(lambda x: x**2, ary)

となり、lambda の本体が1つの式では表現しきれなくなると

def mapper(x):

.....

map(mapper, ary)

書き換える必要があります

348 : デフォルト名無しさん : 2011/12/09(金) 10:24:20.94

Pythonのlambdaを用いた階乗計算

f = lambda x:(x and f(x-1)*x)or 1

RubyにはPythonのように「lambda本体は式でなければならない」という限定がありませんから

andやorを使った不自然記述をしなくても

f = lambda{|x|if x == 0 then 1 else x*f.call(x-1) end}

または

f = lambda{|x|x == 0 ? 1 : x*f.call(x-1)}

と書けます。lambda内でreturnが使えますから、書きたければ

f = lambda{|x|if x == 0 then return 1 else return x*f.call(x-1) end}

でもOKです。

390 : デフォルト名無しさん : 2011/12/10(土) 15:35:41.62

348

これはPythondisっているように見せかけてRubydisっているのか? と一瞬思ってしまったw

だってRubyのほうが長くない?CLのfuncallみたいなcall()がちょっとうざいし…

そしてどっちもlambda式の中で束縛変数名前再帰可能、と

350 : デフォルト名無しさん : 2011/12/09(金) 11:12:13.28

要素に対する関数適用と、抽出を組み合わせる場合

Python

print [x*2+100 for x in [1,2,3,4,5] if x > 2 and x < 5]

暗号のように見える。

Ruby

puts [1,2,3,4,5].select{|i| i > 2 and i < 5}.map{|i| i*2+100}

思考の流れと、コードの流れが一致しているので書きやすい。

351 : デフォルト名無しさん : 2011/12/09(金) 11:22:55.04

だれだPythonなら書き方はひとつとか言ってるのは

map(lambda x: x*2+100, filter(lambda x: x > 2 and x < 5, [1,2,3,4,5]))

354 : デフォルト名無しさん : 2011/12/09(金) 12:22:07.37

pythonて可読性が高いのをうたってる割にはそこいまいちだよね

353 : デフォルト名無しさん : 2011/12/09(金) 12:10:08.46

Ruby場合には、左から右へと無名関数データフローあるいは

パイプラインのように並ぶからコードが読みやすい

 

関数型プログラミングに不慣れな初心者でも、参照透明性のあるコード自然に書ける

プログラマにとって優しい or プログラミングの楽しさを教えてくれるのがRuby

 

それと比較すると、Pythonコードは、関数型プログラミングというもの

いかに高度で難解なものであるかという事をもったいぶってプログラマ押し付け

 

もしもPythonしか知らないプログラマであれば、関数型 = 難解 という印象を持つだろう

356 : デフォルト名無しさん : 2011/12/09(金) 12:53:45.66

階乗計算くらいだと単純すぎて、ナゼ重要なのかが分かりづらいと思うのでコードで示す

result_list = source_list.map { |elem|

  x = foo(elem.x)  # ここが局所宣言を書く部分

  y = bar(elem.y)  # ここも局所宣言の続き

  x + y       # 最後に評価された式の値が、無名関数のリターン値になる

}

Rubyでは、map等に与える無名関数の中で局所的な環境(クロージャ)が作られるから

x = foo(...) のような代入文がいくつでも(= 複雑な処理でも)書ける

このポイントは、実用的なプログラム関数型風で書こうとした時に、威力を発揮する

357 : デフォルト名無しさん : 2011/12/09(金) 12:59:21.07

余計分かりづらくなった

358 : デフォルト名無しさん : 2011/12/09(金) 13:17:26.54

リスト内包表記が暗号みたいと言ってる奴は

高卒ドカタなんだろうなぁと可哀想になる

大学数学に触れる機会があれば

集合の表記に似せてることが分かるから

386 : デフォルト名無しさん : 2011/12/10(土) 01:41:34.46

数学とかで慣れてるし区切りが関数のがわかりやすい

359 : デフォルト名無しさん : 2011/12/09(金) 13:46:31.97

355

map/filterはfor/ifと同じだと言っているだけだから、難解という印象は持たない。

関数型プログラミングに慣れた、あるいは得意な人であれば、そういった印象なんだろね

Rubyの魅力はこれから関数型プログラミングを学ぼうとする初心者、 あるいはそんな初心者へ教える立場から見た、優しさ or 分かりやすさなんだ

360 : デフォルト名無しさん : 2011/12/09(金) 13:53:28.85

Rubyだと直感的に書けるコード

[1,4,3,2].sort.reverse.map{|x| x.to_s}.join('-')

Pythonだと読みにくい。

'-'.join(map(str, reversed(sorted([1,4,3,2]))))

361 : デフォルト名無しさん : 2011/12/09(金) 14:07:17.88

360

Pythonでは思考の流れと一致しないばかりか、「カッコだらけ」のコードになると.....

364 : デフォルト名無しさん : 2011/12/09(金) 14:28:55.99

カッコだらけのコードを分かりやすくする基本的な方法静的単一代入じゃないか

Rubyのやり方は基本ではなく玄人のやり方だろ

372 : 369 : 2011/12/09(金) 16:21:03.82

Pythonでは組み込みの型でメソッドチェインはやって欲しくないな

listにmap,filterメソッドができたとしても、

似たようなコレクションtuple,deque,array,queue等にも同じメソッドが必要になってくるし。

シーケンスプロトコルの利点が活かせない。

383 : デフォルト名無しさん : 2011/12/10(土) 01:17:28.39

372

外部のライブラリでも列挙可能なものは、たいていEnumerableモジュールをimportしてます

Rubyユーザーは列挙可能なものmapselectできて当然だろって思ってる気がしま

377 : デフォルト名無しさん : 2011/12/09(金) 18:41:51.79

Pythonは「何かを便利に書くためのしわ寄せ」をはっきり寄せてくる

得意と不得意を言語レベルではっきり主張するのでメリケン好みと言えなくもない

Rubyは全方位になんとなく八方美人なので、全体的になんとなく書きやすくてなんとなくキモくて遅い

379 : デフォルト名無しさん : 2011/12/09(金) 18:48:52.27

Pythonユーザー調教っぷりは異常

「書きにくいってことはその処理に向いてないってことだから諦めろ」を地で行く

387 : デフォルト名無しさん : 2011/12/10(土) 13:40:40.74

リストの内包表記はシンプルに書けるときは使うけど

基本その場でdefするのがPython風なんだと思う。

389 : デフォルト名無しさん : 2011/12/10(土) 14:40:31.04

無名関数が文を使うほど複雑なら名前を付けるのが Python 流と想像

384 : デフォルト名無しさん : 2011/12/10(土) 01:23:49.48

outer(center(inter( arg )))

これを読みづらいと感じるのは、左から右に流れる

日本語文に慣れているからだと思うが、

もしかしてアラビア語ネイティブな人からすると逆に読みやすいのか?

385 : デフォルト名無しさん : 2011/12/10(土) 01:34:57.89

なるほど、ということは右から左、左から右どっちでも行ける言語が最高ですね

F#パイプライン演算子最高ということで

ログイン ユーザー登録
ようこそ ゲスト さん