Чтобы добавлять сообщения и комментарии, .

@Mazdaywik:
Mazdaywik

Блоггер point-666.livejournal.com перемешал строчки двух стихотворений: «Бармаглот» Л. Кэррола и «В Музее В. И. Ленина» С. Михалкова. Получилось забавно:

Варкалось, хливкие шорьки
Стреляют на ходу.
И хрюкотали зелюки
В семнадцатом году.

Рабочий тащит пулемет.
Высоких полон дум.
Висит плакат: «Долой господ!
Под дерево Тумтум!»

О бойся Бармаглота, сын,
Он там, где жизнь кипит.
А в глуще рымит исполин,
На сходках говорит.

А как умел он говорить,
Он так свирлеп и дик,
Какой простор он мог открыть,
Злопастный Брандашмыг!

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

О светозарный мальчик мой,
Хранимый под стеклом!
О храброславленный герой,
Как много зим прошло!

Варкалось, хливкие шорьки
Сюда за правдой шли.
И хрюкотали зелюки —
Беседу с ним вели.

point-666.livejournal.com

Сергей Михалков «В Музее В.И.Ленина»: world-art.ru
Льюис Кэрролл «Бармаглот» Перевод с английского Д. Орловской: logrys.net

@Mazdaywik:
Mazdaywik

@CaufMAN: *programming *oberon
Любопытно, а как местные уважаемые доны относятся к наследию товарища Никлауса Вирта в виде языков семейства оберона?
#2822358 (166 replies) juick.com

@Mazdaywik:
Скажу свои несколько слов^Wабзацев про Оберон.

Единственный эпитет, который его характеризует, — дубовый. Дубовый (в смысле простой и надёжный) императивный язык программирования с элементами ООП. Дубовая архитектура виртовской операционной системы Оберон (чем-то напоминает ранние 16-разрядные Windows). Дубовый стиль написания программ. Дубовое сообщество дубовых программистов.

Язык Оберон-2 вмещает в себя минимальное подмножество средств императивного (структурного, процедурного) программирования + минимальное ООП — тем он хорош в образовательном процессе (сам не пробовал, но попробовать хочу). Если какие-нибудь другие компактные языки программирования типа C или Scheme при обучении позволяют проводить надёжную селекцию студентов (отличать отличников от двоечников), то Оберон наоборот, научит сносно программировать и троечника. Также хорош как учебное пособие по курсу компиляторов — вполне реально (если студент не разгильдяй) написать самоприменимый компилятор в двоичный код в рамках курсового проекта.

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

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

Программы тоже получаются на нём дубовые. Нет исключений и неструктурных переходов, поэтому код выполняется строго последовательно. Нет макросов, перегрузки операторов, поэтому нельзя написать красивый DSL. Нет поддержки обобщённого программирования, поэтому если пишется тип объектов, которые будут объединяться в коллекцию, сразу пишется поле next для объединения в односвязный список. Если нужно отсортировать элементы, пишется вручную алгоритм сортировки. Поэтому программисты на Обероне хорошо знают алгоритмы. В общем, язык дубовый, как ранняя Java, только ещё дубовее. В общем, если нужно написать надёжную дубовую программу, Оберон вам в помощь.

Да и программисты дубовые. Чтение форума oberoncore.ru позволяет изучить т. н. парадокс блаба на практике. Оберонщики хорошо знают алгоритмы, хорошо владеют императивной объектно-ориентированной парадигмой, некоторые этому даже учат школьников и студентов. Но вот за пределами своей компетенции полностью некомпетентны: «зачем нам эта фича, мы и без неё прекрасно обходимся, она сложная, провоцирует ошибки, её можно заменить такими-то дубовыми конструкциями Оберона…».

P.S. Извините за стену текста.
#2822358/146 juick.com

@anton0xf:
лучший коммент по теме. жаль рекомендаций комментариев нет.
#2822358/149 juick.com

@Mazdaywik:
Mazdaywik

Ссылка: github.com

Таки выложил репозиторий Модульного Рефала на GitHub. На данный момент компилятор малоюзабелен (работает только под Windows, перед использованием в файле compile_mr.cfg следует прописать путь к текущей папке, нет руководства пользователя), но важен тут сам факт.

Репозиторий делал я долго, но он точно отображает ход развития проекта с 2007 года.

У коммитов с 2007 до 2011 года долгая история.
• В тот период я не пользовался системами контроля версий, но прилежно делал бекапы в виде архивов RAR.
• Потом я случайно убил раздел с этими бекапами.
• Восстановил (самописной утилитой), но имена файлов потерялись — пришлось вручную разбирать, какой из архивов полный, а какой разностный, а также восстанавливать временные штампы по содержимому. Хотя, полдюжины архивов сохранилось в другой папке, их коммиты в истории выделяются другим именем файла.
• Затем написал утилиту (велосипед № 2), которая из набора архивов строит репозиторий Git с линейной историей.
• Но на самом деле история нелинейная, ибо я писал компилятор то дома, то с работы, а затем все архивы скинул в одну кучу. Пришлось вручную перелопачивать историю, вставляя в нужных местах ветвления и слияния.
• Архивы представляли собой просто слепки файловой системы с кучей промежуточных и целевых файлов («объектные» файлы, exe-шники), которые можно перегенировать из исходников. Чтобы прояснить дифы коммитов и уменьшить объём хранилища, чистил историю от этих файлов (ещё одна кропотливая работа). Некоторые exe-шники для цельности картины пришлось оставить, поэтому размер хранилища получается около 90 Мбайт.
• В рамках Модульного Рефала жил форк Простого Рефала, поэтому старые коммиты последнего тоже вшиты в историю.

Начиная с 2011 года я уже начал использовать SVN (хранилище держал на флешке), а поддержка последнего есть в Git из коробки. Где-то с 2014 года уже коммитил в этот SVN через клиент Git (отсюда коммиты с файлами .gitignore).

В общем, поэтому так долго выкладывал Модульный Рефал на GitHub (#2810159).

История развития Модульного Рефала начиная с 2007 года описана в журнале проекта github.com , если это кому интересно.

@Mazdaywik:
Mazdaywik

@stoneman:
Единственным известным современной фармакопее, истинным стресс-протективным агентом является алкоголь. Прием алкоголя сразу после неконтролируемого стресса предотвращает развитие депрессивных состояний.

Основной вред здоровью человека приносит неконтролируемый стресс, развившийся не в результате крупных потрясений, а из-за множества мелких событий, каждое из которых и неприятностью-то не назовешь, но в совокупности именно они оказываются тем губительным для здоровья человека фактором, который губит здоровье человека. Поэтому такие знатоки природы человека, как В. М. Бехтерев, много сделавший для организации лечения алкоголизма в нашей стране, и К. Г. Юнг рекомендовали периодическое, но не регулярное (для того чтобы снизить скорость привыкания к алкоголю, замедлить формирование ФКД, т. е. психологического стереотипа) употребление небольших доз алкоголя.

Жуков Д. А., Биология поведения: гуморальные механизмы. — СПб.: Речь, 2007
#2821575/10 juick.com

@Mazdaywik:
Mazdaywik

Пользователь @mismatch в посте #2821168 порекомендовал статью smashcompany.com о недостатках ООП. Поскольку она на буржуйском, а я не силён в их мове, читаю через Яндекс.Переводчик. Понятно, что когда непонятен оригинал, смотрю в перевод, когда непонятен перевод (что тоже бывает часто) — смотрю в оригинал. В общем, Яндекс переводит state как государство. Порой получается забавно:

Whether you use an OOP language or a functional language, your enemy is state, …
Используете ли вы ООП язык или функциональный язык, твой враг-государство, а цель любого вида данных-скрытие является ограничение способов, как государство может изменить. Джон Баркер резюмирует врага:
Государство-не друг, государство-твой враг. Изменения в государственные программы сделать сложнее рассуждать о том, сложнее тестировать и отлаживать труднее.

Такой вот забавный анархизм (или либертарианство?).

@Mazdaywik:
Mazdaywik

Был сегодня на лекции Светланы Анатольевны Бурлак «Язык человека и „языки“ животных». Довольно интересно, где-то треть рассказанного мне была знакома, остальное в новинку. Рассказывалось преимущественно про коммуникацию птиц. Народу было мало. Чтобы успеть к началу лекции, пришлось с работы (офис которая) уйти пораньше (у нас это можно).

Лекция входит в курс «Происхождение языка», который читается в культурно-просветительском центре Архэ. Лекции читаются по четвергам в 19 часов, у станции метро Спортивная (default city, да). Одна лекция стоит 500 рублей, можно купить абонемент (я не брал).

Ссылки, если заинтересовало:
arhe.msk.ru — про сегодняшнюю лекцию.
arhe.msk.ru — про весь курс.

@Mazdaywik:
Mazdaywik

В посте #2820428

@Mazdaywik:
Mazdaywik

Час назад обновлялся Juick (#2820433), а я в этот момент написал пост #2820428. Пишу это сообщение на случай, если кому-то не пришло уведомление о том, что я его написал. Суть поста #2820428 в том, что я выпустил версию 1.0 Простого Рефала.

@Mazdaywik:
Mazdaywik

Судя по #2820432, не у меня одного Жуйк глючит.

@Mazdaywik:
Mazdaywik

В продолжение #2820430. GitHub на странице пользователя отмечает карту активности на ресурсе: цветными клеточками за последний год показывает вклад участника за каждый день. Если в некоторый день пользователь делал pull request, фиксацию или issue (не знаю, как адекватнее это назвать по-русски) — клеточка зелёная, в противном случае — серая. Непрерывная последовательность зелёных клеточек называется страйком (streak).

Вот, текущий страйк я тяну уже 28 дней, прикладываю все усилия, чтобы он не прервался (иные дни делаю вымученные коммиты).

@Mazdaywik:
Mazdaywik

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

@Mazdaywik:
Mazdaywik

Имею дерзновение выставить Простому Рефалу версию 1.0, намекая тем самым, что он уже практически готов к продакшену.

Ссылка: github.com

За последние пару месяцев я аццки поработал над компилятором, сделал следующее:
• Изменён синтаксис: теперь предобъявления для функций и идентификаторов не нужны.
• Этап построения промежуточного императивного кода разбит на два прохода. Попутно немного изменилась структура этого промежуточного кода и кодогенератор.
• Реорганизована структура репозитория: теперь их два (второй: github.com ). На втором репозитории (и только на нём) располагаются полускомпилированные исходники компилятора.
• Появилась некоторая процедура инсталляции и некоторое удобство использования (вернее, устранено одно из неудобств использования: необходимость явно указывать пути к каталогам библиотек).
Самое главное, для Простого Рефала были сформулированы цели развития (см. README.md). Было это давно (конец ноября), но руки не доходили написать.

В следующем семестре планируется провести два исследования, связанные с компилятором: github.com и https://github.com/Mazdaywik/simple-refal/issues/16 — студенты-бакалавры будут писать свои дипломы.

@Mazdaywik:
Mazdaywik

В продолжение #2813533. Нашёл обходной путь — как можно делать пробелы неразрывными и при этом растяжимыми.

Среди специальных символов в Word’е есть символ неразрывающейся связки (при печати не отображается, при включении скрытых знаков отображается как прямоугольник). Если его вставить после обычного пробела — пробел не может оторваться от последующего слова. Повесил неразрывную связку на Ctrl+Shitf+пробел, нажимаю после ввода пробелов, которые не следует разрывать.

@Mazdaywik:
Mazdaywik

Есть такой интересный символ — неразрывный пробел. Если его поставить между двумя словами, то они не будут разбиваться переносом строки. Обычно его ставят после коротких союзов и предлогов (в, к, и, но, от…) или перед единицами измерения: 1 кг, 1234 г., 3 %. Я им активно пользуюсь.

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

Недавно Microsoft наконец-то пофиксила это поведение — неразрывные пробелы в Word 2013 стали растягиваться! Я был рад. Ненадолго. Сегодня заметил, что эта фича перестала работать. Загуглил. answers.microsoft.com (читать и смотреть скриншоты). Оказалось — большинство использует неразрывные пробелы как неразрывные нерастяжимые. И, видимо из-за потока жалоб, Microsoft была вынуждена вернуть старое поведение.

Вот так из-за пользователей-мудаков умные люди снова страдают. :-(

@Mazdaywik:
Mazdaywik

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

Компилятор успешно работает на Windows (x86 и amd64), Linux (x86 и amd64), QNX (x86) и OS X (хз разрядность, студенты делали). Компилируется компиляторами Borland C Compiler 5.5, MS Visual C++, GCC (MinGW и нативные под Linux и QNX), Clang (Windows и OS X), Open Watcom (Windows).

Под DOS не переносился, потому что тупо не влезет в память (при компиляции самого себя требует 30 Мбайт под x86, 60 Мбайт под amd64) (хотя была бы интересная задача реализовать его под DOS).

В общем, Жуйк. У кого есть возможность запустить компилятор C++ под ARM (телефон, планшет, Raspberry Pi) или под какими-нибудь экзотическими платформами (Itanium, Эльбрус) и некоторое количество свободного времени, попробуйте собрать на нём Простой Рефал. Ссылка: github.com

P.S. Под Колибри и Полуосью компилировать не пробовал, возможно, когда-нибудь, руки до них дойдут.

@Mazdaywik:
Mazdaywik

Мне на репозиторий Простого Рефала уже успели поставить 4 звезды. Как на это лучше реагировать? Поставить звёзды в ответ? А на какие репозитории, если у них репозиториев много? И вообще, что эти звёзды обозначают: влияют на рейтинг или ничего не значат?

Я новичок в GitHub.

@Mazdaywik:
Mazdaywik

Последнее время в обычной машинописной речи (почта, переписка в IM) я использую не только типографские символы (кавычки, тире), но и неразрывные пробелы после коротких союзов и предлогов. На раскладке Бирмана они вводятся как Ctrl-Alt-Пробел. При включённых типографских символах под Linux — вроде тоже (там не Ctrl-Alt, а выбранная пользователем клавиша третьего ряда).

@Mazdaywik:
Mazdaywik

Почему я пока не выложил Модульный Рефал? Отвечу цитатой:
в теме про опропиетаривание очередной проги:
Да кашмар) нашим программистам не жалко выложить код, им просто стыдно))
ibash.org.ru

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

@Mazdaywik:
Mazdaywik

Маздайщик вернулся в Жуйк со своим Рефалом. А именно:
github.com

@Mazdaywik:
Mazdaywik

ru-explosm.livejournal.com