Pull to refresh
53
0
Корзунов Антон @kashey

javascript, webgl, maps, react, орфография(нет)

Send message

Введение в PHP 7: Что добавлено, что убрано

Reading time12 min
Views302K
Одним из самых значительных событий, произошедших в мире PHP в 2015 году, стал выпуск PHP 7. Целых 10 лет отделяют его от выпуска первого релиза PHP с номером 5. С увеличением первой цифры в номере версии, в PHP 7 появилась масса новшеств, увеличилась и скорость работы.
Однако в седьмой версии была убрана устаревшая функциональность, что привело к некоторым проблемам с обратной совместимостью, затруднив перевод старых приложений на новую версию. Эта статья может послужить вам кратким руководством, если вы планируете написание новых или перевод своих существующих приложений на PHP 7.
Читать дальше →

Увлекательное программирование: изучаем Minecraft

Reading time5 min
Views62K
Добрый день, уважаемые читатели!

У нас выходит второй тираж замечательной книги об игровом мире Minecraft. Мы уже публиковали о ней отдельный пост.



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

Наконец, если вас заинтересует перевод ознакомительной публикации Уолтера Хиггса о ScriptCraft, на которую ссылается автор в самом конце статьи — пишите, обсудим :)

Читать дальше →

Наш опыт использования фотограмметрии при разработке компьютерной игры (Часть 1)

Reading time6 min
Views31K
image

В данной статье будет рассказано о фотограмметрии и опыте её использовании при создании контента для трёхмерной компьютерной игры во вселенной Half-Life, разработкой которой мы занимаемся уже не первый год.
Читать дальше →

Calltracking в Minecraft или как быстро сделать трехмерный UI

Reading time5 min
Views25K
Пару месяцев назад назад я показал детям Minecraft, а чуть позже — купил им книгу по программированию в MineCraft. Правда, детям купил, чес-слово. Ну сам взял полистить, ну написал пару скриптов…

На этом история и закочнилась бы, но на днях мне довелось поучаствовать в хакатоне одного calltracking сервиса. Для тех, кто не в курсе, calltracking — эта такая штука, которая предоставляет статистику звонков. И что важно для нашей истории — эта статистика доступна по API.

В этот момент отдельные части сложились в цельную картину и я подумал — о! статистика звонков в Minecraft.



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

А если серьезно — то кто сказал что интерфейсы должны быть двумерными?
И кто сказал что трехмерный интерфейс это долго и сложно?
Вся затея у меня заняла 3 часа (57 строк на питоне), учитывая, что первые полчаса я разбирался как на python парсить джейсон.

Под катом — вся история целиком, видео с результатом и бонус для дочитавших до конца — все 3 часа разработки в 3 минутном time-lapse видео.
Читать дальше →

Мой опыт обучения детей 8-10 лет программированию на Scratch

Reading time8 min
Views274K
Давно собирался написать об этом, но, модная болезнь прокрастинация брала вверх…

Знакомство со Scratch


Когда сыну Артёму исполнилось 7 лет и он пошел в школу, мы ему подарили компьютер, чтобы он не отставал от жизни. Несколько месяцев он играл в разные игры, наслаждался, развлекался и т.п. Мне стало немного обидно, что такой дорогой и сложный прибор как компьютер используется только для развлечений, и я решил придумать, как использовать компьютер для обучения. А чему можно научиться на компьютере? Конечно, программированию! Тут я и вбил в «Яндекс» заветную фразу «обучение детей программированию».
Читать дальше →

Нейрореволюция в головах и сёлах

Reading time8 min
Views94K
В последнее время всё чаще и чаще слышишь мнение, что сейчас происходит технологическая революция. Бытует мнение, что мир стремительно меняется.



На мой взгляд такое и правда происходит. И одна из главных движущих сил — новые алгоритмы обучения, позволяющие обрабатывать большие объёмы информации. Современные разработки в области компьютерного зрения и алгоритмов машинного обучения могут быстро принимать решения с точностью не хуже профессионалов.

Я работаю в области связанной с анализом изображений. Это одна из областей которую новые идеи затронули сильнее всего. Одна из таких идей — свёрточные нейронные сети. Четыре года назад с их помощью впервые начали выигрывать конкурсы по обработке изображений. Победы не остались незамеченными. Нейронными сетями, до тех пор стоящими на вторых ролях, стали заниматься и пользоваться десятки тысяч последователей. В результате, полтора-два года назад начался бум, породивший множество идей, алгоритмов, статей.

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

Кто лишится в ближайшие лет десять работы, а у кого будут новые перспективные вакансии.
Читать дальше →

Восстановление расфокусированных и смазанных изображений. Практика

Reading time10 min
Views358K
Не так давно я опубликовал на хабре первую часть статьи по восстановлению расфокусированных и смазанных изображений, где описывалась теоретическая часть. Эта тема, судя по комментариям, вызвала немало интереса и я решил продолжить это направление и показать вам какие же проблемы появляются при практической реализации казалось бы простых формул.

В дополнение к этому я написал демонстрационную программу, в которой реализованы основные алгоритмы по устранению расфокусировки и смаза. Программа выложена на GitHub вместе с исходниками и дистрибутивами.

Ниже показан результат обработки реального размытого изображения (не с синтетическим размытием). Исходное изображение было получено камерой Canon 500D с объективом EF 85mm/1.8. Фокусировка была выставлена вручную, чтобы получить размытие. Как видно, текст совершенно не читается, лишь угадывается диалоговое окно Windows 7.



И вот результат обработки:



Практически весь текст читается достаточно хорошо, хотя и появились некоторые характерные искажения.

Под катом подробное описание проблем деконволюции, способов их решения, а также множество примеров и сравнений. Осторожно, много картинок!
Читать дальше →

Список ресурсов по машинному обучению. Часть 1

Reading time3 min
Views30K


Ранее мы говорили о разработке системы квантовой связи и о том, как из простых студентов готовят продвинутых программистов. Сегодня мы решилие еще раз (1, 2) взглянуть в сторону темы машинного обучения и привести адаптированную (источник) подборку полезных материалов, обсуждавшихся на Stack Overflow и Stack Exchange.
Читать дальше →

Почему я больше не использую MVC-фреймворки

Reading time16 min
Views133K


Уважаемые хабравчане.

Поскольку дискуссия вокруг статьи идет весьма активно, Жан-Жак Дюбре (он читает комментарии) решил организовать чаты в gitter.

Вы можете пообщаться с ним лично в следующих чатах:
https://gitter.im/jdubray/sam
https://gitter.im/jdubray/sam-examples
https://gitter.im/jdubray/sam-architecture

Также автор статьи разместил примеры кода здесь: https://bitbucket.org/snippets/jdubray/

По поводу кода он оставил следующий комментарий:
I don't code for a living, so I am not the best developer, but people can get a sense of how the pattern works and that you can do the exact same thing as React + Redux + Relay with plain JavaScript functions, no need for all these bloated library (and of course you don't need GraphQL).
Читать дальше →

Навигация квадрокоптера с использованием монокулярного зрения

Reading time5 min
Views43K
Сейчас для многих компьютерное зрение не является тайной за семью замками. Однако новые алгоритмы и подходы не перестают впечатлять. Одним из таких направлений является монокулярное зрение, в особенности SLAM. О том, как мы решали задачу навигации квадрокоптера, оснащенного единственной камерой, и пойдет речь в этой статье.


Читать дальше →

Баг с GPU и Canvas в Google Chrome под Windows

Reading time3 min
Views12K
На днях работал над необычной и от того интересной задачей. Выяснилось, что у наших менеджеров на определенной странице постоянно возникает сообщение “Опаньки” в Google Chrome. Скажу сразу, страница эта весьма насыщенная, и содержит в себе достаточно тяжеловесные компоненты как фотогалерея, карта и панорама. У меня никак не получалось воспроизвести данный баг, и я собираюсь рассказать о том что было сделано для того, чтобы найти и обезвредить его.
Читать дальше →

Эволюция структур данных в Яндекс.Метрике

Reading time17 min
Views45K
Яндекс.Метрика сегодня это не только система веб-аналитики, но и AppMetrica — система аналитики для приложений. На входе в Метрику мы имеем поток данных — событий, происходящих на сайтах или в приложениях. Наша задача — обработать эти данные и представить их в подходящем для анализа виде.



Но обработка данных — это не проблема. Проблема в том, как и в каком виде сохранять результаты обработки, чтобы с ними можно было удобно работать. В процессе разработки нам приходилось несколько раз полностью менять подход к организации хранения данных. Мы начинали с таблиц MyISAM, использовали LSM-деревья и в конце концов пришли к column-oriented базе данных. В этой статье я хочу рассказать, что нас вынуждало это делать.

Яндекс.Метрика работает с 2008 года — более семи лет. Каждый раз изменение подхода к хранению данных было обусловлено тем, что то или иное решение работало слишком плохо — с недостаточным запасом по производительности, недостаточно надёжно и с большим количеством проблем при эксплуатации, использовало слишком много вычислительных ресурсов, или же просто не позволяло нам реализовать то, что мы хотим.
Читать дальше →

Представления (VIEW) в MySQL

Reading time10 min
Views482K
В комментариях Хабра упоминались вопросы по использованию представлений. Данный топик является обзором представлений, появившихся в MySQL версии 5.0. В нем рассмотрены вопросы создания, преимущества и ограничения представлений.

Что такое представление?


Представление (VIEW) — объект базы данных, являющийся результатом выполнения запроса к базе данных, определенного с помощью оператора SELECT, в момент обращения к представлению.

Представления иногда называют «виртуальными таблицами». Такое название связано с тем, что представление доступно для пользователя как таблица, но само оно не содержит данных, а извлекает их из таблиц в момент обращения к нему. Если данные изменены в базовой таблице, то пользователь получит актуальные данные при обращении к представлению, использующему данную таблицу; кэширования результатов выборки из таблицы при работе представлений не производится. При этом, механизм кэширования запросов (query cache) работает на уровне запросов пользователя безотносительно к тому, обращается ли пользователь к таблицам или представлениям.
Читать дальше →

Основы стереозрения

Reading time10 min
Views121K
В данной статье содержатся базовые сведения о математическом аппарате, используемом в стерео зрении. Идея ее написания появилась после того как я начал работать с методами стерео зрения, в частности использовать алгоритмы реализованные в OpenCV. Эти алгоритмы зачастую ссылаются на различные понятия, такие как "фундаментальная матрица", "эпиполярная геометрия", "триангуляция". Существуют очень хорошие книжки по компьютерному зрению, в которых описывается, в том числе и стерео зрение и все необходимые понятия, но в них, нередко, бывает представлено слишком много информации для новичка. Здесь же, в краткой форме изложены базовые сведения о том, как работает стерео зрение и основные связанные с ним необходимые понятия:
  • проективная геометрия и однородные координаты
  • модель камеры
  • эпиполярная геометрия (epiporal geomerty), фундаментальная и существенная матрицы (fundamental matrix, essential matrix)
  • триангуляция стереопары точек
  • карта глубины(depth map), карта смещений(disparity map) и идея, лежащая в основе ее вычисления
Практически весь материал статьи основан на книге "Multiple View Geometry in Computer Vision" by Hartley, R. I. and Zisserman, A., а раздел про построение карты глубины описан на основе материала из "Learning OpenCV" by Gary Bradski, Adrian Kaehler.

Для понимания содержимого статьи достаточно иметь общее представление об аналитической геометрии и линейной алгебре: знать, что такое матрица, вектор, скалярное и векторное произведение.

Читать дальше →

Виртуальный квадрокоптер на Unity + OpenCV (Часть 3)

Reading time10 min
Views21K
КПДВ

Всем привет!

Сегодня я хотел бы продолжить серию о том, как подружить Unity, C++ и OpenCV. А также, как получить виртуальную среду для тестирования алгоритмов компьютерного зрения и навигации дронов на основе Unity. В предыдущих статьях я рассказывал о том, как сделать виртуальный квадрокоптер в Unity и как подключить C++ плагин, передать туда изображение с виртуальной камеры и обработать его посредством OpenCV. В этой статье я расскажу как сделать из двух виртуальных камер на квадрокоптере стереопару и как получить карту смещений (disparity map), которую можно использовать для оценки глубины пикселей изображения.
Читать дальше →

Let's Encrypt выходит в публичную бету: HTTPS всюду, каждому, отныне и навсегда бесплатно

Reading time3 min
Views67K
Let's Encrypt

Let's Encrypt — это некоммерческая инициатива, предоставляющая бесплатный, автоматизированный и открытый CA (certificate authority — центр сертификации), созданный ISRG на благо общества:

  • бесплатно: владелец всякого доменного имени может воспользоваться Let's Encrypt и получить доверенный (читать как «признаётся любым современным браузером») TLS-сертификат (TLS — наследник SSL) совершенно бесплатно;
  • автоматизированно: Let's Encrypt предоставляет бесплатное и свободное программное обеспечение (клиент), которое, будучи настроенным на веб-сервере, может полностью автоматически запрашивать безвозмездно предоставляемые сертификаты Let’s Encrypt, автоматически конфигурировать и обновлять их;
  • безопасно: Let’s Encrypt строится как платформа для продвижения наилучших практик безопасности TLS как на стороне центра сертификации (CA), так и на стороне веб-сайтов, помогая администраторам должным образом настраивать веб-серверы;
  • прозрачно: информация о выпуске и отзыве каждого сертификата Let's Encrypt доступна вполне и публично так, что любой желающий изучить её сможет это сделать;
  • свободно: протоколы взаимодействия со CA, позволяющие автоматизировать процессы выпуска и обновления сертификатов, будут опубликованы как открытый стандарт для максимального внедрения;
  • кооперативно: как и любой протокол, лежащий в основе Интернета и Всемирной паутины, Let’s Encrypt является совместным, неподконтрольным какой-либо конкретной организации некоммерческим проектом созданным исключительно для того, чтобы принести пользу обществу.

Читать дальше →

Подделываем вашу подпись при помощи шарнирного механизма. Теорема Кемпе

Reading time5 min
Views223K
В этом посте я расскажу про программу, которая подделывает любую подпись при помощи шарнирного механизма. Программа основана на теореме Кемпе, доказанной в середине 19-го века.

Читать дальше →

Machine Learning. Курс от Яндекса для тех, кто хочет провести новогодние каникулы с пользой

Reading time8 min
Views266K
Новогодние каникулы – хорошее время не только для отдыха, но и для самообразования. Можно отвлечься от повседневных задач и посвятить несколько дней тому, чтобы научиться чему-нибудь новому, что будет помогать вам весь год (а может и не один). Поэтому мы решили в эти выходные опубликовать серию постов с лекциями курсов первого семестра Школы анализа данных.

Сегодня — о самом важном. Современный анализ данных без него представить невозможно. В рамках курса рассматриваются основные задачи обучения по прецедентам: классификация, кластеризация, регрессия, понижение размерности. Изучаются методы их решения, как классические, так и новые, созданные за последние 10–15 лет. Упор делается на глубокое понимание математических основ, взаимосвязей, достоинств и ограничений рассматриваемых методов. Отдельные теоремы приводятся с доказательствами.



Читает курс лекций Константин Вячеславович Воронцов, старший научный сотрудник Вычислительного центра РАН. Заместитель директора по науке ЗАО «Форексис». Заместитель заведующего кафедрой «Интеллектуальные системы» ФУПМ МФТИ. Доцент кафедры «Математические методы прогнозирования» ВМиК МГУ. Эксперт компании «Яндекс». Доктор физико-математических наук.
Содержание и видео всех лекций курса

Курс по машинному обучению на Coursera от Яндекса и ВШЭ

Reading time4 min
Views118K
Когда-то мы публиковали на Хабре курс по машинному обучению от Константина Воронцова из Школы анализа данных. Нам тогда предлагали сделать из этого полноценный курс с домашними заданиями и разместить его на Курсере.

И сегодня мы хотим сказать, что наконец можем выполнить все эти пожелания. В январе на Курсере пройдёт курс, организованный совместно Яндексом (Школой анализа данных) и ВШЭ. Записаться на него можно уже сейчас: www.coursera.org/learn/introduction-machine-learning.


Сооснователь Coursera Дафна Коллер в офисе Яндекса

Курс продлится семь недель. Это означает, что по сравнению с ШАДовским двухсеместровым курсом он будет заметно упрощен. Однако в эти семь недель мы попытались вместить только то, что точно пригодится на практике, и какие-то базовые вещи, которые нельзя не знать. В итоге получился идеальный русскоязычный курс для первого знакомства с машинным обучением.

Кроме того, мы верим, что после прохождения курса у человека должна остаться не только теория в голове, но и скилл «в пальцах». Поэтому все практические задания построены вокруг использования библиотеки scikit-learn (Python). Получается, что после прохождения нашего курса человек сможет сам решать задачи анализа данных, и ему будет проще развиваться дальше.

Под катом можно прочитать подробнее обо всех авторах курса и узнать его примерное содержание.
Читать дальше →

Машинное обучение, предсказание будущего и анализ причин успеха в электронной коммерции

Reading time10 min
Views28K


Мы продолжаем публиковать материалы с летней конференции Bitrix Summer Fest. На этот раз хотим поделиться выступлением Александра Сербула, посвящённым текущим трендам в сфере машинного обучения, доступным методикам, а также практическим способам использования математики для увеличения конверсии и удержания клиентов.

Материал ни в коем случае не претендует быть формальным и научно строгим. Воспринимайте его как лёгкое, весёлое, полезное и ознакомительное «чтиво».
Читать дальше →

Information

Rating
Does not participate
Location
Sydney, New South Wales, Австралия
Date of birth
Registered
Activity