P2P-форум с нуля | от NAT hole punching до автономной и полностью децентрализованной сети
Многие, кто работают с интернет-сокетами в любой сфере IT, задаются вопросом о пробросе портов. Связано это с тем, что практически во всех домашних/общественных/корпоративных роутерах реализован механизм NAT, который перекрывает прямой доступ к устройствам в этих подсетях извне, общаясь с внешним интернетом от их имени.
У NAT есть киллер-фича — он представляет собой идеальный фаервол: атаки извне не могут использовать порты локальных устройств напрямую, следовательно, это решает проблему атак на сетевую уязвимость ОС.
Но, это доставляет и неудобства, например, если ты захочешь подключиться или хотя бы увидеть устройство за NAT в благих целях, то ты чисто теоретически не сможешь это сделать — у него относительно тебя нет IP-адреса.
https://habr.com/ru/companies/ruvds/articles/761188/
@itmozg
Многие, кто работают с интернет-сокетами в любой сфере IT, задаются вопросом о пробросе портов. Связано это с тем, что практически во всех домашних/общественных/корпоративных роутерах реализован механизм NAT, который перекрывает прямой доступ к устройствам в этих подсетях извне, общаясь с внешним интернетом от их имени.
У NAT есть киллер-фича — он представляет собой идеальный фаервол: атаки извне не могут использовать порты локальных устройств напрямую, следовательно, это решает проблему атак на сетевую уязвимость ОС.
Но, это доставляет и неудобства, например, если ты захочешь подключиться или хотя бы увидеть устройство за NAT в благих целях, то ты чисто теоретически не сможешь это сделать — у него относительно тебя нет IP-адреса.
https://habr.com/ru/companies/ruvds/articles/761188/
@itmozg
👍3
Как работает ChatGPT: объясняем на простом русском эволюцию языковых моделей с T9 до чуда
В последнее время нам почти каждый день рассказывают в новостях, какие очередные вершины покорили языковые нейросетки, и почему они уже через месяц совершенно точно оставят лично вас без работы. При этом мало кто понимает — а как вообще нейросети вроде ChatGPT работают внутри? Так вот, устраивайтесь поудобнее: в этой статье мы наконец объясним всё так, чтобы понял даже шестилетний гуманитарий!
https://habr.com/ru/companies/ods/articles/716918/
@itmozg
В последнее время нам почти каждый день рассказывают в новостях, какие очередные вершины покорили языковые нейросетки, и почему они уже через месяц совершенно точно оставят лично вас без работы. При этом мало кто понимает — а как вообще нейросети вроде ChatGPT работают внутри? Так вот, устраивайтесь поудобнее: в этой статье мы наконец объясним всё так, чтобы понял даже шестилетний гуманитарий!
https://habr.com/ru/companies/ods/articles/716918/
@itmozg
👍6
Как компании передают код в продакшн?
Приведенная ниже схема иллюстрирует типичный рабочий процесс.
Шаг 1: Процесс начинается с того, что владелец продукта создает пользовательские истории на основе требований.
Шаг 2: Команда разработчиков берет пользовательские истории из бэклога и помещает их в спринт, рассчитанный на двухнедельный цикл разработки.
Шаг 3: Разработчики коммитируют исходный код в хранилище кода Git.
Шаг 4: В Jenkins запускается сборка. Исходный код должен пройти модульные тесты, порог покрытия кода и гейты в SonarQube.
Шаг 5: После успешного завершения сборки она сохраняется в артефакторике. Затем сборка развертывается в среде разработки.
Шаг 6: Возможно, несколько команд разработчиков работают над различными функциями. Функции должны быть протестированы независимо друг от друга, поэтому они развертываются в QA1 и QA2.
Шаг 7: Команда QA подхватывает новые QA-среды и выполняет QA-тестирование, регрессионное тестирование и тестирование производительности.
Шаг 8: После того как QA-сборки проходят проверку QA-командой, они развертываются в среде UAT.
Шаг 9: Если тестирование UAT прошло успешно, сборки становятся релиз-кандидатами и в соответствии с графиком развертываются в производственной среде.
Шаг 10: Команда SRE (Site Reliability Engineering) отвечает за мониторинг продов.
@itmozg
Приведенная ниже схема иллюстрирует типичный рабочий процесс.
Шаг 1: Процесс начинается с того, что владелец продукта создает пользовательские истории на основе требований.
Шаг 2: Команда разработчиков берет пользовательские истории из бэклога и помещает их в спринт, рассчитанный на двухнедельный цикл разработки.
Шаг 3: Разработчики коммитируют исходный код в хранилище кода Git.
Шаг 4: В Jenkins запускается сборка. Исходный код должен пройти модульные тесты, порог покрытия кода и гейты в SonarQube.
Шаг 5: После успешного завершения сборки она сохраняется в артефакторике. Затем сборка развертывается в среде разработки.
Шаг 6: Возможно, несколько команд разработчиков работают над различными функциями. Функции должны быть протестированы независимо друг от друга, поэтому они развертываются в QA1 и QA2.
Шаг 7: Команда QA подхватывает новые QA-среды и выполняет QA-тестирование, регрессионное тестирование и тестирование производительности.
Шаг 8: После того как QA-сборки проходят проверку QA-командой, они развертываются в среде UAT.
Шаг 9: Если тестирование UAT прошло успешно, сборки становятся релиз-кандидатами и в соответствии с графиком развертываются в производственной среде.
Шаг 10: Команда SRE (Site Reliability Engineering) отвечает за мониторинг продов.
@itmozg
👍5
Doom 3 (2004)
Разработчик: Id Software
Издатель: Activision
Платформа: Windows / Mac / Linux / Xbox / PS3
Code review: fabiensanglard.net
Если вы хотите изучить движки современных игр высшего класса, то Doom 3 – это один из наилучших примеров. На время выхода он был инновационным во многих областях. Метод использования моделей высокого разрешения на элементах низкого разрешения в игре сейчас является стандартом для коммерческих игр. В исходнике есть много всего интересного – одна лишь система обработки физики достойна изучения, в частности, отслеживание столкновений.
Это первая игра от id, написанная на С++. Прошлые игры из-за использования С несли в себе простоту. Doom 3 тоже довольно простой, но заметно уже изменение его вектора движения.
Также игра (печально) известна использованием трафаретных теней при расчёте освещения. Можно спорить, был это интересный эксперимент или поле для дальнейшей работы, но сегодняшние игры предпочитают использовать карты теней. Возможно, эта техника когда-нибудь ещё пригодится.
Исходники: github.com/id-Software/DOOM-3
BFG edition Исходники: github.com/id-Software/DOOM-3-BFG
#gamedev
@itmozg
Разработчик: Id Software
Издатель: Activision
Платформа: Windows / Mac / Linux / Xbox / PS3
Code review: fabiensanglard.net
Если вы хотите изучить движки современных игр высшего класса, то Doom 3 – это один из наилучших примеров. На время выхода он был инновационным во многих областях. Метод использования моделей высокого разрешения на элементах низкого разрешения в игре сейчас является стандартом для коммерческих игр. В исходнике есть много всего интересного – одна лишь система обработки физики достойна изучения, в частности, отслеживание столкновений.
Это первая игра от id, написанная на С++. Прошлые игры из-за использования С несли в себе простоту. Doom 3 тоже довольно простой, но заметно уже изменение его вектора движения.
Также игра (печально) известна использованием трафаретных теней при расчёте освещения. Можно спорить, был это интересный эксперимент или поле для дальнейшей работы, но сегодняшние игры предпочитают использовать карты теней. Возможно, эта техника когда-нибудь ещё пригодится.
Исходники: github.com/id-Software/DOOM-3
BFG edition Исходники: github.com/id-Software/DOOM-3-BFG
#gamedev
@itmozg
👍6🔥4👏2
Media is too big
VIEW IN TELEGRAM
Демка Gespensterwald умещается в 62 байта кода языка ассемблера x86
В начале октября 2020 года программист-энтузиаст HellMood из группы DESiRE выпустил демку для MS-DOS/FreeDos под названием Gespensterwald. Программа размером в 62 байта написана на ассемблере. Демка сейчас занимает первое место в соревновании разработчиков Inércia Demoparty 2020 Combined Tiny Intro.
Автор демо постарался показать в нескольких строчках кода в 3D анимации угрюмый и жуткий лес, около которого он живет. HellMood добавил в демо необычное гудение, которое иногда возникает в этом реальном лесу.
Gespensterwald Nienhagen — это небольшой старый лес Нинхаген в Германии на побережье Балтийского моря (между Хайлигендаммом и Варнемюнде). У него причудливые деревья, которые выглядят зловеще. Когда идет дождь или лес окружает туман, создается впечатление, будто в нем происходит что-то мистическое. Лесополоса занимает площадь протяженностью 1,25 км и около 100 метров. В лесу растут 130-летние дубы, буки, грабы и ясени.
https://habr.com/ru/news/522104/
@itmozg
В начале октября 2020 года программист-энтузиаст HellMood из группы DESiRE выпустил демку для MS-DOS/FreeDos под названием Gespensterwald. Программа размером в 62 байта написана на ассемблере. Демка сейчас занимает первое место в соревновании разработчиков Inércia Demoparty 2020 Combined Tiny Intro.
Автор демо постарался показать в нескольких строчках кода в 3D анимации угрюмый и жуткий лес, около которого он живет. HellMood добавил в демо необычное гудение, которое иногда возникает в этом реальном лесу.
Gespensterwald Nienhagen — это небольшой старый лес Нинхаген в Германии на побережье Балтийского моря (между Хайлигендаммом и Варнемюнде). У него причудливые деревья, которые выглядят зловеще. Когда идет дождь или лес окружает туман, создается впечатление, будто в нем происходит что-то мистическое. Лесополоса занимает площадь протяженностью 1,25 км и около 100 метров. В лесу растут 130-летние дубы, буки, грабы и ясени.
https://habr.com/ru/news/522104/
@itmozg
🔥6👍4
Умные шторы своими руками
Однажды, после тяжелого рабочего дня, я пришел домой и понял, что хочу отдохнуть, а не ходить и закрывать шторы. Хочется увидеть их закрытыми вечером и открытыми утром, при этом не выделывать танцы перед окном. Погуглив разные решения, было принято решение сделать все самому.
По многочисленным просьбам, выкладываю все свои наработки по переделке обычных рулонных штор в автоматизированные с удаленным управлением. Осторожно, много фотографий!
https://habr.com/ru/articles/374285/
@itmozg
Однажды, после тяжелого рабочего дня, я пришел домой и понял, что хочу отдохнуть, а не ходить и закрывать шторы. Хочется увидеть их закрытыми вечером и открытыми утром, при этом не выделывать танцы перед окном. Погуглив разные решения, было принято решение сделать все самому.
По многочисленным просьбам, выкладываю все свои наработки по переделке обычных рулонных штор в автоматизированные с удаленным управлением. Осторожно, много фотографий!
https://habr.com/ru/articles/374285/
@itmozg
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Создание анимированных видео в нейросети Stable Diffusion, пошаговое руководство
Друзья, всем привет, даже от меня вы уже не раз слышали, что в нейросетях сейчас можно делать буквально все: создавать тексты, генерировать музыку, делать дипфейки, создавать изображения и даже видео. Раньше генерировать видео можно было только в больших платных проектах типа Gen-2 от Runway или в пока еще бесплатном дискорд боте Pika Labs. Локальные решения были плохими или требовали топовых видеокарт.
https://habr.com/ru/articles/771840/
@itmozg
Друзья, всем привет, даже от меня вы уже не раз слышали, что в нейросетях сейчас можно делать буквально все: создавать тексты, генерировать музыку, делать дипфейки, создавать изображения и даже видео. Раньше генерировать видео можно было только в больших платных проектах типа Gen-2 от Runway или в пока еще бесплатном дискорд боте Pika Labs. Локальные решения были плохими или требовали топовых видеокарт.
https://habr.com/ru/articles/771840/
@itmozg
👍4
Понимание OAuth
OAuth - это открытый стандарт, позволяющий пользователям предоставлять ограниченный доступ к своим данным на одном сайте другим сайтам или приложениям без раскрытия паролей. Он стал основой безопасной авторизации в Интернете и мобильных приложениях.
Экосистема OAuth
OAuth объединяет трех основных участников:
- Пользователь, который хочет предоставить доступ к своим данным без передачи учетных данных.
- Сервер, на котором хранятся данные пользователя и предоставляются маркеры доступа
- Провайдер идентификации (IdP), который проверяет подлинность личности пользователя и выдает токены.
Принцип работы OAuth
Когда пользователь пытается получить доступ к своим данным через стороннее приложение, он перенаправляется для входа в систему через IdP. IdP отправляет токен доступа в приложение, которое представляет его серверу. Распознав действительный маркер, сервер предоставляет доступ.
Потоки OAuth
OAuth 2.0 определяет четыре потока для получения маркеров авторизации:
- Поток кода авторизации - для приложений на стороне сервера
- Поток клиентских мандатов - когда приложение является владельцем ресурса
- Поток неявного кода - небезопасен и более не рекомендуется
- Поток владельца ресурса - для доверенных приложений, использующих учетные данные владельца.
Основные преимущества
- Повышение удобства работы пользователей за счет отказа от использования нескольких паролей
- Обеспечивает безопасный доступ к данным на разных платформах с помощью токенов
- Баланс между доступностью и безопасностью
OAuth 2.0 стал стандартом авторизации. Он обеспечивает безопасный и удобный обмен данными, защищая при этом учетные записи пользователей.
@itmozg
OAuth - это открытый стандарт, позволяющий пользователям предоставлять ограниченный доступ к своим данным на одном сайте другим сайтам или приложениям без раскрытия паролей. Он стал основой безопасной авторизации в Интернете и мобильных приложениях.
Экосистема OAuth
OAuth объединяет трех основных участников:
- Пользователь, который хочет предоставить доступ к своим данным без передачи учетных данных.
- Сервер, на котором хранятся данные пользователя и предоставляются маркеры доступа
- Провайдер идентификации (IdP), который проверяет подлинность личности пользователя и выдает токены.
Принцип работы OAuth
Когда пользователь пытается получить доступ к своим данным через стороннее приложение, он перенаправляется для входа в систему через IdP. IdP отправляет токен доступа в приложение, которое представляет его серверу. Распознав действительный маркер, сервер предоставляет доступ.
Потоки OAuth
OAuth 2.0 определяет четыре потока для получения маркеров авторизации:
- Поток кода авторизации - для приложений на стороне сервера
- Поток клиентских мандатов - когда приложение является владельцем ресурса
- Поток неявного кода - небезопасен и более не рекомендуется
- Поток владельца ресурса - для доверенных приложений, использующих учетные данные владельца.
Основные преимущества
- Повышение удобства работы пользователей за счет отказа от использования нескольких паролей
- Обеспечивает безопасный доступ к данным на разных платформах с помощью токенов
- Баланс между доступностью и безопасностью
OAuth 2.0 стал стандартом авторизации. Он обеспечивает безопасный и удобный обмен данными, защищая при этом учетные записи пользователей.
@itmozg
👍6
Новый подход к вычислениям переосмысливает искусственный интеллект
Наполняя огромные векторы семантическим значением, мы можем заставить машины рассуждать более абстрактно и эффективно, чем раньше.
Несмотря на бешеный успех ChatGPT и других крупных языковых моделей, искусственные нейронные сети (ИНС), лежащие в основе этих систем, могут идти неверным путем.
https://www.quantamagazine.org/a-new-approach-to-computation-reimagines-artificial-intelligence-20230413
@itmozg
Наполняя огромные векторы семантическим значением, мы можем заставить машины рассуждать более абстрактно и эффективно, чем раньше.
Несмотря на бешеный успех ChatGPT и других крупных языковых моделей, искусственные нейронные сети (ИНС), лежащие в основе этих систем, могут идти неверным путем.
https://www.quantamagazine.org/a-new-approach-to-computation-reimagines-artificial-intelligence-20230413
@itmozg
👍2🍓1
Рецепт как разочаровать разработчиков:
🚫 Предоставить для работы медленный VPN или медленную удаленную виртуальную машину.
🚫 Поставить запрет на изменение большинства вещей. Мы должны мириться с болезненными, медленными, сложными, устаревшими процессами.
🚫 Предъявлять нечеткие или постоянно меняющиеся требования.
🚫 Не доверять их суждениям.
🚫 Создавать крайне политизированную обстановку.
🚫 Нанимать некомпетентных людей, халявщиков и придурков. А затем игнорировать возникающие проблемы с людьми.
🚫 Микроменеджмент. Пытаться диктовать, как именно люди должны выполнять свою работу. Требовать одобрения руководства на каждый релиз.
🚫 Использовать старое оборудование и программное обеспечение. Не желают тратить деньги, чтобы сэкономить время.
👉 @itmozg
🚫 Предоставить для работы медленный VPN или медленную удаленную виртуальную машину.
🚫 Поставить запрет на изменение большинства вещей. Мы должны мириться с болезненными, медленными, сложными, устаревшими процессами.
🚫 Предъявлять нечеткие или постоянно меняющиеся требования.
🚫 Не доверять их суждениям.
🚫 Создавать крайне политизированную обстановку.
🚫 Нанимать некомпетентных людей, халявщиков и придурков. А затем игнорировать возникающие проблемы с людьми.
🚫 Микроменеджмент. Пытаться диктовать, как именно люди должны выполнять свою работу. Требовать одобрения руководства на каждый релиз.
🚫 Использовать старое оборудование и программное обеспечение. Не желают тратить деньги, чтобы сэкономить время.
👉 @itmozg
👍8❤2🔥2🍓1
Секрет Безоса: Amazon специально делает свой сайт хуже, чтобы получать больше прибыли или практическое пособие для Вайлдберриз, Озон, Я.М и других 😄
Федеральная торговая комиссия США (ФТК) отвечает за защиту прав потребителей, и в том числе за борьбу с монополиями. Недавно она предъявила Amazon официальную жалобу за «незаконное удержание монопольной власти» и «сознательное ущемление прав покупателей». Это очень серьезно и может поставить компанию на грань принудительного разделения. Новые разделы документа показывают, что руководители Amazon, включая бывшего гендиректора Джеффа Безоса, вносили в платформу изменения, которые увеличивали прибыль компании, одновременно нанося вред покупателям и продавцам, а также делая сайт менее удобным в использовании.
Более того: там говорится, что компания использовала секретный алгоритм, который, по сути, позволял компании свободно поднимать свои цены, и аккуратно толкал других ритейлеров к такому же поведению. В результате продукция у Amazon всегда оставалась дешевле или имела такую же цену, как и у всех остальных, но покупатели на самом деле переплачивали.
https://habr.com/ru/companies/first/articles/776960/
👉 @itmozg
Федеральная торговая комиссия США (ФТК) отвечает за защиту прав потребителей, и в том числе за борьбу с монополиями. Недавно она предъявила Amazon официальную жалобу за «незаконное удержание монопольной власти» и «сознательное ущемление прав покупателей». Это очень серьезно и может поставить компанию на грань принудительного разделения. Новые разделы документа показывают, что руководители Amazon, включая бывшего гендиректора Джеффа Безоса, вносили в платформу изменения, которые увеличивали прибыль компании, одновременно нанося вред покупателям и продавцам, а также делая сайт менее удобным в использовании.
Более того: там говорится, что компания использовала секретный алгоритм, который, по сути, позволял компании свободно поднимать свои цены, и аккуратно толкал других ритейлеров к такому же поведению. В результате продукция у Amazon всегда оставалась дешевле или имела такую же цену, как и у всех остальных, но покупатели на самом деле переплачивали.
https://habr.com/ru/companies/first/articles/776960/
👉 @itmozg
👍4🍓1
Локальные нейросети. Аналог ChatGPT-3.5 на домашнем ПК: OpenChat 7B превосходящая 70B, DeepSeek для кода уровня ChatGPT
Есть много локальных аналогов ChatGPT, но им не хватает качества, даже 65B модели не могут конкурировать хотя бы с ChatGPT-3.5. И здесь я хочу рассказать про 2 открытые модели, которые всё-таки могут составить такую конкуренцию.
Речь пойдет о OpenChat 7B и DeepSeek Coder. Обе модели за счет размера быстры, можно запускать на CPU, можно запускать локально, можно частично ускорять на GPU (перенося часть слоев на GPU, на сколько хватит видеопамяти) и для такого типа моделей есть графический удобный интерфейс.
И бонусом затронем новую модель для качественного подробного описания фото.
https://habr.com/ru/articles/776314/
👉 @itmozg
Есть много локальных аналогов ChatGPT, но им не хватает качества, даже 65B модели не могут конкурировать хотя бы с ChatGPT-3.5. И здесь я хочу рассказать про 2 открытые модели, которые всё-таки могут составить такую конкуренцию.
Речь пойдет о OpenChat 7B и DeepSeek Coder. Обе модели за счет размера быстры, можно запускать на CPU, можно запускать локально, можно частично ускорять на GPU (перенося часть слоев на GPU, на сколько хватит видеопамяти) и для такого типа моделей есть графический удобный интерфейс.
И бонусом затронем новую модель для качественного подробного описания фото.
https://habr.com/ru/articles/776314/
👉 @itmozg
👍4🍓1
33 года назад, 12 ноября, Тим Бернерс-Ли и Роберт Кайяу отправили коллегам по электронной почте предложение по созданию гипертекстового проекта, который они окрестили "WorldWideWeb".
https://www.w3.org/Proposal.html
👉 @itmozg
https://www.w3.org/Proposal.html
👉 @itmozg
👍6🍓1
Технологии давно почившей DEC продолжают служить миру вычислений
Эта корпорация, ставшая одним из первопроходцев в мире IT, исчезла в конце 90-х.
Несмотря на то, что в сфере компьютерных технологий осталось не так много стоявших у её истоков игроков, мы по сей день продолжаем пользоваться плодами их разработок. Bell Labs создали транзистор, а Fairchild Semiconductor изобрели интегральную схему, но ни одной из этих компаний сегодня уже не существует. То же касается Digital Equipment Corporation (DEC).
И хотя её больше не существует, есть вероятность, что вы читаете эту статью с карманного устройства, несущего в себе наследие технологии, изобретённой именно в DEC.
DEC была основана в 1957 году Кеном Олсеном, Харланом Андерсоном и Х. Эдвардом Робертсом. Изначально компания была нацелена на разработку небольших цифровых модулей, но её основатели вскоре поняли, что могут использовать эти модули для создания микрокомпьютеров, которые хоть и были менее мощными в сравнении с мейнфреймами, в те времена являвшимися бизнес-стандартом, зато имели компактные размеры и стоили гораздо дешевле.
Rus https://habr.com/ru/companies/ruvds/articles/766630/
Original https://arstechnica.com/gadgets/2023/10/long-gone-dec-is-still-powering-the-world-of-computing/
👉 @itmozg
Эта корпорация, ставшая одним из первопроходцев в мире IT, исчезла в конце 90-х.
Несмотря на то, что в сфере компьютерных технологий осталось не так много стоявших у её истоков игроков, мы по сей день продолжаем пользоваться плодами их разработок. Bell Labs создали транзистор, а Fairchild Semiconductor изобрели интегральную схему, но ни одной из этих компаний сегодня уже не существует. То же касается Digital Equipment Corporation (DEC).
И хотя её больше не существует, есть вероятность, что вы читаете эту статью с карманного устройства, несущего в себе наследие технологии, изобретённой именно в DEC.
DEC была основана в 1957 году Кеном Олсеном, Харланом Андерсоном и Х. Эдвардом Робертсом. Изначально компания была нацелена на разработку небольших цифровых модулей, но её основатели вскоре поняли, что могут использовать эти модули для создания микрокомпьютеров, которые хоть и были менее мощными в сравнении с мейнфреймами, в те времена являвшимися бизнес-стандартом, зато имели компактные размеры и стоили гораздо дешевле.
Rus https://habr.com/ru/companies/ruvds/articles/766630/
Original https://arstechnica.com/gadgets/2023/10/long-gone-dec-is-still-powering-the-world-of-computing/
👉 @itmozg
👍4
👍8🍓1