Pull to refresh
1
0
Виталий Ф. @FuN_ViT

программист, синьор-помидор :)

Send message

«А что если», Event Sourcing

Reading time4 min
Views71K
Наверное, про Event Sourcing слышал каждый, кто хоть раз пересекался с темой CQRS и DDD. Это подход хранения данных, при котором вместо конечного результата храниться череда записей о событиях происшедших с некоторой сущностью. На сайте Мартина Фаулера есть подробное описание, а мы же остановимся на фундаменте, основных «печенюшках», а также проблемах в его применении.
Читать дальше →

Что такое свёрточная нейронная сеть

Reading time13 min
Views272K


Введение


Свёрточные нейронные сети (СНС). Звучит как странное сочетание биологии и математики с примесью информатики, но как бы оно не звучало, эти сети — одни из самых влиятельных инноваций в области компьютерного зрения. Впервые нейронные сети привлекли всеобщее внимание в 2012 году, когда Алекс Крижевски благодаря им выиграл конкурс ImageNet (грубо говоря, это ежегодная олимпиада по машинному зрению), снизив рекорд ошибок классификации с 26% до 15%, что тогда стало прорывом. Сегодня глубинное обучения лежит в основе услуг многих компаний: Facebook использует нейронные сети для алгоритмов автоматического проставления тегов, Google — для поиска среди фотографий пользователя, Amazon — для генерации рекомендаций товаров, Pinterest — для персонализации домашней страницы пользователя, а Instagram — для поисковой инфраструктуры.


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


Задача


Задача классификации изображений — это приём начального изображения и вывод его класса (кошка, собака и т.д.) или группы вероятных классов, которая лучше всего характеризует изображение. Для людей это один из первых навыков, который они начинают осваивать с рождения.


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

DUMP-2016: видео всех докладов в одном посте. Бесплатно. Без СМС

Reading time9 min
Views23K
8 апреля в Екатеринбурге прошла конференция DUMP. Под катом — видео 60-и докладов про frontend, serverside, devops, mobile, дизайн, управление разработкой и тестирование, плюс все презентации и фотографии с прошедшей конференции. А вот короткий отчетный ролик про DUMP-2016.


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

ESP8266 с чего начать или первый опыт

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

Почему я это решил написать? Всё просто: я убил 3 недели времени на то, чтобы разобраться с чего начинать и как это работает. Кроме того, попробую собрать небольшой каталог ссылок по работе с ESP8266. Надеюсь, что эта информация поможет сэкономить вам хоть толику времени.

image

Итак, приступим!
Читать дальше →

Пишем замену find(1) на golang под Linux

Reading time4 min
Views15K
Для одной внутренней утилиты мне понадобилось написать сканирование изменений в директории, по аналогии с утилитой find, и я столкнулся с неожиданной вещью: стандартный Open()+Readdir()+Close() в go очень медленным по сравнению с тем, как работает linux'овая утилита find. На картинке можно видеть strace этой утилиты. Можно видеть, что она делает какие-то очень странные системные вызовы, и в этих системных вызовах мы и попытаемся разобраться и написать аналог find на go, который будет работать только под Linux, но зато со сравнимой скоростью.

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

Как мы разогнали мобильную Lenta.ru до скорости света

Reading time9 min
Views42K
image

AMP — наверняка, вы уже слышали об этой технологии, продвигаемой Google. Казалось бы, еще одна модная технология для хипстеров, о которой скоро все забудут. Однако, в реальности эта фича уже работает в продакшне значительного числа новостных сайтов, среди которых такие гиганты, как the Guardian, Times, Washington Post, и прочая, прочая, прочая. Краткий рассказ о плюшках AMP уже был на страницах “Хабра”, а я хотел бы чуть более подробно сфокусироваться на том, как внедрять это в проект, и какой профит в действительности можно получить.
Читать дальше →

5 советов по подготовке вашего приложения к мультиоконному режиму в Android N

Reading time6 min
Views11K

И вам даже не понадобятся API из Android N!


Если вы просматривали недавно видеоролик, озаглавленный «Что нового в Android N», то вы, возможно, успели уже задуматься о поддержке мультиоконности.



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

Оказывается, их не так уж и много. Несколько XML атрибутов, указывающих, собираетесь ли вы вообще поддерживать мультиоконность, да несколько методов Activity, позволяющих понять, работает ли ваше приложение сейчас в режиме мультиоконности. И где тут магия? Магия вообще-то была здесь всегда.
Читать дальше →

Дуглас Энгельбарт: «The Mother of All Demos». Часть 1

Reading time10 min
Views13K


9 декабря 1968 года в Сан-Франциско Дуглас Энгельбарт провел легендарную демонстрацию. Энгельбарт продемонстрировал несколько экспериментальных технологий, которые впоследствии стали общеупотребительными, в том числе первую компьютерную мышь, интерактивный текст, гипертекст, электронную почту, технологию видеоконференции.

Наряду с мыслями Вэнивара Буша (Как мы можем мыслить /As We May Think) и Джозефа «Lick» Ликлайдера («Интергалактическая компьютерная сеть» и «Симбиоз человека и компьютера»), мысли Энгельбарта легли в основу современных информационных технологий и интерфейсов.

Знать первоисточники — важно.
Пускай теперь будет перевод на русский язык.


Под катом транскрипт первых 15 минут (из 100). За перевод спасибо Щекотовой Яне.
(Кто готов помочь с переводом дальнейших кусков, пишите в личку.)

Проблема с доступом и интересный ключ реестра Windows

Reading time3 min
Views37K
Цель данной статьи — рассказать об интересном ключе реестра Windows:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\CrashOnAuditFail

Пару лет назад он подарил мне несколько часов напряженного траблшутинга проблем доступа к общим папкам и, так как ни тогда, ни сейчас я не вижу объяснения этой проблемы в поиске, я решил его описать. Если вам интересно, как может получиться, что права доступа у вас и вашего коллеги есть, но получить доступ к общей папке может только один из вас, то добро пожаловать под кат.
Читать дальше →

Ваше спокойствие — в руках автоматики. Сигнализация при появлении дыма и протечке воды на базе Z-Wave

Reading time9 min
Views7.8K
Сегодня, когда темп жизни явно вышел за все разумные рамки, наиболее ценными ресурсами часто являются время и нервы. Думаем, что у многих читателей были не самые приятные ситуации, связанные с непредвиденными событиями, которые стоили и того и другого, а с учетом нарушенных планов, могли существенно повлиять и на кошелек. Поскольку все предусмотреть и исключить невозможно, стоит постараться максимально сократить негативное влияние.

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



Подобные задачи организации пожарной сигнализации, обнаружения протечки воды и других экстренных ситуаций сегодня возникают как в частных домах, так и квартирах. Конечно, нельзя считать данные решения обязательными, однако в определенных ситуациях без них сложно обойтись. Например, если речь идет о часто остающихся без присмотра объектах или престарелых родственниках. Отметим, что в данном случае речь не идет о сертифицированном соответствующими службами решении, а исключительно об автономной персональной системе. Впрочем, в некоторых случаях возможна ее интеграция в решения более высокого уровня, например общих по поселку или многоквартирному дому.
Читать дальше →

ESP8266 прошивка, программирование в Arduino IDE

Reading time4 min
Views548K
И снова привет Хабр. Этот материал является продолжением моей предыдущей статьи — ESP8266 и Arduino, подключение, распиновка, и, должен сказать, что они взаимосвязаны. Я не буду затрагивать темы, которые уже раскрыты.

А сегодня, я поведаю, как же программировать ESP8266 при помощи Arduino IDE, так же прошивать другие прошивки, например NodeMcu… Вообщем, этот материал не ограничивается только одной темой Ардуино.

image

Тема ESP8266 — довольно таки непростая. Но, если работать с этими Wi-Fi модулями в среде разработки Arduino IDE — порог вхождения опускается до приемлемого для обычного ардуинщика уровня. Да и не только ардуинщика, а любого человека, у которого есть желание сварганить что-то по теме IoT(интернет вещей), причём не затрачивая много времени читая документацию для микросхемы и изучение API для этих модулей.



Данное видео, полностью дублирует материал, представленный в статье ниже.
Читать дальше...

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

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


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

Критическая уязвимость библиотеки glibc позволяет осуществлять удаленное выполнение кода

Reading time3 min
Views29K


Исследователи Google обнаружили критическую уязвимость в библиотеке glibc (GNU C Library). В функции getaddrinfo(), которая отвечает за разбор доменных имен, происходит переполнение буфера — ошибка позволяет злоумышленникам осуществлять удаленное выполнение кода.

Эксплуатация уязвимости, получившей обозначение CVE-2015-7547, возможна в случаях, когда уязвимые устройства или приложения отправляют запросы контролируемым хакерами доменам и серверам, а также в случае проведения атаки типа man-in-the-middle.
Читать дальше →

Алексей Рагозин и Артём Панасюк о распределённом нагрузочном тестировании на jug.msk.ru

Reading time3 min
Views6.7K
На очередной встрече jug.msk.ru, прошедшей 20 января 2016 года традиционно в офисе компании КРОК, Алексей Рагозин и Артём Панасюк представили доклад «Распределённое нагрузочное тестирование на Java». Краткий рассказ с подробностями встречи далее.


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

Сетевое программирование для разработчиков игр. Часть 4: Надежность, упорядочивание и избежание перегрузок поверх UDP

Reading time13 min
Views24K
От переводчика: У меня возникла необходимость разобраться с работой UDP-сокетов в неблокирующем режиме в java и создать свой собственный класс для работы с сетевыми соединениями на их основе. К сожалению, толковой русскоязычной документации на эту тему я не нашёл. Зато наткнулся на несколько попыток на хабре осветить тему создания надёжного соединения поверх UDP. В том числе и перевод нескольких статей Гленна Фидлера, сделанный пользователем bvasilyev. И хотя статьи рассматривают создание подобного подключения для применения его в играх (не совсем то, что мне необходимо), а также языком реализации является не java, а c++, они стали для меня отправной точкой. К сожалению bvasilyev около года назад прервал перевод данного цикла, а самое интересное осталось на языке оригинала. Поэтому я решил перевести четвёртую статью цикла и переписать реализацию виртуального соединения из третей статьи цикла на java (чуть позже выложу). Ну а для того, чтоб данной статьёй мог воспользоваться кто-либо, кроме меня, выкладываю её здесь. Профессиональным переводом, к сожалению, никогда не занимался, всегда изучал англоязычную документацию. Но в данном случае, из-за многочисленного употребления некоторых слов в совершенно различных значениях, а также в роли наименования всевозможных определений, неоднократно — в пределах одного предложения, счёл более целесообразным осуществить перевод, а после уже работать с текстом на привычном для себя языке. Поправки и аргументированные предложения приветствуются.

Первая статья
Вторая статья
Третья статья

(напомню: переведены bvasilyev)




Надежность, упорядочивание и избежание перегрузок поверх UDP


Вступление


Привет, меня зовут Гленн Фидлер и я приветствую вас в своей четвёртой статье из цикла “Сетевое программирование для разработчиков игр”.

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

Теперь мы будем добавлять надёжность, упорядоченность и предотвращение перегрузок к нашему виртуальному UDP соединению.

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

Проблемы с TCP


Те из вас, кто знаком с TCP, знают, что он уже имеет свою внутреннюю концепцию соединений, с надёжной и упорядоченной системой передачи пакетов и предотвращением перегрузок, так зачем же мы пишем свою собственную мини версию TCP на основе UDP?
Читать дальше →

TensorFlow и логистическая регрессия

Reading time3 min
Views19K
После непродолжительной, но весьма кровавой войны мне все-таки удалось откомпилировать и собрать TensorFlow для GPU с CUDA capability=3.0. Теперь можно погрузиться в него основательно, потому что машинное обучение с GPU — это быстро, легко и приятно, а без GPU — порой лишь огромная потеря времени.

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

Нечеткий поиск в словаре с универсальным автоматом Левенштейна. Часть 1

Reading time9 min
Views105K


Нечеткий поиск строк является весьма дорогостоящей в смысле вычислительных ресурсов задачей, особенно если вам необходима высокая точность получаемых результатов. В статье описан алгоритм нечеткого поиска в словаре, который обеспечивает высокую скорость поиска при сохранении 100% точности и сравнительно низком потреблении памяти. Именно автомат Левенштейна позволил разработчикам Lucene повысить скорость нечеткого поиска на два порядка
Читать дальше →

Можно ли сделать игру без художника за 2 дня? Devstory моей игры Neobug Rush 2 Players

Reading time4 min
Views32K
Добрый день! Игры не являются основным родом моей деятельности, это скорее хобби. Статья может оказаться полезной начинающим indie-разработчикам, у которых, как и у меня, нет ни команды, ни знакомых художников, ни бюджета на фриланс и продвижение игры. Но что более важно, есть энтузиазм, время и хорошие идеи. Итак, кому интересно, прошу под кат!

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

Система рейтингов в высоконагруженном проекте

Reading time9 min
Views11K
Рассказ будет про один контентный проект, в котором мне пришлось переделать архитектуру. Ранее была реализована классическая Лампа-схема (Linux-Apache-MySQL-PHP). Но кол-во посетителей прибавлялось и прибавлялось, уже стало подходить к 1М хостов и сервер БД переставал справляться. Первым делом, я предложил докупить еще один серак, но в данном сегменте конвертация в партнерских программах довольно низкая, так что, руководство проекта немного пожмотилось.

Если, интересно, как мне пришлось изменить архитектуру и при этом еще прикрутить систему ротации и рейтингов, то добро пожаловать под кат.
Читать дальше →

FactRuEval — соревнование по выделению именованных сущностей и извлечению фактов

Reading time6 min
Views12K
Соревнования по различным аспектам анализа текста проводятся на международной конференции по компьютерной лингвистике «Диалог» каждый год. Обычно сами соревнования проходят в течение нескольких месяцев до мероприятия, а на самой конференции объявляют результаты. В этом году планируются три соревнования:

  • по выделению именованных сущностей и фактов – FactRuEval;
  • по анализу тональности – SentiRuEval;
  • по исправлению опечаток – SpellRuEval.

Статья, которую вы начали читать, преследует три цели. Первая – мы хотели бы пригласить разработчиков систем автоматического анализа текстов принять участие в соревнованиях. Вторая – мы ищем помощников, которые могли бы разметить текстовые коллекции, на которых будут проверяться системы наших участников (это, во-первых, интересно, а во-вторых – вы сможете принести реальную пользу науке). Ну а третья – соревнования по выделению именованных сущностей и фактов проводятся на “Диалоге” впервые, и мы хотим рассказать всем заинтересованным читателям, как они будут происходить.

Узнать подробности про FactRuEval ...

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity