お気に入りのHabréで公開するのが最適な曜日はありますか? 月曜日はつらい日ですか、それとも週末の後に全員が積極的に働いていますか? 金曜日の楽しみは、友人とビールを飲んだり、コメントでHabréを楽しんだりするのですか ミニスタディの実施を妨げるものは何もありません。 見つけよう!
免責事項
この研究は客観的であるふりをせず、論理的および技術的なエラーを含み、記述されたコードはリファクタリングを必要とし、急いで記述され、最適でない技術を使用します。 それにもかかわらず、多くの結論に対して十分な有用な情報を収集することが可能でした。
仮定と研究方法
成功した投稿のみをカウントします:
- 少なくとも1つのコメントを含む
- 肯定的に評価された
どの曜日が投稿と多くの利点に注意を引く可能性が高いかをどのようにすばやく理解するか? かなりのエラーがありますが、処理された投稿の数が多くなると減少しますが、投稿の良い日は次のような場合です。
- 投稿に対して最も肯定的な評価を残す
- ほとんどのコメントを残す
曜日ごとに、肯定的に評価された記事の数、それらへのコメントの数、記事の評価を合計すれば十分です。 そのため、ほとんどの人がHabrを使用する時期と、投稿にメリットをもたらす頻度を理解します。
直接リンクを使用してidをソートすることにより、ユーザーが利用できるすべての記事をスキャンします。 最後の投稿での数値の概算を見てみましょう。2年前に上から下の順に並べます。 153,000〜90,000の範囲を選択し、このブロック内のいくつかの異なる範囲でアルゴリズムを実行しました。 かっこいい そして、それは簡単です! コードを書きましょう。
プログラム
この調査の別のエラー:日付は投稿からではなく、最初のコメントから取得されます。 コメントには日時が用意されており、投稿日はロシア語から解析する必要があるため、これは高速です(これも簡単ですが、理由は)。 投稿をスキャンするために、JavaScriptを使用して、jqueryを介してセッション転送とページ上での簡単なデータ検索を直接行うことにしました。 これはすべて見苦しいかもしれませんが、多くの時間を節約でき、コードは30分かかりました。 コードを機能させるには、同じオリジンポリシーを無効にする必要があります。FireFoxのCORSプラグインでこれを行いました。 ラップトップをロードせず、ブラウザにレンダリングの時間を与えないように、1つのストリームで小さな休止を意識して同期的に処理しました。1秒間に12件のリクエストでHabrを爆撃するのはいですが、これはバケツの低下です。
アクセスできない記事や評価のない記事はスキップされます。 基本的なJavaScriptは次のようになります。
$(document).ready(function() { var all = 0; var success = 0; var failed = 0; var daysProcessed = [0, 0, 0, 0, 0, 0, 0]; var daysScore = [0, 0, 0, 0, 0, 0, 0]; var daysComments = [0, 0, 0, 0, 0, 0, 0]; function processPage(url) { $.ajax({url: url, success: function(data) { if (data.indexOf(' ') != -1) { failed++; $('#failed').text(failed); return; } try { $('#loader').html(data); } catch(e) {} setTimeout(function() { var score = $('.score:first').text(); if (score != '' && score.charCodeAt(0) != 8212) { var sign = 1; if (score.charCodeAt(0) == 8211) { sign = -1; score = score.substr(1); } var intScore = sign * parseInt(score); var comments = $('#comments_count').text(); var intComments = parseInt(comments); if (intComments > 0 && sign == 1) { //Do we need only positive? var date = $('time:first').attr('datetime'); date = new Date(date); var intDay = date.getDay(); success++; $('#success').text(success); daysProcessed[intDay]++; daysScore[intDay] += intScore; daysComments[intDay] += intComments; $('#processed_' + intDay).text(daysProcessed[intDay]); $('#score_' + intDay).text(daysScore[intDay]); $('#comments_' + intDay).text(daysComments[intDay]); } else { failed++; $('#failed').text(failed); } } else { failed++; $('#failed').text(failed); } }, 1); }, async: false, error: function () { failed++; $('#failed').text(failed); }}); } var i = 153000; var interval = setInterval(function() { try { processPage('http://habrahabr.ru/post/' + i + '/'); } catch (e) { failed++; $('#failed').text(failed); } all++; $('#all').text(all); i--; if (i < 90000) { clearInterval(interval); } }, 0); });
プリミティブビジュアライゼーションは喜びとビジュアライゼーションのためだけであり、誰もがリアルタイムtsiferkiを愛しています:
<html> <head> <script type="text/javascript" src="http://yandex.st/jquery/1.8.2/jquery.js"></script> <script type="text/javascript"> //, </script> </head> <body> <div>All processed: <span id="all">0</span></div> <div>All success: <span id="success">0</span></div> <div>All failed: <span id="failed">0</span></div> <br> <div>Mondays processed: <span id="processed_1">0</span></div> <div>Mondays total score: <span id="score_1">0</span></div> <div>Mondays total comments: <span id="comments_1">0</span></div> <br> <div>Tuesdays processed: <span id="processed_2">0</span></div> <div>Tuesdays total score: <span id="score_2">0</span></div> <div>Tuesdays total comments: <span id="comments_2">0</span></div> <br> <div>Wednesdays processed: <span id="processed_3">0</span></div> <div>Wednesdays total score: <span id="score_3">0</span></div> <div>Wednesdays total comments: <span id="comments_3">0</span></div> <br> <div>Thursdays processed: <span id="processed_4">0</span></div> <div>Thursdays total score: <span id="score_4">0</span></div> <div>Thursdays total comments: <span id="comments_4">0</span></div> <br> <div>Fridays processed: <span id="processed_5">0</span></div> <div>Fridays total score: <span id="score_5">0</span></div> <div>Fridays total comments: <span id="comments_5">0</span></div> <br> <div>Saturdays processed: <span id="processed_6">0</span></div> <div>Saturdays total score: <span id="score_6">0</span></div> <div>Saturdays total comments: <span id="comments_6">0</span></div> <br> <div>Sundays processed: <span id="processed_0">0</span></div> <div>Sundays total score: <span id="score_0">0</span></div> <div>Sundays total comments: <span id="comments_0">0</span></div> <div id="loader" style="display:none"></div> </body> </html>
こんな感じでした
結果
最後に、結果! スクリプトは、ほぼ同じサイズの3つの異なる間隔で2日間実行されました。
すべての間隔での合計測定値:
処理された合計: 35690
それらのうち正常に: 21189
アクセスエラー:14499
ニュースレターの紛失:2 :)
曜日 | 総投稿数 | 長所 | コメント | 長所/投稿 | コメント/投稿 |
---|---|---|---|---|---|
月曜日 | 3637 | 136035 | 178084 | 37.40 | 48.96 |
火曜日 | 3719 | 140566 | 194264 | 37.79 | 52.23 |
水曜日 | 3702 | 135767 | 184081 | 36.67 | 49.72 |
木曜日 | 3507 | 128936 | 178940 | 36.76 | 51.02 |
金曜日 | 3506 | 131063 | 170025 | 37.38 | 48.49 |
土曜日 | 1573 | 64073 | 85372 | 40.73 | 54.27 |
日曜日 | 1545 | 72376 | 91465 | 46.84 | 59.20 |
結論
- ほとんどの投稿は平日最初の3日間、週末は誰もが休む(疑わしい)
- 週末に休んでいない人-Habréについてコメントしてください。 楽しい時間をお過ごしください
- さらに、絶対的な意味では、週の初めに最も多くのコメントとプラス
- 顕著なピークはありません、habrはかなり均一です(最後の減少は予測可能です)
- 週の初めのアクティビティは高く、FacebookとTwitterの研究とよく一致しています。
- ハブレのピークは水曜日ではなく、火曜日です。 まだ月曜日ではありませんが、毎週の締め切りはまだ遠いです:)
- 最大限の注意と利点が必要な場合-月曜日または火曜日に投稿してください
- 金曜日はみんな気分が良く、プロにとっても良い日です。
- 木曜日のコメントでおしゃべりするのはいいことですが、その日の評価に頼らないでください。
- Habr-まだケーキ!
それで、いつそれがまだ公開されていますか?
プラスの場合-月曜日、火曜日、金曜日。
コメント-火曜日、水曜日、木曜日。
この投稿は月曜日に投稿されました。 素敵な一週間と良い投稿をお楽しみください、Khabrovchane!