?

Log in

No account? Create an account
Случайные заметки
19 most recent entries

Date:2006-08-27 14:49
Subject:Все нафиг
Security:Public

Звиняйте братцы, надоели мне глюки LJ. Залогиниться не дает уже совсем. Переезжаю. Посты все счас перенесу.
http://iportnov.blogspot.com





Date:2006-08-12 20:45
Subject:
Security:Public

LJ чо-то глючит по-страшному. При попытке зайти на ilya-portnov.livejournal.com делает редирект на тот же адрес, и так до бесконечности. Frefox замечает цикл и отказывается загружать. С ilya_portnov.livejournal.com этой траблы нет, но туда мне не дают залогинниться.
Лажа вобщем какая-то. Даже коменты толком не отправляются.





Date:2006-08-07 22:13
Subject:
Security:Public

Написал Питоновский скрипт для Blender-a, реализующий базовую функциональность proxy-объектов.
PS. блин, опять баги...
PPS. Вроде все исправил.
Исходник под катомCollapse )





Date:2006-07-27 18:30
Subject:Темы диссертаций :)
Security:Public

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





Date:2006-07-22 23:35
Subject:Blender Quickstart
Security:Public

На первый взгляд Blender может показаться устрашающим. Так много кнопочек, слишком много чтобы вы могли разобраться с ними методом тыка, поверьте мне, я-то знаю... Я пробовал. Так что я бы хотел персонально пригласить вас на страницу Blender Quickstart. Эта страница разработана чтобы обратить внимание на некоторые наши туториалы для начинающих, чтобы помочь вам начать моделировать и даже анимировать в Blender. Мы описываем почти каждую тему, о которой вы можете подумать, в нашей базе данных туториалов, и мы постоянно добовляем все новые. Одна вещь, которую вы должны знать - вы никогда не сможете прочесть ВСЕ туториалы отсюда, потому что как только вы подумаете, что прочли все, окажедся, что разработчики добавили новые возможности в эту и так замечательную программу. Итак, чего вы ждете? Читаем дальше...

== Туториалы

На http://blender3d.org мы храним громадную коллекцию туториалов и линки на еще большее количество туториалов, находящихся не на нашем сервере. Если вы только что начали разбираться с Blender, вы можете начать читать User Interface Tutorial (http://blender.org/cms/Blender_User_Interface.224.0.html), The Blender Windows (http://blender.org/cms/The_Blender_Windows.235.0.html), и Navigating in 3D Space (http://blender.org/cms/Navigating_in_3D_Space.241.0.html). Однако, если вы не хотите обращаться к ним очень часто, то хороший вариант - это мануалы.

== Мануалы

Blender Foundation публикует книгу, которая объясняет множество возможностей Blender, на великолепной бумаге. Это хороший вариант для людей, которые имеют плохое соединение и не хотят ждать, пока будут скачиваться web-страницы. Последняя версия - это Blender 2.3 Guide (http://www.blender3d.org/e-shop/product_info.php?products_id=79, в электронном виде по-русски: http://www.is.svitonline.com/sailor/doc/man/begin.htm). Оно описывает все основы, и большинство возможностей, доступных в версии 2.3x. В Blender E-Shop (http://www.blender3d.org/e-shop/default.php) можно заказать и более старые книги для тех, кому это нужно.

== Больше, чем мы

У вас есть целый Интернет! У нас есть не все туториалы по Blender из когда-либо написанных, хотя у нас их и много. Если вы не можете найти чего-то здесь (http://blender3d.org), поищите это в Google (http://google.ru). Это всегда хорошее место, чтобы начать искать решение вашей проблемы.





Date:2006-07-15 15:03
Subject:
Security:Public

Смеху ради прикрутил к своему Debian тему gtk2 от Ubuntu Dapper. Понадобилась папочка темы из /usr/share/themes и либа libubuntulooks.so из недр /usr/lib/gtk2/.
Ничо, прикольно выглядит ;)





Date:2006-07-07 23:38
Subject:Ubuntu 6.06 Dapper Drake - Краткий репортаж из LiveCD
Security:Public


Итак, наконец-то ко мне пришла партия свежих Ubuntu и я могу на это посмотреть ;) Сейчас вот пишу непосредственно загрузившись с LiveCD. Должен сказать, изменения в текущей версии по сравнению с предыдущей значительные.




Первое бросающееся в глаза изменение - теперь комплект Ubuntu состоит из одного диска вместо двух, этот один диск совмещает в себе LiveCD и установочный диск. Зато в комплект теперь входят наклейки - очевидно, на корпус. Наклеек к десяти дискам пришло почему-то двенадцать.



Процедура запуска LiveCD стала значительно менее "устрашающей" для простого юзера. Именно, имеем вместо текстового интерфейса, сильно смахивающего на установщик Debian, графический. При запуске появляется графическая менюшка типа "Обычный запуск", "безопасный режим" и прочее. Нажав F2, можно выбрать язык. После выбора пункта "Обычный запуск" появляется очень насмешившее меня окошко, выглядещее совсем как в Windows XP, с прогрессбаром "Загружается ядро Linux". После этого начнается (опять-таки в графическом режиме с прогрессбаром) собственно загрузка системы. Грузится LiveCD долго, зато работает потом весьма шустро.



После запуска перед нами предстает GNOME во всей красе. На рабочем столе оказывается папка Examples, содержащая, как ни странно ;), примеры - графических, музыкальных, видео- и просто текстовых файлов, которые можно посмотреть имеющимся на LiveCD софтом. Рядом с ней - значок Install, запускающий, соответственно, процесс установки системы на винчестер.



Еще из изменений рабочего стола бросилось то, что из контекстного меню десктопа исчез пункт "Создать терминал", ранее традиционный в GNOME. Видимо, таким образом разработчики Ubuntu хотят подчеркнуть, что теперь для работы с Linux командная строка не обязательна.



При первом запуске терминала в нем теперь появляется сообщение, информирующее, как запускать административные команды с помощью sudo.



Странно, что мои разделы на винтах автоматически определились (их видно в окне "Компьютер"), но не примонтировались (при двойном клике на значке система жалуется, что /dev/hdx# не является съемным устройством). GParted почему-то не увидел таблицу разделов на /dev/hda, хотя на /dev/hdb и /dev/hdd - увидел. Вручную все разделы примонтировались без проблем. В общем, над этим разработчикам еще работать и работать.




При втыкании флэшки сразу появился значок на десктопе и открылось ее содержимое - признак работоспособной системы HAL. Сканер, правда, сходу не заработал, ну так он и в рабочей моей системе завелся не сразу - это уже признак дешевого сканера :)



Локализация системы теперь гораздо более полная, переведена даже справка. Диалог выхода из системы теперь не стандартный гномовский, а свой, с большими красивыми кнопками.



В целом, я думаю, Ubuntu 6.06 вполне подходит для целей первоначального ознакомления с Linux. Более продвинутому пользователю такая дружелюбность обычно ни к чему.






Last updated 07-Jul-2006 17:01:23 YEKST





Date:2006-07-04 15:41
Subject:
Security:Public

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


(C) А.и Б. Стругацкие. Понедельник начинается в субботу.

Как раз про меня.





Date:2006-07-01 21:10
Subject:
Security:Public

Об уникальных возможностях свободного софта

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


Древовидная отмена в Vim 7

Про это я уже писал в статье "новые возможности Vim 7". Позволю себе процитировать себя любимого ;) :

Мы уже привыкли представлять себе последовательность действий в редакторе как обычный линейный список. Движение назад по нему возможно только с помощью отмены последнего действия. А если мы сделали действия 1, 2, 3, 4, 5, потом отменили действия 4 и 5 и сделали 6 и 7, то действия 4 и 5 безнадежно забыты.

Vim 7 изменяет это представление. Теперь действия в редакторе образуют не список, а дерево. И в упомянутой только что ситуации мы можем вернуться к состоянию, когда сделаны действия 1, 2, 3 и 4, одной командой :undo 4. А потом можем передумать и сказать :undo 7.

Разберем более наглядный примерчик. Пусть в файле у нас есть слово one. Мы добавляем к нему слово too. Потом исправляем слово too на two. Потом отменяем последнее действие, снова получаем one too. Теперь меняем слово one на me и получаем me too. Добавляем восклицательный знак. Эту последовательность действий можно представить такой диаграммой:

          'one'
            |
         change 1
            |
        'one too'
         /     \
   change 2   change 3
      |          |
  'one two'   'me too'
                |
              change 4
                |
             'me too!'

Хотите теперь вернуться к ситуации, когда у вас было one two? Пожалуйста - наберите :undo 2. Передумали и хотите получить me too - наберите :undo 3.

Команда :undo с числовым аргументом полезна, когда вы помните номер изменения, к которому вы хотите вернуться. Посмотреть список последних операций с их номерами можно по команде :undolist. А можно двигаться вперед-назад по дереву отмен, нажимая g+ и g-.

Vim 7 запоминает время, когда было произведено каждое действие. И благодаря этому появляется еще одна инновационная возможность - отмена и отмена отмены по времени. Скажем, вы редактируете большой файл. Например, пишете статью. И вдруг решаете, что все, что вы изменили в ней за последние 30 минут, было сделано неправильно. Наберите :earlier 30m - и получите текст, который был у вас полчаса назад. Решили, что все-таки первые несколько правок за эти 30 минут были правильными - наберите :later 5m.


Пообъектная отмена в Scribus

Для тех, кто еще не в курсе - Scribus - это свободная Desktop Publishing System (настольная издательская система), которая в Европе сейчас соревнуется на равных с монстрами типа QuarkXPress, InDesign, PageMaker. Так вот, в новой версии Scribus - 1.3.x - появилась возможность, которой нет в его коммерческих (и недешевых) конкурентах. Именно, история отмен теперь своя у каждого объекта! Пусть, например, на листе у нас - круг и квадрат, оба синие. Меняем кругу заливку на красную. Теперь меняем квадрату заливку на зеленую. Теперь выделяем круг и жмем "отмена" - и получаем синий круг с зеленым квадратом.


Встроенный трассировщик в Inkscape

Трассировщик - это программа, преобразующая растровое изображение к векторному виду. У Corel, например, есть Corel Trace. А в Inkscape интегрирован portrace - свободный трассировщик. Единственный, кроме Inkscape, векторный редактор со своим трассировщиком - Xara X. Но, во-первых, там он менее эффективен, а во-вторых, Xara LX теперь свободная софтина. Я работал с несколькими коммерческими трассировщиками - Corel Trace, Adobe Streamline и еще двумя-тремя подешевле ;) - ни один из них не может сравниться по скорости и эффективности с встроенным в Inkscape portrace. Кроме того, интегрированный трассировщик Inkscape содержит уникальную возможность - SIOX, то есть выделение нужных объектов. Импортируем растровую картинку с изображенной на ней ящерицей, поверх картинки обводим ящерицу замкнутым закрашенным контуром, выделяем картинку и контур, в трассировщике ставим галочку SIOX и жмем Ок. В результате векторизованная картинка содержтит одну ящерицу, без окружающего фона.


Inkboard в Inkscape

Другая уникальная возможность Inkscape - Inkboard. Это протокол, работающий поверх Jabber и позволяющий многим людям одновременно работать над одним документом Inkscape (параллельно обсуждая работу в другой комнате Jabber). Документ располагается на Jabber-сервере, каждый правит локальную копию, при сохранении копии синхронизируются. Единственный реально альтернативный способ организовать такую работу - работать с чем-нибудь типа CorelDraw, а документ сохранять на сервере Subversion (коммерческие системы контроля версий, умеющие работать с бинарными файлами, стоят столько, что Corel-у и не снилось). При этом автоматически теряем интегрированность решения.


Лепка узлов в Inkscape

И еще одна уникальная возможность Inkscape - лепка узлов. Если вы знаете, что такое "Мягкое выделение" в 3DSMax или "пропорциональное редактирование" в Blender, то вы знаете что такое лепка узлов в Inkscape. Остальным поясню. Берем кривую со множеством узлов. Выделяем десяток узлов и тащим один из них с нажатым Alt. Сам этот узел тащится куда скажут, те, которые рядом с ним, перемещаются, но чуть на меньшее расстояние, а те, которые дальше, перемещаются только чуть-чуть. Таким образом, если изначально все узлы были выстроены по прямой, после перетаскивания получим колоколообразную кривую. Эта возможность позволяет гибко изменять форму сложных кривых, не занимаясь при этом перетаскиванием каждого из сотен узлов.


Физический движок Blender

Blender - это система трехмерной анимации, свободный аналог 3DSMax и Maya. Может быть, чего-то ему по сравнению с конкурентами пока что и не хватает, но есть у него особенность, выгодно отличающая от коммерческих аналогов. Это - физический движок. Изначально физический движок в Blender предназначен для создания игр, однако сейчас он развивается в направлении все большей интеграции с режимом моделирования и анимации. Например, делаем шарик, висящий в воздухе, и плоскость пола. Назначаем шарик Actor-ом и запускаем режим игры. Шарик под действием силы тяжести падает на пол и несколько раз отскакивает. Другая возможность физического движка Blender-а - имитация мягких тел. Делаем вертикальную плоскость со многими узлами, некоторые из узлов на верхнем краю помечаем как закрепленные, добавляем "ветер", настраиваем параметры, запускаем анимацию - и наблюдаем тряпочку, колышащуюся на ветру. Наконец, Blender может имитировать жидкость, которая льется, плещется и брызгается. Все эти возможности - расчет механических взаимодействий, мягких тел, жидкостей - есть в виде плагинов (каждый не дешевле $1000) к 3DSMax и Maya, но в самих этих пакетах таких возможностей нет.


Цвет высокой разрядности в Cinepaint, Krita, [Gimp]

Adobe Photoshop CS2 поддерживает в качестве родного режима 8 бит на канал, почти родного - 16 бит на канал и немножко поддерживает 32 бита на канал. У других коммерческих растровых редакторов общего назначения с этим еще хуже. Cinepaint и Krita (используя библиотеку OpenEXR) (а в скорости и Gimp с помощью библиотеки GEGL) поддерживают в качестве родных форматов 8, 16, 32 бита на канал, включая режим floating point, дающий гораздо большую точность при сложных манипуляциях с цветом. Из коммерческих редакторов такой режим поддерживает только узкоспециализированный, обычно заказной софт стоимостью во многие тысячи долларов. Мало того, в новой версии Cinepaint аннонсирована поддержка режима 64 бита на канал!


Заключение

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


Last updated 01-Jul-2006 21:06:58 YEKST





Date:2006-06-22 16:32
Subject:Винды маст дай!
Security:Public

вчера пытался винды поставить...
ох и извращенная операционка.
у меня два винта, на одном линуха, другой запасной.
На основном таблица разделов исторически сложилась в беспорядке: hda1, hda9, hda10, hda5,....
Стал ставить винды на второй винт. Она говорит - чтоб я нормальна грузилась, надо пометить тот раздел, который сейчас активный, как неактивный.
Ну я говорю хрен с тобой, груб с любого загрузит.
и что она сделала - перенумеровала (!) разделы на основном (! не том куда ставлю !) винте, и стерла из его МБР груб!
после чего после перезагрузки выяснилось, что винда не умеет грузиться со слейва.
каким бы словом БГ назвать...





Date:2006-06-19 16:34
Subject:
Security:Public

Наконец-то я приделал к ion3 то, что давно хотел: теперь, во-первых, в строке состояния показывается имя текущего десктопа, а во-вторых, по Win-B можно быстро переключиться на десктоп, на котором только что были.





Date:2006-06-19 00:34
Subject:
Security:Public

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





Date:2006-06-13 21:16
Subject:Новые возможности Vim 7
Security:Public

Новые возможности Vim 7

Тут попросили написать обзор новых возможностей в Vim 7. Ну что ж, получите… :)

Вкладки

Теперь Vim умеет работать со вкладками, как многие GUI текстовые редакторы. Конечно, и раньше можно было открыть два xterm с экземпляром vim в каждом. Но теперь можно нажать yy в одной вкладке, а p - в другой! Вместе с уже традиционной для vim возможностью разбивать каждое окно на два по вертикали или горизонтали вкладки дают потрясающую гибкость интерфейса.

Все команды, предназначенные для работы со вкладками, начинаются с :tab. Перечислю основные из них:

Команда Что делает
:tabnew Новая вкладка
:tabclose Закрыть вкладку
:tabn <n> Перейти к вкладке <n>
:tabnext Следующая вкладка
:tabprevious Предыдущая вкладка

Конечно, набирать такие длинные последовательности символов каждый раз не очень-то удобно. Спасает возможность vim определять для любых действий комбинации клавиш командой map. Например, в большом количестве программ создание новой вкладки назначено на комбинацию Ctrl-T. В vim эта комбинация традиционно используется для возврата по ссылке (а переход по ссылке - Ctrl-]). На мой взгляд, это не самый удачный выбор клавиатурной комбинации. Поэтому можно написать в ~/.vimrc следующее:


map g<Left>  :pop<cr>      " Вернуться по ссылке

map g<Right> <C-]>         " Перейти по ссылке

map <C-T>    :tabnew<cr>   " Новая вкладка

map <C-A>    :tabclose<cr> " Закрыть вкладку

Теперь переход по ссылкам вперед-назад повешен на сочетания g<Right>, g<Left>, новая вкладка создается по Ctrl-T, а закрывается по Ctrl-A (традиционное во многих программах сочетание Ctrl-W в vim занято - это префикс для операций с окнами).

А я, например, предпочел для операций с вкладками выделить отдельный префикс Ctrl-T, подобно тому как для операций с окнами выделен префикс Ctrl-W:


map <C-T>n :tabnew<cr>      " Новая вкладка

map <C-T>c :tabclose<cr>    " Закрыть вкладку

map <C-T>h :tabprevious<cr> " Предыдущая вкладка

map <C-T>l :tabnext<cr>     " Следующая вкладка

Кроме перечисленных команд, есть еще целый ряд команд, образованных дописыванием к обычным командам vim префикса :tab. Они делают то же, что и обычные, но - в новой вкладке. Так, например, по команде :tabe filename файл filename откроется для редактирования в новой вкладке.

Еще одна важная команда, работающая со вкладками - :tabdo <команда>. Она выполняет указанную команду сразу во всех открытых вкладках. Это можно использовать, например, для замены текста сразу в нескольких открытых файлах.

Проверка орфографии

Теперь проверка орфографии встроена в vim. Чтобы она заработала, нужно взять с ftp://ftp.vim.org/pub/vim/runtime/spell/ файлы ru.koi8-r.sug и ru.koi8-r.spl (или другие, соответствующие вашей локали) и положить их в ~/.vim/spell. Теперь, чтобы включить проверку орфографии в текущем буфере, нужно дать команду :setlocal spell spelllang=ru (или en, или en,ru, в зависимости от языков вашего текста). Для выключения - :setlocal spell spelllang=. Ошибочные слова в консольном vim подсвечиваются красным фоном, а в gvim - подчеркиваются волнистой красной линией.

Приведу основные клавиатурные команды, относящиеся к проверке орфографии:

Команда Что делает
]s Перейти к следующей ошбке
[s К предыдущей ошибке
z= Выдать список возможных замен
zG Добавить слово в словарь
zW Пометить слово как ошибочное

Умное автодополнение

Vim теперь умеет автодополнение в стиле MS Visual Studio - с выпадающими списками. При редактировании исходного текста, скажем, на C++, находясь в режиме вставки, наберите первые буквы идентификатора, нажмите Ctrl-X,Ctrl-P - и получите выпадающий список с возможными вариантами продолжения (или идентификатор будет дополнен сразу, если продолжение единственно)! Самое удивительное, что выпадающие списки работают даже в консоли.

Умные отмены

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

Мы уже привыкли представлять себе последовательность действий в редакторе как обычный линейный список. Движение назад по нему возможно только с помощью отмены последнего действия. А если мы сделали действия 1, 2, 3, 4, 5, потом отменили действия 4 и 5 и сделали 6 и 7, то действия 4 и 5 безнадежно забыты.

Vim 7 изменяет это представление. Теперь действия в редакторе образуют не список, а дерево. И в упомянутой только что ситуации мы можем вернуться к состоянию, когда сделаны действия 1, 2, 3 и 4, одной командой :undo 4. А потом можем передумать и сказать :undo 7.

Разберем более наглядный примерчик. Пусть в файле у нас есть слово one. Мы добавляем к нему слово too. Потом исправляем слово too на two. Потом отменяем последнее действие, снова получаем one too. Теперь меняем слово one на me и получаем me too. Добавляем восклицательный знак. Эту последовательность действий можно представить такой диаграммой:


          'one'

            |

         change 1

            |

        'one too'

         /     \

   change 2   change 3

      |          |

  'one two'   'me too'

                |

              change 4

                |

             'me too!'

Хотите теперь вернуться к ситуации, когда у вас было one two? Пожалуйста - наберите :undo 2. Передумали и хотите получить me too - наберите :undo 3.

Команда :undo с числовым аргументом полезна, когда вы помните номер изменения, к которому вы хотите вернуться. Посмотреть список последних операций с их номерами можно по команде :undolist. А можно двигаться вперед-назад по дереву отмен, нажимая g+ и g-.

Vim 7 запоминает время, когда было произведено каждое действие. И благодаря этому появляется еще одна инновационная возможность - отмена и отмена отмены по времени. Скажем, вы редактируете большой файл. Например, пишете статью. И вдруг решаете, что все, что вы изменили в ней за последние 30 минут, было сделано неправильно. Наберите :earlier 30m - и получите текст, который был у вас полчаса назад. Решили, что все-таки первые несколько правок за эти 30 минут были правильными - наберите :later 5m.

Ну что я могу сказать?

Воистину, у Vim 7 есть только один конкурент - Emacs с его ELisp-ом (правда, дерева отмен нет и там). И создатели Vim в очередной раз показали, что самый классический редактор в *nix является самым современным.


Last updated 13-Jun-2006 20:32:15 YEKST





Date:2006-06-13 21:15
Subject:Набор латентного виндузятника
Security:Public

Набор латентного виндузятника

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

Предположим, "большой" софт выбрали (OpenOffice и пр.), систему установили. Иксы поставили, а вот над DE/WM не грех задуматься. Конечно, если машины мощные и памяти до…пояса, можно поставить KDE или GNOME (не зря же этой памяти пропадать ;)). Однако такая ситуация встречается не часто. Чаще имеем (в офисе, скажем) что-то вроде Celeron 1.7G и 256Mb RAM на материнке знаменитой фирмы NoName (или, что еще лучше, SiS). KDE на такой машине, конечно, работает, но как-то свиста (как летает) не слышно. Хотелось бы чего-то полегче. При этом это "что-то" должно по возможности сильнее походить на Windows. И есть такая партия…тьфу, программа, товарищи! Называется она IceWM. Это очень легкий оконный менеджер, при этом, во-первых, в умолчальном виде сильно похожий на Windows, а во-вторых, довольно хорошо настраиваемый. Т.к. пользователь у нас предположительно никогда не работал ни с Linux, ни с X Window System, ни с виртуальными рабочими столами, предлагаю первым делом виртуальные рабочие столы в IceWM отключить. Иначе постоянно придется бегать на мольбы "а у меня все куда-то делось!" (правильно, на другой десктоп переключилась одним кликом мышки). Далее, устанавливаем по умолчанию тему "xp", и вуаля!

Я предлагаю по возможности использовать софт из GNOME или просто gtk2-based. Это, конечно, влечет за собой немало геморроя с зависиостями и прочим, но ведь устанавливаем-то один раз, а работать пользователю придется постоянно! Почему GNOME? Дело в том, что большая часть софта, написанного для GNOME, следует заветам HIG (Human Interface Guides). Которые составлялись профессиональными юзабилистами. В KDE, правда, тоже недавно появились собственные HIG, но только недавно, и софта, написанного с их учетом, пока мало.

Для Gtk2 есть замечательная тема SmoothXP. В сочетании с темой "xp" в IceWM выглядит, во-первых, довольно юзабельно, а во-вторых - весьма похоже на WindowsXP.

Ну, чего еще не хватает до полного windows-подобия? Во-первых, иконок на рабочем столе, во-вторых, explorer-подобного файл-менеджера. И оба эти качества сочетает в себе замечательная софтина по имени rox-filer (очень рекомендую прочитать документацию, там много полезного). Будучи запущен без параметров, rox-filer показывает в explorer-подобном виде содержимое текущей директории. Чтобы заставить его работать с иконками на рабочем столе, нужно запустить его с опцией "-p", например, так:


$ rox -p 0

Что замечательно, rox-овский десктоп работает почти как в Windows, т.е. на него можно вытаскивать документы и прочее. Отличие состоит в том, что в Windows десктоп - это просто папка с файлами, а у rox - это папка со _ссылками_ на файлы. Поэтому в Windows перетаскивание файла из окна "мои документы" на рабочий стол переместит этот файл, а в rox - оставит документ на месте, создав на рабочем столе ссылку на него. Поэтому-то и называется в оригинальной документации rox рабочий стол не "desktop", а "pinboard", на который можно "приколоть" нужные файлы.

Еще бы побороть вечный вопрос начинающего линуксоида - "а где тут мой компьютер?". Делается это, на самом деле, очень просто. Создаем где-нибудь директорию (например, ~/.mycomp), в которую кладем симлинки на нужные нам директории (/, /mnt/floppy, /mnt/cdrom, /mnt/flash и пр.). Вытаскиваем эту директорию на рабочий стол и присваиваем ей подходящую иконку и подпись "мой компьютер". Открываем ее rox-ом и меняем иконки нашим симлинкам, заодно переименовывая их по образу и подобию Windows.

Да, упомянули "мой компьютер" - сразу вспоминается другая вечная проблема начинающего линуксоида - монтирование сменных носителей - флэшек и прочих там дискет. Ну, fstab-то правильно написать мы не забудем, но заставлять секретаршу делать mount/umount… И тут нас выручает rox! Директории, прописанные в fstab как точки монтирования, он помечает серым кружком, если устройство не примонтировано, и зеленым - если примонтировано. При входе в "непримонтированную" точку монтирования rox делает mount. При выходе из нее (по кнопке "вверх" или при закрытии окна) rox спрашивает: желаете ли вы отмонтировать носитель? Достаточно нажать "Отмонтировать", и rox сделает umount. Таким образом, работа со сменными носителями в rox еще более прозрачна, чем в Windows.

При всем при этом rox не является просто копией explorer-а. Я еще не упоминал, что

  • иконки можно легко менять как для отдельных файлов/папок, так и для всего типа файлов сразу,

  • по одной кнопке можно увеличить/уменшить размер иконок,

  • можно легко привязать к одному типу файлов несколько возможных приложений для открытия,

  • работает меню Send To, причем можно сделать так, чтобы определенные приложения показывались в этом меню только для некоторых типов файлов, или только в случае, когда выбрано более одного файла,

  • типы файлов устанавливаются общесистемным способом MIME-type, но при этом есть возможность для конкретных файлов жестко задать тип файла вручную, для этого надо только, чтобы ФС поддерживала User Extended Attributes (XFS поддерживает их по умолчанию, для Ext3 и ReiserFS нужно включить поддержку в ядре и указать опцию user_xattr в fstab),

  • поддерживается меню закладок и меню последних просмотренных директорий,

  • rox умеет показывать превьюшки вместо иконок для картинок (с кешированием),

  • rox поддерживает не только drag-to (это когда перетаскивание файла из окна rox в окно OO Writer влечет открытие этого файла), но и drag-from, т.е. можно из Gimp-a перетащить изображение в окно rox, и оно будет сохранено в соответствующей папке… ?

Неплохой списочек получился, не правда ли? Более того, в rox есть подручные средства, сильно упрощающие работу с explorer-подобным интерфейсом. Например, по нажатию клавиши "`" (на которой "~" и буква "Ё" в русской раскладке) открывается терминал в текущей директории. По нажатию "/" внизу окна появляется панелька, предлагающая ввести текущий путь вручную (причем работает автодополнение). По нажатию "." появляется панель для выбора файлов по маске. По нажатию "?" - панель для выбора по условию - например, можно ввести "size > 30 kb", или "mtime after 1 day ago and size > 10 Mb". В меню "Показать (Show)" есть опция "Filter Files…", позволяющая отобразить только файлы, подходящие под шаблон.

И все бы хорошо… Но есть у rox-а пара недостатков. Первый - при клике правой кнопкой на файле появляется почти то же меню, что и при клике на пустом месте, и чтобы что-то сделать с этим файлом, нужно зайти в подменю. Лечится это легко - нужно в настройках, в разделе "Меню" поставить галочку "File menu on right-click". Второй недостаток более серьезный. Состоит он в том, что rox не дружит с не-unicode локалями. В итоге (при локали, скажем, ru_RU.KOI8-R) русские имена файлов показываются красным цветом с всплывающей подсказкой, сообщающей, что лучше бы файл переименовать. Хотя работать с такими файлами можно. А при создании файлов/директорий с русскими именами он пишет эти имена в кодировке utf-8, что (при локали, отличной от ru_RU.UTF-8) делает их нечитабельными в других программах. Слава богу, для версии rox 2.2.0 есть патч, практически полностью решающий эту проблему. Вот линк на патч: http://dissolution.nm.ru/nix/files/patch-locale-2.2.0 . К сожалению, я не знаю, где надыбать аналогичный патч для более поздних версий rox-filer-a. (при локали ru_RU.UTF-8, насколько мне известно, все нормально).

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


Last updated 23-Apr-2006 12:49:10 YEKST





Date:2006-06-13 21:13
Subject:Linux для математика
Security:Public

Linux для математика

Сегодня DropC спросил меня о математическом софте в Linux. Это тема настолько объемна, что я решил ответить небольшой обзорной статьей. Тем более, что математический софт бывает нужен далеко не только математикам. Более того, большинство пользователей того же MatLAB-a - вовсе не математики, а физики и инженеры. Да и программисту такой софт бывает необходим…

Итак, вопрос: есть ли для Linux (*nix) аналоги известных коммерческих математических пакетов? Ответ: есть, более чем.

Небольшая табличка аналогов:

Коммерческий пакет для Windows Аналог для Linux Лицензия Homepage Комментарии
MathCAD Symaxx/2 GPL symaxx.sf.net К сожалению, не очень интуитивный интерфейс. Является графическим front-end-ом к Maxima. Написан на Perl/Tk.
MuPAD Коммерческий www.mupad.de Не видел ;)
Mathematica, Maple maxima GPL maxima.sf.net Прародитель Mathematica и Maple.
axiom GPL axiom-developer.or g До 2001г. - самая дорогая система компьютерной алгебры (по слухам, порядка $200k).
Mathematica Linux Коммерческая wolfram.com Практически полный аналог своей сестры для Windows, только бывают проблемы со шрифтами
Maple Linux Коммерческая maplesoft.com
MatLAB SciLAB Своя, типа GPL scilab.com Почти совместим с MatLAB 5/6 на уровне исходников.
Octave GPL octave.org Нет своего аналога Simulink. Почти совместима с MatLAB.
MatLAB Linux Коммерческая mathworks.com Дороже своей Windows-версии
Statistica R GPL r-project.org Мощный язык для статистических вычислений + куча модулей.
OpenDX GPL opendx.org Одна из мощнейших в мире систем визуализации данных.

И здесь еще не все перечислено… Математического софта под *nix просто море.

Причем интересна его история.

В 50-60-х годах в США на волне интереса к компьютерам начали создавать системы компьютерной алгебры. (в смысле, программы, способные сообразить, что (a+b)2 = a2+2ab+b^2, не зная, что такое a и b). И, конечно, такая софтина нужна была одному мирному американскому ведомству. И это ведомство объявило конкурс на лучшую CAS (Computer Algebra System) для своих нужд, пообещав всяческую поддержку. Конкурс этот выиграл мало кому известный тогда проект Macsyma (CAS, написанная на Lisp). И, получив поддержку, очень неплохо развивался как коммерческий проект года так до 1984. А в 1984 году небезызвестный Richard Stollman объявил о создании FSF и опубликовал первую версию GPL. Услыхав про это, один из отцов-основателей проекта Macsyma заявил руководству (и Пентагону) ультиматум: "либо а) мне передают все наработки проекта, и я паралельно развиваю GPL-версию Macsyma, либо б) я ухожу из проекта". Так как второй вариант означал быстрый распад проекта, Пентагон вынужден был согласиться на первый. Так появилась свободная CAS под названием Maxima. Она развивалась паралельно с Macsyma до начала 1990-х. А в 1991 СССР распался, холодная война кончилась, и Пентагон прекратил финансирование проекта. В 1994 Macsyma прекратила свое развитие. Исходники были частично распроданы, и на их основе вскоре появились Mathematica и Maple. А Maxima продолжает развиваться до сих пор.

С axiom вышла тоже интересная история. Этот проект развивался самостоятельно, и развился в очень мощную и очень дорогую CAS. Однако, организаций, способных заплатить несколько сот тысяч баксов за копию программы, не так уж много. Так что к началу XXI века продажи резко упали (рынок был насыщен), и проект стал коммерчески нерентабельным. Тогда авторы axiom выпустили ее под лицензией GPL.

Maxima и Axiom замечательны уровнем абстракции, который они предоставляют пользователю. Они поддерживают так называемые Rule-based преобразования. Например, можно задать, что "f(A and B)" переходит в "f(A) or f(B)", и CAS сделает преобразование, не задумываясь ни о том, что такое A и B, ни о смысле операций and или or. Это позволяет производить преобразования не только над математическими выражениями, но над чем угодно, что может быть записано в виде формулы.

Изюминка Maxima состоит в большой гибкости синтаксиса. Например, объявив "f(x,y):= x2-y2", можно объявть f инфиксным оператором и писать далее вместо "f(x,y)" - "x f y".

У Axiom тоже есть свои изюминки. Во-первых, это язык с очень мощной и простой системой типов. Например, можно объявить "A: List Matrix Rational Polynomial Complex" - "пусть А - это список матриц из дробей, числителями и знаменателями которых являются многочлены над комплексными числами". Во-вторых, поддерживаются весьма абстрактные операции из области абстрактной алгебры и теории чисел. "Приведение многочленов над полем Галуа" - слышали про такое? Криптоаналитики слышат каждый день. А в Axiom для этого есть встроенная функция. В-третьих, Axiom имеет очень интересный алгоритм вычисления интегралов. Большинство CAS, встретив слишком сложный для них интеграл, просто оставляют его как есть. Это у них означает "Либо интеграл не берется в элементарных функциях вообще, либо я просто не знаю, как его брать". Axiom выдаст интеграл как был только в том случае, когда может математически доказать, что взять его в элементарных функциях невозможно.

Из CAS под Linux можно упомянуть еще yacas, yorick и GAP. Все это свободный софт.

GAP - совершенно замечательная система. Ее название - аббревиатура, расшифровывается как "Groups, Alghorithms and Programming". Это изначально свободный (GPL) проект создания модульной системы для абстрактной алгебры. На сегодняшний день это мощнейшая из систем такого рода (в том числе и коммерческих). Здесь "поле", "кольцо", "группа" - это типы данных, а "вычисление идеала банаховой алгебры" - стандартная функция.

Ну ладно, CAS обсудили, поехали к "числодробилкам" (системам численных вычислений). Из коммерческих продуктов здесь на ум сразу приходит MatLAB. Это очень дорогая система. В том составе, в котором мы привыкли видеть ее на пиратских дисках, она стоит что-то от $40k "студенческая лицензия" (т.е. с правом установки на один компьютер один раз, без тех.поддержки) до $60k Enterprise Edition.

Проект SciLAB появился как коммерческий, но более дешевый конкурент MatLAB-a. Коммерчески проект себя не оправдал, и исходники открыли. Лицензия - "почти GPL", но с изменениями, направленными на то, чтобы затруднить появление многочисленных мало совместимых версий. Эта программа почти полностью совмекстима с MatLAB на уровне исходных текстов (m-файлов). Здесь есть даже аналог Simulink - средства визуального проектирования математических моделей.

Octave появился как "чисто GNU GPL" конкурент SciLAB-a. На сегодняшний день во многом совместима с MatLAB-ом, но нет аналога Simulink.

Из этой же серии можно отметить Tela - "interactive tensor language". Замечателен pascal-подобным синтаксисом.

Остались только программы для статистиков.

В качестве функциональной замены системы Statistica можно посоветовать язык статистических вычислений R. Это очень мощный язык, плюс к нему написаны десятки модулей для конкретных задач (кластерный анализ, финансовый инженеринг, распределенные вычисления…).

Для визуализации численных данных ученые всего мира используют OpenDX. Изначально это недешевый продукт IBM (dx - data explorer), однако исходники открыли, сейчас это GPL-проект. Считается мощнейшей системой в своем классе.

Материалы собраны по всему Интернету, плюс личный опыт общения с CAS и числодробилками.


Last updated 02-May-2006 21:51:13 YEKST





Date:2006-06-13 21:10
Subject:Некоторые команды консоли Linux
Security:Public

pwd Вывести текущую директорию.

hostname Вывести или изменить сетевое имя машины.

whoami Ввести имя под которым я зарегистрирован.

date Вывести или изменить дату и время. Например, чтобы установить дату и время равную 2000-12-31 23:57, следует выполнить команду:

date 123123572000

time Получить информацию о времени, нужного для выполнения процесса + еще кое-какую информацию. Не путайте эту команду с date. Например: Я могу определить как много времени требуется для вывода списка файлов в директории, набрав последовательность:

time ls

who Определить кто из пользователей работает на машине.

rwho -a Определение всех пользователей, подключившихся к вашей сети. Для выполнения этой команды требуется, чтобы был запущен процесс rwho.

finger [имя_пользователя] Системная информация о зарегистрированном пользователе. Попробуйте:

finger root

uptime Количество времени прошедшего с последней перезагрузки.

ps a Список текущих процессов.

top Интерактивный список текущих процессов отсортированных по использованию cpu.

uname Вывести системную информацию.

free Вывести информацию по памяти.

df -h (=место на диске) Вывести информацию о свободном и используемом месте на дисках (в читабельном виде).

du / -bh | more (=кто сколько занял) Вывод детальной информации о размере файлов по директориям начиная с корневой (в читабельном виде).

cat /proc/cpuinfo Системная информация о процессоре. Заметьте, что файла в /proc директории - не настоящие файлы. Они используются для получения информации, известной системе.

cat /proc/interrupts Используемые прерывания.

cat /proc/version Версия ядра Linux и другая информация

cat /proc/filesystems Вывести используемые в данный момент типы файловых систем.

cat /etc/printcap Вывести настройки принтера.

lsmod (как root) Вывести информацию о загруженных в данный момент модулях ядра.

set|more Вывести текущие значения переменных окружения.

echo $PATH Вывести значение переменной окружения "PATH" Эта команда может использоваться для вывода значений других переменных окружения. Воспользуйтесь командой set, для получения полного списка.

ls Список файлов в текущей директории. При выполнении команды dir выполняется команда ls.

cd [директория] Сменить директорию.

cp [что_копировать] [куда_копировать] Копировать файлы.

mv [что_перемещать] [куда_перемещать] Переместить или переименовать файл.

ln -s [на_что_сделать_ссылку] [имя_ссылки] Создать символическую ссылку.

rm [файлы] Удалить файлы.

mkdir [директорию] Создать новую директорию.

rmdir [директорию] Удалить пустую директорию.

rm -r [файлы и/или директории] (рекурсивное удаление) Удалить файлы, директории и их поддиректории. ОСТОРОЖНЕЙ с этой командой если у вас права суперпользователя! Пока у Linux нет системы полного восстановления удаленных файлов (если вы не пользуетесь специальными программами для помещения удаленный файлы в специальный каталог - a la корзинка под W95).

cat [имя_файла] | more Просмотр содержимого текстового файла по одной странице за раз.

less [имя_файла] Просмотр содержимого текстового файла с возможностью вернуться к предыдущим страницам. Нажмите q когда захотите выйти из программы. "less" - аналог команды DOS "more", хотя очень часто "less" бывает более удобной чем "more".

tar -zxvf [файлы] Распаковать архив tgz или tar.gz, который вы вытянули из сети.

find / -name "имя файла" Найти файл с именем "имя файла". Поиск начинается с директории / . "имя файла" может содержать маску для поиска.

telnet [сервер] Связаться по telnet с другой машиной. Используйте имя машины или ее IP адрес. Войдите с помощью вашего пароля (вы должны быть зарегистрированы на этой удаленной машине). Это позволит вам войти на другую машину и работать на ней, как будто вы сидите за ее клавиатурой (почти никаких отличий).

ftp [сервер] Связаться по ftp с удаленным компьютером. Этот тип связи хорош для копирования файлов с/на удаленную машину.

alias ls="ls -Fskb --color" Создать alias - псевдоним для того чтобы одной командой можно было запустить более сложную комбинацию команд. Поместите создание alias в файл /etc/bashrc если вы хотите, чтобы эти псевдонимы были доступны всем пользователям вашей системы.

adduser [имя_пользователя] Зарегистрировать нового пользователя (у вас должны быть права суперюзера). Например:

adduser ivanov

Не забудьте следующим делом настроить пароль пользователя. Директория пользователя находится в каталоге /home/имя_пользователя.

useradd [имя_пользователя] То же, что и adduser.

userdel [имя_пользователя] Удалить пользователя из системы (вы должны зайти как root). С пользовательским каталогом и не прочитанными письмами удаленного пользователя нужно разбираться отдельно.

groupadd [имя_группы] Создать новую группу пользователей на вашей системе. Не обязательно создавать группу непосредственно на основной машине.

passwd Изменить пароль. Если вы суперпользователь, то вы можете изменить пароль любого зарегистрированного пользователя набрав команду:

passwd имя_пользователя

chmod [права доступа] [файл] (=change mode) Изменить права доступа файлов, чьим владельцем вы являетесь (если вы не root, в этом случае вы можете изменить права доступа для любого файла). Есть три способа доступа к файлу: чтение - read (r), запись - write (w), исполнение - execute (x) и три типа пользователей: хозяин файла - owner (u), члены той же группы, что и хозяин файла (g) и все остальные (o). Поверить текущие права доступа можно следующим способом:

ls -l имя_файла

Если файл доступен всеми способами всем пользователям, то напротив имени файла будет следующая комбинация букв:

rwxrwxrwx

Первые три буквы - это права доступа для хозяина/хозяйки файла, второй триплет - права доступа для его/ее группы, следующая тройка - права доступа для остальных. Отсутствие права доступа показывается как "-".; Например: Эта команда позволит вам установить права доступа на чтение для файла "junk" для всех (all=user+group+others):

chmod a+r junk

Эта команда отнимет право доступа на исполнение файла у всех кроме пользователя и группы:
www.linuxdoc.ru
chmod o-x junk

Для получение дополнительной информации наберите chmod --help или man chmod или почитайте любое руководство по Linux. Вы можете установить права доступа по умолчанию для создаваемых вами файлов с помощью команды "umask" (наберите man umask).

chown [новый_хозяин] [файлы]
chgrp [новая_группа] [файлы] Изменить хозяина и группу для файла. Вы можете использовать эти две команды, после того как сделали копию файла для кого-либо.

su (=super user) Вход в систему как суперпользователь (у вас спросят ваш пароль). Набрав "exit" вы вернетесь в вашу предыдущую пользовательскую оболочку. Пользователь root существует для администрирования системы и команда su дает быстрый доступ к возможностям суперпользователя, когда вам это потребуется. Никогда не входите в систему под пользователем root, используйте для этой цели команду su.

ps (=print status) Вывести список текущих процессов с их IDs (PID) идентификаторами. Используйте

ps axu

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

fg [PID] Вернуть фоновый или приостановленный процесс в интерактивное (высокоприоритетное) состояние;

bg [PID] Сделать процесс фоновым. Обратная функция от fg. Может следовать вслед за комбинацией .

kill [PID] "Убить" процесс. Для начала определите PID "убиваемого" процесса при помощи ps.

killall [имя_программы] "Убить" все процессы по имени программы.

xkill (в терминале X window) "Убить" процесс, на окно которого укажите курсором.

lpc (как root) Проверить очередь принтера.

lpq Вывести список очереди заданий на печать.

lprm [номер_задания] Удалить задание из очереди на печать.

nice [имя_программы] Запустить процесс, установив его приоритет.

renice [PID] Изменить приоритет процесса.






Date:2006-05-19 01:06
Subject:
Security:Public

From Windows to Linux

Эти записки предназначаются для людей, которые привыкли пользоваться Windows, но хотят перейти на Linux. Это не учебник по Linux, но я постараюсь дать краткое описание основных отличий, без понимания которых практически невозможно работать в Linux.

Первое отличие, которое я хотел бы отметить - документированность. В отличие от Windows, где справка своей краткостью предлагает вам купить толстенную книгу, а книга обилием воды призывает пройти платные курсы, Linux поставляется с полной документацией. К сожалению, большая часть этой документации - на английском языке. Русская документация зачастую входит в Linux, кроме того, ее почти всегда можно найти в Интернете, но, опять же к сожалению, зачастую она устарела по сравнению с англоязычным оригиналом.

Главный источник документации - команда man. Если вы работаете в консоли, достаточно набрать

man имя-топика<Enter>,

чтобы получить справку по нужной теме. В случае, если вы работаете в графическом окружении, нужно из меню вызвать эмулятор терминала (например, xterm), и в нем набрать указанную выше команду. Прежде всего предлагаю изучить руководство по самой команде man, набрав "man man".

Кроме того, по Linux и связанным вопросам существует много бумажных и электронных книг. Например, после прочтения этой заметки я посоветовал бы начинающему пользователю начать читать книгу Алексея Федорчука, доступную на http://linuxcenter.ru под названием "Введение в POSIX ивизм", или ее бумажную версию, вышедшую недавно под названием "Доступный UNIX: Linux, FreeBSD, DragonFlyBSD, NetBSD, OpenBSD".

Далее я постоянно буду ссылаться в скобках на страницы man, например: (man hier).

Следующее отличие - устройство файловой системы. В Windows у вас есть несколько носителей информации, перечисленных в окне "Мой компьютер", и на каждом из них есть своя файловая система - система вложенных папок (директорий) и файлов в них. В Linux существует единая файловая система, здесь нет такого понятия как "Диск C:". Графически файловую систему удобно представлять как дерево. Корень этого дерева - это корневая директория файловой системы, она содержит в себе директории bin, usr, etc и прочие, те, в свою очередь - еще директории и файлы…

Разделителем директорий в пути в Linux служит слэш (/), а не бэкслэш (\), как в Windows. Корень файловой системы сам по себе обозначается как "/". Такким образом, если в Windows типичный путь выглядит как "C:\Windows\System", то в Linux - "/usr/local/bin". Нужно заметить, что файловая система Linux чуствительна к регистру символов, так что "file" и "FiLE" - это имена разных файлов.

Еще одна особенность файловой системы Linux - то, что устройства, подключаемые к компьютеру, предстают файлами, расположенными в директории /dev.

Каждый носитель информации (жесткий диск или usb-флэш) содержит собственную файловую систему (ФС) со своей структурой директорий. Чтобы к этой ФС можно было получить доступ, она должна быть подключена к единой файловой системе Linux, при этом нужно указать, к какой из ветвей дерева нужно осуществлять подсоединение. Например, если на флэшке есть файлы "file1.doc", "file2.doc" и директория "dir" с файлом "indir" внутри, то после подсоединения ФС флэшки к директории /mnt/flash мы будем иметь файлы /mnt/flash/file1.doc, /mnt/flash/file2.doc, /mnt/flash/dir/indir. Операция подсоединения называется монтированием, и выполняется с помощью команды mount (man mount). Перед тем, как физически отсоединить носитель (выдернуть флэшку, например), необходимо произвести действие, обратное монтированию - размонтирование, иначе можно потерять данные на нем. Размонтирование производится с помощью команды umount.

Если у вас есть несколько разделов диска, или несколько дисков, с которыми вам нужно работать постоянно, то, чтобы эти диски монтировались при старте системы автоматически, нужно прописать их в файле /etc/fstab (man fstab).

Следующее отличие касается установки программ. В Windows программа, как правило, при установке кладет все свои файлы в c:\program files\имя-программы, и, возможно, еще в c:\windows или куда-нибудь еще. В Linux файлы программ раскладываются по директориям не по принадлежности программам, а по их предназначению. Так, все исполнимые файлы самых необходимых программ лежат в /bin, все конфигурационные файлы - в /etc, библиотеки - в /lib и т.д. При этом программы, входящие в состав дистрибутива Linux, но не являющиеся необходимыми для запуска системы, кладут свои файлы в иерархию /usr (/usr/bin - исполнимые файлы, /usr/lib - библиотеки, и т.д). Программы, не входящие в состав дистрибутива и установленные пользователем, располагаются в /usr/local (/usr/local/bin и т.д). На расположение и назначение всех этих директорий существует стандарт - Filesystem Hierarchy Standart (FHS). Он описан в man hier.

Четвертое различие относится к системе безопасности. В Windows имеются лишь минимальные средства разграничения прав доступа, и по ряду причин чаще всего они не используются вовсе. В Linux это весьма мощные средства, и используются они постоянно. В системе есть некоторое количество пользователей, различающихся по имени (login) и паролю (password). Каждый пользователь может входить в одну или несколько групп. Обычный пользователь может изменять файлы только в своей домашней директории (home), в частности, он не может устанавливать и удалять программы. Благодаря этому обычный пользователь ни случайно, ни специально не может повредить всю систему в целом или данные других пользователей. Но один из пользователей отличается от остальных. Это root - системный администратор. Ему по определению разрешено все. Именно поэтому категорически не рекомендуется работать в системе под именем root. Представляться системе root-ом нужно только для проведения административных мероприятий: установки и удаления программ, форматирования дисков и тому подобных задач.

Далее, в Linux графический интерфейс не является неотъемлемой частью операционной системы, как в Windows. Графический интерфейс - все эти окна, иконки и курсоры - обеспечивается отдельным приложением, работающим наравне с остальными. Поэтому сбой в работе графической системы не влечет за собой сбой в работе ОС в целом. (за подробностями о работе графики в Linux см. man X, man Xserver).

Исторически в Linux основным режимом работы был режим работы с командной строкой. При этом у вас нету никаких окошек и иконок, а есть приглашение командной оболочки и мигающий курсор. Вы набираете на клавиатуре команды, подтверждая их нажатием Enter, а компьютер выполняет их и вновь выдает приглашение набрать команду. При этом доступны автодоплнение команд и их аргументов, а также полная справка о том, как работает каждая команда - по команде "man <имя-команды>". Программа, которая с вами непосредственно общается, называется командной оболочкой (shell). Командной оболочкой по умолчанию является bash, поэтому за подробностями о работе с командной строкой обращайтесь к man bash.

Каждая команда имеет вид:

$ <имя-команды> <опции> <параметры>.

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

Опции бывают "короткие" и "длинные". Короткие опции выглядят как одна английская буква (или цифра) с дефисом впереди, например, "-f". Длинные опции выглядят как английское слово, предваренное двумя дефисами, например, "—force". Обычно каждая короткая опция имеет длинный аналог (то есть существует "длинная" опция, делающая то же самое), но не наоборот. Длинные опции проще запоминать, зато короткие опции быстрее набирать. Опции задают режимы работы команды - например, опция "-f" (или "—force", что то же самое) команды cp указывает команде переписывать файлы при совпадении имен. Нектоторые опции имеют аргументы - те пишутся через пробел или через знак равенства от опции, например "—backup=numbered". Таким образом, опции - это дополнения в языке командной строки. Короткие опции можно комбинировать, например, "cp -b -d" можно сократить до "cp -bd".

Параметры задают объекты, с которыми должна работать команда - например, файлы, которые нужно копировать. Таким образом, параметры - это существительные.

Опции и параметры у каждой команды свои, среди них могут быть как обязательные, так и необязательные. Все они описаны в man <имя-команды>.

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

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

DOS Linux Примечание
ATTRIB (+-)attr file chmod <mode> file полностью отличаются
BACKUP tar -Mcvf device dir/ то же самое
CD dirname\\ cd dirname/ почти тот же самый синтаксис
COPY file1 file2 cp file1 file2 то же самое
DEL file rm file будьте осторожны, нет восстановления файлов
DELTREE dirname rm -R dirname/ то же самое
DIR ls не полностью похожий синтаксис
DIR file /S find . -name file полностью отличаются
EDIT file vi file я думаю, вы не полюбите его (а зря!)
jstar file выглядит как редактор в dos
EDLIN file ed file забудьте его
FORMAT fdformat,
mount, umount достаточно отличный синтаксис
HELP command man command, та же философия
info command
MD dirname mkdir dirname/ почти тот же самый синтаксис
MORE file less file намного лучше
MOVE file1 file2 mv file1 file2 то же самое
NUL /dev/null то же самое
PRINT file lpr file то же самое
PRN /dev/lp0,
/dev/lp1 то же самое
RD dirname rmdir dirname/ почти тот же самый синтаксис
REN file1 file2 mv file1 file2 не для множества файлов
RESTORE tar -Mxpvf device другой синтаксис
TYPE file less file намного лучше
WIN startx на разных полюсах!


Last updated 19-May-2006 00:56:04 YEKST





Date:2006-05-19 00:00
Subject:
Security:Public

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


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


Есть программы, которые следует выбросить еще до использования.


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


Если программист работает с языком, в котором разрешены только три индекса, то вряд ли мы обнаружим больше трех.


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


Конструктор системы страдает от того, что чем лучше его система делает свое дело, тем меньше пользователи знают о ее существова
нии.


Каждая программа имеет соответствующий уровень продуманности и запутанности в зависимости от цели, для которой она применяется.


Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, ца
рят красота и совершенство.


Для локализации ошибки, однако, желателен человек, обладающий упорством тещи и стадными инстинктами крысы.


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


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


Есть эффект отсутствия устной формы: это затруднения, которые мы испытываем, говоря о языке программирования без доски и мела л
ибо карандаша и бумаги. В каждой программистской лаборатории должны быть доска, мел и достаточное количество тряпок.


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


Очень важно не прерывать вопросов. Любопытство имеет свое право на существование.
(Альберт Эйнштейн)

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


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


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


Когда программист испытывает затруднения при поиске ошибки, это значит, что он ищет не там, где следует.


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


Мозг человека обычно загружен лишь на 10
своей мощности; остальное резерв для оперaционной системы.


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


Проект (OS/360) был закончен с опозданием, система потребовала большего объема памяти, чем планировалось, затраты значительно п
ревысили предварительные оценки, вся система начала работать как следует только после создания нескольких вариантов, последовав
ших за первым.


Корабль на мели -- моряку маяк.
(Голландская пословица.)


Неподатливость проблемы (срыва планов разработки систем) вызывает всеобщее изумление, и разобраться в ее природе непросто.


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


Программист, как поэт, работает почти непосредственно с идеями.


Вы печатаете на клавиатуре заклинание, и вот экран дисплея оживает, показывая объекты, которых не было и могло не быть никогда
. Но если хоть один символ, один пробел в магической формуле не находится строго на своем месте, волшебство не работает.


Во всех областях творческой деятельности формальный объем прав никогда не согласуется с ответственностью.

Выдавать глобальные идеи то удовольствие; искать сволочные маленькие ошибки от настоящая работа.


Как только проект окончательно принят, он становится устаревшим в смысле своих концепций.


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


Все программисты -- оптимисты: "На этот раз программа обязательно пройдет!", "Я только что нашел последнюю ошибку!".


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


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


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


Когда кажется, что все уже работает, все объединено в систему -- вам еще осталось работы на четыре месяца.


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


Если за две минуты омлет еще не готов, у заказчика два выбора подождать или съесть его сырым .


Закон Брукса: если программистский проект не укладывается в сроки, то добавление рабочей силы только задержит его окончание.


Концептуальное единство является самым важным соображением при проектировании системы.


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


Ни функциональность, ни простота сами по себе не гарантируют высокого качества проекта.


Добавляя малое к малому, получишь большую кучу.
( Овидий )


Он сядет здесь и будет распоряжаться: сделайте то!, сделайте это! о абсолютно ничто не сдвинется с места.
( Г.Трумэн, "О президентской власти" )


Никогда не выходи в море с двумя хронометрами: бери один или три.


Я в этом разбираюсь. Я знаю, что нужно делать о каждый раз, когда я пытаюсь заняться технической проблемой, какой-нибудь идиот
требует, чтобы я принял решение насчет грузовика, или телефонов, или другой такой же чертовщины.
( Роберт Хайнлайн, MAN WHO SOLD THE MOON
Проблема том, что все, кто здесь работал, и я в том числе, хотели сделать действительно чистую работу, только они не хотели чи
стой работы, они хотели много быстро.


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


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


шибка? Это не ошибка, это системная функция.


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


У компьютера всегда есть оправдание; у программиста -- никогда.


Пользователь не знает, чего он хочет, пока не увидит то, что он получил.


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


Работа не может быть выполнена должным образом, если нет необходимых инструментов.
( PROCEEDINGS OF THE IEEE, 2/78, р.174 )


Я слышу и забываю.
Я вижу и запоминаю.
Я делаю и понимаю.
( Конфуций )


На пустом диске можно искать вечно.


Я пишу все свои критические программы на ассемблере, а комедийные а фортране.

Бесполезно придумывать защиту от дурака -- ведь дураки так гениальны.


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


Если отладка процесс удаления ошибок, то программирование должно быть процессом их внесения.
(Э. Дейкстра)


Вы уже дошли до состояния, когда у вас нет времени, чтобы разрешить те проблемы, которые отнимают у вас все время???





Date:2006-05-18 21:21
Subject:Хело
Security:Public

Хело ворлд ;)




browse
my journal