「Python」を含む日記 RSS

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

2013-03-24

ついに顕在化しはじめた「kwatchリスク

界隈ではかなり前から Python界の perlcodesample こと @makotokuwata のリスクについて語られていたが、いよいよ具体的な弊害が出て来ているようなので、かいつまんでメモ

https://twitter.com/makotokuwata/status/315510592171556864

この人、「HaskellDBはORMより素敵!」「ORMと全然違う!」と言ってるけど、ActiveRecordすら知らない可能性でてきた。まあ、なんだ、Javaしか知らずに「静的言語はクソ」と言う人もいる世の中だし、最近のORM知らずにORMより凄いと言う人がいてもおかしくない。

まあその通りだ。しかし、次のツイートを見れば完全に自己矛盾しているのがわかる。

https://twitter.com/makotokuwata/status/315477530759016448

HaskellerではないのでHaskellDBのページを読んでもよくわからなかったので、解説をお願いしま

HaskellDBのことを知らずにORMの方がすごいと主張している訳だ。口が悪いだけで、ほんと話にならない。

この人はkwatchでググればわかる通り大昔から perlcodesample 的な振る舞いを続けていた人だ。他人の意見を聞けない視野の狭さとか、独善的な振る舞いなど、共通点は多い。インタネット黎明期にはこういう知識が中途半端にあって調子に乗ってしまう人は他にも多かったので別段珍しい訳でもないのだが、この人のプロフがほんとの意味でのリスクだ。

https://twitter.com/makotokuwata

Pyを広げるのに熱心なだけの人間

いや、この人別にPythonメインストリームにいないし、迷惑。本当にPythonを広めたいなら、プロフィールを「Perlを広げるのに熱心なだけの人間」に変えて欲しい。

2013-03-09

Pythonと他言語比較

2013-03-08

「なあ好奇心で聞くんだが……DIO。

 君が出会ったプログラム言語の中で…一番不便な言語って…どんなヤツだい?

 君が今まで世界中から探し求めたヤツでもいいし…

 新しく開発させた言語でもいい…」

「どんな者だろうと、人にはそれぞれ、その個性にあった適材適所がある。

 王には王の……料理人には、料理人の……それが生きるという事だ。

 プログラム言語も同様、便利不便の概念はない。」

質問が悪かった……子供が遊びで話す

 『PythonRubyはどっちが便利?』

 そのレベルでいいよ。」

Brainf*ckと名付けた言語が最も『不便』だ。

 だが、手にあまる。」

Brainf*ck……名前は強そうだな。」

2013-03-07

http://d.hatena.ne.jp/perlcodesample/20130307/1362637020

同じレイヤー言語で考えると、PerlRubyPythonって書き方似ています・・・

C++とかレイヤーの違う言語を交えると、似ているとは思いますが。

Perlは詳しくないので「いや、ちゃんとこれはこういう利点があるんだよ!」っていうのがもしかしたら有るのかもしれませんが(あったら誰か教えてください)、他言語をメインに使っていてたまにPerlに触れる人間からすると互換性の問題とかは承知ですが、いい加減

use strict;
use warnings;

とか

my $hoge = 'fuga';

とかを態々書かなくても、defaultで強制させるべきかと...

そういう「これは書かなければいけない」というのを「態々書かせる」のがPerlにはとっても多く感じられます(他の言語にそういうのが全く無いとは思わないけど、Perlはこの3つの言語では特に多く感じる)。

Python2と3の互換性の話がありましたが、ある程度は(上手いこと)解決していくべきではないでしょうか?

だって、今だにuse warning;とかmyとか書かない人いるんでっせ・・・レビューでそういう点を潰しますけど)

↑のようなことをある程度の互換性を上手いこと解消して、Perlに慣れていない他言語エンジニアでも気持よくPerlを書けるようにならないと、本当にPerlが使わなくなっていくのではないかなぁ、、、と思います

また、どんな素晴らしい言語でも、書く人によってはどこまでも駄目駄目なコードが書ける訳ですが、Perlは(最もなんて言わないですが)駄目なコードの可読性が他言語よりも低く、保守しにくいと思われます

素晴らしいエンジニアが書いたコードは非常に良いのですが。。。

よく「Perlは書くのは良いけど、他の人の書いたコード読むのは嫌」っていう話を聞くのですが、こういうことから来ているのかな、と感じます

あと、

「何か目に見える統計情報がないと」

と仰るなら、

「またテキスト処理はPerlRubyに比べて2~3倍くらいは速いはずです。」

”はずです”、ではなくそれこそ目に見える情報を提示して欲しかったです。

注:僕は他言語に比べるとPerl力がかなり低いですが、Perl嫌いじゃないですよ(あ、お前は解っていない!そもそもお前の技術力が低いんだよ!っていう意見は当たりかもしれません)

http://anond.hatelabo.jp/20130307004741

python流行ってるとかw

じゃあjavac#生活必需品レベルになってるなw

pythonなんてやってるやついねーよw

なぜ国内Perlが急速に萎んだのか

2005年 Railsの襲来

2005年に突如現れたRailsによって国内Ruby利用者が急増したのがPerl滅亡への第一歩となった。書きやすさに作者がとことんこだわって作られたRubyの魅力を一度知ってしまうとPerlの古くさく読み辛く書き辛い文法に誰もがうんざりし始める。

2007年 JavaScriptブーム

Ajaxで再発見されたJavaScriptのブームもPerl終焉に若干ながら貢献している。ブラウザというPerlが全く手を出せないジャンル王者JavaScriptの持つ華やかさに誰もが憧れ、そして手元のPerlの古くささに反吐が出始める。不器用で不細工なところも含めて愛していた女房とつつましく送っていた人生に、突然ぴちぴちボイン女子大生が転がり込んで来たようなものである

スマホ/ソーシャルゲームバブル

iPhone市場が本格的に立ち上がり、Perlとは全くの無関係であるスマホアプリ全盛期がやってきていよいよPerl滅亡へのカウントダウンが始まった。そして極めつけはソーシャルゲームバブルである。ここでもPerlかい言語は全くの蚊帳の外で大絶賛凋落中。

2012年 ビッグデータ/Hadoopブーム

Perlなんぞ全くお呼びでない世界の話。段々とwebテクノロジー世界に高度な数学的知識を持ったアカデミック層が跋扈しはじめ、専門学校プログラミング言語を学んだだけの人間ハッカーなどと名乗ると恥ずかしい時代になってきてきた。

2013年 Pythonの本格的な浸透

遂にPerlにとどめを刺したのはPythonである守備範囲は当然ながらPerl駄々被りで読みやすく書きやす世界的なシェアうなぎ上り。完全にPerlが不必要な世の中になってしまった。

結論

2005年までのPerlはまさに我が世の春を謳歌していたが今や目も当てられない惨状でプログラミング言語シーラカンス・COBOLとすら比較され出す始末。昔Perlの人として売り出していたハッカーも、いつのまにかPythonの人になっているケースも海外では多い。10年でここまで時代は変わる。今のメインテクノロジー明日は我が身だ。小手先技術に乗っかってモダンだのハッカーだの聞こえのいい言葉を汚い口でまき散らして消えて行ったPerlエンジニア達の死を無駄にしてはいけない。変化の速い時代に生きる我々に必要なのは本質を学ぶ事だ。コードの書き方とかどうでもいいんだ。もっと1020年たっても色あせない情報工学を身につけなければならない。

2013-02-28

http://anond.hatelabo.jp/20130228002211/

個人的にはPerlの後継がPythonRubyPHPに枝分かれしたことの方が100倍は苦痛なんですが…

あ、記事の内容については、最後の行を除いて同意です。PerlCOBOLみたいな生き残り方をするよ。

ついに顕在化しはじめた「Perlリスク

英語圏ではかなり前からPerlで開発し続けることのリスクについて語られていたが、いよいよ具体的な弊害が出て来ているようなので、かいつまんでメモ日本でもそう遠くない未来だと思う。

若手エンジニアの不足

Objective-Cのように需要が逼迫しているのに人材供給が増えず需給ミスマッチが起っているわけでは無く、需要供給も減るという状況下でわずかだが需要が上回っているとう性質の悪い状況がPerlに起きている。特に深刻なのは安価な若手エンジニア採用絶望的に難しいという現実だ。Rubyが台頭して数年経ちPythonメインストリームの先頭を突っ走る2013年において新しくPerl勉強しようとする若者はよほどの物好きしかいない。30~40歳Perlエンジニアを雇うのはそれほど難しく無いだろうがコストがかかる。安価20代前半の若手エンジニアを雇いたいという企業の思いとは裏腹にPerlを新たに学ぶ若者絶滅寸前だ。

とても優秀な若者雇用できるチャンスが巡って来た。採用担当者はこう尋ねる。「Perlは習得していますか?」「もちろんC/C++/Pythonはお手の物です。Javaもある程度可能です」「もう一度伺いますPerlは習得していますか?」「申し訳ございません 未習得です」

悲劇だ。

イノベーションの枯渇

もう何年もPerl界隈で新しいモノが生まれたと言う話を聞かない。こんな事を言えばPerlハッカー激怒するかもしれないが、しか現実RubyPythonJavaに比べればこの10年の間にPerlから生まれたものは微々たるものだ。何かしらのライブラリにしてもwebフレームワークにしても、ハッカーが新しいモノを試す土俵はいつもPythonRubyJavaが選ばれて来た(もちろんC/C++もね)。

もはや彼らがPerlを選ぶ理由はただ一つ「今Perlで開発しているから仕方なく」

最低の理由ではないだろうか。

10年前にPerlで開発していた企業最先端を走っていた。迅速に自らのアイディアを具現化するツールとしてPerlは最適だった。それが今やどうだろう。自分たちの書いたコード保守し続けなければいけないという理由「のみ」でPerlを使い続けている。他に理由など無い。Perlで開発する理由は自分たちの過去仕事保守しなければならないという理由のみだ。

控えめに言っても、そういう企業未来は無いと思う。過去とは決別し、10年後の自分たちにとって最適な選択をすべきだ。今すぐにだ。本当に手遅れになる前に。

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-14

http://anond.hatelabo.jp/20130213233452

スキルがなけりゃポスドク風情じゃまともな転職もできねーよ。甘ったれたこと言ってるんじゃねえ。分かったら明日からCodecademyでJavaScriptPython勉強でもしろ

2013-02-07

黒歴史原体験

IT土方自分が初めてプログラムなるもの体感したのは、中学校の授業だった。

当時は5インチフロッピーが主流のパソコン上で、BASICを走らせたらそれが妙に面白くて、時間を忘れて夢中になってしまった。

原体験というのは恐ろしいもので、今振り返ってみればそのときの体験が、その後の人生に計り知れない影響をもたらしたわけだ。

例えるなら、あやとり拳銃早撃ちに目覚めたのび太感覚だろうか。

開発者社会的地位は「コード書けるだけで何が偉いの?何が凄いの?」という微妙ポジション(国家資格でもコード書き方面の高度区分は組み込みだけというのが現状をよく表している)で待遇微妙だが、それでもプロコード書きは自分にとって天職だと思うし、そうなってしまったことにあまり後悔はしていない。

山下清じゃないけど「まあ仕事だしな」で過ごしたり過ごさなかったり。コード書き以外は何をやっても全然ダメだけど。


とまあ、これだけで終われば満更でもない思い出話なのだが、正直、初めて触れた言語BASICだったことは、自分にとって黒歴史でもあったりする。

かつての自分と同じようにBASICプログラムに興味を持った人に「あんなのはダメ」と頭ごなしに言うつもりはないけど、もしBASICのBの字も知らない人であれば、今ならPythonRubyを、Linuxとセットで勧めると思う。

気がついたらCもJavaPerlもこなし、いつの間にかアプリシステムプログラミング経験していた自分からすると、それくらい、BASIC言語として拙いというのが実感なのだ

色々問題はあるんだけど、一番はプログラムに対するスタンスを誤解してしまう所。

あれを最初にやると高確率で「プログラミングなんて、その場で出来る範囲で適当に書いときゃいいんだ。なんつってもノリが大事なんだから、うるさいこと言って神経取られちゃダメだ」という恐ろしい考えが身についてしまう気がする。

だってかなりいい加減に書いても、それなりに動いちゃうから。人は大抵易きに流れるので「これでいいのだ」になるのが自然というか。

更にこれがVBだったりすると、MSの用意した機能だけしか使えない人になるだろう。もっとヤバい気がする。


ともかく自分はそうやって身についた悪習慣が祟って、折角大学で習った知識はまともに身につかず、就職後にOJTを通して自らを叩き直すハメになった。

勿論これは自力じゃなく、当時のメンターの驚異的な忍耐力を以てなされたことであり、今でも頭が上がらない。

全く遠回りをしたもんだと思う。

今でも周囲のVBしか業務経験ない人のコード品質は基本的に低い。某掲示板ではVB厨という言葉があるらしいけど、そういう蔑称も仕方ない気がする。

まあ自分場合、当時はBASIC以外の教育用言語といったらPascalくらいしか無かっただろうし、振り返ってどうにかなるもんでもないし。


それでも「自分最初に触れたのはBASIC」とは、恥ずかしくて中々言えなかったりする。

2013-02-06

もしプログラミング初心者新人に基礎教育を施すなら

オープン系のデスクトップアプリ開発、Webプログラミングシステムプログラミングを仕事にする人向けとして考えてみた。

学習環境Ubuntu Linuxで、デスクトップ上のターミナルか、WindowsからTeraTermsshログインして行うことを想定。

なので前提知識としてLinuxabcくらいは教えておくとして、もし来年度やるならこんなもんかな。

結構分量多めだけど、これでも基礎の基礎に絞った感じ。


  1. Pythonで学ぶ手続き型プログラミング
  2. Javaで学ぶオブジェクト指向
  3. C言語で学ぶメモリの仕組み(主に配列ポインタ構造体関連)
  4. Perlで学ぶ文字列処理(正規表現ハッシュCGIを含む)

おまけ:Pythonで学ぶ関数型プログラミング


なお、上述のカリキュラムでやらない言語(VBjavascriptC++Objective-CC#PHPRubyなど)やWebフレームワーク(DjangoRuby on Railsなど)は、全てこれらの応用で覚えられると思うので、基礎教育終了後に各現場にてOJTで習得してもらう。

IDEも使わないけど、はじめの一歩で軽量エディタ+コマンドラインをやり込んでいれば正直どうにでもなるので省略。

あと最後がおまけ扱いな上にLISPで学ばないのは、要するに「リストすげー!超すげー!!」という感動を胸に今後も頑張ってもらうのが狙いなので(だって現状使う機会殆ど無いし)、最初にやって一番手に馴染んでいるツールで、理解のコアになる部分にサクッと触れて欲しいということ。


ちなみに来年度、自分教育係になる可能性は今のところ無い。

2013-02-05

Perlそんなにダメかなあ

言語なんてツールの一つに過ぎないし、ツールなんて適材適所という前提で書いてみる。


PerlC言語Javaとともに、自分にとっては原点とも言うべき言語で、今は全く使ってないけど、昔はとてもお世話になった。

今更書くまでもなく文字列処理やハッシュが強力で、あんな便利なものはないという感じ。

少なくともPerlのないLinux/UNIX環境なんて死ぬほど使いにくいだろう。というか実質不可欠だろう。

書きやすいけど読みにくいのが玉に瑕で、間違っても最初に覚える言語ではないけど(書き散らかすクセがつくので)。


でもPerlは、C/C++バリバリ古参プログラマでは嫌っている人が結構多い。なんでかなあ。

最近ではPHPPythonなど、Perl以外のLLから微妙な感じで見られている。

確かにCでも文字列処理は可能だけど、Perlに比べたら機能的にとても貧弱だし面倒。だからちょっとした作業なら間違い無くPerlのが楽。

PHPWeb方面ではPerlより手軽だし、Pythonシンプルかつ見た目もスッキリ初心者には一押しなんだけど、それでもPerlの書きやすさにはまだまだ及ばないと感じる。


というわけでC同様、今でも決して色褪せないし、これからもあって欲しい言語なのだが。

2013-02-03

無能な僕がプログラミングをやろうとした理由

臓疾患持ち、身長170cmどまりの超低スペック高校1 年生です。

プログラミングに興味を持ったのは今から3年前の 12歳のときだった。

まだ、世の中がプログラミング教育必要だとか あまり叫ばれていないときの話だ。自分勉強も運 動もできない。いや、何もかも人以下だ。

からプログラミングという物ができれば、他の 人と同等、それ以上になれると思いJAVAの教本をアマ ゾンで買った。 がんばってサンプルコードを打って 動かした

しかし、なかなか身に付かない。

構造体?とかよく理解できないのだ。

僕は教本が悪いと思い評判のいい教本をアマゾンで 買った。 しかし、理解できない。次第にサンプ ルコードを打ち込むことが嫌になってきた。

まだ、僕は懲りていない。

今度は言語が悪いと思い始めたのである C言語の 教本を買った。

結局、続かず2ヶ月で挫折した。

父親は僕の本棚にいろいろな言語書籍が増えてい くのを見かねてPHPを僕に直接教え始めた。

PHPはなんとか理解する事はできた。

だけども、何も自分から作ろうなんて思わなかっ た。

プログラミングで何か作りたいなんてなかった。

取り柄が欲しかった。

そしてプログラミングを学ぶのを一時的に辞めた。

その間にもなぜかプログラミング言語の教本を買い 物中毒のように購入して行った。 pythonjavascriptlisp入門。

去年の1月にiPhoneアプリを作ろうかなとふと思っ た。mac book air書籍お年玉で購入した。

結局、挫折した。

自分プログラミングの本を購入する事しかできな い。金を使う事しかできない。プログラミングで何か したい訳でもなくただプログラミングが出来るという 取り柄が欲しかった。

7月に僕は絵が上手くなればとペンタブを購入し た。現在ペンタブクローゼットの奥に 眠ってい る。

結局、アニメをみてだらだらするしかできなかっ た。

2013-01-23

ソーシャルゲーム業界転職してちょうど2年

なんかソーシャルゲーム業界転職したい増田ホッテントリしていた。 http://anond.hatelabo.jp/20130122131752

自己回顧録みたいなものをつけたいと思っていたところだったので、なんとなくこの2年間について書いてみようと思う。

もともと、2年前に当時SIerに勤めてて、そこでSEとかコンサルとかしてたんだけど、会社経営が傾き始めたのがきっかけだった。

当時勢いのある(今もかな)ソーシャルゲーム業界にしたのは、単に元々Web系やってたし、勉強会だとかやってるっぽいし、花形っぽいし…みたいな。まぁこのへんの気持ちはIT系の人ならなんとなく分かってもらえると思う。

その頃は「今までやっていた官公庁大企業向けのコンサル事案と比べたら格下だな」と思っていたところはある。正直、今も社会的地位みたいなものだと格下だと思ってる。

2年経過して、色々な人と交流して思うことは、やっぱすげー人がいっぱい居る。反面、どーでもいい人もいっぱい居る。

なんか元増田の人の言ってるgloopsの人にも何度もあったことがある(仕事でも勉強会でも)。

普通にすごい人もいるし、なんか普通の人もいる。

実のところ全然つかえねーーーーって人も居るよ。

オチャラケてるっぽいけどすごい人ってのはいるけど、しっかりしててすごい人ってのはあんま見たことがない。しっかりしててすごい人はむしろ大企業系のほうが見たわ。あくまで俺の観測範囲。

以下おおざっぱな感想。個人名は避けて会社名にする。

ドワンゴの人はなんか楽しそうだし非リアっぽくて親近感だった。

グリーの人は割とさわやか系が多い。というかあんまり変な人が少なかった。

アメーバの人はなんか公共系SEのできる人っぽい雰囲気に近かったよ。もっとリア充ギャル男っぽい人だと思ったら全然だった。

でぃーえぬえーの人は数人しかあったことがないんだけどなんか雰囲気ちょっとこわいんだよなーみんな。

カヤックの人はいつもすごいと思う。追いつけねぇ。

UEIの人はなんかとんがってた。ってか最初性別勘違いしてた。

サイボウズの人とクックパッドイケメンだったわ…。

基本みなさんすごい人だった。

あと学歴なーーー!やっぱり学歴高い人とか見るわけですよ。東大京大筑波大。あとなんかMITとか海外大学とか。あと高専生か。

学歴高いとやっぱりすごい人多いと思う。

下品なのでちょっと親しくなると学歴聞いちゃうんですよ。あとfacebookとかもあるしね。facebook学歴見れるし。やっぱり頭いい…というか、頭よくてアクティブで社交性高めな人は学歴高い傾向あるよね。低学歴根暗で一芸のみ、ってヤツもいるけど(俺だわ)。

でもたまに学歴高いのにヤバいくらいダメな人も居たりする。逆も居る。まぁこれはどこでもいっしょか。

デキる人と勉強会とかで話すと楽しいし、名刺交換したときに「あー…(コンサル会社か)」な反応から「あー!(あのベンチャーで○○で有名な!)」みたいな反応になってくれるのは嬉しい感じです。

スライドとかも自社テンプレとかあるので楽しい。下手糞が頑張ってパワポでつくるよりずっといい。

あとデザインなー。前の会社でも自社プロダクトなるものがあってデザイナー発注してたけど、正直ショボかった。ちゃんとしたデザイン事務所発注した案件(他社案件コンサルしてた)は綺麗なんだけど。自社プロダクトは糞レイアウト…というか特徴なさすぎだったわ。良いデザイナによるデザイン主導が良いわ。

あ、あとこれはウチの会社だけかもしれないけど、イベント好きなエンジニアがいるので非技術系のイベントもしてたりして楽しいサバゲだったりスキーだったり釣り部だったりあるっぽい。オフィスケーキ作ったりとか。話し合う奴らとつるむ、って大学生のノリなんだけど。前の会社の同僚とかとはこんな感じじゃなくて、話を合わせるために合わせてるって感じでつらかったし、キュウべぇキグルミで出社なんか出来なかったし。

とまぁ良い点を適当に並べた。

悪い点:

・勤怠管理がひどすぎる。残業代の有無は会社にもよると思うが。多少出社しなくてもOKなんだけど、明確なラインがないから困るっちゃ困る。あと風邪ひいてんのに家のPCから会社につないで仕事するヤツとかもいるし。

時間ねぇー! 彼女作るひまもねぇよ! あっこれは時間あってもかもしれん。とりあえず前職の倍ぐらい働いてる気がする。明確に有給とったのもコミケの時とか母親が手術したときくらいか。土日祝も出たりしてるしちゃんと計算してないけど、めちゃんこ労働してる。

技術ついてけねぇー!なにそのRailsとか知ってて当たり前みたいな!知ってるっつーのはRailsActive Recordやらなんやらの実装とか、Railsライクな種々の実装とか、pythonで書かれたRailsっぽいフレームワークの実装状況とか、rakeとかえーと。まぁ色々。ちなみにうちの会社はいっさいRailsを使ってない。つまり自分が関わってない技術でも普通に語れ的な。JSフレームワーク20個くらい平気で使い込んで…というかソースまで読んでるくらいな感じの人がゴロゴロいる。20じゃ足りないかも。

ゲーム屋じゃねー! ソシャゲ業界はわりとWeb屋です。ゲーマーが1割いればいい方。俺はエンジニアなんでいわゆるそういう企画屋さんじゃないんだけど、ほんと非ゲーマー企画屋がズレたことを言ったりカネのことを言ったり平気でパクったりしてるのも見てる。ゲーマー系の企画屋はそれはそれで面白いけど、要するにソシャゲってゲーマーやんないしね?って感じだわ。 エンジニアゲーマー少ない。俺もゲーマーじゃないしね。元RO廃人だけど。 なので企画段階で蹴られるフレーズひとつに「それゲーマーしかやんねぇよ」ってのがよくある。 まぁでも流れはブラゲからアプリゲーになってきてるんで変わるかも。変わるといいね

・使えない人の立場がなくなってく感じこええええええええ!!! これは一番でかいかも。使えない人がホントに…なんというか。恐ろしい勢いで立場が悪くなっていくのを見えてく。口には出さないけど「あいついらねー」感がひどいし、俺もそう言うのを(昔は出さなかったし、使えないなりに使える余裕があったのに)だしちゃってる。

 つまりさ、高尾山ハイキングに行くなら、ハイヒールギャルがいても別に許すじゃん?おぶってあげたらおっぱい当たって嬉しいくらいの。

 でも富士山とか、登ったこと無いけどエベレストなんかに登るなら、そんなヤツがいても「今すぐ帰れ」以上には言えないわけじゃん。

 そんぐらいリリース速度厳しいし、そういう意味での余裕はない。

 まぁでも「○○ってフレームワークの実装が微妙に気に入らないので、新しく書きなおしてpull requestを送ったよ!」なんて仕事中にする余裕はあるので、これはなんつーのかな…。

・太った(重要



まぁでも2年経って、面白いしエキサイティングなのは間違いないと思う。

なにより、Creativeであろうと思うなら、Creativeな人たちと多く話さないといけない、と強く思ってた。Blogを読むのもTwitterで話しかけるのもGitHubでIssueやPull Requestを投げるのもいいけど、実際に会わないといけないと思ってた。勉強会に参加して、それはさらに強く思うようになってた。

現状、そういう人たちに囲まれてるし、何人か『○○さん(自分)に影響を受けました!』とか言ってもらったり、勉強会で発表した俺のセッションきっかけで話しはじめた人が弊社に入ってくれたりしてると嬉しい。

自分の作ったコードで遊んでくれたお客さんが居るのはうれしいもので、Muninのアクセス数見てニヤニヤしたり、自分の作ったところの課金処理が回ってる時は超テンションあがるし、何度テストコード走らせテスターさんに見てもらってても「うおおバグるなよおおおお」って神に祈ってしまう。

課金関連はお客様お金払ってもらうわけだから、何かあるとヤバいわけですよ…。

すげーーーー長文になったけど、まとめると、『自分と近い価値観の人と居ると楽しい』『俺より強い奴に会いに行く→(転職)→会った→コテンパン…だが負けてたまるかー!→そいつらに認められる→承認欲求がすごく満たされる!』『まだまだ強いヤツに会いたい』『(SIerでもだけど)自分の関わったプロジェクトお客様に喜ばれると嬉しい。怒られるとマジ恐縮』『当たるとうれしい。当たらないと悲しい。やめたくなる』あたりです。

「ソシャゲすごい好きだわーーー!だからこの業界楽しいわーーー!」って言ってるエンジニアは会った中では…5%くらいかな。1割くらい行くかな。廃課金じゃなくてもカジュアルに好き、って程度の人は3−4割は居る気がする。コンテンツ寄りの人は、やっぱ自分の作ってるものが好きじゃない人はうまくいってない感じ(逆にインフラとかフレームワーク周辺の人はあんまり関係ない感じ。インフラ系の人でも廃課金はいたけど)。

2年経って自分を見直すと、もしもソシャゲ業界っていうものシュリンクするなら、別の業界に移るとは思う。

技術的に楽しいとかそういうだけならソーシャルゲームにこだわる理由はないのです。むしろゲームなんて暮らしの役にはたたぬのです。クックパッドとか食べログとかのほうが役に立つし、ニコ生とかは政見放送までしちゃうのです。

ただ、やっぱり楽しいし、楽しませようって頑張ってるひとが多いので、今のところこの業界が好きです。

自分が作ったもので楽しんでくれたり、アツくなってくれる人がいたら嬉しいです。

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

2013-01-01

全てのwebエンジニアPython勉強するべき2013年到来

 

あけおめ!今年は巳年。へび。へびと言えばPython。そう今年は全てのwebエンジニアPython勉強する最高の環境が整った年なのです。

 

既にPerlRubyを習得してるけど、それに加えてPython必要

必要です!必要だと思います。もはやPythonwebエンジニアにとって必修言語となりつつあると思いますLinuxの多くの箇所でシステム言語として用いられ、可読性の高さから多くの技術書籍のサンプルコードとして用いられ、科学技術系分野におけるエコシステムの充実っぷりはますます磨きがかかっており、様々なライブラリがどんどん出てくる現状を「Pythonからいか自分には関係無い」と遠巻きに眺めるのはもったいないです。

 

習得するのにどのくらい時間かかるの?

あなたが既に他の言語に慣れ親しんでいるなら、特にRubyなどに精通していれば「1週間」で基本的な読み書きは出来るようになるでしょう。そのくらいPythonは敷居の低い言語です。またweb上のチュートリアルドキュメントが大変に充実していますので(もちろん和訳済み!)費用0円で勉強開始できるお手軽言語でもあります

 

バージョン2系と3系のどちらをやればいい?

これは大変に悩ましい問題で、自信を持ってお薦めできるバージョンが無いのが残念な現状です。2系と3系は特に文字コード周りを中心に言語体系にそれなりの差があり、日本語を扱うエンジニアにとっては悩ましい問題です。結論としては「どちらも読み書きできる」ようにした上で「3系で書く」ですかね。2と3の違いを理解しておかないと必ずどこかで躓きます特にweb上の情報はまだほとんどが2系ですが、ぱっと見て2と3のどちらのバージョンで書かれた情報なのかを判断できないと多くのweb上の情報を利用できずにもったいないです。

 

お薦め和書は?

先述しましたが和訳済みのチュートリアルが充実しているのがPythonの特徴でもありますので、まずは目を通す事をお勧めします。

・2系ドキュメントTOP

http://docs.python.jp/2/

・3系ドキュメントTOP

http://docs.python.jp/3.3/

・公式ドキュメントでは無いがお薦め(少し進んだトピックが中心)

http://www.doughellmann.com/PyMOTW-ja/contents.html

ぜひ超充実したドキュメント群を覗いてみてください。「チュートリアル」を読めばだいたいの言語仕様がつかめるはずです。「ライブラリリファレンス」はあなたの最高の辞書となるでしょう。

その上で、やっぱり書籍勉強したいということでしたら以下の本がお薦めです。

プログラミング自体が初めての人向け

Pythonスタートブック(辻 真吾)

・他言語を既に知っている人向け

みんなのPython 第3版(柴田 淳) ・・・2版と3版で大きく内容が異なります 2版はPython2系、3版はPython3系を中心に解説

・進んだトピックを扱う中級者以上向け

エキスパートPythonプログラミング(Tarek Ziade/和書)

 

IDEで楽したい

pythonはインデント存在があるので無機能エディタで大規模なコードを書くのは案外骨が折れます。贅沢系IDEの代表格はPyCharm(有料$99)でMac,Windows,Linuxの3プラットフォーム対応しており、一つのアカウントでいくつものマシンインストールできます(同時に使う事はできない)。30日間の無料トライアルもありますトライアル期間が過ぎても一回あたり(たしか)5分ぐらいなら継続して使えます無料IDEだとEclipseプラグインNetbeansあたりでしょうか。Netbeansは公式開発は既に終了しておりあまり安定していません。

 

色んなライブラリなど

ここからは雑多に箇条書き風にお薦めしていきますね。

webフレームワーク

大規模な開発ならDjangoが第一候補。歴史が長いフルスタックフレームワークですがまだ正式版がpython3系に対応していない。最近勢いがあるPyramidは3系に対応済み。各webフレームワークについては各開発者同士が「筋が悪い」「Pythonとしておかしい」「トレンドから3年は遅れてる」などとガチンコで思いの丈をぶつけ合っている以下の記事も参考にしてください。http://www.atmarkit.co.jp/news/201209/24/pycon.html

とりあえず最低でもDjangoPyramidは両方使ってみてから自分にあった方を選択するといいと思います

・Numpy/Scipy

科学技術系の人が好んでpythonを使う理由の一つがNumpy。数値行列計算を内部でCを使って計算するために非常に高速。インターフェイスは書きやすpythonだけども実行速度はCネイティブ並みというとてもありがたいライブラリです。現在Pythonの盛り上がりに間違いなく大きく影響しているライブラリ

・nltk

言語処理で使われるライブラリ英語ベースとなってますが工夫すれば日本語でも全然使えます。参考文献 http://nltk.googlecode.com/svn/trunk/doc/book-jp/ch12.html

・multiprocessing

並列処理ライブラリCPUマルチコアを全て使い切って無駄無く高速に処理を行いたい時に重宝します。個人的に大好きなライブラリ。頑張ればちょっとした分散並列システムも作れます。このライブラリのお陰で自宅にある10台*(擬似)8コアでお手軽python並列処理クラスタを30分ぐらいで作る事ができました。

以上です

楽しいですよpythonもっと日本pythonエンジニアが増えることを祈ります

巳年元旦

2012-11-13

Python3でMeCab

python3.2にpythonバインディングを入れようとしても途中でエラーが出る

AttributeError: 'module' object has no attribute 'split'

setup.pyの中で使われているstring.splitがpython3.2では使えなくなってるからなので以下のように変更すればおk

setup.py

def cmd2(str):
    return string.split (cmd1(str))

を以下に変更

def cmd2(str):
    return cmd1(str).split()

これでいけます。困ってる人がいたら参考にしてください。

2012-10-30

【深刻】小飼弾まどかマギカネタについて

 

まどかだかマギカだか知らないがアニメネタが毎回気持ち悪くて吐き気を催すのは俺だけじゃないだろ?

オッサンが暗い部屋でアニメ見ながら涎垂らしてデレデレしてるだけなら家族が気味悪がるだけで済んで世の中に迷惑もかからいかもだけど、それを外でやんなっつーんだよ

マジで醜悪だから 自分が思ってる以上に周囲の人間生理的嫌悪感を抱いてるんだよ

 

まあ百歩譲って自分ブログの中だけなら髭オッサンの勝手だよ 俺らが見なきゃ済む話だしな

しかしこともあろうかpythonカンファレンスでもやっちゃうその無神経さにショックを受けたpythonエンジニア達の気持ちが分かるか?

翌日から情緒不安定でインデントがずれまくりですよ

http://www.dan.co.jp/~dankogai/pyconjp2012/python.html

昔の名前で出てます状態な髭Perlサスペンダーがなんでpythonキーノートなんだよってみんな疑問に思ってる中、アニメネタを随所にちりばめた全く中身の無い話を60分

会場ドン引きですよ アホか 時間返せや 髭キーノートをセッティングした人にすら悪意が向かうレベル

 

一応pythonの代表的なカンファレンスなんすよ

そこで60分間キーノートと称して全員の時間を拘束して話をするんならそれなりの姿勢ってもんがあるんじゃねーの?

何も話せないなら引き受けるなよ しかも終始アニメネタ

pyconみたいなのは外人だって見るんだよ、そこ考えろや

日本pythonエンジニア迷惑すんだよ

「Oh、オフィシャルな場でアニメジャパニーズきもいデスねー」って思われんだよ

 

つーかアニメ画像って勝手に使っていいのかよ?なんでそんな当たり前のことがわかんねーの?

ちゃんと線引く所は線引けや 中と外で線引けってんだよ やりたいなら家の中でやってろってんだ

どうしても外に露出しなきゃ気が済まないってんなら自分ブログPerlの身内集まりでやってろってんだよ

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-09-10

http://anond.hatelabo.jp/20120910114648

いや、office普通にmacofficeを入れればいいと思うけど、開発環境は基本的にオープンソース自分で入れる必要があるということ。

python入れたいとかruby入れたいとかC++boost入れたいとかそういうの。

windowsだとそもそも謎の依存関係で開発環境自体が上手く入らなかったりするし、

パッケージ管理システムも無いかバージョンアップとかの管理が超めんどくさい。

mac(というかunix系OS)はその辺がかなり綺麗に構造化されてるので便利。

個人的には、PC使うときにコンソールを立ち上げない人はmac使う意味ないと思う。

ログイン ユーザー登録
ようこそ ゲスト さん