Многие из нас собирали компьютер сами, из комплектующих. Дело не сложное, соединить с десяток шлейфов, да завинтить столько же винтиков. Но мало кто сталкивался с самостоятельной сборкой серверов, причем не обычных а в промышленном формате под стойку 19 дюймов. В этом небольшом обзоре я опишу свой опыт сборки такого сервера, постараюсь показать что это не сложно, и остановлюсь на главных моментах, на что нужно смотреть. На написание этого обзора меня толкнуло то, что информации о сборке rack 19’ серверов в рунете очень мало, и приходилось её искать буквально по крупицам.
Расскажу о новой версии самого популярного загрузчика. Она появилась опционально в стабильном Debian 5.0 Lenny, а значит можно сделать вывод о некоторой стабильности. К сожалению, по словам самих разработчиков, на документацию времени нет, поэтому всё пока работает методом тыка, логики и комментариев в коде :)
Кстати, о версиях. Первой и пока основной считается ветка 0.9x(которую уже окрестили GRUB Legacy), а версии 1.хх официально называются GRUB 2.
Итак, чем же отличается эта версия от старого доброго дефолтного загрузчика всего и вся? На официальном сайте сказано примерно так:
Поддержка скриптов, в частности циклов, условий, переменных и функций
Графический интерфейс
Динамическая подгрузка модулей, позволяющая расширять функционал не на этапе сборки, а прямо во время выполнения
Переносимость на разные архитектуры
Интернационализация
Настоящее управление памятью, делающее GNU GRUB более гибким
Модульный, иерархичный, объектно-ориентированный фреймворк для файловых систем, файлов, устройств, дисководов, терминалов, команд, таблиц разделов и загрузчиков операционных систем
Кроссплатформенная установка, позволяющая установить GRUB с другой архитектуры
Безопасный режим для трудных случаев. Stage 1.5 ликвидирована
Исправление ошибок, которые были допущены при проектировании GRUB Legacy, и не могли быть исправлены из-за требований обратной совместимости. Например, способ нумерации разделов
Захотелось мне получать прогноз погоды на завтра по смс. Бесплатно, конечно :) Причём захотелось давно, был написан скрипт, который успешно работал, но некоторое время назад перестал (сменился формат на сайте). Решил переписать скрипт заново, заодно и сменить «поставщика прогнозов» на всем известного Gismeteo. Заранее оговорюсь, что скрипт, может, и не само совершенство, зато в некотором роде универсальный (предусмотрен вариант отправки транслитом) и, что самое главное, рабочий :)
Последнее время появляется все больше и больше различных дополнений для Firebug'a. Решил сделать краткое описание для этих плагинов. Здесь были описаны только 4 плагина.
Постараюсь описать все известные плагины для Firebug'a Статья на украинском языке
Хранение иерархических данных (или попросту — деревьев) в реляционных структурах задача довольно нетривиальная и вызывает некоторые проблемы, когда разработчики сталкиваются с подобной задачей.
В первую очередь, это связано с тем, что реляционные базы не приспособлены к хранению иерархических структур (как, например, XML-файлы), структура реляционных таблиц представляет из себя простые списки. Иерархические же данные имеют связь «родитель-наследники», которая не реализована в реляционной структуре.
Тем не менее, задача «хранить деревья в базе данных» рано или поздно возникает перед любым разработчиком.
Ниже мы подробно рассмотрим, какие существуют подходы в организации хранения деревьев в реляционных БД, а также рассмотрим инструментарий, который нам предоставляет ORM Doctrine для работы с такими структурами.