「NGINX」を含む日記 RSS

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

2015-02-02

結構まじめにエロサイト作ってみた

Twitter Bootstrapの使い方を覚えるのを兼ねて、無駄に持っている技術を使ってエロサイト作ってみた

サイト

三代目アナル将軍

http://anal.tonight-dish.com/

コンセプト

環境

サイト機能

検索タグ検索等々まだまだありきたりなエロサイト構成です。

ngx_pagespeedでCSS圧縮したり画像最適化してくれたりdefer_javascriptしたりと、

ページの表示速度を優先したつもり。

Twitter BootstrapレスポンシブWebデザイン

裏側で動画タイトル入力したり、掲載掲載操作できるCMSも作って

スマホからいつでもどこでもサイト更新できるようにした。

更新してもキャッシュ残りで残念な感じにならないように、キャッシュパージ機構も作った。

ついでにpubsubhubbubへPublishも作ったけどいまいちうまく行っているかわからん

アナルについて

人間が産まれから初めて感じる快感は、排泄によるものらしい。

やっぱり男女問わず誰しもアナルが好きなんじゃないかな。

アクセスについて

リリースしてから1週間ほどだけどGoogleインデックスイマイチ

100/日ぐらい。

2014-12-24

イブクリスマスも予定のない俺とみんなのためのエロサイトを作った

作ったサイト

エロ動画を色々なところから収集するサイトです。

skrsvideo

http://skrsv.info/

サーバー選び

今回プログラミング言語Rubyを選択したため、基本的にはVPSクラウド的なサーバーLinuxが動作する環境を探しました。

エロサイト運営するにあたって問題になるのがサーバー選びです。

基本的日本レンタルサーバーではアダルトサイト運用を禁止しています

普段使っているさくらVPSが利用できず、AWSもなんだかグレーな感じ(東京リージョン以外なら・・・?)

そんなわけで探し、GMOグループWebkeepersを使いました。

Webkeepersのサーバー海外にあるらしいです。

質問アダルトサイト運用はできますか?

http://faq.webk.net/faq/index.php?qc=1&qc_sub=4&id=99

使っても良いよ〜というお墨付き

そして価格も手頃だったためここに決定。

システム

DBMariaDB
WebサーバNginx
フレームワークRuby on Rails

MariaDBを選んだ理由はなんとなく、MySQLとの違いはほぼありません。利用するGEMmysql2でいけます

NginxWebサーバで、ページキャッシュもしています

ちなみにJavaScriptは使わずすべてCSSで作る方針しました。

スマホPC対応のためにMedia Queryでレスポンシブにしています

Webの流れ

Nginx

unicorn

Ruby on Rails

MariaDB

という流れです

使っているGEM

gem 'mysql2'

gem 'rails_config'

gem 'kaminari'

gem 'haml-rails'

gem 'sass-rails'

gem 'nokogiri'

gem 'unicorn'

フロントhamlsassで、難しいことはしていないのでcompassはいれませんでした。

あとはデバッグ用にrails_config、pry系が入っています

クローリングスクレイピングでnokogiriを使います

クローラー

skrsvideoでは動画URLを取得するためにクローラーもどきスケジューリングして収集しています

スケジューリングにはcrontabを使用しています

crontabでRakeタスクを定期的に叩きます

コマンドはこんな感じ

RAILS_ENV=production bundle exec rake item:search


Rakeタスクはnokogiriでxvideosへのリンクを集めています

doc = Nokogiri::XML( open(URI.parse(url)).read )

urls = []

doc.css('a').each do |link|

 urls.push link[:href] if link[:href] =~ /xvideos.com\/video(\d+)/

end

Nokogiriのスクレイピングでaタグリンクを取得し、URLxvideosのものかチェックして保存って感じです。

動画を探し終えるとaタグからランダムピックアップし次のページに進んでいきます

動画が見つかったページはドメインDBに記録して、しばらくしたら再びクローリングをするようにし、収集効率化。

サイト機能

(45 min)←コレの安心感は異常wwwwww

http://blog.livedoor.jp/dennououjo/archives/39873075.html

これを思い出して、動画時間を表示するようにしました。

30分以上の表示はちょっと頑張ったところ

http://skrsv.info/30_min_more


AV女優タグが表示されるようになっています

これはタイトル文字列から部分一致で引っかかったものを表示しています

AV女優名前を表示するためにWikipediaからとってきたら、ちょっと膨大な数になってしまったため断念。

どんだけ女優いるんだって感じですね。

DMMランキングに載っていた方だけをとりあえず入れています

タグも同様にDMMから

おわりに

1日でつくろうと思っていたら思った以上にサーバーが見つからないで、サーバー選びに1日かかってしまいました。

あとはFC2とか対応できたらいいなーと思います

2014-12-11

スマホMNPするのに超役立つ…かもしれないWEBサービス作った(URL再送

日本国2000店舗ぐらいの携帯ショップが発信しているTwitterキャンペーン情報をまとめて検索できるサイト作りました

http://xn--zckg5hrc.com/

日本語ドメインで「スマゼロ.com」)

都道府県

・機種名(iPhone5s とか XperiaZ3 とか)

ショップの種類(ドコモショップ とか ソフトバンクショップとか 、あと複数キャリア取り扱い店舗とか)

キーワード(一括0円とかキャッシュバックとか)

検索できるようにしました。

ちなみに佐賀県島根県富山県店舗が見当たらなかったので選べませんwww誰かショップTwitter知ってたら教えて下さい。

現状アクセスが無いので、MNPまとめてるブログPRコメント連発中。

ちょっと迷惑かもしれないけど、自分で使ってみて「良いサイトできたな。。」と思ったので。。

技術的にはCentOS on PHP+MariaDB+Nginx だけど特別にすごいことしていないので割愛

TwitterAPIをフル活用してるけど、結構制限が掛かっているのでそこだけ少し苦労した。

DB検索が超重いので改善案を検討中。。。

※ちなみに今はauのXperiaZ3のMNP一括0円が熱いらしい。まあはてなしてる人はMVNOだろうけど。

※前回の日記日本語URLが上手く登録されていなかったので再投稿はてな記法が効いていなかった。

2014-12-10

スマホMNPするのに超役立つ…かもしれないWEBサービス作った

日本国2000店舗ぐらいの携帯ショップが発信しているTwitterキャンペーン情報をまとめて検索できるサイト作りました

http://xn--zckg5hrc.com/

日本語ドメインで「スマゼロ.com」)

都道府県

・機種名(iPhone5s とか XperiaZ3 とか)

ショップの種類(ドコモショップ とか ソフトバンクショップとか 、あと複数キャリア取り扱い店舗とか)

キーワード(一括0円とかキャッシュバックとか)

検索できるようにしました。

ちなみに佐賀県島根県富山県店舗が見当たらなかったので選べませんwww誰かショップTwitter知ってたら教えて下さい。

現状アクセスが無いので、MNPまとめてるブログPRコメント連発中。

ちょっと迷惑かもしれないけど、自分で使ってみて「良いサイトできたな。。」と思ったので。。

技術的にはCentOS on PHP+MariaDB+Nginx だけど特別にすごいことしていないので割愛

TwitterAPIをフル活用してるけど、結構制限が掛かっているのでそこだけ少し苦労した。

DB検索が超重いので改善案を検討中。。。

※ちなみに今はauのXperiaZ3のMNP一括0円が熱いらしい。まあはてぶしてる人はMVNOだろうけど。

2014-10-12

http://anond.hatelabo.jp/20141012100526

>そもそもnginxデータベース接続することすら不可能だろ。確か。

これはクッソ恥ずかしすぎるだろ

なんでこんなあり得ない妄想ぶちまけてるの?

anond:20141012100526

apache+mod_phpを想定してるのかもしれないけど、最近nginx+php-fpmなんて構成もあって、その場合nginxphp-fpmは別サーバで動かすのが一般的

で、その構成場合webサーバ=nginxはそれほど負荷がかかるわけじゃない。それこそ1台で1000万単位アクセスをさばくことも可能(というか余裕)。

冗長化については、あまり胸を張って言えることじゃないが、webサーバが落ちるということは全くといっていいほどないので、ゴニョゴニョ……そういう現場多いんじゃないかな?

2014-09-09

クラブ好きな新米エンジニアが1週間でWebサービス作ってみた

こんにちは

文系出身だけど前々からWebサービスつくってみたくて勉強がてら一人でWebサービス作ってみました。

作りたいって思うなら実際に作ってみるのが一番いいってじっちゃんがいってた。

やってみて感じたこととか先輩エンジニアの人たちに教えて欲しいこととかを書いていきたいと思います

じっちゃん、僕にもできたよ!

作ったWebサービス

EDM JACK

http://edmjack.com/

簡単に説明するとクラブミュージック淡々と紹介していくサイト

作ってみた人のあれこれ

・26歳

フリーター(ほぼニート)→知人の会社で営業職→今年の4月Web業界転職

クラブミュージックが大好き。だけど人混みは嫌い。

・営業職だったころにあい時間ドットインストールとかでHTML/CSS勉強をしてた。

大学中退してからフリーターになって、その頃から自分Webサービスとかつくって運営してる人ってかっこいいな〜とか思ってた。

Facebook映画とか見たときは完全に感化されっぱなしだった。

でもいつか作れたらいいな〜って思ってただけでなにもしてなかった。

最近いろいろ環境が変わって少し休みをもらえたので奮起して勉強がてら作ってみることにしたのです。

なにを作るか

漠然と「Webサービス作りたい」って思ってたからまずどんなWebサービスを作るか考えました。

やっぱり好きなことじゃないと続かないと思ったので

自分が好きなクラブミュージックをまとめるサイトを作ることにしました。

ジャンルDJ KAO●Iとかミーハーな感じの曲じゃなくてEDMってやつ。

EDMといえば今月日本でもUltra Music Festivalが開催されるね!やったね!Hardwellに会えるね!

どうやって作るか

まずはプログラミングとやらを勉強することにしました。ドットインストールは偉大です。お世話になりました。

ドットインストール

http://dotinstall.com/

ここでHTML/CSSPHP勉強しました。でもPHPゼロからコードを書いて作ろうとすると重大な問題があることに気が付きました。

時間がかかりすぎる。

今回はとりあえず自分でなにかWebサービスを作ってみるということを経験たかったのでWordPressを使うことにしました。

サーバー環境の構築を勉強した

でもさすがにレンタルサーバーを借りてWordPress入れましたっていうんじゃ先輩エンジニアの人たちに怒られちゃうと思ったので、

WordPressを入れるサーバー環境構築は自分で頑張ってやってみることにしました。

なのでWeb業界ではアイドル存在AWSっていうやつで頑張ることにしました。

ここでもドットインストールにお世話になりました。ほんとなんでもチュートリアルがあってすごい。

最初WebサーバーApacheを入れていたんですが、なんか重たい感じがしていろいろ調べているとNginxナウい感じだったので

Nginxインスタンスを立て直すことしました。環境的にはこんな感じ。

AWS EC2 (t2.micro)

Nginx 1.4.7

php-fpm 5.3.28

MySQL 5.6.13

ドットインストールUnixコマンドとかを勉強したとはいってもNginxの設定周りをいじるのは結構大変でした。

でもNginx使うからにはチューニングしてから使わないとApache先生に怒られちゃうので、

この記事を見ながら頑張ってチューニングしました。

さくらVPS512で、Yahoo!砲食らっても WordPress平常運転させるための設定

http://dogmap.jp/2013/04/16/sakura-vps-performance-tuning/

チューニングテストをしたらTransfer Rate17[Kbytes/sec] くらいから15000 [Kbytes/sec]くらいになった。

Nginxやばい。はやすぎ。なにこのスピード

WordPressを入れていろいろ設定をしてみる

無事にサーバーが立てられたのでWordPressを突っ込んでテーマかいろいろいじりました。

使用したテーマPRONTO

http://www.wpexplorer.com/pronto-wordpress-theme/

基本的にはテーマをそのまま使ってるだけです。

シェアボタンをつけたりFacebookのLikeBoxを入れたりでちょっとテーマいじった程度。

あ、カテゴリタグにpickupってつけたら自動投稿が目立つようにした。これは自分テーマファイルいじって書いた。

入れたプラグインはこんな感じ。Jetpackモバイルテーマのみを有効化してる。

アイキャッチ画像が多いからPhotonも有効化してもいいかなって悩んでる。

Akismet

All In One SEO Pack

Batch Category Import

Favicon Rotator

Font Awesome Icons

Google Analytics

Jetpack by WordPress.com

Mobile Theme Featured images for Jetpack

Newpost Catch

NextScripts: Social Networks Auto-Poster

Nginx Cache Controller

Remote Images Grabber

Video Thumbnails

Wordpress Popular Posts

WordPress Related Posts

WP Multibyte Patch

サイト運用を開始

WordPressなのであとはたらたらと僕がオススメする曲を更新していくだけ。

EC2t2.microだけど、Nginxのおかげなのか特に問題はなし。

今はYoutubeSoundcloudURLをそのまま投稿に入れて、アーティスト名とかDJ名でカテゴリ分けしてる。

せっかくだからドメイン代とかAWS代だけでも回収できればいいなってことでAdSenseも入れてみたw

やってみて思ったこと。

実際に作り始めてから1週間程度でここまでつくることが出来ました。

AWSNginx環境構築→4日

WordPress環境構築→3日

ドットインストールがなかったらここまで速くつくれなかった。ありがとうございます田口さん。

元々非エンジニアでもやる気になればそれっぽいのが作れて感動しました。

でもなんかOGPの設定がうまくできず、Facebookとかでシェアしようとするとたまに全然関係ない画像が表示されてしまう。

テーマファイルに直接書いてもプラグインOGP設定してもよくわからなかった。

Facebookデバッガーつかってキャッシュクリアしてもできたりできなかったり。

これはNginxキャッシュが影響してるんかな。

今後やりたいこと。

将来的にはSoundcloudとMixcloudを足して2で割ったサイトになればいいな。

キュレーター制度とかも入れてみて、僕だけじゃなくていろんなEDM好きやDJおすすめの曲を投稿できるようにしていきたい。

WordPressで構築しちゃったけどできるだけプラグインに頼らずに自分PHP書いて実装できるように頑張らなきゃ。

本とかは一冊も読まずにここまで作れたけどPHPエンジニアならこれは読んどけよ若造ってのがあったら教えてください。

EDMは素晴らしいよ!クラブ好きな人もそうでない人もきっと好きになる曲が沢山あるから聞いてみてね!

EDM JACK

http://edmjack.com

2014-07-10

http://anond.hatelabo.jp/20140710082319

そんなことないよ。シリコンバレーエンジニアの数も求職数もものすごく多く、裾野がかなり広いので、実力レベルは上から下までさまざま。博士号なんてもってたら給料が高くなるから雇用側もあえて学士程度を望んだりするケースも多い。すーぱーぷろぐらまーレベルがどうしても必要会社なんて一握りだし。一部の花形企業以外は、実力はそこそこでいいから$80Kで来てくれますありがとうみたいなところは多いと思う。

会社スタンスもさまざまで、純粋CSでやってきた人じゃなくても、新しいプロダクトを作るセンスがあるとか、HTML/CSSJavaScriptに強いとか、NginxとかNode.jsを使って仕事したことあるとか、IT土方だけどJavaだけは人並み以上にできるとか、インディー系で携帯ゲーム作ってたとか、アジャイル開発プロセスに明るいとか、色んなタイプの人が評価される。何か得意なこと持ってれば、そういう人を探してる会社は必ずある。シリコンバレー最先端で尖ってるっていうイメージもあるけど、枯れた技術での固い職ってのも多い。JavaとかPHP仕事なんていくらでもある。Flashですらいまだに結構ある。ほんとに裾野が広い。多くの人が、それなりの実力でそれなりの仕事をしつつ、家族との時間自分時間を大切にして人生楽しんでる。

会社によっては、平均的な日本人の勤勉さを知っていて、そういう面で重宝されるケースもある。世界中から人が集まってるので、勤務態度も様々で、その中では日本人の真面目さは割と有利。まあ、日本人英語しゃべれないとも思われてるけど。逆にちょっと話せればかなりインパクト強い。

結局、

大学高専出てるか(出てないとビザが厳しい)・・・できれば理系、できればCSメジャー

英語で最低限のコミュニケーションができるか

採用したらすぐ来れるのか

くらいじゃないのかね。

2014-04-11

AV(エロのほう)なウェブサービスを作ったとき発見したこと。

 

世の中にはマニアがあふれている。

これに尽きます

「僕は世の中を知っている大人だ。」なんて

漠然と思っていたりもしましたけれど

こんな身近に知らない世界はありました。

中でも僕を驚かせたのは

嘔吐好き」と「キワモノ好き」の2つです。(´・_・`)

嘔吐好きとか、

ゲロはいてる女性見て、なんで興奮するんですか!? Σ(゚∀゚ノ)ノ

そのゲロかぶって、なんで興奮するんですか!? Σ(゚∀゚ノ)ノ

キワモノ好きなんて、

裸の女性ミミズ昆虫にまみれて、それを食ってんですよ! Σ(゚∀゚ノ)ノ

さすがに気持ち悪くなりました。。。

キワモノAVはサービスデータから除外しました。。)

今、日本人口が約1億4千万人として

男は半分の7千万人でしょ?

エロ情熱がある若者から中年層だとその半分強で4千万人として

その4千万のうち

嘔吐好きな変態さん。

キワモノ好きな変態さん。

ってどのくらいいるんでしょうね。。。

作る人がいて見る人がいるんだから、まあソコソコな人数いるんだろうなあ。。


作ったサービスについて


【らぶらぶAVさーち】

http://love2av.com/

AVの検索サイトです。

ちなみに、ワンクリック検索できるピックアップ検索は私の趣味です。w

最近は、つぼみ紗倉まなほしのあすか臼井あいみがオススメです。www ぐう可愛い!(゜∀゜


内部的な仕組み


Nginx + php-fpm + MySQL で動いています

言語PHP + Smarty + Javascript(jQuery) で書いています

あと、スクレイピング用に .NETwindowsアプリ作りました

え、スクレイピングPHP で作ればいいのにって?

スクレイピングってサイトデザインが変わったら

すぐ誤動作してしまうのですよね。。。

PHPだと対応し直しが面倒なので .NET に逃げました。。。。ヽ(°▽、°)ノエヘヘヘヘ

データ更新


データは、アフィリをやっている

動画サイトのduga さんと、MGS動画さんから持ってきています

アフィリじゃないリンクを置いておきますね。

DUGA

http://duga.jp/

MGS動画

http://www.mgstage.com/

データを常に最新にしておくために


という作業をcronで6時間ごとに実行しています

おすすめの使い方


個人的には

待ち合わせで暇なとき

スマホちょっとエロ画像見よう」 ( ・ω・)

てな感じで使っています

 

2014-01-31

動画サイトプログラマおっちゃんが秒速でエロサつくったで


寒いな。みんな風邪引いてないか?

去年のこの季節に「エロサイト作ってみた」系のエントリが多くあがってたやんな?

おっちゃーん完全に出遅れパターンなんやけど、、エロサイトつくったわ。3時間20分(12000秒)で。

■ さむえろ

http://thumero.com

エロいから部屋で見るんやで!



エロ動画探すときって、基本みんなサムネイル見て選ぶやろ?

サムネイルでいいな~とか思っても、実際動画見たら残念なときとか結構あるやろ?w

でも逆に「これ絶対かわいいやつやん!」って思って、

実際に好みの子動画に当たったときって最高やん?ちょっと自分才能あるんちゃうんって勘違いするやん?

このサイトはそんなサムネイルから動画を探す作業を、宝探し感覚でできるサイトなんやで!

ただのサムネイルの垂れ流しやから、気に入ったサムネイルあれば押して動画のページに行くだけや、シンプルやろ?

まぁ思いつきやし、すこしでも見てくれる人がおれば、おっちゃんは満足やで!

あとこんなんあったらええやんとかあれば教えてくれ〜喜ぶで!

ちなみにおっちゃん某動画サイト中の人で、

繁忙期過ぎてちょっと時間できたから、ちゃちゃっと作ってみたんやわw


かる〜く下にやったことメモっとくわ!

誰かの参考になったらええの〜。

時間も書いとくしw


制作時間   合計3時間20分 (12000秒)

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

STEP 1  以前借りていたサーバー初期化 (10分)

STEP 2  ssh、最低限セキュリティ設定 (10分)

STEP 3  nginxインストール、設定 (15分)

STEP 4  apacheインストール、設定 (15分)

STEP 5  mysqlインストール (15分)

STEP 6  テーブル設計、テーブル作成 (15分)

STEP 7  phpインストール (15分)

STEP 8  動画データを取得するAPI作成 (30分)

STEP 9  HTMLコーディング (1時間)

STEP 10  フロントエンドJS実装 (15分)

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


もうエロサイト作りましたは遅いんかのう。

もっと早く作っとけばよかったのう。。

でも逆に今誰もエントリしてないから見てくれるんちゃうか??w

おっちゃんな、エロ永遠平和象徴やと思っとるで。

みんな下半身冷さんと暖かくして寝るんやで!!

おなすみ!!!



■ さむえろ

http://thumero.com

※ええな?部屋でこっそりと一人で見るんやで!

2013-08-26

初めてのRailsサイト作った人が使ったGemリスト一覧

ども。

以前、はてな匿名ダイアリー日記を書いた者です。

【Ruby on Rails勉強】 xvideosまとめサイトっておいしいの?

上の記事でも書いていますが、Railsはおろか、Rubyを初めて触った人間ゼロからWebサービスリリースするために利用しているGemを公開したいと思います

作ったサービス

サイトonalife(オナライフ)
URLhttp://www.onalife.com
説明xvideos動画の共有・ユーザー参加型のまとめサイト

使っているGem

sqlite3

developmentモードで起動する際のデータベースsqlite3を使うようにしています

コーディングサーバー起動→動作確認→コーディング…という流れになりますが、サーバーを起動する際に、

$ rails s

と実行するだけでサーバーが起動できるため大変手軽です。

サーバー起動後はブラウザhttp://localhost:3000/アクセスすれば開発用のサイトを確認できます

mysql2

productionモード(本番環境)で利用するのはMySQLを使うようにしています

理由は他のWebサイトで推奨されていたため。

sqlite場合だと、単純にDBデータファイルとして扱っており、同時に複数アクセスがあった際、最初アクセス中にファイルロックされてしま仕様との記事をどこかで見たため、MySQLを使うようにしています

developmentとproductionで動作を分けるには、 config/database.ymlで分けることができます

development:

adapter: sqlite3

database: db/development.sqlite3

pool: 5

timeout: 5000

production:

adapter: mysql2

database: production.mysql

encoding: utf8

pool: 5

username: <yourname>

password: <password>

timeout: 5000

kaminari

pagenation系のド定番ですね。

よくWebサービスのページ下にある [1][2]・・・[X]といったリンクが表示されている、あれです。

http://memo.yomukaku.net/entries/238

https://github.com/amatsuda/kaminari

unicorn

Unicorn + Nginx + Rails で構築しています

効果の違いなどはGoogle先生質問すると大量に返答がありますのでこちらでは割愛

体感的にもかなり違います

nokogiri

スクレイピングするのに使っています

ONALIFE(オナライフ)では、xvideosの動画URL画像パスを抜き出す為に、こちらのGemを使っています

HTMLブロック単位で抜き出せるため大変重宝しました。

http://himaratsu.hatenablog.com/entry/2013/04/27/002249

http://nokogiri.org/

acts-as-taggable-on

タグ機能を簡単に実装するためのGem

これは捗る。超絶オススメ

サイトタグ機能はこちらで一瞬のうちに導入できました。

自作するとなるとかなり労力使いますから…こういったところは極力他の人が作ってくれたものを流用してもバチはあたらんでしょう。

https://github.com/mbleigh/acts-as-taggable-on

typus

管理画面を一瞬で作ってくれるGem

通常だと管理画面も rails g xxx とかやって controller 作って、 view 作って…とかやらないといけませんが、こちらのGemを使うと一瞬で終わります

素晴らしい!!

サイトでは、投稿していただいたxvideosの動画が不適切な場合などに消去する必要があるため、どうしても管理者向けの画面が欲しかったのでこちらを使いました。

データベースを直接操作して delete とかできちゃいます

http://www.func09.com/wordpress/archives/1136

google-analytics-rails

Webサイトを作る上でアクセス解析というのは必須です。

自分サイトアクセス傾向を解析して、どうすればアクセスが伸ばせるか、ということを考察するのに必要不可欠な機能です。

通常、Google Analyticsサイトを登録すると、Javascriptコードが生成されるので、それをWebサービスに貼り付けるだけで完了ですが、こちらのGemを使うと、Google Analytics で生成されるID番号のみを登録するだけで自動的に挿入されるようになります

コードがごちゃごちゃしなくなるので可読性が上がります

最後

まだONALIFE(オナライフ)は発展途上のサービスです。

機能拡張していくうえで、先人たちのありがたいGemをどんどんこれから活用していければ、と思っています

みなさんもこれは便利!というお勧めGemがあれば是非教えて頂ければと思います

トラックバックコメントとかでも大歓迎です!

以上、ONALIFE(オナライフ)で利用しているGem一覧の紹介でした。

参考サイト

http://anond.hatelabo.jp/20101206224349

http://anond.hatelabo.jp/20101203150748

http://anond.hatelabo.jp/20120914214121

http://anond.hatelabo.jp/20130120190550

じゃあの。

2013-08-23

夏休みの宿題的にサラリーマンアンテナサイト作ってみた技術

とある日記の続き。というよりもより裏側。

サーバ構成詳細

nginx+php-fpm+Mysql作成

それぞれ、もっとも遅いとおもわれる構成になっています

nginxキャッシュつかってませんし、php-fpmインストール後のデフォルト状態、

Mysqlインデックス適当でQueryCacheもOFFの状態…

それでもシンプル構成であればそこそこ性能でますし、

前半で書いたとおり、サイトスピードは現状adsenseの表示スピード

引っ張られているので、このまま。

サイト遅くなったら鯖引越しするくらいの勢いじゃないと、

夏休み中に作成が終わりそうにありませんでした。

サイト構成

トップページ

 ->aboutとかその辺

 ->各ゲームカテゴリページ

  ->サイト一覧ページ

いろんなソシャゲのページを作りたかったので、

総合ページを作成して、そこから飛べるようにしてみました。

ただ、デザイン問題点に挙げられるんですが、

正直どうやって各ゲームカテゴリページへ行くのか、

また総合ページに戻るのかがわかりにくくなっちゃいました。

反省点というか、改善しないといけない点。

ページ構成

WPMTを見て、

1.ヘッダー

2.サイドバー

3.メインコンテンツ

3,5.ページャー

4.フッター

の4つのコンポーネントとして考えました。

またそれぞれ、総合ページからしか見られないコンポーネントと、

ゲームカテゴリからしか見られないコンポーネントがあり、

それぞれのコンポーネントユーザ関数ではなく、ファイルをincludeする形で

作成したことが反省点。

最終的なinclude用のファイルが18個…

正直ファイル分けすぎたorz

このあたりphpプロの方はどうやって対処してるんでしょう…

ファイル+functionで分けてるんでしょうか…

また、総合ページとゲームカテゴリページのトップページSQLの内容がぜんぜん違うため、

abbench(前半参照には情報だしてます)では秒間の処理可能数が倍(総合ページ100req/sec ゲームカテゴリ250req/sec)となっています

細かく見ると、総合ページではカテゴリー一覧をselectした後に、記事リストカテゴリーリスト別にselectしてますが、

ゲームカテゴリページでは1回のselectで終わっています

現在ゲームカテゴリは3つしか作っていませんが、将来的にはもちろん増やす予定ですので、

今後どんどん重たくなっていく見込み・・・

RSSフィードを取得するCronにあわせて総合ページのメインコンテンツ部分を静的HTMLにしていくのもありかなと。

そうすると負荷がかかるのは作成時の1回のみになるとおもいますので、ユーザさんから見たら早いページ表示になるかと。

ただし、総合ページってどれくらいの人がみられるんですかね…

機能について

巷のアンテナサイトさんは、ハテブのブックマーク数やtweet数などのSNSの評価数や、あとで読む機能

特定のサイト非表示にする機能など、結構いろいろな機能が付いてます

今回は夏休み終了に間に合わせるために、というのもあって、ばっさり機能を落としましたが、

こういう機能って必要なんですかね・・・? 個人的に使ったことがないもの・・・

そういうニーズがあればつけてもいいとおもっているのですが、現状遅いサイトさらに遅くはしたくないので、

adsenseを1個にして機能をつけるくらいなんでしょうかねー。

adsenseまったくなしだと、鯖代の維持がもったいなくてサイト閉めちゃう方向に動きたくなっちゃますし。

今後のサイト変更に関して

プログラムリファクタリングデザインの変更は必須だなとおもっています

とくにデザインは早いうちにどうにかしないといけないんですが、

これだけは自分スキルにないので、そのうちLancersお仕事一覧にのちゃうかも…

そのときは見られた方よろしくお願いします。

プログラムリファクタリングに関しては、

ちょっといろいろなサイトを見て回って、構想を深めたいのですが、

個人レベルでの大規模サイトって、なかなかノウハウないんですよねー。

ある程度たまったら、こうしてみたらいいじゃない?ってのをまたここに書ければいいなぁとおもっています

ブログを作るのは苦手だからね。放置ちゃうだろうし。

最後

以上、長々とサラリーマン日記を見てくださってありがとうございました。

(なんか規約違反通報されたので、サイトURLと前半の日記へのリンクはなしでお願いします。

 というより、ここまで書いててなんだけど、増田って書くの初めてだから正直どういうルールかわかんね

 サイトちゃんと完成したぜひゃっはー!!!な状態だし。これで艦これ、何も気にせず遊べるし。)

2013-08-18

プログラマなんて勉強しなくていい

if文とfor文だけ使えば仕事はできます

フレームワーク使ってれば細かいところは意識しなくていいので、後はコピペでなんとかなります

数年もってる会社だと最低ひとりは出来る方がいるので、尻拭いは全部その人がやってくれます

↓こんなやつが堂々とプログラマ名乗ってやっていけるのです

自分PCLinux入れたことがない

・当然コマンドも知らない

ウェブ系でもhttpが何なのかわかってない

オブジェクト指向を理解してない

デザインパターンもしらない

・最新技術勉強をしないどころかその単語さえ知らない

chefvagrantNode.jsNoSQLNginx

自分が知らないことは平気でできないと言う

etc ...

中小企業を転々としてきましたがこんなかんじでした

一部の少数精鋭でやられてる会社さん以外は似たり寄ったりです

経験がないんですが大企業だとまた話は変わってくるんですかね

2013-06-07

http://anond.hatelabo.jp/20130606115505

トラックバックありがとうございます

nginxのerror.logに出ていました。

backend側の処理に誤りがあったので、修正しました。

元気でました!

根気よくやって行こうと思います

2013-06-06

http://anond.hatelabo.jp/20130606114046

認証を許可したら

nginx error!

ってなったよ?ちなみにChrome

いくつかのブラウザでチェックした方が良いよ。

キャッシュが残ってて、「たまたま」上手く行くこともあるし。

シークレットモードで試してもいい。

でも自分で考えてスクラッチで創るのは良いと思う!

資格なんかより、より実績になるし。

頑張れ。

アラサーニートがはじめてのweb serviceを作ってみた

概要

http://hakohako.me/

hakohakoは、バンド好きのためのライブ日程共有サービスです。ツイッターフォローしている人のライブ日程をカレンダー形式でお届けします。ちょっとでも気になるバンドを見にいきましょう!

すみませんgoogle chromeしか検証していません。

動機

3つあります

一つ目は、一人でスクラッチで作りたいからです。プログラムを書くことは楽しいです(たいしたものはかけませんが)。しかし、デザイン運用のことは苦手で経験不足でした。これを期にやってみようと思いました。

二つ目は、少しでも気になるバンドを見逃したくないからです。不精なこともありますが、すべてのバンドをチェックできません。いつのまにか来てたりとか、来る前に解散してました。バンドの魅力は、小野ほりでい先生も認めてます

三つは、就職したいから!

構成

一人で小さくwebserviceを作るためにはどうしているかを他の人にも書いてほしいため、自分から書いてみます


言語pythonで、web aplication frameworkはflaskを使いました。rubyphpよりpythonが楽だと思いました。flaskはmicroframeworkで、rubySinatraと似ていて、小さいアプリ作成するのに適していました。

永続化のところは、redisを使いました。結果、redisを使った何かになってしまいました。。。mysqlでもpostgresでも、rdbを使った方がよかったです。ただ、sessionの管理message queueを実装できるので、そちらで功を奏しました。

amazon ec2microで、nginxもuwsgiのreidsもworkerも動かしてます。dot cloudも試していたんですが、無料枠は4月末で終了してました。

デザインが苦手なので、bootstrap、bootswach、font awesomeを使いました。しかし、基礎ができてないためイケてない感があります。ノンデナイザーズブックを読んで出直してきます

javascriptも苦手なので、coffeescriptを利用しました。pythonを使っているせいか、書きやすいし読みやすいです。mvcframeworkは利用していませんが、modelview意識して書きました。

githubgitの代わりに、bitbuckethgを使いました。私にはgithubgitの敷居は高かったようです。bitbucket日本語で利用できるので、楽ですね。hggitよりも複雑なことを感じないです。ただ、gitの方が日本語ドキュメントは多いです。

gruntは、lessとcoffeescriptコンパイルで使いました。リアルタイムで変更を通知するlivereloadも併用しました。

感想

楽しいです!

聞きたいこと
最近オススメバンド

2013-03-03

DMM APInode.jsで今の気分に最適なエロ動画紹介サービスをつくってみた

作成の経緯

エロが好きです。

ボクはDMM.R18のヘビーユーザーなのですが、どうしても自分の好みの中だけで、グルグル回ってしまい、

世の中にAVは山ほどあるはずなのに、知らないなんてもったいないもっとたくさんのエロ出会いたいという思いがあって日々悶々としていました。。

そんな中、AVというのは毎日の気分によってオナニーしたい見たいものが違うわけだから(例えば毎日食べたいおかずが違うように)、

今の自分の気分を簡単に答えれば、それに対してオススメAV動画を紹介してくれるというサービスはどうだろう?とモヤモヤと考えていました。

ある日、会社の人に相談したら、それ「いいね!」ということになって、「そういえばDMMAPIってのが公開されたから、それ使ってできるんじゃね?」ってことになり、

本格的にサービス開発を行うことになりました。

そしてこの度無事リリースすることができました。

作成したサイト

「今夜のおかず」

http://okazunight.com/

つの質問YES / NO で答えるだけで、今のあなたに最適なアダルト動画を紹介するサービスです。

使ってる技術

サーバーサイド:node.js

フレームワークexpressnode.jsフレームワーク

CSSフレームワークTwitter Bootstrap

クライアントjQueryCoffeeScriptSCSS

データベースMySQL

ビルドツール:grunt

バージョン管理GitHubプライベート

HTTPサーバNginx

インフラ:某クラウドサービス

node.jsは少し趣味でやった程度で、今回やってセッション管理ルーティング周りが勉強になりました。

データベースにはMySQLを使っていますnode.jsならばmongoDBというイメージが強いですが、質問ランダムに表示する機能で、

mongoDBは現時点で正式な機能としてはランダム検索が出来なかったので、MySQLを選びました。

あと、CoffeeScriptSCSSJavaScriptCSS記法を簡単にしてくれるやつで、慣れてしまうと離れられません。

あとはTwitter Bootstrap。これなしでは生きていられません。

こだわった点

    スマホでもなるべく早く結果ページまでたどり着けるようにしたつもりです。

    オススメ動画が表示された後に、今日はこの動画の気分じゃない!と思ったときチェンジボタンにより、同じ条件で他の動画チェンジ!できます

    質問からやり直したいときは、さいしょからボタンで他の質問からやり直せます

    一刻一秒を争うエロビ探しですのでパフォーマンスには気を配りました。

    最初サーバーサイドでHTMLテンプレートを使わずに完全にREST API化して進めていましたが、

    最初の表示までの若干のライムラグSEO対策の為、最初質問だけnode.jsHTMLテンプレートを使用して組み立てています

    また、シンプルサイトなのでライブラリjQueryのみ使用し、concat/minify化はgruntのタスクとして登録していますgzip化はNginxで行なっています

    我らがDMM様への敬意を払い、白ベースポイントで赤のシンプルデザインにしています

    苦労した点

    CSSSCSS)が初めてだったので、微調整するのが大変でした。

    質問パターンを考えるのと、紹介する動画が偏りすぎないようにするのが難しかったです。(これはまだ要調整)

    今後の展開(たぶん)

    質問に対するおすすめ動画の精度をもっとあげていく。 (ユーザーの癖を把握して、機械学習とかできればいいかなと)

    おすすめ動画を表示した後に、その商品を誰かにつぶやいたり。

    ・結果を自分お気に入りとして保存できたり。

    ユーザーからフィードバック。(これ早めに)

    最後

    今回、同じ会社に勤めるエンジニア3人が約2ヶ月で作成しました。

    実験的なサービスでもありますので、今後も色々と機能追加をしていくつもりです。


    それでは、今夜もあなたが美味しいおかずに出会ますように。

    http://okazunight.com/

    2013-02-11

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

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

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

    作ったサイト

    SKE48過去ブログ

    http://skeblog.48matome.com/

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

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

    なぜ作ったのか

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

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

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

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

    とゆう勢いで…

    Rubyも覚えたかった…

    構成

    Bootswatch

    PHP Simple HTML DOM Parser

    Mechanize

    スクレイピング

    ■対象ブログ仕様

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

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

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

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

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

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

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

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

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

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

    どうやって表示しよう…

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

    cakePHPかな…

    Zend Frameworkかな…

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

    WordPressに決定。

    デザイン

    一番時間がかかった…

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

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

    • Bootswatch

    http://bootswatch.com/

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

    http://dotinstall.com/

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

    WordPressテーマ

    デザインWordPressテーマに変換

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

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

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

    http://elearn.jp/wpman/

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

    Webサーバー

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

    nginx高速化出来るみたい。

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

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

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

    まとめ

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

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

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

    ruby on railsもいいな

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

    2013-01-20

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

    まったくの素人Nginx+Bootstrap+WordPressWebサービス作成しました。

    影響を受けたサイト

    オシャレエロサイト「h300」をリリースして、10PV/日を捌くためにやったこと

    http://d.hatena.ne.jp/inouetakuya/20120410/1334058296

    週6フリーターWEBサービス作ってみました。

    http://anond.hatelabo.jp/20120914214121

    はてブもっと快適に!「みんなのはてブ」を公開しました

    http://anond.hatelabo.jp/20120930171125

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

    35歳 今は事務系の仕事をしてます。たまに運転。限りなくパートに近い労働条件ですが、

    仕事がないよりはマシですので、続けているわけです。

    前(5年ぐらい前)からWebサービスみたいなもの自分自身で作ることができたら楽しいだろうなぁと。

    TwitterとかFacebookとか数回利用したことはあるけど、詳しいことはさっぱり。


    朝6:00から夜18:00まで車を走らせてゴミ回収をしていた者です。

    パッカー車って知ってますか。街でよく見かけるゴミ収集車のことです。

    産業廃棄物というのでしょうか。スーパーとか

    ドラッグストアとか回るんですよ。休憩時間は15分ぐらいなんですよ。一日。馬車馬のように働いていました。

    そのパッカー車で物損事故を起こしてしまい、会社に居続けることはできなくなり仕事をやめました。

    エロはもともと好きだったのですが、車を運転する以外の技術は持っていません。

    何か手に技術を身につけたいと考えるようになりました。ただ30歳も過ぎたおっさんにあまり時間はないので、

    資源の集中を意識時代の流れはパソコンだということで、始めたわけです。

    はじめはHTML,CSSの本で基本的なホームページ制作を学ぶ。

    HTMLが骨組みで、CSSが装飾みたいなイメージを持つ。

    作成したエロサイト

    エロックス

    http://panpanwatch.net/

    サイト構成

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

    MySQL

    Nginx+PHP-FPM proxy_cache

    Bootstrap

    Smarty

    WordPress

    PHP SimpleHTMLDOMParser

    FeedWordPressを使ったエロブログ更新情報

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

    Webサービスを作るにはプログラミング必要なことは知っていたけど、初めてみて暗号のように思える。

    プログラミングの中でもPHPは簡単なのでしょうか?最近の流れからすると、Rubyなのでしょうけど、

    習得しやすいと,聞いていたPHPを始めることに。

    PHP自分の実現したいサービスが組み立てやすい気がします。

    参考にした本

    西沢直木のPHP Webアプリケーション スーパーサンプル

    http://www.amazon.co.jp/gp/product/toc/479733245X/

    手を動かしてプログラミング入力することは重要だと知る。

    PHPだけでは動かなくてMYSQLとかデータベース勉強

    PHPMYSQLの知識で就職できるのでしょうか?

    小さいプログラムからテストテストを繰り返すことで、

    foreachやif,forなどの基本的な使い方を身につける。

    プログラムは結局小さいプログラムの集まりだとどこかに書いてあった。ことを思い出す。

    PHPベタプログラムだどセキュリティ的に弱いということでPEARを使うように。

    データベース接続MDB2
    ページャーはPager
    PHPテンプレートエンジンSmarty

    ほかのプログラミング言語は知りませんが、PHPerというらしい。

    プログラムに慣れてくるとPEARライブラリなどのクラスに抵抗がなくなってきた。

    それでも、オブジェクト指向という考え方を体で理解するまで時間がかかる。

    PHPについて参考にしたサイト

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

    http://php.xenophy.com/index.html

    • 組長的PHP入門

    http://kumicyou.sakura.ne.jp/php/index.html

    オブジェクト指向PHP入門講座

    http://www.objective-php.net/

    http://www.amazon.co.jp/gp/product/toc/479733245X/

    http://www.amazon.co.jp/gp/product/toc/4797367571/

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

    PHP以外にも参考になったサイト

    ドットインストール

    http://dotinstall.com/

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

    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で時間を指定してファイル情報データベースへ投入。

    これから欲しい情報は、著作権に気をつけながらスクレイピングして集めてくると楽しいなぁと思ってます

    自分ホームページを公開するためにはサーバー必要なことは以前から知っていたのですが、具体的には手探り状態から

    サーバーについて参考にしたサイト

    CentOS自宅サーバー構築

    http://centossrv.com/

    サーバレンタルサーバとか専用サーバなどいろいろあるのですね。

    全部自分管理しないといけないため、めんどくさい気がした。結局VPSサーバに。

    エロサイトとは言え、web表示スピードにこだわりはじめる。

    スピードアップのためにやったこと。データベースアプリケーションサーバを分ける。

    データベース最適化、query_cache_sizeを設定したりなど。

    参考にしたURL

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

    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 エンジンエックスというらしい。

    NginxだけではPHPは動かない。php-fpmインストール

    しかし、proxyサーバ設定がよくわからず。

    Nginxについて参考にした記事

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

    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

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

    以上の記事でNginxproxyを設定することができ、とても参考になりました。

    PHPで作られたCMSを知る。WordPress

    どうにか既存サイトWordPressで作れないかと考えていたら、

    WordPressは固定ページとブログ用のページを分けるテンプレート構造だと知る。

    WordPressindex.phpファイル一枚あれば動くらしく、ページを表示する優先順位があるらしい。

            優先順位 高い          優先順位 低い

    メインページ front-page.php → home.php  →  index.php

    そのため、fromt-page.php自分で作ったSmartyをそのままコピペして,なんとか既存サイトWordPressをミックスさせることに。

    詳しくは以下の本が参考になりました。

    http://www.amazon.co.jp/gp/product/toc/479736758X/

    WordPressプラグイン

    FeedWordPress 登録したサイト更新情報表示

    WordPress奥が深いです。

    Twitter Bootstrapを知る。

    スタイルシートなどを含めたデザインセンスがまったくなく、

    途方にくれていたところ、CSSフレームワークTwitter Bootstrapを知る。

    HTMLに少し手を加えるだけで今っぽいデザインにできる。その分、余った時間web構築に集中することができる。

    エロサイト各ページについて

    http://panpanwatch.net/douga.php

    データベースに登録してある動画すべて。

    http://panpanwatch.net/newdmm.php

    DMM動画の当日配信が開始されたコンテンツDMMapiから収集。

    http://panpanwatch.net/?page_id=5382

    ネット上のエロ更新情報を収集して表示。メインはWordPressで構築。

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

    常日頃からネットエロにはお世話になっていたので、なんか恩返しではないですけど、

    形にすることができて、自分自身では満足してます

    Webサービス作るまで、ずっとパソコンの前ばかりにいたので、

    少しパソコンから離れたい気持ちです。

    01/22 追記。

    こんにちは。みなさまからブクマコメントを多数いただき、ありがとうございます

    いろいろご意見あると思いますが、大げさな嘘などは書いていないです。

    PHPを理解するのも、こちらの本を一冊やれば、それなりに理解できるようになりました。

    http://www.amazon.co.jp/gp/product/toc/479733245X/

    次のサービス作成するときは本格的なアプリケーションソーシャルゲームなどやりたいなぁと

    野望だけは持っています。ですけど、ずっとこのサイトだけに集中してきたので、今はパソコンから少しだけ距離を置くつもりです。

    恐らくですけど、本物のプロの方から見れば、このサイトは大したことないでしょう。

    素人趣味でやっているんだと温かく見守ってください。

    2013-01-04

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

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

    http://tag-chat.net

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

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





    自分について

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





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

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

    これがきっかけ。

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

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

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


    ようするに嫉妬です。

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

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

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

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

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

    そして私はアホだった。

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

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

    妄想した機能

    ・基本的なSNS機能

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

    ・核となるチャット機能

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

    などなど。






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

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

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

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

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

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

    無理だ。

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

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






    ■使う言語について。

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


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

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

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






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

    PHP 

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

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

    これが終わったら、

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

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

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

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



    MySQL

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

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

    最期

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

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






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

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

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

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

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







    javascript勉強

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

    終わったら、

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

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


    mongoDB勉強

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

    CakePHPmongoDBを扱うのは

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

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




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

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

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



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

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

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

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



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


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

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

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

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

    を使うことに。

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

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

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

    無理はしないことに。



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

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

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

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

    勉強

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

    Dos攻撃対策に、

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

    などに書いてある

    mod_dosdetector などを利用。

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

    あとはSSHへのブルートフォースを防ぐために、DenyHostというツールを利用するなどした。



    それからバックアップ

    クラウドサービスを利用しているので大丈夫だとは思うのですが、一応rsyncコマンドバックアップを定期的にとることに。

    サーバー上の別の場所Gzipで保存し、それを自宅サーバーのCentOSで保存するという形式です。深夜にcronで自動的に実行しています

    参考サイトは、

    http://mukaer.com/archives/2012/03/14/vpscentos/

    です。


    パフォーマンス向上のために少しだけ

    はじめはサーバーapacheだけだったのですが、今は画像ファイルなどはNginxというサーバーを使うのが良いそうなので、Nginxを使いました。

    あとはPHPの中間キャッシュを利用するAPCなども利用することに。


    このへんについては、

    http://bren.jp/blog/%E3%81%95%E3%81%8F%E3%82%89vps%EF%BC%9Anginx-apache-%E6%A7%8B%E6%88%90%E3%81%AE%E8%A8%AD%E5%AE%9A%E6%96%B9%E6%B3%95/

    このような解説記事がたくさんあったので、参考にさせていただきました。

    調子にのって、最期グーグルアドセンスも貼ってみました。




    ■ようやく完成。

    で、なんとか完成しました。

    いちおう妄想していた機能は実装できたかと思います

    製作期間は勉強期間なども含めて、大体9ヶ月くらいです。

    使ってみた感想や、ダメ出しなど頂ければ狂喜乱舞します。よろしくお願い致します。









    モチベーションを維持するためにやったこと。

    あっさりと書きましたが、実際は失敗の連続でやる気が萎えてばっかりでした。

    疲れて帰ってきて、なにもやる気の起きない時もありました。


    そういう時は、とにかくサポートページのQ&Aの1文でも良いから書いてみるとか、とにかくパソコンエディターだけ立ちあげてみるとか、していました。

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

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

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

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

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

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

    現在

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

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


    仕様した技術など一覧

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

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

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

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

    使用言語 PHP,Javascript

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

    2012-07-08

    Rails3 とTwitter Bootstrapで、オシャレなエロサイトをつくってみました。

    Rails3 と jQuery で、真面目にオシャレなエロサイトをつくってみました。 - h300

    http://d.hatena.ne.jp/inouetakuya/20120331/1333192327

    に触発されて、オシャレエロサイトを作ってみました。

    以下は製作記になります

    オシャレエロサイトを作ろうと思ったのはいいのですが、デザインは苦手なので途方に暮れていました。

    h300の方はペパボソフトウェアエンジニアらしいのですが、こっちはただの素人プログラマー

    オシャレなサイトなんて作れるわけがありません。

    そこで何か裏ワザみたいなものはないかとググっていると、Twitter Bootstrapという文字が目にとまりました。

    Bootstrapの名前は知っていましたが、深い内容までは知りませんでした。

    ですが、紹介記事を読んでみると自分理想に近かったので早速使ってみることにしました。

    Twitter Bootstrapとは?

    Twitter Bootstrapはある程度有名だと思うんですが知らない方のために説明すると、

    CSSフレームワークの一つで、ウェブデザイン作成を手助けしてくれるものです。

    色々なCSSフレームワークを見ましたがTwitter Bootstrapが一番完成度が高いと感じました。

    ウィキを見ると最初リリース2011年8月なので比較最近のものですね。

    CSSフレームワークの説明は難しいんですが、

    普段、みなさんがウェブサイトを作る時、HTML + CSSで作られるかなと思うんですよね。

    この時、CSSが事前に用意されているとすごく楽じゃないですか?

    CSSフレームワークCSSの大部分を前もって用意してくれているんですよ。(フレームワークによりますが)

    ですので基本的にCSSに合わせてHTML記述するだけでウェブサイトが出来てしまます

    CSSに合わせてHTML記述するとはどういうことでしょうか?

    匿名ダイアリーでも似たようなことができるのでやってみます

    この文章は薄い青色ハイライトされていますよね?
    Bootstrapで似たようなことをする場合
    <div class="well">
    ハイライトしたい文章
    </div>
    という感じになります

    classにwellと指定しているだけですね。

    なぜそうするだけで文章がハイライトされるかというと、

    divのclassにwellが付いていたら、いい感じでハイライトしてねっていう指示が

    Twitter BootstrapのCSSに書いてあるからです。

    BootstrapのCSSには、divのclassにalert alert-errorっていうのがあったら警告文だしてねとか、

    button class="btn"ってあったらボタン表示させてねとか色んなことが最初から書いてくれています

    もちろん見栄えがよくなるように記述されていますので、classを指定するだけでモダンデザインになるわけですよ。

    CSSに合わせてHTML記述するだけでウェブサイトが出来るというのはこういうことです。

    でも、最近ウェブサイトHTML + CSS + JQueryという場合も多いですよね。

    安心してください。Twitter Bootstrapの場合JQueryの基本的な部分も用意してくれています

    ですのでドロップダウンメニューやタブ、スライドショーなどの実装も簡単にできます

    それに加えてBootstrapはよく使うアイコン数百種類まで用意してくれています

    至れり尽くせりですよ。

    神様ですね。

    CSSフレームワークを使うメリットはまだまだあります

    CSS固定化されていると、HTML自動的に固定化されます

    CSSに合わせて記述するので当たり前といえば当たり前ですね。

    CSS記述一定HTMLもある程度一定なので、メンテナンスが格段にやりやすくなります

    個人プログラマーの方だと、サイトごとにHTMLCSSもグチャグチャという方も多いのではないでしょうか?

    フレームワークを使えばそういうこともなくなるということです。

    Twitter Bootstrapの凄さはそれだけではありません。

    現在ユーザーがどんなデバイスウェブサイトアクセスしてくるか分かりません。

    PCスマートフォンiPadTV3dsなど全てのデバイスに合わせてデザインを作るのは時間がかかりすぎます

    でもTwitter Bootstrapならbootstrap-responsive.cssというCSSを選ぶだけで、

    デバイスの横幅に合わせてデザインが変わるレスポンシブなウェブサイトができます

    iPhoneiPad対応もすぐですよ。

    もちろんデメリットもありまして、サイトデザインが似てしまうというのが難点です。

    ですが基本はBootstrapを使って、ちょっと自分カスタマイズしてオリジナルっぽくすることもできますので、

    一度Twitter Bootstrapを使ってみる価値はあると思います

    http://twitter.github.com/bootstrap/

    Bootstrapの説明が長くなってしまいましたね…。

    ここからアダルトサイト作成の説明です。

    クローラ作り

    1.エロいサイトを巡って、XVIDEOSやFC2動画などのリンク、embedされたものがあれば取得。

    2.リンクから動画サイトアクセスしてサムネイルを取得。

    3.データベースに登録。

    一連の作業をクローラーやらせプログラムRubyで書く。

    RailsでBootstrapを使う。

    RailsでBootstrapを使うにはtwitter bootstrap railsというgemを使うらしいです。

    しかし、使おうと思ったのですが、windowsでは上手くインストールできませんでした。

    windowsRubyを使うとバグが多いです。

    仕方なく、代わりにsass-rails-bootstrapというものを使いました。

    違いはcssにLESSをつかっているかsass(scss)を使用しているかだと思います

    http://d.hatena.ne.jp/tkawa/20120219/p1

    の記事が参考になりました。

    ちなみにLESSとかSassってのはcss効率的に書けるすぐれたものです。

    最近webクリエイターボックスさんでも紹介されていました。

    http://www.webcreatorbox.com/tech/css-sass/

    LESSとかSass(Scss)もお勧めですよ。

    railsでは3.1からcoffee scriptと共にsassがデフォルトで使えます

    このあたりがRailsの素晴らしさですね。

    Bootstrapは画像を綺麗に並べて表示することにも向いているので、

    アダルトサイトと相性がいいなと感じました。

    タグリスト実装

    AV女優名とか女子校生人妻などのジャンルタグがあれば便利ですよね。

    Railsではacts-as-taggable-onというgemを使い実装しました。

    動画タイトルが事前に用意したAV女優リストジャンルリスト合致すればタグ付けするという感じです。

    AV女優リストDMMからジャンルリストは大手アダルトサイトから作成しました。

    AV女優タグ名前順でソートしたいと思ったのですが、

    漢字ソートできないのでしばらく悩んだ結果、

    タグ付けするときに あおいそら-蒼井そら みたいな感じでタグ付けするようにしました。

    もっとスマート方法があるはずですが思いつかなかったので仕方ないです。

    ア行、カ行…のように行別にわけて、なおかつアイウエオ順で表記してますので

    お気に入りAV女優名を探しやすいはずです。

    簡易ブックマーク実装

    クッキーを使ってログイン不要ブックマーク機能作りました

    jquery.cookie.jsを使って、cookie配列に直してごにょごにょしてという感じで実装しました。

    削除ボタンを押すと非同期で通信して…などいろいろ面倒でした。

    でも、動画の数はかなり増やしていこうと思っていましたので頑張って実装しました。

    動画の下のブックマークするボタンを押していただければブックマークできます

    ブックマークするボタンの表示などにBootstrapの便利さを感じました。

    アダルト動画を大画面で見れるようにする。

    実はこれが一番やりたいことでした。

    多くのアダルトサイト広告だらけで、肝心の動画がポツンと小さくあるだけというのが多いです。

    世の男達は疲弊しています。それは本当に疲弊しています

    戦場で疲れた兵士たちに、そんなせせこましい画面でアダルト動画見ろって?

    そんな野暮なこと言いませんよ。

    PCスクリーンの画面いっぱいに、大画面で、ドカーンエロ動画を楽しんで下さいよ。

    動画はできるだけ大きく表示しています。もちろんレスポンシブです。

    全画面表示にすりゃいいじゃん…っていうのは違うんですよ。

    全画面表示だと逃げれないじゃないですか

    不意に誰かが部屋に入ってきたらどうするんですか? 

    1クリックと2クリックは大違いですよ。

    コンマ一秒で守れる尊厳がある。

    そう考えております

    スマホ対応

    Bootstrapでデザイン面はスマホ対応にはなっているのですが、

    加えてjpmobileというh300で紹介されていたgemを使って、

    スマホアクセスされたら表示する動画の数を減らしてとか、

    広告の種類を変えるなどの微調整をしました。

    サーバー選び

    osukiniサーバーのGT2プランしました。

    初期費用1900円、月940円で

    CPU 2.66GHz、メモリ 2.2GB HDD200GBです。

    チューニングは正しいかからないですね。

    まぁ、アクセス捌けなくなってから考えます

    Nginx + Unicornを使おうとして結局やめる。

    Railsは遅いので少しでも速くするためにApacheの代わりにNginx使おうと思ったのですが、

    PC用のキャッシュスマホ用のキャッシュを別々に保存して使う

    ということがどうしてもできませんでした。

    PC用のキャッシュがある場合スマホ用のキャッシュがなくてもキャッシュがあると認識されるなど、

    もともとNginxrailsのページキャッシュは相性が悪いようです。

    Nginx側でキャッシュする、もしくはスマホ用のアドレス別にすればできるかもしれないですが、

    http://m.サイト名 みたいにするのが嫌だったので最終的にNginxを使うことをやめました。

    Nginxに関するネット上の記述も少ないので運用するのは危険かな、ということもあります

    Nginxを少しだけ使ってみた感触はかなり速いというものだったので残念でした。

    バージョンが変われば、また挑戦したいですね。

    Apache + passengerは遅いんですよ…。

    【追記】

    キャッシュの問題はRails側の問題だったので

    やっぱNginxでもいけるかもしれないですね。

    暇なときに試してみます

    出来上がったサイト紹介

    オシャレのハードルを上げすぎて紹介しづらくなったのですが、

    紹介しないと終わらないということで紹介します。

    http://nukisen.com  (エロ注意)

    サイト名はオシャレに横文字でNukisenにしました。読み方はヌキセンです。

    http://bootswatch.com でダウンロードできるBootstrapのテーマそのままですが、

    オシャレというかクールデザインです。

    Bootstrapを使うと自動的に細部まで凝ったデザインになるので最高ですね。

    下にスクロールしていくと背景のグラデーションが変化したりとか、とても一人ではできないですよね。

    長々と説明してきましたが、

    ぜひNukisenで大画面のアダルト動画体感してほしいです。

    動画の数をいきなり大量に増やすグーグル様に怒られるので、

    しばらくは一日30本ぐらいの更新でいく予定です。

    アダルトサイト同士の相互リンクアクセス増やしてなどはしない方向です。

    最後

    新しいことに挑戦すると得られるものが多いなと感じました。

    ウェブサイトを作る際、無意識のうちに自分のできる範囲の技術で構築しがちだと思うんですが、

    そうすると成長はないですね。

    新しい技術に柔軟に対応していきたいです。

    長文失礼しました。

    2010-12-19

    ヌケるWebサービスを作ったのでeHubインタビューズっぽく宣伝してみる

    あなたウェブアプリケーション/サービスは何ですか?

    エロ注意】eroino http://eroino.net/

    eroinoは毎日更新される大量のアダルト動画を、AV女優キーワードで分類して表示したり、お気に入りリストクリップできるサイトです現在動画数は、約28万件。

    このプロジェクトを始めた理由は?

    製作にかかった時間は?また、本業がありますか?

    チームの規模はどれくらいですか?また、あなたの素性および経歴は?

    現在使用しているインフラ技術は何ですか?

    技術的な特徴があれば、紹介してください。

    お気に入りリスト

    開発の際に気を付けたことはありますか?

    データの取得元、動画投稿サイトに迷惑をかけない」

    プロジェクトは次の半年でどこへ向かうと思いますか?

    アクセス増への対策」
    広告
    「機能追加」
    • まったくの白紙です。まずは安定稼働。

    自分Webサービスを作りたいと思っている人に向けて何かありますか?

    利用者に向けて何かありますか?

    • 自分では、かなり実用的だと思っているのですが、実際の所、どうなんでしょう。使ってみて、ダメ出しでも何でも良いので、感想を聞かせてもらえると嬉しいです

    元ネタ

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

    http://anond.hatelabo.jp/20101203150748

    eHub Interviews

    http://emilychang.com/ehub/app/category/ehub-interviews/

    eHub インタビューズ - Last.fm翻訳

    http://d.hatena.ne.jp/brazil/20051102/1130901002

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