QR Code

Veröffentlicht heute in Blogosphere von muhgatus

Nahmd,

QR-Codes sind schon was tolles und nun auch hier zu bewundern. Hier gibt es die Software für das Handy, um sie zu lesen!

Klocast

Veröffentlicht am 30. Dezember 2009 in Blogosphere von muhgatus

Nahmd,

und immernoch gibt es den Sanitärpodcast der Firma Kuhfuss. Unglaublich ;)

wsgi SPNEGO middleware

Veröffentlicht am 28. Dezember 2009 in Computer,Programmiersprachen,Python von muhgatus

Nahmd,

hier eine SPNEGO wsgi middleware

  1. from base64 import b64decode
  2. import kerberos, commands
  3.  
  4. class KerberosAuth:
  5.     def __init__(self, wrapped, realm, service=‘HTTP’):
  6.         self.realm=realm
  7.         self.service=service
  8.         self.wrapped=wrapped
  9.  
  10.     def __call__(self, environ, start_response):
  11.         def error():
  12.             start_response(’500 Error’, [
  13.                 (‘content-type’, ‘text/plain’),
  14.             ])
  15.             return [‘Internal error’]
  16.         def noauth():
  17.             start_response(’401 Unauthorized’, [
  18.                 (‘content-type’, ‘text/plain’),
  19.                 (‘WWW-Authenticate’,‘Negotiate’),
  20.                 (‘WWW-Authenticate’,‘Basic realm="Secured area"’)
  21.             ])
  22.             return [‘No auth’]
  23.  
  24.  
  25.         if ‘HTTP_AUTHORIZATION’ not in environ:
  26.             return noauth()
  27.  
  28.         type, authstr = environ[‘HTTP_AUTHORIZATION’].split(‘ ‘, 1)
  29.  
  30.         if type == ‘Negotiate’:
  31.             result, context = kerberos.authGSSServerInit(self.service)
  32.             if result != 1:
  33.                 return error()
  34.  
  35.             gssstring=
  36.             r=kerberos.authGSSServerStep(context,authstr)
  37.             if r == 1:
  38.                 gssstring=kerberos.authGSSServerResponse(context)
  39.             else:
  40.                 return noauth()
  41.             def new_start_response(status, headers):
  42.                 start_response(
  43.                     status,
  44.                     [
  45.                         (‘WWW-Authenticate’,‘Negotiate %s’ % gssstring)
  46.                     ]+headers
  47.                 )
  48.  
  49.             environ[‘REMOTE_USER’]=kerberos.authGSSServerUserName(context)
  50.             kerberos.authGSSServerClean(context)
  51.         elif type == ‘Basic’:
  52.             username, password = b64decode(authstr).split(‘:’,1)
  53.             try:
  54.                 kerberos.checkPassword(username, password, self.service, self.realm)
  55.             except:
  56.                 return noauth()
  57.             new_start_response=start_response
  58.             environ[‘REMOTE_USER’]=username
  59.         return self.wrapped(environ, new_start_response)
  60.  
  61. application=KerberosAuth(myApplication, ‘REALM.MY.DOMAIN.COM’)

ebenfalls bei active state veröffentlicht.

Firefox vs CrossSiteScripting

Veröffentlicht am 16. Dezember 2009 in Computer,PHP,Programmiersprachen von muhgatus

Nahmd,

ich hatte ein Problem mit einem Test, da Firefox seit der Version 3.5 etwas gegen CrossSiteScripting tut. Es wird nun nachgeschaut, ob das der Server auch wirklich haben will.

Folgendes musste ich in meine xmlrpc.php ergänzen, damit es wieder funktioniert..

  1. header(‘Access-Control-Allow-Origin: *’, true);
  2. header(‘Access-Control-Allow-Methods: POST, GET, OPTIONS’, true);
  3. header(‘Access-Control-Max-Age: 1728000′, true);
  4.  
  5. if ( $_SERVER['REQUEST_METHOD'] == "OPTIONS") {
  6.   ob_clean();
  7.   header(‘Content-Type: text/plain’, true);
  8.   exit;
  9. }

Mehr zu diesem Thema gibts von mozilla und vom W3C.

Javascript XMLRPC client

Veröffentlicht am 16. Dezember 2009 in Computer,Programmiersprachen von muhgatus

Nahmd,

ich habe mir einen Javascript XMLRPC Client geschrieben, da alle anderen unter WebOS nicht funktioniert haben.

Die Ergebnisse werden als Objektbaum zurückgegeben.

Benötigt werden folgende Bibliotheken:

Beispiel:

  1. var func = function (data) {
  2.     $(‘result’).innerHTML="Result:"+Object.toJSON(data);
  3. }
  4.  
  5. var request = new XMLRPC("http://blog.myhomepage.org/xmlrpc.php", "wp.getUsersBlogs", ["username","password"], func);
  6.  

Image auto resize (quick & dirty)

Veröffentlicht am 14. Dezember 2009 in Unzugeordnet von muhgatus

Nahmd,

durch das Bild von einem Weihnachtsbaum im letzten Beitrag, kam mir die Idee, das man doch ganz einfach alle Bilder auf die richtige Größe anpassen könnte.

Gedacht, getan:

[SRC] Image auto resizer

Frohes Fest :)

Ho, ho, 0×40

Veröffentlicht am 13. Dezember 2009 in Berlin,In Deutschland von muhgatus

Nahmd,

da mal wieder Weihnachten ist, hier das dazu verknüpfte Objekt Baum.

Weihnachtsbaum
Frohes Fest und guten Rutsch