Как стать автором
Обновить
27
0
Виталий Пухов @vpuhoff

Программист в свободное от работы время

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

Задача коммивояжера (TSP) точное решение — метод целочисленного линейного программирования (Integer programming)

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

Дочитав эту статью до конца, вы сможете решать точно задачу коммивояжёра на сотню элементов за считанные секунды!

Заинтригованы? Тогда, добро пожаловать под кат.

Читать далее
Всего голосов 124: ↑124 и ↓0+124
Комментарии40

Как вести дизайн-документацию, чтобы ваша команда понимала, что она делает

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

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

Всем привет, меня зовут Мария Аксютина, я гейм-дизайнер студии Whalekit. В этой статье я подробно расскажу, как вести документацию, чтобы она была наглядной, понятной и полезной для остальной команды.

Читать далее
Всего голосов 50: ↑48 и ↓2+46
Комментарии13

Helmwave — еще один инструмент для деплоя helm-чартов

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

Для деплоя приложений в Kubernetes существует огромное количество различных инструментов. Если посмотреть на соответствующий раздел в CNCF Landscape, то можно потеряться в разнообразии. Поэтому иногда хорошо иметь в своем арсенале «серебряную пулю», которая подойдет для большинства задач. Helmwave вполне может стать именно таким инструментом.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии2

Как правильно отвечать на вопрос “Какие у вас зарплатные ожидания?” на рынке США

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

На первом интервью чаще всего рекрутер может задать вопрос о зарплатных ожиданиях кандидата — “What Are Your Salary Expectations?”. Я принимаю участие в найме продукт-менеджеров, дизайнеров и инженеров и хочу поделиться с вами своим опытом как правильно отвечать на этот вопрос применительно к рынку США.

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

Читать далее
Всего голосов 96: ↑85 и ↓11+74
Комментарии161

Простой робот на МК esp8266 c micropython

Время на прочтение11 мин
Количество просмотров9.7K
Привет, Хабр!

Эта статья описывает процесс апгрейда самоходной платформы на базе МК esp8266 с micropython, до простейшего робота, оснащённого сканирующим ультразвуковым датчиком препятствий, мигающим светодиодом, кнопкой «старт/стоп», а также встроенным веб-сервером, в рамках учебного проекта.

КДПВ:


Всего голосов 18: ↑18 и ↓0+18
Комментарии1

Видеозвонки с виртуальным фоном и опенсорсные инструменты

Время на прочтение11 мин
Количество просмотров34K
Сейчас, когда многие из нас находятся на карантине из-за COVID-19, видеозвонки стали куда более частым явлением, чем раньше. В частности, сервис ZOOM неожиданно стал очень популярным. Вероятно, самой интересной возможностью Zoom является поддержка виртуального фона (Virtual Background). Она позволяет пользователям, в интерактивном режиме, заменять фон, находящийся позади них, на любое изображение или видео.



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

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

Так как зелёного экрана у меня нет, я решил просто реализовать собственную систему удаления фона. А это, конечно, куда лучше, чем наведение порядка в квартире, или постоянное использование рабочего ноутбука.

Как оказалось, применив готовые опенсорсные компоненты и написав буквально несколько строк собственного кода, можно получить весьма достойные результаты.
Всего голосов 70: ↑68 и ↓2+66
Комментарии37

RPA + Машинное обучение = Интеллектуальная Автоматизация

Время на прочтение6 мин
Количество просмотров4.5K
Салют, хабровчане! В марте OTUS запускает новый курс «Разработчик программных роботов (RPA) на базе UiPath и PIX». В преддверии старта курса мы перевели для вас полезный материал о том, что будет, если интегрировать RPA в машинное обучение.





Роботизированная автоматизация процессов (RPA) подняла шумиху во многих отраслях промышленности. Поскольку бизнес сосредоточен на цифровых инновациях, автоматизация выполнения повторяющихся задач в целях повышения эффективности и снижения ошибок по вине человеческого фактора является приоритетным направлением.

Роботы не устанут, не заскучают и будут четко выполнять задания, чтобы помочь своим коллегам-людям повысить производительность и освободить время для выполнения более высокоуровневых задач.

Помимо простого RPA, интеллектуальная автоматизация может быть достигнута путем интеграции машинного обучения и искусственного интеллекта в роботизированную автоматизацию процессов для автоматизации повторяющихся задач с дополнительным слоем человекоподобного восприятия и прогнозирования.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии1

Играй как гейм-дизайнер

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

"Играй как гейм-дизайнер" — одна из самых популярных рекомендаций для тех, кто делает свои первые шаги в профессии. Что же на самом деле скрывается за этими словами? Авторы книг и статей рекомендуют играть как можно больше, играть в игры разных жанров, играть не только в хорошие игры, но и в плохие, всячески повышая свою наигранность.


В повышении наигранности ничего плохого нет, но почему-то не для всех очевидно, что одной наигранности недостаточно. Неплохо бы не просто потреблять игры, но и критически к ним относиться.


Результатом критического анализа может быть статья / видеоролик о том, как в рассматриваемой игре были решены те или иные задачи разработчиков.


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


Предлагаю вам ознакомиться с вариантом проведения такого критического разбора.

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

Видео с облачным детектором объектов на Raspberry Pi

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

Пролог


По сети сейчас гуляет видео — как автопилот Теслы видит дорогу.

У меня давно чесались руки транслировать видео, обогащенное детектором, да и в реальном времени.



Проблема в том, что транслировать видео я хочу с Raspberry, а производительность нейросетевого детектора на ней оставляет желать лучшего.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии19

Delta: Платформа синхронизации данных и обогащения

Время на прочтение9 мин
Количество просмотров2.9K
В преддверии запуска нового потока по курсу «Data Engineer» подготовили перевод интересного материала.






Обзор


Мы поговорим о достаточно популярном паттерне, с помощью которого приложения используют несколько хранилищ данных, где каждое хранилище используется под свои цели, например, для хранения канонической формы данных (MySQL и т.д.), обеспечения расширенных возможностей поиска (ElasticSearch и т.д.), кэширования (Memcached и т.д.) и других. Обычно при использовании нескольких хранилищ данных одно из них работает как основное хранилище, а другие как производные хранилища. Единственная проблема заключается в том, как синхронизировать эти хранилища данных.

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

Как мы делали очередной конструктор чат-ботов. Часть 1

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


Привет, Хабромир! Последний год мы с командой провели, создавая свой стартап «Конструктор чат-ботов для бизнеса Botlify», и я хотел бы поделиться с аудиторией небольшой историей проекта и о принятых технических решениях. В этом посте я постараюсь максимально сконцентрироваться на технических деталях и меньше углубляться в продукт и бизнес, несмотря на то, что в этом проекте моя роль намного меньше связана с разработкой и технологиями. Данный материал основан на моем личном опыте, я не стартап-коуч и не претендую на звание хорошего программиста, менеджера, архитектора или предпринимателя. Мы относительно молодой стартап, у которого не много пользователей, так что тут не будет ничего про нагрузки и проблемы больших проектов. Под катом я расскажу как начинался мой проект, на какие разработческие грабли мы наступали и какие выводы делали.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии13

Почему видеоигры и настольные игры не самый лучший показатель способностей ИИ (интервью с создателем Keras)

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

Определение уровня ИИ это один из самых сложных, но и один из самых важных вопросов в области компьютерных наук. Если вы не можете точно сказать, является ли машина созданная сегодня умнее машины созданной вчера, как тогда определить что вы прогрессируете?
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии13

Красочные адресные светодиоды на новый год без программирования и пайки

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

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



Рассмотрю два варианта — отдельно без существующей домашней автоматизации и работу в связке с “умным домом”.

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

Никто (почти) не знает, что такое авторизация

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

За время работы архитектором в проектах внедрения IdM я проанализировал десятки реализаций механизмов авторизации как во внутренних решениях компаний, так и в коммерческих продуктах, и могу утверждать, что практически везде при наличии относительно сложных требований они сделаны не правильно или, как минимум, не оптимально. Причиной, на мой взгляд, является низкое внимание и заказчика и разработчиков к данному аспекту на начальных этапах и недостаточная оценка влияния требований. Это косвенно подтверждает повсеместное неправильное использование термина: когда я вижу словосочетание «двухфакторная авторизация», у меня начинаются боли чуть ниже спины. Ради интереса мы проанализировали первые 100 статей на Хабре в выдаче по запросу «авторизация», результат получился неутешительный, боли было много:
Читать дальше →
Всего голосов 33: ↑32 и ↓1+31
Комментарии110

Анализ данных блокчейн-голосования 2019 года в Московскую Городскую Думу

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

Часть 1. Анализ данных блокчейн-голосования 2019 года в Московскую Городскую Думу by alexeishch
Часть 2. Параллельный аудит в ходе Электронного голосования by CryptoTyan


Мне посчастливилось участвовать в написании доклада, посвященного блокчейн-голосованию в МГД 2019 года в составе команды Романа Юнемана, и в этой статье я подробно расскажу о части связанной с анализом данных.


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

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

[Обновление] Наших бьют, а мы будем молчать?

Время на прочтение4 мин
Количество просмотров52K
Касательно обысков в офисе nginx и аресте Игоря Сысоева на хабре уже написано и сделан подробный разбор, я о том же, но с другой стороны...

Что же это делается, братцы? Вон оно как журналисты встали стеной за Голунова. А мы чем хуже?

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

Но теперь им и этого мало! Мяса им подавай, с кровью! Ведь, как повезло, у нас в стране много талантов, всех не зарубишь — народятся ещё, не сегодня, так завтра. Считай неисчерпаемый ресурс.
Не благодаря, а вопреки!
Читать дальше →
Всего голосов 173: ↑148 и ↓25+123
Комментарии191

Service Mesh: что нужно знать каждому Software Engineer о самой хайповой технологии

Время на прочтение21 мин
Количество просмотров68K
Прим. перев.: service mesh — явление, которое ещё не имеет устойчивого перевода на русский язык (более 2 лет назад мы предлагали вариант «сетка для сервисов» или «сервисная сетка», а чуть позже некоторые коллеги стали продвигать сочетание «сервисное сито»). Постоянные разговоры об этой технологии привели к ситуации, в которой слишком тесно переплелись маркетинговая и техническая составляющие. Этот замечательный материал от одного из авторов оригинального термина призван внести ясность для инженеров и не только.


Комикс от Sebastian Caceres

Введение


Если вы инженер-программист, работающий где-то в районе бэкенд-систем, термин «service mesh», вероятно, уже прочно закрепился в вашем сознании за последние пару лет. Благодаря странному стечению обстоятельств, это словосочетание захватывает отрасль все сильнее, а хайп и связанные с ним рекламные предложения нарастают словно снежный ком, летящий вниз по склону и не подающий никаких признаков замедления.

Service mesh зародилась в мутных, тенденциозных водах экосистемы cloud native. К сожалению, это означает, что значительная часть связанной с ней полемики варьируется от «низкокалорийной болтовни» до — если воспользоваться техническим термином — откровенной чуши. Но если отсеять весь шум, можно обнаружить, что у service mesh есть вполне реальная, определенная и важная функция.

В этой публикации я попытаюсь проделать именно это: представить честное, глубокое, ориентированное на инженеров руководство по сервисным сеткам. Я собираюсь ответить не только на вопрос: «Что это такое?», — но и «Зачем?», а также «Почему именно сейчас?». Наконец, попытаюсь обрисовать, почему (по моему мнению) конкретно эта технология вызвала такой сумасшедший ажиотаж, что само по себе интересная история.
Читать дальше →
Всего голосов 47: ↑46 и ↓1+45
Комментарии12

Опенсорс-хелпдеск как альтернатива Zendesk и Help Scout. Архитектура, дизайн и юзабилити

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


Это перевод ряда статей из блога одного опенсорсного хелпдеска (и общего почтового ящика) на Laravel. История данного проекта — хороший пример того, как опенсорс-сообщество может не просто повторить, но и местами улучшить дизайн и функционал уже готового распиаренного коммерческого продукта, а также стимулировать его развитие и изменение к лучшему.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии5

Golden canon grid: страшилка для фронтендеров

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


Большая часть людей, так или иначе причастных к верстке сайтов, проходят через… Назовем это “путь бутстрапа”. Это такая философская позиция, когда у тебя есть 12 колонок и ничего больше. Ты берешь элементы, кладешь их в определенные колонки и все у тебя хорошо. Можно выключить мозг, погрузиться в нирвану и руки будут сами расставлять элементы. Красота… Но тут появляется современный дизайнер, который рисует что-то, что ну совсем не сходится с этой замечательной концепцией. Колонок явно больше, они все разной ширины, да еще и по высоте что-то нужно выравнивать. Жуть. А встречается такое все чаще, особенно если сделать шаг в сторону от магазинов или админок. Сегодня мы поговорим о том, что же это за чудо такое там используется и как его можно готовить в современном CSS. Кода будет совсем немного, в основном – размышления и картинки.

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

Service mesh для микросервисов. Часть III. Более глубокий взгляд на Istio

Время на прочтение10 мин
Количество просмотров11K
Перевод статьи подготовлен специально для студентов курса «Инфраструктурная платформа на основе Kubernetes».




Это третья статья из серии публикаций, посвященных  Kubernetes и технологии service mesh (также известной как «сеть микросервисов» и «mesh-сеть микросервисов»). В предыдущей статье мы изучили основы работы с Istio и выяснили, как этот инструмент помогает настраивать и администрировать сложные облачные архитектуры. Так, с его помощью можно сконфигурировать mesh-сеть микросервисов и получить некоторые возможности централизации в распределенной микросервисной среде. Сегодня мы более подробно изучим функции Istio, чтобы по достоинству оценить преимущества технологии service mesh.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Информация

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