RuNIX.org — планета блогов о *NIX на русском языке

04.07.2009

vanoc.ru

FirefoxNotify

Интересный плагин FirefoxNotify для поклонников Ubuntu использующих Gnome. Плагин заменяет стандартное уведомление окончания закачки на схожее уведомление Ubuntu 9.04

firefoxnotify

https://addons.mozilla.org/en-US/firefox/addon/9622

by vanoc at 04.07.2009 04:37:51

03.07.2009

Unix way

Elisp: аплоад файлов на twitpic для twit.el

Сделал загрузку изображений на twitpic. Логин и пароль от twitter используются из настроек twit.el. Если эти настройки не установлены, спрашивает в минибуффере.

Для отправки post-запросов просмотрел несколько вариантов и проще всего для этой задачи оказалось дергать curl через shell-command.

Функция twitpic-upload-and-post загружает изображение и отправляет сообщение в twitter (с описанием, которое пользователь может ввести в минибуффер).

Функция twitpic-upload только загружает.

Скачать

by Pavel Vyazovoi (vyazovoi@gmail.com) at 03.07.2009 19:50:59

Мир Линуксоида

What do you do with Linux?

Весной этого года компания Novell запустила конкурс на лучший видеоролик про Linux, озаглавленный "What do you do with Linux?". Сегодня были объявлены финалисты, и началось официальное голосование.

Ролики-конкурсанты должны отвечать на вопрос: «Что вы делаете с Linux?», а их длина не может быть больше одной минуты. Сбор заявок на конкурс закончился 1 июля, а этой ночью были отобраны 14 роликов, из которых сами пользователи путем голосования выберут основных победителей.

На данный момент в голосовании лидируют 3 видеоролика от русскоязычных авторов. Причем у двух из них схожи не только сюжеты, но и названия. Первый – «Living with Linux», был создан при участии автора nixp.ru и главного редактора "Open Source" Дмитрия Шурупова. Он рассказывает об обычном дне из жизни гика, которого окружают Linux-устройства. Второй – «Life with Linux» от Александра Комягина.

Полный список финалистов с возможностью посмотреть на ролики и проголосовать за них можно на http://howdoyoulinux.com/#watchvideos

by noreply@blogger.com (tinman321) at 03.07.2009 16:51:00

K Notes

Большое обновление KDE на Windows

Команда KDE on Windows с радостью сообщает о выпуске KDE 4.3 RC1 на этой платформе. Помимо этого, доступны свежие сборки таких приложений, как Konsole, Yakuake, Kile, KDevelop и Konversation, а также теперь на Windows выпущены некоторые приложения из состава KOffice 2.0.1.

Не забывайте, что это тестовые версии, и их стабильная работа не гарантируется. Впрочем, мы ведь говорим о KDE on Windows, какая тут стабильность? :) Не забудьте в KDE Installer выбрать версию “unstable latest”. К слову, некоторые из перечисленных приложений могут быть и не включены в готовящиеся в ближайшее время стабильные релизы.

Обратите внимание, что приложения из состава kdesdk и kdegraphics теперь также доступны в виде отдельных пакетов. Это значит, что вместо установки всего kdegraphics, вы можете выбрать, к примеру, только gwenview или kolourpaint.

by LXj at 03.07.2009 15:47:57

Заметки администратора

Конфигурирование bonding для сетевых интерфейсов на RHEL/CentOS 5

Конфигурация необходимых сетевых интерфейсов:
  • eth0
# cat > /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
[Ctrl+D]
  • eth1:
# cat > /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
[Ctrl+D]
  • bond0:
# cat > /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NETWORK=10.10.70.0
IPADDR=10.10.70.77
NETMASK=255.255.255.0
USERCTL=NO
[Ctrl+D]
Загружаем модуль и перегружаем сеть:
# cat >> /etc/modprobe.conf
alias bond0 bonding
options bond0 mode=1 miimon=100
[Ctrl+D]
# service network restart
Просмотр статуса:
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.2.4 (January 28, 2008)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Link Failure Count: 2
Permanent HW addr: 00:1b:11:50:7a:01

Slave Interface: eth1
MII Status: up
Link Failure Count: 1
Permanent HW addr: 00:18:fe:8c:a1:96

Links:
  1. Implement bonding in RHEL 5
  2. Network Card Bonding On CentOS

by Roman Sozinov (sozinov@gmail.com) at 03.07.2009 11:16:31

О Линуксе и не только » runix

Лондонская фондовая биржа отказывается от сбойной платформы Windows

Внимание! Это переводная статья, источник здесь. Мое мнение может не совпадать с мнением автора статьи, выкладываю для ознакомления. Продолжая читать этот перевод, вы соглашаетесь с тем, что все претензии следует предъявлять автору статьи – Steven J. Vaughan-Nichols.

Все люди, которые достаточно наивны, чтобы полагать, что ПО от Microsoft пригодно для использования в системах для решения ответственных задач, были шокированы, узнав, что в сентябре этого года (2008 – прим.перевод.), Лондонская фондовая биржа остановила работу на целый день из-за сбоя в системе TradElect, которая была разработана под Windows. Хотя биржа и пыталась скрыть, что проблема была именно в TradElect, они не смогли внятно объяснить причину такого сбоя. Все же, источники, работающие на бирже, сообщили мне, что причиной сбоя была именно TradElect.

После этого, Clara Furse, руководитель,  который привнесла систему TradElect на биржу, уволилась без объяснения причин. Источники в Лондон Сити (то же, что и Уолл Стрит в Нью-Йорке) сообщили мне, что сбой системы TradElect был последней соломинкой для ее пребывании на этом посту. Новый CEO, Xavier Rolet, сообщил, что собирается немедленно прекратить использовать TradElect.

TradElect работает на Windows Server 2003, запущенной на серверах HP ProLiant. ПО TradElect, в свою очередь, это смесь из C# и .NET программ, написанных совместно Microsoft и Accenture, всемирной консалтинговой фирмой. ПО использует Microsoft SQL Server 2000. Это ПО было написано для обеспечения времени отклика меньше 10 мс и работы системы в реальном времени, для обеспечения биржевых торгов.

ПО TradElect никогда не достигало заданных показателей. Еще хуже было то, что конкуренты Лондонской Фондовой Биржи, в частности, Chi-X, с программной платформой для торгов MarketPrizm, могли обеспечить такой уровень. Многие гадали, на чем запущена MarketPrizm. Ответ – это Linux.

Большие компании очень редко раскрывают устройство своей инфраструктуры, как это сделает Лондонская биржа. С другой стороны, ПО для компаний тоже очень редко дает сильные и очевидные сбои, как в случае с биржей. Я могу только догадываться, как много сбоев ПО для компаний на платформе Windows скрывается внутри IT-департаментов компаний, чтобы скрыть свой выбор старых и глючных программных решений на платформе Windows.

Я уверен, что руководители Лондонской биржи не смогут отличить Linux от Windows без технарей. Тем не менее, они способны на это, когда их бизнес полностью остановится на глазах у всего мира.

Итак, могу ли я предложить Лондонской Фондовой Бирже Linux, в качестве основы для их следующей программной инфраструктуры? Linux прекрасно работает как в Chi-X, так и в CME (Chicago Mercantile Exchange), NYSE (New York Stock Exchange), и многих, многих других компаниях.

by cray at 03.07.2009 06:38:28

Propheta

Работа Ubuntu Linux без носителя

Нужно было добиться загрузки Ubuntu в оперативную память компьютера и дальнейшей работы без носителя, с которого он был загружен. Решение получилось достаточно простым.
Вкратце идея такая: initrd.img изменяется так, чтобы, после загрузки и старта ядра, с носителя в память копировался файл со сжатым образом файловой системы корневого раздела (SquashFS). Далее поверх корневого раздела монтируется aufs-tmpfs и стартует Ubuntu.

Ниже будет описание как создать загрузочный iso-образ и бутовую USB-флешку.
  1. Создаем директории
    $ mkdir -p ~/ubuntu-ram/{etc,tmp,image,scripts}

  2. Устанавливаем необходимые пакеты
    $ sudo aptitude install lilo mtools genisoimage debootstrap syslinux squashfs-tools

  3. Копируем настройки initramfs
    Конфиги initramfs для iso-образа
    $ cp -a /etc/initramfs-tools ~/ubuntu-ram/etc/iso
    Конфиги initramfs для iso-образа
    $ cp -a /etc/initramfs-tools ~/ubuntu-ram/etc/usb

  4. Настраиваем окружение загружаемой системы
    $ export IMGROOT=~/ubuntu-ram/image
    $ sudo -E -s
    # chroot debootstrap jaunty $IMGROOT http://mirror.ubuntu.optilink.ru/ubuntu/
    # echo "aufs / aufs rw 0 0" > $IMGROOT/etc/fstab
    # cp /etc/apt/sources.list $IMGROOT/etc/apt/
    # cp /etc/resolv.conf $IMGROOT/etc/
    # cat <<EOF > $IMGROOT/etc/hosts
    127.0.0.1 localhost.localdomain localhost
    127.0.1.1 hostname.domain hostname
    EOF

    # cat <<EOF > $IMGROOT/etc/network/interfaces
    auto lo
    iface lo loopback
    EOF

    # echo "hostname.domain" > $IMGROOT/etc/hostname
    # mount -t proc none $IMGROOT/proc
    # mount -o bind /dev $IMGROOT/dev
    # mount -t devpts none $IMGROOT/dev/pts
    # mount -t sysfs none $IMGROOT/sys
    Входим в изолированное окружение
    # chroot $IMGROOT bash
    Создаем аккаунт администратора и русскую локаль
    # adduser --gecos 'System Administrator' demiurg
    # usermod -a -G adm demiurg
    # locale-gen ru_RU.UTF-8
    Устанавливаем ядро и требуемые утилиты
    # aptitude update
    # aptitude install linux-image-server grub aufs-tools squashfs-tools
    Настраиваем часовой пояс и консоль
    # dpkg-reconfigure tzdata
    # dpkg-reconfigure console-setup
    Далее система настраивается под себя (ставим дополнительные программы, правим конфиги под себя).

    Выходим из изолированного окружения
    # aptitude clean
    # exit
    Отмонтируем файловые системы
    # umount $IMGROOT/proc
    # umount $IMGROOT/dev/pts
    # umount $IMGROOT/dev
    # umount $IMGROOT/sys
    Выходим из режима суперпользователя
    # exit
    $

  5. Переходим к настройке конфигов initramfs для iso-образа
    Создаём так называемый хук (hook) - скрипт, вызываемый утилитой initramfs
    $ cat <<EOF > $IMGROOT/../etc/iso/hooks/load_modules
    #!/bin/sh
    set -e

    PREREQ=""

    prereqs () {
    echo "$PREREQ"
    }

    case $1 in
    prereqs)
    prereqs
    exit 0
    ;;
    esac

    . /usr/share/initramfs-tools/hook-functions

    force_load squashfs
    force_load isofs
    force_load aufs

    exit 0
    EOF
    $ chmod +x $IMGROOT/../etc/iso/hooks/load_modules
    Создаем скрипты, выполняющиеся во время загрузки initrd
    Скрипт, закидывающий образ системы в память
    $ cat <<EOF > $IMGROOT/../etc/iso/scripts/init-premount/udev_into_ram
    #!/bin/sh

    PREREQ=""

    prereqs () {
    echo "$PREREQ"
    }

    case $1 in
    prereqs)
    prereqs
    exit 0
    ;;
    esac

    mknod /dev/loop0 b 7 0
    mkdir /disk

    WAIT_COUNT=15
    while [ ! -e /dev/scd0 ] && [ "$WAIT_COUNT" -gt 0 ]
    do
    tmp=$((WAIT_COUNT-=1))
    sleep 1
    done

    echo -n "Please wait... "
    mount -t iso9660 -o ro /dev/scd0 /disk
    cp /disk/root.sqfs /
    echo "done"
    umount /disk && rm -Rf /disk
    EOF
    $ chmod +x $IMGROOT/../etc/iso/scripts/init-premount/udev_into_ram
    Скрипт, монтирующий файловую систему aufs
    $ cat <<EOF > $IMGROOT/../etc/iso/scripts/init-bottom/aufs_root
    #!/bin/sh
    #
    # https://help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash
    #
    # Copyright 2008 Nicholas A. Schembri State College PA USA
    #
    # This program is free software: you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation, either version 3 of the License, or
    # (at your option) any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    # GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License
    # along with this program. If not, see
    # <http://www.gnu.org/licenses/>.

    # Thank you Voyage Linux for the idea, http://voyage.hk/ Great job on release 0.5
    #
    # Tested with 8.04.1
    #
    #
    # ****************************************************************************************
    #
    # Change log
    #
    # 2008.08.01 Added debugging comments in "drop to a shell" section. grub option aufs=tmpfs-debug will stop the init script.
    # reviewed *********** fix fstab on tmpfs ******************
    # rootaufs failed when system was booted with /dev/xxx and fstab had uuid= info.
    # BlaYO pointed out the best and simplest solution was to use grep -v. Grep replaces a sed one liner.
    # Add the comment block to fstab
    #
    #
    #

    case $1 in
    prereqs)
    exit 0
    ;;
    esac

    export aufs

    for x in $(cat /proc/cmdline); do
    case $x in
    root=*)
    ROOTNAME=${x#root=}
    ;;
    aufs=*)
    aufs=${x#aufs=}
    case $aufs in
    tmpfs-debug)
    aufs=tmpfs
    aufsdebug=1
    ;;
    esac
    ;;
    esac
    done

    if [ "$aufs" != "tmpfs" ]; then
    #not set in boot loader
    #I'm not loved. good bye
    exit 0
    fi

    # This is a simple overview of the steps needed to use aufs on the root file system and see the /rw and /ro branches.
    # initramfs init-botton script
    # move the root file system to aufs/unionfs readonly /ro
    # root is mounted on ${rootmnt}
    # create tmpfs on /rw
    # create a aufs using /ro and /rw
    # put some files on the tmpfs to fix mtab and fstab
    # move aufs to rootmnt to finish the init process.
    # No changes to the root file system are made by this script.
    #
    # Why!
    # This will allow you to use a usb flash drive and control what is written to the drive.
    # no need to rebuild the squashfs file just to add a program.
    # boot to single user mode. The system works the way you expect. boot aufs=tmpfs and no changes are written to the flash.
    # run ubuntu on an eeePC .

    # Install
    # Install ubuntu 8.04 Hardy. Hardy has aufs installed by default
    # apt-get update
    # apt-get dist-upgrade
    # apt-get install aufs-tools
    # echo aufs >> /etc/initramfs-tools/modules
    # put this file in /etc/initramfs-tools/scripts/init-bottom/rootaufs
    # chmod 0755 rootaufs
    # # clean up menu.lst
    # update-grub
    # update-initramfs -u
    # vi /boot/grub/menu.lst
    # add aufs=tmpfs to the default entry.
    # do not add this line to single user mode.
    # boot to single user mode in order to install software.
    # note: if your home account is on the root file system, your files are in ram and not saved.
    #


    echo
    echo " root-aufs: Setting up aufs on ${rootmnt} as root file system "
    echo

    modprobe -q --use-blacklist aufs
    if [ $? -ne 0 ]; then
    echo root-aufs error: Failed to load aufs.ko
    exit 0
    fi

    #make the mount points on the init root file system
    mkdir /aufs
    mkdir /rw
    mkdir /ro

    # mount the temp file system and move real root out of the way
    mount -t tmpfs aufs-tmpfs /rw
    mount --move ${rootmnt} /ro
    if [ $? -ne 0 ]; then
    echo root-aufs error: ${rootmnt} failed to move to /ro
    exit 0
    fi


    mount -t aufs -o dirs=/rw:/ro=ro aufs /aufs
    if [ $? -ne 0 ]; then
    echo root-aufs error: Failed to mount /aufs files system
    exit 0
    fi


    #test for mount points on aufs file system
    [ -d /aufs/ro ] || mkdir /aufs/ro
    [ -d /aufs/rw ] || mkdir /aufs/rw

    # the real root file system is hidden on /ro of the init file system. move it to /ro
    mount --move /ro /aufs/ro
    if [ $? -ne 0 ]; then
    echo root-aufs error: Failed to move /ro /aufs/ro
    exit 0
    fi

    # tmpfs file system is hidden on /rw
    mount --move /rw /aufs/rw
    if [ $? -ne 0 ]; then
    echo root-aufs error: Failed to move /rw /aufs/rw
    exit 0
    fi



    #*********** fix fstab on tmpfs ******************
    # test for /dev/sdx
    # this is not on the real file system. This is created on the tmpfs each time the system boots.
    # The init process will try to mount the root filesystem listed in fstab. / and swap must be removed.
    # the root file system must be mounted on /ro not on /

    if [ "$aufsdebug" -eq 1 ]; then
    echo " root-aufs debug: Remove the root file system and swap from fstab "
    echo
    echo
    echo " ROOTNAME $ROOTNAME "
    echo " resume $resume "
    echo
    echo ' BlaYO pointed out that grep can be used to quickly remove '
    echo ' the root file system from fstab. '
    echo
    echo ' Thank you BlaYO for the debug info.'
    echo

    fi
    # old code
    # I'm sure that sed can do this in one step but I want to correct on the rootname not matching the root in fstab.
    #cat /aufs/ro/etc/fstab|sed -e s/$ROOTNAME/\#$ROOTNAME/ -e s/$resume/\#$resume/ >/aufs/etc/fstab

    #Add the comment block to fstab
    cat <<EOF >/aufs/etc/fstab
    #
    # RootAufs has mounted the root file system in ram
    #
    # This fstab is in ram and the real fstab can be found /ro/etc/fstab
    # the root file system ' / ' has been removed.
    # All Swap files have been removed.
    #

    EOF

    #remove root and swap from fstab
    cat /aufs/ro/etc/fstab|grep -v ' / ' | grep -v swap >>/aufs/etc/fstab
    if [ $? -ne 0 ]; then
    echo root-aufs error: Failed to create /aufs/etc/fstab
    #exit 0
    fi




    # add the read only file system to fstab
    #ROOTTYPE=$(/lib/udev/vol_id -t ${ROOT})
    ROOTTYPE=$(cat /proc/mounts|grep ${ROOT}|cut -d' ' -f3)
    ROOTOPTIONS=$(cat /proc/mounts|grep ${ROOT}|cut -d' ' -f4)
    echo /dev/loop0 /ro squashfs ro,relatime 0 0 >>/aufs/etc/fstab

    # S22mount on debian systems is not mounting /ro correctly after boot
    # add to rc.local to correct what you see from df
    #replace last case of exit with #exit
    cat /aufs/ro/etc/rc.local|sed 's/\(.*\)exit/\1\#exit/' >/aufs/etc/rc.local
    echo mount -f /ro >>/aufs/etc/rc.local

    # add back the root file system. mtab seems to be created by one of the init proceses.
    echo "echo aufs / aufs rw,xino=/rw/.aufs.xino,br:/rw=rw:/ro=ro 0 0 >>/etc/mtab" >>/aufs/etc/rc.local
    echo "echo aufs-tmpfs /rw tmpfs rw 0 0 >>/etc/mtab" >>/aufs/etc/rc.local
    echo exit 0 >>/aufs/etc/rc.local


    #build remountrw
    echo \#!/bin/sh >/aufs/bin/remountrw
    echo mount -o remount,rw ${ROOT} >>/aufs/bin/remountrw
    chmod 0700 /aufs/bin/remountrw

    #build remountro
    echo \#!/bin/sh >/aufs/bin/remountro
    echo mount -o remount,ro ${ROOT} >>/aufs/bin/remountro
    chmod 0700 /aufs/bin/remountro

    # This should drop to a shell. (rewrite)
    if [ "$aufsdebug" -eq 1 ]; then
    echo
    echo " root-aufs debug: mount --move /aufs ${rootmnt} "
    echo
    echo ' root-aufs debug: init will stop here. '
    echo
    exit 0
    fi

    mount --move /aufs ${rootmnt}

    exit 0
    EOF
    $ chmod +x $IMGROOT/../etc/iso/scripts/init-bottom/aufs_root
    На этом настройка initramfs заканчивается.

  6. Создаём скрипт, создающий iso-образ и сохраняем его в файле «~/ubuntu-ram/scripts/make-iso.sh»
    #!/bin/sh
    WORKDIR=/path/to/ubuntu-ram
    SQUASHFS_ROOT=$WORKDIR/image/
    ISO_ROOT=$WORKDIR/tmp/

    rm -Rf $ISO_ROOT/*

    # Получаем версию ядра в окружении
    version=$(basename $(readlink $SQUASHFS_ROOT/initrd.img))
    version=${version#initrd.img-}

    mount -o bind $WORKDIR/etc/iso $SQUASHFS_ROOT/etc/initramfs-tools
    chroot $SQUASHFS_ROOT mkinitramfs -v -o /boot/initrd.img-$version $version
    umount $SQUASHFS_ROOT/etc/initramfs-tools

    mkdir $ISO_ROOT/isolinux
    cp $SQUASHFS_ROOT/boot/initrd.img-$version $ISO_ROOT/isolinux/initrd.gz
    cp $SQUASHFS_ROOT/boot/vmlinuz-$version $ISO_ROOT/isolinux/vmlinuz
    cp /usr/lib/syslinux/isolinux.bin $ISO_ROOT/isolinux/
    cat <<EOF > $ISO_ROOT/isolinux/isolinux.cfg
    DEFAULT server
    TIMEOUT 1
    LABEL server
    menu label ^Server
    kernel vmlinuz
    append initrd=initrd.gz root=/root.sqfs loop=/dev/loop0 rootfstype=squashfs aufs=tmpfs ro
    EOF

    #
    mksquashfs $SQUASHFS_ROOT $ISO_ROOT/root.sqfs \
    -e $SQUASHFS_ROOT/boot/* \
    $SQUASHFS_ROOT/initrd.img \
    $SQUASHFS_ROOT/vmlinuz

    # Создаём ISO
    mkisofs -o $WORKDIR/image.iso -r \
    -V "MYUSBSERVER" -v -no-emul-boot \
    -boot-load-size 4 -boot-info-table \
    -b isolinux/isolinux.bin \
    -c isolinux/isolinux.boot $ISO_ROOT
    Делаем его исполняемым
    $ chmod +x ~/ubuntu-ram/scripts/make-iso.sh
    После выполнения скрипта в директории «~/ubuntu-ram» будет создан требуемый iso-образ.

  7. Создание загрузочной USB флешки.
    Создаём хук
    $ cat <<EOF > ~/ubuntu-ram/etc/usb/hooks/load_modules
    #!/bin/sh
    set -e

    PREREQ=""

    prereqs () {
    echo "$PREREQ"
    }

    case $1 in
    prereqs)
    prereqs
    exit 0
    ;;
    esac

    . /usr/share/initramfs-tools/hook-functions

    force_load usb_storage
    force_load squashfs
    force_load vfat
    force_load aufs

    exit 0
    EOF
    $ chmod +x ~/ubuntu-ram/etc/usb/hooks/load_modules
    Копируем скрипт «etc/iso/scripts/init-bottom/aufs» в «etc/usb/scripts/init-bottom/aufs».
    Пишем скрипт, загружающий систему из USB-флешки в оперативную память
    $ cat <<EOF > ~/ubuntu-ram/etc/usb/scripts/init-premount/udev_into_ram
    #!/bin/sh

    PREREQ=""

    prereqs () {
    echo "$PREREQ"
    }

    case $1 in
    prereqs)
    prereqs
    exit 0
    ;;
    esac

    mknod /dev/loop0 b 7 0
    mkdir /disk

    WAIT_COUNT=15
    while [ ! -e /dev/disk/by-label/MYUSBSERVER ] && [ "$WAIT_COUNT" -gt 0 ]
    do
    tmp=$((WAIT_COUNT-=1))
    sleep 1
    done

    echo -n "Please wait... "
    mount -t vfat -o ro /dev/disk/by-label/MYUSBSERVER /disk
    cp /disk/root.sqfs /
    echo "done"
    umount /disk && rm -Rf /disk
    EOF
    Ниже приведён скрипт создающий бутовую USB-флешку. Скрипт сохраняется в файл «~/ubuntu-ram/scripts/make-usb.sh»
    #!/bin/sh

    WORKDIR=/path/to/ubuntu-ram
    SQUASHFS_ROOT=$WORKDIR/image/
    ISO_ROOT=$WORKDIR/tmp/

    rm -Rf $ISO_ROOT/*

    # Получаем версию ядра в окружении
    version=$(basename $(readlink $SQUASHFS_ROOT/initrd.img))
    version=${version#initrd.img-}

    mount -o bind $WORKDIR/etc/usb $SQUASHFS_ROOT/etc/initramfs-tools
    chroot $SQUASHFS_ROOT mkinitramfs -v -o /boot/initrd.img-$version $version
    umount $SQUASHFS_ROOT/etc/initramfs-tools

    mkdir $ISO_ROOT/isolinux
    cp $SQUASHFS_ROOT/boot/initrd.img-$version $ISO_ROOT/initrd.gz
    cp $SQUASHFS_ROOT/boot/vmlinuz-$version $ISO_ROOT/vmlinuz
    cat <<EOF > $ISO_ROOT/syslinux.cfg
    DEFAULT server
    TIMEOUT 1
    LABEL server
    menu label ^Server
    kernel vmlinuz
    append initrd=initrd.gz root=/dev/disk/by-label/MYUSBSERVER loop=/dev/loop0 rootfstype=squashfs aufs=tmpfs ro
    EOF

    #
    mksquashfs $SQUASHFS_ROOT $ISO_ROOT/root.sqfs \
    -e $SQUASHFS_ROOT/boot/* \
    $SQUASHFS_ROOT/initrd.img \
    $SQUASHFS_ROOT/vmlinuz

    echo "Please insert USB flash drive and press Enter"
    read
    # /dev/sdX - Ваша USB-флешка
    lilo -M /dev/sdX
    lilo -A /dev/sdX 1
    mkfs.vfat /dev/sdX1
    syslinux -f /dev/sdX1
    mlabel -i /dev/sdX1 ::MYUSBSERVER
    mount -t vfat /dev/sdX1 /mnt
    cp -a $ISO_ROOT/* /mnt
    umount /mnt
    exit 0
    Делаем скрипт исполняемым
    $ chmod +x ~/ubuntu-ram/scripts/make-usb.sh

by Князь (noreply@blogger.com) at 03.07.2009 06:30:27

The Fox Way

02.07.2009

ffblog - новости breys.ru

Установка PCLinux 2009 на LVM и восстановление домашнего LVM раздела

Спустя 4 Ubuntu, одну хорошую и 3 не очень, вышел замечательный дистрибутив PCLinux , который я в то время целый год использовал на работе на админском компе
В своё время он сильно радовал стабильностью, консерватизмом, отличной интеграцией рабочего стола с кучей приложений и пакетным менеджером apt-get

Вобщем я решился на установку PCLinux с Gnome, в режиме LiveCD через окошки быстро настроил инет, проверил всё нужное и решил ставить. Но так как у меня свободное место есть лишь на LVM пришлось ставить на него. В инсталяторе есть опция Add LVM, которая выкачивает модуль lvm2 и создаёт новый LVM раздел из выделенного физического

by ffsdmad@jabber.ru ( ffsdmad ) at 02.07.2009 18:57:26

K Notes

Проблема KHTML

Если вы следите за KDE Planet, то наверняка заметили очередной холивар вокруг KHTML и WebKit (а если следите давно, то знаете, что эта тема поднимается далеко не в первый раз).

KHTML нельзя назвать плохим продуктом. Не случайно ведь Apple, создавая WebKit, взяла за основу именно его. Но ситуация с современным развитием веба такова, что требования к браузерам и веб-приложениям стремительно растут, маленькие команды не успевают за этими изменениями, стандарты не отображают реального положения дел, а веб-разработчикам приходится во многих случаях адаптировать свой код для каждого браузера.

За разработчиками основных браузерных движков стоят большие организации и финансовая поддержка. За разработкой KHTML стоят три человека, которым просто нравится работать над ним в свободное время.

В результате, попытавшись воспользоваться единственным входящим на настоящий момент в KDE4 браузером, вы будете весьма ограничены в возможности использовать современные веб-приложения, игнорировать популярность которых просто невозможно. Но самое ужасное — многие дистрибутивы даже не включают в свой состав другие браузеры! Представьте себе впечатления человека, начавшего знакомство с Linux’ом с Kubuntu LiveCD. Не имея возможности даже воспользоваться своими любимыми веб-сервисами, он надолго потеряет желание повторять такие эксперименты.

Почему же KHTML до сих пор входит в KDE?

Есть ряд причин, по которым KHTML продолжает своё развитие. Во-первых, он используется не только в Konqueror, но и в KMail, Kopete и других приложениях. Из-за этого KHTML не может быть исключён из состава KDE, по крайней мере, на протяжении разработки KDE4.

Но самое главное — KHTML существует потому, что есть разработчики которые хотят над ним работать. Если человек работает над каким-либо проектом бескорыстно в своё свободное время, имеем ли мы право от него требовать, чтобы он вместо этого занялся чем-то другим, что его вовсе не интересует? WebKit — очень большой проект, над которым работает множество людей, многие из которых получают за это зарплату. Вячеслав Токарев говорит, что ему не интересно следить за работой такого множества людей и стараться успевать за ними.

Тут, конечно, играет роль и психологический аспект: если в команде KHTML каждый разработчик — “демиург”, то влившись в команду WebKit, они будут одними из тысячи.

Таков закон развития открытого ПО: разработка должна поддерживаться мотивацией разработчиков. Если разработчик не хочет работать над чем-либо сам, или же ему не платят за это деньги, то наступает застой. Мы видим это на примере KDE Windows, который, при большом спросе на этот проект, развивается довольно медленно из-за сликом малого количества мотивированных разработчиков и проблем с взаимодействием между энтузиастами и работниками компаний. Мы видим, как при работе по несколько лет без релизов, как это было с KDE4 до выхода 4.0 и KOffice2 до выхода KOffice 2.0, многие разработчики теряют мотивацию и опускают руки. Мы видим, как разработчикам KOffice не интересно заниматься поддержкой форматов MS Office, а релиз KDE4-версии K3b появился на горизонте только после того, как Mandriva начала спонсировать его разработку.

А что же с WebKit KPart?

Здесь снова налицо проблема с мотивацией разработчиков. О проекте WebKit KPart, который позволил бы в Konqueror и других приложениях свободно переключаться между движками KHTML и WebKit, говорят очень много, но лишь немногие разработчики занимаются его разработкой.

Сегодня, правда, один из разработчиков, работавший над этим проектом, признался, что есть гораздо более сложная проблема: Konqueror слишком глубоко интегрирован с KHTML, и простая замена KPart не приведёт к хорошему результату. Konqueror очень сильно завязан на API KHTML, а различия между KHTML и WebKit в настоящее время очень глубокие.

Вдобавок, как пишут многие разработчики, использующие QtWebKit, его развитие происходит довольно медленно. К примеру, в Plasma совсем не использует KHTML, а исключительно QtWebKit, и как пишет её главный разработчик Аарон Сейго, он разочарован текущим состоянием интеграции WebKit в Qt.

В комментариях к его заметке разработчик основанного на QtWebKit HTML-редактора также жаловался на отсутствие нужного ему функционала. Впрочем, представитель Qt Software Ariya Hidayat посоветовал разработчикам высказывать свои замечания на IRC-канале #qtwebkit.

Что ж, похоже, решения проблемы с KDE-браузером приходится ждать со стороны разработчиков QtWebKit и таких браузеров, как Arora и Rekonq. Оба этих проекта пока ещё находятся в ранней стадии развития, но обещают надлежащую интеграцию с KDE.

by LXj at 02.07.2009 16:45:38

Стили виджетов и декораций с поддержкой сменных тем

Одним из аргументов против KDE в извечных DE-холиварах является трудность создания новых стилей виджетов и оконных декораций. Оппоненты приводят примеры из мира Gnome: Emerald, Pixmap, Clearlooks, Aurora, Murrina и их разнообразные настройщики.

Что же может предложить KDE в этом плане? Давайте посмотрим.

Plasma Emerald Theme Generator

Это пограничный вариант, так как для работы требуется Compiz, не совсем родное для KDE приложение.

Суть этого генератора проста как две копейки: на основе любой существующей в системе plasma-темы создаются оконные декорации. Код основан на  Kdm/Ksplash/Theme Generator

Plasma Emerald Theme Generator work

Work of Plasma Emerald Theme Generator.

Найти Plasma Emerald Theme Generator можно здесь.

deKorator

deKorator — стиль оконных декораций, поддерживающий смену тем, относительно недавно был портирован на Qt4/KDE4, попутно получив пару приятных добавлений в виде встроенного предпросмотра (диалог выбора оконных декораций в “Настройках системы”) и поддержки ARGB visuals.

Theme list of deKorator themes

Список тем для deKorator

Темы для деКоратора лежат здесь, также народ потихоньку портирует Emerald’овские, и уже поступило несколько фичереквестов по поводу добавления полезной в этом деле функциональности.

Aurorae Theme Engine В отличии от Emerald и deKorator, работающих с форматом png, Aurorae, ещё один стиль декораций, дружит уже c SVG. Если вы не новичок в векторной графике, то это хороший повод раскочегарить Inkscape.

Aurorae theme engine examle theme

Пример темы для Aurorae

Движок Aurorae ещё очень молодой, построен с использованием Plasma-технологий, есть поддержка ARGB. А вот реальной непрозрачности (opaque) в нём пока нет, но планируется добавить в ближайшем будущем. Тем, помимо референсной, пока создано только три штуки, и автор поощряет креативных пользователей на создание новых. Сообщения об ошибках и запросы на дополнительную функциональность также приветствуются.

Стили виджетов

Среди стилей виджетов ситуация более напряжённая.

Есть QtCurve — универсальный движок, работающий с Qt3, Qt4 и GTK2-приложениями и обеспечивающий единообразность их внешнего вида.

40492-1

QtCurve содержит немалое количество настроек, включая использование градиентов, степень “скругления” виджетов, разные варианты полос прокрутки и сепараторов. Доступна возможность экспорта и импорта файла настроек.

Bespin тоже интересный стиль: есть множество настроек, и способ обменяться с сообщниками результатами кропотливого тюнинга.

bespin_2

Но всё же, к этим стилям виджетов результаты своего креатива в графическом редакторе не приспособишь. А потому, встречайте:

QuantumStyle

QuantumStyle — это стиль виджетов для Qt4 и KDE4,  поддерживающий сменные SVG-темы. Надеюсь, ваш Inkscape после Aurorae ещё не успел остыть?

101088-1

Темы для этого движка создаются примерно так:

  1. Нарисуйте макет темы в Inkscape или любом другом векторном редакторе.
  2. Создайте файл конфигурации для вашей темы, используя Quantum Style Theme Builder.
  3. Сообщите QuantumStyle о необходимости использовать новосозданную тему, выставив “theme=yourtheme” в ~/.config/QuantumStyle/quantumstyle.qsconfig

101088-2

Теперь новый пункт должен появиться в диалоге выбора стиля в “Настройках системы” и qtconfig. Для верности можно выполнить команду kbuildsycoca4.

quantum

QuantumStyle находится на стадии RC3, но уже вполне может применяться в быту, несмотря на некоторое количество багов, недостающих виджетов и отсутствие диалога конфигурации.

101088-3

Но самое важное, чего ему нехватает — это контрибуторов. Без них не будет развития, новых тем, найденных и исправленных ошибок и новой функциональности.

by SeaJey at 02.07.2009 12:53:12

К.О.Б.Р.

Juniper+FreeRadius+MySql. Настройка FreeRadius для передачи параметров шейпинга

Таблицы используемые FreeRadius

mysql> show fields from radgroupcheck;

id int(11) unsigned NO PRI NULL auto_increment
GroupName varchar(64) NO MUL
Attribute varchar(32) NO MUL
op char(2) NO ==
Value varchar(253) NO
nas varchar(32) NO MUL

mysql> show fields from radgroupreply;

id int(11) unsigned NO PRI NULL auto_increment
GroupName varchar(64) NO MUL
Attribute varchar(32) NO MUL
op char(2) NO =
Value varchar(253) NO

Парамерты в таблице для группы пользователей работающих через Juniper

mysql>select * from radgroupcheck where GroupName=’e120_test’;

15 e120_test Pool-Name := nas120 xxx.xxx.xxx.xxx

mysql> select * from radgroupreply where GroupName=’e120_test’;

20 e120_test Framed-Compression := Van-Jacobsen-TCP-IP
21 e120_test Framed-Protocol := PPP
22 e120_test Service-Type := Framed-User
23 e120_test Framed-MTU := 1500
41 e120_test ERX-Virtual-Router-Name = default
35 e120_test ERX-Service-Activate:1 = local(5120000)
36 e120_test ERX-Service-Activate:2 += inet(1280000)
37 e120_test ERX-Qos-Profile-Name = QP-DoubleMicro
38 e120_test ERX-Qos-Parameters = QPD-DoubleMicro-Local 5120000 QPD-DoubleMicro-Inet 128000
42 e120_test ERX-Address-Pool-Name = PPPoE
43 e120_test ERX-Local-Loopback-Interface = loopback 0

Ответы радиуса BRAS’у передаётся IP-адрес с маской, скорость для сервисов (2 сервиса – локал на скорости 5мб/с и Инет на скорости 128кб/с), параметры для шейпинга (исходящий на абонента шейпится, входящий от абонента полисится) – 2 строки

Sending Access-Accept of id 59 to ххх.ххх.ххх.ххх port 50000

Framed-Compression := Van-Jacobson-TCP-IP
Framed-Protocol := PPP
Service-Type := Framed-User
Framed-MTU := 1500
ERX-Virtual-Router-Name = "default"
ERX-Service-Activate:1 = "local(5120000)"
ERX-Service-Activate:2 += "inet(1280000)"
ERX-Qos-Profile-Name = "QP-DoubleMicro"
ERX-Qos-Parameters = "QPD-DoubleMicro-Local 5120000 QPD-DoubleMicro-Inet 128000"
ERX-Address-Pool-Name = "PPPoE"
ERX-Local-Loopback-Interface = "loopback 0"
Framed-IP-Address = ххх.ххх.ххх.ххх
Framed-IP-Netmask = 255.255.255.255

by admin at 02.07.2009 11:23:22

Kaleva's blog » runix

Разделы на флешке

В случае наличия большой флешки удобно сделать следующее:

Можно создать на ней зашифрованный раздел при помощи LUKS на котором хранить чувствительные данные, вроде SSH ключей, документации по работе и т.д. При вставке такой флешки в Linux машину сразу появится диалог с предложением ввести пароль от второго раздела, дабы примонтировать его. А в случае с Windows можно воспользоваться FreeOTFE Которая имеет разные версии: требующую права администратора (для работы с зашифрованными разделами как с дисками, после расшифрования) или не требующую (для работы с ними через специальное подобие Explorer-a).

Рекомендуется кинуть эти программы на незашифрованный раздел, не забыв о контрольных суммах. (приложите программы sha1sum.exe и md5sum.exe, ссылки на них в английской и русской википедии) Не забывайте, что мир Windows кишит вирусами, которые повреждают исполняемые файлы этой операционной системы и размножаются в том числе через флешки

PS ещё посоветовал бы использоавть флешку, обеспечивающую физическую сохранность данных, вроде пуленепробиваемой Pretec.

by Kaleva at 02.07.2009 10:59:28

О Линуксе и не только » runix

Archlinux: firefox-pgo 3.5-1, вот незадача

После выхода браузера Mozilla Firefox 3.5, я ждал, когда пакет обновится на AUR’e. Но, к удивлению, эта версия тянет за собой gcc-snapshot. В комментариях к gcc-snapshot пользователи пишут, что этот снепшот не компилит Firefox. Остается выжидать?

by cray at 02.07.2009 10:25:58

Runix.org – планета блогов о *NIX на русском языке

Советую всем, кто еще не читает. Здесь собираются фиды со многих блогов, обновления каждый день, и можно найти довольно-таки много чего интересного.

Вот ссылка

by cray at 02.07.2009 09:38:38

K Notes

Первый пошел, или KDE 4.3 в двух шагах от вашего компьютера

Оболочка Plasma

Без особого шума и пыли 1 июля был выпущен первый кандидат в релизы KDE 4.3.  Нововведений в грядущем релизе предостаточно, например:

  • Новые плазмоиды
  • Система геолокации и PolicyKit
  • Сортировка папок и отображение сетевых сервисов вроде Zeroconf
  • Улучшенный KRunner
  • Доработанная система уведомлений и новый системный трей
  • Изменения в плазмоидах и расширение их функционала
  • Новые эффекты рабочего стола
  • Новые типы обоев рабочего стола
  • … и многое другое

Этот выпуск ещё один шаг на пути к финальному релизу KDE 4.3. Напомню, что согласно изначальному плану, именно эта версия должна была стать окончательно пригодной для использования конечным пользователем и быть включенной в популярные современные дистрибутивы.

Подробней о нововведениях и изменениях на русском языке можно прочитать на сайте www.kde.ru по этой ссылке.

by tinman321 at 02.07.2009 09:18:13

ffblog - новости breys.ru

Почему Mono это плохо

Вот тут http://open-life.org/blog/mono/236.html один из майтейнеров Debian, пытается всех убедить, что mono это хорошо и его должны включать во все дистрибутивы по-умолчанию, что Mono предпочтительнее в разработке OpenSource приложений для Linux перед Python, C/C++, Lisp, etc
После получасовых раздумий он напомнил мне рободьявола который убеждал Фрая продать свои кривые руки, чтобы тот научился хорошо играть на миелофоне ради любви одноглазой девицы, чем кончился этот эпизод мы все знаем
Во-первых , он постоянно твердит, что использовать Mono безопасно с юридической точки зрения, но затем он говорит, что если такое случится, то нужно всего лишь быстро переписать проблемные программы и ничего страшного не произойдёт, они лишь выкинут проблемные либы и перепишут проблемный код, недоговаривая, что при этом перестанут работать не только Tomboy (который я кстати использую) но и кучи других программ написанных быдлокодерами пришедшими с MS.Net, а ведь мы то знаем, что эти гуси самые что ни наесть быдлокодеры, тем самым он анулирует свои постулаты о патентной безопастности и потом, думаю не только я хочу забыть про патенты вообще и писать и использовать свои программы как нам хочется не озираясь ни на кого
Во-вторых , он объясняет причину популярности Mono тем, что в OpenSource появилось большое количество разработчиков недавно закончивших университеты, колледжи и ПТУ в которых их натаскивали на MS.Net, с одной стороны это прекрасно, молодая и свежая кровь, но с другой стороны, эта кровь заражённая

by ffsdmad@jabber.ru ( ffsdmad ) at 02.07.2009 06:56:35

Matter of attitude

Claws-mail

После очередного обновления Claws-mail стал падать в Segmentation fault при попадании чего-либо уникодного в поле Subject. Что я не так делаю?..

02.07.2009 03:04:43

01.07.2009

Take World

Firefox 3.5

Вчера вышел Firefox 3.5, вчера/сегодня ночью официально анонсировали, и на сайте доступны версии для Linux и Windows. В репозиториях Ubuntu пока не обновился.

Потестировал на винде, из приятных вещей, которые сразу бросились в глаза - скорость. По сравнению с Firefox 3.0, он просто летает. Переработаный движок JS по скорости на уровне Google Chrome. Это как раз то, что они давно обещали.
Так же работает тег , в этом можете убедиться сами на сайте http://openvideo.dailymotion.com, который первым реализовал это на практике.

В общем обновляемся и не паримся.

by noreply@blogger.com (nagos) at 01.07.2009 11:50:00

GQ's blog » Linux

Пингвины захватывают мир

Только что на одном из подоконников в коридорах факультета ВМиК МГУ обнаружили десяток флэшек. По 2 гига каждая. На стальной боковине надпись маркером Linux. Внутри fat32 раздел с syslinux и образом RFRemix-11-i686. Бутиться пока не пробовал.

Пингвины откладывают яйца? Галагтеко опасносте?

by GQ at 01.07.2009 11:33:44

О Линуксе и не только » runix

Full Circle magazine №25 на русском языке

Журнал посвященный самому популярному настольному дистрибутиву Linux – Ubuntu.

Цитата:

“Full Circle – это свободный и независимый журнал, посвящённый семейству операционных систем Ubuntu, основанных на Linux. Каждый месяц мы предоставляем сообществу перевод полезных статей, написанных авторами и читателями журнала.”

via ubuntu.ru/fullcircle

скачать в Казахстане

by cray at 01.07.2009 11:28:01

советы.блогспот.ком

Сортировка фото по дате EXIF

На днях и я, и virens почти синхронно написали две заметки об EXIF: как исправить дату EXIF в фото и как добавлять пользовательские теги в raw-файлы. Раз уж тема начата, то поделюсь ещё одним приёмом.

Фотографии я храню, группируя каталоги по годам и по датам съёмки (указывая дату в формате ISO), то есть в архиве путь к альбому у меня примерно такой: photos/2009/20090628 - название альбома/. Очень удобно, потому что обычно один день — одна тема, и даже при алфавитной сортировке каталога альбомы упорядочены хронологически. И такая организация не зависит ни от операционной системы, ни от конкретной программы-каталогизатора.

Однако если на карточке фотографии разных дней — раскидывать их по альбомам вручную утомительно. Поэтому у меня есть ещё и скрипт-сортировщик для внесения фото в архив. Он смотрит на дату в EXIF, создаёт нужные каталоги и помещает в них фото:
#!/bin/sh

ARCHIVE=$HOME/photos

for f in "$@"; do
DT=$(exiftool -s -DateTimeOriginal "$f")
YEAR=$(echo $DT|awk '{print $3;}'|awk -F: '{print $1;}')
ISODAY=$(echo $DT|awk '{print $3;}'|sed 's/://g')
TARGET="$ARCHIVE/$YEAR/$ISODAY"
install -d "$TARGET" && \
install "$f" "$TARGET"
echo "$f -> $TARGET"
done


Запускаю из каталога с фотокарточки:
$ import-photos *

Так можно импортировать и JPEG-и, и RAW. И там, и там EXIF обычно есть.

by noreply@blogger.com (Сергей) at 01.07.2009 09:48:00

Как ускорить Firefox на eeePC 901

На моём eeePC 901 Firefox часто подтормаживал, и это явно совпадало с работой диска. Объяснение нашлось здесь.

Дело в том, что в eeePC 901 два флэш-диска, маленький на 4 ГБ и большой 16 ГБ, и этот большой флэш-диск — медленный. Домашний же раздел /home у меня, естественно, на большом, и там же профиль Firefox-а. Браузер же по-умолчанию сохраняет в него текущую сессию каждые 10 секунд и туда же пытается писать кэш. Пишет он синхронно (то есть ждёт, пока не запишется), поэтому и замирает на секунду при каждом чихе.

Народная медицина в этом случае рекомендует пойти в about:config и там

1) создать ключ toolkit.storage.synchronous с целым значением 0 (запись на диск вести асинхронно, то есть не ждать, пока, например, состояние сессии действительно запишется)

2) создать или изменить ключ browser.cache.disk.parent_directory, его строковое значение установить в /dev/shm/firefox-username (сохранять кэш в памяти, а не писать на диск; кэш, конечно, будет утерян при перезагрузке, и памяти потребуется больше, но зато и работать будет быстрее)

Дополнительно я увеличил промежуток времени между записями состояния сессии (списка открытых вкладок):

3) в browser.sessionstore.interval поставил 60000 (60 секунд), вместо 10000 (10 секунд).

Я попробовал — так явно лучше (iceweasel 3.0.6). Возможно, с кэшем есть и более красивые решения (сделать внутри профиля символическую ссылку куда-нибудь на быстрый диск, или какими-то другими ключами отключить дисковый кэш, увеличив кэш в памяти...). Можете оставлять в комментариях ссылки и рецепты.

Советы, полагаю, применимы не только к eeePC, но и к другим нетбукам с SSD (флэш-дисками).

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

by noreply@blogger.com (Сергей) at 01.07.2009 07:27:00

Записки о Linux

GNOME 3.0 в Fedora

Я вот тут прикинул и выходит, что GNOME 3.0 попадает на Fedora 13.. или наоборот...

01.07.2009 07:10:00

Rsync, Rsync...

Когда что-нибудь синхронизируете из интернета через rsync, особенно если это что-то большое и займёт не один час, а то и сутки, не забывайте использовать --timeout=120, да и вообще будьте готовы к обрывам соединения:

while [ $? -ne 0 ]; do
    sleep 2;
    rsync -avHP --delete-after --stats --timeout=120 \
        cdimage.debian.org::debian-cd/ /storage/debian-cd/;
done

01.07.2009 05:54:09

30.06.2009

ffblog - новости breys.ru

Два варианта добавление GPG ключа репозитория из консоли

Постоянно забываю как это делать и натыкаюсь на подобные ругательства синаптика, например при добавление репозитория с новым Firefox 3.5 
W: Ошибка: http://ppa.launchpad.net hardy Release: Следующие подписи не могут быть проверены, так как недоступен общий

by ffsdmad@jabber.ru ( ffsdmad ) at 30.06.2009 22:06:58

K Notes

Плазма-виджеты в области уведомлений

Как мы уже писали, в KDE 4.3 разработчики добавили поддержку нового протокола системного трея. Часть приложений уже переделали с учётом требований нового протокола, ещё больше программ планируется окучить к выходу KDE версии 4.4

Чтобы ещё больше порадовать пользователей, в текущем trunk реализована такая штука:

Regular plasmoids embedded in system tray

Обычный плазмоид в системном лотке

Plasma-виджеты теперь могут быть встроены непосредственно в область уведомлений — см. значок батареи на скриншоте выше. Графического конфигуратора пока нет, но очевидно, что он появится в ближайшем будущем.

Если вы недавно собрали свежую версию KDE из разрабатываемой ветки SVN-репозитория и хотите лично опробовать новую фичу, откройте файл $KDEHOME/share/config/plasma-desktop-appletr, найдите в нём systray-секцию и добавьте новый пункт (здесь [Containments][3][Applets][63] используется в качестве примера):

[Containments][3][Applets][63][Configuration][Applets][137]
geometry=24,2,22,22
immutability=1
plugin=battery
zvalue=0

За новость сердечно благодарим Marco Martin aka notmart.

by SeaJey at 30.06.2009 21:26:13

Debiania: просто ещё один блог о Debian

Памятная дата настала!

Внимание!
Если Вы видите это сообщение, то автор блога, лентяй и разгильдяй, не успел переписать его. Сей текст написан 26-го февраля 2009-го года в качестве напоминания самому себе, что не так уж далеко памятная дата :)

В общем, сегодня исполнился ровно год с того момента, когда я впервые начал использовать Debian в качестве основной системы. Этому предшествовали ещё примерно две недели настройки системы «с наскоку» — т.е. работаешь в винде, а скучные вечера коротаешь за попытками настроить VPN или ещё какую-нибудь мелочь. А до того были ещё несколько месяцев в Mandriva, опять-таки с безуспешными попытками настроить VPN.

Значит, годовщина использования Debian и полтора года с момента первой попытки использовать Linux. Это приятно. Это радует :) Это вселяет надежду, что я отпраздную и два года, и десять лет, и двадцать — ну и так далее :)
Вроде и сказать пока что больше нечего :)

С праздником меня! :D

by noreply@blogger.com (Programmaster) at 30.06.2009 21:00:00

Записки о Linux

Нужен новый движок для блога?!

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

30.06.2009 16:38:46

SolarWind Gate. Заметки гика - Linux

Android NDK. Хорошо или плохо?

Android DevelopersПолагаю, что интересующиеся темой Google Android уже в курсе, что недавно вышел Android NDK (Native Development Kit). Этот пакет позволяет разрабатывать "нативные" приложения для платформы Android, в обход стандартного SDK, основанного на специальной редакции Java (Dalvik). Новость на самом деле весьма неоднозначная. Вчера в комментариях в одном блоге я отчасти высказал свое мнение по этому вопросу, но напишу еще здесь подробней.

Операционная система для мобильных устройств должна быть изначально спроектирована с расчетом именно на мобильное использование. Здесь должен быть специальный подход к интерфейсу, хранению данных, интеграции приложений, уведомлениям, использованию памяти и т.д. И именно эту задачу решает Dalvik, который с этой точки зрения разработан очень грамотно. Использование Java как основы видится мне также безусловным плюсом из-за достаточно низкого порога вхождения и наличия огромного количества "готовых" программистов. Очень важно разрабатывать программы, сохраняя этот единый подход, предлагаемый API системы. Мне кажется, это очевидно.  Читать далее »

by SolarWind at 30.06.2009 11:46:19

Записки о Linux

LZMA в RPM Fedora 12

А также RPM переходит на сжатие XZ / LZMA.

30.06.2009 10:32:00

Unix way

UZBL web-browser

Давно откладывал этот пост, т.к. планировал написать развернутую заметку. Теперь понял - времени на развернутую заметку в ближайшие дни не найду, а ссылкой поделиться очень хочется.

Ещё неделю назад этот пост бы вышел в виде краткого обзора Archlinux community contributions, но теперь этот проект заслуживает отдельной статьи.

Буду краток: это новый веб-браузер, который пропитан KISS насквозь. По сути сам исполняемый файл uzbl - одно окно с движком webkit, без каких-либо контролов, который принимает комманды через пайп. Хочешь перейти по ссылке - скрипт, сохранить закладку - пиши скрипт на любимом языке. Правда ситуация облегчается тем, что разработчики и комьюнити uzbl уже написали целую кучу скриптов на все случаи жизни.

Uzbl
Wiki

Большинство скриптов в репозитории с программой.

by Pavel Vyazovoi (vyazovoi@gmail.com) at 30.06.2009 09:22:12

Записки о Linux

Настройка GPRS через bluetooth в RFRemix 11

Когда-то давно я писал, о том как настроить GPRS на Nokia E61. Тогда я даже не представлял как заставить работать интернет через bluetooth. Сейчас же в Russian Fedora Remix 11 (а также в ALT Linux, ASPLinux и Ubuntu) появилась довольно простая возможность сделать это только при помощи мышки. Мудрая идея Леонида Кантера сделала меня счастливым на всё время отпуска.

Как это работает в Russian Fedora Remix

В RFRemix аплет Blueman должен быть запущен по умолчанию. Если это не так, то отдайте команду

/usr/bin/blueman-applet

В области уведомлений у вас должна быть иконка Bluetooth. Щёлкнув по ней, откроется окно, в котором необходимо, нажав на кнопку Найти, определить устройство для выхода в интернет.

Поиск устройств
Поиск устройств

После того как нужное устройство появилось, необходимо установить с ним связь. Для этого нужно щёлкнуть по нему правой кнопкой мыши и выбрать пункт Cоединить.

Установить связь с устройством
Создание сопряжения с устройством

Далее обычная процедура. Нужно ввести код, который после нажатия кнопки ОК нужно будет продублировать на телефоне. После этого справа от названия устройства появятся графики “стабильности” соединения, которые впрочем через секунду исчезнут. Если вы не хотите всякий раз подтверждать передачу данных на телефоне, то щёлкните правой кнопкой мыши по нашему устройству и выберите пункт Доверенный.

После этого необходимо получить доступ к модему устройства. Для этого щёлкаем по нему правой кнопкой мыши, выбираем пункт Последовательные порты, Служба доступа к сети через модем.

Доступ через модем
Служба доступа к сети через модем

Если всё пройдёт удачно, то справа от названия устройства появятся уже знакомые нам графики, а через некоторое время должно автоматически появиться окно:

Помощник
Новое соединение

Новое соединение можно добавить и вручную, щёлкнув правой кнопкой мыши по иконке NetworkManager в области уведомления, выбрав Изменить соединения..., далее вкладка Мобильные широкополосные и кнопка Добавить.

Нажав на кнопку Вперёд, нужно выбрать страну и оператора связи:

Выбор оператора
Выбор сотового оператора

После этого нужно нажать на кнопку Вперёд а затем на Применить.

Осталось только соединиться с сутью. Для этого необходимо щёлкнуть по иконке NetworkManager и выбрать наше соединение:

Подключение к оператору
Подключение к cети

Возможные проблемы
Иногда связь с телефоном обрывается и заново настроить её не удаётся. В таких случаях нужно удалить устройство и настроить его заново.

Как это сделать в другом дистрибутиве

Если вы хотите внедрить эту технологию в свой дистрибутив, то вам потребуется Blueman (есть во многих дистрибутивах), NetworkManager, пропатченный для работы с MBCA, сам пакет mbca и база данных телефонных операторов по странам.

На NetworkManager необходимо наложить патч и собрать аплет с ключом --with-mbca.

30.06.2009 06:49:49

ffblog - новости breys.ru

Вышло обновление Warzone 2100, 2.2.1

Недавно 2009 June 21 вышло обновление Warzone2100 , самой любимой стратегии в Linux . Кстати скоро наступает дата апокалипсиса разыгрываемого в этой антиутопии и видимо по-этому авторы погняли лосей по маркови

Среди изменений в этой версии радует и настораживает

Fix: No more ugly texture seams

Ох неужели, а

by ffsdmad@jabber.ru ( ffsdmad ) at 30.06.2009 05:54:52

Журнал Витуса.

Закопайте стюардессу

Тут, похоже, NVidia сделал крупный подарок OpenSource. Чего от этой фирмы даже странно ожидать. Впрочем, они, вероятно сами не понимают, какой джинн может вылезти из этой бутылки.

Nvidia выпустила чип Tegra на котором уже собираются делать ультрадешевые нетбуки.

Причем здесь OpenSource? Да при том, что архитектура там ни разу не X86. Сегодня с утра опять читал в компьютерре рассуждения очередного мегаэксперта что-де линукс на нетбуках - это только для снижения цены. Юзер туда все равно пиратскую windows поставит. Ага, пусть попробует. На ARM11. Разве что под QEMU. Но тогда ему придется пиратить NT 3.5, поскольку вряд ли на 900Мhz процессоре в режиме полной эмуляции более поздняя винда будет хоть как-то шевелиться. А 16-битные оболочки дешевые обычно в эмуляторах работают медленнее, чем нормальная винда на ядре NT.

В общем, похоже, что возник шанс страшненького зомби под названием "архитектура i386" наконец похоронить. Не факт, что ARM11 для этого лучший выбор. Наверняка там будет разрешен misaligned доступ к памяти, и числа будут храниться как little endian. Но все же, но все же.

С другой стороны, появление дешевых и достаточно быстрых плат на ARM-архитектуре окажет OpenSource и медвежью услугу тоже. Производительность Tegra такова что уже можно пытаться собрать весь дистрибутив self-hosted компилятором. Особенно если этих чипов в корпус напихать пару десятков (а Nvidia со своими экспериментами по поводу использования видеокарт для вычислений и о такой возможности задумывается). Значит опять не будет никакого желания бороться с кривыми системами конфигурирования софта, не заточенными под кросс-компиляцию.

Ну тут вся надежда на Atmel с её AVR-32.

Вообще интересные времена настают. Интересно, сколько HP хочет в наше время за лицензию на Alpha? SoC на базе Alpha, гигагерц этак на десять, при энергопотреблении как у гигагерцового Atom, сейчас, когда программисты наконец научились писать 64-битный софт, или во всяком случае компилировать софт в 64-битном режиме, мог бы быть интересен.

30.06.2009 04:25:11

29.06.2009

K Notes

Скринкаст Plasma из KDE 4.3

Аарон Сейго (Aaron Seigo) в предверии готовящегося релиза KDE 4.3 не поленился и сделал видеообзор возможностей Plasma в KDE 4.3.

Plasma 4.3 Screencast

Plasma 4.3 Screencast

На протяжении 10 минут можно узнать о ряде значимых изменений. Те, кто не обладает достаточными знаниями английского языка (например, я), может довольствоваться видеорядом, остальные же могут почерпнуть интересную информацию из комментариев. По словам самого Аарона, чтобы сделать полный обзор всех возможностей грядущего релиза, потребуется минимум час, а в отведенные десять минут он успел показать и рассказать следующее:

  • Новая тема оформления — Air;
  • Малый размер панелей;
  • Интеграция KWin;
  • Стабильность и улучшения производительности (исправлено свыше 2300 ошибок);
  • Новые плазмоиды: Remember the milk, Social Desktop и Unit Converter;
  • Новые движки данных, включая геолокацию;
  • Новый системный трей и изменения в отображении уведомлений;
  • Улучшения в скорости, пользовательских качествах и внешнем виде KRunner.

Скачать torrent-файл можно по этой ссылке. Аарон Сейго просит не уходить с раздачи тех, кто уже скачал файл.

by tinman321 at 29.06.2009 20:01:17

советы.блогспот.ком

Как исправить дату EXIF в фото

Иногда, отфотографировав день-два-три можно обнаружить, что всё это время в камере стояла неправильная дата. Я тут как раз ошибся: на один год (вперёд), 12 часов (a.m./p.m, эх) и один часовой пояс.

Дело поправимое. Поможет exiftool. Чтобы откатить дату на один год и 12+1 (13) часов, поступаем так:
$ exiftool "-DateTimeOriginal-=1:0:0 13:00:00" *.jpg

Смотрим, что получилось, и если что-то не так, то возвращаемся к оригиналам (exiftool их услужливо сохранит):
$ for f in *_original ; do mv $f ${f%_original} ; done

Если же всё в порядке, добавляем фотографии в свой архив и используем по назначению. Например, добавляем геотаги.

by noreply@blogger.com (Сергей) at 29.06.2009 16:35:00

Заметки администратора

Как безболезненно сменить ip-адрес сайта (хоста)?

За разрешение имён хостов в ip-адреса и наоборот ответственна служба DNS. Чтобы снизить нагрузку на уполномоченные за зону (домен) сервера используется кеширование dns-запросов, и в настройках DNS-сервисов есть параметры, помогающие гибко сконфигурировать данную функциональность.

В описании зоны есть параметры для вторичных серверов:
refresh - интервал обновления зоны (в секундах) для вторичных уполномоченных серверов
retry - интервал попытки обновления зоны (в секундах) при неудаче обновления
expire - интервал истечения полномочий для вторичных уполномоченных серверов при неудаче обновления (в секундах)

В рамках вопроса, который интересовал меня (см. subject) наиболее интересны параметры Default TTL, TTL, Minimum TTL. Они определяют время TTL (Time-to-live - "время жизни"), в течение которого DNS-серверы (кроме вторичных), получившие информацию о записях с любого DNS-сервера, будут ее хранить в своей памяти (кэше) и сообщать ее по запросам других DNS-серверов.

  • TTL - этот параметр определяет период времени (в секундах), в течение которого другие DNS-сервера должны хранить запись в кэше. Если значение параметра в записи не указано, то "время жизни" определяется параметром Default TTL.
  • Default TTL - определяет значение параметра TTL для тех записей, для которых это значение не установлено явно. Обычно используется именно Default TTL вместо указания TTL для каждой записи.
  • Minimum TTL - определяет "время жизни" отрицательных ответов на запросы о ресурсах, не существующих в DNS.

Таким образом, если Вы готовитесь сменить ip-адрес сайта (хоста) и хотите об этом объявить через СМИ (с указанием конкретной даты), Вам необходимо заранее изменить (Default)TTL-записи Вашей зоны (либо конкретных хостов в зоне) на маленькие значения, например 5 минут (60 секунд), подождать, пока изменения вступят в силу и обязательно проверить.
После того как перенос будет завершён не забудьте вернуть значения назад, чтобы снизить нагрузку на уполномоченные за Вашу зону dns-сервера.
Безусловно, это не решит всех проблем, так как есть крупные dns-forward'еры (dns-сервера), которые используются большим числом людей (например, провайдер даёт пользоваться своим dns-сервером) и которые могут игнорировать заданные Вами TTL-значения. В данном случае ничего кроме пресловутого "ждите" не поможет. Хотя можете попробовать добраться до админов данного dns-сервера и попросить их руками выбросить из кэша данные о Вашем старом ip-адресе :)

Links:
  1. DNS-Master - Редактор файлов зон DNS :: Помощь
  2. Bog BOS: DNS (Domain Name System)
  3. Moving your website to another server? Tune your DNS for minimum downtime.

by Roman Sozinov (sozinov@gmail.com) at 29.06.2009 16:35:20

Записки о Linux

Исправили наконец 64-х битный пакет Nero

Наконец-то в новом 64 пакете Nero исправили баг, который я отослал ещё 2 февраля. А я думал забудут.


Hello!

When you are building rpm-packages you select arch amd64 for 64-bit package.

$ rpm -qp nerolinux-3.5.2.3-1.x86_64.rpm --qf ”%{arch}\n”
amd64

This is wrong for RPM. “Amd64” arch is used only in deb-packages, for rpm-packages should be used “x86_64” arch. So if arch is “amd64” I can not use yum (package manager) for installing nero 64 from local custom repository.

Please, fix this bug in next releases.


Dear Mr. Shane,

thank you for your e-mail.

thank you very much for the information. I will forward that information to our developers.

Should you have any further queries, please do not hesitate to contact us again.

Best Regards

Max Blank
Nero Support

Nero AG
Im Stoeckmaedle 13-15
76307 Karlsbad
Germany
Fax : +49 (0)7248 928 499
http://www.nero.com


29.06.2009 13:01:01

Unix way

Elisp: меняем настройки Wanderlust при переходе по папкам

Я использую два разных imap-ящика и не нашёл в wanderlust способа настроить отдельную папку Trash для каждого из них. Пришлось выкручиваться.

Функция для получения petname (название, alias) текущей папки:


(wl-folder-get-petname (elmo-folder-name-internal
wl-summary-buffer-elmo-folder))


Использовать можно как-то так:


(defun vyazovoi/wl-folder-switch ()
(setq my-wl-current-petname (wl-folder-get-petname (elmo-folder-name-internal
wl-summary-buffer-elmo-folder)))
(cond ((equal my-wl-current-petname "INBOX@domain")
(message "Настройки для domain"))
((equal my-wl-current-petname "INBOX@gmail")
(message "Настройки для gmail"))
(t
(message "Настройки по умолчанию"))))

(add-hook 'wl-summary-prepared-hook 'vyazovoi/wl-folder-switch)


Я таким образом перенастраиваю папки Trash и Drafts, настройки smtp, поле from, подпись и др.

P.S. Можно также использовать переменную wl-draft-parent-folder, но она локальная в буфере draft, так что, например, папку Trash с её помощью менять смысла нет.

by Pavel Vyazovoi (vyazovoi@gmail.com) at 29.06.2009 13:21:54

Выделенный сервер своими руками

Munin. Замена MRTG.

Роясь в дебрях Интернета откопал интересную утилиту Munin. Основное ее предназначение - визуализация множества показателей операционой системы, на которой она установлена и не только на ней. Средство очень удобное и простое в инсталляции. Для CentOS буквально пара команд:

yum install munin
yum install munin-node

Запуски системы осуществляется с помощью команды:
service munin-node restart
Конфигурационные файлы записываются в папку /etc/munin. Основных конфига два: munin.conf и munin-node.conf.
Доступ к статистике можно получить по адресу http://имя_или_ip_адрес_вашего_сервера/munin/
Статистика обновляется каждых 5 минут.
Вот двух словах все. :)

by admin at 29.06.2009 12:00:20

бла-бла-бла...

Закручивание гаек в SELinux, часть 3: Permissive Mode Vs. Permissive Domains

оригинал - SELinux Lockdown Part Three: Permissive Mode Vs. Permissive Domains

Продолжаю выкладывать перевод цикла статей по использованию SELinux. Оригинал на английском языке опубликован в блоге Доминика Грифта (Dominick Grift).

Разрешающий режим SELinux (SELinux Permissive Mode) это состояние, в котором SELinux разрешает нарушения политики SELinux на уровне всей системы. В этом состоянии нарушения политики только регистрируются. Разрешающий режим может быть использован для устранения неполадок и тестирования проблем, связанных с SELinux. Трудности с разрешающим состоянием на уровне всей системы связаны с разумной необходимостью перевода системы в безопасную среду и вывода её из эксплуатации. В некоторых редких случаях можно с целью минимизации рисков, вызванных разрешающим режимом, рассмотреть подключаемый модуль аутентификации (Pluggable Authentication Module) SEPermit, но часто данной меры недостаточно, потому что он только запрещает вход Linux пользователям. Системные службы остаются уязвимы к нарушениям политик.

Недавно с целью устранения данных проблем были представлены разрешающие домены SELinux (SELinux Permissive Domains). С разрешающими доменами можно перевести отдельный домен безопасности SELinux в разрешающее состояние. Используя разрешающие домены можно оставить систему в эксплуатации и, например, запретить доступ к данному домену при помощи IPTables, TCP Wrappers, PAM или используя другие методы.

Для добавления и удаления разрешающих доменов SELinux используется команда semanage. Вам не нужно знать в каком домене безопасности работает процесс, чтобы сделать этот домен безопасности разрешающим доменом. Команда ps с опцией -Z поможет узнать эту информацию.

Пример того как сделать разрешающим домен безопасности с названием httpd_t для Apache:
sudo semanage permissive -a httpd_t
Пример того как сделать домен безопасности с названием httpd_t для Apache снова принудительным:
sudo semanage permissive -d httpd_t
Пример того как используя команду semanage просмотреть разрешающие домены SELinux:
sudo semanage permissive -l

Вывод:
Отдавайте предпочтение разрешающим доменам SELinux, а не разрешающему режиму.
Добавляйте, просматривайте и удаляйте разрешающие домены с использованием команды semanage.

Справка: man semanage, man tcpd, man pam_sepermit, man iptables

by z (noreply@blogger.com) at 29.06.2009 12:00:54

Закручивание гаек в SELinux, часть 1: пользователи SELinux

оригинал - SELinux Lockdown Part One: SELinux Users

Начинаю выкладывать перевод цикла статей по использованию SELinux. Оригинал на английском языке опубликован в блоге Доминика Грифта (Dominick Grift).

Это первая статья в серии о затягивании конфигурации SELinux для Fedora 11.

В Fedora 11 Linux-пользователи по умолчанию сопоставляются SELinux-пользователю unconfined_u. SELinux-пользователь unconfined_u, в свою очередь, сопоставлен ролям unconfined_r и system_r и всем доступным категориям (compartments) Multi Category Security.

Обе роли unconfined_r и system_r сопоставляются доменам безопасности SELinux. Домены безопасности SELinux - это определенные окружения безопасности для процессов в системе Linux.

Неограниченный домен безопасности - unconfined_t - зарезервированное окружение для процессов, которые в значительной степени освобождены от ограничений SELinux. Роль system_r сопоставляется доменам безопасности для системных процессов.

SELinux-пользователь unconfined_u имеет доступ к роли system_r, чтобы иметь возможность запускать системные процессы в своих доменах безопасности. SELinux-пользователь unconfined_u работает в домене безопасности unconfined_t через роль unconfined_r, которой он сопоставлен.

Команда semanage позволяет добавлять, изменять и удалять сопоставления между Linux- и SELinux-пользователями, так же как и другие настройки, касающиеся управления SELinux. В качестве альтернативы для изменения этих настроек можно использовать system-config-selinux, графический интерфейс к semanage.

Чтобы с помощью команды semanage посмотреть какому SELinux-пользователю по умолчанию сопоставлены Linux-пользователи наберите:
sudo semanage login -l | grep default
результат команды будет каким-то таким:
__default__     unconfined_u     SystemLow-SystemHigh
В примере выше Linux-пользователи по умолчанию сопоставлены SELinux-пользователю unconfined_u.

Чтобы изменить это и сопоставить Linux-пользователей по умолчанию ограниченному SELinux-пользователю с именем user_u просто наберите:
sudo semanage login -m -s user_u "__default__"
В результате все новые Linux-пользователи будут по умолчанию сопоставляться ограниченному SELinux-пользователю user_u.

Вы можете переопределить данное сопоставление при добавлении Linux-пользователей командой useradd используя опцию -Z. Эта опция определяет какому SELinux-пользователю должен быть сопоставлен Linux-пользователь.
Например наберите:
sudo useradd -Z guest_u joe
В результате будет создан новый Linux-пользователь с именем joe, который будет сопоставлен SELinux-пользователю guest_u, вместо определенного по умолчанию SELinux-пользователя.

Также для изменения сопоставления между Linux-пользователем и SELinux-пользователем может быть использована команда usermod с опцией -Z.

Существует несколько предопределенных профилей SELinux-пользователей. Список данных профилей можно вывести командой semanage, наберите:
sudo semanage user -l


Далее я рассмотрю некоторые свойства этих предопределенных SELinux-пользователей.

SELinux-пользователь guest_u:
Этот профиль используется для пользователей, которых необходимо усиленно контролировать. SELinux-пользователь guest_u может только войти в систему используя OpenSSH. Гостевые пользователи не имеют доступа к сетевым ресурсам и программам с установленными битами setuid и setgid.

SELinux-пользователь xguest_u:
Данный профиль аналогичен guest_u за исключением того, что Xguest пользователи могут входить в Xwindow и не могут входить используя OpenSSH. Другим исключением является то, что данный пользователь может получить доступ к HTTP порту, используя контролируемый SELinux экземпляр Mozilla Firefox.

SELinux-пользователь user_u:
SELinux-пользователь user_u напоминает обычного непривилегированного ограниченного (confined) SELinux-пользователя. Такой пользователь может войти в систему используя Xwindow и OpenSSH, имеет доступ к сетевым ресурсам, но не может использовать программы с установленными битами setuid и setgid.

SELinux-пользователь staff_u:
Этот SELinux-пользователь идентичен user_u, за исключением того, что staff_u может использовать программы с флагами setuid и setgid. Кроме того пользователь staff_u может также просмотреть информацию обо всех процессах в системе и имеет некоторые другие несущественные привилегии по сравнению с пользователем user_u.

SELinux-пользователь sysadm_u:
Данный пользователь придуман, чтобы ограничить используя SELinux учетную запись root, что обычно делать не рекомендуется. Он используется в Multi Level Security окружении, где нет пользователя unconfined_u.

SELinux-пользователь unconfined_u:
SELinux-пользователь unconfined_u это среда, в которой по умолчанию работают все Linux-пользователи в соответствии с целевой политикой Fedora (Fedora Targeted policy). Этот пользователь в значительной степени освобожден от ограничений, накладываемых SELinux. Исключением является механизм Memory Execution Protections (ограничение на исполнение определенных операций в памяти).

Если Вы хотите повысить безопасность вашей системы, тогда не следует сопоставлять реальных Linux-пользователей, не пользователя root, SELinux-пользователю unconfined_u. Во многих сценариях существование неограниченных пользователей создает зияющую дыру в безопасности.

Вход пользователя root должен быть запрещен. Root должен иметь возможность войти с терминала только в случае крайней необходимости. В Fedora, Linux-пользователь root сопоставлен unconfined_u. Это означает, что root практически не защищается SELinux.

Чтобы повысить безопасность использования root можно сопоставить пользователя root SELinux-пользователю sysadm_u. Хотя это не сильно увеличивает безопасность по сравнению с unconfined_u и root будет иметь возможность обойти ограничения SELinux.

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

SELinux-пользователь system_u:
Этот пользователь зарезервирован для нужд системы. Обычные Linux-пользователи не должы сопоставляться с SELinux-пользователем system_u.

Как определить SELinux-пользователя по умолчанию для новых Linux-пользователей объяснили, как переопределить сопоставление по умолчанию с использованием команды useradd и опции -Z тоже объяснили.

Выше было рассказано о доступных предопределенных SELinux пользователях. Осталось показать как можно изменить сопоставление SELinux-пользователя Linux-пользователям.

Вывести список всех сопоставлений между Linux- и SELinux- пользователями:
sudo semanage login -l

Сопоставить Linux-пользователя SELinux-пользователю:
sudo semanage login -a (...)

Изменить сопоставление межд Linux-пользователем и SELinux-пользователем:
sudo semanage -m (...)

Удалить сопоставление между Linux-пользователм и SELinux-пользователем:
sudo semanage -d (...)


Вывод:
Для повышения безопасности системы настройте SELinux, чтобы по умолчанию Linux-пользователи сопоставлялись ограниченным SELinux-пользователям.
Запретите вход пользователю root в систему с использованием OpenSSH и Xwindow. Разрешите пользователю root входить только в крайних случаях, используя терминал. Либо оставьте root сопоставленным SELinux-пользователю unconfined_u или сопоставьте его пользователю sysadm_u (например, если вы решите деинсталлировать модуль SELinux unconfineduser).
Сопоставьте ваших Linux-пользователей наиболее подходящим ограниченным профилям SELinux-пользователей.
Используйте команду useradd и опцию -Z, чтобы добавлять Linux-пользователей, переопределяя сопоставление, определенное по умолчанию, передавая имя SELinux-пользователя в качестве аргумента.

Справка: man semanage, man useradd, man usermod

by z (noreply@blogger.com) at 29.06.2009 11:45:49

Закручивание гаек в SELinux, часть 2: PAM SEPermit

оригинал - SELinux Lockdown Part Two: PAM SEPermit

Продолжаю выкладывать перевод цикла статей по использованию SELinux. Оригинал на английском языке опубликован в блоге Доминика Грифта (Dominick Grift).

В предыдущей статье я обсуждал преимущества сопоставления Linux-пользователей ограниченным SELinux-пользователям. Возможно Вам когда-нибудь понадобится устранить проблемы в системе или решить какие-то вопросы, которые требуют работы SELinux в разрешающем режиме (Permissive Mode).

Разрешающий режим SELinux это состояние, в котором ограничения SELinux не осуществляются. Однако, SELinux регистрирует нарушения политики SELinux, которые бы в нормальном состоянии предотвращались. Воспринимайте разрешающий режим как систему обнаружения вторжений (Intrusion Detection System), тогда как принудительный режим (Enforcing Mode) можно рассматривать как систему предотвращения вторжений (Intrusion Prevention System).

В большинстве случаев система на время работы в разрешающем режиме будет выведена из эксплуатации. В некоторых ситуациях это может быть не так просто сделать.

Существуют способы минимизировать риски, связанные с разрешающим режимом. Предпочтительным способом является недавно представленная возможность с названием разрешающие домены SELinux (SELinux Permissive Domains). Разрешающие домены будут обсуждаться позже.

Подключаемый модуль аутентификации (Pluggable Authentication Module) с названием SEPermit может также помочь минимизировать незащищенность разрешающего режима.

PAM SEPermit может заблокировать вход Linux-пользователю, когда система работает в разрешающем режиме. Рассмотрим систему, в которой Linux-пользователи ограничены SELinux. Разрешающий режим фактически снимает эти ограничения. Linux-пользователи могут воспользоваться этими преимуществами и получить доступ к ресурсам, которые в ином случае были бы для них не доступны.

PAM SEPermit включен по умолчанию в Fedora 11 в различных файлах в /etc/pam.d/, например, в /etc/pam.d/sshd. Чтобы заблокировать возможность входа Linux-пользователя в разрешающем режиме достаточно в конфигурацию SEPermit, расположенную в /etc/security/sepermit.conf, добавить Linux- или SELinux- пользователей.

Например, при добавлении %user_u в файл sepermit.conf в /etc/security, блокируется вход SELinux-пользователю user_u, при работе системы в разрешающем режиме.

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

В большинстве случаев рекомендуется перенести вашу систему из демилитаризованной зоны на время работ по устранению проблем в разрешающем режиме. Хотя PAM SEPermit может быть полезен в некоторых случаях.

Побробуйте!

Вывод:
Отдавайте предпочтение разрешающим доменам (Permissive Domains) SELinux, а не разрешающему режиму работы SELinux (Permissive Mode).
Если разрешающий режим требуется в промышленной среде на системе с Linux-пользователями, ограниченными с использованием SELinux, поощряется блокировка входа Linux-пользователей с использованием подключаемого модуля аутентификации SEPermit.
Учитывайте, что это окажет влияние только на Linux-пользователей, системные службы не будут защищаться SELinux в разрешающем режиме.

Справка: man pam_sepermit, man setenforce, man getenforce

by z (noreply@blogger.com) at 29.06.2009 11:44:15

It_blog's » linux

Обработка видео, записанного на miniDV камеру под Linux


Всем привет!
После большого перерыва, вызванного сдачей диплома в институте я вновь продолжу радовать Вас интересными статьями.

Сегодня мы рассмотрим вопрос кодирования видео с miniDV видеокамеры.

Задача: Сбросить видео на ПК и пережать его для последующего хранения.

Нам потрбуеться:
1) Ядро с поддержкой FireWire 1394 или v4l (смотря кто как будет скидывать видео)
2) Программа dvgrab (собственно с её помощью мы будем грабить видео с miniDV кассеты из консоли)
3) Программа mencoder (Входит в поставку с видео плеером mplayer)
4) Программа avimerge для склеивания нескольких avi файлов в один (входит в состав transcode)

Грабим видео:

Для начала нам потребуется подключить видеокамеру к ПК.
В случае с FireWire 1394 никаких драйверов нам не нужно, просто подключаем и работаем.
В случае подключения камеры по средствам USB нам нужно определиться с её поддержкой ядром Linux.
Как мы уже знаем, сделать это можно с помощью команды lsusb и затем скомпилировать подходящий модуль ядра.
Я решил упростить себе жизнь и просто купил внешнюю карту FireWire 1394.

Для начала установим пакет dvgrab

Затем нам нужно перемотать miniDV кассету на начало и подключить камеру к ПК.

Теперь перейдём к процессу сграбливания видео:

Утилита dvgrab имеет множество полезных параметров, давайте рассмотрим некоторые из них:

-a, -autosplit – Этот параметр отвечает за нарезку видеофайлов, т.е dvgrab будет резать видео автоматические на куски, между нажатиями на кнопку запись/стоп. Это очень удобно если Вы хотите рассортировать сюжеты.

-f, -format – Позволяет в ручную задать формат видео потока, если параметр не задан, то dvgrab автоматически попытается определить формат данных. Если у Вас hdv камера то нужно обязательно указать этот параметр.

-F, -frames – Количество кадров

-s, -size – Устанавливает лимит на видео файл. По умолчанию установлен размер 1024 мегабайта, что удобно если Вы монтируете DVD диск.

-V, -v4l2 Если Вы планируете скинуть видео через драйвер v4l2

О остальных параметрах Вы можете почитать man dvgrab

В моём случае я воспользовался вот такой конструкцией:

dvgrab –format raw -size 20000 cam.dv

Поскольку размер одной кассеты около 13 Гб, то всё видео будет сохранено одним файлом, это для удобства кодирования.

Кодируем видео:

Да бы не вдаваться в подробности я дам Вам мою конструкцию для перегона видео:

Первый проход:

mencoder cam001.dv -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1800:vhq:vpass=1:vqmin=1:vqmax=31 -oac mp3lame -lameopts vbr=2:q=7 -o mpeg4.avi -vf field,scale=768:576 -aspect 4:3

Второй проход:

mencoder cam001.dv -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1800:vhq:vpass=2:vqmin=1:vqmax=31 -oac mp3lame -lameopts vbr=2:q=7 -o mpeg4.avi -vf field,scale=768:576 -aspect 4:3

При таких параметрах 1 час видео занимает около 800 Мб
При необходимости Вы можете изменить битрейд видео и звука для достижения желаемого качества.

Склеиваем видео:

Для склеивания видео в один большой файл мы воспользуемся утилитой avimerge.
Делается это очень просто:

avimerge -o com.avi -i 1.avi 2.avi 3.avi

Где com.avi – это итоговый видео файл, а 1.avi 2.avi 3.avi - это видео файлы, предназначенные для склеивания.

После обработки полученное видео Вы можете нарезать на диск или разместить в интернете.
Из видео хостингов я рекомендую воспользоваться www.veoh.com
На нём нет ограничения как по размеру видеофайла, так и по продолжительности самого видео.

Posted in Gentoo, linux, Program Tagged: видео, запись, конвертация, переделываем, linux, mplayer, файлы, Program, video

by itbg at 29.06.2009 08:39:55

SolarWind Gate. Заметки гика - Linux

Gwibber. Еще один Twitter-клиент для Linux

GwibberЯ перепробовал достаточно много Twitter-клиентов для Linux. Но почему-то ни один из них меня не порадовал настолько, чтобы не искать ему замены. Mitter как-то не прижился, уж очень он аскетичен. Поэтому до недавнего времени я использовал, в основном, twhirl. Но он, несмотря на все его достоинства, не очень радует из-за того, что написан для Adobe AIR. И памяти потребляет больше, и выглядит не очень "родным" для Linux.

После выхода Ubuntu 9.04 я понял, что от Twitter-клиента мне хочется трех вещей:

  1. GTK-интерфейс. Так как я использую Gnome, то хочется полностью аутентичного окружения. Тот же twhirl уж очень выбивается из общего стиля.
  2. Юзабилити программы примерно как у twhirl. Чтобы были возможности удобных ответов и ретвитов.
  3. Поддержка уведомлений libnotify нового типа в Ubuntu 9.04. Убунтоводы в курсе, всплывающие сообщения в правом верхнем углу. Практика использования Pidgin в последнее время показала мне, насколько это удобно.

Оказывается, такая программа существует - Gwibber. Именно то, что мне нужно. Вчера я ее опробовал и, судя по всему, останусь на ней в качестве моего единственного Twitter-клиента в Linux. Если кто-то ее еще не видел, очень рекомендую взглянуть. Программа, кстати, поддерживает не только Twitter, но и Jaiku, Identi.ca, Facebook, Flickr, Digg.

Немного напишу об установке Gwibber в Ubuntu 9.04.  Читать далее »

by SolarWind at 29.06.2009 07:51:07

Propheta

Какой дистрибутив установлен linux на компьютер

можно узнать с помощью утилиты lsb_release.
Пример использования
$ lsb_release -irc
Distributor ID: Ubuntu
Release: 9.04
Codename: jaunty
Если этой утилиты в исследуемой системе нет, то версию дистрибутивов, основанных на Debian/RedHat/Gentoo можно узнать так (спасибо Ярославу Шаповалу)
$ cat /etc/*release*
в дистрибутивах, основанных на Slackware
$ cat /etc/slackware-version
в SUSE
$ cat /etc/issue

by Князь (noreply@blogger.com) at 29.06.2009 00:24:29

28.06.2009

Записки о Linux

Результаты опросов

Итак, подводим итоги наших двух опросов. Первый опрос был относительно шрифтов. Подавляющее большинство (58%) высказалось за первый вариант, а именно за тонкий (серый на вид) шрифт.

Такое начертание достигается простой пересборкой freetype с включёнными bytecode interpreter и subpixel rendering, которые отключены по патентным соображениям в Fedora.

35% предпочли различные манипуляции с шрифтами как в Ubuntu и Mandriva. Данное начертание достигается путём пересборки cairo, fontconfig и libXft (freetype также пересобирается).

От себя скажу, что я перешёл на использование второго варианта. Две недели на ноутбуке и теперь на большом мониторе.

Что касается дистрибутива, то благодаря опросу в Russian Fedora Remix по умолчанию будет использоваться первый вариант.

Второй опрос был организован по просьбе одного знакомого (по Jabber) и касался способов обновления системы. Большое спасибо всем, кто портировал emerge в Fedora, надеюсь ваши наработки окажутся в апстриме. Об urpmi жалко никто не вспомнил.

Опрос показал, что 53% ставят систему с нуля. К ним я отношу и себя. Как бы за многие годы этот способ наиболее эффективен. Правда для его реализации нужно немного нестандартно (особенно если у вас ноутбук с маленьким диском, а ваш суппорт упорно всё ставит на один раздел) подходить к разбивке жёсткого диска (до сих пор люди удивляются, а потом не нарадуются, когда я им это рассказываю), однако результат этот оправдывает (у вас должно быть минимум два раздела под систему, под текущую и под будущую, и раздел с /home). Заодно после того, как вы долго разрушали свою систему, можно всё начать с чистого листа.

Yum upgrade (33%) – процесс долгий и интеллектуальный (да, приходится удалять зависимости, на которых затыкается обновление, или пытаться воспользоваться хитрыми плагинами), к тому же результат всякий раз непредсказуем (как рассказывают и в Ubuntu тоже).

Обновлением через установочный диск пользуются 9%. Здесь много подводных камней. Например, если во время обновления исталлятор вдруг наткнётся на I/O error (допустим болванку плохо записали), то потом вы уже не сможете продолжить обновление. Также всякий раз обновление работает по новому. Например в 11 версии нельзя обновиться с 11-й (!), с 10-й можно, с 8-й нет (с 9-й не знаю).

Preupgrade (5%) – процесс очень похож на предыдущий с точки зрения механизма обновления.

28.06.2009 18:45:52

Gentoo линукс и не только

Пользуетесь ли вы контексными меню в файл менеджерах

Хочу написать о такой классной и удобной фишке как контекстные меню в файл менеджере dolphin ,
просто и не знаю чтобы я без них делал :)
И , если лень все читать, вопрос : а пользуетесь ли ВЫ контексными меню , и какими ?? :)

Я например , нахожу удобными следующие меню:
  1. Архивация/разахривация файлов.Удобно архивированием либо разархивированием в один клик .При этом что дельфин сам определяет архив ли это , или не архив и автоматически показывает или скрывает пункты по меню по разархивированию
  2. Kim compress and resize - делает всевозможные операции с картинками, использую консольные утилиты для работы.Работает как на директории , так и на отдельно выделенные файлы.Пользуюсь им обычно перед заливкой фоток на пикасу. ebuild
  3. Root Actions. Пользуюсь когда налр изменить права на файл или отредактировать под рутом.Удобно. брать тут
  4. Fix mp3 russian tags - автоматически рекурсивно конвертирует все cp1251 таги в юникод.Выложил на kde-apps
  5. Pacpl convert - всевозможные операции конвертации с аудиофайлами.Актуально , ибо портативный плеер умеет только mp3 и wma .лежит тут
Преимущества таких меню:
1.Их очень легко писать и, как результат они созданы практически на куждую операцию.Можно скачать много меню например с http://kde-apps.org .Или написать самому.Меню для конвертации тагов я сделал за 10 минут
2.Они интегрированы с mime types kde , а соответственно пункт меню по разархивированию архвива будет показываться только на архиве , а конвертация картинки только на картинке

Вот несколько фото этих меню:








А вот небольшое видео , как эти меню выглядят , и насколько удобно ими пользоваться.Все буквально в один клик:

by Sergei Danilov (noreply@blogger.com) at 28.06.2009 17:28:28

Expl0rer's Weblog » Linux

Iron Python on Linux – первые шаги


Решил попробовать сегодня это чудо. Если кто не в курсе – реализация Python написанная на C# и предназначенная для платформы .Net.  Данная реализация позволяет использовать как python-овские типы и библиотеки, так типы Net Framework в одном приложении.

Использование технологий Microsoft в неродной для них среде Linux в комбинации с нестандартным языком программирования оставляет послевкусие всемогущества и вседозволенности – рекомендую хотя бы попробовать.

Готового проекта под ArchLinux я не нашел, поэтому просто скачал бинарники с официального сайта. В качестве Quick Start Guide можно использовать примеры с The Iron Python Cookbook.

Для запуска скриптов на выполнение я использовал командную строку:

$ mono [path to iron python]/ipy.exe [path to sources dir]/script.py

by expl0rer at 28.06.2009 15:27:54

Блог Димы Джуса: Free Software

GDB/MI, структуры, строгость и круглые скобки

За прошедшую неделю в думах над моим проектом в голове накопилось несколько мыслей, о которых мне хотелось бы сейчас написать:

  • стоит ли стремиться к строгой работе с GDB/MI?

  • окоченевшие строки, или в поисках Лиспа;

  • как заблудиться в исходниках GNU Emacs;

  • Special: Java-ад расширения Eclipse CDT.

Много думал, много расстраивался, но в итоге что-то, кажется, понял. Закрепляю мысли сей заметкой.

Что Дима делал в прошлом месяце

В прошлой заметке я говорил про то, что решил отображать ответы GDB/MI в рекурсивные списковые структуры Emacs Lisp, состоящие из вложенных друг в друга ассоциативных и не очень списков. Такого вида, например:

Например, если (условная) команда MI -basket-info выводит в терминал что-то вроде:

{basket=[{color="green",taste="delicious"},{color="red",taste="disgusting"}]}

то этот ответ будет переведён в структуру basket следующего вида:

(defvar basket '((apples . (((color . "green")
                             (taste . "delicious"))
                            ((color . "red")
                             (taste . "disgusting"))))))

В настоящий момент я использую входящий в состав Emacs парсер JSON для выполнения этого преобразования.

Обращение к членам структуры я сначала делал с помощью простеньких самописных процедур навроде такой:

(fadr-member basket ".apples[0].color")
=>
"green"

Проблемы, на которые указали разработчики Emacs, побудили меня ещё раз подумать над возможностью применения вместо этого других функций, например defstruct и Ко из пакета cl.

Почему так просто?

Для структурирования данных под Emacs Lisp есть средства более высокого уровня, например EIEIO или макросы defstruct из пакета cl. Их плюсом является то, что при работе со структурами мы бесплатно получаем простеньку проверку типа структуры (то есть не удастся попросить поле X у структуры, которая обладает только полем Y). Это придаст большую строгость общению Emacs и GDB. А с EIEIO ещё и всякое наследование, ну почти все CLOS-овые дела в общем.

Сейчас я просто перевожу всю структуру из ответа MI в списки. Когда я извлекаю из этих списков значения полей, я делаю предположение о том, что там эти поля есть, на основе того, что написано в мануале по GDB/MI и того, что MI выплёвывает на самом деле. Код устроен так, что если в MI поменяется состав выходных записей, моё предположение может стать ошибочным, и код молча сломается. Но зная характер разработки MI, я этого не боюсь :)

С другой стороны, как бы я поступил при использовании defstruct или EIEIO?

С defstruct/defclass мне потребовалось бы сначала описать схемы ответов (список наличествующих в них полей). Использумых Емаксом команд MI много, так что таких описаний (и произведённых от них конструкторов/селекторов) пришлось бы использовать тоже много.

В то же время, в MI состав ответа для одной и той же команды может быть неоднородным: например, в выводе команды -break-info для разных точек останова информация о файле/строке может присутствовать или нет, в зависимости от того, куда была эта точка останова поставлена. Вот кусочек:

[{number="1",
  type="breakpoint", disp="keep", enabled="y", addr="0x08048458",
  at="<printf@plt>",
  times="0",original-location="printf"},
 {number="2",
  type="breakpoint", disp="keep", enabled="y", addr="0x0804859d",
  func="main", file="test.c",
  fullname="/home/sphinx/.emacs.d/elpa/gdb-mi-0.5/test.c", line="14",
  times="0", original-location="test.c:14"}]

Получается, на каждую команду понадобится даже не одна схема, а несколько, а определять необходимую к использованию придётся во время исполнения согласно тому, какие поля на самом деле есть в выводе (если описать в схеме все возможные поля, уменьшится строгость, к которой мы стремимся при использовании defstruct или defclass)! Получается, что мы не требуем от вывода MI удовлетворения какому-то контракту, а выбираем контракт на основе того, что у нас в выводе!

Дополнительные затраты будут связаны с тем, что в MI ответы на самом деле имеют не единичную глубину вложенности, так что потребуется описывать схему для каждого уровня.

Раз возможность повышения строгости кода под вопросом, просто ради селекторов смысла использовать defstruct или EIEIO я не вижу.

Было бы хорошо, если бы MI был грамотно спроектирован (а не как сейчас) и имелось бы формальное описание всего протокола, по которому бы я мог сгенерировать нужный код на Лиспе. Но всего этого нет, хотя мне, возможно, хотелось бы в будущем сделать что-то на эту тему.

Где же вы, скобки?

Окоченевшие строки

Прежде всего, цитата Алана Перлиса:

The string is a stark data structure and everywhere it is passed there is much duplication of process. It is a perfect vehicle for hiding information.

Действительно плохой идеей было использование С-подобной нотации для доступа к моим структурам. Было так:

(fadr-member basket ".apples[0].taste")
=>
"delicious"

При написании этого кода я стремился к компактности и (с привычной для меня точки зрения) наглядности нотации. Когда-то любимые точечки с квадратными скобками придавали стройным рядам Лисп-смайликов пикантность.

Но так делать плохо.

Был однажды тред на тему такой нотации на ЛОР. Использование строк для реализации какой-либо нотации показалось мне «неспортивным» ещё тогда :)

Один из Emacs-хакеров сказал, что такая нотация чужеродна, уродливая и совсем-совсем не круглоскобовская.

Тут же оперативно начатый тред в c.l.l помог мне взглянуть на вещи трезво.

Выбранная мной нотация имеет следующие проблемы:

  • для обработки приходилось использовать операции на строках и регулярные выражения, которые чужеродны Лиспу, в котором принято оперировать символами и списками (отсюда дублирование («duplication of process»));

  • мои строки находятся на некотором удалении от обычных Лисповских кододанных (они как будто прячут что-то под одеждой («vehicle for hiding information»)).

Паскаль Б. указал на неожиданную (не думал о таком раньше) для меня проблему с инъекцией вредоносного кода в макросах.

Решение было рядом

Забавно, но в Emacs есть пакет bindat, который, казалось бы, предназначен для работы с какими-то там упакованными бинарными данными. Но в его составе нашлась функция bindat-get-field, которая делает то же самое, что fadr-member, только с нормальным синтаксисом (никаких строк!):

(bindat-get-field basket 'apples 0 'taste)
=>
"delicious"

Эта нотация не длиннее использовавшейся ранее ни на символ, но при этом хорошо вписывается в окружающую Лисп-среду. Пока что я решил использовать её.

Посмотри, как у других, и сделай лучше

Заглянул в код Eclipse CDT, связанный с MI.

Дерево исходников с глубиной вложенности в более чем десять директорий (ну это, похоже, так везде, где Java). Пиздец.

Четырнадцать тысяч строк мусора на Java. Пиздец.

На каждую MI-команду свой класс, который при этом парсит почти совершенно по факту, без всяких строгих схем (как в моём коде сейчас).

Этот шокирующе многословный и громоздкий пример позволяет мне думать, что в моём коде, наверное, не всё уж так и плохо, а Emacs Lisp не так уж и страшен, как кажется на первый взгляд.

Может я чего ещё и не понимаю в составлении программ, но следовать примеру CDT мне что-то сейчас совсем не хочется. Как и иметь дело с Java в каком-либо виде.

28.06.2009 12:36:57

GreenMice - linux

Обзор книги "IBM redbook: Tuning IBM System x Servers for Performance"

Сегодня я хочу рассказать о весьма полезной для IT-специалистов книге:Tuning IBM System x Servers for Performance

Авторы:

  • David Watts
  • Erwan Auffret
  • Phillip Dundas
  • Mark Kapoor
  • Daniel Koeck
  • Charles Stephan
  • ISBN: 0738489794
    IBM Form Number: SG24-5287-04
    Количество страниц: 1098

    Язык: Английский
    Издание: Fifth edition, февраль 2007
    Издатель: IBM Redbooks

читать далее

by vladimir at 28.06.2009 12:07:02

Take World

Новая XSS дырка на vkontakte.ru

Пару недель назад уже опубликовали дырку в поиске, позволявшую делать много чего, в том числе и собирать пароли пользователей.
И вот снова, в том же модуле, но уже в поиске по аудио записям. А узнал я про это, когда от многих друзей начали приходить приглашения на приложения, отправляющие на порносайты. Я решил разобраться, и нашел xss :)
Вот какая ссылка приводит к выполнению произвольного кода (alert(1);)
http://vkontakte.ru/gsearch.php?section=audio&c[section]=audio&c[q]=1&c[q]=1&c[%223C/script%3E%3Cscript%3Ealert(1)%3C/script%3E]#c%5Bq%5D=1&c%5Bsection%5D=audio
Просто и действенно.
А проблема в том, что "программисты" vkontakte.ru не проверяют входные переменные.
Вот пример проблемы:
#так делать нельзя
print_r($_GET["c"]);
#так можно
print htmlspecialchars($_GET["c"])
?>
А вообще, проверять входные переменные учат в каждом учебнике, на первых страницах.

Самое интересное, что в django (python), такое вообще не работает, все входные переменны автоматически проверяются, и приводятся к безопасному виду (если вдруг понадобится, можно обратить процесс).

by noreply@blogger.com (nagos) at 28.06.2009 09:49:00

27.06.2009

Заметки Юрика

В контакте vs Linux. Граффити

С момента выхода десятой версии флешплеера, пользователи социальной сети «В контакте», использующие Linux, столкнулись с проблемой отправки граффити. Поскольку рассчитывать на отзывчивость разработчиков не приходиться, нужно выходить из положения самостоятельно.

До недавнего времени эта проблема решалась откатом на девятую версию флешплеера, но сейчас есть, на мой взгляд, более прогрессивный метод, позволяющий отправлять граффити из десятой версии.
Для этого нужно всего лишь установить этот userscript с помощью Greasemonkey (работу в Opera не проверял).

Прошу прощения за тормоза

by Yurij (noreply@blogger.com) at 27.06.2009 16:55:17

Take World

Google App Engine. Несколько страниц через webapp

Писать web-приложение с нуля, нудно, скучно и бесполезно. Google для этого предлагает собственный простой webapp framework. Можно использовать что угодно, но для понимания нужно взять попроще.
В отличии от php/perl, в python, url никак не зависит от имени файла, который ее обрабатывает.
Т.е. www.example.com/dir/script.php обрабатывается файлом ./dir/script.php, в python задается соответствие url-скрипт, и конечный пользователь не знает реальных имен скриптов. Что то похожее в php делается через модуль apache mod_rewrite.

В прошлом примере hello world, была только одна страница, теперь сделаем вторую. Теперь приведем helloworld.py к следующему виду:
# -*- coding: utf-8 -*-
#Подключаем модули
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
#Функция обработки /
class MainPage(webapp.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, webapp World!')
#Функция обработки /second/
class SecondPage(webapp.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('I am a second page!')
#настройки приложения, и сопоставление ссылок
application = webapp.WSGIApplication(
[('/', MainPage),('/second/', SecondPage)],debug=True)

def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
Теперь в нашем приложении есть две динамических страницы, одна доступна по адресу www.example.com/, вторая по www.example.com/second/. В сосоставлении ссылок можно использовать регулярные выражения. Например '/second/*', будет соответствовать ссылкам www.example.com/second/, www.example.com/second/third, и так далее.

Аналогичная схема используется в django, но там все побольше и посложнее.

by noreply@blogger.com (nagos) at 27.06.2009 08:53:00

26.06.2009

GreenMice - linux

ZTC 9.6: шаблоны zabbix для Linux, PostgreSQL, Slony и nginx

Представляю вашему вниманию первый полноценный выпуск ZTC (Zabbix Templates Collection) - набора шаблонов и UserParameter скриптов zabbix для мониторинга доступности и производительносити серверов.

В этой версии включены шаблоны для общего мониторинга Linux, а также мониторинга PostgreSQL, PostgreSQL+Slony и nginx запущеных под Linux.

Я надеюсь, что это будет кому-нибудь полезно, и жду отзывов, багрепортов, запросов новых функций и патчей в trac, комментарии к этой записи или любым другим способом.

читать далее

by vladimir at 26.06.2009 19:46:02

Gentoo линукс и не только

Приключения с vpn или Vpn clients survey

Понадобилось мне для работы поднять на домашнем компе и vpn , и не простой, а с поддержкой cisco ipsec.

Делов на раз, как говорится , сели и сделали.А на самом деле ..ну это потом.
Итак , принес с работы два профайл с нативного cisco vpn клиента
ibm – для коннекта в ibm
scnsoft - для конекта в outsorce компанию

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

  1. 1.net-misc/cisco-vpnclient-3des-4.8.02.0030 (и более старая версия тоже была опробована)
  2. 2.net-misc/vpnc-0.5.3
net-misc/cisco-vpnclient-3des
Первым на буке поселился нативный циско клиент.Поселился , установил свой ядерный модуль и занял положеное ему место в /opt

Профайлы к нему подошли что я принес с работы. Я только подложил в директорию /etc/opt/cisco-vpnclient/Profiles
запуск оказался тоже очень простым
vpnclient connect scnsoft user ******* pwd ********
Где scnsoft - это имя профайла

И вот я уже вижу свет в конце тунеля и как спускается ко мне с циски ангел весь в белом и с таблицей роутинга в руках и днс в зубах :))

рапортует клиент что подрубился , текст выводит правильный, вводишь "y" - и счасться казалось бы есть...



На выходе также:

  • создает сетевой интерфейс
  • правильно заполняет таблицу роутинга в нужную мне подсеть.

Вобщем ведет себя прям как профессиональный политик.Почему политик ? Да потому что пишет что подрубился и все выводит как надо, а нифига не работает

При попытке пинговать или зайти на любой адрес из подсети выдается ошибка что нет такого или еще хуже того

  • На ядре 2.6.28 просто не коннектится
  • на ядре 2.6.29 к тому же вешает всю систему.При этом индикатор винчестера злобно начинает мигать зеленым , а любимая музыка из колонок звучит как из мясорубки :)Так повесить систему надо еще уметь ! Но не зря же циско спецам такие деньги платят :)

Погуглив , нашел у людей аналогичные нерешенные проблемы http://bugs.gentoo.org/show_bug.cgi?id=234361

Думаю , связаны они с версей ядра..Поставив например 2.6.14 все запалит , но это не наш путь , правильно? Доунгрейд на 15 ядер вниз это было бы сильно :)Как сменить прокачанную во всем девушку на птушницу :)

версии клиента также погоды не сделали , пробовал
  • cisco-vpnclient-3des-4.8.01.0640.ebuild
  • cisco-vpnclient-3des-4.8.02.0030.ebuild

Итак , циско клиент идет в топку , с песней и всеми нужными при этом танцами

net-misc/kvpnc-0.9.1 (для QT4)

Если в кратце , такой глюкавой программы я еще не встречал.Она смогла сделать абсолютно НИЧЕГО.На каждую из запущенных операций я получал ошибки.А конкретно:

  1. Заимпортировать профайл из pcf формата
  2. Заимпортировать cisco сертификат
  3. Подсоединиться к заботливо созданному руками ее родному профайлу


Можно конечно долго искать причины , но на мой взгляд программа должна как минимум делать свою работа , те основные фичи.kvpnc этим меня не порадовал ,

Поэтому ЭТО гуи также идет в топку


net-misc/kvpnc-0.9.1

В первую очередь меня порадовала установка , всего 50 килобайт для такой нужной программы - уже неплохо :)


дальше потребовалось конвертировать мои профайлы и сертификаты из pcf в формат vpnc

Это просто: pcf2vpnc scnsoft.pcf scnsoft.conf


Дальше сертификат надо было конвертнуть из cisco crt формата в pem format , который понимает vpnc, это чуть сложнее через промежуточный формат.Для этого должен стоять openssl пакет:

openssl x509 -in scnsoft.crt -out scnsoft.der -outform DER

openssl x509 -in scnsoft.der -inform DER -out scnsoft.pem -outform PEM


на выходе получается профайл и сертификат.Аналогичные действия я сделал для профайла IBM

То , что получилось я сложил в /etc/vpnc

Дальше я вписал пользователя и пароль в профайл и дело сделано.

Собственно , вот сами профайлы.Они разные , с разным типом авторизации:

##IBM


IPSec ID xxxxxxxxx


IPSec gateway xx.xx.xx.xx


IPSec secret xxxxxxxxxxxx





Xauth username xxxxxxxxxxx


Xauth password xxxxxxxxxxxx


IKE Authmode psk


DPD idle timeout (our side) 0





##Scnsoft


IPSec ID xxxxxxxxxxxx


IPSec gateway xxxxxxxxxxxx


IPSec secret xxxxxxxxxxxxx


Enable Single DES


Xauth username xxxxxxxxxxx


Xauth password xxxxxxxxxxxxxx


CA-File /etc/vpnc/scnsoft.pem


IKE Authmode hybrid



Собсвенно сам запуск ,

Проафайл IBM у меня запустился прекрасно ,

а вот scnsoft нет.выдает такую ошибку:



Connect Banner:


| WELCOME TO SCIENCESOFT NETWORK!


|


vpnc: quick mode response rejected: (ISAKMP_N_INVALID_MESSAGE_ID)(9)


this means the concentrator did not like what we had to offer.


Possible reasons are:


* concentrator configured to require a firewall


this locks out even Cisco clients on any platform expect windows


which is an obvious security improvment. There is no workaround (yet).


* concentrator configured to require IP compression


this is not yet supported by vpnc.


Note: the Cisco Concentrator Documentation recommends against using


compression, expect on low-bandwith (read: ISDN) links, because it


uses much CPU-resources on the concentrator



Вроде и аутентификацию прошел и конект банер показал , а счастья нет :(

В итоге получается что ipsec с psk работает отлично в ibm , а hybrid ipsec в scnsoft нет


Я знаю что у многих все работает , и работает как говорится испокон веков , но данный конкретный случай показывает что есть еще над чем поработать в плане поддержки оборудования испольующего cisco_ipsec

by Sergei Danilov (noreply@blogger.com) at 26.06.2009 15:48:46

ffblog - новости breys.ru

Групповое переименование файлов в Linux

Иногда требуется навести порядок среди накачанных торрентов или просто прибраться в домашней директории, в виндах люди используют Windows Commander - двухпанельный файловый менеджер, в Linux нет особой необходимости в этом, переместить и переименовать пару файлов можно с помощью nautilus, а вот разобрать такое барахло как доктор хаус или прослушка вручную очень утомительно. Но можно воспользоваться утилитой rename, эта утилита предназначена для группового переименования файлов и её мощь заключается в привычных всем регулярных выражениях с синтаксисом поточного редактора sed
Например в директории имеются файлы
Доктор Хаус/s04$ ls House.M.D.s04e01.rus.lostfilm.tv.ogv House.M.D.s04e02.rus.lostfilm.tv.ogv House.M.D.s04e03.rus.lostfilm.tv.ogv House.M.D.s04e04.rus.lostfilm.tv.ogv House.M.D.s04e05.rus.lostfilm.tv.ogv House.M.D.s04e06.rus.lostfilm.tv.ogv House.M.D.s04e07.rus.lostfilm.tv.ogv House.M.D.s04e08.rus.lostfilm.tv.ogv House.M.D.s04e09.rus.lostfilm.tv.ogv

by ffsdmad@jabber.ru ( ffsdmad ) at 26.06.2009 14:20:12

Верхом на Debian GNU Linux

Samsung YP-T10: конвертация видео

Если по жуткому стечению обстоятельств Вы тоже стали обладателем этого замечательного чудо-девайса (или ему подобного), то, вероятно, Вы столкнулись с проблемой пережатия видео в совместимый формат. Оказалось, ест этот плеер далеко не все что называется wmv и xvid, как обещано списком поддерживаемых форматов. Разумный компромисс цены и качества, но уважаемые производители, блин... Напишите же,

by Raa (noreply@blogger.com) at 26.06.2009 15:00:20

Ограничение использования процессора процессом

Иногда в процессе работы некоторый процесс отбирает все процессорное время процессора. Например, пережатие фильма в другой формат с помощью ffmpeg может сделать невозможным использование компьютера в течение нескольких часов. И nice не особо помогает. Особенно, если диск активно используется. В таком случае возникает желание просто отрезать кусок процессора этому жадному процессу, и больше не

by Raa (noreply@blogger.com) at 26.06.2009 14:14:32