Первый компьютерный червь, который сломал интернет
2 ноября 1988 года 23-летний аспирант Корнелльского университета Роберт Таппан Моррис запустил программу, которая должна была просто посчитать, сколько компьютеров подключено к ARPANET (предшественник интернета). Программа копировала себя с машины на машину — и всё бы ничего, но Моррис допустил ошибку в коде.
Он добавил проверку: если машина уже заражена — не копироваться повторно. Но потом подумал, что хитрые админы могут обмануть червя, заставив компьютеры всегда отвечать «уже заражён». Поэтому он сделал так, что в 14% случаев червь копировал себя независимо от ответа. Это и стало роковой ошибкой.
Червь начал копироваться снова и снова на одни и те же машины. Компьютеры перегружались от количества запущенных копий и падали. За несколько часов вышло из строя около 6000 машин — примерно 10% всего тогдашнего интернета. Ущерб оценили в $10 миллионов.
Интересно, что Моррис запустил червя не из Cornell, а с компьютера в MIT — специально, чтобы сложнее было отследить. Не помогло.
Последствия:
1️⃣ Моррис стал первым человеком, осуждённым по американскому закону о компьютерном мошенничестве (Computer Fraud and Abuse Act, 1986).
2️⃣ Приговор: 3 года условно, 400 часов общественных работ, штраф $10 050 плюс расходы на надзор.
3️⃣ Инцидент привёл к созданию CERT (Computer Emergency Response Team) — первой команды реагирования на киберинциденты, которая существует до сих пор.
А сам Моррис? Сейчас он профессор MIT и сооснователь Y Combinator — одного из самых известных стартап-акселераторов в мире, через который прошли Dropbox, Airbnb, Stripe и Reddit.
Источники: Morris worm, Robert Tappan Morris, The Morris Worm, United States v. Morris.
@devs_books
2 ноября 1988 года 23-летний аспирант Корнелльского университета Роберт Таппан Моррис запустил программу, которая должна была просто посчитать, сколько компьютеров подключено к ARPANET (предшественник интернета). Программа копировала себя с машины на машину — и всё бы ничего, но Моррис допустил ошибку в коде.
Он добавил проверку: если машина уже заражена — не копироваться повторно. Но потом подумал, что хитрые админы могут обмануть червя, заставив компьютеры всегда отвечать «уже заражён». Поэтому он сделал так, что в 14% случаев червь копировал себя независимо от ответа. Это и стало роковой ошибкой.
Червь начал копироваться снова и снова на одни и те же машины. Компьютеры перегружались от количества запущенных копий и падали. За несколько часов вышло из строя около 6000 машин — примерно 10% всего тогдашнего интернета. Ущерб оценили в $10 миллионов.
Интересно, что Моррис запустил червя не из Cornell, а с компьютера в MIT — специально, чтобы сложнее было отследить. Не помогло.
Последствия:
А сам Моррис? Сейчас он профессор MIT и сооснователь Y Combinator — одного из самых известных стартап-акселераторов в мире, через который прошли Dropbox, Airbnb, Stripe и Reddit.
Источники: Morris worm, Robert Tappan Morris, The Morris Worm, United States v. Morris.
@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍3🤔3
Две игры, после которых вы наконец поймёте Flexbox и Grid
Если каждый раз гуглите «как центрировать div» — попробуйте эти две штуки. Серьёзно, 30 минут на каждую — и CSS-раскладки перестанут быть магией.
➡️ Flexbox Froggy
24 уровня, на каждом нужно написать CSS, чтобы лягушки попали на свои кувшинки. Начинается с простого
Играть: https://flexboxfroggy.com
➡️ Grid Garden
То же самое, но для CSS Grid. 28 уровней, нужно поливать морковки, задавая правильные
Играть: https://cssgridgarden.com
Обе игры бесплатные, на английском, но интуитивно понятные — там буквально два слова текста на уровень.
@devs_books
Если каждый раз гуглите «как центрировать div» — попробуйте эти две штуки. Серьёзно, 30 минут на каждую — и CSS-раскладки перестанут быть магией.
24 уровня, на каждом нужно написать CSS, чтобы лягушки попали на свои кувшинки. Начинается с простого
justify-content: flex-end, заканчивается комбинациями из flex-direction, align-items, flex-wrap и order. К концу игры свойства flexbox уложатся в голове на уровне мышечной памяти.Играть: https://flexboxfroggy.com
То же самое, но для CSS Grid. 28 уровней, нужно поливать морковки, задавая правильные
grid-column, grid-row, grid-template и прочие свойства. После прохождения сетки перестают казаться чем-то страшным.Играть: https://cssgridgarden.com
Обе игры бесплатные, на английском, но интуитивно понятные — там буквально два слова текста на уровень.
@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Разработчик Omri выложил в открытый доступ свой 5-часовой курс по backend-разработке.
Что внутри: курс покрывает весь путь от нуля до деплоя. PostgreSQL с нуля (создание таблиц, джойны, CTE, транзакции), основы Python, затем Flask API с подключением к базе. Отдельные блоки про Docker, Kubernetes (с Minikube), Linux-команды и Git.
Интересные практические темы:
🔘 Аутентификация через JWT с ролями (admin/guest)
🔘 Защита от SQL-инъекций
🔘 Background-задачи через threading в API
🔘 HTTPS, хеширование vs шифрование
🔘 Защита от timing-атак при логине
Реакция сообщества: в комментариях хвалят за Docker/Kubernetes секции — многие избегают эти темы до последнего, а потом приходится разбираться в авральном режиме. Один из комментаторов справедливо заметил, что не хватает акцента на документацию — навык, который backend-разработчики часто недооценивают.
Видео либо файлом в этом посте, либо на YT.
@devs_books
Что внутри: курс покрывает весь путь от нуля до деплоя. PostgreSQL с нуля (создание таблиц, джойны, CTE, транзакции), основы Python, затем Flask API с подключением к базе. Отдельные блоки про Docker, Kubernetes (с Minikube), Linux-команды и Git.
Интересные практические темы:
Реакция сообщества: в комментариях хвалят за Docker/Kubernetes секции — многие избегают эти темы до последнего, а потом приходится разбираться в авральном режиме. Один из комментаторов справедливо заметил, что не хватает акцента на документацию — навык, который backend-разработчики часто недооценивают.
Видео либо файлом в этом посте, либо на YT.
@devs_books
Media is too big
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍3🔥1
15 команд терминала macOS, которые реально пригодятся — подборка от Tproger, без воды, с примерами.
🔘
🔘
🔘
Больше в статье:
find ~/Documents -name "*.pdf" — найти все PDF в папкеdu -sh ~/* | sort -hr | head -10 — топ-10 самых жирных папокnetworkQuality — встроенный тест скорости (с Monterey)Больше в статье:
Please open Telegram to view this post
VIEW IN TELEGRAM
Tproger
15 полезных команд терминала macOS для начинающих пользователей
Команды терминала macOS для новичков: поиск файлов, очистка диска, управление процессами, скрытые настройки системы. Синтаксис и примеры для каждой команды.
👍3
Бесплатный курс Python от университета Хельсинки получил обновление
Python Programming MOOC 2025 — полностью бесплатный курс от University of Helsinki, один из лучших структурированных курсов для новичков.
Что внутри
🔘 От переменных до ООП за 14 недель
🔘 Автоматическая проверка заданий прямо в браузере
🔘 Никаких видео на 10 часов — короткие блоки теории + сразу практика
🔘 Сертификат по завершении
Почему именно этот
Хельсинкский курс годами считается эталоном для самообучения. Его рекомендуют чаще, чем платные альтернативы. Фокус на решении задач, а не на просмотре лекций.
📎 https://programming-25.mooc.fi
@devs_books
Python Programming MOOC 2025 — полностью бесплатный курс от University of Helsinki, один из лучших структурированных курсов для новичков.
Что внутри
Почему именно этот
Хельсинкский курс годами считается эталоном для самообучения. Его рекомендуют чаще, чем платные альтернативы. Фокус на решении задач, а не на просмотре лекций.
@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Microsoft выложил бесплатный 12-недельный курс Web Dev for Beginners на GitHub: 24 урока, каждый с квизами, проектом и заданием. HTML/CSS/JS через создание террариума, браузерного расширения и космической игры
Что ещё интереснее — есть официальный перевод на русский!
📎 GitHub: https://github.com/microsoft/Web-Dev-For-Beginners
@devs_books
Что ещё интереснее — есть официальный перевод на русский!
@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Большой гайд для тех, кто хочет войти в аналитику с нуля или из смежной сферы.
Внутри:
🔘 Что реально делает аналитик (спойлер: не только SQL-запросы)
🔘 Какие навыки нужны и в каком порядке учить
🔘 Специализации: продуктовый, маркетинговый, BI, финансовый
🔘 Зарплаты по грейдам: junior 60–100k, middle 100–180k, senior от 180k
🔘 Пошаговый план обучения с ресурсами
🔘 15 типовых вопросов на собеседовании
@devs_books
Внутри:
@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
Tproger
Как стать аналитиком данных за 6–12 месяцев [гайд]
В статье — полный разбор профессии: от ключевых навыков (SQL, Python, статистика) до карьерного пути и зарплат по регионам.
👍2👾1
По данным World Economic Forum, 44% профессиональных навыков обновятся к 2027 году. В статье на Tproger разобрали, что учить, чтобы не остаться за бортом.
@devs_books
@devs_books
Tproger
Какие навыки в IT будут решающими в 2026 году: разбор по специализациям
Разбираем, какие скилы и знания станут обязательными в 2026 году, что будут ценить работодатели и как новичку не потеряться на входе в ИТ-индустрию
👍1🤔1
Learn Git Branching — наконец понять, что делают rebase, cherry-pick и merge. Если вы до сих пор работаете с гитом по принципу «commit, push, молиться», есть бесплатный тренажёр, после которого всё встаёт на свои места.
По сути браузерная игра, где вы вводите git-команды, а на экране в реальном времени рисуется дерево коммитов. Видно, как ветки расходятся, сливаются, перебазируются. Не нужно ничего устанавливать — всё работает прямо в браузере.
Что там есть:
🔘 Уровни от базовых (commit, branch, checkout) до продвинутых (rebase -i, cherry-pick, reflog)
🔘 Отдельный блок про работу с remote-репозиториями (fetch, pull, push)
🔘 «Git-гольф»: задача — пройти уровень за минимум команд
Интерфейс на английском, но команды — это обычный git, так что разобраться несложно. Можно пройти за пару вечеров, и после этого конфликты при мерже перестанут вызывать панику.
Есть ещё Oh My Git — десктопная игра с похожей идеей, но там нужно скачивать приложение.
📎 Ссылка: https://learngitbranching.js.org
@devs_books
По сути браузерная игра, где вы вводите git-команды, а на экране в реальном времени рисуется дерево коммитов. Видно, как ветки расходятся, сливаются, перебазируются. Не нужно ничего устанавливать — всё работает прямо в браузере.
Что там есть:
Интерфейс на английском, но команды — это обычный git, так что разобраться несложно. Можно пройти за пару вечеров, и после этого конфликты при мерже перестанут вызывать панику.
Есть ещё Oh My Git — десктопная игра с похожей идеей, но там нужно скачивать приложение.
@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Не знаете, в чём встречать Новый год? Не беда
Мы как раз собрали стек новогодних нарядов, чтобы вы могли сиять ярче, чем любая гирлянда. Скорее заходите в нашу примерочную и выбирайте скин!
Реклама
Мы как раз собрали стек новогодних нарядов, чтобы вы могли сиять ярче, чем любая гирлянда. Скорее заходите в нашу примерочную и выбирайте скин!
Реклама
😁1🗿1
Два бесплатных сайта, где можно писать SQL-запросы и учиться прямо в браузере и сразу видеть результат. Никакой регистрации, никаких IDE — открыл и пишешь.
➡️ SQLBolt — пошаговые уроки от SELECT до JOIN и подзапросов. Каждый урок — короткое объяснение + 3–5 задач, которые нужно решить в редакторе на странице. Подходит тем, кто знает SQL поверхностно и хочет закрыть пробелы.
📎 Ссылка: https://sqlbolt.com
➡️ SQL Practice — 60+ задач на трёх базах данных: HR (сотрудники, отделы, зарплаты), e-commerce (заказы, товары, клиенты) и школа (студенты, курсы). Задачи разбиты по сложности: Easy, Medium, Hard. Есть подсказки и готовые решения.
📎 Ссылка: https://www.sql-practice.com
Как использовать:
🔘 Если давно не писали SQL — начните с SQLBolt, там всё разжёвано
🔘 Если базу знаете, но хотите размяться — идите сразу на sql-practice и берите Medium/Hard
🔘 15–20 минут в день в течение недели — и джойны с группировками перестанут быть проблемой
@devs_books
Как использовать:
@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2
Видеотуториал: Docker для тех, кто откладывал
Если вы до сих пор запускаете проекты командой «у меня работает, а у тебя не знаю», пора разобраться с Docker. Вот конкретное видео, после которого базовые вещи станут понятны. Автор объясняет на примерах: что такое контейнер, чем отличается от виртуалки, как запустить готовый образ, как написать свой Dockerfile. Всё с демонстрацией в терминале.
📎 Видео на YT или в этом посте снизу
Если хотите глубже — есть полный курс на 3+ часа, где добавляются Docker Compose, сети, multi-stage builds и деплой на Docker Hub.
📎 Три часа с индийским акцентом на YT
Совет: не пытайтесь запомнить все команды. Посмотрите видео, параллельно повторяя в терминале, а потом заведите себе шпаргалку с 10–15 командами, которые реально используете. Остальное спросите у GPT, когда понадобится.
@devs_books
Если вы до сих пор запускаете проекты командой «у меня работает, а у тебя не знаю», пора разобраться с Docker. Вот конкретное видео, после которого базовые вещи станут понятны. Автор объясняет на примерах: что такое контейнер, чем отличается от виртуалки, как запустить готовый образ, как написать свой Dockerfile. Всё с демонстрацией в терминале.
Если хотите глубже — есть полный курс на 3+ часа, где добавляются Docker Compose, сети, multi-stage builds и деплой на Docker Hub.
Совет: не пытайтесь запомнить все команды. Посмотрите видео, параллельно повторяя в терминале, а потом заведите себе шпаргалку с 10–15 командами, которые реально используете. Остальное спросите у GPT, когда понадобится.
@devs_books
Media is too big
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Расшифровка bash-команд по частям
Вы копируете команду из интернета:
Explainshell разбирает команду на части и показывает, за что отвечает каждый флаг. Просто вставляете команду — получаете объяснение.
Ссылка: https://explainshell.com
Работает с основными утилитами Linux/Unix вроде find, awk, sed и других.
@devs_books
Вы копируете команду из интернета:
tar -xzvf archive.tar.gz или find . -name "*.py" | xargs grep "TODO" — и не понимаете, что там происходит.Explainshell разбирает команду на части и показывает, за что отвечает каждый флаг. Просто вставляете команду — получаете объяснение.
Ссылка: https://explainshell.com
Работает с основными утилитами Linux/Unix вроде find, awk, sed и других.
@devs_books
🔥3❤2
ThePrimeagen (настоящее имя Michael Paulson) — бывший senior-инженер Netflix, сейчас ведёт YouTube и Twitch. Известен тем, что говорит прямо, без корпоративной вежливости.
Что полезного:
🔘 Разбирает, как на самом деле устроена работа в больших компаниях
🔘 Стримит изучение новых языков с нуля — видно реальный процесс, а не вылизанный туториал
🔘 Часто реагирует на статьи и посты с Reddit — получается разбор с комментариями опытного разработчика
Видео для старта:
🔘 «How to learn programming» (интервью с Lex Fridman) — про подход к изучению языков
🔘 «Tutorials Are KILLING Your Growth» — почему бесконечные туториалы не работают
🔘 «Advice for young programmers» — советы начинающим
Канал: https://www.youtube.com/@ThePrimeagen
Стиль резкий, но честный. Если устали от мотивационных речей — зайдёт.
@devs_books
Что полезного:
Видео для старта:
Канал: https://www.youtube.com/@ThePrimeagen
Стиль резкий, но честный. Если устали от мотивационных речей — зайдёт.
@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Если взять конкретный язык, то всё может быть ещё хуже.
В Python, например, тип
🔘 PyObject header — счётчик ссылок + указатель на тип (~16 байт на 64-бит)
🔘 PyLongObject — структура для хранения целых чисел произвольной длины (~12 байт дополнительно)
Можно проверить самостоятельно:
Почему так расточительно?
Python оптимизирован для удобства и гибкости, а не для экономии памяти. Зато True и False — синглтоны (существует только по одному экземпляру каждого), так что в реальных программах это не создаёт проблем.
Для компактного хранения множества булевых значений используют
@devs_books
В Python, например, тип
bool наследуется от int, поэтому True и False — это полноценные объекты — целые числа. Каждый объект в CPython несёт накладные расходы:Можно проверить самостоятельно:
import sys
print(sys.getsizeof(True)) # 28
print(sys.getsizeof(False)) # 28
Почему так расточительно?
Python оптимизирован для удобства и гибкости, а не для экономии памяти. Зато True и False — синглтоны (существует только по одному экземпляру каждого), так что в реальных программах это не создаёт проблем.
Для компактного хранения множества булевых значений используют
numpy.array с dtype=bool (1 байт на значение) или битовые массивы.@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5❤4
Вайб-кодинг выходит на новый уровень! На днях появился плагин, который позволяет Claude Code звонить вам на телефон. Вот прям как на картинке — через общение голосом.
Запустил задачу, ушёл. Claude закончил, застрял или нужно принять решение — набирает вам и спрашивает что делать.
Под капотом Twilio для звонков, который формально пока что должен в России работать, будет звонок с иностранного номера. Вроде логично, Клод живёт за рубежом, оттуда и будет звонить. Для синтеза и распознавания голоса нужен ключ OpenAI API и аккаунт ngrok для проброса веб-хуков.
У проекта уже почти 1000 звёзд и 98 форков всего за несколько суток после релиза.
@devs_books
Запустил задачу, ушёл. Claude закончил, застрял или нужно принять решение — набирает вам и спрашивает что делать.
Под капотом Twilio для звонков, который формально пока что должен в России работать, будет звонок с иностранного номера. Вроде логично, Клод живёт за рубежом, оттуда и будет звонить. Для синтеза и распознавания голоса нужен ключ OpenAI API и аккаунт ngrok для проброса веб-хуков.
У проекта уже почти 1000 звёзд и 98 форков всего за несколько суток после релиза.
@devs_books
🔥8😁5
Часы, которые показывают текущее время как hex-цвет
https://sdushantha.github.io/hexclock/
@devs_books
https://sdushantha.github.io/hexclock/
@devs_books
👍7
Большой гайд по фуллстеку на 2026 от разработчика с 10-летним опытом. Не список фреймворков, а практические советы — что реально нужно, что переоценено, и какие ошибки он видит на собеседованиях.
➡️ Главная мысль
Фуллстек — это не эксперт во всём. Это T-shaped разработчик: широкие базовые знания по всему стеку + глубокая экспертиза в чём-то одном. Тот, кто может довести фичу от идеи до продакшена, не застревая на каждом шаге.
➡️ Что автор советует учить
🔘 Фундамент (HTTP, как работает браузер, JavaScript глубоко) — важнее любого фреймворка
🔘 TypeScript — уже не опционально
🔘 PostgreSQL по дефолту, NoSQL только когда есть конкретная причина
🔘 Docker на базовом уровне, Kubernetes — не нужен пока сам не поймёшь зачем
🔘 Деплой: начинать с Vercel/Railway, не с AWS
➡️ Что можно пропустить
Каждый новый JS-фреймворк, WebAssembly, WebGL, сложные паттерны архитектуры. Фокус на том, что решает реальные задачи.
📎 https://dev.to/thebitforge/the-complete-full-stack-developer-roadmap-for-2026-2i0j
@devs_books
Фуллстек — это не эксперт во всём. Это T-shaped разработчик: широкие базовые знания по всему стеку + глубокая экспертиза в чём-то одном. Тот, кто может довести фичу от идеи до продакшена, не застревая на каждом шаге.
Каждый новый JS-фреймворк, WebAssembly, WebGL, сложные паттерны архитектуры. Фокус на том, что решает реальные задачи.
@devs_books
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
Вы знали, что ChatGPT логирует всё, что вы вводите в окно ввода? Даже если потом удалить — данные отправляются по мере их набора.
Т.е. вот вставили код с секретным ключом, потом удалили перед отправкой. А OpenAI всё равно этот ключ получила, он был переслан по сети и упал где-то на их сервер. И непонятно как потом был использован.
Другие системы тоже могут так делать, осторожнее с секретными данными.
@devs_books
Т.е. вот вставили код с секретным ключом, потом удалили перед отправкой. А OpenAI всё равно этот ключ получила, он был переслан по сети и упал где-то на их сервер. И непонятно как потом был использован.
Другие системы тоже могут так делать, осторожнее с секретными данными.
@devs_books
✍10💯3❤1