Как стать автором
Обновить
1
0
Aleksey Baulin @keshonok

kernel geek

Отправить сообщение

Разреженные структуры данных

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

Когда-то я писал пост про различные интересные структуры данных. Среди них был т.н. sparse set. Там мы описали его в общих чертах, опустив некоторые детали (которыми позже статья была дополнена). Но кроме sparse set существуют и другие разреженные структуры данных! На них сегодня и посмотрим : )

Разредиться!
Всего голосов 27: ↑27 и ↓0 +27
Комментарии 11

Go — 100 вопросов/заданий с собеседований

Уровень сложности Средний
Время на прочтение 87 мин
Количество просмотров 53K

Приветствую тебя, хаброжитель!

В этой статье разберём 100 вопросов, они покрывают львиную долю того, что могут спросить на собеседовании джуниор Go-разработчика с практически любой специализацией. Конечно же, в реальной работе на Go требуются немного другие скиллы, чем умение быстро ответить на любой вопрос. Однако сложилась добрая традиция делать из собеседования викторину с главным призом в виде трудоустройства — к этому нужно быть готовым.

Читать далее
Всего голосов 51: ↑42 и ↓9 +33
Комментарии 14

Одно и то же лекарство можно купить и дешево и дорого. Что-то и вовсе не лекарство. И что за лекарство — вода с солью

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

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

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

Читать далее
Всего голосов 196: ↑187 и ↓9 +178
Комментарии 237

Мой опыт подготовки к экзамену по английскому CPE (Certificate of Proficiency in English) на уровень С2 и его сдачи

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

Are you suggesting coconuts migrate?
MPHG

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

«Непорядок», — подумал я. Так и родилась идея сдавать экзамен по английскому, но почему именно CPE? А не, скажем, CAE (Cambridge C1) или там TOEFL (американский общий тест на знание английского), IELTS (версия этого же экзамена, но от Cambridge).

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

ОСТОРОЖНО — ТРАФИК, да‑да, под катом будет много картинок, личного мнения автора и его же несмешного юмора (придется потерпеть) — ответ на вопрос в КПДВ тоже там!

Добро пожаловать под кат
Всего голосов 39: ↑38 и ↓1 +37
Комментарии 35

Протектор и LLVM-обфускатор. Сравнение двух подходов к решению задачи запутывания кода

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

Добрый день, Хабр! 

В данной заметке я постараюсь сравнить два разных подхода к задаче запутывания машинного кода – это протектор и обфускатор, построенный на базе LLVM-фреймворка. Нам пришлось с этим столкнуться, когда возникла задача защиты библиотек Guardant под разные операционные системы и разные ARM-архитектуры. Для x86/x64 мы используем протектор Guardant Armor, который является полностью нашей разработкой. В случае ARM-архитектуры было принято решение параллельно посмотреть в сторону открытых обфускаторов на базе LLVM с целью их модификации и использования для защиты своих продуктов.

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

Bug Bounty: разведка превыше всего

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

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

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

Как сделать BTC-транзакцию без сдачи из мелких монет

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

Задача: уложить как можно большее число ценных вещей в рюкзак при условии, что вместимость рюкзака ограничена


Многие кошельки биткоина при выборе монет для отправки предпочитают использовать крупную монету, баланс которой больше отправляемой суммы. После каждой такой транзакции образуется монета-сдача. Через какое-то время весь кошелёк зарастает такими монетами порядка 0.001 (~10 долларов на текущий момент), которые уже и не на что потратить. Когда в очередной раз мне понадобилось сделать транзакцию, мне пришла в голову мысль, а нельзя ли собрать транзакцию так, чтобы сдачи не было. Кошелёк упрямо предлагал «распилить» ещё одну более крупную монету, так что я решил руками выбрать монеты, чтобы насобирать необходимую сумму. Однако это оказалось не так просто: сумма или получалась меньше нужного значения или слишком сильно его превосходила. В итоге я решил, что должен быть алгоритм, с помощью которого из монет можно собрать нужную сумму или чуть больше. Оказалось, что это не только возможно, но работает настолько хорошо, что сподвигло меня написать эту статью. Но обо всём по порядку.

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

Приручая System Design Interview. Как его организовать и как к нему подготовиться

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

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

Я поделюсь своими впечатлениями от участия в этом формате, рассмотрю проблемные моменты и предложу, что с ними можно сделать.

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

Фокусы оптимизации размера исполняемых файлов ELF. Поддержка 4 ОС в 400 байт единственного бинарника

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

В этом посте я расскажу о некоторых уловках, которыми я воспользовалась, чтобы уменьшить двоичные файлы С/С++/Python с помощью ассемблера для x86. Здесь всё крутится вокруг кодовой базы Cosmopolitan. Дело в том, что из недавнего отзыва по проекту ELKS я узнала, что мой код там всем понравился и они хотят узнать больше о том, что трюки cosmo могут дать проектам вроде «Linux-порта i8086». Я почувствовала, что мы с ребятами проекта ELKS «одной крови», ведь первое, что я написала при создании Cosmopolitan, — это загрузчик i8086, который назывался Actually Portable Executable. А ещё мне было приятно узнать, что людям, которые погрузились в эту проблему гораздо раньше меня, нравятся мои наработки в Cosmopolitan. И тогда я решила, что неплохо было бы поделиться ими с более широкой аудиторией.


[Shinmyoumaru Sukuna]

Читать дальше →
Всего голосов 40: ↑39 и ↓1 +38
Комментарии 17

Тенденции DDoS-атак в 4-м квартале 2021 года

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

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

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

Как мы отказались от JPEG, JSON, TCP и ускорили ВКонтакте в два раза

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

На протяжении всей жизни мне приходится экономить вычислительные и сетевые ресурсы: сначала были компьютеры с 300 кГц (кило — не гига!) и 32 Кбайт RAM, интернет по dial-up. Потом я решал олимпиадные задачки. Теперь имею дело с терабайтами трафика и 50 млрд событий в сутки. И хотя современные телефоны в 1 000 раз мощнее любого оборудования двадцатилетней давности, я до сих пор оптимизирую. Думал даже, что это со мной что-то не так. Но потом понял, что все постоянно что-нибудь оптимизируют. 

Эта статья в меньшей степени о том, почему нужно бороться за производительность, и в большей о том, на что сейчас стоит заменить устаревший стек из JPEG, JSON, gzip и TCP — и как это сделать. 

Спойлер: у нас есть решение и мы его не только показываем — ссылки на open source в конце статьи.

Читать далее
Всего голосов 435: ↑423 и ↓12 +411
Комментарии 300

Как получить онлайн магистратуру по CS от американского университета по цене кофе

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


Поговорим о: 1) том как я попал в магистратуру по Computer Science от Georgia Tech пока жил и работал в Воронеже, 2) требованиях к поступлению, 3) стоимости, 4) моих впечатлениях от курсов, которые мне читают, 5) почему я все еще продолжаю учиться после того, как начал работать в FAANG и переехал в UK.

Читать дальше →
Всего голосов 52: ↑51 и ↓1 +50
Комментарии 21

HTB Horizontall или как достучаться до небес? #для самых маленьких

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

Начинаю публикацию решений машин с площадки HackTheBox. Надеюсь этот туториал станет небольшой подсказкой тем, кто только начинает свой путь в этичном взломе. Начнем....

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

Реализации машины в qemu

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

В процессе обратной разработки прошивок иногда возникает задача по ее эмуляции, например, для фаззинг тестирования или детального изучения поведения в динамике. На практике обычно для этого хватает фреймворков avatar2, unicorn, qiling и подобных. Однако они поддерживают далеко не все платформы и имеют ряд ограничений для решения таких задач. При разработке эмулятора PLC я столкнулся с тем, что ни один фреймворк для эмуляции не поддерживал требуемую платформу.

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

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

Уязвимости в Linux допускают возможность атаки «в один клик»

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

Группа исследователей CrowdStrike Intelligence обнаружила несколько уязвимостей, влияющих на LibVNCClient в Linux. В некоторых широко используемых средах рабочего стола (например, Gnome) эти уязвимости можно эксплуатировать одним кликом мыши. Детали под катом.

Читать далее
Всего голосов 23: ↑20 и ↓3 +17
Комментарии 4

Перейти с Linux на macOS и не сойти с ума

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

Ноутбук — главный девайс в моей жизни, я провожу за ним бо́льшую часть суток. Он должен быть лёгким, компактным и мощным. Долгое время лидером по этим параметрам был Dell XPS 13, но всё поменялось с выходом MacBook Air на процессоре M1.

Air всего на 100 граммов тяжелее XPS 13, но примерно в три раза мощнее, автономнее и не нуждается в активном охлаждении. Никогда не думал, что скажу подобное про технику Apple, но MacBook Air — самое крутое устройство в своей весовой категории на рынке, оставившее конкурентов далеко позади.

Я фанат Линукса, эта операционная система для меня больше, чем просто окружение. Это философия, новостная повестка и постоянный предмет обсуждения. Поэтому сама идея отказа от Linux в пользу другой ОС меня всегда отталкивала. Да и тот эпизодический опыт, когда приходилось что-то делать в macOS, был эмоционально неприятным.

Но появление M1 посеяло во мне зерно сомнений: мой ноутбук больше не был самым крутым и навязчивой мыслью было то, что я отказываю себе в чём-то большем. Это зерно прорастало и проросло: я купил MacBook Air с 16GB ОЗУ и 512GB SSD, с удивлением обнаружив, что он ещё и стоит дешевле моего XPS. Впереди меня ожидали настройка окружения, борьба с Docker, грусть от отсутствия привычного автодополнения в консоли и много чего ещё.

Читать далее
Всего голосов 136: ↑131 и ↓5 +126
Комментарии 379

Как писать bash-скрипты надежно и безопасно: минимальный шаблон

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

Скрипты на Bash. Как много в этом слове. Любому разработчику рано или поздно приходится их писать. Почти никто не скажет "да, я люблю писать bash-скрипты", и поэтому этой теме уделяют мало внимания.

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

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

Минимизация файла ELF – попробуем в 2021?

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

Экспериментальный проект по максимальному уменьшению ELF-файла с программой Hello, World! под целевую систему Linux x64 с помощью NASM. В предыдущем опыте начала 2000-х удалось добиться размера рабочего файла в 45 байтов, но с тех пор ядро сильно изменилось. Каков же будет минимальный жизнеспособный ELF в 2021?
Читать дальше →
Всего голосов 79: ↑78 и ↓1 +77
Комментарии 10

Как мы лажали, открывая очередное юрлицо — на этот раз в США

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


Я тут открывал юрлицо в США и сделал всё по инструкции «как не облажаться», но облажался. Уже в новых местах, не предусмотренных инструкцией.

Главная инструкция вот тут, она написана не юристом, но сами юристы подтверждают, что получилась хорошая и на неё же ссылаются, когда нужно быстро ввести в курс дела новичка. Список того, где уже облажались русские участники УКомбината — вот.

Проект внезапно созрел и нужно было пустить инвесторов. Команда немного размазана по планете, поэтому всем было примерно всё равно, где регистрироваться. Есть вообще типовой стартаперский набор: Кипр, прибалты, США, Сингапур, Люксембург. Но не пофиг было российскому стратегу, одному из инвесторов, он хотел на родине. При этом американское корпоративное правило наиболее гибкое + накоплена большая база прецедентов, то есть оно ещё и предсказуемое. А в штате Делавер наиболее квалифицированный суд, и его решения — просто золотой стандарт отрасли. То есть если у вас есть иностранные инвесторы, стоит выбор между Европой, Кипром и США. Из Латвии и Эстонии тяжело выскакивать при росте компании (и за сладкий старт придётся платить условиями дальше), Кипр хорош, но венчурные инвесторы часто ассоциируют его с «русские что-то там мутят», поэтому Делавер.

Поскольку у нас ИТ-бизнес в России, и мы знаем правила ведения ИТ-бизнеса в России, план был такой:

  1. Уговаривать стратега на любую зарубежную юрисдикцию (а для них бы это был первый опыт инвестиций в зарубежный проект);
  2. Как только они дадут добро, за недельку зарегистрироваться, например в Делавере, и принять деньги.

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

Но нет. Переходим к мякотке.
Читать дальше →
Всего голосов 83: ↑81 и ↓2 +79
Комментарии 11

Циклы маршрутизации

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

Добрый день! Меня зовут Александр Зубков, я работаю в Qrator Labs и сегодня я хочу поговорить о циклах маршрутизации.

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

Информация

В рейтинге
Не участвует
Откуда
Ярославль, Ярославская обл., Россия
Зарегистрирован
Активность