Pull to refresh

Хитрость

Reading time1 min
Views1.2K
В связи с постом вспомнилась небольшая история из жизни.

image

Учавствовал как-то на киевской олимпиаде по информатике. Было 4 задачи, 2 я довольно быстро решил, как мог, а 2 что-то вообще никак не шли.
Читать дальше →
Total votes 150: ↑108 and ↓42+66
Comments190

Ретро? Некро? Ах да, Турбо!

Reading time4 min
Views6.5K
Многие люди, пишущие о Turbo Pascal, начинают со своих воспоминаний о том, как он появился и каким шагом вперед он стал по сравнению с существующими на тот момент компиляторами. Мне было бы сложно последовать их примеру, хотя бы потому, что Turbo Pascal 1.0 ровно на два года старше меня, и в сознательном возрасте я застала уже версию 7.0, плавно переходящую в Delphi.

Придется подойти к этому вопросу с диаметрально противоположной стороны и рассказать о том, как Turbo Pascal и его эволюция воспринимаются человеком, воспитанным на значительно более поздних средах разработки и обращающимся к TP с исследовательскими целями (а именно — для проекта progopedia.com).

Итак, год 1983, Turbo Pascal 1.0
Turbo Pascal 1.0
Turbo Pascal 1.0
Читать дальше →
Total votes 146: ↑134 and ↓12+122
Comments141

На eBay продают первый лэптоп Андерса Хейлсберга

Reading time1 min
Views660
image

Крайне интересный лот появился на eBay: первый лэптоп Андерса Хейлсберга (wiki). Судя по всему этому лэптопу более 20 лет, на скриншотах экрана самая поздняя дата — 88 год.

Работает лэптоп под PC-DOS 3.02 и содержит встроенный Turbo Pascal от Borland. Сам Андерс, я напомню, знаменит тем, что написал и продал фирме Borland компилятор Pascal, а затем уже в самой компании создал Delphi. Значительно позже Андерс ушел в Microsoft, где создал популярнейший язык C# и до сих пор работает ведущим архитектором в команде, которая разрабатывает C#.

Такой вот артефакт на eBay, за который на момент написания статьи дают $1026.
Total votes 11: ↑7 and ↓4+3
Comments4

Забытая музыка или немного о Nokia 3310, PC-Seaker’е и генерации MIDI файлов (ч1)

Reading time7 min
Views12K
Здесь мы немного поговорим о формате мелодий (RTTL) в старых моделях телефонов, о воспроизведении таких мелодий с помощью обычного PC-Speaker’а компьютера, а так же о создании (генерации) MIDI файлов. Все мои мысли я буду подкреплять кодом на языке Pascal.
Читать дальше →
Total votes 7: ↑5 and ↓2+3
Comments8

Алгоритм Шеннона-Фано

Reading time2 min
Views102K
Алгоритм метода Шеннона-Фано — один из первых алгоритмов сжатия, который впервые сформулировали американские учёные Шеннон и Фано, и он имеет большое сходство с алгоритмом Хаффмана. Алгоритм основан на частоте повторения. Так, часто встречающийся символ кодируется кодом меньшей длины, а редко встречающийся — кодом большей длины.
В свою очередь, коды, полученные при кодировании, префиксные. Это и позволяет однозначно декодировать любую последовательность кодовых слов. Но все это вступление.
Читать дальше →
Total votes 51: ↑45 and ↓6+39
Comments12

Работа с объектами СУБД Caché на примере Delphi

Reading time17 min
Views11K

Несмотря на перманентные похороны Delphi, эта платформа построения Desktop приложений живёт и здравствует, а со сменой владельца даже обретает второе дыхание и продолжает оставаться основным инструментом для тысяч разработчиков во всём мире.
Как и с любыми другими СУБД, Delphi прекрасно взаимодействует с СУБД Caché.

Из Delphi можно подключиться к Caché, используя следующие интерфейсы:


В данной статье будут рассмотрены примеры использования объектного интерфейса при работе с СУБД Caché.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments5

Lazarus как он есть

Reading time3 min
Views28K
Довольно часто наше нежелание разбираться в вопросе и уверенность в собственной логике рождает неверные предположения. Эти предположения, высказанные как утверждения на публичной площадке, могут прочно осесть в чужих головах и сформировать ложные отрицательные представления.

Так в комментариях к недавней теме «Lazarus 1.0 увидел свет!» были высказаны некоторые неверные утверждения, а также задан ряд вопросов оставшихся без ответов. Являясь разработчиком Lazarus и FPC уже довольно продолжительное время, я могу и хочу дать ответ на большинство связанных с этими продуктами вопросов и развеять некоторые неверные предположения.

Утверждение: Размер исполняемых файлов оставляет желать лучшего. Виноват компилятор, компоновщик и др.
Читать дальше →
Total votes 64: ↑59 and ↓5+54
Comments78

Первая игра, которую я просто написал для себя

Reading time11 min
Views74K
Пост ностальгии по игрушкам, которые мы сами для себя писали в детстве.
Лазая по просторам App Store ища очередную игрушку для своего айпада, наткнулся на старинную игрушку “Братья Пилоты”. Сразу купил, поставил и прошёл на одном дыхании (уже наверное в 3 раз). Но более всего задержался на эпизоде с холодильником. Уж больно меня прёт эта головоломка.



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

Подняв старые бекапы я нашёл исходную игру. Запустил её в dosbox и пропал для внешнего мира на пару часов.
Читать дальше →
Total votes 137: ↑123 and ↓14+109
Comments116

Не Паскалем единым: что сделал для современного мира лауреат компьютерной «нобелевки» Никлаус Вирт

Reading time11 min
Views34K
image

Некоторые считают, что современный мир почти не знает Никлауса Вирта и даже не догадывается о его огромном вкладе в мировую компьютерную науку. Кто-то полагает его «отцом Паскаля». Вирта вспоминают не только педагоги в ВУЗах, когда преподают студентам Turbo Pascal, но и коммерческие разработчики, пишущие на Delphi.

На самом деле, Никлаус Вирт является инженером с большой буквы, его вклад в развитие языков программирования не ограничивается Паскалем, а только начинается с него. Кроме того, Вирт — педагог, общественный деятель и, можно сказать, философ. Попробуем оценить реальный масштаб его личности и вклад в ИТ-индустрию.
Читать дальше →
Total votes 49: ↑44 and ↓5+39
Comments55

Стандартизация записей

Reading time4 min
Views5.4K

Я волком бы выгрыз бюрократизм!
Владимир Маяковский


Рассмотрим в этой статье проблему стандартизации записей. Стандартизация, прежде всего, нужна при импорте миллионов записей, накопившихся за десятилетия. Данные, имеющие разную кодировку страниц из разных автоматизированных систем, собираются в единую базу информационной системы. В таком случае, обращение к функциям чтения строк по ascii, типа QRchar себя не оправдывает, поскольку формат Юникода от записи к записи отличается. К тому же кириллица в словах часто бывает перемешана с цифрами и латиницей (например, когда вместо 'ч' пишется '4'). При этом прямая циклическая замена цифр и латиницы на кириллицу в строке невозможна, так как цифры с латиницей встречаются в и обозначениях.

Пользовательские справочники позволяют отслеживать и фиксировать закономерности неправильного написания тех или иных фрагментов, указывая, на что их менять в общем цикле. По справочнику окончаний можно распознать часть речи, а по части речи определить алгоритм передвижения слова в строке для приведения к шаблонному виду.
Читать дальше →
Total votes 9: ↑7 and ↓2+5
Comments9

Паскаль играет в Go. Реализация методов и интерфейсов в любительском компиляторе

Reading time3 min
Views3.7K
If I could export one feature of Go into other languages, it would be interfaces. — Russ Cox



Мой предельно простой компилятор Паскаля уже становился предметом двух публикаций на Хабре. Со времени их написания язык обзавёлся всеми недостающими средствами, положенными стандартному Паскалю, и многими плюшками, добавленными в Паскаль компанией Borland в её золотую пору. Компилятор также научился ряду простейших локальных оптимизаций, достаточных хотя бы для того, чтобы глаза не кровоточили при взгляде на листинг дизассемблера.

Тем не менее дебри объектно-ориентированного программирования остались совершенно нетронутыми. Так почему бы компилятору не послужить теперь полигоном для экспериментов в этой области? И почему бы нам не почерпнуть вдохновение из слов Расса Кокса, вынесенных в эпиграф? Попробуем реализовать в Паскале методы и интерфейсы в стиле Go. Затея интересна хотя бы тем, что все популярные в прошлом компиляторы Паскаля (Delphi, Free Pascal) по сути заимствовали объектную модель из C++. Любопытно посмотреть, как на той же почве приживётся совсем иной подход, позаимствованный из Go. Если вы вслед за мной готовы запастись изрядной долей иронии, отбросить вопрос «Зачем?» и воспринять происходящее как игру, добро пожаловать под кат.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments3

Как я 12 лет создавал свой ЯП и компилятор к нему

Reading time22 min
Views49K


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

Здравствуй, читатель! Меня зовут Александр, родился я в небольшом городке (меньше 10000 человек) в Беларуси. Моя семья была бедной, игрушек крайне мало, про компьютер и какие либо приставки вообще можно не заикаться. Не смотря на то, что семья была бедной, у матери были не бедные родственники, которые иногда дарили нам какие либо не дешевые вещи. И вот однажды (где то в 2001 году) эти самые родственники, дарят нам компьютер «Байт»(советский аналог ZX Spectrum 48k). Радости моей не было предела! Сразу же я начал, запускать на нем игры. Игры на этом компьютере загружались с обычных аудиокассет с магнитной лентой. Загрузка одной игры длилась примерно 5 минут и с не малой вероятностью, могла прекратиться из-за некачественного сигнала. Чтобы увеличить вероятность успешной загрузки, мне приходилось протирать спиртом и регулировать положение считывающей головки магнитофона. Весь этот шаманизм при загрузке, длительность загрузки и невозможность сохраняться в играх, привели к тому, что постепенно я начал терять интерес к играм. Но вместе с «Байт»-ом мне также подарили книгу, по работе с этим компьютером. Я решил прочитать эту книгу, чтобы узнать больше о возможностях «Байт»-а. В книге оказался учебник по встроенному в «Байт» языку программирования «Бэйсик».
Читать дальше →
Total votes 159: ↑143 and ↓16+127
Comments525

Поразрядная сортировка LSD (Radix Sort)

Reading time3 min
Views31K


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

Хочу рассказать про свой излюбленный алгоритм для поразрядной сортировки LSD (least significant digit — сначала младший разряд) с подсчётом (Radix Sort). Классический алгоритм был несколько переосмыслен автором в сторону некоторых оптимизаций в пользу ускорения и простоты.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments11

Мультиплатформенность приложений в 2023

Level of difficultyMedium
Reading time8 min
Views13K

Где в 2023 году искать настоящую нативную кроссплатформенность?

Я прошел Golang → Rust → C# → Python → Java → Kotlin → Free Pascal, в поисках мультиплатфореммнного GUI, для десктопов и мобильных и кое что нашел.

Многие считают что web или pwa это и есть кроссплатформенность, многие считают, что это Flutter или electron, но что там на самом деле?

Узнать
Total votes 35: ↑31 and ↓4+27
Comments82

10 самых влиятельных (и почти мёртвых) языков программирования

Reading time13 min
Views49K

Гиллель Уэйн*, разработчик и консультант по формальной верификации, обратил внимание на статью «20 наиболее значимых языков программирования в истории», которую сам автор называет «нелепой, только что придуманной таблицей». По мнению Уэйна, эта характеристика вполне справедлива: автор таблицы называет Go «наиболее значимым», но не включает в список ALGOL, Smalltalk или ML. И не учитывает Pascal, потому что тот «почти мёртв». Абсурд! Это противоречит всей сути понятия «значимость в истории».

Так давайте обсудим некоторые «почти мёртвые» языки и причины их важности.

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

Дисклеймер 2: Да, некоторые из упомянутых здесь языков были «первыми изобретёнными», а другие — «первыми популярными». История — это сложно!

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Total votes 126: ↑123 and ↓3+120
Comments469