четверг, сентября 17, 2009

Клонирование виртуальных машин в VirtualBox

При использовании VirtualBox бывает необходимо сделать копию исходной ВМ чтобы перенести ее на другой компьютер или использовать на этом же. Для клонирования недостаточно просто скопировать контейнер ВМ, если она будет запускаться там же где и исходная ВМ, поскольку у них будут одинаковые идентификаторы UUID. Чтобы у клонированной ВМ был другой UUID, надо использовать для клонирования команду:

VBoxManage clonehd originalvm clonevm

где originalvm это исходная ВМ, а clonevm это копия

Также можно просто скопировать исходную ВМ а затем сменить у нее UUID c помощью команды:

VBoxManage internalcommands sethduuid clonevm

среда, сентября 09, 2009

Новый планировщик для ядра Linux

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

среда, августа 05, 2009

Netbeans, Mercurial и кодировка UTF8

Мои проекты в Java используют кодировку исходных файлов UTF8 (но бывает и 1251). Поэтому когда я поместил очередной проект под контроль версий Mercurial, а затем через некоторое время работы с проектом, посмотрел историю проекта, то был неприятно удивлен, увидев вместо русских комментариев крякозябры. Получилось что введенный в UTF8 текст комментариев не отображался правильно. Причем в свойствах проекта была установлена кодировка UTF8. Однако решение все же нашлось: надо при запуске Netbeans явно указывать кодировку UTF8. Сделать это можно с помощью конфигурационного файла в %Каталог установки Netbeans%\etc\netbeans.conf. В нем добавить к параметру netbeans_default_options строку "-J-Dfile.encoding=UTF-8". Тогда Netbeans будет принудительно отображать не только исходники, но и прочие текстовые файлы с кодировкой UTF8.

воскресенье, июля 05, 2009

вторник, марта 03, 2009

Один хорошо, но практика дает три

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

среда, ноября 05, 2008

Вива Обама!

Барак Обама одержал уверенную победу на президентских выборах в США. Порадуемся за американцев и будем надеятся что отношения между нашими странами будут более позитивными.

пятница, октября 03, 2008

Строим raid-0 или ускоряем диски в Linux

Иногда хочется чтобы диски работали быстрее, особенно в играх. Для того чтобы ускорить быстродействие дисковой подсистемы, можно построить на базе двух дисковых разделов разных винчестеров raid-0 c чередованием. Такой способ должен дать существенный прирост скорости дисковых операций, однако с т.з. надежности это плохой вариант, и об этом следует помнить. Однако где можно применить raid-0 ? На домашней системе это конечно же игры. Если же раздел raid-0 сломается из-за сбоя одного из дисков, то это совсем не страшно, игру можно в конце концов и переустановить. Кроме того raid-0 особенно может подойти при размещении на нем тестовых виртуальных машин, поскольку такие системы и так не очень быстрые, то raid-0 поможет ускорить работу с виртуальными машинами.

Не следует использовать raid-0 для хранения важных документов, фотографий и подобной информации, которая представляет ценность для ее владельца, по причине низкой надежности raid-0.

Итак, приступим. Для построения raid-0 воспользуемся инструментом mdadm. Вначале следует выделить на каждом из винчестеров по одному разделу одинакового размера, сделать это можно с помощью команды fdisk или графического интерфейса, смотря что удобнее. Как сделать раздел с помощью fdisk можно почитать в документации к этой команде. Пусть теперь скажем имеется два раздела на разных винчестерах: /dev/hdb1 и /dev/sdb1 оба одинакового размера например 80Gb.
Создание массива c чередованием (именно он даст выигрыш в скорости) будет выглядеть так:

mdadm --create /dev/md0 --level=stripe --raid-devices=2 /dev/hdb1 /dev/sdb1

Запуск команды следует делать от имени пользователя root.
В результате мы будем иметь устройство /dev/md0 данные в котором на самом деле поочередно находятся в указанных выше устройствах.

Далее, надо создать файловую систему на новом устройстве. Например создадим reiserfs:

mkreiserfs /dev/md0
(из других фс можно порекомендовать например ext3)

Теперь создаем точку монтирования (назовем ее raidfs) в /mnt:

mkdir /mnt/raidfs

И монтируем туда устройство:

mount /dev/md0 /mnt/raidfs

Не забываем записать новую ФС в файл /etc/fstab чтобы она автоматически монтировалась при каждой загрузке:

/dev/md0 /mnt/raidfs reiserfs defaults 0 0

Быстродействие полученной ФС будет больше, чем такой же ФС но на обычном разделе, однако важные данные хранить на ней не стоит.

пятница, сентября 05, 2008

How do I test whether Java is working on my computer?

Проверить установленные на клиенте версии JavaRuntimeEnvironment можно online:
How do I test whether Java is working on my computer?

вторник, августа 19, 2008

Защищаем данные на оптических дисках

Иногда может иметь место ситуация когда dvd или cd диск с данными (например с фотографиями) перестает читаться. На помощь могут придти программы восстановления информации, которые позволяют прочитать неповрежденные области диска и восстановить часть информации. Чего не могут сделать такие программы, так это полностью восстановить информацию с поврежденных участков диска. Т.е. если диск поврежден, то часть информации на нем будет потеряна. Для исключения подобных ситуаций я вижу по крайней мере два способа резервирования:

1. Полное дублирование носителя
2. Добавление кодов коррекции ошибок с помощью специального алгоритма

Если с первым способом все понятно: сделали еще одну копию dvd и сохранили ее подальше от первой копии (не стоит держать все яйца в одной корзине!), то второй способ рассмотрю подробнее.

С помощью кодов коррекции ошибок, которые получаются из защищаемых данных, можно восстановить информацию которая находилась на поврежденных участках диска. Используем для защиты данных на DVD или CD программу dvdisaster. Защитить можно не только вновь создаваемые диски, но и те которые были созданы некоторое время назад. Принцип работы dvdisaster такой: читается носитель с данными, с помощью специального алгоритма создаются коды коррекции ошибок, эти коды сохраняются отдельно либо вместе (в ISO образ) с защищаемыми данными. Впоследствии при обнаружении повреждений на защищенном диске, с помощью dvdisaster и сохраненных кодов коррекции ошибок производится восстановление поврежденных данных. На мой взгляд коды коррекции ошибок все же лучше сохранять отдельно, например на винчестере, поскольку их объем небольшой, всего 14% от объема защищаемой информации при настройках по умолчанию.

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

пятница, августа 15, 2008

Не мог не высказаться

Западные страны это страны двойных стандартов. Это мы все увидели на примере ситуации, когда Грузия напала на российских миротворцев и мирных жителей Южной Осетии. Информационная война, развязанная после этого США и некоторыми европейскими государствами, перевернула все с ног на голову.

Как все было на самом деле

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

Сейчас нет сомнений в том что нападение Грузии на Южную Осетию было сделано с попустительства западных покровителей Грузии.

пятница, августа 01, 2008

Mars Reconnaissance Orbiter сфотографировал лавину на Марсе

Камеры высокого разрешения станции Mars Reconnaissance Orbiter позволили зафиксировать лавину на Марсе. Фотографии высокого качества можно посмотреть здесь Как видно из фотографий, представлено несколько последовательных увеличений исходного фото (слева) с участком где сходит лавина.
Тем временем исследовательская станция Phoenix обнаружила воду в марсианском грунте.

четверг, июля 31, 2008

PhotoRec - CGSecurity

PhotoRec - программа для восстановления потерянных данных. Работает с носителями минуя файловую систему. OpenSource.
PhotoRec - CGSecurity

вторник, июля 22, 2008

Неплохая идея

Недавно прочитал в одном из руководств по ООП: не использовать код неабстрактных классов для наследования. Действительно, при изменении кода в неабстрактном классе может повлиять на поведение другого класса. Иногда такое проектирование помогает избегать ошибок.

воскресенье, июня 22, 2008

Россия - вперед!

Ура, наша футбольная команда вышла в полуфинал чемпионата Европы, обыграв в дополнительное время сборную Голландии со счетом 3:1
Россия - вперед!

вторник, июня 17, 2008

Java-applet - где они были когда не было flash?

Вот это Java-applet с 3D анимацией, размер примерно 200 Кб. Не хуже чем на flash. Восхитился.

понедельник, мая 19, 2008

понедельник, мая 12, 2008

Дизайн блога

Сменил дизайн блога. Облако меток снова пришлось добавлять вручную, редактируя шаблон.

понедельник, апреля 21, 2008

Xubuntu - дистрибутив Ubuntu для маломощных компов

Качаем отсюда xubuntu русифицирован, специально собран для компов с малым объемом памяти и слабыми процессорами.

вторник, апреля 01, 2008

GridSQL: распределенная СУБД на основе узлов PostgreSQL

Довольно интересное решение GridSQL открылось недавно для СУБД PostgreSQL, которое позоволяет использовать кластеры PostgreSQL в качестве системы распределенной базы данных. Вот краткая выдержка из пресс-релиза от 25 марта:

GridSQL is fully integrated with EnterpriseDB's Postgres Plus and Postgres Plus Advanced Server databases and also works with the community-based PostgreSQL project. Using GridSQL, database performance scales nearly linearly as additional servers are added to the grid. To simplify management, GridSQL includes a robust suite of graphical management and monitoring tools that enable DBAs to monitor the entire grid from a single console.

Because GridSQL uses true grid technology that distributes data and shares computing resources at the database layer, existing database applications run unchanged and application developers can create new applications as if they were accessing a single database on a single server. The complexity of distributing a query to all the databases in a grid, gathering and collating the resulting information, and returning a single response to the requester is transparently handled by GridSQL.

К тому же это решение выпущено под лицензией GPL. Что дает использование GridSQL ? Прежде всего линейный рост производительности при добавлении новых узлов сетки. Кроме того не требуется переписывание приложений, для них использование технологии прозрачное. Очень заманчивое решение, учитывая то что PostgreSQL распространяется по лицензии BSD (не требует лицензионных отчислений).
Не совсем понятно как правда решается размещение новых узлов для существующей базы перед использованием GridSQL, наверняка процесс требует первоначальной настройки структуры базы.

PS поскольку сегодня 1 апреля, скажу что это не розыгрыш