Пресс-релиз кандидатской диссертации - интересная идея!



18 коммент.
В июньском номере научно-популярного журнала "Химия и Жизнь", который я давно и с удовольствием читаю, появилась небольшая статья, к химии в общем не относящаяся. А именно, в ряде европейских университетов есть традиция - каждый диссертант, помимо своей работы, пишет пресс-релиз, то есть краткое изложение работы в научно-популярном стиле и без заумных специфических терминов. Пресс-релиз должен объяснять суть вашей работы, грубо говоря, бабушкам у подъезда. Мне это показалось очень интересным - может быть, кто-нибудь ещё захочет культивировать это и в своих университетах.

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

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

Так или иначе, я решил эту идею воплотить в жизнь на собственном примере. Просмотрев несколько образцов, быстренько сделал LaTeX-шаблон для пресс-релиза и соответственно оформил его. Вот что из этого получилось:

Пресс-релиз
Конник Михаил Всеволодович 10 июня 2009 года



Цифровое восстановление изображений
в отображающих системах с оптическим кодированием

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

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

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

Казалось бы - зачем сознательно искажать фотографию, а потом её такими трудами восстанавливать? Не проще ли сразу сфотографировать нормальное изображение: взять объектив получше и фотоаппарат подороже, и проблемы нет.

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

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

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

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

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

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

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

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

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


В общем:
Идеи, пожелания и конструктивная критика, как всегда, приветствуются в комментариях.
Читать далее

Эмулятор QEMU и работа с USB в гостевой системе



11 коммент.
Ситуация: в эмуляторе QEMU требуется работать с USB-устройствами в гостевой (эмулируемой) машине; при этом USB-устройства подключены к хост-машине (т.е. к реальному компьютеру).
Решение: немного чёрной магии, параметр -usb и lsusb спасут отца русской демократии.

Рабочий пример: Windows XP, которая установлена в эмуляторе QEMU, который установлен в Debian GNU/Linux Etch. Для примера затащим в QEMU USB-флешку и будем работать с ней в Windows, которая в QEMU, который в Debian.

Запускаем виртуальную машину QEMU, например, с такими параметрами:
qemu -usb -m 200 -hda mustdiexp.img -boot c -localtime
красным помечен обязательный параметр -usb, т.е. нужно явно указать QEMU, что мы хотим использовать USB. Далее включаем флешку, и в консоли узнаём, куда подключилась наша флешка. В этом нам поможет сначала dmesg, а потом lsusb. При этом dmesg нам скажет адрес устройства, а lsusb - его точный идентификатор.

Как узнать адрес устройства в Linux? Легко - спросим dmesg, и он ответит:

usb 1-6: new high speed USB device using ehci_hcd and address 15
usb 1-6: configuration #1 chosen from 1 choice
scsi9 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 15
usb-storage: waiting for device to settle before scanning
scsi 9:0:0:0: Direct-Access JetFlash TS4GJFV35 8.07 PQ: 0 ANSI: 2
sd 9:0:0:0: [sde] 7987200 512-byte hardware sectors (4089 MB)
sd 9:0:0:0: [sde] Write Protect is off
sd 9:0:0:0: [sde] Mode Sense: 03 00 00 00
sd 9:0:0:0: [sde] Assuming drive cache: write through
sd 9:0:0:0: [sde] 7987200 512-byte hardware sectors (4089 MB)
sd 9:0:0:0: [sde] Write Protect is off
sd 9:0:0:0: [sde] Mode Sense: 03 00 00 00
sd 9:0:0:0: [sde] Assuming drive cache: write through
sde: sde1
sd 9:0:0:0: [sde] Attached SCSI removable disk
sd 9:0:0:0: Attached scsi generic sg4 type 0
usb-storage: device scan complete
Красным я подсветил искомое - адрес нашего устройства 15. Теперь интересуемся у lsusb насчёт идентификатора устройства, и он нам всё выдаст:
penta4@penta4rce:~$ lsusb
Bus 005 Device 005: ID 046d:c03e Logitech, Inc. Premium Optical Wheel Mouse
Bus 005 Device 003: ID 046e:5500 Behavior Tech. Computer Corp.
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 004: ID 03f0:1204 Hewlett-Packard DeskJet 930c
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 015: ID 058f:6387 Alcor Micro Corp.
Bus 001 Device 014: ID 04fc:0c15 Sunplus Technology Co., Ltd
Bus 001 Device 001: ID 0000:0000
Готово: идентификатор нашего устройства 15 есть 058f:6387 С этими данными идём в эмулятор QEMU, заходим в гостевую систему, нажимаем CTRL+ALT+2 и попадаем в консольный режим QEMU. Там мы пишем:
usb_add host:058f:6387
Если QEMU пишет, что не может добавить ваше устройство, а вы уверены, что всё сделано правильно - проверьте права на файл-устройство, оно должно быть с полными (777) правами. В консоли, откуда запущен QEMU, увидите:
/proc/bus/usb/001/015: Permission denied
Стало быть, идём и делаем так:
penta4rce:/proc/bus/usb# chmod -R 777 001/
Не очень изящно, зато работает :-) Можно ещё править udev.rules, но мне под вечер с этим было откровенно лень заниматься.

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

Ссылки
Пост был написан, когда мне пришлось снова вспоминать, как я врубал USB в годы моей ударной молодости :-) Дабы не гуглить, вот несколько интересных ссылок по теме "USB в QEMU", особенно на замечательную Книгу Слаки (Slackbook).
Читать далее

Монтирование разделов и дисков в Linux



72 коммент.
Рано или поздно пользователи Linux сталкиваются с таким понятием как монтирование разделов и дисков в Linux. Многие, особенно бывшие пользователи Windows, испытывают трудности с монтированием разделов, хотя если задуматься, то всё очень просто и логично. Ниже приводятся описание процесса монтирования в UNIX-like системах и разбор наиболее типичных случаев. И даже если вы окружены графическим интерфейсом, знание консольных команд может очень пригодиться. Кроме того, узнав пару-тройку полезных команд UNIX, вы приобщитесь к этой чёрной магии и, может быть, начнёте её использовать.


Монтирование разделов в Linux - общие слова

Если ядро Linux опознало ваше устройство-носитель данных, то оно должно предоставить какой-то внешний интерфейс пользователю для работы с устройством. Этим интерфейсом является создание файлов-устройств в каталоге /dev

Пример:

Устройствам, подключённым к IDE, будут соответствовать файлы-устройства /dev/hda, /dev/hdb и так далее.

Устройствам типа SCSI, а также близкие им по духу SATA-устройства и USB-флешки, будут иметь файлы-устройства /dev/sda, /dev/sdb и тому подобное.

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

Пример:

если на USB-флешке есть два раздела, то первый будет называться /dev/sda1, а второй /dev/sda2
Монтирование разделов = объяснение системе, как добраться до ваших данных и сделать их доступными для использования. Системе нужно объяснить три простые вещи:
  1. какая файловая система на разделе;
  2. какой файл-устройство вам нужно;
  3. куда его подключить для просмотра = точка монтирования;
Каталог, в котором вы будете просматривать содержимое ваших разделов, называется точкой монтирования (mount point). Поэтому нужно объяснить системе - командой или через графический интерфейс - что вы хотите смонтировать, куда и что за файловая система на этом разделе.

В переводе на язык UNIX, это звучит так:
mount -t vfat /dev/hda3 /mnt/storage

Если нужно часто монтировать одни и те же разделы, занесите их в /etc/fstab - это общесистемный конфиг, в котором указаны все необходимые разделы для монтирования. Редактировать этот файл может не абы кто, а только root. Так что разживитесь рутовыми полномочиями и редактируйте /etc/fstab

Файл /etc/fstab состоит из колонок,
разделителями между которыми являются символы табуляции (клавиша TAB). Вот пример содержимого файла /etc/fstab:
# /etc/fstab: static file system information.
#
#

/dev/hda2 / reiserfs notail,noatime 0 1
/dev/hdb /mnt/cdrom iso9660 ro,user,noauto 0 0
/dev/sda1 /mnt/flash vfat iocharset=koi8-r,codepage=866,rw,user,auto 0 0


Формат колонок такой:
  • Монтируемое устройство (файл-устройство, он же раздел, который вы хотите примонтировать)
  • Точка монтирования (в какую директорию в файловой системе монтировать)
  • Тип монтируемой файловой системы
  • Опции монтирования (кодировка языка, необходимость монтирования при старте)
  • Dump (обычно 0)
  • Pass (обычно 0)
Важно, чтобы вы вставляли Тab после каждой колонки при редактировании /etc/fstab

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

mount -t vfat /dev/hda1 /home/vasya/tempdir
прикрутить тип FAT что прикрутить куда это прикрутить

Пишем буквально то, чего хотим: от имени суперпользователя, прикрутить логическую структуру с файловой системой
типа FAT, находящуюся в файле /dev/hda1, к каталогу /home/vasya/tempdir

После всех операций раздел следует размонтировать, чтобы данные на него записались из памяти - точно так же, как при работе с флешками в Windows. Для этого следует дать команду:
# umount /mnt/XX
или
$ sudo umount /mnt/XX
где
/mnt/XX - точка монтирования. Если ни одно приложение не работает с разделом, то раздел размонтируется, отключится и данные на него полностью запишутся. После этого устройство можно безопасно извлечь.

Чтобы посмотреть, что можно смонтировать, и увидеть информацию о разделах, можно воспользоваться командой (запуск от root):
# fdisk -l
Увидите что-то вроде:
Disk /dev/hda: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors/track, 7296 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 36 289138+ 82 Linux swap / Solaris
/dev/hda2 * 37 7296 58315950 83 Linux
Всё очень просто и логично. Как и многое другое в UNIX.


Предварительные действия перед монтированием

Прежде, чем монтировать разделы, нужно создать точки монтирования. Точки монтирования следует создавать в каталогах
/mnt или /media.Пример: Для того, чтобы создать точку монтирования с названием /mnt/win в консоли даём команду:
$ sudo mkdir /mnt/win
или
# mkdir /mnt/win
и даём каталогу права доступа для обычных пользователей:

$ sudo chmod 777 /mnt/win
или
# chmod 777
/mnt/win
Это позволит считывать и записывать данные не только суперпользователю-руту, но и обычному пользователю. Даже если в системе вы - единственный пользователь. Свою точку монтирования в директории /mnt нужно создать для каждого раздела.Не бойтесь, если вы не знаете точно, как теперь называются ваши виндовые диски C:\ или D:\ и монтируйте разделы с указанием типа файловой системы fat или ntfs - если ошибётесь, раздел не примонтируется и вы увидите ошибку вроде
mount: wrong fs type, bad option, bad superblock on /dev/sda2,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
Не боимся - просто нам команда mount сказала, что примонтировать у неё не получилось.

Далее приводятся описания нескольких типичных случаев монтирования разделов и файлов.


Как примонтировать раздел с файловой системой FAT в Linux
Самое главное здесь - кодировка. Замечательная корпорация Microsoft изобрела свою собственную кодировку CP866 для MS DOS, CP1251 для Windows и только в последнее время прозрела до UTF8. Благодарим Microsoft за изобретение велосипеда с треугольными колёсами и приступаем к монтированию.

Однократное монтирование FAT 

Временное, однократное монтирование, например, флешки, выглядит в командной строке так:
$ sudo mount -t vfat /dev/XX /mnt/YY -o iocharset=utf8,codepage=866,rw
или
# mount -t vfat /dev/XX /mnt/YY -o iocharset=utf8,codepage=866
Пример: монтирование типичной флешки выглядит так

$ sudo mount -t vfat /dev/sda1 /mnt/flash -o iocharset=utf8,codepage=866,rw
То есть монтируем раздел /dev/sda1 типа vfat в точку монтирования /mnt/flash
Постоянное монтирование FAT
Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:

/dev/XX /mnt/YY vfat iocharset=utf8,codepage=866,user,rw 0 0
Пример: та же типичная флешка в /etc/fstab смотрится так
/dev/sda1 /mnt/flash vfat iocharset=utf8,codepage=866,user,rw 0 0
То есть монтируем раздел /dev/sda1 типа vfat в точку монтирования /mnt/flash После этого раздел FAT в Linux будет доступен. Отмонтирование по команде umount /mnt/flash
Как правильно говорят в комментариях, iocharset совпадает с текущей локалью - например, iocharset=utf8.



Как примонтировать раздел с файловой системой NTFS в Linux
Замечательная корпорация Microsoft изобрела не просто новый велосипед с треугольными колёсами NTFS, а ещё и закрыла его описание. Да так, что пришлось очень долго его взламывать и создавать драйвера обратной разработкой. О сложности проблемы даёт понять описание дефрагментации NTFS, что, как говорится, внушает.

Монтировать и записывать на NTFS в Linux, тем не менее, возможно благодаря героическим усилиям разработчиков, создавших драйвер NTFS-3g. Этот драйвер можно установить командой:
aptitude install ntfs-3g
или поискать пакет ntfs-3g в графической оболочке установки программ вашего любимого дистрибутива.


Однократное монтирование NTFS 

Временное, однократное монтирование, например, раздела с данными Windows, выглядит так:
$ sudo mount -t ntfs-3g /dev/XX /mnt/YY -o umask=0,nls=utf8
или
# mount -t ntfs-3g /dev/XX /mnt/YY -o umask=0,nls=utf8
Пример: монтирование раздела Windows с NTFS разделом выглядит так
$ sudo mount -t ntfs-3g /dev/sda1 /mnt/flash -o umask=0,nls=utf8
То есть монтируем раздел /dev/sda1 типа
ntfs-3g в точку монтирования /mnt/flash



Постоянное монтирование NTFS
Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:
/dev/XX /mnt/YY ntfs-3g umask=0,nls=utf8,user,auto,rw 0 0
Пример: та же типичная флешка в /etc/fstab смотрится так
/dev/sda1 /mnt/windows ntfs-3g umask=0,nls=utf8,exec,user,auto,rw 0 0
Иногда в /etc/fstab это уже есть с настроками вида:

/dev/sda1 /mnt/windows ntfs-3g umask=0,nls=ru-RU.UTF-8 0 0
При такой записи всё нормально, кроме одного - файлы и каталоги с русскими именами не отображались, как-будто их не было вовсе. Чтобы это исправить, можно попробовать изменить на:


/dev/sda1 /mnt/windows ntfs-3g exec,user,auto,rw 0 0
То есть монтируем раздел /dev/sda1 типа ntfs-3g в точку монтирования /mnt/windows После этого раздел NTFS в Linux будет доступен.
Отмонтирование по команде umount
/mnt/windows



Как примонтировать CD/DVD диск в Linux
Всё проще - скорее всего, это уже сделано в вашем дистрибутиве. Тем не менее, привожу это здесь для примера.

Однократное монтирование CD/DVD 

Временное, однократное монтирование, например, DVD-диска с данными в Linux, выглядит так:
$ sudo mount -t iso9660 /dev/XX /mnt/YY
или
#
mount -t iso9660 /dev/XX /mnt/YY
Пример: монтирование DVD-диска с данными выглядит так

$ sudo mount -t iso9660 /dev/cdrom /mnt/dvd
То есть монтируем раздел /dev/cdrom типа iso9660 в точку монтирования /mnt/dvd


Постоянное монтирование CD/DVD
Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:
/dev/XX /mnt/YY iso9660 user,ro 0 0
Пример: оптический диск в /etc/fstab смотрится так
/dev/cdrom /mnt/cdrom iso9660 user,ro 0 0
То есть монтируем раздел /dev/cdrom типа iso9660 в точку монтирования /mnt/cdrom После этого оптический диск в Linux будет доступен. Отмонтирование по команде umount
/mnt/cdrom



Как примонтировать ISO-файл или другой файл в Linux
Вы откуда-то скачали ISO-файл и хотите просмотреть его содержимое. Для этого в Windows есть такой костыль под названием Alcohol. В Linux и вообще в UNIX такие костыли не требуются, так как монтирование ISO-образа ничем для системы не отличается от монтирования CD/DVD-диска. Нужно только передать один параметр -o loop чтобы сообщить системе, что монтировать мы собираемся на петлевое устройство (loopback). Если делать это надо много и часто, можно воспользоваться программой GmountISO, описанной тут.

Для монтирования ISO-образа в командной строке даём команду:

$ sudo mount -t iso9660 file.iso /mnt/YY -o loop
или
#
mount -t iso9660 file.iso /mnt/YY -o loop
Пример: монтирование DVD-диска с данными выглядит так

$ sudo mount -t iso9660 file.iso /mnt/dvd -o loop
То есть монтируем файл file.iso типа iso9660 в точку монтирования /mnt/dvd на петлевое устройство loop
 

Точно так же можно монтировать любой CD/DVD образ, а также файл-образы сжатых\зашифрованных\экзотических файловых систем типа SquashFS. Отмонтирование по команде umount /mnt/dvd



Как примонтировать раздел с файловой системой EXT2/EXT3/ReiserFS/XFS/JFS... в Linux
Монтирование нормальных файловых систем проблем не создаёт. Приведу пример только с ext3, остальные файловые системы в Linux монтируются точно так же, только вместо ext3 подставьте буквально: ext2, reiserfs, xfs, jfs в зависимости от вашей файловой системы.

Однократное монтирование 

Временное, однократное монтирование, например, флешки, выглядит в командной строке так:
$ sudo mount -t ext3 /dev/XX /mnt/YY
или
# mount -t
ext3 /dev/XX /mnt/YY
Пример: монтирование раздела с данными выглядит так

$ sudo mount -t ext3 /dev/sda1 /mnt/data
То есть монтируем раздел /dev/sda1 типа ext3 в точку монтирования /mnt/data


Постоянное монтирование
Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:
/dev/XX /mnt/YY ext3 user,auto,rw 0 0
Пример: та же типичная флешка в /etc/fstab смотрится так
/dev/sda1 /mnt/data ext3 user,auto,rw 0 0
То есть монтируем раздел /dev/sda1 типа
ext3 в точку монтирования /mnt/data После этого раздел EXT3 в Linux будет доступен. Отмонтирование по команде umount /mnt/data
Как узнать тип файловой системы на диске?


Для этого есть утилита file, которая может определить тип файловой системы, используемый файлом. Так как в UNIX/Linux/*BSD исповедуется принцип "всё есть файл", то раздел с файловой системой это тоже файл. Так что команда file выдаст нам информацию о файловой системе дисковых разделов - надо только указать программе воспринимать их как специальные файлы.

Используем опцию -s (–special-files) для выдачи информации о типе файловой системы блочного устройства. Пример:
# file -s /dev/sda1
или
$ sudo file -s /dev/sda1

получаем в ответ:
/dev/sda1: ReiserFS V3.6 block size 4096 (mounted or unclean) num blocks 17920496 r5 hash
То есть на разделе /dev/sda1 имеем файловую ReiserFS V3.6.
Или например:
# file -s /dev/sda1
выдаст в ответ:
/dev/sda1: x86 boot sector, code offset 0x58, OEM-ID "MSWIN4.1", sectors/cluster 64, reserved sectors 126, Media descriptor 0xf8, heads 255, hidden sectors 63, sectors 284237982 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 34693, reserved3 0x800000, serial number 0x287d1dfa, unlabeled
Это поможет в определении того, какая файловая система (и намекнёт на то, какие данные там лежат) на данном разделе.


Что делать, если устройство в Linux не хочет размонтироваться!?Вы пытаетесь размонтировать раздел с данными (флешка, CD/DVD диск...) и получаете сообщение с ошибкой - устройство занято. Например, при выполнении команды umount /mnt/windows получаете сообщение вида:

umount /mnt/windows
umount: /mnt/windows: device is busy
Ну и что делать, если раздел в Linux не размонтируется!? Очень просто - посмотреть, какой процесс держит раздел или файл и не даёт отмонтировать его. Дальше либо закрыть это приложение, либо придушить его с помощью команды kill. Даём команду:
lsof | grep /mnt/windows
Вертикальная черта означает передачу вывода команды lsof программе grep и фильтрации по слову /mnt/windows
После этого вы получите ответ вида:
$ lsof | grep /mnt/windows
lsof: WARNING: can't stat() reiserfs file system /dev/.static/dev
Output information may be incomplete.
mc 14134 beast cwd DIR 8,1 4096 1 /mnt/windows

Стало быть, ваш раздел держит MC (Midnight Commander), который вы скорее всего открыли на другом рабочем столе и просто забыли о нём. Найдите это приложение, закройте его и отмонтируйте раздел снова - теперь проблема должна быть решена.


Ссылки и благодарности

В подготовке этого поста были использованы бессмертные труды Андрея Афанасенко и Сергея Черевко, а также материалы Убунту-форума.
Читать далее

ГОСТ 7.32-2001 для отчёта по НИР: оформление НИР по ГОСТу в LaTeX



38 коммент.
Итак, научно-исследовательская работа (НИР) проведена, и теперь требуется оформить НИР по ГОСТ. Проблем, казалось бы, нет: имеется ГОСТ 7.32-2001 "Отчёт о научно-исследовательской работе". Скачать ГОСТ оформления можно здесь. Однако оформление отчёта по этому ГОСТу в большинстве случаев проистекает с болью и страданиями, связанными с применением продукта Microsoft Word, совершенно для этого не предназначенного. Впрочем, прогрессивное человечество давно выбрало LaTeX для оформления всей научной документации - оказывается, есть шаблон для написания отчётов и в этом случае.

Чтобы быстро оформить отчёт о научно-исследовательской работе или аннотационный отчёт, нужно использовать LaTeX и не мучаться с Word. Это просто, если у вас есть записи лабораторных журналов, наброски или куски статей, набранные так же в LaTeX. Из всего этого добра можно быстро изваять приличных размеров отчёт, и при этом работая только над текстом.


Где скачать
ГОСТ 7.32-2001 для оформления отчёта по НИР и ОКР!?

Когда мне нужно было оформлять отдельный отчёт, я подумал - спрошу у Яндекса и всё найдётся... Просидев час, разгребая кучу мусора поисковых запросов о разных весёлых применениях латекса и высокомерные отписки Капитанов Очевидностей, я начал мрачнеть. Глядя на необъятных размеров текст ГОСТа ближе к ночи, читать его до утра желания не возникало никакого. И тут мне несказанно повезло: я его нашёл! Крохотный архивчик с неприметным названием пылился где-то на необитаемом сервере!

Так вот, ГОСТ 7.32 для LaTeX
есть! Скачать этот ГОСТ бесплатно можно здесь. Версия прекрасно работает в tetex под Debian GNU/Linux Etch с доисторической кодировкой KOI8-R, так же как и с CP1251, и с UTF8 благодаря одному из комментаторов.

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


Оформляем отчёт НИР по
ГОСТ

Это, в отличие от использования Microsoft Word, очень и очень просто. Итак, распаковали архив, открываем файл с примером
G7-32_NIRreport_example.tex
и сохраняем его под каким-нибудь другим названием. Ниже пошаговая стратегия - как оформить отчёт по НИР в LaTeX.

Подключаем стилевые пакеты LaTeX
Итак, подключаем нужные нам пакеты расширений LaTeX, чтобы можно было пользоваться всеми его преимуществами (большинство нужных пакетов уже включены в стилевом файле). Шапка может выглядеть примерно вот так:
\documentclass[koi8-r,usehyperref,12pt]{G7-32}
\usepackage[T2A]{fontenc}
\usepackage[koi8-r]{inputenc} %% ваша любимая кодировка здесь
\usepackage[english,russian]{babel} %% это необходимо для включения переносов
\usepackage{float}
\usepackage[dvips]{graphicx}
\graphicspath{{pictures/}}
Здесь подключены пакеты, относящиеся к графике - чтобы можно было вставлять рисунки. Обращаю внимание: рисунки будут вставлены из директории pictures.


Заполняем титульную страницу отчёта НИР
Для начала определяем, хотим мы или нет, чтобы рисунки и таблицы нумеровались в пределах раздела, или нам нужна сквозная нумерация. Далее непосредственно заполняем титульную страницу:

\TableInChaper % таблицы будут нумероваться в пределах раздела
\PicInChaper % рисунки будут нумероваться в пределах раздела
\setlength\GostItemGap{2mm}% для красоты можно менять от 0мм

% Определяем заголовки для титульной страницы
\NirOrgLongName{\textsc{ООО &"Рога и Копыта"}} %% Полное название организации

\NirBoss{Директор ООО "Рога и Копыта"}{И.И.Иванов} %% Заказчик, утверждающий НИР

\NirManager{доцент, к.т.н.}{К.К.Петров} %% Название организации

\NirYear{2020}%% если нужно поменять год отчёта; если закомментировано, ставится текущий год
\NirTown{г. Москва,} %% город, в котором написан отчёт
% по проекту \No8550:

% \NirIsAnnotacion{АННОТАЦИОННЫЙ } %% Раскомментируйте, если это аннотационный отчёт

\NirUdk{УДК \No 2123132123}
\NirGosNo{Регистрационный \No 123123}

\NirStage{Этап \No 1.1}{промежуточный}{"Обзор современного состояния торсионных наногенераторов"} %%% Этап НИР: {номер этапа}{вид отчёта - промежуточный или заключительный}{название этапа}

\bibliographystyle{unsrt} %Стиль библиографических ссылок БибТеХа

%%%%%%%<------------- НАЧАЛО ДОКУМЕНТА
\begin{document}
\usefont{T2A}{ftm}{m}{} %%% Использование шрифтов Т2 для возможности скопировать текст из PDF-файлов.

\frontmatter %%% <-- это выключает нумерацию ВСЕГО; здесь начинаются ненумерованные главы типа Исполнители, Обозначения и прочее

\NirTitle{\textbf{"Торсионные наногенераторы плазменных стволовых клеток с протонной накачкой"}} %%% Название НИР и генерация титульного листа

Здесь вам придётся вспомнить, как точно называется то, чем вы занимаетесь :-)
Так же вспоминаем название своего учреждение (которое могло успеть поменяться) и прочее. Заполнив титульную страницу, переходим непосредственно к тексту.

Попробуйте сейчас скомпилировать этот текст - и вы должы увидеть что-то вроде:


Идём дальше и заполняем список исполнителей. Для этого я сделал такой финт:

\Executors %% Список исполнителей здесь
%% это рисует линию размера 3мм и толщиной 0.1 пункт
\begin{longtable}{p{0.35\linewidth}p{0.2\linewidth}p{0.35\linewidth}}

Научный руководитель, & & \\
доцент К.К.Петров &\rule{1\linewidth}{0.1pt} & \\ \vspace{1cm}

с.н.с, к.т.н, & & \\
Ж.Ж. Балбесов, & \rule{1\linewidth}{0.1pt}& \\
\end{longtable}
Дальше следует написать основные сокращения и реферат. В реферате LaTeX посчитает количество ссылок, страниц и источников за вас.


Основная часть отчёта по НИР
Основная формальная часть закончена, теперь - полёт творческой фантазии и изваяние текста. Только сначала заполним нужные формальности, такие как реферат:

\Referat %% Реферат отчёта, не более 1 страницы
В соответствии с календарным планом проекта \No, настоящий аннотационный отчёт содержит итоги работ по подэтапу 1.1 выполнения НИОКР ``Обзор современного состояния торсионных наногенераторов''.

На данном этапе проводись работы по подбору и приобретению спецоборудования, необходимого для выполнения НИОКР, теоретические и экспериментальные иссл.........

Расчетно и экспериментально обоснован выбор оптической схемы с торсионным излучением трансформируемой частичной пространственной когерентности в качестве...

В результате работ по подбору оборудования определена элементная база для аппаратной реализации основных узлов торсионного наногенератора. Подбор оборудования обуславливал........

Выполнено математическое моделирование ряда методов ....

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

Сформулированы требования к управляющему....

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

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

\tableofcontents

\NormRefs % Нормативные ссылки

\Defines % Необходимые определения


\Abbreviations %% Список обозначений и сокращений в тексте
\begin{abbreviation}
\item[ТНГ] Торсионный нано генератор -- образец лженаучного волюнтаризма.

\end{abbreviation}

Всё, после \Introduction идёт Введение и дальше - текст вашего отчёта. Никаких особых прилад в командном отношении там нет, если вы знаете LaTeX на уровне пользователя - дальше просто пишите и копируйте текст. Всё будет оформлено за вас, автоматически, красиво и быстро. Ваши вордописцовые коллеги будут зеленеть от зависти :-)

\chapter{Наногенераторы торсионных полей как вечный двигатель прогресса}
Используйте окружения chapter и section как обычно. Вообще, набор текста в этом шаблоне ничем не отличается от других.

\section{Проблематика лженаучного мышления}
\subsection{Пример торсионных недонаногенераторов}

Последнее замечание - окончание отчёта. Тут тоже ничего сложного нет, только надо проследить внимательно, чтобы команда \backmatter оказалась строго перед \Conclusion

Дело в том, что \backmatter отключает нумерацию после себя, так как Заключение не нумеруется. После этого спокойно пишете заключение, компилируете текст, переводите в PDF и гоните на печать. Вот окончание документа:

\backmatter %% это выключает нумерацию для Заключения и Списка литературы
\Conclusion %% здесь начинается заключение к отчёту

\bibliography{biblio/my}
\end{document}
Да, разумеется, вы можете свободно пользоваться BiBTeX для библиографических ссылок (дубовый стиль unsrt сойдёт). На всякий случай: как использовать библиографические базы в LaTeX и несколько слов о том, зачем нужен BiBTeX.

Вот, собственно, и всё. Конечно, придётся немного попыхтеть и скорее всего перевести написанный отчёт из LaTeX в Microsoft Word (о чём уже написано тут), но это намного проще, чем маяться и выверять стили, вручную (!) набивать оглавление и сверять его полночи перед сдачей отчёта.


Документы по ЕСКД
Оформление технической документации и оформление чертежей по ЕСКД намного проще в LaTeX. Как сообщают авторитетные анонимные комментаторы, есть рабочие шаблоны, позволяющие оформлять по ЕСКД документы. Пример такого документа есть тут. Скачать шаблон ЕСКД для ЛаТеХ можно отсюда или с форума. Большое спасибо анонимному комментатору за ссылки!



Благодарности
Пользуясь случаем, выражаю ещё раз колоссальную благодарность Алексею Томину за то, что он проделал большую работу по LaTeXизации ГОСТ 7.32-2001 и избавил меня от бессонных ночей прочтения ГОСТа.
Читать далее

Блогодень-2008, и немного о блогах



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


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

Почему стоит начать вести блог?
Блог стоит начать вести для того, чтобы:
  1. самому через некоторое время не забыть, как легко и просто что-то настроить;
  2. не отвечать в 1024 раз на форуме \ в письме на одни и те же вопросы, а послать по ссылке в блог;
  3. ради конструктивной критики: при написании поста вы могли что-то упустить / не так понять / не учесть / не  знать - вам об этом обязательно скажут благодарные комментаторы (анонимные - в наиболее прямой форме);
  4. ну и наконец для того, чтобы гугл выдавал на один полезный адрес  больше при поиске.
Блог ценен оригинальными статьями и полезными советами. Посты типа "как я вчера напился" в общем не очень полезны даже вам самим. Не говоря уже о том, что характеризуют вас не с лучшей стороны - если потенциальный работодатель попробует собрать о вас информацию в Интернете, он будет такому работнику не рад.


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

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

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


Название и содержание
Название блога должно быть уникальным, проявите фантазию! Посидите, подумайте, сделайте название каким-нибудь смешным и запоминающимся. Потом поищите в поисковых системах - может быть оно уже кем-то занято. И простите, ребята, но "Записки... " уже занято :-) Вам придётся напрячь голову и придумать что-то оригинальное. Кстати, этот блог сначала назывался "Debian - это просто!", а потом уже сменил название на "Записки дебианщика".
Удачных названий ещё очень много, и чем оригинальнее оно будет, тем легче будет вас запомнить. Оно не должно быть очень длинным ("Путешествие Абу Ибн Аль Хасана на горбатом верблюде через
пустыни Сахару и Гоби...") или скучным ("Ещё один блог о ...").

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




Ведение блога
Не постите слишком часто: материалы могут быть замечательные, но вы быстро выдохнетесь, если будете делать в день по несколько постов. В зависимости от ваших ресурсов по времени, лучше делать не больше 2-3 значимых постов в неделю. И люди приходят, и статьи комментируются, и работе не мешает.

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



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

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

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



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

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

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


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


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

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

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

Через полгода-год у вас возникнет настойчивое желание всё бросить. Это, как правило, обычная история для проектов, которые держатся на энтузиазме одного человека. Хорошо бы к этому времени сокращать число постов до 3-4 в месяц: посещения к этому времени набираются за счёт поисковых запросов, а по одному посту в неделю писать вполне реально.

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

Распределяйте посты по времени, а не вываливайте всё за один день. В Blogger есть возможность заранее задать время публикации - распишите календарь будущих постов по крайней мере на 2-3 месяца вперёд.

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

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

Ускорение загрузки Linux: отключение неиспользуемых сервисов в Linux



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

Итак, после того, как загрузчик
Linux найдёт и загрузит ваше ядро, в дело вступает запуск сервисов. Запускается Samba, которая делает ваши директории видимыми по сети (в том числе для пользователей альтернативных систем), CUPS - чтобы вы могли печатать на принтеры, SSHd - чтобы можно было принимать удалённое управление. В общем, всё то, что обеспечивает нам удобную работу, не отвлекая нас от более важных дел.

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

ПРЕДУПРЕЖДЕНИЕ!!!
СДЕЛАЙТЕ РЕЗЕРВНУЮ КОПИЮ ВСЕГО КАТАЛОГА /ETC НА ВСЯКИЙ СЛУЧАЙ!!! В СЛУЧАЕ НЕУДАЧИ ВЫ МОЖЕТЕ ПОЛУЧИТЬ СИСТЕМУ, КОТОРАЯ НЕ ЗАГРУЖАЕТСЯ!!!


И ещё одно предупреждение
Здесь главное не перестараться и отключать только те сервисы в
Linux, назначение которых вы знаете и точно уверены, что они вам не потребуются в ближайшем обозримом будущем. Скорее всего, вам всё-таки потребуются такие сервисы, как login и cron, так что будьте аккуратны.


Управление сервисами
Для того, чтобы долго не елозить напильником по конфигурационным файлам, ставим графический конфигуратор. Поискав по несметным сокровищницам репозиториев Debian GNU/Linux, находим:
# apt-cache search boot up manager
bum - graphical runlevel editor
Собственно, программа маленькая, ставим:
aptitude install bum
Программа при запуске ожидаемо требует рутовых привилегий:
sudo bum
Появится красивая и удобная графическая оболочка, по умолчанию в "простом" варианте:



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



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

Если руки тянутся к напильнику...
На всякий случай напомню, что в Debian стартовые скприты аккуратно сложены в директории /etc/init.d/ а в каталогах
/etc/rc0.d
......
/etc/rc6.d

содержатся ссылки на соответствующие скрипты в /etc/init.d/
Соответственно, в Debian GNU/
Linux номера runlevels распределены следующим образом:
  • 0 System Halt
  • 1 Single user
  • 2 Full multi-user mode (по умолчанию)
  • 3-5 То же что и 2
  • 6 System Reboot

И наконец несколько слов об асинхронной загрузке
Linux. Это технически можно сделать, поправив конфиг /etc/init.d/rc до такого состояния:
# Specify method used to enable concurrent init.d scripts.
# Valid options are 'none', 'shell' and 'startpar'
CONCURRENCY=shell
Конкретно в моём случае ускорение составило около 2-3 секунд, что в общем меньше ожидаемого. А вариант "startpar" вообще привёл к тому, что система отказалась загружаться. Имея под рукой Knoppix Linux я, конечно, всё быстро поправил, но тем не менее.

Есть и более радикальные методы ускорения загрузки, такие как initNG. Но об этом в другой раз.

Ссылки
Как всегда, по теме очень толково пишут аксакалы из IBM здесь. А так же в генту-вики очень хорошее руководство тут (пользуясь случаем, в очередной раз зеленею от зависти к гентушным вики). Описание сервисов на примере Fedora 8 приведено здесь (Tigro, спасибо за ссылку!).
Читать далее

Sleeptracker - наручные часы с гуманным будильником



34 коммент.
Эта заметка относится не к Дебиану, а больше к автору этих строк. Есть некоторые вещи, которые могут весьма и весьма сильно увеличить производительность труда - например, нормальная операционная система или наушники с шумоподавлением. Но всё это не радует, если проснулся не вовремя и не отдохнув - вот тут-то пригодятся часы с гуманным будильником.


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

В среднем человеку нужно 7-8 часов сна для нормальной жизнедеятельности. Сон делится на циклы, которые условно можно поделить на 5 фаз. Каждый цикл длится 90-110 минут, и в это время есть фазы глубокого сна (когда будить нежелательно) и фаза быстрого сна (когда мы видим сны). На приведённой ниже диаграмме это проиллюстрировано:



диаграмма взята из официального руководства к часам SLEEPTRACKER PRO.

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


Как устроено?
Естественный интерес - как это работает? - был в отчасти утолён официальным мануалом, который никто не скрывает:
Using an accelerometer, SLEEPTRACKER monitors for brief moments of movement (typically lasting less than 30 seconds) during your lighter stages of sleep and records them.
Итак, что имеем. В часы встроен акселерометр, который мониторит подвижность руки во сне и свзяывает это с фазой сна. То есть акселерометр позволяет отлавливать резкие движения часов во сне тогда, когда время подходит к пробуждению ("фаза быстрого сна"). В общем, разумное и простое решение.

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


Внешний вид и исполнение
Часть сделана из металла, поэтому на вид они весьма внушительных размеров. На руке сидят нормально и не оттягивают её. Ремень резиновый, с внутренней стороны оранжевый, с внешней - тёмно-серый.



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

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

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


Эксперимент
В отличие от многих скептиков, я до покупки читал мануал и многое из него показалось мне интересным. В том, что устройство работать будет - сомнений не было. Было интересно, как оно будет работать. Статистику набирал неделю, условия такие: отбой в 23:00, подъём в 07:30, окно будильника 40 минут, оповещение - звук и вибрация.

День 1.
Часы спать не мешают, отбой в 22:40. Встал в 06:45 сам, до будильника (организм испугался?). Настроение - свернуть к обеду несколько гор и завоевать Вселенную к ужину. Часы стали будить сигналом и вибрацией в 7:00, сменяя негромкий сигнал и вибрацию каждые 2-3 секунды. До обеда сделал больше, чем за целый день. Впечатлило.


День 2.
Отбой в 23:05, разбудил виброзвонок в 06:58, вибровызов чувствуется хорошо, а сигнала не слышал. Бодренькое утро, неспеша позавтракал и сел за разборки с делами. К 9 утра, когда обычно встаю по будильнику, почти половину сделал. Блеск.


День 3.
Отбой в 23:20, поъём в 06:37 - раньше будильника, настроение бодрое и оптимистичное. Оказывается, что никакая я не "сова" и утром работать могу очень продуктивно. Просто вставал раньше не в то время, и поэтому раньше 12 что-то разумное делать не мог.


День 4.
Отбой в 00:40, зачитался книжкой и не заметил, сумерки сгустились. Вставать утром в 7 не хотелось категорически, но всё-таки под напором будильника в 07:30 проснулся. поэтому отложил разбудил виброзвонок в 06:58, вибровызов чувствуется хорошо, а сигнала не слышал. Бодренькое утро, неспеша позавтракал и сел за разборки с делами. К 9 утра, когда обычно встаю по будильнику, почти половину сделал.


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


День 6.
Отбой в 23:05, разбудил виброзвонок в 06:58, вибровызов чувствуется хорошо, а сигнала не слышал. Бодренькое утро, неспеша позавтракал и сел за разборки с делами. К 9 утра, когда обычно встаю по будильнику, почти половину сделал.


День 7.
Отбой в 23:20, проснулся сам в 06:50 - только стал руками шевелить так сразу и будильник зазвенел. В общем, уже начинаю привыкать вставать рано и брать быка за рога :-)

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

Спустя почти два месяца после этого теста продолжаю использовать эти часы и просыпаться бодрым. Что не замедлило сказаться на производительности труда :-)


Заключение
Как говорится в официальном мануале к Sleeptracker, все мы разные и спим по-разному. Это значит, что если эти часы подошли мне - не значит, что подойдут вам. Отзывов в Интернете на СлипТрекер очень много: тут, там и здесь. Примерно такие же отзывы о AXBO, так как их принципы работы одинаковы, отличается только форм-фактор. Но всегда можно попробовать - эксперимент обойдётся в примерно 4500 руб. В общем, не такие огромные деньги за то, чтобы просыпаться бодрым и позитивным.
Читать далее