21 окт. 2011 г.

Realtek 8192se PKGBUILD Linux 3.x

As people say kernel 3.x driver for Realtek wifi-cards works worse than official one.

So I'll try to install it and see the difference.

Here is my PKGBUILD for Arch Linux. It's based on AUR package.

Here you'll find new driver (last from Realtek for kernel >= 2.6.35 official page) and some hack (thanks mhertz) to compile this driver.


# Maintainer: Techlive Zheng 
# Contributor: Peter Bui 

pkgname=rtl8192se
pkgdesc="Drivers for Realtek 8192SE wireless chipset"
pkgver=0003.0620.2011
pkgrel=5
license=("GPL")
depends=('linux>=3.0.0') 
makedepends=('linux>=3.0.0')
install="${pkgname}.install"
source=("ftp://WebUser:r3iZ6vJI@95.130.192.218/cn/wlan/92ce_se_de_linux_mac80211_${pkgver}.tar.gz")
md5sums=('f6d488ef52ba284b859989de58d85839')
changelog=Changelog
arch=('i686' 'x86_64')
url="http://www.realtek.com.tw/"

build() {
    cd ${srcdir}/rtl_92ce_92se_92de_linux_mac80211_${pkgver}

    sed -i 's|RX_FLAG_TSFT|RX_FLAG_MACTIME_MPDU|g' base.c rtl8192{ce,se,de}/trx.c

    make || return 1
}

package(){
    cd ${srcdir}/rtl_92ce_92se_92de_linux_mac80211_${pkgver}
    FW="${pkgdir}/lib/firmware"
    DEST="${pkgdir}/lib/modules/$(uname -r)/kernel/drivers/net/wireles/rtlwifi" 
    mkdir -p $FW/rtl8192{se,ce,de}
    mkdir -p $DEST/rtl8192{se,ce,de}

    #make FIRMWAREDIR=$FW MODDESTDIR=$DEST install
    install -p -m 644 rtlwifi.ko $DEST 
    install -p -m 644 ./rtl8192se/rtl8192se.ko $DEST/rtl8192se
    install -p -m 644 ./rtl8192ce/rtl8192ce.ko $DEST/rtl8192ce
    install -p -m 644 ./rtl8192de/rtl8192de.ko $DEST/rtl8192de

    cp -fr firmware/rtlwifi/ $FW/.
}

16 июн. 2011 г.

LaTeX. Скобки в математическом режиме


\left delim1 ... \right delim2

The two delimiters need not match; ‘.’ acts as a null delimiter, producing no output. The delimiters are sized according to the math in between. Example: \left( \sum_i=1^10 a_i \right].
Фишка с точкой после скобки понадобилась для систем уравнений.

source:

LaTeX reference

15 июн. 2011 г.

Vim. Tip 4. Замена на примере дробей и \frac

Еще один пример работы с командой замены в vim.

Чтобы заменить все места типа «целое_число1/целое_число2» на «\frac{целое_число1}{целое_число2}» (для LaTeX) в vim, команда:

:%s:\(\d*\)\/\(\d*\):\\frac{\1}{\2}:g

! Круглые скобки для группирования совпадений в vim надо экранировать.

see also:
vimregex.com

25 апр. 2011 г.

Netbeans. Тонкая настройка

Опции запуска по умолчанию.

Пока привожу как есть, возможно позже добавлю описание каждого параметра.

UPD 25.04.11 теперь LaF по умолчанию Windows, т. к. покомпактней, чем GTK.

UPD 23.03.12 отключил master password -J-Dnetbeans.keyring.no.master=true (работает только для версий 7.x).

UPD 26.08.12 фикс для нескольких мониторов -J-Dnetbeans.popup.no_hack=true

UPD 15.03.13 нашел мегаполезную настройку: перенос статусной строки в главное меню: -J-Dnetbeans.winsys.statusLine.in.menuBar=true. Экономит место по вертикали

/usr/share/netbeans/etc/netbeans.conf

netbeans_default_options="--locale en \
-J-Dnetbeans.winsys.statusLine.in.menuBar=true \
-J-Dnetbeans.keyring.no.master=true \
-J-Dnetbeans.popup.no_hack=true \
-J-Dnetbeans.keyring.no.master=true -J-client -J-Xverify:none \
-J-Xss2m -J-Xms32m -J-Xmx1024m -J-XX:PermSize=32m \
-J-XX:MaxPermSize=500m -J-Dsun.java2d.noddraw=true \
-J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled \
-J-Djava.net.preferIPv4Stack=true -J-Dswing.aatext=true \
-J-Dawt.useSystemAAFontSettings=lcd --laf Windows \
-J-Dsun.zip.disableMemoryMapping=true"

8 апр. 2011 г.

Clipgrab. Сохранение видео с YouTube, Vimeo, Dailymotion etc.

Сайт программы

http://clipgrab.de/en

Фичи

  • сохранение видео в разных форматах вплоть до HD.
  • поиск по YouTube.
  • перекодирование с помощью ffmpeg.
  • отслеживание буфера обмена на предмет подходящих ссылок.
  • компактный размер (~160 КБ пакет для Archlinux) без лишних зависимостей (ffmpeg опционально).

Недостатки

  • (*субъективно) написан на Qt (но без библиотек KDE).
  • нет интерфейса командной строки.
  • нет паузы\возобновления закачек.

Скриншоты (кликабельны)

Окно поиска. При клике на видео попадаем на вкладку закачек, где уже можно скачать его.


Вкладка закачек. В верхней части можно самостоятельно вставить URL страницы с видео.

2 апр. 2011 г.

Openbox. Панель и лаунчер.

Панель

LXPanel временами падает при вызове ее встроенного лаунчера, поэтому нафиг ее.
Поустанавливал почти все, упомянутые в арчивики, остановился на tint2.
Минималистичная, есть GUI-конфигуратор, потребовался минимум напилинга.

Лаунчер

Вместо lxpanelctl run попробовал сначала gmrun, который не понравился тем, что все нет автозавершения команды (или я не искал, как его включать) — приходится постоянно жать Tab, и dmenu, который и оставил пока что (по-моему, именно его я запомнил по своему беглому знакомству с awesome когда-то), огорчает он только кракозябрами вместо русских букв после установки (скорее всего, дело в шрифте, но мне, естественно, лень заморачиваться).

Скриншот (кликабелен)

Все это добро в действии. dmenu сверху, tint2 снизу.

29 янв. 2011 г.

Inotify. Слежение за изменением файлов.

Выполнение какого-нибудь скрипта при изменении файлов *.txt в текущем каталоге:

while true ; do
    inotifywait ./*.txt && echo "SOME TEXT HAS BEEN CHANGED!!1";
done


Забавный пример из официальной документации:

#!/bin/sh
while inotifywait -e modify /var/log/messages; do
    if tail -n1 /var/log/messages | grep httpd; then
        kdialog --msgbox "Apache needs love!"
    fi
done

23 янв. 2011 г.

QR-код с помощью Google Charts API

Ссылка на это сообщение:
http://chart.apis.google.com/chart?cht=qr&chs=100x100&choe=UTF-8&chld=H|0&chl=http://sjff.blogspot.com/2011/01/qr-google-charts-api.html
Изображение (кликабельно):

Sed. Tip 1. Группы в регулярных выражениях на примере переименования файлов

Нужно переименовать много файлов с именем вида «gost_01.02.2010.txt» в «gost_2010.02.01.txt» для сортировке по дате без проблем.

Пример замены:
$ echo "gost_01.02.2010.txt" | sed -r 's/([[:alpha:]]+)_([0-9]{2})\.([0-9]{2})\.([0-9]{4})\.txt$/\1_\4\.\3\.\2\.txt/g'
gost_2010.02.01.txt

Тут используется команда sed'a s/regexp/replacement/flags.
С помощью регулярного выражения (regexp) ищутся и разбиваются по группам интересующие нас поля. Затем исходная строка заменяется на replacement, в данном случае просто переставляем найденные группы и получаем нужное имя файла. Флаг g можно тут и не использовать, он нужен для замены всех совпадений.

Переименование всех файлов, начинающихся с «gost» в данном каталоге:
for file in ./gost*
do
    mv ${file} `echo ${file} | sed -r 's/([[:alpha:]]+)_([0-9]{2})\.([0-9]{2})\.([0-9]{4})\.txt$/\1_\4\.\3\.\2\.txt/g'`
done

Ссылки по теме:
  1. Регулярные выражения UNIX
  2. Введение в sed
  3. Википедия. Регулярные выражения