Как стать автором
Обновить
0
Рейтинг

Delphi *

Объектно-ориентированный язык программирования

Сначала показывать
Порог рейтинга

Добавление функции передачи в SDR# с HackRF

Delphi *Реверс-инжиниринг *Разработка систем связи *Разработка под Windows *Компьютерное железо
Из песочницы

Эта библиотека добавляет возможность использования HackRF One, совместно с приложением SDR#, в качестве трансивера. Это реализовано внедрением промежуточного слоя между SDR# и библиотекой HackRF.DLL, который подготовлен с таким же интерфейсом, что и стандартная библиотека HackRF.DLL. При этом добавлена форма и несколько функций для формирования сигнала и модуляции в него звука из микрофона. Пока реализована только частотная модуляция.

После установки данного дополнения, при запуске SDR# и выборе HackRF, будет открываться дополнительно окно, позволяющее переключать HackRF в режим передачи.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 2.4K
Комментарии 11

Новости

Гипотеза Коллатца — самый крутой математический фокус всех времён

Занимательные задачки Delphi *Математика *Научно-популярное

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

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

Читать далее
Всего голосов 84: ↑78 и ↓6 +72
Просмотры 84K
Комментарии 102

Как Гомер Симпсон почти решил уравнение Великой теоремы Ферма

Занимательные задачки Delphi *Математика *Читальный зал Научно-популярное

Казалось бы, что может быть общего между одной из самых популярных математических теорем, Гомером Симпсоном и Дональдом Кнутом? Как и многие другие интересные идеи и задачи, их объединяет математика.

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

Читать далее
Всего голосов 123: ↑122 и ↓1 +121
Просмотры 57K
Комментарии 47

Как я Подружил React и сканер HP LJ M127

Delphi *ReactJS *
Из песочницы

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

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Просмотры 1.1K
Комментарии 7

Как заменить себя скриптом. Часть 1. Режимы коротких замыканий в электросети с применением OpenCL

Delphi *Lisp *Энергия и элементы питания Инженерные системы


Длительная однообразная работа неизбежно вызывает приступы автоматизации. На этот раз предпримем попытку автоматизировать настройку устройств защиты электросетей напряжением 6 — 35 кВ.

Самозародившаяся задача требует расчёта коротких замыканий, а поскольку расчётов таких предвидится немало, выполнять их будем с помощью OpenCL, для должной утилизации имеющихся вычислительных мощностей.
Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 3K
Комментарии 17

Delphi+OpenCV

Delphi *
Из песочницы

Сначала была мечта…

Что-то похожее на робототехническую систему, с двумя подвижными камерами, способностью отслеживать (направлять «взгляд» на) заданный объект и определять расстояние до объекта. И это был 2012 год. Но так как я больше программист нежели железячник, то все началось с реализации существующих в то время алгоритмов. Скоро пришло осознание, что алгоритмы и их реализация не есть цель. Цель – робототехническая система. Поэтому было принято решение воспользоваться существующими библиотеками обработки изображений. Но, к сожалению, на Object Pascal готовые библиотеки алгоритмов, которые были найдены в то время, не позволяли решать поставленные задачи.

Читать далее
Всего голосов 21: ↑20 и ↓1 +19
Просмотры 6.7K
Комментарии 25

Реализация Smart Pointers в Delphi, и еще немного

Программирование *Delphi *
Из песочницы

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

Для начала приведу пример двух процедур: первая классическая, вторая использует новые типы. Дальше рассмотрим как это реализовано.

Читать далее
Всего голосов 22: ↑22 и ↓0 +22
Просмотры 4.3K
Комментарии 34

Хранение изображений сайта в БД

Разработка веб-сайтов *Delphi *Microsoft SQL Server *IIS *Разработка под Windows *
Автор должен признаться: статья родилась и выросла из довольно небольшой и не претендующей на откровение оптимизации сайта, описанного в другом материале. Сайт этот связан с музыкальной тематикой и, соответственно, активно отображает обложки альбомов, хранящиеся (до поры до времени) на сервере не в ФС, как обычно бывает, а в БД SQL Server (в BLOB-поле, о чём несложно догадаться); в старом варианте пора извлечения изображений из базы и сохранения их в виде файлов возникает в момент запроса альбомов пользователем, после чего (по истечении сессии) они удаляются.

Страница сайта с обложками

Чтобы почти окончательно развеять куцую интригу и помочь возможному читателю определиться с тем, имеет ли смысл продолжить чтение, опишу конечный результат оптимизации: обложки по-прежнему останутся в базе данных, причём в поле того же типа, но вот веб-сервер, отдающий в итоге изображения клиенту, будет «обманут» и станет обращаться за файлом знать не зная, что его на самом деле нет в ФС, а вызов идёт сразу и непосредственно к СУБД. Такой «обман» конечно же не является самоцелью – всё в основном затевалось ради уменьшения нагрузки на дисковую подсистему.
Читать дальше →
Всего голосов 13: ↑6 и ↓7 -1
Просмотры 8K
Комментарии 37

Delphi и SQLite. Альтернатива хранимым процедурам

Delphi *SQLite *
Из песочницы

SQLite во многих случаях является удобным, незаменимым инструментом. Я уже не могу себе представить - как мы все жили без него. Тем не менее, есть некоторые неудобства при его использовании, связанные с тем, что это легкая встраиваемая СУБД.

Самое большое неудобство для меня, как Delphi-разработчика - отсутствие хранимых процедур. Я очень не люблю смешивать Delphi-код и SQL-скрипты. Это делает код намного менее читабильным, и затрудняет его поддержку.

Предлагаю свой вариант решения проблемы:

Выносим весь SQL-код в отдельный файл ресурсов, подключенный к проекту

Запросы в SQL-файле разделяем маркерами начала с идентификаторами и маркерами конца

Создаем класс - менеджер SQL-запросов. При загрузке приложения он читает SQL-файл из ресурсов и составляет из него список хранимых процедур.

В процессе работы приложения менеджер извлекает текст SQL-запроса по его идентификатору для последующей его передачи на выполнение

Читать далее
Всего голосов 23: ↑23 и ↓0 +23
Просмотры 7.1K
Комментарии 135

Даешь свободную литературу! Или как я с политикой вуза боролся

Программирование *Delphi *Алгоритмы *HTML *PDF
Из песочницы
✏️ Технотекст 2021

Доброго времени суток, хабровчане!  Это мой первый пост на форуме, так что прошу строго не судить.

 Как и полагается любому техническому вузу – в нашем есть куча интернет ресурсов, которыми вуз чрезмерно гордится. Однако есть оборотная сторона медали – качество этих сервисов. А именно, если говорить про электронную библиотеку, о коей и пойдет речь в данной статье, то в ней напрочь отсутствует возможность скачивания pdf-версии нужной тебе методички, точнее она есть, но за это придется заплатить немало денЯк. Деньги далеко не маленькие (если говорить именно про цену за вузовские методички). Если же такой формат не устраивает, то можешь пользоваться онлайн библиотекой.

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

И теперь представьте картину: человек пытается подготовиться к контрольной по квантовой механике по методичкам преподавателя, объемом 700 страниц, где необходимый материал находится на 500, и может перелистывать по 5 страничек в минуту, и каждые 20 минут, его попытки приходится возобновлять.… В общем, жесть…. И вот после очередной неудачной попытки прочитать нужную главу,  я решил, что пришло время положить конец данному произволу.

Читать далее
Всего голосов 29: ↑23 и ↓6 +17
Просмотры 8.2K
Комментарии 32

Ansible-vault decrypt: обходимся без Ansible

Python *Delphi **nix *DevOps *

Вы когда-нибудь пробовали разобраться в том, что же происходит внутри ansible-vault? А ещё лучше - не только разобраться, но и что-то сделать на основе полученных знаний? Так вот, статья именно об этом: разбираем исходники ansible, а потом пишем свой расшифровщик для ansible-vault.

Язык для написания расшифровщика был выбран по принципу "я - автор статьи, выбираю что хочу язык под задачу, исходя из технических требований". Результат компилируется за 0.6 секунд в исполняемый файл размером 800Кб, который не требует внешних библиотек.

Заинтригованы? Добро пожаловать под кат!

ansible-vault decrypt go brr
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 5.3K
Комментарии 28

Шахматы на Delphi. Как я изобретал велосипед

Delphi *Разработка игр *Логические игры

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

Читать далее
Всего голосов 68: ↑65 и ↓3 +62
Просмотры 17K
Комментарии 52

Delphi 7 на костылях: автоматизация подготовки ресурсов

Программирование *Delphi *
Recovery mode

О костылях и велосипедах, неотъемлемой части современной некромантии.

Эпиграф: «Пусть это вдохновит Вас на подвиг!» (Бел Кауфман, «Вверх по лестнице, ведущей вниз»).

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

Казалось бы, что может быть более простым и естественным, чем прозрачная, без «нелепых телодвижений», работа с размещёнными в специально выделенной для этого папке ресурсами? А если среда разработки выпущена на границе тысячелетия?

Читать далее
Всего голосов 13: ↑10 и ↓3 +7
Просмотры 5.4K
Комментарии 18

Стероидный велосипед: векторная алгебра, на ассемблере, в Delphi

Высокая производительность *Assembler *Delphi *Математика *
Tutorial

Некоторое время назад понадобилось мне в одной Delphi-шной программе много посчитать, но расчеты шли как-то подозрительно долго. Переписывать около 100 kLOC не хотелось- особенно из-за наличия большого количества форм, но предыдущий мой опыт показывал, что если код расчетов перекомпилировать в Lazarus'е (с FPC3.0.4)- то скорость счета возрастает до 2-х раз, и поэтому было очевидно, что конкретно в данном случае компилятор Embarcadero (разных версий) сильно несилен, и надо его менять. С другой стороны, IDE от Embarcadero для рисования GUI- вне конкуренции, а их компилятор на редкость быстрый (оно и понятно- быстро+плохо, или медленно+хорошо). Но ведь вкус кактуса неимоверно притягателен. Профайлинг подручными средствами (tinyprofiler) во всех случаях показывал, что основное время (90%) занимают операции векторной алгебры над большими массивами чисел, а быстрый тест производительности этих процедур показал, что на операциях с этой алгеброй общая "пропускная способность" имевшегося математического ядра составляет для операций типа умножения векторов и скалярных произведений- ~4 ГБ/с, для умножения вектора на матрицу- 1,5-2 ГБ/с, а вот для операций обращения матрицы- проседает до 360 МБ/с (на Core I5 4460 и на Xeon 2660V2, DDR3-1866). Внутре рядом с неонкой используются только 3-х и 4-х мерные вектора и матрицы. В голову пришла мысль, что 4х4 матрица- должна целиком влезать в SSE-регистры процессора и для нее SIMD- очень желательны, а в компилятор Delphi SIMD не завезли, кажется не завезут, и вообще- дальше нижней половины XMM0 не используют. В итоге нарисовалась очень простая задача- реализовать быструю векторную алгебру в минимальном объеме для 3D/4D векторов своими руками- то есть, соорудить стероидный велосипед, о котором в заголовке написано.

И вот здесь мой навык гуглинга дал сбой- мне предлагали купить проприетарные библиотеки, в которых все уже есть, или примеры векторных операций с FP32 на SSE, но нужного FP64 - нету! Под катом- как на SSE руками сделать операцию с вектором для расчетов какой-нибудь физики и вывернуть матрицу наизнанку.

Поиграемся с XMM-регистрами?...
Всего голосов 26: ↑25 и ↓1 +24
Просмотры 5.2K
Комментарии 33

Немного про SOLID и суровое зомби-легаси

Программирование *Delphi *ООП *
Recovery mode

Осторожно-оптимистические размышления о месте современной производственной культуры в сопровождении унаследованного из древних времён программного обеспечения. И немного о взаимопроникновении принципов SOLID.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 8.4K
Комментарии 13

Как я SCADA-систему на Linux переводил

Delphi *Промышленное программирование *SCADA *Разработка под Linux *

В этой статье я бы хотел рассказать о том, что Windows проекты на Delphi возможно перевести на Linux в разумные сроки и с разумными трудозатратами. Что такое SCADA-система, рассказывать не буду, а перейду сразу к делу.

Runtime ядро SCADA работает под Windows в качестве сервиса. Функции стандартные «как у всех»: сбор, обработка, архивирование данных, передача данных в другие SCADA-системы по стандартным протоколам обмена. Визуализация только через Web. Runtime ядро SCADA написано на Delphi. Решено было адаптировать исходный код под  FreePascal/Lazarus, так чтобы код под Windows компилировался и в FreePascal и в Delphi, вторым этапом было допиливание проекта непосредственно на Linux машине и переделка его в демон. В FreePascal привлекала возможность компиляции как для x64, так и для плат Raspberry pi (архитектуры ARMv7, ARM64 (aarch64)).

Конфигуратор работает под Windows в виде графического приложения. Пока решено не переводить его на Linux, в крайнем случае можно запустить под Wine.

Теперь перейдем к Runtime и будем говорить о нём. В нём применяются разнообразные компоненты:

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 4K
Комментарии 3

Склонение слов и инициалов в Delphi/Freepascal

Delphi *

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

В прошлый раз я объяснял, что не являюсь программистом по роду профессиональной деятельности, но использую любимое хобби для автоматизации всего, что попадается под руку в работе юриста. Я уверен, что 90% всей юридической волокиты может быть успешно автоматизировано: ведение разнообразных баз и карточек, составление документов по шаблонам, контроль сроков выполнения задач, использование любых вспомогательных сервисов, уже имеющих свои api, для прикручивания автоматизации на конкретном рабочем месте и т.д. К этому нужно стремиться, чтобы по заветам Айзека Азимова высвободить время юриста для реализации основной задачи - размышлять над условиями договора и разводить демагогию в суде.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 2.5K
Комментарии 0

Особенности портирования сложного модульного ПО написанного на Delphi под ОС Linux

Программирование *Delphi *Интерфейсы *Разработка под Linux *
Из песочницы
✏️ Технотекст 2021

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

Меня зовут Тимофеев Константин, мне 40 лет и я являюсь ведущим программистом компании 3В Сервис в подразделении, занимающемся системами автоматизации динамических расчётов (САДР).

Данная статья посвящена разбору подводных камней при портировании разрабатываемого нами программного комплекса на операционные системы семейства Linux.

Читать далее
Всего голосов 94: ↑92 и ↓2 +90
Просмотры 19K
Комментарии 158

Radix sort — выжать всё

Delphi *Алгоритмы *C *


Приветствую всех любителей алгоритмов. Хочу Вам поведать о своих изысканиях на тему сортировок в целом и углубиться в рассмотрение radix сортировки.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 9.5K
Комментарии 43

Math Invasion. Мой долгострой

Delphi *Разработка игр *Unity *
Из песочницы
Привет, народ!

Расскажу я вам свою историю о том, как я разрабатывал игру. Идея о том, чтобы скрестить shoot em up с математикой, мне пришла ещё в студенческие годы (Где-то в 2008 году).
Всего голосов 16: ↑13 и ↓3 +10
Просмотры 2.8K
Комментарии 8

Вклад авторов

Работа