Discord внедрил сквозное шифрование🤔
Discord анонсировал внедрение сквозного шифрования (E2EE) через протокол DAVE для защиты 200 миллионов пользователей.
🔻E2EE будет применяться к голосовым и видеозвонкам в личных сообщениях, групповых чатах и стримах Go Live, обеспечивая пользователям возможность подтверждать безопасность звонков и проверять других участников.
Участники звонка будут иметь доступ к зашифрованному контенту, при этом Discord заявляет, что не будет хранить ключи шифрования.❌
🔻Для активации E2EE все участники должны поддерживать этот протокол, а интерфейс будет информировать о статусе шифрования, также внедряя дополнительные меры безопасности для проверки идентичности и предотвращения подмены участников.
Кажется, именно из за этого были в последнее время сбои с дискордом. Или как минимум одна из причин.
Discord анонсировал внедрение сквозного шифрования (E2EE) через протокол DAVE для защиты 200 миллионов пользователей.
🔻E2EE будет применяться к голосовым и видеозвонкам в личных сообщениях, групповых чатах и стримах Go Live, обеспечивая пользователям возможность подтверждать безопасность звонков и проверять других участников.
Участники звонка будут иметь доступ к зашифрованному контенту, при этом Discord заявляет, что не будет хранить ключи шифрования.❌
🔻Для активации E2EE все участники должны поддерживать этот протокол, а интерфейс будет информировать о статусе шифрования, также внедряя дополнительные меры безопасности для проверки идентичности и предотвращения подмены участников.
Кажется, именно из за этого были в последнее время сбои с дискордом. Или как минимум одна из причин.
❤2 2
Начало учебного года - повод обновиться. MacBook Pro 2022 - один из лучших ноутбуков для работы на данный момент.
Качество Apple, надежность и долгая поддержка - что еще нужно для отличной жизни?
https://ya.cc/m/kos6RT5?erid=5jtCeReNx12oajqt5y64b68
https://ya.cc/m/kos6RT5?erid=5jtCeReNx12oajqt5y64b68
https://ya.cc/m/kos6RT5?erid=5jtCeReNx12oajqt5y64b68
Реклама. ООО «ЯНДЕКС», ИНН 7736207543, erid: 5jtCeReNx12oajqt5y64b68
Качество Apple, надежность и долгая поддержка - что еще нужно для отличной жизни?
https://ya.cc/m/kos6RT5?erid=5jtCeReNx12oajqt5y64b68
https://ya.cc/m/kos6RT5?erid=5jtCeReNx12oajqt5y64b68
https://ya.cc/m/kos6RT5?erid=5jtCeReNx12oajqt5y64b68
Реклама. ООО «ЯНДЕКС», ИНН 7736207543, erid: 5jtCeReNx12oajqt5y64b68
😁1
Компилятор Go генерирует абстрактный, портируемый ассемблер, который не привязан к конкретному оборудованию. Следовательно, сборщик Go использует этот псевдоассемблер для создания инструкций, специфичных для целевого оборудования.
Go позволяет использовать ассемблерные вставки в коде. Написание функций на ассемблере прямо в Go не так уж сложно, как кажется. В качестве примера, рассмотрим функцию sum, которая складывает два int64:
Хотя это стандартная функция, в ней отсутствует тело. Поэтому компилятор выдаст ошибку при попытке сборки программы.
Для реализации функции на ассемблере добавим файл с расширением .s:
Теперь мы можем собрать, протестировать и использовать функцию sum как обычную. Этот подход широко применяется в различных пакетах, таких как runtime, math, bytealg, syscall, reflect, crypto, позволяя использовать аппаратные оптимизации процессора и команды, отсутствующие в самом языке. Во многом благодаря этому можно создать полноценное ядро операционной системы.
Однако следует учитывать, что функции на ассемблере не могут быть оптимизированы и встроены компилятором. Для обхода этого ограничения разработчики создали встраиваемые функции.
Встраиваемые функции изначально написаны на Go, но компилятор имеет возможность использовать альтернативный вариант. Эти функции имеют особые сигнатуры, повторяющие сигнатуры процессорных команд, что позволяет компилятору заменить вызовы функций на ассемблерные инструкции, если целевая архитектура такова.
Встраиваемые функции представляют собой элегантное решение, предоставляющее доступ к низкоуровневым операциям без необходимости расширения спецификации языка. В случае отсутствия специфических примитивов sync/atomic (например, в некоторых вариантах arm), или операций из math/bits, компилятор будет вставлять полифил на обычном Go.
Go позволяет использовать ассемблерные вставки в коде. Написание функций на ассемблере прямо в Go не так уж сложно, как кажется. В качестве примера, рассмотрим функцию sum, которая складывает два int64:
func sum(a int64, b int64) int64
Хотя это стандартная функция, в ней отсутствует тело. Поэтому компилятор выдаст ошибку при попытке сборки программы.
Для реализации функции на ассемблере добавим файл с расширением .s:
text sum(sb),$0-24
movq a+0(fp), ax
addq b+8(fp), ax
movq ax, ret+16(fp)
ret
Теперь мы можем собрать, протестировать и использовать функцию sum как обычную. Этот подход широко применяется в различных пакетах, таких как runtime, math, bytealg, syscall, reflect, crypto, позволяя использовать аппаратные оптимизации процессора и команды, отсутствующие в самом языке. Во многом благодаря этому можно создать полноценное ядро операционной системы.
Однако следует учитывать, что функции на ассемблере не могут быть оптимизированы и встроены компилятором. Для обхода этого ограничения разработчики создали встраиваемые функции.
Встраиваемые функции изначально написаны на Go, но компилятор имеет возможность использовать альтернативный вариант. Эти функции имеют особые сигнатуры, повторяющие сигнатуры процессорных команд, что позволяет компилятору заменить вызовы функций на ассемблерные инструкции, если целевая архитектура такова.
Встраиваемые функции представляют собой элегантное решение, предоставляющее доступ к низкоуровневым операциям без необходимости расширения спецификации языка. В случае отсутствия специфических примитивов sync/atomic (например, в некоторых вариантах arm), или операций из math/bits, компилятор будет вставлять полифил на обычном Go.
Небольшое зрительное упражнение. Засекайте 3 минуты и пытайтесь найти одинаковые фигуры.
Среди других упражнений можно выделить:
1. Быстро моргайте глазами и посмотрите вдаль
2. Плотно закройте глаза, откройте, посмотрите до упора глазами налево, направо, вверх, вперед. Так три раза. Потом начинаете крутить глаза (три оборота).
Обязательно иногда отвлекайтесь и выполняйте зрительные упражнения, или хотя бы смотрите вдаль. Зрение очень важная вещь, и не у каждого найдется 60к ₽ на операцию.
#здоровье
Среди других упражнений можно выделить:
1. Быстро моргайте глазами и посмотрите вдаль
2. Плотно закройте глаза, откройте, посмотрите до упора глазами налево, направо, вверх, вперед. Так три раза. Потом начинаете крутить глаза (три оборота).
Обязательно иногда отвлекайтесь и выполняйте зрительные упражнения, или хотя бы смотрите вдаль. Зрение очень важная вещь, и не у каждого найдется 60к ₽ на операцию.
#здоровье
🔥3 1
👨💻 Конструктор Pantasy Retro
Перенеситесь благодаря конструктору Pantasy Retro «Ретро-компьютер» (85005) в недалекое прошлое, когда интернет был в диковинку, а планшетов и вовсе не существовало. Из 1634 деталей набора вы сможет собрать полную комплектацию компьютерного рабочего места, включая системный блок, монитор старого образца на базе электронно-лучевой трубки, мышь, коврик для мыши, клавиатуру, диск и даже дискету! Почувствуйте себя IT-инженером, который конфигурирует компьютер, устанавливая материнскую плату, графическую карту, вентилятор охлаждения процессора, блок питания, дисковод. Насладитесь ностальгическими воспоминаниями, поставив на мониторе заставку с игрой «Сапер».
Цена: ~13.000 рублей
Выглядит очень интересно, я бы купил, если были бы лишние деньги.
https://ya.cc/m/KxjnQaa?erid=5jtCeReNx12oajqt5y64b68
Реклама. ООО «ЯНДЕКС», ИНН 7736207543, erid: 5jtCeReNx12oajqt5y64b68
Перенеситесь благодаря конструктору Pantasy Retro «Ретро-компьютер» (85005) в недалекое прошлое, когда интернет был в диковинку, а планшетов и вовсе не существовало. Из 1634 деталей набора вы сможет собрать полную комплектацию компьютерного рабочего места, включая системный блок, монитор старого образца на базе электронно-лучевой трубки, мышь, коврик для мыши, клавиатуру, диск и даже дискету! Почувствуйте себя IT-инженером, который конфигурирует компьютер, устанавливая материнскую плату, графическую карту, вентилятор охлаждения процессора, блок питания, дисковод. Насладитесь ностальгическими воспоминаниями, поставив на мониторе заставку с игрой «Сапер».
Цена: ~13.000 рублей
Выглядит очень интересно, я бы купил, если были бы лишние деньги.
https://ya.cc/m/KxjnQaa?erid=5jtCeReNx12oajqt5y64b68
Реклама. ООО «ЯНДЕКС», ИНН 7736207543, erid: 5jtCeReNx12oajqt5y64b68
👍2❤1⚡1
Open3D SLAM: A Flexible Pointcloud-based SLAM System for Education - Open3D SLAM: Гибкая образовательная система SLAM на базе Pointcloud
Основное различие между open3d_slam и другими библиотеками SLAM заключается в том, что open3d_slam был разработан таким образом, чтобы быть простым и использоваться в образовательных целях. На самом деле, open3d_slam использует только хорошо зарекомендовавшие себя алгоритмы в их базовой форме. Open3D SLAM гарантирует, что это облегчит работу новичкам. Это работает с pointclouds, не требуется никаких дополнительных данных, таких как IMU. Open3D_slam может создавать карту с нуля или локализовать на заданной карте. Данная карта также может быть дополнена новыми измерениями.
Open3D SLAM основывается на Open3D, хорошо поддерживаемой и высокопроизводительной библиотеке для обработки 3D-данных.
Документация: https://open3d-slam.readthedocs.io/en/latest/
GitHub: https://github.com/leggedrobotics/open3d_slam
Основное различие между open3d_slam и другими библиотеками SLAM заключается в том, что open3d_slam был разработан таким образом, чтобы быть простым и использоваться в образовательных целях. На самом деле, open3d_slam использует только хорошо зарекомендовавшие себя алгоритмы в их базовой форме. Open3D SLAM гарантирует, что это облегчит работу новичкам. Это работает с pointclouds, не требуется никаких дополнительных данных, таких как IMU. Open3D_slam может создавать карту с нуля или локализовать на заданной карте. Данная карта также может быть дополнена новыми измерениями.
Open3D SLAM основывается на Open3D, хорошо поддерживаемой и высокопроизводительной библиотеке для обработки 3D-данных.
Документация: https://open3d-slam.readthedocs.io/en/latest/
GitHub: https://github.com/leggedrobotics/open3d_slam
👍1🔥1 1
В 60-е годы советский физик Валентин Турчин создал Рефал — язык программирования, ориентированный на обработку символов и разработку ИИ.
Представьте, что у нас есть «рефал-функция» с одним правилом:
И если быть точнее, язык был создан в 1966–1968 годах.
Вместо последовательных инструкций, он использует правила для преобразования выражений. Рефал-функции сопоставляют образцы с выражениями, делая код компактным и понятным.
Представьте, что у нас есть «рефал-функция» с одним правилом:
Образец:add(X, Y)
Шаблон:X + Y
Если мы подадим на вход этой функцииadd(2, 3), то:
1. Образецadd(X, Y)совпадает с выражениемadd(2, 3).
2. ПеременнойXприсваивается значение2, аY— значение3.
3. В шаблонеX + Yпроисходит замена переменных, и получается2 + 3.
4. В «поле зрения» Рефал-автомата вместоadd(2, 3)появляется2 + 3.
И если быть точнее, язык был создан в 1966–1968 годах.
🔥1 1
Купит ли Qualcomm Intel?
Anonymous Poll
24%
Да, купит
24%
Да, купит, но частично (например отдел разработки десктопных процессоров)
29%
Нет, не купит
24%
50 на 50
👍2 1
SQL Workbench позволяет выполнять и тестировать SQL-запросы в браузере.
➡️https://sql-workbench.com/
#полезное
➡️https://sql-workbench.com/
#полезное
SQL Workbench
SQL Workbench - Free Online SQL Editor and Workbench | Query local & remote CSV, Parquet and JSON data
Free browser-based SQL editor powered by DuckDB. Query and visualize CSV, JSON, Parquet and Arrow files locally or from remote URLs. No installation required.
⚡1🔥1
Поделить нельзя — умножить, или Алгоритм быстрого деления по методу Ньютона-Рафсона
Все мы в школе проходили деление «столбиком» — простой алгоритм, который несложно реализовать, вот только не очень быстрый. В прошлый раз мы рассматривали, как компилятор оптимизирует деление в случаях, когда делитель известен во время компиляции, но применение его напрямую, чтоб оптимизировать деление для делителей, определяемых в run-time, невозможно: вычисление констант сдвига и умножения само по себе требует деления.
В этот раз поговорим о другом методе, сводящем деление к умножениям и битовым сдвигам, основанном на методе поиска корней функции
Все мы в школе проходили деление «столбиком» — простой алгоритм, который несложно реализовать, вот только не очень быстрый. В прошлый раз мы рассматривали, как компилятор оптимизирует деление в случаях, когда делитель известен во время компиляции, но применение его напрямую, чтоб оптимизировать деление для делителей, определяемых в run-time, невозможно: вычисление констант сдвига и умножения само по себе требует деления.
В этот раз поговорим о другом методе, сводящем деление к умножениям и битовым сдвигам, основанном на методе поиска корней функции
🔥3 1
Нашёл интересную статью, может кому то да и будет интересно.
Ассемблер для программистов на языках высокого уровня: Hello World
Обсудим основы языка и сопоставим их с конструкциями высокоуровневого программирования. Завершив прочтение этого руководства, вы сможете ориентироваться в ассемблерном коде, будете знать, где искать информацию, и даже сможете самостоятельно писать простые программы.
Ассемблер для программистов на языках высокого уровня: Hello World
Обсудим основы языка и сопоставим их с конструкциями высокоуровневого программирования. Завершив прочтение этого руководства, вы сможете ориентироваться в ассемблерном коде, будете знать, где искать информацию, и даже сможете самостоятельно писать простые программы.
⚡2❤1
#статья
Статья про создание своей C++ библиотеки с документаций и CMake готова!
Ждите публикацию!
А пока можете поставить звезды на GitHub репозиторий продукта статьи: https://github.com/alxvdev/libnumerixpp
Статья про создание своей C++ библиотеки с документаций и CMake готова!
Ждите публикацию!
А пока можете поставить звезды на GitHub репозиторий продукта статьи: https://github.com/alxvdev/libnumerixpp
🔥1 1
Дисковая и файловая подсистемы
Диски в Linux: LVMRAID - Программный RAID-массив средствами LVM (Logical Volume Management)
Диски в Linux: Перенос каталога /home на отдельный раздел/том LVM
Диски в Linux: Основы LVM - Logical Volume Management, Менеджер логических томов
Файловые системы в Linux: Квотирование в XFS
Хранение файлов в Linux: Индексные дескрипторы (inodes)
Хранение файлов в Linux: Жесткие ссылки (hard links)
Резервное сохранение в Linux: Использование утилит копирования
Резервное сохранение в Linux: Возможности жестких ссылок
Диски в Linux: LVMRAID - Программный RAID-массив средствами LVM (Logical Volume Management)
Диски в Linux: Перенос каталога /home на отдельный раздел/том LVM
Диски в Linux: Основы LVM - Logical Volume Management, Менеджер логических томов
Файловые системы в Linux: Квотирование в XFS
Хранение файлов в Linux: Индексные дескрипторы (inodes)
Хранение файлов в Linux: Жесткие ссылки (hard links)
Резервное сохранение в Linux: Использование утилит копирования
Резервное сохранение в Linux: Возможности жестких ссылок