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

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

Читать далее

JSHint. Повышаем качество JavaScript кода.

Что-то я прям конкретно подсел на JavaScript, в частности на node.js. Значительно экономит время по сравнению со всем, что я до этого пробовал, да и от его объектной модели меня прям прёт.
При разработке на подобных языках отсутствует этап компиляции, в коде постоянно остаются косяки, которые всплывают только во время исполнения. И ладно, если ошибки всплывут при исполнении кода, обычно он всегда тестируется, но бывает и такое, что интерпретатор либо не видит явной ошибки, либо не хочет видеть (как к примеру делает хром со скриптами которые содержат даже синтаксические ошибки). Тут нас выручить может статический анализатор кода, чем и является JSHint.
Читать далее

Как установить 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

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

text-align: justify по вертикали

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

В общем, хочется аналога text-align: justify, но по вертикали.
Задавать каждому блоку фиксированную высоту? Не вариант, внутри может быть одна буква, а может и картинка. Задавать margin-bottom каждому дочернему элементу? Тоже не вариант, опять же из-за того, что мы не знаем высоты элементов.
Читать далее

Просмотр русскоязычных 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

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

Возня с nautilus

Nautilus — как известно, дефолтный файловый менеджер графическо среды Gnome. Конечно, и там можно пользоваться другой программой и саму программу можно юзать в любой среде, но тем не менее она устанавливается вместе с гномом, а сама по себе тащит в зависимостях gnome-desktop.

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

Читать далее