Micro servidor web amb Python

Tot i que el llenguatge més utilitzat (o en el que pensa gairebé tothom) quan parla de pàgines web és PHP, amb Python també es poden fer pàgines web :D

Un dels grans què del PHP és que engegues el servidor (Apache normalment), poses un fitxer php en algun lloc accessible i boom! ja tens la pàgina funcionant al navegador.
No se si existeix alguna cosa semblant, però amb Python encara ho pots fer més senzill (a mode de test i MAI en producció quedi clar):

from wsgiref.simple_server import make_server

def simple_app(environ, start_response):
    status = '200 OK'
    response_headers = [('Content-type','text/plain')]
    start_response(status, response_headers)
    return ['Hello world!\n']

# run the server
port = 8000
httpd = make_server('', port, simple_app)
print "Serving on port %i..." % port
httpd.serve_forever()

 

Amb el codi d’aquí sobre en teniu prou d’anar canviant el que hi ha dintre la funció per tenir ja alguna cosa que es mostri en el navegador :)

Bones notícies pels traductors del GNOME!

logotip del GNOME LoveJa feia temps que s’estava coent el canvi i avui finalment s’ha fet (nota oficial) :D

Si ja us agradava les estadístiques del Damned-lies ara encara us agradarà més (si sou traductor) ja que s’ha integrat tota les funcions de gestió de traduccions del Vertimus a aquest primer.

Què vol dir tot plegat? Doncs que a partir d’ara ja podrem assignar-nos mòduls, marcar-los com a que esteu treballant amb ell (exemple al Totem i els detalls), que ja està traduït, que el revisor ja l’ha revisat i per tant està llest per pujar o simplement posar-hi un comentari (hi ha alguna errada o que l’estil no és correcta).

Tot això ha estat possible gràcies a que tant un com l’altre estaven escrits en Python (el Vertimus es va reescriure de PHP a Python de fet) i que seguidament es van integrar amb l’entorn de treball Django.

Tot  aquest treball l’han fet entre en Claude (col·laborador en la traducció del GNOME al Francès i membre del GTP) i l’Stéphane Raimbault (desenvolupador principal del Vertimus), evidentment si sabeu Python i Django esteu més que convidats a col·laborar-hi.

El següent gran pas del desenvolupament del Damned-lies serà integrar-hi el Transifex, un sistema perquè des de la pròpia pàgina web del Damned-lies es puguin fer les confirmacions (commits en anglès) de les traduccions i per tant tot el procés de traducció (que no la traducció en sí) ja estiguin integrats en una sola eina (estadístiques + gestió de la traducció + pujar els fitxers).

Però les bones notícies pels traductors no acaben aquí! En Leonardo Fontenelle ha fet un petit repás a com està el Gtranslator 2.0 i la veritat és que promet MOLT!

Traductors del GNOMEstay tuned!

múltiples constructors en php

doncs es veu que no es pot, així de ras i curt

la idea dels constructors múltiples és que quan construeixes un objecte, el puguis construir a partir de diferents (o cap valors), per exemple es podria construir l’objecte triangle a partir de la longitud de dos costats i un angle, o a partir de les tres longituds, etc etc

pel que ser, com a mínim el c++ ho permet i pel cas concret que estic fent a la feina m’aniria de perles poder-ho utilitzar

al final ho he solucionat passant un array amb les dades que necessito a l’únic constructor que et permet el php i dins d’aquest cridar una o altre funció segons les dades que conté l’array :)

uffffffffff

per si no us en havíeu adonat el bloc havia estat inaccessible des de feia com a mínim 24h

i d’aquestes 24h me n’h estat com a mínim 14 per trobar-hi l’entrellat, ja que la sol·lució ni molt menys era òbvia…

els fets:

després de remenar molt el bloc ahir tot funcionava perfectament

tot mirant els logs de l’apache (a saber perquè em va picar mirar-los) vaig veure que un vhost que havia creat feia molt temps donava problemes, així que vaig esborrar el fitxer de la configuració del vhost i vaig reiniciar l’apache, que com que em va donar problemes i no es va iniciar del tot correctament vaig decidir reiniciar el servidor

a partir de reiniciar ja no funcionava el bloc! però el més estrany de tot, el phpmyadmin que tinc instal·lat tampoc funcionava i li faltaven MOLTS fitxers (no era el cas del wordpress), després de barallar-me molt amb el bloc, vaig copiar de nou els fitxers del phpmyadmin i aquest ja funcionava bé, però el bloc quan entraves a la seva pàgina principal no mostrava res, ni títol, ni missatges d’error, res de res, el codi font era zero, entrant-hi amb el links2 (navegador web per terminal) donava un error de socket

per acabar d’embolicar que fa fort si entrava a la secció d’administració del bloc SÍ que funcionava aquest, però tornant a la pàgina inicial o qualsevol visualització de les entrades escrites tornava una pàgina amb blanc

més problemes, si baixava al portàtil el .zip del wordpress des del navegador web o ho feia amb el wget des del servidor donaven un md5sum diferent! cada vegada que entrava a la portada a al log d’errors de l’apache sortia

[Fri Mar 16 17:52:48 2007] [notice] child pid 6278 exit signal Segmentation fault (11)

havia provat de tot, canviar la base de dades del wordpress, canviar-li el path diverses vegades, fer una instal·lació completament nova del wordpress, recompilar l’apache i el php (el mysql no podia ser perquè no em donava cap problema) i res

buscant al google informació sobre pàgines en blanc del wordpress o als fòrums de gentoo sobre el wordpress tampoc donaven cap resultat

buscar l’error de l’apache m’enviava a una pàgina de la documentació de l’apache que em deia que recompilés l’apache amb no se quines opcions i fes una depuració complicadíssima

al bugzilla del gentoo tan per l’apache com pel php no hi havia res que s’assemblés al meu problema i tan el php com l’apache són estables en la versió que els tinc, però un informe d’error referint-se al mediawiki que no funcionava bé l’última versió estable del php però que l’anterior (el canvi de php5.2 a php5.1) ho arreglava, així que he recompilat una versió menys nova del php i …

voilà, de moment funciona!!