Когда gfix бессилен: инструмент восстановления БД Firebird, спасаем данные
Разбираем бинарный формат Firebird по байтам: структура страниц, транзакции, MVCC. Пишем утилиту на Delphi для восстановления данных, когда gfix и gbak бессильны.

Объектно-ориентированный язык программирования
Разбираем бинарный формат Firebird по байтам: структура страниц, транзакции, MVCC. Пишем утилиту на Delphi для восстановления данных, когда gfix и gbak бессильны.

В мире кибербезопасности уже не первый год набирает популярность тактика «Living off the Land» (LOTL) — «живущие за счёт земли». Её суть заключается в том, чтобы максимально использовать легитимное программное обеспечение и встроенные функции операционной системы для достижения злонамеренных целей. Это позволяет злоумышленникам эффективно маскироваться на заражённой системе, ведь активность программ вроде curl.exe, AnyDesk.exe или установщика WinRAR редко вызывает подозрения у рядовых пользователей и даже у некоторых систем защиты.
Давайте детально разберём один из ярких примеров использования этой тактики, чтобы наглядно увидеть, как безобидные, на первый взгляд, программы могут быть превращены в мощное оружие для целевой атаки.

Эта заключительная часть данной серии (ссылка на первую часть) должна быть выйти раньше, но из-за многих факторов (об этом будет в конце статьи, если кому интересно) этого не произошло. Но звёзды сошлись и результаты экспериментов собраны здесь.
В данной статье поясню, как я разбирался в работе файловой лицензии, как новая версия программы не поддалась мне с первого раза (поэтому в этот раз патч сделан по иной схеме, но лучше с моей точки зрения), а так же поговорим о экспериментах с живым HASP ключом.
Disclaimer: Данная заметка написана в ознакомительных целях и не является руководством к действиям. Статья в этот раз написана таким образом, что в ней описываются мои мысли и шаги, как я к этому пришёл. Мне кажется, что это интереснее и позволяет перенять логику решения подобных задач.

Первая встреча с Turbo Pascal
Начать стоит с самого начала, когда я впервые увидел Turbo Pascal 5.0. Тогда для меня это было что‑то на грани чуда.
Ведь как в те времена делалось «в норме»:
Продолжая развитие проекта, описанного в предыдущих статьях, я сосредоточился на кардинальном улучшении пользовательского опыта и точности инструментов внутри IDE. Основной акцент сделан на редакторе кода и системе подсветки синтаксиса. Теперь IDE представляет собой полноценную оболочку поверх GnuCOBOL, созданную специально для обучения и экспериментов с языком COBOL под Windows как для новичков, так и для энтузиастов.
Теперь IDE позволяет компилировать программы с подключением дополнительных библиотек. Например, библиотека GMP (GNU Multiple Precision Arithmetic Library) может использоваться для работы с большими числами и точной арифметикой.
Несмотря на то, что COBOL — язык с историей, он по-прежнему жив и востребован в финансовой и правительственной сферах. Многие до сих пор поддерживают большие кодовые базы и пишут новые программы. Но работать с COBOL хочется удобнее, особенно если хочется простого и понятного инструмента для написания, компиляции и запуска кода.
Delphi — легендарная RAD-среда, известная с середины 90-х. Её эпоха расцвета пришлась на Delphi 5-7 и Borland'овский бум. Многие разработчики (включая автора этой статьи) помнят, как легко и быстро можно было создавать GUI-приложения под Windows.

Привет, Хабр! Меня зовут Александр Юрьевич Доротенко. Я врач УЗИ высшей категории. Опыт работы УЗИ – с прошлого века (с февраля 2000 года). За плечами уже четыре десятка лет работы врачом, из них два десятка лет также стараюсь программировать для рабочих целей.
Давно уже была идея поделиться с вами, какие удалось получить результаты в ходе такого программирования и к чему это привело. Наконец-то текст написан, делюсь своей историей с вами. Буду рад вопросам и конструктивной критике. А если для кого-то моя история послужит положительным примером, буду рад вдвойне.
В ходе моего рассказа поделюсь про ультразвуковую диагностику в советское время, первые аппараты, на которых работал, о калькуляторах как помощниках врачей (на которых считают размеры внутренних органов и желёз), причём тут учёные из Сарова и врачебный почерк.



Я продолжаю изучать программирование. В этот раз моей затеей стал перенос калькулятора из iPhone в ReactOS. В этой статье я расскажу о том, как я переносила калькулятор из iPhone на ReactOS.

Тема зацепила. Я сам учился на Delphi и писал на нём ПО для внутренней автоматизации, последний раз в 21
Успех и долголетие языка определяется не столько техническим превосходством, а сочетанием экосистемы, адаптации к трендам и способности формировать критическую массу разработчиков. И часто, наличием "за спиной" у среды разработка корпорации достаточно мощной, что бы её поддержка обеспечила и разработку продукта и поддержку экосистемы и популяризацию.
Закономерности развития конкурирующих решений в условиях капитализма имеют не меньшее значением чем киллер фитчи. Особенно, в ситуации с дельфи- когда и язык и фреймворк и IDE по слиты в единое целое

Салют, %USERNAME%. Признаюсь, я очень люблю старые лэптопы ThinkPad. В те времена, когда брендом владела IBM, эти аппараты восхищали своей продуманностью и функциональностью. Цена на них кусалась, но ты точно знал, что за строгим дизайном скрывается мощное «железо» и отличные инженерные решения. Чего стоила подсветка клавиатуры ThinkLight (познакомился с ней на R61i), которая позволяла с комфортом работать в поезде или самолете, не напрягая других пассажиров включением света. Ну а трекпойнт мне до сих пор нравится больше, чем любой крутой тачпад.
Развитие операционных систем и технологий оставило старые ThinkPad за бортом. Разумный предел для моего X41 Tablet — Windows Vista. Под нее есть все драйверы устройств, и она способна запускать большинство игр и приложений, написанных для Windows XP. Но в современных условиях, когда главным инструментом пользователя стал веб-браузер, эта система безнадежно устарела.
И тут ко мне пришла безумная идея: а что, если подарить такому ноутбуку вторую жизнь и дать возможность работать с современными нейросетями? Разумеется, ресурсов на полноценный инференс не хватит, но вот написать простой клиент для взаимодействия с Ollama — почему бы и нет. В итоге я получу ноутбук, который позволит мне общаться с нейронными сетями и вновь подарит удовольствие от использования. Что получилось из этой затеи, как раз и расскажу дальше.

Личный взгляд программиста с стажем на то, как Microsoft переманил Хейлсберга, создал .NET и вытеснил Delphi с технологической сцены. История предательства, перехода эпох и чемодана, который до сих пор скрипит в углу.
Здравствуйте.
Меня зовут Андрей. Работаю я в государственном вузе. И, как водится, в такого рода учреждениях люди, которые занимаются компьютерами, занимаются ими в широком смысле слова.
Хочу рассказать об одной самописной системе, которую мы используем уже очень давно. И о ее развитии (в другой статье).

Всем привет.
Хочу поделиться небольшой задачкой, которую пришлось выполнить по одному из проектов.
Заказчик просит добавить в достаточно сложную настройку (Параметры запаса) дополнительно два аналитических поля. По сути, это количество SKU, которые затрагивает строчка настройки. Слева у пользователя расположено дерево товарной иерархии, где на любом уровне можно на вкладе «Поставщик->Точки снабжения» для определенного поставщика - выставить нужные параметры, которые потом влияют на финальные результаты. Такого рода иерархичные настройки достаточно сложны, поэтому есть ряд функциональных примочек, которые помогают сделать навигацию по товарным уровням удобным и интуитивным понятным. Например, помечаются на каких уровнях сделаны настройки или что внутри узла есть нижестоящий узел, где это уже сделано и т.п. Да и получения данных достаточно нетривиально, потому что на каждом товарном уровне есть еще возможность установки настроек перекрытия, которые аффектят все нижестоящие уровни и также в каждом блоке настроек по поставщикам есть значение по-умолчанию, которые становятся применимыми, если не включены настройки конкретного поставщика. В итоге для всех строчек все равно указываются финальные данные, которые могут получаться и путем ввода начальных данных по самой активной строке или к ней применяются финальные данные исходя из всех возможных перекрытий выше или значения по-умолчанию.

Всем привет! Меня зовут Сергей. И в данной статье задену тему очередной эмуляции Nes/Dendy/Famicon. Зачем? Зачем плодить очередной эмулятор того, что уже сделано достаточно хорошо. Можете считать это моей прихотью, а так же пробой своих сил (хотя на самом деле для пробы своих сил лучше, наверно, что-то попроще эмулировать).
Я хотел сразу всё расписать в одной статье, но похоже даже просто эмулирование процессора будет занятием достаточно не быстрым и надо будет задеть моменты, которые на первый взгляд не бросаются в глаза.
Началось всё в самом конце 90-х годов, когда мне в руки попал диск с пиратской копией Delphi какой-торанней версии и на глаза попалась статья из Delphi World про управление лотком CD‑ROM'а. «Блин, да это же идея для вируса!», — подумал я...

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