Gdyby komuś nie chciał uruchomić się avast pod linuksem i zwracał komunikat "zły argument / invalid argument" to jako root trzeba wydać polecenie:
sysctl -w kernel.shmmax=100000000
Na stałe można to dopisać w pliku /etc/sysctl.conf
10 komentarzy

Skompilowałem sobie Firefoksa 3.6. OK, wszystko ładnie. Tylko dlaczego nowa karta otwiera się obok aktywnej karty, a nie, jak do tej pory, jako ostatnia? Hę??

Ja rozumiem, że to jest może "bardziej naturalne", jednakże mi nie podchodzi i nie jest to kwestia przyzwyczajenia.

Nikomu nie przyszło do głowy, aby zmieniając politykę otwierania kart zostawić możliwość zmiany tego w konfiguracji?

4 komentarze
Plik chap-secrets trzeba wcześniej odrobinkę przygotować - w jakimś edytorze, za pomocą funkcji "znajdź i zamień" należy pousuwać wszelkie dziwne znaki, np. tabulatory.
#!/bin/bash
LINII=$(cat chap-secrets |wc -l)
 
I=1
 
while [ $I != $LINII ]
do
LINIA=$(sed -n "$I"p chap-secrets)
 
echo "$LINIA"
 
	echo "$LINIA"|grep "^#"> /dev/null
	if [ $? -eq 0 ]; then
	echo $LINIA >> test.out
 
 
	else
 
	if [ -z "$LINIA" ]; then
		echo "pusta"
 
	else
	echo "$LINIA" |awk -F' ' '{ printf $1 } { print "\tCleartext-Password := \"" $3 "\"\n" "\t\tService-Type = Framed-User,\n\t\tFramed-Protocol = PPP,\n","\t\tFramed-IP-Address = " $4 ",\n"}' >> test.out
	fi
	fi
 
I="$(($I +1))"
 
done
 
Piękne nie jest, ale jak to mówią "works for me" :)
Dodaj komentarz

Jako, że adminuję małą siecią radiową, a nie lubię dowiadywać się o padzie któregoś nadajnika od jej użytkowników, wpadłem na pomysł, żeby do monitorowania i sygnalizacji wykorzystać serwerowy głośniczek, co jest dla mnie optymalnym rozwiązaniem, biorąc pod uwagę, że serwer stoi w zasięgu słuchu. Zresztą, zawsze można sobie głośnik podprowadzić kablem...
Skrypt można w łatwy sposób dostosować do tego, aby wykonywał inną akcję, np. wysyłał maile lub sms-y.

Do działania wymaga zainstalowanego programu fping i beep - do zdobycia w większości dystrybucji :)

Skrypt jaki jest każdy widzi, może komuś się przyda :)

#!/bin/bash
 
# Skrypt do monitorowania dostępności hosta w sieci w oparciu o PING (program fping) i sygnalizowania tego - w tym przypadku przez PC speaker.
# Uruchamia się go przez podanie właściwych zmiennych, np. ADRES1="192.168.100.132" INTERVAL_IF_ALIVE="30" DESC="MT2-most5G"  BEEP_PARAM="-r 4 -l 10" /etc/livecheck.sh
 
# zmienne:
#  ADRES1: adres sprawdzanego hosta
#  ADRES2: adres drugiego sprawdzanego hosta, z powyższym tworza parę -  skrypt "zabipa", gdy obydwa hosty nie odpowiedzą na ping
#  DESC: przyjazny opis, jeśli brak to w logu zostanie zapisany adres ADRES1
#  INTERVAL_IF_ALIVE: czas pomiędzy sprawdzeniami, jeśli ostatnie sprawdzenie dało wynik pozytywny
#  INTERVAL_IF_DEAD: czas pomiędzy sprawdzeniami, jeśli ostatnie sprawdzenie dało wynik negatywny (unreachable)
#  FPING_PARAM: parametry jakie można przekazać do programu fping, np. można wydłużyć czas sprawdzania poprzez FPING_PARAM="-t 5000"
#  BEEP_PARAM: parametry jakie można przekazać do programu beep, np. w celu zróznicowania wydawanych dzwięków.
#  LOG: plik, do którego są logowane "pady"
 
# ścieżka do programów na wszelki wypadek
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin" 
TAG_SENT_LOG="0"	# zmienna do ustalenia czy log został wcześniej zapisany
 
 
#sekcja sprawdzania zmiennych
if [ -x $ADRES1 ] 
then
ADRES1="127.0.0.1"
fi
 
if [ -x $ADRES1 ] && [ -x $ADRES2 ]
then
CASE="single"
else
CASE="double"
fi
 
if [ -x $DESC ]
then
DESC=$ADRES1
fi
 
 
if [ -x $LOG ]
then
LOG="/var/log/livecheck.log"
fi
 
if [ -x $INTERVAL_IF_ALIVE ]
then
INTERVAL_IF_ALIVE="300"
fi
 
if [ -x $INTERVAL_IF_DEAD ]
then
INTERVAL_IF_DEAD="10"
fi
 
# sekcja funkcji
dead() {
	if [ $TAG_SENT_LOG -eq 0 ]
	then 
	DATE="`date +%X\,\ %d\ %b`"
	echo "host nie odpowiedział - zaznaczono w logu"
	echo -e "$DATE: DEAD  - $DESC" >> $LOG	
	TAG_SENT_LOG="1"
	fi
INTERVAL=$INTERVAL_IF_DEAD
beep $BEEP_PARAM
 
return $INTERVAL
}
 
alive() {
	if [ $TAG_SENT_LOG -eq 1 ]
	then
	DATE="`date +%X\,\ %d\ %b`"
	echo "host odpowiedział - zaznaczono w logu"
	echo -e "$DATE: ALIVE - $DESC" >> $LOG
	TAG_SENT_LOG="0"
	fi
INTERVAL=$INTERVAL_IF_ALIVE
 
return $INTERVAL
}
 
case "$CASE" in
 
single)		# sekcja sprawdzania pojedynczego hosta
while true 	# nieskończona pętla
do
 
fping $ADRES1 $FPING_PARAM	 # fping działa w ten sposób, że wysyła ping do hosta; zwraca status wyjścia 0 przy pierwszej pozytywnej odpowiedzi. Jeśli host jest niedostępny, to robi 3 próby i zwraca status wyjścia 1
 
if [ $? -gt 0 ]		# sprawdzenie stanu wyjścia pinga
then
	dead	# wywołanie funkcji dead()
else
	alive	# wywołanie funkcji alive()
fi
 
sleep $INTERVAL
 
 
done
 
;;
 
double)		# sekcja sprawdzania dwóch hostów;  skrypt "zabipa", gdy obydwa hosty nie odpowiedzą na ping
while true 	# nieskończona pętla
do
 
fping $ADRES1 $FPING_PARAM
ADRES1_STATUS=$?
 
fping $ADRES2 $FPING_PARAM
ADRES2_STATUS=$?
 
if [ $ADRES1_STATUS -gt 0 ] && [ $ADRES2_STATUS -gt 0 ]
then
	dead	# wywołanie funkcji dead()
else
	alive	# wywołanie funkcji alive()
fi
 
sleep $INTERVAL
 
done
 
;;
esac
 
 

Przykład logów:

serwer ~ # tail -n 4 /var/log/livecheck.log
12:10:04, 18 kwi: DEAD  - MT1-most5G
12:12:14, 18 kwi: ALIVE - MT1-most5G
19:57:33, 18 kwi: DEAD  - MT2-most5G
20:05:26, 18 kwi: ALIVE - MT2-most5G

4 komentarze

Jeśli ktoś jeszcze nie zauważył, to informuję, że pojawiła się nowa wersja sterownika RadeonHD. Aktualnie nosi ona numerek 1.2.0 i wnosi:

  • obsługę dla chipsetu RV620, RV635 i R680
  • akcelerację 2D dla chipsetów R5xx
  • wsparcie dla trybów z przeplotem
  • i kilka innych, istotnych funkcji

Więcej informacji: http://wiki.x.org/wiki/radeonhd

Dodaj komentarz

Jakiś czas temu pisałem, że szukam rozwiązania dla pewnego problemu związanego z PPPoE. Sprawa sprowadza się do tego, że gdy zostanie zerwana sesja PPPoE (np. z powodu rozłączenia z nadajnikiem lub z powodu wyciągnięcia wtyczki sieciowej), a klient nawiąże drugie połączenie, w tablicy routingu serwera są dwie (lub więcej) trasy dotyczące tego samego "peera", np.

# ip route show
192.168.101.10 dev ppp0  proto kernel  scope link  src 192.168.101.254
192.168.101.10 dev ppp1  proto kernel  scope link  src 192.168.101.254

Stary wpis wisi dopóki koncentrator PPPoE nie zorientuje się, że link jest martwy - wtedy usuwa wpis, a net u klienta zaczyna działać. Jednakże chwilę to trwa, w zależności od konfiguracji koncentratora.

Rozwiązanie jest banalne; opierając się na powyższym przykładzie wystarczy tylko wpisać:

ip route del 192.168.101.10

No i dochodzimy do sedna. Wystarczyłoby tylko podpiąć to polecenie do pliku /etc/ppp/ip-up. Byłoby jednak zbyt pięknie, gdyby dało się to zrobić w takiej czystej postaci. Trzeba to opakować w pętlę, która usunie wszystkie zdublowane wpisy i zostawi ten jeden właściwy. Sztuczka polega na tym, że wpisy w tablicy routingu są kasowane "od góry", dzięki czemu ten ostatni jest tym działającym.

#!/bin/bash

# /etc/ppp/ip-up
# this is a script which is executed after connecting the ppp interface.
# look at man pppd for details

# the followings parameters are available:
# $1 = interface-name
# $2 = tty-device
# $3 = speed
# $4 = local-IP-address
# $5 = remote-IP-address
# $6 = ipparam

ROUTES=$(ip route|grep -w "$5"|wc -l)

while [ "$ROUTES" -gt 1 ]
do

ip route del $5

ROUTES=$(ip route|grep -w "$5"|wc -l)

done

W gruncie rzeczy to wszystko - powyższy skrypt sprawdza się doskonale na moim serwerze.

Właściwie tytuł wpisu powinien brzmieć "one session per IP", ponieważ opcja w Mikrotiku, o której wspominałem, opiera się na sprawdzaniu adresu MAC klienta, a nie jak w przypadku mojego skryptu, na adresie IP. Z tego powodu nie da się podpiąć kilku komputerów do MT poprzez AP (w trybie client), który maskuje adresy MAC (fixme?).

Powiązane wpisy:

Dodaj komentarz

Żeby zainstalować sobie KDE w wersji 4 w pod Gentoo trzeba skorzystać z overlay-a o nazwie kde-crazy.

W skrócie:

  • instalujemy najnowszy portage (v. 2.2)
  • emerge -va layman
  • w pliku /etc/make.conf dodajemy: source /usr/portage/local/layman/make.conf
  • layman -a kde-crazy
  • layman -S
  • w pliku /etc/portage/package.keywords dodajemy listę pakietów "odmaskowanych"
  • emerge -va @kdebase

Uwagi:

  • lepiej sobie właczyć flagę "kdeprefix", dzięki czemu nowe KDE trafi do /usr/kde/4.2 zamiast do głównego drzewa (jeśli mamy KDE 3.5 może nam to namieszać)
  • lepiej wyłączyć flagę "python" - u mnie kompilacja się wysypuje z powodu modułu "sip"
  • nowe KDE jest podzielone na "sety", więc jeśli chcemy zainstalować np. całe kdegraphics to wpisujemy 'emerge -va @kdegraphics
  • polski pakiet językowy nazywa się teraz "kde-l10n"

Źródło
7 komentarzy
Funkcja "znajdź i zamień":

Składnia:
:[zakres]s/szukane_wyrażenie/podstawiane_wyrażenie/[g]
gdzie:
zakres - oznacza zakres linii oddzielonych przecinkiem (np. 1,10); definiując zakres możemy użyć znaków: $ ostatnia linia, kropka "." to aktualna linia, % cały plik (np. .,$ oznacza od aktualnego miejsca do końca pliku)
g - zastąp globalnie (więcej niż raz w linii)

Przykład: :%s/br0/eth1/g - zamienia ciąg znaków br0 na eth1 w całym pliku

6 komentarzy

Uaktualniałem dzisiaj OpenSSH z wersji 4.3 do 4.5. Niestety po aktualizacji zaczęło dziać się źle - serwer zaczął odrzucać połączenia a w jego logach to:

Jul  7 22:27:42 mynet101 sshd[30488]: error: ssh_rsa_sign: EVP_get_digestbynid 64 failed
Jul  7 22:27:42 mynet101 sshd[30488]: fatal: mm_answer_sign: key_sign failed

Trochę pokombinowałem, a w końcu wpadłem na to, że może OpenSSL jest zbyt stary. Sprawdziłem i faktycznie - w systemie archaizm, bo jeszcze wersja 0.9.7i wisiała. Po zainstalowaniu aktualnej wersji tej biblioteki (0.9.8d) i przekompilowaniu pakietu OpenSSH wszystko zaczęło działać jak na leży.

Może komuś się to przyda :)

1 komentarz

Korzystam czasami z programu Skype i denerwująca dla mnie jest ciągła konieczność odłączania głośników i podłączania słuchawek. Wpadłem na pomysł, że skoro w Skajpie da się wybrać dedykowane urządzenie do obsługi dźwięku, to przecież mogę skorzystać z drugiej karty dźwiękowej i nie gimnastykować się za każdym razem, gdy ktoś zechce sobie ze mną pokonwersować, tym bardziej że trafienie do jednej z pięciu dziurek w słabych warunkach oświetleniowych do łatwych zadań nie należy ;)

Sytuacja u mnie (w moim kompie) wygląda tak: mam wbudowaną kartę marki nVidia,

00:04.0 Multimedia audio controller: nVidia Corporation CK804 AC'97 Audio Controller (rev a2)
którą do tej pory miałem wyłączoną w BIOS-ie, ponieważ korzystałem z innej karty na PCI
01:08.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 08)
gdyż w moim subiektywnym odczuciu ta karta generuje dźwięk lepszej jakości niż jakieś tam AC-97.

Niestety, po włączeniu karty wbudowanej automagicznie stała się ona domyślną kartą dźwiękową w systemie (snd-card-0), a założenie jest takie, że nVidia dla Skype, a Live! dla całej reszty. Trzeba to zmienić!

W tym momencie dochodzimy do pliku konfiguracyjnego '/etc/modules.d/alsa'. Jest to ten sam pliczek, w którym swoją konfigurację zapisuje narzędzie 'alsaconf'. Co ciekawe narzędzie to tak jakby nie potrafi zapisać ustawień dla dwóch kart - po prostu nadpisuje poprzednią konfigurację. Mniejsza z tym.

Googlając doszedłem do wniosku, że wystarczy poniższa konfiguracja, aby SB stał się domyślną kartą:

alias snd-card-0 snd-emu10k1
alias sound-slot-0 snd-card-0

alias snd-card-1 snd-intel8x0
alias sound-slot-1 snd-card-1
Niestety, tak się nie stało - nadal ta wbudowana miała numer 0. Okazało się, że trzeba jeszcze dodać opcję 'index':
options snd-emu10k1 index=0
options snd-intel8x0 index=1

I teraz wszystko działa tak jak chciałem - domyślną kartą (snd-card-0), do której są podłączone głośniki jest SoundBlaster, a dla Skype jest AC'97 (snd-card-1), do której są podłączone (już na stałe) słuchawki :)

10 komentarzy

Czasem zdarza się, że net przestaje działać, a w logach komunikat 'ip_conntrack: table full, dropping packet'. Wtedy przydaje się to:

echo "2400" > /proc/sys/net/ipv4/tcp_keepalive_time
echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout
echo "60" > /proc/sys/net/ipv4/netfilter/ip_conntrack_generic_timeout
echo "20" > /proc/sys/net/ipv4/netfilter/ip_conntrack_icmp_timeout
echo "60" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close_wait
echo "1" > /proc/sys/net/ipv4/igmp_max_memberships
echo "0" > /proc/sys/net/ipv4/tcp_window_scaling
echo "0" > /proc/sys/net/ipv4/tcp_sack
echo "32768-64000" > /proc/sys/net/ipv4/ip_local_port_range
echo "43200" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
echo "5" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close
echo "20" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_fin_wait
echo "30" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_last_ack
echo "20480" > /proc/sys/net/ipv4/ip_conntrack_max
echo "10240" > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
echo "40" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_time_wait
echo "30" > /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_timeout
echo "180" > /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_timeout_stream
echo "20" > /proc/sys/net/ipv4/ipfrag_time
echo "1280" > /proc/sys/net/ipv4/tcp_max_syn_backlog 
1 komentarz

Program do zmiany stylu dla aplikacji GTK nazywa się 'gtk-theme-switch'

Styl Qtcurve dla GTK nazywa się 'gtk-engines-qtcurve'

Dodaj komentarz

Chcąc mieć dostęp do swojego komputera musimy znać jego IP. Nic trudnego. Sprawa się komplikuje, gdy dostawca przydziela nam zmienne IP - jeśli zmiana następuje raz na miesiąc to pół biedy, można raz na miesiąc wkuć/zapisać sobie to IP i po problemie. Jednak w przypadku neo zmiana następuje co 24 godziny i tutaj ten sposób jest już mało przydatny.

Co możemy zrobić?
Ano możemy napisać sobie skrypt, który będzie co jakiś czas sprawdzał czy IP uległo zmianie i jeśli tak wyśle nam sms lub e-mail. Podoba wam się ten pomysł?
To był taki żart :)

Lepszym rozwiązaniem jest skorzystanie z usługi określanej mianem Dynamic DNS, w skrócie DDNS. Sposób w jaki to działa, jest w miarę przystępnie opisany na stronie firmy Dipol, dlatego daruję sobie odkrywanie koła ;)

Tak jakoś wyszło, że posiadając neostradę używam programu ez-ipupdate - chyba dlatego, że był to pierwszy program, który mi zadziałał :)

Instalacja:

emerge -va ez-ipupdate

These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild  N    ] net-dns/ez-ipupdate-3.0.11_beta8-r1  80 kB
Total size of downloads: 80 kB

Konfiguracja:

Ez-ipupdate posiada pokaźną liczbę przykładowych plików dla różnych serwisów oferujących usługę DDNS. Najłatwiej jest przekopiować sobie przykład i zmienić w nim poszczególne opcje; przykład dla DynDNS.org:

zcat /usr/share/doc/ez-ipupdate-3.0.11_beta8-r1/example-dyndns.conf.gz > /etc/ez-ipupdate.conf 

W pliku konfiguracyjnym należy wpisać swoją nazwę użytkownika, hasło, zarezerwowaną domenę i interfejs, który ma być monitorowany.
Oczywiście wcześniej trzeba się zarejestrować w serwisie DynDNS.org i aktywować odpowiednią usługę.

Pozostaje już tylko uruchomić naszego demona:

/etc/init.d/ez-ipupdate start
 * Starting ez-ipupdate for zibik.ath.cx on ppp0 ...    [ ok ]

Poleceniem ping możemy sprawdzić czy aktualizacja się powiodła:

ping -n zibik.ath.cx
PING zibik.ath.cx (83.28.71.129) 56(84) bytes of data.
64 bytes from 83.28.71.129: icmp_seq=1 ttl=57 time=30.9 ms
64 bytes from 83.28.71.129: icmp_seq=2 ttl=57 time=47.2 ms
64 bytes from 83.28.71.129: icmp_seq=3 ttl=57 time=37.8 ms
64 bytes from 83.28.71.129: icmp_seq=4 ttl=57 time=30.2 ms

--- zibik.ath.cx ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 30.210/36.575/47.278/6.855 ms
Jeśli aktualizacja adresu IP nie powiodła się warto zajrzeć do logów (/var/log/messages), żeby zobaczyć co jest nie tak.



Jeśli wszystko gra to warto sprawić, aby nasz programik uruchamiał się przy starcie:

rc-update add ez-ipupdate default

Wpis ten dedykuję wszystkim, którzy posiadają dostęp do Internetu ze zmiennym, publicznym IP i korzystają z Linuksa (tak, Przemek to do Ciebie :P )

4 komentarze
Niech mnie gęś kopnie! Przeglądając konfigurację jądra 2.6.14 znalazłem coś takiego:



No ładny postęp, ładny :) Czyżby dzięki temu dało się Neostradę odpalić na modemie USB?
9 komentarzy
Jest sobie taki programik do przedstawiania logów Squida w formie czytelnej strony HTML (przykład). W samym Squidzie trzeba wcześniej włączyć logowanie dostępu (tag: access_log). Jest to przydatne jeśli chcemy analizować ruch HTTP przechodzący przez nasze proxy.
Instalacja jest banalna - ściągamy ze strony domowej najnowszego Sarga, rozpakowujemy i
./configure --prefix=/usr #prefix jest opcjonalny
make
make install

potem

ln -s /usr/local/sarg/sarg.conf /etc/sarg.conf
ponieważ domyślnie program szuka pliku konfiguracyjnego w /etc/.
Następnie trzeba dopasować plik konfiguracyjny do swoich wymagań, czyli zdefiniować gdzie leżą logi Squida i gdzie mają być zapisywane pliki wynikowe. Poniżej opcje, które zmieniłem w pliki /etc/sarg.conf
language Polish
access_log /var/log/squid/access.log
output_dir /usr/local/sarg/reports
resolve_ip yes
useragent_log /var/log/squid/useragent.log
date_format e
overwrite_report yes

Jeśli coś jest niejasne to mogę wyjaśnić :)

4 komentarze
Życie było by prostsze, a ja zaoszczędziłbym godzinę życia, gdyby twórcy LinuxStat-a zrobili poprawną konfigurację aliasu katalogu dla Apache'a
#Include for LinuxStat (http://lstat.sf.net)
Alias /lstat/ "/usr/local/lstat/www/"
#for execute CGI files
Options Indexes ExecCGI
AddHandler cgi-script .cgi
Order allow,deny
Allow from all
AllowOverride AuthConfig Limit
Przez godzinę zastanawiałem się dlaczego ciągle dostaję FORBIDDEN zamiast pięknych statystyk systemowych. Wszystko dlatego, że difoltowo Apache gdy nie ma regułki dotyczącej dostępu do danego zasobu zakłada, że powinien on być zabroniony.
Oryginał wyglądał tak:
#Include for LinuxStat (http://lstat.sf.net)
Alias /lstat/ "/usr/local/lstat/www/"
#for execute CGI files
Options Indexes ExecCGI
AddHandler cgi-script .cgi
AllowOverride AuthConfig Limit

Prawda? Prawda!

3 komentarze
Znowu okradziono piwnicę w naszej klatce, dlatego nieśmiało zaproponowałem niektórym mieszkańcom instalację kamery monitorującej wejście i podłączenie jej do naszego osiedlowego serwera. Co prawda, nie wiedziałem za bardzo jak postawić taki serwer wideo, ale chwila googlania doprowadziła mnie do interesującego projektu ZoneMinder. Jak tylko skończę stawiać system to zaraz się biorę za jego testowanie :)
3 komentarze

Moje mini-projekty

Miniblog

OpenStreetMap komercyjnie

Czy ktoś mówił, że na darmowych mapach nie można zarobić? Coś w tym jest, ale czasami trafia się okazja - dostałem zamówionko na opracowanie mapy trasy turystycznej (do druku).

Nie ekscytować się - to groszowe sprawy, ale zawsze to miło.

1 komentarz

Halo Granie - wypitalać z tym

Orange włączył mi "halo granie" - czyli zastąpił standardowy sygnał oczekiwania na połączenie jakąś muzyczką... Co to, k... ma być? Czy ja prosiłem o to? Czy mądrym głowom w pomarańczy wydaje się, że każdy user POP-a to pryszczate dziecko, którego podniecają takie bajery?

Na szczęście da się to wyłączyć - trzeba zadzwonić na *3333, posłuchać lektora, a potem nacisnąć odpowiedni klawisz (na tę chwilę 4).

2 komentarze

Kolczyki

Uważam, że ci rodzice, którzy swoim dzieciom w wieku niemowlęcym przebijają uszy pod kolczyki, mają coś nie tak z głową.

12 komentarzy

LibreOffice beta2

Odnoszę wrażenie, że LibreOffice 3.3.0-beta2 uruchamia się jakby szybciej niż beta1 (od 3.2.1 również szybciej)

Dodaj komentarz

Wyszukiwarka

Linki

Ja na blip.pl

Powered by Jogger.PL and Tarski · Ported by alberht