na rankingu mowia, ze w polsce druga co do popularnosci przegladarka jest firefox! dla mnie bomba:

  1. miejsce: msie 6.0
  2. miejsce: firefox 1.x
  3. miejsce: msie 5.x

tak wyglada czolowka browserow. juz nie jest mowa nawet o gecko jako takim (czyli lacznie netscape, mozilla i firefox etc), ale dam firefox 1.x jako taki. super super super. juz szlag mnie czasem trafia przy zbyt wielu kombinacjach dla tego badziewia, zeby potrafilo poprawnie wyrenderowac co bardziej skompilkowane strony.

pryz odrobinie szczescia, firefox 1.x w przyszlym tygodniu przekroczy 10% rynku. mysle ze jest to cos, co warto by jakos uczcic. pojde i sie upije ;)
nie mowiac juz o tym, ze ff jako taki juz ma 10% (rowniutkie ;) ), a gecko prawie 12% :) booomba :)

przy statsach zagranicznych jeszcze lepiej to wyglada : ff 1.x ma 10%, gecko 12,6% a ff jako taki – 10,5% :)


banal. ale przy okazji wyszedl niezly bezsens…

# grep mysql /etc/tcpd/hosts.allow
mysqld: ALL: allow
# 

i smiga. ale czy rzeczywiscie brak wpisu (a w tym wypadku – niewlasciwy wpis) powinien powodowac segfault mysqla przy probie polaczenia ? dla mnie bzdura. niech nie pozwoli sie polaczyc, niech wywali jakis msg, ale kuzwa, nie segfault !!!

w sumie drugi raz sie przejechalem, ale nie do konca udalo mi sie wszystko powiazac…

pamietajac wlasnie ten poprzedni raz, oidp to bylo z serwerem jabbera, dodalem wpis do /etc/tcpd/hosts.allow:

mysql: ALL: allow

niestety, proces nazywa sie mysqld, a mi sie cos pozajaczkowalo. i tcpwrappers nie puszcal polaczen. ale kuzwa, dalej uwazam za maksymalna bzdure to, ze wali po oczach segfaultem zamiast zwyczajnie zabronic sie polaczyc. czy chocby siakis mesg… ech :/

dzieki ci, boze, za strace‘a… ;)


na serwerze jest sobie mysql 4.0.x. bodajze x = 24 obecnie (wczesniej bylo 20, ten sam problem), ale moge krzanic a sprawdzac mi sie nie chce. google niewiele sensownego mowia o moim problemie, wiec nieco szlag mnie trafia.
gdzie lezy problem?

musze uruchomic mysql tak, zeby mozna sie bylo zalogowac zdalnie do niego. no wiec zahaszowalem w konfigu skip-network.
ustawilem grzecznie odpowiednie bind-address. probowalem rowniez bez tego, ale nic to nie zmienia.

zrestartowalem mysql.

dodalem odpowiednie uprawnienia dla usera login@%.

zrobilem flush-privileges.

wszystko ladnie smiga, proba polaczenia z mysql z podanym parametrem -h:

% mysql -h adres -u user -p

po chwili mam mesga, ze polaczenie zerwane w trakcie wykonywania query czy jakos podobnie, po zalogowaniu na serwer (dobrze ze mam klucze, bo bez mysql na serwer normalnie nie da sie zalogowac…) service mysql status pokazuje ze nie dziala ale podsystem zablokowany (zginal tak szynko ze z /var/lock/subsys nie usunal locka).

w logach:

/usr/sbin/mysqld: gotowe do polaczenia PLD Linux Distribution MySQL RPM
mysqld got signal 11;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help diagnose
the problem, but since we have already crashed, something is definitely wrong
and this may fail.

key_buffer_size=8388608
read_buffer_size=131072
max_used_connections=0
max_connections=100
threads_connected=0
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 225791 K
bytes of memory
Hope that’s ok; if not, decrease some variables in the equation.

moge sobie dowolnie mieszac zmiennymi, ilosc potrzebnej mu pamieci w msg spada do jakichs 60mb etc (chwilowo na serwerze zostalo tylko 512mb ramu, ale to przejsciowe), ale ten mesg sie dalej pokazuje wraz z wykladaniem sie mysql przy probioe polaczenia zdalnego.

proba polaczenia z serwera, ale z podanym parametrem -h adres powoduje dokladnie to samo. tylko dzialania na sockecie sa ok :/ nic nie czaje. no nic, moze zaraz na pisze na listy pld, moze cos pomoga (probowalem juz nawet mielic mysql samemu etc, i dalej to samo :///).

a tutaj mamy rozwiazanie problemu


jakis czas temu walczylem z instalacja pld na amd64. po jakims czasie mi sie udalo, a rezultaty walki spisalem i wrzucilem na stara strone PLD. strona sie zmienila, opis poszedl sie bujac.. dzis tenze opis odzyskalem, wiec go wklejam tutaj.

uwaga: ponizsze notatki pochodza sprzed paru ladnych miesiecy, w sumie ca pol roku, wiec niektore kwestie etc moga byc nieprawdziwe/nieaktualne.

Przejdź do reszty tego wpisu »


to tak w skrocie. od dwoch godzin walcze z prymitywem. po prostu kurwa z prymitywem. prosty skrypt w pythonie, wykonujace banalne kurwa query, wsadzajace do mysql jeden pojedynczy kurwa rekord. to samo query wykonane z poziomu phpmyadmina dziala. z konsolki mysqlowej – dziala. ale ze skryptu nie. czemu ? nie wiem. kurwa, jak bozie kocham, nie wiem. 25 innych skrypcikow, ktore rowniez wykonuja po jednym/dwa query, dziala jak trzeba. wszystko smiga. ale ten jeden nie chce. kurwa, niech chociaz wyswietli czemu nie chce! ale nie, po co. teoretycznie nie ma zadnego bledu!

zadnego!!! nie rzuca zadnym wyjatkiem, kod powrotu ze skryptu zerowy, wszystko wporzo. ale rekord w bazie sie nie pojawia.

ciekakurwawostka:

jest autoincrement id. id wynosi 114. po dodaniu tego wlasnie zapytania poprzez phpmyadmin. sprobuje to samo zrobic z poziomu skryptu: oczywiscie nie dziala, bo po co. ale teraz wykonuje jeszcze_raz to samo zapytanie z poziomu phpmyadmin, rekord oczywiscie sie pjawia… ale z id 116 ! kurwa… czary i magia. zaciagnelem najswiezsza wersje mysqldb, i wszystko co tylko moglo miec na to wplyw, i ni huhu nie dziala. wtf ?

dobra, madafaka. juz wiem mniej wiecej co jest grane. jebane mysqldb nie dziala z tabelami w innodb. aaaarrrghhh…. ciekawe co google mi na to powiedza…

hm, notki na stronie mysqldb twierdza, ze nie powinno byc problemow… jebukurwadu.

dymam to. jutro moze na news zajrze zobacze co mi powiedza…

update

doszedlem o co chodzi. innodb obsluguje transakcje, no wiec powinno to wygladac tak:

conn.BeginTrans()
conn.Execute(query)
conn.CommitTrans()

niestety, powyzszy kod wywala mi:

Traceback (most recent call last):
  File "./add_db_dns_record.py", line 40, in ?
    conn.BeginTrans()
  File "/usr/share/python2.4/site-packages/adodb_mysql.py", line 43, in BeginTrans
    self._conn.begin()
AttributeError: 'Connection' object has no attribute 'begin'

no i dupa blada. zglosilem bugreporta, zobaczymy czy i co mi napisza…


gtf

wylicza modeline. w zyciu bym sie nie domyslil, ze takie narzedzie jest dostarczane wraz z xorg ;) a tak zawsze grzebalem w necie odnosnie podobnych kalkulatorow… to narzedzie jest bardzo proste w uzyciu. zalozmy, ze chcemy osiagnac rozdzielczosc 1280×800, i odswiezanie 100hz. no to jedziemy:

% gtf 1280 800 100
# 1280x800 @ 100.00 Hz (GTF) hsync: 84.80 kHz; pclk: 147.89 MHz
Modeline "1280x800_100.00" 147.89 1280 1376 1512 1744 800 801 804 848 -HSync +Vsync

w zahaszowanej linijce mamy parametry jakie musi spelniac monitor zeby mogl wyswietlic dana rozdzielczosc. szczegoly w instrukcji obslugi monitora. w drugiej linijce, zaczynajacej sie od slowa modeline jest sama modeline. nalezy ja umiescic w pliku /etc/X11/xorg.conf w sekcji screen.

http://www.x.org/

aespipe

wczytuje plik ze standardowego wejscia, i na standardowe wyjscie zapodaje plik w postaci zaszyfrowanej. podstawowe uzycie:

aespipe < plik_zwykly >plik_zaszyfrowany

przyklad:

% aespipe < a > b
Password:
% cat b; echo
cÅ®]ŽŘďá§UÚÁuwÅąÅ 
%

przydatne do robienia zaszyfrowanych backupow i wszelkich innej masci szyfrowania plikow.

http://loop-aes.sourceforge.net/

agrep
odmiana grep. jedna z zalet jest mozliwosc podania separatora rekordow. domyslnie jest to znak nowej linii (takze w tradycyjnym grepie, tylko ze tu nie ma mozliwosci zmiany go), ale mozna za pomoca opcji -d tenze separator zmienic. inna z zalet jest mozliwosc podania wzorca w osobnym pliku. reszta w manie ;)
acl

nie, nie chodzi o listy kontroli dostepu ;) acl to advanced color logs. male ale przydatne czasem, jesli trzeba odnalezc cos w gaszczu logow. ten skrypt perla w bardzo mily dla oka sposob koloruje logi, dzieki czemu znacznie latwiej jest cos tam zrozumiec ;)

najprostsze uzycie:

acl < /var/log/messages
% tail  -f /var/log/syslog | acl

co spowoduje wsywietlanie na biezaco pokolorowanych logow pojawiajacych sie stopniowo w /var/log/syslog

http://linuxrc.net/linuxrc.org/projects/acl/


juz wiem, ze warto bylo sie przesiasc z dovecota na courier’a. jest nieco mniej zasobozerny, i znacznie lepiej wspolpracuje z outlookiem/thunderbirdem w zakresie imap (pop3 bez roznicy):

  1. nie mieszaja im sie katalogi (jeden tworzyl jedne, drugi drugie i sie nie mogli dogadac – a webmail wprowadzal dodatkowe zamieszanie)
  2. po doinstalowaniu i skonfigurowaniu fam’a na biezaco uaktualnia obecnosc (lub nie) maili (przy jednocznesnych operacjach via program/webmail), etc.

nie wiem tylko jak bedzie gdy ktos rownoczesnie przez pop3 i przez imap bedzie walczyc… cos w dokumentacji czytalem ze ktores ma wiekszy priorytet, ale nie pamietam tera. tak czy inaczej, warto bylo. oczywiscie pozwala na autoryzacje z bazy :) co samo w sobie jest niezwykle wygodne mile i przyjemne ;)


zeby w pld zapewnic obsluge autoryzacji z bazy, trzeba przebudowac speca z odpowiednimi bcondami, ponieaaz domyslnie buduje sie z wylaczona obsluga baz danych. na szczescie zyczliwa dusza nalozyla mojego patcha, i teraz z cvs mozna pobrac poprawiona wersje speca:

% cvs get SPECS/proftpd.spec

w specu poprawilem tez quoty – bo byly jakies stare, zdezaktualizowane quoty (a raczej bcondy do nich), i nie dzialaly. w kazdym badz razie ja swojego proftpd zbudowalem tak:

% ./builder proftpd --without ipv6 --with mysql --with quotamysql

jeszcze tylko zabraklo mi libwrap-devel wiec:

# pd -i libwrap-devel

(pd to u mnie alias do poldka)

teraz juz pakiet zbudowal sie poprawnie, poprawnie sie zainstalowal. czas na konfiguracje:

#pam jest zupelnie nieprzydatny tutaj
AuthPAM off
AuthPAMAuthoritative off
#autoryzowac ma _tylko_ z bazy. jesli ktos chce takze z kont systemowych (ja nie chcialem),
#to mozna dodac do ponizszej linijki mod_auth_unix.c - lista dostepnych
#modulow wyswietli sie po wydaniu komendy proftpd -l
AuthOrder mod_sql.c
#i teraz najciekawsze:
SQLAuthenticate users groups usersetfast groupsetfast
SQLAuthTypes Encrypt
SQLConnectInfo baza@host login haslo PERSESSION
SQLGroupInfo groups groupname gid members
SQLHomedirOnDemand off
SQLMinUserGID 1000
SQLMinUserUID 500
SQLUserInfo users login password uid gid home shell
SQLUserWhereClause "(date_expire IS NULL OR date_expire > NOW()) AND status='enabled'"

szczegoly odnosnie powyzszych (i nie tylko) pol mozna znalezc na tej stronie

i smiga :) tylko musialem wylaczyc na razie te konfigi, bo jeszcze bazy danych nie mam uzupelnionej ;) dzis to bede musial zmienic, bo chce wywalic dovecota z serwera. a jesli wrzuce obecny konfig courier’a, to nie bedzie poczta mi dzialac bez uzupelnionej bazy… a skoro uzupelnie baze to bede mogl wrzucic powyzszy konfig proftpd… etc etc – takie koleczko male ;)