mardi 28 février 2006
FireFox 3
Par Puyb, mardi 28 février 2006 à 00:22 :: General

Commença FireFox n'est pas facile d'accès ;-)
Splasho - The Superbrowser
mardi 28 février 2006
Par Puyb, mardi 28 février 2006 à 00:22 :: General

dimanche 26 février 2006
Par Puyb, dimanche 26 février 2006 à 19:45 :: General
Par Puyb, dimanche 26 février 2006 à 01:41 :: General
j'ai essayé FireFox, et je suis revenu en courant à AvantBrowser (base IE) sans hésiter un instant. Je n'arrive toujours pas à comprendre ce que tout le monde trouve à ForeFox... pour moi c'est buggué, et plusieurs sites ne passent pas bien. Alors c'est facile de dire du mal de IE, mais je n'ai pas moins de problèmes avec FireFox.Personnellement, mon browser de prédilection est Safari d'Apple...
Pour les navigateurs, il y a par exemple le test Acid2 qui permet de tester la conformité avec CSS2. Le but du jeu est d'afficher une page un peu compliqué... Normalement, on doit obtenir ça avec un navigateur entièrement compatible avec la norme CSS2. Pour l'instant, à ma connaissance, seul Safari réussi complètement ce test... Firefox donne un résultat satisfaisant, mais IE se plante misérablement (oui, je sais ce n’est pas flagrant)...samedi 25 février 2006
Par Puyb, samedi 25 février 2006 à 02:00 :: General
Par Puyb, samedi 25 février 2006 à 00:17 :: General
Dans un commentaire, Rnò a osé dire :Au fait, ta colonne de droite, quand tu veux tu la fais revenir à droite (au lieu d'être reléguée tout en bas)... gniarkgniark...
ip-du-rno - - [24/Feb/2006:21:03:11 +0100] "GET / HTTP/1.1" 200 51509 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Maxthon; SV1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50215)"
vendredi 24 février 2006
Par Puyb, vendredi 24 février 2006 à 23:49 :: General
Le principe de l'attaque est simple. MacOSX, contrairement à Windows, n'utilise pas (enfin, peu serait plus juste) sur le système des extensions de nom de fichier pour déterminer avec quel programme il doit ouvrir un fichier. Il utilise à la place des méta-données (données extérieures au fichier, comme un commentaire, les dates, ou même le nom du fichier ;-) ) pour stocker le type du fichier... Grâce a ce type, il peut connaître la ou les applications prenant en charge le fichier. De plus, on peut ordonner au système d'utiliser une application précise pour ouvrir un fichier. Dans ce cas, le chemin de l'application est stocké dans une méta-donnée... Cette manipulation est très simple, il suffit d'afficher les infos d'un fichier, puis de choisir un autre programme dans la section Ouvrir avec.Par Puyb, vendredi 24 février 2006 à 10:58 :: General
Voilà le paysage que j'ai vu par ma fenêtre en me levant ce matin... Oui, il neige en Normandie. Ce n'est pas exceptionnel, mais j'adore ça !Par Puyb, vendredi 24 février 2006 à 10:34 :: General
Voici une visite en photo du GooglePlex, le campus de Google...jeudi 23 février 2006
Par Puyb, jeudi 23 février 2006 à 23:40 :: General
mardi 21 février 2006
Par Puyb, mardi 21 février 2006 à 11:27 :: General
jeudi 16 février 2006
Par Puyb, jeudi 16 février 2006 à 12:00 :: General
dimanche 12 février 2006
Par Puyb, dimanche 12 février 2006 à 16:52 :: General
vendredi 10 février 2006
Par Puyb, vendredi 10 février 2006 à 14:36 :: General
import socket import sys # une petire class de serveur qui me simplifie un petit peu le travail class server_socket(socket.socket): def __init__(self, arg): if not type(arg)==tuple: self.socket=arg else: self.socket=socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.socket.bind(arg) self.socket.listen(1) def accept(self): s, addr=self.socket.accept() return server_socket(s), addr def readline(self): """receive and return a complete line""" line="" while 1: char = self.recv(1) if not char: if line=="": return False return line if char=="\n": return line if char!="\r": line += char def __getattr__(self, name): return getattr(self.socket, name) # une petite class de client.. la même que pour un serveur, sauf l'initialisation class client_socket(server_socket): def __init__(self, ip, port): self.socket=socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.socket.connect((ip,port)) # une class qui essaye de comprendre les réponses au requettes RTSP class basic_rtsp_socket(client_socket): def __init__(self, ip, port): client_socket.__init__(ip, port) self.cseq=1 def request(self, request): print "\n".join([">>> %s" % x for x in request.split("\n")]) self.send(request % self.cseq) self.cseq+=1 l=self.readline() print "<<< %s" % l (proto, code)=l.split(" ")[0:2] if proto[0:4]!="RTSP": raise "Error: not a rtsp response", l if code!="200": raise "Error: rtsp error", l l=self.readline() print "<<< %s" % l header={} while l!="" and l!=None: l2=l.split(": ") if len(l2)!=2: raise "Incorrect response", l header[l2[0]]=l2[1] l=self.readline() print "<<< %s" % l if l==None: raise "rtsp connection closed by foreign host", None data=None if "Content-length" in header.keys(): data=read(int(header["Content-length"])) return (header, data) # Début du code # on met en place un serveur http http_listen=server_socket(("", 8082)) http_conn, addr = http_listen.accept() print 'Connected by', addr data = http_conn.readline() if not data: raise "no data on http line", None # on prend la première ligne (request, url, proto)=data.split(" ")[0:3] if request!="GET": raise "Error : not a get request", data if proto[0:4]!="HTTP": raise "Error : not a http request", data # on attend la fin de la requette # soit une ligne vide # un peu barbare... mais je suis qur qu'il ren a dire d'interressant l=http_conn.readline() print "<<< %s" %l while l!="" and l!=None: l=http_conn.readline() print "<<< %s" % l # parle a ma main !!! if l==None: raise "http connection closed", None # on repond le header http_conn.send("""HTTP/1.0 200 OK Content-type: application/octet-stream Cache-Control: no-cache """) # on établie la connexion rtsp rtsp_session=client_socket("mafreebox.freebox.fr", 554) print "connected to the rtsp session" # dump du dialogue RTSP entre VLC et la freebox... (header, data)=rtsp_session.request("""OPTIONS rtsp://mafreebox.freebox.fr/freeboxtv%s RTSP/1.0 CSeq: %s User-Agent: rtsp2http v0.0.1 """ % (url, "%d")) (header, data)=rtsp_session.request("""SETUP rtsp://212.27.38.253/freeboxtv%s RTSP/1.0 CSeq: %s Transport: RTP/AVP;unicast;client_port=1662-1663 User-Agent: rtsp2http v0.0.1 """ % (url, "%d")) session=header["Session"] # on se prépare a recevoir les connexion UDP rtsp_data = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) rtsp_data.bind(("", 1662)) # Go, go, go (header, data)=rtsp_session.request("""PLAY rtsp://mafreebox.freebox.fr/freeboxtv%s RTSP/1.0 CSeq: %s Session: %s Range: npt=0.000- User-Agent: rtsp2http v0.0.1 """ % (url, "%d", session)) # on repete tout au client http ok=True while ok: data, addr=rtsp_data.recvfrom(1024) if addr[0]==socket.gethostbyname("mafreebox.freebox.fr"): try: http_conn.sendall(data) # il y a peut etre besoin d'une conversion... # mais j'espere pas... # a creuser except: ok=False # une execption... on arrete tout ! # une des connexion a été coupée, on ferme toutes les connexions... rtsp_session.request("""TEARDOWN rtsp://mafreebox.freebox.fr/freeboxtv%s RTSP/1.0 CSeq: %s Session: %s User-Agent: rtsp2http v0.0.1 """ % (url, "%d", session)) rtsp_session.close() rtsp_data.close() http_listen.close() http_conn.close()
Par Puyb, vendredi 10 février 2006 à 13:08 :: General
| Technologies : | MacOSX | Linux |
|---|---|---|
| Gestion des fenètres : | Quartz Extreme 2D | Xgl + Luminocity |
| Dessin vectoriel : | Quartz | Cairo |
| Accélération du traitement graphique (voir vidéo) : | Core Image (Core Video) | Rien |
mercredi 8 février 2006
Par Puyb, mercredi 8 février 2006 à 11:01 :: General
samedi 4 février 2006
Par Puyb, samedi 4 février 2006 à 17:54 :: General
Par Puyb, samedi 4 février 2006 à 00:32 :: General
A Noël dernier, Free a lancé une nouvelle fonctionnalité sur la Freebox. Elle peut désormais streamer les chaînes de TV directement sur le LAN.wget http://downloads.openwrt.org/whiterussian/rc4/whiterussian_rc4.tar.bz2 tar jxvf whiterussian_rc4.tar.bz2 wget http://perso.ens-lyon.fr/benoit.boissinot/rtsp.diff cd openwrt patch -p0 <../rtsp.diff make menuconfigJ'ai activé, notamment, les modules iptables supplémentaires (iptables-extra)... Ensuite, j'ai lancé la compilation :
makeLe Makefile se charge alors télécharger, patcher, compiler, packager tout... C'est magique...
ipkg install kmod-ipt-nat-extra modprobe iptables-conntrack-rtsp modprobe iptables-nat-rtsp echo "ip_conntrack_rtsp" >> /etc/modules echo "ip_conntrack_ftp" >> /etc/modules echo "ip_nat_rtsp" >> /etc/modules echo "ip_nat_ftp" >> /etc/modules
vendredi 3 février 2006
Par Puyb, vendredi 3 février 2006 à 14:54 :: General