Софтерра:Заметки поселенца
Софтерра:Заметки поселенца
Посмотрел на календарь и удивился: с того момента, как я попытался хотя бы недельку «протянуть» под Linux, прошло уже больше года, в течение которого я если и перезагружался под альтернативной ОС производства известной редмондской компании, то очень редко и ненадолго - и при первой же возможности с удовольствием возвращался обратно, в свободную и дружественную систему. Впечатлений от Linux за этот год накопилось множество - некоторыми из них хотелось бы поделиться.
Проблемы и решения
Первое открытие начинающего линуксоида состоит в следующем: любая проблема имеет решение. Это такое свойство открытого софта - если что-то не работает или работает не так, вы всегда можете немного повозиться, найти причину неполадок и в конце концов устранить их на радость себе и окружающим. При этом и диагностика, и лечение производятся не шаманскими методами, вроде «переставить программу» или «перезагрузить компьютер», а вполне научными: анализом log-файлов, чтением документации и поиском дополнительной информации. В худшем случае может понадобиться, например, написать драйвер для какой-нибудь новой железки или сделать что-нибудь еще столь же нетривиальное и требующее специальных познаний, - но, как правило, достаточно уметь пользоваться Google и обладать базовыми навыками работы с системой. Большинство проблем, с которыми может столкнуться новичок, уже обсуждались где-то в Сети, и, скорее всего, решение можно найти в форумах или конференциях - главное, правильно сформулировать поисковый запрос.
Обычно на сайте программы ведется учет и контроль обнаруженных багов (с помощью системы, аналогичной bugzilla, или через почтовый список рассылки) - там можно убедиться, что разработчики в курсе существующих проблем, и найти возможные способы их решения. Стоит также проверить, используете ли вы самую свежую версию, - ошибки исправляются достаточно оперативно, и порой изменение последней цифры в номере релиза оказывает существенное влияние на его стабильность. Если же вдруг вы стали первооткрывателем неисправности, не поленитесь и сообщите о ней, отправив как можно более подробное описание всех ваших злоключений (с указанием версий, особенностей настройки, выдаваемых ошибок и т. д.), - скорее всего, помощь придет (быть может, даже быстро), а за информацию о глюке сообщество скажет вам огромное спасибо.
Мы пойдем другим путем
Философия работы с компьютером в Unix/Linux и Windows принципиально разная. С точки зрения Unix-системы, программ должно быть много, и каждая должна заниматься своим делом, а сложная функциональность достигается за счет их взаимодействия: одни приложения могут использовать другие, передавать друг другу информацию и вообще жить бурной внутрисистемной жизнью. Более того: пользователь, по мнению Unix, представляет собой лишь еще один процесс, не лучше и не хуже какой-нибудь утилиты или демона. Соответственно отдельные софтинки должны уметь общаться в первую очередь с себе подобными - то есть обладать интерфейсами, которые поддаются автоматической обработке.
В Windows все наоборот: программы готовы взаимодействовать с человеком (с помощью GUI), но не со своими собратьями. В результате отсутствия разделения труда приложения обрастают гроздьями функций, размер дистрибутивов растет как на дрожжах, а новые возможности бывают далеко не всегда нужны большинству пользователей. Конечно, «монолитные» программы есть и под Linux, но общая концепция системы все-таки другая, что чувствуется в большинстве открытых разработок.
Впрочем, это не значит, что весь свободный софт жутко недружелюбен. Проблема пользовательского интерфейса решается в рамках Unix way легко и изящно: многие GUI-приложения просто являются надстройками (frontend) над консольными утилитами (backend). Например, под Linux существует несколько систем синхронизации с «Палмами» (kpilot, jpilot и т. д.), но все они являются frontend’ами над разработкой pilot-links, осуществляющей взаимодействие с КПК. Аналогичным образомработают CD-рекордеры K3b и xcdroast, а также множество других GUI-программ. Подобный подход дает серьезные преимущества: не теряя в удобстве работы по сравнению с «монолитами», мы приобретаем гибкость модульной архитектуры.
Разговор с компьютером
Наличие множества программ с доступом из командной строки создает своеобразную языковую среду, в которой очень любят работать юниксоиды. Из нескольких тысяч «слов» можно составлять «предложения», выполняющие довольно нетривиальные действия. Можно изобретать новые «слова», используя скриптовые языки (Shell, Perl, Python и др.), что позволяет расширять возможности самовыражения и упрощать работу с системой. При этом компьютер выступает в качестве очень прилежного ученика-помощника, которому достаточно один раз объяснить, как выполнять то или иное действие, и можно быть уверенным, что он все поймет и запомнит (если, конечно, вы правильно объясняли).
Меняется само отношение к работе с компьютером: оно становится более творческим, смещаясь от периодического прочесывания Интернета в поисках новой «классной программы для…» к решению конкретных задач теми средствами, которые предоставляет система. Конечно, это не значит, что софт искать совсем не приходится или что нужно все писать самому, - но зачастую такой подход оказывается быстрым и эффективным. К тому же он позволяет реализовывать весьма специфические вещи, которые практически невозможно найти в сторонних разработках. Подчеркнуть собственную индивидуальность всегда приятно, а интересная и необычная функция, сделанная своими руками, - это вам не логотип на экране мобильника, купленный за доллар у оператора.
Мы наш, мы новый? ..
При использовании свободного софта меняются не только привычки - меняется мировоззрение. Работая в среде, созданной энтузиастами, поневоле сам становишься одним из них. Найдя интересную разработку, задумываешься не только о том, как ее использовать для решения своих задач, но и о том, как можно помочь ее авторам и другим пользователям - например, реализовать нужную функцию, сообщить об ошибке или ответить на вопрос в форуме. Когда понимаешь, что ситуация под твоим контролем, что твой браузер не станет проверять, насколько лицензионно чиста твоя система, а медиаплейер не будет без твоего ведома сообщать «куда надо», какую музыку ты любишь, что нужная программа не исчезнет с лица земли только потому, что разработчик ее забросил, а исходники выложить не захотел, - начинаешь понимать, что свободный софт - это не просто громкие слова.
Практические занятия
Есть каталог с фотографиями. Требуется повернуть каждое изображение в соответствии с положением камеры при съемке (некоторые цифровые фотоаппараты записывают информацию об ориентации снимка в EXIF-данные JPEG-файлов), а также изменить размер на 800х600.
Для работы с EXIF нам потребуется пакет jhead, а для изменения размера изображений - функция convert из набора инструментов ImageMagick. Заклинание для решения всех наших проблем выглядит следующим образом:
mkdir output; for FILE in *.jpg; do jhead -autorot “$FILE“; convert “$FILE“ -resize 800x600 “output/$FILE“; done
Несмотря на то что эта длинная команда пишется в одну строчку, она представляет собой полноценную мини-программу. В ней есть даже цикл (участок между do и done), перебирающий все jpg-файлы в текущем каталоге (их имена записываются в переменную $FILE). Авторы jhead уже позаботились об автоматическом повороте картинок (достаточно указать ключ -autorot), а команда convert умеет не только преобразовывать практически любые типы графических файлов в любые другие, но и обладает недюжинными познаниями в области обработки изображений, так что изменить размер снимка для нее - пара пустяков.
Оповестить пользователя звуковым сигналом о том, что появилась связь с Интернетом.
while [ -z “`ping -c 1 computerra.ru - grep 1 received`“ ]; do sleep 1; done; aplay “`locate redalert.wav`“
В переводе на русский язык, эта строчка означает приблизительно следующее: если до сервера computerra.ru достучаться не удалось, нужно подождать одну секунду и повторить попытку; затем найти файл redalert.wav и проиграть его. При этом используются многие хитрости языка bash: обратные кавычки, перенаправление потоков ввода-вывода и неявный вызов команды test с помощью квадратных скобок, но подробный разбор синтаксиса остается за рамками данной статьи.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Заметки к слайду
Заметки к слайду Во время работы над презентацией бывает полезно снабдить слайды дополнительной информацией, которую докладчик может просмотреть перед выступлением. По умолчанию она не видна в стандартном слайд-шоу, но всегда доступна в режиме редактирования. В
15.17.5 Заметки о реализациях NFS
15.17.5 Заметки о реализациях NFS Программа может постоянно запрашивать от своей операционной системы чтение или запись небольшого числа байт. Постоянный доступ к жесткому диску за небольшим количеством данных крайне неэффективен. Обычно операционная система проводит
Добавление заметки в блог
Добавление заметки в блог Если пользователь хочет общаться с блоггером, он может оставлять комментарии к записям блога (заметки). Блоггер должен просматривать оставленные комментарии, не только чтобы отвечать на них, но и для того, чтобы удалять комментарии, выходящие за
Заметки, документы, опросы
Заметки, документы, опросы ВКонтакте – это вам не Twitter и не вымерший телеграф, ограничения на количество знаков в статусе практически нет. Но если писучесть одолела по-настоящему и хочется явить миру не абы что в несколько строчек, а творение покапитальнее, да еще и
Заметки
Заметки Если вы щелкнете на кнопке Создать в режиме Заметки, то увидите такое окошко (рис. 4.26). Рис. 4.26. Заметка Эту заметку вы можете оставить в таком виде, чтобы она висела перед глазами, а можете, щелкнув на крестике, закрыть это окошко, и тогда текст заметки появится в
Электронные заметки
Электронные заметки Возможности программы Microsoft Outlook 2007 предусматривают создание и хранение любого количества необходимых заметок. Режим работы с заметками представляет собой аналог обычного блокнота, в котором делают какие-то пометки, записи, напоминания, фиксируют
Субъективные заметки
Субъективные заметки Из опыта работы, а также из описания самих программ, предоставляемого производителями, автор может представить следующие рекомендации:• для несложных задач подходит программа FineReader, особенно ее последняя, шестая версия; ее достоинства
Заметки
Заметки Вот, наконец, и последняя кнопка! …Редко в какой организации не увидишь компьютер или стену, густо облепленную приметными желтыми листочка-ми-стикерами «для заметок». Конечно, эти милые бумажки приятны и удобны, да вот только стен они все-таки не украшают. А
Заметки для Читателя
Заметки для Читателя «О многом,» – молвил Морж, – «Пришла пора поговорить.» Л. Кэррол В этой главе содержится обзор книги, список библиографических ссылок и некоторые замечания по С++ вспомогательного характера. Замечания касаются истории С++, идей, оказавших влияние на
56 Заметки из итальянского ресторана
56 Заметки из итальянского ресторана Культурным сердцем Тосканы является город великого искусства и великолепной еды. Для американцев это Флоренция, для итальянцев — Firen-ze. Колонны часто встречаются в архитектуре Firenze. При написании этой колонки[46] я черпал вдохновение в
Режим создания заметки
Режим создания заметки Для перехода из режима экрана ПК в режим создания заметки необходимо коснуться маркером пиктограммы Новая страница (рис. 6.3). В режиме создания заметки предполагается использование инструментов интерактивной доски, которые будут подробно
Заметки
Заметки Статья Берда Киви вполне самодостаточна, но требует некоторых комментариев, которые слишком длинны, чтобы оформить их как сноски, и слишком тесно связаны с основным текстом, чтобы оформить их как врезки.Во-первых, нужно пояснить, что американская Секретная служба