Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 51 min 50 sec ago

Как пытались (пере)программировать мозги, и что из этого получилось? Часть 6: гипноз, психоз и коматоз на службе MKUltra

Sat, 04/27/2024 - 14:00

В прошлой части мы рассказали, как неудачная попойка офицеров ЦРУ и военных химиков в доме у озера с подмешиванием коллегам ЛСД привела к гибели одного из лучших сотрудников проекта MKUltra Фрэнка Олсона. Тогда историю удалось замять и заставить молчать и полицию, и ФБР, и родственников погибшего. Сидни Готтлиб не только не притормозил свои опасные эксперименты, но и решил в очередной раз расширить экспериментальную базу. Тем самым он нечаянно выпустил из бутылки джинна, который поспособствует грандиозным изменениям американского общества в 1960-е годы… В чём многие увидят опасный антиамериканский заговор КГБ! Но об этом чуть позже, а пока что посмотрим, как ЦРУ экспериментировали с гипнозом, нанимали врачей-психопатов и умудрились в итоге выпустить джинна из своих рук Читать дальше →

Процесс перехода с монолитиной архитектуры на микросервсную

Sat, 04/27/2024 - 14:00

Общий процесс перехода с монолитной архитектуры на микросервисную:

1. Анализ текущей архитектуры: Оцените текущие монолитное приложение, определите его слабые места и проблемы, которые хотели бы решить с помощью микросервисной архитектуры. Это может включать в себя высокую сложность масштабирования, долгое время развертывания новой функциональности и трудности в поддержке.

2. Определение границ сервисов: Идентифицируйте компоненты и функциональные области монолита, которые могут быть выделены в отдельные микросервисы. Определите границы сервисов на основе их независимости и частоты изменений.

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

4. Постепенное выделение сервисов: Выделяйте сервисы постепенно из монолита, начиная с наиболее критичных и независимых компонентов. Это позволит снизить риски и обеспечить плавный переход к новой архитектуре.

5. Реорганизация кода и данных: Перерабатывайте код и базу данных монолита, чтобы они могли работать с новой микросервисной архитектурой. Это может включать в себя разделение больших модулей на более мелкие, перераспределение функциональности между сервисами и переход к отдельным базам данных для каждого сервиса.

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

Читать далее

[Перевод] Путь к потрясающему CSS Easing с помощью новой функции linear()

Sat, 04/27/2024 - 13:53

С появлением на горизонте новой CSS функции linear() возможности создания естественных анимаций и переходов в будущем значительно расширяются. В этой статье Джейхи Томпкинс рассматривает текущее состояние CSS easing и демонстрирует, чего можно ожидать от linear(), включая удобные инструменты для работы с ней уже сегодня.

Читать далее

Предложен новый тип аккумуляторов — натрий-ионный высокой емкости. Что это за технология и какие у нее преимущества?

Sat, 04/27/2024 - 13:34

Источник: theengineer

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

[Перевод] Применение чистой архитектуры в Go

Sat, 04/27/2024 - 13:01


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

На старте проекта приходится принимать множество решений. Большинство инженеров при этом рассматривают область применения проекта и решают, при помощи каких инструментов он будет реализовываться. Речь, в частности, о языках программирования, фреймворках, базах данных, внешних API, вариантах развёртывания. Принимая такие решения на самых ранних этапах, они замыкаются на этих инструментах, пронизывают ими всю базу кода, в результате чего её становится сложно менять и поддерживать.

Большинство этих инструментов – это частности, и выбор большинства из них (кроме языка программирования) можно на некоторое время отложить, пока проект не окрепнет. Поэтому на ранних этапах разработки проекта стоит уделить внимание не тому, при помощи каких инструментов пойдёт реализация. Лучше смоделировать предметную область проекта, а к вышеупомянутым инструментам подходить так, как следует — то есть, как к частностям. Разумеется, чтобы проект был реализован, с такими деталями тоже нужно определиться, но они могут оставаться в некоторой отдельной части кода, не относящейся к предметной области — там, где их будет легко менять, удалять или заменять по нашему усмотрению.

Для решения именно таких проблем с сильной связностью кода многоопытные инженеры создали ряд архитектурных паттернов. Таковы, в частности, чистая архитектура Роберта Мартина («дядюшки Боба»), гексагональная архитектура Алистера Кокбёрна и явная архитектура Герберто Грацы. Читать дальше →

Как построить убежище и (не)облажаться

Sat, 04/27/2024 - 13:00

Вселенная культовой игры Fallout получила очередное перерождение с выходом сериала от Amazon. Хотя фабула произведения (почти) и не пересекается с играми, главная сюжетная арка осталась прежней: сливки общества укрываются в убежищах от ядерного безобразия, а выйдя на поверхность, оказываются совершенно не готовы к царящей там анархии. Как построить качественный бункер и не облажаться, и что на самом деле случится с людьми и убежищем даже не за двести, а всего за два года изоляции? Под впечатлением от сериала вспоминаем самый масштабный эксперимент по созданию «прототипа убежища» и разбираемся, насколько обнадеживающими оказались его результаты. Спойлер — не очень.

Читать далее

Остаться в живых (keepalive) feat. HTTP/2, Go & gRPC-Go

Sat, 04/27/2024 - 12:59

Привет, Хабр!) Меня зовут Ильяс. В этой статье мы разберём известную идею — keepalive в межсервисном взаимодействии, которая спасла уже не одну компанию в трудное время :). Но чтобы добавить интереса, мы разберём, какие проблемы в keepalive принесли современные технологии (ведь что может пойти не так с этой простой идеей?). Поэтому в статье мы рассмотрим механизмы, которые позволяют проверять стабильность соединения между клиентом и сервером в случае, когда обычные TCP keepalive из-за сложности архитектуры не могут определить состояние сервера.

Остаться в живых

Who's online

There are currently 1 user and 1 guest online.