Category: история

Category was added automatically. Read all entries about "история".

линейка

Откуда берутся огромные флаги?

В России на днях годовщина августовского путча. Не круглая и не сегодня, но вот ничего не могу с собой поделать — страсть как интересно, поэтому напишу уже. Вот смотрите https://www.bbc.com/russian/russia/2011/08/110818_1991_coup_by_hour — речь об известной картинке с флагом. В какой-то момент мне стало интересно, откуда взялся этот флаг. Его по ночам неравнодушные ткачи ткали с 1953 года? Или его для другого события изготовили, а потом он внезапно пригодился? Где ответ?

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


Также здесь / also here.
Пластун

Радиодетали

Я так понимаю, что через час от момента написания данного поста у вещательного центра «Эхо Петербурга» лицензия на вещание вступит в противоречие с лицензией на контент. Причём политика тут никаким боком, исключительно квартирный вопрос людей испортил.
Надо не пропустить этот момент исторического фейла.
Радиочастота питерского телемагазина — 91,5 МГц (неместные могут пойти на http://piter.fm/), московский эфир — на http://echo.msk.ru/sound.html.
линейка

Всё новое — плохо испорченное старое

CSS3 2012 vs OS/2 1992: http://habrahabr.ru/post/143342/

Habrahabr 2012 http://habrahabr.ru/post/143342/ vs DLUCIV 2007: http://dluciv.livejournal.com/43776.html

Я бы вообще добавил к сравнению IBM CICS 1969, в котором, в общем-то, в отличие от CSS3, всё, что надо, есть, ну да ладно...
линейка

Алгол 68 живее всех живых

Мне захотелось продолжить серию из трёх постов: (1) (2) (3).

Есть такой замечательный язык — Алгол 68. Он немного старше Си и Паскаля по возрасту, но при этом принципиально мощнее и гибче Паскаля, и строже, чем Си. Кстати, он и строже Паскаля, и мощнее Си, но уже не в той степени.

До конца 80-х в СПбГУ пользовались, в т.ч. и для обучения студентов, собственным транслятором Алгола 68 - А68ЛГУ. Сейчас студентов Алголу 68 не учат. Нынешнее обучение на Математико-механическом факультете (правда уже не поголовное, слава Богу) младших студентов программированию на Паскале по сравнению с этим явно сливает. Обучение на Алголе 68 привносило аутентичность, обучение же на Паскале (используя тот самый старый добрый Turbo Pascal 7, и, буквально пару последних лет, Free Pascal) – только отстойность. Практическая же польза в обоих случаях сравнима.

Сначала А68ЛГУ делали под ЕС ЭВМ, потом его портировали под PC, причём сначала на Правец, так что вычислительные аппетиты транслятора пришлось сильно уменьшить. Уже портированный на архитектуру PC он до сих пор используется на нескольких коммерческих предприятиях (ЗАО Ланит-Терком, ГУП Терком, ФГУП НПК «Красная заря» - та, которая до революции называлась Ericsson, кстати), в частности, для реализации функционального программного обеспечения АТС.

Описание Алгола 68 можно прочитать в Пересмотренном сообщении об Алголе 68 (ред. А. ван Вейнгаарден. Пер. с англ. — М., Мир, 1979—533 с.), и отпасть, либо в какой-нибудь более вменяемой для конечного пользователя книге, например, этой: Программирование на языке алгол 68 для начинающих — издательство ЛГУ, 1988 (кстати, полный список авторов — Н.Н. Вояковская, Н.Г. Графеева, М.В. Дмитриева, С.М. Селеджи, Т.А. Шубочкина, под редакцией чл.-кор. АН СССР С.С. Лаврова).
Если же вы допускаете чтение книг, которые не пахнут клопами, то можете либо поискать последнее указанное пособие в электронном виде, либо посмотреть ссылочки из статей Википедии.

Среди не очень примечательных особенностей языка можно отметить возможность задать произвольную точность, по крайней мере, для целых типов. Скажу сразу, что А68ЛГУ на PC такого не тянул. Удвоение точности в два раза (до определённых реализацией пределов) производилось путём приписывания модификатора LONG нужное количество раз.

Поскольку А68ЛГУ в доступной мне ипостаси не умеет считать и хранить данные с произвольной точностью, я пользовался интерпретирующим транслятором языка — Algol68G. Это очень неплохая реализация, кстати, и, в отличие от А68ЛГУ, вполне живая. И позволяет задавать произвольную точность. Для чисел с плавающей запятой, правда, LONG можно писать только два раза, а точность задавать уже из командной строки. В 100 десятичных знаков, например.

Ну, поехали.

(
 
LONG LONG REAL a := 1.0000001, b := a;
 
TO 27 DO
    a
:= a * a; b := b ** 2
  OD;
  print
((a, new line, b, new line, "www.leningrad.su/museum"))
)

Запускаем: a68g --file leningrad.a68 --precision 100

Получаем:

+6.745304707410845593826891780297468128444441434103420317423773278390177617568356469241850369483141171614489467913e +5
+6.7453047074108455938268917802974681284444414341034203174237732783901776175683564692418503694831411716144
94515622e +5
www.leningrad.su/museum

Обратите внимание, подсчёт таки идёт разными способами, но зато с какой точностью!

Кстати, лексические сущности языка, написанные здесь прописными буквами (т.н. индиканты, слабыми подобиями которых являются ключевые слова в других языках) в А68ЛГУ писались в произвольном регистре (обычно в нижнем), но выделялись точкой в начале. Это выглядело намного симпатичнее и эротичнее, с моей точки зрения.

UPD: точность в A68G, кстати, получилась выше 100 цифр. Фактически, длина мантиссы здесь задаётся не с точностью до знака или бита, а с определённым шагом. Точность меняется при прибавлении примерно 6 десятичных знаков. Значит шаг - 6 * log_2(10) ~ 20 битов. Скорее всего, 20.