Pull to refresh
27
0
Виталий Пухов @vpuhoff

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

Send message

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

Reading time 20 min
Views 22K

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

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

Читать далее
Total votes 124: ↑124 and ↓0 +124
Comments 40

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

Reading time 5 min
Views 12K

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

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

Читать далее
Total votes 50: ↑48 and ↓2 +46
Comments 13

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

Reading time 5 min
Views 4.6K

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

Читать далее
Total votes 15: ↑15 and ↓0 +15
Comments 2

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

Reading time 6 min
Views 65K

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

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

Читать далее
Total votes 96: ↑85 and ↓11 +74
Comments 161

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

Reading time 11 min
Views 9.6K
Привет, Хабр!

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

КДПВ:


Total votes 18: ↑18 and ↓0 +18
Comments 1

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

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



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

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

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

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

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

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





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

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

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

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

Reading time 8 min
Views 11K

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


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


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


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


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

Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Comments 5

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

Reading time 5 min
Views 12K

Пролог


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

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



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

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

Reading time 9 min
Views 2.8K
В преддверии запуска нового потока по курсу «Data Engineer» подготовили перевод интересного материала.






Обзор


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

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

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

Reading time 19 min
Views 17K


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

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

Reading time 10 min
Views 5K
image

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

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

Reading time 7 min
Views 44K

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



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

Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Comments 31

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

Reading time 5 min
Views 91K

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

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

Reading time 8 min
Views 13K

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


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


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

Читать дальше →
Total votes 74: ↑74 and ↓0 +74
Comments 61

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

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

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

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

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

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

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


Комикс от Sebastian Caceres

Введение


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

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

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

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

Reading time 6 min
Views 12K


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

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

Reading time 12 min
Views 27K


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

Читать дальше →
Total votes 39: ↑39 and ↓0 +39
Comments 29

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

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




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

Information

Rating
Does not participate
Location
Хабаровск, Хабаровский край, Россия
Date of birth
Registered
Activity