Рейтинг
0.00
голосов:
0
avatar

Tips & tricks  

Tips & tricks Tips & tricksСкрипт для создания миниатюр первой страницы DJVU файлов.

#!/bin/bash

###
### Рекурсивно ищет .djvu и .djv файлы и экспортирует первую страницу в {Имя djvu файла}.png с максимальным разрешением 300х300
### aleksonik 2010-07-11


function EXPORT_PAGE_DJVU2PNG {
  FILE1="$1"
  IMAGE1="$2"
  echo "EXPORT PAGE FROM $FILE1"
  ddjvu -format=pnm  -page=1 -aspect=yes -size=300x300 "$FILE1" /tmp/extp_1str_from_djvu_tmp.pnm
  pnm2png /tmp/extp_1str_from_djvu_tmp.pnm "$IMAGE1"
  rm /tmp/extp_1str_from_djvu_tmp.pnm
}



MAIN_DIR=`pwd`

find "$MAIN_DIR" -type f -name "*.djvu" | while read DIR1
do 
  IMAGE_DIR=`echo ${DIR1%%.djvu}.png`
  EXPORT_PAGE_DJVU2PNG "$DIR1" "$IMAGE_DIR"
done


find "$MAIN_DIR" -type f -name "*.djv" | while read DIR1
do 
  IMAGE_DIR=`echo ${DIR1%%.djv}.png`
  EXPORT_PAGE_DJVU2PNG "$DIR1" "$IMAGE_DIR"
done


Tips & tricks Tips & tricksXming - X-сервер под MS Windows

Так бывает, что не всегда машина с любимой осью под рукой.
Да и вообще твой домашний компьютер находится далеко от тебя.
Что делать? Да, для этого есть SSH и putty (прекрасный, бесплатный ssh-клиент под винду), а что делать если хочется
окошечек?

( Читать дальше )
  • 0
  • 12 марта 2010, 22:52
  • Vass
  • 2+2

Tips & tricks Tips & tricksImageshack uploader

Нашел в интернетах скрипт для заливки картинок на imageshack. Скрипт был большой, делал много не нужного и самое главное был не рабочий. Переписал скрипт, из старого скрипта воспользовался только командой curl'а для отправки картинки.
#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys, subprocess, shlex

def uploadsingle(img):
    print("Uploading: " + img)
    string = "curl -H Expect: -F fileupload=\"@" + img + "\" -F xml=yes -# \http://www.imageshack.us/index.php\ "
    args = shlex.split(string)
    link = subprocess.Popen(args, stdout=subprocess.PIPE).communicate()[0]
    res = link.split("\n")
    print res[1][16:-13]
    
if len(sys.argv) != 2 :
	print "Usage:", sys.argv[0], "image.jpg"
else : 
	img = sys.argv[1]
	uploadsingle(img)

  • +1
  • 10 февраля 2010, 21:33
  • Troy
  • 5+5

Tips & tricks Tips & tricksЕдинообразное переключение раскладки в emacs и xorg

В этой заметке я опишу небольшой костыль, который я сделал, что-бы переключение языка ввода в emacs и xorg происходило по одной и той-же комбинации клавиш.
Собственно я хотел, что-бы в иксах переключение языка происходило по C-\ а в окне емакса язык не переключался, а C-\ передавлся самому емаксу.
Для этого была установлена xxkb (http://pascal.tsu.ru/other/xxkb/)
со следующим конфигом (~/.xxkbrc):

XXkb.mainwindow.enable:No
XXkb.controls.add_when_change:Yes
XXkb.controls.focusout:Yes
XXkb.app_list.wmlass_class.ignore:∗emacs∗∗Emacs∗
XXkb.app_list.wmlass_class.alt_group1:∗emacs∗∗Emacs∗
XXkb.button.enable:Yes
XXkb.button.geometry:15x15−60+10

Основное, что задано в этом файле — не переключать язык в окне емакса.
Теперь настроим переключение в иксах. Сдесь всё несколько сложнее. Подробную документацию на русском можно найти на pascal.tsu.ru/other/xkb/
Я не пытался зделать всё прямо и красиво, главное что-бы работало.
в rules/base добавил

  grp:lctrl_backslash_toggle  =  +group(lctrl_backslash_toggle)

а в symbols/group

partial modifier_keys 
xkb_symbols "lctrl_backslash_toggle" {
    key <BKSL> {
   type[Group1]="LOCAL_EIGHT_LEVEL",
   symbols[Group1]= [ backslash, Semicolon, NoSymbol, NoSymbol, ISO_Next_Group, NoSymbol, NoSymbol, NoSymbol ]
    };
};

а также удалил все упоминания о BKSL из symbols/ru, тк они перекрывали моё правило и недавали переключаться с руского языка.
Теперь добавим в опции xkb lctrl_backslash_toggle, то мы получим желаемый эффект. По C-\ переключается язык ввода и в иксах и в emacs.
  • +1
  • 9 февраля 2010, 18:35
  • lexa_
  • 1+1

Tips & tricks Tips & tricksкостыль к translate.ru

На хабре ( тут ) встретил интересную реализацию скрипта с консольным StarDict ( словарь-переводчик ) и немного усовершенствовал. Причина усовершенствований — словари к стардику я подключить так и не смог, незнаю почему, раньше получалось. Насколько мне помнится, Стардикт непонятно как обрабатывал фразы. Собственно, онлайн переводчик с хоткея, работает с маленькими текстами:

#!/usr/bin/bash

if [ -z "$1" ];then
# Если без аргументов, то берем из буфера
 WORD=$(xclip -o);
else
 WORD="$1";
fi

WORD=$(basename "$WORD" | sed "s/ /+/g");
TMPFILE='/tmp/word_translate';
lynx -dump -display_charset=UTF-8 "http://m.translate.ru/translator/result/?text=$WORD&dirCode=er" > $TMPFILE;
OUTWORD=$(cat $TMPFILE | head -n 5 | tail -n 1);

echo $OUTWORD | dzen2 -l 2 -p -w 300 -bg "#cdc9c9" -fg "#000000" -x 150 -y 150 -e & #39;onstart=scrollhome,uncollapse;button4=scrollup
;button5=scrolldown;button1=exit';

rm -f $TMPFILE;
exit 0;

Tips & tricks Tips & tricksкостыль к winrar

дело было вечером, делать было есть чего. xD
Собственно, запускать пассворд рековери под вайном идея неприличная. набросал небольшой скриптец. перебор паролей по словарю. пароль я, кстати, так и не подобрал =\

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys, os, string

class BruteForce():
  def __init__(self, filename=None):
    self.fn = filename
    self.dnd = "default.txt"
    self.pswd = 0

  def extract(self):
    cmd="/usr/bin/unrar e -p"+str(self.pswd.strip())+" "+str(self.fn)+" > /dev/null 2>&1"
    return os.system(cmd)

  def bf_dict(self, dictname = None):
    if dictname is None:
      self.dictname = open(self.dnd)
    else:
      self.dictname = open(dictname)
    for self.pswd in self.dictname:
      if self.extract() is 0:
	print "password: ", self.pswd
	self.dictname.close()
	sys.exit(0)


if __name__ == "__main__":
  if len(sys.argv) < 2:
    print "Usage: ", sys.argv[0], " name.rar  --dict[=name dict]\n"
    sys.exit(0)
  bf = BruteForce(sys.argv[1])
  if len(sys.argv) == 3:
      key = sys.argv[2].split("=")
      if key[0] == "--dict":
	if len(key) > 1:
	  bf.bf_dict(key[1])
	else:
	  bf.bf_dict()
  else:
   bf.bf_dict()

  • +2
  • 31 января 2010, 22:22
  • dbsh
  • 7+7

Tips & tricks Tips & tricks100Hz и nVidia в Linux

Заставляем старый, но хороший ЭЛТ монитор показывать нам картинку сто раз в секунду (:
Описан случай для Debian и nVidia, но работает независимо от этого везде, где есть Xorg.

( Читать дальше )

Tips & tricks Tips & tricksУстановка принтера Canon LBP2900

В данном HOWTO рассказано о том, как установить принтер Canon  LBP2900 в Debian. Однако, данное руководство подойдет и для многих других принтеров. Таких как i-SENSYS LBP2900, i-SENSYS LBP3000, i-SENSYS LBP3010, i-SENSYS LBP3100, i-SENSYS LBP3250, i-SENSYS LBP3310, Laser Shot LBP-1120, Laser Shot LBP-1210, Laser Shot LBP2900, LaserShot LBP3000, Laser Shot LBP3300, LBP-3200, LBP5000, LBP5100, LBP5300.
( Читать дальше )
  • 0
  • 25 января 2010, 21:28
  • Vass
  • 2+2

Tips & tricks Tips & tricksПростой скрипт для backup'а mysql базы данных

Мне потребовалось автоматическое резервное копирование базы данных из СУБД MySql, Решено было написать простой скриптик, который можно скормить cron, чтобы он запускался в заданное время.

( Читать дальше )
  • 0
  • 25 января 2010, 18:33
  • Vass
  • 3+3

Tips & tricks Tips & tricksНастройка PPPoE через FTTB с раздачей интернета в локальную сеть

Сейчас в наших домах стал появляться интернет доставляемый по технологии FTTH — оптоволоконный кабель до вашего подъезда. В этой статье рассказано каким образом настроить интернет в вашей квартире имея компьютер с Debian GNU/Linux на борту сетевой картой и Wi-Fi.

Итак втыкаем кабель провайдера в сетевую карту. И поднимаем интерфейс (устанавливать IP и т. д. в принципе не обязательно): ifconfig ethX up (где ethX — ваш сетевой интерфейс).
Далее следует установить пакеты pppoe и pppoeconf выполнив следующую команду: apt-get install pppoe pppoeconf. При установке пакета, установщик спросить у вас логин и пароль для вашего подключения и сам настроит сетевые интерфейсы.

Итак ваш интернет настроен и должен работать, проверить все ли так можно введя команду ifconfig, Если среди интерфейсов вы увидели pppX с заданным IP значит все в порядке.

Теперь осталось разрешить его всем остальным участникам домашней сети, для этого необходимо выполнить следующие команды:
echo «1» > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o pppX -j MASQUERADE

где pppX это ваш PPP интерфейс.

Все настройка закончена. Управлять подключением Вы можете командами: pon (обычно dsl-provider) — установка соединения и poff — разрыв соединения. Также можно использовать команду plog, для проверки состояния подключения.

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