Justworks.ru

13Мар/114

Как разбить жесткий диск на разделы?

Перед использованием нового жесткого диска его нужно разбить на разделы.

Как правило для разбивки жесткого диска на разделы используются программы Norton Partition Magic (официально уже не поддерживается) или Acronis Disk Director. Эти программы платные и дорогие, а требуются они редко, поэтому многие пользователи используют пиратские версии.

Рассмотрим способ, как можно разбить жесткий диск на разделы используя только бесплатное и свободное программное обеспечение, не уступающее по функциональности платным программам. Воспользуемся программой GParted, распространяемой под свободной лицензией GPL.

Связано с категорией: Руководства (Howto) Читать полностью
27Фев/110

Проблемы с винчестерами Seagate 7200.11

Винчестеры Seagate серии 7200.11 подвержены двум проблемам:

  • LBA 0 — BIOS распознает винчестер размером 0 байт.
  • BSY, BUSY, муха-CC — Винчестер раскручивает вал, рекалибруется, но не определяется в BIOS.

Восстановил 3 винчестера ST3500320AS от мухи-CC по статье showman'а. Из-за третьего и решил немного побоянить и написать эту заметку.

Замечу, что перечисленные проблемы - не единственные на винчестерах данной серии. Кроме того, при восстановлении можно угробить и винчестер, и данные на нем. Если данные ценные, то стоит отнести винчестер специалистам по Data Recovery. Статью следует тщательно изучить, материал подан сжато и не всегда последовательно.

Несколько комментариев:

  1. Стоит изучить иностранную статью на msfn.org (ссылка есть в статье).
  2. В качестве RS-232 <-> TTL адаптера использовал дата-кабель от телефона Siemens C-55.
  3. В Linux использовал терминальную программу picocom:
    sudo picocom -b 38400 /dev/ttyS0

Seagate утверждает, что проблема исчезает после перепрошивки. В моем случае перепрошивка с SD15 на SD1A проводилась до возникновения мухи-CC. Примерно через пол года винчестер заболел «Необычной мухой-CC». Вылечил по той же статье.

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

Связано с категорией: Джинсы с рукавами Нет комментариев
16Фев/119

Python Kickstart: целочисленное деление и списки

С чего начать изучение Python? Если с английским все в порядке, то рекомендую The Python Tutorial. На русском можно почитать «Язык программирования Python».

Из печатных книг ничего посоветовать не могу. Просмотрел в книжном магазине: «Python. Подробный справочник» Дэвида Бизли и «Программирование на Python 3. Подробное руководство» Марка Саммерфилда. На первый взгляд книги вполне адекватные, но цена кусается.

Пересказывать учебники не буду, предлагаю разобрать несколько примеров. Начнем!

Пример №1:

# coding: utf-8
 
if __name__ == '__main__':
    pass

Строка «# coding: utf-8» указывает, что файл сохранен в кодировке UTF-8. Рекомендую раз и навсегда отказаться от остальных кодировок везде, где это возможно.

Оператор pass ничего не делает. Используется как временная затычка вместо блока кода. Перед pass стоят 4 пробела - так в Python принято выделять блоки кода.

Метки записи: , Читать полностью
9Фев/1149

Настраиваем Python в Eclipse и пишем Hello World!

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

Однако пока еще не все перешли на Linux ;)

Кроме того, для разработки на Python удобно использовать полноценную IDE. Eclipse — кросплатформенная среда разработки, поэтому рассмотрим его настройку как в Windows, так и в Linux. Eclipse распространяется под свободной лицензией EPL.

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

2Фев/110

Hello World на Python 2.x

Начинать программирование на новом языке принято с программы Hello World. Данную заметку стоит рассматривать как KickStart, какие-то детали могут быть упущены. Подробная и качественная документация приведена на http://docs.python.org. Заметка рассчитана на любой дистрибутив Linux. Для пользователей Windows может оказаться полезной заметка Настраиваем Python в Eclipse и пишем Hello World!.

Создаем в любом текстовом редакторе файл helloworld.py следующего содержимого:

#!/usr/bin/env python
 
if __name__ == '__main__':
    print 'Hello World!'

Открываем терминал. Устанавливаем права доступа на выполнение. Тем самым показываем системе, что это не просто текстовый файл, а исполняемый скрипт:

$ chmod a+x helloworld.py

Запускаем скрипт:

$ ./helloworld.py
Hello World!

Получилось? Поздравляю, первый полноценный скрипт на питоне вы написали.

Теперь разберем его построчно. Первая строка:

#!/usr/bin/env python

#! - это так называемый sha-bang, специальная последовательность символов, после которой записывается путь к интерпретатору, который будет выполнять скрипт. Таким образом система определяет, что данный текстовый файл (а скрипт на Python - это просто текстовый файл) нужно интерпретировать с помощью Python. Для скриптов на языке BASH это может быть, например, #!/bin/bash.

Вместо этого можно писать, например:

#!/usr/bin/python

или, если вы хотите указать конкретную версию интерпретатора:

#!/usr/local/bin/python2.7

В этом случае нужно убедится, что интерпретатор Python установлен по указанному пути.

Другой способ запустить скрипт:

$ python helloworld.py
Hello World!

В этом случае не требуется давать файлу helloworld.py права на исполнение.

Строка:

if __name__ == '__main__':

проверяет, что скрипт был запущен в интерпретаторе, а не загружен из другого скрипта. Здесь все просто - если скрипт был запущен в интерпретаторе, то переменной __name__ присваивается значение '__main__'. В скрипте мы сравниваем значение переменной стандартным оператором if. Никакой магии. Эта конструкция - аналог функции main в таких языках, как C/C++.

Оператор print 'Hello World!' выводит строку 'Hello World!' на экран. В языке Python блоки кода выделяются отступом из 4 пробелов. В данном случае оператор print выполняется, только если выражение после оператора if истинно.

Hello World можно написать и так:

#!/usr/bin/env python
 
print 'Hello World!'

Но тогда строка 'Hello World!' будет выводится и при подключении модуля из другого скрипта.

$ python
$ import helloworld
Hello World!

Теперь вы знаете как писать скрипты на питоне!

Метки записи: , Нет комментариев
29Янв/113

C++: использование endl

Распространено мнение, что строки:

cout<<"String\n";

и

cout<<"String"<<endl;

эквивалентны.

Это не так. Команда endl:

  • Записывает в поток (stream) символ перевода строки;
  • Выполняет flush для буферизированного потока.

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

Из-за этой особенности возникает мнение, что работа с потоками (streams) существенно медленнее, чем с функциями типа printf. Это не так, производительность примерно одинаковая.

Метки записи: , 3 Комментарии
27Янв/110

Запуск Windows программ в Linux

Запускать Windows программы в Linux можно при помощи Wine.

Wine (расшифровывается WINE Is Not Emulator) - это альтернативная реализация Win32 API для UNIX систем. Множество программ отлично работают в Wine, в том числе и игры. Чтобы узнать, как работает интересующая программа в Wine, следует посетить сайт <http://appdb.winehq.org>.

У каждой программы есть статус:

  • Platinum - Программы, которые устанавливаются и работают без проблем в Wine без дополнительных настроек.

  • Gold - Программы, которые работают без проблем, но требуют специальной настройки. Настройка описана на странице с программой.

  • Silver - Программы, которые работают с небольшими глюками, которые не мешают типовому использованию.

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

  • Garbage - Программы, которые не могут выполнить те функции, для которых созданы.

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

Рассмотрим установку на примере Ubuntu 10.04 «Lucid Lynx». Для этого нужно зайти в меню: Система - Администрирование - Источники приложений, откроется окно. Выбрать вкладку «Другое ПО», нажать кнопку «Добавить...».

Ubuntu - источники приложений

В появившемся окне вставить строку:

ppa:ubuntu-wine/ppa

Затем Wine устанавливается через Центр приложений Ubuntu.

При выходе новой версии Wine Менеджер обновлений предложит скачать её и установить.

Метки записи: Нет комментариев
26Янв/110

Как узнать нагрузку системы?

Открываем терминал и запускаем:

vmstat - наглядно отображает всю важную информацию о загрузке системы (использование памяти, процессора, подкачки, диска).
top - стандартный интерактивный монитор загрузки системы. Более функциональные версии: htop, atop.
free - использование оперативной памяти.
df - использование места на дисках.

Пакет sysstat, для установки набираем:

sudo apt-get install sysstat

mpstat - статистика использования CPU.
iostat - статистика использования CPU и IO: по устройствам, разделам и сетевым файловым системам.

iotop - интерактивный монитор IO активности.
iftop - интерактивный монитор сетевой активности.

Метки записи: Нет комментариев
25Янв/114

Как узнать объем памяти, занимаемый системой?

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

Консольный способ - команда free (ключ -m - показывать данные в мегабайтах):

$ free -m
             total       used       free     shared    buffers     cached
Mem:          2004       1183        820          0        108        705
-/+ buffers/cache:        369       1635
Swap:          996          0        996

Строка «Mem:» показывает потребление памяти системой с учетом буферов и кеша.
Строка «-/+ buffers/cache» - без учета буферов и кеша. Как правило, стоит смотреть именно на вторую строку. Ну а строка «Swap:» показывает использование файла подкачки. Важно отметить, что информация из второй строки не учитывает кеша внутренних структур ядра. Это можно легко проверить, запустив последовательность команд:

$ sync
# echo 3 > /proc/sys/vm/drop_caches
# free -m

Количество свободной памяти во второй строке команды free скорее всего возрастет.

Для детальной диагностики можно также посмотреть:
/proc/meminfo
/proc/slabinfo и slabtop
и информацию по конкретному процессу /proc/$pid/status (другие файлы не менее интересны). Посмотреть использование памяти модулями ядра можно командой lsmod.

Метки записи: 4 Комментарии
24Янв/110

Как отправить файл через Bluetooth из консоли?

Для отправки файла через Bluetooth из консоли можно воспользоваться программой ussp-push. Bluetooth адаптер должен быть установлен и настроен. Это можно проверить, например, с помощью команды получения списка видимых Bluetooth устройств:

$ hcitool scan

Находим устройства с OBEX Object Push

$ sdptool search OPUSH
Inquiring ...
Searching for OPUSH on _ADDR_
Service Name: OBEX Object Push
Service RecHandle: 0x10006
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: _CH_
"OBEX" (0x0008)
Profile Descriptor List:
"OBEX Object Push" (0x1105)
Version: 0x0100

где: _ADDR_ – адрес устройства _CH_ – канал OBEX Object Push

Отправляем файл:

$ ussp-push _ADDR_@_CH_ source_fn.jpg dest_fn.jpg

Файл отправляется на указанное устройство.

Метки записи: , Нет комментариев