ニート・アンド・カンパニー

WEBサービスやプログラミングについて勉強中。

WEBサービス売ります

数ヶ月前に作ったであいログ というサービスですが、
若干の売り上げを出しているものの、
ユーザーを増やすためにどのようにプロモーションしたりすればいいのかわからず
行き詰まったので必要な方がいれば30万くらいで売却しようと思います。

f:id:the_source:20130308123512p:plain

であいログ

参考記事

着手から4日間で出会い系のWEBサービス作った話

出会い系サイトのアフィリエイトに挑戦した結果www

今後放っておくだけで収益を生み出す可能性もあるので
ちょっと惜しいなという気もしつつ、
正直プロモーションのノウハウも無いし、
このサービスのポテンシャルを最大限使って、もっと盛り上げてくれる人がいれば、
お譲りするというのもありかなと思いこういう決断に至りました。

仕様について

サイトは追加できます
出会い系サービスは管理画面からどんどん追加していけるようになっています。
※ 画像を投稿するには別のサーバにアップする必要があります。
自分はGoogle + のアルバムにアップして使っています。

ここのリンク先を自分のアフィリエイト用URLに張り替えれば、
このサイトを見て出会い系サービスに登録した人の紹介料4000円が入る、
という仕組みです。

管理画面

f:id:the_source:20130829103449p:plain

ランキングの根拠
現在、
- 成功度ランキング
- サクラなしランキング
- 会員数ランキング
- 運営年数ランキング

があります。 成功度ランキング、サクラなしランキングについては、
ユーザーが評価したポイントから算出しています。

会員数、運営年数は自分で調べる必要があります。
なお、「運営実績 13年」みたいに出る所は、今年の年度 - 開設年度 で算出して
自動で出しています。

レスポンシブデザインです
スマホ、PC向けにデザインを最適化してあります。
今後特に出会い系ユーザーはスマホからサイトを探すことが多くなると思うので、
必須かなと。

また、googleがスマホに最適化されてないサイトは今後検索順位を下げる
可能性が高いと言っているので、今後も戦っていけるのかなと思います。

あと、見た目のデザインも割と綺麗に仕上げたつもりです。

その他
ソースコード、サーバ等も全てお渡しいたします。
今後の運用等についての責任は持てませんのでご了承下さい。
ただ、数ヶ月バグも不具合も何もないので大丈夫だと思いますが。

興味がある方いらっしゃいましたら、
こちらまでご連絡下さいませ。

shake.monkey.head [あっと] gmail.com

出会い系サイトのアフィリエイトに挑戦した結果www

先日ブログエントリーしたこちらの記事ですが、
アフィリエイトを貼ってたら予想以上に売上が立ったので、
共有してみたいと思います。

以前の記事

着手から4日間で出会い系のWEBサービス作った話

作ったのはこのサービス

出会いログ

前提知識

  • 出会い系サイトのアフィリエイトは1人紹介ごとに4000円が相場
  • でも、紹介した後に「承認プロセス」があり、「正当な申し込みである」と承認されないと、報酬はもらえない
  • 最近は、紹介料を2500円にする代わりに、承認プロセス無しにできるオプションも各社導入している

ちなみに私は全て承認ありコースでやってます。

各出会い系サイトのアフィリエイト報酬金額

以前アフィリエイトの報酬額を公開するのは 規約違反という記事を どこかで見た気がするので、各サイトの名前は伏せます。

サイト 金額 備考
A 52000円 31人登録 / 13人承認。何故か登録数がダントツで多い。
B 16000円 4人登録 / 4人承認。何故か承認率100%。
C 16000円 6人登録 / 4人承認。
D 0円 0人登録
E 0円 0人登録
F 0円 0人登録
G 0円 0人登録
H 0円 0人登録

ちなみにB, Cは 2万円以上報酬が貯まらないと支払いされないので、
実際私の口座に振り込まれたのはAの5万2000円のみになります。

B,C については、あと1人ずつ登録、承認されれば、
それぞれから2万円ずつ振り込まれます。

D以下5サイトはまだ登録すら0件

現在全部で8サイトが掲載されており、 他5サイトはまだ登録すら0件ですね。

Aが31人登録されている中、この差は何なんだ!と思います。

認知度の高いサイトが登録されやすい

上位3サイトとも人気ある出会い系サイトみたいですし、
渋谷で宣伝トラックが走っていたり、看板にデカデカと広告が掲載されていたりするので、
そもそもの認知が高いサイトに登録しがちなのかもしれません。

何にせよ、、、

まさかとは思ってましたが、
勉強のために作ったサイトが収益を生むとは。。。 ありがたい話です。

これに甘んじることなく精進しようと思います。

着手から4日間で出会い系のWEBサービス作った話

「出会い系サイトのアフィリエイトはイイ!!」という話をyusukebeさんの日記で呼んだので、

出会い系のアフィリエイトで上手に稼げないかと思って、

Python + Djangoでサービスを作ってみました。

出会い系サービス界の食べログを目指しました。

その名も「であいログ」

f:id:the_source:20130308123512p:plain

やっぱPython × Django最高です。4日で出来ました。

出会い系サイトのレビュー、点数がつけれて、ランキング化されるようになってます。

是非、使ってみて下さい〜!

口コミ、評判で探す出会い系サイト「出会いログ」

Objective-C AudioSessionまとめ

Appleの公式ドキュメントが読みづらかったので、
自分なりにまとめながら読んでみた。

2つのAudioSession

AVAudioSessionクラス (Objective-c、ハイレベル)

基本的にはこのクラスを使う。こちらの方が簡単。

// 使い方
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];

Audio Session Services (C、ローレベル)

もっと複雑な設定にしたかったらこっち。 オーディオセッションの基本機能と高度な機能のすべてにアクセスできる、完全機能を備えたCのAPI

// 使い方
// オーディオセッションに適用しようとするカテゴリの識別子を渡して初期化。
UInt32 sessionCategory = kAudioSessionCategory_AmbientSound; // 1

AudioSessionSetProperty (
    // オーディオセッションプロパティのキー。設定するプロパティ値のデータサイズ(バイト単位)
    kAudioSessionProperty_AudioCategory,  
    // オーディオセッションのカテゴリに適用したいオーディオ経路オーバーライドの値
    sizeof (sessionCategory), // 3
    // オーディオセッションに設定したいカテゴリ
    &sessionCategory // 4
);

アプリケーション起動時に自動で初期化されるが、、、

アプリケーションの起動時にオーディオセッションは
自動的にアクティブ(カテゴリ名 : AVAudioSessionCategorySoloAmbient)になる。
しかし、AppleはviewDidLoadメソッドの中で
明示的にアクティブにすることを推奨している。

他のアプリケーションからの割り込みを処理する

割り込まれたとき

別のアプリケーション(時計、カレンダーのアラーム、電話の着信など)を受けると、
自アプリのオーディオセッションを非アクティブになる。
その時の処理は

- (void)beginInterruption

内に実装する。

割り込みが終わったとき

ユーザがアラームを消したり電話に出なかった場合、 アプリケーションのオーディオセッションは再びアクティブになる。
割り込みが終了したら、

- (void)endInterruption

が呼ばれるので、ここに処理を書く。

AVAudioRecorderクラスとAVAudioPlaybackクラスは、独自の割込み処理デリゲートメソッドを持っている

// 再生中にオーディオセッションに対して割り込みが発生したとき
-(void)audioPlayerBeginInterruption:

// 再生に対する割り込みが終了したとき
-(void)audioPlayerEndInterruption:

// 録音中にオーディオセッションに対する割り込みが発生
-(void)audioRecorderBeginInterruption:

// 録音に対する割り込みが終了したとき
-(void)audioRecorderEndInterruption:

AudioSessionカテゴリ

AVAudioSessionCategorySoloAmbient

  • 再生 : 有効 / 録音 : 無効
  • ユーザがサイレントスイッチを「サイレント」位置に切り替えると、アプリケーションのオーディオは鳴らなくなる
  • 画面をロックされると、アプリケーションのオーディオは鳴らなくなる
  • アプリケーションのオーディオが鳴り始めると、そのデバイスで出力されているほかのオーディオ(すでに再生中のiPodオーディオなど)は鳴らなくなる

AVAudioSessionCategoryPlayback

  • 画面がロックされても再生を続行する場合に使う

TIPS

他のアプリケーションがオーディオを再生中かチェックする

UInt32 otherAudioIsPlaying;
UInt32 propertySize = sizeof (otherAudioIsPlaying);

AudioSessionGetProperty ( // 2
    kAudioSessionProperty_OtherAudioIsPlaying,
    &propertySize,
    &otherAudioIsPlaying
);

// * 使用例 *
// ほかのオーディオが再生中の場合は、AVAudioSessionCategoryAmbient カテゴリを割り当て。
// そうでなければAVAudioSessionCategorySoloAmbient カテゴリを割り当てる。

if (otherAudioIsPlaying) {
    [[AVAudioSession sharedInstance]
    setCategory: AVAudioSessionCategoryAmbient
    error: nil];
} else {
    [[AVAudioSession sharedInstance]
    setCategory: AVAudioSessionCategorySoloAmbient
    error: nil];
}

再生のミックスをサポートする

OSStatus propertySetError = 0;
UInt32 allowMixing = true;
propertySetError = AudioSessionSetProperty (
     kAudioSessionProperty_OverrideCategoryMixWithOthers, // 1
     sizeof (allowMixing), // 2
     &allowMixing // 3
);

ヘッドフォンが接続中かどうか調べる (iOS6以降)

AVAudioSession *session = [AVAudioSession sharedInstance];
NSArray *out = session.currentRoute.outputs;
AVAudioSessionPortDescription *portDescription = [out lastObject];
if ([portDescription.portType isEqualToString:@"Headphones"])
{
    return YES;
}else{
    return NO;
}

実機検証がオススメ

シミュレータではオーディオセッション動 作はシミュレートできず、デバイスのハードウェア機能にアクセスできない

Herokuは基本無料だ!アヘアヘ!と思ってて結局課金されたポイント

こんな記事を公開する事自体「僕はバカでーす!」と
公言してるようなもんですが、
herokuを勉強するにあたって日本語ドキュメントが結構少なくて苦労したので、
どなたかの手助けになればと思って恥をさらそうと思います。

1.WEBプロセスのみ無料。ワーカープロセスを作動させると有料。

僕のWEBアプリは、各ブログのRSSを読み込んで来て、
各記事のはてブ数を取得する、という作業を
Heroku Scedhuler という無料アドオンを使って
1時間に1回自動実行してます。

Heroku Scedhuler 自体は導入無料なので、 「何だ〜!Heroku超親切〜★」と思ってガンガン使ってたのですが、
Heroku Scedhuler の導入自体が無料で、
それによって起動されるプロセスに関しては、
動作時間あたりの課金になります。

ちなみにherokuのプロセスを起動させる料金は、$0.05/1時間です。
僕はこれで700円程課金されてました。。。


さらに、herokuはローカルのターミナルからコマンドを送る事も可能。
このRSSクローラプログラムを何度もローカルからテストしてました。

しかしこれも有料でしたorz
これでさらに400円ほど課金。。

2.DBは、1万行を超えると保存されない。

これはどちらかというと、無料枠を超えたくないので 仕様変更したという話ですが、
データベースにガンガンデータを突っ込んでいると、
herokuから以下のようなメールが来ます。

The database HEROKU_POSTGRESQL_CRIMSON_URL on Heroku app is approaching its allocated storage capacity. The database contains 7,366 rows. The Dev plan allows a maximum of 10,000 rows. If the databases exceeds 10,000 rows then INSERT privileges will be revoked, preventing more data from being written. INSERT privileges are automatically reinstated if rows are removed and the database once again complies with the plan limit. To avoid a disruption to your service, migrate the database to a Basic ($9/month) or Production plan: https://devcenter.heroku.com/articles/upgrade-heroku-postgres-with-pgbackups If you are unable to upgrade the database, you should limit or reduce the number of records in it.

10000行以上保存したかったら、課金せよ、とのこと。
もちろん課金したくないので、仕様変更で乗り切りました。


そんなこんなで計1200円課金されました。
(むしろ1200円でよかった。。。)
やはり、ちゃんと勉強してからやるべきですね。こういうのは。

今後もWEBアプリケーションを作っていくにあたり、
よくわからん内に大量課金されてもうた〜
という事態を防ぐために、 まだまだサーバーを決めかねている状況です。

  • Rails 勉強して、ペパボのPaas sqale 使う
  • サーバの事もうちょっと勉強して、超低価格高性能サーバ Gehirn RS2使う

どちらかかなぁーと思ってます。 Google App Engineが安かった時代は、よかったの〜ぅ
とつくづく思います。

Herokuアプリが動かなくなった -> HerokuのWEBプロセスが止まってた -> その解決方法

昨日(2012.1.7)、herokuにホスティングしてる、

Python / Django製のWEBアプリ、2chまとめ番付をマイナーアップデートしたら、

何故かこんなメッセージの画面が出て動かなくなった。   

An error occurred in the application and your page could not be served. Please try again in a few moments. If you are the application owner, check your logs for details.

文言をちょこっと修正しただけで、プログラム自体に改変は加えてないのに、

何故。。。と思って、Twitterアカウント(bot)を調べてみると、

こちらは動いている様子。

補足 :

2chまとめ番付は、1時間に一度、2chまとめサイトのRSSを読み込んで来て、
各記事のはてブ数を取得、その時間の新着ランキング1位、
最も最新の記事などをツイートしているんです。

なので、裏側のワーカープロセスはちゃんと動いてて、
WEBプロセスが死んでるって状況。 Heroku のAPP管理で見ても、普段立ち上がってるはずの
WEBプロセスが表示されていない。。

コマンドで、

heroku ps:scale web=1

ってやっても

Scaling web processes... failed
! No such type as web

って表示される。。

解決方法

色々調べた結果、以下の処理で再稼働できました。

1. Procfile作成

Procfile という名前のファイルを作って以下の内容を入れて保存
-> アプリケーションフォルダのルートに入れる。

web: python manage.py runserver 0.0.0.0:$PORT --noreload

2. herokuにpush

いつも通りですが一応。

git add .
git commit -"メッセージ"
git push heroku master

これだけでも動きません。
もう一度手動でWEBワーカーを起動してやる必要があります。

heroku ps:scale web=1

これで正常動作に戻りました。(ホッ

これまで、Procfileというファイルを作成した覚えが無いですし、 別の正常に動いているHerokuアプリのディレクトリを見ても、Procfileなんてなかったんですが、 どういうことなんでしょうか。。。

原因はわかっておりませんが、ご存知の方いらっしゃったら
お教え願えますと幸いです。

ともあれ、戻ってよかったです!

初心者だけどヘビ年だしPythonでWEBサービス作ってみた

 

僕、プログラムはあまり書けないんですが、

「WEBサービスを作ってみたい」と以前から思っていた所、

正月実家に帰ってヒマが出来たので、ずっと気になってたプログラミング言語Python」を勉強しがてら、

簡単なWEBサービスを作ってみたので、その過程を報告したいと思います。

 

あまり経験のない人間に言われても。。。という感じかもしれませんが、

僕の中の結論としては、

「今年こそはプログラミングできるようになりたい!」と言う人に、

個人的に一番オススメなのはPythonです。

 

この記事がこれからプログラミング始めたい / Pythonやってみたいと思ってる人のために、何かの足しになれば嬉しいです!

 

 

 

作ったサイト

2chまとめ番付

 

2chまとめブログからRSSを引っ張って来てまとめて表示する、

いわゆるアンテナサイトなんですが、ポイントとして、

1. はてブ順に見れる

2. 日間、週間、月間ランキングが見れる

というのが一応売りです。

 

あと細かいですが、まだ見てない記事のみ強調して表示されるので、

毎日チェックするアンテナサイトとして使いやすいんじゃないかな、と個人的には思ってます。

実際にサイトに飛んで記事をクリックしてみて下さいませ!)

 

 

 

Python

 

聞き慣れない方もいらっしゃるかもしれませんが、欧米を中心に海外では人気のある言語だそうです。

Googleでも、JavaC++に並んでよく使われる言語だとか。

初心者でも習得しやすいのに、ハイレベルなシステムも問題なく構築できる、

みたいに言われているのをよく聞いていたので、プログラムをあまり書けない自分にぴったりだと思って、Pythonを選びました。

 

ドットインストールを軽く流し見て、概要をつかみました。

ドットインストール - Pythonの基礎

 

 

フレームワーク

DjangoというWebフレームワークを使用しました。

Webフレームワークとは、Webアプリケーションを簡単に作るための

便利なツールみたいなものです。

詳しくはこちら -> Django

 

 

環境を準備する

僕はMacを使用しているのでPythonは標準で入っていたのですが、

Windowsで、入ってなかったとしてもこちら[ Python標準リリース ]からすぐ落とせます。

 

で、この記事にそって環境を構築しました。

pythonz + virtualenv + virtualenvwrapper でPython開発環境を作ってみる on MacOSX10.8 - ふぃふメモ

 

 

開発

Djangoのドキュメントに沿ってサンプルを作ってみました。

で、それを色々改変して、RSSを取得し、それぞれの記事のはてブ数を取得し、データベースに保存するアプリケーションをローカルで作成しました。

 

 

デザイン

デザインができなくてもラクラクデザイン + コーディングができちゃう、

Twitter Bootstrapを使用しました。

 Twitter Bootstrap

 

コレを使って勉強しました

ドットインストール - Twitter Bootstrapの基礎 

 

 

公開

色々悩みましたが、Herokuを使いました。

今まではちょっとしたWEBサービスを公開するためには

さくらVPS等を使うのが一般的だったようですが、

Herokuはサーバーの初期設定などをする必要がなく、

基本無料で借りられ、サービスが大きくなったとしても

サーバを乗り換えてまた一からセットアップ、、、みたいな手間がないので、

一旦Herokuにしてみました。

 

アプリケーションをHerokuにデプロイするためにはこの記事が役立ちます。

Getting Started with Django on Heroku

 

 プログラミングほとんどできなくて趣味程度にやってきた人間ですが、

丸々5日間ほどで完成しました。

 

Pythonは書きやすいし、見やすいし、ほんと大好きです!

みなさん、ヘビ年はPythonの年ですよ!

一緒にPythonistaになりましょう!