{"action":"created","comment":{"url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/comments/41484147","id":41484147,"diff_hunk":"@@ -1,3 +1,397 @@\n-<html>\n-    <!-- Ваш замечательный код -->\n+<!DOCTYPE html>\n+<html lang=\"ru\"> \n+    <head>\n+        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n+        <title>Яндекс.Блог</title>\n+ <style>\n+\n+ body\n+{\n+    background: url(http://img0.liveinternet.ru/images/attach/c/3/77/1/77001046_large_fon_dlya_teksta_krem_letopis.jpg);\n+    text-align:left; \n+    width:1000px; \n+    height:auto; \n+    padding-left:20px; \n+    padding-right:20px; \n+    max-width:1000px;\n+}\n+\n+ .frameOne\n+{\n+    size: 15px;\n+    border-style: inset ;\n+    border-top: 10px solid red;\n+    border-right: 10px solid black;\n+    border-bottom: 10px solid black;\n+    border-left: 10px solid red;\n+    width: 730px;\n+}\n+\n+  .quote\n+{\n+    font-style: italic;\n+    font-size: 20px;\n+}\n+\n+  .frameTwo\n+{\n+    border-style: double ;\n+    border: solid black solid blue;\n+    width: 470px;\n+}\n+\n+ .frameThree\n+{\n+    background: #C0C0C0;\n+    font-size: 15px;\n+    border-style: inset ;\n+    border-top: 4px solid red;\n+    border-right: 4px solid black;\n+    border-bottom: 4px solid black;\n+    border-left: 4px solid red;\n+    width: 550px;\n+}\n+\n+  code\n+{\n+    font-size: 20px;\n+}\n+\n+  sub\n+{\n+    font-size: 14px;\n+}\n+\n+  p\n+{\n+    font-family: 'Times New Roman', Times, serif; \n+    font-size: 20px;\n+} \n+\n+  pre\n+{\n+    font-style: oblique;\n+}\n+\n+  ul\n+{\n+    font-family: 'Times New Roman', Times, serif;\n+    font-size: 19px\n+} \n+\n+  table, td, th\n+{\n+    font-size: 19px;\n+    border: 3px solid black;\n+}\n+\n+  th \n+{\n+    background: silver;\n+    color: black;\n+} \n+\n+  ol \n+{\n+    font-family: 'Times New Roman', Times, serif;\n+    font-size: 19px\n+}\n+\n+  </style>\n+    </head>\n+\n+<body>\n+  <h1>Блог компании <font color=\"red\">Я</font><font color=\"black\">ндекс.</font></h1>\n+  <h2><font color=\"red\">Я</font><font color=\"black\">НДЕКС.ПОЧТА</font>: КАК МЫ ИЗМЕРЯЕМ СКОРОСТЬ ЗАГРУЗКИ И УЛУЧШАЕМ ЕЁ</h2>\n+\n+  <p>\n+    Если ваш сайт медленно грузится, вы рискуете тем, что люди не оценят ни то,\n+    какой он красивый, ни то, какой он удобный. Никому не понравится, когда все\n+    тормозит. Мы регулярно добавляем в Яндекс.Почту новую функциональность,\n+    иногда — исправляем ошибки, а это значит, у нас постоянно появляются новый код\n+    и новая логика. Всё это напрямую влияет на скорость работы интерфейса.\n+  </p>\n+\n+  <h3>Что мы измеряем</h3> \n+  <p>Этапы первой загрузки:</p>\n+  <ul>\n+      <li>подготовка;\n+      <li>загрузка статики (HTTP-запрос и парсинг);\n+      <li>исполнение модулей;\n+      <li>инициализация базовых объектов;\n+      <li>отрисовка.\n+  </ul>\n+\n+  <p>Этапы отрисовки любой страницы:</p>\n+  <ul>\n+      <li >подготовка к запросу на сервер;\n+      <li>запрос данных с сервера;\n+      <li>шаблонизация;\n+      <li>обновление DOM.\n+  </ul>\n+\n+  <div class = \"frameOne\">\n+      <p><q>Ок, теперь у нас есть метрики, мы можем отправить их на сервер</q> - говорим мы</p>\n+      <p><q>Что же дальше?</q> - вопрошаете вы</p>\n+      <p><q>А давай построим график!</q> - отвечаем мы</p>\n+      <p><q>А что будем считать?</q>- уточняете вы</p>    \n+  </div>\n+\n+  <p>\n+    Как вы знаете, медиана – это серединное, а не среднее значение в выборке.\n+    Если у нас имеются числа 1, 2, 2, 3, 8, 10, 20, то медиана – 3, а среднее – 6,5.\n+    В общем случае медиана отлично показывает, сколько грузится средний пользователь.\n+  </p>\n+  <p>\n+    В случае ускорения или замедления медиана, конечно, изменится. Но она не может\n+    рассказать, сколько пользователей ускорилось, а сколько замедлилось.\n+  </p>\n+\n+  <p>\n+    <dfn>APDEX</dfn> – метрика, которая сразу говорит: хорошо или плохо. Метрика\n+    работает очень просто. Мы выбираем временной интервал [0; t], такой, что если\n+    время показа страницы попало в него, то пользователь счастлив. Берем еще один\n+    интервал, (t; 4t] (в четыре раза больше первого), и считаем, что если страница\n+    показана за это время, то пользователь в целом удовлетворен скоростью работы,\n+    но уже не настолько счастлив. И применяем формулу:\n+  </p>\n+\n+  <div class = \"frameTwo\"  id=\"formula\">\n+    <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n+      <mi>X</mi><mo >=</mo>\n+        <mfrac>\n+          <mrow>\n+        <mfrac>\n+          <mrow>\n+            <mi>кол-во счастливых пользователей</mi> <mo>+</mo>\n+            <mi>кол-во удовлетворенных</mi>\n+          </mrow>\n+          <mrow><mn>2</mn></mrow>\n+        </mfrac>\n+          </mrow>\n+          <mrow><mi>(кол-во всех)</mi></mrow>\n+    </math>\n+  </div>\n+\n+  <p>\n+    Получается значение от нуля до единицы, которое, видимо, лучше всего показывает,\n+    хорошо или плохо работает почта.\n+  </p>\n+\n+  <h3>Как мы измеряем</h3>\n+\n+  <p>\n+    Сейчас модуль обновления сам логирует все свои стадии, и можно легко понять\n+    причину замедления: медленнее стал отвечать сервер либо слишком долго\n+    выполняется JavaScript. Выглядит это примерно так:\n+  </p>\n+\n+  <pre>\n+    <code>\n+      this.timings['look-ma-im-start'] = Date.now();\n+      this.timings['look-ma-finish'] = Date.now();\n+    </code>\n+  </pre>\n+\n+  <p>\n+    C помощью <code>Date.now()</code> мы получаем текущее время. Все тайминги собираются и при\n+    отправке рассчитываются. На этапах разница между “end” и “start” не считается,\n+    а все вычисления производятся в конце:\n+  </p>\n+\n+  <p><code>var totalTime = this.timings['look-ma-finish'] - this.timings['look-ma-im-start'];</code></p>\n+  <p>И на сервер прилетают подобные записи:</p>\n+  <p><code>serverResponse=50&domUpdate=60</code></p>\n+\n+  <h3>Как мы ускоряем</h3>\n+  <p>Чтобы снизить время загрузки почты при выходе новых версий, мы уже делаем следующее:</p>\n+  <ul>\n+      <li>включаем gzip;\n+      <li>выставляем заголовки кэширования;\n+      <li>фризим CSS, JS, шаблоны и картинки;\n+      <li>используем CDN;\n+  </ul>\n+\n+  <p>\n+    Мы подумали: <q>А что если хранить где-то старую версию файлов, а при выходе новой\n+    передавать только diff между ней и той, которая сохранена у пользователя?</q>\n+  </p>\n+  <p>В браузере же останется просто наложить патч на клиенте.</p>\n+  <p>\n+    На самое деле эта идея не нова. Уже существуют стандарты для HTTP — например,\n+    <dfn>RFC 3229 «Delta encoding in HTTP»</dfn> и <dfn>«Google SDHC»</dfn>, — но по разным причинам они\n+    не получили должного распространения в браузерах и на серверах.\n+  </p>\n+\n+  <p>\n+    Мы же решили сделать свой аналог на JS. Чтобы реализовать этот метод обновления,\n+    начали искать реализации diff на JS. На популярных хостингах кода нашли\n+    библиотеки:\n+  </p>\n+  <ul>\n+      <li>VCDiff\n+      <li>google-diff-patch-match\n+  </ul>\n+  <p>Для окончательного выбора библиотеки нам нужно сравнить:</p>\n+\n+    <table>\n+      <tr>\n+      <th>Библиотека</th> \n+      <th>IE 9</th>\n+      <th>Opera 12</th>\n+      </tr>\n+      <tr>\n+      <td>vcdiff</td>\n+      <td>8</td>\n+      <td>5</td>\n+      </tr>\n+      <tr>\n+      <td>google diff</td>\n+      <td>1363</td>\n+      <td>76</td>\n+      </tr>\n+    </table>\n+\n+  <p>\n+    После того как мы определились с библиотекой для диффа, нужно определиться с тем,\n+    где и как хранить статику на клиенте.\n+  </p>\n+\n+  <p>Формат файла с патчами для проекта выглядит так:</p>\n+  <pre>\n+    <code>\n+      [\n+        {\n+          \"k\": \"jane.css\",\n+          \"p\": [patch],\n+          \"s\": 4554\n+        },\n+        {\n+          \"k\": \"jane.css\",\n+          \"p\": [patch],\n+          \"s\": 4554\n+         }\n+      ]\n+    <code>\n+  </pre>\n+\n+  <p>\n+    То есть это обычный массив из объектов. Каждый объект — отдельный ресурс. У\n+    каждого объекта есть три свойства: \n+  <ol>\n+      <li>k — названия ключа в localStorage для этого ресурса.\n+      <li>p — патч для ресурса, который сгенерировал vcdiff. \n+      <li>\n+      s — чексумма для ресурса актуальной версии, чтобы потом можно было проверить правильность\n+      наложения патча на клиенте. Чексумма вычисляется по алгоритму Флетчера.\n+  </ol>\n+  </p>\n+  <p>\n+    Алгоритм Бройдена — Флетчера — Гольдфарба — Шанно (BFGS) — итерационный метод численной оптимизации, предназначенный для нахождения локального максимума/минимума нелинейного функционала без ограничений.\n+  </p>\n+\n+  <div class = \"frameThree\">\n+  <p>\n+    Дано &epsilon;, x<sub>0</sub> \n+    <br>инициализировать H<sub>0</sub>\n+    <br><math xmlns=\"http://www.w3.org/1998/Math/MathML\"> <mi>k</mi> <mo >=</mo><mn>0</mn></math>\n+    <dl>while \n+  <math xmlns=\"http://www.w3.org/1998/Math/MathML\"><mo>||&nabla;F<sub>k</sub>||>&epsilon;</mo></math>\n+    <dd>найти направление \n+  <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n+    <mi>p<sub>k</sub></mi><mo>=</mo><mo>-C<sub>k</sub>&nabla;F<sub>k</sub></mo>\n+  </math>\n+    <dd>вычислить \n+  <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n+    <mi>x<sub>k+1</sub></mi><mo>=</mo><mi>x<sub>k</sub></mi><mo>+</mo><mi>a<sub>k</sub>p<sub>k</sub></mi><mo>,</mo><mi>a<sub>k</sub>\n+  </math>\n+    удовлетворяет условиям Вольфе\n+    <dd> обозначить\n+  <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n+    <mi>s<sub>k</sub></mi><mo>=</mo><mi>x<sub>k+1</sub></mi><mo>-</mo> <mi>x<sub>k</sub></mi> \n+  </math> \n+    и\n+  <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n+    <mi>y<sub>k</sub></mi><mo>=</mo><mo>&nabla;</mo><mi>F<sub>k+1</sub></mi><mo>-</mo><mi>&nabla;F<sub>k</sub></mi> \n+  </math> \n+    <dd>вычислитьC<sub>k+1</sub>\n+    <dd> \n+  <math xmlns=\"http://www.w3.org/1998/Math/MathML\">\n+    <mi>k</mi><mo>=</mo><mi>k</mi><mo>+</mo><mi>1</mi>\n+  </math>\n+    <dt>end\n+    </dl>\n+  </p>\n+  </div>\n+\n+  <p>\n+    Почему именно алгоритм Флетчера, а не другие популярные алгоритмы вроде:\n+  <ul>\n+      <li><dfn>CRC16/32</dfn> - алгоритм нахождения контрольной суммы, предназначенный для проверки\n+      целостности данных\n+      <li><dfn>md5</dfn> - 128-битный алгоритм хеширования. Предназначен для создания «отпечатков»\n+      или дайджестов сообщения произвольной длины и последующей проверки\n+      их подлинности.\n+  </ul>  \n+  </p>\n+\n+  <p><em>Потому что он быстрый, компактный и легок в реализации.</em></p>\n+  <h3>Итог</h3>\n+  <p>Фактически мы экономим 80-90% трафика. Размер загружаемой статитки в байтах:</p> \n+  <p>\n+    <table><tr>\n+      <th>Релиз</th>\n+      <th>С патчем</th>\n+      <th>Без патча</th>\n+      </tr>\n+      <tr>\n+      <td>7.7.20</td><td>397</td><td>174 549</td>\n+      </tr>\n+      <tr>\n+      <td>7.7.21</td><td>383</td><td>53 995</td>\n+      </tr>\n+      <tr>\n+      <td>7.7.22</td><td>483</td><td>3 995</td>\n+      </tr>\n+    </table>\n+  </p>","path":"index.html","position":359,"original_position":359,"commit_id":"439ea0b79b0094e2e5b9650bb7f4a7bcedcf81d4","original_commit_id":"439ea0b79b0094e2e5b9650bb7f4a7bcedcf81d4","user":{"login":"ulitcos","id":4023479,"avatar_url":"https://avatars.githubusercontent.com/u/4023479?v=3","gravatar_id":"","url":"https://api.github.com/users/ulitcos","html_url":"https://github.com/ulitcos","followers_url":"https://api.github.com/users/ulitcos/followers","following_url":"https://api.github.com/users/ulitcos/following{/other_user}","gists_url":"https://api.github.com/users/ulitcos/gists{/gist_id}","starred_url":"https://api.github.com/users/ulitcos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ulitcos/subscriptions","organizations_url":"https://api.github.com/users/ulitcos/orgs","repos_url":"https://api.github.com/users/ulitcos/repos","events_url":"https://api.github.com/users/ulitcos/events{/privacy}","received_events_url":"https://api.github.com/users/ulitcos/received_events","type":"User","site_admin":false},"body":"table надо вытащить из p ","created_at":"2015-10-08T07:42:42Z","updated_at":"2015-10-08T07:42:42Z","html_url":"https://github.com/urfu-2015/verstka-tasks-1/pull/49#discussion_r41484147","pull_request_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/49","_links":{"self":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/comments/41484147"},"html":{"href":"https://github.com/urfu-2015/verstka-tasks-1/pull/49#discussion_r41484147"},"pull_request":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/49"}}},"pull_request":{"url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/49","id":46560746,"html_url":"https://github.com/urfu-2015/verstka-tasks-1/pull/49","diff_url":"https://github.com/urfu-2015/verstka-tasks-1/pull/49.diff","patch_url":"https://github.com/urfu-2015/verstka-tasks-1/pull/49.patch","issue_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues/49","number":49,"state":"open","locked":false,"title":"Ткач Даниил Васильевич","user":{"login":"Tkach7","id":14890644,"avatar_url":"https://avatars.githubusercontent.com/u/14890644?v=3","gravatar_id":"","url":"https://api.github.com/users/Tkach7","html_url":"https://github.com/Tkach7","followers_url":"https://api.github.com/users/Tkach7/followers","following_url":"https://api.github.com/users/Tkach7/following{/other_user}","gists_url":"https://api.github.com/users/Tkach7/gists{/gist_id}","starred_url":"https://api.github.com/users/Tkach7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Tkach7/subscriptions","organizations_url":"https://api.github.com/users/Tkach7/orgs","repos_url":"https://api.github.com/users/Tkach7/repos","events_url":"https://api.github.com/users/Tkach7/events{/privacy}","received_events_url":"https://api.github.com/users/Tkach7/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-10-01T18:42:32Z","updated_at":"2015-10-08T07:42:42Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bf07f9fb0c6796c98224bdb3c3414b53a156c63e","assignee":{"login":"ulitcos","id":4023479,"avatar_url":"https://avatars.githubusercontent.com/u/4023479?v=3","gravatar_id":"","url":"https://api.github.com/users/ulitcos","html_url":"https://github.com/ulitcos","followers_url":"https://api.github.com/users/ulitcos/followers","following_url":"https://api.github.com/users/ulitcos/following{/other_user}","gists_url":"https://api.github.com/users/ulitcos/gists{/gist_id}","starred_url":"https://api.github.com/users/ulitcos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ulitcos/subscriptions","organizations_url":"https://api.github.com/users/ulitcos/orgs","repos_url":"https://api.github.com/users/ulitcos/repos","events_url":"https://api.github.com/users/ulitcos/events{/privacy}","received_events_url":"https://api.github.com/users/ulitcos/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/49/commits","review_comments_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/49/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/49/comments","statuses_url":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/statuses/439ea0b79b0094e2e5b9650bb7f4a7bcedcf81d4","head":{"label":"Tkach7:master","ref":"master","sha":"439ea0b79b0094e2e5b9650bb7f4a7bcedcf81d4","user":{"login":"Tkach7","id":14890644,"avatar_url":"https://avatars.githubusercontent.com/u/14890644?v=3","gravatar_id":"","url":"https://api.github.com/users/Tkach7","html_url":"https://github.com/Tkach7","followers_url":"https://api.github.com/users/Tkach7/followers","following_url":"https://api.github.com/users/Tkach7/following{/other_user}","gists_url":"https://api.github.com/users/Tkach7/gists{/gist_id}","starred_url":"https://api.github.com/users/Tkach7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Tkach7/subscriptions","organizations_url":"https://api.github.com/users/Tkach7/orgs","repos_url":"https://api.github.com/users/Tkach7/repos","events_url":"https://api.github.com/users/Tkach7/events{/privacy}","received_events_url":"https://api.github.com/users/Tkach7/received_events","type":"User","site_admin":false},"repo":{"id":43513971,"name":"verstka-tasks-1","full_name":"Tkach7/verstka-tasks-1","owner":{"login":"Tkach7","id":14890644,"avatar_url":"https://avatars.githubusercontent.com/u/14890644?v=3","gravatar_id":"","url":"https://api.github.com/users/Tkach7","html_url":"https://github.com/Tkach7","followers_url":"https://api.github.com/users/Tkach7/followers","following_url":"https://api.github.com/users/Tkach7/following{/other_user}","gists_url":"https://api.github.com/users/Tkach7/gists{/gist_id}","starred_url":"https://api.github.com/users/Tkach7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Tkach7/subscriptions","organizations_url":"https://api.github.com/users/Tkach7/orgs","repos_url":"https://api.github.com/users/Tkach7/repos","events_url":"https://api.github.com/users/Tkach7/events{/privacy}","received_events_url":"https://api.github.com/users/Tkach7/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Tkach7/verstka-tasks-1","description":"Задача к лекции «HTML, I часть»","fork":true,"url":"https://api.github.com/repos/Tkach7/verstka-tasks-1","forks_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/forks","keys_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/teams","hooks_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/hooks","issue_events_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/issues/events{/number}","events_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/events","assignees_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/assignees{/user}","branches_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/branches{/branch}","tags_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/tags","blobs_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/git/refs{/sha}","trees_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/statuses/{sha}","languages_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/languages","stargazers_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/stargazers","contributors_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/contributors","subscribers_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/subscribers","subscription_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/subscription","commits_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/commits{/sha}","git_commits_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/git/commits{/sha}","comments_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/comments{/number}","issue_comment_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/issues/comments{/number}","contents_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/contents/{+path}","compare_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/merges","archive_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/downloads","issues_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/issues{/number}","pulls_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/pulls{/number}","milestones_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/milestones{/number}","notifications_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/labels{/name}","releases_url":"https://api.github.com/repos/Tkach7/verstka-tasks-1/releases{/id}","created_at":"2015-10-01T18:38:55Z","updated_at":"2015-10-01T18:38:55Z","pushed_at":"2015-10-07T09:06:57Z","git_url":"git://github.com/Tkach7/verstka-tasks-1.git","ssh_url":"git@github.com:Tkach7/verstka-tasks-1.git","clone_url":"https://github.com/Tkach7/verstka-tasks-1.git","svn_url":"https://github.com/Tkach7/verstka-tasks-1","homepage":"","size":128,"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-07T14:13:10Z","pushed_at":"2015-10-08T05:34:06Z","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":2218,"stargazers_count":15,"watchers_count":15,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":106,"mirror_url":null,"open_issues_count":63,"forks":106,"open_issues":63,"watchers":15,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/49"},"html":{"href":"https://github.com/urfu-2015/verstka-tasks-1/pull/49"},"issue":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues/49"},"comments":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/issues/49/comments"},"review_comments":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/pulls/49/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/49/commits"},"statuses":{"href":"https://api.github.com/repos/urfu-2015/verstka-tasks-1/statuses/439ea0b79b0094e2e5b9650bb7f4a7bcedcf81d4"}}}}