Хакер Володя
653 subscribers
105 photos
3 videos
4 files
200 links
Чиню утюги, поднимаю сервера с колен, гадаю по названиям коммитов.
Download Telegram
Пришлось встать в 7 утра, чтобы успеть записаться на крафт зону и спаять там аддон
🔥7🤩4👍3
Играем в днд в ангаре (около паяльников)
🔥5👍2
В последний день в Москве заглянул на форум ассистивных технологий. Выглядит довольно киберпанково, когда вокруг тебя десятки людей с бионическими руками и ногами, а на стендах показывают новейшие нейроинтерфейсы и протезы конечностей. Трансгуманизм потихоньку воплощается в реальность и это хорошо.
🔥10😱2🤯1
Как сделать научную работу?

Наступил сентябрь. За последние пару недель пришла куча запросов по теме "Вова, какую мне тему взять на курсач?". Грустно, что нигде об этом не рассказывают (по крайней мере у нас), так что делюсь самым простым, универсальным и рабочим вариантом.

1. Определяемся, в каком направлении хотим двигаться (реверс малвари / криптография с публичным ключом / etc — чем область более узкая, тем лучше, иначе можно потеряться в изобилии материала).

2. Гуглим научные статьи по этому направлению, перечитываем десяток-другой статей (когда у вас спрашивают тему, времени на выбор обычно прям очень мало, поэтому лучше делать это заранее).

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

4. Также можно попытаться самостоятельно найти, как развить чужую тему. Например, автор написал тулзу и протестировал её на некотором классе программ. Что если протестировать её на другом (но не менее интересном с исследовательской точки зрения) классе программ?

Вообще, ваш научник по-хорошему должен шарить за все пейперы по вашему направлению, знать какие есть проблемы и какие из них по силам решить студентам, но, исходя из моего опыта, более частый кейс это когда вы сами по себе и курсач вам тупо подписывают (вне зависимости от его кринжовости), поэтому и выкатываю этот пост.
🔥12🤩2
This media is not supported in the widget
VIEW IN TELEGRAM
🥰2🤮2
Хакер Володя
^ последние несколько недель делал вот это

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

if __name__ == "__main__":
print("Hello, world!")
👍12🤩5🔥2
Запилил дэшборд для отслеживания блэкаута в сети TON

На этой неделе у валидаторов в очередях скопилось 2.5 млн сообщений, из-за чего всё стало работать невероятно медленно.

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

https://tonqueues.vladimirlebe.dev/
🔥9👍8🙈3😁1
Написал Email -> Telegram форвардер

Надоело обновлять страничку в ожидании, когда в проектах отработает CI/CD, пошарился по фичам гитлаба и гитхаба для уведомлений. Можно отправлять уведомления на емэйл, но забивать почту мусором не очень хочется, поэтому открыл для себя Email Workers в Cloudflare.

Как работает:
1. Имеем домен example.com, включаем для него в клаудфлейре Email Routing.
2. Деплоим с гитхаба воркер, который будет обрабатывать емэйлы, прописываем ему креды для бота в телеге.
3. Настраиваем правило, чтобы емэйлы для notifications@example.com направлялись в наш воркер.

https://github.com/hacker-volodya/email-telegram-forwarder
🔥6👍2🕊1
Forwarded from Reverser's notes
Тут подкинули на работе ооооочень классную задачу. До её решения можно дойти эврестически, можно аналитически

Надзиратель в концлагере решил освободить его и отдал приказ "расстрелять всех через одного, кто останется - тоже через одного и так далее, пока не останется один". Куда нужно встать, чтобы выжить?
🌚6👍2🥰1
Настраиваем виртуалки локально с помощью cloud-init

Понадобилась недавно локальная виртуалка, но стало как-то лениво протыкивать в очередной раз инсталлятор Ubuntu Server. Облачные провайдеры уже давно используют cloud-init, мы можем использовать тот же подход.

1. Создаём cloud-init.yml:

#cloud-config
autoinstall:
version: 1
user-data:
users:
- name: user
lock_passwd: true
ssh_import_id:
- gh:hacker-volodya # импортируем свой ssh-ключ из гитхаба
sudo: ALL=(ALL) NOPASSWD:ALL
ssh:
install-server: true


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

2. Запускаем cloud-localds ./seed.iso ./cloud-init.yml (предварительно ставим тулзу через apt install cloud-image-utils).

3. Создаём виртуалку, подключаем туда iso с убунтой и рядом подключаем seed.iso (может понадобиться создать ещё один дисковод в виртуалке).

4. Запускаем виртуалку, установщик предложит всё поставить автоматически, подтверждаем. Через параметры загрузки ядра можно сделать, чтобы подтверждать не нужно было, но это слишком запарно для полу-домашнего использования.

Теперь для раскатки каждой новой виртуалки нужно просто монтировать образ системы и seed.iso. После установки системы cloud-init принтит полученный айпишник в консоль, к которому можно коннектиться по ssh с аутентификацией по ключу.
🔥9
Оргаю Tinkoff CTF

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

Зарегаться и создать команду нужно сегодня вот здесь: https://ctf.tinkoff.ru/
(мои таски будут в лиге опытных)

Если вы из Томска — можно будет зарулить своей командой в наш замечательный хакспейс, уже заявило о своём участии 5 команд.
❤‍🔥12👍1
RUN --mount в Dockerfile

Практически drop-in способ ускорить сборку докера, который помог оптимизировать мне сборку с 15 минут до 20 секунд.

FROM rust:1.77.2-buster AS builder
COPY . .
RUN --mount=type=cache,target=/var/cache/buildkit \
CARGO_HOME=/var/cache/buildkit/cargo \
CARGO_TARGET_DIR=/var/cache/buildkit/target \
cargo build --release --locked && \
cp /var/cache/buildkit/target/release/hello-world /

FROM debian:bookworm-slim AS runtime
COPY --from=builder /hello-world /usr/local/bin
ENTRYPOINT ["/usr/local/bin/hello-world"]


Как работает: докер монтирует папку, в которую вы складываете кэш, при следующих сборках этот кэш подкладывается.

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

Рекомендую почитать доку по buildkit, в последнее время там добавили дофига всего, о чём мало кто знает.
👍82🔥2