Pull to refresh
19
0
Лапин Максим Сергеевич @kilokanat

Инженер-конструктор

Send message

Введение в CMake

Reading time7 min
Views563K
imageCMake — кроcсплатформенная утилита для автоматической сборки программы из исходного кода. При этом сама CMake непосредственно сборкой не занимается, а представляет из себя front-end. В качестве back-end`a могут выступать различные версии make и Ninja. Так же CMake позволяет создавать проекты для CodeBlocks, Eclipse, KDevelop3, MS VC++ и Xcode. Стоит отметить, что большинство проектов создаются не нативных, а всё с теми же back-end`ами.
Читать дальше →
Total votes 62: ↑56 and ↓6+50
Comments23

Сказочная нотация BPMN и как её применять

Level of difficultyMedium
Reading time9 min
Views9.9K

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

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

Безопасность контейнерных сред: как отбить атаки киберпиратов

Level of difficultyHard
Reading time22 min
Views2.7K

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

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

Docker Tips: Очистите свою машину от хлама

Reading time8 min
Views169K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Docker Tips: Clean Up Your Local Machine" автора Luc Juggery.


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

Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments33

Xargs: многообразие вариантов использования

Reading time7 min
Views144K
xargs

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

Сначала мы рассмотрим принцип работы xargs и разберем примеры попроще, а затем перейдем к разбору сложных и интересных кейсов.
Читать дальше →
Total votes 68: ↑65 and ↓3+62
Comments44

GET запросы на практике: правила, принципы и примеры

Reading time14 min
Views56K

Я думаю, что вы не раз уже гуглили, заглядывали в статьи, манифесты IT-гигантов о лучших практиках проектирования API. Я тоже.

Но в большинстве из них всё ограничивается описанием URL ресурса, мотивацией использовать пагинацию, сложными словами про кэширование и SSL. Это, безусловно, необходимо для общего понимания технологий, но практически не помогает, когда ты сидишь перед пустой страницей и надо начать “проектировать контракт”.

Я работаю тимлидом направления системного анализа в X5Tech и за все время развития карьеры сталкивалась с большим количеством кейсов проектирования Web систем. IT продукты в большинстве очень динамичны: постоянно изменяются требования, появляются новые, итеративно улучшается пользовательский опыт (по принципу 20% усилий на 80% результата, а остальное доделаем потом).

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

В этой статье предлагаю спроектировать контракт по шагам, и на каждом из них я расскажу про общие рекомендации из копилочки “Полезное”, а также про личные правила и практики, полученные долгим опытом работы над постоянно меняющимися ИТ-продуктами, которые помогут для “дальновидного” проектирования GET REST API.

Читать далее
Total votes 25: ↑23 and ↓2+24
Comments13

Простая установка ROS2 на Ubuntu 22.04: Руководство для начинающих

Level of difficultyMedium
Reading time11 min
Views15K

Статья подробно описывает процесс установки ROS2 версии Humble на операционной системе Ubuntu 22.04 и последующую настройку нод ROS2 для получения изображений, их передачи через топики, а также получение и примеры обработки в других нодах.

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments11

Vim по полной: Менеджер плагинов без фатальных недостатков

Reading time7 min
Views27K

Оглавление


  1. Введение (vim_lib)
  2. Менеджер плагинов без фатальных недостатков (vim_lib, vim_plugmanager)
  3. Уровень проекта и файловая система (vim_prj, nerdtree)
  4. Snippets и шаблоны файлов (UltiSnips, vim_template)
  5. Компиляция и выполнение чего угодно (vim-quickrun)
  6. Работа с Git (vim_git)
  7. Деплой (vim_deploy)
  8. Тестирование с помощью xUnit (vim_unittest)
  9. Библиотека, на которой все держится (vim_lib)
  10. Другие полезные плагины

Я пользовался, наверно, всеми популярными менеджерами плагинов для Vim и у меня не было ни малейшего желания писать свой собственный, так как эти меня вполне устраивали, но было небольшое но, о котором я расскажу в этой статье.

Интересно? Беги скорей под кат!
Total votes 21: ↑19 and ↓2+17
Comments31

Как навсегда запомнить выученное — 2 самые эффективные техники запоминания

Reading time17 min
Views74K

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

Читать далее
Total votes 29: ↑28 and ↓1+33
Comments24

Смотрю в книгу — вижу «фигу». Техника «абсорбирования» учебников SQ3R вместо пассивного чтения

Reading time9 min
Views12K

Школа и ВУЗ приучают читать учебники от корки до корки, помещая ученика в своего рода линейный таймлайн — вот начало книги, вот конец. А между ними середина. Двигайся вперед, листай страницы дальше. То, что прочитано — уже выучено. А хочешь повторить — загляни в заметки.

В общем, чрезвычайно «эффективный» подход...

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

Читать далее
Total votes 17: ↑14 and ↓3+15
Comments7

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

Reading time11 min
Views39K
Человеку, который никогда толком не изучал английский язык, может быть очень тяжело как морально, так и умственно основательно приступить к изучению языка. Ещё сложнее это может показаться делать самостоятельно. Кажется, что следовало заниматься всем этим в детстве. Потому что сейчас уже просто нет для этого ни сил, ни времени. Потому что английский язык это очень-очень много информации, а мозг маленький. Это нормальное чувство, хотя оно и обманчиво.

image


Предыстория


Кому-то в школьные годы английский давался легко. Другим же, в том числе и мне, английский казался жутко сложным и учить его казалось невозможным. Я себя чувствовал просто отчаянно тупым, когда сидел на уроках английского и что-то мямлил, пытаясь ответить на вопросы учителей. А потом родителям приходилось оплачивать дополнительные уроки по английскому, чтобы меня не оставляли на второй год. И на этих уроках я точно так же сидел и ничего не понимал.
Читать дальше →
Total votes 36: ↑29 and ↓7+22
Comments42

Как самостоятельно прокачивать английский

Level of difficultyMedium
Reading time8 min
Views35K

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

Читать далее
Total votes 20: ↑17 and ↓3+15
Comments68

Ах, английский! Бессердечная ты…

Reading time16 min
Views23K

И так, вы поняли, что вам пора изучить английский. Вы идёте на всякие там сайты или качаете себе Дуолингву, но понимаете, что всё бесполезно. В очередной раз вы пялитесь в глаза этому зелёному обдолбаному совёнку, и понимаете что всё бесполезно. A bear всё так же ест этот the cheese, а вы всё так же боитесь запостить комментарий на каком-нибудь форуме, потому что вас засмеют.

Давайте подойдём к проблеме с другого ракурса. Я думаю, для некоторых из вас, проблема заключается в том, что вы даже и не знаете, зачем вы учите этот язык. Английский кажется просто бесконечно-запутанным набором правил, которые должны бы вычисляться по формулам, но они этого не делают.

Разрешите объясниться
Total votes 33: ↑28 and ↓5+28
Comments83

Как «получить всё» — из «ничего», когда очень хочется, но нельзя

Reading time16 min
Views25K

Насколько это реально, почему нельзя, а также, — какое слово зашифровано ниже и причём тут стартапы, вы узнаете из этой статьи

image

Total votes 44: ↑42 and ↓2+62
Comments32

Celery throttling — настраивам rate limit для очередей

Reading time6 min
Views12K

​ В этой статье я покажу как решить одну из проблем, возникающих при использовании распределенных очередей задач — регулирование пропускной способности очереди, или же, более простым языком, настройка ее rate limit'a. В качестве примера я возьму python и свою любимую связку Celery+RabbitMQ, хотя алгоритм, который я использую, никак не зависит от этих инструментов и может быть реализован на любом другом стэке.


Celery+RabbitMQ


So what's the problem?


​ Для начала пара слов о том, какую проблему я вообще пытаюсь решить. Дело в том, что 99.9% сервисов в интернете запрещают бесконтрольно закидывать их сотнями/тысячами запросов в секунду, угрожая дать в ответ какой-нибудь 403 или 500. Нет, ну правда, жалко им чтоле? Иногда таким сервисом может выступать даже своя собственная БД… Вобщем, доверять нынче нельзя никому, поэтому приходится себя как-то сдерживать.


​ Конечно, если вся работа ведется внутри 1го процесса, то никакой проблемы нет, но т.к мы работаем с Celery, то у нас может быть не только N процессов (далее воркеров), но и M машин, и задача все это дело синхронизировать уже не кажется столь тривиальной.

Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments6

Памятка пользователям ssh

Reading time13 min
Views1.5M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →
Total votes 360: ↑352 and ↓8+344
Comments148

Запускаем PostgreSQL в Docker: от простого к сложному

Level of difficultyEasy
Reading time12 min
Views551K

О простых и продвинутых способах запуска PostgreSQL в Docker: добавляем healthcheck, ставим на мониторинг, настраиваем параметры.

Читать далее
Total votes 34: ↑32 and ↓2+35
Comments39

Обучение с подкреплением на Python: Пример не из «качалки»

Reading time10 min
Views21K

Обучение с подкреплением молодая и бурно растущая дисциплина. Это обстоятельство привело к тому что информации об этом на русском языке почти нет. Особенно, если дело касается объектно-ориентированного подхода, и практических задач не из арсенала "качалки".

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

Жги
Total votes 13: ↑12 and ↓1+12
Comments8

Пять распространенных проблем кандидатов (по результатам 600 технических собеседований)

Reading time9 min
Views53K

Компания Geekfactor cовместно с Getmentor.dev проводит программу подготовки к трудоустройству в зарубежные стартапы (бесплатно помогаем подготовиться к интервью и показываем резюме классным компаниям) — почитать о ней подробней и зарегистрироваться можно тут. Свой блог на Хабре мы хотим посвятить теме трудоустройства зарубеж и наша первая статья — про то, каких ошибок стоит избегать при прохождении технических интервью в зарубежные компании.

Недавно я провел свое 600-е собеседование на платформе interviewing.io (IIO). В этой статье я хочу рассказать о своем опыте, подходе к проведению собеседований и основных проблемах, которые встречались у кандидатов на технических собеседованиях.
Читать дальше →
Total votes 50: ↑18 and ↓32-9
Comments76

Интерпретатор из подворотен

Reading time14 min
Views43K
Если ваше образование окончилось после второго класса, если словарный запас ограничен, а речь невнятна, если вы попросту тупы, не знаете этих непонятных латинских букв, но всё равно хотите стать программистом, вам поможет наш быдлоязык Йоба. Йоба — язык для риальных пацанов!

Ну а если серьёзно, как-то раз у нас на работе кто-то в шутку предложил написать гоп-язык, чтобы программистом мог себя почувствовать себя любой. Начинать конструкции со слова «чо» и всё такое. Тут надо заметить, что, не встретив на своём жизненном пути образования в области computer science, я пропустил все те интересные курсы по построению компиляторов, формальным грамматикам и прочим вкусностям, которые вкушают нормальные студенты на втором-третьем курсе. Книга Вирта по построению компиляторов хотя и добавила мне знания всяких умных терминов типа БНФ, но практической пользы не принесла ­— ни одного компилятора я так и не написал. Поэтому задача оказалась для меня довольно интересной.
Если вы старше 18 лет, адекватно воспринимаете обсценную лексику нашего родного языка и вам интересно, с чего начать, добро пожаловать под кат.
Читать дальше →
Total votes 192: ↑172 and ↓20+152
Comments28
1

Information

Rating
Does not participate
Location
Жуковский, Москва и Московская обл., Россия
Date of birth
Registered
Activity