Category: it

Mikail

(no subject)

После подключения SymPy к mm-vis-js — получился аналог Mathematica или Mathcad, только с графовым, семантическим интерфейсом. Такого еще не видел. Теперь в mm-vis-js на одной странице концептуальное моделирование (понятийные карты), IDE и CAS. Давно уже не хватало графового интерфейса в CAS типа Mathematica. И удалось внести метод построения семантических сетей, как эффективный метод познания, в обучение компьютерной алгербе. Вот теперь точно можно начинать разбираться в высоких технологиях =)

Чтобы работать с SymPy, нужно открывать страницы mm-vis-js локально, лучше сразу из копии репозитория. Нужны python, nodejs и SymPy, и запустить node ./utils/mvj-serv.js. Нода с SymPy кодом должна начинаться с строки «sympy». Выделив такую ноду, нажимаете Alt+R, ее код выполнится и справа от нее на странице появится нода с результатом.

https://sushilshik.github.io/math.html?scale=0.6&x=104056&y=-9847

https://github.com/sushilshik/mm-vis-js

mm-vis-js_math_2

mm-vis-js_math_1

mm-vis-js_math_3
Mikail

(no subject)

https://sushilshik.github.io/javascript.html

Пример развития заметок по JavaScript в карту предметной области.

Из «Базы знаний», Гаврилова Т.А., Хорошевский В.Ф. (стр. 190-191): «Визуальные методы спецификации и проектирования баз знаний и разработка концептуальных структур являются достаточно эффективным гносеологическим инструментом познания.»
«...семантические сети или понятийные карты (concept maps) являются возможной формой представления (полей знаний). Это означает, что сам процесс построения семантических сетей помогает осознавать познавательные структуры.»

https://github.com/sushilshik/mm-vis-js

mm-vis-js_javascript
Mikail

(no subject)

Теперь код mm-vis-js лежит на холсте mm-vis-js. И собирает сам себя. В общем, IDE мечты. Визуальное метапрограммирование. А можно еще и статьи так писать, главы книг.

Чтобы работало локальное сохранение холста и сборка проектов кода на холсте — нужно поставить node.js и запустить «node mvj-serv.js» в директории mm-vis-js/utils. Описание в схеме «Как пользоваться mm-vis-js». Масса возможностей открывается, просто рук на все не хватает.

https://sushilshik.github.com

mm-vis-js_code
Mikail

(no subject)

mm-vis-js — редактор диаграмм связей, графов. Работает в браузере, как локально, так и в сети, без серверной части. Интерфейс сочетает визуальное редактирование и тектовый редактор кода схемы.

Теперь можно сохранять работу на страницах mm-vis-js. Список сохранений выводится прямо на холсте. Не нужно где-то логиниться или что-то скачивать. В браузере есть функция localStorage. Данные в localStorage хранятся и между перезагрузками браузера. В целом работает уже почти как десктопная программа.

Json-код схемы каждого сохранения можно посмотреть и скопировать. Основные его данные — список нод и связей между ними.

Получилось удобно, потому что работа с json представлением содержания холста специально вынесена в отдельный интерфейс. Можно изменять схему, редактируя json, то есть работать с графикой, как говорится, «по цифрам», а не только мышкой. Обновление схемы на основе json — уже есть, нужно было только еще сделать его сохранение и загрузку.

Чтобы сохранить, нужно кликнуть updateMenuFromScheme — json и в меню обновится, и сохранится в localStorage.
Чтобы выбрать, какое сохранение загрузить, нужно кликнуть по «Save/Load» в меню showData. Вид перейдет к списку сохранений на холсте. Клик на ноде с именем сохранения и клик на loadSavedProjectToMenu в меню слева.

mm-vis-js_save
Mikail

(no subject)

Новый интерфейс mm-vis-js. И примеры карт кода. Целиком код репозиториев (.c, .h, .cc, .py и т. п. файлы) Chromium, Firefox, ядра Линукс, Apache httpd, bash, Python, Emacs, gcc, texlive, vim, Visual Studio, Ruby, JDK, ghc, git, Hbase, Julia, mysql-server, neo4j, sbcl, Spark, spring-framework, Tomcat, vis-network, mm-vis-js. Список ссылок на карты в схеме «Карты программного кода».

Это, конечно, только вариант автоматической верстки кода. Масса возможностей открывается. Можно генерировать для каждого файла, каждого участка кода свои примечания, вспомогательную информацию. Например, историю изменений.

В современных IDE очень не хватает возможности редактировать блоки кода в таком виде на холсте.

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

https://sushilshik.github.io — уменьшите масштаб, чтобы увидеть другие разделы.

2019-11-01_mm-vis-js

Пример карты 500 файлов кода chromium:

mm-vis-js_chromium_1

mm-vis-js_chromium_2

mm-vis-js_chromium_3
Mikail

(no subject)

http://www.nkbtr.org/down/mm-vis-js/code_examples/vis-network/vis-network_2019-10-30_19-13-59/vis-network.index.html
Пример карты кода.
Файл большой, поэтому может загружаться секунд 20.
Теперь можно в ссылке задать координаты на холсте, чтобы сразу открыть нужную точку. Это параметры scale, x и y в конце ссылки. Чтобы сохранить ссылку на текущий вид на холст в браузере, нужно нажать «updateMenuFromScheme» в правом меню, промотать его вниз и скопировать соответствующие параметры в ссылку. Работает без серверной части.

vis-network_project_code_map
Mikail

(no subject)

16 числа Столлман подал в отставку с поста президента Фонда СПО. Из-за в самом деле плохих слов о 14 лет. Если вся эта новость не большой розыгрыш, конечно. Всякое бывает.

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

Я это интуитивно ощущал, и на уровне «так принято в культуре», и плюс к этому появилось объяснение.

Часто вспоминаю об этом объяснении и потому заметил, что уже, наверное, лет 5 я вообще не встречал его нигде вокруг. И раньше встречал очень редко.

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

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

Очень неприятно — если бы мне эти тексты по этой идее не встретились? (Тексты, в которых не только логика, но и «так принято» свое есть) Что бы я мог тогда сказать без знаний (а я и говорю постоянно... и вопросы задаю. А как иначе?)?

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

Может быть есть и некая гипотетическая патерналистская иерархия заботы в обществе? Вдруг. Но и коммерцию ведь тоже отсюда не выкинуть.
Mikail

Tabs Outliner

Для тех, кто открывает десятки вкладок в Google Chrome, выстраивающихся неразличимым рядом зубчиков наверху в панели заголовков и дико тормозят компьютер — есть замечательный плагин Tabs Outliner. Это как управление закладками, только вместо закладок табы браузера. Табы синхронизированы с деревом Tabs Outliner. Можно деактивировать таб — он закроется в хроме, но останется в дереве плагина. Активируется двойным кликом. Перетаскивая пункты в дереве — перемещаете табы в хроме и наоборот.

Очень удобно, чтобы составлять себе рабочие места для определенной работы. Например, дерево «Работа в соц.сетях» или «Доки для программирования текущего проекта». Или сохранять ссылки по дням, если каждый день начинать работу в новой ветке дерева с датой.

Гораздо удобнее, чем закладки — плагин автоматизирует массу ручной работы с закладками. Сбоит редко. Есть механизм внутренних автоматических бэкапов. Понятно, что все где-то читается, но так хоть легче работать. Прямо воздухом свежим вздохнул.

UgwzDbh

sangkrit.net-how-to-easily-manage-lots-of-tabs-from-a-central-place-in-google-chrome1
Mikail

VUE + Ruby

В VUE очень просто подключить jRuby. Будет как JavaScript в браузере. Также можно управлять элементами на холсте. Версия «на коленке».

1. git clone https://github.com/VUE/VUE.git
2. cd VUE/
3. git checkout tags/3.2.2
4. git checkout -b 3.2.2-work
5. wget http://nkbtr.org/down/jruby.patch
6. git apply jruby.patch
7. wget http://central.maven.org/maven2/org/jruby/jruby-complete/1.7.16/jruby-complete-1.7.16.jar
8. mv jruby-complete-1.7.16.jar VUE2/lib/
9. VUE2/src
10. ant compile
11. ant jar
12. java -jar VUE2/src/build/VUE.jar

Файл с примером кода и инструкцией: http://nkbtr.org/down/vue_scripting.vpk

Если файл в VUE не открылся сразу, откройте еще раз (повторите операцию).

Еще в 90-е появились приставки Visual в именах языков программирования. Например, Visual C++. И, помню, переговаривались на кружке программирования «а где же там этот Visual?». Только плечами пожимали. А представлялось что-то красивое.
Так вот этот самый Visual =) Ruby в программе для концептуального моделирования!

И можно ведь массу других языков подключить, для которых есть JVM-версии.

Всегда казалось, что чего-то не хватает графическому интерфейсу с нодами иконок на рабочем столе и в директориях. Так осталось же их только стрелками связей соединить =)

vue_script_example

vue_scripting
Mikail

Ansible

C наступающим! =)

Начал пользоваться Ansible — системой автоматизации сисадминских задач. И прочитал книгу «Ansible: From Beginner to Pro». Идея Ansible в том, что админские задачи, которые обычно приходится выполнять вручную на каждом компьютере (ставить и удалять программы, изменять конфиги, настраивать сеть, настраивать процессы и т. п.), можно записать в форме инструкций (playbook) на внутреннем языке Ansible и выполнять их, например, одновременно на нескольких удаленных компьютерах. Ansible подключается к целевым компьютерам по ssh и не требует держать на них специальные процессы-слушатели.

На https://galaxy.ansible.com/explore/ репозиторий с массой готовых инструкций. Многие из них ставят и настраивают «под ключ» замысловатые комплексы сервисов. Инструкции можно скачать и отредактировать под себя.

Книгу выбрал еще и потому, что большая часть примеров в ней выполняется в виртуальных машинах Vagrant. И, соответственно, Vagrant описан довольно подробно. Получилось удачно — сразу после книги о Docker. Vagrant и Docker похожи интерфейсами и стилем использования. Различие в том, что Docker запускает свои контейнеры быстрее и экономнее использует ресурсы, но специализируется только на Линукс, а Vagrant работает со всеми ОС, которые поддерживает как минимум VirtualBox. То есть под Docker подразумевается virtual environment, под Vagrant — обычно virtual machines.

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

Думаю, в будущем комбинации инструментов вроде Ansible+Docker/Vagrant будут активнее использовать в документации и образовательных материалах как минимум IT-сферы.

Книга: https://goo.gl/qKocmz

Ansible_From_Beginner_to_Pro

ansible