Как стать автором
Обновить
8
0
Кирилл @kirikm

Пользователь

Отправить сообщение

Ускоренный курс по нотациям в теории языков программирования

Время на прочтение10 мин
Количество просмотров31K
Программисты часто сталкиваются с проблемами чтения математических нотаций, когда пытаются разобраться с теоретическими основами какого-либо языка программирования. Также с ними толкнулся и я в своих теоретических изысканиях. К счастью, мне очень помогла замечательная статья Джереми Сиека (Jeremy Siek), чьим переводом я хочу с вами поделиться. Надеюсь она поможет многим программистам-«не математикам».
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии4

Разбор всех задач финального раунда Яндекс.Алгоритма 2015

Время на прочтение17 мин
Количество просмотров76K
Сегодня завершился финал Яндекс.Алгоритма — ежегодного чемпионата по спортивному программированию, который организует Яндекс. В 2015 году состязание проходило полностью в онлайне — на платформе Яндекс.Контест. Заявки на участие подали программисты из 73 стран. Больше всего участников — из России, Украины, Беларуси, Казахстана, Индии, США, Японии и Китая, но вообще география чемпионата крайне обширна — Бразилия, Индонезия, Перу, Доминиканская Республика, Мозамбик, Сенегал, Каймановы острова. 8,9% зарегистрировавшихся — девушки. Примерно половина всех участников — студенты. Всего мы получили заявки от 3722 человек, из которых до финала дошли 28.

А победителем Яндекс.Алгоритма-2015 стал Геннадий Короткевич. Он по привычке показал лучший результат, решив в финальном раунде пять из шести задач и получив при этом 80 минут штрафного времени. Геннадий занимал первое место в чемпионате Яндекса и в 2013, и в 2014 годах.



Второе место занял Пётр Митричев, а третье — Евгений Капун. Они решили по четыре задачи, при этом Пётр набрал 31 штрафную минуту, а Евгений — 79 минут. Результаты всех финалистов можно посмотреть на сайте Яндекс.Алгоритма.

Задачи для Яндекс.Алгоритма составляет международная команда, в которую входят как сотрудники Яндекса, так и приглашённые эксперты — в том числе победители и финалисты состязаний ACM ICPC и Topcoder Open. И мы по традиции подготовили для вас разборы всех заданий. Решить все из них никому не удалось. Больше всего участников справились с задачей B, а вот задания A и D решило всего по одному человеку.
Читать дальше →
Всего голосов 50: ↑47 и ↓3+44
Комментарии2

SpiderTest: автотесты своими руками

Время на прочтение7 мин
Количество просмотров34K


Довольно часто среди начинающих (и даже не очень) тестировщиков приходится слышать: «вот если бы я умел писать автотесты, я бы…». Как правило этим «если бы» ребята и ограничиваются. На вопрос: «А почему не учишься писать?» чаще всего отвечают: «Программирование это не мое». Действительно, тем для кого программирование темный лес, погрузиться в мир автотестов довольно затруднительно, ведь скрипт сам себя не напишет. В этой статье я хотел бы поговорить о том, как из ручного тестировщика стать крутым автотестером.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии32

14 новых ролей в Big Data

Время на прочтение4 мин
Количество просмотров23K
Количество данных растет с каждым днем огромными рывками. Ежедневно в сеть заливается 2,3 триллиона гигабайт данных. К 2017 году ожидается, что количество данных вырастет на 800%. Чем больше данных, тем выше спрос на специалистов по их обработке.

Наука о данных настолько динамично развивается, что у каждого специалиста есть своя узкая зона ответственности. Мартин Джонс (Martin Jones), CEO и co-founder в Cambriano Energy предлагает выделить 14 основных ролей в работе с большими данными.

image
Читать дальше →
Всего голосов 16: ↑11 и ↓5+6
Комментарии2

Семь принципов создания современных веб-приложений

Время на прочтение19 мин
Количество просмотров188K
Эта статья основана на моей презентации с конференции BrazilJS в августе 2014 года. Она базируется на идеях, о которых я писал в блоге недавно, в основном, в связи с UX и производительностью.

Я хочу представить 7 действенных принципов для веб-сайтов, которые хотят применить JavaScript для управления UI. Эти принципы являются результатом моей работы как веб-дизайнера, но также как давнего пользователя WWW.

JavaScript бесспорно стал незаменимым инструментом для разработчиков фронтенда. Сейчас сфера его применения расширяется на другие области, такие как серверы и микроконтроллеры. Этот язык программирования выбрали престижные университеты, чтобы обучать студентов основам информатики.

В то же время существует ряд вопросов относительно его роли и конкретного использования, на которые многие затрудняются ответить, в том числе авторы фреймворков и библиотек.

  • Должен ли JavaScript использоваться как замена функциям браузера: история, навигация, рендеринг?
  • Умирает ли бэкенд? Нужно ли вообще рендерить HTML?
  • Правда ли, что будущее за приложениями на одной странице (Single Page Applications, SPA)?
  • Должен ли JS генерировать страницы на веб-сайте и рендерить страницы в веб-приложениях?
  • Нужно ли использовать техники вроде PJAX или TurboLinks?
  • Каково точное отличие между веб-сайтом и веб-приложением? Должно ли остаться что-то одно?
Читать дальше →
Всего голосов 108: ↑99 и ↓9+90
Комментарии33

За один проход

Время на прочтение7 мин
Количество просмотров156K
Среди задач по программированию часто попадаются такие: дана последовательность однотипных элементов (обычно это числа), требуется за один проход по ней найти какую-нибудь характеристику (среднее квадратическое отклонение, количество минимальных элементов, непрерывный участок с наибольшей суммой...) Дополнительное ограничение — последовательность может быть очень длинной, и в память не поместится. Других ограничений на элементы последовательности, обычно, не накладывается.
С этими задачами всё, более или менее, понятно: нужно найти то, что на мехмате МГУ называют «индуктивным расширением» искомой функции, и реализовать её вычисление. Если найти не удалось (требуемый объём памяти слишком велик), то задача не решается.
Но попадаются и другие задачи. В них есть дополнительные ограничения на элементы последовательности в совокупности, и эти ограничения приходится существенно использовать для решения (и проверять их не надо). Простейшая такая задача выглядит так:

Задача 1. В последовательности записаны целые числа от 1 до N в произвольном порядке, но одно из чисел пропущено (остальные встречаются ровно по одному разу). N заранее неизвестно. Определить пропущенное число

Решение очевидно: просматриваем числа, находим их количество K и сумму S. По условию, N=K+1, значит, сумма чисел от 1 до N будет равна (K+1)*(K+2)/2, и пропущенное число равно (K+1)*(K+2)/2-S. Если вы почему-то боитесь переполнений, то работайте с беззнаковыми числами (там переполнения не страшны — но будьте осторожны при вычислении (K+1)*(K+2)/2 :) ), или вместо суммы ищите XOR всех чисел.
Другие задачи
Всего голосов 73: ↑72 и ↓1+71
Комментарии56

ObjectManager в API Яндекс.Карт. Как быстро отрисовать 10 000 меток на карте и не затормозить всё вокруг

Время на прочтение10 мин
Количество просмотров111K
Перед разработчикам, которые используют API Яндекс.Карт, довольно часто встаёт задача отобразить много объектов на карте. Действительно много — порядка 10 000. Причем эта задача актуальна и для нас самих — попробуйте поискать аптеки на Яндексе. На первый взгляд кажется: «А в чем собственно проблема? Бери да показывай». Но пока не начнешь этим заниматься, не поймешь, что проблем на самом деле целый вагон.



Вопросы по большому количеству меток с завидной регулярностью поступают в наш клуб и техподдержку. Кто все эти люди? Кому может быть интересно показать на карте больше 10 меток? В этом посте я подробно рассмотрю весь вагон проблем и расскажу, как в API появились инструменты, помогающие разработчикам оптимально показать большое количество объектов на карте.
Читать дальше →
Всего голосов 93: ↑89 и ↓4+85
Комментарии85

Медиаплеер для переводчиков — feci quod potui

Время на прочтение7 мин
Количество просмотров2.5K

Дисклеймер


Описание надстройки, приведенное ниже, уже сделано мною на нашем сайте, но там статья написана для пользователей. Здесь же мне хотелось бы передать идею кому-нибудь из разработчиков взрослого ПО, который на наш сайт в жизни не зайдет. И цель, и аудитория совсем другие, поэтому ну никак — по моему, конечно же, скромному мнению — не тянет это на тупой перепост. Вот. Кто думает так же — добро пожаловать под кат.
Читать дальше →
Всего голосов 2: ↑2 и ↓0+2
Комментарии3

Управление микроклиматом на Arduino

Время на прочтение4 мин
Количество просмотров79K
В последнее время на Хабре появилась масса постов про построение мониторов качества воздуха. При этом ни одной попытки управления качеством воздуха не нашел, а ведь как только мы переходим от пассивного наблюдения к активному управлению — возникает масса интересных проблем и решений. Своими скромными наработками в этой области и хочу поделиться.

Итак, дано: Гараж неотапливаемый, не утепленный, кирпичный двухэтажный с огромной влажностью внутри, от которой гниет деревянное межэтажное перекрытие, на стенах зимой снежная шуба и прочая неприятная ржавчина.

Задача: «Осушить» гараж.

Решение. Не будем вдаваться в подробности капиллярного подсоса воды бетоном и прочих источников появления влаги в воздухе гаража — сосредоточимся на том, что мы можем сделать с уже появившейся влагой. Если не рассматривать слишком дорогую для гаража технику типа осушителей, то единственный способ, который я нашел, это вытеснять внутренний сырой воздух более сухим наружным при помощи простого вентилятора.

Arduino, два датчика DHT22 изнутри и снаружи, релейный модуль на вентилятор и начинаются действительно интересные проблемы.
Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Комментарии32

Слушаем Pandora.com с использованием бесплатного VPN

Время на прочтение2 мин
Количество просмотров4.7K
Наверняка многие хабражители уже давно распробовали на вкус замечательный музыкальный сервис, под названием Pandora.com. Наверняка многие из них, проживающие за пределами США, ни раз видели сообщение о «неверном» IP, забыв вовремя заплатить за VPN. Сегодня я попытаюсь рассказать, как избежать таких ситуаций раз и навсегда.
Читать дальше →
Всего голосов 42: ↑34 и ↓8+26
Комментарии75

Как сохранить здоровье, работая за компьютером?

Время на прочтение8 мин
Количество просмотров106K
Иллюстрация

Вы заботитесь о своем здоровье?


Лично для меня возможность свободно организовывать рабочее время стала главным доводом «за», когда я решил оставить офис и присоединиться к фрилансерам. За годы, проведенные в компании, я добился многих целей, которые были мне интересны, заплатив за это своим зрением, осанкой и истраченным временем. Основным уроком, который я из этого вынес, стало то, что успех, достигнутый за счет подорванного здоровья, не стоит потраченных на него усилий. Перенеся большую часть своей работы домой, я поставил задачу организовать время, проводимое за компьютером, так, чтобы снизить его воздействие на здоровье до минимума.

Что оказалось непросто. В данной статье я расскажу о моем способе организации «правильного» рабочего дня, о том, что следует для этого делать, и где лежат грабли, на которые нельзя наступать. Тема «компьютер и здоровье» уже несколько раз поднималась на Хабре, поэтому я задумывал этот пост как статью, которую можно добавить в закладки и использовать в качестве «руководства к действию».

Читать дальше →
Всего голосов 272: ↑259 и ↓13+246
Комментарии139

Пишем простой плеер под Windows Phone

Время на прочтение7 мин
Количество просмотров13K
Данная статья демонстрирует, как написать простейший музыкальный плеер под Windows Phone.

Основные возможности: плеер работает с плейлистом, можно управлять музыкой (переключать мелодии), плеер может играть в фоне.

Автор в первую очередь руководствовался статьей, в которой не были освещены некоторые элементарные, но не всегда очевидные, аспекты написания плеера. Они и разобраны в данной статье.
Читать дальше →
Всего голосов 29: ↑22 и ↓7+15
Комментарии17

Собственная радиостанция Spreaker.com

Время на прочтение2 мин
Количество просмотров2.4K


Наверняка вы хотя бы раз задумывались о том что бы вести свое шоу на радио, сидеть в мягком кресле в студии и комментировать события, ставить любимую музыку и принимать звонки благодарных слушателей. В свое время я даже думал о том что бы собрать что нибудь вроде радио точки, и вещать на ближайшую округу, однако как всегда интернет нас опередил.
Читать дальше →
Всего голосов 49: ↑46 и ↓3+43
Комментарии12

Путин объяснил позицию ФСБ по контролю Skype

Время на прочтение1 мин
Количество просмотров4.7K
Комментируя заявления ФСБ о возможности блокировки трафика Skype, а также о введении цензуры в интернете накануне президентских выборов, Владимир Путин ответил: «Знаете, как в шутку спрашивали и отвечали, чем ЦК отличается от ЧК: «ЦК — цыкает, а ЧК — чикает». Мы ничего чикать не собираемся, — пообещал Путин, но добавил, — Правда, основные ресурсы находятся не в наших руках, а за бугром, вернее, за океаном. Именно это вызывает озабоченность некоторых спецслужб, имею в виду возможность использования этих ресурсов в интересах, противоречащим интересам общества и государства. Что касается моего личного мнения, то я не считаю возможным что-либо ограничивать».
Всего голосов 55: ↑38 и ↓17+21
Комментарии111

Пару слов о распознавании образов

Время на прочтение13 мин
Количество просмотров311K
Давно хотел написать общую статью, содержащую в себе самые основы Image Recognition, некий гайд по базовым методам, рассказывающий, когда их применять, какие задачи они решают, что возможно сделать вечером на коленке, а о чём лучше и не думать, не имея команды человек в 20.
image

Какие-то статьи по Optical Recognition я пишу давненько, так что пару раз в месяц мне пишут различные люди с вопросами по этой тематике. Иногда создаётся ощущение, что живёшь с ними в разных мирах. С одной стороны понимаешь, что человек скорее всего профессионал в смежной теме, но в методах оптического распознавания знает очень мало. И самое обидное, что он пытается применить метод из близрасположенной области знаний, который логичен, но в Image Recognition полностью не работает, но не понимает этого и сильно обижается, если ему начать рассказывать что-нибудь с самых основ. А учитывая, что рассказывать с основ — много времени, которого часто нет, становится всё ещё печальнее.
Распознать
Всего голосов 130: ↑129 и ↓1+128
Комментарии52

Изобретаем JPEG

Время на прочтение28 мин
Количество просмотров174K

Вы правильно поняли из названия, что это не совсем обычное описание алгоритма JPEG (формат файла я подробно описывал в статье «Декодирование JPEG для чайников»). В первую очередь, выбранный способ подачи материала предполагает, что мы ничего не знаем не только о JPEG, но и о преобразовании Фурье, и кодировании Хаффмана. И вообще, мало что помним из лекций. Просто взяли картинку и стали думать как же ее можно сжать. Поэтому я попытался доступно выразить только суть, но при которой у читателя будет выработано достаточно глубокое и, главное, интуитивное понимание алгоритма. Формулы и математические выкладки — по самому минимуму, только те, которые важны для понимания происходящего.

Знание алгоритма JPEG очень полезно не только для сжатия изображений. В нем используется теория из цифровой обработки сигналов, математического анализа, линейной алгебры, теории информации, в частности, преобразование Фурье, кодирование без потерь и др. Поэтому полученные знания могут пригодиться где угодно.

Если есть желание, то предлагаю пройти те же этапы самостоятельно параллельно со статьей. Проверить, насколько приведенные рассуждения подходят для разных изображений, попытаться внести свои модификации в алгоритм. Это очень интересно. В качестве инструмента могу порекомендовать замечательную связку Python + NumPy + Matplotlib + PIL(Pillow). Почти вся моя работа (в т. ч. графики и анимация), была произведена с помощью них.

Внимание, трафик! Много иллюстраций, графиков и анимаций (~ 10Мб). По иронии судьбы, в статье про JPEG всего 2 изображения с этим форматом из полусотни.
Читать дальше →
Всего голосов 356: ↑354 и ↓2+352
Комментарии70

Аренда телефона с безлимитным интернетом в Гонконге и Сингапуре

Время на прочтение3 мин
Количество просмотров17K

В путешествиях, особенно бизнес-поездках, важно быть на связи. Но есть один важный недостаток — грабительский роуминг отечественных операторов. Именно поэтому в поездках многие выбирают место для обеда по наклейкам «Wi-Fi here», периодически забегают в отель что бы проверить, не пришло ли важное письмо. И если в тарифах для некоторых стран Европы еще можно встретить более-менее здравые расценки. То например в Азии или Америке уже далеко не все так прекрасно.

Планируя в октябре прошлого года очередную поездку в Гонконг, я случайно наткнулся на компанию сдающую телефоны с безлимитным интернетом в аренду.
Узнать о безлимитном интернете в Азии
Всего голосов 47: ↑39 и ↓8+31
Комментарии37

MSP430, учимся программировать и отлаживать железо

Время на прочтение6 мин
Количество просмотров117K

Сегодня, уважаемый хабрапользователь, я постараюсь заполнить некоторый пробел, образовавшийся в статьях об MSP430, а именно азы и подход к программированию устройств на данном микроконтроллере.
Эта статья прежде всего направлена на новичков, поскольку я буду рассматривать ряд достаточно простых задач, таких как работа с SPI, мигание лампочкой и отладка в proteus.
Читать дальше →
Всего голосов 41: ↑37 и ↓4+33
Комментарии14

C# для начинающих. Лекция 1 — Введение

Время на прочтение1 мин
Количество просмотров85K
Топик опубликован по просьбе itdevelop, так что он будет отвечать на все ваши вопросы, а также плюсы кидать на его аккаунт. Спасибо за понимание.

Это первая лекция большого видео-курса для тех, кто хочет научиться программировать на языке С#. Поскольку это — вводная лекция, то хочу сразу предупредить, что сам процесс программирования начнется только со второй лекции. Здесь же я хочу вас познакомить с .NET Framework, чем удобна эта платформа, и как происходит перевод написанного вами кода на C# в код, понятный операционной системе.
Читать дальше →
Всего голосов 94: ↑62 и ↓32+30
Комментарии49

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность