「mysql」を含む日記 RSS

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

2012-02-11

Web企業バックエンドエンジニアとして必要な知識メモ

そこそこPVがある場合。そうでなかったら、どうにでも動くしね。

基本はLAMPなんですけど、オペレーションの部分も分かってないと即戦力にはならんと思う。


かいWEB企業でも、下記をわかってて、ちゃんとできる人ってそんないねーよな、っていうことを最近知ったお。

もちろんフロントエンドまで一人で担当する場合もっと必要な知識が増えるわけだが。

そう考えると、「ふつうエンジニア」に到達できるのって、3年とか5年とか10年とか普通にかかるよなーって思うわけですよ。

2012-02-07

とある老害大手SI企業の例(書いたらムカムカしてきた)

コードも書けないSE(笑)とか言ってるアホ共は

ガチでメーラとWordExcel,パワポしかも2003(笑))、teratermFFFTPしかつかわねーから

あいつら本気でXP(笑)、メモリ1GBで足りてるとか思ってるからタチがわりーわ。


コードがかける若手SE(笑)EclipseとかMySQLOracle,Chrome,Firefox,IE,Java,.netと使うからある程度スペックが欲しい。(と言っても今時の5万で買える普通スペックで良い。。)

・若手が新しいPC寄越せと要求

・年食ったコードがかけないSE(笑)Office2003(笑)しか使わないし、めんどくさいから要らないと抜かす

・先輩がいいって言ってるのにお前らが要求するのか?とか言って取り合わない。

・ほんとに必要な最前線の若手にまともなPCが行かない、その結果朝にパソコン起動してメーラとEclipseが起動するのに15分かかる環境の出来上がりwww

 


一方部課長以上の役職には全員Androidタブレットが支給され

お飾り部長には組織移行都度に新PCが卸される(結局何してるかもしらんがwOfficeIEしかつかわねーくせによwww)

そりゃ社員がセットアップするし、何も入ってねぇから環境移行もし易いもんなww

もちろんAndroidタブレットメール確認するくらいにしか使わないwww

iPadAndroidタブレットブラウザメールをちょこっと触った位で最新になったと思い込むめでたい老害達。

これからタブレットだろとか抜かしてくれる。

そのHTML5サーバサイドの開発するのは俺たち若手SEなんだがなwwww

でも結局使わないし飽きて部長タブレットは机の中に入れっぱかおきっぱ。

老眼にはタブレットは見難いもんなwww


マジ老害しねよ。死ね死ね死ね



クラウドクラウド、SalesforcrSalesforce

うるせーんだよ。お前。意味わかって言ってんのかアホ部長が、


クソウォーターフォール維持しながらスピード感がとか寝言ぬかしてんじゃねーぞwwヴォケが。

上の承認が~承認が~って要件定義が~ってお前らクソ共の承認があってスピードも何もねぇだろうがwww

その上テストドリブンしようとすると、要件が固まってないだろ!とか抜かすし、殺すぞ。




結果アホ共が思いつきで言い放った言葉は忘れない

SalesForceパンフレットに開発は1月を目処に実装する、みたいな文言を間に受けて

これから1月単位で開発しろとか抜かす始末wwww

え?じゃあ、プロトタイピングとかテストドリブン型とかでやるの?とか聞くと、

いや、客の要件をしっかり聞いて要件をしっかり洗い出して~上司承認をしっかりと得て手戻りがないように~とか抜かすwwwwww

おい、お前それ今までとかわらねーじゃねーかwwwww




あーいうのは少人数チームで全員が開発者としてプログラムが十二分に書けて仕様書とかの書類を最低限にして

要件定義や決定権限の大部分を現場委任して優先順位の高い項目からを集中してやるから出来るのであって

日本ほとんどのアホSI企業典型的コードの書けないExcel書くだけの御用聞きSE(笑)なんて邪魔以外の何者でもないwww

そんなゴミSE(笑)が多くを占める会社で出来る事じゃねーんだよwwww

あーいうゴミ共は居るだけでどーでもいい好みでの文句をグダグダうから余計に作業が遅くなるwww


こういうクソみたいなことばっかりやってるから古い日本企業ダメなんだよ、ゴミどもが、さっさと潰れろ。


そして俺はクソSI業界を見限ってソーシャルゲーム業界転職準備をしているのであった(完)


http://anond.hatelabo.jp/20120207005408


PS:まなめはうすからリンクでここまでくるとは。。

まなめはうす恐るべし

ちなみに私のPCスペックPen4 1.6Ghz メモリ1GB HDD 30GBです。

これでメインはJavaStruts2Spring Eclipse3.7で組んでます

これより低い奴出てこいや





更にPS:おいおい、お前ら俺の叫びに反応し過ぎだろう。。

とりあえず一部間違えていたので訂正www

1.HDDは37GBでした。ごめんなさい、実際に見てみたら間違えてました。でもいつもSVNチェックアウトするときとかデカzipを落とす時はいつも何か消してからしています

2.ケースはチェーンで鍵がかけられているので開けられません(^p^)よって自分での拡張は不可

後、時々あった。

PGなんてのはゴミがやる仕事からそんなの気にかける方がゴミ

とか

ゴミは、勘違いしている「コードがかける若手SE」かも

とか

コードを書かなきゃいけない時点で大手ではない

ちなみにT○SとかI○M、NT○の人もコード普通に書いてたよ。

ってか書くとこは書くでしょww

んで上みたいな考えの人はそれで構わないでしょう。

そうやって思っててコードプログラム部分なんてどうでもいい。

フロントエンドバックエンドが発達しても設計レベルや提案レベルに落としこむ場合に実コードの知識なんて影響しない思うならそれでどうぞって感じ

いつまでも何でもバッチ処理(笑)にこだわる人も良くいますしねwwww

からしたらいつまでコードの書けないSE(笑)が成り立つか逆に聞きたい位www

ま~コードがかけないSE(笑)からいつも馬鹿にされてるのを知ってるからコードがかけるSE(笑)はどんどん逃げてっているんですよね~

わざわざプログラム(笑)とか馬鹿にされてまで居るものじゃねーよwww

現在どんどんSI業界から出来る人が率先して辞めてるからwww

ただでさえ人材不足のクソSI業界にいつ影響が表面化するか(もうしてるか?)楽しみですNE!

私は先に役に立たない大量の船頭しかいない泥船から抜け出しますwww

戻って来ることもないでしょう!多分!


それではアデュー!

2012-01-07

事務職リーマンwebサービス作ってみた

Webシステムとは縁遠い事務職のリーマンが、ある日思い立って、ニッチな用途の検索エンジンサービス作ってみたので、ちょっと書いてみようと思います

ちなみに、検索エンジンといっても、googleカスタム検索とかのお茶濁し系じゃなくて、apache Solrというオープンソース検索エンジンを、VPS上で動かしているという、それなりに本

気度の高いものです。

なんで素人がそんな物騒なものを動かす羽目になったかは、後述。



アイデアときっかけ

やりたい構想みたいなことを思いついたのは、もう6、7年前ほど前のこと。初めて独り暮らしを始めたときに、ひどく不便を感じたことがあり、こんなサービスがあったら便利だなあ、

と、ぼんやり妄想していました。

ちなみにその妄想をふと高校の同期に話したとき、そのサービスはどこにあるのか?!と、えらくがっつかれたのを、覚えてます。まあ、俺と同じく偏執狂の奴だったからだと思います

が。

ただ、しがない事務職リーマンということもあり、当然、技術も無く、そのときは、やるならこんな名前サービス名だろうなあ、とか、そんな妄想レベルで、話は終わっていました。

そんな感じで、5年ほど月日は経ち、なんとなくリーマン人生の流れも見えてきたところで、以前、妄想していたことを、ふと思い出しました。

5年も経ったら、さすがに自分が考えたようなこと、誰かがやっているだろうと調べてみたところ、意外なことに、競合になるようなサービス存在せず。ちょうど異動があって、少し時

間が出来たこともあり、じゃあ、着手してみようかと思い立ちました。



やりたいことは非常に面倒だった

やりたいことは、大手サイト情報検索。ただ、商品ページ内の特定情報、それも、商品ごとに正規化されていない表記を、正規化して抽出する必要があったので、大手サイトの既設API

だけではとても実現不可能でした。

まあ、だからこそ、5年間、誰もやろうとしなかったんでしょうが

ということで、とても一発では解決できなさそうな内容だったので、自分でなんとか実現できそうな機能に細分化して、各個撃破していくことにしました。



面倒なサービスをどう実現するか

随分と考えた結果、

以上に区分できると考えて、これらを各個撃破していくこととしました。

また、技術もなく、プログラミングも出来ず、ましてやlinuxサーバのお守りをしたことなんて当然ないので、インターネット上に置くサーバですべての処理を完結させるのではなく、イ

ンターネット上に置くリソースは最小限に留め、できる限り、勝手がわかる自宅のwindowsパソコンで処理を行うことにしました。

ちなみにさらっと結論だけ書いてますが、ここまで至るまでに、いろいろと調べ続たり、考え込んだりしていたので、思い立ってから3ヵ月は掛かってます。。。



検索エンジン周りの開発

さて、やる方針を決めたあと、はじめに着手したのは、要の検索エンジンサーバです。

いろいろとググって調べて、mySQLというやつか、apache Solrというやつかに絞りましたが、結局、Solrを使うことにしました。

MySQLのほうが実績は多そうだったのですが、Solrのほうが検索専門で、滅茶苦茶動作が速いらしいということ、MySQLでも出来るが特に速度が遅いらしい全文検索機能も使いたかったこ

と、あとファセット機能ジャンル絞りこみに便利に使えそうだったので、というのが理由です。

ちょうどSolr本が発売されていたこともあり、それを参考に、自分が使うように設定ファイルを変更していきました。

しかし、初めは設定ファイルの内容も意味不明な上に、私の書き方も雑なのか、少しいじっただけでまったく動かなくなる。結局、設定ファイルを一文字ずつ変更しては動作検証、とい

った始末で、進捗は地を這うよう。ある程度思い通りにSolrを扱えるようになるまで、3ヵ月以上掛かったでしょうか。。。

さらに、検索エンジンフロントエンドSolr検索結果を、htmlに変換するプログラム)も書かなければならない。プログラミングが出来ない人間には、これが本当に辛かった。

Solr本に、いろんなプログラミング言語でサンプルがあったのですが、迷った末に、わずか数行なら書いた(≒コピペした)経験があるという理由で、javascriptを苦渋の選択。

しかし、選択はしてみたが、基礎が本当に無いから内容がサッパリ頭に入ってこない。こちらも、わかるところから本当に1文字ずつ変えていくといった手探り状態。

プログラミングについては、今回のためだけだから、といった理由で、一切基礎をやらずに着手したのが裏目に出たのか、サンプルのソースをモノにして、書き上げるのに、ゆうに半年

以上。本当に時間が掛かりました。



kanzen21.comに衝撃を受ける

さらに、Solr周りで計9ヶ月間ハマっていた頃、忘れもしない、kanzen21のおっさん彗星のように現れて、衝撃を受けることになります

大手サイトのページをクロールして検索エンジンを作る手法は、私と考えていた構想の枠組みとまさに「完全に一致」な訳で。。。

図書館事件に注目していたのも同じで、あまりの一致具合に衝撃を受けっぱなしでした。

その後の成り行き等も含めて、興味深く観察させて頂き、本当に参考になりました。



クローラ周りとかの開発

そんな感じで紆余曲折もありましたが、ようやく難題だった、プログラミング関連に目処が立ってきたので、あとはクローラと肝心のデータ処理です。ここからは、勝手知ったるwindows

の領域なので、多少の安心感があります

まず、クローラですが、専用のクローラwindows用に探してきたり、それを設定するのも大変なので、今回はテレホーダイ時代に使っていたような、フリーweb巡回ソフトを利用する

こととしました。指定のhtmlダウンロードしてくるだけなので、別に変に新しいものに手を出す必要もないので。

また、ダウンロードしてきたhtmlファイルについては、これまたフリー日本語処理ツールでcsv方式に加工することにして、処理ルール部分を相当に作り込みました。

このあたりは、全体を通して見てもキモの部分なんですが、ある意味ちょっとしたパズル感覚だったので、プログラミング言語の部分と違って、かなり楽しかったです。

あとは、msdosバッチファイル(これは前から知っていた)で、これらの処理を繋ぎcygwincurlかいうツールで、連続して検索エンジンサーバcsvファイルアップロードする

仕組みを作りました

検索エンジンサーバには、容量は少ないが、安くて高性能という、今回の用途にピッタリだった、さくらVPSを借りて設定。CentOSサーバ構築ホームページを見ながら、サーバとか

Solr管理URLとかにセキュリティを掛けて、こちらも素人ながら、意外とすんなり設定。

ホームページは、vpsサーバ相乗りさせるのではなく、別にさくらレンタルサーバを借りました。apacheの設定方法等を習得する必要がありませんし、vpsリソースapacheと分け

合う必要が無くなるので。ホームページhtmlファイルcssファイル等も調べながら設定し、画像も準備しました。

あと、構想を思いついたとき妄想していたサービス名の.comドメインは、すでに他者に取得されていたのですが、どうも使っている風にも見えなかったので、whoisで出てきたメール

ドレスに連絡して交渉し、幾ばくか払って買い取りました。



ようやく完成

結局、足かけ18か月。ようやく完成。



楽天市場家具を、幅x奥行x高さ(家具サイズ)で検索できる、楽天市場家具カテゴリ専門の検索エンジン

カグサイズ検索

http://kagusize.com



この商品数規模(データ収録約30万アイテム)で、1センチ単位家具サイズ指定検索が可能な手段は、商用サービスも含めて、ほかには存在しないと思います

kanzen21と違って、エロじゃないから華はないけどね。。。




カグサイズ検索提供する価値について

ちなみに冒頭で少し書いたきっかけですが、就職して独り暮らしを開始したときに、新しい家にピッタリサイズ家具が欲しかったのですが、これが楽天で探すのは至難の技でして。

楽天家具を探してみようと思った人には判っていただけると思うのですが、楽天では、価格では範囲指定やソートができても、サイズでは検索出来ないんです。

これは、楽天では、商品のサイズ情報は商品の自由記述欄に記載することになっているためで、商品ごとにサイズの記載方法がバラバラのため、検索事実上、不能となっています

家電製品とかに関しては、種類が少ないこともあり、メーカーホームページとかでサイズを確認した上で、商品型番で検索すればいいので、それほど問題にはならないのですが、家具

って、種類が非常に多く、型番もあったり無かったりで、家電のようにサイズを調べることができません。

しかも、サイズが非常に重要な商品です。なんて不便な!


・・・ということで、カグサイズでは、楽天の商品ページにいろいろな書式で書かれているサイズ情報を拾って解析して正規化し、範囲指定やソートして検索ができるようにしています

また、単に寸法サイズを拾うだけでは、梱包サイズとか引き出し内寸とかも引っ掛かってしまうので、それらは出来るだけ排除して、商品の外寸が優先して引っ掛かるよう、アルゴリズ

ムを調整しています

単位センチミリ)に関しても、商品ごとにバラバラ(単に単位だけでなく、商品説明のどこに"センチ"とか"ミリ"と記載しているかについてもバラバラです。)なので、サイズ表記

前後の状況をみて、正しいと思われる単位で拾うようにしています




その他

あと、変わった使い方としては、欲しい家具価格比較みたいなこともできます

家具は、同じ商品でも、店ごとに型番が違ったりすることがよくあり、簡単には価格比較が行いづらいジャンルの商品です。

しかし、型番は違っても、同じ商品なら原則、サイズは同じですから、欲しい商品とまったく同じサイズ検索をかけると、同等商品があるのかどうか比較しやすい・・・といった使い

方もできます


おわりに

と、そんな感じで、しがない事務職リーマン作ってみたニッチな用途の検索webサービスを、サービスインさせて頂きました。

一般に公開されていて、誰でもアクセスできる情報でも、ニーズが有りそうな切り口の条件で検索性を高めれば、新しい価値創造できるんじゃないかという実験です。

もしよろしければ、ぜひ、使ってみてくださいー。それでは!

----------

カグサイズ検索

http://kagusize.com


追記

アップ直前の変更により、最大サイズの指定がうまく働かなくなっていたため、修正をしました。ご指摘有難うございました。

2011-12-30

明暗くっきり、オライリー技術評論社

オライリー本の値段は高いが、質も高い。

自分の専門分野のオライリー本は必ず一冊は持っているのが当たり前だった。「サイ本」とか本にニックネームが付けられてそれで通用するぐらいに、とにかくオライリーの本はwebエンジニアにとって特別な本であった。そして時代は変わる。

 

オライリー自体は変わっていないが、時代が変わってしまった。

日本語出版されるオライリー本の価値ゆっくりと毀損する間に、技術評論社書籍の評価はうなぎ上りだ。

 

うん、ここ最近ではHadoop本は秀逸だった。トレンド技術を捉えてうえで数年は価値が落ちない網羅っぷり。

まだ枯れきっていない分野で日本語オライリー本が存在感を示した最後の例になるかもしれない。

 

乱立するKVS分野において日本語オライリー本は無力極まりなしで目も当てられない。

cassandraがようやく出たがversion0.8だ。外人さんが書いた原本を数ヶ月から一年かかって日本語に訳し終わる頃には技術自体が進化してしまって日本語版が出版される頃には賞味期限切れ間近という切なさ。時代にそぐわないとしか言いようが無い。以前のように大型技術確立されたら五年十年それで食えます!ってな時代じゃないんよ。PerlとかMySQLのような大型で枯れきった技術はなかなか出ない。ああそうだいまだにMongoDB日本語オラ本は出ていない。英語ではもう4冊か5冊は出ているというのにだ。乱立KVSの先頭を走っているMongoDBについて紙媒体情報ほとんど無い切ない状況はいつになったら変わるのだろう。

 

この手の話題になるとすぐ「紙が悪い!電子書籍わっふるわっふる!」と叫ぶ人がいるが問題はそこではない。英語日本語に訳しているタイムラグが問題なのだ。そこに日本語オラ本の致命的な欠陥がある。

 

一昔前のように大型OSS技術が出て枯れきる、なんてことは滅多になくなってしまった。英語原本を訳してる間にも日々技術トレンドが変わってしまうんだ。なぜ日本人ほとんどは英語が読めないんだろう。文科省のせいにしたって何も解決しないけれど、webエンジニアなら英語ぐらい読めるようになれやお前ら。

 

おっと話がそれた。そろそろ技術評論社について語ろう。面倒なので三行で語る。

 

日本人スタープレイヤーが書いた原稿を元に出版される技術評論社書籍の評価が最近うなぎ上りだ。

特にWEB+DB PRESS plusシリーズはどれも凄まじい出来で恐れ入る。

公式サイト http://gihyo.jp/book/list?series=WEB%2BDB%20PRESS%20plus

 

ますます技術トレンドの移り変わりが激しくなった今、翻訳という形態技術書価値が無くなろうとしている。オライリーとて例外ではない。

オラの功績はすさまじいものがあるし、足を向けて眠れないぐらいなのだが、それでも俺はこのエントリを書かざるをえないぐらいに最近日本語オラ本にはガッカリせざるを得ないのだ。

 

日本語の本は日本人が書けばいい。訳なんていらない。それが当たり前の時代がそのうち来るだろう。

あとwebエンジニアならいい加減英語読めるようになろう。努力すればすぐに読めるようになるさ、来年はそういう年にしよう。

じゃあおやすみお前ら。

よいお年を。

2011-12-28

ふと

Webサービスになるんじゃないかなーってことを思いついたので、自力で作ってみよう思う。

プログラマとして社会人約三年経験後、無職半年目。別業界に行こうと思ってた。

でも思いついたからやってみるって言うのは有りだと思うんだ。



しかし、一から作るってどうしたらいいんだろうなあ。

機能拡張かばっかりだったから、どうしていいのかいまいちわかってない。



サービス提供するために

レンタルサーバを借りる

・余裕があればドメイン取得

・開発言語PHP(とはいえ独自フレームワークばっかりだったのでCakeとか使えないぞ……)

MySQL実は使ったことがないんだよな。関数をチェックしておく必要性あり。

UIHTML5意識したXHTMLで書いておけば将来的な移行がしやすいのかな。最初からHTML5で書くというのも手か?

CSS3使ってもいいのかなあ

調べること

・関連商品の表示のために何をすればいいのか(DBに閲覧履歴を保持するのか?)

・他にも思いつき次第追記

ユーザを集めるために

・ここがわからないのであった

twitterとかなのかな


まあ、作れないかもしれないけど、その時はその時。

いつか似たサービスを誰かが作るだろうし、あるいはもう存在しているのかもしれない。

2011-12-15

cent osでのphp5.3環境のセットアップ with "yum"

FuelPHP Advent Calendar 2011 の 15日目。

FuelPHP の URL とコントローラの関係から続いて寄稿します。

@eifukuです

早速ですが本題。

といって、そもそもの経緯を先に。

fuelphpを試そう!ってなもんで既存サーバPHP5.3にしよう〜という所が発端。

既にyumPHP5.2ベース環境が構築してあったせいで、色々とconflictしてインストールに手間取る。。。

案外、環境構築ってはまると手間よねーといった意味合いも込めて、

今後の参考迄に割とストレートにいける様にセットアップ手順をログます

今回はせっかくなので、色々と最新パッケを用意します。

LES RPM DE REMIのリポジトリ登録

そもそも、yum提供しているのはPHP5.2。

なので、fuelphpを動作させるために、今回は最新のRPMパッケからPHP5.3をインスコ

最新のrpmを確認してインストール

$ sudo rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

apache2をインストール

$ sudo yum install apache2

mysql(v5.5)をインストール

既存mysqlを使う人は飛ばして次項へ。

(PHPを先にインストールすると色々こけるので先にmysqlをセットアップ)

$ sudo yum --enablerepo=remi install mysql mysql-server

で起動テスト

$ sudo /etc/init.d/mysqld start

いや、こけた。

起動せず。。

ふむ。repositoryをremi-testにしなければダメな模様。

再度インストール場合には依存関係のパッケージconflictするのでとにかく消す。

ごっそり消す!!

$ sudo yum remove -y mysql*

インストール

$ sudo yum --enablerepo=remi-test install mysql mysql-server

$ sudo /etc/init.d/mysqld start

Starting MySQL: [ OK ]

いった!

自動起動設定だけ済ませて次へ。

$ sudo /sbin/chkconfig mysqld on

php諸々をインストール

既存php5.2以前がある場合は、やはりとにかく、ごっそりremove!!

で以下に続く。

$ sudo yum --enablerepo=remi install -y php php-mysql php-xml php-mbstring php-common

以上でfulephp動作前の環境構築準備は完了!

ほんとはハマった辺りのログとかも入れた方がいいんでしょうが、今回はこれでご勘弁。

ソースから入れた方が楽だよなぁ・・・と何度か方向転換しかかりましたが・・・なんとか。

明日16日目は@madmamorさんの「FuelPHPのcoreクラスを拡張してみる。ですね!

おたのしみに!

2011-12-05

初心者がたった5ヶ月でウェブサービスを作る方法

完全な初心者の状態から勉強を始めてから大体5ヶ月でウェブサービスが完成したので何を用意したり何をどうやって勉強したらいいのか色々書いてみました。

アイデアはあるんだけど、プログラムとか難しそうで自分にはウェブサービスなんて作れないと思ってる人がいたらその敷居を少しでも低くできたらいいなあなんてと思ってます


ちなみにボクはぼんやり1年くらいはてなブックマークにのってる記事を見ていてプログラムとかできたらいいよなあなんて思っていてようやく重い腰をあげた人です

さらに自分文系数学英語もロクにできない人なので、基本的に誰でもサイトは作れると思います

そもそも中学生でもプログラミングができるんだから大人に出来ないわけないですよね。


これからウェブサービスを作りたいっていう方の参考になればと思います

自分初心者なのでまちがってることがあったら教えてください。



●何を用意すればいいのか

自分Windowsなので何個かWindows向けのソフトを紹介しています

Macの方は申し訳ないですが、Mac向けのソフトをご自分で探してください。



(1)メモ帳

基本的にウェブサービスの開発はメモ帳でできます

アドビdreamweaverっていう便利なソフトがあるらしいですお金もかかるし別に必要もないと思います

ただのメモ帳だと使いづらいのでボクは「TeraPad」っていうフリーソフトを使っています

例えばプログラム言語ごとに表示を切り替えると、関数とかコメント部分の色が変わって見やすくなって便利です

TeraPadhttp://www5f.biglobe.ne.jp/t-susumu/library/tpad.html



(2)PCブラウザ各種

サイトを作っても各ブラウザごとに見え方が違うのでそれぞれ確認するために何種類かブラウザインストールしましょう。

ボクはIEFireFoxChromeの3つをそれぞれ表示して確認していました。

OperaとかSafariも本当は確認しないといけないと思うんですがこの3つで十分だと思います



(3)XAMPP

ザンプって読みます。ざっくり言うとローカル環境(自分パソコン)でプログラムを動かす環境を作るソフトです

いちいちサーバーアップロードしなくても、プログラムが動くかを確認できるので便利です

またレンタルサーバープログラム暴走してしまうと迷惑がかかるらしいのであらかじめ自分パソコンで確認するのがいいようです

XAMPPhttp://www.apachefriends.org/jp/xampp-windows.html



(4)ドメイン

何とかドットコムっていうやつですネット上の住所的なやつですexample.comとかexample.netとか。

ボクはお名前.comでドメインとりました。ドメイン個人情報を隠せる?サービスがあるのが理由です

まあどこで取っても大して変わらないと思うので目についたところで取るといいと思います

「.com」だったら年間1000円くらいです。長すぎるドメインはとらない方がいいかです



(5)サーバー

ネット上にファイルアップロードするところですドメインが住所だとすると土地みたいなイメージです

ボクはさくらインターネットさんのレンタルサーバー(スタンダードプラン)を借りています

理由はグリー社長さんがほめてたから。お金も月額500円なので安いです

同じ500円だとニコニコ動画プレミアム会員になれますね。ちなみにボクは一般会員です



(6)FTPソフト

さっきファイルアップロードとかさりげなく書きましたが、そのファイルアップロードするソフトFTPソフトです

ボクはFFFTPを使っています最初使い方がわからなくて戸惑いましたが慣れれば簡単です

FFFTPhttp://www2.biglobe.ne.jp/~sota/



(7)FireMobileSimulator(FireFoxアドオン)

携帯電話サイトを確認するには基本的に実機で確認するのが一番ですが、個人で全部そろえるのは難しいです

そこでFireFoxアドオンのFireMobileSimulatorという拡張機能を使って簡易的に確認するのがおすすめです

XAMPPのようなローカルサーバでも確認することができます

・FireMobileSimulator : http://firemobilesimulator.org/



(8)スマホまたはスマホを持ってる友達

FireMobileSimulatorで確認できるといってもやはり見え方は違います。念のため実機で確認しましょう。

ボクはiphone使っていてそれの確認はしてるんですが、android友達がおらんのでまだ確認してなくて実はまだ不安だったりしてます



(9)3キャリアガラケーまたはガラケーを持ってる友達

上と同じようにやはり実機で確認した方がいいです特にガラケーは見え方もそうですが、プログラムがうまく動かなかったりします。

例えば、AUだけフォームに「enctype="multipart/form-data"」を入れてると文字化けするという謎の現象が起きたり。

他にも色々あって制作時間がかかったのは正直このガラケーのせいです。色々3キャリアで統一とかしてくれないんですかねえこれ。。。

友達のY君とMさんとNさん本当にありがとうございました匿名ブログだけど感謝してます




●何を勉強すればいいのか。


さて具体的に何を勉強すればいいのかわからない人がいると思いますが、以下を勉強すればウェブサービスが作れます

ということでひとつずつ説明。



(1) html/css

マークアップ言語っていうらしいですプログラムじゃなくてhtmlファイルを作る言語です

とりあえずhtmlサイトの文書の論理構造を書いて、cssサイトの見た目をキレイにするものだと思ってください。


適当検索すれば勉強できるサイトがたくさん出てくるのでそこで勉強してください。

本も売ってますけど基本的なところは難しくないので買う必要はないと思います

かいところはその都度検索すれば大丈夫です



調べると、html5とかxhtmlとかあって戸惑うかもしれませんが、とりあえずPCスマホなら何でもいいと思います

(ガラケーについては各キャリアごとに対応させる必要があります。書くとすごい長くなるのでガラケー用にサイトが作りたいなら調べてみてください。)

ただhtml5が一番新しいので今後勉強される人はそれの方がいいかもしれないです

ちなみにボクはたまたま見たサイトxhtmlの説明だったので今回はxhtml作りました



実際やってみるとわかりますが、思ってるよりずっと簡単です

まだボクは90年代初頭のホームページみたいなデザインしかできないので偉そうなことは言えないんですが(笑)



(2) PHP/MySQL

プログラミング言語データベースです

最初htmlだけでサイトが作れると思っていたんですが、はてなのような動的なサイトを作るときは何かしらプログラミングする必要があります

んで、いろいろ調べるとperlやらRubyやらJAVAやら色々でてきて一体どのプログラム言語がいいのか悩むと思いますウェブサービスが作りたいならPHPがいいと思います

理由はウェブに特化した言語っていうのと他に比べると簡単で勉強時間が少なくて済むらしいので。



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



この本の通りやっていけばとりあえずプログラムが動く感覚が得られます

あとすごい賢そうなことをやってる感覚になるので頭がよくなったような気がしますよ(笑)



MySQLもこの本で勉強ができますMySQLというのはデータベースで、そういうソフトです

他にもOracleとかPostgreSQLとかあるらしいですが、

とりあえずMySQLSQL文っていうのを勉強するとデータ検索だったり、データアップデートだったりが数行でできたりするのですごい楽になります



決して簡単ではないですけど、思ったより難しくはなかったっていう印象です

自分は大抵その時理解できなくてもだいたい一晩寝てから、もう一度頭からやり直すと理解できました。



(3)Apache

アパッチって読みますウェブサーバーです

ボクはさくらさんのレンタルサーバーを借りていて今回はあまりいじってないんですが例えば「.htaccess」という名前ファイルを作るとapacheの設定をいじることができます

例えばアクセスされたくないファイルがあったらそういう指定を「.htaccess」というファイルに書いておけばアクセスされないようになります



(4)スマートフォン向けサイトの作り方

基本的にパソコンと同じように作ればいいです。ボクは以下の本を見て勉強しました。

iPhone+Androidスマートフォンサイト制作入門(たにぐちまこと)」

http://www.amazon.co.jp/iPhone-Android-%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%B3%E3%82%B5%E3%82%A4%E3%83%88%E5%88%B6%E4%BD%9C%E5%85%A5%E9%96%80-WEB-PROFESSIONAL/dp/4048702181



正直ネット情報でも十分だと思いますが一度体系的に勉強するのもいいと思います



(5)ガラケー向けサイトの作り方

ガラケー向けのサイト制作は特殊で一度頭真っ白の状態で勉強した方がいいです。それだけPCスマホとは全然違います

ネットにも情報はたくさんありますが、断片的なものなので以下の書籍で体系的に勉強してから補助的にネットで調べた方がいいです

PHP×携帯 実践アプリケーション集(平島浩一郎他)」

http://www.amazon.co.jp/PHP%C3%97%E6%90%BA%E5%B8%AF%E3%82%B5%E3%82%A4%E3%83%88-%E5%AE%9F%E8%B7%B5%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%9B%86-%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E3%83%9E%E3%82%A4%E3%83%8D%E3%83%83%E3%83%88%E3%83%BB%E3%82%B8%E3%83%A3%E3%83%91%E3%83%B3/dp/4797354356



この本は実践アプリケーション集というだけあってそのまま使えるコードが収録されているのがとてもいいです

正直PHPプログラミング自体はそこまで難しいという印象はなかったんですが、この本に出会わなかったら多分ガラケー向けのサイトは作れなかったと思います

もしガラケー向けのサイトが作りたいならこの本を買うのが近道だと思いますよ。




自分はまだやってないけど勉強したほうがいいもの



(1)PHPフレームワーク

CakePHPとかSymfontとかいうのがあるらしいです

このフレームワークを使うとあらかじめある程度のところまでできてるんで、ボクみたいに全部TeraPadで手書きしなくてもいいみたいです。。。



(2)javascript

PHPサーバーで動作するプログラム言語ですjavascriptブラウザ上で動作するプログラム言語です

非同期通信なんていうよくわかんないけど何かすごいこともできたりするらしいですよ。



●もし調べまくってもわからなかったら


もし一日中検索してもよくわからなかったらそういう時はネットの頭のいい人たちに質問しましょう。

ボクは以下のサイトで質問していました。



(1)ヤフー知恵袋

巷ではヤフー知恵遅れなんて言われてますが、コンピュータ系の質問に関してはしっかり教えてくれる人がほとんどです

ポイントを100枚くらい使うとカテゴリマスターなんていう天才が回答してくれます



(2)2ちゃんねる

2ちゃんねるの該当する質問スレに書いてください。

どういうスレッドなのかよく読んで質問しないとボロクソに言われますが、2ちゃんねるなのに皆さんすごい優しく教えてくれます

たまにケンカしてたりすることもありますがそのときケンカが終わるまで待ちましょう。ケンカの流れで質問がスルーされたりします。



ヤフー知恵袋2ちゃんねるもそうですけど、質問するとき自分環境をしっかり書いて何がしたいのか、どんなエラーがでるのか明確に書きましょう。

回答する人もわからないですし、自分がほしい回答がまず来ないと思います

あと当たり前ですが回答してくれたらお礼をしっかりいいましょうね。



●こうして出来上がったウェブサービス


こうやって今回できあがったのが6人まで登録ができる招待制レンタル掲示板です

「ひそり-秘密共有ネットワーク」(http://hisori.com/)です



なんだ掲示板かよー!!とか言わないでください(笑)これでもけっこうがんばったんで。。。

そういえばサイトを作ろうと思った経緯を書いてなかったんでちょろっと書いておきます


ボクはミクシィツイッターをやってるんですが、一瞬その時だけ仲のよかった人の更新とか見たくなかったりするんですよね。

でもマイミクを外したりフォローを外したり小心者のボクにはできなかったりするわけです



そもそもあーいうソーシャルって自分キャラ一貫性をもたせないといけないから窮屈なんですよね。

例えば、会社の同僚には真面目を絵を書いたようなキャラだけど学生時代友達には下ネタ好きのどうしようもないキャラだったりすると

マイミクフォロワーにその会社の同僚がいたら、下ネタなんか書きたくても書けないという窮屈さがソーシャルにはあるわけです



だったらあらかじめ人数制限しておいて、例えば同じ学生時代の人しか見ることができないサイトがあれば

下ネタだって気にしないで何でも書けるよねっていう考えに至ったわけです



今回6人までという人数制限と招待制っていう形にしているのはそういう理由と本当に仲のいい何でも話せるグループに使ってもらいたかたかです

んで、ネットにそういうのがなさそうだったので勉強がてら自分で作っちゃえ!ってことで今回作りました



ちなみに何で秘密共有ネットワークなのかというと「招待制無料レンタル掲示板」だとどんなサイトイメージがつかないと思ったかです

じゃあ何て名前にしようかと考えた結果、秘密でも何を書いても大丈夫ですという意味を込めて「秘密共有ネットワーク」って名前しました。

(秘密って普通はどこに書いてもいけないものじゃないですか)



とまあ、そういうことで初心者でボクみたいな完全文系の人でもこれくらいのサイトなら作れるんで

もしプログラムとか難しそうとかそういう理由でウェブサービス制作を躊躇してる人はぜひチャレンジしてみてださい!!



※もしサイトが変な挙動がしてるとかあったら更新報告用にツイッターアカウントを作ったんでよかったら教えてください。

http://twitter.com/#!/hisori_com/


ではでは。。。

2011-09-15

世界中「ありがとう」を集めるサービス作ってみた

THANKFUL WORLD - 世界を「ありがとう」でつなげよう -

似たようなサービスは既にあると思いますが、PHPプログラムの練習課題として作成してみました。

投稿から「ありがとう」にまつわる話を投稿してもらい、感謝の気持ちを伝えるサービスです


サービスを作った目的

この中で一番の目的だったのは3番目の最後までやり遂げるだったりします。

本当にどんなものでもよかったので、最後まで作り上げて公開するのを目標にやってきました。

システム環境

Apache+PHP+MySQLオーソドックスもの

Webサーバの構築課題も含めてなので、さくらVPSを一台契約しました。

インストールから設定まで行って初めて分かることも多くありました。

開発期間

1週間

思いついてから公開までの時間です

やって良かったこと

  • Webサーバについての知識が深まった
  • システムを構築するに当たっての手順や手法などを改めて考えさせられた
  • 次に向けての課題点が見つかったこと

次に自分が覚えることが見えたのは大きいです

今できることを高めることも重要ですが、自分に足りないものを吸収してより良い形で昇華することも必要。

反省すべき点

  • 思いつきで行動したため、行き当たりばったりで思っていたものとは異なる形となった
  • 最初設計時間をかけるべき

設計が全てだと思います

個人でサービスを作る以上、自分自身がクライアントなので途中で行う仕様変更改善や思いつきによる変更など)に対する文句のぶつけ場所もありません。

念入りに設計を行い、それに基づいて開発を行う。

当たり前のことですが当たり前に行うのが難しいです

何事も初めが肝心です

最後

ひと通り開発を行ってみて、自分の知識や能力についてもある程度把握できたように思えます

今できることもわかったので、次は今できないことをできるように知識を深め、

今できることと合わせて新たな段階に進めればと思います

長々とお読み頂きありがとうございました。

2011-09-10

本当のソーシャルゲームイノベーション人間ボットの区別がつかない環境

ソーシャルゲームイノベーション。だがイノベーションは、すべてのユーザー接続された単一のサーバーを使う、マルチプラットフォームマイクロトランザクション、コレクション中心のゲーム性ゲームマネーリアルマネーの最小限の垣根、スマート課金システム、ゆるやかなコミュニケーションではない。ソーシャルゲームのコア技術。だがゲーム伝統的なオンラインゲームウェブサービスなどが実現済み。だが人類史ソーシャルゲームけが実現した特徴。人間ボットが混在してもボット存在が気がつかれない革新的な環境ボット人間擬態して人間ゲームプレイしてゲームを盛り上げるSF近似の環境が実現。ソーシャルゲームではユーザー同士の人間的なコミュニケーションを極限まで減少することでこれを可能に。革新的なことにもかかわらず不思議に語られない。すごく残念に思う。私が語ろう。

#

ボットは、パソコン MMO では周知の事実違法がはびこっている。これから話すことは少し違う。ソーシャルゲームボットは、ゲームメーカー自身によって開発された。ボットは、普通ユーザーには区別がつかない。仲間やあなた競争相手のいくつかはボットと考えるのは簡単。多くの人が疑問に思う。人間ボットの区別がつかないはずがない。セカンドライフパソコンMMOのような環境ボット人間のフリをするのは大変困難。MMOはすべてのプレーヤーの動きをリアルタイムに見ることができる。すべてのプレイヤーがどのように動作するかを誰もが見ることができる環境では、特異な行動パターンは際立って目立つ。ほぼ同じアクションが繰り返されるならすぐにボットとわかる。ありえない動作もすぐにわかる(超高速移動、不可能なタイミングの攻撃を続ける、など)。MMOボットのためのチートツールは不自然ではない動きの再現に苦労。NPCキャラの移動は不自然。同じ場所しか歩かない。不自然に遠回り。隙間に入って抜け出れなくなるなど。人間操作する自然な移動は非常に困難な技術ボット人間パーティを組んで行動するのは不可能。ボットは会話できない。MMOキーボードと共にある。ゲームチャット機能も充実。チャットをするのは当たり前。完全な無言のユーザーは不自然存在協調行動は全く取れない。すぐにボットが露見するであろう。

#

対照的にソーシャルゲームでは人間ボットを区別する機能が軽視。あるいは未実装。他のプレイヤーの行動は目立たない。気がつかない。他のプレイヤーにあまり興味を持たないことでボットことに気がつかない環境。他のユーザーが何をしているのか分からない。ユーザーの仲間は行動記録を閲覧できる。ユーザーと対戦したユーザーとの試合結果は見ることができる。それは非常に断片的。ボスを倒した、ダンジョンクリアした、などの結果しかからない。他のユーザープレイの状態を把握することはできない。ソーシャルゲームでは装備の着替えを繰り返しているユーザーがいても誰も気がつかない。MMOで装備の着替えを繰り返しているユーザーがいたらすごく目立つ。ソーシャルゲームでは異常な行動パターンをとっていても問題にならない。目立たない。ボットにとても都合が良い。ソーシャルゲームでは移動に必要もない。移動はリンククリックだけ。人間らしい移動アルゴリズム不要ソーシャルゲームでは会話がとても軽視。他ユーザーへのコメント掲示板がある。しかしあまり活用されない。ゲームに協力する戦略性が必要が薄いため。またキーボードが使えない。ずっと無言のユーザーも珍しくない。会話がとても少ない。ボット理想環境ソーシャルゲームは最低限のコミュニケーションで成り立つことに最適化。それは同時にボット人間擬態することにも最適化。結果的にボット人間擬態できる環境が生まれている。結論。リンクランダムクリックするだけでもボットが完成。それは不自然ゲームプレイが予想される。だが他ユーザーは気がつかないであろう。

#

ボットを活用しているのは違法ユーザーではない。ゲームの開発会社が用意している。運営している。言い換えればハック不要。無制限にデータベースへのアクセスが可能。実際にゲーム操作する必要ない。データベースに記録を行えば良い。SQLだけでボットを作ることが出来る。例えば、"ナンバーワンのユーザーの敗北を増やす"SQLの次の2行で実現することができます。余談。MySQLのサブクエリ限界は非常に気に入らない。「SELECT userid FROM usertable ORDER BY gold DESC LIMIT 1;UPDATE usertable SET lose=lose+1 WHERE userid=xxxxxx;」これは不十分。たかだか敗北数を増やすだけ。正しくは対戦相手と対戦ログゲームルールに合わせた形で記録。データベース勝敗結果を記録するプログラムが必要。これはゲームプログラムに元々存在している。流用するだけで良い。PerlPHPで実装されているだろう。対戦結果の偽装は簡単。

#

ソーシャルゲームSNSプロフィールページと連動。ユーザーの顔画像クリックプロフィールページに遷移。プロフィールページの偽装が必要。プラットフォーマーは己のSNSデータベースへのアクセスが可能。ランダム名前自動大量生成することは容易。ボットプロフィールページを用意することは容易。ボットユーザーは、日記を書くことなく、まったくの無言で、熱心にゲームプレイ。そのような特徴は正規ユーザーにも珍しくなく違和感はない。参入メーカーSNSプロフィールページを大量に作成できない。正規プロフィールページを使い回す。その場合には、ゲーム上のH氏とG氏ののSNSプロフィールが互いにV氏で同じ人に。これは異常。しかユーザーは他ユーザープロフィール対応を全てチェックしたりしない。発見される確率はとても低い。

#

閲覧者はボット開発の容易さには納得したと信じる。まだボットの必要性と活用には納得していない。これからの話しで納得できる。

伝統ゲーム開発者感覚を基準にゲームバランスを決定(マーケティングの無視を意味しない)。ソーシャルゲームユーザーアクティビティに基づいて、科学的な分析ゲームバランスへのアプローチを決定。これはユーザーアクティビティのサーバーログが蓄積されるために可能。ユーザーアクティビティの分析結果がゲームバランスに反映。例。チュートリアルの進行状況50%で停止しているユーザーが多数いるという分析結果。その箇所のチュートリアルは高い障害ことが想定される。対策。その箇所を平易に修正。その箇所を短縮。その箇所を除去、など。結果、チュートリアルの進行状況50%で停止するユーザーは激減。課金でも分析重要課金アイテムバナー画像を表示する例。ランダム分割したグループAユーザグループBユーザに別々のバナー画像を見せる。しばらく続け、結果的により課金が多いグループバナー画像がより最適。繰り返すことでより効率的なバナー画像が完成。

#

ゲームパラメータは簡単にデータを調整できる。しかしこれは不十分。人間同士のプレイ分析適応できない。例。「開始直後に他のユーザーと対戦し3連敗したユーザーの70%はそれ以上プレイを続けない」という分析結果があると仮定。これはゲームパラメータでは解決できない問題。開始直後のユーザーは誰もが同じ強さ。ゲーム内で最弱。パラメータの調整とは別問題。解決策はボットの利用。開始直後のユーザーより弱いボットを用意。開始直後のユーザーボットに優先的にマッチングボットの内部パラメータは開始直後ユーザー以下だかユーザーにはユーザーと同程度のパラメータに見せる。ユーザーは確実に勝利できるので3連敗してゲームを辞めてしまう可能性は激減。またユーザー自分と同程度のパラメータの相手に勝利したと信じている。プレイ継続するモチベーションに繋がる。ソーシャルゲームプレイ中の人は確認推奨。理論ユーザー全体の対戦での勝利数と敗北数は一致。上位のユーザーは勝利数のほうが多く下位のユーザーは敗北数が多い。コアユーザーでないのなら敗北数が多いのが正しい。もしもあなたが下位ユーザーにもかかわらず勝利数のほうが多いのであればあなたボット感謝する必要がある。逆の例:ロンチ直後のランキング上位にはボットを置く。それがないと初期ユーザーはすぐ上位到達。同ボットゲーム人口が大幅に増加したら不要になることがおおい。

#

課金でも分析結果にボット適用するのは重要。例。「課金経験でしばらく連勝を続け宝物のコンプリートまであとわずかのユーザーに突然強力な一人のユーザーが連日攻撃し続け宝物を奪いにきたときユーザー課金アイテムを購入して防衛する可能性が高い」という分析結果があると仮定。ユーザー心理は、今をしのげば他ユーザーには連勝を続けられると考える。今だけでもと課金を行う。これを再現するボットの開発は容易。データベース検索して課金経験でしばらく連勝を続け宝物のコンプリートまであとわずかのユーザー発見。そのユーザーと対戦可能で勝利できるパラメータボット検索ボットは前もって様々なパラメータで大量に用意しておくのは当たり前。発見したボットユーザーと対戦し対戦結果をボットの勝利でデータベースに書きこむ。これでユーザー課金する確率が飛躍的に高まる。課金経験ユーザー課金経験させることは実に重要。一度同様のボットプログラムを開発したら後は全自動継続的に動作するのは当たり前。分析ボットの組み合わせアプローチ日本ソーシャルゲームの驚異的課金率の施策の1つ。

#

このようなパターンユーザーアクティビティを分析することで無限発見することが可能。ゲームの盛り上げと収益の最大化に大きく貢献。あと1つ例を。課金経験ゆったりプレイユーザーボットが仲間申請。ボットゲーム情熱的にプレイ課金も積極活用。仲間ゆったりユーザーボットプレイ結果がどんどん伝わる。多くのソーシャルゲームでは仲間のプレイ状況は断片的にユーザーに知らされる。中のプレイ状況は大きな刺激。仲間に影響されてよりプレイが活発に。「ユーザープレイ頻度は一番プレイが頻繁な仲間のプレイに近づいていく」分析結果への対応。地味であり効果は直接でないが確実にある。ボット数の効率化の観点から、1つのボット100人以上のユーザーと仲間になるのが望ましい。ゲーム内の仲間人数制限をボットに限り解除。ユーザーボットプロフィールを見たときボットことが露見すると冷めてしまう。表向きは仲間人数制限を解除していることが露見しないように。

#

伝統的なRPGゲームではユーザーの進捗状況に応じて十分な強度の仲間と敵を提供します。これとソーシャルゲームボットは近似している。ユーザーモチベーションを上げるのが目的のは同じ。RPGモンスターと敵はユーザーコンピュータAI操作ことを知っている。それでも十分楽しいが。しかしそれが人間ならもっと楽しい。そこでMMOしか人間は己もプレイヤーユーザーに合わせて適度なパラメーターで楽しさを演出などしない。そこで人間擬態したボットユーザーに合わせてゲームを盛り上げる。ユーザー人間だと信じているのでモチベーションも最高に。あらゆるゲーム問題点完璧に解決されている。ボットの役目はユーザーの退屈に刺激を与えること。ゲームボットだらけ必要はない。賢いボット利用を。このようなボット効果ソーシャルゲームユーザー間のバランスを調整しモチベーションを維持するために非常に大きいですボットほとんど話題にされない。技術情報に積極的な企業ボット不思議と話題にしない。結果。ソーシャルゲーム開発会社も知らないところが多い。ボットを利用するソーシャルゲームはむしろ少数派。ゲームパラメータ調整だけでは限界がある。ユーザーアクティビティのログ解析はハイレベルだが本当に重要ですログ分析に基づいてボットが適切なアクションを残すことでユーザーを興奮させるのでゲームに活用してください。また歴史人間コンピュータ黎明期以来、初めてボット人間の見分けがつかない世界技術革新を達成したことに多くの技術ユーザーは興味を抱くであろう。ソーシャルゲーム会社技術者を積極採用中。その一端はより優れたボット開発。興味があるなら是非応募を。ソーシャルゲームの一層の発展を願う。

#

最後。謝罪。文章下手であり遺憾の意を表明。修正大歓迎。

2011-08-29

ヤフー知恵袋API』 で 『ヤフーバカ袋』 を作った


背景

みんなも知っての通り、前々から2chなどでヤフー知恵袋が『Yahoo!バカ袋』『Yahoo!知恵遅れ』とネタにされています

たとえば

Q : 健康ランドのお風呂場で、オナニーした人いますか?

A : 申し訳ありません・・・ついつい気持よくなって・・・

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1252778297

Q : 食パンマンの顔は何枚切りなんですか?

A : 何枚切りだろうが、彼は二枚目です

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1315883

こんな質問するのは一体何者なんでしょうか。

おもしろいので、こういう質問を集めるサイトを作ってみました。


どんなサイト?

知恵袋URLコピペで登録するだけのシンプルサイトです

http://y-kichigai.info/

サイト名前は『ヤホーおバカ袋』となっていますが、最初は『Yahoo!キチガイ袋』でした。流石にヤフーさんに怒られるかなと思って控えめにしましたwww

ドメインキチガイのままですがw

当面は2chに挙がった質問をのっけていこうと思っています

ぜひみんなもおもしろい質問をのっけていってください^^

では技術面も書きます(キリッ


技術的なこと

Yahoo知恵袋APIOAuthを使って書き込みなども出来ますが、今回は記事の内容を取得するだけだったので楽でした。

ひとまずAPIを叩いてXMLを見て、あとは配列にして...と簡単にとれました。

環境Apache+PHP+MySQLを使っています。よくあるあれです

jqueryも使っていますjqueryプラグインはすごく豊富ajaxを使ったフォームもtwitter風のメッセージバーも超簡単に設置できました。

あと、cssyahoocssフレームワークを使っていますyahoo css gridsが便利で、http://developer.yahoo.com/yui/grids/builder/ これを使えば土台が簡単にできました。。

デザインアイコン載っけりゃいい感じに見えるので、http://photoshopvip.net/ からテキトウに見つけます


さいごに

読んでくれてありがとうございました^^!

せっかく作ったので、誰かに教えたくて。。。

ぜひ使って、おもしろい質問を共有しましょう^^

要望あればぜひぜひください。

2011-08-04

独学のプログラムエロ動画検索作ってみた

【お知らせ】2011/09/07

新しいエロWEBサービス作りました

http://d.hatena.ne.jp/uniqueweb/20110906/1315285545



プログラムは全く得意じゃないけれど最近よく見かけるようになったエロ動画検索自分でも作ってみたくて頑張ってみました。

近年、インターネットの普及によりエロ動画が自宅で簡単に見れるという素晴らしい時代になりました。

自分が若い頃はインターネットなんてものはなくエロビデオが主流でドキドキしながらレンタルビデオ屋に行き、可愛い女の子レジにいない隙を見計らってお兄さんにパッケージを伏せて空箱を渡しビデオを借りたものでした。

お兄さんにビデオ空箱を渡そうとした時に可愛い子がレジに戻ってきて焦って渡すのをやめてものすごく変な動きをしながらエロビコーナーに引き返していくなんてことも多々ありましたw

僕のお気に入りといえば「白石ひとみ」や「あいだもも」といった女優でよく借りてました。エロビを借りるということがものすごく恥ずかしい時代?年頃?でカモフラージュ普通ビデオと一緒に借りるということもしていました。それはそれは大変な思いでオナニーしてたんです

しかも、ビデオデッキ自体が貴重な時代でリビングに一台しかないのが当たり前でした。

深夜家族が寝静まってからヘッドフォンビデオを抱えリビングに行き暗がりの中でヘッドフォンテレビ差し込んでビデオ再生ボタンを期待に胸をふくらませながら押したものです。いいシーンを何回も見るためにビデオを巻き戻すんですが、ビデオを巻き戻すガチャガチャンという機械音で家族が起きてこないか?とかそれはそれはドキドキしながら見てました。一仕事終えたあとヘッドフォンを外したらジャックが外れていて大音量で喘ぎ声が響き渡っていたなんてこともありました。誰も起きてこなかったのは優しさなんでしょうか?w

さて、大分前置きが長くなりましたがエロというものものすごい技術発展させるものだと思いますエロのおかげで日本ビデオは普及しエロのおかげで日本インターネットものすごく普及したと言っていいと思います自分エロを通して技術の発展に貢献し自分自身のスキルアップになれば。という高い志を持ってこのサイト制作しました。決して自らのオナニーライフの充実と性癖を充たすため作ったわけではありません・・・

※2011.08.07 利用中のサーバーに障害が発生しているようで現在サーバー接続できない状態となっています・・・

※2011.08.07 23:53 復帰した模様です

サイト名:ヌキネーター

サイト名の由来は抜きネタからきています。抜きネーター、ヌキネーターという感じです

エロサイト制作工程日記にしてみたんで良かったら読んで下さい。そしてこのサイトを使って夜いろいろと励んでくれたら嬉しいです

では制作日記を書いていきたいと思います

サーバー選び

まず前提条件としてお金ほとんどかけたくない。アダルトサイトであるということから

サーバー選びからはいりました。

月の予算は5000円以内で考えていたのでけっこう探すのが大変でした。

日本アダルトサイトを許可している所はかなり限られていてさらにやりたいことができるのは

専用サーバーVPSしかないのでそうなると専用サーバー予算オーバーなので

VPSで探すことになり検索しまくってはじめに見つけたVPSはKAGOYAのVPSだったのですがβ版で募集を締め切っていて泣く泣く諦めました。

KAGOYAはかなり評判がいいみたいなので使ってみたかった。

次に見つけたのが○○○VPS海外サーバー日本語サポートがあり転送量の制限なしディスク容量100G

月1300円程度で借りれるということで初期設定費用に5000円程度かかりましたが借りてみました。

結果、ここは最悪でした。

  • 通信が頻繁に切れる
  • 激重
  • 借りて一ヶ月もしないうちにサービス継続が困難になりそうなのでIPが変わるとかメールがくる
  • まりに通信環境が悪すぎるとメールすると環境調査に協力してくれとメールがくる
  • 時間をかけて沢山の項目を調べて返信するも全く返答がない。

まりの酷さに1ヶ月で解約。

よく調べてみたら評判がものすごく悪い某VPS再販らしいです

お金時間をドブに捨てました・・・

もう失敗したくないと思い今度は比較的有名な海外サーバーLINODE

日本語サポートはないけれど抜群のサポートです

iptablesの設定でどうしてもうまくいかなくて拙い英語メールしてみたら

10分しないうちに返信がきました!

メールに書かれているとおりにコマンド入力したらあっさり解決。

素晴らしい!はじめからLINODEにすればよかった。

担当ブライアンはなぜか分からないけどとてもフレンドリーで親切に感じましたw

サーバー設定

LINODEは複数のディストリビューションから好きなものを選択できるので

とりあえず、64bit版を選択。

サーバー設定はほんとに面倒ですね。

一番面倒だけど重要だということで

SSH

Tripwire

chkrootkit

Clam AntiVirus

iptables

Apache

SSL

その他各種監視ツールの導入をしました。

ほんとに面倒でした。

データベース

はじめはmysqlストレージエンジンgroongaを使おうと思ったのです

初めに借りた最悪なVPSOSが32bit版だったのでgroongaがのソースが見つからずなぜかと思っていたら

どこかで見つけた記事で32bit版ではgroongaの性能を発揮しきれないということで32bit版の提供をやめてしまったらしいと書いてたので

じゃあ、sennaにするかということで最悪VPSsennaインストール

その後LINODEに変更したのでOSに64bit版を選択し念願のgroongaをインストール

しかし、調べてみると

などが理由で、結局sennaに戻して2度手間に・・・

プログラムもそれに合わせてその都度書き換えたので2度手間どころか3度手間4度手間でした・・・

senna導入はrpmでさくっといけるので簡単です

依存関係で少しはまりました。

まず

# rpm -qa | grep -i mysql

mysqlインストールされてたら削除

perl-DBIが必要なのでインストール

# yum install perl-DBI

そして下記の順番でインストール

rpm -ivh mecab-0.98-tritonn.1.0.12a.x86_64.rpm

rpm -ivh mecab-ipadic-2.7.0.20070801-tritonn.1.0.12a.x86_64.rpm

rpm -ivh senna-1.1.4-tritonn.1.0.12a.x86_64.rpm

rpm -ivh MySQL-shared-5.0.87-tritonn.1.0.12a.x86_64.rpm

rpm -ivh MySQL-client-5.0.87-tritonn.1.0.12a.x86_64.rpm

rpm -ivh MySQL-server-5.0.87-tritonn.1.0.12a.x86_64.rpm

rpm -ivh MySQL-devel-5.0.87-tritonn.1.0.12a.x86_64.rpm

my.cnfの設定をして終了

で肝心の全文検索ですデータ件数が5万件程度で少ないせいなのか、あいまい検索と比べてそれほど速さを実感できなかったです・・・

でもきっとすごく速くなったはず!

ちなみに「麻美ゆま おっぱい」で検索した場合、0.01 secで結果が返ってきました。


動画データ作成

さて、動画データ作成ですがいくつかのエロサイト制作記事でもあるようにスクレイピングということをします。

スクレイピングとはWEBサイトから特定の情報だけを取得することでネット上にあるサイトクロールして必要なデータだけを拾ってデータを作るといった感じでしょうか。

スクレイピングプログラム自体は以前にTidy関数を使って為替データ10分おきに取得するような物を作ったことがあったのでそれほど時間はかからいかなと思ったのですがけっこう時間かかりました。

スクレイピングにはTidyhtmlSQL、それにPHP Simple HTML DOM Parserを使いました。

下記のサイトを参考にしました。

phpによるスクレイピング処理入門

SQL みたいな文法で HTML を抽出する PHP のライブラリ

htmlSQLよりアツい!?jQueryみたいにセレクタでHTMLをparse(解析)する「PHP Simple HTML DOM Parser」

つの中で抜群に使えるのはPHP Simple HTML DOM Parserだったんです

ループ処理させるとメモリがすごいことになって今回のようなスクレイピングに向いてないみたいで

結局、htmlSQLTidyの両方を使ってスクレイピングしました。

両方ともPHP Simple HTML DOM Parserに比べるとうまくデータの取得ができないことが多く残念な感じなんですが他に選択肢がないので・・・

使える順に並べると

PHP Simple HTML DOM Parser

htmlSQL

Tidy

といった感じかもしれません。

おおまかにデータを取得して正規表現で特定データを抜き出しました。

広告との連携

広告にはDMMアフィリエイトを利用しています

http://affiliate.dmm.com/link.html

利用可能な物はパッケージ画像、サンプル画像(縮小)と書かれていたのでそれに従い画像を利用。

注記に※ユーザーレビュー引用いただけません。とだけ書かれているのでそれ以外は引用ありと判断して説明文とタイトルなどを利用

女優データジャンルデータDVDデータ、を紐付けたデータベース作成検索ワードに応じて検索結果に関連する商品を表示させるようにしました。

現状、売り上げ0で意味があるのか分かりませんけどw

負荷対策とか転送量とかDOS攻撃対策とか

エロサイトということで多少はチューニングとか設定とかしないとまずいかもと思い色々調べて設定しました。

やったこと

KeepAlive On

MaxKeepAliveRequests 60

KeepAliveTimeout 3

<IfModule prefork.c>
StartServers       7
MinSpareServers    5
MaxSpareServers   10
ServerLimit       30
MaxClients        30
MaxRequestsPerChild  4000
</IfModule>

様子見ということで2日間で設定してみました。

query_cache_limit=1M

query_cache_min_res_unit=4k

query_cache_size=16M

query_cache_type=1

とりあえずこんなところを設定してみましたが、爆発的なアクセスがあるわけでもないので有効なのか今のところ分かりません(-_-;)

Apache Benchでテストはしてみましたけど問題はない感じですが実際にチューニングができているか分かりません。


サイトデザイン

プログラマーとして有名なゆうすけさんのサイトgoogleを参考にしました。

シンプルで使いやすいようにしようと思いこのデザインしました。

3カラム中央可変となっています

クロスブラウザIE7、firefox3、chromeで行いました。

可変ものって作ったことなかったんですがけっこう面倒なんですね。

サイト機能

ブックマーク機能とメニューの折りたたみ機能検索結果の表示方法切替を作りました

まず、ブックマーク機能ですログインなしで気に入った動画ブックマークできるようにしました。

ブックマークに追加した動画ブックマークページで確認できるようにしました。

cookie機能を利用したらいけると思い色々調べてjquery.cookie.jsを利用。

保存したクッキー情報を呼び出してphpに渡して処理し指定要素にブックマーク一覧をloadメソッドで表示させるという感じです

$(function(){
$("#youso").load("xxx.php");
});

メニューの折りたたみ機能は人気AV女優AV女優別、人気タグなどをそのまま表示させるとずらっと長くなって邪魔だったのでつけました。

これには同じくjquery.cookie.jsを利用しました。

参考サイトhttp://blog.caraldo.net/2009/03/newjqqookiemenu.php

検索結果の表示方法切替にはZoomer Galleryを利用しました。

参考URLhttp://phpjavascriptroom.com/?t=ajax&p=jquery_plugin_zoom#a_zoomergallery

検索結果ページで表示される

[ここの画像]

××× の検索結果

44件中 1~10件目を表示

ここの画像の部分をクリックするとgoogleイメージ検索みたいに一覧でイメージ表示できるようにしてみました。

動画表示ページ

基本的に動画の埋め込みを許可しているサイトのみプレイヤー表示をしそれ以外は画像を表示し動画データリンクするようにしました。

埋め込み部分はあらかじめそれぞれのサイト対応したプレーヤー部分のコード記述しVIDEOIDの部分に置き換えるような形にしました。

XVIDEOSを例にすると

XVIDEOS場合かならず動画urlhttp://www.xvideos.com/videoXXXXXX/のようになりますのでXXXXXXの部分を

VIDEOID部分に置き換えるようにプログラムを組みました、

埋め込み部のソース

>||<object width="510" height="400" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" ><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="allowScriptAccess" value="always" /><param name="movie" value="http://static.xvideos.com/swf/flv_player_site_v4.swf" /><param name="allowFullScreen" value="true" /><param name="flashvars" value="id_video=VIDEOID" /><embed src="http://static.xvideos.com/swf/flv_player_site_v4.swf" allowscriptaccess="always" width="510" height="400" menu="false" quality="high" bgcolor="#000000" allowfullscreen="true" flashvars="id_video=VIDEOID" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>
||<

その他の動画サイトURLの一部分のデータを使っているので同様の処理をしました。

まとめ

実際の作業は2、3週間ですが色々調べる時間が多くて制作に2ヶ月くらいかかりました。

自分エロ動画検索を作ってみて有名プログラマーさん達がいかに優秀なのか思い知らされました。

皆さん思いついて数日で作ってしまうのでびっくりです

全くWEBの知識がない人で4、5ヶ月ですごいの作っちゃう人とかもいるみたいですし世の中広いな~と思います

しかし、エロサイト作りで勉強になりますね~

大分、色んな知識を得ることができました。

これからプラグラム勉強しようと思う人はぜひエロサイトから入ってみて下さい。

きっと楽しいですよ!

そんなこんなで?頑張って作ってみたエロ動画検索、良かったら使ってみて下さい。

これで少しは技術の発展に役立てたでしょうか?w

アダルト動画検索ヌキネーター

P.S エロサイトを作っていてはじめは楽しくて興奮しながら作ってたのです最後の方はエロい物を見ても全く反応しなくなりましたw

  不能ではないんですけど・・・現在も性欲が著しく減退しております・・・

  そしてスーパーpre記法がうまういかないのはなぜ?はてな匿名ダイアリー投稿全然からない・・・

  そしてそしてプログラマーさんとかデザイナーさんとかエロい人とかお気軽にお声をおかけ下さい。



【お知らせ】2011/09/07

新しいエロWEBサービス作りました

http://d.hatena.ne.jp/uniqueweb/20110906/1315285545

2011-07-20

RubyKangi #3 / Final RubyKaigi, Final Day

週末に行ってきたイベントだが、ちょっとインパクトが強すぎて、あとたぶん昼から通しで追っかけてるのは自分だけなので、この話誰かに伝えたい!と柄にもなく思ってしまった。

というわけで自宅Wikiから一部編集して張ってみる。

parse.yで構文いじり

  • 冒頭は yacc/C レベルでの正統的なid*追加して・・・の話かな(遅刻で聞けずだが)
  • 途中で Ruby レベルでできるだけする、という話に
  • 最後の end 羅列省略のための ennnnd は爆笑(Lisp cdddrのパロ)

Art with Glitch

活動報告:るびま分だけ

  • あの充実サイトの企画・運営話と聞いて!
  • 本当に毎回出し切ってる。書き溜めなし、揃った分は全力で出す
    • 「次号はないから」と毎回思いながら出している #なんという一期一会
  • 数年間は石の上だったが、遂に7年目。会議と違い、まだまだ終わらないよ!
  • 執筆企画いつでも募集してます
  • 記事の質とかインタビューで人を見せる企画とか、ホント魅力的だよなぁ

Hacking Ruby

GIS with Ruby

sinsai.info

  • どこらへんがRubyかと思ったら、やっぱりPHPだった。
  • PHP(Usahidi)でのスピーディーな立ち上げ話をしつつ、ugly codeをdisるTL
  • Ruby?Hack4Japanで書いてる人いるよー位(w
  • でも、来日した人に、日本はまだまだ復旧途上だという事は判ってもらえたか

Rails @ NotRubyKaigi

Fabio Akitaさん話

なぜRubyか、なぜRails

***みんながするから、は自分コモディティ化!***

世界に出るために:英語

ここまで、日本語でウケを取り、アメリカ人しか聞こえない英語をしゃべりつつの話。まじありえないレベルの覚悟と実践なんだが・・・!

ブラジルを変える

この人のセッションブラジル事情の紹介みたいな話で大ホール側のセッションも覗いてみようかなと思っていた所にこれで、ただちに絶対参加すべきレベルセッション格上げされた。こんな人がいるとは。

Ruby and Rails in Brazil

で、昼休み後の問題のセッション。結局ツイートどころじゃなかったが、こんな感じ:

プログラマが学ぶべきはプログラミングだけではない。全てだ。

心理学経済学物理マーケティング、、、全てだ。

この言語をみんながしてるからなんて最低だ。自分コモディティ化だ。

そんなのはキャリアじゃない。僕はこんな風潮と戦う。

Javaはあれが酷いとかPHPがとかいう態度でRubyを使うのも無駄だ。

自分がすべき事を良くできるから選ぶ。それ以外の姿勢は間違いだ。

自分が何を成せるのかだけが問題なんだ。プログラミングだけの話ではない

なんという激熱トーク。本当に小さかった南米Rubyコミュニティを仲間と共に成長させ、いまやRubyConf Brazilとか南米で何個もイベントが立ち上がるまでに育てた。この伝道のため、ここ数年で80箇所は回って普及に努めたとかとか。ブラジル事情への関心と関係なく、この熱量を体験できてよかった。

最後時間オーバー後の「あと一言だけ(本当はあと1分だけと本人は言っていたのだが、わざと誤訳してタイマー役の人に会場から叫んだ自分w)」でどんなにダメだとされていても、諦めずに進めという、過去偉人が貶められたり失意にあった時代の動画もよかった(もっとも、この話は知っていたのでインパクト自体は薄めだった)。

DeepConnect話

ORMインプリ

この後はLTとクロージング

クロージング:今北三行

インパクト強すぎw

これ漫画系展開をバックボーンにしたエンタテイニングなスタイルだと理解せずに真に受けると大変だなと心配になったり。なにしろ上は三行だけど全部通しで書くと

***I will crush you***

  • みんな、大人気ない大人になって競ってハックしようぜ!

真面目に受け取ったらヤバイ発言多すぎだろ・・・

 こ れ が 締 め の 講 演 か よ !

そういえば途中にまどマギネタも入ってた記憶があるのだが、上のインパクトが強すぎてどこかに飛んでった。

その後の高橋さん最後挨拶スタッフを集めてのスタンディングオベーションはちょっとうるっと来た。初参加だから今回の運営自体への思い入れはないのだけど、この回だけでも感激することが多かった。この完成度に達するまでどれだけの努力と熱意が投入されていたかと考えると。

隣の席が実はtdtdsさんでびびってたのだが、最初に立ち上がったのを見て、続く二人目のタイミング大事!とすぱっと立ち上がってみてよかった。その後前列の人がみんな!立とうよ!みたいにやって一気に雪崩状態。

herokuありがとう

これで会議は閉幕したのだが、さらにherokuの緊急パーティーが開催され、思い切って行ってみた。まあ、懇親会に輪をかけたリア充な雰囲気でまともに話せなかったのだが、

  • まつもとさんと入店前にgdbとかlua/rite/pythonの話ができた
    • 名刺を貰うのではなく、名前を覚えてもらえる自分になりたい!的なことを言った気がする(汗
    • まじでパッチくらいは書かないとだめだこれは / ていうか名刺とか割とどうでもいい(を。名刺よりパッチを受け取って下さい
    • 喉が痛そうだということに途中で気付いて申し訳なかった
  • ちなみに英語漬けの決意は、大学に入ったら自分ポルトガル語しか知らないがために遅れを取り、それが悔しくてやったそうな
    • その悔しさでその行動が取れる人は少ないと思う。やはりすごい

こんな一日だった。熱かった・・・

2011-04-14

パスワード個人情報を扱うサービスを作る際に気をつけたこと

HTMLはわかるけど、サーバーサイドはお遊びでphpを触ったぐらいだったので、会員制でデータをためこむサイト作りに初めて挑戦した

今回重視したのは、「いか個人情報をお漏らししないようにして、万が一漏らしても被害を少なくするか」ということ。

世の中、有償サービスでもパスワードを平文で保存してるサービスが意外と多いらしいので、流出した時のリスクを少しでも減らせる対策として書きます

今回のシステム構成

サーバーロケットネットキャンペーンにでレンタルサーバ年1000円ポッキリプラン

クライアント側の処理HTML+CSS+jQuery(とプラグインもろもろ)
サーバ側の処理PHP
WebサーバーApache
データベースMySQL

個人情報こわい!

個人情報ビビる漏洩とかまじ困るし怒られるしこわい。

俺も巻き込まれたところでは、サミータウンがメールアドレスパスワードセットでお漏らししてお詫びに1ヶ月無料なにそれこわい

サミータウンだけならまだいいけど、メアドパスワードを他のサービスで共通化して使ってる情弱なので、

共通化してメアドパスワードをどこかのサービスが一箇所でも漏らすと、ヤフオクID乗っ取り事件みたいなことになる。

http://internet.watch.impress.co.jp/cda/news/2008/09/26/20967.html

だってできれば人様のメールアドレスパスワードとか預かりたくない。

万が一、肉親のメールドレス発見してパスワードにrapemeとか入ってたら明日からどういう顔すればいいかからない。

ググってみてもどこにも情報のってない。うーん困った。ダメもとで「個人情報ってどうやって保存したらいいんだろう。。。」

って、twitterでつぶやいたら、「住所とかは可逆暗号化でいいけど、パスワードハッシュで不可逆化しないとだめだよ!」

と、呪文のようなありがたい言葉を教えてもらった。

暗号化の種類

「住所とかは可逆暗号化でいいけど、パスワードハッシュで不可逆化しないとだめだよ!」

何のことかわからなったので、調べてみると、

・可逆暗号=元のデータに戻せる暗号化方式。

ハッシュハッシュ値を使った、元のデータに戻せない暗号化方式

うーん。。。よくわからん。。。

電話番号とか住所は、第三者が使用する情報なので、可逆が必要。パスワードは、認証しか使わないので、

ハッシュ値結果が一致すれば元のデータがわからなくてもOK、という方式なのでこういった暗号の使い分けをする。

●可逆暗号イメージ(もとにもどせる) 暗号キー開発者が指定する。
090-xxxx-xxxx →(暗号化)→ !'&%($% →(復号化)→ 090-xxxx-xxxxハッシュイメージ(もとにもどせない) 
登録passwordDBに保存)→(ハッシュ値抽出)→!"$#'$#="
ログインpassword →(ハッシュ値抽出)→!"$#'$#="
※二つのハッシュ値が合っていれば、パスワード一致として認証する。

暗号化の実現方法

可逆暗号電話番号とか住所とかに適用

今回はMySQL関数で実現した。encode関数暗号化して、decode関数でもとに戻す。

例えばtel_noという項目だけあるテーブルがあるとすると、

//データベースに保存する時
insert into テーブル名 (tel_no)  values (encode(tel_no,'暗号キー'));
//データベースから取得する時
select decode(tel_no,'暗号キー') from テーブル名;

これで、データベース格納時は暗号化(バイナリ化)されて、データベースから取り出してHTML表示する時に復号化はされる。

ハッシュパスワードかに適用

今回はphpのhash関数で実現した

ユーザ登録時>

$password=(フォームから取得)
$hash=hash('sha512',$password)
//ユーザ登録時は、ここで生成した$hashをデータベースにぶっこむ。

ユーザ認証時は、入力されたパスワードと、データベースパスワードが一致するかチェック。

ログイン認証時>

//フォームから入力されたパスワード
$input_password=(フォームから取得)
$input_hash=hash('sha512',$input_password);

//MySQLに保存されたパスワードを取得(略)
$db_hash==(データベースから取得)

//判定
if($input_hash==$db_hash)
	echo 'ログインしますよ!';
	//ここにログイン処理を書く
else
	die('メアドパスワードがあってないよ!');

これでもしSQLインジェクションとかでデータ流出しても、ハッシュ暗号パスワードに関してはまず解析されないはず。。。

可逆暗号データphp側の暗号キーが盗まれない限りバレない。。。はず。。。

暗号化する対象のデータをえらぶ

何でもかんでも暗号化するとコードが煩雑になるし、パフォーマンスにも影響でそうなので、

住所データ都道府県とか、漏れても良いような情報暗号しませんでした!!

本人が特定できなければ個人情報はないらしいので。。。

個人情報保護法
2条による定義個人情報」とは、生存する個人に関する情報であって、当該情報に含まれる氏名、生年月日その他の記述等により特定の個人を識別することができるもの(他の情報と容易に照合することができ、それにより特定の個人を識別することができることとなるものを含む。)をいう。

http://ja.wikisource.org/wiki/%E5%80%8B%E4%BA%BA%E6%83%85%E5%A0%B1%E3%81%AE%E4%BF%9D%E8%AD%B7%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E6%B3%95%E5%BE%8B#2

これで、もし漏れても、俺、ウンコ漏らして臭いけど、パンツから出てないからいいよね?というレベルはなった。はず。

お漏らさないようにキツくする

万が一漏れても大丈夫!と書いたけど、そもそも漏らすなというお話になる。色々調べた結果、以下の対策をほどこした

SQLインジェクション対策

・当初jQuery側でSQL組み立ててPHPに渡してたので、これだと任意のSQLが実行できて漏らし放題なのでやめる。

GETとかPOSTでDBに渡すパラメータを扱ってる場合、ちゃんとエスケープする。

例えばログイン認証するPHPで、GETメソッドでフォームからデータを取得するような場合

$id=$_GET['id']
$pwd=$_GET['pwd']
$sql="select * from ユーザーテーブル where uid='$id' and pwd='$pwd'

とかやってると、login.php?id=admin'&pwd=' OR '1'='1とかパラメータを渡されるとあら不思議

select *from ユーザテーブル where uid='root' and pwd='' or 1=1

で、誰でもログイン出来ちゃう!ので、mysql_real_escape_stringでエスケープしたり、渡されたパラメータが想定した値かどうか(例えば数値かどうか、とか)のチェックをいれたりする。

クロスサイトスクリプティング

・保存するデータタグJavascriptを埋め込まれないように、保存されたデータを出力する場合PHP側でhtmlspecialchars関数使ってエスケープするようにする。


こんな感じでお漏らし対策をした。間違いがあったら教えて欲しい

ちなみに出来上がったサイトはこれ。

http://oreni-makasero.com/

2011-02-14

LLしかできないのに「大規模データ処理」とか最高にワロス

1981忘年会でLL一筋な人が酔っぱらって「大規模データ処理がさ〜」なんて言うもんだから遠くで話聞いてたらお子様レベルの内容で噴飯ものだった件について書く。

LL馬鹿「この前会社に頼まれて20GBのテキストデータを処理しちゃってさ〜 まじで難儀したよ〜」

Aさん「へーそうなんすか」

LL馬鹿「でもMySQLインデックス適切に張れば大丈夫 インデックス大事よマジで

Aさん「あー、大事ですよねインデックス

LL馬鹿「MatzRubyだと遅いから1.9YARVで処理したら2倍処理が速かったね YARV凄いよYARV

Aさん「へー、そうなんですか 凄いですね」

Bさん「pythonだともっと速いっすよ!テキスト処理ならpythonいいっすよ!」

LL馬鹿「あーわかるそれ!でもインデント嫌いなんだよオレw」

Bさん「実はオレもっすw でも20GBのデータって凄いっすね 何のデータですか?」

LL馬鹿「言えるわけ無いじゃんw しか階段一つ登った気がするね」

 

20GBって、、、、20TBならまだわかるけど、、、、、

後で知ったが妙にクールにLL馬鹿の話を受け流してたAさんはHadoopやらバリバリの人らしい

  

はあ、、、LL一筋の人ってLLが世界の中心でLLで何でも解決できるとか思っちゃってるみたいだし恥ずかしい生き物だと思いますよ

それでいて「Java本質的コードが少ないから駄目言語」とか言っちゃう

オレも数年前までPerl最高な世界にどっぷり使ってたけど排他的馴れ合い丸出し日本人コミュニティうんざりしてJava勉強しだしたけどまじで正解だった

なんつーか時代に乗れてる感じ?

時代を作ってる感覚にすら襲われる瞬間もある

大規模データを処理するってのはそういうことですよLL一筋諸君

そろそお前らも時代を作る側に来いよ

過去偉人の遺産の上に胡座かいて口先三寸な己を恥じろよ

 

さて寝るか

明日もオレの手から放たれたコード世界を動かす

そんなときめきサンデーナイト

2011-02-11

http://anond.hatelabo.jp/20110211004212

元記事にも100人1000人のユーザーならSQLでも問題ないって話をしたと思うが 1万人ユーザーって簡単なの?そもそも。って話だよね。

そしてその時のサービスは本当にツイッターたいな大量データサービスなの?と。(それってツイッターのコンペでサービスとして成り立たなそう。違えばいいけど)

 

ORACLでハイエンドサーバーグリッド使うのと 自分MYSQL分散書くのと HADOOPにするのと どれが得かはやってみないと分からん

ダウンタイムを短くしようとすると、2011年現在では組めるならばオラクルな気はする。すくなくとも簡易的にベンチとらないとわからん

 

Hadoopの怖いところは所詮Apache.orgということで、Apache.httpdのように急激な開発が流行から外れて止まってるかのようになることがあることなんだよねぇ。

Apache.httpdって、MPMいまだpreforkとか あってWorkerで event とかって、しばらく前は、いま不安定とかそういう開発状況だと思ってるんだけど。

event MPMってもう安定化したの?event MPMのコア概念である

 『Workerですら遅いから カーネルコールバックを使おうっていう流れ』自体はもう10年近く昔の概念だと思ってるんだけど・・・

 

現在 一番イケてるのはHADOOPだとは思うけど。 Rubyが一時期ほどには勢いがないのと一緒で(いちおうRoRから知っているみとしては、RoRによる隆盛が奇跡のようなものだが

まだ、怖いよね。 障害復旧の実装もまだ、弱いし。個人的にはZookeeperがもっとちゃんとなったら、もう1度 調査する! という感じで塩漬け状態なのがHadoop.

少なくとも単一障害点のフェールーバー周りが本家でどうなるかとかだねー。

 

どうでもいいけどPHPの方が好きなので PHP for apache event MPMを安定化希望・・・ まぁ、Perlもいいよね。

 

だがRubyPASCAL だけは無理だ。BEGINとか書いてあるソースを高速に読みこむのは無理。()ぐらいならいけるけど、BEGINってなんだよ。図形認識できないから読みづらいよ。

2011-02-10

http://anond.hatelabo.jp/20110210172926

から、100万件にするために、どんだけユーザー数が必要なの?

フルメッシュじゃないとした場合に。

ユーザ100人が たとえば1日10ツイートするとして 1000ツイート 100万件に達するのに 1000日 約3年

ユーザー数1000人なら 100日。

 

何が言いたいかというと、100日もかかるなら、バックアップタスク (たとえば5日ごとに分割)しても 1日あたりの件数はたかが知れてるから

余裕で持つだろ。という話。

ちなみに、100万件でもう崩壊しちゃうの? 数百万件ぐらいつっこんだことあるけど・・・このレベルは平気だよね?

 

Hadoop勉強するより先に、1万人のユーザーを集めることを先に考えたほうが良い。という話がしたかっただけ。

Hadoop勉強する のが3ヶ月としても 3人月で人を雇うのと 3人月分の既存スペックマシンMySQLとどっちがいいか?というのは超微妙

ユーザー数がたくさんいるなら、そのとおり。

テーブル分割やDB分割 サーバー分割が必要なのもそのとおり。

ただまぁ・・・単純な直列テーブルだけなら、やり方はいくらでもあるし、商用クラスHadoopか?他の競合製品が出てこないか?というのは、しばらく様子見でしょ。

調べたけど、フェイルオーバー関連がまだ微妙な部分があって考えないといけないよね。

 

Google 自体が Hadoopのつかっていた、なんたらほうしきだっけ?やめて、次のアーキテクチャーにしました。ってレポでてるのに、次もHadoop保証いし。様子見。

2011-01-12

サイト運営をやってみて起こった6つの想定外

1ヶ月ほど前に、アノニマスダイアリーサービスの紹介させてもらった「完全に一致」のおっさんです

昨年11月25日に公開させてもらったサービスですが、公開から約1ヶ月半の間、いくつも思ってもみなかった事が起こりました



かに聞いて欲しいものの、例のSEの友人が精神的な病で倒れてしまい聞いてくれる人もおらず、

Twitterでは短すぎてかけず、なおかつブログもないのでここに書かせてもらいます。

「なんだ、またかよ」という方、お目汚し失礼しました



想定外1:サーバーが幾度となくダウン

最初の記事を書いて、初日から約1週間で300万アクセスがあり、この間何度もサーバーが応答しなくなるという事態に陥りました

MySQLサーバーWEBサーバーの調整を教えてもらったお陰で、かなりダウン回数減らす事ができたものの、結局全然処理が間に合ってくれませんでした

一番のネックになったのは画像の変換処理と転送量でした

公開した当初は、DMMから直接画像を読み込みを行っていましたが、怒られるんじゃないかと思い、一度読み込んだ女優画像

サーバーに保存し2回目から自分サーバーの中の画像を読み、PHPで必要なサイズで書き出すというやり方をしていました

しかし、1秒あたりのアクセス回数が多すぎた為、PHPでの処理が全く間に合わず、画像表示ができないという状況に陥りました

いくつかの画像処理PHPを探していたところ、うまい処理をやっているスクリプトがあり、それを使わせてもらいました

が、完全には解決できず、結局、VPSサーバーをもう一つ用意し、画像の処理専用で使うことで何とか乗り切りました




想定外2:大手サイトでの紹介

アノニマスダイアリーからアクセスが一段落し、そろそろ画像サーバーを消して元のサーバーに戻そうとした頃、

またアクセス数が増えだしました。何かと思ったら「R25」というサイトからした

R25の紹介記事(http://r25.yahoo.co.jp/fushigi/jikenbo_detail/?id=20101209-00004623-r25

私はこのサイトを見たことがなかったのですが、ドメインからしてYahooサービスの一つだと思います。

R25から10日間ほど継続的にアクセスがあり、ここからも300万くらいのアクセスとなりました

R25内のアクセス数ランキングでも3位まで上昇したことが大きかったんだと思います。




想定外3:海外サイトからアクセス

ある日、問い合わせフォームから漢字ばかりのメールが飛んできた為、文字化けしたかと思っていたら、中国の方からの問い合わせでした

AV NO1というサイトから来たという内容で、励ましのお言葉をいただきました

AV NO1 での紹介記事(http://avno1.com/?action-channel-name-viewblogitem-itemid-5525)

ここを皮切りに、中国韓国ロシアアメリカカナダ等、世界中の方からアクセスしていただき、特に中国韓国ユーザーさんは今でも多く来ています。

日本アダルトビデオは企画物があっていいよな!」という内容のメールを複数もらいました

海外ではあまり企画物ってないんだそうです



最終的に12月アクセス数は800万アクセスを記録。

初めてつくったWEBサービスしたが、この数字がものすごい数であることはわかりました




想定外4:DMMアフィリエイトの仕組みをしらなかった

ここからお金の面での想定外お話を。



先日の結果報告の日記で、200万アクセスあってDMMへの導入が10クリック報酬額が700円というご報告をしました

その報告の後で、R25や各国からアクセスがあったので、報酬だんだん増え、結果12月は約15,000円となりました

正直少ないんだろうなとは思いますが、15,000円は私のお小遣いからすると大金です



想定外だったのは、DMMアフィリエイトの仕組みでした

DMMアフィリエイトは、Aという商品のアフィリエイトリンクユーザークリックし、Aを買った場合報酬になるそうですが、

別のBの商品を買った場合報酬にならないらしいです

DMMアフィリエイトは1商品をどううまく推薦するかが、報酬アップの肝のようです

この仕組み上、完全に一致は全く向いていなかったのです




想定外5:スポンサーが登場

一番驚いた出来事。



サイトを作る時にいろんなサイトをみて、「広告について」というコンテンツを一応用意していました

もちろん、スポンサーがつくなんて思っていなかったのですが、12月中旬に、複数の広告代理店さんから一気に広告オファーが来ました

広告運用経験など無く、いろいろなサイトや記事を調べ、料金の提示をし、メールでのやりとりをさせてもらい、複数社と契約に至りました



その結果、一ヶ月の広告収入が合わせてなんと、30万円オーバー



DMM報酬額の少なさにがっかりしていた矢先の出来事だったので衝撃的でした

私の月給とほぼ同じ額が、突然口座に振り込まれるという、信じられない事が起こりました

契約期間は単月であるため、継続かどうかはまだ決まっていませんが。




想定外6:サイト購入希望の問い合わせ

スポンサー契約の数日後、今度は「サイトを売ってくれ」というオファーが1日に2件同時にありました

1件は大手広告代理店から、もう1件は個人の方でした



購入希望金額は、2件とも300万円という非常に高額なものを提示していただきました



しかし、もう少しやりたい事があった為、2件ともお断りさせていただきました

ありがたいことに、個人の方はお断りした今でも、ラブコールをいただいています。(この日記に書くことは了承をもらいました。)




サイト売却を断った理由

サイト売却を断った理由である「もう少しやりたかった事」の一つが、今回追加した、”会えるAV女優検索です

AVに出ている女優さん達は、キャバクラや、ヘルスデリバリーヘルスで働いている人も多く居るようで、

それぞれのサイトでも大々的に「AV女優在籍」と書いてあることが多くありました

そこで、それをまとめて検索できるようにしました



私は地方に住んでいる為、正直会える確率は低い為、都市圏にすんでいる方が羨ましいです

有名な女優さんも多く居るようで、出張に行くときには是非、とか思ってしまいます。

見ていただける方はこちらから

http://www.kanzen21.com/actress/




最後

以上ですWEBサービス運用自体が初めてなので、もしかしたら「当たり前じゃん」というような事も含まれるのかもしれません。

しかし、私にとってはとても衝撃的で、脳が痺れる体験ばかりでした

この一ヶ月半、何度も夢に出てくる程、このサイトの事ばかりを考えていました



結果的に大成功となりましたが、いろんな偶然や幸運が重なったお陰の成果であり、これが自分の力だとは思いません。

しかし同時に、"チャレンジした結果"であることは迷うごとなき事実だと思っています。

その道のプロじゃなくても、会社組織じゃなくても、専業じゃなくてもやれる。



アノニマスダイアリーに書くのは、おそらくこれが最後になると思います。

この経験を元に、さらなる努力をしてまいります

みなさん本当にありがとうございました。これから完全に一致をよろしくお願いします




完全に一致 管理人

http://www.kanzen21.com/

2011-01-05

探しているエロ動画をすぐに見つけられるシステム作ってみた

本業WEBプログラマだが仕事の合間に、アダルト動画検索エンジン作ってみた制作期間4日間(笑)

http://www.ero-engine.com/

品ぞろえがいいので、何かエロ動画たい!って時に、私はDMMを利用することが多いのだが検索がへぼくてなかなか欲しい動画が見つからなかったりするので、自分でほしい動画を探し出せるようにデータベース化しようと思ったのが最初のきっかけ。

で、キーワードとか、女優スリーサイズジャンルなどから検索することができ、一覧と一緒にサムネイルとか文章も表示されるので、欲しい動画が探しやすいかな、と。後、自分が単体女優の出演作しか購入しないので、それも検索条件に含めることができるようにしました

これからいろいろ機能追加などしていこうかなと思います。

ただ、目立った機能よりも、より使いやすいようなインターフェース作ったり、快適に検索できるように内部的なシステムの調整したりするほうが先かな。

システム的なこと

一応、安価レンタルサーバーなので、いろいろ分散処理したり、ブラウザキャッシュを調整したりしています。

元ネタ

2010-12-23

Web対戦ボードゲームチャット】を作るにはどうしたらいいだろう。

プログラミング勉強中。

そりゃあ、やろうと思えば様々な手法があるだろうけど…

いかに余計な作業を減らして「やりたいことを実現」するための作業に専念するか、を考えている。

いろんな言語への興味はあるが、むしろそのせいで今まで時間いまくってるので、そろそろ「手早く作る方法」を知りたい

あんまり色々な手法を試してもいられない。

「これ!」ってやり方を決めたい

何か、すっきりしたやり方はないものか…


作りたいもの

2人対戦ではない。4~6人前後が参加する。
プレイヤーのアテは既にある。
3Dじゃないし画像ゴリゴリ動かしたりはしない。
扱うのはテキスト中心。GoogleドキュメントやOnsheetを改造したたいな感じのものが作れればいい。
全員が全ての情報を見られるわけではない。公開情報と秘匿情報がある。
ログイン制にするかどうかで迷う(手軽さが失われる?)。
中断→再開 ができるようにしたい。
これはそんなに問題ないだろう。
対戦格闘アクションたいな「リアルタイム性が命」ってものではな
多くても1~2秒に1回くらい画面が書き変わればいい。
計算とかの処理も、せいぜい「山札をシャッフル」とかそういうのだけ出来ればいい。
べつに敵キャラ勝手に動いたりはしない。人間vs人間ボードゲームから
いちいちユーザーさんにインストール作業とかさせたくないので、ブラウザゲー(Webアプリケーション)にしたい。
…のだがブラウザゲーにすると大変なのだろうか? どうなの? って悩んでる。
「各人がサーバーを立てる」みたいなのも混乱するしタルいので、製作者のほうでサーバーを用意したいのだがどうなんだろう。
負担がどれくらいのものか気になる。月々数千円で賄えるだろうか? 同時に立てられる部屋数は、最初は2~4個くらいでいいと思うんだけど。



自分の状況

独学でプログラミング勉強中。

だが、あまり修得にばかり時間をかけてはいられない。


プログラミング言語は、C C++ Java Python Perl VB C# HSP PHP JavaScriptなど、どれも基礎を触ったりしてばかりで何年も過ごしてきた。

FLASHは持ってない。(PalaFlaは触ったことあるけど、いまいちイメージしにくかった)

なんだかんだで一番慣れてるのがHTML+CSSで、次点PHPJavaScript


jQuery大好き。 Ajax大好き。

ただ、PHPだのjavaScriptだのSQLだの、複数言語を同時に扱ってると非常に面倒。

そこでサーバーサイドJavaScriptに目をつけたものの、『Jaxer』は2008年に書かれた記事がちょっとあるばかりだし…

Node.jsってどうなんだろう…?


考えられる手法

PHP + MySQL + jQuery
いちばん無難だと思う。現行はこれ。でも面倒さが拭えないし、「MySQLでいいの?」みたいな疑問もどんどん湧いてくる。
上記のもの + Cake PHPなどのフレームワーク
自分の求めてる「手軽さ」を実現するには良さそうだが、また別の問題がいろいろ発生しまくるような気がする。
Ruby on Rails
なんか、いいとか悪いとか色んな話を聞く。
Skypeプラグイン?として作る
日本語情報が少ない。
GoogleドキュメントやOnsheetにマクロを組み込む
なんか違った。
FLASH
良さそうに思える。…が、無料ActionScriptを体験してみたら、どうも馴染めない。
Shilverlight
Javaアプレット
今までまったく触れていなかったが、もしかしたらいいのかも? と思い始めた。とりあえず今から触ってみる。


うーん、あまり纏まってないが、とりあえず現状をダンプしておく。

なんか参考になるものがあればなー。

こういうこと色々聞ける相手も周りにいないし

2010-12-04

http://anond.hatelabo.jp/20101203150748

ショックだね。超高速道路というか、そういう以前の問題だよこれは。

やろうとすることを普通の人が身につけるのに3年は掛かるだろうに、しかも、ここまでのクオリティはでない。

唸ってしまう。


HTML+CSS

意図したものを意図したように表示させるのは困難。

だが自分意図で作れる場合は、できないことは回避できる。

回避できるのであれば使うHTMLCSSは限られる。覚えるのは最小限。

Dreamweaverつこーてるのかな?

ツールが解決してくれるのならコードを書く必要すらない。


JavaScript

jQueryでやられていることを自前実装するには技術力が必要。

逆に言うとjQueryが利用できるならそれですむ。

中で何をやっているかなんて詳しく知る必要などない。

世界中のもっと詳しい人がチェックをいれてくれている。jQueryを利用したライブラリやサンプルコードも転がっている。jQueryでできないことがでてきたらどうするか? prototype.jsでも使えばいいじゃない。

ともかく回避方法はいくらでもある。


Perl

扱いがかわいそう。

自分に必要がないもの目的に合致するのに遠回りなものを切り捨てる能力がないと何時まで経っても勉強だけして終わる。


php

PHPで何かしようとしたのではなく、単なるテンプレートエンジンとして割りきって利用したようだ。

表示したいところに表示させたいものを埋め込むだけなら、それはHTMLとほぼ同等の何かでしかなくなる。

LL学習目的はないので寄り道をする必要などない。


クローラー

どの言語でも実装できる。phpを使っていて、なぜRuby

どの言語でやっても一緒なら、できるだけ自分がつくる部分が少ないほうがよい。

phpではクローラーをつくるのにいいライブラリがあるというのを聞いたことがない。

コマンドラインベースで動かす人は皆無だからね。

RubyならPerlたい正規表現に悩まされることもない。なるほど。

素人Ruby環境を例えばLinux上に構築しようとしたらかなり躓くところがあると思う。Railsを使わずにRubyで済ませたというところか。ここらへんから何か恐ろしい

逆算するとクローラーをつくるまで学習を初めてから2ヶ月も掛かっていないことになる。


Apache

クローラーをつくってからApacheを知ったというのがリアルで笑えるのだけど、恐ろしい

Ruby環境PHP環境をどうやって同居させたのかとかそういう苦労が見えない。ということ苦労しなかったのかもしれない。やはりRailsはなくてRubyなのか。

技術者を名乗る人でもRuby環境構築ができない人も多いのにこの人は素直にすごい。

何もないところからLinux環境PHPやらmySQLやらRubyやらの環境構築は熟練した人でも半日かかるめんどくさい作業なのでそれをやれてしまうというところで、3年生ぐらいのエンジニアスキルがあると俺は認める。

それは言い直すと普通に仕事として身につけたとしても一般的には3年はかかるということだ。


MySQL

はてさて、SQLまでかけるようになったというのだろうか。

DB設計は? 確かにこの内容であれば設計を要するほどの複雑さはない。1テーブルで十分。

インデックスとか貼ってないだろうなとは思わせるが、5GBのデータでもこれだけのレスポンスが出てしまう時代だ。

チューニングするぐらならいいハードにのっけなよということか。



デザイン

デザイナーとしても食っていけるだけのスキルがあるんじゃなかろうかとおもってしまう。

GIMPボタンひとつ作るのでもしんどいよ。


Face.com

もう、なんていうか調査能力もすごい。

というか調査能力がすごいんだろうな。

2010-12-03

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

もう、いいおっさんの年齢なんですが、先日、とあるWEBサービス公開しました

5年ほど前からぼーっと考えていたんですが、如何せん、事務職の自分には”創る技術”が無かった。



優れた若い技術者id:amachangとかうらやましい)や、チャレンジ精神あふれる経営者id:hiroyukiegamiとか)が出てくる中うつうつとしている自分に嫌気がさし、4か月前の7月からHTMLプログラム勉強を始めた。




本屋立ち読みしたら、まずはHTML勉強する必要があると、書いてあった。同時にCSSを学んだ。



プログラムを作りたかったので、次にJavascriptをやった。

jQueryがすごい。「プログラムって誰でもできるんだ。」この時そう思った。



検索システムを作りたかったので、本屋に行ったらCGI/Perlの本がいっぱいあったので、Perl勉強した



しかし、HTMLテンプレートが使いたかったのでPHP+Smarty勉強した



作りたかったWEBサービス大手サイトデータ検索サイトだったので、自動データを集める必要があった。

クローラーというらしい

PerlのLWPを勉強したが、データを集めた後に加工する必要があった。簡単そうだったRubyとMechanizeを勉強した

Rubyはものすごくきれいにプログラムがかけることを知った。話し言葉に近い気がする。



プログラムを作っている時、最初自分パソコンの中でやっていて気付かなかったが、実際に公開するときレンタルサーバーを使うというのを知って調べると、Linuxサーバーが多いということを知った。

から、今度は自宅のあいているパソコンLinuxを入れた。

Linuxを入れたはいいものの、全く使い方が分から四苦八苦してRubyのインストールした

世界中メインで動いているWEBサーバーApacheということも3か月前に知った。

Apacheの設定がテキストファイルなのも驚いた。cd,ls,vi,mv,cp,chmod等、基本的なUNIXコマンドを覚えた。



例の図書館の事件があったので、クローラーを動かすのをためらったが定期的にちょっとずつなら怒られないんじゃないかと、Crontabを勉強した



自宅のサーバーが壊れてしまい、構築が大変だったので今度はVPSサーバーを借りた。

同じように構築はしたがかなり苦労した。このとき、始めてmakeというコマンドを使った。コンパイルというらしい



クローラー自動的にデータを集めていたが、動かし始めて2カ月目でデータファイルが1GBを超えていることに気がついた。

このときテキストファイルデータを扱おうと思っていたが大きすぎて動かない。

SQLサーバーというものを触り始めた。

最終的にデータ量は5GBを超えた。




11月も後半、本稼働用のサーバーを探していたら、丁度カゴヤVPSサーバーベータ版を募集していた。

ここぞとばかりに申し込みボタンクリックして申し込んだ。

すごく、快適です。まだベータですが、本番稼動でも、50GBで900円という激安プランです

http://www.kagoya.jp/cloud/vps/

さくらさんの2.5倍の容量でさくらさんよりちょっと安い。

ベータ版では、3つまでOSインストールができます。もちろんそれぞれにIPアドレスが振られます

このVPSサーバー管理システムインストールし、もろもろの環境も作って、11月末についに、公開。



AV女優スリーサイズから検索できるシステム、「完全に一致です

 【完全に一致AV女優類似検索システム

 http://www.kanzen21.com/

類似検索機能付きで、2次元3次元をつなげる夢のシステムですはい

「なんだエロかよ」とか言わないでください。

真剣に作ったんだ。仕事をしながらよく頑張ったと自分をほめてあげたい







このシステムは、下記のような構成になっています。

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

サーバー:カゴヤVPSサーバーベータ版)

WEBサーバーApache

SQLサーバーMySQL



HTMLXHTML+CSS

インターフェースjQuery+selectToUISlider

検索プログラムPHP

テンプレートエンジンSmarty

クローラーRuby+Mechanize+Cron

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



サーバー上にある静的なHTMLは1ページもなく、mod_rewriteですべてPHPが処理しています。

ボタン等の画像は、GIMP作りました




一番大変だった事は、、、



このサイトデータDMM社のデータを使わせてもらったのですが、AV女優顔写真をそのまま使うのは、肖像権的にNGらしく、AV女優の作品の中からその女優の顔が一番大きく写っているパッケージを使うことにしました

しかし、女優データは約5万件。作品データ12万件。とても手作業でやるわけにもいきませんでした



結局どうしたかというと、Face.com(http://face.com/)という、画像の顔認識ができるAPI無料提供しているサービスを利用しました

同様のことができる、OpenCVというソフトがあるのですが、最初から付いているパターンデータでは人の正面の写真しか顔として認識しませんでした

それに比べて、Face.comの認識精度は驚くほど高く、横だろうが斜めだろうがかなりの精度で顔を認識してくれました

データJSON形式で返してくれる(JSONもこのとき初めて知った)為、取得したデータを後で加工しやすかったです



1.このAPIを使い12万件の作品データをすべてスキャンするプログラムを書く※1

2.顔の縦の長さと横の長さを取得

3.縦×横で顔の面積を計算

4.作品テーブルの中に3で計算した顔の面積を追加

5.SQL女優テーブルと作品テーブルを結合

6.その女優の作品の中で顔面積が一番大きなパッケージ写真をその女優顔写真として代用しました。※2

※1 APIの制限が1時間1000リクエスト迄だったので、これまたCronで・・・

※2 実際には女優テーブルと作品テーブルを繋ぐ中間テーブルのフラグONした。若干の間違いはあるものの、かなり正確に出ました





長々と書きましたが、ズブの素人から約4ヵ月でここまで出来ました

勉強する前、SEをやっている友人に話したら、「3年はかかるんじゃないか?」と言われましたが、できたものを見せたら褒めてくれました

WEBサービスを作りたいと思っていて、技術がないからとあきらめている人は、とりあえずやってみてください。意外に簡単にできますよ。

あと、クローラーが動いていると、全能感を味わえるので楽しいです






あ、あと、椎名舞さんのファンです



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

19:30追記

サーバーソフトからアラートが上がって、見てみてたらなんかすごいアクセス貰ってまして。

ありがとうございます




>カゴヤ中の人乙wwww VPSといったらさくらServersManくらいし選択肢が無いのは現状当然の認識であるはずなのに!

ゴヤ人間じゃないですよー。広告してるつもりもないんですが、ベータ版だからかもしれませんけど、すごい快適ですよ。今は。

何よりタダなので。

本当に月額900円のまま本公開になったら、環境構築もめんどくさいのでそのまま契約しちゃうかもです




>カゴヤはOpenVZだからなあ。俺としてはより自由度の高いさくらVPSお薦めしたい。

そうなんですか。2週間のお試し期間はつかったのですが、正直どっちがいいとかわかりません。

どんな風に自由度が高いんですかね?あと、アダルトOKなんですっけ?




>組み立てるプログラミングは本当に簡単だよ。 みんなで入り口を隠しているだけだよ。 #組み立てるだけじゃなくて、アルゴリズムを練ることが真のプログラミングかもしれない

そう思います。感覚的にはジグソーパズルに似てました

ただ、ピースを探すのに時間がかかりましたけど。

私の場合は、アルゴリズムとかその辺はできなそうですね-。

サンプルプログラムの組み合わせで作ったようなサービスですので、プログラムソースとかぐっちゃぐちゃです

一応、公開前に見える所はきれいにしたつもりですが・・・






もともと、作ろうと思ったきっかけなんですけど、

椎名舞さんがですね、すでに引退しちゃってるんですよ。ずいぶん前に。

で、彼女プロポーションが大好きなんですね。私。

それで、検索エンジン検索したです。でも、なかなか出ないんですね。



欲望のままにやってたら、次から次に壁にぶち当たって、そしたらいつの間にかできました



結果、このシステム使って椎名舞さんのプロポーションに似たAV女優を探すと、

雛乃つばめさんとか、果梨さんとか、佐伯さきさんとか既にDVD持っている女優さんばっかりヒットしちゃうんですね。確かに似てるんですスタイル

当たっててうれしいやら、既に持っていて悲しいやら。




あと、スタイルが似てる女優って顔も似てる気がする。

とくに最近の細い子は。





あ。デザインは、某企業をパk、じゃないリスペクトさせてもらいました




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

23:55追記

アクセス過多でサーバーが落ちました

寝てたらサーバーからアラートメール携帯に飛んできておこされました

こんな瞬発的なアクセスを考えていなかったので、とりあえず再起動しました

が、また重くなってます。。。どうしたらいいんだろう。

しい方居たらアドバイスいただけるとうれしいです




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

12/4 01:45追記

何度再起動してもサーバーが反応しなくなるので、うぎゃーってなってたのですが、

親切な方が「MySQLサーバーが原因じゃね?デフォルトだろ?query_cache_sizeを設定したらいいよ。」とわざわざお問い合わせからアドバイスくれました

設定してみたら驚くほどつながりやすくなりました

同じSQLクエリーを保持してくれるらしく、実際にデータ検索を行わないので高速になるそうです。こんなの知らなかった。ありがとうごいました

プログラムはサンプルがあるからどうにかなるんですが、サーバー周りの事が全然わかりません。。。。ぐうぅぅ。。。。

おやすみなさい。


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

12/6 23:30追記

ブックマークコメントもらっていた事を別の日記で説明しました

http://anond.hatelabo.jp/20101206224349


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

1/12 10:00追記

最終報告を書きました想定外ばかり。

http://anond.hatelabo.jp/20110112095450

2010-11-22

さくらVPSセキュリティに悩む(日記9)

初回:http://anond.hatelabo.jp/20101118000033

前回:http://anond.hatelabo.jp/20101122141124


店のHP(Wordpressで構築)をさくらVPS移転完了。

無事、稼働している様子。


これで旧サーバからおさらば出来る。

ぶっちゃげサーバはここ最近明らかに調子がおかしく、

某所でもヤバイヤバイ言われており、サポート掲示板でのサービス提供者の発言も

結構ヤバゲな運用状況に陥っているのが透けて見えていた。

まぁ月々500円でmysqlpostgresqlを使い放題だし、安かろう悪かろうじゃないけど致し方がない面もあり。



さて、今度はさくらVPSに移ったわけだが、レビューによると性能は良いらしい。

ただし、root権限があるので自分セキュリティアップデートに気をつけないといけないわけだが…


セキュリティiptableぐらいしかかけてない…

現状を羅列してみる。

さすがにこれはヤバイ気がする。


みんなセキュリティはどうしてるんだろ?あと追加でやるとすれば…


つの間にかAppArmorがカーネルマージされたのか。

http://sourceforge.jp/magazine/10/10/22/0725213

2010-10-20

ペニオクを詐欺呼ばわりする変な人達

ペニオクを詐欺呼ばわりするおかしな人たちがいる。この人なんかはもう必死w

ペニーオークション情報は嘘だらけ。全部詐欺サイトと思ったほうが安全

http://n-styles.com/main/archives/2010/10/01-065555.php

法的解釈がどうなるのかわからないが、個人的にはグレーと言うよりもほぼクロの詐欺だと思っている。

あー。この人は多分入札したけど落札できなくて悔しくて地団駄踏んでブログでペニオクを詐欺呼ばわりすることで心の安定を図ろうとしてるんだろうなと。可哀そうな人ではある。

ペニオクの本質ギャンブル。だから判断能力に乏しい未成年学生は参加禁止にすべきだが普通の成人なら自己責任でやってよい。競馬パチンコもそうなってる。勝つも負けるも自己責任。負けたからと言って詐欺呼ばわりして心身の安定を図ろうとするよりはデパス飲んで落ち着いた方がよい。寝る前にマイスリー。これで一件落着。

ペニーオークション本質は、新規参加自由なチキンレースだ : akiyan.com

http://www.akiyan.com/blog/archives/2010/09/penny-auction.html

僕がこれまでに読んだペニーオークションの説明では、ギャンブル性が高く、いわば宝くじのようなものだ、と言われていました。入札回数を抑えて、運良く最後に入札した人だけが格安で商品を手に入れることができるので、なるほど宝くじという例えは的を射ていると思います。

まさにこれ僕の言いたい事を代弁してくれている。ギャンブル性が高すぎて問題視されるのは仕方ないけれど、それでも法的に黒なはずがないし、判断能力が人並みにある成人の参加を規制すべきではない。安く家電が買えるのならばお得だし、買えなければ電気屋に行けば済む話であってわざわざペニオクを批判するためにブログを作って詐欺呼ばわりするのは健全精神では無いなあと思うのだがいかがだろうか。結局デフレな世の中で安く買いたいという世間の声を代弁した価格破壊オークションだから旧来の業界からの批判や競争に負けた人たちの目の敵にされるのはしょうがいないけれどそれはペニオクが普及する過渡期だからこそ起きる現象であって10年後は普通にみんな家電はペニオクで買ってると思いますけどね。だって安いもん。




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

http://hibari.2ch.net/test/read.cgi/yahoo/1284470803/842

  • 842 :akiyan:2010/10/20(水) 01:00:26 ID:6fWHXnMK0

まあ君たちの言いたい事はわかる

つまりこうだろ「ペニーオークション詐欺」だと

うん、僕はそこに一石を投じるために深夜の飲み会を中座してトイレでここに書き込んでる

まず君たちにお願いしたい事がある

こう10回つぶやいてくれ 「ペニーオークション詐欺じゃない」

ふふふ…何だか不思議感覚に見舞われただろう?

無理もない だってさっきまで詐欺だと思ってた事が詐欺じゃないってんだから

でもそれが真理なんだ ペニーオークション詐欺じゃない

君がさっき10回つぶやけたってことはだ、うんそれはもう君の深層心理そのものなんだよ

君らは心の奥でペニーオークション詐欺じゃないって気付き始めてる

だからさっきつぶやくことができたんだ

人間って生き物はね、自分ウソはつけないんだよ

だから紆余曲折あるだろうけどやっぱりペニーオークション詐欺じゃないってことに帰結するんだな全てが

君が今日食べた飯や飲んだ酒や抱いた女も全てペニーオークション詐欺じゃないってことなんじゃないかな?


~~~~~~~~~~~~~~~~~~~

  • 279 :akiyan:2010/10/20(水) 00:50:23 ID:6OwfjhvT

1970年代に生まれ、平成の世を生きる俺らエンジニアは何度/var/logを確認すれば死ねるのか

そこにすべてのlogがあるかい?無いだろう

ローカルサーバーローカルなloggingしかない/var/logを俺らは何度確認すればこの地獄から抜け出せるって言うんだい?

誰か教えてくれないか もし答えがあるなら教えてくれ

答えを探すのにはもう疲れたよ

サーバーに問題が起これば/var/logだ

何かあればとにかく/var/logを見に行く

エンジニアってのはそうプログラミングされた生き物だ

でも俺は何千、いや何万回か/var/logを見に行って気付いたんだよ

「俺の人生に起こった障害は/var/logには記録されてない」ってね

馬鹿げた話だろう 今頃気づいたのかよ?って笑う奴等もいるだろう

でも仕方ないだろう俺はエンジニアだ 生粋エンジニア

/var/logしか見に行くところは無いし、それ以外に選択肢は無い

無いんだよどこにも 俺の障害はロギングされてないんだよ

もう疲れたんだ俺は

でもペニーオークション詐欺じゃないんだ

それだけは言っとく

http://hibari.2ch.net/test/read.cgi/linux/1283250261/279


~~~~~~~~~~~~~~~~~~~~~

  • 436 :akiyan:2010/10/20(水) 00:20:55 ID:???

passenger3.0ヤバい

何がヤバいってとにかく速い 55%ぐらい早い これは凄い

テストしようと思ったらもう終わってる感じ そのくらい処理が速い

速いっていうか薄いっていうのかな?レイヤーが薄い感じ

なんかもう「デプロイ環境を整えるのに素人だと一苦労」みたいな時代を一変させる完成度

なんだろうサッカーに例えるとRails2.0+Mongrelオランダ・トータルフットボール世界に衝撃を与えたとすれば

Rails3.0 + Passenger3.0 + Ruby1.9カテナチオ まず失点しない 堅牢かつ鉄壁 地味だけど結果を残す

地味な役回りのはずなのに存在感抜群って何だよその矛盾おかしいだろって誰しもが突っ込みたくなるぐらいのプロダクト

あぁ…ため息が出るくらい凄いねこれは

リリースされて5年を経て成熟した大人のRailsがここにある

陰湿な狂気とも称されるMatzRubyラテンの血を引くDHHRailsフィルターを通して世に一石を投じ、

オランダの地で若きChineseの手によってここに完結する

全てのwebアプリケーションがここに集約される

それがPassenger3.0だ

全く…なんて時代に俺らは生まれちまったんだ 運命の悪戯かい?いや必然だろう 生れし事自体が必然

そして俺はここに宣言する

ペニーオークション詐欺じゃないと」

http://hibari.2ch.net/test/read.cgi/php/1282991262/436


~~~~~~~~~~~~~~~~~~~~


  • 526 :akiyan:2010/10/20(水) 00:42:34 ID:???

まったく...驚いちゃうよな

未だに「MySQLおもちゃ」なんて戯言を恥ずかしげもなく口にしちゃう脂ぎったオヤジどもがこの世に数多存在するってんだから

世に存在する全てのデータMySQLをもって管理される

世に生まれる全ての創造物はMySQLに収納される

これが何を意味するかわかるかい?

これから生まれる全てのものがMySQLそのものだってことだよ

まあ確かに禅問答だって言われれば否定はできないな

でも考えてみなよ君の名前はどこにある?どこかのサーバーのどこかのディレクトリインストールされたMySQLの中だろう

MySQL名前存在しない人間など存在しない 生後間もない赤ん坊は別として

名前MySQLにあるってことはだ...うんそうそう、そうなんだ、聡明な君ならもう分かったと思う

名前があればそこに君が「在る」んだよ

君の存在はそこに「在る」んだ

だからそれはつまりこういうことだ

------ペニーオークション詐欺じゃない


http://hibari.2ch.net/test/read.cgi/db/1276247839/526



~~~~~~~~~~~~~~~~~~~~~~~~~

  • 858 :akiyan:2010/10/20(水) 00:32:48 ID:???

いやホントに

改めて言うのも照れてしまうけれど花金明け土曜日0時なら俺は言える

CakePHPこそフレームワークの完成形だと」

The Standard Languageの座を揺るぎないものとしたPHP

20世紀エンジニア達の知の結晶とも言うべきMVC

ここにRuby on Railsというスパイスが加わってCakeは生まれた

全くこれは何だっていうんだい 奇跡なんて陳腐もんじゃない

おそらくはCOBOLが生まれた時点でPHP誕生は決定済みであったろうし

Rubyは図らずもCakeの為に作られたと言っていいんじゃない

RubistやDHH、それに20世紀を生きた全てのエンジニア達が費やした途方もない時間

それらはすべてCakeに繋がった Cakeのために彼らの汗が流された

逆じゃないんだ Cakeは結果じゃない

Cakeが始まりであって、Cakeの生誕のためにRailsがあり、Rubyがあった

20世紀を生き、そして21世紀に歩を進める全てのwebに関わるエンジニアのための心臓、それがCake

俺はCakeの時代に現役でいられたという事を誇りに思うだろう

死ぬ間際に息子と娘と孫と妻、そしてCakeの事を思うだろう

あぁCakeCake お前は俺の中にあるし、Cake内部にも俺がいる

うまく言葉にできねぇな、とにかくCakeはもう21世紀エンジニアの魂だ

そして最後

最愛の妻と友人、そしてペニーオークションに幸あれ

http://hibari.2ch.net/test/read.cgi/php/1279844006/858

2010-09-08

http://anond.hatelabo.jp/20100908120553

そんなことは言っていない

最近Webシステムって、遅いことがあるよねperlにしろRubyにしろ・・・ という話題をすると・・・mod_perlは遅くないとか、lightyとかmemcachedとか いう返答が帰ってくるのにうんざりした。... 』

Webシステムが 根源的に遅いのか、速いのか そんなことは ではなく。

perlが遅いとか、Rubyが遅いとか、PHPでもJavaでもなんでもいいよ。 それが遅いだ、速いだ。あげくはHTTPApachelightyだ memcached だmysqlだ。

他社が作ってる 又は 他人が作ってるOSSが作ってる ソフトの話をされることにうんざりした。

という話だ。

そりゃ、それぞれ、その会社がやることであって、貴方のところじゃないでしょと。 貴方のところのパートを速くするお話がしたいんだよと。

貴方のところがmod_perlなりRubyなりを 中までいじって速くしてくれるのか?

- 転職ならen
- 派遣ならen
4ページ中1ページ目を表示(合計:94件)