Reference: |
Linux /
LinuxTagTntnetmit c++ web applikationen erstellen. es ist keine apache module oder aehnliches. der content wird grundsaetzlich mit templates erstellt (ecpp) c++ klassen und bibs uneingeschraenkt nutzbar standalone webengine multithreaded also skalierbar persistente app automatische http komprimierung was oft vergessen wird also http komprimierung nicht genutzt. interessant fuer embedded apps. ssl unterstuetzung (gnutls, openssl) optimierter c++ code tests mit apache bench zeigen sehr gute performance featuresautomatisches sessionmanagement session request application und threadscope fuer beliebige c++ objekte mit automaatischen locking request parameter werden geparst file upload cookies, i18n (bestimmte worter werden durch tags eingepackt und so internationalisiert) grafiken und andere binaer daten koennen mit compiliert werden. compiler oder interpreter auf dem server nicht notwendig fehler behandlung durch exceptions portabel durch die verwendung von standard c++ (linux,unix) logging automatisches html-encoding: steuerung falls tags enthalten sind ob diese ausgegeben werden oder nicht. savepoint: nehme ausgabe im fehlerfall bis zu einem sicheren punkt zurueck FreeWRTlinux distribution fuer embedded system http://www.freewrt.org/ paketmanagement ueber ipkg systeme mit 8mb flash konfiguration ueber kommandozeile cross compile anwendungsgebiete router vpn endpoint musikserver telefonanalage ... (alles was linux hergibt) portierung von tntnet auf freewrtstart am linux tag in chemnitz 4.03.2007 uClibc++ buggy
viele patches auch an upstream
tnt laeuft portierung ist noch nicht endgueltig abgeschlossen tntnet schnell auch mit schwacher cpu bis zu 300 request pro sec plaene fuer konfigurationsoberflaeche:modular,einfach erweiterbar durch definition von konfigurationsvariablen oder plugins wie funktioniert tntnettntnet bekommt http-request und switcht das zu urlmapper nach MapUrl ^ /blah$ comp@lib und landet bei konponente ecpp komponente also template compiler beispielvi mycomp.ecpp make scp mylib.so admin@myrouter ssh admin @myrouter webconfig.ecpp html code mit c++ code linuxtag.ecpp <%args> die tags <$ ...$> ausgabe c++ ausdrucks
<{...}> c++ verarbeitungsblock
<%args>...</%args> formular parameter
<%pre>...</%pre>
<& component >
<#...#> kommentar
kontaktwww.tntnet.org www.freewrt.org tommi@tntnet.org irc:freenode #tntnet, #freewrt skalieren einer web anwendung mit amazon s3 und ec2dienst von amazon fuer 15 cent pro gigabyte pro traffic. bspl rails plugin def publi... AWS::S3::S3Object.url_for(...) upload file_upload = FileUpload.new(prams[..]) file_upload.save download file_upload = FileUpload.find(prams..)
file_upload.public_s3_url ....
file_upload.value ...
zeitgesteuest mit cron: 0 8 * * * /home/.../start_additional_instances.sh 0 18 * * * /home/.../stop.sh On-Demand Computing mit EC2 bspl wenn cpu bestimmte zeit ueber 70% ist rufe script auf
tail /etc/monitrc check system example.com if cpuusage(user) ... cpazon/elastic rails sind plugins WeoCEO ist daemon der auf jeder virt maschone bei amazon installiert werden muss wenn ich EC2 nutzen will dieser frage die stastische daten des clusters ab und startet oder stoppt cluster nodes.
weiterer ec2 helfer ist Rightscale zum spielen ohne bei amazon registriert zu sein muss da anmeldung bei amazon mit kreditkarte noetig ist.
resourcen aws.amazon.com server stehen in seattle, soll bald aber auch in irland eroeffnet wird. java implementation von amazon selber. diese werden intern bei amazon genutzt. S3 sichern drei parallel gespeicherte daten zu. zw 2 bis 8 minuten dauert es bis der neue service dann verfuegbar ist. zufaellige ip wird zugewiesen aus dem internen netz von amazon. EC" tools ec2-describe-images ec2-run-instances ami-asdf -k $RSA_KEY ssh root@domU-12-11-11-11.usma1.compute.amazon.com echo instanz beenden ec2-terminate-instaces i-10a2222 JSON RPC
json-rpc1.0 - requestmethod string mit aufzurufendem funktionsname
params array mit zu übergebenden parametern
id eindeutige id
json-rpc 1.0 notificationsidentisch zum request nur ohne antwort. fällt in 1.1 weg 1.0 responseresult freies ergebnisobjekt, null im fehlerfall
error Null oder eigendes
id probleme im alltagencoding parser geht von utf-8 aus, also probleme bei iso-8859-15 oder -1 http fehler live coding (grundgeruest eines dienstes) : json.js <script src="json.js" /> var xhttp=new XMLHttpRequest; var request=new Object; request.method='foo:bar'; request.id=Date.time(); request.params=new Array(); request.params.push('hallo welt'); // in perl form var request={method:foo::bar', id:Date.time(), params:['hallo welt']} // in dieser weise kommt object serialisiert an xhttp.open('POST', 'http://localhost/foo', false); xhttp.onreadystatechange=handler; xhttp.send(request.toJSONString()); function handler() { if ( xhttp.readyState!=4 ) { return; } try { var result=xhttp.responseText.parseJSON(); if(result.result) { alert('hat geklappt!'); } else { throw result.error; } } catch (e) { alert('Exception:'+e); } } json.php <?php
$request=json_decode(file_get_contents('php://stdin') );
$result=new StdClass;
$result->id=$request->id;
$rc=doSomething($request->method, $request->params);
if(!$rc) {
$result->result=NULL; $result->error='Fehlgeschlagen';
} else {
$result->result='super';
$result->error=NULL;
}
header('content-type: text/json');
echo json_encode($result);
?>
Absichern der Eingabe und Ausgabe gegen XSS. Developing mobile application with Open Mobile IS by Philippe Delrieu (Ubikis)
GPE Phone by Nils Faerber (kernel concepts GbR)
gpe, nokia and others to solve problems like memory requirements for mobile phones
authentication
gpe-phonepanel is desktop headline where status information is being shown, in the center gpe-applauncher, at the bottom softkey area. the softkey are associated to the hardware buttons of the phone which are very different from model to model.
fragebsiDiplomarbeit möglich und tanja anschreiben. problem wäre personal resourcen zur betreuung. Frage Gnome PortierungVortrag Messwerte sammeln
evtl. rfid sachen?
open hardware
Vortrag OpenPCD by Kushal Das
demos
make # no external libs needed cd utils ./librfid-tool -s scanning for RFID token ... ./librfid-lockunlock kate firmware / main_dumbreader.c A python implementation for the library is under work. and not ready yet. #!/usr/bin/env python # python-test.py import openpcd res = openpcd.open() The lib is calles librfid. Wiki is ready for giving help. Build your own firmware. Program librfid-lockunlock.c as sample what is possible with the device. 13 MHZ frequency. A sniffer is available. www.openpcd.org OpenBeacon Project is also possible with active rfid tokens. http://www.openbeacon.org/ |