はてなキーワード: 公開しましたとは
これまで他の人に用意してもらったサーバで自分のプログラムを動かしたことはありましたが
自分自身で一からサーバをセットアップしたことはほとんどなかったので、いろいろとハマりました。
作業を進める上で困ったり考えたりしたことを書いていきます。
ちなみにサーバ自体はさくらのクラウド、OSにはCentOSを使用しているので、それ前提のお話になります。
最初にサーバを起動してから速やかにSSHとファイヤーウォールの設定を変更しました。
はてブなんかでも定期的に話題になっているのでおなじみですね。
・SSHやHTTP(S)など、どうしても公開しなければならないポート以外は遮断する
さらっと書きましたが、設定をミスって自分自身もログインできなくなり、何度かOSの再インストールを繰り返しています。
後から気付いた事ですが、さくらのクラウドではクラウド管理画面のリモートスクリーン経由でローカルログインできるので
別にOS再インストールしなくてもiptablesの設定を変更できたんですよね...
逆に言うといくらファイヤーウォールとSSHを設定しても管理画面にパスワードログインの環境が残ってしまうので
パスワードの管理には引き続きしっかり気を使う必要がある。ということでもあります。
httpd,php,mySQL,memcachedなど必要なサービスをインストール、設定し
作成したWebアプリのプログラムを乗せて動かしてみました。が、動作が重いような...
開発環境ではさくさく動いていたのに、本番環境ではどのページ遷移ももっさりしています。
abで計測してみたところ、開発環境のおよそ2分の1のスコアとなってしまいました。
開発環境が仮想2コアのメモリ1Gだったのに対し、本番環境が仮想1コアのメモリ2Gと
CPUの性能について半減しているのでそのせいかな、と思いつつ設定を見なおしていたところ
特に使っていないと思われたipv6を停止した途端にパフォーマンスが改善されました。
ページ遷移に伴うもっさり感が解消され、abの計測結果も開発環境と遜色ない結果が出ています。
デフォルトで有効になっていたipv6の影響により余計な処理が走っていたのかもしれません。
パフォーマンス改善に喜んだのも束の間、会員登録などの処理でWebアプリからメールを送信したところ、Gmail宛のメールがことごとく迷惑メールと判定されるという事案が発生。
spfの設定を行なう、メールの内容について吟味するなどの回避策を試してみましたが一向に改善されません。
試しにHotMailとexciteのメールアカウントに送信したところ、そちらではそもそもメールを受け付けてもらえずエラーコードが返って来る始末。
困り果てていたところ、エラーの内容からサーバのIPがspamhousにスパム送信元として登録されていることが判明しました。
postfixのホスト名の設定がデフォルトで「localhost.localdomain」などとなっており、それをそのまま使っていたためにGmailがスパム送信元として通報してしまったようです。
設定を修正し、spamhousに解除依頼を提出。事なきを得ました。
クラウドを利用すれば、サーバを停止することなく簡単な設定でスケールできるようになる。
と、自分で勝手に思い込んでいたせいなのですが、消えては困るデータの一部をmemcachedに保存する実装を行なっていました。
実際のところさくらのクラウドではサーバを完全に停止しなければプラン変更を実施できないし
そもそもサーバが落ちたらどうするんだよ。ということで、急遽KVSを変更する必要に迫られました。
速度の低下が気にかかったため、いくつかの候補を実際に動かし
phpのスクリプトから1万件のデータ読み書きを行うという形でmemcachedと比較してみたところ次のような結果に。
サービス | 1万件書込 | 1万件読込 |
memcached | 2.55秒 | 2.30秒 |
handlersocket | 21.23秒 | 2.71秒 |
InnoDB | 20.23秒 | 5.10秒 |
kyotoTycoon | 8.22秒 | 7.72秒 |
さすがに読み書きそれぞれmemcachedが最速ですが、読み出しについてはhandlersocketも負けていません。mySQLから普通にSELECTしてもmemcachedの2倍程度の時間しかかからないという結果が意外でした。
しかしながら書き込みのほうではhandlersocketもmemcachedの10倍近くの時間がかかっており、少々速度的な影響が気になってきます。memcachedの倍のパフォーマンスを記録したという記事を見たことがあるので、設定、チューニングについて生かしきれていない部分があるのかもしれないとも思いましたが、知識が不足しているところで無理をすると問題が発生した時に対処できないと考え、候補から除外することとしました。
結局、今回の用途では読み込み処理より書き込み処理のほうが圧倒的に多いことも考慮し、kyotoTycoonを採用しました。実際の利用箇所に組み込んでabで計測してみたところ、だいたい30%程度のパフォーマンス低下にとどまっており、これなら許容範囲かと考えています。
実行系と参照系に分ける形でmySQLのレプリケーションを行なっていたのですが、度々レプリケーションが停止する現象が発生しました。
一部のテーブルについて肥大する可能性が考えられたため、参照系に接続するプログラムで使わないテーブルをレプリケーションから除外していたのが原因です。
例えばtabelAをレプリケーションし、tableXをレプリケーションしないという設定にしたうえで
実行系でINSERT INTO `tableA` SELECT `value` FROM `tableX`などといったクエリを発行すると、参照系にtableXが無いためエラーが発生して止まってしまいます。
レプリケーションするテーブルを限定する場合はプログラム側でも注意を払わないと危険です。当たり前ですが。
監視といえばcactiやnagiosが定番なのかもしれませんが、設定が複雑そうで尻込みし、monitを使用することにしました。
簡単な設定でloadaverageやメモリ、HDDの使用量をチェックできるほか
httpdやmysqldなどといったサービスのプロセスを監視し、もし落ちていたら自動で起動してくれるので助かります。
パスワード保護を行うとしても、サイト全体の管理画面など自分しか使わないプログラムはWebに晒しておきたくない。
というわけで、一部のWebアプリを秘匿する設定を行いました。
管理画面のWebアプリを9999番など閉じているポートに設置した上で、SSHを利用したトンネルを掘ります。といっても
上記のようなコマンドで管理画面のWebアプリを置いたサーバへログインするだけです。
ブラウザのアドレス欄にhttp://localhost:9999/と打ち込めば、接続が開いている間のみアクセス可能になる感じですね。
サーバにログインできる人でなければ実行できないことなので、気分的にある程度安心します。
自動でログのバックアップを行いたいと考えたのですが、パスワード無しの鍵でログインして転送する形には抵抗がありました。
調べてみたところ、authorized_keysに公開鍵を記入する際の設定で、その鍵でできることを制限するという手段があるようでした。
具体的には、authorized_keysに
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="some commands" ssh-rsa AAAAB3NzaC1yc2EAAA...
などとして公開鍵を追加しておくと、その鍵でログインした直後にcommand=""の部分で設定したコマンドを実行して接続を終了する挙動となり
接続のフォワードもできなくなるため、パスワード無しでも鍵の流出に関するリスクを最低限に留めることができるというわけです。
commandの実行結果は標準出力から受け取ることができるので、例えばcommand=""の部分にファイルの内容を表示する処理を設定していたとすれば
ssh -i .ssh/no_password_key user@xxx.xxx.xxx.xxx > /path/to/file
などとしてログインの結果をファイルに書き込むだけで、簡単にファイルの転送が実現できます。
他にも大小さまざまな問題に行きあたりましたが、忘れてしまったor書ききれないのでここまでとします。
たった1つのサイトを公開するにしても問題というのは尽きないものだと実感させられました。
今は基本的な情報だけでなく、ちょっと突っ込んだ内容でも検索で解決していけるので嬉しいですね。手がかりを残してくれた先達に感謝することしきりです。
現状ではひとまずの見切りを付けて公開していますが、より堅牢で負荷に強いサーバとなるよう、随時チューニングを行なっていこうと考えています。
個人サイトや小規模な商業サイトなどプロモーションにあまりお金をかけられないサイトを主な対象とした、無料で出稿できる広告ネットワークサービスです。
既存のサービスで近いのは「あわせて読みたい」や「zenback」、各社提供のRSS相互リンクサービスなどになるでしょうか。
広告としての体裁がある分、それらより若干積極的な性質になるのではと考えています。
現時点ではサービス本体のプロモーションに苦心するという本末転倒そのものの状況でありますが、もしよろしければ見ていただけると嬉しいです。
まったくの素人がNginx+Bootstrap+WordPressでWebサービスを作成しました。
オシャレエロサイト「h300」をリリースして、10万PV/日を捌くためにやったこと
http://d.hatena.ne.jp/inouetakuya/20120410/1334058296
http://anond.hatelabo.jp/20120914214121
http://anond.hatelabo.jp/20120930171125
--------------------------------------------------------------------------------------------------------
35歳 今は事務系の仕事をしてます。たまに運転。限りなくパートに近い労働条件ですが、
仕事がないよりはマシですので、続けているわけです。
前(5年ぐらい前)からWebサービスみたいなものを自分自身で作ることができたら楽しいだろうなぁと。
TwitterとかFacebookとか数回利用したことはあるけど、詳しいことはさっぱり。
朝6:00から夜18:00まで車を走らせてゴミ回収をしていた者です。
パッカー車って知ってますか。街でよく見かけるゴミ収集車のことです。
ドラッグストアとか回るんですよ。休憩時間は15分ぐらいなんですよ。一日。馬車馬のように働いていました。
そのパッカー車で物損事故を起こしてしまい、会社に居続けることはできなくなり仕事をやめました。
エロはもともと好きだったのですが、車を運転する以外の技術は持っていません。
何か手に技術を身につけたいと考えるようになりました。ただ30歳も過ぎたおっさんにあまり時間はないので、
資源の集中を意識し時代の流れはパソコンだということで、始めたわけです。
はじめはHTML,CSSの本で基本的なホームページ制作を学ぶ。
-----------------------------------------------------------
Bootstrap
-----------------------------------------------------------
Webサービスを作るにはプログラミングが必要なことは知っていたけど、初めてみて暗号のように思える。
プログラミングの中でもPHPは簡単なのでしょうか?最近の流れからすると、Rubyなのでしょうけど、
PHPは自分の実現したいサービスが組み立てやすい気がします。
http://www.amazon.co.jp/gp/product/toc/479733245X/
foreachやif,forなどの基本的な使い方を身につける。
プログラムは結局小さいプログラムの集まりだとどこかに書いてあった。ことを思い出す。
PHPはベタのプログラムだどセキュリティ的に弱いということでPEARを使うように。
ほかのプログラミング言語は知りませんが、PHPerというらしい。
プログラムに慣れてくるとPEARライブラリなどのクラスに抵抗がなくなってきた。
それでも、オブジェクト指向という考え方を体で理解するまで時間がかかる。
----------------------------------------------------------
http://php.xenophy.com/index.html
http://kumicyou.sakura.ne.jp/php/index.html
http://www.amazon.co.jp/gp/product/toc/479733245X/
http://www.amazon.co.jp/gp/product/toc/4797367571/
----------------------------------------------------------
----------------------------------------------------------
Simple HTML DOMParser メモリーオーバー?が発生するので頻繁には使えない。
正規表現って便利ですよね。(preg_match("/ab/", $string);など)
Webサイトのどんな情報でも切り取ったり、貼りつけることができるので。
Web上で特定の情報を好きなように集めてきて、加工することができるスクレイピングを発見。
PHPでスクレイピングするにはどうしたらいいか考えるようになり、かなり時間を使いました。
該当URLのサイトマップからリンクページ(aタグ)をすべて取得する。
ページの中にあるエロ動画URLやサムネイル画像などをファイルへ出力。
$fp = fopen("/var/www/html/sample.txt", "a"); fwrite($fp, $title."\n"); fclose($fp); }
出力したファイルの中で重複データなどないように一つにまとめて使えるように加工する。
あらかじめCronで時間を指定してファイルの情報をデータベースへ投入。
これから欲しい情報は、著作権に気をつけながらスクレイピングして集めてくると楽しいなぁと思ってます。
自分でホームページを公開するためにはサーバーが必要なことは以前から知っていたのですが、具体的には手探り状態からで
サーバはレンタルサーバとか専用サーバなどいろいろあるのですね。
全部自分で管理しないといけないため、めんどくさい気がした。結局VPSサーバに。
スピードアップのためにやったこと。データベースとアプリケーションサーバを分ける。
データベース最適化、query_cache_sizeを設定したりなど。
http://anond.hatelabo.jp/20101203150748
ウェブ開発者のための、1時間でできるLAMP環境構築術(CentOS編)
http://tanaka.sakura.ad.jp/2011/05/centos-linux-apache-php-perl-mysql-lamp.html
定番のPHP MYSQL Apacheから調べていくとNginxというWebサーバが高速だという
記事が多いので、使ってみることに。
NginxだけではPHPは動かない。php-fpmをインストール。
------------------------------------------------------------------------------------
http://d.hatena.ne.jp/yoshi-ken/20120205
http://kray.jp/blog/wordpress-tuning/
http://server-setting.info/centos/apache-nginx-2-php-fpm-install.html
http://hara19.jp/archives/5817
http://tech.aainc.co.jp/archives/3022
------------------------------------------------------------------------------------
以上の記事でNginxのproxyを設定することができ、とても参考になりました。
どうにか既存のサイトをWordPressで作れないかと考えていたら、
WordPressは固定ページとブログ用のページを分けるテンプレート構造だと知る。
WordPressはindex.phpファイル一枚あれば動くらしく、ページを表示する優先順位があるらしい。
メインページ front-page.php → home.php → index.php
そのため、fromt-page.phpに自分で作ったSmartyをそのままコピペして,なんとか既存のサイトとWordPressをミックスさせることに。
詳しくは以下の本が参考になりました。
http://www.amazon.co.jp/gp/product/toc/479736758X/
WordPress奥が深いです。
途方にくれていたところ、CSSフレームワークのTwitter Bootstrapを知る。
HTMLに少し手を加えるだけで今っぽいデザインにできる。その分、余った時間をweb構築に集中することができる。
http://panpanwatch.net/douga.php
http://panpanwatch.net/newdmm.php
DMM動画の当日配信が開始されたコンテンツをDMMのapiから収集。
http://panpanwatch.net/?page_id=5382
ネット上のエロ更新情報を収集して表示。メインはWordPressで構築。
--------------------------------------------------------------------
常日頃からネットのエロにはお世話になっていたので、なんか恩返しではないですけど、
Webサービス作るまで、ずっとパソコンの前ばかりにいたので、
こんにちは。みなさまからのブクマとコメントを多数いただき、ありがとうございます。
いろいろご意見あると思いますが、大げさな嘘などは書いていないです。
PHPを理解するのも、こちらの本を一冊やれば、それなりに理解できるようになりました。
http://www.amazon.co.jp/gp/product/toc/479733245X/
次のサービスを作成するときは本格的なアプリケーションやソーシャルゲームなどやりたいなぁと
野望だけは持っています。ですけど、ずっとこのサイトだけに集中してきたので、今はパソコンから少しだけ距離を置くつもりです。
webサービス作ってみました。
ばあちゃんの介護が必要になり高校中退し、家にいる時間ばっかりになって就職もできず手に職もないのでなんかしなきゃと思い始めたwebの勉強だけど、何を作ればいいとかアイデアなんか全然なくて成長してるのかわからず焦ってた時に下の記事を見た。
探してみると他にも色々あって、
【2012超まとめ】確実にWEBサービスを作りたい人へ【前編】
勉強するのはいいけどこのままじゃ一向に先に進めない気がしてとにかくなんか作ってみようと。
上記の通り学歴無しスキル無しの超初心者です。htmlとcssは理解できる程度。
増田あんてな
コンセプト(?)
はてな匿名ダイアリーの中で興味のあるものだけてっとりばやく読めないかなー
■0.大まかな流れ
サーバーとドメイン所得→はてな匿名ダイアリーから人気記事絞込み→Google AJAX Feed APIをつかって人気記事のFeedを出力→Bootstrapで見やすくデザイン→アップロード&公開
■1.まずはサーバーとドメイン所得(途中で投げ出さないように自分を追い込むため先に所得)
■2.はてな匿名ダイアリーから人気記事絞込み
ここではてな匿名ダイアリーのURLで絞り込んでから左下の方にあるRSSアイコン右クリックでFeedのURLが所得できます。
■3.Google AJAX Feed APIをつかって人気記事のFeedを出力
2.の項目で絞り込んだ人気記事のfeedを出力します。
特に意味は無いけどBootstrapデフォルトデザインのサービスが多いのでMetro風にしました。(なんか見た目軽そうだったので)
Bootstrap
http://twitter.github.com/bootstrap/
BootMetro(BootstrapTheme)
■注意したこと
コードの勉強とは違い実際に作ってみると色々実戦的(?)な経験が積めた。
例えばはてブuser数での切替ひとつとっても、切替ポイントをいくつ作るのか、何user以上で切り替えるのかなど使いやすさに対して深く考えるようになったり。
※ちなみに増田あんてなでは1日に更新される記事数を考慮して3user,30user,100user,1,000userで切り替えています。
これは、、
3user以上→毎日チェックしたいが意味のない記事などを省きたいユーザー向け。
30user以上→一日1~5記事くらいの更新頻度。毎日~数日に一回見る人がちょうど良いくらいの一覧。
100user以上→他人が知ってる記事だけじゃ物足りない、ちょっと差を付けたい人向け。
1,000user以上→知らなきゃ遅れる(?)レベルの有名記事だけチェックしたい人向け。
としてます。(全て目安です)
最初は、5user,10user,50user以上,1000userで考えてたんですが、下の理由により微妙に数を変更しました。
5user以上→「はてなブックマークは3user以上がブックマークすると注目の記事に載る」=「はてブ人気記事の可能性」なのでリアルタイムに人気記事が見れない(僅かな時間差ですが)。
10user以上→更新される記事数的に3user(毎日見る)と30user(2~3日に一回見る)の間なのでターゲットがどっちつかずになる中途半端な数字(必要のないコンテンツになる可能性が)。
http://ozpa-h4.com/2012/11/20/jquery-window-scroll-position-fixed/
最初アドセンスでやろうと思って調べてみたらどうやら規約違反のようなので。
http://d.hatena.ne.jp/Hamachiya2/20120820/adsense_sidewinder
各ページを作ってるうちにサイドバー部分とか共通のコンテンツの更新が面倒になってきたのでphpで一括更新出来るように。便利。
http://benri-tools.net/contents.php?code=kyotu_menu
年末から作り始めて1月2日に完成&公開。年越しなど未作業日もあり作業日数は3~4日間くらい。
最初2日の日にすぐ記事を公開しようと考えたが少しでも多くの人に見てもらえるよう年明けは避けた。
仕事始めの人が多い4日に公開するつもりだったが金土日は閲覧数が少ないだろうから待機。
そうこうしてる内に
http://anond.hatelabo.jp/20130104184115
webサービス系の記事が新しく投稿&1,000はてブ超え。
ひとつひとつ勉強するのもいいけどひとつのものを完成→公開させる事によって一連の流れが把握でき課題も見つかる。今後勉強する際にも理解しやすくなった。
僕が見た作ってみた系の記事は、Feedやスクレイピングとかを使ったwebサービスが多かったのでほとんど知識のない僕は同じ様なものを作ってみただけだけど、自分用にコード書き換えるときとか実用的な勉強ができ、最初から一人で一から作ろうとしてた時より、結果成長できた。最初はコピペでもいいからとにかく作るべきな気がする。
作品というには程遠いがひとつのものを完成させたことによってモチベーションが上がった。
自分が使いたいものを作るってゆうのは大前提なんだろうけどその上で他の人が使いやすいってゆう客観的な対極の目線も必要なんだなと実感。
はてぶ数でのタブ切替をページ内でやったり各月間ランキングとか後々勉強しながら追加して行こうと思ってます。
http://www3.nhk.or.jp/news/html/20121211/t10014105231000.html
北朝鮮は、事実上の長距離弾道ミサイルの発射期間を今月29日まで延長すると発表しましたが、11日も発射の時間帯としている正午までに発射は行われませんでした。
一方、北朝鮮の軍の最高幹部が「発射するロケットに核兵器を搭載して、アメリカ本土まで飛ばすことができる」と述べていたことが分かり、北朝鮮がミサイルとして開発していることが改めて裏付けられました。
北朝鮮は、事実上の長距離弾道ミサイルの発射予告期間に入った10日、「1段目に技術的な欠陥が生じた」として、今月22日までとしていた発射期間を今月29日まで1週間延長すると発表しました。
2日目となる11日も、発射の時間帯とされている正午までに発射は行われませんでした。
こうしたなか、韓国の公共放送KBSテレビは、北朝鮮の朝鮮人民軍のリ・ヨンホ前総参謀長が、総参謀長を務めていたことしはじめにピョンヤンで行ったとされる講演の音声を入手し、公開しました。
この中で、リ前総参謀長は「人工衛星を打ち上げるということはロケット兵器と同じだ。そのロケットに核兵器を搭載して、アメリカ本土まで飛ばすことができる」と述べていたことが明らかになりました。
北朝鮮は、予告している発射について「人工衛星の打ち上げだ」と繰り返し主張していますが、KBSでは、今回入手した音声からも「核兵器を運搬するための長距離弾道ミサイルの開発が目的だとみられる」と伝えており、北朝鮮が、ミサイルとして開発していることが改めて裏付けられました。
先月、以下にて「みんなのはてブ」の公開について書かせて頂いた者です。
http://anond.hatelabo.jp/20120930171125
「みんなのはてブ」の関連サービスとして「みんなのコメント」を公開しました。指定したサイトについてのTwitterとはてなブックマークのコメントを表示します。
「みんなのはてぶ」を公開した後色々コメントを頂きましたが、それぞれのコメントを読むのが意外と面倒だったため、簡単快適に読むことを目的に作成しました。既に同様のサービスは公開されていましたが、「みんなのはてブ」と連携することを想定しているため、新たに作成することにしました。
コメントを取得するサイトはトップページからURLを入力することで指定できますが、以下のようにパラメータとして指定することも可能です。お気に入りのサイトを指定してリンクしたり、ブックマークすると便利かと思います。
http://c.minbu.biz/?url=http://anond.hatelabo.jp/20120930171125
今回は以上にて。
サイト作ったよー! - はてコま! | はてブコメまとめ B!
このサイト作っていろいろ確認とかして「さーて公開」って思った矢先に自分の作ったサイトからこんな記事見つけて「うひゃー!」ってなりましたw
はてなブックマークのトップページって、正直なんか飽きちゃったし、スクロールせずに表示できるのが数エントリーだけで、やたらヘッダがでかかったり、広告がでかかったり、欲しい情報がほんのちょっとしか表示されないし、気のせいかエロいサイトのサムネイルが表示されなかったり、デザインもまじめくさいし、改善したらもっともっと使いやすくシャレオツになるし、アクセスも稼げるんじゃないのって思います。
私も自分のサイトを作ろうと思った経緯はこの方とほぼ同じです。。公式って少し見辛いって思っていました。
そんなときにはてブ1000users超え記事アンテナ(´・ω・)|トップページを見つけて「あぁ自分で作るか」ってなりました。
週6フリーターさんがいろいろと使用したものを紹介してくれて、あまり技術のない自分でも作ることができました!
この場をお借りして、お礼を申し上げます。ありがとうございます!
では、恒例化している感じがする、サイト作成にあたってのご報告です。
使い方はいたって簡単。タグを選ぶか検索すると最近のはてブ100以上の記事があがってきます。
最初、サイトを作るにあたって「フリーターさんのものと差別化したいなぁ」と思ったので、私は"はてブエントリーのコメント"を"見る"ものに仕上げようと思いました。
なんでコメントを見たいと思ったかという原因はこちらの記事です。
この記事を読んでる人にも感じた人がいると思うのですが、タイトルを読んで「?」となりませんか?
記事を読み進めていくと更に「NSLog」が問題なのか??と混乱しませんか?
最初のタイトルの印象が強すぎて、はてブのコメントを読んでやっと正確に判断できました。
なので、コメントをもうちょい読みたいなーと思い、こういったサイトにしました。
それと、フリーターさんのとこに書いてあるものを参考にさせてもらってます。
本当にありがとうございます。
Webサービスを作ったことがなかったのですが、HTMLやCSSは知っていましたので、ほとんどVimでコーディングし、ブラウザで確認するという普通の作業をしていました。
phpは勉強したことがなかったので、わからないことがあれば都度ネットで検索していました。
JavaScriptでFeedを取得したり、PHPを使ってAPIからJSONを取得など、ファイルがまとまっていない感があります。
実は、bootstrapで作ったナビゲーションバーのドロップボタンがスマフォだと押せないんですよね。。
こういう問題があるときにフレームワークを使ったのを後悔しますよね。
実に手軽に使えるbootstrapですが、なんとなく使うのはオススメしません。
ネット上には他にグリッドシステムだけや、違う素材を配布しているサイトがあるので、俺俺フレームワークを作ることをオススメです。(でも、まとまっているという観点でbootstrapは使いたいですよね。)
サーバーはさくらインターネットのホスティングサーバーを使用しています。
初めて、こういったサービスを作ったのですが、小さい微調整に非常に時間がかかりますね。
見難い、見易いを考えながらコードを変更して、ブラウザで確認して・・・を繰り返すのは時間がもったいないですね。どなたかいいノウハウをお持ちではないでしょうか?
みなさんも、こう立て続けにはてな関連のサービスが立ち上がると自分でも何か作りたくなりますよね。
思ったら作って便利な世の中にしましょう!えいえいおー!
はてなブックマークのトップページって、正直なんか飽きちゃったし、スクロールせずに表示できるのが数エントリーだけで、やたらヘッダがでかかったり、広告がでかかったり、欲しい情報がほんのちょっとしか表示されないし、気のせいかエロいサイトのサムネイルが表示されなかったり、デザインもまじめくさいし、改善したらもっともっと使いやすくシャレオツになるし、アクセスも稼げるんじゃないのって思います。
ホットエントリーに入った週6フリーターさんのはてブ1000users超え記事アンテナ(´・ω・)|トップページは結構良くて、はてなブックマークのトップページよりも私には使いやすいのだけど、なんかおしい感じでもうちょっとかなーなんて思ったりしてました。
そんな中、最近仕事が忙しくて現実逃避になんか作りたくなって、お手軽でそんなに時間もかかりそうもなかったので、このサイトを作成することにしました。
はてなブックマークに登録されたエントリーを快適に閲覧することを目的として作成しましたが、一人で作成したため使いやすいのは私だけかもしれません。
私は職業プログラマーで簡単なサイトを構築する程度の知識は持っているため、作成時間はほとんどかからず機能的なところは1時間程度でしょうか。使用しているサービスやライブラリは普段使用しているものや「週6フリーター」さんが紹介していたものなので、ゼロから探していたらもっとかかったと思います。
レンタルサーバも既に契約していたものに相乗りしています。はじめは忍者ツールさんの忍者ホームページの無料プランにしたのですが、スマホで表示したら私には耐えられない大きさの広告が表示されたので、やめてしまいました。
また、サイト名をどうしようかとか、ドメインはどうしようとか、デザインを微調整したりとかは、会社からの帰宅後深夜にちょこちょこ行っていたので、そういう時間はもっとかかっているでしょうか。新しいサイトを立ち上げるときはみなさんそうだと思いますが、基本的な部分を作る時間よりも、その他このような作業に時間がかかっていると思います。
サイトの作成に利用したサービスなどを以下に記しますので、他の方のご参考になれば幸いです。
サイトを閲覧してくださった方は、こちらのコメントか、サイトに記載のメールアドレスまでご意見やご感想をいただければ、今後の参考にさせていただきたいと思います。
(記事が長すぎたので前編・中編・後編に分けました)
僕ももう、リストラされそうなとあるおっさんなんですが、先日Webサービスを公開しました。
きっかけになったのはこの記事です。
http://anond.hatelabo.jp/20101203150748
こんな事できたら良いなぁと思っていると、他にもやっている方たちがいました。
http://matome.naver.jp/odai/2131952812556433001
http://anond.hatelabo.jp/20120318122617
Rails3 と jQuery で、真面目にオシャレなエロサイトをつくってみました - h300
http://d.hatena.ne.jp/inouetakuya/20120331/1333192327
http://anond.hatelabo.jp/20120914214121
http://blog.ropross.net/archives/99
これらを読んで自分もやってみたくなり、
先日の家入さんの折れずに挑戦を続ける姿を見てモチベーションも高まり、
7月21日~8月19日の30日でWebサービスを作りました。
最後の一週間はお盆休みでしたが、それ以外は平日は仕事をしながら土日をフルに使っています。
と言っても、いきなり高度な事をするのは大変なので、
本当に自分が作りたいサイトをやる前に、一度シンプルなサイトを作ってみる、という所までです。
やってみて改めて分かったのは、「自分でWEBサービスを作りたいと思っている人へ」の中の人はかなりがんばったんだなぁ、と。
かなりの熱意とモチベーションをもって、効率良くやらないと、一から勉強してあの短期間であのサイトは作れません。
プロ顔負けの技術とおもしろいアイデア、情熱をもって短期間でそれをやってしまった中の人は凄いです。
だから、Webサービスに夢を見る人(僕)も、Web業界の人も、あとHな人もブクマするのでしょう。(賞賛)
それでは、一般人が一般的ながんばりで確実にやれるだろう手堅いラインをお届けします。
偏差値40の僕が最低限ここまで出来たので、きっとあなたならもっと出来るはず。
ステップ7まではサクサク進めて、分からなくてもどんどん次に行きましょう。
今回ぼくが作ったサイトはこちら
■ステップ0:準備
・パソコンを用意
・ブラウザはChrome,IE,Firefox,Safariあたりをインストールしておく。Chrome便利。
・作りたいサイトのアイデアとデザインのイメージ、ドメイン名(○○○.comとか)のイメージ。
・作る理由とやる気
・はてブ便利、Web業界の皆さんの空気感を知るため、なるべくPCかスマホでチェック。
ブラウザを右クリックして「ソースを表示」すると出てくるアレです。
Yahoo!とかのソースを見るとかなり長いけど、全部書くわけじゃないから大丈夫。
ネットで調べても良いけど、やっぱり基礎知識は本が良いと思います。
メモ帳で書いてブラウザで表示して、メモ帳で直してブラウザF5で更新して確認、
何となく分かってきたら、より具体的に理解するためにこの本を読みます。
PHPについて調べる。
初めはこの本が勉強になりました。
書いてある通りロカールサーバー(XAMPPかMAMP)を入れて、自分のマシンでPHPが動くようにします。
データベースの使い方も一緒に書いてあるので入門に最適です。
次はこれを読みます。
普通に読んでいくと中盤のフレームワークを作る所で挫折するはずなので、一旦そこまででOK。
パーフェクトPHP
PHPの他の選択肢としてRubyやPythonもあるみたいですが、学習コストがかかりそうなのと、そのままでは動かないサーバーがあったりで、
最先端のプログラマーになる必要はないので、レガシー&枯れたPHP一択です。
カッコつけずにモチベーションが持続するうちに勝負です。
VPS(専用サーバーを仮想的に分割して安くしたサーバー)が流行ってますが、
学習コストがかかるのと勉強する事が増えるので割りきって始めは普通のレンタルサーバーにします。
VPSを借りるとLinuxの知識やWebサーバー、メールサーバー、及びそれらの保守管理などの知識が必要になります。
レンタルサーバーならある程度マネージドで、作ったプログラムが動かない時の原因の切り分けもしやすいです。
おすすめは「さくらのレンタルサーバー」のスタンダードプランです。データベースの使えない「ライト」プランは止めましょう。
その他、ロリポップ、CORESERVERなどいろいろあるので最低限PHP,MySQLが使えるサーバーを選びます。
サーバーを契約したらアカウント情報を確認して、FTPでログインしてみましょう。
http://sourceforge.jp/projects/ffftp/
ログインできたら、ステップ1で練習したファイルをアップロードしてブラウザで表示してみたり、
ステップ2で作ったPHPファイルをアップロードしてブラウザで実行してみたりします。
慣れてきたらFileZilla FTP Clientが便利です。
Webサービスのしくみを理解するために、WordPressを借りたサーバーに入れてみます。
WordPressはPHPで出来たCMS(コンテンツ管理システム)で、ステップ1~3がどう組み合わさって動くのか理解できます。
ブログや会社案内のサイト程度は作れてしまうので触れておいて損はないです。
テーマをいじったり、プラグインで遊んでみると理解が深まります。
オススメはこの本。
プラグインのまとめはこの辺りが親切。
2011年版!絶対にインストールしたいWordPressプラグイン45個
http://vanilla-stone.com/blog/wordpress/2011-edition-45-wordpress-plugin-pieces-install-absolute/
TwitterやInstagramと連携するプラグイン入れたり、CRONで自動化したりすると楽しくなってきます。
ここまでで何となくWebサイトのしくみが理解できると思いますが、
自分の作りたいサイトを一から書いていくと思うと心が折れると思います。
そこで、CakePHP(ケーキピーエイチピー)というフレームワークを勉強します。
フレームワークというのはWebサイトの開発で必要になることが多い色んな機能をまとめてくれている枠組みソフトです。
PHPの文法で、フレームワークの書き方のルールに従うだけで、様々な便利機能を簡単に使用でき、
フレームワークは他にRubyのRuby on Rails、PHPだとSymfonyやYiiなどかなりの種類があります。
CakePHP 1.3によるWebアプリケーション開発―オープンソース徹底活用
あと、余裕があればこれも購入。
注意したいのは、現在CakePHPのバージョンは1.3系と2.0系がありますが、1.3を使うという事です。
2.0系は新しい機能が付いたりパフォーマンスが良くなったりしていますが、2012年9月現在、
バージョンアップが激しく、関連書籍は2~3冊程度、Webの検索でもヒットするのは1.3の情報が圧倒的に多いです。
MVCというデータ処理・表示処理・それらのコントロール処理を分離して記述するルールや、
ステップ2では踏み込んでいなかったクラスが出てきますので、慣れるまではかなりの心折設計です。
難しすぎて僕は理解できなかったので、ここで一旦CodeIgniterに浮気しました。
CodeIgniterはCakePHPと同じPHPで書かれたフレームワークで、インド方面で良く使われてるらしい。日本だとまだマイナー、かな。
ライセンス問題で下火になっていますが習得の容易さとパフォーマンスが良いのでフレームワークという概念の把握にはオススメです。
僕はこれを読んでCodeigniterだけじゃなくてCakePHPも理解できました。
CodeIgniter徹底入門
ただ、CodeIgniterは簡単・高速で習得しやすいけど、
その分シンプルで機能が少ないので、ちゃんとしたサイトを作ろうと思うほど自分で書く部分が増えていきます。
セキュリティやユーザー認証なども素人が自前で一から作るのは危険なので、やっぱりCakePHPお勧めです。
開発する時はgitHubに上がっているデバッグキットを入れると便利です。
cakephp / debug_kit
https://github.com/cakephp/debug_kit/tree/1.3
http://codezine.jp/article/detail/5105
NetBeansを使う時のCakePHP用の追加モジュールはここ
https://github.com/evilbloodydemon/cakephp-netbeans/tree/autocomplete
中編はこちら
未だ他社で報道されていないだけなのか、報道規制がメーカーから出ているのか、わからないけれど
http://www3.nhk.or.jp/news/html/20120905/t10014800381000.html
国際的なハッカー集団「アノニマス」の関連組織が、アップル社のiPhoneの端末IDや利用者の名前など、1200万件余りの顧客情報を入手したとして、このうちの一部をネット上に公開しました。これらの情報には、日本人の名前も含まれており、専門家は、情報が悪用されないよう、注意する必要があると指摘しています。
国際的なハッカー集団「アノニマス」の関連組織は日本時間4日、アップル社のiPhoneやiPadなどの端末IDや利用者の名前など、1200万件余りの顧客情報を入手したと発表しました。
このうち、およそ100万件はすでにネット上に公開され、情報の一部には、日本人の名前も含まれています。
これらの情報について、「アノニマス」の関連組織は、アメリカのFBI=連邦捜査局から盗み出したとしていますが、FBIは情報の流出を否定しています。
iPhoneなどの端末IDは、利用者を識別するためさまざまなサービスで利用されていて、外部に漏れれば、他人へのなりすましに使われる危険性が指摘されています。
情報セキュリティに詳しい産業技術総合研究所の高木浩光主任研究員は「サービスによっては、端末IDだけで、本人かどうかの認証を行っており、情報が悪用されないよう、注意する必要がある。サービスを提供する側も、セキュリティ上の危険性が高い端末IDは、認証などに利用することを控えるべきだ」と話しています。
何気にいろいろな憶測ができる記事。
米国FBIは否定しているが、AppleがFBIに個人情報を流していたかもしれない、という点。
googleも同じような事してると思うし、Facebookも携帯電話の電話帳を登録させる機能をやたら薦めてきた時期があった。
米国は個人情報やプライバシーに無頓着な傾向が強いと思っていたけれど、911以降、もしかしたらFBIに情報を渡すと大きな収入になるのかもしれない。
2009年に入学したっぽいからGoogle+をやっていた時期も大学生じゃなかったんじゃないかと思う。
https://plus.google.com/105945403054619746508/about
次の発言からしても2010年3月時点ですでに大学生だったろう。
「本キャンなう。新入生らしき人がたくさんいる。」https://twitter.com/sakaguchiaya/status/10309139156
「チャイ語の教科書が変わるっぽい。後期だけ再履。どうしよ。」https://twitter.com/sakaguchiaya/status/10406466365
「坂口さんは昨年、早稲田大学3年時、学費が払えず退学となっておりました。」http://studygift.net/report.php とあるので2011年4月に3年生(見込み)ということで間違いないだろう。退学なので3年には上がれていないはずだが。
奨学金が打ち切られた時期は不明だが、常識的に考えれば2年進級時だろう。
2011年3月31日ではなくて2011年7月1日や2011年9月20日に退学処分が確定した可能性もあるのか。http://www34.atwiki.jp/wasedasakaguti/pages/1.html#id_da69de36
どっちにしろ奨学金はそれよりずっと前に打ち切られていたということになるから学費が払えないのと就職活動のためのGoogle+は全く関係ないし、Google+で日本一になったころには大学生ではなかったことは間違いない。
何が一番腹が立ったかって、一度返還義務のない奨学金を給付されるというこれ以上ない支援を受けておきながら成績が下がったことで奨学金を打ち切られたにも関わらず、平気な顔で「世の中には経済的理由で大学生活を続けることができない人が少なくない。そういう人たちのために私が最初の事例としてがんばる!」みたいなことを言えてしまうことだ。一度は支援をふいにしたことに対して何か言葉はないのか?よく「わせだのわ」に出られるものだ。
これもいまからするとあざといなあ。 https://twitter.com/dfnt/status/173027680323780608
ここのところせっせと作っていたWEBサービスを本日公開しましたので、この場をお借りして告知させていただきます。
おそらく世界初、人の給料をのぞき見できる給与明細共有サービス「 Qryo(キューリョー) 」です!
Qryoのコンセプトは至ってシンプル。
みんなで給与明細を見せ合おう、という趣向です。
1. 簡単に給与明細を公開できる。(画像アップロードか、数値入力)。
こんな感じです。
僕の給与明細もすでに公開してますので、よかったら見てみてください!
このサービスは、完全に匿名でのご利用を「強く」お勧めします!
明細を投稿される場合は、本名や会社名等を公開しないよう充分ご注意ください。
だれしも人様のフトコロ具合は気になるところかと思います。
そこで、匿名で給与明細を公開しあえたら面白いのでは? と考えました。
でも、もちろんそれだけの理由で作った訳ではありません。
自分の給与を公開し、人の給与を見る。そして比較するという行為は、ひいては自分の現在と未来の収入について考えることに繋がります。自分の現状や将来について意識的に考え、仕事や収入に対する、明確な「自分の考え方」を持つことは、より良い人生をおくるうえでの強力な武器になると考えました。
Qryoがそのための一助となれば幸いです。
まだ作りが雑なところが多々ありますが…もしよろしければ触ってみてください!
それでは。
取り急ぎ…トラックバックありがとうございます!
そしてもっともなご指摘ばかりですね、、煮詰めた筈の仕様が甘かったなと感じます。
また夜に追記させていただきます。
結果報告とフィードバックを書きました。
http://anond.hatelabo.jp/20101203150748
もう、いいおっさんの年齢なんですが、先日、とあるWEBサービスを公開しました。
5年ほど前からぼーっと考えていたんですが、如何せん事務職の自分には”創る技術”が無かった。
優れた若い技術者(id:amachangとかうらやましい)や、チャレンジ精神あふれる経営者(id:hiroyukiegamiとか)が出てくる中うつうつとしている自分に嫌気がさし、4か月前の7月頃からHTMLやプログラムの勉強を始めた。
プログラム素人が試行錯誤を繰り返し、幾度もの挫折を乗り越えてエロサイトを作る過程を追った、感動のドキュメンタリー。
文明の進歩は常に性欲と共にあった…とは言え、ここまでブクマを集めたのはエロの力ではなく、彼の努力が評価されたからだろう。
2010年の増田において唯一の2000users越え。堂々の第一位だ。おめでとう。
http://anond.hatelabo.jp/20100219230508
そろそろ2010年も6分の1が終わろうとしているぜ。元日に立てた今年の目標はどうよ?今年こそTOEICで900点?今年こそ海外留学する?そんな目標は日々の生活に追われてすっかり忘れ去ってることだろう。社会人にとって最も重大な敵は日々の生活が忙しすぎることなんだよな。学生の頃はまだ自分が怠惰であることに自覚できる。「オレ(私)はだめなやつだ…」そんな自己嫌悪にも浸ってられるんだ。でも、社会人はそれがどんなにしょうもない仕事の内容であっても、「オレは毎日、仕事をしてるんだ!今日は英語の勉強をしなくてもいいことにしよう。週末にいっぱいやればいいや」って思うことができるわけだ。
ブクマはするが勉強はしない、ものぐさなブクマカ心理を考慮した、実践的かつ簡潔な内容が支持されたのだろう。
第二位だ。おめでとう。
ところで、TSUTAYAに海外ドラマのDVDを借りにいった後輩は英語ができるようになったのだろうか?
http://anond.hatelabo.jp/20100307164305
「牛丼並盛で」
「牛丼for everybodyキャンペーン適用でよろしいですか」
「なにそれ」
派生ネタは…残念ながら広まらなかったようだ。それでも第三位。おめでとう。
http://anond.hatelabo.jp/20100419125641
ここ最近、会社の近くにすげえ気に入ったお店ができて、お昼は良く通ってんだよ。
しかし、かならず水曜日に糞DQN客が来て、水曜は避けていたんだ。
この前水曜日でもないのに、俺が飯くっていたら、そのDQN客がきやがって、「うわ~最悪」と思ったけど、食べはじめたばかりだったので、どうしようもなかった。
女性や老人がDQNを撃退して傍観者がメシウマ、というよくあるネタだが、これは展開の斜め上っぷりが人気の要因か。
第四位だ。おめでとう。
http://anond.hatelabo.jp/20101211092522
本当にババアどもはろくな事しないな、ということで
モンスターペアレントを激しく批判してみたら意外に支持を得て戸惑っているエントリ。
四位のエントリもそうだが、みんなDQNを攻撃してスカッとしたいんだよね。
第五位。おめでとう。
http://anond.hatelabo.jp/20100904122315
自分のブログに書こうとも思ったのですが、会社が特定されてしまいそうなのでここに書きます。どこかに書かなければならないと思ったのは、この事実を誰かに伝えなければならないと思ったからです。
私が勤めていた会社はシステム屋さんです。2タイプの職場があって、一つはお客に注文を受けてシステムを開発してリリースして終了。もう一つはお客の会社に居候させてもらってシステムの維持管理をするというものです。私は後者のほうです。
お客は工場も複数構える結構大きな企業で、様々なプラスチック製品やコンピューター部品を作るところであります。日本だけじゃなくて海外とも取引があったと思います。
こういうエントリがよく伸びるのも、SEが多いはてなならではか。
真偽が怪しいところは増田らしいとも言える。第六位。おめでとう。
http://anond.hatelabo.jp/20100423202625
私はTwitterが怖い。これだけ人気があるサービスだけれど、私は少なくとも三つの問題点を見て取れる: 1)Twitterは心理学にいう「間欠的不規則報酬」のほとんど完璧な実例である。これはスロットマシンが人を惹きつける仕組みと同じ。 2)Twitterを使うことで得られる強力な「人とつながっている感覚」は、脳を騙して「何か有意義な社会的交流を行っている」と思わせてしまいうる。その一方で、脳の別の(古い)部分では、そこに人間の生存にとって重大な何かが欠けていると「分かっている」 3)Twitterは「常時マルチタスク状態」の問題を悪化させる要因の一つであるーーもしかしたら他のものよりもっと強力かもしれない。Twitterをしながら(もちろん、emailでもチャットでも同じ)、深く考え込んだり、フローの状態に入ったりすることはできない。
心理学・脳科学的なエッセンスを混ぜ込むと、何故だか記事の説得力が上がるというテクニック。皆も真似してみよう。
第七位だ。おめでとう。
http://anond.hatelabo.jp/20100620143255
俺は英語学習オタクだ。これまでの人生の中で大量の時間を英語学習に費やしてきた。中学校から始めて、日本にいてできる英語学習法は殆ど試したと思う。高校時代には学習参考書や問題集を二百冊以上終わらせた。ネイティブの個人家庭教師がついていて、さらにマンツーマンの英会話スクールにも通った。大学は迷わず英語学科を選んだ。大学在学中にTOEFLのスコアは640を超えた(厳密には覚えていないが、目標が640でそれを超えたのは間違いない)。
英語学習の限界を悟りつつ社会人として本気で英語を学習するはてな村民マジかっけー!
第八位。おめでとう。
http://anond.hatelabo.jp/20101022175359
理想の未来を思い浮かべてみよう。いや、地球最期の男になった自分がゾンビの群れを蹴散らす妄想じゃなくて、社会から見た理想の未来を。エネルギーはクリーンで無尽蔵、品物は豊富で汚い仕事は機械が全てやってくれる。みんな幸せでしょ?
ネット社会の将来に関する翻訳記事。個人的にはいちばん面白く読んだ。
第九位だ。おめでとう。
http://anond.hatelabo.jp/20101122004732
「うん」
「結婚願望は、特にありません。」
このシンプルな見出しの中に村民を釣るためのキーワードが四つも入っているよ。
第十位に滑りこみ。おめでとう。
もう、いいおっさんの年齢なんですが、先日、とある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を超えていることに気がついた。
このとき、テキストファイルでデータを扱おうと思っていたが大きすぎて動かない。
最終的にデータ量は5GBを超えた。
11月も後半、本稼働用のサーバーを探していたら、丁度カゴヤがVPSサーバーのベータ版を募集していた。
すごく、快適です。まだベータ版ですが、本番稼動でも、50GBで900円という激安プランです。
http://www.kagoya.jp/cloud/vps/
ベータ版では、3つまでOSのインストールができます。もちろんそれぞれにIPアドレスが振られます。
このVPSにサーバー管理システムをインストールし、もろもろの環境も作って、11月末についに、公開。
AV女優をスリーサイズから検索できるシステム、「完全に一致」です。
類似検索機能付きで、2次元と3次元をつなげる夢のシステムです。はい。
真剣に作ったんだ。仕事をしながらよく頑張ったと自分をほめてあげたい。
----------------------------------------------
インターフェース:jQuery+selectToUISlider
-----------------------------------------------
サーバー上にある静的なHTMLは1ページもなく、mod_rewriteですべてPHPが処理しています。
一番大変だった事は、、、
このサイトのデータはDMM社のデータを使わせてもらったのですが、AV女優の顔写真をそのまま使うのは、肖像権的にNGらしく、AV女優の作品の中からその女優の顔が一番大きく写っているパッケージを使うことにしました。
しかし、女優データは約5万件。作品データは12万件。とても手作業でやるわけにもいきませんでした。
結局どうしたかというと、Face.com(http://face.com/)という、画像の顔認識ができるAPIを無料で提供しているサービスを利用しました。
同様のことができる、OpenCVというソフトがあるのですが、最初から付いているパターンデータでは人の正面の写真しか顔として認識しませんでした。
それに比べて、Face.comの認識精度は驚くほど高く、横だろうが斜めだろうがかなりの精度で顔を認識してくれました。
データをJSON形式で返してくれる(JSONもこのとき初めて知った)為、取得したデータを後で加工しやすかったです。
1.このAPIを使い12万件の作品データをすべてスキャンするプログラムを書く※1
2.顔の縦の長さと横の長さを取得
3.縦×横で顔の面積を計算
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クエリーを保持してくれるらしく、実際にデータ検索を行わないので高速になるそうです。こんなの知らなかった。ありがとうございました!
プログラムはサンプルがあるからどうにかなるんですが、サーバー周りの事が全然わかりません。。。。ぐうぅぅ。。。。
おやすみなさい。
-------------------------------------
ブックマークコメントもらっていた事を別の日記で説明しました。
http://anond.hatelabo.jp/20101206224349
-------------------------------------
ページ下のリンクより「翻訳サイト/オンライン辞書 Translation / Online Dictionary」へ
せっかくなので、ここ2年ほどのさくらインターネットiDC移転を中心に、わかる範囲ではてなサーバ変遷の歴史をまとめてみようと思う。
> 59.106.108.68: mobile.hatena.ne.jp.
> 59.106.108.69: f.hatena.ne.jp.
> 59.106.108.70: rimo.tv.
< 125.206.202.66: mgw.hatena.ne.jp. < 61.196.246.69: b.hatena.ne.jp. < 61.196.246.70: b.hatena.ne.jp.
> 59.106.108.71: mgw.hatena.ne.jp. > 59.106.108.72: b.hatena.ne.jp.
< 221.186.129.148: g.hatena.ne.jp.
> 59.106.108.73: g.hatena.ne.jp.
< 125.206.202.82: search.hatena.ne.jp. < 221.186.129.147: ring.hatena.ne.jp. < 221.186.146.28: a.hatena.ne.jp. < 61.196.246.68: r.hatena.ne.jp.
> 221.186.129.147: search.hatena.ne.jp. > 59.106.108.74: a.hatena.ne.jp. > 59.106.108.75: r.hatena.ne.jp. > 59.106.108.76: ring.hatena.ne.jp.
< 125.206.202.83: d.hatena.ne.jp. < 221.186.129.146: d.hatena.ne.jp. < 221.186.146.29: d.hatena.ne.jp. < 61.196.246.67: d.hatena.ne.jp.
> 59.106.108.77: d.hatena.ne.jp.
> 59.106.108.97: d.hatena.com. > 59.106.108.97: hatena.com. > 59.106.108.97: m.hatena.com. > 59.106.108.97: m.hatena.ne.jp. > 59.106.108.97: s.hatena.com. > 59.106.108.97: s.hatena.ne.jp.
> 59.106.108.80: d2.hatena.ne.jp.
d2.hatena.ne.jpで新しいコメント構造の実験を開始しました - はてなダイアリー日記
< 221.186.129.147: counter.hatena.ne.jp. < 221.186.129.147: search.hatena.ne.jp.
> 59.106.108.81: counter.hatena.ne.jp. > 59.106.108.82: search.hatena.ne.jp.
> 59.106.108.78: w.hatena.ne.jp. > 59.106.108.84: h.hatena.ne.jp. > 59.106.108.84: h.hatena.com. > 59.106.108.98: w.hatena.com.
< 221.186.146.27: www.hatena.ne.jp. < 61.196.246.68: screenshot.hatena.ne.jp. < 125.206.202.66: map.hatena.ne.jp. < 125.206.202.66: i.hatena.ne.jp. < 125.206.202.66: graph.hatena.ne.jp. < 125.206.202.66: q.hatena.ne.jp.
> 59.106.108.86: www.hatena.ne.jp. > 59.106.108.87: screenshot.hatena.ne.jp. > 59.106.108.88: map.hatena.ne.jp. > 59.106.108.89: i.hatena.ne.jp. > 59.106.108.92: graph.hatena.ne.jp. > 59.106.108.99: q.hatena.ne.jp.
< ???.???.???.???: auth.hatena.ne.jp.
> 59.106.108.90: auth.hatena.ne.jp.
長いので省略
> 59.106.108.93: rokuro.hatelabo.jp.
> 59.106.108.102: k.hatena.ne.jp.
> 59.106.108.103: favicon.hatena.ne.jp. > 59.106.108.105: img.b.hatena.ne.jp. > 59.106.108.106: bbeta.hatena.ne.jp.
> 59.106.108.93: bottle.hatelabo.jp. > 59.106.108.93: counting.hatelabo.jp. > 59.106.108.93: news.hatelabo.jp.