вторник, 10 декабря 2013 г.

Kivy: Разрешения для приложения Android

Kivy - это кроссплатформенный фреймворк создания графического интерфейса для приложений написанных на языке программирования Python 2.7.x. Поддерживает следующие платформы - Linux, Windows, OS X, Android и iOS. Мультитач также поддерживается.

Для сборки пакета для Android я использовал вот этот мануал - http://kivy.org/docs/guide/packaging-android.html.

В процессе сборки необходимо указать разрешения для приложения. Список разрешений можно подсмотреть здесь - http://developer.android.com/reference/android/Manifest.permission.html

воскресенье, 20 октября 2013 г.

Python: С чего начать?

Быть системным администратором достаточно просто, когда есть набор инструментов и средств, которые помогают тебе в работе.

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

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

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

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

  1. Debian GNU/Linux последней версии. Именно так! Это не максимализм и не фанатичное пропагандирование дистрибутива. Там есть всё. Необходимые инструменты, документация, разные версии самого Python, множество модулей для разных задач, документация. И отсутствие проблем с установкой и совмещением всего этого зоопарка. Плюс дополнительные инструменты для работы с системами контроля версий, библиотеками для построение графического интерфейса и многое, многое другое.  Некоторый минус несколько устаревшие версии ПО, но в данном конкретном случает этот минус не настолько важен, чтоб перекрыть все получаемые преимущества. Пользуюсь сам и рекомендую всем.
  2. WinPython - для использующих Windows XP и выше  это просто спасение. На самом деле все компоненты входящие в этот набор программ можно скачать по отдельности и весьма мощно продвинуться в собственных глазах при их интеграции. Но для изучения Python полезность этих знаний не так уж велика. Поэтому просто ставим WinPython и пользуемся. Всё необходимое есть. В наличии сборки под 32 и 64 бита, 2 и 3 версии Python. Пакет направлен на решение научных задач, но этого особо не заметно. И для решения общих задач использовать можно не менее успешно.
Опишу более предметно что стоит использовать.
  1. Python 2.x.x - да, я рекомендую к освоению и использованию именно Python версии 2. Почему? Всё просто, под эту версию есть всё. Документация, книги, модули, программы. Ветка поддерживается и активно. Переход с неё на версию 3 не так уж и затруднителен. Перевод сценариев со 2 на 3 версию вызывает несколько проблем, но именно об этих проблемах я предлагаю подумать в тот момент когда вы станете продавать свой код .
  2.  IPython - интерактивная консоль.  В дистрибутиве с официальной версией Python поставляется консоль, не самая плохая. Но IPython реально облегчает и упрощает многие моменты как работы, так и обучения языку.
  3. Spyder - IDE (среда разработки). В общем-то если вы начинаете и озаботились средой разработки, в которой хотите видеть подсветку кода, подсказки, документацию по ходу написания кода, консоль с результатами запуска скрипта. Она подойдёт, не знаю как уж для серьёзной разработки, но для моего начального уровня вполне достаточно. Поддерживает систему контроля версий mercurial.
  4. TortoiseHg - графический интерфейс для системы контроля версий mercurial. В самом начале она не особо и нужна, но как только появится чуть более сложный скрипт, строк на 100, вы оцените.
Я намеренно не предлагаю IDLE, это среда разработки идущая в комплекте с официальным дистрибутивом. Она не так уж и плоха, но всё же я рискну предложить другие инструменты.

Определившись с инструментами остались сущие пустяки, освоить язык. На самом деле это очень просто. Я учился по следующим книгам:
  1. Марк Лутц - Изучаем Python.
  2. Ноа Гифт и Джереми М. Джонс - Python в системном администрировании UNIX и Linux.
  3. Функции help() и dir() в консоли IPython или Python.
  4. Официальная документация на сайте Python.
Первая книга заслуживает самых высоких похвал. Это действительно учебник для начинающих, всё разжёвывается, иногда по нескольку раз. Последовательный структурированный материал. Дочитав до главы где описываются принципы объектно ориентированного программирования в Python, можно сделать паузу и написать несколько скриптов для решения каких-нибудь насущных вопросов. Это уже будет возможно.
Вторую книгу стоит прочитать тем, кто задаётся вопросом использования Python в системном администрировании. Рассматривается довольно много специфических вопросов, что поможет столкнуть мысли в нужном направлении.
Возможности из третьего пункта хорошо описываются в вышеприведённых книгах.
Из всего пантеона документации для Python на начальном этапе самые нужные это - Library Reference и Tutorial. Возможно ещё может заинтересовать Languge Reference.
Лично я следовал принципу - основное берём у Лутца, уточнения в официальной документации.

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

пятница, 18 октября 2013 г.

Debian: Системные группы безопасности.

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

В самом Debian мануал с описанием этих групп находится здесь - /usr/share/doc/base-passwd/users-and-groups.html

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

Группы имеющие одноимённого связанного пользователя.
root
Группа суперпользователя.
Сюда лучше кроме root никого не добавлять. Для работы с его правами есть sudo
daemon
Пользователи этой группу демоны (сервисы), которым нужен некий уровень доступа к системе.
Но вообще рекомендуется пускать каждого демона под своей группой и пользователем.
games
Группа дающая возможность сохранять играм рейтинг, чтоб разные пользователи системы могли помериться "длинной пароля".
mail
  Группа для доступа к почте в /var/mail.
messagebus
От имени этого пользователя работает dbus.
Группы не имеющие связанного с ними пользователя:
adm
Группа с правами чтения логов в /var/log.
dialout
Доступ к последовательным портам для использования модемов.
dip
Пользователи этой группы могут пользоваться такой штукой как "Диалап".
cdrom
Группа для доступа к CD-ROM.
plugdev
Члены этой группы могут автоматически монтировать флешки, cd-диски и прочее.
lpadmin
Позволяет управлять принтерами, добавлять, удалять и прочее.
scanner
Пользователи этой группы могут использовать сканеры.
 


воскресенье, 23 мая 2010 г.

Установка Mail.Ru Агент под wine в Debian Squeeze

Я использовал версию wine 1.1.42, которую взял из репозитория указанного на www.winehq.org.

Итак по пунктам:

1. Скачать Mail.Ru Агент.
2. Запустить установку под wine.
3. Необходимо скопировать три библиотеки из C:\Windows\System32 (oleacc.dll, riched20.dll, rpcrt4.dll), и скопировать их в ~/.wine/drive_c/windows/system32.
4. Для корректного отображения шрифтов нужно скопировать шрифты из C:\Windows\Fonts в ~/.wine/drive_c/windows/Fonts.
5. Запустить winecfg выбрать magent.exe и настроить замещение библиотек.
6. Установить Flash Player. Можно с помощью winetricks
7. На вкладке "Голосовое общение" снять все галочки, программный телефон не работает.
8. Не работают "Настройки цвета", из-за каких-то проблем с gdi32, если их открыть программа зависает.

четверг, 18 июня 2009 г.

воскресенье, 1 марта 2009 г.

Настройка HP LaserJet P3005 в Debian GNU/Linux "lenny"

Оговорюсь сразу, настраивался принтер для удалённой печати, через CUPS. Принтер HP LaserJet P3005 подключён к рабочей станции с установленной Windows XP. Настроен и проверен в работе. Настроен общий доступ к нему, и разрешён доступ пользователю printeruser, с паролем printerpassword.

Для печати из линукс я использую CUPS (cups.org), мощная и простая в настройке система печати, поддерживающая большое количество принтеров и систем печати.

Сведения о принтерах работающих в Linux и качестве драйверов для них, можно найти здесь и на сайте CUPS.

Устанавливаем:
$ sudo aptitude cups

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

Вообще пути тут два:
  • Использование LPD
  • Использование SMB (Samba)
Для использование LPD необходима установленная в Windows "Служба поддержки печати UNIX". Это пожалуй минус, так как придётся её установить на все компьютеры к которым подключены принтеры. В остальном настройка тривиальна.

Запускаем браузер в адресной строке пишем:
http://localhost:631/

На вкладке Administration, в разделе Printers, нажимаем кнопку "Add Printer".
В разделе "Add New Printer" заполняем данные принтера.
В разделе Device выбирайте "LPD/LPR Host or Printer".
В разделе Device URI, в текстовое поле пишите адрес принтера "lpd://hostname/printername".
hostname - имя или ip-адрес компьютера к которому подключён принтер;
printername - сетевое имя принтера.
В разделе "Make/Manufacturer" выбираем фирму - производителя принтера.
В разделе Model/Driver, в окне Model выбираем пункт "HP LaserJet Series PCL 6 CUPS (en)", нажимаем "Add Printer".
При необходимости изменяем параметры принтера, нажимаем "Set Printer Options".
После небольшой задержки происходит переход на страницу с принтером. Оттуда можно послать на печать тестовую страницу, нажав "Print Test Page".


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

Для использования этого способа необходимо установить smbclient:
$ sudo aptitude smbclient

Запускаем браузер в адресной строке пишем:
http://localhost:631/

На вкладке Administration, в разделе Printers, нажимаем кнопку "Add Printer".
В разделе "Add New Printer" заполняем данные принтера.
В разделе Device выбирайте "Windows Printer via SAMBA".
В разделе Device URI, в текстовое поле пишите адрес принтера "smb://printeruser:printerpassword@domenname/hostname/printername".
printeruser - имя пользователя для которого разрешён доступ к принтеру;
printerpassword - пароль пользователя для которого разрешён доступ к принтеру;
domenname - домен к которому принадлежит пользователь, если нет @domenname можно опустить.
hostname - имя или ip-адрес компьютера к которому подключён принтер;
printername - сетевое имя принтера.
В разделе "Make/Manufacturer" выбираем фирму - производителя принтера.
В разделе Model/Driver, в окне Model выбираем пункт "HP LaserJet Series PCL 6 CUPS (en)", нажимаем "Add Printer".
При необходимости изменяем параметры принтера, нажимаем "Set Printer Options".
После небольшой задержки происходит переход на страницу с принтером. И посылаем на печать тестовую страницу, нажав "Print Test Page".

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

четверг, 29 января 2009 г.

Восстановление BIOS на ASUS A8N-E c помощью хотсвапа на ASUS P5LD2

Просматривая новости на linux.org.ru, обратил внимание на такую - http://www.linux.org.ru/view-message.jsp?msgid=3437489&lastmod=1233042479332.

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

Делать нечего надо восстанавливать систему, для чего следовало восстановить прошивку биос. Выходов было несколько:
1. Попытаться воспользоваться штатной системой восстановления биос от ASUS - фиаско, полное.
2. Взять программатор и залить прошивку - идея на 5 с плюсом, только программатора я не нашёл.
3. Покупка аналогичной материнской платы - найти оказалось невозможным, 939 сокет на котором она построена, слишком сильно устарел.
4. Хотсвап, перепрошивка биос путём передёргивания микросхем.

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

Кто не рискует, тот не зарабатывает опыт. Платы под 939 сокет я не нашёл, а компьютер в рабочем состоянии был нужен. Поскольку сведений, о чём бы то ни было в отношении восстановления биос, было маловато, начал с поиска информации по теме. Гугль (www.google.ru) оказался как всегда на высоте!

Нагрузившись информацией о программаторах, хочется отметить проекты www.willem.org и http://www.ezoflash.com/ezoflash_ru.htm, понял, что и этот вариант малопригоден. С паяльником у меня беда, да и покупка готового программатора, выльется в деньги и время.

Наиболее приемлемым остался лишь вариант с хотсвапом. И более всего меня склонила к нему эта статья - http://www.rom.by/Iskusstvo_pereshivki_BIOS.

Изыскав все возможности и подведя итог, имеем:
Материнская плата с убитым биос.
- Производитель и модель - ASUS A8N-E.
- микросхема биос - SST 49LF004B.
Рабочая материнская плата.
- Производитель и модель - ASUS P5LD2.
- микросхема биос - Winbond W39V040FAP.

На форуме сайта www.rom.by мной был задан вопрос о возможности использования P5LD2 для восстановления биос A8N-E. Быстро и доброжелательно пользователи этого форума ответили на мой вопрос. Было выяснено, что материнские платы используют микросхемы биос совместимые аппаратно, но не совместимые по протоколу общения с материнской платой. Так же микросхема биос от A8N-E (SST 49LF004B) является гибридной и может использоваться и прошиваться на обоих протоколах. Остались небольшие вопросы по поводу использования прошивальщика, но тем не менее я решил рискнуть.

Перепрошивку биос я производил из-под DOS, загрузочная дискета была создана средствами Windows XP. На неё были помещены: прошивальщики - awdflash (взят с официального сайта ASUS), afudos (взят с официального сайта ASUS), uniflash (брать здесь) и прошивка для A8N-E (версия 1013).

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

После загрузки с дискеты на P5LD2 и передёргивания биос, первым был опробован awdflash. Запуск производился со следующими параметрами:

awdflash имя_прошивки /cd/cp/py/sn/f/r

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

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

afudos /i<имя_прошивки> /n /pb

Параметр /n не помог, проверка IDROM выполнялась и процесс прошивки не начинался.

Ниточная часть не понадобилась, так как afudos самостоятельно корректно завершился.

Запуск uniflash. Программа показала себя с наилучшей стороны! Корректно определила производителя и тип микросхемы (SST 49LF004B), безропотно прошила её предложенным биосом и выполнила проверку.

Выйдя из uniflash, отключил компьютер и менее чем через час A8N-E заработала!