В EcmaScript 2015 (также известном как ES6) представлена совершенно новая концепция итераторов, которая позволяет задать последовательности (ограниченные и другие) на уровне языка.
Давайте поговорим об этом детальнее. Все мы хорошо знакомы с оператором цикла for, а многие даже знают его менее популярного брата for-in. Последний можно использовать, чтобы помочь нам объяснить базовые принципы работы с итераторами.
for (var key in table) {
console.log(key + ' = ' + table[key]);
}
С оператором цикла for-in есть много проблем, но самая большая, пожалуй, состоит в том, что он не дает никаких гарантий последовательности. Попытаемся решить эту проблему с помощью итераторов. Больше информации под катом! Читать дальше →
Сегодня, 6 августа, состоялся финал Яндекс.Алгоритма — ежегодного чемпионата по спортивному программированию, который организует Яндекс. В 2015 году состязание проходило полностью в онлайне — на платформе Яндекс.Контест. Заявки на участие в чемпионате подали 3722 человека; из них до финала дошли 28.
Победителем Яндекс.Алгоритма-2015 стал Геннадий Короткевич. Он показал лучший результат, решив в финальном раунде пять из шести задач и получив при этом 80 минут штрафного времени. Геннадий — бессменный чемпион Яндекс.Алгоритма: он занимал первое место и в 2013, и в 2014 годах, а также выиграл множество других состязаний. Только в 2015 году он получил золото на чемпионате мира по программированию ACM ICPC 2015 в составе команды Университета ИТМО, занял первое место на VK Cup 2015 в паре с Ниязом Нигматуллиным, выиграл конкурс Facebook Hacker Cup и одержал ещё несколько крупных побед.
Геннадий Короткевич во время чемпионата Яндекс.Алгоритм-2013
Второе место занял Пётр Митричев, а третье — Евгений Капун. Они решили по четыре задачи, при этом Пётр набрал 31 штрафную минуту, а Евгений — 79 минут. Победители получат денежные награды: 300, 150 и 90 тысяч рублей за первое, второе и третье места соответственно. Результаты всех финалистов можно посмотреть на сайте Яндекс.Алгоритма, а разбор задач финального раунда опубликован в блоге Яндекса на «Хабрахабре».
В 2015 году заявки на участие в Яндекс.Алгоритме подали программисты из 73 стран. Больше всего участников — из России, Украины, Беларуси, Казахстана, Индии, США, Японии и Китая, но вообще география чемпионата крайне обширна — Бразилия, Индонезия, Перу, Доминиканская Республика, Мозамбик, Сенегал, Каймановы острова. 8,9% зарегистрировавшихся — девушки. Примерно половина всех участников — студенты.
По правилам Яндекс.Алгоритма, участвовать в финале могут только те, кому уже исполнилось 18 лет. Однако попробовать свои силы в отборочных раундах разрешается и программистам более младшего возраста. Часто такие ребята показывают отличные результаты. Например, в топ-512 лучших участников Яндекс.Алгоритма-2015 вошли примерно 50 человек, которым пока нет 18 лет. Мы надеемся увидеть их в числе победителей будущих чемпионатов.
Первый Яндекс.Алгоритм прошёл в 2011 году. На международный уровень чемпионат вышел два года спустя, в 2013 году. Задачи для Яндекс.Алгоритма составляет международная команда, в которую входят как сотрудники Яндекса, так и приглашённые эксперты — в том числе победители и финалисты состязаний ACM ICPC и Topcoder Open.
В самом Яндексе опыт участия в соревнования по спортивному программированию имеют около 400 человек. Помимо Алгоритма, Яндекс поддерживает и другие состязания. Каждую неделю в нашем московском офисе проходят тренировки для студентов из разных вузов, а на базе факультета компьютерных наук ВШЭ, созданного при участии Яндекса, работает Центр студенческих олимпиад.
Всем доброго времени суток!
Давайте немного поговорим о DX (Developer Experience) или «Опыте разработки», а если конкретнее — об обновлении кода в режиме реального времени с сохранением состояния системы. Если тема для вас в новинку, то перед прочтением советую ознакомиться со следующими видео:
Ряд видео с обновлением кода в реальном времени без перезагрузки страницы
Введение: Как это работает?
Прежде всего стоит понимать, что реализация подобной функциональности подразумевает под собой решение ряда задач:
— Отслеживание изменений файлов
— Вычисление патча на основании изменений файлов
— Транспортировка патча на клиент (в браузер, например)
— Обработка и применение патча к существующему коду
Но обо всём по порядку.
Читать дальше →
В предыдущей статье я рассказывал про реализацию Flux и веб-компонентов во фреймворке Catberry.js, и эта статья – обещанное продолжение про движок прогрессивного рендеринга.
Что значит «прогрессивный»?
Наверное, вы сталкивались хотя бы раз в жизни с JPEG-картинкой, которая сперва загружается с сервера мутной, а по мере загрузки остального содержимого становится чётче. Такой формат картинки называется "Progressive JPEG", и его основная идея – показать как можно скорее пользователю хоть какое-то содержимое, пусть и не до конца готовое. Пользователь с первой секунды уже будет знать размер картинки и ее примерное содержимое, а в дальнейшем содержимое будет становится только отчётливее.
Лично я не знаю откуда появилась идея назвать потоковый (stream-based) рендеринг HTML прогрессивным, но первое применение этого термина именно к рендерингу HTML я нашел в статье за декабрь 2009 года "Progressive rendering via multiple flushes". Однако и в более свежих статьях, например от разработчиков Google, можно найти термин «Optimized (progressive) rendering». Читать дальше →