Как стать автором
Обновить
60
0
Vladimir Kozlovsky @vladkozlovski

Inventor. Rebel. Entrepreneur.

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

Делюсь небольшим, но полезным плагином: Deeplink Helper для Android Studio

Время на прочтение3 мин
Количество просмотров6.1K
DRY. Don’t Repeat Yourself. Принцип, призывающий разработчика не дублировать код. DRY часто можно распространить шире, не только на код. Сегодня расскажу о личном проекте, который уже помог мне и другим разработчикам избавиться от последовательности рутинных действий при разработке и отладке приложений для Android. И не просто расскажу — а ещё и поделюсь этим инструментом и его исходным кодом.

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

Если при работе над приложением вы хотите уменьшить количество таких действий и переключений фокуса с IDE на Android-устройство, то прошу под кат.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии2

PWA — это просто

Время на прочтение6 мин
Количество просмотров408K
image
Понятие Progressive Web Applications (PWA) на слуху давно, с весны 2018 года приложения этого класса поддерживаются всеми основными браузерами, однако распространенность технологий PWA несмотря на очевидные их «плюсы» пока очень низка.

Специалисты Google (в том числе и на Хабре) очень информативно и компетентно пишут о PWA, но их рекомендации полезны больше тем, кто уже знаком с предметом. Данная статья призвана показать, что Progressive Web Apps — это не сложно, и использовать эти технологии можно и нужно уже сейчас разработчикам любых сайтов.
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии32

Как я обогреваю свой дом при помощи майнинга криптовалют

Время на прочтение5 мин
Количество просмотров137K
После создания собственного смарт-электросчётчика из деталей за 4 доллара я начал ежедневно проверять уровень потребления электричества в доме, благодаря чему понял, насколько дорого обходится его обогрев. Особенно потому, что всё отопление и горячая вода в моём доме с низким энергопотреблением создаётся электричеством. У меня на крыше установлены солнечные панели пиковой мощностью 4,8 кВт, но зимой они по понятным причинам покрывают не так много затрат.


В холодные дни я плачу за электричество до 6 евро в день

Что у меня есть и как это улучшить



Nilan Compact P: нагревает воздух, а также имеет бойлер на 200 литров

Мой дом обогревается (и охлаждается) центральной системой вентиляции с тепловым насосом. По сути, мой тепловой насос втягивает холодный воздух снаружи, обогревает его и выдувает его во все комнаты, а также нагревает воду. Также на случай очень холодных дней у меня в каждой комнате есть инфракрасные панели.
Читать дальше →
Всего голосов 52: ↑45 и ↓7+50
Комментарии108

Fuck Up story: как я разочаровался в digital-услугах для бизнеса и проимел своё дело (ну почти)

Время на прочтение14 мин
Количество просмотров58K
Это была славная охота.

Моя жизнь была посвящена ИТ-сфере. Я был инженером, создававшим интересные продукты для больших промышленных компаний. Моей географией была вся Россия, я вживую видел цеха КАМАЗа, ВАЗа и других автогигантов. Но всему в нашей судьбе настаёт предел, и я выгорел. О причинах расскажу как-нибудь в другой раз. Главное, что я, опытный разработчик и техник, ушёл на вольные хлеба и, поскольку у меня появилась семья, решил сделать бизнес — свой магазин товаров для детей, по особым принципам. В общем, как многие из программеров, сделать то, чего не достаёт мне среди предложений на рынке. И знаете, что? Я выяснил, что найти простейших, базовых, нужных профессионалов-подрядчиков очень сложно. Миллион фрилансеров и фирм, а выхлоп… Это был квест, и о нём я должен поведать миру. Не ходите по моим граблям.


Это самое лучшее, что описало моё состояние
Читать дальше →
Всего голосов 181: ↑175 и ↓6+169
Комментарии102

Сопоставление товаров при помощи Elasticsearch для сервиса мониторинга цен конкурентов

Время на прочтение7 мин
Количество просмотров13K
В далеком 2017 году, возникла идея разработать сервис мониторинга цен конкурентов. Его отличительной фишкой от остальных подобных сервисов должна была стать функция ежесуточного автоматического сопоставления товаров. Видимо из — за почти полного отсутствия информации о том, как это делать, сервисы по мониторингу цен предлагали лишь возможность ручного сопоставления силами самих клиентов, либо операторов сервиса с ценой от 0.2 до 1 рубля за факт сопоставления. Реальная же ситуация с, например, 10 сайтами и 20 000 товаров на каждом, неминуемо требует автоматизации процесса, так как ручное сопоставление уже слишком долгое и дорогое.

Ниже будет описан подход к автоматическому сопоставлению на примере ряда конкурирующих аптек с использованием технологии Elaticsearch.
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии21

Туториал: создаём простое приложение для watchOS 4

Время на прочтение24 мин
Количество просмотров8.7K
image

В этом туториале мы создадим простое, но полнофункциональное приложение под watchOS 4. А конкретнее, мы будем работать над приложением придуманной авиакомпании Air Aber для Apple Watch.

Из этого туториала вы узнаете:

  • Как добавлять целевую сборку watchOS 4 в приложение iOS.
  • Как обмениваться данными между двумя целевыми сборками.
  • Как добавить в Storyboard контроллер интерфейса watchOS и расположить объекты интерфейса.
  • Как создать подкласс WKInterfaceController и соединить всё вместе.
  • Как добавить новый контроллер интерфейса, добавить к нему таблицу и создать прототип из строк.
  • Как создать подкласс класса WKInterfaceController, чтобы заполнить таблицу, настроить строки и обрабатывать выбор.
  • Как сделать контроллер интерфейса модальным и передавать ему данные для отображения.
  • Как создавать анимации на основе изображений.
  • Как использовать API анимации watchOS 4.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии1

Пишем свой BitTorrent-клиент на базе библиотеки Bt

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

Всем привет! В данной статье я расскажу о том, что из себя представляет библиотека Bt, чем она хороша и почему стоит иметь ее в виду, если для решения каких-то задач планируется использовать BitTorrent. Затем, в качестве демонстрации базовых функций и основного API, мы реализуем простейший консольный торрент-клиент.


Отличительные особенности Bt


Bt — это современная полнофункциональная реализация протокола BitTorrent на Java 8 [1]. По сравнению с существующими open-source аналогами [2][3], Bt обладает следующими преимуществами:

Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии9

Сверточная сеть на python. Часть 3. Применение модели

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

Это заключительная часть статей о сверточных сетях. Перед прочтением рекомендую ознакомиться с первой и второй частями, в которых рассматриваются слои сети и принципы их работы, а также формулы, которые отвечают за обучение всей модели. Сегодня мы рассмотрим особенности и трудности, с которыми можно столкнуться при тестировании вручную написанной на python сверточной сети, применим написанную сеть к датасету MNIST и сравним полученные результаты с библиотекой pytorch.
Читать дальше →
Всего голосов 62: ↑61 и ↓1+60
Комментарии8

Сверточная сеть на python. Часть 2. Вывод формул для обучения модели

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

В прошлой статье мы рассмотрели концептуально все слои и функции, из которых будет состоять будущая модель. Сегодня мы выведем формулы, которые будут отвечать за обучение этой модели. Слои будем разбирать в обратном порядке — начиная с функции потерь и заканчивая сверточным слоем. Если возникнут трудности с пониманием формул, рекомендую ознакомиться с подробным объяснением (на картинках) метода обратного распространения ошибки, и также вспомнить о правиле дифференцирования сложной функции.
Читать дальше →
Всего голосов 67: ↑66 и ↓1+65
Комментарии0

Сверточная сеть на python. Часть 1. Определение основных параметров модели

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

Несмотря на то, что можно найти не одну статью, объясняющую принцип метода обратного распространения ошибки в сверточных сетях (раз, два, три и даже дающих “интуитивное” понимание — четыре), мне, тем не менее, никак не удавалось полностью понять эту тему. Кажется, что авторы недостаточно внимания уделяют обычным примерам либо же опускают какие-то хорошо понятные им, но не очевидные другим особенности, и весь материал по этой причине становится неподъемным. Мне хотелось разложить все по полочкам для самого себя и в итоге конспекты вылились в статью. Я постарался исключить все недостатки существующих объяснений и надеюсь, что эта статья ни у кого не вызовет вопросов или недопониманий. И, может, следующий новичок, который, также как и я, захочет во всем разобраться, потратит уже меньше времени.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии10

Введение в архитектуры нейронных сетей

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


Григорий Сапунов (Intento)


Меня зовут Григорий Сапунов, я СТО компании Intento. Занимаюсь я нейросетями довольно давно и machine learning’ом, в частности, занимался построением нейросетевых распознавателей дорожных знаков и номеров. Участвую в проекте по нейросетевой стилизации изображений, помогаю многим компаниям.

Давайте перейдем сразу к делу. Моя цель — дать вам базовую терминологию и понимание, что к чему в этой области, из каких кирпичиков собираются нейросети, и как это использовать.

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

Дальше я расскажу про важные тренды, что происходит в этой области. Затем мы углубимся в архитектуру нейросетей, рассмотрим 3 основных их класса. Это будет самая содержательная часть.

После этого рассмотрим 2 сравнительно продвинутых темы и закончим небольшим обзором фреймворков и библиотек для работы с нейросетями.
Читать дальше →
Всего голосов 54: ↑51 и ↓3+48
Комментарии2

Обзор GUI-интерфейсов для управления Docker-контейнерами

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


Работа с Docker в консоли — привычная для многих рутина. Тем не менее, бывают случаи, когда GUI-/веб-интерфейс может оказаться полезным даже для них. В статье представлен обзор наиболее заметных на сегодняшний день решений, авторы которых попытались предложить более удобные (или подходящие для каких-то случаев) интерфейсы для знакомства с Docker или даже обслуживания больших его инсталляций. Некоторые из проектов совсем молоды, а иные — наоборот, уже отмирают…
Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии26

Что нового в nginx?

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


Максим Дунин (Nginx, Inc.)


Ведущий: Я представляю вашему вниманию следующего докладчика. Встречайте – Максим Дунин. И он расскажет о том, что же нового появилось в технологии под названием nginx.

Дисклеймер: речь пойдёт о нововведениях в 2016 году. Можно подумать, что это давно, но информация об изменениях в changelog от автора этих самых изменений полезна всегда!

Максим Дунин: Добрый день! Я Максим Дунин. Как вы, наверное, знаете, я разработчик nginx. Сегодня буду вам читать changelog вслух и с выражением. Для начала давайте определимся, с какого именно места мы будем читать changelog. Посмотрим на статистику.


Всего голосов 71: ↑70 и ↓1+69
Комментарии45

Сети Docker изнутри: как Docker использует iptables и интерфейсы Linux

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

Я познакомился с Docker довольно давно и, как и большинство его пользователей, был мгновенно очарован его мощью и простотой использования. Простота является основным столпом, на котором основывается Docker, чья сила кроется в легких CLI-командах. Когда я изучал Docker, я захотел выяснить, что происходит у него в бэкграунде, как вообще все происходит, особенно что касается работы с сетью (для меня это одна из самых интересных областей).


Я нашел много разной документации о том, как создавать контейнерные сети и управлять ими, но в отношении того, как именно они работают, материалов намного меньше. Docker широко использует Linux iptables и bridge-интерфейсы для создания контейнерных сетей, и в этой статье я хочу подробно рассмотреть именно этот аспект. Информацию я почерпнул, в основном, из комментариев на github-е, разных презентаций, ну и из моего собственного опыта. В конце статьи можно найти список полезных ресурсов.


Я использовал Docker версии 1.12.3 для примеров в этой статье. Я не ставил своей целью дать исчерпывающее описание Docker-сетей или написать полное введение в эту тему. Я надеюсь, что этот материал будет полезен для пользователей, и я буду рад, если вы в комментариях оставите обратную связь, укажете на ошибки или скажете, чего недостает.

Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии18

Что читать о нейросетях

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


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


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


Ставить перед собой амбициозную цель, с головой бросаться в онлайн-курсы — значит потратить много времени на изучение предмета, который, возможно, вам нужен лишь для общего развития. Есть один проверенный (ретроградный) способ, занимающий по полчаса в день. Книга — офлайновый источник информации. Книга не может похвастаться актуальностью, но за ограниченный период времени даст вам фундаментальное понимание технологии и способов ее возможной реализации под ваши задачи.

Читать дальше →
Всего голосов 59: ↑58 и ↓1+57
Комментарии44

Кассовый разрыв: главная причина закрытия магазинов у новичков

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


Эта толстая полярная лисичка подкрадывается ровно в тот момент, когда владелец думает, что у него всё хорошо. Типовой сценарий: открыл магазин в сентябре, круто отторговал Новый год, отбил вложения 10 марта, пережил летний несезон на маленькой точке, ко второму Новому году немного расширился и закончил сезон очень славно. Образовалось 2-3 свободных миллиона, на которые очень хочется купить большую сверкающую машину. Или мороженого. На все. Душа просит.

Итог — из бизнеса вынимается достаточно большая сумма.

А впереди несезон. Затраты выросли (аренда больше, продавцов больше), прибыли же могут оказаться на уровне первого года. Расходы становятся больше доходов, «подушки» нет — на резервные средства было куплено мороженое ещё в марте. Три основных расхода (80% по общей доле) — это закупка товара, аренда, зарплата. Глядя, что можно срезать, владелец начинает закупать чуть меньше товара и сокращает рекламу. Мол, всё равно товара же меньше. Прямое следствие — штопор, ведущий к закрытию.

Но давайте посмотрим всё в числах. Предположим, у нас есть очень единичная точка в регионе, которая делает 5 миллионов рублей выручки в год. Обычно это один из нескольких магазинов, но в нашем примере он будет единственным.
Читать дальше →
Всего голосов 134: ↑130 и ↓4+126
Комментарии84

Создание игры на Unreal Engine 4 за 150 часов (видео + исходники)

Время на прочтение6 мин
Количество просмотров187K
Приветствую, Хабр! Хотел бы познакомить вас с относительно небольшим проектом, который я сделал c нуля примерно за 150 часов (50 заходов ~3 часа каждый) на Unreal Engine 4. Проект я делал в прямом эфире только на стримах раз в неделю (в общей сложности ушел год), попутно отвечая на вопросы пользователей.

Сам проект не предназначался как коммерческий. Целью я ставил на практике показать всю сложность разработки игр, а именно такие проблемы, как:

  • Планирование и прототипирование проекта
  • Продумывание и реализация архитектуры проекта и отдельных его компонентов
  • Реализация интерфейса пользователя
  • Отладка и исправление ошибок
  • Работа с ассетами и графикой

image

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

Если вам интересны подробности проекта, записи стримов, исходники и прочее, читайте далее.
Всего голосов 103: ↑99 и ↓4+95
Комментарии45

Открываем доступ к видеозаписям HighLoad++ за последние пять лет

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

Мы выложили в открытый доступ видеозаписи последних пяти лет конференции разработчиков высоконагруженных систем HighLoad++. Смотрите, изучайте, делитесь и подписывайтесь на канал YouTube.

Более терабайта записей и 500 видеороликов! Это всё, под катом только реклама :)

Перейти в канал YouTube!

Читать дальше →
Всего голосов 115: ↑110 и ↓5+105
Комментарии19

Переходим с Disqus на комментарии Github

Время на прочтение5 мин
Количество просмотров42K
Какое-то время я хотел убрать комментарии из своего блога; в основном, потому что здесь вообще мало комментариев, да и не хочется возиться с лишними «тормозами» от Disqus. Посмотрев на время загрузки Disqus, я был потрясён тем, что приходится терпеть посетителям сайта по моей вине (кроме тех, кто использует блокировщики вроде Privacy Badger и uBlock Origin.

Эта статья заточена под Hugo, но код легко адаптируется для любого сайта.

Что не так с Disqus?


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


А вот лог после отключения Disqus.


ЧЕГО!?
Читать дальше →
Всего голосов 114: ↑112 и ↓2+110
Комментарии73

Обзор Splunk Machine Learning Toolkit

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


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

Сегодня мы рассмотрим одно из самых популярных, с точки зрения пользователей, приложений — Splunk Machine Learning Toolkit.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии9

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность