abonnement Unibet Coolblue Bitvavo
pi_33078747
Overigens vind ik dit gedrag van PHP ietwat hinderlijk:

ord(chr(0)) === ord('')

Oftewel, de waarde van een binary null is hetzelfde als de waarde van een lege string.

Op 221 tekens nu trouwens. De riem wordt strak aangetrokken

[ Bericht 12% gewijzigd door JeRa op 14-12-2005 19:41:24 ]
pi_33086428
En wanneer komt de uitslag?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_33086627
quote:
Op woensdag 14 december 2005 22:36 schreef Chandler het volgende:
En wanneer komt de uitslag?
Na de einddatum wellicht?

Ik zit nu op 220 219 tekens

[ Bericht 8% gewijzigd door JeRa op 14-12-2005 22:53:38 ]
pi_33087688
Na wat gekut met bitshiften zit ik nu op 253.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  woensdag 14 december 2005 @ 23:39:47 #155
30487 crisp
Master of Pumpkins
pi_33088855
JeRa is goed bezig zo te horen
Ik ben erg benieuwd, ik denk dat hier best wel wat leuke dingen uit gaan komen
this space for rent
pi_33089128
quote:
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
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, etc (tot nu toe zit ik nog safe, gelukkig heb ik een kortere workaround gevonden voor het probleem met ord() zoals ik een paar posts hierboven had beschreven).

edit: handige eigenschap van de taal die PHP heet brengt mijn aantal nu naar 217. En nou stop ik voor vandaag de kleine versie van m'n script staat op 202 tekens.

edit2: spontane ingeving brengt me naar 214. Ooit moet ik leren stoppen.

[ Bericht 8% gewijzigd door JeRa op 14-12-2005 23:56:25 ]
  donderdag 15 december 2005 @ 00:10:24 #157
30487 crisp
Master of Pumpkins
pi_33089989
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
this space for rent
pi_33096401
quote:
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
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 data zit nu trouwens op 210 209 208 tekens, sinds gisteravond nog vier vijf zes tekentjes eraf kunnen halen. De kleine versie staat op 188 tekens.

[ Bericht 2% gewijzigd door JeRa op 15-12-2005 11:57:54 ]
  donderdag 15 december 2005 @ 11:59:04 #159
30487 crisp
Master of Pumpkins
pi_33098379
als je algoritme goed in elkaar zit zou binaire input geen probleem mogen zijn
this space for rent
pi_33098546
quote:
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
Oh die van mij zit prima in elkaar maar af en toe erger ik me dus aan het gedrag van PHP die ord() altijd iets laat teruggeven waardoor een lege string gelijk wordt gesteld aan chr(0). Dat hebben ze bij strpos() toch beter gedaan nu heb ik dat nu niet meer nodig, dus ik ga maar eens verder met het verkleinen van m'n script.
pi_33101645
Grmbl hij kon niet overweg met chr(48), ik denk dat een aantal mensen wel weet waarom. Weg 208 tekens
  vrijdag 16 december 2005 @ 15:19:41 #162
30487 crisp
Master of Pumpkins
pi_33135541
195
this space for rent
  vrijdag 16 december 2005 @ 18:10:17 #163
30487 crisp
Master of Pumpkins
pi_33140467
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
this space for rent
pi_33151084
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
Zeg eens, je hebt de wedstrijd verzonnen terwijl je al een vrij geoptimaliseerde versie had liggen, en dan doe je nog mee ook?
  zaterdag 17 december 2005 @ 01:08:41 #165
30487 crisp
Master of Pumpkins
pi_33151573
quote:
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?
Ik weet zeker dat jij er wel onder komt
this space for rent
pi_33152234
quote:
Op zaterdag 17 december 2005 01:08 schreef crisp het volgende:

[..]

Ik weet zeker dat jij er wel onder komt
I'll try, maar ik moet nog eerst het probleem oplossen dat ie gvd één tekentje uit een subset van 256 tekentjes niet pikt

Puur uit nieuwsgierigheid; ik test mijn methode door vele malen een random input string van willekeurige lengte en willekeurige inhoud (bytes van 0 t/m 255) te genereren en de output van mijn methode te vergelijken met de output van base64_encode(). Heb jij ook iets dergelijks gedaan of bewijs je je code? (ik deed het eerst met het laatste totdat ik erachter kwam dat PHP eigenlijk niet zo heel consequent is)
  zaterdag 17 december 2005 @ 13:49:22 #167
30487 crisp
Master of Pumpkins
pi_33159758
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.
this space for rent
pi_33160570
quote:
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.
Ik had dus ook eerst een werkende versie die ik vervolgens ging optimaliseren waarna bleek dat bepaalde optimalisaties ervoor zorgden dat het in het geheel niet meer werkten als ie een bepaald teken tegenkwam. Ben benieuwd naar de oplossingen morgen

Ik zit nu op 214 tekens.

[ Bericht 3% gewijzigd door JeRa op 17-12-2005 14:28:59 ]
  zaterdag 17 december 2005 @ 16:30:31 #169
30487 crisp
Master of Pumpkins
pi_33163504
Inmiddels ook getest met random binairy strings en mijn versie werkt prima. Ook de inzending die ik al heb gekregen is goedgekeurd
this space for rent
  zaterdag 17 december 2005 @ 21:31:48 #170
30487 crisp
Master of Pumpkins
pi_33172374
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)
this space for rent
pi_33172948
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)
Tja, maar ik doe in essentie iets verkeerd. heb me vannacht dood lopen staren op substituties, extracties, transponaties en deleties, maar ik zag niets meer
  zaterdag 17 december 2005 @ 23:18:21 #172
30487 crisp
Master of Pumpkins
pi_33176744
Ik heb uiteindelijk het probleem van de padding toch in de 'mainloop' weten te integreren, dat scheelt toch weer een byte of wat
this space for rent
pi_33177032
Ik kap er mee. 248 tekens ingestuurd.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_33177124
Ik heb nu dus wel twee belangrijke dingen in PHP geleerd. Dit werkt niet zoals ik zou verwachten:
1
2
3
4
5
$code = '$a = 1; return $a + 1;';

echo eval($code);    //ik verwacht 2 - klopt

echo preg_replace('//e', $code, '');    //ik verwacht 2 - maar krijg 1!

Het blijkt dat intern preg_replace() zend_string_eval() aanroept, die kennelijk de eerste de beste evaluatie retourneert. Dit in tegenstelling tot eval(), die de code écht als PHP code uitvoert. Een 'echo' kun je bij de preg_replace()-versie dan ook niet uitvoeren.

En dit:
1
2
3
4
5
6
7
8
9
10
$a = chr(0);
$b = "0";

if ($a) {
    echo '$a is!';
}

if ($b) {
    echo '$b is!';
}

Een "0", dat is toch hartstikke logisch, die wordt gecast naar de integer 0 en vervolgens ziet PHP dat als de conditie 'false' en dat terwijl een wérkelijke nul-waarde (chr(0)) gewoon wél wordt gepikt!

Oh, en nog die ene waar ik het al eerder over had:
1
2
3
if (ord(chr(0)) == ord('')) {
    echo 'just great!';
}

Oftewel, genoeg valkuilen.

[ Bericht 13% gewijzigd door JeRa op 17-12-2005 23:43:31 ]
  zondag 18 december 2005 @ 00:07:27 #175
30487 crisp
Master of Pumpkins
pi_33178687
idd ook de entry van SuperRembo binnen; weer een heel andere approach, maar dat was ook de opzet uiteraard
Dat wordt morgen een flinke lap uitleg schrijven
this space for rent
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')