Игорь Пашев

Jul. 23rd, 2011

03:52 pm - НОД на Гоу

/*
 SYNOPSIS:

 With GCC >= 4.6:
 # gccgo gcd.go -o gcd-go
 # ./gcd-go 11 22 33 44 121

 With Google Go (6g for amd64, 8g for x86):
 # 6g -o gcd-go.o  gcd.go
 # 6l -o gcd-go-6g gcd-go.o
 # ./gcd-go-6g 11 22 33 44 121

 GCC makes dynamically linked binary,
 but Google Go - statically linked

*/

package main

// Both Google Go and GCC issue an error "imported and not used",
// if imported and not used :-)
import "fmt"
import "flag"
import "strconv"

func gcd2 (a, b uint) uint {
    if b == 0 {
        return a
    }
    /* 6g issues an error "function ends without a return statement",
       if we use if ... {... return} else {... return}.
       But GCC doesn't.
    */
    return gcd2(b, a % b)
}

func gcdn (ns []uint) uint {
    var r uint // zero by default
    for i := range ns {
        r = gcd2(r, ns[i])
    }
    return r
}

func main() {
    flag.Parse() // without this 6g will give flag.NArg() = 0 next (WTF?)
    n := flag.NArg()
    if n > 0 {
        ns := make([]uint, n) // We have garbage collector!

        // Or: for i := range ns, since range of ns is equal to flag.NArg()
        for i := 0; i < n; i++ {
            // Drop the second return value (error code):
            ns[i], _ = strconv.Atoui(flag.Arg(i))
        }

        g  := gcdn(ns)
        fmt.Printf("%v\n", g)
    }
}


https://github.com/ip1981/ebuilds/tree/master/dev-lang/golang

Tags: , , , ,
(Оставить комментарий)

Jul. 2nd, 2011

11:17 pm - PAR-Packer для Генты

https://github.com/ip1981/ebuilds/tree/master/dev-perl/PAR-Packer

Tags: , , ,
(Оставить комментарий)

Apr. 29th, 2011

11:47 pm - -rwxr-xr-x

Оказывается, в Дебиане библиотеки «неисполняемые»,
а в Генте — «исполняемые», как и в Солярисе.

Гента:
-rwxr-xr-x 1 root root 154K Янв 11 20:47 /usr/lib/libexpat.so.1.5.2

Дебиан:
-rw-r--r-- 1 root root 162K Дек 30 2009 /usr/lib/libexpat.so.1.5.2


Дела...

Tags: , ,
(4 комментария | Оставить комментарий)

Apr. 17th, 2011

10:05 pm

Если что, kbuild надо собирать строго локально:

FEATURES='-distcc' emerge -v dev-util/kbuild

Иначе сборка вываливается с сообщением:

kmk: Leaving directory `/var/tmp/portage/dev-util/kbuild-0.1.5-r1/work/kBuild-0.1.5'
kmk: Entering directory `/var/tmp/portage/dev-util/kbuild-0.1.5-r1/work/kBuild-0.1.5'
kBuild: Pass - Build Programs
kBuild: Pass - Libraries
kBuild: Compiling kDep - /var/tmp/portage/dev-util/kbuild-0.1.5-r1/work/kBuild-0.1.5/src/lib/kDep.c
i686-pc-linux-gnu-gcc: не задан аргумент ключа '-o'
distcc[20217] ERROR: compile (null) on localhost failed
kmk: *** [/var/tmp/portage/dev-util/kbuild-0.1.5-r1/work/kBuild-0.1.5/out/linux.x86/release/obj/kDep/kDep.o] Error 1
The failing command:
@gcc -c -O2 -g -O3 -m32 -I/var/tmp/portage/dev-util/kbuild-0.1.5-r1/work/kBuild-0.1.5/src/lib -DKBUILD_VERSION_MAJOR=0 -DKBUILD_VERSION_MINOR=1 -DKBUILD_VERSION_PATCH=98 -DKBUILD_OS_LINUX -DKBUILD_ARCH_X86 -DNDEBUG -Wp,-MD,/var/tmp/portage/dev-util/kbuild-0.1.5-r1/work/kBuild-0.1.5/out/linux.x86/release/obj/kDep/kDep.o.dep -Wp,-MT,/var/tmp/portage/dev-util/kbuild-0.1.5-r1/work/kBuild-0.1.5/out/linux.x86/release/obj/kDep/kDep.o -Wp,-MP -o /var/tmp/portage/dev-util/kbuild-0.1.5-r1/work/kBuild-0.1.5/out/linux.x86/release/obj/kDep/kDep.o /var/tmp/portage/dev-util/kbuild-0.1.5-r1/work/kBuild-0.1.5/src/lib/kDep.c
kmk: Leaving directory `/var/tmp/portage/dev-util/kbuild-0.1.5-r1/work/kBuild-0.1.5'
make: *** [/var/tmp/portage/dev-util/kbuild-0.1.5-r1/work/kBuild-0.1.5/out/linux.x86/release/bootstrap/ts-stage2-build] Ошибка 2
kBuild/env.sh: info: rc=2: make -f bootstrap.gmk AUTORECONF=true


VirtualBox, кстати, тоже.

Tags: , ,
(2 комментария | Оставить комментарий)

Mar. 31st, 2011

01:51 am - Ekiga 3.3.0, которая просто работает

https://github.com/ip1981/ebuilds

Ekiga 3.3.0, PTlib 2.8.4, Opal 3.8.4.

Оно звонит!

UPD: http://git.gnome.org/browse/ekiga/commit/?id=e18062934

Tags: , , , ,
(Оставить комментарий)

Mar. 1st, 2011

06:56 am - Карты OpenStreetMap на Garmin eTrex Venture HC

Дано: Garmin eTrex Venture HC с интерфейсом USB,
но как USB Storage не работает.
(http://www.garmin.ru/portativnye-turisticheskie-navigatory-cat/etrex-venture-hc.html)

Надо: Загрузить в него новую карту.
Разумеется, свободную.

Условия: Только свободные программы.


Решение:

  1. Нужна карта OpenStreetMap (файл *.osm), её можно
    экспортировать с сайт OpenStreetMap.org, но только
    небольшого размера. Подготовить карту большого размера
    можно в JOSM, загружая по кусочкам, а потом сохранив
    в *.osm всё целиком.
    (http://josm.openstreetmap.de/)

  2. Файл *.osm надо перегнать в формат Garmin.
    Это можно сделать с помощью программы mkgmap.
    Но эта программа не может работать с большими файлами *.osm
    (скорее, с большими кусками в них). Для подготовки
    *.osm надо использовать программу splitter.
    # java -Xmx2000m -jar splitter-r164/splitter.jar map.osm
    # mkgmap --tdbfile --codepage=1251 --charset=cp1251 63240001.osm.gz
    mkgmap есть в портежах Gentoo, а splitter — нету, поэтому так по разному
    запускаются, хотя обе на Java.
    http://www.mkgmap.org.uk/page/main

  3. Загрузить карту в навигатор можно с помощью программы
    QLandKarteGT (версии 0.18.1, а не 1.1.0, потому что её нужны
    драйвера для Garmin, а они на момент написания были только для 0.18.1,
    это портеж sci-geosciences/qlandkartegt-garmindev).
    QLandKarte (без GT) - мертва, но пока тоже есть в портежах.
    http://www.qlandkarte.org/. В настройках QLandKarteGT
    надо указать тип навигатора, модель и кодировку (cp1251).

  4. Старая карта в навигаторе стирается.
    То есть добавлять карты нельзя, нужно делать большую и грузить целиком.



http://wiki.openstreetmap.org/wiki/OSM_Map_On_Garmin

Tags: , , ,
(1 комментарий | Оставить комментарий)

Jan. 24th, 2011

10:15 pm - Ебилд дляOpenAxiom

https://github.com/ip1981/ebuilds/tree/master/sci-mathematics/open-axiom

Tags: , ,
(Оставить комментарий)

Jan. 16th, 2011

06:25 pm - YA Synaptics touchpad

По-моему вопреки ману, при шлёпанье по моему тачпаду
происходит событие TapButton2, а не TapButton1.
Это удалось выяснить с помощью xev.


Алсо, ещё один конфиг синаптика (Asus X80L):

# cat /etc/X11/xorg.conf.d/50-synaptics.conf
Section "InputClass"
        Identifier "touchpad"
        Driver "synaptics"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Option "SHMConfig" "true"
        Option "TapButton1" "1"
        Option "TapButton2" "1"
        Option "TapButton3" "1"
        Option "FastTaps" "1"
        Option "FingerLow" "10"
        Option "FingerHigh" "13"
        Option "MaxSpeed" "2"
        Option "MaxDoubleTapTime" "30"
EndSection


man synaptics:
Option "TapButton1" "integer"
              Which mouse button is reported on a non-corner one-finger tap.  Set to 0 to disable. Property: "Synaptics Tap Action"

Option "TapButton2" "integer"
              Which mouse button is reported on a non-corner two-finger tap.  Set to 0 to disable. Property: "Synaptics Tap Action"

Option "TapButton3" "integer"
              Which mouse button is reported on a non-corner three-finger tap.  Set to 0 to disable. Property: "Synaptics Tap Action"



P. S. Я дважды гентушник, с распределённой кросс-компиляцией (amd64 -> i686)

Tags: , , ,
(Оставить комментарий)

Jan. 10th, 2011

12:53 am - Первый ебилд

https://github.com/ip1981/ebuilds/blob/master/sci-libs/cuba/cuba-2.1.ebuild

Жду критики.

Tags: , ,
(1 комментарий | Оставить комментарий)

Jan. 8th, 2011

12:46 pm - Я - гентушник

Снёс Слаку, поставил Генту. Более семи лет я шёл к своему счатью :-)

Генту — это правильный Дебиан.

Tags: , ,
(3 комментария | Оставить комментарий)

Jan. 5th, 2011

05:48 pm

О, нет!..

Следующей моей системой будет не Дебиан ;-)

Альбом: Screenshots

Tags: , ,
(Оставить комментарий)