Авторизация

Вы можете войти через одну из учетных записей:

ИЛИ



Напомнить пароль
Регистрация

How-toШифрование GnuCash файла

Эта заметка о маленьком скрипте, который упрощает жизнь при работе с зашифрованным файлом GnuCash.

Недавно начал использовать GnuCash для ведения личных финансов, но программа не поддерживает шифрование файлов с данными. А бэкапить-то надо!
#!/bin/bash
# This is a script to work with an encrypted gnucash file. It asks for the
# password, decrypts the file, runs gnucash, and encrypts it back. Logs and
# backups are shredded at the end.
# Author: pluton <plutonpluton@mail.ru>
# Version: 0.9 (Thu Dec 16 2010)
# License: GNU GPL 3

CP=/bin/cp
KDIALOG=/usr/bin/kdialog
OPENSSL=/usr/bin/openssl
GNUCASH=/usr/bin/gnucash
SHRED=/bin/shred
BASENAME=/usr/bin/basename
CHMOD=/bin/chmod

FILE=~/your_encrypted_file
FILETMP="${FILE}.tmp"
TIMEOUT=2   # seconds
TITLE=$($BASENAME $0)

notify() {
    [ -n "$1" ] && text="$1" || text="?"
    $KDIALOG --passivepopup "$text" --title "$TITLE" $TIMEOUT
}

[ -e "$FILE" ] || { notify "File '$FILE' was not found"; exit 1; }

pass=$($KDIALOG --password "Enter the password /GC/")
[ "$pass" == "" ] && { notify "The password is empty"; exit 2; }

$OPENSSL enc -d -aes-256-cbc -k "$pass" -in "$FILE" -out "$FILETMP" || \
    { notify "The password seems to be wrong"; exit 3; }
$CHMOD go= "$FILETMP"
$CP -f "$FILE" "${FILE}.bkp"
$GNUCASH "$FILETMP"
$OPENSSL enc -e -aes-256-cbc -k "$pass" -in "$FILETMP" -out "$FILE" || \
    { notify "An error occured while encoding (code #$?)"; exit 4; }
unset pass
$SHRED -zun 2 "${FILETMP}"*
notify "Done"

Читать дальше
  • 0
  • Diesel
  • 17 декабря 2010, 11:20
  • add twitter 

SoftwareViewnior — быстрый просмотрщик картинок

Viewnior открывает картинки почти в два раза быстрее стандартного “Глаза GNOME”.

А сегодня вышла версия 1.1, в которой добавилась поддержка перетаскивания изображение в окно приложения, авто-ресайз окна при открытии, поддержка Gnome 3.0 и другое.

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

Установить

sudo add-apt-repository ppa:xsisqox/ppa
sudo apt-get update
sudo apt-get install viewnior
  • +1
  • Diesel
  • 17 декабря 2010, 11:15
  • add twitter 

ЗаметкиАппаратное ускорение/обработка FLASH-видео (VDPAU only)

Последняя бета Adobe Flash player'a принесла с собой замечательное обновление, а именно: поддержку аппаратного декодирования флешвидео средствами видеокарты (а не процессора). Технология позволяет сбросить нагрузку ЦП при воспроизведении Flash до 20-30% вместо бывших 90%. Технология VDPAU доступна только для видеокарт nVidia с поддержкой данной технологии и установленными пропиетарными драйверами!

  1. Скачиваем и устанавливаем Adobe Flash Player 10.2 (x32), и устанавливаем, копируя в папку: /usr/lib/flashplugin-installer/ или /usr/lib/adobe-flashplugin/ в зависимости от того, установлен ли уже Flash Player в системе или нет.
  2. Устанавливаем библиотеку libvdpau1:

sudo apt-get install libvdpau1


Пробуем проиграть тестовое видео. Если нагрузка на ЦП спала, то всё получилось. Если нет, то либо Ваша видеокарта не поддерживает VDPAU, либо не установлен пропиетарный драйвер nVidia, либо Вы не туда скопировали libflashplayer.so.

Для проверки также можно использовать вот это демо.

Инструкция для 64-битных систем находится здесь: ubuntuforums.org/showthread.php?t=1636333.
  • +1
  • Diesel
  • 16 декабря 2010, 12:41
  • add twitter 

Ненормальное программированиеНокогири: парсинг HTML в одну строку

Мучительный опыт парсинга кучи невалидных html и «xml» документов и удивительная простота dapper (сервис) и nokogiri (ruby) заставили потратить 5 часов на написание своей собственной пилы.

Примеры использования:

<?php
$html = gzdecode(file_get_contents('http://habrahabr.ru/'));

$saw = new nokogiri($html);
var_dump($saw->get('a.habracut')->toArray());
// На выходе: Array(6) { [0]=> array(3) { ["class"]=> string(8) "habracut" ["href"]=> string(56) "http://habrahabr.ru/blogs/google_chrome/110099/#habracut" ["#text"]=> string(29) "Читать дальше →" } [1]=> ....
var_dump($saw->get('ul.panel-nav-top li.current')->toArray());
// На выходе: array(2) { ["class"]=> string(7) "current" ["a"]=> array(3) { ["href"]=> string(20) "http://habrahabr.ru/" ["class"]=> string(8) "disabled" ["#text"]=> string(10) "Посты" } }
var_dump($saw->get('#sidebar dl.air-comment a.topic')->toArray());
// На выходе: array(50) { [0]=> array(3) { ["class"]=> string(5) "topic" ["href"]=> string(36) "http://habrahabr.ru/blogs/os/110045/" ["#text"]=> string(63) "ФБР внедряло backdoor'ы в IPSec код OpenBSD (?)" } [1]=> array(3) { ["cl
var_dump($saw->get('a[rel=bookmark]')->toArray());
// На выходе: array(10) { [0]=> array(4) { ["rel"]=> string(8) "bookmark" ["href"]=> string(47) "http://habrahabr.ru/blogs/google_chrome/110099/" ["class"]=> string(5) "topic" ["#text"]=> string(100) "Google объявил Chrome готовым к использованию в бизнес-среде" } [1]=> array(4) { ["rel"]=

Ошибки html игнорируются.
Распознаются вложеные теги (через пробел), а также конструкции вида .class, #id и [attr=value]
Создание из строки: nokogiri::fromString($htmlString); или new nokogiri($htmlString);
Создание из DomDocument: nokogiri::fromDom($dom);

Читать дальше
  • +1
  • Diesel
  • 16 декабря 2010, 12:28
  • add twitter 

Ненормальное программированиеЗагрузка с rghost

rgg.sh:
#!/bin/bash
wget -c `wget -O - $1|egrep -o "http://rghost.ru/download/.*\" "|cut -f1 -d '"'`

Использование:
./rgg.sh "http://rghost.ru/1234567"
  • +1
  • Diesel
  • 16 декабря 2010, 12:03
  • add twitter 

Блог им. sanekVIM — Undo persistence

Undo persistence — это возможность хранения истории отмен и накатов, после закрытия и повторном открытии редактора Vim.
В Vim встроена мощная дерево–видная система хранения отмен и накатов, которая позволяет восстановить всю цепочку(и цепочки всех веток) сделанных изменений. Недостаток был только один, при закрытии редактора она не сохранялась. С выходом версии 7.3 появилась такая возможность, на первый взгляд, не примечательная, но с другой очень полезная.

Для начала включим опцию set undofile, затем создаем папку где будем хранить файлы с историей, к примеру ~/.vim/undo, задаем значение set undodir=~/.vim/undo, перегружаем файл настроек :so ~/.vimrc. История отмен и накатов будет храниться в папке undo и файле примерно с таким названием:~/.vim/undo/%Users%sanek%.vimrc

Если нужно сохранить или считать файл в другом месте, можно использовать команды — :wundo, :rundo. Запретить создание undofile для определенного вида файлов или файла, так au BufWritePre /path/* setlocal noundofile.
Вот более сложное решение, если нужно как-то влиять на названия файлов и путей(взято из мана):

au BufReadPost * call ReadUndo()
au BufWritePost * call WriteUndo()
func ReadUndo()
  if filereadable(expand('%:h'). '/undo/' . expand('%:t'))
    rundo %:h/undo/%:t
  endif
endfunc
func WriteUndo()
  let dirname = expand('%:h') . '/undo'
  if !isdirectory(dirname)
    call mkdir(dirname)
  endif
  wundo %:h/undo/%:t
endfunc

Почитать оригинальный ман — :h undo-persistence
P.S.
Для меня эта функция оказалась полезной, удобно к примеру синхронизировать проекты на 2 машинах, дома и на работе под рукой полная цепочка изменений.
  • +2
  • sanek
  • 16 декабря 2010, 00:55
  • add twitter 

Web DeveloperCapistrano и php

Всем привет. Сегодня я хотел бы ещё раз поговорить о замечательном deploy-ере Capistrano.

Напомню, что Capistrano — это Open Source-ный инструмент для выполнения скриптов на нескольких серверах, который в основном используется для web приложений. Он позволяет автоматизировать процесс развертывания новой версии на одном или нескольких web серверах и включает поддержку таких задач, как например изменение базы данных.

Capistrano написан на Ruby и является «модулем» (или компонентном, не знаю как лучше) фреймворка Ruby on Rails.
Данный топик по большей части является переводом туториала со страницы проекта на github-е с некоторыми дополнениями, изменениями и сокращениями специфичными для php (или для «не RoR»). Здесь не будут рассматриваться вопросы работы с несколькими серверами и базой данных, это всего лишь небольшое пособие для начинающих.

Итак, допустим на нашем локальном компьютере в паке /path/deploy/from находится приложение написанное на языке php. У этого приложения есть git репозиторий находящийся по адресу example.net/project.git с актуальным кодом. Также у нас есть хостинг по адресу example.com с ssh доступом и папкой /path/deploy/to куда мы собираемся залить наши файлы. Мы не хотим постоянно возиться с ftp клиентом и решили потратить несколько часов для того, чтобы разобраться в деплойере capistrano. Давайте приступим.

Читать дальше
  • +2
  • shell
  • 15 декабря 2010, 15:18
  • add twitter 

How-tovim скроллинг для rxvt

Его долгое время не хватало для совершенства в окружении xmonad/vim/ranger/ncmpc/итд. Поиски не приводили к результату. И наконец я это сделал :), может ещё кому-то пригодится:

urxvt.font: xft:Terminus:pixelsize=14:autohint=true:a
urxvt.shading: 30
urxvt.transparent: true

urxvt.foreground: #aaaaaa

urxvt.depth: 32
urxvt*background: rgba:0000/0000/0000/cccc

urxvt.fading: 70
urxvt.fadeColor: [0]black

urxvt.saveLines:32767
urxvt.scrollBar: false

urxvt.perl-ext-common: default,tabbed
urxvt.tabbed.tabbar-fg: 7
urxvt.tabbed.tabbar-bg: 8
urxvt.tabbed.tab-fg: 2
urxvt.tabbed.tab-bg: 8

urxvt.scrollTtyOutput: false

urxvt.keysym.Control-k: command:\033]720;2\007
urxvt.keysym.Control-j: command:\033]721;2\007

Последние две — как раз скроллинг. «2» — количество строчек для прокрутки. Из остального полезно: zenburn для вкладок, затемнение неактивного терминала, отключен авто-скроллинг (использую, например, для выбора приложений в yaourt)

Скриншот:

Источник
welinux.ru/post/4725/
  • +1
  • android
  • 15 декабря 2010, 01:19
  • add twitter 

SoftwareSynapse — отличный лаунчер для вашего компьютера.


Synapse умеет:

  • запускать приложения;
  • управлять плеером Banshee и Rhythmbox;
  • выполнять команды в терминале;
  • искать папки и документы;
  • управлять компьютером (выключать, перезагружать и т.д.)
  • интегрироваться с Zeitgeist.

Список возможностей не такой большой, как у Kupfer. Но зато какой вид:

Читать дальше
  • +2
  • shell
  • 15 декабря 2010, 01:04
  • add twitter 

How-toКак перезагрузить зависшую систему

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

А вот как его сделать, чтобы не повредить причёску файловую систему. Прибегнем к так называемой магической ядерной кнопке, а именно сочетанию Alt-SysRq (он же PrintScreen) с разными буквами. Понадобятся нам такие, в этом порядке, с учётом, что у нас клавиатура qwerty:

  • Alt-Sysrq-R переключить клавиатуру в режим XLATE (перехватить управление у иксов)
  • Alt-Sysrq-E послать всем процессам, кроме инита, решительный привет, то есть SIGTERM
  • Alt-Sysrq-I послать всем процессам, кроме инита, окнчательный привет, то есть SIGKILL
  • Alt-Sysrq-S sync. Для последователй старой школы: нажать дважды
  • Alt-Sysrq-U перемонтировать все файловые системы в read-only
  • Alt-Sysrq-B начать загрузку

Говорят, что эту последовательность (Alt-SysRq-REISUB) можно запомнить как слово BUSIER наоборот. От себя можно добавить, что если хочется освежить в голове эту краткую мнемонику, то можно на консоли нажать Alt-SysRq-H, и будет выдана краткая справка. Для тех, кто не уверен, где у него консоль: надо нажать Ctrl-Alt-F1.
  • 0
  • android
  • 14 декабря 2010, 15:05
  • add twitter