「MySql」を含む日記 RSS

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

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

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

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

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

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

サービスを作った目的

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

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

システム環境

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

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

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

開発期間

1週間

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

やって良かったこと

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

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

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

反省すべき点

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

設計が全てだと思います

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

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

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

何事も初めが肝心です

最後

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

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

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

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

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-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-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なりを 中までいじって速くしてくれるのか?

http://anond.hatelabo.jp/20100908113101

追加だけど

お金があったとして お金があるならmemcached,mysql,mod_perl,RoRの中を調べてみます じゃ 困るんだよ。

淡々と、memcached,mysql,mod_perl,RoR の中を探っていました。お金さえあれば、その経験を生かして 良い物が作れます。じゃないと。

他人に説明できない。

http://anond.hatelabo.jp/20100908021910

議論にならないから、 『今のWebシステムがなんで遅いのか』を述べてから言ってみて。

ちなみに、DBが9ms プログラムが1msだから10msのDB改善しましょうねってのはわかるが。プログラムを0.5msにすることで、5%ほど改善することも事実なんだよね。

そして、DBなんて、これ以上そんなに早くなるの?と。memcached?それは、みんな当たり前にやってることでしょ?差別化要因にならぬ。

で、単位時間100万セッション貼ってたら5万セッションほどそれで改善するわけだ。複合効果でDBも楽になるだろ。1セッションが短くなれば。

逆に言えば、DB速くしますって Mysqlの中身を改造しますならPGmemcached入れますだけだとね・・・

memcachedいれた上に、独自改造なので他社よりさらに速いです。なら、それはわかる。エンジニアリングだ。

その差は小さいけど、重要なんだよね。memcachedを使うだけ?それとも、memcachedを使いこなしてパラメーターだけじゃなくて、中身のチューニングまでやってくれんの?

それは、MysqlでもPostgreqlでもORACLEでも、何でもいいんだけどさ。

2010-08-21

やっててよかったPHP

まさか、自分にあんな映画ハッカーのような体験のチャンス

が巡ってくるとは、その時は夢にも思わなかった。

夜の繁華街の裏路地で、

俺はたまたまその事件現場に遭遇してしまったのだ。

「やめてください、お願いですから・・・」

哀願する派遣社員を取り囲むように

「さっさと社にもどれ!お前がバックレた時に消していったデータ復活させるんだよ!!」

と、3人のプログラマー


「・・・やめないか、土方。」


思わず、口をついで出てしまった挑発の文句。もう後には引けない。

逆上する3人の社畜COBOLを手にしたやつもいる。

ならば・・・と、俺は左手で、懐からPHP逆引き大全を取り出す。

PHP辞典キック!」

俺はすかさず、正面のKENT似の男の鳩尾に蹴りを叩き込む。

悶絶し、倒れるPerl Monger。

「図解プログラミング PHPMySQL裏拳!」

返す右拳を、唖然とするrubyistの顔面に叩き込む。

pythonistaの鼻の骨が砕け、昏倒する。

「10日でおぼえるPHP5入門エルボー!」 もう一人のサスペンダー頭蓋骨を砕く。

「独習PHPチョップ!」 残るひとりの頚動脈を断ち切る。

一撃必殺。   一瞬にして、

俺を取り囲むように倒れ悶絶する壊れたプログラマーが4つできあがった。

「次からは、相手を見て喧嘩を売ることだな・・・。」

返り血で真っ赤に染まったPHPによるWebアプリケーションスーパーサンプルを拭き取りながらそっと、

俺に勝利をくれたプログラミングPHP第二版につぶやいた。


「持っててよかった、基礎からのMySQL。」

2010-07-21

やったー俺にぴったりの求人があったよ

募集要項

仕事内容:オンラインゲーム開発

ゲームプログラム全般

ネットワークデータベースシステム設計、開発

認証課金システムの開発

・運営ツールの開発

サーバ環境の構築、運用

求める経験

【必須経験

C/C++perlRubyPythonPHPなどを用いたプログラム開発経験

【歓迎経験

C/C++を用いたゲーム開発経験

Unix系OS管理運用経験

C/C++, Perl, Ruby, Python, PHP全部使ったことあるよ!

PythonPHP仕事では使ったことないから微妙だけど。あとC++言語仕様完璧には把握できてないけど。

でもC/C++は商用のコンパイラを作るプロジェクトに参加してたこともあるしバッチリだよ。

Rubyは1.6の頃にインタプリタソース全部読んだりしたけど最近進化にはついていけてないかも。

ゲーム開発経験Unix系OS管理運用経験もあるよ!

【歓迎スキル

MySQLPostgreSQL等のRDBMSに関する知識

3Dプログラミングに関する知識

このへんも全部あるよバッチリ

そんなものは求められてないだろうけど、

RDBMS3Dも仮に一から自分で全部作れと言われても簡単なものなら作れるレベルだよ。

特に3DLSIを作るプロジェクトに参加してたこともある。

しかし…

年収給与: 300万円以上350万円以下

まあ、そうだよね最近プログラマ給与なんてこんなもんだよね…

2010-06-04

同人サイト向けレンタルサーバ個人的まとめ

2chレン鯖板スレッドhttp://f43.aaa.livedoor.jp/~sils/参照、レン鯖板の各スレより拾った。

ぐぐって見つけたコチラも参照した。http://arekore.hp2.jp/pay/

あくまでCMSツールを使用して一から同人サイトを作りたい+サポートメールコントロールパネルアクセス解析は無くていい人向けです。

順次[試用しての感想]追加予定。特に記載が無いものは使える/出来る項目。

■条件(上から下へかけて優先順位が下がる)
■以下備考

有料

残念ながらさくらインターネット総合的に見ていいのかもしれない。

サイト毎にDBを分けたいとかセーフモードやら、同人という壁は大きい。

Just-Size.Network

同人公式OK(同人アダルト可)

phpMyadmin自分インストールする。鯖によってphpMySQLバージョンが違うので面倒。

DBは重いらしい。DB鯖容量は50MB。

[同人アダルト可鯖はMySQL5に対応していない]

cgi-binフォルダ必要無し。

容量無制限、サブドメイン・独自ドメイン

ステッププロ

同人公式OK(アダルト可)

mod_rewrite使えない。

セーフモードなのでWP自動アップデートが出来ない。DBが十つ付いている。

DBは重いらしい。[プロはそこそこだと思う]

データ損失をやらかした。

容量5GB、サブドメイン・独自ドメイン

さくらスタンダード

同人黙認(同人アダルト黙認)落ちない。

cgi-binフォルダ必要無し。

WP設定が楽。DB鯖は当たり外れ有。[個人的には重いと感じる]

容量10GB、サブドメイン・独自ドメイン

ロリポ

同人公式OK(同人アダルト不可)

DBの重さに定評あり。WP設定が楽。女向。

上位にチカッパ等あるがこちらは規約同人が触れられていない。

容量8~10GB、サブドメイン・独自ドメイン

aiso.net

同人公式OK(同人アダルト可)

試用無し。MySQL使用可はプレミアムから。

MySQLは3、PHPは4。

1~2MB、サブドメイン・独自ドメイン

PANDORA.nu(サブドメイン/ホスティング

同人公式OK(同人アダルト可)

バックアップ機能有(大概の鯖は規約で、サーバ側でデータ消失しても責任は負わないと記述

600~1200MB、サブドメイン・独自ドメイン

西院ネットワーク

同人公式OK(同人アダルト可)

試用無し。MySQL使用不可

容量100MB

SPUR-NET

同人公式OK(同人アダルト可)

PHPMySQLバージョン対応が遅い。

独自ドメイン不可

容量200MB~

80code.com

海外

同人でも何でも法に違反しなければOK

永らく募集が止まったりする

DB無制限

試用無し(ただし14日間までならクーリングオフで、手数料15%引きで返金有)

容量無制限(共有だと1GB)、サブドメイン・独自ドメイン

アスリ

同人公式OK(同人アダルト可)

レスポンスが遅い(入金確認等)

試用無し。

500/1000MB~、サブドメイン・独自ドメイン

CHOCOT.NET

女性専用

同人公式OK(同人アダルト可)

PHPバージョン対応が遅い。

容量50~100MB、独自ドメイン

ポケットサーバープレミアム

同人公式OK(同人アダルト可)

容量1200MB~、サブドメイン・独自ドメイン

coreserver(mini/core-A)

アダルト小説可(ただしイラストは不可)

xreaの上位サービス

落ちると復帰が長く、サポート以前に障害対応が駄目らしい。

メール規制や使えなくなる頻度が他の鯖より高い。

DBが十つ/無制限付いている。

DB鯖は当たり外れ有、だがさくらと違い鯖間移動が簡単に出来る。

miniの方が共有相手に業者が少ない為軽いらしい。

[MINIサクサク動く]

容量6GB/15GB、サブドメイン・独自ドメイン

無料

無料でも出来る所は多々あるので触れないが、今まで使ってきた鯖感想

サポートに関してはmeganebu以外初心者お断り傾向。

最低限ファイルアップロードや設置が出来るレベルでないと厳しい。

xrea.com(中上級者向)

サポートはほぼ機能していないので自分で調べて自分で全部設定する。

ただし出来る事が多いので、中上級者向けには最適。

コントロールパネルファイルアップローダアクセス解析付き。

見てる限りでは落ちたのを見たことがない。

同人大丈夫だがアダルトは禁止。

セーフモードなのでWP自動アップデートが出来ない。

meganebu.com(初中級者向)

めがねを愛する鯖管管理するサーバ。たまに落ちる。

フォーラムには初心者が溢れて和やかなのでデビューにはいいかもしれない。

鯖管に特徴があるので人を選ぶかも。

UUHP.com

最低限のことしか書かれていない。いつまでも広告

ミラーとして使える。登録が面倒。MySQLは使えません。

redribbon.to

同人アダルトOKだが、いかんせん広告が多すぎたり。

vane.jp

MySQLが使えないが、人数が少ないので快適。同人アダルトOK。

審査制。

usamimi.info(中上級者向)

規約同人に寛容だが、初心者お断り。審査制だが相当でないと落ちることは無い。

コントロールパネルアップローダ等は一切無いがxreaのように必要なものは揃っている。

たまに落ちる。個人的にここのDB鯖はさくらより軽快だと思う。

同人アダルト可。

セーフモードなのでなのでWP自動アップデートが出来ない。

※1+Kashというutf-8記述されたウェブ拍手が使える。機能はpatipatiと同等。

WPとの兼ね合いエンコードの問題で、WEB拍手やpatipatiは文字化け起こす為。

2010-04-22

Redmine 0.9.3をTomcat 6で実行する方法

結構苦労したので健忘録として。。

環境は以下のとおり

JDK, Tomcat, JRubyインストール済み

MySQLインストール
yum install mysql-server
MySQLの起動
/etc/init.d/mysqld start
MySQLの設定

rootパスワードなどを設定する

mysql_secure_installation
Rubyモジュールインストール

RubyGemsモジュールインストールする

jruby -S gem install rails
jruby -S gem install warbler
jruby -S gem install activerecord-jdbc-adapter
jruby -S gem install activerecord-jdbcmysql-adapter
jruby -S gem install jdbc-mysql
MySQLRedmineデータベースを作成
mysql -u root -p
mysql> create database redmine character set utf8;
mysql> grant all privileges on redmine.* to 'redmine'@'localhost' identified by 'redmine';
mysql> exit

(ここでは、パスワードredmineしているが自由に)

RedmineDB設定

(任意の場所にRedmine解凍して、解凍先のディレクトリに移動した後)

cp config/database.yml.example config/database.yml
vi config/database.yml

database.yml

production:
  adapter: jdbcmysql
  database: redmine
  host: localhost
  username: redmine
  password: redmine
  encoding: utf8

#development:
#
#
#test:
#
#

後のwarbleでのエラーを防ぐため、developmentとtestコメントアウト

DBへのデータ投入
jruby -S rake generate_session_store
jruby -S rake db:migrate RAILS_ENV=production
jruby -S rake load_default_data RAILS_ENV=production
起動確認

script/serverで起動し、http://localhost:3000 にアクセスして正常に動作するか確認する

jruby script/server -e production
production.rbの修正

Tomcatで動かしたときにログ出力するための設定をする

vi config/environments/production.rb
config.logger = Logger.new(config.log_path)
config.logger.level = Logger::INFO
warblerの設定

warble.rbを生成

jruby -S warble config

warble.rbを修正

vi config/warble.rb
  config.dirs = %w(app config lib log vendor tmp extra files lang)
  config.gems = ["jdbc-mysql", "activerecord-jdbcmysql-adapter", "activerecord-jdbc-adapter"]
  config.gems["rails"] = "2.3.5"
  config.gems["rack"] = "1.0.1"
  config.webxml.rails.env = "production"

warファイルを作成

jruby -S warble

できたwarファイルTomcatに配置して、Tomcatを起動する

mv redmine-0.9.3.war /usr/local/tomcat/webapps/redmine.war
/usr/local/tomcat/bin/startup.sh

warblerのバグ(?)でwarに入らないファイルコピーして入れる

cp vendor/gems/rubytree-0.5.2/.specification /usr/local/tomcat/webapps/redmine/WEB-INF/vendor/gems/rubytree-0.5.2

http://localhost:8080/redmine/ にアクセスしてインストールできたか確認して完了!

2010-03-28

Fラン文系一浪二留でも内定貰う方法

あくまで、Fラン私立文系落ちこぼれ学生就職活動してみて思ったことなので、実際その職種が実態は一切保証しない。でたらめである。

スペック

男、関東在住、一浪留年、Fラン文系

文系マジでヤバイ

具体的に言うと、文系は特別な資格が無い場合、ほとんどの人が飲食・介護レジャーサービス・営業の職に就く。昔みたいな総合職・事務職は効率化と技術革新で、機械仕事取られて減ってる上に、椅子取りの倍率が半端じゃない。

これらの業界構造的な問題を抱えているので、キャリアアップには、他の業界の何倍も労力が必要であると感じた。自分には無理だと思った。

リクナビ祝日のビッグサンダーマウンテン

現状の大手就活サイト一社に並ぶ行列の長さが半端じゃない。祝日ディズニーアトラクションのように、何時までたっても乗ることが出来ない。ファストパス存在を探して、以下にズルするかが求められる。

就職活動以降は、違法行為でなければ、いくらでもカンニング・ズルが許される。真面目になんかやってられない。真面目にキャリア支援課やリクナビで活動するよりも「どうやってその他大勢の学生を出し抜くか」を考えた方が効果的だと思う。

今振り返ると、SPI対策やら、適正試験対策、「正しい就職活動」みたいな技術はほとんど無駄だった。「シューカツスキル」はそれ単体では何の役にも立たない。

例えば大学三年から気合いを入れて「シューカツスキル」を磨き続けても、もし内定取り消しでも食らって留年した場合、20から22歳までの三年間を「シューカツスキル」に費やすことになる。しかし、実際は社会で役立つスキルはほとんど身につかない。

「シューカツスキル」の向上に全力を注ぐのは非常にリスキー

ただ、笑顔で丁寧に挨拶して、相手と良好な関係を築く技術普遍。この辺は演じれば良い。

この際、おっさんぐらいまでの年上とコミュニケーションすることが好きだと、楽に出来る。

教員は狙い目

以上のような文系の民間就職の惨状が広がる中、教員は数少ない安定した選択肢であると思う。

大量の団塊世代の引退と、少人数学級の普及で教員採用試験の倍率は下がり続けている。

平成22年度(21年度実施東京都教員採用選考における主な改善について

http://www.kyoiku.metro.tokyo.jp/press/pr090205j.htm

これを見る限り、東京都教採の倍率は下がり続けており、21年度には小学校教員過去最低の2.6倍を記録している。東京都小学校教員社会的に相当な穴場ではないだろうか。

もちろん、教員は大変な職業であり、その他の職業と同じく割に合わないことばかり。ただ、志がある人にとってはこの状況はかなり恵まれていると言って良いのではないだろうか。

22年度以降は社会人採用規制緩和不景気による他業界からの流入などの要因で他の公務員試験と同じく倍率が上昇する可能性もある。ただし、小学校教員免許は参入障壁が高く、急な倍率上昇はそれほど無いのではないだろうか。

一方、地方の倍率は以前として高く、都内の五倍以上の差が開いている状況もある。

http://www.toonippo.co.jp/news_too/nto2008/20080702182831.asp?fsn=eb33f76037153e93cde084f7e7644d6f

地方での教員採用試験突破はかなりの難関である。近年、仕事東京に局地的に集中しており、仕事をするには東京というのが現実的な選択肢となりそうだ。

自分場合はどうしたか

Fラン文系一浪二留、無資格三重苦。

しかも四年時には単位が残りまくり

これでは就活は絶対に無理。

あったのはずっと好きで考え続けていた、メディアの知識。

でもメディアの知識だけでご飯が食べられる時代は終わった。

でもプログラミングメディアの知識だといけるかもしれない。

Twitter始めてからそんな風に思い始めて、プログラミングを始めた。

(ちなみにTwitter広告、IT業界の二つの業種では就職に必ず役立つ)

VBA,Ruby,Perl,c++,php,MySQL辺りをかじった。ほんとにかじる程度。

でも、かじってみると業界の様子がすごくよく分かる。同じプログラミングでもRuby on Rails.NETを使う人では業種が違うぐらいやっていることが違う。

で、そのうち自分がどういうところで働いたら楽しそうで、どういうところだと楽しそうじゃないかが見えてくる。自分場合ガチSierに入っても絶対に向いていないと思った。

やりたいのは、"プログラミングを通して、人の心を動かせる仕事"だった。

そんな事が分かったら、就活は運良く二ヶ月で終わって、現時点でやりたいと思ってる仕事に就けた。

でも、ブラックかもしれないし、何かが折れるかもしれないし、暮らしていけないかもしれない。

まぁこんな屑でも内定は取れますよってだけの話。

まとめ

文系ヤバイ

リクナビやばい正攻法以外の方法を考える)

教員は倍率低い

プログラミング(好きになれれば)おすすめ

twitter広告、IT関係に興味があるなら)おすすめ

で、一番言いたいのは

ラーメン屋なりたければラーメンをまず作れ」ということ。偉い人の受け売りなんだけど。

シューカツなんてどうでもいいから、ラーメン作ればいいよ。

2010-02-23

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

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

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

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

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

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

第50回PHP勉強会

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

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

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

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

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


ほいではメモの公開。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@cocoitibanのお仕事

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

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

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

ウノウサービス

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

・まちつくについて

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

http://mt9.jp/

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

 ・リリース

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   ・リリースから今まで

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

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

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

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

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

  

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

  ・Memcached適用範囲を増やす

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

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

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

    ・DBマスタ分割

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

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

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

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

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

   ・中期

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

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

      →あっさり解決

    ・本格的な機能改善

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

    ・社員数増員

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

     ・引っ越し大変でした

    ・課金等をリリース

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

   ・中期

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

     ・EC2とはおわかれできた

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

   ・まとめると

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

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

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

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

  [そのほかメモ]

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

   ・Q4M

   ・Gearman

   ・ActiveMQ

 

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

    ・daemontools

    ・自前で実装

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

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

    ・実装クイズ

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

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

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

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

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

    ・FRIENDSランキング

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

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

    ・流入云々でかなり違う

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

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

    ・ORMは使うべき

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

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

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

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

       ・XAトランザクション

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

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

    ・KVSとの透過性

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

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

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

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

   

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

   ・mysql

     ・かなりはやい

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

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

   ・ip_conntrack/iptable

   ・ulimit

   ・Symfony

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

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

# 総評

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2009-10-06

http://anond.hatelabo.jp/20091006150423

昔の人だと、作品自慢とか、ロジック自慢をよくするかね。

昔は実際、「こんなOSで動くわけない!」とかいいながら書き換えちゃう人は普通に居て。

それはそれで凄いんだけど、その考えを WindowsLinux に持ち込むから、老害そのものだったりね。

いや、まぁ、OSS なら確かに書き換えできるけどさぁ。


と、こんなレベル愚痴を言うから凡人なんだよな。

Googleカスタムmysqlソースとか、見てみてぇなぁ。

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