udalo sie. zle. nie udalo sie, tylko znalazlem, co robilem zle… jak zwykle glupota.

ustawialem ladnie, globalnie handler dla suphp:

AddHandler x-suphp-cgi .cgi .py .pl

ale jakos nie zmienialo uid’u procesu… do celow testowych stworzylem sobie pliczek wyswietlajacy mi takie dane jak uid/gid procesu etc:

#!/usr/bin/env python
import os
print ‘uid: %s
euid: %s
gid: %s
egid: %s’ % (os.getuid(), os.geteuid(), os.getgid(), os.getegid())

i co bym nie zrobil, to ciagle wyswietlal mi sie uid procesu apache… nakombinowalem sie przez kilka godzin jak glupi. na drugi dzien, niechcacy, luknelem w virtualke swojej domeny, a tam co ?

AddHandler cgi-script .cgi .py .pl

myslalem ze sie rozplacze w pierwszej chwili ;) gdybym choc sprobowal odpalic tego skrypta z innego konta, to bym zaskoczyl co jest nie tak, a przynajmniej do konfiga zajrzal, ale nie, bo po co… po co mi wiedziec, ze z glupoty w swoim vhoscie nadpisywalem wczesniej ustawiony, globalnie, handler dla plikow .py, i dlatego nic mi nie dziala :/

po usunieciu feralnej linijki wszystko ruszylo. dziala slicznie, suphp w nowej wersji ma takie rzeczy, ktore bardzo mi sie podobaja, jak np. wlasnie mozliwosc odpalania skryptow nie tylko .php (czyli funkcjonalnosc suexec, ale prostsze w konfiguracji), a przy okazji pozwala na aplikowanie innego php.ini dla kazdego vhosta na przyklad. suuuuper :)


na pclpython ktos zapodal niezly link: www.pythonchallenge.com

niezla zabawa ;) wlasnie dotarlem do czwartego levelu, i teraz python sprawdza dla mnie etap ‘linkedlist’ ;) pokazuja mi sie rzedy sprawdzanych przez niego cyferek - niby banal, ale wymusilo na mnie zajrzenie do dokumentacji urrlib2. do tego troche re dla rozpoznania stringow, sys dla zrobienia pewnej interakcji i ulatwienia… ciekawe czy dlugo mu zajmie dojscie do konca ‘listy’ ;)

trzeba przynac ze ktos mial fajny pomysl :) ciekawe jak daleko w tym challange’u dotre ;)

heh. cwaniaczki:
‘Yes. Divide by two and keep going.’

no nic, ch4.py <number> i idzie dalej :P

and done :P fajna zabawa… ;)


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…


czasem rezygnuje z vima na rzecz eric3 dla programow w pythonie. dzis sie niezle przejechalem (w sumie drugi raz, ale za pierwszym razem stwierdzilem ze trzeba dac mu druga szanse): w pewnym momencie ot tak sobie powstal jakis zajebisty wyciek pamieci, ze tylko widzialem w gkrellmie jak mi znika ram (768) i swap(300) do zera z predkoscia zblizona do pierwszej kosmicznej… i po chwili ledwo mial sile mi kursor myszki przerysowywac w miare przesuwania po erkanie, nie mowiac o przelaczeniu pulpitu czy skillowaniu programu… chujnia. twardy reset :(

eric3 na razie idzie w odstawke na rzecz gvima. w sumie dobrze. nie bede musial sie rozmieniac na rozne edytory… :)

nie wiem jak to sie stalo ze zauwazylem to dopiero teraz: po prawej stronie lewego shifta (;) )mam dodatkowy przycisk oznaczony jako backslash/more(pipe), ale generuje mi znaki < i > (ten drugi to z shiftem ;) )

podmapowalem je sobie od razu pod to co jest na nich narysowane, bo stwierdzilem ze to moze byc bardziej przydatne:

keycode 94 = backslash bar

jako ze po tej operacji przestaly dzialac mi < i > znajdujace sie nad , i . ;) to poprawic tez trzeba bylo i to:

keycode 59 = comma less
keycode 60 = period greater

jak na razie smiga ;)

przy okazji sprawdzilem cala klawirke czy jeszcze jakies buttony mi sie nie zapodzialy…


nowy modul w pythonie 2.4 mi sie podoba. prosta rzecz, a cieszy. cholernie ulatwia odpalanie zewnetrznych programow. zawsze mialem problemy z os.popen[23]? tak samo jak z wszelkimi os.exec.*? jakies takie niewygodne. a commands.get(status|output|statusoutput) wszystko ulatwiaja :))) miodzio

inna fajna rzecza, ktora wyszla przy ostatnim watku dotyczacym xml na pclp, to celementtree. fajnie sie spisuje przy parsowaniu xml :) szybciutki… musze jeszcze przy nim posiedziec, bo dopiero go poznaje, ale mam wrazenie ze zaprzyjaznie sie z nim na dluzej :))) na razie tylko tyle: mniam :)


% host python.org | cut -f4 -d’ ‘ | tr . + | bc
666

jakies więcej pytania ?

żródło


nie lubie swiat. kiedys lubilem pod tym wzgledem, ze mozna chociaz nie isc do szkoly/pracy. od kiedy mam taka prace, do ktorej przyjemnie jest pojsc (w sensie: robic to co tam robie, bo w biurze jest cholernie zimno, nie chce sie tam siedziec ;) ), to nie mam nawet tego powodu zeby swieta lubic.

teraz jestem padniety. wczoraj siedzialem do 6.30, spalem do 12, dzis polozylem sie (ciezko mowic o kladzeniu sie, przenioslem sie na fotel na 3h) po 6, wstalem (dobry zart…) troszke ponad 3h pozniej. muli mnie strasznie, ale kanapa zajeta przez siostre, wyro zajete przez szwagra… ;)

z niewyspania jest mi cholernie zimno. goraca herbatka za chwile osiagnie stan w ktorym da sie ja juz pic, moze mnie rozgrzeje…

pythcontact siem rozwija jak na razie, zostaja dodane nowe metody, nowe funkcje. nie wszystko jeszcze dziala super, ale to szczegol. po to sie nad tym pracuje, zeby zaczelo byc super ;) teraz musze dokonczyc obsluge pol do edycji zawartosci - zamienianie niebezpiecznych znakow na encje, baskclaszowanie cudzyslowow i takie tam. niby banal, ale musze sie zastanowic jak ma to wygladac ;)

nie robie prawie sprawdzania zawartosci pol. jedyne co to po prostu niektore pola sa obowiazkowe. w polach na daty jest obowiazkowy format - jesli chce zrobic przypominanie o iektorych datach, to latwiej przechowywac to w mysql jako ktorys z typow pol do dat wlasnie. w sumie chyba nigdzie wiecej nie sprawdzam poprawnosci pola. jak ktos w polu na email wpisze glupoty, to jego problem… moze pozniej dorobie pare sprawdzen w javaskrypcie, whatever. podejrzewam ze bedzie sie tylko pojawiac javaskryptowe okienko z butonami czy ma sie mimo wszystko, pomimo niepoprawnych danych, dodac do bazy. skoro ktos tak chce to niech tak ma…

nastepnym krokiem bedzie dodanie obslugi wielu userow :) no i do tego hasla… :)

no, koniec pisania - herbata osiagnela stan przydatnosci do spozycia ;)


poczatkowa fascynacja sqlobject przerodzila sie w moze nie niechec, co rezygnacje. jakos jednak, jak to mi pisal jz, jest ograniczone. zdecydowalem sie na adodb, ktore juz chyba zostanie.

jako wprawke pisze sobie ksiazke adresowa. nazwalem to pythcontact, i niedlugo albo wystawie to na jakies berlios/sf (oczywiscie jako gpl ;) ), albo pojawi sie tutaj (link chwilowo nieaktywny).

ale jesli juz to sf.net, bo na berlios nie doszukalem sie svn, a za cvs jakos nie przepadam :) choc najwiekszym prawdopodobienstwem bedzie pozostanie u siebie ;) tu mam i svn, i wszystko inne co mi potrzeba. a nie przewiduje popularnosci az tak duzej, zeby serwer mial mi pasc ;)

podstawowe zalozenia projektu:

  • nieograniczona ilosc wpisow/osob
  • nieograniczona ilosc:
    • numerow telefonow/faxow
    • adresow (domowych/biurowych/whatever)
    • adresow email
    • adresow www
    • komunikatorow
    • dat (urodzin/imienin/whatever)
    • notatek

do kazdego elementu (poza notatkami) dodatkowy opis etc.

i to co powyzsze juz jest i dziala.

a w przyszlosci… nie wiem czy bede to tak rozwijal, ale mam plany rozbudowy, tak zeby mozna z tego bylo zrobic cos w stylu terminarza, na glownej zeby przypominalo o wszystkich datach etc, moze powiadamianie na :jabber:a lub maila. chcialbym tez zeby z jednej bazy moglo korzystac dowolna ilosc uzytkownikow, i zeby kazdy widzial tylko swoje wpisy. chwilowo tak nie jest, na at chwile z jednej bazy/jednego procesu cherrypy moze korzystac tylko jeden user (w sensie: moze korzystac wielu, ale wszyscy beda widzieli/edytowali te same wpisy)

no i oczywiscie mozliwosc logowania :)

wymagania (na ta chwile):