Gathering of Tweakers

Quicksearch
quote:
Zoijar schreef op dinsdag 12 augustus 2008 @ 13:05:
[...]

niet bijzonder veel :)

Maar ik gebruik dat soort contructies ook regelmatig om even iets uit te zetten.
Herformulering van de vraag dan maar: Wat is die constructie hier dan? :P

specs | Kater? Eerst water, de rest komt later

Berichten: 467
Reg. datum: 13 december 2005

Die 'AND FALSE' zorgt ervoor dat de conditie voor dat if statement altijd een 'false' oplevert, en dat de conditional statements nooit uitgevoerd worden (bijvoorbeeld om de else statements te testen). Persoonlijk zou ik, net als sommige anderen hier, gewoon kiezen om wat lijnen weg te commentariseren, maar op deze manier kan het ook.

Zyppora wijzigde dit bericht 12-08-2008 14:02 (25%)

Zyppora - 80 Warlock

Wegcommenten kan in dit geval wel, maar als je in de conditie een functie aanroept die je wilt blijven aanroepen, maar ongeacht de conditie de true of juist de false-case wilt uitvoeren, dan kan commenten al niet meer.
No time for love, doctor Jones

Het gaat mij vaker om een stuk code als dit:
C++:
1
2
3
4
5
6
7
if (some-condition) {
   // do stuff
   // for 50 lines
else {
  // do other stuff
  // for 50 lines
}

Als je daar alleen de "else" code uit wilt voeren, dan moet je bij een comment de if() weghalen vanaf, zeg, regel 0, tot de "} else" op regel 50. Dat is irritant :)
 
quote:
Zoijar schreef op dinsdag 12 augustus 2008 @ 17:04:
Het gaat mij vaker om een stuk code als dit:
C++:
1
2
3
4
5
6
7
if (some-condition) {
   // do stuff
   // for 50 lines
else {
  // do other stuff
  // for 50 lines
}

Als je daar alleen de "else" code uit wilt voeren, dan moet je bij een comment de if() weghalen vanaf, zeg, regel 0, tot de "} else" op regel 50. Dat is irritant :)
50 regels per accolade zou ik persoonlijk een aparte methode van maken.

Website
lordpalf of the flapdrols

Daarnaast is zo'n stuk wegcommenten ook maar een paar keystrokes in een degelijke IDE ;)
No time for love, doctor Jones

quote:
.oisyn schreef op dinsdag 12 augustus 2008 @ 18:13:
Daarnaast is zo'n stuk wegcommenten ook maar een paar keystrokes in een degelijke IDE ;)
Maar je maakt snel een fout later, als je het steeds weer comment en uncomment. Dan vergeet je een keer een accolade en krijg je allemaal vage compiler errors, of je uncomment een stukje oorpronkelijk commented code en veradert zo de functionaliteit... Uiteraard is het commenten zelf een kwestie van shift-pagedown-pagedown-ctrl-k-c ;)
 
quote:
Zoijar schreef op dinsdag 12 augustus 2008 @ 19:15:
[...]
Uiteraard is het commenten zelf een kwestie van shift-pagedown-pagedown-ctrl-k-c ;)
Of gewoon een 1 muisklik op de juiste knop in Visual Studio ;)

Ik kom ook weer wat moois van mijzelf tegen:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
public void Bla()
{
  try
  {
     //doe iets
  }
  catch (AnException)
  { 
    //handel af
  }
  catch { throw; }
}

En dat bij iedere try-catch in het project :/

specs | Kater? Eerst water, de rest komt later

quote:
Haan schreef op donderdag 14 augustus 2008 @ 15:12:
[...]

Of gewoon een 1 muisklik op de juiste knop in Visual Studio ;)
Ik durf wel te stellen dat een stuk of 5 keystrokes sneller is dan 1 muisklik als je aan het coden bent :)

PHP:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
function session_secure(){
    // wrapped for the php entry....
    $alph =array('A','a','B','b','C','c','D','d','E',
    'e','F','f','G','g','H','h','I','i','J','K','k',
    'L','l','M','m','N','n','O','o','P','p','Q','q',
    'R','r','S','s','T','t','U','u','V','v','W','w',
    'X','x','Y','y','Z','z');
    for($i=0;$i<rand(10,20);$i++){
        $tmp[] =$alph[rand(0,count($alph))];
        $tmp[] =rand(0,9);
    }
    return implode("",shuffle($tmp));
}
?>

There are quicker ways like md5(time()*rand()), however the function above is completely random, and will render an attackers hijacking task almost impossible.
Ah yes, completely random...

Column. Fervent. Sowieso. Tie-wrap. Interessant. Misschien. Puberteit. Prioriteit. Seks. Intelligent. Enigszins. Verrassing. Applaudisseren. Tekst.

Heh, dork. Mooi ook hoe hij elke keer rand() in de conditie van z'n for-loop aanroept.
Z'n code bugt trouwens op regel 9.

.oisyn wijzigde dit bericht 24-08-2008 23:17 (17%)

Stompzinige functie natuurlijk, maar door meerdere malen rand() aan te roepen genereert hij wel een meer random key dan een MD5 hash van de tijd en rand(), aangezien PHP's RAND_MAX onder Windows bijvoorbeeld slechts 32K is, en de tijd in seconden vaak te raden is.

Effectief is de weakest link nu dus waarschijnlijk PHPs automatische random seeding (of eventuele handmatige, maar die is hier niet te zien).

Acties: [view][quote]


Door: RobIII Moderator PRG/SEA/WEB
Papa van LucaIII \o/

quote:
Soultaker schreef op zondag 24 augustus 2008 @ 23:15:
Effectief is de weakest link nu dus waarschijnlijk PHPs automatische random seeding (of eventuele handmatige, maar die is hier niet te zien).
Dat PHP's eigennaardigheden 'm hier redden maakt het geen mindere WTF :P

We all get along with some glue and duct tape here and there - but when the sh*t hits the fan, don’t blame the duct tape.

Trotse papa van Luca! | Pick My Icon!

IMHO --->

Mwah je wil eigenlijk ook niet iedere keer als je de functie aanroept gaan seeden.

I'm always thinking one step ahead, like a carpenter - who makes stairs

quote:
RobIII schreef op zondag 24 augustus 2008 @ 23:18:
Dat PHP's eigennaardigheden 'm hier redden maakt het geen mindere WTF :P
Meer een geval van elk-nadeel-heb-ze-voordeel. :Y)

Soultaker wijzigde dit bericht 24-08-2008 23:34 (64%)

quote:
Soultaker schreef op zondag 24 augustus 2008 @ 23:15:
Effectief is de weakest link nu dus waarschijnlijk PHPs automatische random seeding (of eventuele handmatige, maar die is hier niet te zien).
Heb even in de sourcecode geneusd...
C:
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// php_rand.h //////////////
#define GENERATE_SEED() (((long) (time(0) * getpid())) ^ ((long) (1000000.0 * php_combined_lcg(TSRMLS_C))))

// lcg.c ////////////////
/*
 * combinedLCG() returns a pseudo random number in the range of (0, 1).
 * The function combines two CGs with periods of 
 * 2^31 - 85 and 2^31 - 249. The period of this function
 * is equal to the product of both primes.
 */


#define MODMULT(a, b, c, m, s) q = s/a;s=b*(s-a*q)-c*q;if(s<0)s+=m

static void lcg_seed(TSRMLS_D);

PHPAPI double php_combined_lcg(TSRMLS_D)
{
    php_int32 q;
    php_int32 z;
    
    if (!LCG(seeded)) {
        lcg_seed(TSRMLS_C);
    }

    MODMULT(5366840014122112147483563LLCG(s1));
    MODMULT(527744069237912147483399LLCG(s2));

    z = LCG(s1) - LCG(s2);
    if (z < 1) {
        z += 2147483562;
    }

    return z * 4.656613e-10;
}

static void lcg_seed(TSRMLS_D)
{
    struct timeval tv;

    if (gettimeofday(&tvNULL) == 0) {
        LCG(s1) = tv.tv_sec ^ (~tv.tv_usec);
    } else {
        LCG(s1) = 1;
    }
#ifdef ZTS
    LCG(s2) = (longtsrm_thread_id();
#else
    LCG(s2) = (longgetpid();
#endif

    LCG(seeded) = 1;
}

Oftewel puur en alleen afhankelijk van de process id en de huidige tijd in een microseconde granulariteit.

.edit: HAHAHA, de grootste grap is nog wel PHP's eigen documentatie van de getmypid() functie :
Warning
Process IDs are not unique, thus they are a weak entropy source. We recommend against relying on pids in security-dependent contexts.
_O-

.oisyn wijzigde dit bericht 24-08-2008 23:42 (9%)

Op de randomness na werd ik na het nog eens doorlezen van de code nieuwsgierig, en heb het even getest. De code is niet uit te voeren of functioneert niet omdat:
4: de 'j' mist
9: kans op een unidentified index (moet count-1 zijn) zoals .oisyn al aangaf
12: shuffle retourneert true of false, de gegeven array wordt geshuffled (by reference is dat?), niet geretourneerd.

Failer than fail :+

CodeCaster wijzigde dit bericht 24-08-2008 23:45 (5%)

Column. Fervent. Sowieso. Tie-wrap. Interessant. Misschien. Puberteit. Prioriteit. Seks. Intelligent. Enigszins. Verrassing. Applaudisseren. Tekst.


Acties: [view][quote]


Door: RobIII Moderator PRG/SEA/WEB
Papa van LucaIII \o/

quote:
CodeCaster schreef op zondag 24 augustus 2008 @ 23:43:
Op de randomness na werd ik na het nog eens doorlezen van de code nieuwsgierig, en heb het even getest. De code is niet uit te voeren of functioneert niet omdat:
4: de 'j' mist
9: kans op een unidentified index (moet count-1 zijn) zoals .oisyn al aangaf
12: shuffle retourneert true of false, de gegeven array wordt geshuffled (by reference is dat?), niet geretourneerd.

Failer than fail :+
Da's dan ook precies 1 van de redenen waarom ik de PHP documentatie zo vind zuigen voor beginners; je hebt gewoon bij 'serieuze documentatie' allemaal meuk staan die beginners blind copy/pasten. Waarom plempen ze die (doorgaans useless) code niet achter een linkje of op een forum of whatever in plaats van op dezelfde pagina? :X

We all get along with some glue and duct tape here and there - but when the sh*t hits the fan, don’t blame the duct tape.

Trotse papa van Luca! | Pick My Icon!

IMHO --->

Mwah soms staan er ook wel eens nuttige dingen bij.

Maar ze mogen best wat meer modden daar.

PHP documentatie is nooit echt iets geweest om over naar huis te schrijven en dat is eigenlijk alleen maar erger geworden.

I'm always thinking one step ahead, like a carpenter - who makes stairs

Waarom het gebeurd weet ik ook niet maar, omcasten (en controleren) van een variabele zie ik ook nog wel eens zo gebeuren:
code:
1
if( !! var ) { ... }

 
Als je nou 1mm verder denkt...

Ik heb ooit eens een hele tijd gezocht naar een probleem met mijn code, zeer laat op de avond. Er was een stuk script dat wat met files en filenames moest doen.

if ($strFilename != "." || $strFilename != "/") {
... doe iets
}

En hij deed iets altijd! Het duurde even voordat ik het inzicht had dat een string nooit twee waarden tergelijketijd is, dus dat hij altijd niet . of niet / is.

lezen, denken, zoeken naar argumenten, schrijven, teruglezen, posten

quote:
opagrover schreef op maandag 25 augustus 2008 @ 14:58:
Ik heb ooit eens een hele tijd gezocht naar een probleem met mijn code, zeer laat op de avond. Er was een stuk script dat wat met files en filenames moest doen.

if ($strFilename != "." || $strFilename != "/") {
... doe iets
}

En hij deed iets altijd! Het duurde even voordat ik het inzicht had dat een string nooit twee waarden tergelijketijd is, dus dat hij altijd niet . of niet / is.
Dan denk ik dat de daadwerkelijke "WTF" je beredenering is. ;)

Wat betreft het PHP gebash hier, hoe erg ik het ook waardeer (trust me, als geen ander :D), zijn de mensen van Zend niet onderhand aan het overwegen om gewoon BC te breken en de taal zelf te fixen in een versie 7?

prototype wijzigde dit bericht 25-08-2008 15:16 (15%)

Uit "Show hier je website":
quote:
MrJey schreef op maandag 04 augustus 2008 @ 20:31:
By the way:

Deze code zorgt ervoor dat je geen geel driehoekje ziet. :S
code:
1
2
3
4
5
6
7
<script language="JavaScript"> 

function blockError(){return true;}

window.onerror = blockError;

</script>

Inmiddels herschreven tot:
code:
1
2
3
4
<script language="JavaScript"> 
function underCarpet(){return true;}
window.onerror = underCarpet;
</script>

...has a Kirika fetish

quote:
Eijkb schreef op maandag 25 augustus 2008 @ 22:19:
Uit "Show hier je website":


[...]


Inmiddels herschreven tot:
code:
1
2
3
4
<script language="JavaScript"> 
function underCarpet(){return true;}
window.onerror = underCarpet;
</script>

Dit is toch véél beter? :+
 
JavaScript:
1
2
3
4
function constf(a) {
    return function(b){return a}
}
window.onerror = constf(true); // Functional Programming At Its Best :p

Alleen jammer dat const een keyword is in Javascript. :p

Edit:
Of voor wat Basic herinneringen...
 
JavaScript:
1
2
resumenext = constf(true);
window.onerror = resumenext;

RayNbow wijzigde dit bericht 25-08-2008 22:41 (11%)

Ipsa Scientia Potestas Est
Touching is Good! | Younha \o/


Acties: [view][quote]


Door: -NMe- Admin Devschuur®
Watching you I am.

Ik heb even wat berichtjes afgesplitst: PHP als loose typed taal.

"Sometimes I really think people ought to have to pass a proper exam before they're allowed to be parents. Not just the practical, I mean."
De Tweakers.net Tijdlijn



© 1998-2008 Tweakers.net BV - Based on React - Hosted by True - Served by Alectrona

© 1998-2008 Tweakers.net BV - Based on React - Hosted by True - Served by Alectrona

[RSS][XML]

Update Tracker

Active Topics
Active Topics
Frontpage Nieuws
Frontpage Nieuws