В рамках этой статьи я опишу создание двух NestJS-модулей с различным способом конфигурирования: утилитарный модуль и бизнес-модуль со своей базой данных.
Моя лента
Новости
Как перехватывают зашифрованный HTTS-трафик на мобильном устройстве
Реверс-инжиниринг VPN-сервиса Onavo Protect под Android позволил определить методы, которые можно использовать для перехвата зашифрованного HTTPS-трафика на мобильном устройстве. Если вкратце, злоумышленник должен поставить на телефон собственное приложение и сертификат УЦ (удостоверяющего центра).
Например, в РФ вступил в действие закон, который требует с 2025 года обязательной предустановки на все смартфоны конкретных приложений. Теоретически, при наличии уязвимостей это может угрожать безопасности многих пользователей.
Эксперимент по квантовой физике выявил странное явление «отрицательного времени»
Квантовая механика – странная штука, но даже для такой области науки последнее открытие выглядит особенно необычным. Исследователи утверждают, что наблюдали за фотонами, демонстрирующими необычное поведение, которое они назвали «отрицательным временем».
Странное открытие, подробно описанное в исследовании, было сделано в результате эксперимента, в котором фотоны выстреливались в облако атомов, охлаждённых до температуры чуть выше абсолютного нуля. В тех случаях, когда фотоны проходили через облако без взаимодействия, исследователи обнаруживали, что атомы всё равно кратковременно возбуждались, как будто фотоны были поглощены и вновь испущены. В то же время, когда фотоны поглощались, они, казалось, появлялись вновь ещё до того, как атомы успевали возбудиться.
Создание AI-ассистента с OpenAI Assistants API на Go
Всем привет!
Недавно возникла необходимость создать AI-ассистента, обученного искать и выдавать информацию из базы знаний, предоставленных заказчиком.
В этой статье мы рассмотрим процесс создания MVP такого ассистента. Мы загрузим в него файлы, зададим инструкции, привяжем все к Telegram-боту и будем обрабатывать запросы пользователей.
Для создания ассистента будем использовать функциональность OpenAI Assistants API с помощью сторонних прокси-сервисов.
Все это напишем на Go, а код, готовый к запуску и компиляции, будет доступен в конце статьи.
Приятного чтения!
Истории
Мобильная разработка за неделю #558 (30 сентября — 6 октября)
В YouTube почти полностью восстановили по ошибке удалённые с платформы из-за спама каналы и аккаунты пользователей
Администрация YouTube сообщила, что техподдержка видеосервиса почти полностью восстановила по ошибке удалённые с платформы из-за спама каналы и аккаунты пользователей. Платформе осталось восстановить доступ к нескольким видео и аккаунтам авторов. В YouTube продолжают разбираться с этим инцидентом.
Когда обманули во всем: изучаем фейковый планшет, которыми забиты маркетплейсы
Если кратко, то производитель с продавцом обманули с каждой характеристикой, начиная от основного чипа, объемов ОЗУ, накопителя и заканчивая камерами, аккумулятором и экраном. Полный фейк в красивой упаковке.
Детали под катом.
Как создать комнату испытаний в Minecraft на Python – туториал для детей
Современные дети и подростки любят играть в Майнкрафт: они проводят часы за компьютером, исследуя виртуальную вселенную. Гейминг здесь – одна из основ формирования неподдельного интереса к программированию, поэтому предлагаем использовать это увлечение для погружения ребенка в написание кода. Как? С помощью создания комнаты испытаний в Майнкрафте.
Хотим предложить бесплатное занятие в виде инструкции, знакомство с которой поможет разобраться в строительстве в Minecraft и других деталях на примере создания игры-страшилки «Комната испытаний». Если будет сложно, посмотрите обучающее видео: его мы разместили в конце.
А теперь давайте приступать.
Релиз открытого сетевого анализатора Mitmproxy 11 с поддержкой HTTP/3
4 октября 2024 года состоялся релиз открытого проекта сетевого анализатора Mitmproxy 11 с поддержкой HTTP/3 для перехвата трафика внутри соединений, установленных по HTTPS, с возможностями инспектирования, модификации и повторного воспроизведения трафика. Исходные коды инструментария написаны на языках Python и TypeScript и распространяются на GitHub под лицензией MIT.
Депрессия и воспалительные процессы. Два расстройства одной причины
В статьях про ноотропы я часто пишу о том, что наш мозг и организм – это чрезвычайно сложные, самоподдерживающиеся системы, в которых масса процессов связана друг с другом. И, как результат, разные поведенческие проявления могут быть следствием какого-то одного сбоя. Это как создает сложности для лечения, так и потенциал для лечения одних заболеваний инструментами для других.
На самом ли деле похудение – это вопрос разницы потреблённых и потраченных калорий?
Верна ли концепция «калории пришли, калории ушли»? Короткий ответ — да, но на самом деле всё гораздо сложнее.
С того момента, как пища коснулась вашего языка, и до того, как она покинула ваше тело, ваша пищеварительная система и микробиом кишечника работают над извлечением из неё питательных веществ. Ферменты во рту, желудке и тонком кишечнике расщепляют пищу для усвоения, а микробы в толстом кишечнике переваривают остатки.
Под «калории пришли, калории ушли» понимается концепция, согласно которой изменение веса определяется балансом между потребляемыми и расходуемыми калориями. Сюда входит не только количество калорий, которые вы съедаете благодаря аппетиту и поглощаете в процессе пищеварения, но и то, насколько хорошо эти поглощённые калории сжигаются в процессе метаболизма.
Минцифры дало ответ, что действия ТБанк по получению согласия на обработку биометрии противоречат положениям закона
Минцифры дало ответ, что действия ТБанк по получению согласия на обработку биометрии НЕ соответствую (противоречат) положениям закона.
Как указало Минцифры - Таким образом, обработка биометрических персональных данных может осуществляться только в случае получения оператором отдельного согласия субъекта персональных данных в письменной форме или в электронном варианте, подписанном электронной подписью, и не допускается посредством дачи такого согласия путем обычного входа в мобильное приложение кредитной организации, либо входа в интернет-банк кредитной организации, либо ввода пин-кода банкомате.
Rogue Trader — лучшая игра, чтобы понять «Ваху»
Если вы не в курсе, то в прошлом году по «Вахе» вышла партийная РПГ, Rogue Trader называется. В ней игрок берет под управление могущественного слугу Империума — того самого Роуг Трейдера или по-русски Вольного Торговца — имеющего очень широкие полномочия, и идет наводить порядки в своем протекторате на отшибе галактики. Попутно он с головой ныряет во внутренние разборки Империума, шашни ксеносов, замуты Богов Хаоса — короче, во все, с чем обычно и ассоциируется «Ваха».
Скажу сразу: игрушка кайфовая, и я в восторге. Но поговорить мне бы хотелось немного о другом, ведь после прохождения Rogue Trader на вопрос «с какого произведения лучше вкатываться во вселенную?» у меня есть однозначный ответ.
Ближайшие события
Настройка Переключения раскладки внешней клавиатуры в Ubuntu.
Я пользуюсь Lubuntu. Все отлично, но последнее время я страдал от
следующей проблемы. У меня внешние монитор и клавиатура, подключенные
через KVM. Раскладки у меня en(us),ru.
Настраивал просто, через "Keyboard State Indicator" в панели.
Но, после переключения KVM, ну
или после переподключения внешней USB клавиатуры, раскладка сама собой
сбрасывалась в en(us),ru. Это очень надоедает.
После некоторых изысканий найдено решение. Вот краткое изложение:
Preferences/IBus preferences/General/Show Icon on system Tray - off
Preferences/IBus preferences/Advanced/Use system keyboard layout - on
Preferences/IBus preferences/Input Method - Add English - English (US)
Preferences/IBus preferences/Input Method - Add Russian - Russian
Preferences/LXQt settings/Keyboard and Mouse Settings/Keyboard Layout/Keyboard model - Generic 105-key PC
Preferences/LXQt settings/Keyboard and Mouse Settings/Keyboard Layout/Keys to change layout - Caps Lock
Panel/Manage widgets - add Keyboard State Indicator
Представлен открытый проект Databye для анонимизации и преобразования конфиденциальных данных в базах данных
Разработчик Ницан Охана представил открытый проект Databye. Это инструмент CLI для анонимизации и преобразования конфиденциальных данных в базах данных, файлах и наборах данных без написания единой строки кода. Проект, планируется, будет поддерживать различные типы баз данных и форматы файлов. Исходный код решения написан на TypeScript и JavaScript и опубликован на GitHub под лицензией GNU Affero General Public License v3.0.
Транзакции в БД на Go с использованием многослойной архитектуры
Когда я присоединяюсь к новой компании, меня часто посещает синдром самозванца. После всех этих собеседований кажется, что парни знают, что делают и я смиренно настравиаюсь учиться у лучших.
Однажды, я столкнулся с инцидентом на проде и обратился за помощью к самому опытному инженеру. Он пришел на помощь и с легкостью изменил значение в БД с помощью... ручного обновления. 🤯 Проблема заключалась в том, что набор SQL-обновлений не был выполнен внутри транзакции.
Работа в новой компании — это всегда увлекательно. Я осознал, что даже если какой-то аспект кажется простым, например, SQL-транзакции, его легко упустить из виду.
SQL кажется чем-то, что мы все хорошо знаем, и мало чем может удивить. (Ему уже 50 лет!) Возможно, пришло время пересмотреть подходы, так как мы уже прошли фазу хайпа по поводу NoSQL, и снова возвращаемся к “используйте просто Postgres”, а иногда и к “SQLite тут за глаза”.
Я хочу сосредоточиться на том, как правильно применять транзакции в коде, а не на их технической сложности. Когда ваш проект становится больше, вы начинаете разделять логику и код базы данных с помощью слоев. Однако это не всегда так просто, как кажется. Вы можете запутаться и столкнуться с неочевидными ошибками.
Основной принцип многослойной архитектуры заключается в разделении критически важных частей кода (логики) от деталей реализации (например, SQL-запросов). Одним из способов достижения такого разделения является паттерн «Репозиторий». Однако, наиболее сложным аспектом такой архитектуры является обработка транзакций.
MVP, остановись
MVP — как много в этом звуке для сердца продакта слилось. Концепция, которая может выручить вначале, позже может уничтожить ваш продукт.
SQLAlchemy 2.0 для новичков
Данная статья представляет собой ознакомление с базовым синтаксисом SQLAlchemy 2.0, информации здесь хватит для того, чтобы сразу начать пользоваться и удовлетворить 80% ваших нужд, да и на неё вы потратите меньше времени, чем на чтение документации).
Предполагается, что вы знакомы с базовым синтаксисом языка Python и, возможно, новичок в программировании, как я :-)
Муравьиный алгоритм. Решение задачи коммивояжера
В данной статье я бы хотел объяснить работу алгоритма муравьиного алгоритма и решить с его помощью задачу коммивояжера. Решение задачи сводиться к выходу из какой-либо вершины графа, прохождению по всем вершинам по одному разу самым коротким путем и возврату к начальной точке. В конце статьи вас ожидает реализация алгоритма на языке Go.
Как запустить свое электронное устройство в «серию» и не остаться без штанов
В общих чертах про разработку электроники, изготовление пластикового корпуса, поиск исполнителей и примерные цены на серийный выпуск.