Обновить

Все потоки

Сначала показывать
Порог рейтинга

Разбираемся как принимать звонки в браузере. Основы WebRTC\SIP\RTP.

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

Начнем с самой простой в реализации схемы, в которой передача голоса осуществляется напрямую между браузером пользователя, открывшего ваше web приложение и серверами провайдера "виртуальной телефонии"(aka "виртуальная атс" ).
При этом вся мета информация о поступившем входящем звонке и событиях всего жизненного цикла звонка принимает ваш backend. У разных провайдеров телефонии набор событий и строения api может отличаться, но общая схема работы схожа.

Разберем основную схему организации передачи голоса. Браузер по сути работает как SIP‑телефон: сигнализация через WebSocket, медиа — по RTP.

Упрощенно схему работы WebRTC/SIP можно разделить на "регистрацию", "звонок" и "завершение":
Упрощенно схему работы WebRTC/SIP можно разделить на "регистрацию", "звонок" и "завершение":

1. Регистрация в сети

  • Оператор открывает страницу в браузере.

  • Браузер отправляет SIP REGISTER на SIP‑сервер (WebSocket/TLS).

  • SIP‑сервер отвечает 200 OK.

  • В интерфейсе показывается «Вы в сети» — оператор готов к звонкам.

2. Звонок

  • SIP‑сервер отправляет SIP INVITE в браузер.

  • Браузер показывает уведомление «Входящий».

  • Оператор нажимает «Принять».

  • Браузер запрашивает доступ к микрофону (getUserMedia) — внутреннее действие.

  • Браузер отправляет SIP 200 OK + SDP на SIP‑сервер.

  • SIP‑сервер отправляет SIP ACK в браузер.

  • SIP‑сервер даёт команду RTP/SRTP‑шлюзу установить медиа‑сессию.

  • Медиа (RTP/SRTP по UDP) передаётся между браузером и RTP‑шлюзом.

  • Начинается разговор.

3. Завершение звонка

  • Оператор нажимает «Завершить».

  • Браузер отправляет SIP BYE на SIP‑сервер.

  • SIP‑сервер отвечает 200 OK.

  • Передача RTP/SRTP прекращается.

Если тема будет интересна, то далее обсудим схему работы backend'а и варианты развития общей схемы передачи голоса с плюсами, минусами и ограничениями.

В своем канале в Telegram и канале в Max о разработке в стартапах рассказываю еще больше интересного и делюсь опытом, заходите, буду рад!

Спокойных вам релизов и захватывающих решений !

Теги:
0
Комментарии0

В чём подвох пожизненной гарантии на сайт


Просматривая сайты коллег по опасному бизнесу сайтостроения иногда натыкаюсь на термин «пожизненная гарантия на сайт» и становится дико смешно от этого.

Вообще, сайт сам по себе не ломается. Это или баг, который не нашли при разработке, или влияние внешних сил:

  1. Поменялось API у системы, с которой сайт интегрирован. Гугл почта включила режим паранойя, ЯндексКарты формат запроса, чат гопоты стал хотеть другой прокси-сервер.
    И сайт уже работает не так, как задумывалось.

  2. Мамкины хакеры поломали. Если во-время обновлять версии безопасности, сайты вполне могут страдать.

  3. Полозушные руки чужих разработчиков ковырялись в коде. Если нет резервных копий или нельзя откатиться по версиям — это печаль.

  4. Проблема с сервером. Закончилось место на диске, не хватает вычислительной мощности, набежали боты, DDoS-атака

  5. Некорректное отображение в версиях браузеров, вышедших после создания сайта. Это бывает редко, однако возможно, что сайт по прошествии нескольких лет может перестать правильно отображаться в браузерах. Браузеры (Гугл Хром, Опера и другие) постоянно совершенствуются, меняются, перестают поддерживать какие-то устаревшие функции и стандарты.

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

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

ИТОГО. Пожизненная гарантия — полная туфта.

Не играйте в эти игры. Лучше честно сделать договор на техподдержку, где указаны форсмажоры.

Мой тг-канал — Факапы, инсайты, проблемы, взаимоотношения, клиенты, немного юмора.

Теги:
+5
Комментарии3

Открытый проект Internet Archive Downloader позволяет скачать книги, статьи, монографии и исследования с The Internet Archive. Позволяет загрузить: книги, сборники, статьи, монографии, исследования. Можно качать сразу несколько книг одновременно и вообще не терять в скорости. Простой и понятный интерфейс. Устанавливается за один клик — есть подробная инструкция. Работает локально на ПК.

Теги:
+1
Комментарии1

Zero Links в Obsidian

Это способ организации файлов внутри вашего хранилища без использования папок.

Принцип работы:

  1. Вы создаёте посадочные страницы для различных категорий заметок. Они могут быть пустыми.

  2. Называете страницу, например, "00 Бизнес". Нули нужны для удобства навигации, чтобы файл всегда был вверху.

  3. В заметки по теме бизнеса добавляете ссылку на заметку "00 Бизнес"

  4. Включаете встроенный плагин "Обратные ссылки"

  5. Результат! В заметке "00 Бизнес" в разделе "Упоминания со ссылкой" показаны все ваши заметки про бизнес

Преимущества подхода:

  1. Простота и естественность организации файловой системы

  2. Если заметка относится сразу к нескольким категориям - ставите несколько ссылок на посадочные страницы. А добавить один файл сразу в две папки невозможно.

💬 Больше про ведение заметок и планирование в Obsidian в моём тг-канале

Теги:
0
Комментарии1

Всем привет! Сделал Тетрис, в который можно играть в терминале. Получилось вполне залипательно)

Tetris
Tetris

Что умеет:

  • Все 7 фигур с wall kick при повороте

  • Превью следующей фигуры

  • Очки, линии, уровень

  • Скорость растёт с уровнем

  • Рекорд за сессию

  • Пауза, рестарт на ходу, экран game over

  • Центрируется в окне терминала

Видео геймплея
GitHub

Установка:

curl -sSL https://raw.githubusercontent.com/oakulikov/tetris/main/install.sh | bash

На Windows: открыть WSL/Ubuntu терминал и выполнить ту же команду.
Потом просто tetris.

Теги:
+7
Комментарии5

Открытый проект Cheat-Sheets предоставляет учебны материалы для Python, Rust, Swift, JavaScript, Kotlin, Go, Git, и других проектов. Там есть все важнейшие концепции, правила, стили программирования, фреймворки, библиотеки и прочее. Внутри также курсы по Git, Docker, базам данных, а также алгоритмам. Все материалы разделили по уровням сложности, к каждой главе есть контрольные вопросы и десятки задач. Все концепции авторы объясняют на конкретных примерах и разжевывают до последней строчки кода.

Теги:
+4
Комментарии0

Извиняюсь за офтопик, и проеханные дедлайны, но надеюсь вы поймёте 💔
Всю жизнь я был один на один с одиночеством. День влюблённых все проводят со своими парами, или хотя бы дарят валентинки тем, к кому не равнодушны. Я бы тоже хотел, но рядом никогда не было подходящего человека. Огромное сердце стучит вхолостую. Дни рождения все проводят в кругу друзей, к появлению которых не привели ни моя открытость, ни добродушие. У всех свои компании, в которые я заблаговременно не вписываюсь. Новый Год все отмечают в кругу семьи, кому удалось её создать. У меня же из близких есть только мама. Это крайне низкий бас-фактор, и если что, никто не то что не поддержит, но даже и не узнает. Я знаю, я проверял. Разумеется, я пробовал и кучу разных "решений" проблемы одиночества, так что, если думаете сейчас дать мне дельный оригинальный совет, то подумайте ещё раз. Пишу я эти строки не потому, что не знаю как надо, а потому что ничего не меняется, годами, что бы я ни делал. Я вырос в очень бедной семье, но никогда ничего не просил, не занимал, и вообще не сдавался. Моей целью было крепко встать на ноги, и пока я не обеспечил достойную пенсию и себе, и маме, я не успокоился. Порой это сказывалось на тех немногих отношениях, которые так и не переросли ни во что. Сейчас я могу позволить себе не работать на дядю, а заниматься тем, что мне интересно, чем-то более важным, чем поддержание наполненности собственного брюха, делать мир чуточку лучше. И даже когда три года назад, выбираясь из депры, я пытался кого-то найти, то запустил сервис знакомств, чтобы решить не только свою проблему, но и других людей. Ничью проблему он тогда так и не решил, но всё же. Я в шоке смотрю на эпидерсию, как люди боятся показывать себя настоящими, и при этом фильтруют потенциальных партнёров по совершенно надуманным критериям. Многие из них обманывают себя, что никто им не нужен, или довольствуются поверхностными, а то и токсичными отношениями, обречёнными на провал. Объективно оценивая, если не смотреть на такую себе внешность, я, без лишней скромности, идеальный мужчина. Тут тебе и верный друг, и изобретательный любовник, и надёжный муж, и заботливый отец. Куча талантов, высокий интеллект, чистая совесть, и ни одной вредной привычки. Казалось бы, мечта любой девушки - хватай и тащи в ЗАГС, чтобы не убежал. Но вместо этого я регулярно слышу "какие все мужики козлы, особенно мой". А мне не хватает ни совести, чтобы встревать между, ни наглости, чтобы размахивать своими достоинствами так, чтобы их хоть кто-то заметил. Да, сегодня особенный день, ибо я в отчаянии. Считайте, что я пьян или укурен, ведь это же единственная уважительная причина мужчине говорить о своих проблемах, не чувствуя стыда. Мне нужна помощь, ибо сам я не вывожу. Я так устал уже тратить кучу времени на безрезультатные поиски, а надеяться, что оно как-нибудь само, как у остальных, не приходится. Я - широко известный в узких кругах питерский айтишник. Опубликовал уже сотни статей, постов, видосов, но никогда не просил их репостить, и сейчас не буду. Моя просьба в другом - если у вас есть знакомая девушка, которой вы действительно желаете счастья в компании с мужчиной, который может и хочет о ней позаботиться, то поспособствуйте нашему знакомству вживую. Вдруг хоть этот план сработает и в мире станет на 2 счастливых человека больше. Я не принц и не магнат, так что и не рассчитываю на топ-модель с двумя вышками - если смогу её поднять и не задохнусь, то уже хорошо. И да, кто прочитал этот поток сознания, и искренне не понимает проблемы, тем мои поздравления. Это ваш день. Берегите то, что вас связывает, ибо отдаляясь, мы теряем и частичку себя.

Теги:
+10
Комментарии42

Кто в коммуникацию не умеет, тот и в повторные продажи не особо

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

Например, у меня было длительное пребывание в городах России, появилось много бытовых и личных (в том числе сезонных, зимних) вещей. Перелет за перелетом. А эти 100 кг вещей оставлю лучше на складе и полечу дальше. Удобно? Очень.

Нашла несколько компаний, выбрала оптимальные. Протестировала и поняла, что сервисы выстроены, а также автоматизированы на отлично:

  • Возможен демо-доступ, вживую оценить склад (освещение внутри, влажность в помещении, остуствие посторонних запахов, крепость самих кладовок).

  • Чистые склады, кладовки любых размеров.

  • Понятная навигация внутри.

  • После заключения договора возможен доступ в любое удобное время 24/7 на склад и к кладовке.

  • Онлайн-поддержка в чате или по телефону.

  • Безналичная оплата.

  • Опционально: удобные локации, электронные замки.

Сначала выбрала Твой склад

Арендовала бокс через заявку на сайте. Получила доступ, оставила вещи. И спустя 3 недели пришло сообщение от компании:

У вас закончится аренда 9 числа, отправьте фото пустого бокса

Твой склад

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

За время аренды было несколько повышений цены в одностороннем порядке и эти чудо-сообщения. Что в итоге привело к тому, что я решила найти другой склад.

Но замечу, что к моменту принятия решения о завершении аренды наконец-то написали сообщение в вежливой форме и добавили вопрос о сроке продления договора.

Затем вещи были перемещены в Складно

Заключение договора, аренда и доступ через приложение - все супер. Но вот через месяц сообщение!

Сообщение от Складно
Сообщение от Складно

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

Тон вещания у складов хранения личных вещей в России похож на коллекторский, чем на сервисный. Чем раньше это отследить и исправить, тем лучше. И конверсионнее.

Когда в операционку и автоматизацию научились, то и во внешнюю коммуникацию, включая персональные рассылки, тоже надо.


Теги:
+1
Комментарии8

Каждому бизнесу нужен ИИ-агент

Это не кликбейт. Это выводы после изучения десятков внедрений ИИ в разные ниши. Большинство решений, которые гордо называют себя "ИИ" – это обычные чат-боты переименовали, наклеили модный ярлык, и вперёд. Автоматизация это хорошо, но недостаточно.

Сейчас распространённая практика менять на ИИ всё, что плохо лежит или лежит и не работает)). И это не самый плохой подход. Можно автоматизировать с тем же уровнем эффективности: поддержку, контент, исследования. Всё, что связано с рутиной.

Но давайте посмотрим на применение ИИ под другим углом.

Мой тезис простой:

«Каждый бизнес может и должен внедрять экспертных ИИ-агентов для своих пользователей и клиентов. Прямо в продукт встроить условный ChatGPT, но эксперта в вашей нише, продукте.»

Сейчас на примере все разберем:

Допустим вы продаете туры и ваш флоу сейчас выглядит примерно так:
– Пользователь выбирает: дату, направление, условия
– Получает результаты
– Идёт сравнивать с конкурентами, практически, всегда
– Если у вас по какой-то причине лучшие условия возвращается и покупает

Это идеальный флоу. В реальности туда добавляются маркетинговые инструменты, пуши, ретаргетинг – часто не работающие.

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

Проблема классического подхода:

  • А что мы на самом деле знаем о пользователе? Только то, что он хотел поехать в Турцию вчетвером в мае 2026-го. И всё.

  • Мы не знаем контекст. Мы знаем, что он искал именно Турцию, потому что на подсознательном уровне для него «Турция = бюджетный отдых». А увидев цены на платформе, он подумал: «Дорого» и ушёл к конкурентам.

А теперь представьте другой подход

Допустим, мы создаём ИИ-агента, который «посетил все страны мира», и говорим пользователю: «Вот тебе самый крутой специалист в мире по поездкам и отдыху. Пожалуйста, пользуйся!»

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

Окажется, что у пользователей не всегда жесткий запрос «Турция, 4 человека, май 2026».

В 90% случаев запрос выглядит совершенно иначе:

«Привет! Где отдохнуть семьёй с детьми летом? Побюджетнее, но чтоб было красиво, инстаграмно и безопасно. Ещё мы боимся лететь долго, нам нужен самый быстрый маршрут».

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

Но тут еще важно, то как ИИ-агент должен работать

ИИ не должен задавать стандартные уточняющие вопросы по списку. Он должен вести диалог на основе контекста:

«Круто! У вас есть конкретные забронированные даты под отпуск или гибкие даты? Спрашиваю, потому что есть очень крутые места — если поехать 10 июня, за 200 тысяч на четверых будет 4 звезды с отличными развлечениями для детей и взрослых. В общём, вы офигенно отдохнёте!»

И дальше можно вести диалог с плавным переходом в апсейл:

— Кстати, туда виза нужна. Хотите, подскажу, как оформить заранее?
— Берите средство от комаров — там они бывают, не опасные, просто чтоб во время прогулок вас не беспокоили.
— А вообще, я могу ещё подобрать крутые места для посещений!

Что мы получаем вместо классического ML?

Вместо классификации и предиктивной аналитики у нас теперь есть портрет клиента:

  • Какие у него боли

  • Что он любит,

  • Куда ходит

  • Что предпочитает,

  • Какие страхи, бюджет. и т.д

То, что никакая ML-модель на основе поведения никогда не предскажет.

Что с этим делать?

Да много чего крутого на самом деле, базово – персонализировать любую коммуникацию от пушей до email.

Другие варианты:

  1. При следующем посещении ИИ-агент говорит бэкенду, какую страницу отрисовать через BDUI, Для каждого клиента (сегмента, когорты, это вы уж решите) отрисовываем персональную главную – зачем? Да чтобы воронку улучшить.

  2. Сократить расходы на маркетинг

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

Если вам интересно больше узнать то тг канал

Теги:
-3
Комментарии0

Warner Bros. Discovery начала выкладывать на Youtube все эпизоды научно-фантастического сериала Babylon 5, созданный и спродюсированный Джозефом Майклом Стражински. Выкладывать стали по эпизоду в неделю, как и оригинальный сериал в 1993 году. Проект состоит из пяти телевизионных сезонов. Каждый сезон состоит из 22 эпизодов.

В центре сюжета находится космическая станция «Вавилон-5» (8 км в длину), вращающаяся вокруг центральной оси и построенная для дипломатических целей, поддержания мира между космическими цивилизациями, торговли и совместной деятельности.

Будучи давним почитателем научной фантастики, Стражински был настроен создать научно-фантастический сериал для взрослых, где всё будет сделано на должном уровне: продуманные технологии, «никаких детишек или забавных роботов». Это не было утопическое будущее, — здесь есть и богачи и бездомные. Это не было место, где каждый день начинается с одной и той же точки — герои растут, развиваются, живут и умирают (даже гибнут). Бескомпромиссное политическое шоу, всегда готовое иметь дело с проблемами политики, религии и философии.

Теги:
+6
Комментарии1

Его половой орган в XIX веке приняли за паразита, потому что он функционирует без тела.

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

Ученые обнаружили один из таких "съемных пенисов" в 2021 году, все еще живой и полностью подвижный даже после семи часов без воды, извивающийся внутри полости мантии самки, выброшенной на пляж на Сицилии. Даже после того, как ученые извлекли его из мантии, он нашел путь обратно, возможно, в поисках убежища или яиц для оплодотворения.

У этих моллюсков экстремально развит половой диморфизм, самки по длине тела в десятки раз больше самцов. На фотографиях этот контраст часто незаметен, и всё из-за размеров "автономного пениса". Гектокотиль в развернутом состоянии сопоставим по длине с телом самого самца. В животном мире это далеко не рекорд, существуют животные, у которых тело в 8 раз меньше пениса.

Исследование: Battaglia, P., Stipa, M. G., Ammendolia, G., Pedà, C., Consoli, P., Andaloro, F., & Romeo, T. (2021). When nature continues to surprise: observations of the hectocotylus of Argonauta argo, Linnaeus 1758. The European Zoological Journal, 88(1), 980–986. DOI: 10.1080/24750263.2021.1970260

Теги:
+3
Комментарии0

Классические Need for Speed вернули к жизни. Разработчик собрал сборник из пяти ремастеров культовых гонок 2003–2007 годов. Там исправлены баги, добавлена поддержка широкоформатных мониторов, модов из коробки, Win 10/11 и Steam Deck. Игры работают на современных геймпадах. Доработаны отражения, интерфейс и наклейки в HD, улучшены тени от машин.

Что есть в архиве:

  • Need for Speed: Underground

  • Need for Speed: Underground 2

  • Need for Speed: Most Wanted

  • Need for Speed: Carbon

  • Need for Speed: ProStreet

Теги:
+4
Комментарии0

ИИ для генерации видео Seedance 2.0 вышел 12 февраля и немедленно приковал к себе внимание высоким качеством работы. Продукт выпустила ByteDance Seed Team, то есть исследовательский отдел компании-владельца нейродегенеративного приложения TikTok.

На самом деле Seedance 2.0 — это такой типичный видеогенератор. Описывается он как единый мультимодальный аудио- и видео- архитектурный контур: модель на входе принимает текст, изображения, аудио и видео (причём пользователь может накидывать до 9 картинок, 3 видеофрагментов и 3 аудиоклипов как референсы), а на выходе выдаёт до 15 секунд ролика с синхронизированным звуком.

Что необычно, так это высокое качество контента на выходе и готовность модели игнорировать любые нормы копирайта и схожести с существующими людьми. По Сети разошлись видеоролики, где Том Круз дубасит Брэда Питта и вопрошает, зачем было убивать Джефри Эпштейна. От людей, хоть немного сведущих в ИИ, звучат умные слова «оверфитинг» и «меморизация», хотя скорее речь нужно вести про безбашенность китайцев и отсутствие политик безопасности.

Пока в Голливуде осуждают продукт или даже в судебном порядке требуют немедленно прекратить безобразие, пользователи раскуривают тему. Независимый режиссёр Чарльз Кёрран преобразовал в видеоформат известный мем про стратегическую бесполезность генеративного искусственного интеллекта.

Заметна не только высокая степень схожести внешности актёров и узнаваемость их голосов, но и свобода в отношении откровенного контента. Далеко не каждая модель искусственного интеллекта согласится работать с женской грудью такого нескромного калибра.

При этом даже в такой простой диалоговой сцене есть косяки генерации. К примеру, родинка на шее Натали Портман исчезает при монтажной склейке.

Теги:
+8
Комментарии1

Ближайшие события

Питер Штайнбергер пишет код не в Claude Code. Для многих это окажется неожиданностью, поскольку его проект OpenClaw был задуман в первую очередь как прокладка для общения с большими языковыми моделями компании Anthropic — в том числе в те периоды, когда этот самопис назывался warelay, Clawdbot или Moltbot. Тем не менее разработку Питер предпочитает вести в Codex компании OpenAI.

Прожорливый на токены и максимально небезопасный продукт привлёк внимания много и сразу. Энтузиасты по всему миру срочно ставят чат-бота на Mac mini и виртуальные серверы, чтобы потратить как можно больше токенов языковой модели Claude Opus. Зашла даже речь о продаже проекта. Как известно по интервью, Штайнбергер всерьёз рассматривает предложения приобрести OpenClaw и для этого выдвигает обязательное условие о сохранении открытости проекта. Утверждается, что наиболее интересные оферы поступили от Meta¹ и OpenAI, одних из самых крупных игроков в индустрии искусственного интеллекта.

Вообще, если следить за новостными лентами и его личным микроблогом, можно подумать, что Штайнбергер от дел отошёл, и просто бегает по интервью и встречам с фанатами. На самом деле разработка OpenClaw продолжается, новые версии выходят ежедневно, но и на подкасты про программирование время остаётся. (Ещё бы: Штайнбергер не пишет ни строчки кода, а просто промптит языковые модели — очень модный сейчас подход). К примеру, аккаунт OpenAI Developers обещает выпустить 23 февраля большое видеоинтервью с Питером, где тот расскажет про свой новый рабочий процесс с Codex. Пока что выложили просто небольшой тизер этого видеоролика.

Любопытно, что написал про это интервью сам Штайнбергер. Как он рассказывает, пришлось послать человека сбегать в магазин за новой футболкой — та, в которой австриец пришёл на съёмку, содержала логотип неназванной компании, и сотрудникам OpenAI подобное не понравилось. Штайнбергеру разве что дали выбор, в чём он будет на камере: либо в синей, либо серо-синей футболке.

Транснациональный холдинг Meta (1) — экстремисткая организация, его деятельность запрещена.

Теги:
+3
Комментарии0

Я не всегда такой уж лапочка за кадром, каким пытаюсь казаться в статьях. Иногда я настолько сильно стрессую, что разламываю в хлам аппараты, над которыми работаю неделями. Как пример - Motorola E398 из соответствующей статьи, которую я пытался поднять 3 недели подряд. 2 новых контроллера питания - и все брак, дохлый процессор, одна донорская разворованная доска от подписчика - и при чистке пятаков под процессор отлетает два пятака, которые уходят в межслой, несмотря на максимальную аккуратность. В таких ситуациях остаётся только послать всё в известное место и разломать хлам, который ты пытался поднять. Раньше жалел мол "не сдержался, варвар, зачем так жестко", посыпал голову пеплом, а сейчас вообще плевать. Один фиг это были нерабочие платы.

Осудите ли меня за это?

Теги:
+5
Комментарии15

Redis упал.

Периодически Redis падает по OOM.

Интересно послушать разные мнение , на что стоит обратить внимание. Есть решение , почему происходит OOM .

Буду очень признателен комментарию . 🤝

Теги:
0
Комментарии8

Клик-ловушка: не только для пользователей, но и для анализаторов ссылок 🐭

При ручном разборе ссылок мы в PT ESC , как правило, задаем себе лишь один вопрос — «безопасна ли она?» ✔❌

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

🫵 Для решения этой проблемы можно предложить подход, логически схожий с процессом выбора ссылок при ручном анализе: какие-то ссылки нам кажутся крайне подозрительными или однозначно требующими дополнительного контекста для анализа, а какие-то — точно безопасными или, как в предыдущей ситуации, вызывающими определенные действия на сервисах (или вообще одноразовыми). Подход, где система определяет набор признаков «точно нужно переходить» и набор признаков «точно не нужно переходить», называется принятием решений на основе правил (rule-based decision system). Какие признаки можно предложить для реализации подобной системы?

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

  • наличие паттернов в URL-пути, семантически указывающих на возможное действие при активации, например, /(un)subscribe/, /login/, /exit/, /action/, /track/ и т.д.;

  • наличие параметров запроса token, key, uid со значениями, по формату совпадающими с UUID или JWT;

  • наличие параметров запроса ts или expires, указывающих на время жизни ссылки;

  • если ссылка пришла из почтового сообщения, можно проверить ее наличие в отдельных заголовках подписки/отписки от корреспонденции — List-(Un)Subscribe:;

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

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

  • ссылки с явным указанием IP-адреса и/или нестандартного порта;

  • ссылки с недавно зарегистрированным доменом;

  • при наличии категоризатора web-ресурсов с подобной классификацией — ссылки на сервисы-shortener'ы. В случае отсутствия можно рассмотреть условие с короткой длиной URL-ссылки;

  • ссылки с указанием в URL-пути файлов с конкретными статическими расширениями, например, .pdf, .exe и т.д.;

  • ссылки на сервисы объектных хранилищ, например на S3- или IPFS-хранилища.

🧐 Что остается делать со ссылками из анализируемого объекта, которые не попали ни под один из перечней? Здесь можно опираться на реальную картину, которая получается после работы подобного алгоритма: если позволяет производительность системы или время анализа не превышает допустимый SLA на обработку объектов, можно отправлять все «серые» ссылки на получение контента. Либо же ввести ограничение на количество одновременно анализируемых ссылок у одного объекта.

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

Источник: https://t.me/ptescalator

Теги:
+10
Комментарии0

Пешеходная электроэнергия

В качестве пятничного оффтопа, хотел бы предложить статью «Глобальной энергии» про генераторы энергии… м-м-м… от хождения людей.
Идея лежала, как говорится, под ногами уже долгие годы. Я сам всем всегда рассказывал, что в Лондоне ещё во времена Олимпиады (а это 2012-й год!!) установили дорожку из плиток Pavegen и она там чего-то нагенерила для освещения этой же дорожки.

Плитка Pavegen на тестовом полигоне
Плитка Pavegen на тестовом полигоне

А вот теперь китайцы раскрыли мне глаза, что, оказывается, есть три типа таких электростанций и пьезоэлектрические – это не самая перспективная технология. Самая крутая – это электромагнитная. Но и у неё пока что генерируются слёзы. И вот, ребята из Университета Ноттингема в Нинбо решили, что можно увеличить КПД, снизив «потери на проводке». В кавычки взял, потому что упростил ОЧЕНЬ СИЛЬНО. Но эффективность повысилась в 3 раза. От милливатт к ваттам, конечно, не перешли, но всё же.

В общем, в интересное время живём. Главное – не переставать удивляться и замечать замечательные вещи.
А так-то, хотели бы себе на даче дорожку из таких плиток, чтоб она сама освещалась в тёмное время суток? Я про такую просто мечтаю!

UPD: Ого! Оказывается, моя плитка на даче - ближе, чем может показаться. В Томском политехе (вроде как) разрабатывался такой же проект в 2022-2023 годах. Теперь надо понять, получилось у них его коммерциолизировать или нет (спойлер: я не нашёл)

@solarnews
#пятничныйоффтоп #Китай #исследования

Теги:
-2
Комментарии0

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

Проект у меня молодой, к тому же в b2b тематике. Сейчас погружаюсь в технический SEO. И в начале недели сделал для себя открытие, что в Яндекс.Вебмастере есть возможность включить ускоренное сканирование страниц по счётчику. Я подумал, а что если сделать инструмент для прогрева страниц у себя в сервисе? Сомневался, сработает ли это. Но стартап на то и стартап, чтобы пробовать. В итоге, надо сказать, на мой скромный взгляд вышло очень неплохо. Яндекс действительно просканировал 1500 страниц за 2 дня и затем они быстренько попали в его поисковый индекс. Так что неделя у меня, можно сказать, вышла удачная. Я даже вышел по фразе "seo пререндеринг сайта" на третью страницу.

Если есть желание опробовать мой новый раздел:

  1. Регистрируйтесь на сайте SigmaApi.com Если что, это мой сайт. И вот вам промокод от меня на 2000 кредитов: SwUmsrb

  2. Заходите в раздел SEO Инструменты → Прогрев страниц.

  3. Пишите свою обратную связь мне здесь в диалогах или на почту a@sigmaapi.com В целом не стесняйтесь писать, даже если возникают проблемы. Мне сейчас очень хочется больше пообщаться на темы seo инструментов и провалидировать свои идеи.

Всем добра и хороших выходных!

Теги:
-4
Комментарии0

⚠️ Java продолжает готовиться к удалению finalize()

В рамках JDK 27 у ThreadPoolExecutor-а, очень популярного API в Java, будет удалён метод finalize(). Несмотря на то, что в силу dynamic dispatch вызов метода finalize() всё равно будет транслирован в Object, данное изменение не source level compatible.

А все потому, что у Object.finalize() сигнатура содержит throws Throwable, в то время как ThreadPoolExecutor.finalize() — нет. Пока метод был в ThreadPoolExecutor, компилятору было ок. Как только его удалят, вызов super.finalize() начнет резолвиться в Object.finalize(), и тогда прилетит “unreported exception Throwable”.

Комментарий от Михаила Поливаха:

Вот это кстати довольно редкий пример того, что имзенение может быть binary level compatible, но не source level compatible.

Например:

class MyPool extends ThreadPoolExecutor {

  @Override
  protected void finalize() {
    super.finalize(); // JDK 27: теперь это Object.finalize() throws Throwable
  }
}

Как избежать?

  • поискать и удалить любые finalize() / super.finalize() (и вообще любые авто-cleanup через финализацию)

  • управлять жизненным циклом executor’ов явно: shutdown()/awaitTermination() или просто close() в try-with-resources (да, ExecutorServiceAutoCloseable)

Spring АйО рекомендует не использовать finalize() в целом, но если подобного рода хук нужен, то лучше использовать Java Cleaner API. С его помощью нельзя "случайно" воскресить объект, сломать integrity объекта или т.п.

Ждем JDK 27 🫠

Присоединяйтесь к русскоязычному сообществу разработчиков на Spring Boot в телеграм — Spring АйО, чтобы быть в курсе последних новостей из мира разработки на Spring Boot и всего, что с ним связано.

Теги:
+3
Комментарии0