dat heb ik hier wel vaker zien langskomen als 'evil language construct'. maar wat is er nou mis mee?Op donderdag 27 december 2001 23:19 schreef elnino het volgende:
over ... ? ... : ..., ik vind persoonlijk dat je die dingen gewoon nooit moet gebruiken
Verwijderd
het is geen "nette" code, ofmdat je geen duidelijk overzicht hebt hoe het zit, over een vraagteken en een dubbele punt lees je snel heen.Op donderdag 27 december 2001 23:30 schreef marcusk het volgende:
[..]
dat heb ik hier wel vaker zien langskomen als 'evil language construct'. maar wat is er nou mis mee?
Daarbij komt ook dat je maar een statement kan plaatsen, en als er eentje bij komt, je plots toch een hele if moet maken.
Vooral met debuggen kun je daar snel overheen lezen. Misschien zijn er wel situaties waar het wel overzichtelijk gebruikt kan worden, maar een if statement blijft gewoon beter en vooral duidelijker.Op donderdag 27 december 2001 23:33 schreef Jppr het volgende:
het is geen "nette" code, ofmdat je geen duidelijk overzicht hebt hoe het zit, over een vraagteken en een dubbele punt lees je snel heen.
Daarbij komt ook dat je maar een statement kan plaatsen, en als er eentje bij komt, je plots toch een hele if moet maken.
Daarnaast zijn er nog een paar dingen die een programmeur zoveel mogelijk moet ontwijken:
- Goto - dit maakt van je code een zooitje, en het voordeel van 'hogere programmeertalen' t.o.v. ASM is dat je for/while/do-lussen hebt, waarbij je Goto dus niet nodig hebt. Gelukkig kent PHP geen Goto...
- Global variabelen - De argumenten en de 'return' van een functie zijn bedoeld om waardes af te geven, niet willekeurige variabelen. Anders krijg je tijdens het debuggen zoiets van: "Hé waarom is die variabele i 10 i.p.v. 3?".
In PHP raadt ik het sowieso aan om van de variabelen $REMOTE_HOST enzo eerst constanten te maken, die zijn namelijk wel overal beschikbaar, en bovendien die kunnen niet van waarde veranderen, dus onverwachte effecten zijn er ook niet.
Het is jammer dat niet meer talen een degelijke syntax hebben voor een if constructie als expressie. Die ? ... : ... zuigt uiteraard
.
Er is in feite geen enkele reden waarom de gewone if syntax niet ook als expressie zou kunnen worden gebruikt...
Er is in feite geen enkele reden waarom de gewone if syntax niet ook als expressie zou kunnen worden gebruikt...
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Yep die heb ik nog nooit gebruikt. Zeer onleesbaarOp vrijdag 28 december 2001 00:06 schreef mbravenboer het volgende:
Het is jammer dat niet meer talen een degelijke syntax hebben voor een if constructie als expressie. Die ? ... : ... zuigt uiteraard.
Er is in feite geen enkele reden waarom de gewone if syntax niet ook als expressie zou kunnen worden gebruikt...
ach wat... dit leest toch veel prettiger:
Komt van http://www.ioccc.org, The International Obfuscated C Code Contest: echt werkende code die er niet uit ziet
Als je bovenin op Winning Entries klikt kom je bij de prachtige inzendingen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| #include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define e(t, v, w) n t(u x, u y) { n a = sqrt(x+y); r ((v - a) * (w - a)); }
#define w while(
#define r return
typedef char u; typedef short q; typedef double n;
u *z = "Z\253\345\252\256\351\325\232\265f\256\246nyZf\253U^\266\232]z\352i\236\226i[m\266\351\252\255\246\235V\247e\235\226\276Z\371jUg\x3\362\212pX\254\251PH\253\332\225\373\235\b\v\336HO.\203Qf\201\x1d\207\211\357\367S7|)=\331n\x4!E<\233Z\246\x1flv\232d(r\263\274\375\313\305\200\361\302\327\274\375\300\201c\250-|\246]\304\253I\377W\227R^\251\350\x2""C\251\203\311O\346\242\vDh\r\357\306x\325\274\315\366c\th\325\272\376\311X+:\325\354q\263|\257\x1c\327\316g\204\266s\211\357\370A(\x11""D\321\x1d:\352\327\x1bk@\x11""E-\310s\271\235\304\273\x2+\x4I\274jT\256\363\214\307{\232a\3270\a+qm\270\aI\315\337\220\x17\x18\315G\217\371@\215\335\v[v\335\205\343\250-|\246\373:\225\f\2552Oe]\206U\272\355\x10\327)u\rY]\276>\243\333w{3\x19\v""acC8\3775\351\b\377\204lJnsy.:\330\2553rKx'\362'!%\302\271\376|\236skq\242C\251\263&\x15K\x4""fA\227\211\242r7]\371\333\200z%\277\207CJ\255^}\264\237\327\275Z\n;L\x1aN#\371N\354G\256skq\242K!\364\211E\214\x17\377\343z\340w\233\272\354eTD\262t\365\335[_\233\225J\313\2746\334\x3\b\244F&\240]\222\332\210\351\376rJs<\2265I;\203Xd\272\377\345\214\x17\263]2I\237\302\253\346\355\332\343\350G\327\"\350f}\301n\223\366\300\210\343j\247\316%\363\210\345\n\252\215c\255\314\3248\300\261\350RM7\203\261\371\265\r_\220\x17\x19\a(+u\x1d=I\235\314\331@\310Cl\x16\210\307\345\357\306\x1f""e\345R\354y\257\367\350!.\x1f`\345uW&\204\246\367>\226\335\205\353\x18\336;\302\334\266\213Fn\233\201vAE\325+qnVR\222e\237E<e\203!f\333\345[\x17#\205\273I\314\371n\340\304\205\225h\323\336\371\x1c""7\227\201%\327\201p\326\263\351f\x19\a\v\336;uI\312?\214\265I1$\302+\373\233v\336\x5\306,y\313OD\351d*\350f\357H\262]\x3\332l\365L\237Qs\320{\231\244\204d\352v\335\215\327\357\200\247\302W\x10", x, y;
n g() { r (n)rand()/18972; } n t, v; q F, B, C; e(a, 0, 3.0) e(b, 3.0, 4.125)
e(c, 4.125, 9) u f(n (*h)()) { do { t=g() * 6.283184; v = sqrt(g() * 72); y =
sin(t) * v; x=cos(t)*v; } w (h(x*x,y*y)>=0)||(fabs(x) > 5) || (fabs(y) > 5));
r ((y+5) * 11) + x + 7; } u k(q x, u l) { u o = 0; F = 0; w F < 189) { B =C =
0; w 1) { y = ((z[F/4]>>((F++%4)*2))&3) - 1; if (y&2)
break; C = (C*2)+y, ++B; } if (!(C - x | B - l)) r (o<26)?o+0x61:((2108973>>(
(o-26)*8))&47); ++o; } r 1; } u s[1079]; u *E(u v) { u *x = s; w v--)w *(x++)
); r x; } main() { q A = 0, B = 0, C = 1078; u l = 0; u *p = s; srand(time( 0
) ); w C) { A = (A*2) + ((((z[B/8+48]+114)^2)>>(7-(B++%8)))&1),++l; x = k(A,l
); if (x-1) { *(p++)=x, A=l=0, C--; } } printf("%s%s %s%s%s\n", E(0), E(f(c))
, E(f(a)), E(1), E(f(b))); } |
Komt van http://www.ioccc.org, The International Obfuscated C Code Contest: echt werkende code die er niet uit ziet
Als je bovenin op Winning Entries klikt kom je bij de prachtige inzendingen.
Dat snap ik dus ook niet. Ik vind zo'n constructie ideaal vooral als het om iets gaan alsOp donderdag 27 december 2001 23:30 schreef marcusk het volgende:
dat heb ik hier wel vaker zien langskomen als 'evil language construct'. maar wat is er nou mis mee?
boolwaarde ? 1 : 2
of zo. Helemaal als het een argument voor een functie is.
Hoofdregel blijft wel dat het leesbaar moet zijn. Ik heb ze wel gezien dat er na de ? een lap code kwam, en daarna nog ergens een : met ook een lap erachteraan. Da's gewoon crap natuurlijk...
(de VB versie is Iif() en die gebruik ik erg vaak voor kleine dingen, maar zodra het iets meer als 1 waarde, maar ik er een gewone if van)
Exact expert nodig?
Het is gewoon lastiger bij debuggen enzo. Het maakt code soms gewoon onoverzichtelijk, en zeker voor anderen. Als je alleen aan een project werkt, dan moet je het zelf weten, maar als je met anderen werkt, liever niet. En aangezien ik liever consequent ben dan niet consequent, gebruik ik dus alleen if, het liefst met accolades {} erbij, kan er nooit wat fout gaan...Op vrijdag 28 december 2001 00:26 schreef Crazy_D het volgende:
Dat snap ik dus ook niet. Ik vind zo'n constructie ideaal vooral als het om iets gaan als
boolwaarde ? 1 : 2
of zo. Helemaal als het een argument voor een functie is.
Hoofdregel blijft wel dat het leesbaar moet zijn. Ik heb ze wel gezien dat er na de ? een lap code kwam, en daarna nog ergens een : met ook een lap erachteraan. Da's gewoon crap natuurlijk...
(de VB versie is Iif() en die gebruik ik erg vaak voor kleine dingen, maar zodra het iets meer als 1 waarde, maar ik er een gewone if van)
Tjah misschien is dat wat je gewend bent. Bij m'n eerste echte baantje als programmeur moest ik door een hoop code heen wroten waarin het vrij veel gebruikt werd (vooral in de situatie waarin ik noemde) en daar had ik nooit problemen mee eigenlijk. Ik kan me ook niet herinneren ooit een bug gecreëert te hebben daardoor (wel genoeg andere trouwensOp vrijdag 28 december 2001 00:34 schreef elnino het volgende:
Het is gewoon lastiger bij debuggen enzo. Het maakt code soms gewoon onoverzichtelijk, en zeker voor anderen.
Maar ja ik vind het geen onmisbaar iets, dus als ze het eruit zouden slopen of zo zal ik 't niet missen...
Exact expert nodig?
Ik heb er ook nooit problemen mee gehad, maar ik gebruik het ook nooit genest binnen statements ofzo, alleen bij toewijzingen:
a = ( blaat ? 1 : 2 );
Dit vind ik ook niet onleesbaar, en kan me niet voorstellen dat iemand hier overheen leest
a = ( blaat ? 1 : 2 );
Dit vind ik ook niet onleesbaar, en kan me niet voorstellen dat iemand hier overheen leest
ja maar juist bij die statement kun je net zo goed zeggen
bij dit wordt het wat anders:
dat zou je moeten vertalen naar zoiets:
wat nogal een hoop regels code produceert, en ook nog eens 2 extra variabelen
code:
1
2
3
4
| if (blaat)
a = 1;
else
a = 2; |
bij dit wordt het wat anders:
code:
1
| functie ((blaat1) ? 1 : 0, (blaat2) ? 2 : 1); |
dat zou je moeten vertalen naar zoiets:
code:
1
2
3
4
5
6
7
8
9
10
11
| if (blaat1)
p1 = 1;
else
p1 = 0;
if (blaat2)
p2 = 2;
else
p2 = 1;
functie (p1, p2); |
wat nogal een hoop regels code produceert, en ook nog eens 2 extra variabelen
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
is anders wel 4x zo weinig regelsOp vrijdag 28 december 2001 01:53 schreef OiSyN het volgende:
ja maar juist bij die statement kun je net zo goed zeggen
code:
1 2 3 4if (blaat) a = 1; else a = 2;
dat zou ik eerder zo doen:bij dit wordt het wat anders:
code:
1
2
3
4
| int p1 = ( blaat1 ? 1 : 0 ); int p2 = ( blaat2 ? 2 : 1 ); functie(p1, p2); |
wat ik bedoelde te zeggen is dat het voorbeeld van jou kwa door de compiler gegenereerde code totaal niets uitmaakt als je het vervangt met een if statement, terwijl het bij mijn statement juist wel uitmaakt 
Ik bedenk me overigens ineens een voorbeeld waarbij je wel gebruik moet maken van de ?: operator: bij base-class en member initialisatie in de constructor
hier kun je gewoon geen if gebruiken
Ik bedenk me overigens ineens een voorbeeld waarbij je wel gebruik moet maken van de ?: operator: bij base-class en member initialisatie in de constructor
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| class Base
{
private:
int i;
public:
Base (int i) : i (i)
{
}
};
class Derived : public Base
{
public:
Derived (bool blaat) : Base ((blaat) ? 10 : 20)
{
}
}; |
hier kun je gewoon geen if gebruiken
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Verwijderd
Qua layout heb ik niets op aan te merken, maar de kleuren zijn hopeloos. Groen op paars en rood op paars hebben gewoon te weinig contrast om goed leesbaar te zijn. En het lettertype zou ook wat groter mogen. De huidige kleuren zijn goed geschikt voor een witte achtergrond, niet voor paars.Goede code opmaak:
PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 <? function gablaten($iets) { if($iets=="dat") { return "Dit"; } else { return "Dat"; } } ?>
Hoeveel mensen hebben nou een paarse achtergrond in hun favoriete edittorOp vrijdag 28 december 2001 11:28 schreef Thargol het volgende:
De huidige kleuren zijn goed geschikt voor een witte achtergrond, niet voor paars.
(maar ik ben het met je eens, alleen staat het denk ik zo stom als de code-blokken een witte achtergrond krijgen)
Exact expert nodig?
Als het niet kan, dan kan het gewoon niet, maar ik blijf van mening dat je, als je if efficiënt kunt gebruiken, if moet gebruiken.Op vrijdag 28 december 2001 02:09 schreef OiSyN het volgende:
hier kun je gewoon geen if gebruiken
Kleurtjes op GoT maken mij niet zoveel uit. Zolang ze maar wel goed in mijn editor staan. Over de grote en dergelijke van PHP op GoT zijn al meerdere discussies geweest, waar het om een sleutelwoord ging:Op vrijdag 28 december 2001 11:28 schreef Thargol het volgende:
Qua layout heb ik niets op aan te merken, maar de kleuren zijn hopeloos. Groen op paars en rood op paars hebben gewoon te weinig contrast om goed leesbaar te zijn. En het lettertype zou ook wat groter mogen. De huidige kleuren zijn goed geschikt voor een witte achtergrond, niet voor paars.
Topix.
...en doen we in HTML dan ook keurig inspringen na een <td>? Als in:
al vele conflicten over gehad.
code:
1
2
3
4
5
6
7
8
9
| <table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
Bla<br>
Wop<br>
koeien<br>
</td>
</tr>
</table> |
al vele conflicten over gehad.
"Passing silhouettes of strange illuminated mannequins"
Als het goed zou werken in HTML, zou het ideaal zijn. Maar er zijn situaties waar een spatie niet gewenst is. Denk maar aan plaatjes waarbij absolute positionering gebruikt wordt. Dus doe de <td></td> gewoon op een regel, als het niet anders kan.Op vrijdag 28 december 2001 13:30 schreef klokop het volgende:
...en doen we in HTML dan ook keurig inspringen na een <td>? Als in:
Lijkt me duidelijk.
Conflicten gingen meestal over tabellen in tabellen dus zo:
Conflicten gingen meestal over tabellen in tabellen dus zo:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| <table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
Bla<br>
Wop<br>
Koeien<br>
</td>
<td>[img]"http://217.17.139.168/ads/sites/Maczine/maczine.gif"[/img]</td>
<td>irritante banners</td>
</tr>
</table>
</td>
</tr>
</table> |
"Passing silhouettes of strange illuminated mannequins"
Verwijderd
wat mij betreft liever zo:Op vrijdag 28 december 2001 13:30 schreef klokop het volgende:
...en doen we in HTML dan ook keurig inspringen na een <td>? Als in:
code:
1 2 3 4 5 6 7 8 9<table cellpadding="0" cellspacing="0" border="0"> <tr> <td> Bla<br> Wop<br> koeien<br> </td> </tr> </table>
al vele conflicten over gehad.
code:
1
2
3
4
5
6
7
8
9
| <table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
Bla<br>
Wop<br>
koeien<br>
</td>
</tr>
</table> |
Dat is dus gewoon niet leesbaar.
"Passing silhouettes of strange illuminated mannequins"
Verwijderd
waarom moet iets dat binnen hetzelfde blok (de <td>'s) hoort inspringen?Op vrijdag 28 december 2001 13:56 schreef klokop het volgende:
Dat is dus gewoon niet leesbaar.
tekst begint toch ook aan de kantlijn. de td's zijn in dit geval de kantlijn
Verwijderd
die kleuren kiezen wij zelf niet, die worden door het forum hier gemaakt met syntax highlighting. (highlight_string() voor wie het zich afvraagt: http://www.php.net/manual/en/function.highlight-string.php)Op vrijdag 28 december 2001 11:28 schreef Thargol het volgende:
[..]
Qua layout heb ik niets op aan te merken, maar de kleuren zijn hopeloos. Groen op paars en rood op paars hebben gewoon te weinig contrast om goed leesbaar te zijn. En het lettertype zou ook wat groter mogen. De huidige kleuren zijn goed geschikt voor een witte achtergrond, niet voor paars.
Maar dit is één van de weinige dingen die ACM/Kees wel zouden kunnen veranderen. De kleuren staan namelijk gewoon in je php config file, en je kan ze ook aanpassen. Idee?Op vrijdag 28 december 2001 14:07 schreef Jppr het volgende:
[..]
die kleuren kiezen wij zelf niet, die worden door het forum hier gemaakt met syntax highlighting. (highlight_string() voor wie het zich afvraagt: http://www.php.net/manual/en/function.highlight-string.php)
Uit volle borst op weg naar nergens / Zonder reden zonder doel
Met m'n zeden en m'n zonden / En mijn angstig voorgevoel
Laat mij mijn kont tegen de krib / Laat mij dit goddeloze lied
Hef jij je handen maar ten hemel / Maar red mij niet
Verwijderd
Het probleem van inspringen na een <td> is dat het omgewenste effecten kan veroorzaken. Een enter of een newline worden in HTML gezien als whitespace. Dus "<td>[enter]Bla" is dus anders als "<td>Bla", maar weer hetzelfde als "<td> Bla". Met name in Netscape 4.x krijg je hiermee vaak ongewenste layout effecten.<td>
Bla<br>
Wop<br>
Koeien<br>
</td>
Verwijderd
ok, ze kunnen het aanpassen, maar is dat zo nodig? Als we mooie (en duidelijke!) kleuren kunnen overeen komen kunnen we het eens lief vragen, maar dan blijft het de vraag of iemand het er wil in zetten...Op vrijdag 28 december 2001 14:12 schreef Taradino het volgende:
[..]
Maar dit is één van de weinige dingen die ACM/Kees wel zouden kunnen veranderen. De kleuren staan namelijk gewoon in je php config file, en je kan ze ook aanpassen. Idee?
De problemen gaan ontstaan als je ?: gaat gebruiken voor de bijwerkingen die je ermee kunt krijgen (door het conditionele aspect van de operator).Op vrijdag 28 december 2001 01:53 schreef OiSyN iets over die mooie operator
Als je 'em als 'normale' operator gebruikt, is het echt een zeer duidelijke instructie. Op die plaatsen is een if...else.. niet duidelijker. Sterker nog, als je veel VB leest met al die
code:
1
2
3
4
5
| If blaat Then
foo=blabla
Else
foo=blablabla
EndIf |
zou je willen dat VB ook zo'n operator had. Scheelt 10% code.
Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.
Stuur eens een voorbeeldje??? Ga ik er met netscape naar kijken. ThnxDus "<td>[enter]Bla" is dus anders als "<td>Bla", maar weer hetzelfde als "<td> Bla". Met name in Netscape 4.x krijg je hiermee vaak ongewenste layout effecten.
"Passing silhouettes of strange illuminated mannequins"
Verwijderd
code:
1
2
3
4
5
| <td> Bla<br> Wop<br> Koeien<br> </td> |
Als we het toch over nette code hebben moet dat niet zijn:
code:
1
2
3
4
5
| <td> Bla<br /> Wop<br /> Koeien<br /> </td> |
Deze week heb ik dat op w3c gelezen. Elke Tag moet gesloten worden is de aanbeveling.
code:
1
2
| dus: <br></br> geeft een extra witte regel gebruikt moet worden <br /> <p> -> <p /> |
enuwh natuurlijk:
code:
1
2
3
| <b><i>blaat</b></i> moet zijn: <b><i>blaat</i></b> |
Ik heb nog wat te verbeteren op mijn pagina's
Verwijderd
Is dat niet enkel voor XHTML valid pages enzo. XML ook, maar niet voor plain HTML, toch?Op vrijdag 28 december 2001 14:56 schreef X-Fire het volgende:
[...]
Als we het toch over nette code hebben moet dat niet zijn:
code:
1 2 3 4 5 <td> Bla<br /> Wop<br /> Koeien<br /> </td>
Deze week heb ik dat op w3c gelezen. Elke Tag moet gesloten worden is de aanbeveling.
[...]
Maar dan natuurlijk:
code:
1
2
3
4
5
| <td> Bla<br /> Wop<br /> Koeien<br /> </td> |
"Passing silhouettes of strange illuminated mannequins"
Verwijderd
nee. voor HTML gewoonOp vrijdag 28 december 2001 15:07 schreef klokop het volgende:
Maar dan natuurlijk:
code:
1 2 3 4 5 <td> Bla<br /> Wop<br /> Koeien<br /> </td>
code:
1
2
3
4
5
| <td> Bla<br> Wop<br> Koeien<br> </td> |
en voor xhtml
code:
1
2
3
4
5
| <td> Bla<br /> Wop<br /> Koeien<br /> </td> |
Sorry maar ik moet ff gapen
.
Dit gaat nergens meer over!
Dit gaat nergens meer over!
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Hmm die heb je. Iif(voorwaarde, truewaarde, falsewaarde)Op vrijdag 28 december 2001 14:23 schreef farlane het volgende:
zou je willen dat VB ook zo'n operator had. Scheelt 10% code.
En voor html...
Als het werkt probeer ik wel altijd netjes te laten inspringen als in
code:
1
2
3
4
5
6
7
| <table>
<tr>
<td>
blah blah
</td>
</tr>
</table> |
Maar soms kort ik dat ook wel af tot:
code:
1
2
3
4
5
| <table>
<tr>
<td>blah blah</td>
</tr>
</table> |
Is een klein beetje afhankelijk van wat er moet komen te staan, en of het de layout niet verziekt. Het 1e vind ik wel duidelijker, maar als het tegenzit zit je 4 pagina's door te scrollen om het einde van de table te vinden, en dan vind ik de <td> en </td> op dezelfde regel zetten weer wat makkelijker. Maar belangrijkste vind ik dat als je de html code bekijkt, het gewoon duidelijk is wat er staat. De <td> zet ik ook nog weleens recht onder de table, zeker als je dan nog een table binnen de table krijgt, zit je eerst 20 keer te tabben voordat je de tekst kan plaatsen, en daar vind ik het dan niet echt duidelijker van worden...
Exact expert nodig?
Verwijderd
ow...Op vrijdag 28 december 2001 15:13 schreef mbravenboer het volgende:
Sorry maar ik moet ff gapen.
Dit gaat nergens meer over!
nou jaaaaaaaaaOp vrijdag 28 december 2001 15:13 schreef mbravenboer het volgende:
Sorry maar ik moet ff gapen.
Dit gaat nergens meer over!
"Passing silhouettes of strange illuminated mannequins"
Verwijderd
/me zucht.
In deze vrolijke heilige oorlog betreffende de god 1TBS zal ik ook maar een waargebeurd (
) religieus verhaaltje posten; hier komtie:
Op een dag liep de Meester door het klooster, waar de leerlingen in hun cellen in meditatieve code-oefeningen verzonken waren. De aandacht van de Meester werd getrokken door de kreten van wanhoop die uit een van de cellen weerklonken en de contemplatieve rust in het klooster ruw verstoorden. De Meester naderde de cel waar deze wanklanken hun oorzaak vonden en aldaar aangekomen spiedde Hij door het sleutelgat. Zo werd de Meester er getuige van hoe de leerling Wu Li in tranen zich de haren uit het hoofd trok en daarbij de voornoemde bloedstollende kreten slaakte.
De Meester wachtte geduldig voor de cel en stuurde de leerlingen die hun hoofden uit de celdeuren staken en deels door de kloostergang toegesneld kwamen terug naar hun lessen en meditaties. Onderwijl sloeg hij de leerling Wu Li regelmatig gade door het sleutelgat. Toen Wu Li's haar tot de laatste pluk van zijn hoofd verdwenen was, klopte de Meester aan en trad de cel binnen.
De leerling Wu Li keek op en werd ondanks zijn tranen de Meester gewaar. Hij kreette: "Meester, Meester, oh help mij! Al Uw proeven heb ik doorstaan, al Uw lessen heb ik geleerd, maar Uw Laatste Proef heeft mij met verwarring en wanhoop geslagen!".
De Meester sprak: "Wat heeft Uwen Geest alzo verduisterd dat Gij Uzelve de haardracht enes Meesters toedient?".
"Meester," sprak Wu Li, "ondanks dat ik de Heilige Leer der Indentering tot op de letter volg, de Ene Ware Stijl aanbidt en mijne Werken rijkelijk van diepzinnige Commentariëen voorzie, blijft het Grote Plan achter Uw Laatste Proef mij verborgen!". "Onmogelijk is het mij, deze Opgave in het Licht van Uw Leer te zien!", zo sprak Wu Li.
De Meester sprak: "Vertel mij, Wu Li, welks Uwes Laatsten Proeve zijde zou?".
"De Universele Zelfgelijkzaamheid en het Kosmische Zelfverwantschap en hun onverbrekelijke band met de Wet van Verdeel en Heers waren het die mij verblindden, oh Meester. Uwe proeve der Torens van Hanoi is teveel voor mij!", zo antwoordde Wu Li.
Dit horende ontstak de Meester in grote vreugde. Hij nam de handgeschreven, ledergebonden kopie van de Heilige K.R. Bijbel die hij altijd aan een koord gebonden aan Zijn zijde meedroeg ter hand en sloeg de verbijserde Wu Li er recht mee op het onlangs kaal geworden voorhoofd zodat de klap door het hele klooster te horen was. Toen Wu Li weer bij zinnen was en op de grond zittend zijn buil betastte sprak de Meester: "Zo geindenteerd was Uw hoofd door Heilige Wetten, dat Uw Geest erdoor belemmerd werd. U behoefde node een exdentatie!". Dit horende werd Wu Li de Verlichting ten deel.
[sup]Copyright 2001 by /me :P[/sup]
In deze vrolijke heilige oorlog betreffende de god 1TBS zal ik ook maar een waargebeurd (
Op een dag liep de Meester door het klooster, waar de leerlingen in hun cellen in meditatieve code-oefeningen verzonken waren. De aandacht van de Meester werd getrokken door de kreten van wanhoop die uit een van de cellen weerklonken en de contemplatieve rust in het klooster ruw verstoorden. De Meester naderde de cel waar deze wanklanken hun oorzaak vonden en aldaar aangekomen spiedde Hij door het sleutelgat. Zo werd de Meester er getuige van hoe de leerling Wu Li in tranen zich de haren uit het hoofd trok en daarbij de voornoemde bloedstollende kreten slaakte.
De Meester wachtte geduldig voor de cel en stuurde de leerlingen die hun hoofden uit de celdeuren staken en deels door de kloostergang toegesneld kwamen terug naar hun lessen en meditaties. Onderwijl sloeg hij de leerling Wu Li regelmatig gade door het sleutelgat. Toen Wu Li's haar tot de laatste pluk van zijn hoofd verdwenen was, klopte de Meester aan en trad de cel binnen.
De leerling Wu Li keek op en werd ondanks zijn tranen de Meester gewaar. Hij kreette: "Meester, Meester, oh help mij! Al Uw proeven heb ik doorstaan, al Uw lessen heb ik geleerd, maar Uw Laatste Proef heeft mij met verwarring en wanhoop geslagen!".
De Meester sprak: "Wat heeft Uwen Geest alzo verduisterd dat Gij Uzelve de haardracht enes Meesters toedient?".
"Meester," sprak Wu Li, "ondanks dat ik de Heilige Leer der Indentering tot op de letter volg, de Ene Ware Stijl aanbidt en mijne Werken rijkelijk van diepzinnige Commentariëen voorzie, blijft het Grote Plan achter Uw Laatste Proef mij verborgen!". "Onmogelijk is het mij, deze Opgave in het Licht van Uw Leer te zien!", zo sprak Wu Li.
De Meester sprak: "Vertel mij, Wu Li, welks Uwes Laatsten Proeve zijde zou?".
"De Universele Zelfgelijkzaamheid en het Kosmische Zelfverwantschap en hun onverbrekelijke band met de Wet van Verdeel en Heers waren het die mij verblindden, oh Meester. Uwe proeve der Torens van Hanoi is teveel voor mij!", zo antwoordde Wu Li.
Dit horende ontstak de Meester in grote vreugde. Hij nam de handgeschreven, ledergebonden kopie van de Heilige K.R. Bijbel die hij altijd aan een koord gebonden aan Zijn zijde meedroeg ter hand en sloeg de verbijserde Wu Li er recht mee op het onlangs kaal geworden voorhoofd zodat de klap door het hele klooster te horen was. Toen Wu Li weer bij zinnen was en op de grond zittend zijn buil betastte sprak de Meester: "Zo geindenteerd was Uw hoofd door Heilige Wetten, dat Uw Geest erdoor belemmerd werd. U behoefde node een exdentatie!". Dit horende werd Wu Li de Verlichting ten deel.
[sup]Copyright 2001 by /me :P[/sup]
zooo, en er kan weer een topic dicht...
"Passing silhouettes of strange illuminated mannequins"
En ze leefden nog lang en gelukkig...Op vrijdag 28 december 2001 15:34 schreef mietje een lang verhaal:
...
Toen Wu Li weer bij zinnen was en op de grond zittend zijn buil betastte sprak de Meester: "Zo geindenteerd was Uw hoofd door Heilige Wetten, dat Uw Geest erdoor belemmerd werd. U behoefde node een exdentatie!". Dit horende werd Wu Li de Verlichting ten deel.
Copyrighted 2001 by /me
Geef mij maar de Allman-style.
Idd, de topicstarter is alang geholpen, en de discussie over de {} ?: is inmiddels al gevoerd, en die dwaalt nu af naar inspringen in HTML/XML/XHTML.Op vrijdag 28 december 2001 15:13 moest mbravenboer gapen:
Sorry maar ik moet ff gapen.
Dit gaat nergens meer over!
edit: Toevoeging en copyright van mietje toegevoegd
Ik vindt ook dat een mooie code opmaak zeer belangrijk is, en je moet inderdaad gewoon concequent zijn. Wat ook heel belangrijk is dat je voor een project waar je met meerdere personen aan werkt daarover ook een duidelijke afspraak hebt. Toch zijn er bepaalde dingen in praktijk bijna onbruikbaar of onleesbaar die hier getoond zijn.
is hier een voorbeeld van. Zier er mooi uit als je het alleen ziet staan, maar hier verlies je zo even 7 regels op een stomme if-else if-else conditie. De hoeveelheid code die je tegelijkertijd op je scherm kan zien is ook zeer belangrijk volgens mij. Dan is dit toch de betere code:
Je moet er ook zoveel mogelijk voor zorgen dat alle condities zo duidelijk mogelijk zijn, zo duidelijk dat ze eigenlijk geen commentaar nodig hebben. Inline commentaar kan dingen ook serieus onduidelijk maken, en moet zoveel mogelijk vermeden worden, enkel in echt tricky constructies waarvan je zelf vind dat je later er niet meer aan uit gaat geraken is dit nuttig.
Te veel commentaar zetten is trouwens ook moeilijker om later bugs te vinden. Je ziet er gewoon over als je bij elke conditie bijzet wat ze doet (of zou moeten doen). Op dat ogenblik moet je je aandacht erbij houden, en niet precies een verhaaltje zijn dat je leest. Ik heb zo ooit (java)code moeten debuggen - en dat was te vergelijken met cobol (
)
If's zonder accolades vind ik enkel toegestaan indien er geen else achter komt, en de code die uitgevoerd moet worden moet op de volgende regel 1 tab geindenteerd zijn.
Een tabwidth van kleiner dan 4 is totaal uit den boze. Als je dan buiten je scherm gaat heb je dringend een cursus softwaredesign nodig. Gebruik dan functies. Ikzelf gebruik voor java een tabwidth van 4 en voor C een van 8. Een regel van langer dan 80 karakters is ook niet mooi - en is vanzelf al onleesbaar.
Nog iets waar ik een grondige hekel aan heb is het inline declareren van variabelen. De meeste talen staan dat nu toe - maar dat maakt ook alles lekker ingewikkeld en onleesbaar. Declareer variabelen altijd in het begin van een block ( na de { ). Bij PHP heb je hier geen last van natuurlijk...
code:
1
2
3
4
5
6
7
8
9
10
11
12
| if ((condition1) || (condition2))
{
action1;
}
else if ((condition3) && (condition4))
{
action2;
}
else
{
defaultaction;
} |
is hier een voorbeeld van. Zier er mooi uit als je het alleen ziet staan, maar hier verlies je zo even 7 regels op een stomme if-else if-else conditie. De hoeveelheid code die je tegelijkertijd op je scherm kan zien is ook zeer belangrijk volgens mij. Dan is dit toch de betere code:
code:
1
2
3
4
5
6
7
| if ((condition1) || (condition2)) {
// Doe iets;
} else if ((condition3) && (condition4)) {
// Doe iets anders;
} else {
// Doe nog iets anders;
} |
Je moet er ook zoveel mogelijk voor zorgen dat alle condities zo duidelijk mogelijk zijn, zo duidelijk dat ze eigenlijk geen commentaar nodig hebben. Inline commentaar kan dingen ook serieus onduidelijk maken, en moet zoveel mogelijk vermeden worden, enkel in echt tricky constructies waarvan je zelf vind dat je later er niet meer aan uit gaat geraken is dit nuttig.
Te veel commentaar zetten is trouwens ook moeilijker om later bugs te vinden. Je ziet er gewoon over als je bij elke conditie bijzet wat ze doet (of zou moeten doen). Op dat ogenblik moet je je aandacht erbij houden, en niet precies een verhaaltje zijn dat je leest. Ik heb zo ooit (java)code moeten debuggen - en dat was te vergelijken met cobol (
If's zonder accolades vind ik enkel toegestaan indien er geen else achter komt, en de code die uitgevoerd moet worden moet op de volgende regel 1 tab geindenteerd zijn.
Een tabwidth van kleiner dan 4 is totaal uit den boze. Als je dan buiten je scherm gaat heb je dringend een cursus softwaredesign nodig. Gebruik dan functies. Ikzelf gebruik voor java een tabwidth van 4 en voor C een van 8. Een regel van langer dan 80 karakters is ook niet mooi - en is vanzelf al onleesbaar.
Nog iets waar ik een grondige hekel aan heb is het inline declareren van variabelen. De meeste talen staan dat nu toe - maar dat maakt ook alles lekker ingewikkeld en onleesbaar. Declareer variabelen altijd in het begin van een block ( na de { ). Bij PHP heb je hier geen last van natuurlijk...
I heard if you play the XP CD backwards, you get a satanic message. Thats nothing compared to what happens if you play it forward, then it installs Windows XP born2oc.be - Facts Of Life
als we dan toch verhaaltjes gaan vertellen...
novice asked the Master: "Here is a programmer that never designs, documents, or tests his programs. Yet all who know him consider him one of the best programmers in the world. Why is this?"
The Master replies: "That programmer has mastered the Tao. He has gone beyond the need for design; he does not become angry when the system crashes, but accepts the universe without concern. He has gone beyond the need for documentation; he no longer cares if anyone else sees his code. He has gone beyond the need for testing; each of his programs are perfect within themselves, serene and elegant, their purpose self-evident. Truly, he has entered the mystery of the Tao."
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Is dat een VB operator?Op vrijdag 28 december 2001 15:21 schreef Crazy_D het volgende:
Hmm die heb je. Iif(voorwaarde, truewaarde, falsewaarde)
Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.
nee het is gewoon een functieOp zaterdag 29 december 2001 16:39 schreef farlane het volgende:
[..]
Is dat een VB operator?
zo van (en dan moet ik even mijn VB-kennis weer optrommelen)
code:
1
2
3
4
5
6
7
8
| Function Iif (exp as Boolean, vTrue as Variant, vFalse as Variant) as Variant
If exp Then
Iif = vTrue
Else
Iif = vFalse
Exit Function |
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Yup.Op zaterdag 29 december 2001 16:39 schreef farlane het volgende:
Is dat een VB operator?
MSDN:
Helaas is het Remarks stukje (dus) ook waar, en dat vind ik wel erg spijtig... (of dat in VB.net beter is weet ik eigenlijk niet, heb 'm hier niet geinstalleerd staan).IIf Function
Returns one of two parts, depending on the evaluation of an expression.
Syntax
IIf(expr, truepart, falsepart)
The IIf function syntax has these named arguments:
Part Description
expr Required. Expression you want to evaluate.
truepart Required. Value or expression returned if expr is True.
falsepart Required. Value or expression returned if expr is False.
Remarks
IIf always evaluates both truepart and falsepart, even though it returns only one of them. Because of this, you should watch for undesirable side effects. For example, if evaluating falsepart results in a division by zero error, an error occurs even if expr is True.
[edit]
In Excel zit 'ie volgens mij ook, alleen in asp (vbscript) weer niet (iig niet in mijn vbscript engine (5.1 of 5.5)). En misschien zit ie er pas sinds VB6 in, ook dat weet ik niet zeker
Exact expert nodig?
Das natuurlijk ook logisch, omdat het gewoon een functie is die een parameter teruggeeft als ie true geeft, en een andere parameter teruggeeft als ie false is. Aangezien de expressies voor die parameters worden uitgerekend voordat de functie wordt aangeroepen (om vervolgens de uitkomst aan de functie te geven), zit je dus altijd met dat probleem.Op zaterdag 29 december 2001 16:54 schreef Crazy_D het volgende:
Helaas is het Remarks stukje (dus) ook waar, en dat vind ik wel erg spijtig... (of dat in VB.net beter is weet ik eigenlijk niet, heb 'm hier niet geinstalleerd staan).
Wat je eigenlijk nodig hebt is een echte operator zoals in C++, wat deel uitmaakt van de taal-syntax zelf, en niet gewoon een support routine is
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Verwijderd
nog even hierover:
Wat is dan netter?
* drie files: add_article.php, edit_article en rem_article ofzo
* 1 file: admin_article.php waarin de drie functies onderscheiden worden door bvb een var $func ofzo...
om de article bvb volledig te kunnen adminnen moet ik er kunnen toevoegen, verwijderen en editten.Ander vraagje: ik heb dus bvb drie files article.php, author.php en category.php. Daarmee wordt contenet uit de db gehaald en ge-output.
Maar in de admin area moeten ook files bestaan om die zaken te editten. Is het dan "slecht" om deze admin files ook article.php, enzo te noemen, ook al staan ze in een andere dir?
-----------------------------------------------------------
Slecht? Neuh niet echt, maar ik vind het zelf handig om het dan bijv. edit_article.php, edit_category.php te gebruiken. Dan zie je meteen wat het doet, itt bij de eerste benaming.
Wat is dan netter?
* drie files: add_article.php, edit_article en rem_article ofzo
* 1 file: admin_article.php waarin de drie functies onderscheiden worden door bvb een var $func ofzo...
Ik maak zelf niet te veel verschillende files, optie 2 dus. Als je maar één file maakt, dan kan je namelijk vaak heel wat code hergebruiken, terwijl je bij drie files vaak dezelfde code in drie bestanden hebt staan. Als je die weer moet veranderen, kan je er drie veranderen en dat is wel wat minder.Op zaterdag 29 december 2001 17:32 schreef Jppr het volgende:
nog even hierover:
[..]
om de article bvb volledig te kunnen adminnen moet ik er kunnen toevoegen, verwijderen en editten.
Wat is dan netter?
* drie files: add_article.php, edit_article en rem_article ofzo
* 1 file: admin_article.php waarin de drie functies onderscheiden worden door bvb een var $func ofzo...
Meestal zet ik alle gewoon alle admin bestanden in een aparte directory, maak dan een bestand admin.php aan. Hier in loop ik alle files langs, waarin ik een korte beschrijving van de pagina + categorie gedefinieerd heb. Die dump ik dan in een frame, gesorteerd op categorie en beschrijving. Hierdoor kan ik heel erg makkelijk nieuwe admin modules toevoegen.
Uit volle borst op weg naar nergens / Zonder reden zonder doel
Met m'n zeden en m'n zonden / En mijn angstig voorgevoel
Laat mij mijn kont tegen de krib / Laat mij dit goddeloze lied
Hef jij je handen maar ten hemel / Maar red mij niet
Verwijderd
het gaat niet meer echt over nette code, maar heeft er toch nog iets mee te maken:
standaard hebben we als url bvb
.../article.php?aid=17
nu kun je er vrij makkelijk van maken:
.../article/17
nu, wat vinden jullie pers. mooier/professioneler/...
standaard hebben we als url bvb
.../article.php?aid=17
nu kun je er vrij makkelijk van maken:
.../article/17
nu, wat vinden jullie pers. mooier/professioneler/...
Volgens mij zijn beiden niet goed. Het article-id mag je nl niet kunnen afleiden uit de url.Op zondag 30 december 2001 13:05 schreef Jppr het volgende:
het gaat niet meer echt over nette code, maar heeft er toch nog iets mee te maken:
standaard hebben we als url bvb
.../article.php?aid=17
nu kun je er vrij makkelijk van maken:
.../article/17
nu, wat vinden jullie pers. mooier/professioneler/...
https://fgheysels.github.io/
Verwijderd
waarom niet? wat zou jij anders als link nemen?Op zondag 30 december 2001 13:12 schreef whoami het volgende:
[..]
Volgens mij zijn beiden niet goed. Het article-id mag je nl niet kunnen afleiden uit de url.
En dat is waarom?Op zondag 30 december 2001 13:12 schreef whoami het volgende:
[..]
Volgens mij zijn beiden niet goed. Het article-id mag je nl niet kunnen afleiden uit de url.
Hier heb ik toch nog nooit van gehoord.
Uit volle borst op weg naar nergens / Zonder reden zonder doel
Met m'n zeden en m'n zonden / En mijn angstig voorgevoel
Laat mij mijn kont tegen de krib / Laat mij dit goddeloze lied
Hef jij je handen maar ten hemel / Maar red mij niet
Hmmm ik ben er ook geen fanaat van, maar in sommige gevallen wel. Zie bijvoorbeeld: (C++ trouwens)Op donderdag 27 december 2001 23:19 schreef elnino het volgende:
Maar met die nieuwe phpBB Coding Standard ben ik het wel mee eens, behalve dan met het gedeelte over ... ? ... : ..., ik vind persoonlijk dat je die dingen gewoon nooit moet gebruiken, dan kan je het ook niet fout doen. Een if/else-statement is dan wel langer, maar dan wel 100 keer duidelijker.
code:
1
2
3
4
| // Initialize package count int l_PackageCount = (p_SendHeader ? 1 : 0); // Now calculate how many other packages to send |
Hierin vind ik het zeker een nuttige inkorting. Ook in return statements kan het erg goed werken:
code:
1
2
3
4
5
6
7
| MyStringClass MyClass::SomeFunction()
{
// Calculate some booleans
// Return output string based on values
return ((BoolA && BoolB) ? "valid" : "invalid");
} |
Daarentegen heb ik ook een keer een paar uur door een stuk code zitten spitten met dit soort constructies die consequent 1 byte data bleef transferren ipv de gevraagde duizenden. Bleek dat er door 2 geneste ?-constructies een boolean als hoeveelheid verzonden data werd geretourneerd...
Verwijderd
ik dus ook niet. Zolang je geen access hebt tot de db is toch geen probleem?Op zondag 30 december 2001 13:43 schreef Taradino het volgende:
[..]
En dat is waarom?
Hier heb ik toch nog nooit van gehoord.
Ah, dacht ff iets nieuws geleerd te hebben.Op zaterdag 29 december 2001 16:51 schreef OiSyN het volgende:
nee het is gewoon een functie
Nadeel is idd dat het een functie is en niet een operator. De sidefx zijn naar mijn menig dan ook een reden om het niet te gebruiken.
Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.