Postlar filtri














Фото (9).png.exe
249.8Kb
🤨 Это ты на фото?

Про вирусы сегодня, так и быть.

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

Вирусы это всего лишь программы.

Есть много видов вирусов, сегодня поговорим про:

Шифровальщики

Про шифрование вы уже немного шарите.

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

Майнеры

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

Трояны

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

Так же могут искать определённые файлы (фото/документы) для шпионажа и последующего вымогательства.
Делать скрины экрана, участвовать в DDOS-атаке и запускать случайный код с сервера злоумышленника.

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

👁 Думаете, что заметили бы их?

Но кто сказал, что вирусы работают когда вы видите.

Вирусы могут работать годами в моменты когда вы отошли в туалет, оставили комп без присмотра или просто задумались.

Для этого вирусы могут проверять:

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

Например xprintidle выводит время с последнего движения мышью (актуально для X11)

или

[System.Windows.Forms.Cursor]::Position
для получения координат мыши под Win

Можно узнать сколько ядер проца есть на компе:
nproc --all

и статистику их использования например:
mpstat -P ALL 1

Зачем?

Чтобы запускать майнер на пол шишечки.
Пока вы не смотрите в диспетчер задач конечно же.

Но можно проверить запущен ли диспетчер задач (top например):
pgrep -x top >/dev/null && echo yes || echo no
Чтобы останавливать вирус когда вы смотрите на список процессов. Или чтобы запускаться пока вы в игре.

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

А вот антивирус — программа необычная

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

Вот и создателю антивируса McAfee показалось так же.
А потом его посадили и грохнули в тюрьме, потому что он слишком многое узнал.
Не очень хэппиэндово, зато правда.
Почитайте про него на досуге.

Как защититься?

Развивайтесь технически.
Не устанавливайте что-попало из интернета.
И будьте особенно осторожны с антивирусами.
Ведь тот, кто убил дракона сам становится драконом.

Вывод:

Если вы умеете пользоваться терминалом — вы скорее всего сумеете написать очень простенький вирус.
Ну или антивирус, кому как больше нравится.
Но стоит ли оно того?

Как вам задачка?
🔥 — клёво

🧠 — сложно

🏆 — проверено количество ядер и какие процессы запущены


Прошлая задача
| Навигация


Подмышка и сорок были нормальными

Пока я не выучил английский.
И услышал armpit, что буквально = рука + яма.

И завис.

Почему не подручная яма?
Почему сорок, а не четырдцать или четыредесят?
Где вообще логика?

Но английский лишь пошатнул восприятие.

А вот программирование его сокрушило.

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

Вот и созрел вопрос: хотите ли вы незамутнённым взглядом увидеть этот мир или пока продолжите смотреть на _____ слово недели.


Как разыграть друга без смс и регистрации?

И заодно прокачать Frontend ⬆️

Нам потребуется:

🔘комп — 1 шт

🔘сайт — 1 шт

🔘друг — от 1, можно больше, добавьте по вкусу

Чтобы шалость удалась, необходимо:

🔘зайти на любой сайт с компа

🔘нажать F12 и зайти в Console(Консоль)

🔘ввести туда:
document.addEventListener('scroll', () => {
document.body.style.transform = `rotate(${window.scrollY / 5}deg)`;
document.body.style.transformOrigin = 'center center';
})
И нажать Enter.

После этого жмём F12 повторно и пытаемся прокрутить страницу вниз. (магия работает до перезагрузки страницы)
С гуглом это занятно выглядит, про то как гуглить я рассказывал раньше.

Друга можно позвать со словами: "у тебя кажется мышь сломалась" и дать ему пролистать страницу.
💬 Свои варианты того, что сказать другу пишите в комментах.

Как вам задачка?
🔥 — клёво

🧠 — сложно

🏆 — Google раскрутили, теперь мы идём к вам


Прошлая задача
| Навигация


Какие на сегодня есть этапы, чтобы устроиться на работу в IT?

Вот минимум препятствий, которые тебе нужно будет пройти:

1. ATS-фильтр (умеешь ли написать в резюме тоже самое, что указано в вакансии)
И здесь отсеются ~95% твоих "конкурентов".

2. собеседование с HR

3. технический собес

И если упрощать до 1 слова, то HR оценивает именно это.


Как помочь эскортнице Бэлле?

Сегодня узнаете:

🔘как вытащить, но не из таблицы?

🔘как учесть забытое?

🔘как решить реальную бизнес задачу?

Бэлла решила заработать на трёшку и потому усиленно трудится в поте лица.
Так как она не высыпается — у неё проблемы с памятью.
Поэтому она скачала наше приложение для ведения учёта.

Бэлла после каждого клиента делает отметку в приложении и раз в неделю смотрит отчёт.
Чтобы узнать нужно ли принимать больше клиентов или пока достаточно.

Если сделать обычную выборку в SQL:
SELECT
count(id) as visits_count,
client_visits.created_at::date as day
FROM client_visits
GROUP BY client_visits.created_at::date
ORDER BY client_visits.created_at::date;

То если она пропустит день и не сделает запись(27го числа например), она увидит график:
8 | ░░ ░░ ░░ ░░ ██ ░░ ░░
7 | ░░ ░░ ░░ ░░ ██ ░░ ░░
6 | ░░ ░░ ██ ░░ ██ ░░ ░░
5 | ░░ ░░ ██ ██ ██ ░░ ░░
4 | ░░ ██ ██ ██ ██ ░░ ░░
3 | ░░ ██ ██ ██ ██ ░░ ░░
2 | ██ ██ ██ ██ ██ ██ ██
1 | ██ ██ ██ ██ ██ ██ ██
+---------------------
22 23 24 25 26 28 29
И подумает, что принимает достаточно.
А 27е число будет отсутствовать в выборке т.к. наш SQL сейчас возвращает только существующие в таблице данные.

Поэтому мы должны позаботиться о её благополучии и написать запрос, который генерирует дни по порядку:
SELECT day
FROM generate_series(
DATE '2026-06-22',
DATE '2026-06-29',
INTERVAL '1 day'
) AS day
Мы здесь делаем выборку не из таблицы, а из функции, которая выдаёт список дней с 22 по 29 число с интервалом в 1 день.

А теперь добавим к непрерывному списку дней таблицу с клиентами и посчитаем доступные записи по каждому дню:
SELECT
day,
COUNT(client_visits.id) AS visits_count
FROM generate_series(
DATE '2026-06-22',
DATE '2026-06-29',
INTERVAL '1 day'
) AS day
LEFT JOIN client_visits ON client_visits.created_at::date = day
GROUP BY day
ORDER BY day;

Теперь день без записей виден на графике:
8 | ░░ ░░ ░░ ░░ ██ ░░ ░░
7 | ░░ ░░ ░░ ░░ ██ ░░ ░░
6 | ░░ ░░ ██ ░░ ██ ░░ ░░
5 | ░░ ░░ ██ ██ ██ ░░ ░░
4 | ░░ ██ ██ ██ ██ ░░ ░░
3 | ░░ ██ ██ ██ ██ ░░ ░░
2 | ██ ██ ██ ██ ██ ░░ ██
1 | ██ ██ ██ ██ ██ ░░ ██
+---------------------
22 23 24 25 26 27 28
Бэлла довольна и теперь знает когда нужно больше посетителей и не забивает голову лишним.

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

🔥 — клёво

🧠 — сложно

🏆 — сгенерировано


Прошлая задача
| Навигация


Павел Дуров устроил конкурс

Суть конкурса: снять видео про цифровую свободу, чтобы оно набрало хотя бы 10.000 просмотров

Дэдлайн 15 июля, что относительно скоро

10х🔥 — мы участвуем

🧠 — скоро же дэдлайн

🏆 — мы победим!


Его придумали греки. Ребята из MIT позаимствовали.

Пашет как проклятый и невидим как призрак.

Что это?
Узнайте в слове недели.


Как слить данные карты всему интернету и спать спокойно

Открываешь терминал. Три команды.

Генеришь ключи:
openssl genrsa -out private.pem 4096
openssl rsa -in private.pem -pubout -out public.pem
Публичный — всем. Приватный — только у тебя.

Теперь любой шифрует тебе сообщение твоим публичным ключом:
echo "данные карты: 4111 1111 1111 1111, 12/28, 696" | openssl pkeyutl -encrypt -pubin -inkey public.pem -out secret.bin
Расшифровать может только тот, у кого приватный ключ.

То есть только ты:
openssl pkeyutl -decrypt -inkey private.pem -in secret.bin
Весь чат видел файл. Прочитал только ты.

Вот и весь замочек в браузере(HTTPS). Вот и весь SSH.

Вот мой публичный ключ:
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtAjPwUITTLSq4ulcKPh3
BN+uXtFkrcF/Pz++LACH0J66Wth3ZIwWtbt3s4erAHOkkTQqhHsYGWzni2UWHtvp
6kmQzbqa1hEAH4mTRxkntPN4pdY55jADz9yzPubOkjfiJMiy6C1/wRcMwxOF+Cu3
TyRIaT4Anj++Z1eOzfHE+msPcs33yc+911/O5OZq/8SDpEphbBa3piyZvqG3fFqu
HnQVv6wDQIvKbHUjmjiyIlWdkKhEiuTMUUIfilVXRFjA4L36fQfLSG4+20OJifNg
gxqJx9XWGtX2Z9lcY9MBfBeqgUHJi9pp4OnEqrnow92Bj1SSywpU9Q6CzhCO84z6
I3c66DhEmulNPOPwCpC59xApCSqS2aLb9EVA0COkOd5Ysfeq/mKRTTRKPI/L6A+6
vfUE5IsFSu7RSwa6O4fni6qaQ5svcBvqOdYiBo7gpSleXQI64zaq733975Qbf2P7
8/rkYcQ00RdGC94OXMPSmKKxB4OhLXTB5HRDTFP+SrV+xFaz0R6OgTndNaMp/KZ/
t3vhvwmpeEbubQAz/P/JqMgw+2LMO1AY+R6HGKkUBJkr/2WxNh7r4DxuM4IN0zT4
CBNoMeRD40nSJCehESsYUyZYRxduGLzRpvFzha6sNkpV0PyOF0yclM2HL28Qp4AB
2csxLiw0ySDb5W3NH4RFK0cCAwEAAQ==
-----END PUBLIC KEY-----

Зашифруй мне что угодно и кидай в комменты. 💬
Прочитаю только я.

🔥 — клёво

🧠 — сложно

🏆 — зашифровано


P.S. В другой раз покажу инструмент людей у которых много секретов.

Прошлая задача
| Навигация


Большинство людей уважают интеллект

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


assert.md
21.1Kb
Нормально делай — нормально будет

Сегодня узнаете:

🔘про защиту от дурака

🔘про уверенное программирование

🔘и про то как это, "нормально"?

Почему пользовательским данным нельзя доверять?

Так уж вышло, что в программировании принято не доверять тому, что ввёл пользователь.
Потому что иногда люди вводят номер телефона в поле для ввода возраста.
А иногда хакеры вводят в поле "имя" SQL-инъекцию.

Но нырнём ещё глубже.

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

Как защититься от дурака?
(Хотя бы на уровне данных)

Нам поможет ассертивное программирование.
Ассертивное — уверенное, утверждающее.

В программировании есть типы, которые позволяют нам сказать, что в переменной лежит цифра или символы.
Но если цифра в переменной это процент — она, как правило, не должна содержать ничего меньше 0 и больше 100.

И если в самом начале метода написать утверждение(assert):
function addTax(int $sum, int $percent): float
{
assert($percent > 0 && $percent


DEVCRACY dan repost
Салют, картель

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

Приведу пример поближе к жизни:

Таксисты на вокзалах и в аэропортах

Это тоже картельный сговор. Пусть и в миниатюре.
Они держат цены выше рынка и выдавливают конкурентов. Потому что так выгоднее.

А теперь вопрос:

Знаете, у кого ещё есть все стимулы договориться?

У работодателей в IT

🔘что выгоднее: договориться не светить высокие зп в вакансиях,
влиять на статистику, которую рисуют те же компании,
а потом показывать на неё пальцем и говорить: «ну это же рыночная зп»?

Или платить дорого?

🔘что выгоднее: трепаться в интернете, что «сейчас рынок работодателя»,

или платить дорого?

🔘что выгоднее: на собесе доебаться до любой мелочи,
сделать круглые глаза и спросить: «Как? Ты ЭТОГО не знаешь?»,
а потом сбить зарплатные ожидания,

или же дорого платить??

На мой взгляд, ответы очевидны.

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

Ведь это выгодно.
Nothing personal, just business 😘

А если ещё можно синхронно с другими компаниями не показывать публично высокие зарплаты — так вообще красота.

🔘это влияет на статистику,

🔘статистика влияет на ожидания,

🔘ожидания влияют на то, за сколько человек готов себя продать

Круг замкнулся.

Но не будем забывать.

🔘что умные люди, объединившись, обуздали энергию атома,

🔘создали интернет,

🔘запустили ракеты в космос

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

Если даже таксисты на вокзале догадались договориться, неужели вы думаете, что этого не сделаем мы в Дэвкратии?

Продолжение следует.


Как в 2026 найти работу в IT без накрутки опыта?

Узнайте в слове недели!


Хотел рассказать про инструмент позволяющий вскрыть протестировать в учебных целях wifi.

Но посчитал, что в публичном канале об этом рассказывать — это перебор.

Поэтому сегодня расскажу как сделать ссылку, которая позволяет в Telegram отправлять кому-угодно (например себе в Сохранёнки) заранее заготовленный текст.

Для этого нужно написать ссылку вида:
https://t.me/share/url?url=&text=Привет
или
tg://msg?text=Привет

После нажатия на такую — будет предложено выбрать чат и отправить.
Либо сделать QR через этот сервис например и показывать QR, который до нажатия не палит ссылку.

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

Как вам задачка?
🔥 — клёво

🧠 — сложно

🏆 — сгенерировал ссылку и отправил


Прошлая задача
| Навигация


😄😄 Скажи, кукушка, пропой

Сегодня научитесь:

🔘работа с датами

🔘циклы

🔘печать в терминал

В помощью терминала можно визуализировать прожитые годы в неделях:
birthday="2001-02-03"

week_in_seconds=$(( 60 * 60 * 24 * 7 ))
weeks_lived=$(( ($(date +%s) - $(date -d "$birthday" +%s)) / $week_in_seconds ))
weeks_total=$(( 75 * 52 ))

for ((i=0; i

20 ta oxirgi post ko‘rsatilgan.