Na de einddatum wellicht?quote:
Heb je eigenlijk al een idee op welke strings je de inzendingen gaat testen? Het zou namelijk best wel eens zo kunnen zijn dat een scriptje schrikt van een lege string, eentje met niet-ascii tekens, etcquote:Op woensdag 14 december 2005 23:39 schreef crisp het volgende:
JeRa is goed bezig zo te horen
Ik ben erg benieuwd, ik denk dat hier best wel wat leuke dingen uit gaan komen
Mja, ik zat vooral met dat formulier in gedachten ja. De drempel is dan wat lager om het alleen met user(/ascii)input te proberen ipv ook binaire dataquote:Op donderdag 15 december 2005 00:10 schreef crisp het volgende:
base64_encode is natuurlijk primair juist bedoelt om binaire data te transporteren, dus daar zal het zeker mee overweg moeten kunnen (hoewel dat via een form wat lastiger te testen is). Een lege string zou gewoon ook een lege string terug moeten geven
Oh die van mij zit prima in elkaarquote:Op donderdag 15 december 2005 11:59 schreef crisp het volgende:
als je algoritme goed in elkaar zit zou binaire input geen probleem mogen zijn
Zeg eens, je hebt de wedstrijd verzonnen terwijl je al een vrij geoptimaliseerde versie had liggen, en dan doe je nog mee ook?quote:Op vrijdag 16 december 2005 18:10 schreef crisp het volgende:
En de eerste inzending is binnen
Aangezien ik natuurlijk nu inspiratie op zou kunnen doen daaruit hou ik het bij mijn 195-er, hoewel het een heel andere approach is dan degene die ik heb genomen
Ik weet zeker dat jij er wel onder komtquote:Op zaterdag 17 december 2005 00:45 schreef JeRa het volgende:
[..]
Zeg eens, je hebt de wedstrijd verzonnen terwijl je al een vrij geoptimaliseerde versie had liggen, en dan doe je nog mee ook?
I'll try, maar ik moet nog eerst het probleem oplossen dat ie gvd één tekentje uit een subset van 256 tekentjes niet piktquote:Op zaterdag 17 december 2005 01:08 schreef crisp het volgende:
[..]
Ik weet zeker dat jij er wel onder komt
Ik had dus ook eerst een werkende versie die ik vervolgens ging optimaliserenquote:Op zaterdag 17 december 2005 13:49 schreef crisp het volgende:
Ik heb tot nog toe enkel getest met wat random strings - niet echt uitputtend yet.
De JS versie van mijn algoritme gebruik ik echter voor binaire strings en die heb ik meermalen met base64_encode() vergeleken.
Tja, maar ik doe in essentie iets verkeerd.quote:Op zaterdag 17 december 2005 21:31 schreef crisp het volgende:
Ziet er goed uit JeRa
Een aantal dingen heb je korter opgelost dan ik; als ik dat in mijn script zou integreren kom ik op 182(maar ik doe uiteraard voor spek en bonen mee)
1 2 3 4 5 | echo eval($code); //ik verwacht 2 - klopt echo preg_replace('//e', $code, ''); //ik verwacht 2 - maar krijg 1! |
1 2 3 4 5 6 7 8 9 10 | $b = "0"; if ($a) { echo '$a is!'; } if ($b) { echo '$b is!'; } |
1 2 3 | echo 'just great!'; } |
Leuk idee, ik heb alleen geen tijd om zoiets helemaal op te zetten en te ontwerpen. Ik kan wel een subdomein van gmta.nl leveren (golf.gmta.nl bijvoorbeeld) en alles wat je nodig zou kunnen hebben op een webserverquote:Op zondag 18 december 2005 11:44 schreef Chandler het volgende:
Waarom begint GOLF of jullie niet een globale website voor wedstrijden die een maand duren, dan heb je er wel 12 per jaar en kun je echt zien hoe divers mensen programmeren... (scripten).
Dat valt ook weer mee, denk ik zo. De ingrediënten:quote:Op zondag 18 december 2005 15:12 schreef SuperRembo het volgende:
Het is een hoop werk om te maken en om te onderhouden, terwijl een topic ook prima voldoet.
Dat valt wel mee hoor, ik begrijp de code primaquote:Op zondag 18 december 2005 19:12 schreef JeRa het volgende:
Zondag 18:00! Geweestik heb medelijden met Crisp en de onbegrijpelijke stukken code waar hij lappen tekst over moet schrijven
Tof.quote:Op zondag 18 december 2005 19:13 schreef crisp het volgende:
[..]
Dat valt wel mee hoor, ik begrijp de code prima
Ik ben al begonnen en zal het in de loop van de avond af proberen te maken
Zo, nog even wat dingen geregeld voor de aankomst van onze zoon overmorgen maar nu zit ik er echt voorquote:Op zondag 18 december 2005 19:19 schreef JeRa het volgende:
[..]
Tof.Wat vind je van het idee van Chandler trouwens?
1 |
1 |
1 |
1 |
1 |
1 2 3 4 5 6 7 8 9 | $t.='+/='; for($l=strlen($s=pos($_POST)."\0\0");$j<$l;) { $a=ord($s{$j++}); $b=ord($s{$j++}); $c=ord($s{$j++}); echo$t{$a>>2}.$t{$a<<4&48|$b>>4&15}.$t{$l-$j>1?$b<<2&60|$c>>6:64}.$t{$l-$j>2?$c&63:64}; } |
1 2 3 4 5 6 | $b.='0123456789+/'; $l=strlen($s=end($_POST)); while($i<$l)$x.=sprintf('%08b',ord($s{$i++})); while($j<8*$l)echo$b{bindec(sprintf('%0-6s',substr($x,-6+$j+=6,6)))}; while($l++%3>0)echo'='; |
1 2 3 4 5 6 7 8 | for($s=pos($_POST);($a=$s{$p})!='';) { $b=$p++*2%6; $c=ord($a)>>$b+2|($b?$d:0); $d=ord($a)<<4-$b&63;echo$t{$c}.($b>3?$t{$d}:''); } if($p%3)echo$t{$d}.'='.($b?'':'='); |
1 2 3 4 5 6 7 | $l=strlen($s=pos($_POST)),$d=array_merge(range(A,Z),range(a,z),range(0,9),'+','/','='); $i<$l||$b%8&&++$e; $o.=$d[$e>1?64:$r>>$b],$r&=(1<<$b)-1 ) $b+=$b<6?($r=$r<<8|ord($s[$i++]))?2:2:-6; echo$o; |
Ik gebruik geen '=' in mijn base, en als je die bij jouw methode weglaat is het aantal tekens ook 52quote:Zelfs mijn eigen methode was met 56 duidelijk nog langer dan noodzakelijk
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 | { $b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; $result = ''; $i = 0; $l = strlen($string); $bitpointer = 0; $remainder = 0; while ($i < $l) { if ($bitpointer < 6) { $remainder = $remainder << 8 | ord($string[$i++]); $bitpointer += 8; } $bitpointer -= 6; $result .= $b64[$remainder >> $bitpointer]; $remainder &= (1 << $bitpointer) - 1; } if ($bitpointer) { $result .= $b64[$remainder << 6 - $bitpointer]; $bitpointer -= 6; while ($bitpointer % 8) { $result .= '='; $bitpointer -= 6; } } return $result; } |
1 2 3 4 5 6 | $s=pos($_POST),$d=join(range(A,Z)).join(range(a,z)).'0123456789+/='; $s[$i]!=''||$b%8&&++$e; print$d[$e>1?64:$r>>$b],$r&=(1<<$b)-1 ) $b+=$b<6?($r=$r<<8|ord($s[$i++]))?2:2:-6; |
Die ,'=' had ik al buiten beschouwing gelatenquote:Op maandag 19 december 2005 00:06 schreef JeRa het volgende:
Ik gebruik geen '=' in mijn base, en als je die bij jouw methode weglaat is het aantal tekens ook 52
Nee, samen met die OR gaat dat niet goed...quote:edit2: $r=$r<<8; is hetzelfde als $r<<=8; mocht je dat nog niet in je kleinere versie hebben
Shame on me...quote:Op maandag 19 december 2005 00:43 schreef crisp het volgende:
Nee, samen met die OR gaat dat niet goed...
En jij bent ook zeker een winnaar, 176 tekens is wel schandalig kleinquote:Overigens mag iedereen zich wel een beetje winnaar noemen; ik had niet verwacht dat ik zulke goede inzendingen zou krijgen, en zelfs dat foutje van SuperRembo is nog te vergeven aangezien het volgens mij best wel eenvoudig te fixen is
Waar gebruik je die compressie voor? Is het ook ergens in actie te bewonderen?quote:Op maandag 19 december 2005 00:32 schreef crisp het volgende:
Het grote voordeel van deze aanpak is dat het eenvoudig is om te zetten naar een andere macht-van-2-basis zoals base32 of base128 (dat laatste gebruik ik bijvoorbeeld voor een javascript-compressie algoritme).
Een uitwerking van LZW/LZS met nog een aantal verbeteringen in javascript: http://therealcrisp.xs4all.nl/upload/jscompress.htmlquote:Op maandag 19 december 2005 07:43 schreef SuperRembo het volgende:
[..]
Waar gebruik je die compressie voor? Is het ook ergens in actie te bewonderen?
1 2 3 4 5 6 7 8 9 10 | 001 = 1 010 = 2 011 = 3 100 = 4 101 = 5 1100 = 6 1101 = 7 1110 = 8 1111 = 9 |
Een beetje voor de lol eigenlijk. Ik had LZW al geimplementeerd in mijn javascript GIF generator (WIP) en wou eens kijken of het ook bruikbaar zou zijn voor een javascript compressor/obfuscatorquote:Op maandag 19 december 2005 19:27 schreef SuperRembo het volgende:
Ziet er gaaf uit
Heb je dit gemaakt als studie, voor de lol of heb je ook een echte toepassing?
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |