Конвейеры в Python или Shell не нужен

Одно из серьезных преимуществ Linux перед Windows — это возможность писать скрипты, которые могут автоматизировать практически любые действия с системой. Однако скрипты, как правило, пишутся на языке Shell, который далек от современных требований к языку программирования. Далее я расскажу, каким образом Python может заменить Shell на поприще написания небольших скриптов для автоматизации системы.

Читать далее

Как установить Eagle 6 на Ubuntu

С появлением этого ppa: ppa:sterling/electronics, необходимость в описанных здесь действиях отпала, можно просто ставить eagle с ppa!

Данная статья относится к Ubuntu версий 11.04, 11.10 и 12.04.

Многие, кто имеет дело с электроникой, знают о существовании под Linux САПР Eagle, предназначенной для разработки электронных схем и разводки печатных плат. Несмотря на то, что программа не является свободной и даже бесплатной, являясь одной из лучших САПР, доступных на Linux, она пользуется огромной популярностью. Наличие бесплатной версии для некоммерческих проектов делает возможным её использование радиолюбителями. Пятая версия включена в официальный репозиторий Ubuntu и может быть установлена оттуда. Шестую версию пока можно найти только в бинарном виде на официальном сайте.
Читать далее

Загрузка данных по FTP с использованием Mercurial

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

В частности это относится и к веб-проектам. Здесь у системы контроля версий есть еще одна очень важная задача — заливка кода на сервер. Когда мы по-старинке заливали файлы на сервера простым копированием файлов, достаточно сложно было каждый раз вспоминать, какие файлы изменились и должны быть перезалиты на сервер. При использовании системы контроля версий (например Mercurial) эта проблема с наших плеч спадает: мы создаем на сервере копию репозитория (не забыв запретить доступ через HTTP к директории .hg) и простым выполнением команды hg push можем обновлять код на сервере. При этом доступ к серверу мы можем осуществлять, например, по протоколу SSH.

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

Для таких ситуаций существует расширение для Mercurial, называемое FTPExtension.

Опишу пошагово процесс установки и использования расширения:

  1. Создаем директорию, куда будет загружено расширение. Загружаем расширение следующей командой:
    hg clone https://bitbucket.org/misery/hgftp
  2. Открываем файл кофигурации ~/.hg/hgrc (в данном случае мы редактируем общую конфигурацию пользователя, которая будет использоваться для всех репоизториев, с которыми он работает; тоже самое можно сделать и для файла .hgrc конкретного репозитория). Добавляем туда следующие строки:
    [extensions]
    hgext.ftp = /path/to/ftp.py
  3. В файле .hgrc прописываем адрес ftp-сервера:
    [paths]
    deploy = ftp://vasya:123@myfavoritehosting/my_site_directory
  4. После этого текущую ревизию можно будет загрузить на сервер следующей командой (история изменений на сервер загружена не будет, так что резервную копию храним в другом месте):
    hg ftp -u deploy
  5. Обратите внимание, что если мы раньше уже загружали этот проект на этот сервер, то сейчас будут загружены только изменившиеся файлы. Если мы хотим, чтобы загрузились все файлы, добавляем ключ -a:
    hg ftp -au deploy

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

  1. Введение в Mercurial
  2. FTP Extension
  3. Using Mercurial Extensions

© Григорий Кощеев, lug.nsk.ru, 2012 г.
Лицензия Creative Commons
Это произведение доступно по лицензии Creative Commons Attribution-ShareAlike (Атрибуция — С сохранением условий) 3.0 Непортированная.

Запрет пользователям выключать/перезагружать компьютер при помощи PolicyKit

Не вдаваясь в подробности, откуда есть пошло у меня желание такое сварганякать просто расскажу, как это сделать. Читать далее

Просмотр русскоязычных ZIP-архивов

Иногда возникает необходимость просмотреть ZIP-архивы в русскоязычной кодировке. И вместо имён файлов мы видим непонятный набор — символы-крякозябвы, даже распаковать которые не представляется возможным. Конечно, можно попробовать запуск 7zip под wine, но это недостойный путь для настоящих линуксоидов. Также был испробован вариант архиватора PeaZIP, но даже самая последняя версия 4.1 с сайта разработчиков тоже не решила всех проблем, да и настроек на кодировку кириллицы CP866/CP1251 там нет.

Читать далее

Настройка APT — выбор языка описания пакетов

Несколько лет назад в проектах Debian и Ubuntu началось активное движение в сторону перевода всех описаний пакетов на русский язык. Сейчас переведаны описания к значительной части пакетов. С одной стороны, это хорошо, так как позволяет работать с пакетами людям на их родном языке. С другой, многие пакеты всё ещё имеют только английские описания. Использовать поиск по описаниям пакетов в таких условиях становится очень неудобным. К тому же, многие русские переводы названий пакетов не отличаются качеством. Поэтому я предпочитаю пользоваться только английскими вариантами описаний. Далее я расскажу, как дать APT понять, что вы хотите того же.

1. Создаём новый конфигурационный файл apt, что-нибудь вроде /etc/apt/apt.conf.d/99translations
2. Добавляем туда строку слудующего содержания:
Для новых (начиная со Squeeze) дистрибутивов:

Acquire::Languages "en";

Для старых:

APT::Acquire::Translation "en";

3. Выполняем

sudo apt-get update

Всё! Больше русские описания к пакетам использоваться не буду.

Пакман в пакмане (пасхальные яйца)

Случайно столкнулась с ArchBang — дистрибутив, основанный на ArchLinux с Openbox в качестве дефолтного WM. Но разговор пойдёт совсем не о нём. Просто я там нашла одну забавную мелочь, которую захотелось перенести на свою основную систему. Состоит она в следующем:
Когда pacman синхронизирует репозитории, скачивает и устанавливает пакеты, в конце каждой строки рисуется «прогрессбар». Обычно он выглядит как-то так:

[#################------]

То есть по мере выполнения процесса количество решёток в строке увеличивается. А в арчбэнге эти прогрессбары пытались имитировать игру «пакмэн» примерно так:

[----C o  o  o  o  o  o ]

Буква «C» продвигаясь вправо «кушает» буквы «o», она при этом ещё и «рот открывает» (постоянно меняется со строчной на заглавную).
Ерунда, но такая милая. Оказалось, это «пасхальное яйцо» и делается очень просто.
Открываем файл /etc/pacman.conf с правами суперпользователя и дописываем строчку ILoveCandy (можно в разделе Misc options).
Читать далее

Запуск приложений в отдельном X-сервере

тобы запустить приложение в отдельном X-сервере, используется команда вида:

startx /path/to/application -- :1

То есть набрав такую команду в консоли (не эмуляторе терминала, а именно tty1, например), мы попадём во второй X-сервер, где будет работать нужное приложение. Переключаться в него можно сочетанием клавиш Ctrl+Alt+F8 (соответственно, следующие виртуальные дисплеи получим по Ctrl+Alt+F9 и так далее; а самый первый X-сервер запускается на нулевом дисплее и переключаться в него можно по Ctrl+Atl+F7).
Вместо /path/to/application нужно вставить полный путь к исполняемому файлу, например не firefox, а /usr/bin/firefox.

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

Grub2: Как перезагрузиться из одной системы в другую

Статья навеяна…
Если у вас возникли вопросы при прочтении заголовка, поздравляю, должны были.
Если у вас на компьютере стоит Grub2, который загружает 2-3-4, а то и 5 систем, и вам нужно перезагрузиться из одной в другую? Ответ прост — перезагружаемся, выбираем нужную систему в Grub2 и загружаемся в новую? И ждём всё это время над клавиатурой?

Читать далее

Значки запуска программ на tint2

Писала уже не раз о панели tint2. Сейчас у неё появилась новая фича в виде возможности добавить значки запуска приложений — ланчер.
Доступна возможность пока только в svn-версии и настраивается исключительно руками из конфигурационного файла (в смысле в tintwizard поддержки нет).
tint2 launcher

Читать далее