METANIT.COM – Telegram
METANIT.COM
5.93K subscribers
1.69K photos
81 videos
9 files
1.06K links
Канал о программировании и разработке сайта metanit.com
Download Telegram
88,6% популярных в России мобильных приложений имеют уязвимости
Специалисты по кибербезопасности обнаружили почти 30 тыс. уязвимостей в популярных в России мобильных приложениях, при этом количество критических угроз за год выросло вчетверо. Разработчики продолжают, например, хранить пароли в открытом виде и игнорировать базовые правила защиты данных.
В выборку попали более 1,6 тыс. приложений, многие из них входят в топ-100 по скачиванию пользователями в 18 тематических категориях на платформе Android. Как выяснили авторы исследования, 88,6% приложений содержат уязвимости «критического» или «высокого» уровня, что говорит о растущей опасности хакерских атак на мобильные приложения.
В качестве основных источников ошибок в разработке мобильных приложений ИБ-специалисты отмечают в первую очередь утечки памяти и ошибки конверсии данных. Также популярны архитектурные и логистические ошибки (ошибки в алгоритмах).
https://www.kommersant.ru/doc/7734423
😭9🤣4👍1
Системы Windows, которым уже несколько десятилетий, по-прежнему работают в поездах, принтерах и больницах.

В новом отчете BBC раскрываются некоторые из самых странных реальных случаев, когда устаревшие версии Windows по-прежнему работают на критически важных системах. Одним из примеров является больничный лифт в Нью-Йорке, замеченный в этом году, который все еще работает на Windows XP; финальная версия этой ОС потеряла расширенную поддержку от Microsoft в апреле 2019 года. Некоторые банкоматы работают еще на более старых версиях, работающих не только на Windows XP, но и на Windows NT, которая была выпущена еще в 1993 году.

Так, в 2024 г. немецкая транспортная компания Deutsche Bahn опубликовала список вакансий, требующих знания MS-DOS и Windows 3.11. Эти реликвии от мира ОС до сих пор питают системы отображения в нескольких поездах, опять же в основном потому, что их замена означала бы отказ от оборудования, которое в противном случае могло бы прослужить десятилетия. А еще есть система метрополитена Сан-Франциско Muni, которая до недавнего времени нуждалась в том, чтобы кто-то вставлял дискету в систему управления поездом на основе DOS , чтобы запустить ее каждое утро.
В Сан-Диего принтеры LightJet по-прежнему производят музейные фотоотпечатки с использованием Windows 2000. Джон Уоттс (John Watts), который следит за работоспособностью этих принтеров, утверждает, что переход на новую ОС выльется в расходы на десятки тысяч долларов, которые пойдут на приобретение новых лицензий.
https://www.techspot.com/news/107960-decades-old-windows-systems-running-trains-printers-hospitals.html
👍2810❤‍🔥4
Сторонники переписывания с C/C++ на Rust столкнулись с жестокой реальностью:


Проект rav1d (декодер AV1 на Rust) ищет разработчиков, кто за $20 тыс. сделает это решение таким же быстрым, как на C
В 2023 году проект Prossimo начал работу над rav1d, более безопасным высокопроизводительным декодером AV1, написанным на Rust. К сентябрю 2024 года проект rav1d был в основном завершён. Решение проходит все те же тесты, что и декодер dav1d (написанный на C), на котором основан rav1d.

«Есть только одна проблема — он не такой быстрый, как версия на C. Наш декодер rav1d на основе Rust в настоящее время примерно на 5% медленнее декодера dav1d на основе C (точная величина немного отличается в зависимости от бенчмарка, входных данных и платформы). Этой разницы достаточно, чтобы стать проблемой для потенциальных пользователей, и, честно говоря, она просто беспокоит нас.

Команда разработчиков упорно трудилась, чтобы добиться паритета производительности. Мы привлекли пару других подрядчиков, у которых есть опыт оптимизации таких вещей. Мы написали о проделанной нами работе по оптимизации. Однако мы все ещё не смогли достичь паритета производительности, и, честно говоря, мы не совсем уверены, что делать дальше.

После долгих раздумий над вариантами мы решили предложить вознаграждение в размере $20 тыс. за достижение производительности rav1d на уровне dav1d. Надеемся, что заинтересованные сторонние разработчики смогут помочь повысить производительность rav1d до необходимого уровня, а в идеале мы и сообщество Rust также узнаем что‑нибудь о том, как производительность Rust соотносится с версией решения на C», — заявили в Prossimo.

https://www.memorysafety.org/blog/rav1d-perf-bounty/
#rust #c++ #cpp
🤣58👍5🤯4😱3💊2🤡1😨1
Google готовится запустить режим рабочего стола для Android. Согласно утечке исходных кодов, о которой сообщил Мишаал Рахман, эта функция предложит интерфейс с большим экраном, как у Samsung DeX и Motorola Smart Connect. Хотя первые признаки этой функции были замечены еще в 2023 году, эта новая утечка указывает на то, что проект ближе к релизу, чем когда-либо прежде.
Эта функция, называемая Android Desktop Mode, является инструментом повышения производительности и позволит пользователям Android более удобно использовать большие экраны. Если эта функция активна, интерфейс телефона будет иметь обычный рабочий стол. Он будет иметь полностью изменяемые размеры окон, панель задач и ярлыки приложений. Настройка будет более гибкой, чем обычный экран Android. Она будет похожа на то, как Windows или Chrome OS обрабатывают приложения.
Чтобы использовать режим рабочего стола, пользователям необходимо будет подключить свой телефон к внешнему дисплею, скорее всего, с помощью кабеля USB-C. Однако в отчете не исключается возможность беспроводного подключения в будущем. Samsung и Motorola уже поддерживают беспроводные режимы, поэтому не будет удивительным, если Google добавит эту функцию позже.
Ожидается запуск с Android 17, вероятно, сначала на телефонах Pixel
https://www.gizchina.com/2025/05/18/desktop-mode-might-be-coming-to-android-leaked-code-reveals/
🔥10👍2👏1
6 лучших алгоритмов балансировки нагрузки:

1. Round Robin
Распределяет запросы последовательно по серверам в списке. Просто, предсказуемо и хорошо работает, когда серверы примерно равны по мощности.
→ Лучше всего подходит для: равномерных рабочих нагрузок, равномерно подобранных серверов

2. Round Robin с весами (Weighted Round Robin)
Назначает "веса" серверам на основе их мощности. Более мощные серверы получают пропорционально большую долю запросов.
→ Лучше всего подходит для: серверов с различной емкостью

3. Наименьшее кол-во подключений (Least Connection)
Направляет новый трафик на сервер с наименьшим количеством активных подключений. Идеально подходит для приложений, где длительность подключения значительно варьируется.
→ Лучше всего подходит для: приложений с отслеживанием состояния, долговременных соединений

4. Хеш IP/URL
Гарантирует, что определенный клиент (на основе его IP-адреса) или определенный URL-путь постоянно попадают на один и тот же сервер.
→ Лучше всего подходит для: сохранения сеанса / закрепления сеансов

5. Наименьшее время отклика
Отправляет запросы на сервер с самым быстрым временем ответа + наименьшим количеством активных подключений.
→ Лучше всего подходит для: систем, чувствительных к задержкам

6. Ресурсо-ориентированный
Учитывает метрики работоспособности сервера в реальном времени, такие как загрузка ЦП, использование памяти и ввод-вывод. Направляет трафик на наименее загруженный сервер.
→ Лучше всего подходит для: критических приложений, сред с переменными нагрузками
👍4👏21🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
(Иллюстрация к предыдущему посту - 6 наиболее распространенных алгоритмов балансировки нагрузки)
👍11🔥3👏2
Microsoft добавит в SQL Server 2025 (пока в состоянии Preview) поддержку регулярных выражений
Регулярные выражения предлагают несколько преимуществ при использовании в запросах SQL:
Гибкость в сопоставлении с шаблонами: регулярные выражения позволяют выполнять сложное и гибкое сопоставление с шаблонами, что упрощает поиск определенных текстовых шаблонов в больших наборах данных.
Эффективность в обработке данных: функции Regex могут эффективно обрабатывать и преобразовывать текстовые данные, уменьшая необходимость в нескольких строковых функциях и упрощая запросы.
Улучшенная проверка данных: регулярные выражения можно использовать для проверки форматов данных, гарантируя, что данные соответствуют определенным шаблонам, таким как адреса электронной почты, номера телефонов и почтовые индексы.
Улучшенное извлечение данных: функции Regex могут извлекать определенные части текстовых данных, что упрощает извлечение ценной информации из неструктурированных данных.
Стандартизация и очистка: Regex может помочь стандартизировать и очистить данные, удаляя нежелательные символы, пробелы и дубликаты.

Функция REGEXP_LIKE проверяет, соответствует ли строка шаблону. Пример:
SELECT [Name], Email
FROM Employees
WHERE REGEXP_LIKE(Email, '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$');

Функция REGEXP_COUNT подсчитывает количество появлений шаблона в строке. Она полезна для анализа текстовых данных и выявления шаблонов.
SELECT REGEXP_SUBSTR(Email, '@(.+)$', 1, 1,'c',1) AS Domain, COUNT(*) AS Valid_email_count
FROM Employees
WHERE REGEXP_COUNT(Email, '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$') > 0
GROUP BY REGEXP_SUBSTR(Email, '@(.+)$', 1, 1,'c',1);


Функция REGEXP_INSTR находит позицию шаблона в строке. Она полезна для поиска определенных подстрок в текстовых данных.
SELECT Name, Email, REGEXP_INSTR(Email, '@') AS Position_of_@ FROM Employees;

Функция REGEXP_REPLACE возвращает измененную строку, замененную «строкой замены», где найдено вхождение шаблона регулярного выражения. Вы можете использовать ее для изменения или преобразования текстовых данных на основе шаблона регулярного выражения.
SELECT sensitive_info,
REGEXP_REPLACE(sensitive_info, '(\d{3}-\d{2}-\d{4}|\d{4}-\d{4}-\d{4}-\d{4})', '***-**-****') AS redacted_info
FROM personal_data;

Функция REGEXP_SUBSTR извлекает часть строки, которая соответствует шаблону. Она полезна для извлечения определенной информации из текстовых данных.
SELECT Name, Email, REGEXP_SUBSTR(Email, '@(.+)$', 1, 1, 'i', 1) AS Domain
FROM Employees
WHERE REGEXP_LIKE(Email, '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$');

Функция REGEXP_MATCHES находит все совпадения шаблона в строке и возвращает их в табличном формате (т. е. в виде строк и столбцов). Она полезна для извлечения нескольких вхождений шаблона. Обычно она используется для поиска всех вхождений шаблона или для извлечения частей строки с использованием групп захвата, особенно когда вы ожидаете несколько совпадений на вход.
SELECT *
FROM REGEXP_MATCHES('Name: John Doe; Email: john.doe@example.com; Phone: 123-456-7890', '(\w+):\s*([^;]+)');

Функция REGEXP_SPLIT_TO_TABLE разбивает строку на основе шаблона в качестве разделителя и возвращает фрагменты в виде строк в таблице. Она полезна для разбиения строк со списком элементов или разбиения текста на слова или предложения.
SELECT *
FROM REGEXP_SPLIT_TO_TABLE('Name: John Doe; Email: john.doe@example.com; Phone: 123-456-7890', '; ');

https://devblogs.microsoft.com/azure-sql/unlocking-the-power-of-regex-in-sql-server/
#sql #database
🔥14👍2🥱2👏1
Инженер-программист с 20-летним стажем не может найти работу из-за искусственного интеллекта
В апреле 2024 года Шон К., инженер-программист с двадцатилетним стажем, потерял работу. Больше года он живёт в трейлере и работает в DoorDash, а поиски работы в IT-сфере результата не дают. По мнению Шона, причина заключается в замене специалистов-людей искусственным интеллектом и в ИИ-агентах, которые используются на первых этапах собеседования.
Он уже терял работу во время финансового кризиса 2008 года и в начале пандемии COVID-19. В обоих случаях ему удавалось быстро найти новые места. Однако в этот раз ситуация кардинально отличается.

«Попасть на собеседование кажется чудом. Я подозреваю, что моё резюме отфильтровывается какой-то незрелой службой поиска кандидатов на основе искусственного интеллекта из-за недостатка гиперспецифичных ИИ-терминов», — считает он. В интервью изданию он подчеркнул, что чувствует себя «невидимым» и что боты отфильтровывают его ещё до того, как в цепочку собеседования попадает человек.
По мнению Шона, проблемы с поиском работы заключаются ещё и в том, что компании предпочитают передавать работу нейросетям, отказываясь от найма живых людей. По его словам, несмотря на богатый опыт работы и диплом в области компьютерных наук, из 800 откликов на вакансию только десять привели к собеседованиям.

Сейчас Шон К. вынужден искать другие способы заработка. Ему пришлось оставить дом и переехать в трейлер. Он занимается доставкой заказов DoorDash и продаёт вещи на eBay. Всё это приносит ему несколько сотен долларов в месяц.

По данным Layoffs.fyi, в 2024 году более 150 000 IT-работников потеряли свои места, а с начала 2025 года это число превысило 50 000.
https://habr.com/ru/news/911022/
😱25😢11🤡9😁5👍2😭2🤯1👀1
Google выпустил новые версии языка Dart - Dart 3.8 и фреймворка Flutter - Flutter 3.32.

Dart 3.8 включает множество улучшений и исправлений ошибок. Основные обновления включают усовершенствования форматтера Dart для более качественного форматирования кода, особенно для сложных выражений и операторов, учитывающих null. В релизе появилась поддержка операторов распространения с учетом null (...?), что упрощает работу с nullable-коллекциями, улучшено сопоставление шаблонов для более лаконичного и выразительного кода, а также повышена эргономичность для разработчиков. Dart 3.8 также улучшает производительность и стабильность, устраняя проблемы, выявленные в предыдущих версиях. обновление до Dart 3.8 рекомендуется, особенно для разработчиков Flutter, так как оно улучшает процесс разработки мобильных и веб-приложений.
https://medium.com/dartlang/announcing-dart-3-8-724eaaec9f47

Основные нововведения Flutter 3.32 включают поддержку горячей перезагрузки (hot reload) для веб-приложений, что ускоряет разработку, улучшенные элементы дизайна Cupertino для большей аутентичности нативного интерфейса iOS, а также новые возможности интеграции искусственного интеллекта с Firebase. В обновлении также улучшена производительность, добавлена прямая интероперабельность с нативными платформами и устранены некоторые критические ошибки. Flutter 3.32 включает 1024 коммита, демонстрируя значительные улучшения для разработчиков мобильных и веб-приложений. Рекомендуется обновиться до этой версии для использования всех новых функций и повышения стабильности.
https://medium.com/flutter/whats-new-in-flutter-3-32-40c1086bab6e
#dart #flutter
👍7🥰1👏1
Нейросетевые чат-боты помогают сотрудникам сэкономить всего 25 минут рабочего времени, а 17% сотрудников жалуются, что у них появились новые задачи, за которые им недоплачивают.
Национальное бюро экономических исследований США (National Bureau of Economic Research, NBER) изучило, как компании используют нейросетевых чат-ботов. опросили 25 тыс. сотрудников из 7 тыс. компаний Дании. Опрашивали представителей 11 профессии, которым СМИ пророчат массовые сокращения из-за прихода нейросетей: бухгалтеров, программистов, специалистов по найму, юристов, журналистов, учителей, маркетологов и других. Данию выбрали из-за того, что в ней схожие с США процессы найма и показатели внедрения чат-ботов, при этом более прозрачная отчётность.
Причем опрашивали сотрудников компаний, а не руководителей. Выяснилось, что:

- Без активного поощрения со стороны работодателя нейросетями пользуется 47% сотрудников, при поощрении — 83%.

- Около 30% работников прошли корпоративное обучение по использованию нейросетей.

- Большинство сотрудников отмечает, что благодаря нейросетям стали чуть более продуктивными. Если смотреть на цифры, то в среднем удаётся сэкономить до 25 минут рабочего времени в день.

- 17% сотрудников отмечают, что из-за освободившегося времени их нагрузили новыми задачами.

- 80% работников используют сэкономленное время для того, чтобы закрывать другие рабочие задачи. Только 10% опрошенных начали использовать это время для отдыха.

- Сотрудники успевают делать чуть больше, но руководители компаний не поднимают зарплаты.

Исследователи подчёркивают, что внедрение нейросетей практически никак не отражается на продуктивности и зарплатах. Даже те, кто научился выкраивать несколько часов, перекладывая задачи на чат-ботов, за хорошую работу получают новые задачи, а не прибавку к окладу. В итоге чат-боты не облегчают работу и не дают возможности больше зарабатывать за счёт освободившегося времени.
https://www.nber.org/papers/w33777
😁8👍6😭2
Доходы российских релокантов, работающих из-за границы, выросли на 14%
Доходы IT-специалистов, работающих из-за границы на российские компании, выросли за год до 26%. Большинство таких специалистов находятся в странах ближнего зарубежья, а пользуются их услугами в технологических и креативных сферах. Эксперты связывают рост зарплат у релокантов с компенсацией увеличения НДФЛ для нерезидентов РФ и общим ростом доходов в IT. При этом они признают, что, несмотря на это, многим компаниям все еще выгоднее нанять удаленного специалиста, чем оформить сотрудника в штат.
Наибольший рост среднемесячного дохода зафиксирован у программистов — рост на 15% (с 162,3 тыс. до 186,5 тыс. руб.) и веб-разработчиков — на 26% (с 223 тыс. до 280,3 тыс. руб.). Большинство специалистов работают на российский бизнес из стран ближнего зарубежья: Белоруссии, Казахстана, Узбекистана и в меньшей степени Сербии, а спрос на технических специалистов уровня Senior существенно превышает предложение
https://www.kommersant.ru/doc/7736689
🤔4👍2🤮2👏1
Вышел новый выпуск среды разработки NetBeans - Apache NetBeans 26, которая предоставляет поддержку языков программирования Java SE, Java EE, PHP, C/C++, JavaScript, Rust и Groovy и доступна для Linux, Windows и macOS.

Основные изменения в новой версии:
- Расширены возможности, связанные с использованием серверов LSP (Language Server Protocol) и применением плагина для VSCode. Улучшен LSP-клиент для C/C++.
- Улучшена поддержка систем сборки Ant, Gradle и Maven. Gradle Tooling API обновлён до версии 8.14.
- Для языка Java добавлена поддержка тестов hotspot из OpenJDK. Улучшена поддержка шаблонов Swing. Расширены возможности, связанные с генерацией документации apidoc. Встроенный в NetBeans Java-компилятор nb-javac (модифицированный javac) обновлён до версии JDK 24. Встроенная версия Apache Tomcat обновлена до версии 9.0.102.
- Для языка PHP улучшено отображение и автодополнение конструкторов
- Улучшена поддержка платформы Jakarta EE 11. Для Tomcat, TomEE и GlassFish добавлена поддержка возможностей будущего релиза Java SE 25.
- Для web-проектов добавлена поддержка единиц измерения CSS: cqw (1% от ширины), cqh (1% от высоты), cqi (1% от inline-размера), cqb (1% от размера блока), cqmin (наименьшее значение cqi или cqb) и cqmax (наибольшее значение cqi или cqb). Реализована подсветка синтаксиса файлов, связанных с JavaScript-фреймворком Vue. Для JavaScript добавлена поддержка методов генератора async и улучшена обработка ключевого слова const.
- Улучшена интеграция Git
- Добавлена поддержка включения и отключения панелей предпросмотра результатов поиска, рефакторинга и закладок. В многооконном режиме работы редактора кода улучшено изменение фокуса ввода при закрытии последнего окна.
https://github.com/apache/netbeans/releases/tag/26
👍4🔥1👏1
На Reddit (https://old.reddit.com/r/ExperiencedDevs/comments/1krttqo/my_new_hobby_watching_ai_slowly_drive_microsoft/) обнаружили, что ИИ‑агент Copilot на GitHub медленно сводит с ума сотрудников Microsoft в их же собственных репозиториях. Это особенно видно в комментариях к PR, где люди‑программисты пытаются безуспешно понять, что ИИ хочет добиться.
ИИ‑агент от Microsoft, предназначенный для анализа репозиториев и внесения правок, недавно был развернут для открытых PR в репозитории среды выполнения .NET (dotnet). Но оказалось, что ИИ, мягко говоря, не очень хорош и скорее мешает.

Вот несколько примеров:
https://github.com/dotnet/runtime/pull/115762
https://github.com/dotnet/runtime/pull/115743
https://github.com/dotnet/runtime/pull/115733
https://github.com/dotnet/runtime/pull/115732
Некоторым уже стало жаль сотрудников Microsoft, которым приходится все это разгребать.
😁21👍4😈4🤯1🤮1
Добавлена статья про Стек на основе макросов в программе на языке Си
https://metanit.com/c/tutorial/12.4.php
#c_ansi
👍113👏2
dotnet cli скоро позволит запускать скрипты на C# #dotnet #csharp
🔥393👏2🤨2
Вкратце базовые моменты языка Python для начинающих #python
15👏2🔥1
В руководство по JavaScript добавлена статья "Определение мобильного устройства в JavaScript"
https://metanit.com/web/javanoscript/15.2.php
#js #javanoscript
👍10🥰7👏2