Thread Serialize Algorithmus
(18 answers)
Opened by rosti at 2014-02-07 13:04 2014-02-08T13:05:46 pq Du und Gwen, Ihr beide versteht überhaupt nicht, worum es eigentlich geht. Vielleicht auch mein Versäumnis, also nochmal: Es geht NICHT darum, ein Sereal oder Storable verbessern zu wollen. Mir gehts lediglich darum, einen Algorithmus zu finden, der serverseitig mit Perl implementiert und clientseitig im DOM die Daten random-access verfügbar macht. Und so wie es aussieht, ist Storable oder Sereal für so eine, an sich einfache Sache, sehr wahrscheinlich überqualifiziert. So werde ich vorerst weder den Sereal noch den Storable-Algorithmus dafür einsetzen, für eine programmiertechnische Lösung, welche das EAV-Pattern vollkommen beschreibt. PS, Buchtipp: Niklaus Wirth, Algorithmen und Datenstrukturen (mit Modula-2) Insbesondere das Kapitel über Sequenzen. Das Buch ist von 1986 EDIT: Demo fast fertig http://rolfrost.de/video.html Clientseitig/JavaScript wird noch verbessert ;) Und auf die Seite kommt noch bischen Text... Serialize nach EAV Pattern (Entity Attribute Value) Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 sub control{ my $self = shift; my %data = ( stahl => { title => 'Wetzstahl', descr => 'Messer Wetzen mit dem Stahl', type => qq(video/webm), }, ikea => { title => 'Keramikstab', descr => 'Messer auf dem Keramikstab schleifen', type => qq(video/webm), }, ); my $fh = IO::File->new; $fh->open("$self->{FILEDIR}/stahl.webm", O_BINARY|O_RDONLY) or die $!; read($fh, $data{stahl}{body}, -s $fh); $fh->close; $fh->open("$self->{FILEDIR}/ikea.webm", O_BINARY|O_RDONLY) or die $!; read($fh, $data{ikea}{body}, -s $fh); $fh->close; # Serialize $self->{CONTENT} = ''; foreach my $ent( keys %data){ foreach my $att( keys %{$data{$ent}}){ my $val = $data{$ent}{$att}; $self->{CONTENT} .= pack("NNN", length($ent), length($att), length($val)).$ent.$att.$val; } } $self->header("Content-Type" => 'application/octet-stream'); } Last edited: 2014-02-08 20:01:42 +0100 (CET) |