?

Log in

No account? Create an account
Я разрабатываю русскоязычный язык программирования "Яр"

Зачем? Для повышения конкурентоспособности нашей страны.

Как? Я взял за основу Common Lisp. Это весьма продвинутый язык программирования, который сейчас потерял популярность по ряду причин. Пентагон вложил в его разработку миллионы (а может быть, и миллиарды). Несмотря на малую популярность, он применяется в системе управления войсками, на телескопе Хаббл, в системах автоматизированного проектирования и на нём был написан сайт Белого Дома во времена Клинтона.

Я делаю "обёртку" вокруг этого языка, которая его русифицирует и исправляет его недостатки (которые и привели к падению популярности).

В каком состоянии проект? Имеется работающий прототип.
16 февраля 2018 года английские СМИ сообщили об осуждении и заключении в тюрьму бывшего консультанта ЮНИСЕФ Питера Ньюэлла, который, как оказалось, в 60 годах неоднократно насиловал мальчика. Когда это произошло впервые, ребенку было 12 лет. Ньюэлл оказался педофилом, что «глубоко шокировало» представителя ЮНИСЕФ. Однако Ньюэлл был не просто одним из консультантов ООН. Он был ключевой и ведущей фигурой в создании международных стандартов в области «защиты детства». Аналитический Центр «Семейная политика.РФ» демонстрирует это в своем аналитическом докладе на примере одного из главных направлений деятельности осужденного педофила. Эти факты, по мнению экспертов, должны заставить государство по-новому и трезвее смотреть на международные требования в области «защиты детей».

Доклад, озаглавленный «Движение за запрет телесных наказаний в семье: истоки, методы, результаты», показывает, что начало движения за запрет телесных наказаний в семье восходит к деятельности легальной педофильской организации «Обмен информацией по педофилии» (Paedophile Information Exchange, PIE), существовавшей в Великобритании с 1974 по 1982 г., когда педофилия рассматривалась многими представителями английской общественности как один из аспектов прав гомосексуалистов.

Организация первой начала в Англии активную борьбу за право детей на сексуальную свободу и за их освобождение от родительского контроля, чтобы облегчить доступ педофилов к детям. Вскоре после ее закрытия властями за «повреждение общественной нравственности» упавший флаг борьбы за «детские права» подхватил Питер Ньюэлл, до этого возглавлявший образовательное направление в «Национальном совете за гражданские свободы», членом которого была PIE.

Источник
Это пока не пост, а заготовка - не хочу, чтобы находки потерялись.
Чтобы файлы яргт воспринимались как html, сделано следующее:

c:\js\express3\node_modules\mime\types.json - поправлено расширение text/html.
Это сделано явно неправильно, т.к., по видимому, этот файл как-то генерируется.
Плюс к тому, есть mime.define.

Но ввиду чайничества, я не знаю, как добыть объект mime, и не знаю, как пересобрать
этот модуль на основе mime-db или mime-types

Хотя похоже, что нужно править mime-db и как-то запускать c:\js\express3\node_modules\mime\build\build.js
http://программирование-по-русски.рф/яроклава-js.яргт
При создании html-страниц или документов в формате Markdown
приходится часто переключать раскладку - большинство людей при этом ошибаются. Чтобы
уменьшить эту боль, предлагаю такой способ: вместо переключения раскладки, для ввода латиницы
нужно нажать и удерживать пробел. Опыт показывает, что работать таким образом очень удобно.
Страничка, где можно это сделать - по ссылке.

building ClozureCL 2018-01-15

Tried to download latest 1.11.5 ClozureCL for WindowsX8664, but it failed to rebuild itself - it hanged when compiling optimizers.lisp

Using current msys2 - actually instructions on how to tune msys2 for building CCL are in lisp-kernel/win64/makefile .

General tuning of msys2 is described at https://github.com/msys2/msys2/wiki/MSYS2-installation

So trying the following steps:
Download snapshot from
https://github.com/Clozure/ccl/releases/tag/v1.12-dev.1
Clone the repo https://github.com/Clozure/ccl and switch to SHA-1: a608a598d3854f65880f31858145839e5aa66178
Put binaries from snapshot to the dir with Clozure repo.

Started wx86cl64 and entered
(ccl:rebuild-ccl :full t)

опять началось

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

http://www.vesti.ru/m/doc.html?id=2929414

"Помочь Черенёвым пытался друг семьи. Ему юрист роддома предложила родителей протестировать. "Ну, хорошо. Мы сейчас вынесем ребенка и положим его на пеленальной доске. А маме об этом не скажем. Как она будет его искать?" – рассказывает Иван Онищенко, главный редактор официальной интернет-радиостанции Всероссийского общества слепых."

Очевидно, что это следующий этап работы с обществом после Дель. Дель мы слили, это плохо. Если мы сольёмся и сейчас, то всё будет совсем плохо.

Вот честно говоря, хочется взять автомат и выстрелить в кого-нибудь. Но можно просто найти юриста больницы и для профилактики немножко отпиздить. Ваши мнения?
Из записок неунывающего никому неизвестного райтера
Как заставить совершенно среднестатистического обывателя прочесть рекламу? Мало того, чтобы прочел, надо чтоб запомнил, промотивировался на покупку и обязательно порекомендовал приятелю, да не одному. Думаете, задача трудновыполнимая? Ничего подобного.


оригинал взят из общей базы Яндекс.Картинки

Всеми проклятая джинса...Collapse )

Вы ведь это прочитали до конца?! Может не так уж я была не права, да? Ведь написала-то я абсолютно так, как вам я тут распиналась.


Пришла новая рассылка CitizenGO. Они говорят, что "законный представитель" Чарли Гарда, которая настаивает, чтобы его отключили от аппаратов жизнеобезпечения, почему-то по совместительству является председателем организации "Сострадание в смерти", т.е. борцом за эвтаназию. Т.е. пристрастность "системы", включающей суд, государство и медицину, в этой ситуации вполне очевидна.

Далее цитирую рассылку:

"И эта женщина, служитель смерти и борец за смерть, назначена судом представлять «интересы» маленького Чарли, выступая против его родителей, которые борются за его жизнь!"

Яро-раскладка

Некоторым людям приходится набирать околотехнические тексты, где постоянно встречаются вместе Русские, Латинские буквы и всеразличные []{}#&$
В таких случаях нужно всё время переключать раскладку. Это сильно замедляет печать, и я к тому же хронически забываю текущую раскладку.

Некоторым нужны дореформенные ѣіѳѵ

Для Яра не хватило ASCII значков, поэтому пришлось ввести дополнительные: ☼°₽♥«»ѣѵѳіѢѴѲІ≈≡≠§†¿

Таким образом, назрела необходимость создания раскладки. Таковую я и сделал для Windows.

Скачать можно здесь

Раскладка такова:


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

Известные проблемы при наборе латиницы с нажатым пробелом:

- Набираю в адресной строке Яндекс-браузера k (т.е. Пробел+л) и весь ранее набранный текст уродуется. Поэтому k нужно вводить как =,л (сначала =, затем л).
- Total Commander - перестал работать поиск по первым буквам в панели с файлами. У меня настроен поиск на Alt-букву. Для поиска имени soft я нажимаю =, затем Alt-ы, затем жму пробел и, не отпуская пробела, набираю щ,а,е (там, где в латинице будет o,f,t).
- Cyberforum - латиница не набирается. На этот случай переключаюсь
- На моей ноутбучной клавиатуре Пробел+Shift+У (латинская большая E) вовсе не вводится, но если зажать правый Shift (как и положено при 10-пальцевом методе), а не левый, то вводится нормально.

Иными словами, проблем хватает. Зато:
- двоеточие,точка,запятая всегда находятся на одном и том же месте
- гораздо быстрее вводятся нужные программисту значки #@^&[]{}
- также есть свои новые значки

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

Поэтому в среде разработки Яра по нажатию F4 выскакивает изображение клавиатуры, где многим буквам назначены значки. Нажимая соответствующую букву, можно вставить в текст соответствующий значёк. Например, h - это знак ÷ .

Сразу отвечаю на естественные вопросы:
> после нажатия на одну кнопку клавиатура исчезает? А почему не оставлять на экране?
Потому что она имитирует понятие Dead Key. После некоторой тренировки можно будет нажимать F4 х, чтобы ввести открывающую [ - и это можно будет делать, не глядя на экран. Т.е. изображение клавиатуры нужно не для того, чтобы её видеть, а только, чтобы легко запоминать клавиатурные сочетания.

> зачем клавиатура внутри программы. если есть системная (даже много системных, если в линуксе)?
Яр пытается быть средой, не зависимой от текущей ОС. Я лично не смог создать свою раскладку в линуксе, а раскладок с нужными мне значками нет. Кроме того, даже если у нас будет раскладка с какими-нибудь «», то не факт, что не придётся её каждый раз переключать. Т.е. виджет клавиатуры позволяет в любой ОС вводить значки одинаковым образом, не меняя системных настроек.

breakpoint-ы в SBCL

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

;; -*- coding: utf-8; -*-
;; По мотивам https://common-lisp.net/project/cmucl/doc/cmu-user/debug-internals.html

#+named-readtables (named-readtables:in-readtable nil)
(in-package :cl-user)

;; такая оптимизация делает код "steppable", т.е. в нём работает пошаговый отладчик SBCL
(declaim
 (optimize (debug 3) (space 2) (compilation-speed 2) (speed 2) (safety 3))) 

(defun Факториал (Н)
  (cond
   ((= 0 Н) 1)
   (t
    (* Н (Факториал (- Н 1))))))

(defun Функция-обработки-точки-прерывания (Кадр Точка-остановки)
  (break "Точка прерывания ~A" (sb-di:breakpoint-info Точка-остановки)))

(defun Поставить-всевозможные-точки-прерывания (Функция)
  (let* ((Счётчик -1)
         (Debug-function (sb-di:fun-debug-fun Функция)))
    (sb-di:do-debug-fun-blocks
     (Бл Debug-function)
     (sb-di:do-debug-block-locations
      (Кл Бл)
      (sb-di:activate-breakpoint
       (sb-di:make-breakpoint #'Функция-обработки-точки-прерывания
                              Кл :info (incf Счётчик)))))))

(Поставить-всевозможные-точки-прерывания #'Факториал)

(Факториал 0)

При компиляции и загрузке файла такого содержания несколько раз вызывается break. Пройдя вниз по стеку, можно найти вхождения для функции "Факториал" и увидеть исходник того места, где мы сейчас находимся. Правда, таких мест довольно немного.

Короче говоря, мы наблюдаем интерфейс, позволяющий тыкать мышью в исходник на SBCL и ставить в это место точку прерывания. В SLIMЕ я не нашёл упоминаний этой возможности для SBCL, но она есть для CMUCL, с которого всё началось, и для SCL, к-рый является форком SBCL, если я ничего не путаю. На него-то я и собираюсь обратить более пристальное внимание.