You are viewing linkfly

linkfly [entries|archive|friends|userinfo]
linkfly

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Рейтинг библиотек в Quicklisp репозитории [Oct. 7th, 2012|10:19 pm]
[Tags|, , , , , ]

  Вообще говоря в движении opensource есть свои плюсы и минусы. Плюсов разумеется гораздо больше! :) Но есть и некоторые минусы. Один из них, например, - качестве библиотек никто не гарантирует и надо тратить время на исследования того, годная ли библиотека вообще для использования. Как с этим бороться? Во-первых, конечно же, нужно советоваться с коллегами, если кто-то получил драгоценный опыт использования какой-либо системы, то неплохо бы его перенять. А во-вторых гарантию качества даёт кол-во библиотек использующих интересующую вас систему. Вот об этом и пойдёт речь в этой заметке.
  Итак, я рад представить сообществу ASDF-систему для оценки рейтингов open-source библиотек из репозитория Quicklisp. Рейтинг системы в данном контексте будет ничем иным, как кол-вом библиотек, которые её используют. Инструкцию по использованию читайте здесь: https://github.com/LinkFly/ql-libs-analizing/blob/master/README_ru.

Сам репозиторий: https://github.com/LinkFly/ql-libs-analizing
Проект в Redmine: http://linkfly.ru:8201/redmine/projects/ql-libs-analizing (временно изменено, см. ниже)

Считаю, это крайне полезная система особенно для тех кто строит бизнес, с упором на использование opensource решений.
Предложения по развитию и баг-репорты пишите в проект на github'е или в Redmine.

P.S. Совершенно внезапно перестал работать 1gb.ru, вместе со своими DNS-серверами, поэтому ссылка на Redmine временно будет следующая: http://178.140.218.145:8201/redmine/projects/ql-libs-analizing
link2 comments|post comment

Проект LISP-DEV-TOOLS. Сервис для работы с проектом в Redmine. [Sep. 17th, 2012|06:54 pm]
[Tags|, , , , , , , ]

    И вот теперь, когда я вновь "свободный художник" займусь вероятно своими open-source проектами:)
Что касается конкретно lisp-dev-tools: вообще говоря, цель достигнута - это удобный инструмент для автоматизации разворачивания инфраструктуры для разработки на Common Lisp, я собственно сам им и пользуюсь. Судите сами: есть (по каким-либо причинам) у вас чистая ОСь (ну прямо девственно-чистая), и вам нужно получить всё самое необходимое для разработки на CL, причём не просто так - а согласно современному состоянию развития open-source инструментария для работы с Common Lisp'ом. Но вы не хотите совершать "лишних телодвижений" (я вот например, их о-о-очень не люблю делать), чтобы получить всё необходимое и обязательно сразу. Если вы пользуетесь lisp-dev-tools, то (даже в каком-нибудь jail'e с кучей ограничений) вы делаете так:

git clone https://github.com/LinkFly/lisp-dev-tools.git
cd lisp-dev-tools
./provide-slime

... И получаете ВСЁ!
Но при этом есть возможность тонко настроить версии инструментов. Например, мне в ближайшем будущем точно понадобится фича в emacs 24-ой версии, позволяющая установливать дополнительные пакеты для Emacs, устанавливаемые в духе пакетной системы дистрибутивов Linux'a и пакетной системы в Quicklisp. Я тупо наугад подобрал версию Emacs'a которая у меня успешно загрузилась/скомпилировалась и установилась внутрь lisp-dev-tools (в репозитории используемого мной дистрибутива 24-ой версии соотв. не оказалось). Номер версии я поменял в lisp-dev-tools/conf/tools.conf.

Кроме того, я иногда заглядываю в исходники sbcl'a и в этом случае, мне недостаточно простой (и быстрой) установки бинарной сборки - в этом случае, я дополнительно делаю:

./rebuild-lisp.sh

Собственно и всё. Параметры по умолчанию, безусловно можно настроить как душе угодно.

Далее, время от времени, по некоторым причинам мне нужно использовать другую лисп-систему и/или другую версию используемой лисп-системы и всё решается мгновенно, например:

./change-lisp ecl
./change-version 12.7.1

В любой момент, я временно могу запустить, например тот же SLIME с другой Лисп-системой:

LISP=sbcl ./run-slime

И так далее и тому подобное ...

А теперь у проекта появился, скажем так: "свой дом" в виде Redmine'овском сервиса по управлению проектами:

http://linkfly.ru:8201/redmine/projects/lisp-dev-tools

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

Репозиторий на github.com: https://github.com/LinkFly/lisp-dev-tools
linkpost comment

Проект LISP-DEV-TOOLS. Новая версия - 0.0.4. [May. 20th, 2012|10:30 pm]
[Tags|, , , , , , , , ]

    Новая версия проекта lisp-dev-tools примечательна доведением подсистемы тестирования до очень серьёзного уровня - теперь запустив автоматическое тестирование (выполнив ./tests/run-tests.sh) есть возможность получить однозначный и качественный ответ: готова ли система для использования всего предоставляемого функционала. Впрочем, можно теперь исключать не представляющие интереса тесты или запускать только конкретные тесты (см. описание параметров --exclude и --only в конце README). Кроме того, система после тестов возвращается в своё исходное состояние! Многочисленные сообщения о содержимом каталогов и их размере до и после запуска тестов - помогут проконтролировать корректность возвращения в состояние, которое было до запуска тестов. Таким образом, до использования каких-либо возможностей системы, можно предварительно протестировать качество предоставления этих возможностей.

    И ещё одно важное добавление: к списку официально поддерживаемых дистрибутивов, прибавился ещё один, весьма актуальный на сегодняшний день - Ubuntu Server 12.04/x86-64. Правда последний релиз лисп-системы CMUCL 20c, по неизвестным пока причинам отказывается собираться на этой системе. Тестирование всего остального - показывает положительный результат, тесты при этом запускаются таким образом: ./tests/run-tests.sh --exclude=CMUCL
 
Новое в версии 0.0.4 (по сравнению с версией 0.0.3):
-----------------------------------------------------
1. Добавлена поддержка дистрибутива Ubuntu Server 12.04/x86-64. В нём сейчас всё работает кроме компиляции лисп-системы CMUCL.
2. Добавлено тестирование команды ./rebuild-lisp для SBCL (по умолчанию эта система устанавливается из бинарников).
3. Исправлена ошибка с тестом постройки и установки Emacs - если до тестов его не было, то тестируется команда ./remove-emacs, которая соответственно его удаляет.
4. Добавлен ключ --exclude для команды, запускающей тесты ./run-tests.sh, позволяющий указать что необходимо исключить из тестов.
5. Добавлен ключ --only для команды, запускающей тесты ./run-tests.sh. Если значение ключа (пример: --only="SBCL WGET") задано, то тесты, не включенные в это значение - запускаться не будут.
6. Реализовано полное восстановление системы после запуска тестов.
7. Добавлен вывод содержания директорий и их размеров (а также общего размера) перед началом тестов и после них (для того, чтобы в случае ошибки возврата системы в исходное состояние можно было найти источник несоответствия).

    ... а также:

8. Добавлены в проект (зафиксированы с помощью файла .gitignore) некоторые пустые директории, которые всё равно создаются во время работы проекта (для определённости).
9. Обновлен список задач и план проекта.
10. Большой рефакторинг кода тестов.
11. Некоторые изменения для будущей поддержки BusyBox.
12. Исправление постройки XCL на Ubuntu разные версий.
13. Обновление некоторых URL-ов для успешной загрузки поддерживающего софта.
14. Исправлена команда постройки CCL.
15. Добавлены зависимости в параметры CCL для успешной постройки и перестройки (building, rebuilding).
16. Исправлены другие ошибки.
------------------------------------------------------------------------------
link2 comments|post comment

Проект LISP-DEV-TOOLS. Анонс следующей версии 0.0.4. [May. 19th, 2012|06:57 pm]
[Tags|, , , , , , , , ]

Ближайшие дни будет оформлен следующий релиз проекта lisp-dev-tools.
Основные новые возможности проекта в поддержки ещё одного дистрибутива и усовершенствованное автоматическое тестирование. Ещё один поддерживаемый дистрибутив: Ubuntu Server 12.04 (x86-64). В части тестов: добавляется тестирование команды ./rebuild-lisp (для SBCL) и два параметра --exclude и --only для исключения некоторых тестов и соответственно для запуска конкретных тестов. А также полное восстановления состояние (и соответствующая проверка) после выполнения тестов.
linkpost comment

Проект LISP-DEV-TOOLS. Новая версия - 0.0.3. [Apr. 19th, 2012|02:14 pm]
[Tags|, , , , , , , , ]

    Можно смело утверждать что новая версия проекта lisp-dev-tools стала гораздо более зрелой чем предыдущая. Особенно хочется отметить появление двух серьёзных возможностей: это появление обобщённого интерфейса использования (параметров командной строки --common-load --common-eval и --common-quit) и появление автоматических тестов (запукаются скриптом tests/run-tests.sh). Если в дистрибутиве, не входящим в число поддерживаемых, все тесты успешно пройдены - проект вполне можно рекомендовать к использованию в этом дистрибутиве! Если же тесты провалились, но вам нужно использовать проект в конкретном дистрибутиве - просто опишите программно-аппаратную среду (процессор, память, архитектуру, версию ядра, название/тип/версию дистрибутива ...) и вышлите мне результаты тестов из папки tests/tests-results/

Новое в версии 0.0.3 (по сравнению с версией 0.0.2):
-----------------------------------------------------
1. Добавлено автоматическое тестирование, запускается скриптом tests/run-tests.sh (рекомендуется запускать перед промышленной эксплуатацией).
2. Сделан общий интерфейс запуска для всех (за исключением XCL и WCL - они не поддерживают параметры
   запуска) лисп-систем. Он представлен тремя ключами:
     --common-load <файл_с_лисп_кодом>
     --common-eval <заключенный_в_кавычки_лисп-код>
     --common-quit
3. Осуществлено разделение на современные (modern), слишком сырые/молодые (young) лисп-системы и
    устаревшие (obsolete). Это отображено в параметрах запуска скриптов ./get-all-lisps и ./provide-all-lisps
4. Налажена работа с символическими ссылками (для управления поддерживающис софтом) теперь изменение в поддерживающих инструментах не влиют на git.
5. Удалены некоторые уже не нужные файлы.
6. Обновлён и изменён TODO: скорректировано состояние выполненных и назначенных задач, а также изменён и скорректирован план развития проекта.
7. Начаты работы по отладке работы проекта в дистрибутиве Arch Linux.
8. Скорректированы некоторые сообщения системы.
9. Удалён баг проявляющийся при постройке XCL на Ubuntu 11.04 x86_64.
10. Исправлена загрузка JRE среды для системы ABCL.
11. Устранен баг в загрузке архивов с лисп-системами.
12. Изменена версия gawk - для устранение ошибки в обеспечении лисп-системы GCL.
13. Сглаживание различий в выводе программы "file", сейчас в проверке на символическую ссылку с помощью "readlink"
14. Устранены также другие ошибки.
------------------------------------------------------------------------------
linkpost comment

Проект LISP-DEV-TOOLS. Новая версия - 0.0.2. [Feb. 28th, 2012|12:27 am]
[Tags|, , , , , , , , ]

   С радостью сообщаю о выходе новой версии проекта lisp-dev-tools анонс которого был сделан в предыдущем посте. Эта версия хоть и имеет не слишком пафосный номер, тем не менее очень серьёзно повзрослела по сравнению с предыдущей версией и неуклонно движется к мажорному релизу проекта. Отловлены неожиданные сюрпризы (что особенно важно для новичков), в смысле исправлены баги и устранены найденные неоднозначности, возникающие при работе с системой. Особенно хочется отметить добавление целых трёх поддерживаемых дистрибутивов Linux и появление совершенно прозрачной (и корректно работающей) проброске параметров к запускаемой лисп-системе, с возможностью посмотреть сформированную командную строку без её выполнения. А также возможность её сохранить для анализа и/или использования в дальнейшем (можно её скопировать и когда необходимо вставить в шелл или скрипт и выполнить, получив аналогичный запуск системы). Ниже перечислены конкретные изменения.

Новое в версии 0.0.2 (по сравнению с версией 0.0.1):
1. Создан и "закреплён" список задач и примерный план добавления возможностей в следующие версии.
2. Исправлена корректировка файла Makefile для постройки XCL.
3. Добавлена поддержка 3-ёх дистрибутивов Linux:
           - Ubuntu Server 10.10/x86-64
           - Debian 6.0.4/x86-64
           - Gentoo (из livedvd-amd64-multilib-2012)
4. Добавлена полноценная поддержка интерпретатора bash (ранее корректная обработка скриптов производилась только интерпретатором dash).
5. Удалена загрузка и компиляция софта от которого зависит поддерживающий софт, если он уже в наличии.
6. Скорректированы зависимости для постройки лисп-систем.
7. Устранена ошибка появляющаяся при перекомпиляции SBCL через ./rebuild-lisp, появляющаяся из-за попыток скрипта сборки лисп-системы - прочитать .git директорию.
8. Устранена ошибка поиска библиотеки libgmp.so.3 для постройки и запуска WCL.
9. Добавлена возможность полностью корректного проброса параметров к текущей лисп-системе, указываемых при запуске ./run-lisp <множество параметров>.
10. Добавлена специальная переменная GET_CMD_P, которая при установке в значение "yes" позволяет получить полностью корректную командную строку с которой запускается лисп-система (эту коммандную строку можно скопировать, вставить в шелл, выполнить и получить тот же результат который был бы если при выполнении "./run-lisp <какие-то параметры>", переменная GET_CMD_P была бы не равна "yes".
11. К значение переменной XDG_CONFIG_DIRS при запуске лисп-системы (через ./run-lisp ...) добавляется полный путь вида "<директория_с_lisp-dev-tools>/conf".
12. Появляющиеся сообщения системы стали более лаконичными и читабельными.
13. Для успешного использования рантайм опций лисп-систем, опции загрузки Quicklisp перенесены в конец формируемой коммандной строки.
14. Добавлена таблица в формате CSV - status.csv. В ней отображено текущее состояние поддержки lisp-dev-tools в различных дистрибутивах (имеется в виду стабильная и ожидаемая работа, без неожиданных сюрпризов).
15. Множество баг-фиксов связанных с обеспечением (загрузкой, постройкой и инсталяцией в lisp-dev-tools, при необходимости) поддерживающего софта.
16. Исправление множества багов, связанных с обеспечением и выполнением лисп-систем (в том числе, связанные с различием в дистрибутивах).

linkpost comment

Проект LISP-DEV-TOOLS. Анонс следующей версии 0.0.2. [Feb. 22nd, 2012|12:56 pm]
[Tags|, , , , , , , , ]

   Ближайшие дни оформлю следующий минорный релиз проекта lisp-dev-tools. Проект был представлен в посте Заповедник для Лисп'ов - проект LISP-DEV-TOOLS. Несмотря на весьма скромный номер версии проект серьёзно развился:
 - оттестирована работа на большем кол-ве дистрибутивов (добавились gentoo, fedora, debian 6.0.4)
 - заведена таблица в формате csv для учёта результатов тестирования работы проекта на разных дистрибутивах.
 - сделано и отлажено совершенно прозрачное "прокидывание" параметров указываемых при запуске скрипта run-lisp а также получение строки запуска текущей лисп-системы (которую можно скопировать, вставить в консоль и запустить, т.е. выводимая строка запуска в точности соотв. реально используемой строке запуска)
- уточнение и расширение инструкции по использованию и добавление дополнительных примечаний (в README, README_ru)
- повышена надёжность системы - выявлены и устранены неожиданные сюрпризы связанные с нюансами работы дистрибутивов.
- устранено множество багов и неоднозначностей в работе системы.
- сообщение системы стали более подробными и единообразными
- оформлен список задач проекта (TODO).
- и другое (подробнее - при выпуске новой версии).
linkpost comment

Гипервизор на голом железе ESXi - следующее поколение виртуализации. [Jan. 23rd, 2012|05:09 pm]
[Tags|, , , , , , , ]

Содержание:

1. Введение.
2. Некоторые возможности ESXi.
3. Управление пользователями и полномочиями.
4. Скриншоты.
5. Заключение.
6. Дополнение.
7. Ссылки.

---------------------------------------

1. Введение.

    Вначале пара слов о гипервизорах вообще и о понятии "на голом железе" в частности.

    Гипервизор это система управления виртуальными машинам. Как ни странно, встречаются до сих пор люди, незнакомые с понятием "виртуализация". Так что поясню, на всякий случай: виртуальная машина это модель реального компьютера с которой вы можете работать как с настоящим компьютером - ставить ОС, на неё программы и соотв. заходить на сайты, смотреть фильмы и даже играть в игры и прочее-прочее. Чувствую, обязательно следует упомянуть о снэпшотах, ибо был прецедент: в одной, казалось бы, серьёзной фирме, занимающейся разработкой банковского софта - использовалась система виртуализации VMware Workstation без задействования технологии снэпшотов вообще. А ведь это основное преимущество, которое предоставляют системы виртуализации! Итак, снэпшоты (snapshots) это сохранённые (причём идеально сохранённые) состояния виртуальной машины. Эти состояния, как не сложно догадаться, можно в любой момент восстановить. В VMware Workstation и тем более в ESXi можно создавать целые иерархии сохранённых состояний и возвращаться к ним в любой момент времени. Этакая машина времени - совершенно незаменимая вещь для разработчика и исследователя.

    Понятие "голое железо" (bare metal). В нашем контексте, это понятие означает что софт, о котором идёт речь, выполняется без какой-либо предустановленной операционной системы. Конкретно ESXi, представляет собой мини-операционную систему, "заточенную" для выполнение виртуальных машин и для управления ими. То есть это тонкий слой между реальными, физическими ресурсами и виртуальными машинами (и вообще виртуальными объектами, например виртуальными сетями). Зачем это нужно? Да так сразу и не расскажешь ... Ну в первую очередь, конечно же для получения преимуществ от упомянутых снэпшотов. Во вторых, для балансировки нагрузки. В третьих для упрощения администрирования ресурсов. В четвёртых для реализации более совершенной информационной безопасности. И это только первое что пришло ну ум. Итак, некоторые "фичи":
    - сохранение/восстановление состояний
    - балансировка нагрузки
    - упрощеное администрирование
    - безопасность
    
2. Некоторые возможности ESXi.

    Вот этот текст, кстати сказать, я набираю в Emacs'e, запущенном на рабочей виртуалке (которая, разумеется, на сервере с ESXi). Главный профит на данный момент лично для меня: в любой момент, не делая никаких лишних телодвижений (вообще), я могу сорваться и поехать куда-либо по делам захватив с собой ноутбук (и Yota'у для интернета). И далее, смогу продолжить работу в любом месте, где есть покрытие связи, предоставляемой Yota'ой (а оно есть практически по всей Москве). Я даже виртуалку в Suspend-режим переводить не буду! Кроме того, мне ведь могут понадобиться в процессе и другие виртуальные машины. Например на каком-либо этапе тестирования разрабатываемого софта, необходимо проверить работу в реализуемой виртуальными машинами тестовое среде (одной из). И самое главное: мне ведь необходимо время от времени корректировать тестовые среды, т.е. создавать/изменять виртуальные машины и их состояния(snapshots). В простых случаях, конечно, можно обойтись и другими решениями вроде использования удалённых рабочих столов и обычных не "bare metal" (не на голом железе) системами виртуализации. Но в случае когда кол-во информационных объектов и ресурсов, с которыми ведётся работа, велико - требуется более мощное решение.

    Итак, некоторые полезные фичи:
1) Пул ресурсов. Есть возможность создавать некие группы ресурсов (пулы ресурсов) и задавать параметры использования физических ресурсов сразу для всей группы. К тому же, эти группы можно вкладывать друг в друга и таким образом строить иерархию из групп и объектов виртуализации.
2) Настройка ограничений. Тонко настраиваемые ограничения на использование физических ресурсов. Любопытно: настройка ресурсов вплоть до указания конкретной тактовой частоты для виртуальных процессоров.
3) Резервирование ресурсов. Резервирование физических ресурсов для виртуальных машин и пулов ресурсов.
4) Управление доступом. Имеется весьма гибкая подсистема управления пользователями, группами, ролями, привилегиями и разрешениями.

    
3. Управление пользователями и полномочиями.

    Вот на управлении доступом остановимся по подробней. Эта подсистема, должен отметить, чрезвычайно гибкая и лаконичная. Вкратце, она состоит из следующих элементов:
        1) Пользователи. Могут входить в несколько групп.
    2) Группы. Содержат несколько пользователей.
    3) Роли. Содержат набор привилегий.
    4) Привилегии. Установленные привилегии, позволяют определённые действия в системе.
    5) Разрешения. Задаются для конкретного объекта (виртуальной машины или пула ресурсов) и состоят из пар пользователь_или_группа/роль.

    В общем схема такая:
        - создаём необходимых пользователей (вероятно, представляющих реальные личности, которых предполагается допустить к взаимодействию с ESXi), расфасовываем их по группам (например: admins, developers, vm-providers и т.д.).
        - безотносительно к пользователям и группам, создаём некоторое кол-во ролей - они в сущности представляют собой набор определённых привелегий (то есть набор допусков к определённым действиям в системе).
        - для конкретных элементов виртуализации, а именно для виртуальных машин и пулов ресурсов (содержащих виртуальные машины и другие пулы) назначаем разрешения. Под назначением разрешения здесь подразумевается добавление пользователей и групп а ассоциирование их (каждого пользователя и каждой группы) с определёнными ролями, причём каждый пользователь или группа может иметь только одну роль (считаю это разумный баланс между гибкостью и простотой использования).

4. Скриншоты.

Иерархия ресурсов и экран виртуальной машины:


Редактирование разрешений:


5. Заключение.


    Очевидно, что этой технологии самое место в бизнес-среде как либо связанной с IT (разумеется в случае, если требуется нечто большее чем заполнение данными электронной таблицы и печати документов в Word'e). Особенно это технология проявит себя в области разработки (и эксплуатации) промышленного software, так как позволяет эффективно управлять состояниями вычислительной среды, ресурсами и сократить разрыв между тестовой и продакшен (production) средами выполнения. Считаю, что овладение этой технологией и внедрение туда, где подобное пока ещё не используется - даст мощный технологический рывок вперёд.

6. Дополнение.

    И напоследок напишу ещё пару слов о некоторых "чудесах", предоставляемых платными вариантами гипервизора:

    VMotion - эта технология позволяет осуществлять "горячую миграцию" (Live Migration) виртуальных машин с одного физического хоста на другой, то есть перемещение виртуальных машин без их выключения и потери сетевых соединений.
    
    DRS (Distributed Resource Scheduler) - эта технология в сущности развитие идеи горячей миграции: контролируя работу, так называемых, DRS-кластеров (это неявное объединение реальных аппаратных ресурсов - физические хосты можно объединять в эти самые DRS-кластеры), она осуществляет автоматическое перемещение виртуальных машин на менее загруженных физические хосты, соответственно без остановки и без потери сетевых соеденений.

    HA (High Availability) - технология высокой доступности, в случае выхода из строя физического хоста, обеспечивает автоматический запуск аналогичных виртуальных машин на другом хосте.

    FT (Fault Tolerance) - технология отказоустойчивости. Представляет собой дальнейшее развитие идеи "высокой доступности (High Availability): На физическом хосте отличного от того на котором выполняется виртуальная машина, эта технология поддерживает точную зеркальную копию этой виртульной машины. Всё что происходит в оригинале, выполняется и в копии. Как только, выйдет из строя оригинальная виртульная машина (например из-за поломки физического хоста) - зеркальная копия подхватит её работу, полностью сохранив контекст выполнения и сетевые соединения (вместе с их состояниями).

    VCB (VMware Consolidated Backup) - это набор инструментальных средств и интерфейсов, обеспечивающих резервное копирование.

    vShild Zones - технология управления сетевым траффиком, проходящим через виртуальные коммутаторы. Позволяет применять политики безопасности для групп виртуальных машин. При осуществлении горячей миграции (посредством технологии vMotion и соотв. использующей её DRS) виртульных машин между физическими хостами - эти политики безопасности сохраняются.

    vCenter Orchestrator - это инструментарий автоматизации рабочих процессов, связанных с управлением гипервизорами, виртуальными объектами и перечисленными технологиями (на его основе был создан отдельный продукт - VMware vCenter Lifecycle Manager.
 
7. Ссылки.

1. Зарегистрироваться и скачать ESXi можно здесь.
2. Сайт корпорации разработчика: http://www.vmware.com/ru/
3. VMware ESXi Server - основа для центра данных.
4. vMind.ru - серверная виртуализация.
5. vmgu.ru.
link2 comments|post comment

Устройство ASDF. Оглавление. [Dec. 30th, 2011|01:25 am]
[Tags|, , , , ]


1. Предисловие.
2. Архитектура.
3. Подсистема определения. DEFSYSTEM.
4. Подсистема определения. PARSE-COMPONENT-FORM.
5. Подсистема определения. UNION-OF-DEPENDENCIES.
6. Подсистема загрузки. OPERATE.
7. Подсистема загрузки. Подсистема планирования операций. TRAVERSE.
8. Подсистема загрузки. Подсистема планирования операций. DO-TRAVERSE.
9. Подсистема загрузки. Подсистема планирования операций. DO-DEP.
10. Подсистема загрузки. MAKE-SUB-OPERATION.
11. Подсистема загрузки. PERFORM-PLAN и PERFORM-WITH-RESTARTS
12. Подсистема загрузки. Подсистема выполнения операций. PERFORM.
13. Подсистема загрузки. FIND-COMPONENT.
14. Подсистема поиска. FIND-SYSTEM.
15. Подсистема поиска. COMPUTE-SOURCE-REGISTRY.
16. Подсистема поиска. RESOLVE-LOCATION
17. Подсистема определения путей. INPUT-FILES, OUTPUT-FILES и COMPONENT-PATHNAME.
18. Подсистема определения путей. APPLY-OUTPUT-TRANSLATIONS.
19. Подсистема определения путей. COMPUTE-OUTPUT-TRANSLATIONS.
20. Эпилог.
link5 comments|post comment

Устройство ASDF. Эпилог. [Dec. 30th, 2011|12:52 am]
[Tags|, , , , ]

Это 20-ая статья цикла.
Первая статья.
Архитектура ASDF.
Предыдущая статья.

    Вот и подошёл к концу этот, достаточно объёмный, цикл статей. Главное, что я хотел бы подчеркнуть - этот цикл представляет собой ТВОРЧЕСКИЙ ЭКСПЕРИМЕНТ! Причём эксперимент достаточно длительный и доведённый до конца. Один из смыслов этого эксперимента в том, чтобы разобравшись в устройстве фундаментальной для инфраструктуры языка COMMON LISP, библиотеке, с 10-летней (!) историей развития (не считая её предшественицы MK-DEFSYSTEM) - попытаться описать её строение и функционирование в максимально читабельном (и понятном не только законченым гикам) виде. Задача весьма, надо сказать, не простая. Решить её идеально, уверен, просто невозможно. У потенциальных читателей может быть совершенно разный уровень подготовки, а значит для одних подробное "разжёвывание" покажется скучным, а для других и такое изложение покажется слишком трудным для восприятия. В общем, пришлось проявить интуицию и выбрать некий баланс, ориентируясь на потенциального читателя. Этого читателя я представляю себе как либо очень не обычного индивида с совершенно гипертрофированной любознательностью и жгучим желанием знать как всё устроено изнутри, либо редкого высоко-квалифицированного специалиста хорошо знающего ASDF и по каким-либо причинам желающего узнать её внутреннее устройство, например для написания ASDF-расширений (хотя один тип читателя, не исключает другого, конечно же). Я надеюсь что наличие данного труда сильно помогло и ускорило изучение внутреннего устройства этой фундаментальной и чрезвычайно гибкой системы.

    Увлекательных исследований и интересных проектов!

--------------------------------------
Конец цикла.
link1 comment|post comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]