31 декабря 2010 г.

Matthew Ryan & Hammock - Like New Year's Day

Сказ о потерянных раскладках

Хочу рассказать я вам о некоторых проблемах, возникших при очередном обновлении ОС Gentoo Linux. Только две упомяну, остальные не столь интересны были - да и не упомнишь всего. Итак, начну с главного, а именно - с ядра операционной системы.


Далее в тексте упоминается одно из самых сильных и, вместе с тем, опасных заклинаний - команда su. Даёт эта команда нам власть над миром нашим, пусть и виртуальным. А большая власть - большой осторожности и ответственности требует.


1. Давно я собирался обновить систему на ноуте и на ПК. На дворе уж год две тысячи десятый заканчивается, а я всё со старым ядром 2.6.32 работаю... Не дело это. А тут ещё обновлений немеряно нашлось после очередного выполнения



> emerge --sync && eix-update && eix -uc


Посмотрел я на списки обновлений, посмотрел на версии новые, и решил - время пришло. Благо ноут есть, для опытов. Начал с него. Потом взялся за ПК. Настроил ядро новое, версии 2.6.36.


А на ПК у меня жёсткие диски именовались так:



hda1, hda2 .... hdaN


И не грузилась система с новым ядром. Видел я лишь сообщения об ошибках. Тогда стал искать причину, и нашлась она рядом - в файле /etc/fstab. В новом-то ядре жёсткие диски именуются, как


sda1, sda2 .... sdaN

Отсюда и ошибки при монтировании - нет устройств таких, что перечислены в fstab! Исправил я ошибку эту - заменил hda на sda. Загрузилась система, да не может всё равно примонтировать разделы c файловой системой ext4! А проблема известная, и решается она следующим образом:


http://www.nkuttler.de/post/filesystem-with-huge-files-cannot-be-mounted-read-write-without-config_lbdaf/

После этого система загрузилась благополучно.


Кстати, считаю нужным упомянуть здесь о интересном нововведении, а именно об опциональной возможности использования в ядре драйвера ФС ext4 для работы и со старыми версиями данной ФС - ext2 и ext3. Так как других ФС, кроме перечисленных, на ПК и на ноуте я не имею, решил испробовать данную возможность. Пока проблем не замечено.


2. Система загрузилась, только вот раскладку переключить не мог я. Сочетание клавиш Alt+CapsLock, мной для переключения раскладки назначенное, не работало. Что ни делал, ничего не помогало. И опции в /etc/X11/xorg.conf менял, и Иксы пересобирал... Долго ли, коротко ли - нашлось решение этой проблемы: с помощью сети Интернета выловил я информацию по проблеме моей. Сказано было: в новом xorg'e способ настройки изменился, теперь настройки клавиатуры, мыши, тачпада и прочих устройств внешних - всё должно храниться в файлах отдельных, в каталоге /etc/X11/xorg.conf.d/. А там - пусто, да и каталога этого и в помине нет... Как нет? Примеры настройки должны быть. Поищем, команда для этого есть специальная:



> su
> updatedb 
> locate xorg.conf.d


Что же это за строки таинственные? В первую очередь, права необходимые получаем. А во второй строке у нас обновление базы данных mlocate, индекса системы нашей. Тут все пути и все имена хранятся. А в третьей команде мы запрос к базе данных делаем, словно к зеркалу волшебному - и ответ получаем:



/usr/share/X11/xorg.conf.d
/usr/share/X11/xorg.conf.d/10-evdev.conf
/usr/share/X11/xorg.conf.d/50-wacom.conf


Знаем мы теперь, где примеры хранятся, и недалече это - всего на расстоянии одной команды консольной. Ну, теперь можно просто скопировать найденный каталог с файлами в /etc/X11/. Одна команда для этого нужна, и вот она:



> cp -r /usr/share/X11/xorg.conf.d /etc/X11/


Просто, да не всё это. Теперь пришло время перенести настройки клавиатуры нашей в новое место, в каталог /usr/share/X11/xorg.conf.d


Убираем лишние строки из /etc/X11/xorg.conf путём их комментирования с помощью "#" (в принципе, эти строки можно вообще удалить):



Section "ServerLayout"
...
#  InputDevice "Keyboard0" "CoreKeyboard"
  ...
EndSection
...
#Section "InputDevice"
#  Identifier "Keyboard0"
#  Driver "kbd"
#  Option "XkbLayout" "us,ru"
#  Option "XkbVariant" ",winkeys"
#  Option "XkbOptions" "grp:alt_caps_toggle"
#EndSection
...


А вот, что получилось в /etc/X11/xorg.conf.d/10-evdev.conf. Здесь со строки, знаком "#" начинающейся, иначе комметарием называемой, номер строчки добавленной указан - чтобы понятнее было:



...
Section "InputClass"
  Identifier "evdev keyboard catchall"
  MatchIsKeyboard "on"
  MatchDevicePath "/dev/input/event*"
  Driver "evdev" # 1
  Option "XkbLayout" "us,ru(winkeys)" # 2
  Option "XkbOptions" "grp:alt_caps_toggle" # 3
EndSection
...


Теперь бы и перезагрузиться нам, чтобы изменения в настройках эффект возымели - но зачем время тратить, рестарт системы производить? Лучше Иксы перезапустить, это проще и быстрее будет.


Иксы перезапускать - наука не сложная. Переключаемся на консоль - произносим заклинание и нажимаем на Ctrl+Alt+F1. Так попадаем мы на первую консоль. Снова получаем права суперпользователя, в простонаречии - root'a:



> su


И осталось лишь X-сервер перезапустить, чтобы увидеть результат действий наших - правильно ли мы настройки Иксов прописали?



> /etc/init.d/xdm restart

30 декабря 2010 г.

Транспортный коллапс в городе N^2

В городе N^2, в результате внезапной зимы, наступил транспортный коллапс (traffic jam), который продолжается до сих пор.

Как известно вблизи массивных объектов время идёт медленнее. Таким образом, на орбите планеты время идёт немного быстрее, нежели на поверхности Земли. Теперь я знаю ещё одно место, где время идёт иначе - это город N^2.  Здесь зимой на дорогах время идёт медленнее, особенно возле массивных сугробов, и поездка в один час легко может превратиться в поездку длиной в 2 часа.

Снежные харвестеры (harvester), курсируют по городу, сгребая снег в большие кучи, собирая его в одном месте и вываливая в другом. По стечению обстоятельств, больше всего снежных завалов наблюдается возле остановок общественного транспорта. Что касается общественного транспорта, то он перемещается по занесённым снегом дорогам вслед за  снегоуборочной техникой, попутно собирая замёрзших пешеходов из одних сугробов и высаживая их в другие сугробы.

Похоже, что к празднованию Нового Года природа подготовилась основательно, чего сложно сказать о городе N^2.

В общем, поздравляю всех с наступающим Новым Годом.

8 декабря 2010 г.

Записался на курсы в НИИТ

Записался на курсы в Нижегородский институт информационных технологий (НИИТ). 

http://nniit.ru/education_and_working_in_mera

Изучаю программирование на C и английский язык... много английского, даже больше, чем программирования. Сейчас на уровне Elementary нам преподают, как выразилась преподаватель, Mickey Mouse stuff. То есть, достаточно простой материал. Как оказалось, это как раз то, с чего мне и надо начинать. Да, я уже говорил, что там преподают много английского? Курсы состоят из двух этапов. В конце второго этапа предстоит подготовить проект, и защитить по нему презентацию на английском языке.

В субботу было первое занятие по английскому языку. Преподаватель много общается с нами по-английски. Быстро отвечать (да и вообще отвечать) на том же языке не так-то просто. Но изучать английский язык в группе, когда преподаёт действительно опытный человек - здорово.

В воскресенье, 5 декабря, ездил на курсы по программированию. Несмотря на 6 часов лекций, прерываемых лишь короткими перерывами, почти не устал. Преподаватель оказался отличным лектором, и похоже, что все последующие лекции обещают быть столь же интересными. Стоит заметить, что я чувствовал себя на первой лекции достаточно уверенно, т.к. уже знал кое-что из того, о чём шла речь (я изучал C++ самостоятельно, по книге Герберта Шильдта, "C++ для начинающих"). Готовлюсь к следующему занятию.

14 ноября 2010 г.

Коротко о разном

Занимаюсь учёбой, изучаю язык программирования Лисп, готовлюсь сдавать курсовую работу на тему "Особенности языка Лисп". Завтра - последний день сдачи работы. Дело идёт не особенно быстро... Как всегда, сегодня предстоит выполнить оставшиеся две трети работы по написанию курсовой.

В городе N^2 проходит Второй Нижегородский Фестиваль науки и искусства. Вчера слушал лекцию в "Шведском центре" НГТУ на тему "О развитии и перспективах науки машинного интеллекта". Помещение было не очень большое, ряды стульев стояли плотно друг к другу. Чувствовал себя, почти как в автолайне. Привёз с собой ноутбук, чтобы сделать небольшой конспект лекции, если она покажется мне интересной. Сел сначала в последнем ряду, в середине. Прикинув, что лекция может длиться долго и аккумулятора ноутбука может не хватить, пересел ближе к розеткам у левой стены. Вскоре после начала лекции получил замечание от девушки из середины зала, что я слишком громко печатаю. "Не могли бы вы воспользоваться ручкой и блокнотом?", - сказала она. Никогда не задумывался о том, что мой навык "слепой" печати может кому-то помешать.
 
Видел сегодня объявление - что-то вроде "отдам щенка в добрые руки". Дана фотография щенка - маленький, чёрный, с большими добрыми глазами. Под фотографией, среди всего прочего, написано - "подходит для охраны". Гм... Думаю, этот щенок может разве что зализать до смерти.

16 октября 2010 г.

Параллельный Интернет

Сфотографировал вчера в НРТК:



В процессе работы над своим сайтом я понял, что Internet Explorer существует в параллельной Вселенной параллельном Интернете со своими законами. В то время, как большинство современных браузеров адекватно отображают сайты, сделанные по стандартам W3C, IE обязательно переиначит что-нибудь на свой лад. Поэтому многие web-дизайнеры используют костыль в виде дополнительных CSS, которые подключаются, если сайт открыт с помощью IE.

Вот наша Солнечная система, отрисованная с помощью CSS3:
http://neography.com/journal/our-solar-system-in-css3/


В современном браузере она выглядит неплохо, а вот Солнечная система глазами Internet Explorer представляет собой плоский скучный мир.

Интересно, Вселенная в новой версии IE9 будет выглядеть столь же печально?

12 октября 2010 г.

Один из удивительных обитателей нашей удивительной планеты

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

Думаю, многие видели фотографии детёнышей тюленя - бельков. Несомненно, это очень милые создания. А сегодня вечером я обнаружил список "самых милых морских обитателей" - должен вам сказать, что все фотографии замечательны, и на мой взгляд, порядок перечисления участников данного списка не играет никакого значения. Среди них, разумеется, обнаружил много знакомых созданий, пусть даже знакомых не лично. Есть среди них и бельки, и пингвины (на фото они будто бы пытаются взлететь). Но один из обитателей, тот, что под номером 6, меня заинтриговал.

Sea-otter-morro-bay 13

Знакомьтесь, это калан, или морская выдра.

Одно из первых описаний этого морского млекопитающего было опубликовано в 1751 году. Его автором был немецкий естествоиспытатель, Георг Стеллер. Описание было написано Стеллером во время продолжительной экспедиции, возглавляемой Витусом Берингом.

Вот цитата из этого описания:

"Любовь их к потомству так велика, что они ради его готовы подвергнуться явной смертельной опасности; лишившись детёнышей, они плачут во весь голос, точно маленькие дети, и убиваются до такой степени, что в течение десяти—четырнадцати дней, как мы наблюдали на ряде случаев, становятся худыми, как скелеты, болеют и слабеют и не желают уходить с берега в море. Во время бегства они держат сосунков зубами, а больших детёнышей гонят впереди себя."

Самки каланов носят детёнышей на животе в первые несколько месяцев их жизни. Часты случаи усыновления чужих детёнышей.

На фото ниже изображена самка калана с детёнышем:

Sea-otter-with-pup-morro-rock

Каланы имеют три подвида, различающихся местом обитания. Название вида произошло от корякского слова, переводимого на русский, как "зверь". В английском и многих других европейских языках данный вид называют "Sea otter", что в переводе значит "Морская выдра".

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

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

Sea otters holding hands

Каланы - исключительно дружелюбные животные как в отношении друг друга, так и в отношении к другим видам, исключая тех, на кого они охотятся. Каланы - хищные животные, но в XVIII-XIX вв. людьми велась активная охота на самих каланов из-за их меха. На популяцию каланов влияют и другие антропогенные факторы, в том числе, загрязнение морей. Так, нефть в морской воде, при попадании на шерсть каланов, приводит к смачиванию пуховых волос и приводит к гибели животного из-за переохлаждения. В настоящий момент охота на каланов запрещена. Сейчас численность каланов в мире составляет не более 20% от их популяции в начале XVIII века.

Всё написанное выше основано на статье из русскоязычного раздела Википедии о Каланах:
http://ru.wikipedia.org/wiki/Калан
Изображения взяты из Викисклада (commons.wikimedia.org)


Если бы не этот список "самых милых морских обитателей", узнал ли я об этом интереснейшем создании? Вряд ли. Спасибо сайту OurAmazingPlanet.com. Наша планета действительно удивительна и населена изумительными созданиями. Если мы приложим некоторые усилия, мы даже успеем сохранить какую-то часть из них от вымирания.

Отчёт о деятельности NNLUG в журнале "Веб-аналитик.ИНФО"

В октябрьском номере онлайн-журнала "Веб-аналитик.ИНФО" опубликовано интервью с Юрием Азовцевым, координатором Нижегородской группы пользователей Линукс (NNLUG), в котором он рассказывает о деятельности LUG'а - в том числе, о "Дзержинском проекте", в котором я принимал участие. Прочитать интервью можно здесь:
http://habrahabr.ru/blogs/linux/105923/

Скачать журнал можно по этой ссылке:
http://www.web-analitik.info/magazine/download/267/#4926

5 октября 2010 г.

Отчёт о поездке участников NNLUG в пос. Ямново, Борский р-н (26 сентября 2010 г.)

Наконец-то я доделал этот отчёт. Всё "руки не доходили", а тут практически за пол-дня сделал.
http://blog.freeschool.nnov.ru/?p=198

Фотоотчёт:
http://picasaweb.google.ru/114139409305362314356/NNLUG262010?feat=directlink

За мной ещё один долг - не написан отчёт о поездке в 18 школу г. Дзержинска. Это было давно, но постараюсь восстановить по фотографиям и по памяти, как там всё было.

24 сентября 2010 г.

Флаги компиляции

Новый комикс от xkcd:
http://xkcd.com/797/

Хорошо, что Gentoo Linux позволяет легко управлять параметрами сборки программ...

Альбом: screenshots

Стоп, а где же флаг "-bugs"?!

22 сентября 2010 г.

AcetoneISO - универсальный "комбайн" для работы с образами CD/DVD в Linux

В школах, где нам довелось ставить Линукс, иногда спрашивали, есть ли для Линукса программы наподобие DAEMON Tools, которые позволяют легко работать с образами CD/DVD - создавать, монтировать и т. д.

Несмотря на то, что Школьный Линукс "из коробки" умеет работать с образами дисков (как и большинство других дистрибутивов), некоторым людям, очевидно, сложно привыкнуть к способу подключения образов из графического окружения, не говоря уж о работе с образами из консоли. Возможно так же, что в школах есть некие специфические способы использования образов, о которых я не знаю и Линукс тоже не знает.

На мой взгляд, возможностей утилит для работы с образами дисков в Линуксе более, чем достаточно. Но речь сейчас не о моих взглядах, а о потребности в некоем инструменте, который мог бы заменить пресловутый DAEMON Tools или Alcohol. И такой инструмент есть, имя ему - AcetoneISO.

Так вот, меня попросили попробовать эту программу в действии и написать подробную инструкцию на lug-wiki.nnov.ru. Инструкция будет позже, а пока я перевёл статью об этой программе для русскоязычного раздела Википедии. Поэтому не буду подробно расписывать здесь возможности Ацетона - всё это вы можете прочитать теперь в ruwiki. Ссылка на статью - выше, в тексте.

Здесь скажу лишь, что Ацетон - на редкость универсальная программа. Как говорится в cтатье на linux.com, это - "Швейцарский армейский нож в управлении образами дисков". Чтобы убедиться в этом, достаточно взглянуть на список возможностей Ацетона. Похоже, что эта программа хочет стать операционной системой.

15 сентября 2010 г.

Отчёт о поездке в г. Бор

Опубликовал отчёт о поездке в г. Бор
Так же сделал фото-отчёт на Picasa.

Вот одна из фотографий, которую я сделал, возвращаясь из Бора, уже в Нижнем, в маршрутке на Окском Съезде:

Альбом: NNLUG в г. Бор

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

12 сентября 2010 г.

Ездил сегодня в первую школу г. Бора

Ездил сегодня в первую школу г. Бора вместе с ещё 4 участниками NNLUG с целью установки Школьного Линукса. Отчёт с фотографиями будет, скорее всего, завтра.

По дороге к Московскому вокзалу видел забавную надпись на грязной машине типа "Газель". Чистым по грязному было выведено: "Грязь лечебная, можно слизывать".

На сегодня это всё.

11 сентября 2010 г.

На семинаре 2010-09-10



В этот раз большую часть семинара мы смотрели видеозапись семинара (это похоже на каламбур) по Школьному Линуксу, который проходил в Нижегородском институте развития образования (НИРО).

В помещении катастрофически не хватало стульев (пришлось приносить стулья из соседнего помещения), а звук был слышен лучше сидящим, чем стоящим. Да и смотреть видео стоя гораздо менее удобно, чем сидя (да, я знаю, что говорю очевидные вещи).

С гораздо большим комфортом вы можете посмотреть эти видеозаписи здесь:
http://vimeo.com/user4700666/videos
http://vimeo.com/user4701607/videos

4 сентября 2010 г.

Передача данных посредством FloppyNet. Нарезка и склейка файлов.

Сегодня потребовалось передать относительно большой файл посредством ФлоппиНет (FloppyNet). Для тех, кто не в теме, поясняю: ФлоппиНет - это передача данных посредством 3.5 дюймовых дискет. Этот способ передачи данных уже давно устарел, сейчас в качестве среды передачи широко используются медные провода, и всё чаще физической средой передачи служит свет, идущий по оптоволокну.

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

Итак, я решил использовать совершенно устаревшую технологию ФлоппиНет, поскольку это был самый простой и наименее затратный способ из доступных. Данная технология обладает единственным преимуществом - её поддерживают даже самые старые компьютеры и пользователи. К недостаткам можно отнести высокую вероятность потери пакетов данных во время передачи и низкую скорость.

У меня есть старый ноутбук IBM ThinkPad 760ED, который поддерживает ФлоппиНет, и относительно новый персональный компьютер (ПК) под управлением Linux, который так же поддерживает эту технологию. На ПК есть файл, который нужно передать на ноутбук, но который невозможно передать одним пакетом через ФлоппиНет. Следовательно, его нужно аккуратно нарезать на маленькие кусочки, которые потом можно будет последовательно передать. В Linux с нарезанием файлов проблем нет - есть инструмент, острый, как скальпель и надёжный, как... Как все базовые утилиты Linux, проверенные десятилетиями использования. Имя ему - split. Как и с любым качественно изготовленным инструментом, работать с ним не составляет труда.

Допустим, файл называется bigfile.tgz и он "весит" 2 мегабайта. Нарежем его на кусочки размером в 800 килобайт:

# split -b800k bigfile.tgz

Сразу после флага -b указывается максимальный размер каждого кусочка, в данном случае это 800 килобайт. О том, что задан размер в килобайтах, говорит буква k сразу после числа, как не трудно догадаться. Мегабайты обозначаются буковой m, а если буква не указана, то подразумеваются байты.

После нажатия клавиши Enter мы обнаружим в текущей директории несколько файлов под названиями xaa, xab, xac и т.д. Можно задать названия для частей файла - для этого нужно передать команде ещё один параметр после имени нарезаемого файла - префикс. Пусть, мы хотим, чтобы получившиеся части именовались как part_a, part_b part_c и т.д. Тогда префикс будет part_, и команда будет выглядеть вот так:

# split -b800k bigfile.tgz part_

Теперь копируем последовательно кусочки на дискету (или несколько дискет), и переносим на ноутбук. Там все кусочки большого файла сваливаем в одну кучу один каталог.

В Linux файлы "склеиваются" не сложнее, чем нарезаются. Для склеивания частей воедино используется команда cat:

# cat part_a part_b part_c ... part_NN > bigfile.tgz

Но вот ведь незадача! На ноутбуке нет (ещё нет) установленного Linux, только DOS и синие панельки Norton Commander... Тем не менее, повода для паники нет - DOS умеет склеивать части файла, правда, делает это несколько странно (на взгляд пользователя Linux, по крайней мере).

В DOS есть команда COPY, и пусть вас не вводит в заблуждение её название - она предназначена не только для копирования файлов, но и для склеивания файла из частей. Синтаксис команды не сложен, если вам интересны подробности, смотрите help copy в DOS. Я же затрону только то, что необходимо для склеивания бинарных (двоичных) файлов. В общем виде, это выглядит так:

# COPY /b part_a + part_b + part_c + ... + part_NN bigfile.tgz

Флаг /b указывает на то, что конечный файл является бинарным. Обратите внимание, что части файла как бы суммируются знаками "+". Если пропустить хотя бы один плюс между частями файла, команда выполнится некорректно.

В моём случае, команда выглядела примерно так:

# COPY /b part_a + part_b + part_c + ... + part_NN bigfile.tgz

- и из разрозненных частей, переданных через ФлоппиНет, вновь образовался исходный файл. Красота...

27 августа 2010 г.

Результаты заселения школ г. Дзержинска пингвинами

Немного с запозданием публикую ссылки на новость с ЛОРа и с ОпенНета.

http://www.linux.org.ru/news/russia/5263752
http://www.opennet.ru/opennews/art.shtml?num=27743

Это были очень непростые недели, но было классно. Я ездил в Дзержинск вместе с другими участниками NNLUG каждый день, обычно возвращался домой поздним вечером, а утром - опять в Дзержинск. И вот, есть результат. Почти 500 компьютеров усилиями NNLUG были переведены на Linux. Ну а те, кто ставил Linux (и я в том числе) в школах, приобрели замечательный опыт установки и настройки Linux, настройки локальной сети и пр.

В конце-концов, я теперь знаю, сколько стоят билеты на электричку до Дзержинска, где их покупать и как совать билет в турникет, чтобы тот меня пропустил.

Итак, первый шаг сделан. Теперь нужно, чтобы система образования на основе свободного программного обеспечения заработала сама, без сторонних пинков. Для этого необходимо обучить учителей работе в Linux, сделать образовательные диски для школ, нужно, чтобы были учебники, одобренные "сверху", нужно организовать техническую поддержку... Много чего ещё нужно. Но первый шаг сделан, и этот шаг -- достаточно значителен. Я очень рад.

22 августа 2010 г.

Основная программа по внедрению СПО в школы г. Дзержинска завершена

Основная программа по внедрению СПО в школы г. Дзержинска завершена. По предварительным оценкам, мы установили Школьный Линукс на 468 компьютеров за две недели.

Я теперь более-менее знаю город Дзержинск, довелось и на электричке проехаться, что было очень классно (не считая того, что я чуть было не застрял возле проходной, т.к. не мог понять, какой стороной нужно совать билет в турникет, чтобы он меня пропустил - оказалось, штрих-кодом вверх).

Вчера собирались в кафе "Едок" около площади Лядова, обсуждали прошедшие две недели и планы на будущее. Было весело. Поскольку я сейчас просто хочу спать, то не буду писать многобукв. За подробностями отсылаю всех интересующихся в наш блог: http://blog.freeschool.nnov.ru/

Вот несколько фотографий со вчерашнего дня.









P.S. Я вчера подстригся, но говорят, что это не очень заметно.

12 августа 2010 г.

Помогаю внедрять СПО в школах города Дзержинска

Помогаю внедрять СПО в школах города Дзержинска в составе Нижегородской группы пользователей Linux (NNLUG). "Внедрять" -- звучит, как будто это спланированная диверсия. С другой стороны, я затрудняюсь подобрать более подходящее слово для нашей деятельности. Итак, пусть будет слово "внедрять".

Сложно было написать что-нибудь осмысленное в блог последние несколько дней, т.к. уезжал в 7 утра, а приезжал только вечером. Вчера удалось вернуться в /home на удивление рано -- в 18 часов. Но, едва я после поездки "лег отдохнуть", как уснул, и проснулся лишь в 2 часа ночи.

Первый раз ехал в понедельник, девятого августа, и это было настоящим приключением. Начну с того, что я ехал в незнакомый город, без опыта выполнения той работы, которую требовалось выполнить -- одно дело собирать Gentoo дома, другое дело -- ставить дистрибутив на школьные компьютеры. Там появляются совершенно новые для меня задачи и незнакомые проблемы.
Сначала предполагалось, что мы поедем на электричке. Я ездил на электричке за всю жизнь только один раз, и это было очень давно.
Всё это повергало меня в полную панику. Но я решил: отступить, не попытавшись -- значит, проиграть без боя.

К счастью, у некоторых участников группы NNLUG есть собственная машина, и они могли взять с собой в Дзержинск ещё 3-4 человека, в числе которых последние три дня оказывался и я. Впрочем, на третий день перспектива поездки на электричке уже не так пугает, да и Дзержинск кажется теперь знакомым городом -- после километров, пройденных пешком в поисках очередной школы, и поездок на местном общественном транспорте.

Кстати, вот отчёты о нашей деятельности:
http://blog.freeschool.nnov.ru/

6 августа 2010 г.

Самопальные пирожки

Дамы и господа, я изобрёл велосипед придумал, как делать пирожки, не делая при этом практически ничего. Ну, почти ничего. Нужно сделать начинку из чего-нибудь съедобного (в моём случае, веганского). А ещё необходим тонкий лаваш, который продаётся во многих магазинах и стоит в городе N^2 примерно 27 рублей за упаковку. Этот лаваш представляет из себя тонкие листы (по нескольку листов в одной упаковке), сделанные из пресного теста. Далее листы лаваша разрезаются на большие прямоугольники и в них заворачивается начинка. Получившиеся "пирожки" обжариваются на сковороде с растительным маслом. Жарить слишком усердно не нужно -- лаваш и так уже жареный (иногда даже чрезмерно), так что просто чуть обжарить, чтобы листы теста держали форму.

Преимущество этих пирожков -- удобно хранить в холодильнике и разогревать по мере надобности в СВЧ-печи. Так же их удобно брать с собой, отправляясь куда-нибудь надолго.

Рисунок

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

2 августа 2010 г.

Третий день город буквально затоплен дымом

Третий день город буквально затоплен дымом от горящих лесов и торфяников. Ветра практически нет. Некоторые люди ходят в масках (как при эпидемии гриппа), но я сомневаюсь, что это заметно помогает. Да, и по-прежнему стоит жара -- днём столбик термометра редко опускается ниже 27-30 градусов (хотя думаю, в градусах Фаренгейта эта температура выглядит намного внушительнее). Такое чувство, что вот-вот вместо дождя с небес посыплется пепел, и законсервирует этот душный, полный машин город. И, возможно, через пару тысяч лет наши далёкие потомки найдут оставленный нами культурный слой, полный пластиковых ёмкостей, стеклянных пивных бутылок, пакетов и мусора, оставшегося от жизнедеятельности сети неправильного быстрого питания "McDonalds".

Впрочем, будем оптимистами. Этот дым не может долго держаться. При такой жаре за городом всё, что могло сгореть -- наверняка сгорело, остальное должно быть уже залито пожарной пеной/водой по самые верхушки. Представляю, какого тем, кто живёт в пригородах. Жаль лес за городом -- осталось ли что-нибудь от него? Скорей бы уж погода изменилась, и ветер принёс настоящий летний ливень.

К своему удивлению обнаружил, что даже в таком дыму, от которого трудно дышать и слезятся глаза, люди продолжают курить. Мало дыма? А, ну да, я забыл -- это не тот дым.

23 июля 2010 г.

Тоннами слушаю пост-рок

Тоннами слушаю пост-рок (англ. post-rock). Влюбился в эту музыку. Инструментальная, являющая собой сплав из эмбиента, электроники и, собственно, рока. Иногда включающая вокальную составляющую, зачастую -- просто как дополнительный "инструмент", обогащающий композицию. Если есть тексты, то они, в основном, ориентированы на звучание и написаны специально для голоса исполнителя (в многих случаях, им самим же), позволяя раскрыть все возможности этого "музыкального инструмента". Здесь уместно вспомнить Тома Йорка, солиста группы Radiohead -- он часто использует свой голос, как дополнительный музыкальный инструмент (композиции "Videotape", "Harrowdown Hill", "Nude" и многие другие). Из свежих примеров -- группа Audiotransparent. Они играют медленный рок, slowrock -- раньше я и не подозревал о существовании этого стиля. Однако, их можно вполне отнести и к исполнителям пост-рока, поэтому не могу здесь не упомянуть о потрясающей способности вокалиста этой группы превращять тексты (очень неплохие, надо сказать) с помощью голоса в основной "музыкальный инструмент", вокруг котрого строится композиция. Кстати, меня, как поэта, заинтересовала конструкция некоторых песен этой группы -- таких, как "September Waltz", "Vague Millimeter", "Last Years Resolutions" и др.

Как и у многих других стилей, границы стиля "пост-рок" довольно условны. Даже в пределах отдельных альбомов можно услышать эмбиент-записи вперемешку с сломанными, жёсткими ритмами и холодными, "металлическими" гитарными партиями. Очень популярны достаточно длинные композиции, иногда более 10 минут (The American Dollar - "Starscapes"), с переходами (порой, очень резкими) от спокойного звучания к агрессивным гитарным партиям. (God Is An Astronaut, Codes In The Clouds, Mono etc). Интересно звучат композиции If These Trees Could Talk - "Smoke Stacks", God Is An Astronaut - "Echoes" -- на мой взгляд, они очень похожи. Здесь стоит обратить внимание на "развязку" в конце -- очень интересный приём, который часто используется в стиле пост-рок, однако в этих двух композициях он особенно хорошо звучит.

Про гитары стоит сказать отдельно -- многие группы, исполняющие пост-рок, включают в себя двух и более гитаристов, и звучание гитар накладывается, образуя причудливую картину. В стиле преобладают гитары, и некоторых исполнителей вполне можно отнести к стилю "инструментальный рок" -- такой является, например, группа Chemtrail. Хотя различие между инструментальным роком и пост-роком довольно условно. Такое чувство, что инструментальный рок -- это альтернативный рок, из которого убрана вокальная составляющая. Повествование ведётся с помощью гитар -- надо сказать, довольно удачно передавая слушателю то, что хотел выразить исполнитель (Chemtrail - "Like It Or Not", "35 000 Feet"). Звучание группы Chemtrail вполне соответствует названию. Chemtrail -- это след выхлопа самолётного двигателя, химический след за самолётом в небе. Подобные следы порой красиво расчерчивают небо, на закате приобретая пастельные цвета. В звучании группы Chemtrail действительно, образно выражаясь, много воздуха.

Не последнюю роль в стиле "пост-рок" играет синтезатор. Так же может использоваться скрипка, пианино и другие инструменты.

Вообще, кроме "нормальных" инструментов, композицию иногда дополняют звуки природы -- пение птиц, шум ветра и т. п. -- что характерно для эмбиента (Hammock, Epic45). Однако гораздо более часто исполнителями пост-рока, конечно же, используются индустриальные шумы (например, If These Trees Could Talk) -- чтобы понять, что это за "материал", достаточно прислушаться к шуму какого-нибудь завода, порта или что-то в этом роде. Вместо классических ударных могут использоваться драм-машины (особенно, если у группы нет барабанщика), так же популярны словно "вырванные" из окружения шумы, формирующие причудливый ритм.

Мне нравится мелодичность звучания некоторых групп, таких, как The American Dollar. Многие из композиций этой группы можно охарактеризовать, как оптимистичные -- в отличии от затягивающих, тяжёлых, иногда даже "безвыходных" композиций группы God Is An Astronaut. Хотя последний альбом The American Dollar, "Atlas", наполнен совсем другой атмосферой, нежели предыдущие. Этот альбом похож на пасмурное утро с нависшими над рекой облаками, бросающими тень на берег и отражающимися в холодной воде, и молчаливо застывшими на фоне туч силуэтами заводских труб и портовых кранов (см. например фото 000-0248). Не скажу, что этот альбом хуже или лучше предыдущих -- просто он другой, возможно, более зрелый и наполненный какой-то тоской, но вместе с тем, отвергающий отчаяние. Просто он даёт повод задуматься... и идти дальше.

Пост-рок не избежал участи многих других стилей, и изобилует ничем не примечательными группами, повторениями находок одних исполнителей другими, что негативно сказывается на развитии стиля, но создаёт "критическую массу" исполнителей. Таким образом, не только возникают новые группы, отдающие предпочтение данному стилю, но и сам стиль "пост-рок" проникает в другие стили, дополняя их и делая границы между стилями ещё более нечёткими.

Ещё одно не очевидное преимущество пост-рока: его можно слушать через старые дребезжащие наушники-вкладыши -- это либо придаст композиции дополнительную окраску, либо будет просто незаметно. К сожалению, это проходит не со всеми композициями, некоторые заметно усиливают дребезжание износившейся мембраны динамика, и мозг отказывается воспринимать подобный "микс" как должное. Поэтому я подумываю о покупке новых наушников для плеера.

21 июля 2010 г.

Эксперты из НИРО считают внедрение СПО городе N^2 нецелесообразным

Эксперты из Нижегородского Института Развития Образования (НИРО) считают внедрение свободного программного обеспечения (в том числе, операционных систем GNU/Linux) в городе N^2 нецелесообразным.

Вот ссылка на новость ЛОРа:
http://www.linux.org.ru/news/opensource/5134575

Сегодня после двух часов ночи собрался было идти спать, но тут в группе "Школьный проект NNLUG" на Google.Группах обнаружил эту ссылку на ЛОР. Новость обсуждаемая -- на данный момент 20 страниц комментариев, среди которых много замечательных ироничных комментариев, и я много смеялся, пока читал их. Но на самом деле, надо сказать, новость сама по себе совсем не позитивная -- чего уж тут радоваться, когда в "Экспертном заключении..." экспертов НИРО называется только 3 достоинства перехода на СПО, и 8 (!) недостатков. Как они набрали-то столько? Впрочем, на ЛОРе в комментариях высказывалась мысль, что некоторые из "недостатков" можно было записать, как один пункт -- а не "размазывать" по нескольким пунктам.

Привожу здесь эту таблицу из "Заключения экспертов..." НИРО (орфография сохранена) со своими комментариями, выделенными курсивом:


Достоинства Недостатки
  1. бесплатная лицензия на программное обеспечение
  2. доступность
  3. бесплатное обновление продуктов
  1. сложность в инсталляции и настройки для разных моделей ПК (в том числе, разного "возраста")
    -- Windows тоже требует настройки и инсталляции, и не факт, что какой-нибудь Windows XP и тем более, седьмой, можно будет вообще запустить на старых машинах (разного возраста). А системы GNU/Linux существуют не только для новых и супер-мега-навороченных ПК, есть дистрибутивы, которые умещаются на несколько дискет и прекрасно работают с 20 мегабайтами ОЗУ (например, Tiny Core Linux). Я не утверждаю, что установить этот дистрибутив будет так же легко, как Ubuntu, но подобный дистрибутив может превратить какое-нибудь ископаемое "железо" в рабочую станцию.
  2. потребность в помощи технических специалистов, системных администраторов для корректной установки и настройки программного обеспечения (подобные специалисты есть только в незначительном количестве ОУ области)
    -- Для _грамотной_ установки и настройки Windows тоже нужен специалист. Системный администратор нужен в любом случае, если в школе есть компьютерный класс. А найти сейчас человека, могущего администрировать класс (или несколько классов) на Linux -- думаю, это на такая уж и страшная проблема, как её малюют эксперты из НИРО.
  3. проблемы с подключением периферийного оборудования (сканеры, принтеры, модемы и др.)
    -- Ну, насколько мне известно, популярные дистрибутивы GNU/Linux сейчас поддерживают кучу различных железок, за исключением разве что каких-то редких специфичных устройств. Да и в этом случае можно "оживить" такое устройство, просто для этого нужно будет немного поработать мозгами и почитать форумы в Интернете.
  4. некорректная работа ряда программ под ОС Linux (затруднена работа с мультимедийными дисками и электронными образовательными ресурсами, в частности, широко распространёнными в образовательной практике дисками "КМ-школа", "Новый и диск" и т. п.)
    -- а) конечно, ведь эти программы были написаны для Windows б) насколько критичны эти программы? Я о них вообще не слышал, возможно, это что-то полезное... не знаю. Если уж совсем не работает -- наверняка, можно как-то обойтись в образовательной практике и без них, или найти замену... в) ОС Linux не существует. Linux -- это ядро ОС.
  5. отсутствие методической поддержки для ПСПО (в частности, для учителей-предметников)
    -- Как расшифровать это ПСПО? Я могу предположить несколько вариантов, но не уверен в их правильности. Насчёт "отсутствия..." -- зря они так. Издано множество книг, в том числе, учебников по тематике СПО, в интернете этой информации вообще немерено в свободном доступе.
  6. учебники и учебные планы, рекомендованные и используемые в ОУ, не коррелируют с интерфейсом ОС Linux (особенно данная проблема актуальна для информатики)
    -- Eсли используются учебники, в которых, например, основы работы на ПК изучаются через призму Windows -- то да, они не будут кореллировать. А кто вообще обещал, что можно изучать одну ОС по учебникам другой? Возможно, учебники для школ вообще не должны быть привязаны к одной ОС.
  7. документы, созданные в MS Office (в частности, компьютерные презентации, как один из наиболее распространённых дидактических документов) в значительном числе случаев не корректно отображаются в OpenOffice, требуют пусть незначительной, но корректировки, что порождает потребность переделки имеющихся у педагогов ЭОР; поскольку язык макросов в MS Office и OpenOffice различается
    -- Помню, как я пытался открыть свой учебный план СГА в OpenOffice.org... Там все таблицы были нарисованы _линиями_ и _рамками_ -- это несколько сотен объектов на каждой странице. Этот документ хорошо так подвешивал OpenOffice. Проблема частично решалась настройкой офиса, с увеличением используемой памяти для хранения объектов. Но, я думаю, очевидно, что какие могут быть претензии к OpenOffice, если документы сделаны подобным костыльным способом? Я уже две курсовых сделал в OpenOffice, перед сдачей сохранял в формат Microsoft Office, и никаких серьёзных проблем с их последующим открытием, чтением и редактированием в MS Word не наблюдалось. Если документ изначально грамотно сделан, то и проблем быть не должно. Так что это проблема документов и их редакторов, если что не так в OpenOffice открывается. Насчёт презентаций не знаю, не проверял. Но даже если презентацию нужно переделать -- это ж не программу переписать, просто времени немного затратить, и всё. Кстати, не понимаю, как они так ловко про макросы сюда вставили -- у них в презентациях макросы, что ли?
  8. Потребность повышения квалификации всех учителей-предметников, ля работы на компьютерах с использованием свободного программного обеспечения
    -- Ну, я так скажу -- технологии совершенствуются, и не только в мире СПО. Если они хотели продолжать учить школьников тому, чему они учили их пять, десять лет назад... гм... это было бы не очень разумно и не дальновидно. К тому же, когда обучение новому стало большой проблемой для _учителей_? Учитель должен предоставлять актуальную информацию ученикам, и давать интересный материал. Иначе уроки информатики будут скучными. Как тогда они планируют заинтересовать учеников, подготовить будущих специалистов?
Возможности Угрозы
  1. организация школьного файлового сервера/шлюза
  2. создание внутришкольной ЛВС
    -- При использовании Windows так же можно локальную сеть в школе организовать. Ну и что? Это не аргумент в пользу конкретно использования СПО.
  3. возможность настройки продукта с учётом пользовательских требований
    -- Не могу не согласиться с этим утверждением. Однако этот список "возможностей" выглядит не слишком убедительно...
  1. -неготовность педагогов школ к переходу на ОС Linux может сказаться на качестве обучения учащихся
    -- В этом списке они ещё и "-" наставили перед каждым утверждением -- наверно, для пущей экспрессии. Это тот же вопрос повышения квалификации. Если педагог не может/не хочет совершенствовать свои знания и преподавательские методы, то какой же он педагог? И опять же, Linux -- это ядро, а не ОС.
  2. -отсутствие помощи и недостаток опыта ОУ в установку ПСПО может привести к проблемам в организации УВП, функционирования ИОС школы
    -- OMG! Любят эти эксперты из НИРО сокращения, как я смотрю: ПСПО, УВП, ИОС... Отсутствие помощи, говорите? Помощь есть -- во внедрении СПО в образовательный процесс школам помогают местные группы пользователей GNU/Linux (LUG). Они и устанавливают СПО, и настраивают, и объясняют. А опыт приходит со временем. Они что, думали, что в их мозг загрузят знания о Linux, как в фильме "Матрица"? Многие гуру GNU/Linux когда то тоже были неопытными линуксоидами -- так ведь научились же?
  3. -IT-специалисты не пойдут на низкую зарплату школьных системных администраторов (следовательно, некому будет обслуживать технику)
    -- А вот это уже проблемы школы, а не СПО. Как же они собирались обслуживать компьютерные классы (неважно, с какой ОС) без администраторов? Силами учеников и преподавателей? А ответственность на ком будет лежать? Кстати, при использовании СПО экономятся средства, так что, может, и на нормальную зарплату специалисту хватит.

Вот ссылка скан этого документа (pdf-документ, 2.7 мегабайт, 3 страницы):
http://www.government.nnov.ru/_data/objects/0006/5748/doc_rtf.pdf

...Да, выставление потребности повышения квалификации для учителей в роли недостатка СПО выглядит действительно странным.

Был на прошлой неделе, в пятницу, на семинаре NNLUG

Был на прошлой неделе в пятницу на семинаре NNLUG (Нижегородской Группы Пользователей Линукса). Начало семинара в 16:00. На улице -- самое пекло. Выехал поздно, автобуса ждал долго, приехал, когда уже семинар начался. Захожу в Радиотехнический колледж. Вахтёр (ну или охранник, не суть важно) сказал, что семинар проходит на 4 этаже. Квест получен, вот лестница. Поднялся на 2 этаж. Дальше лестницы нет. Ээээ, что?
Ищу, у кого спросить дорогу. Судя по всему, все в отпусках, учащихся нет. Всё-таки нашлись добрые люди, которые послали в верном направлении. Прохожу коридор, поворачиваю направо. Ещё одна неприметная лестница. 4 этаж, нужная аудитория найдена. Квест выполнен.

В аудитории жарища, кондиционеров нет, окна открыты -- не помогает. Народу мало. Посидел, послушал, поспрашивал. Хоть и не метание клавиатур на дальность, но всё равно интересно. Вода в бутылке катастрофически заканчивается -- к счастью, как раз и семинар подходит к концу. Иду в сторону автобусной остановки с несколькими участниками семинара, попутно расспрашивая Азовцева Юрия о настройке сети в Ubuntu Server и проблеме подключение Linux к сети, построенной на основе ОС Windows. Хотел по пути зайти в магазин, купить воды -- но передумал, так как не хотел задерживать остальных. Во рту пересохло. Голос совсем сел, ну да ладно. Отшутился заранее придуманной глупой шуткой на вопрос одного из группы: "а что у тебя с голосом?.." Да, это была однозначно глупая шутка, но сначала мне казалось это хорошей идеей.

На этой неделе, в воскресенье, будет ещё один семинар. Предполагаю, что основной темой будет установка и настройка Школьного Линукса. Вполне возможно, что буду помогать с установкой СПО в школах города N^2.

На часах 4:04. Мне действительно пора идти спать.

14 июля 2010 г.

Вторую неделю пытаюсь доесть упаковку рисово-гречишных хлебцев "Здоровей"

Вторую неделю пытаюсь доесть упаковку рисово-гречишных хлебцев "Здоровей" -- обезвоженные и спрессованные, зверски хрустящие на зубах, словно лунный реголит, расфасованный блоками в полиэтиленовые упаковки. Срок годности этого продукта -- 6 месяцев. Верю. Пролежав на лунной поверхности несколько тысяч (или миллионов) лет, вряд ли с ними что-то может случиться... в ближайшие годы. Ах да, они ещё и не содержат глютен, о чём написано на упаковке. Замечательно, только мне в принципе всё равно, содержат или не содержат они глютен -- это растительный продукт, содержащийся в злаковых, таких, как пшеница или рожь. Это предупреждение важно лишь для людей, обладающих непереносимостью к глютену. В моём случае, это не актуально. Возможно, с глютеном этот продукт был бы более съедобным?.. гм...

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

Из других (возможно, менее интересных) новостей: в пятницу надеюсь попасть на сходку волонтёров и сотрудников Нижегородского филиала ЛинуксЦентра в Радиотехническом колледже. Смутно представляю, что там вообще будет -- может быть, метание клавиатур на дальность или бесплатная раздача дисков с пиратскими дистрибутивами GNU/Linux... Надеюсь, это будет интересно.

9 июля 2010 г.

Несколько дней подряд слушаю группу Audiotransparent

Несколько дней подряд слушаю группу Audiotransparent, и их "Сентябрьский вальс" -- September Waltz -- великолепен. Отрывок из текста песни:


tired we stop to look back
rainfall has wiped out our tracks
i'm glad you know the way home
have you been here before?
and would you care to dance?
to welcome the fall?
a muddy dance floor
a september waltz


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

Композиции Vague Millimeter, Young God, Two Sides, Cross A River -- тоже очень неплохо звучат.

В Gimp 2.7.1 наконец-то появилась возможность группировки слоёв

В графическом редакторе GIMP 2.7.1 наконец-то появилась возможность группировки слоёв. Я так долго этого ждал -- именно этой функции мне не хватало, когда приходилось переделывать проекты Photoshop в проекты GIMP. Это было достаточно сложно, но вполне реализуемо. С поддержкой слоёв процесс создания некоторых проектов мог бы заметно ускориться. И вот, это случилось -- теперь Gimp поддерживает группировку слоёв, причём, вложенность групп ничем не ограничена.

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

Я вкратце рассмотрел лишь два новшества, особенно важные для меня. Намного более полный обзор можно прочитать здесь:

http://gimp.ru/articles.php?article_id=31

7 июля 2010 г.

Сессия сдана, 4 курс завершён. Теперь можно заняться другими важными делами...

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

Лето наступило. Дома -- духота, на улице -- жара. Ветер несёт по небу редкие серые облака, но вряд ли они принесут дождь... и в этот раз. Июль обещает быть столь же жарким, как и июнь.

Завершён 4 курс, сессия сдана -- первый раз за весь период обучения я смог завершить учёбу без долгов, в срок, и это здорово. Теперь можно заняться другими важными делами -- дочитать наконец-то несколько книг, заняться переводом и улучшением статей в Википедии (кстати, вот мой аккаунт) и устроиться на работу куда-нибудь...

А пока не устроился на постоянную работу, я занят тем, что внедряю Linux в НФ СГА. Мне за это ничего не обещают, а я ничего и не прошу. Мне это просто интересно и я считаю это отличной практикой.

В процессе установки Ubuntu Server было выяснено, что загрузчик GRUB невозможно установить на аппаратный RAID-0, поэтому для ОС был выделен дополнительный жёсткий диск. Правда, с первого раза установить всё по-нормальному не получилось -- загрузчик установился на тот самый RAID-0, на который он в принципе установиться не мог. Впрочем, и ладно бы так -- но загрузчик не видел систему. Тогда я просто отключил на время установки все диски кроме того, на котором должна была находиться ОС и переустановил систему. Всё заработало, RAID был снова подключен и примонтирован к файловой системе.

С LVM пока не было проблем, хотя и предоставляемые им преимущества так же пока активно не используются. Нужно будет посмотреть на работу сервера под полной нагрузкой, на использование разделов и ветвей файловой системы, и уже после этого можно будет попробовать перераспределить место между разделами LVM.

Изначально Ubuntu Server не был снабжён графической оболочкой (и это правильно, ведь для большинства серверов графическое окружение излишне). Но, так как этот сервер нужен был в НФ СГА не только как сервер, но и чтобы изучить возможности Linux и просто посмотреть, как это всё выглядит, я установил Иксы (X11) и... превратил Ubuntu Server в Kubuntu Server, так как я считаю окружение KDE более удобным и продуманным, чем Gnome (хотя и в Гноме работать довелось -- Ubuntu была первой линуксовой ОС, которую я установил). Правда, чтоб установить KDE, пришлось скачивать более 400 мегабайт обновлений, программ и библиотек -- что примерно в 2 раза больше, чем если бы я решил установить штатный Gnome. Но для этого сервера -- к счастью -- обеспечили практически безлимитный доступ в Интернет, поэтому единственно что стало проблемой, так это время скачивания и установки.

На сервере подняты две виртуальные машины VirtualBox, на которых установлен Windows Server 2003. На каждую виртуальную машину установлена серверная часть университетских обучающих программ (доступ к которым возможен из компьютерных классов). Вот такая сложная схема. В дальнейшем количество виртуальных машин будет увеличено до 4.

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

# sudo vboxmanage clonehd путь_к_диску путь_для_сохранения_клона

По-умолчанию, клон виртуального жёсткого диска создаётся как диск динамического размера (даже если оригинальный диск был фиксированного размера), максимальный размер которого равен размеру оригинального диска. Чтобы создать клон виртуального диска фиксированного размера, необходимо выполнить следующую команду:

# sudo vboxmanage clonehd --variant fixed путь_к_диску путь_для_сохранения_клона


В целом, я смог решить большинство поставленных задач. Если эксперимент с использованием Ubuntu Server в НФ СГА будет успешным, то есть вероятность того, что в университете появятся и другие решения на основе Linux.

4 июля 2010 г.

Я считаю цирки усыпляюще скучными

Я был в цирке только один раз за всю жизнь -- очень давно, в далёком детстве. Это событие мне плохо запомнилось -- я даже сомневаюсь, было ли это на самом деле. Быть может, это был лишь сон? Гм... В любом случае, никаких ярких воспоминаний -- как положительных, так и отрицательных -- у меня не осталось. Было просто скучно. Я даже не могу вспомнить, кто выступал. Не могу вспомнить животных на арене, и лица людей. Только ряды сидений и зрителей на них. Похоже, я смотрел больше на людей, чем на то, что происходило на арене. Наверное, это было действительно ужасающе скучно. Или это был сон. Или даже ужасающе скучный сон.

Итак, исходя из этого, я считаю цирки усыпляюще скучными. Если рассматривать только те цирки, в которых используют дрессированных животных, то могу сказать, что это так же скучно плюс к тому ещё и достаточно жестоко по отношению к животным.

Хорошо, может быть, участие в цирковых представлениях немного менее противоестественно для "домашних" животных (кошек, собак), чем для бывших "диких" животных (ключевое слово здесь -- бывших). Но я не могу утверждать это, поскольку не знаю нюансов содержания и дрессировки животных в цирке. Тем более, что следует считать "естественным"? Если судить по единственному домашнему животному -- кошке -- которое живёт сейчас у меня дома, то даже для неё нахождение в неволе нельзя назвать "естественным". Это при том, что она абсолютно домашняя кошка. Прожив большую часть своей жизни в городской квартире, она уже вряд ли сможет выжить самостоятельно -- но и в человеческом жилище она далеко не всегда чувствует себя счастливой (хотя окружена заботой и всеобщей любовью). В таком случае, в цирке животные должны быть намного более несчастны.

Это цитата из недавних новостей, мне кажется, наиболее точно описывает ситуацию:


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

http://www.vita.org.ru/new/2010/jul/01.htm

Думаю, если существуют инопланетные цивилизации и у них так же есть цирки, то нам есть о чём волноваться, верно? Мы могли бы оказаться вроде диковинок, в качестве "гвоздя программы" циркового представления на далёкой-далёкой планете. Меня не особо радует перспектива участия в таком "шоу". Это может плохо закончиться. Остаётся лишь надеяться, что инопланетные цивилизации, в отличии от нас, давно перестали эксплуатировать другие виды в качестве пищи и как рабов.

30 июня 2010 г.

Ubuntu Server 10.04 установлен, но проблема с загрузчиком ещё не решена

Ubuntu Server 10.04 установлен, но проблема с загрузчиком ещё не решена. Получается ситуация - система есть, а загрузиться в неё нельзя.

Нашёл в интернете информацию, что загрузчик GRUB невозможно установить на аппаратный RAID-0. Странно, ведь подобное объединение жёстких дисков, по-видимому, должно быть распространено на серверах (да и для desktop-систем такой вариант может использоваться). Хотя я читал, что на программный RAID-0 загрузчик должен устанавливаться без проблем - но ведь аппаратное объединение дисков в RAID-массив даёт преимущество в том, что поддержка RAID не нагружает центральный процессор (все необходимые вычисления происходят в контроллере RAID, который, по сути, сам является процессором -- особенно, в случае использования дорогих контроллеров). Читал на одном форуме, что теоретически программный RAID должен работать быстрее -- но, как я уже сказал выше, программная реализация даёт дополнительную нагрузку на ЦП.

Итак, как же установить и _загрузить_ систему?
Решение появилось само собой - взять ещё один жёсткий диск, и установить систему на него (в то время, как образа виртуальных машин будут храниться на быстром RAID-0).

Система установлена, но вот новая проблема - при загрузке появляется сообщение, что невозможно её загрузить... Дело было уже под вечер, я решил, что нужно сделать перерыв (по крайней мере, на сон и еду), и отправился домой. Дома меня осенило - загрузчик каким-то невообразимым образом всё-таки установился в загрузочную запись на RAID-0, и пытается загрузиться оттуда. Разумеется, систему он не видит. Ладно. На следующий день приехал в СГА, поставил в BIOS первым в очереди загрузки RAID-0. Да, так и есть. Загрузчик грузится, система - нет.

Есть мысли по поводу дальнейших действий. Первый вариант -- попытаться установить загрузчик на третий жёсткий диск (который не объединён в RAID), на котором установлена система. Второй вариант (если первый не поможет) -- переустановить систему, предварительно отключив вообще первые два диска. Третий вариант - попытаться всё-таки установить систему на RAID-0 -- ведь загрузчик туда установился, так что ещё есть шанс.

К счастью, со временем меня никто не ограничивает, я могу спокойно со всем разобраться и переустанавливать Ubuntu Server в N-й раз. Собственно, понятно -- работаю я добровольно, можно сказать, за "спасибо", просто из заинтересованности. Для меня эта задача -- как вызов.

Кроме того, что в СГА появится один сервер на Linux, есть ещё одна положительная сторона: я уже начинаю понимать, как работать с LVM (дома я ещё не ставил подобные эксперименты), могу объяснить, в чём различие между программным и аппаратным RAID и каковы сильные и слабые стороны RAID-0. Когда-нибудь мне это пригодиться. Кстати, я подумываю о использовании LVM на домашнем ПК...

26 июня 2010 г.

Проблемы с установкой Ubuntu Server 10.04 на RAID-0 с LVM

Второй день пытаюсь установить Ubuntu Server 10.04 на сервер в НФ СГА. Казалось бы, чего проще - там и так всё упрощено до предела. Установщик с интерфейсом на псевдографике, автоматическое определение оборудования (все необходимые драйвера вроде есть), автоматическая настройка сети, автоматическая опять же настройка параметров системы путём диалога с пользователем... Для начинающего gentoo-шника вроде меня установка этого дистрибутива не должна стать большой проблемой. Я был уверен в успехе.

Вставил диск. Загружаюсь. На компьютере аппаратный RAID-0 -- два жёстких диска объединены в один, и для компьютера они представляются как один накопитель на ~640Гб. Ещё один плюс такого подхода -- повышается скорость чтения и записи, т.к. данные пишутся сразу на два диска, и считываются с двух. Недостаток -- низкая надёжность, ведь если один жёсткий диск выйдет из строя, то на втором останутся "половинчатые" данные, которые уже вряд ли можно будет прочитать/восстановить.

Установщик обнаруживает RAID, предлагает его задействовать. Отвечаю "да". Далее. Настройка дисков. Установщик предлагает несколько вариантов -- по памяти что-то вроде этого:
  1. автоматически разбить диск
  2. использовать весь диск, задействовать и настроить LVM
  3. использовать весь диск, задействовать и настроить LVM с шифрованием
  4. вручную

Пробовал варианты 2 и 4.
Выбираю 2. По-умолчанию -- отдельный (первичный) раздел под /boot с ФС ext2 объёмом ~255Мб, остальное место занимает LVM: логический раздел под swap объёмом ~12,2Гб, и раздел под корневую директорию, на который приходится всё оставшееся место (ФС ext4).
Меня это не очень устраивает. Тем более, что первый раз, когда я пытался разбить диск автоматически, установщик вынес раздел /boot за пределы LVM, хотя, насколько я знаю, система волне может загружаться прямо с LVM-раздела. Как ни странно, в другой раз, при выборе этого пункта, установщик действительно зянял под LVM весь диск и предложил выделить в отдельные "логические тома" (термин LVM) каталоги /, /boot, /usr, /home, /var, /tmp -- почти так, как я разбивал диски у себя на компьютере (для Gentoo в отдельные разделы ещё вынесены каталоги /usr/portage и /usr/portage/distfiles). Интересно, почему же он сразу не предложил такой вариант? Гм...

Выбираю 4. Здесь всё гораздо интереснее.
Занимаю под LVM весь диск. Создаю логические тома под /boot, /, swap, /home. Так как понятия не имею, сколько место потребуется на сервере под каталоги /var, /tmp и пр., решаю не слишком увлекаться дроблением диска, и выделяю под корневой раздел 100Гб в расчёте на то, что в дальнейшем (благодаря возможностям LVM) можно будет уменьшить его объём и/или разбить на отдельные логические тома.
Здесь стоит сказать, под какую задачу будет использоваться этот сервер. На нём будут храниться несколько образов виртуальной машины, каждый образ размером ~40Гб. Если эксперимент по установке и использованию в НФ СГА Ubuntu Server будет успешным, то вполне вероятно, этот дистрибутив будет использован и для других задач. Это одна из главных причин, почему я заинтересован в успехе данного эксперимента.

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

Не могу понять -- то ли ему LVM не нравиться, то ли RAID-массив, то ли что-то ещё. Хотя с RAID, по идее, не должно быть проблем. Пробовал ставить систему без использования LVM, но это не помогло. Да и в Интернете видел инструкции по установке Linux на LVM.

Пытался загрузиться с SystemRescueCD, но не смог смонтировать файловые системы, созданные на RAID -- получал сообщение об ошибке.

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

Пришло время для списка

Цитируя Moby, пришло время для списка, а значит, для компиляции нескольких (возможно, не связанных между собой) тем в один пост:

1. 4/5 сессии сданы. Замечательно.
Теперь столько времени провожу в НФ СГА, что некоторые думают, что я опять вернулся на прежнее место работы. Нет, вряд ли.

2. Присутствовал позавчера на предзащите дипломных работ. Скоро и мне придётся через это пройти. Написание диплома, предзащита, защита... Впрочем, я не особо волнуюсь - диплом написать смогу, главное - не оставлять на последний момент основную часть работы.

На предзащиту допускаются все желающие, и это очень интересная процедура. Присутствуют один-два преподавателя. Студент читает речь (как если бы он уже защищал диплом в Москве), преподаватели смотрят дипломную работу и раздаточный материал, задают вопросы. Это вроде генеральной репетиции перед защитой. Если студент допускает ошибки в построении речи и/или в дипломе, то на предзащите есть возможность найти исправить эти ошибки.

3. Вот уже более недели помогаю дипломникам с их работами. Практически ни у кого не принимают дипломную работу с первого раза. Некоторые приносят на проверку диплом в последний момент. Некоторые приезжают в город N^2 на предзащиту из области, и у них просто нет времени кататься туда-сюда с дипломом, чтобы самостоятельно исправить его дома/на работе. Многие просто не знают всех требований, а если знают - то далеко не всегда знают, как выполнить эти требования.

Я неплохо знаю требования к дипломам и правила оформления. Благодаря работе в НФ СГА и самостоятельному написанию трёх курсовых работ, я знаю приёмы работы с текстовыми процессорами Microsoft Office Word и OpenOffice.org Writer. Так что, за какой бы компьютер я не сел, ко мне сразу выстраивается очередь студентов с дипломами для проверки/редактирования. Обычно я не отказываю в помощи. Надеюсь, что когда сам буду делать диплом, то так же смогу рассчитывать на помощь (если, конечно, она мне потребуется).

4. В НФ СГА решили провести эксперимент и поставить Ubuntu Server на один из серверов. Я думаю, что это несколько странно - Linux в СГА? Похоже на деление на ноль, особенно учитывая недавно подписанное Microsoft и СГА соглашение о сотрудничестве.

Впрочем, если подумать, есть нечто общее между распределённой образовательной сетью СГА со всеми филиалами - и свободным ПО, разработка которого является так же распределённым процессом, который осуществляется сообществом разработчиков с разных концов света. В любом случае, это позитивное явление. Я вызвался устанавливать и настраивать Ubuntu Server - хотя у меня нет опыта установки серверной версии этого дистрибутива и вообще работы с серверами, уверен, что смогу решить эту задачу.

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

6. На ноутбуке у меня теперь Windows соседствует с Gentoo. Есть несколько проблем, которые я пока что не смог решить - например, ноутбук не видит CD/DVD-привод, и не монтирует автоматически флэш-карты. Впрочем, у меня сейчас просто нет времени разбираться с этим - возможно, я займусь решением этих проблем в выходные.

7. Уже который день стоит ужасная жара. Плавится асфальт, кажется, ещё чуть-чуть - и начнут плавиться пластиковые бутылки и вспыхнут бумажные пакеты McDonalds, разбросанные повсюду. Периодически ветер доносит из-за города запах горящего торфа. Дороги гудят пробками. Вот оно, лето в городе N^2.

10 июня 2010 г.

жизнь, учёба, gentoo...

Пожалуй, первый раз приближаюсь к сессии без "хвостов". Приятно это осознавать. Можно спокойно готовиться к сессии и наконец-то установить Gentoo на ноутбук, а заодно исправить ошибки, допущенные при первой установке этой ОС на ПК.

Например, я не знал, что процессор моего ПК (Intel Pentium 4 1.7GHz) поддерживает MMX, SSE и SSE2, и не включил эти флаги в /etc/make.conf перед сборкой системы. Хотя эти флаги оптимизации поддерживаются не всеми пакетами, но зато те пакеты, которые их поддерживают, будучи собранные с ними, дают существенный прирост производительности. В частности, это относится к kdelibs и (в особенности) к различным мультимедиа-приложениям. Так, проигрыватель VLC, будучи пересобранный с флагами mmx и sse, стал воспроизводить некоторое HD-видео из моей коллекции практически без "тормозов" (на сильно динамичных сценах всё равно процессор не справляется с обработкой такого потока данных и видео выглядит неприглядно). Это при том, что раньше мой довольно таки древний компьютер вообще не мог нормально возпроизводить видео высокой чёткости - попытки поднять приоритет процесса проигрывателя и/или добиться чего-либо с помощью настройки практически не помогали. Комп скрипел всеми своими 1.7 гигагерцами и миллионами транзисторов, но видео всё равно не воспроизводилось нормально. А теперь вот... Именно на примере мультимедиа-приложений наиболее заметно преимущество сборки программ и системы в целом под конкретное "железо". Всё-таки, если после пересборки VLC начал воспроизводить HD-видео, с этим трудно поспорить.

Всю информацию о процессоре можно получить с помощью

# cat /proc/cpuinfo


...долго думал, какую систему ставить на ноутбук вместо Ubuntu. Мощности ноутбука еле хватает для прожорливого Gnome, о KDE и говорить нечего. Тем более что я хотел не просто сменить дистрибутив, я хотел кардинальных перемен. Окружение вроде Xfce или даже OpenBox, минимум предустановленных программ, нетребовательность к ресурсам ноутбука. Можно было бы выбрать "готовый" лёгкий дистрибутив, который _условно_ соответствует моим требованиям. Но, так как я не ищу простых путей, то решил повторно сдать экзамен по установке Gentoo.

Загрузился с LiveCD SystemRescueCD 1.5.5 (это гораздо удобнее, чем собирать и настраивать систему, загрузившись с LiveCD Ubuntu и тем более LiveDVD Gentoo). Установил базовую систему, вручную настроил и собрал ядро. Система не грузится. Долго бился над загрузкой, нашёл несколько ошибок, исправил - не грузится!.. Думал, дело в загрузчике. Поставил новый GRUB 1.98 (GRUB2). Несколько раз перекофигурировал (слово-то какое) ядро - не грузится, и всё тут. Извечный вопрос - что делать? В интернете нет рецепта именно для моего ноутбука (Toshiba Satellite L30-114). По-видимому, в ядро нужно включить ещё какие-то драйвера, т.к. система не может примонтировать при загрузке корневой каталог. Но какие драйвера? Гм... На третий день, то есть, сегодня, решение было найдено. Раз LiveCD загружается, значит, в ядро все необходимые драйвера включены - осталось только где-нибудь подсмотреть, какие именно драйвера. Гениально просто. Загрузившись с LiveCD, пишем в консоли:

# lspci -k


И видим список оборудования, подключенного к шине PCI. Более того, благодаря флагу -k, видим драйвера, которые используются ядром для каждого устройства. Остаётся только включить эти драйвера в ядро новой системы.

О ходе процесса сборки системы на ноуте пишу на Twitter. В последнее время, я чаще пишу туда, чем в этот блог... Наверное, это побочный эффект того, что я установил Twitter-клиент для Emacs.

29 мая 2010 г.

Изучаю C++. Проблемы с функцией fgets(). Выкидываем символ новой строки из строковой переменной.

Я люблю хорошую музыку. Вы тоже? Отлично. А ещё я люблю переделывать простые и скучные программы из учебников по программированию, добавляя в них дополнительную функциональность и улучшая их. В одной из таких программ (Герберт Шильдт, "C++. Руководство для начинающих, 2-е изд.", стр.182-183) предлагалось написать простой телефонный справочник, используя массив строк. Стоп, телефонный справочник?.. гм... звучит не очень интересно. Я попробовал создать небольшую и простую музыкальную базу данных. Конечно, то, что получилось, было мало похоже на Musicbrainz или Discogs... Ну конечно, ведь это - просто улучшенная версия телефонного справочника из учебника по C++.

Итак, что мы имеем изначально? Программа, приведённая в книге, очень проста. Создаётся массив строк numbers[10][80], этот массив сразу заполняется данными: имя, телефон, имя, телефон ... и т. д. Вы вводите имя, программа последовательно сравнивает введённую вами строку с элементами строкового массива. Если есть совпадение, программа отображает телефонный номер. Конец программы.

cin >> str; // Считываем строку в символьную (char) переменную str[80]
for(i = 0; i < 10; i += 2)
   if(!strcmp(str, numbers[i])) { // Проверяем на совпадение с элементом массива
     cout << "Телефонный номер: " // и выводим на экран
          << numbers[i+1] << "\n";// телефонный номер 

     break;
   }

Теперь пора превратить этот телефонный справочник в музыкальную БД. Во-первых, я поменял название массива и сделал его "безразмерным", вот так: bands[][200]. Как видите, компилятор сам подсчитывает количество строк массива. Кроме того, я увеличил количество столбцов массива  (т. е. максимальную длину записи) до 200, чтобы можно было перечислить несколько альбомов для каждого музыканта:

char bands[][200] = {
   "группа1", "альбом1, альбом2 ...",
   "группа2", "альбом1, альбом2, альбом3 ...",
   // ...
   "группаN", "
альбом1, альбом2 ...",
   "", ""
};


Здесь я добавил в конце массива две пустые строки, содержащие нулевой символ "\0" (компилятор самостоятельно добавляет этот символ в конце каждой строковой переменной). Это пригодится для огранизации цикла последовательного просмотра элементов строкового массива.

Поместил считывание строки, поиск совпадений, и вывод результата в бесконечный цикл, из которого два выхода (а как же иначе?..) - или клавиша <q>, или... <Ctrl>+<c>.

Теперь проблема с cin >> str; - нам не удастся ввести название группы, состоящее из нескольких слов, разделённых пробелами - знак пробела будет воспринят как конец ввода и в переменную str попадёт только первое слово из названия группы. Чтобы исправить это, потребуется использовать... ну, скажем, fgets(str, 100, stdin) для считывания строки. Однако именно эта функция и явилась причиной очень занятного бага, из-за которого программа не могла корректно работать. Дело в том, что функция fgets() прежде, чем завершить свою работу после нажатия <Enter>, считывает в строковую переменную str символ новой строки "\n"! Из-за этой "особенности" функция strcmp(str, bands[i]) работала некорректно - как я не бился, она "в упор" не видела очевидные совпадения введённой строки с элементом строкового массива... И вот теперь я знаю, в чём дело. Но как это исправить? В Интернете нашлось несколько различных howto на тему "как выкинуть ненужный символ новой строки из переменной". Однако все эти способы показались мне чресчур сложными для подобной задачи. После размышлений, я написал следующее:

// с функцией fgets проблема...
fgets(str, 100, stdin);
// ...она передаёт в символьную переменную str, кроме "обычных" символов,
// символ новой строки (\n). Из-за этого операции со str выполняются некорректно.
// Поэтому, с помощью простого цикла, мы находим символ конца строки
// и заменяем его на нулевой символ.
for(i = 0; i < strlen(str); i++) 

  if(str[i] == '\n') str[i] = 0;

После этого программа стала работать корректно.

В процессе изучения языка C++ я часто сталкиваюсь с различными проблемами, которые пытаюсь решить. Иногда это бывает очень просто, а иногда приходится потратить немало времени. В большинстве случаев, больше всего времени уходит на то, чтобы понять, где же я ошибся.

А вообще, на поиск и исправление ошибок может уйти время даже большее, чем на написание самой программы.

22 мая 2010 г.

Стихи на тему "грозы в начале мая"

Сегодня днём взял книгу, лёг на диван и... уснул. И вот, я один на асфальтированной (!) дороге в густом лесу, ночью. Вокруг вековые деревья огромной высоты, у меня в руках волшебная палочка и я никак не могу вспомнить заклинание, вызывающее свет... Проснулся. Из открытой форточки в лицо струится поток свежего воздуха с запахами мокрой травы, листвы, древесины, земли и асфальта. Пока я спал, в городе N^2 прошёл дождь. Кажется, я слышал несколько раскатов грома где-то вдалеке. Ну что же, давно пора - май уже скоро закончится, а ещё не было ни одной грозы.

Кстати, вот стихи на тему "грозы в начале мая", которые я написал уже давно, и, наверное, это совсем "детские" стихи. Точнее, стихи для детей. Однако, например, я до сих пор люблю стихи многих "детских" авторов, которыми зачитывался много-много лет назад. Возможно, эти стихи, написанные мной, будут интересны некоторым читателям этого блога.

http://poptsov-artyom.narod.ru/texts/2007/2007-05-16.html

21 мая 2010 г.

Размышления о "семантическом рабочем столе"

Недавно у меня были неполадки с компьютером (см. предыдущий пост) - при загрузке отказала одна из планок ОЗУ. Оперативная память оказалась заполнена на ~80-90%, ещё столько же сброшено в swap. В связи с активным swapping'ом нагрузка на процессор - ~100%. Таким образом стало ясно, что мне недостаточно 512Мб для обычной работы за компьютером. Недостаточно, чтобы держать запущенными все приложения и сервисы, которые запущены обычно.

Простой запуск системного монитора выявил приложения, которые занимают больше всего памяти в ОЗУ. Ими оказались броузер Firefox с более чем 10 открытыми вкладками (>100Мб), музыкальный проигрыватель Amarok (>50Мб), и сервис Nepomuk, обеспечивающий так называемый "семантический рабочий стол" (>250Мб).

Выключил сервис Nepomuk, после этого стало возможным нормально работать. Впоследствии оказалось (опять же, см. предыдущий пост), что обе планки ОЗУ работают, по крайней мере, пока - уже несколько раз перезагружал компьютер, ещё ни одна не отказала. И можно снова включить сервис Nepomuk...

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

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

Ну, и что же я жду от "семантического рабочего стола"? Отвечаю: во-первых, это практическая польза. Это помощь в организации данных, накопленных за всё время. Автоматическое архивирование и/или сжатие (с согласия пользователя, т. е. меня) редко используемых документов. Гибкая система настроек, возможность программировать поведение системы при определённых событиях. Работа сервиса не только в пределах пользовательских данных, но и тесная интеграция с системой, слежение за системными файлами и данными, взаимодействие с системами управления пакетами и исходными кодами ПО, подобными системе портежей в ОС Gentoo и т. д.

Хотя необходимо заметить, что "семантические" технологии находятся в начальной стадии развития, и, возможно, я просто сейчас слишком многого жду от них. Ну что же, попробую сделать Nepomuk полезным для себя.

19 мая 2010 г.

Проблемы с ОЗУ. 512Мб - много или мало?

Вчера утром я подошёл к компьютеру и нажал на кнопку включения. Компьютер начал загружаться, но на начальной стадии загрузки (когда опрашивается аппаратное обеспечение, "железо"), пропищал последовательно несколько раз и перезагрузился. После перезагрузки всё снова повторилось - писк и перезагрузка. Нажал на кнопку <Reset>, после очередной перезагрузки компьютер наконец-то загрузился. Ну что же, замечательно - только вместо 1024Мб ОЗУ я обнаружил только 512Мб.

Помню, давно как то я читал, что "писк" в начале загрузки - это не просто вопль компьютера, которого заставляют работать. Дело в том, что с помощью этого звукового сигнала компьютер сообщает пользователю о состоянии аппаратного обеспечения. Так, одиночный звуковой сигнал говорит о том, что всё в порядке. Если при опросе "железа" что-то пошло не так, то компьютер сообщит об этом опять же звуковым сигналом. Есть определённая последовательность звуковых сигналов для каждой неисправности. Если сломалась видеокарта - то одна последовательность, если что-то случилось с ОЗУ - другая, если блок питания барахлит - третья. Разная продолжительность и количество звуковых сигналов, и пауз между ними. Это похоже на азбуку Морзе. Таким образом, специалисты (к которым я, увы, не отношусь пока) могут определить на слух неисправность уже на этапе начальной стадии загрузки, ещё до того, как будут доступны какие-либо консольные средства диагностики (не говоря уже о графических).

Хотя я читал (тоже давно), что есть специальные устройства, подключаемые к компьютеру, которые позволяют вместо звукового сигнала получать непосредственно код неисправности.

И вот, компьютер загрузился, половины ОЗУ нет. Жуткие "тормоза". Даже курсор двигается рывками, иногда на время словно "прилипая" к окнам и рабочему столу. Работать невозможно. Эх, слышали бы это лет 15 назад - тогда пользователи и не мечтали о объёме ОЗУ в 512 мегабайт...

Но сейчас такого объёма недостаточно. Сервис Nepomuk, который постоянно находится в памяти и обеспечивает так называемый "семантический рабочий стол", иногда разрастается до огромных размеров в ~200-400Мб. Броузер "отхватывает" для себя ~100Мб и более (в зависимости от количества открытых вкладок), интегрированная среда KDE, без всяких супер-спецэффектов и т. н. "плазмоидов" на рабочем столе, тоже требует в ОЗУ несколько десятков мегабайт. Запущенный Emacs "ест", по сравнению с ними, всего лишь ~6-10Мб. Ах да, ещё свалка временных файлов /tmp располагается в ОЗУ благодаря монтированию в неё файловой системы tmpfs... А ведь были времена, когда оперативное запоминающее устройство в 64Кб считалось вполне достаточным для работы.

Уменьшение ОЗУ в два раза было отличным поводом задуматься, а нужен ли мне вообще сервис Nepomuk. Рассуждения по поводу "семантического рабочего стола" будут в следующем посте, я думаю.

А сегодня я разобрал компьютер, почистил его от пыли, запустил сначала с одной планкой ОЗУ, потом - с другой. Обе планки оказались рабочие. Вернул всё, как было. Запустил. Снова 1024Мб. Но подобный случай не может не насторожить. Пора читать умные книги о том, как чинить/обновлять/собирать компьютеры.

14 мая 2010 г.

Недавно открыл для себя музыку эмбиент/пост-рок проекта lowercase noises

Недавно открыл для себя музыку эмбиент/пост-рок проекта "lowercase noises". Этот проект состоит из одного человека по имени Andу Othling. С его творчеством можно ознакомиться на официальном сайте проекта:
http://www.lowercasenoises.com/

Сейчас можно бесплатно скачать его альбом "Seafront" с сайта проекта, для этого нужно получить специальный код, который музыкант периодически публикует через свой аккаунт на Twitter'е (кстати, вот его аккаунт: http://twitter.com/lowercasenoises). Каждый код действует только один раз (насколько я понял). Сегодня мне удалось заполучить этот альбом, причём, его можно скачать в различных форматах, в том числе, в формате FLAC, что приятно удивило.

Ах да, быть может, это мелочь, но альбом был упакован в архив zip (в Интернете, по моим наблюдением, чаще можно встретить проприетарный формат архивов rar)

Теперь о музыке (собственно, ради чего и написан этот пост). Плавное, даже как бы "танцующее" звучание гитары в эмбиент-композициях "Reeds", "Certain Remembrances" и "It Was A Sight", в последних трёх композициях альбома периодически срывается в пост-рок, контрастируя со спокойными треками в начале. В некоторых композициях фоном идёт повествовательный текст - не думаю, что он каким-то образом улучшает звучание, скорее, даже наоборот. Но это лишь IMHO.

На мой взгляд и слух, интересны песни, исполняемые "в живую", а так же эксперименты со звуком - которые музыкант записывает на видео и выкладывает на YouTube. Вот одна из композиций с альбома "Seafront", которая мне особенно понравилась в живом исполнении - "It Was A Sight" aka "Ambient Song #2"