ch
Feedback
Merion Academy

Merion Academy

前往频道在 Telegram

Самое важное про IT на доступном языке. Сотрудничество: @olegpohl Служба поддержки: https://t.me/merion_academy_bot

显示更多
8 801
订阅者
-424 小时
+287
+15830
帖子存档
Ты пользуешься браузером каждый день, но понятия не имеешь, как он захватил мир 🙈 Эта история, где рушились империи, сжигали
Ты пользуешься браузером каждый день, но понятия не имеешь, как он захватил мир 🙈 Эта история, где рушились империи, сжигались миллиарды, а разработчики втыкали друг другу палки в колеса. В новом видео прошлись по всей истории: от первого браузера до того, как Chrome стал главным. • Кто придумал браузер и почему его код отдали бесплатно • Как Netscape стал миллиардной компанией за пару лет • Почему Internet Explorer победил, но все равно проиграл • Кто сейчас владеет интернетом (спойлер: это не Microsoft) Как всегда - без занудства, с мемами и историческими перлами 👋 Где смотреть: 😁 YouTube 😁 VK

Когда-то давно, в диком и не дружелюбном интернете, появился язык под названием JScript. И если вам кажется, что это просто о
Когда-то давно, в диком и не дружелюбном интернете, появился язык под названием JScript. И если вам кажется, что это просто опечатка от JavaScript - нет, все куда интереснее 👍 В 90-х Microsoft решила не просто использовать JavaScript от Netscape, а сделать свою версию - JScript. Причина была простая: лицензии, контроль и желание не отставать в браузерной гонке с Netscape Navigator. Так JScript стал частью Internet Explorer и быстро разошелся по миллионам компьютеров. Проблема? Он был «почти как JavaScript», но не совсем.
На практике это означало одно: сайты начинали вести себя по-разному в разных браузерах. Где-то код работал идеально, а где-то - ломался без объяснений. Разработчики буквально писали отдельные куски логики под разные браузеры. Появились знаменитые куски кода «если Internet Explorer, то делаем так…».
Это породило настоящий хаос несовместимости: — разные реализации одного и того же языка — разные объекты и API — баги, которые были «фичами» только в одном браузере Веб начал трещать по швам 🪖
Но именно этот хаос стал толчком к стандартизации. В итоге появился ECMAScript - единый стандарт, который должен был привести все реализации к общему знаменателю. Со временем браузеры начали сближаться, а различия - уменьшаться.
JScript в итоге ушел в историю вместе с эпохой Internet Explorer, но оставил после себя важный урок: без стандартов интернет превращается в зоопарк несовместимых технологий. Сегодня мы пишем код, который работает почти везде. И во многом это благодаря тем самым болезненным экспериментам 90-х 🙂

Да, знатоки, босс, конечно, мог учинить такое, но на самом деле это была DDoS-атака 🤵 Дело вот в чем: 14-летний геймер заруб
Да, знатоки, босс, конечно, мог учинить такое, но на самом деле это была DDoS-атака 🤵 Дело вот в чем: 14-летний геймер зарубился с хакерами в онлайн-игре. Те в ответ обрушили на него DDoS-атаку, но настолько мощную, что интернет-провайдер компании Рэя лег на несколько часов. Оба канала - и основной, и резервный - оказались завязаны на одного провайдера, потому что их магистрали проходили через одну инфраструктуру и резервирование не спасло 🪖
Но вот в чем самый эпик этой ситуации. Когда Рэй доложил начальнику, что случилось, тот вдруг побледнел. На вопрос «Что случилось?» он ответил: «Это был мой сын». Занавес 🤣
Как думаете, что было за это сыну начальника? 🔥 — отец купил ему курсы по уважительному общению в онлайн-играх 😄 — устроил к себе на работу на позицию HR

Знатоки, интересный случай приключился в одной фармацевтической компании США 🍿 Парень по имени Рэй работал там сисадмином и вместе с коллегой они настроили автоматическое ночное резервное копирование по оптоволокну в удаленное хранилище. Рэй - человек предусмотрительный, поэтому сделал две умные вещи: — подключил более медленный кабельный интернет от другого провайдера для остального трафика компании — настроил резервирование каналов: если один падал, второй подхватывал нагрузку Он знал, что кабельное соединение не обладает достаточной пропускной способностью для резервных копий, но был уверен, что данные будут в безопасности. Пока однажды утром не увидел это:
Резервное копирование не состоялось из-за проблем с подключением.
Вопрос: что же произошло? 😱 — хакеры перехватили и зашифровали данные 😄 — DDoS-атака на провайдера вырубила оба канала одновременно, потому что геймер поссорился с хакерами 👀 — босс случайно отключил сервер, когда пылесосил

Классные штуки, которые мы сделали для вас ❤️ 1. Удобная платформа с ачивками У нас есть LMS, где ты всегда видишь свой прогр
Классные штуки, которые мы сделали для вас ❤️ 1. Удобная платформа с ачивками У нас есть LMS, где ты всегда видишь свой прогресс, достижения и понимаешь, сколько уже пройдено. Это помогает не бросить на половине пути. 2. Чат с менторами и студентами Там можно пообщаться с другими студентами и задать вопросы по курсам. Менторы подключаются в зависимости от сложности вопросов. 3. Смена курса без доплат Бывает, что в процессе понимаешь: «Я хочу не Python, а сети». У нас ты можешь бесплатно перейти на другой курс, включая более дорогие. 4. Партнерская программа Если тебе понравилось и хочешь посоветовать наши курсы друзьям - получишь от 10 до 20% с покупок реальными деньгами. Без ограничений. Если ты только присматриваешься, начни с регистрации в нашей LMS системе, там сможешь выбрать бесплатные вводные уроки и оценить подачу! ❤️

Как университетский профессор случайно создал самую популярную базу данных в мире ❓ Спойлер: он мог запатентовать ее и стать
Как университетский профессор случайно создал самую популярную базу данных в мире ❓ Спойлер: он мог запатентовать ее и стать миллиардером, но вместо этого раздал бесплатно. Сейчас на PostgreSQL работают Apple, Uber, OpenAI, банки, госсервисы и даже Международная космическая станция. А по опросам разработчиков она обогнала всех конкурентов и стала номером один в мире 😥 В новом видео прошлись по всей истории PostgreSQL от Ingres до мирового господства: • Почему разработчики массово бегут с MySQL на PostgreSQL • Как профессор Стоунбрейкер получил миллион долларов и премию Тьюринга • Что такое ACID и MVCC и почему это важно • Зачем на МКС запустили PostgreSQL и при чем тут слоник Как всегда - без занудства, с мемами и историческими перлами! Где смотреть: 😁 YouTube 😁 VK

А ты знал, что в каждом процессоре Intel i386 спрятана пасхалка? ❓ Можешь не доставать микроскоп - там инициалы инженера PG и
А ты знал, что в каждом процессоре Intel i386 спрятана пасхалка? Можешь не доставать микроскоп - там инициалы инженера PG или Пэт Гелсингер. В 1985 году он решил закоммитить свой автограф прямо в схему. Размер букв - 0,2 мм. Разглядеть можно только под микроскопом 😉 Проблема в том, что в Intel такие пуши были запрещены и, более того, строго наказывались! Когда главный менеджер заревьюил чертеж, заметил лишние символы и спросил «это что?». Пэт начал нести наукообразную чушь про «конфигурацию подложки для сбора тока утечки». И главный инженер Intel купился. Апрув получен. Инициалы остались и перекочевали на следующие поколения. 40 лет никто ничего не замечал 😄

По статистике, каждые 39 секунд происходит хакерская атака 🪖 За прошлый год число кибератак выросло в 2,5 раза. Компании тер
По статистике, каждые 39 секунд происходит хакерская атака 🪖 За прошлый год число кибератак выросло в 2,5 раза. Компании теряют данные и деньги, а иногда и то и другое сразу. Поэтому бизнес все больше нуждается в специалистах по кибербезу 😏 Минимум, который нужно знать, чтобы стать востребованным спецом: • Как работают DDoS, MITM, SQL-инъекции и другие виды атак • Как настраивать межсетевые экраны и системы обнаружения вторжений • Как шифровать данные и управлять доступом • Как анализировать трафик через Wireshark и tcpdump • Как защищать конечные устройства Все это можно изучить у нас на курсе по Кибербезопасности, залетай и погнали учиться! 🏃‍♀️

Помните все кричали, что вайбкодинг полностью заменит программистов? 😢 Сейчас те, кто так делал, разгребают легаси, дыры в б
Помните все кричали, что вайбкодинг полностью заменит программистов? 😢 Сейчас те, кто так делал, разгребают легаси, дыры в безопасности и кучу технического долга. Сам автор термина «vibe coding» Андрей Карпатый от него отказался в пользу нового подхода. Что пошло не так и какая из этого мораль - подробно разобрали в статье в нашей Базе знаний, заглядывай ☕️

Все верно, знатоки 😉 Проблема действительно была в CI/CD. Система была настроена так: если сборка падала, она просто брала последний успешный артефакт из кэша и молча катила его в прод. Разработчик исправил баг, запушил, сборка прошла - но артефакт подменился старым, а новый никто не заметил. Полгода прод работал на старом коде, баг мирно спал и не проявлялся. Потом CI/CD сбросил кэш, взял свежий артефакт - и баг вылез снова. Как думаете, кого наказали за этот косяк? 😱 — разработчика, который не проверил, что в прод улетел его фикс 👀 — инженера по CI/CD, который настроил эту магию с кэшем 😄 — тимлида, который подписывал релиз, не глядя

Знатоки, пятничка самое время новой загадки 🙈 Однажды команда разработчиков весь день не могла понять, почему прод падает с ошибкой, которую по логам «исправили год назад». Все работало, потом банально перезапустили сервер - и старый баг вылез снова. Разработчик, который его чинил, поклялся, что коммитил исправление. CI/CD говорил, что сборка прошла. Тимлид был уверен, что все ок. Но баг вернулся 👋 Вопрос: что произошло? 😄 — кто-то зафорсил пуш и случайно перетер правильный коммит 😱 — разработчик закоммитил исправление, но забыл запушить его на сервер 👀 — CI/CD делал вид, что собирает код, а на самом деле просто копировал старую версию из кэша

🐌 Объясняем за 30 секунд: Контейнер = коробка с приложением и всем, что ему нужно (либы, версии, конфиги). Запускается одина
🐌 Объясняем за 30 секунд: Контейнер = коробка с приложением и всем, что ему нужно (либы, версии, конфиги). Запускается одинаково везде - у тебя на ноуте, у коллеги на маке, в проде на Linux. Зачем оно тебе: • Конец историям «у меня же работает» • Развернуть сервис - это docker run, а не пляски с зависимостями • CI/CD, K8s, микросервисы - все на этом стоит Если ты в этом не шаришь, приходи учиться 📎

Хей, ребят! 👋 Новая неделя - новое видео Сурена Хореняна: зависимости через pip или через uv?
Управляйте зависимостями проекта через uv, откажитесь от простого pip, так как он требует больше действий и менее гибок.
Изучайте, сохраняйте и не забудьте ознакомиться с новыми вводными уроками курса Python с нуля 😉

Коммит потерял? Локальные правки горят? Прод сломался от твоей ветки? 😢 Изучи внимательно и сохранить не забудь: git reflog
Коммит потерял? Локальные правки горят? Прод сломался от твоей ветки? 😢 Изучи внимательно и сохранить не забудь: git reflog - покажет все коммиты, даже «удаленные». Восстановить можно почти все. git stash - спрятать незакоммиченные правки, чтобы переключить ветку. git restore -s - откатить отдельный файл к нужному коммиту. git cherry-pick - забрать один коммит из чужой ветки, не мержа все подряд. git bisect - бинпоиск по коммитам, чтобы найти, где именно ты все сломал. Не знаешь чем заняться на выходных - загляни на бесплатные вводные уроки 🎵

Все знают про Docker, Kubernetes и Terraform. А эти 5 неочевидных инструментов упускают, и зря, потому что они сильно упрощаю
Все знают про Docker, Kubernetes и Terraform. А эти 5 неочевидных инструментов упускают, и зря, потому что они сильно упрощают жизнь 🙈 1) k9s / https://github.com/derailed/k9s
Вот представь, сидишь и вбиваешь kubectl get pods, потом kubectl describe pod, потом kubectl logs -f, потом снова kubectl get pods, чтобы посмотреть, как там твой деплой. И так целый день. Или не надо представлять и уже знакомо? Встречай k9s - это терминальный UI для кубера, где все поды, сервисы, деплойменты, логи и шеллы доступны в две клавиши. После недели использования возвращаться к голому kubectl это как пересесть с автомата на коробку (в которой только первая передача).
2) dive / https://github.com/wagoodman/dive
Собрал образ, а он внезапно весит 1.2 ГБ. Открываешь Dockerfile, смотришь, вроде ничего лишнего. Почему гигабайт-то? А никто не знает, потому что Docker не показывает, что реально лежит внутри его слоев. dive показывает каждый слой, что в нем поменялось и сколько места занимает каждый файл. За полчаса с ним можно срезать образ в 2–3 раза, просто увидев, что apt не почистил кеш или что node_modules протекли в финальный слой.
3) direnv / https://github.com/direnv/direnv
Бывает заходишь в проект, делаешь source .env, потом идешь в соседний и забываешь, что в шелле все еще переменные от предыдущего. А через два часа ловишь, почему миграция накатилась на прод вместо стейджа. direnv сам подгружает переменные при заходе в директорию и убирает их при выходе. Один раз настроил .envrc и больше об этом не задумываешься. Кстати, и новичка в команду заводить проще: cd в папку, и окружение уже готово.
4) act / https://github.com/nektos/act
Или такая ситуация: написал workflow для GitHub Actions, пушнул, все упало. Поправил, пушнул, опять упало. Через 20 коммитов с названием "fix ci" наконец заработало, но история выглядит так, будто ты учился программировать прямо в main. act запускает GitHub Actions локально в Docker. Поправил yaml - прогнал у себя - увидел ошибку - поправил снова. Без лишнего фарша в истории и без необходимости объяснять тимлиду, почему ты заспамил репу.
5) sops / https://github.com/getsops/sops
Секреты в git коммитить нельзя - это все знают. Но как тогда хранить пароли от баз и API-ключи рядом с кодом, чтобы не таскасть их через тысячу чатиков и не разворачивать ради двух токенов полноценный Vault? sops шифрует только значения в YAML/JSON/env, оставляя структуру читаемой. Diff в пулл-реквесте остается осмысленным, ключи лежат в KMS/age/PGP, а .enc.yaml спокойно живет в репозитории. Особенно заходит в небольших командах, где Vault - это как из пушки по воробьям.
Не забудь сохранить, чтобы упростить себе жизнь 😏 И заглядывай на бесплатные вводные уроки с Филиппом на курсе DevOps-инженер с нуля.

Чек-лист: проверь, готов ли ты к собесу на junior DevOps? Сохрани и пройдись по списку перед подачей резюме. Если хотя бы 2 п
Чек-лист: проверь, готов ли ты к собесу на junior DevOps? Сохрани и пройдись по списку перед подачей резюме. Если хотя бы 2 пункта вызывают «эээ…» - собес ты завалишь 🪖 Минимум, который спрашивают почти везде: • Linux (без него никуда) • Сети - что происходит, когда ты вбиваешь URL в браузер • Git - не только pull/push, а еще rebase и решение конфликтов • Docker - образ, контейнер, том, сеть • CI/CD - собрал ли ты свой пайплайн хоть раз • YAML - да, без шуток, у всех болит Если в этом что-то плаваешь, приходи закрыть пробелы 😏 ➡️ Все курсы Merion Academy

Ловите легкую понедельничную задачу, знатоки 🤵 Перенесемся в середину 90-х. На один крупный завод, где производство не останавливается ни на минуту. По цеху разбросаны терминалы, подключенные к мейнфрейму - рабочие вбивают данные о деталях, движении запчастей, графиках. В один прекрасный день сисадмин получает звонок с цеха. Голос в трубке спокойный, но уверенный:
Я не могу войти в систему, когда стою.
Сисадмин проверяет питание, экран, пароль. Все ок. Рабочий повторяет:
Нет, вы не понимаете. Когда я сижу, я захожу. Все работает. А когда встаю - не могу.
Сисадмин пытается объяснить, что между стулом и клавиатурой нет никакой связи. Но рабочий стоит на своем. Тогда админ сдается и идет в цех. Он садится, вводит пароль рабочего - все работает.
Админ: Видите? Рабочий: А теперь выйдите, встаньте и попробуйте еще раз.
Админ выходит из системы, встает, вводит тот же пароль. Выдает ошибку. Вводит еще раз - снова ошибка. Он в недоумении. Как и пол цеха рабочих, стопившихся за его спиной 😄 Вопрос: что оказалось причиной? 😄 — на терминале стоял датчик движения, который блокировал ввод, если пользователь не сидит 🔥 — кто-то переставил местами две клавиши на клавиатуре, и сидя люди печатали вслепую, а стоя смотрели на руки 👀— в полу была спрятана магнитная лента, которая стирала пароль при попытке встать Ответ будет в комментах вечером 😉

Хэй, ребят! Такие нарезки из наших видосов выходят еще в TikTok! 🙈 Если вам удобно смотреть их там, то подписывайтесь! ➡️ Мы в TikTok

Новый видос от Сурена на тему: SQL запрос к sqlite: пример с инъекцией и параметрами ☕️ Важно правильно формировать запросы к базе данных: прямое форматирование SQL допускает инъекцию и может привести к потере данных или утечке. Поэтому необходимо передавать аргументы в запрос отдельно от SQL строки. Сурен Хоренян - автор курса Python-программист с нуля, на котором, кстати, мы тоже обновили бесплатные уроки! Добавили интерпретатор кода, ничего устанавливать не нужно, можно сразу писать код! ➡️ Залетай потестить

Как гений и параноик, которого боятся приглашать на конференции, создал движение свободного ПО, написал Emacs, придумал лицензию GPL и поссорился с половиной IT-мира? 🤔 Да да, мы на намекали в прошлом посте. Это Ричард Столлман - человек, без которого не было бы ни Linux, ни Android, ни GitHub в том виде, в котором мы его знаем. В новом видео прошлись по всей истории: • Почему его считают безумцем, но его идеи о приватности уже не кажутся такими странными • Как история с закрытым драйвером принтера привела к созданию GNU и «копилефту» • Почему он носит с собой плюшевого гну и отказывается от смартфонов • За что его ненавидят корпорации и почему без него не было бы опенсорса Как всегда - без занудства, с мемами и историческими перлами 😄 Где смотреть: 😁 YouTube 😁 VK