Как стать автором
Обновить

Технотекст

Pineapple Nano своими руками Часть 1. Сборка платформы

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

Pineapple Nano - это хакерское устройство от команды Hak5 для атак на беспроводные сети. Купить его не так просто, поэтому я решил собрать его сам. И эта статья будет как раз о том, как я прошел сквозь огонь и воду, чтобы воссоздать точную копию (ну почти) этого устройства. Поехали!

Читать далее
Всего голосов 46: ↑45 и ↓1+44
Комментарии23

Как мы ведём документацию рядом с кодом

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

В Альфа-Банке мы уже больше 5 лет ведём документацию рядом с кодом. Но она используется не для всех проектных документов. Дело в том, что документация у нас делится по слоям: фронт, миддл и бэкенд. Если с миддлом — слоем микросервисов — всё хорошо, то вот с переводом фронт- и бэк-документации в Bitbucket возникает трудность в необходимости хранения бинарников с примерами пользовательского интерфейса. 

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

Читать далее
Всего голосов 16: ↑14 и ↓2+12
Комментарии25

Kubernetes CronJob не запустился? Тогда мы с shared informer идём к вам

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

Всем привет! Меня зовут Аня, я строю и развиваю инфраструктуру мониторинга в платформе телеметрии Ozon. Моя команда не только помогает настроить мониторинг, но и разрабатывает различные сервисы и инструменты, чтобы упростить жизнь разработчикам компании.

В прошлом году я рассказывала, как мы организовали мониторинг Kubernetes CronJob на основе kube-state-metrics, Thanos Receive и Thanos Ruler. За год мы нашли ответ на вопрос, почему же крон может не запускаться. И в этой статье я хочу рассказать об основных причинах и проблемах, о которых мы узнали. 

Спойлер: многие не задумываются о том, как устроен и управляется CronJob.

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

Надеть Telegram на OpenVPN и завернуть это в Docker

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

Мигрируя в этом году свою инфраструктуру в новый датацентр, поймал себя на мысли о том, что возраст моей виртуальной частной сети (VPN) для доступа к серверам и устройствам перевалил за 10 лет.

Мой старый товарищ OpenVPN ни разу не подвел меня.

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

Под катом вы найдете детали того, что получилось. Кратко, результат следующий: композиция из двух docker-контейнеров, которые превращаются в telegram-бота для управления VPN сервисом. И для этого нужно выполнить всего две команды в консоле.

Механизм управления VPN сервисом теперь не требует каких-либо навыков системного администрирования или доступа к Linux-консоли при выполнении рутинных операций. Например, чтобы сделать сертификаты новому пользователю вам достаточно иметь телефон с telegram-клиентом.

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

Полезного чтения
Всего голосов 24: ↑22 и ↓2+20
Комментарии2

Yandex Planner. Как планировать вычислительные мощности

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


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

Меня зовут Сергей Фомин, я разработчик Yandex Planner. Мой пост будет посвящён тому, как мы эффективно решаем задачу планирования вычислительных мощностей.

Сначала я расскажу, что такое Yandex Planner и почему мы решили писать своё решение. После этого мы поговорим про то, в чём заключается задача планирования, почему она не такая простая, как может показаться на первый взгляд. И в качестве одного из способов решения задачи мы рассмотрим дефрагментацию ресурсов. Поехали.
Читать дальше →
Всего голосов 47: ↑47 и ↓0+47
Комментарии3

Как мы автоматизировали работу с Kafka: через тернии к Cruise Control

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

В 2022 году искушённого хабрачитателя уже не удивить очередной статьёй о том, как готовить Kafka. На эту тему уже есть куча полезных материалов. Например: тут, тут, тут и тут. А вот информации об инструментах, входящих в экосистему Kafka, ещё не так много.  

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

Сегодня я поделюсь нашей историей запуска инструмента Kafka Cruise Control от LinkedIn. Наш путь по запуску на наших объёмах был тернист, и получился интересным, почти детективным рассказом. А если вы думаете, как автоматизировать рутинные операции по администрированию Kafka-кластеров, то, уверен, почерпнёте для себя что-то полезное. 

Читать далее
Всего голосов 62: ↑61 и ↓1+60
Комментарии28

Kafka как интеграционная платформа: от источников данных к потребителям и в хранилище (часть 1)

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

Привет! Меня зовут Илья Макаров, я работаю архитектором решений и в статье расскажу про архитектуру цифровой платформы НЛМК, из каких компонент, помимо Apache Kafka, она состоит, к каким соглашениям по именованию топиков и договоренностям по передаче данных мы пришли, как всем этим управляем.

А это сразу ссылка на часть 2.

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

Замена облакам в нашем кружке «oч.умелые ручки»

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

Последнее время доверие к облакам как-то резко упало, и пока кончалась годовая подписка на Google One на 2Т было время подумать, что делать дальше. В итоге родилась старая концепция - 'храним данные дома'. И вот что их этого получилось.

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

Исследование формата бинарных файлов на Python

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

Реверс-инжиниринг неизвестного бинарного формата файла – задачка нечастая, но, на мой взгляд, вкусная. Самое то, чтобы в пятницу с утра отвлечься от организационной текучки, техподдержки, бизнес-планов, заполнения восьмёрок в системах отчётности - и поиграть в Шерлока Холмса. В этой статье я расскажу об опыте изучения бинарного файла с временными данными технологических параметров и о небольшой фишке чтения хитрым способом сохранённых строк из другого формата. Файлы несложные, времени на анализ потребовалось немного, но мне было интересно, и вам, я надеюсь, тоже будет интересно.

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

Как мы перешли на регулярные релизы мобильного приложения

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

Всем привет! Меня зовут Тарас, я руководитель релизной команды в inDriver. Команда разработки inDriver в 2022 году — это более 40 кроссфункциональных команд, которые делятся на платформенные и продуктовые. Всего в разработке около 350 инженеров, из них примерно 80 — мобильные разработчики.

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

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

Компонентный подход. Боремся со сложностью в Android-приложениях

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

Представьте, что вы начали разработку нового Android-приложения. Поначалу особых проблем не будет. Вы реализовали лишь самые базовые функции. Экранов немного, и все они простые. Вам легко ориентироваться в коде. Вы бодро добавляете одну фичу за другой. Но со временем разработка усложняется: кода становится много, главный экран обрастает большим количеством UI-элементов и логики, экраны образуют сложные цепочки переходов. Приходится ломать голову, чтобы добавить что-то новое, не сломав ничего из старого. Скорость разработки падает. Знакомая ситуация?

Существует эффективный способ борьбы со сложностью — компонентный подход. Мы в MobileUp применили его в трех крупных Android-приложениях и теперь не представляем, как жили без него раньше.

Меня зовут Артур, я тимлид в компании MobileUp. Я помогу вам освоить компонентный подход. Постараюсь сделать это как можно проще и увлекательнее.

Вас ждет серия статей. Это первая из них — теоретическая. В ней мы рассмотрим, какие сложности встречаются в Android-приложениях, и почему MVVM и Clean Architecture не панацея против них. Я расскажу, что такое компонентный подход и в чем его преимущества. А в конце статьи будут ссылки на материалы для углубленного изучения.

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

Лучшие практики модальных окон. Компоненты дизайн системы

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

Меня зовут Андрей Насонов, я работаю UI/UX-дизайнером и руковожу дизайн-отделом. В 2008 году я начал заниматься графическим дизайном, а в 2015 году перешел в веб-дизайн.
В этой статье я описываю работу модального окна для десктоп-версии сайтов.

Читать далее
Всего голосов 9: ↑8 и ↓1+7
Комментарии12

Как фронтендерам общаться с дизайнерами: топ-3 практик

Время на прочтение6 мин
Количество просмотров3.4K
Дизайнеры и фронтенд-разработчики много общаются по долгу службы. Типичный формат такой: дизайнер делает макет и чекает его с фронтендером, фронтендер отвечает, что все понял, и идет верстать по нашим макетам. Если на самом деле понял — работа кипит. А если думает, что понял, или делает вид, что понял, — работа буксует.

image

Меня зовут Полина Вострикова. Я — лид-дизайнер в «Лаборатории Касперского». И я хочу, чтобы работа коллег-дизайнеров кипела, а не буксовала. Затем и пишу статью. Расскажу, как объяснять задачи дизайнерам, в чем основные ошибки фронтендеров на этом поприще и как таких ошибок избежать.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии10

Blue-green deployment, canary release: рецепт приготовления безрисковых релизов

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

Банковские сервисы по умолчанию не должны падать, и даже прилечь на секундочку, и даже когда мы обновляемся. Ведь даже секунды могут привести к потерям с множеством нулей. Чтобы этого не произошло мы используем blue-green deployment.

Простым языком blue-green deployment - способ развертывания, который позволяет обновлять приложения не отклоняя ни одного запроса, без остановок. Как это сделать, расскажу и покажу на примере. Статья подойдет DevOps-инженерам и бэкенд-разработчикам, особенно на HighLoad-проектах, а также моим будущим коллегам, как методичка по безрисковым релизам, чтобы прод не падал каждые 2 недели по графику релизов (а такое тоже бывало).

Читать далее
Всего голосов 31: ↑29 и ↓2+27
Комментарии14

Как я сделал полноценное приложение, не прикасаясь к JavaScript

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров11K

Я всегда скептически относился к чат-ботам. Когда-то они были на хайпе. Говорили, что это новый UI – он же No UI. Но я всегда утверждал, что пользователю проще и быстрее все действия сделать через сайт, а не играть с ботом в вопрос-ответ. Каково же было моё удивление, когда через несколько лет я сам буду пропагандировать чат-ботов всем моим друзьям - backend-разработчикам? В данной статье расскажу, как я до этого дошел.

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

Как найти первую работу продактом [3/3]

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

Итак, последняя часть статьи про поиск первой работы продактом. Если вы ещё не читали, то в первой части я рассказывал про шаги перед поиском вакансии, а во второй - про отклики на вакансии и тестовое задание.

Также в канале Продактом быть я рассказываю о своём опыте в PM, и многие вещи оттуда тоже могут пригодиться на собеседованиях :)

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

Из чего состоят собеседования

Из моего опыта, чаще всего после тестового вас ожидает 1-2 созвона с продактами компании.

И на этих созвонах активности делятся на 3 части:

1. Знакомство, обсуждение вашей мотивации, базовой адекватности

2. Обсуждение вашего прошлого опыта в PM/смежных ролях

3. Заготовленные кейсы от нанимающей компании

Если говорить про 1 и 2 части, то тут ребята оценивают, как вы принимали решения на предыдущих местах работы/в пет-проектах. Откуда брали гипотезы, как мерили успех от запуска, как ваши решения согласовывались со стратегией компании, почему делали именно этот проект, а не другой и.т.д.

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

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

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

Дообучение EasyOCR

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

Всем привет!

Представляю краткий tutorial по дообучению EasyOCR. возможно обучение на Google colab.

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии0

Взять в команду семь джунов и не поседеть — чему я научилась, пока нанимала сотрудников

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

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

Читать далее
Всего голосов 30: ↑24 и ↓6+18
Комментарии45

Как улучшить DJI Spark на 7%

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

Друзья, всем привет!

В данной статье я рассказываю о том, как я пытался увеличить время полёта своего квадрокоптера и что у меня из этого вышло.

Полетели!
Всего голосов 34: ↑34 и ↓0+34
Комментарии73

GPT для чайников: от токенизации до файнтюнинга

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

К моему удивлению, в открытом доступе оказалось не так уж много подробных и понятных объяснений того как работает модель GPT от OpenAI. Поэтому я решил всё взять в свои руки и написать этот туториал.

Читать далее
Всего голосов 31: ↑30 и ↓1+29
Комментарии8