Pull to refresh

Technotext

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

Reading time5 min
Views22K

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

Читать далее
Total votes 46: ↑45 and ↓1+44
Comments23

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

Reading time6 min
Views15K

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

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

Читать далее
Total votes 16: ↑14 and ↓2+12
Comments25

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

Reading time11 min
Views6.9K

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

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

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

Читать далее
Total votes 64: ↑64 and ↓0+64
Comments3

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

Reading time8 min
Views16K

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

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

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

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

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

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

Полезного чтения
Total votes 24: ↑22 and ↓2+20
Comments2

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

Reading time14 min
Views12K


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

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

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

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

Reading time33 min
Views10K

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

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

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

Читать далее
Total votes 62: ↑61 and ↓1+60
Comments28

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

Reading time12 min
Views10K

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

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

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments2

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

Reading time6 min
Views19K

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

Читать далее
Total votes 25: ↑25 and ↓0+25
Comments38

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

Reading time12 min
Views15K

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

Читать далее
Total votes 38: ↑38 and ↓0+38
Comments9

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

Reading time6 min
Views4.6K

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

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

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments4

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

Reading time10 min
Views9.9K

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

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

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

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

Читать далее
Total votes 15: ↑13 and ↓2+11
Comments15

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

Reading time10 min
Views20K

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

Читать далее
Total votes 9: ↑8 and ↓1+7
Comments12

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

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

image

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

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

Reading time15 min
Views27K

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

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

Читать далее
Total votes 31: ↑29 and ↓2+27
Comments14

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

Level of difficultyEasy
Reading time7 min
Views11K

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

Читать далее
Total votes 19: ↑17 and ↓2+15
Comments17

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

Reading time3 min
Views1.4K

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее
Total votes 7: ↑5 and ↓2+3
Comments2

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

Reading time9 min
Views26K

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

Читать далее
Total votes 30: ↑24 and ↓6+18
Comments45

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

Reading time5 min
Views10K

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

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

Полетели!
Total votes 34: ↑34 and ↓0+34
Comments73

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

Reading time13 min
Views91K

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

Читать далее
Total votes 31: ↑30 and ↓1+29
Comments8