Pull to refresh
0
@roman_podgaevskyread⁠-⁠only

User

Send message

Геометрия мягких ячеек

Reading time5 min
Views5K

В октябре 2021 года я опубликовал на Хабре статью «Змей и дротик. От михраба до квазикристаллов», в которой кратко рассказал об апериодических мозаиках, в том числе, составленных Роджером Пенроузом и древнеперсидскими архитекторами. Не припомню, обращался ли я после этого в моём блоге к парадоксальным геометрическим проблемам. Но уже в конце октября текущего 2024 года нашлась ещё одна подобная тема, заслуживающая отдельной статьи на Хабре. Подсказал мне эту историю уважаемый Виктор Георгиевич Сиротин @visirok мой давний собеседник, который создал отличный блог на Хабре и размышляет о программировании и о программной архитектуре как о материализации идей — одноимённую группу он также ведёт в Телеграме. Статья же будет об удивительном сходстве между сегментами раковины наутилуса и очертанием мышечных волокон, которое недавно обнаружили венгерские учёные.

Читать далее
Total votes 30: ↑28 and ↓2+40
Comments5

Синтез цифровых схем: что почитать при любом уровне подготовки

Level of difficultyEasy
Reading time7 min
Views7K

Осенью стартовал новый поток Школы синтеза цифровых схем — нашей бесплатной образовательной программы о современных приемах проектирования цифровых микросхем. От серийных ASIC и микропроцессоров общего назначения до реконфигурируемых FPGA и специализированных вычислителей. По этим и связанным темам выпущено немало профессиональной литературы. Мы попросили преподавателей Школы — Юрия Панчула и Александра Рябова — выбрать книги, которые помогут при обучении в школе и самостоятельном освоении синтеза цифровых схем.

Читать далее
Total votes 29: ↑28 and ↓1+34
Comments16

Путь к геометрии Лобачевского 1: скалярное произведение и метрика

Level of difficultyMedium
Reading time3 min
Views5.8K

В конце 2023 года я провел семинар по геометрии и рассказал про различные её виды - евклидову, сферическую и гиперболическую, или геометрию Лобачевского. Сюжет оказался интересным, поэтому он был развит - я включил в него дополнительные темы, какие-то из них раскрыл подробнее, поменял акценты и самое главное - добавил трехмерные визуализации.

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

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

Читать далее
Total votes 12: ↑11 and ↓1+16
Comments11

Как мы делаем Автограф — «русское Visio»

Reading time6 min
Views21K
image
Самая первая инженерная версия редактора, не самая удобная для конечных пользователей

В России MS Visio используется для того, чтобы нарисовать планы помещений, вентиляции, пожарной сигнализации, рисовать всякие схемы работы — и так далее. Потом в какой-то момент оно пропало, а желание делать удобные схемы осталось.

Мы начинали в 1991 году с софта для автоматизации проектирования электросхем — когда вы рисовали одну схему, а по ней синтезировались недостающие участки, вроде расчёта типа и количества реле, нужного сечения кабеля и так далее. К 2010 году дорога приключений привела нас к тому, что мы начали делать уже схемы для объектов энергетики.

Сейчас мы замещаем Visio в России и поддерживаем VSD/VSDX-форматы в обе стороны.

Собственно, я хочу рассказать немного о техническом аспекте работы с большими схемами.

Сильно упрощая, каждая схема и в нашем движке, и в движке Visio состоит из векторных элементов. Пользователь перемещает окно с полем зрения по схеме, и для этого места идёт рендер — рисуются только те элементы, которые видно. Для каждого масштаба делается пререндер этого вектора с разной детализацией, то есть пользователь каждый момент времени работает со всего одной группой SVG-элементов. Всё остальное только кажется схемой из деталей, на самом деле — это единая отрендеренная большая картинка.
Читать дальше →
Total votes 44: ↑43 and ↓1+49
Comments69

Эксперимент: даём ChatGPT полный доступ к компьютеру

Level of difficultyEasy
Reading time4 min
Views73K

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

Я абсолютный новичок в программировании, поэтому могу ошибаться в некоторых (или даже во многих) вещах. Я бы, наверное, даже не писал эту статью. Однако, проведя некоторое время в сети, мне так и не удалось найти похожий на мой проект. Именно поэтому я решил поделиться своей идеей с вами.

Читать далее
Total votes 69: ↑67 and ↓2+71
Comments69

Почему троичные вычисления лучше двоичных

Level of difficultyMedium
Reading time4 min
Views25K

Давно изучаемая, но нечасто применяемая вычислительная система с основанием 3 всё же может найти применение в кибербезопасности.

Как рассказывали детям 1970-х годов в Schoolhouse Rock!, три — это магическое число. Три поросенка; три кровати, миски и медведя для Златовласки; три трилогии «Звёздных войн». Чтобы табуретка стояла сама по себе, нужно как минимум три ножки, и как минимум три точки, чтобы определить треугольник. 

Число 3 также предполагает другой способ счёта. Наша знакомая десятичная система счисления с основанием 10 использует 10 цифр от нуля до 9. Двоичная система, наш цифровой lingua franca, представляет числа, используя только две цифры: 0 и 1. 

Но математики давно изучают число три. Рассмотрим, например, основание 3 или троичную систему, которая использует три цифры. Обычно это цифры 0, 1 и 2, но также используются и симметричные обозначения: –1, 0 и 1.

Читать далее
Total votes 27: ↑22 and ↓5+25
Comments123

Дизайн и реализация виртуальной машины CPython

Level of difficultyMedium
Reading time21 min
Views6.8K

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

В этой статье мы обсудим формат инструкций байт‑кода CPython, а также реализацию цикла обработки байт‑кода в интерпретаторе, где он и исполняется.

Читать далее
Total votes 22: ↑22 and ↓0+30
Comments2

Как извлечь квадратный корень из перестановки чисел?

Level of difficultyMedium
Reading time4 min
Views6.7K

В этой статье мы исследуем проблему извлечения квадратного корня из перестановки p, иными словами задачу нахождения всех таких перестановок x, что x \cdot x = p. Будет сформулирован критерий возможности извлечения квадратного корня, алгоритм нахождения корней и формула их подсчёта в общем виде.

Читать далее
Total votes 12: ↑10 and ↓2+13
Comments13

Технологии интеграции информационных систем. Часть 2. GraphQL, gRPC, WebSocket, webhook, брокеры сообщений

Level of difficultyEasy
Reading time17 min
Views11K

Эта статья ー вторая часть материала об интеграции информационных систем (ИС) и самых распространённых стилях и технологиях интеграции. 

Читать далее
Total votes 15: ↑13 and ↓2+13
Comments3

Как мы заработали 250 000 руб, запустив ИИ приложение для обучения математике в США

Reading time5 min
Views17K

Что мы поняли, запустив за 1 месяц простое приложение, которое обучает решению задач по математике в США. И как вышли на +$1200/месяц спустя 4 месяца после запуска.

Читать далее
Total votes 46: ↑36 and ↓10+33
Comments87

Как простой Python-скрипт с использованием ИИ может оптимизировать ваш рабочий процесс

Level of difficultyEasy
Reading time6 min
Views22K

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

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

Приятного прочтения!

Читать далее
Total votes 26: ↑25 and ↓1+26
Comments9

Как мы уменьшили количество кода для генерации графиков в 10 раз, сделав Vue-компонент

Level of difficultyMedium
Reading time6 min
Views5.4K

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

Читать статью →
Total votes 9: ↑5 and ↓4+5
Comments5

Сравнение технологий для написания оконных приложений

Level of difficultyMedium
Reading time9 min
Views12K

Как-то раз в одном чате прозвучала идея сравнить разные технологии для написания оконных приложений. В частности, под Windows. Используя средства языка C#. То есть, конечно, можно это сделать и с помощью C++, Python, Rust, JS и других языков, но мы же шарписты, нам интереснее именно то, что мы можем сами использовать, не меняя язык программирования.

Итак, оконные приложения на C#.

Читать далее
Total votes 26: ↑26 and ↓0+35
Comments89

Простая автоматизация с Bash для новичков

Level of difficultyEasy
Reading time8 min
Views26K

Приветствую, это Денис из команды BagrovChibirev, и в статье я на простом примере расскажу об автоматизации процессов в Linux с помощью bash скриптов (сценариев командной строки).

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

Рассматривать я буду свой минималистичный скрипт для разворачивания простого python Django проекта при помощи системных юнитов (демонов) на удалённом сервере. Для тех, кто не в курсе: демоны - это специальные системные сервисы, которые следят за состоянием сторонних процессов и поддерживают их работоспособность. В современном мире для таких целей на микросервисах применяется Docker, но когда проект небольшой и состоит из пары-тройки процессов, их намного легче, проще и дешевле для системы (в разы), развернуть при помощи встроенных в линукс демонов.

Читать далее
Total votes 12: ↑11 and ↓1+14
Comments10

Всё уже придумали за нас: библиотеки с тысячами готовых GPT-промтов для работы, учёбы и отдыха

Level of difficultyEasy
Reading time3 min
Views62K

Подборка для тех, кто пробовал использовать нейросети в своих задачах, но разочаровался в них: непонятно, как чат-бот вообще может помогать с чем-то серьёзным.

Читать далее
Total votes 33: ↑28 and ↓5+31
Comments18

Python, CryptoAPI и российские криптопровайдеры

Level of difficultyMedium
Reading time9 min
Views5.6K

В статье описывается работа в Python с криптопровайдерами, прежде всего российскими, через CryptoAPI. Особое внимание уделено получению штампа времени - рассмотрено взаимодействие между клиентом и Time-Stamp сервером и формирование запроса в соответствии с Time-Stamp протоколом.

Читать далее
Total votes 7: ↑7 and ↓0+9
Comments5

Давайте сделаем крупное приложение на Flask (язык Python)

Reading time18 min
Views19K

На Хабре я часто вижу статьи о реализации тех или иных фич на Python-фреймворках. Я объединил все эти фичи в реальный проект с открытым исходным кодом, чтобы у вас сложилась целостная картина. Мы с вами создадим UX/UI на Figma, напишем фронтенд на HTML, CSS, SASS, Bootstrap и JavaScript, создадим ER-диаграмму в MySQL Workbench, напишем бекэнд на Flask, создадим регистрацию через социальные сети OAuth 2.0 в один клик, используем брокер сообщений и асинхронную очередь Celery для отправки писем на электронную почту, сделаем WYSIWYG-редактор, реализуем полнотекстовый поиск Elasticsearch, закешируем Redis, покроем тестами pytest и запустим в Docker-контейнерах, поговорим о многопроцессности для WSGI-шлюза Gunicorn.

Читать далее
Total votes 19: ↑19 and ↓0+25
Comments43

Вы нас просили и мы сделали. VPN на собственном сервере с XRay Reality за 5 минут с помощью Amnezia

Reading time4 min
Views179K

Всем привет! Это команда Amnezia. 

Мы читаем комментарии под нашими постами и знаем, что один из самых частых вопросов – когда будет XRay? Так вот, мы добавили XRay в приложение AmneziaVPN, а точнее протокол Reality от XRay для всех платформ -  IOS, Android, Windows, Linux и MacOS. Если у вас еще нет последнего релиза, скорее скачивайте и создавайте VPN на собственном сервере в пару кликов с одним из самых защищенных и быстрых протоколов в мире, ниже мы немного о нем расскажем, а в конце статьи будет пошаговая  инструкция как это сделать.

Почему XRay Reality так популярен ?

Все дело в том, что Reality подходит для стран с самым высоким уровнем интернет-цензуры, сейчас его используют в Китае и Иране, он защищен от детектирования методами active probing. 

Распознать цензоров REALITY может еще на этапе TLS-хендшейка. Если REALITY видит, что к нему приходит его клиент, то сервер запускает для него VPN туннель, а если приходит любой другой запрос на 443 порт, то TLS-подключение передается на какой-нибудь другой реальный сайт, например, google.com, где цензор получит настоящий TLS-сертификат от google.com и вообще все настоящие данные с этого сайта.

Со стороны систем анализа трафика это выглядит как подключение к настоящему сайту, сервер отдает настоящий TLS-сертификат этого сайта, и вообще все (включая TLS fingerprint сервера) выглядит очень по-настоящему и не вызывает подозрений. 

Особенно приятно, что при этом производительность REALITY и скорость подключения у протокола действительно хороши, в сравнении, например, со связкой OpenVPN over Cloak.

Читать далее
Total votes 151: ↑147 and ↓4+166
Comments137

Эволюция конечных автоматов в бэкенд-разработке

Level of difficultyMedium
Reading time6 min
Views7.4K

Привет! Меня зовут Павел, я программист-эксперт в отделе разработки серверных решений ЮMoney. Сегодня расскажу и покажу, как менялись наши конечные автоматы в бэкенде — как от большого страшного монстра с файлами классов по 1000+ строк мы пришли к красивым визуальным диаграммам, которые понимают не только разработчики, но и сотрудники других отделов.

Читать далее
Total votes 15: ↑14 and ↓1+17
Comments15

Открытый онлайн-курс по цифровой схемотехнике: от истоков до первого устройства

Level of difficultyEasy
Reading time4 min
Views17K

Привет, Хабр! У нас новости. Мы запустили онлайн-курс по цифровой схемотехнике для начинающих. Он подойдет всем, кому интересно собрать из простых компонентов готовое устройство на макетной плате и узнать больше о «внутренностях» электроники. Присоединяйтесь сами или рассмотрите курс для совместного досуга с ребенком, младшим братом или сестрой. Возможно, кому-то он поможет не только найти новое занимательное хобби, но и определиться с будущей профессией.

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

Читать далее
Total votes 58: ↑57 and ↓1+72
Comments23

Information

Rating
Does not participate
Registered
Activity