Pull to refresh
180
0
Валентин @GlukKazan

Программист, Администратор БД

Send message

Сложно ли генерировать 1024-битные простые числа?

Level of difficultyEasy
Reading time28 min
Views7.6K

Простые числа удивительны!

С одной стороны, их легко объяснить: это просто числа, которые делятся только на единицу и на себя; с другой стороны, они содержат в себе бесконечную сложность. Они встречаются во множестве разных сфер, от математических концепций и гипотез до любопытных визуализаций и криптографии, лежат в основе многих Интернет-стандартов и протоколов безопасности, которые мы используем ежедневно.

Несмотря на моё восхищение простыми числами, я никогда не исследовал их подробно, поэтому решил бросить себе вызов. А есть ли лучший способ изучить простые числа, чем воспользоваться моей любовью к кодингу для их генерации?

Вызов

Но какие простые числа мне генерировать? Нахождение миллиардного числа — это слишком просто, а попадание в таблицу рекордов самых больших известных простых чисел — слишком амбициозная задача для первой попытки. Соединив простые числа и интерес к криптографии, я придумал такую задачу:

Генерировать простые числа, способные генерировать ключи для алгоритма RSA

На момент написания этой статьи хорошей длиной ключей RSA считаются 2048 битов. Ключи RSA генерируются перемножением двух простых чисел, так что для получения 2048-битного ключа нам нужны два числа длиной примерно 1024 бита. Это ограничивает рамки задачи генерацией 1024-битных простых чисел. Теперь вы знаете, откуда взялось число из заголовка поста.

Читать далее
Total votes 43: ↑43 and ↓0+59
Comments7

Интеграция PostgreSQL и Hadoop

Reading time5 min
Views1.5K

Представим некое перепутье, где с одной стороны — мощные возможности PostgreSQL, а с другой — необъятные просторы Hadoop. Выбор кажется сложным, но зачем выбирать одно, если можно соединить их и получить лучшее из обоих?

Объединяя их можно создать мощную систему, способную обрабатывать и анализировать огромные объемы данных.

Читать далее
Total votes 6: ↑5 and ↓1+6
Comments0

PostgreSQL 16: Часть 5 или Коммитфест 2023-03

Reading time27 min
Views6.9K

Вместе с окончанием мартовского коммитфеста, закончился прием изменений в 16-ю версию. Пришла пора посмотреть, что в нем было нового и интересного.


Надеюсь, что представленный материал вместе с предыдущими статьями серии (2022-07, 2022-09, 2022-11, 2023-01) поможет сформировать представление о новинках PostgreSQL 16.

Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments0

Механический квантовый компьютер

Level of difficultyMedium
Reading time15 min
Views9.4K

Квантовые компьютеры постепенно мигрировали от «натуральных» квантовых объектов типа ионов и quantum dots к «искусственным» объектам типа трансмонов, где роль атомных переходов выполняют собственные частоты колебаний LC контуров. К таким контурам прикручены коаксиальные кабели для возбуждения системы, считывания их состояния и регулирования их свойств. Они все еще являются квантовыми объектами и работают при низкой температуре.


Мне стало интересно, а можно ли создать прототип квантового компьютера на основе больших «классических» механических объектов. Я демонстрирую квантовый компьютер сделанный из связанных маятников.


Читать дальше →
Total votes 17: ↑17 and ↓0+22
Comments23

Как подготовить данные для запроса в Postman через pre-request

Level of difficultyEasy
Reading time6 min
Views3.5K

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

В Postman тоже есть возможность подготовить себе данные для запроса. Причем это можно использовать не только для автоматизации, но и для ручного прогона. Удобно же, когда можно запустить конкретный запрос на конкретный метод, а он отработает успешно хоть на пустой базе, хоть на заполненной.

Подготовка данных делается через функцию pm.sendRequest() в pre-request скриптах, и в этой статье я покажу, как её использовать. Показывать буду в стиле «бери и повторяй» с примерами на бесплатной системе Users.

Читать далее
Total votes 6: ↑5 and ↓1+7
Comments0

Compiler Explorer — уникальный проект для исследования компилируемого кода

Level of difficultyMedium
Reading time7 min
Views11K
Этот пост посвящён замечательному инструменту, полезному для каждого, кто интересуется компиляторами или архитектурой компьютеров. Это Compiler Explorer, который я в дальнейшем будут называть CE.

CE — потрясающий инструмент. Если вы с ним не знакомы, то прервите чтение и перейдите на веб-сайт CE, где вы увидите примерно такой экран:

Предупреждение: вы забираетесь в «кроличью нору», на которую можете потратить несколько часов своего времени.


В основе CE лежит очень простая идея. Достаточно ввести исходный код в левую панель, и сайт мгновенно покажет вам на правой панели скомпилированный результат (обычно на языке ассемблера).

CE поддерживает 69 языков, более двух тысяч компиляторов и широкий спектр архитектур, включая x86, arm, risc-v, avr, mips, vax, tensa, 68k, PowerPC, SPARC и даже древний 6502.

То есть теперь для просмотра результата работы компилятора достаточно открыть godbolt.org и скопировать туда блок кода.

Это само по себе удивительно, но у CE есть гораздо больше возможностей. Это инструмент, который должны знать все интересующиеся компиляторами и архитектурами компьютеров. В статье мы сможем лишь поверхностно рассмотреть функции CE. Вам стоит самим перейти на сайт CE и попробовать всё самостоятельно.
Читать дальше →
Total votes 61: ↑59 and ↓2+75
Comments13

200 таблиц в одном дашборде: как мы создаём проект визуализации данных медицинской статистики

Level of difficultyEasy
Reading time9 min
Views8.6K

Хабровчане, приветствую! Меня зовут Андрей Иванов, я системный аналитик в сфере медицины и здравоохранения. До 2005 года работал врачом, потом руководил медицинским информационно-аналитическим центром. Спустя время возникла настоятельная потребность научиться делать самостоятельно то, чем прежде приходилось руководить, — так я поступил на курс «Системный аналитик» в Практикуме.

Возможно, это вступление показалось вам знакомым. В начале года я рассказывал про проект визуализации медицинских данных, который мы со студентами сделали в Мастерской Практикума. Сейчас — расскажу, как мы продолжили работу во второй Мастерской, и покажу, на что теперь способен наш инструмент.

Читать далее
Total votes 17: ↑16 and ↓1+20
Comments10

Фабрика для std::variant: как объединить compile-time и run-time, чтобы получить выигрыш от обоих

Level of difficultyMedium
Reading time18 min
Views3.5K


Привет, Хабр! Меня зовут Михаил Полукаров, я занимаюсь разработкой Desktop-версии пользовательского приложения для совместной работы сотрудников с любого устройства VK Teams

Если вы тоже работали с большими проектами, где активно применяются объектно-ориентированные паттерны проектирования, то наверняка знаете о быстро нарастающей лавине кода. Такой код сложно писать, изучать и тем более поддерживать. Сегодня я расскажу, как удалось избежать таких сложностей. Поделюсь, как можно использовать современный С++, чтобы совместить compile-time и run-time исполнение, не потеряв при этом в производительности и выразительности кода.
Читать дальше →
Total votes 13: ↑13 and ↓0+21
Comments8

Интуитивное понимание пространств и ядер в машинном обучении: Часть 1

Level of difficultyHard
Reading time9 min
Views5.7K

При изучении темы ядер (kernel) в ML/DS программы вузов, роадмэпы и видео на YouTube обычно рассматривают её через призму SVM, не говоря уже о всеми любимых курсах:). Казалось бы, это неплохо: вот тебе краткое объяснение и модель, которая использует ядра. Но, увы, в этих областях желательно понимать многие процессы интуитивно, так сказать — «тяжело в учении, легко в бою». К тому же, эта тема нечто большее, чем просто метод; она позволяет связать многие вещи в машинном обучении в единую картину через пространство, что я и хочу показать в этой статье.

Читать далее
Total votes 18: ↑16 and ↓2+18
Comments12

Как сделать виртуальную АТС на базе VPS

Level of difficultyEasy
Reading time6 min
Views8.4K


Несмотря на популярность мессенджеров и телеконференций, ни один офис ещё не отказался от телефонной связи. Люди такие существа, что иногда предпочитают общаться голосом.

В каждом офисе установлена мини-АТС, которая коммутирует внутренние звонки. Телефоны сотрудников подключаются к коммуникационному шкафу или коробочке с Asterisk (как на КДПВ), а она подключена к телефонной сети общего пользования (PSTN или ТСОП). Таким образом, сотню офисных телефонов можно повесить на один внешний номер. В общем, мини-АТС — совершенно необходимая вещь.

Виртуальная или облачная АТС (hosted PBX) — это услуга для компаний, которая заменяет им обычную офисную АТС. Вместо того, чтобы покупать специализированное телекоммуникационное оборудование или выделять отдельный компьютер с Asterisk, они заказывают услугу на удалённом хостинге. И этот компьютер с Asterisk (IP-АТС) физически размещается у провайдера. Таким образом, виртуализация добралась и до АТС, всё в русле современных тенденций.
Читать дальше →
Total votes 23: ↑21 and ↓2+30
Comments45

Postgres Pro Shardman: горизонтальное масштабирование реляционных СУБД

Level of difficultyMedium
Reading time24 min
Views5.1K

Последние несколько лет мы в Postgres Professional активно занимаемся разработкой своего решения для горизонтального масштабирования PostgreSQL. Пользователям нужен был простой способ увеличить производительность путем добавления узлов. Традиционно для веба в таких случаях просто брали NoSQL базы или шардировали вручную, позже появились распределенные SQL-решения с поддержкой ACID-транзакций. Тем не менее терялась часть возможностей и достоинств PostgreSQL. Корпоративный рынок тяжелых вертикальных решений также сильно ограничен как ценой, так и доступностью. Поэтому исследованиями в области распределенных СУБД в компании занимались еще с 2017 года, а в 2020 началась работа над коммерческим продуктом. 

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

Читать далее
Total votes 27: ↑27 and ↓0+36
Comments8

Профиль Firefox для посещения Сбербанка и Рунета в целом

Level of difficultyEasy
Reading time4 min
Views8.1K

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

Как известно, некоторые российские госкомпании сейчас под санкциями, в том числе эмитентами сертификатов. Сбер уже перешёл на сертификаты от Минцифры. Ростелеком, вероятно, к ноябрю 2024 года тоже перейдёт. А CA Минцифры соответственно рукопожат только браузерами Яндекс Браузер и Atom.

У этой проблемы есть несколько решений.

Использовать Яндекс Браузер или Atom с уже установленными сертификатами Минцифры и горя не знать.

Сохранить корневой сертификат Минцифры в доверенные для всей операционной системы (и всех браузеров), если вам совсем нечего скрывать.

Использовать браузер Firefox с выделенным пользовательским профилем под Рунет.

Использовать виртуальное окружение для любимого браузера с нелюбимым сертификатом Минцифры. (не могу найти ту публикацию).

Запускать браузер от имени другого пользователя.

Статья собственно о третьем методе.

Читать далее
Total votes 11: ↑11 and ↓0+16
Comments15

Методы оптимизации в машинном и глубоком обучении. От простого к сложному

Level of difficultyHard
Reading time29 min
Views8.8K

В данной статье представлен обзор различных популярных (и не только) оптимизаторов, которые применяются в машинном и глубоком обучении, в частности для обучения нейронных сетей. Мы рассмотрим их основную идею и ключевые особенности, переходя от простых к более сложным концепциям. Помимо этого, в самом конце вы сможете найти большое количество дополнительных источников для более детального ознакомления с материалом.

Читать далее
Total votes 23: ↑22 and ↓1+29
Comments6

PostgreSQL 16. Организация данных. Часть 1

Level of difficultyMedium
Reading time14 min
Views13K

PostgreSQL очень популярная СУБД. Её используют во многих проектах, как новички, так и профессионалы. Однако не все понимают, как именно работает данная система и какое у неё внутренне устройство.

Давайте разберемся вместе на основе книги «PostgreSQL 16 изнутри» и официальной документации!

Читать далее
Total votes 32: ↑31 and ↓1+35
Comments5

«IT-Планета 2024»: задачи второго этапа по PostgreSQL

Reading time32 min
Views3.3K

Вдохновившись прошлогодним опытом, мы продолжили начинание и снова проводим конкурс по SQL на международной олимпиаде «IT-Планета».

Конкурс состоит из трех этапов. Заочный теоретический тест собрал почти 3000 человек, из которых на следующий этап мы отобрали примерно 200. Вопросы для этого этапа были подготовлены моим коллегой, Евгением Давыдовым.

Второй этап — также заочный. Здесь участником было предложено подумать над пятью задачами моего авторства, о которых я сегодня и хочу рассказать.

Третий — очный — этап пройдет в конце мая; постараюсь не затягивать с отчетом, но пока храню интригующее молчание.

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

Приступить к делу
Total votes 16: ↑16 and ↓0+23
Comments12

Матрицы Паули. Просто. Для обычной физики и графики

Level of difficultyMedium
Reading time5 min
Views8.1K

Давно хотел я написать про матрицы Паули. Но каждый раз, когда я читал очередную чисто научную статью на схожую тему, задавал простой вопрос: "Дружище, ты за что так не любишь людей?". Поэтому во-первых статья в жанре "научно-популярный кейс", во-вторых из изначальной идеи статьи долго исключал все, что возможно, из лишнего и труднопонятного.

В-третьих, основной рецепт во введении, на первой же странице.

Мне не нравится, когда от букв в глазах рябит, или много не нужного лирического текста, или не очень понятно, где же практически полезный рецепт и линия повествования. Поэтому в основном тексте только суть, а все подробности кейса убраны под кат, для тех читателей, кому нужны подробности, а не простота.

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

Читать далее
Total votes 18: ↑17 and ↓1+21
Comments26

День Радио: смотрим видео на радиоспектре через SDR

Reading time5 min
Views12K


Привет, Хабр! На дворе День радио, а значит у нас есть отличный повод сделать что-нибудь интересное. На днях мой взгляд упал на пылившийся в углу SDR-приемник, и тут понеслось.

Читать дальше →
Total votes 109: ↑109 and ↓0+126
Comments18

Тюнинг Wireshark

Reading time3 min
Views7.6K

Анализатор пакетов Wireshark является мощным инструментом как для сбора, так и для анализа трафика. Ранее мы уже рассматривали использование Wireshark для работы с пакетами DNS. В этой статье мы рассмотрим различные приемы гибкой настройки данного инструмента для того, чтобы сделать работу с ним более удобной и эффективной.

Настройки Wireshark спрятаны в разделе Edit -> Preferences… Здесь нам доступно множество различных настроек и подробно останавливаться на каждой мы не будем. В разделе Appearance мы можем указать различные настройки для визуального отображения: шрифты, используемые цвета, сохранение размеров и расположения основного окна и многое другое.

Читать далее
Total votes 23: ↑19 and ↓4+20
Comments2

Система условных обозначений BPMN

Reading time3 min
Views4.1K

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

Рассмотрим подробней.

Читать далее
Total votes 13: ↑8 and ↓5+7
Comments3
1
23 ...

Information

Rating
3,663-rd
Location
Казань, Татарстан, Россия
Date of birth
Registered
Activity