osd-slider - ползунок состояния для tiling WM и boxов

В "больших" DE, таких как KDE или GNOME, при изменении уровня яркости или громкости рисуется красивый ползунок, отображающий текущий уровень изменяемой величины. К сожалению, подобного ползунка, но для какого-нибудь легковесного WM, как правило не предусмотрено. Но выход все же есть.

19.07.2010

Скрипт для расшаривания интернета с одного компьютера на другой

Суть работы скрипта:

Schema

Есть компьютер-шлюз, у которого две сетевые карты — одна смотрит в интернет, а вторая в "сеть", состоящую из двух компьютеров — хоста и шлюза. Задача — раздавать интернет с шлюза компьютеру-хосту.

Код скрипта, выполняющего эту задачу:

#!/bin/sh

####################################
#                                  #
# host -> gateway -> INTERNET      #
#                                  #
####################################

# Ethernet card in host computer
ECARDINHOST=eth0
# Ethernet card in gateway computer (connects to host)
ECARTINGW_2HOST=eth0
# Ethernet card in gateway computer (connects to Internet)
ECARDINGW_2INTERNET=eth1


## Settings for host<->gateway network

# Netmask
NETMASK=255.255.255.0
# IP address for gateway
IP_GW=192.168.50.2
# IP address for host
IP_HOST=192.168.50.1


if [ "$#" -eq "0" ]; then
    echo -e "Usage:\n\t$0 [--gateway|--host]\n"
    exit 0
elif [ "$#" -eq "1" ]; then
    case "$1" in
        "--gateway")
            #checking internet connection
            ping -W 5 -c 1 ya.ru
            if [ "$?" -ne "0" ]; then
                echo 'No Internet connection! Aborting!!!'
                exit 1
            fi
            # enable packet forwarding
            sudo -u root -s "echo 1 > /proc/sys/net/ipv4/ip_forward"
            sudo ifconfig $ECARTINGW_2HOST $IP_GW netmask $NETMASK
            sudo iptables -t nat -A POSTROUTING -o $ECARDINGW_2INTERNET -j MASQUERADE
            echo 'Add this lines to /etc/resolv.conf in host computer (not in gateway!):'
            echo
            cat /etc/resolv.conf
            echo
            exit 0
            ;;
        "--host")
            sudo ifconfig $ECARDINHOST $IP_HOST netmask $NETMASK
            sudo route add default gw $IP_GW
            echo 'Add lines from gateway resolv.com to host resolv.conf'
            echo 'Do not forget say "sudo route del default gw 192.168.50.2"!'
            exit 0
            ;;
    esac
fi

Скрипт нужно запускать 2 раза и на хосте и на шлюзе, с двумя различными параметрами: --host и --gateway. Но перед началом работы возможно потребуется произвести некоторые изменения:

  • Указать верное имя сетевой карточки хоста, которая смотрит в сеть "хост←→шлюз", в переменной ECARDINHOST.

  • Указать верное имя сетевой карточки шлюза, которая смотрит в сеть "хост←→шлюз" — переменная ECARDINGW_2HOST.

  • Указать верное имя карточки шлюза, которая смотрит в интернет — ECARDINGW_2INTERNET.

  • Если есть необходимость — поменять маску подсети и IP адреса хоста и шлюза для сети "хост←→шлюз" — NETMASK, IP_HOST и IP_GW соответственно.

Работоспособность скрипта была проверена на двух системах — Archlinux и Ubuntu 10.04. На других системах возможно может потребоваться опустить интерфейс, прежде чем устанавливать IP-адрес и маску подсети или остановить сервис network-manager, чтобы не мешал.

01.07.2010

Виджет, отображающий расписание студенческой группы (ИТМО) на текущий день

Иногда (особенно когда плохая память на незначительные мелочи :-) ) бывает полезно постоянно иметь перед глазами расписание своей группы в универе. Ради этого, я написал набор из пары скриптов и конфига к conky, которые выводят на рабочий стол расписание группы на текущий день.

28.05.2010

Собираем свой кросскомпилятор для ARM

Для задачи портирования маленькой RT оси на SDK2.0, внутри которого какой-то ARM7, нужно собрать компилятор, который будет собирать исполняемые файлы под архитектуру ARM, работая при этом на машине с x86_64 процессором. К сожалению, в интернете практически отсутствуют руководства по сборке своего кросскомпилятора - в основном, рекомендуется использовать какие-то монстры наподобие Buildroot или crosstool-ng, которые помимо кросскомпилятора собирают еще кучу софта, мне ненужного. Методом "научного тыка" я похоже набрел на последовательность действий, которая позволила мне наконец-то собрать для себя кросскомпилятор.

27.05.2010

Использование VIm, как IDE для языка C

Несмотря на утверждение, что Vim это всего лишь текстовый редактор и использовать его как IDE глупо, я довольно продолжительное время успешно использую Vim как IDE для языка C. В этом мне помогает набор удобных плагинов и периодически улучшаемый мною .vimrc. К сожалению, я не встречал в Интернете статей, посвященных превращению Vim в IDE для C. Поэтому я решил написать свою :-).

21.05.2010

Принципиальная схема стенда SDK1.1

Как и было обещано, в этом посте я рассмотрю принципиальную схему стенда.

17.04.2010

Чемоданчик для разработок в области сенсорных сетей - CC2530ZDK

Буквально вчера, в мои когтистые лапы попал весьма интересный набор железок - СС2530 ZigBee Development Kit. Этот набор можно применять для разработки приложений, которые используют возможности сенсорных сетей.

Архитектура стенда SDK1.1

Как и было обещано, в этой статье я опишу архитектуру стенда SDK1.1. Начну со структурного описания, затем приведу характеристики стенда и информацию по отдельным узлам SDK1.1. Также будет дано описание используемой модели памяти и регистров ПЛИС.

21.03.2010

Введение в SDK1.1

Я решил начать цикл статей, посвященных стенду SDK-1.1. Думаю, мои записи помогут тем, кому необходимо освоить данный стенд. Все статьи будут отмечаться тегом sdk, для быстрого доступа ко всем статьям цикла.

16.03.2010

Рабочие будни.

Сижу в аудитории, пишу отчет к первой лабораторной по ИУСу. xmonad, gvim, apvlv (pdf).

15.03.2010