В Огайо предложили закон, запрещающий вступать в брак с ИИ
В законодательную палату штата Огайо внесли законопроект, который провозглашает: "никакая система искусственного интеллекта не признается супругом или домашним партнером".
В тексте документа система ИИ определяется как "сущность, не обладающая сознанием" (non-sentient entity) — то есть не способная к восприятию, чувствам и осознанным действиям. Следовательно, с точки зрения закона она не может считаться "лицом". Любая попытка заключить "брак с ИИ" считается юридически ничтожной, а сам ИИ лишается любой формы правосубъектности — права владеть имуществом, занимать корпоративные должности и т. д.
Законопроект передан в комитет по технологиям и инновациям. Дальше его ждут слушания, правки и голосования в обеих палатах. До подписи губернатора еще далеко — вполне возможно, что отдельные формулировки будут смягчены или удалены.
Инициаторы закона объясняют, что его цель — предотвратить будущие правовые коллизии. Если ИИ вдруг "заключит брак" или станет совладельцем активов, кто несет ответственность за его действия? По замыслу авторов, ответственность должен нести человек — пользователь, владелец или разработчик системы. Критики же называют инициативу примером "моральной паники" и борьбы с гипотетическими сценариями.
https://www.nbc4i.com/news/politics/saying-i-do-to-ai-ohio-lawmaker-proposes-ban-on-marriage-legal-personhood-for-ai/amp/
В законодательную палату штата Огайо внесли законопроект, который провозглашает: "никакая система искусственного интеллекта не признается супругом или домашним партнером".
В тексте документа система ИИ определяется как "сущность, не обладающая сознанием" (non-sentient entity) — то есть не способная к восприятию, чувствам и осознанным действиям. Следовательно, с точки зрения закона она не может считаться "лицом". Любая попытка заключить "брак с ИИ" считается юридически ничтожной, а сам ИИ лишается любой формы правосубъектности — права владеть имуществом, занимать корпоративные должности и т. д.
Законопроект передан в комитет по технологиям и инновациям. Дальше его ждут слушания, правки и голосования в обеих палатах. До подписи губернатора еще далеко — вполне возможно, что отдельные формулировки будут смягчены или удалены.
Инициаторы закона объясняют, что его цель — предотвратить будущие правовые коллизии. Если ИИ вдруг "заключит брак" или станет совладельцем активов, кто несет ответственность за его действия? По замыслу авторов, ответственность должен нести человек — пользователь, владелец или разработчик системы. Критики же называют инициативу примером "моральной паники" и борьбы с гипотетическими сценариями.
https://www.nbc4i.com/news/politics/saying-i-do-to-ai-ohio-lawmaker-proposes-ban-on-marriage-legal-personhood-for-ai/amp/
NBC4i.com
Saying ‘I do’ to AI? Ohio lawmaker proposes ban on marriage, legal personhood for AI
COLUMBUS, Ohio (WCMH) – An Ohio lawmaker wants to prohibit artificial intelligence systems from being recognized as people and make it illegal for residents to marry one. Rep. Thaddeus Clagge…
🤡15🤣7❤🔥4👍4😭3😁2🤯2❤1
20 распространенных рекомендаций по оптимизации SQL-запросов:
1. Индексы для шаблонов доступа к запросам (составные, селективные, покрывающие); не ориентируйтесь на количество строк; поддерживайте актуальность статистики.
2. Используйте EXISTS для проверки наличия записей; применяйте COUNT(*) только когда действительно нужен подсчёт.
3. Выбирайте конкретные столбцы явно; избегайте SELECT * для сокращения операций ввода-вывода и использования покрывающих индексов.
4. Предпочитайте SARG-предикаты (предикаты, допускающие использование индекса); переписывайте медленные коррелированные подзапросы с помощью JOIN/EXISTS.
5. Избегайте DISTINCT как временного решения; исправьте соединения/ключи; используйте его только когда действительно требуется удаление дубликатов.
6. Фильтрацию выполняйте в WHERE; резервируйте HAVING только для фильтрации после агрегации.
7. Используйте явные JOIN ... ON; избегайте неявных соединений в WHERE.
8. Применяйте пагинацию по ключам; избегайте OFFSET/LIMIT на больших наборах данных; для выборки используйте TABLESAMPLE (если доступно).
9. Используйте UNION ALL вместо UNION, когда дубликаты допустимы.
10. Заменяйте широкие OR-предикаты на UNION ALL только когда каждая ветвь может использовать разные индексы.
11. Планируйте выполнение тяжёлых запросов в периоды низкой нагрузки; применяйте ограничения ресурсов/очереди, если они доступны.
12. Избегайте OR в предикатах соединения; используйте вычисляемые столбцы или UNION ALL, когда это позволяет использовать поиск по индексу.
13. Используйте GROUP BY, когда нужны сгруппированные строки; применяйте оконные функции, когда требуется детализация строк с агрегатами.
14. Используйте производные/временные таблицы, когда они сокращают объём работы или добавляют статистику; остерегайтесь блокирующих спусков.
15. При массовой загрузке: отключайте/удаляйте некластерные индексы, выполняйте пакетную вставку, затем восстанавливайте; сохраняйте PK/кластерные индексы, когда это полезно.
16. Используйте материализованные представления для медленно меняющихся, ресурсоёмких агрегатов; планируйте обновление/недействительность.
17. Избегайте не-SARG-сравнений (например, <>) на столбцах с низкой селективностью; переписывайте в диапазоны, когда это возможно.
18. Минимизируйте коррелированные подзапросы над большими наборами; предпочитайте множественные соединения/EXISTS.
19. Выбирайте INNER вместо LEFT/RIGHT по семантике; INNER часто работает лучше, когда применимо.
20. Кешируйте повторяющиеся наборы результатов: временные таблицы (на сессию), кеш результатов или материализованные представления, с правилами актуальности.
#sql
1. Индексы для шаблонов доступа к запросам (составные, селективные, покрывающие); не ориентируйтесь на количество строк; поддерживайте актуальность статистики.
2. Используйте EXISTS для проверки наличия записей; применяйте COUNT(*) только когда действительно нужен подсчёт.
3. Выбирайте конкретные столбцы явно; избегайте SELECT * для сокращения операций ввода-вывода и использования покрывающих индексов.
4. Предпочитайте SARG-предикаты (предикаты, допускающие использование индекса); переписывайте медленные коррелированные подзапросы с помощью JOIN/EXISTS.
5. Избегайте DISTINCT как временного решения; исправьте соединения/ключи; используйте его только когда действительно требуется удаление дубликатов.
6. Фильтрацию выполняйте в WHERE; резервируйте HAVING только для фильтрации после агрегации.
7. Используйте явные JOIN ... ON; избегайте неявных соединений в WHERE.
8. Применяйте пагинацию по ключам; избегайте OFFSET/LIMIT на больших наборах данных; для выборки используйте TABLESAMPLE (если доступно).
9. Используйте UNION ALL вместо UNION, когда дубликаты допустимы.
10. Заменяйте широкие OR-предикаты на UNION ALL только когда каждая ветвь может использовать разные индексы.
11. Планируйте выполнение тяжёлых запросов в периоды низкой нагрузки; применяйте ограничения ресурсов/очереди, если они доступны.
12. Избегайте OR в предикатах соединения; используйте вычисляемые столбцы или UNION ALL, когда это позволяет использовать поиск по индексу.
13. Используйте GROUP BY, когда нужны сгруппированные строки; применяйте оконные функции, когда требуется детализация строк с агрегатами.
14. Используйте производные/временные таблицы, когда они сокращают объём работы или добавляют статистику; остерегайтесь блокирующих спусков.
15. При массовой загрузке: отключайте/удаляйте некластерные индексы, выполняйте пакетную вставку, затем восстанавливайте; сохраняйте PK/кластерные индексы, когда это полезно.
16. Используйте материализованные представления для медленно меняющихся, ресурсоёмких агрегатов; планируйте обновление/недействительность.
17. Избегайте не-SARG-сравнений (например, <>) на столбцах с низкой селективностью; переписывайте в диапазоны, когда это возможно.
18. Минимизируйте коррелированные подзапросы над большими наборами; предпочитайте множественные соединения/EXISTS.
19. Выбирайте INNER вместо LEFT/RIGHT по семантике; INNER часто работает лучше, когда применимо.
20. Кешируйте повторяющиеся наборы результатов: временные таблицы (на сессию), кеш результатов или материализованные представления, с правилами актуальности.
#sql
❤11🎄4👍3🔥3
Краткий совет по Linux:
В Linux оператор конвейера (|) очень полезен, если вы хотите перенаправить вывод одной команды в качестве входных данных для следующей обработки:
Однако это не перенаправляет ошибки. Поэтому, если файл не существует, команда grep, указанная выше, не вернёт совпадение.
Что делать, если вы хотите перенаправить и обработать как ошибки, так и нормальный вывод 🤔
Вот тут-то и пригодится оператор перенаправления «|&».
Этот оператор отправляет стандартный вывод (stdout) и стандартный поток ошибок (stderr) первой команды по каналу на стандартный ввод (stdin) второй команды. Взгляните на этот пример:
Обратите внимание на разницу: команда grep смогла получить совпадение.
Оператор «|&» в bash является сокращением для оператора перенаправления «2>&1 |».
#linux
В Linux оператор конвейера (|) очень полезен, если вы хотите перенаправить вывод одной команды в качестве входных данных для следующей обработки:
$ cat data.txt | grep "Такого файла нет"
Однако это не перенаправляет ошибки. Поэтому, если файл не существует, команда grep, указанная выше, не вернёт совпадение.
Что делать, если вы хотите перенаправить и обработать как ошибки, так и нормальный вывод 🤔
Вот тут-то и пригодится оператор перенаправления «|&».
Этот оператор отправляет стандартный вывод (stdout) и стандартный поток ошибок (stderr) первой команды по каналу на стандартный ввод (stdin) второй команды. Взгляните на этот пример:
$ cat data.txt |& grep "Такого файла нет"
Обратите внимание на разницу: команда grep смогла получить совпадение.
Оператор «|&» в bash является сокращением для оператора перенаправления «2>&1 |».
$ cmd-1 2>&1 | cmd-2
#linux
❤17🤔10👏1
Сравнение трех архитектурных подходов: Monolith, Modular Monolith и Microservices.
1. Монолит:
- Это единая архитектура, где все компоненты приложения тесно связаны и зависят друг от друга.
- Все функции и данные находятся в одной базе данных.
- Пример: система с модулями «Платежи», «Продукты», «Заказы», «Доставка» и «Корзина».
2. Модульный монолит:
- Представляет собой модульный подход к монолитной архитектуре, где приложение разделено на независимые модули.
- Каждый модуль имеет свою логику и API, но все модули работают в рамках одного приложения.
- Пример: модули «Платежи», «Продукты», «Заказы», «Доставка» и «Корзина» с отдельными API.
3. Микросервисы:
- Это архитектура, где приложение состоит из множества независимых сервисов, каждый из которых выполняет свою функцию.
- Сервисы могут быть написаны на разных языках и технологиях, и каждый имеет свою базу данных.
- Пример: отдельные сервисы для «Платежей», «Продуктов», «Заказов», «Доставки» и «Корзины».
1. Монолит:
- Это единая архитектура, где все компоненты приложения тесно связаны и зависят друг от друга.
- Все функции и данные находятся в одной базе данных.
- Пример: система с модулями «Платежи», «Продукты», «Заказы», «Доставка» и «Корзина».
2. Модульный монолит:
- Представляет собой модульный подход к монолитной архитектуре, где приложение разделено на независимые модули.
- Каждый модуль имеет свою логику и API, но все модули работают в рамках одного приложения.
- Пример: модули «Платежи», «Продукты», «Заказы», «Доставка» и «Корзина» с отдельными API.
3. Микросервисы:
- Это архитектура, где приложение состоит из множества независимых сервисов, каждый из которых выполняет свою функцию.
- Сервисы могут быть написаны на разных языках и технологиях, и каждый имеет свою базу данных.
- Пример: отдельные сервисы для «Платежей», «Продуктов», «Заказов», «Доставки» и «Корзины».
❤9🔥4👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Визуальное объяснение интеграла
❤32👍16🤔13
Event Sourcing и CQRS
(продолжение предыдущего поста)
* Event Sourcing и CQRS — архитектурные шаблоны, которые часто применяют совместно в системах, управляемых событиями.
* Event Sourcing фиксирует каждое изменение в системе в виде последовательности событий, а не просто сохраняет текущее состояние.
* CQRS разделяет операции записи (команды) и чтения (запросы) в системе для лучшей масштабируемости и наглядности.
Как работает Event Sourcing
* Вместо сохранения только конечного состояния (например, «баланс = 200 $») система записывает каждое событие («Добавлено 100 $», «Снято 50 $» и т. д.).
* Текущее состояние вычисляется путём воспроизведения прошлых событий.
* Система работает как хронологическая книга учёта — прозрачная, поддающаяся аудиту и воспроизводимая.
Компоненты
* Хранилище событий — сохраняет все события в хронологическом порядке (только добавление).
* Обработчики команд — обрабатывают поступающие действия и создают новые события.
* Процессоры событий — реагируют на сохранённые события, обновляют проекции или запускают побочные эффекты.
* Проекции — представляют оптимизированные для чтения представления, построенные на основе воспроизведённых событий.
Поток данных
Команда → Создание события → Сохранение события → Обновление проекций → Перестроение состояния по требованию
Преимущества
* Полный аудит и возможность «путешествовать во времени» среди данных.
* Простота отладки и воспроизведения истории системы.
* Естественная совместимость с распределёнными и управляемыми событиями системами.
* Поддержка реактивных и асинхронных рабочих процессов.
Недостатки
* Объём хранилища может быстро расти.
* Сложная логика версионирования событий и их воспроизведения.
* Требуется тщательное управление проекциями и согласованностью.
Как работает CQRS
* Расшифровывается как *разделение ответственности команд и запросов* (Command Query Responsibility Segregation).
* Разделяет систему на две части:
* Сторона команд — обрабатывает операции записи (создание, обновление, удаление).
* Сторона запросов — обрабатывает операции чтения (эффективное получение данных).
* Каждая часть может масштабироваться, моделироваться и оптимизироваться независимо.
Преимущества
* Оптимизированная производительность для операций чтения и записи.
* Лучшее разделение ответственности и более чистый дизайн.
* Проще развивать модели чтения, не затрагивая операции записи.
* Хорошо сочетается с Event Sourcing для создания проекций.
Недостатки
* Больше компонентов — повышается сложность архитектуры.
* Согласованность между сторонами чтения и записи достигается не сразу (eventual consistency).
* Требуются надёжные механизмы обмена сообщениями и синхронизации.
Совместный поток (Event Sourcing + CQRS)
Команда → Генерация события → Сохранение события → Обновление проекции → Чтение запроса из проекции
Когда применять
* Системы, требующие аудита, возможности воспроизведения или управляемые событиями рабочие процессы.
* Приложения, где операций чтения значительно больше, чем операций записи (например, аналитические панели).
* Финансовые системы, бухгалтерские книги, CRM, системы отслеживания логистики и платформы IoT.
(продолжение предыдущего поста)
* Event Sourcing и CQRS — архитектурные шаблоны, которые часто применяют совместно в системах, управляемых событиями.
* Event Sourcing фиксирует каждое изменение в системе в виде последовательности событий, а не просто сохраняет текущее состояние.
* CQRS разделяет операции записи (команды) и чтения (запросы) в системе для лучшей масштабируемости и наглядности.
Как работает Event Sourcing
* Вместо сохранения только конечного состояния (например, «баланс = 200 $») система записывает каждое событие («Добавлено 100 $», «Снято 50 $» и т. д.).
* Текущее состояние вычисляется путём воспроизведения прошлых событий.
* Система работает как хронологическая книга учёта — прозрачная, поддающаяся аудиту и воспроизводимая.
Компоненты
* Хранилище событий — сохраняет все события в хронологическом порядке (только добавление).
* Обработчики команд — обрабатывают поступающие действия и создают новые события.
* Процессоры событий — реагируют на сохранённые события, обновляют проекции или запускают побочные эффекты.
* Проекции — представляют оптимизированные для чтения представления, построенные на основе воспроизведённых событий.
Поток данных
Команда → Создание события → Сохранение события → Обновление проекций → Перестроение состояния по требованию
Преимущества
* Полный аудит и возможность «путешествовать во времени» среди данных.
* Простота отладки и воспроизведения истории системы.
* Естественная совместимость с распределёнными и управляемыми событиями системами.
* Поддержка реактивных и асинхронных рабочих процессов.
Недостатки
* Объём хранилища может быстро расти.
* Сложная логика версионирования событий и их воспроизведения.
* Требуется тщательное управление проекциями и согласованностью.
Как работает CQRS
* Расшифровывается как *разделение ответственности команд и запросов* (Command Query Responsibility Segregation).
* Разделяет систему на две части:
* Сторона команд — обрабатывает операции записи (создание, обновление, удаление).
* Сторона запросов — обрабатывает операции чтения (эффективное получение данных).
* Каждая часть может масштабироваться, моделироваться и оптимизироваться независимо.
Преимущества
* Оптимизированная производительность для операций чтения и записи.
* Лучшее разделение ответственности и более чистый дизайн.
* Проще развивать модели чтения, не затрагивая операции записи.
* Хорошо сочетается с Event Sourcing для создания проекций.
Недостатки
* Больше компонентов — повышается сложность архитектуры.
* Согласованность между сторонами чтения и записи достигается не сразу (eventual consistency).
* Требуются надёжные механизмы обмена сообщениями и синхронизации.
Совместный поток (Event Sourcing + CQRS)
Команда → Генерация события → Сохранение события → Обновление проекции → Чтение запроса из проекции
Когда применять
* Системы, требующие аудита, возможности воспроизведения или управляемые событиями рабочие процессы.
* Приложения, где операций чтения значительно больше, чем операций записи (например, аналитические панели).
* Финансовые системы, бухгалтерские книги, CRM, системы отслеживания логистики и платформы IoT.
Telegram
METANIT.COM
Event Sourcing и CQRS
(продолжение в следующем посте)
(продолжение в следующем посте)
👍6❤3👏1
Мало известные, но тем не менее полезные возможности SQL: WHERE vs HAVING, WINDOW FUNCTIONS vs AGGREGATION и PARTITIONED-Таблицы
(описание в следующем посте)
(описание в следующем посте)
Мало известные, но тем не менее полезные возможности SQL: WHERE vs HAVING, WINDOW FUNCTIONS vs AGGREGATION и PARTITIONED-Таблицы
(описание к изображению из предыдущего поста)
### WHERE vs HAVING
- WHERE: Используется для фильтрации строк перед группировкой. Например, в таблице с данными о продажах магазинов, WHERE позволяет выбрать только те строки, которые соответствуют определённым условиям (например,
- HAVING: Применяется для фильтрации после группировки. Например,
### WINDOW FUNCTIONS vs AGGREGATION
- WINDOW FUNCTIONS: Позволяют выполнять вычисления по набору строк, связанных с текущей строкой. Они сохраняют все строки и добавляют вычисленные значения. Например, можно рассчитать сумму продаж для каждого магазина, сохраняя все строки.
- AGGREGATION: Использует функции, такие как SUM, COUNT, AVG, для объединения данных в одну строку. Например,
### PARTITIONED Tables
- PARTITIONING: Это метод разделения таблицы на более мелкие части (разделы) для улучшения производительности и управления данными. На изображении показано создание четырёх разделов:
- Раздел 1: Данные до 2022-12-31.
- Раздел 2: Данные за 2023 год.
- Раздел 3: Данные за 2024 год.
- Раздел 4: Данные после 2025 года.
Пример кода для создания раздела:
(описание к изображению из предыдущего поста)
### WHERE vs HAVING
- WHERE: Используется для фильтрации строк перед группировкой. Например, в таблице с данными о продажах магазинов, WHERE позволяет выбрать только те строки, которые соответствуют определённым условиям (например,
WHERE Store IN ('store1', 'store2')).- HAVING: Применяется для фильтрации после группировки. Например,
HAVING SUM(Sales) > 4000 отбирает группы, где сумма продаж превышает 4000.### WINDOW FUNCTIONS vs AGGREGATION
- WINDOW FUNCTIONS: Позволяют выполнять вычисления по набору строк, связанных с текущей строкой. Они сохраняют все строки и добавляют вычисленные значения. Например, можно рассчитать сумму продаж для каждого магазина, сохраняя все строки.
- AGGREGATION: Использует функции, такие как SUM, COUNT, AVG, для объединения данных в одну строку. Например,
SUM(Sales) GROUP BY Store суммирует продажи по каждому магазину.### PARTITIONED Tables
- PARTITIONING: Это метод разделения таблицы на более мелкие части (разделы) для улучшения производительности и управления данными. На изображении показано создание четырёх разделов:
- Раздел 1: Данные до 2022-12-31.
- Раздел 2: Данные за 2023 год.
- Раздел 3: Данные за 2024 год.
- Раздел 4: Данные после 2025 года.
Пример кода для создания раздела:
CREATE PARTITION FUNCTION PF_OrderDate (DATE)
AS RANGE RIGHT FOR VALUES ('2022-12-31', '2023-12-31', '2024-12-31');
Telegram
METANIT.COM
Мало известные, но тем не менее полезные возможности SQL: WHERE vs HAVING, WINDOW FUNCTIONS vs AGGREGATION и PARTITIONED-Таблицы
(описание в следующем посте)
(описание в следующем посте)
❤4
Минцифры опровергло сообщения об утечке данных пользователей Max
Минцифры РФ после проверки опровергло информацию о том, что данные пользователей портала Госуслуг якобы утекли из национального мессенджера Max.
"Данные пользователей Госуслуг надёжно защищены. Специалисты Минцифры проверили информацию о якобы случившейся утечке из мессенджера Max, размещённую в анонимных каналах", - говорится в сообщении.
По данным Минцифры, "автором информации об утечке был выложен сэмпл, содержащий 15 записей, в которых были указаны якобы ID пользователей Госуслуг".
"Проверка показала, что ни по одной из опубликованных записей ID Госуслуг не совпадает с ФИО реальных пользователей. Из чего можно сделать вывод, что публикации о взломе сфабрикованы", - говорится в сообщении.
Также опровергли о взломе мессенджера в пресс-службе самого разработчика Max.
Ранее стало известно, что в даркнете выставили на продажу якобы базу данных пользователей Max. Продавец утверждает, что в его распоряжении находится более 46,2 млн записей.
https://www.interfax.ru/russia/1053484
https://tass.ru/ekonomika/25390039
Минцифры РФ после проверки опровергло информацию о том, что данные пользователей портала Госуслуг якобы утекли из национального мессенджера Max.
"Данные пользователей Госуслуг надёжно защищены. Специалисты Минцифры проверили информацию о якобы случившейся утечке из мессенджера Max, размещённую в анонимных каналах", - говорится в сообщении.
По данным Минцифры, "автором информации об утечке был выложен сэмпл, содержащий 15 записей, в которых были указаны якобы ID пользователей Госуслуг".
"Проверка показала, что ни по одной из опубликованных записей ID Госуслуг не совпадает с ФИО реальных пользователей. Из чего можно сделать вывод, что публикации о взломе сфабрикованы", - говорится в сообщении.
Также опровергли о взломе мессенджера в пресс-службе самого разработчика Max.
Ранее стало известно, что в даркнете выставили на продажу якобы базу данных пользователей Max. Продавец утверждает, что в его распоряжении находится более 46,2 млн записей.
https://www.interfax.ru/russia/1053484
https://tass.ru/ekonomika/25390039
Интерфакс
Минцифры опровергло сообщения об утечке данных пользователей Max
Интерфакс: Минцифры РФ после проверки опровергло информацию о том, что данные пользователей портала Госуслуг якобы утекли из национального мессенджера Max."Данные пользователей Госуслуг надёжно защищены.
🤡22😁13👍3❤1🤔1
Средняя зарплата профильных технических сотрудников софтверных компаний в 2024 году увеличилась на 13,5% по сравнению с 2023 г. и достигла примерно ₽200 тыс., что более чем в 2 раза больше, чем по всей экономике (около ₽88 тыс.). В то же время, разрыв в уровне зарплат по отношению с другими отраслями медленно, но всё же сокращается: прирост по всем отраслям, включая госсектор, составил 18,3%, что почти на 5 процентных пунктов больше, чем в софтверной индустрии.
В отдаленные времена средняя зарплата в софтверной индустрии росла намного быстрее аналогичного показателя для всей экономики России. В 2017 г. впервые очевидного преимущества разработчиков программного обеспечения по темпам роста зарплат выявлено не было. В 2018-2019 гг. рост средней зарплаты разработчиков ПО и увеличение номинальной начисленной заработной платы работников в целом по экономике РФ и вовсе сравнялись. В последующие годы, вплоть до 2024 года, у софтверной индустрии не было преимущества по темпам роста относительно всех отраслей (за исключением пандемийного 2020 года, за который разработчики ПО прибавили в своих доходах в среднем 11%, а по всем видам занятости прирост составил только 6%).
https://russoft.org/news/razrabotchiki-po-poteryali-lidiruyushhie-pozitsii-po-tempam-rosta-srednej-zarplaty-no-po-prezhnemu-uverenno-sohranyayut-ih-po-absolyutnoj-velichine/
В отдаленные времена средняя зарплата в софтверной индустрии росла намного быстрее аналогичного показателя для всей экономики России. В 2017 г. впервые очевидного преимущества разработчиков программного обеспечения по темпам роста зарплат выявлено не было. В 2018-2019 гг. рост средней зарплаты разработчиков ПО и увеличение номинальной начисленной заработной платы работников в целом по экономике РФ и вовсе сравнялись. В последующие годы, вплоть до 2024 года, у софтверной индустрии не было преимущества по темпам роста относительно всех отраслей (за исключением пандемийного 2020 года, за который разработчики ПО прибавили в своих доходах в среднем 11%, а по всем видам занятости прирост составил только 6%).
https://russoft.org/news/razrabotchiki-po-poteryali-lidiruyushhie-pozitsii-po-tempam-rosta-srednej-zarplaty-no-po-prezhnemu-uverenno-sohranyayut-ih-po-absolyutnoj-velichine/
🤔2
Какое выполнение кода "int a, b = 5;" было бы более интуитивным?
Anonymous Poll
30%
Как "int a; int b = 5;" (переменная a не инициализирована, b равна 5)
70%
Как "int a = 5; int b = 5;" (обе переменных равны 5)
😐47🗿14🤡8👍6🤔4🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Наглядно как работает Null Pointer (нулевой указатель)
👍18
Microsoft предупредила пользователей USB-мыши и клавиатуры о проблемах с обновлением KB5066835 для Windows 11
На прошлой неделе Microsoft выпустила первое обновление KB5066835 для Windows 11 25H2. Теперь компания подтвердила, что после его установки USB-клавиатура и мышь могут не регистрироваться в среде восстановления Windows (WinRE): «После установки обновления безопасности Windows, выпущенного 14 октября 2025 года (KB5066835), USB-устройства, такие как клавиатура и мышь, не работают в среде восстановления Windows (WinRE). Эта проблема препятствует навигации по любым параметрам восстановления в WinRE. Обратите внимание, что USB-клавиатура и мышь продолжают нормально работать в операционной системе Windows».
https://learn.microsoft.com/en-us/windows/release-health/status-windows-11-25H2#3696msgdesc
PS. Обновления Windows 11 - это какая-то катастрофа....
На прошлой неделе Microsoft выпустила первое обновление KB5066835 для Windows 11 25H2. Теперь компания подтвердила, что после его установки USB-клавиатура и мышь могут не регистрироваться в среде восстановления Windows (WinRE): «После установки обновления безопасности Windows, выпущенного 14 октября 2025 года (KB5066835), USB-устройства, такие как клавиатура и мышь, не работают в среде восстановления Windows (WinRE). Эта проблема препятствует навигации по любым параметрам восстановления в WinRE. Обратите внимание, что USB-клавиатура и мышь продолжают нормально работать в операционной системе Windows».
https://learn.microsoft.com/en-us/windows/release-health/status-windows-11-25H2#3696msgdesc
PS. Обновления Windows 11 - это какая-то катастрофа....
Docs
Windows 11, version 25H2 known issues and notifications
View announcements and review known issues and fixes for Windows 11, version 25H2
😁22🤡16💯2
Microsoft начала массовое развёртывание обновления Windows 11 версии 25H2 для всех совместимых устройств, включая ПК на Windows 10.
В 25H2 активируются функции, которые уже были включены в версии 24H2. Его главная цель — обновить срок поддержки системы. После установки 25H2 пользователи получат поддержку на 24 месяца, пользователи корпоративных версий — на 36 месяцев, что обеспечит регулярные обновления и защиту до 2028 года.
Кроме того, обновление включает улучшения для работы ПК Copilot+ AI и элементов интерфейса, таких как панель задач.
Владельцы ПК на Windows 10 или Windows 11 могут проверить наличие обновления через «Параметры» > «Центр обновления Windows» > «Проверить наличие обновлений». Если устройство готово к обновлению, появится опция «Загрузить и установить Windows 11 версии 25H2».
Полный список нововведений доступен на сайте Microsoft: https://support.microsoft.com/en-us/windows/inside-this-update-93c5c27c-f96e-43c2-a08e-5812d92f220d
В 25H2 активируются функции, которые уже были включены в версии 24H2. Его главная цель — обновить срок поддержки системы. После установки 25H2 пользователи получат поддержку на 24 месяца, пользователи корпоративных версий — на 36 месяцев, что обеспечит регулярные обновления и защиту до 2028 года.
Кроме того, обновление включает улучшения для работы ПК Copilot+ AI и элементов интерфейса, таких как панель задач.
Владельцы ПК на Windows 10 или Windows 11 могут проверить наличие обновления через «Параметры» > «Центр обновления Windows» > «Проверить наличие обновлений». Если устройство готово к обновлению, появится опция «Загрузить и установить Windows 11 версии 25H2».
Полный список нововведений доступен на сайте Microsoft: https://support.microsoft.com/en-us/windows/inside-this-update-93c5c27c-f96e-43c2-a08e-5812d92f220d
Microsoft
Inside this update - Microsoft Support
Learn what's new in the latest Windows update. Explore new features and apps to help you be more productive.
😁4🤮4❤2👍1🔥1
В руководство по языку Java добавлены новые статьи:
Асинхронные задачи FutureTask. Callable и Future
https://metanit.com/java/tutorial/8.13.php
Executor - исполнитель задач
https://metanit.com/java/tutorial/8.14.php
Координация выполнения асинхронных задач
https://metanit.com/java/tutorial/8.15.php
#java
Асинхронные задачи FutureTask. Callable и Future
https://metanit.com/java/tutorial/8.13.php
Executor - исполнитель задач
https://metanit.com/java/tutorial/8.14.php
Координация выполнения асинхронных задач
https://metanit.com/java/tutorial/8.15.php
#java
❤🔥13👍4🔥2