{"action":"created","comment":{"url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/comments/41095712","id":41095712,"diff_hunk":"@@ -1,3 +1,246 @@\n-<html>\n-    <!-- Ваш замечательный код -->\n+<!DOCTYPE html>\n+<html lang=\"ru\">\n+<head>\n+<meta charset=\"utf8\">\n+    <title>Блог компании Яндекс.</title> \n+<body>\n+ <style> \n+      p {\n+          text-indent: 20px; /* Отступ первой строки в пикселах */\n+        }\n+     q { color:red}\n+</style>\n+</head>\n+    <header>\n+        <h2 style=\"text-align: center\";>\n+            Блог компании  <font color=\"red\">Я</font>ндекс.\n+        </h2>\n+    </header>      \n+    <h3 style=\"text-align: center\";><font color=\"red\">Я</font>НДЕКС.ПОЧТА:\n+        КАК МЫ ИЗМЕРЯЕМ СКОРОСТЬ ЗАГРУЗКИ И УЛУЧШАЕМ ЕЁ</h3>\n+    <hr>  \n+    <p style=\"text-align: center\">Если ваш сайт медленно грузится, вы рискуете тем, что люди не оценят ни то,\n+        какой он красивый, ни то, какой он удобный. Никому не понравится, когда все\n+        тормозит.<br> Мы регулярно добавляем в Яндекс.Почту новую функциональность,\n+        иногда — исправляем ошибки, а это значит, у нас постоянно появляются новый код\n+        и новая логика.<br> Всё это напрямую влияет на скорость работы интерфейса.\n+    </p> \n+    <hr>\n+    <h3 style=\"text-align: center\";>Что мы измеряем</h3>          \n+    <h4>Этапы первой загрузки:</h4>\n+    <div>\n+        <ul>\n+            <li>подготовка;</li>\n+            <li>загрузка статики (<abbr title=\" HyperText Transfer Protocol\">HTTP</abbr>-запрос и парсинг);</li>\n+            <li>исполнение модулей;</li>\n+            <li>инициализация базовых объектов;</li>\n+            <li>отрисовка.</li>\n+        </ul>\n+    </div>\n+    <h4>Этапы отрисовки любой страницы:</h4>\n+    <div>\n+        <ul>\n+            <li>подготовка к запросу на сервер;</li>\n+            <li>запрос данных с сервера;</li>\n+            <li>шаблонизация;</li>\n+            <li>обновление <abbr title=\"Document Object Model\">DOM</abbr>.</li>\n+        </ul>\n+    </div>\n+    <div>\n+        &mdash;\" Ок, теперь у нас есть метрики, мы можем отправить их на сервер\"&mdash; говорим мы<br>\n+        &mdash;\" Что же дальше? \"&mdash; вопрошаете вы<br>\n+        &mdash;\" А давай построим график! \"&mdash; отвечаем мы<br>\n+        &mdash;\" А что будем считать? \"&mdash; уточняете вы\n+    </div>\n+    <p>Как вы знаете, <dfn>медиана</dfn> – это серединное, а не среднее значение в выборке.\n+        Если у нас имеются<br> числа 1, 2, 2, 3, 8, 10, 20, то медиана – 3, а среднее – 6,5.\n+        В общем случае медиана отлично показывает,<br> сколько грузится средний пользователь.\n+        В случае ускорения или замедления медиана, конечно, изменится.<br> Но она не может\n+        рассказать, сколько пользователей ускорилось, а сколько замедлилось.\n+    </p>\n+    <p><abbr title=\"Application Performance Index\">APDEX</abbr> - Метрика, которая сразу говорит: хорошо или плохо. Метрика\n+        работает очень просто.<br> Мы выбираем временной интервал [0; t], такой, что если\n+        время показа страницы попало в него,<br> то пользователь счастлив. Берем еще один\n+        интервал, (t; 4t] (в четыре раза больше первого), и считаем,<br> что если страница\n+        показана за это время, то пользователь в целом удовлетворен скоростью работы,<br>\n+        но уже не настолько счастлив. И применяем формулу:<br>\n+        (кол-во счастливых пользователей + кол-во удовлетворенных / 2) / (кол-во всех).<br>\n+        Получается значение от нуля до единицы, которое, видимо, лучше всего показывает,\n+        хорошо или плохо работает почта.\n+    </p> \n+    <h3 style=\"text-align: center\";>Как мы измеряем</h3>    \n+    <p>Сейчас модуль обновления сам логирует все свои стадии, и можно легко понять\n+        причину замедления:<br> медленнее стал отвечать сервер либо слишком долго\n+        выполняется <em>JavaScript</em>. Выглядит это примерно так:\n+    </p>   \n+    <div>\n+        <code>\n+                    this.timings['look-ma-im-start'] = Date.now();<br>\n+                    this.timings['look-ma-finish'] = Date.now();<br>\n+        </code>    \n+    </div>\n+    <p>C помощью <code>Date.now()</code> мы получаем текущее время. Все тайминги собираются и при\n+        отправке рассчитываются.<br> На этапах разница между <em>“end”</em> и <em>“start”</em> не считается,\n+        а все вычисления производятся в конце:\n+    </p>\n+    <p><code>var totalTime = this.timings['look-ma-finish'] - this.timings['look-ma-im-start'];</code></p>","path":"index.html","position":88,"original_position":88,"commit_id":"e439cf5b3b1322d54573162a094ceca5eec607d0","original_commit_id":"e439cf5b3b1322d54573162a094ceca5eec607d0","user":{"login":"greyevil","id":1011334,"avatar_url":"https://avatars.githubusercontent.com/u/1011334?v=3","gravatar_id":"","url":"https://api.github.com/users/greyevil","html_url":"https://github.com/greyevil","followers_url":"https://api.github.com/users/greyevil/followers","following_url":"https://api.github.com/users/greyevil/following{/other_user}","gists_url":"https://api.github.com/users/greyevil/gists{/gist_id}","starred_url":"https://api.github.com/users/greyevil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/greyevil/subscriptions","organizations_url":"https://api.github.com/users/greyevil/orgs","repos_url":"https://api.github.com/users/greyevil/repos","events_url":"https://api.github.com/users/greyevil/events{/privacy}","received_events_url":"https://api.github.com/users/greyevil/received_events","type":"User","site_admin":false},"body":"```<code>``` то в ```<div>```, то в ```<p>``` -- тут надо определиться всё таки что к чему :)","created_at":"2015-10-04T08:10:42Z","updated_at":"2015-10-04T08:10:42Z","html_url":"https://github.com/urfu-2015/verstka-tasks-1/pull/35#discussion_r41095712","pull_request_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/35","_links":{"self":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/comments/41095712"},"html":{"href":"https://github.com/urfu-2015/verstka-tasks-1/pull/35#discussion_r41095712"},"pull_request":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/35"}}},"pull_request":{"url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/35","id":46425206,"html_url":"https://github.com/urfu-2015/verstka-tasks-1/pull/35","diff_url":"https://github.com/urfu-2015/verstka-tasks-1/pull/35.diff","patch_url":"https://github.com/urfu-2015/verstka-tasks-1/pull/35.patch","issue_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues/35","number":35,"state":"open","locked":false,"title":"Цыпаев Владимир","user":{"login":"Tsypaev","id":14859199,"avatar_url":"https://avatars.githubusercontent.com/u/14859199?v=3","gravatar_id":"","url":"https://api.github.com/users/Tsypaev","html_url":"https://github.com/Tsypaev","followers_url":"https://api.github.com/users/Tsypaev/followers","following_url":"https://api.github.com/users/Tsypaev/following{/other_user}","gists_url":"https://api.github.com/users/Tsypaev/gists{/gist_id}","starred_url":"https://api.github.com/users/Tsypaev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Tsypaev/subscriptions","organizations_url":"https://api.github.com/users/Tsypaev/orgs","repos_url":"https://api.github.com/users/Tsypaev/repos","events_url":"https://api.github.com/users/Tsypaev/events{/privacy}","received_events_url":"https://api.github.com/users/Tsypaev/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-09-30T16:32:15Z","updated_at":"2015-10-04T08:10:42Z","closed_at":null,"merged_at":null,"merge_commit_sha":"820c111b13fd1f55377f72b24c2d1913815a9be7","assignee":{"login":"greyevil","id":1011334,"avatar_url":"https://avatars.githubusercontent.com/u/1011334?v=3","gravatar_id":"","url":"https://api.github.com/users/greyevil","html_url":"https://github.com/greyevil","followers_url":"https://api.github.com/users/greyevil/followers","following_url":"https://api.github.com/users/greyevil/following{/other_user}","gists_url":"https://api.github.com/users/greyevil/gists{/gist_id}","starred_url":"https://api.github.com/users/greyevil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/greyevil/subscriptions","organizations_url":"https://api.github.com/users/greyevil/orgs","repos_url":"https://api.github.com/users/greyevil/repos","events_url":"https://api.github.com/users/greyevil/events{/privacy}","received_events_url":"https://api.github.com/users/greyevil/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/35/commits","review_comments_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/35/comments","review_comment_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/comments{/number}","comments_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues/35/comments","statuses_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/statuses/e439cf5b3b1322d54573162a094ceca5eec607d0","head":{"label":"Tsypaev:master","ref":"master","sha":"e439cf5b3b1322d54573162a094ceca5eec607d0","user":{"login":"Tsypaev","id":14859199,"avatar_url":"https://avatars.githubusercontent.com/u/14859199?v=3","gravatar_id":"","url":"https://api.github.com/users/Tsypaev","html_url":"https://github.com/Tsypaev","followers_url":"https://api.github.com/users/Tsypaev/followers","following_url":"https://api.github.com/users/Tsypaev/following{/other_user}","gists_url":"https://api.github.com/users/Tsypaev/gists{/gist_id}","starred_url":"https://api.github.com/users/Tsypaev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Tsypaev/subscriptions","organizations_url":"https://api.github.com/users/Tsypaev/orgs","repos_url":"https://api.github.com/users/Tsypaev/repos","events_url":"https://api.github.com/users/Tsypaev/events{/privacy}","received_events_url":"https://api.github.com/users/Tsypaev/received_events","type":"User","site_admin":false},"repo":{"id":43317940,"name":"verstka-tasks-2","full_name":"Tsypaev/verstka-tasks-2","owner":{"login":"Tsypaev","id":14859199,"avatar_url":"https://avatars.githubusercontent.com/u/14859199?v=3","gravatar_id":"","url":"https://api.github.com/users/Tsypaev","html_url":"https://github.com/Tsypaev","followers_url":"https://api.github.com/users/Tsypaev/followers","following_url":"https://api.github.com/users/Tsypaev/following{/other_user}","gists_url":"https://api.github.com/users/Tsypaev/gists{/gist_id}","starred_url":"https://api.github.com/users/Tsypaev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Tsypaev/subscriptions","organizations_url":"https://api.github.com/users/Tsypaev/orgs","repos_url":"https://api.github.com/users/Tsypaev/repos","events_url":"https://api.github.com/users/Tsypaev/events{/privacy}","received_events_url":"https://api.github.com/users/Tsypaev/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Tsypaev/verstka-tasks-2","description":"Задача к лекции «HTML, I часть»","fork":true,"url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2","forks_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/forks","keys_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/teams","hooks_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/hooks","issue_events_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/issues/events{/number}","events_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/events","assignees_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/assignees{/user}","branches_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/branches{/branch}","tags_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/tags","blobs_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/git/refs{/sha}","trees_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/statuses/{sha}","languages_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/languages","stargazers_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/stargazers","contributors_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/contributors","subscribers_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/subscribers","subscription_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/subscription","commits_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/commits{/sha}","git_commits_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/git/commits{/sha}","comments_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/comments{/number}","issue_comment_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/issues/comments{/number}","contents_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/contents/{+path}","compare_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/merges","archive_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/downloads","issues_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/issues{/number}","pulls_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/pulls{/number}","milestones_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/milestones{/number}","notifications_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/labels{/name}","releases_url":"https://api.github.com/repos/Tsypaev/verstka-tasks-2/releases{/id}","created_at":"2015-09-28T18:08:21Z","updated_at":"2015-09-28T18:08:22Z","pushed_at":"2015-10-02T16:30:10Z","git_url":"git://github.com/Tsypaev/verstka-tasks-2.git","ssh_url":"git@github.com:Tsypaev/verstka-tasks-2.git","clone_url":"https://github.com/Tsypaev/verstka-tasks-2.git","svn_url":"https://github.com/Tsypaev/verstka-tasks-2","homepage":"","size":109,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"urfu-2015:master","ref":"master","sha":"92106c708076d457b6ffcd8175044271b4318dd9","user":{"login":"urfu-2015","id":14800971,"avatar_url":"https://avatars.githubusercontent.com/u/14800971?v=3","gravatar_id":"","url":"https://api.github.com/users/urfu-2015","html_url":"https://github.com/urfu-2015","followers_url":"https://api.github.com/users/urfu-2015/followers","following_url":"https://api.github.com/users/urfu-2015/following{/other_user}","gists_url":"https://api.github.com/users/urfu-2015/gists{/gist_id}","starred_url":"https://api.github.com/users/urfu-2015/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/urfu-2015/subscriptions","organizations_url":"https://api.github.com/users/urfu-2015/orgs","repos_url":"https://api.github.com/users/urfu-2015/repos","events_url":"https://api.github.com/users/urfu-2015/events{/privacy}","received_events_url":"https://api.github.com/users/urfu-2015/received_events","type":"Organization","site_admin":false},"repo":{"id":43061154,"name":"verstka-tasks-1","full_name":"urfu-2015/verstka-tasks-1","owner":{"login":"urfu-2015","id":14800971,"avatar_url":"https://avatars.githubusercontent.com/u/14800971?v=3","gravatar_id":"","url":"https://api.github.com/users/urfu-2015","html_url":"https://github.com/urfu-2015","followers_url":"https://api.github.com/users/urfu-2015/followers","following_url":"https://api.github.com/users/urfu-2015/following{/other_user}","gists_url":"https://api.github.com/users/urfu-2015/gists{/gist_id}","starred_url":"https://api.github.com/users/urfu-2015/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/urfu-2015/subscriptions","organizations_url":"https://api.github.com/users/urfu-2015/orgs","repos_url":"https://api.github.com/users/urfu-2015/repos","events_url":"https://api.github.com/users/urfu-2015/events{/privacy}","received_events_url":"https://api.github.com/users/urfu-2015/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/urfu-2015/verstka-tasks-1","description":"Задача к лекции «HTML, I часть»","fork":false,"url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1","forks_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/forks","keys_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/keys{/key_id}","collaborators_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/teams","hooks_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/hooks","issue_events_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues/events{/number}","events_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/events","assignees_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/assignees{/user}","branches_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/branches{/branch}","tags_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/tags","blobs_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/git/refs{/sha}","trees_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/git/trees{/sha}","statuses_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/statuses/{sha}","languages_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/languages","stargazers_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/stargazers","contributors_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/contributors","subscribers_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/subscribers","subscription_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/subscription","commits_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/commits{/sha}","git_commits_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/git/commits{/sha}","comments_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/comments{/number}","issue_comment_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues/comments{/number}","contents_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/contents/{+path}","compare_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/compare/{base}...{head}","merges_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/merges","archive_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/downloads","issues_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues{/number}","pulls_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls{/number}","milestones_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/milestones{/number}","notifications_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/labels{/name}","releases_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/releases{/id}","created_at":"2015-09-24T10:45:26Z","updated_at":"2015-10-03T14:28:03Z","pushed_at":"2015-10-04T07:41:54Z","git_url":"git://github.com/urfu-2015/verstka-tasks-1.git","ssh_url":"git@github.com:urfu-2015/verstka-tasks-1.git","clone_url":"https://github.com/urfu-2015/verstka-tasks-1.git","svn_url":"https://github.com/urfu-2015/verstka-tasks-1","homepage":"","size":2003,"stargazers_count":15,"watchers_count":15,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":76,"mirror_url":null,"open_issues_count":49,"forks":76,"open_issues":49,"watchers":15,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/35"},"html":{"href":"https://github.com/urfu-2015/verstka-tasks-1/pull/35"},"issue":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues/35"},"comments":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues/35/comments"},"review_comments":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/35/comments"},"review_comment":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/35/commits"},"statuses":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/statuses/e439cf5b3b1322d54573162a094ceca5eec607d0"}}}}