16 октября 2011

Common Lisp. Restas. Maxima. #3

Сразу же иллюстрации:


И на телефоне:


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

Репозитарий потолстел за счет встроенных зависимостей, в частности, за счет mathjax.

Проект уже сейчас можно протестировать по адресу http://asvil.dyndns.info:8081/index.html. Внимание доступность сервера зависит от того, включил ли я его:), поэтому он работает не всегда.

Пример простого TeX документа: https://github.com/filonenko-mikhail/restmax/raw/master/example/new.tex

Пожелания/ошибки и вообще критику можно писать в комментариях, а также по адресу https://github.com/filonenko-mikhail/restmax/issues.

Changelog

Встроенная maxima. Теперь maxima запускается внутри restmax на каждую сессию отдельным потоком. Поток живет 6 секунд после того, как вы закрыли страничку с repl-ом.
Отдельный поток maxima на LaTeX. Теперь для преобразования TeX документа запускается отдельный от repl-а поток maxima.
Скругленные углы у кнопок убраны.
Добавлено отображение графиков. Для этого предназначены функции семейства wx* (wxplot2d, wxplot3d, и т.д.), позаимствованные и модифицированные из wxMaxima. Отображение графиков также возможно и в документах TeX.

Известные ошибки

Сложные графики отображаются только после следующей команды. Надо поставить sleep.
maxima содержит глобальные переменные. Пока только две из них изолируются в потоке let-ом.
embedded maxima in TeX не содержит экранирования для символа }, надо поправить.
Команда quit(), приводит к зависанию hunchetoot client потока. Надо переопределить quit, добавив вывод специального маркера.

В будущем:

Сделать историю в repl.
Наладить справочную систему для maxima, TeX в виде wiki.
Возможно поменять название проекта, нынешнее излишне созвучно, да и вообще хочеться использовать красивое женское имя.
Решить проблему изоляции/безопасности сессий одним махом.
Кроссбраузерность, включающая гаджеты.

Комментариев нет:

Отправить комментарий