Августовский рейтинг языков программирования TIOBE

Компания TIOBE Software опубликовала августовский рейтинг популярности языков программирования, в котором по сравнению с августом 2021 года выделяется укрепление позиций языка Python, который переместился со второго на первое место. Языки Си и Java, соответственно сместились на второе и третье места, несмотря на продолжение роста популярности (популярность Python выросла на 3.56%, а Си и Java на 2.03% и 1.96%, соответственно). Индекс популярности TIOBE строит свои выводы на основе анализа статистики поисковых запросов в таких системах, как Google, Google Blogs, Yahoo!, Wikipedia, MSN, YouTube, QQ, Sohu, Bing, Amazon и Baidu.

from OpenNews.opennet.ru: События https://ift.tt/TWKZUqO

[recovery mode] Атака на String.hashCode: прообразы и коллизии

Как-то раз мне понадобилось несколько наборов строк с коллизией по хеш-коду. То есть таких, чтобы значение String::hashCode() совпадало для всех строк в наборе.

Блуждание по интернету не дало результатов, примеров было мало и все они довольно однообразны. Поиск по словарям подарил забавную пару "javascript's".hashCode() == "monocle".hashCode(), но практической пользы не принёс. Полный перебор не рассматривался в виду скорой тепловой смерти вселенной.

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

Читать дальше →

from Java – Объектно-ориентированный язык программирования https://ift.tt/4KNB2uq

[Перевод] Ошибка в stacktrace из продакшена

В этой статье я расскажу про исключительную ситуацию, которая произошла с одним исключением в продакшене Android приложения.

Читать далее

from Java – Объектно-ориентированный язык программирования https://ift.tt/qNM6Wig

Уязвимость в ядре Linux, позволяющая изменить содержимое tmpfs и разделяемой памяти

В ядре Linux выявлена уязвимость (CVE-2022-2590), позволяющая непривилегированному пользователю изменить отражённые в память файлы (mmap) и файлы в tmpfs, не имея прав на запись в них, и поднять свои привилегии в системе. По своему типу выявленная проблема напоминает уязвимость Dirty COW, но отличается тем, что ограничивается только воздействием на данные в разделяемой памяти (shmem / tmpfs). Проблема в том числе может применяться для модификации запущенных исполняемых файлов, использующих разделяемую память.

from OpenNews.opennet.ru: Проблемы безопасности https://ift.tt/SXHy0FN
via IFTTT

Австралийский суд оштрафовал Google на $42 млн за введение пользователей в заблуждение

Федеральный суд Австралии обязал американскую компанию Google выплатить штраф в размере $42,7 млн за введение пользователей в заблуждение при сборе их личных данных о местоположении.

Читать далее

The following blog post Австралийский суд оштрафовал Google на $42 млн за введение пользователей в заблуждение is available on Хабр / Посты с меткой «google»

Выходим за пределы JVM. Объясняем на крестиках-ноликах чем хорош Kotlin Multiplatform

Какой есть общий недостаток у мобильной, front-end и back-end разработки и иногда распила микросервисов? Дублирование логики. Очень часто я видел статьи или новости, где одна команда мобильных разработчиков ждет другую, чтобы выкатить релиз. И если с мобильными версиями более-менее все понятно и есть решения, то что делать с браузером? Очень часто логику работы приложения нужно поддержать и там.

Что делать, если хочется писать нативный код и при этом не иметь дублей реализации — на этот вопрос я постараюсь ответить подробно в данной статье. В процессе чтения можно будет познакомиться с технологией Kotlin Multiplatform и создать полноценный проект всем известной игры «Крестики-нолики» на трех самых популярных платформах Browser (JS), iOS (Swift) и Android (Java) с общей логикой на Kotlin.

Читать далее

from Java – Объектно-ориентированный язык программирования https://ift.tt/Pi4RyHu

SQUIP – атака на процессоры AMD, приводящая к утечке данных по сторонним каналам

Группа исследователей из Грацского технического университета (Австрия), ранее известная разработкой атак MDS, NetSpectre, Throwhammer и ZombieLoad, раскрыла сведения о новом методе атаки по сторонним каналам (CVE-2021-46778) на очереди планировщика процессоров AMD, применяемые для планирования выполнения инструкций в разных исполнительных блоках CPU. Атака, получившая название SQUIP, позволяет определить используемые при вычислениях в другом процессе или виртуальной машине данные или организовать скрытый канал связи между процессами или виртуальными машинами, позволяющий обмениваться данными в обход системных механизмов разграничения доступа.

from OpenNews.opennet.ru: Проблемы безопасности https://ift.tt/JZVeB94
via IFTTT

Выпуск языка программирования Rust 1.63

Опубликован релиз языка программирования общего назначения Rust 1.63, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

source https://www.opennet.ru/opennews/art.shtml?num=57628

Microsoft открыл библиотеку Emoji

Компания Microsoft опубликовала библиотеку Emoji, включающую более полутора тысяч значков, доступных в различных представлениях (3D, многоцветные, плоские, высококонтрастные). Содержимое библиотеки соответствует новому набору Emoji, предложенному пользователям Windows 11 в прошлом году, дополненному 3D-вариантами значков. Библиотека открыта под лицензией MIT, позволяющей создавать производные работы и использовать значки в своих продуктах.

from OpenNews.opennet.ru: События https://ift.tt/DMzKcGs

Обзор GraphQL-фреймворков на Java

В предыдущей статье мы поговорили о том, что такое graphQL, почему решили на него переходить, какие у него есть достоинства и недостатки. Но что делать дальше, если вы всё-таки решились внедрить graphQL в java-проект? Какие на данный момент есть фреймворки, чем они отличаются и какой вообще выбрать? Именно с этими проблемами мы и столкнулись почти год назад и не нашли адекватного ответа в одном источнике. Собрав по крупицам инфу из разных ресурсов (статьи, документации, доклады) и потыкав палочкой несколько фреймворков, мы сформировали общую базу знаний о них, которой и захотелось поделиться.

Если вам интересно, какие есть современные graphql-фреймворки на java, как выбрать подходящий и посмотреть, как он может выглядеть в продакшне — эта статья для вас.

Всем привет! Меня зовут Артем, я бэкенд-разработчик в hh.ru. Сегодня мы поговорим о современных решениях в GraphQL-мире на Java.

Статья также доступна в видео-формате.

Читать далее

from Java – Объектно-ориентированный язык программирования https://ift.tt/DV9l3Lc

[recovery mode] SOLID на практике в автоматизации тестирования

Как на практике реализовать все принципы и упростить разработку тестирования BDD ?

Примером будет интеграционное тестирование, но вам ничего не помешает реализовать для End2End

Читать далее

from Java – Объектно-ориентированный язык программирования https://ift.tt/TKeH92t

AEPIC Leak – атака, приводящая к утечке ключей из анклавов Intel SGX

Раскрыты сведения о новой атаке на процессоры Intel – AEPIC Leak (CVE-2022-21233), приводящей к утечке конфиденциальных данных из изолированных анклавов Intel SGX (Software Guard eXtensions). Проблема затрагивает 10, 11 и 12 поколения CPU Intel (включая новые серии Ice Lake и Alder Lake) и вызвана архитектурной недоработкой, позволяющей получить доступ неинициализированным данным, оставшимся в регистрах APIC (Advanced Programmable Interrupt Controller) после выполнения прошлых операций.

from OpenNews.opennet.ru: Проблемы безопасности https://ift.tt/de0k5NE
via IFTTT

В ядре Linux выявлены эксплуатируемые уязвимости в POSIX CPU timer, cls_route и nf_tables

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

from OpenNews.opennet.ru: Проблемы безопасности https://ift.tt/emu4soq
via IFTTT

Google расширил программу стимулирования выявления уязвимостей в ядре Linux

Компания Google объявила о расширении инициативы по выплате денежных вознаграждений за выявление уязвимостей в ядре Linux. Максимальный размер выплаты за новую уязвимость и создание на её основе рабочего эксплоита увеличен с 91 до 133 тысяч долларов. Помимо ранее применявшегося окружения kCTF (Kubernetes Capture the Flag) для попыток взлома предложены новые окружения: на основе последней стабильной ветки обычного ядра Linux и на основе ветки ядра, в которую включены дополнительные патчи для блокирования типовых методов работы эксплоитов.

from OpenNews.opennet.ru: Проблемы безопасности https://ift.tt/dSglw5n
via IFTTT

It is Wednesday, my java dudes, или насколько сложно сделать свою JVM

Что делать, если накануне переезда повысилась тревожность, а привычные методы не приносят успокоения?

Конечно же вырабатывать дофамин через решение упоротых инженерных задач!

Мне стало интересно – насколько тяжко было бы сделать свой интерпретатор байт-кода Java? И насколько сложно было бы научить его “новым трюкам”?

Писать я буду на Rust, поэтому и проект, не мудрствуя лукаво, назвал Rjava.

Читать далее

from Java – Объектно-ориентированный язык программирования https://ift.tt/kbC2SBL

Как я провел лето. Пишем RPC фреймворк. Часть первая: сетевое взаимодействие

Первая публикация из серии про разработку легковесного RPC-фреймворка на java. Посвящена сетевому взаимодействию при вызове удаленной процедуры.

Читать далее

from Java – Объектно-ориентированный язык программирования https://ift.tt/J7XaCBv

Холостые циклы в Java

Привет, сегодня поговорим о тонкостях реализации холостых циклов (холостого ожидания) в Java. Эта задача встречается нечасто: за девять с небольшим лет работы я столкнулся с ней лишь пару раз. Тем не менее, тема видится интересной и по ней есть что сказать, так что добро пожаловать! Исходный код примеров доступен здесь.

Читать далее

from Java – Объектно-ориентированный язык программирования https://ift.tt/76j9QkT

Ищем-ищем нужное…


Источник

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

from Java – Объектно-ориентированный язык программирования https://ift.tt/cBQdFUj

Сравнение Quartz, kagkarlsson и кастомной реализации для запланированного задания в реактивном Spring Boot приложении

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

Читать далее

from Java – Объектно-ориентированный язык программирования https://ift.tt/BJ0bjQA

Загрузка ленивых полей

Привет, хабр! Сегодняшняя статья навеяна довольно стандартной ситуацией – существует некий «большой» объект, но для работы приложения далеко не всегда требуется загружать его полностью в память. Для решения такой проблемы существует ленивая загрузка полей. Суть её состоит в том, что загрузка поля объекта откладывается до того момента, как оно [поле] понадобится.

Читать далее

from Java – Объектно-ориентированный язык программирования https://ift.tt/EQxad79

Back to Top