понедельник, 26 октября 2009 г.

Мелочевка — скрипт fork

Часто бывает нужно, находясь в X-терминале, запустить графическую программу с некоторыми параметрами, но так, чтобы сразу от этого самого терминала «отвязалась». В общем-то для этого нужно перенаправить выводящие потоки и отправить в бэкграунд символом «&». Строго для упрощения сего я написал себе маленький скриптик, назвав его «fork» (я знаю, что название не вполне корректно):

#!/bin/bash

if [ -z "$TEMP" ]; then
 TEMP='/tmp';
fi;

$@ > "$TEMP/$$.stdout.log" 2> "$TEMP/$$.stderr.log" &

echo "fork: \"$@\" : $$"

Выполнение действия во всех подкаталогах — скрипт subs

Собственно ничего такого особенного. Мне это понадобилось для вызова mp3unicode, ну и вместо конкретного скрипта сделал универсальный:

#/bin/bash

$@;
for f in *; do
 if [ -d "$f" ]; then
  cd "$f";
  subs "$@";
  cd ..;
 fi;
done;
Для демонстрации рекомендую выполнить:
subs pwd

воскресенье, 2 августа 2009 г.

Модем Интеркросс 96338L-2M-8M как роутер

  1. Вроде бы я и раньше пробовал admin/admin, но что-то не получалось... Тут же попытался через html'ки «родного» Utel'овского диска — и спокойно зашел в конфигурирование модема.

  2. «Anvanced Setup / WAN / Edit».

  3. Заработало VPI/VCI = 1/50 вместо дефолтного.

  4. PPP Username: username
    PPP Password: ******
    PPPoE Service Name: Internet

  5. Кроме «Save and Reboot» из конфигуратора потребовалась «железная» перезагрузка модема. Вероятно, для самого модемного соединения, а не для PPPoE.

  6. После чего вернул в /etc/conf.d/net дефолтные настройки для DHCP по eth0 — попросту закомментировал строку со своими.

  7. PROFIT!!!

вторник, 7 июля 2009 г.

Пара LaTeX-мелочей

Кое-что из свеженьких рецептов. Ничего особенного и, для знатоков LaTeX, особо нового...

  1. Первым делом мне захотелось наладить висячую пунктуацию. В Google я пока не забанен, посему сразу же вышел на правильный рецепт — «Висячая пунктуация в LaTeX» на typedef.ru. Обнаружилась только одна проблема: кавычки в начале блочной цитаты (хоть в окружении quote, хоть в quotation) «висеть» никак не хотели... Да и странно ожидать от них иного поведения, если вспомнить, что эти окружения реализованы через list. Что мне всегда казалось странным, но не о том речь.

    Ломать поведение list и вообще глубоко копать я не стал, а счел наиболее корректным и удобным определить новое окружение, которое будет использовать механизмы форматирования, стандартные для абзацев, и тем самым станет совместимо с висячей пунктуацией. Результат:

    \newenvironment{quoting}{%
     \vspace{\parskip}%
     \hfill\begin{minipage}[t]{0.9\textwidth}%
    }{%
     \end{minipage}%
     \vspace{\parskip}%
    }

    Замечу, что в таком варианте цитата получается без отступа от правого края, в отличие от стандартных окружений. Однако нет проблем его получить — для этого нужно всего лишь заменить \hfill на \hfil. Еще момент: окружение minipage накладывает некоторые ограничения и особенности, в частности — при работе со сносками. Для меня это неактуально, так что разбирательство с этими проблемами оставляю читателю.

  2. Неприятной неожиданностью для меня стало то, что пакет inputenc с опцией utf8 не распознает символ неразрывного пробела... Решение тривиально:

    \usepackage[utf8]{inputenc}
    \DeclareUnicodeCharacter{00A0}{~}

воскресенье, 5 июля 2009 г.

/etc/hal/fdi/policy/10-x11-input.fdi — окончательная версия

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
    <device>
        <match key="info.capabilities" contains="input.keymap">
            <append key="info.callouts.add" type="strlist">hal-setup-keymap</append>
        </match>
        <match key="info.capabilities" contains="input.keys">
            <merge key="input.xkb.rules" type="string">base</merge>
            <merge key="input.xkb.layout" type="string">us,ru</merge>
            <merge key="input.xkb.options" type="string">grp:ctrl_shift_toggle,
                grp_led:scroll,compose:caps</merge>
            <merge key="input.xkb.variant" type="string">,winkeys</merge>
        </match>
    </device>
</deviceinfo>

Естественно, в реальности строка с «input.xkb.options» не переносится, просто здесь она бы неаккуратно выглядела.

четверг, 18 июня 2009 г.

При обновлениях Xorg-server...

Просто, чтобы не забыть: после всякого обновления xorg-server необходимо пересобрать драйвер evdev (xf86-input-evdev), пока еще компьютер на клавиатуру реагирует. Иначе он не подцепляется.

Go на три буквы

Собственно, я об этом когда-то уже писал, но в блоге на FreePascal.ru, который как-то разочаровывает — все-таки у блогов и форумов разные функции...

Так вот, я много пользуюсь командной строкой, причем, как правило, перемещаясь между тремя–четырьмя каталогами. Набирать полную команду cd — ленивенько... Что же я сделал? Очень просто — в ~/.bashrc вписал:

alias go='cd ~/usr/etc/go && cd -P ';

и, само собой, накидал нужных символических ссылок в ~/usr/etc/go.

Таким образом, вместо

$ cd ~/usr/src/svn/fpc

пишу теперь

$ go fpc

суббота, 13 июня 2009 г.

Настройка PPPoE

Собственно, настройка PPPoE в Gentoo проста до чрезвычайности и проходит по хэндбуку. Я столкнулся только с одним нюансом: DSL-модем, являясь также DHCP-сервером, забивал своей выдачей шлюз и DNS от провайдера. В итоге /etc/conf.d/net выглядит так:

# А вот следующая строчка нифига не работает...
dns_domain_lo="mydomain"

config_eth0="dhcp"
dhcp_eth0="nodns nontp nonis nogateway"

config_ppp0="ppp" 
link_ppp0="eth0"
plugins_ppp0="pppoe"
username_ppp0='user'
password_ppp0='password'
pppd_ppp0=" 'usepeerdns' 'noauth' 'updetach' 'defaultroute' "

depend_ppp0() {
        need net.eth0
}