Feed aggregator

Компьютерные сети «под капотом»: детальный разбор по уровням OSI и TCP/IP

Habr.com - Sun, 05/04/2025 - 22:45

На собеседованиях часто задают знаменитый вопрос, узнаваемость которому по большей части дал facebook*: «Что происходит после того, как вы вводите URL сайта в адресную строку браузера и нажимаете Enter?». Несмотря на кажущуюся простоту, этот вопрос покрывает широкий спектр тем – DNS, TCP/IP, HTTP, и даже работу браузера. Разработчики разных уровней иногда теряются в деталях ответа. Понимание этого процесса важно для инженеров – оно показывает, как взаимодействуют между собой различные сетевые протоколы и уровни. Ниже мы шаг за шагом рассмотрим, как данные проходят через каждый слой сетевого стека, и проиллюстрируем это примерами.

Читать далее

«Родовое существо» vs. «Homo economicus»: Кто настоящий человек?

Habr.com - Sun, 05/04/2025 - 22:20

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

Читать далее

Go: не используйте http.Server.Serve и http.Server.ServeTLS одновременно

Habr.com - Sun, 05/04/2025 - 22:06

Эта заметка будет очень короткой. Но надеюсь, она кому-то спасёт несколько часов жизни.

У меня был код. К счастью, это было в тесте, а не в боевом коде, поэтому никто не пострадал.

Код создавал http.Server, запускал две гороутинки для обслуживания входящих соединений:

go func() {srvr.Serve(p)}()

go func() {srvr.ServeTLS(e, "", "")}()

Ну и дальше создавал клиента, делал к серверу обращения (HTTP GET) попеременно используя http и https ну и чего-то там проверял.

Всё прекрасно работало. До обновления с go1.23.8 до go1.24.2, пришедшего с 42-й Федорой.

А потом перестало. Стало время от времени (но отнюдь не всегда) вываливать разнообразные ошибки. Например, вот такие: Get "https://127.0.0.1:46167/": unexpected EOF. Или такие: Get "https://127.0.0.1:34757/": write tcp 127.0.0.1:54770->127.0.0.1:34757: write: connection reset by peer. Или даже вот такие, совсем загадочные: Get "https://127.0.0.1:42447/": http2: client conn could not be establish. HTTP/2 там, разумеется никто не включал и не собирался. А иногда всё работало и тест проходил правильно.

Самое поганое, что ошибка была плавающей.

В общем, не буду грузить подробностями, как я эту ошибку ловил. Но итог такой. Хотя это нигде и не документировано, но одновременно использовать http.Server.Serve и http.Server.ServeTLS на одном и том же экземпляре сервера нельзя. Тот из них, кто успеет прокрутиться первым, чего-то там инициализирует внутри сервера, прежде, чем уйти в accept loop, и второй после этого ломается. Ломается всегда ServeTLS, не-TLS-овскому Serve вроде как пофигу.

Так что будьте осторожны, и надеюсь, что эта заметка сохранила вам несколько часов жизни :)

Читать далее

Security-Enhanced Linux против  1С + Apache. Выключить нельзя мучаться

Habr.com - Sun, 05/04/2025 - 21:38

Навыки решения неизвестных Вам проблем в Linux, требуют определенного уровня понимания Linux. Установка 1С на Linux рано или поздно приведет Вас к изучению SElinux  (Security-Enhanced Linux (SELinux) is a Linux kernel security module that provides a mechanism for supporting access control security policies, including mandatory access controls (MAC)). Самое простое его отключить — это единственный выход, который предлагает 1С на ИТС. Но в корпоративной среде, Вам это не разрешит администратор и тогда приходится изучать логи и думать. Рассматривайте это не как очередную проблему Linux, а как хорошую возможность понять как работает Linux изнутри. К сожалению, чем больше сталкиваешься с SELinux, тем больше  вопросов к логичности архитектуры Linux.  Статья показывает как выжить с SElinux сложном практическом кейсе из импортозамещения в 1С.

Читать далее

А точно ли самый простой жанр?

Habr.com - Sun, 05/04/2025 - 21:29

А точно ли самый простой жанр?

Почему визуальные новеллы — это далеко не всегда «тонны текста со статичными картинками», а полноценный, трудоемкий жанр.

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

Прошло уже больше года разработки. Сотни часов. И теперь у меня встречный вопрос: а точно ли он простой?

Читать далее

Любое устройство BLE становится трекером AirTag без рута

Habr.com - Sun, 05/04/2025 - 21:03


Специалисты по безопасности разработали универсальный способ трекинга любых мобильных устройств через сеть «Локатор» (Apple FindMy) — с ведома или без ведома владельцев этих устройств. Метод обеспечивает точное определение координат, не используя GPS-навигацию и WiFi.

Система работает на любом устройстве с поддержкой Bluetooth Low Energy (BLE): на персональных компьютерах, ноутбуках, смартфонах и планшетах под управлением операционных систем Windows, Linux, Android и др. Требуется только установить приложение, которое будет выдавать себя за трекер AirTag в сети FindMy.
Читать дальше →

C#, Кодогенерация и DDD Часть 1 — Настраиваем проект и запускаем простой кодогенератор

Habr.com - Sun, 05/04/2025 - 20:46

В этом цикле статей рассмотрим как можно легко и быстро делать на C# любые однотипные действия просто навешивая атрибуты на доменные сущности

Читать далее

Как сделать AI бота для Битрикс24 с подключением к Tg, VK, Avito

Habr.com - Sun, 05/04/2025 - 20:24

Пошаговая инструкция: как сделать, обучить и подключить AI чат-бот первой линии к Битрикс24.

Бот с искусственным интеллектом будет отвечать в популярных мессенджерах и соцсетях через механизм "открытых линий" Битрикс24. Интегрируйте нейросети для общения в Whatsapp, Telegram, VK, AVITO, чате на сайте и другими каналами.

В статье мы узнаем:

▫️как подключить AI чат-бот к Bitrix24 и проверить уже через пару минут

▫️как настроить функционал чат-ботов Битрикса, чтобы они отвечали вместо менеджера

▫️разберём классические проблемы, которые возникают при обучении ИИ

▫️увидим как бот создаёт "события", такие как "жалоба" или "клиент хочет купить"

▫️изучим методы обучения и улучшения бота после его запуска, почему удобно событие "бот не знает ответа"

▫️узнаем о сложных кейсах, например использование технического сленга

▫️"троллим" бот, требуя от него написать статью про джинсы

▫️запишем в карточку сделки результаты диалога при помощи бизнес-процессов: что беспокоит клиента, нужны ли дополнительные услуги

▫️как получить типизированные результаты из диалога: дату заказа в виде даты, сумму или объём в виде цифры, и типизированные элементы типа "список" от Битрикс24

Читать далее

Как изменилась логика управления проектами с приходом искусственного интеллекта

Habr.com - Sun, 05/04/2025 - 19:30

Казалось бы, проект — он и есть проект. Есть цели, сроки, ресурсы, ответственность. Команда, бэклог, релизы, метрики.

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

Я веду AI-проекты не первый год, и могу точно сказать: управление такими системами требует другой оптики. Всё начинается с привычного project/product management — но уже на ранних этапах возникает ощущение, что ты управляешь не только задачами и людьми, а поведением. Плавающим, обучающимся, порой нелогичным.

Читать далее

Эволюция одноразовых кодов: от TAN к Passkeys

Habr.com - Sun, 05/04/2025 - 18:02

От TAN-листов и SMS-кодов до Passkeys и FIDO2 — за 20 лет одноразовые коды прошли путь от бумажек до криптографии.

Почему TOTP стал стандартом? Чем push-уведомления лучше? И правда ли, что будущее — без паролей?

В статье — краткий и наглядный разбор всей эволюции OTP: алгоритмы, уязвимости, UX и рекомендации для современных систем.

Читать далее

Чистый код — красивая архитектура. А работает ли это?

Habr.com - Sun, 05/04/2025 - 18:01

Вы пишете код не для компилятора — он съест любую абракадабру, если синтаксис верен. Вы пишете для людей, для того парня из соседнего отдела, который будет разбирать ваш код через полгода. Для себя, когда забудете, о чём думали в момент написания. Для тимлида, у которого нет времени расшифровывать ваши «фичи», замаскированные под техдолг. 

Грязный код — это про непонятные переменные, запутанные модули и решения «на скорую руку». Вас ждёт после такого потеря во времени и в лучшем случае косые взгляды коллег. К сожалению, непонятный код часто пишут не только из-за спешки, но и из-за неопытности и чрезмерного энтузиазма тех, кто хочет всё переделать.

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

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

Давайте разберём, как превратить кошмар в конфетку — детали внутри. Читать дальше →

openSUSE Leap 16 перешёл в статус Beta

Linux.org.ru - Sun, 05/04/2025 - 17:57

30 апреля 2025 года находящаяся в разработке версия 16.0 дистрибутива openSUSE Leap перешла в статус Beta. Глобальный выпуск намечен на октябрь этого же года.

Leap остётся традиционным полнофункциональным Linux-дистрибутивом. Людям, ищущим современную, иммутабельную систему с точечными выпусками, следует посмотреть в сторону Leap Micro. Он предназначен для контейнеризованных и виртуализированных рабочих нагрузок.

( читать дальше... )

 , ,

«Обсуждение лучше самой статьи». Почему это очередной миф о Хабре?

Habr.com - Sun, 05/04/2025 - 17:17

Когда я публиковал свои первые статьи на Хабре, мне было не по себе. Я опасался (но где‑то и надеялся) что сейчас мою статью разнесут по фактам въедливые зануды, которыми славен ресурс. Что они найдут все пограничные случаи, не подпадающие под общий вывод, найдут все технические ошибки, которые допускают лишь дилетанты и скинут десяток ссылок на статьи, где «это всё уже сто раз было».

Три года и 30 статей заставили меня относиться к мифу о многочисленности на Хабре положительно-въедливых зануд несколько более критично — не воспринимать его как априорную истину, а задаться вопросами «так ли это?» и «если не так, то почему?».

Подискутировать о дискуссии

Какие книги читают сотрудники Selectel, чтобы разбираться в продукте

Habr.com - Sun, 05/04/2025 - 17:12

Привет! На связи команда Selectel. Продуктовый менеджмент — это маркетинг, продажи, исследование потребителей, управление продуктом и другие. Чтобы глубже разбираться в этих сферах, собрали подборку из 12 полезных книг, которые рекомендуют наши продакт-менеджеры. В статье они поделились книгами о создании продуктов, которые считают лучшими и которые помогли им вырасти в профессии. После прочтения вы сможете эффективно управлять процессом разработки, взаимодействовать с клиентами и применять разные фреймворки. Читать дальше →

Как сделать редирект с JavaScript?

Habr.com - Sun, 05/04/2025 - 16:47

Вопрос перенаправлений кажется простым или не особо серьезным для обдумывания, но в будущем может вызвать проблемы при слишком халатном подходе.

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

Читать далее

Побег от WSL или как превратить старый ноутбук в домашний сервер для хранения данных и удаленной работы

Habr.com - Sun, 05/04/2025 - 16:36

Привет, Хабр! Хочу поделиться личным опытом превращения старенького ноутбука ASUS X552CL (Intel i3-3217U, 6 ГБ RAM, SSD + HDD), выпущенный 12 лет назад, в полноценный домашний сервер под Linux Ubuntu Server 24.04.5 LTS.

Получилось что-то вроде мини-датацентра на дому — он хранит файлы на жёстком диске с бэкапом в облаке, Docker-контейнеры крутит для дата-аналитики и даже имеет легковесный интерфейс XFCE, при этом есть потенциал к росту до терминала для управления умным домом. Расскажу, почему было решено отказаться от WSL на рабочем ноутбуке Huawei, как настроить удалённый доступ через xRDP (чтобы не было чёрного экрана), запустить там Docker, сборку Superset и JupyterLab с Anaconda (с разными версиями Python), прикрутить Samba-шару для домашнего использования и организовать бэкап в облачном хранилище. В этой статье будет немного технических деталей, щепотка шуток и парочка мемов с советскими плакатами.

Читать далее

Как я построил serverless OCR-сервис на AWS Lambda и Amazon Bedrock

Habr.com - Sun, 05/04/2025 - 16:29

В этом посте я расскажу, как на практике за пару часов реализовал serverless OCR-сервис на AWS, используя AWS Lambda и модель из Amazon Bedrock. Статья ориентирована на опытных AWS-архитекторов, поэтому мы углубимся в архитектуру, покажу код (Terraform для инфраструктуры и Python для Lambda), обсудим масштабирование, ограничения и прикинем стоимость решения в регионе eu-central-1 (Франкфурт).

Читать далее

Подробный обзор умных лампочек и выключателей Яндекс на протоколах Matter и Zigbee

Habr.com - Sun, 05/04/2025 - 16:16

Концепция «умного дома» уже по крайней мере десяток лет не нуждается в представлении, и кажется чрезвычайно простой. Исторически, однако, раз за разом оказывается, что простота концепции не транслируется в простоту практического исполнения. Последние устройства от Яндекса, как мне кажется, сопоставимы по качеству с обычными, «глупыми», а по сравнению с другими умными устройствами, не так дороги, и, как следствие, заслуживают соответствующего внимания.

Читать далее

Ост-Индские компании: государства в государстве, первые ЧВК и монополии в одном лице

Habr.com - Sun, 05/04/2025 - 15:59

Европейские монархи, сначала неохотно снаряжавшие в путь отважных (и не всегда гуманных) авантюристов, быстро осознали потенциальную выгоду от коммерческого освоения Индии и Азии. Они инициировали создание специальных частных компаний, которые получали право на монопольную торговлю с открытыми странами Востока. Все они назывались «Ост-Индскими». Об этом феномене мы подробно расскажем в нашем материале.

Читать далее

Who's online

There are currently 0 users and 3 guests online.
Syndicate content