Всем доброго времени суток, это моя первая статья на Habr, надеюсь, это будет кому-то интересно. В этой статье пойдет речь о очень не побоюсь это слова старом, но заслуженном программном решении для ведения журнала. Ведение журнала — это процесс записи действий и состояния приложения во вторичный интерфейс, возможно, в файл или базу данных. Но всегда возникает вопрос, какая информация нам нужна для регистрации в нашем, какие действия и какое состояние приложения мы должны записывать? Можно вести журнал по разным причинам, допустим, вам нужно наблюдать за действиями и состоянием приложения, или использовать журнал для создания статистики, касающейся применения вашего приложения.
Новости
Производство «Эльбрусов» переносят из Тайваня в Зеленоград. Проблемы и возможные перспективы такого шага
Недавно на Хабре появилась новость о том, что разработчик отечественных процессоров «Эльбрус» договаривается о переносе производства чипов в Зеленоград. Тогда говорилось о том, что переговоры о переносе ведет компания МЦСТ, которая и является разработчиком процессоров. О том же пишут и журналисты РБК, которые смогли получить информацию о ведущихся переговорах. Но насколько все это реально и какие перспективы ждут производство, если его удастся перенести в Россию? Об этом поговорим под катом.
Как сделать ИИ для поиска алмазов в Minecraft
В случайно сгенерированном мире Minecraft найдём алмазы с помощью ИИ. Как обученный с подкреплением агент проявит себя в одной из самых сложных задач игры? Подробностями делимся к старту флагманского курса по Data Science.
Создание секретного туннеля с помощью Go
Быстро, надёжно и секретно. И со странным названием Trutun :-)
Как студенты решили хакатонить и что из этого вышло
История о том, как студенты программисты решили помочь школьникам зажечь искру интереса к программированию.
Конь остановлен, изба догорела
С виду – мужики как мужики. Ну да, среднего возраста, со слегка притухшим взглядом, без искорки. Но таких много среди пытающихся войти в айти. Внешние признаки в резюме и на собеседовании – как у всех, ничего выдающегося.
Но у этих парней есть тайна. Нет, у них Тайна. Вскрывается, как теперь выяснилось, элементарно – задним умом и я крепок. Но то ли я какой-то не такой, то ли явление действительно из ряда вон… Распознать именно тенденцию смог лишь с третьего раза.
История будет короткой, чай не успеете допить.
DFD (Data Flow Diagram) Диаграммы — зачем они нужны и какие бывают
Привет всем!
Сегодня решил написать основную теорию про применение диаграмм потоков данных как одного из инструментов моделирования процессов.
Диаграмма отображает потоки данных между системами, базами данных. Ключевыми элементами являются входные/выходные данные, системы, точки хранения и сбора данных.
Зачем нужны DFD диаграммы?
DFD диаграммы в отличии от других нотаций позволяют визуально показать все процессы с точки зрения данных. Это может быть полезно:
Массовый прием обыкновенных SMS в Telegram (или Viber)
Без SMSсервера, без PHP(Python) Скриптов, без промежуточных Email...
В habr статье от 08.2019 был рассмотрен рабочий способ для приема SMS.
При всей его громоздкости и костыльности - он пользуется популярностью у бизнеса арбитражников и прочих SMS товарищей. Сам GOIP-SMS-Сервер абсолютно неудобен, а Шлюзы GoIP умеют отправлять СМСки по SIP протоколу. Т.е. с помощью обычного asterisk (или FreePBX)
Рассмотрим настройки SMS на примере GOIP-8 (8 канального GSM шлюза):
1) Configurations-SMS тут мы видим меню, заполняем поле SMS to VoIP, пишем что угодно, например goip8, на каждом из каналов как на скрине ниже
Security Week 2222: уязвимость в приложении Zoom
На прошлой неделе разработчики клиента для веб-конференций Zoom закрыли серьезную уязвимость, которая при некоторых обстоятельствах могла приводить к выполнению произвольного кода. Уязвимость получила идентификатор CVE-2022-22787, ее особенности кратко описаны в статье издания The Register и в бюллетене компании Zoom. Обнаружил проблему эксперт из команды Google Project Zero, и вот их подробный отчет представляет большой интерес.
Исследователь Иван Фратрич (Ivan Fratric) по сути смог построить атаку на далеко не самой очевидной основе. Для пересылки сообщений в Zoom используется собственная реализация открытого протокола XMPP. Проблема заключалась в том, что код, отвечающий за разбор содержимого сообщений в формате XML, различается на сервере и на клиенте. Минимальные различия в парсинге удалось превратить в полноценную атаку, которая при этом не требует никаких действий от жертвы, если передача сообщений от атакующего в принципе разрешена.
Система сбора распределенной телеметрии на Cassandra и Kotlin Spring
Сердцем любого backend являются данные. Существует два сценария использования данных. В одном из них данные изменяются редко, но при этом активно используются в сыром или агрегированном виде и применяются для целей аналитики в реальном времени (такие системы принято называть OLAP). В других системах важно обеспечить сохранение с высокой скоростью большого количество неструктурированных или полуструктурированных объектов, поступающих от устройств Интернета вещей, из источников произвольных событий, наблюдений за активностью пользователя (такие системы называются OLTP - Online Transaction Processing, ориентированные на большое количество транзакций с минимальной задержкой обработки). Для таких систем важно обеспечить надежность хранения данных, поддержку распределенного хранения на нескольких серверах и/или дата-центрах и сохранение консистентности распределенного хранилища.
При этом сами объекты могут отличаться от привычной реляционной модели данных и представляться, например, в виде json-документов с произвольной схемой, объектов с полями со множественными значениями или графов. Разумеется это приводит к необходимости изучения новых подходов к поиску и добавлению данных, использованию специальных драйверов. Но что если соединить распределенное надежное хранилище и синтаксис запросов, близкий к SQL? В этой статье мы познакомимся с проектом Apache Cassandra и обсудим на примере разработки API на Kotlin для сбора телеметрии с датчиков, расположенных по всему миру (с поддержкой отказоустойчивости и управляемой репликации между дата-центрами).
Визуализация и анализ зимних температур Алматы за последние сто лет на Streamlit
Как менялись зимние температуры в Алматы за сто лет, анализ на Streamlit.
Графический интерфейс с дизайнером форм для сценарного языка OneScript
Существует огромное множество скриптовых языков. Существует множество графических интерфейсов для скриптовых языков (англ. graphical user interface, GUI). И существует какое то количество дизайнеров для этих интерфейсов. Добавлю к этим разработкам и свои а именно - графический интерфейс и дизайнер форм для сценарного языка OneScript.
Внедрение автотестов UI web-приложения через связку Python, Selenium и QASE (ч.2)
Шесть месяцев назад на Habr была написана первая статья по этой теме. В ней описаны процессы, позволившие запустить автотестирование имеющегося web-приложения. Текущая статья описывает доработанный подход к тестированию того же web-приложения.
Асинхронные моки. Создаем и тестируем telegram-бот на Kotlin
Любая асинхронность повышает уровень тревожности при разработке автоматических тестов. Особенно в ситуации, когда нужно выполнить проверку корректности работы системы, основанной на графе состояний со взаимодействием с внешним API через Flow. Примером такой системы может быть Telegram-бот, построенный на диалоге с внешним пользователем. В этой статье мы с вами создадим простой бот на Kotlin (с поддержкой многоязычности) и последовательно разберем возможные способы использования асинхронных моков и тестов для Flow с использованием библиотеки mockk и типобезопасной библиотеки для взаимодействия с API Telegram на Kotlin.
Корутины, компиляторы, кодогенерация и другие «ко...» грядущей C++ Russia
Как известно, в мире C++ много способов причинить себе боль, но также много высокой производительности, нетипичных амбициозных задач и прочего увлекательного хардкора. Ну и ещё известно, что плюсовиков хлебом не корми, дай немножко похоливарить про Rust или Go.
А в программе C++ Russia нашлось место всему этому: будут доклады и о производительности, и о специализированных задачах вроде систем реального времени, и о способах уменьшить боль. И ещё немножко про Rust и Go. И внезапное, но интересное: доклад про автоматизацию программирования в СССР.
В начале июня пройдёт онлайн-часть конференции, 26 июня пройдёт офлайн-часть, а сейчас про обе сразу можно узнать, какие доклады там будут.
Anonymous покушаются на бургеры. DDoS-2022: ждать ли новые серии атак
Со второй половины февраля 2022 года в рунете начались волнения. Причиной послужили серии кибератак, из-за которых пострадали государственные организации, банки, интернет-ресурсы СМИ, сервисы дистанционного образования и другие компании.
На Хабре и других порталах опубликованы десятки новостей о DDoS-атаках за февраль, март и апрель. Показатели DDoS-атак рекордные и заслуживают внимания.
В этой статье мы постарались прояснить ситуацию с помощью данных систем безопасности Selectel, провайдеров security-сервисов и СМИ. За цифрами приглашаем под кат.
Недельный геймдев: #72 — 29 мая, 2022
Из новостей: вышли Character Creator 4 и iClone 8, Phoenix 5.0, Azur Games запустил программу по релокации игровых студий за процент от прибыли, стала доступна бетка Construct Animate.
Из интересностей: разбор рендеринга Elden Ring, трёхмерная реконструкция человеческого тела Z-Anatomy, психология проигрыша, Unreal Engine 5 идёт ва-банк с динамическим глобальным освещением и Lumen.
Сегодня паттерн Посетитель в Java уже не нужен – лучше использовать переключатели паттернов
В современном языке Java паттерн Посетитель (Visitor) уже не нужен. Он отлично компенсируется использованием запечатанных типов и переключателей, использующих сопоставление с шаблоном – в таком случае те же цели достигаются проще и меньшим объемом кода.
Всякий раз, оказываясь в ситуации, где мог бы применяться паттерн Посетитель, подумайте, не воспользоваться ли вместо него более современными возможностями языка Java. Разумеется, эти возможности могут использоваться и в других обстоятельствах, но в этой статье мы обсудим сравнительно узкую тему: чем заменить паттерн Посетитель. Для этого я начну с максимально краткого введения и приведу пример, а затем объясню, как достичь тех же целей более простым (и кратким) кодом.
Все должно быть под контролем. Резервное копирование для Kubernetes. Часть 2
В первой части мы рассмотрели подходы к созданию резервных копий контейнеров в кластере Kubernetes с использованием restic над каталогом данных и относительно новых возможностей CSI для создания и восстановления мгновенных снимков. Пришло время поговорить о возможностях автоматизации управления резервными копиями, о мониторинге процесса и иных важных DevOps-задачах.
ИИ, который читает ваши мысли
Бионические протезы, работающие на основе выводов ИИ о сигналах мозга, стали реальностью уже вчера. Материалом, в котором кандидат наук в области физики на простом примере показывает, что у этих протезов под капотом, делимся к старту флагманского курса по Data Science.