Search
Write a publication
Pull to refresh
78
0
Роман @RomeoGolf

инженер-программист

Send message

Пиши простой код

Level of difficultyEasy
Reading time4 min
Views53K

И это решит 95% проблем типичного стартапа. Как-то так повелось, что по всему СНГ и его окрестностям на работу набирают зумеров с колоссальным опытом в три года, и они начинают создавать идеальные архитектуры. Да, каждый из вас, как только получает возможность взять на себя хоть малейшую ответственность, сразу вспоминает все прочитанные и не прочитанные книги и пилит свою уникальную архитектуру, непохожую ни на что.

Читать далее

Весь китайский автопром от A(vatr) до Z(eekr)

Reading time19 min
Views59K

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

Читать далее

Техдолг. Большое руководство

Level of difficultyMedium
Reading time20 min
Views6.7K

Меня зовут Андрей Никольский, я Head of Platform в Банки.ру. Сегодня хочу обсудить не самую приятную, но важную тему — технический долг и как с ним работать.

Любой разработчик или руководитель неизбежно сталкивается с техдолгом: либо устраняет его, либо создает. Чаще всего — и то, и другое одновременно. Год назад я решил глубже разобраться в этом вопросе и начал изучать, что происходит в индустрии: как компании работают с техдолгом в теории и на практике, какие подходы применяют и с какими проблемами сталкиваются.

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

Читать далее

Tinker WriterDeck: Linux для тех, кто работает с текстом. Превращаем ноутбук в печатную машинку

Reading time4 min
Views5.4K

Источник.

Возможно, у вас есть старый ноутбук, который и выкинуть жалко, и применить негде, потому что уж слишком он устарел. Можно продать его за копейки или пустить на запчасти для DIY-проекта. А можно накатить на него интересную ОС, единственная опция которой — работа с текстом. Никаких вкладок браузера, уведомлений мессенджеров или соблазна заглянуть в соцсети. Только вы, текстовый редактор и ваши мысли. Tinker WriterDeck — это Linux-дистрибутив, с которым я предлагаю поближе познакомиться в этой статье.
Читать дальше →

Как оптимально проектировать печатные платы

Level of difficultyMedium
Reading time16 min
Views13K

Привет, на связи Андрей Шведов, руководитель проектов ГРАН Груп!

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

Всего этого можно добиться, соблюдая набор принципов концепции DFM (англ. design for manufacturing) – "проектирование с учетом производства". Она имеет довольно простой смысл: задуманные в проекте решения следует реализовывать, учитывая особенности технологических процессов и возможности производств.

Следуя принципам DFM, вы получаете надежные и соответствующие функциональным характеристикам печатные платы, поставленные в срок, с минимальным риском дефектов и по оптимальной стоимости.

Цель нашей статьи – показать, что соблюдая простые рекомендации и имея представление о "популярных" ошибках, можно заметно сэкономить время.

Читать далее

Senders/Receivers в C++26: от теории к практике

Level of difficultyMedium
Reading time16 min
Views6.2K

Каждому C++-разработчику приходится решать задачи асинхронности — от сетевых запросов до фоновых вычислений. В этой статье вы увидите, как P2300-модель Senders/Receivers в C++26 расширяет возможности std::async/std::future и позволяет строить ясные, декларативные конвейеры (then, when_all, upon_error и др.).

Читать далее

Системные вызовы Linux, которые должен знать каждый разработчик

Level of difficultyMedium
Reading time7 min
Views17K

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

Читать далее

Графика в Linux — как это вообще устроено

Reading time5 min
Views16K

По мотивам недавних постов, затрагивавших тему графики в Linux — как оно вообще там сделано, и как работает, не углубляясь особо в детали.

Здесь не будет технических подробностей и нюансов настройки — так, чисто обзорно сверху по кочкам.

Зачем? Затем, что, как я вижу, сейчас не все пользователи Linux представляют, что именно скрывается за словами «графическая среда», и чем Gnome отличается от Wayland.

Читать далее

В тестировщики пойду, пусть меня научат: отвечаем на самые частые вопросы о профессии

Level of difficultyEasy
Reading time12 min
Views2.8K

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

В статье найдете ответы на вопросы

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

Читать далее

Хороший, плохой, злой тимлид. Как говорить команде правду и выжить

Level of difficultyEasy
Reading time14 min
Views21K

Привет, Хабр! Меня зовут Лера, я технический писатель в Авито. Делюсь с вами разбором полезной книги — «Радикальная прямота» Ким Скотт.

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

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

Читать далее

14 интересных фич Python (возможно, не совсем pythonic)

Level of difficultyMedium
Reading time21 min
Views23K

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

Если загуглить лучшие 10 продвинутых хитростей Python, то вы найдёте кучу постов или статей на LinkedIn с обзором тривиальных (но всё же полезных) вещей типа генераторов или кортежей.

Я пишу на Python уже двенадцать лет, и за это время нашёл кучу очень интересных, недооценённых, уникальных или (как может кто-то сказать) «не-pythonic» хитростей, позволяющих по-настоящему расширить границы возможного для Python.

Именно поэтому я решил собрать список из 14 лучших таких фич с примерами и дополнительными ресурсами на случай, если вы захотите изучить их глубже.
Читать дальше →

Взлом зашифрованного pdf-файла. Взлом зашифрованных архивов rar, zip, 7z. Утилиты pdfcrack, rarcrack и не только

Level of difficultyEasy
Reading time3 min
Views33K

Всех приветствую, читатели Хабра!

В сегодняшней статье я поделюсь примерами кракинга зашифрованных паролями pdf-файлов и файлов архивов. Я покажу примеры работы с такими программами как pdfcrack, rarcrack, John the Ripper. Естественно данные программы работают в линукс (в моем случае Kali Linux), но под Windows я думаю есть аналоги данных программ. И да, в этой статье я затрону примеры связанные с john, хоть возможно на Хабре и имеются статьи связанные с данной программой (а в русскоязычном сегменте интернет точно есть описания как с ней работать), но в рамках данной статьи мои примеры будут уместны и необходимы. Это своего рода онлайн-шпаргалка по использованию данных утилит

Примечание

Правовая информация:

Данная статья создана исключительно в ознакомительных/образовательных/развивающих целях.
Автор статьи не несет ответственности за ваши действия.
Автор статьи ни к чему не призывает, более того напоминаю о существовании некоторых статей в уголовном кодексе РФ, их никто не отменял:
УК РФ Статья 272. Неправомерный доступ к компьютерной информации
УК РФ Статья 273. Создание, использование и распространение вредоносных компьютерных программ
УК РФ Статья 274. Нарушение правил эксплуатации средств хранения, обработки или передачи компьютерной информации и информационно-телекоммуникационных сетей

Все атаки я проводил на своем персональном компьютере, где создавал собственные файлы, которые и атаковал, то есть все действия легитимны.

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

Читать далее

Путешествие туда и обратно за безопасным ELF-парсером

Level of difficultyMedium
Reading time12 min
Views2.1K

Жил-был в норе под землей… разработчик группы разработки защитных решений безопасной платформы. Привет! Я Максим Жуков, занимаюсь безопасностью различных аспектов KasperskyOS. Расскажу про один из них, ELF-парсер.

Эта история не про то, как мы в «Лаборатории Касперского» сделали парсер с нуля. А про то, как я отправился в долгое исследовательское путешествие в поисках способа сделать наш существующий парсер безопаснее, что узнал о разных инструментах в пути и какую неожиданную помощь получил от Темного Владыки Мелькора.

Интересно будет тем, кто работает с бинарными данными, занимается безопасностью или просто хочет сделать свой код надежнее. Особое приглашение под кат — фанатам Rust, ему уделю немало внимания. Поехали!

Читать далее

Побег от WSL или Как превратить старый ноутбук в домашний сервер для хранения данных и удаленной работы

Level of difficultyMedium
Reading time10 min
Views31K

Делюсь личным опытом превращения старенького ноутбука ASUS X552CL (Intel i5-5200U, 12 ГБ RAM, SSD + HDD), выпущенный 12 лет назад, в полноценный домашний сервер под Linux Ubuntu Server 24.04.5 LTS.

Получилось что-то вроде мини-датацентра на дому — он хранит файлы на жёстком диске с бэкапом в облаке, Docker-контейнеры крутит для дата-аналитики и даже имеет легковесный интерфейс XFCE, при этом есть потенциал к росту до терминала для управления умным домом. Расскажу, почему было решено отказаться от WSL на рабочем ноутбуке Huawei, как настроить удалённый доступ через xRDP (чтобы не было чёрного экрана), запустить там Docker, сборку Superset и JupyterLab с Anaconda (с разными версиями Python), прикрутить Samba-шару для домашнего использования и организовать бэкап в облачном хранилище. В этой статье будет немного технических деталей, щепотка шуток и парочка мемов с советскими плакатами.

Читать далее

Чистый код — красивая архитектура. А работает ли это?

Level of difficultyEasy
Reading time12 min
Views20K

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

Грязный код — это про непонятные переменные, запутанные модули и решения «на скорую руку». Вас ждёт после такого потеря во времени и в лучшем случае косые взгляды коллег. К сожалению, непонятный код часто пишут не только из-за спешки, но и из-за неопытности и чрезмерного энтузиазма тех, кто хочет всё переделать.

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

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

Давайте разберём, как превратить кошмар в конфетку — детали внутри.
Читать дальше →

Затолкаем, братцы!!! UART Lite через PCIe прямиком в Linux: драйвер за вечер (почти)

Level of difficultyMedium
Reading time20 min
Views10K

Что если можно было бы подключить своё AXI-устройство на FPGA к Linux через PCIe за вечер? В этой статье рассказываю, как написать драйвер для UARTLite через XDMA, собрать свою TTY и начать работать с GPS прямо из терминала!

Залетай, что смотришь....

«Кипячение» кальциевых аккумуляторов — нельзя или нужно?

Level of difficultyEasy
Reading time13 min
Views11K


Привет, Хабр! Подавляющее большинство современных автомобильных аккумуляторов кальциевые, про которые существует расхожий миф, будто бы дозаряд при напряжении выше 15.5, 15.0 или даже 14.7 вольт действует на них губительно.

Сегодня мы исследуем этот вопрос опытным путём.
Читать дальше →

ХрюХрюКар v.2 или как я использую Go для защиты своего двора

Level of difficultyEasy
Reading time7 min
Views15K

Почти год назад я писал про ХрюХрюКар. Это экспериментальный проект, который проработал 7 месяцев в городе Балаково Саратовской области. За это время мы «поймали» около тысячи автомобилистов, разместивших свои авто на зеленых зонах, детских/спортивных площадках и тротуарах.

В этой статье я расскажу про совершенно новую версию ХХК, которую я написал на Go. Ну и отдам сообществу все исходники проекта.

Припарковаться правильно

RAII 2.0: RAII как архитектурный инструмент в C++

Level of difficultyMedium
Reading time7 min
Views5.3K

Идиома RAII — давно зарекомендовал себя как удобный способ автоматического управления ресурсами в C++. Обычно мы применяем его для управления памятью, файловыми дескрипторами или мьютексами. Однако что, если расширить понятие RAII до управления не только физическими ресурсами, но и логическими контрактами и состояниями системы?

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

Читать далее

Покоряем сетевой стек Linux: декапсулируем пакеты с помощью eBPF на скорости 6Mpps+

Reading time15 min
Views14K

Когда переход на VXLAN в облачных сетях грозил нарушить работу системы анализа трафика, нам нужно было найти решение, позволяющее сохранить точный сбор статистики при экстремальных нагрузках и измененной структуре заголовков пакетов. Я — Александр Шишебаров, старший разработчик в команде сетевых функций облака Selectel. Разрабатываю все, что связано с сетью: балансировщики, виртуальные роутеры, сети, глобальный роутер и так далее.

В этой статье рассказываю о том, как мы использовали eBPF для перехвата и декапсуляции VXLAN-пакетов прямо в ядре, обеспечив корректный сбор статистики без значительных изменений в архитектуре системы. Разберем, какие требования привели нас к этому решению, как его внедряли и каких результатов удалось достичь. Также расскажу, что такое eBPF, как работает технология, как начать с ней работать и на каких этапах сетевого стека Linux можно перехватывать пакеты с ее помощью. Подробности под катом!
Читать дальше →

Information

Rating
3,699-th
Location
Свердловская обл., Россия
Date of birth
Registered
Activity