'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
1
| ...this.getElementsByTagName('img')[0]... |
Het ging over een <a> met daarin een <img> die dynamisch was aangemaakt (via JS, userscripts)... iets zegt me dat gewoon "this.firstChild" ook had volstaan... (dit was btw in een onclick-eventhandler)
[Voor 8% gewijzigd door Alex) op 21-07-2007 16:13]
We are shaping the future
Anoniem: 26306

1
2
3
4
5
| var link = document.createElement('a'); var image = document.createElement('img'); link.appendChild(image); |
Daar zit geen whitespace tussen de <a> en de <img>, lijkt me...
We are shaping the future
Anoniem: 140111
Ergens heb je wel gelijk. Je moet dan wel blijven opletten of het een dynamische img is of een die er al was. Bij de laatste is een enter al genoeg om je script te verpesten. Om fouten voor te zijn had ik waarschijnlijk ook 'jouw' constructie genomen. (Of de reference die je toch al hebt bij het dynamisch aanmaken gebruiken)Alex) schreef op zaterdag 21 juli 2007 @ 16:12:
Ik gisteren nog...
JavaScript:
1 ...this.getElementsByTagName('img')[0]...
Het ging over een <a> met daarin een <img> die dynamisch was aangemaakt (via JS, userscripts)... iets zegt me dat gewoon "this.firstChild" ook had volstaan... (dit was btw in een onclick-eventhandler)
Ik zeg het met e-mail
Men nederlands is wel is beter geweesd
Nederlands is makkelijker als je denkt.
Het is dynamisch aangemaakt - geen extra tekens dusxtra schreef op maandag 23 juli 2007 @ 14:38:
[...]
Ergens heb je wel gelijk. Je moet dan wel blijven opletten of het een dynamische img is of een die er al was. Bij de laatste is een enter al genoeg om je script te verpesten. Om fouten voor te zijn had ik waarschijnlijk ook 'jouw' constructie genomen. (Of de reference die je toch al hebt bij het dynamisch aanmaken gebruiken)

Aan die references heb ik niets omdat het om code binnen een eventhandler gaat en je dan dus een scope-issue krijgt... tenzij je ergens een public array (o.i.d.) bijhoudt met daarin alle objecten... maar dat maakt niet uit, inmiddels heb ik alles werkend. IE deed moeilijk, dus ik heb uiteindelijk mijn hele mooie document.createElement-constructie overboord moeten gooien en het moeten vervangen door iets met innerHTML

Het leek wel alsof IE de DOM niet updatete, in Fx had ik geen problemen maar IE vertelde doodleuk dat hij het object niet kende

We are shaping the future
Waarin een property staat met een harde verwijzing, zoiets als dit.
1
| public virtual VenderXGrid Grid { get; } |
En dan vervolgens een Document implementatie te hebben waarbij je VendorYGrid wilt gebruiken....
"Maar we wisselen toch nooit van Grid?" ...

Mja ik vind het nog niet eens zo'n gekke gedachtengang. Ten eerste is het in heel veel gevallen zo dat er inderdaad nooit van vendor wordt gewisseld in de levensduur van een product. Daarnaast zou de enige oplossing zijn een generieke interface te maken die door zowel VendorX en VendorY worden geimplementeerd. Dit is veel werk en error-prone. Ik kan me goed voorstellen dat je zo'n ontwikkeling laat wachten tot het moment echt daar is. (wat misschien wel nu isD-Raven schreef op maandag 23 juli 2007 @ 15:27:
Een abstracte klasse Document hebben waarop een hoop algemene afhandeling wordt gedaan.
Waarin een property staat met een harde verwijzing, zoiets als dit.
C#:
1 public virtual VenderXGrid Grid { get; }
En dan vervolgens een Document implementatie te hebben waarbij je VendorYGrid wilt gebruiken....
"Maar we wisselen toch nooit van Grid?" ...

Anoniem: 37526
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| var ajaxRequest; try{ ajaxRequest = new XMLHttpRequest(); } catch (e){ try{ ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try{ ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ alert("Sorry, Notepad will not work with your browser."); return false; } } } |
O my...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| if (wrappedData.length>32) { // It is a wrapped RSA Private key without key reference info return wrappedData; } else if (wrappedData.length<32) { // It is a wrapped DES or 2DES key without key reference info return wrappedData; } else { // It is a wrapped DES or 2DES key with key reference info int length = wrappedData[16]; byte[] wrappedDesKey = new byte[length]; System.arraycopy(wrappedData, 0, wrappedDesKey, 0, length); return wrappedDesKey; } |
Volgens mij is 1 if zonder else's genoeg

The ships hung in the sky in much the same way that bricks don’t.
ow? echt waar? en wat als de key exact 32 chars lang is?Standeman schreef op vrijdag 03 augustus 2007 @ 15:29:
Ik kwam vandaag ook een mooie tegen:
Java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 if (wrappedData.length>32) { // It is a wrapped RSA Private key without key reference info return wrappedData; } else if (wrappedData.length<32) { // It is a wrapped DES or 2DES key without key reference info return wrappedData; } else { // It is a wrapped DES or 2DES key with key reference info int length = wrappedData[16]; byte[] wrappedDesKey = new byte[length]; System.arraycopy(wrappedData, 0, wrappedDesKey, 0, length); return wrappedDesKey; }
Volgens mij is 1 if zonder else's genoeg
Programmer - an organism that turns coffee into software.
Anoniem: 178962
Beter lezenLuCarD schreef op vrijdag 03 augustus 2007 @ 15:36:
[...]
ow? echt waar? en wat als de key exact 32 chars lang is?

Het kan inderdaad met 1 if zonder else.
hmm ik ging er vanuit dat hij een gedeelte code had weggelaten...Anoniem: 178962 schreef op vrijdag 03 augustus 2007 @ 15:39:
[...]
Beter lezen
Het kan inderdaad met 1 if zonder else.

Programmer - an organism that turns coffee into software.
Anoniem: 178962
Het maakt verder ook weinig uit denk ik, een beetje compiler zal dat stukje wel voor de je optimaliseren denk ik en anders nog.
The ships hung in the sky in much the same way that bricks don’t.
Anoniem: 178962
Ja maar, ja maar, er staat toch commentaar in?Standeman schreef op vrijdag 03 augustus 2007 @ 15:57:
Het was ook meer de leesbaarheid waar ik me aan stoorde.. En een echt grote WTF was het idd niet.

Anoniem: 49627
1
| new StringBuffer('[').append(someString).append(']'); |
Ik moest zelf ook even in de Java API kijken voordat ik het zagAnoniem: 49627 schreef op dinsdag 14 augustus 2007 @ 14:40:
Echt een 'slecht programmeervoorbeeld' is het niet maar toch een 'leuk' foutje/bugje dat ik vanmorgen had gemaakt.
Java:
1 new StringBuffer('[').append(someString).append(']');

Anoniem: 37526
Daar ben ik het niet mee eens. Wat nou als er bij "wrapped DES or 2DES key without key reference info" opeens een extra functie moet worden toegevoegd?Standeman schreef op vrijdag 03 augustus 2007 @ 15:29:
Ik kwam vandaag ook een mooie tegen:
Java:
1...
Volgens mij is 1 if zonder else's genoeg
De drie mogelijkheden zijn er gemaakt om de drie verschillende type keys duidelijk in de programmacode te scheiden, en ook om aan te tonen hoe je kunt zien of het een x, y of z key is. Het kan inderdaad korter, maar leesbaarder word het er niet op.
Anoniem: 178962
Oei oei, die is sneaky zegAnoniem: 49627 schreef op dinsdag 14 augustus 2007 @ 14:40:
Echt een 'slecht programmeervoorbeeld' is het niet maar toch een 'leuk' foutje/bugje dat ik vanmorgen had gemaakt.
Java:
1 new StringBuffer('[').append(someString).append(']');

Java ook altijd

[Voor 4% gewijzigd door Anoniem: 178962 op 14-08-2007 16:58]
- .oisyn
- Registratie: September 2000
- Nu online
Demotivational Speaker
:strip_exif()/u/12461/avatar.gif?f=community)
[Voor 11% gewijzigd door .oisyn op 14-08-2007 17:05]
If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"
Lol, ik had hem door.Anoniem: 178962 schreef op dinsdag 14 augustus 2007 @ 16:57:
[...]
Oei oei, die is sneaky zeg
offtopic:
Java ook altijd

Maar serieus, ik had hem al weleens gezien bij Java Puzzlers. Lekkere instinker.
Mark, ik neem aan dat dat statement gewoon ergens in real life code stond, tussen een stel ifs en zo? Dan kijk je er zo overheen.
Fat Pizza's pizza, they are big and they are cheezy
Wel dus. Jammergenoeg in zulke gevallen..oisyn schreef op dinsdag 14 augustus 2007 @ 17:04:
Nou zie ik geen toString() en/of assignment, maar volgens komt dat meer omdat dat gewoon weggelaten is in de quote. De issue is volgens mij wel dat er geen constructor bestaat voor char. Wel voor int, maar een char is toch niet impliciet te converteren naar int in Java, of wel?

Wat het overigens lulliger maakt, is dat append(char) wel bestaat.

[Voor 7% gewijzigd door JKVA op 14-08-2007 17:07]
Fat Pizza's pizza, they are big and they are cheezy
Anoniem: 178962
Volgens mij wordt in dit geval inderdaad de char impliciet naar een int omgezet, al zal de compiler wellicht wel een waarschuwing geven..oisyn schreef op dinsdag 14 augustus 2007 @ 17:04:
Nou zie ik geen toString() en/of assignment, maar volgens komt dat meer omdat dat gewoon weggelaten is in de quote. De issue is volgens mij wel dat er geen constructor bestaat voor char. Wel voor int, maar een char is toch niet impliciet te converteren naar int in Java, of wel?
Anoniem: 49627
De compiler is zo lief om helemaal niets te zeggen, die vertrouwt, om compleet ongegronde redenen, op mijn onuitputtelijke wijsheid.Anoniem: 178962 schreef op dinsdag 14 augustus 2007 @ 17:06:
Volgens mij wordt in dit geval inderdaad de char impliciet naar een int omgezet, al zal de compiler wellicht wel een waarschuwing geven.
@JVKA
Ik had dit fragment echt vlak daarvoor geschreven en viel gelukkig vrijwel direct op.
edit: ik snap nu wat je met 'reallife code' bedoeld. Ja het stond wat meer verspreid door de code

[Voor 13% gewijzigd door Anoniem: 49627 op 14-08-2007 20:34]
Ik zou toch ook een dergelijke constructie gebruikt hebben ipv firstChild, om de simpele reden dat als ik over 2 jaar die code aanpas ik niet meer weet dat er ergens een methode is die verwacht dat de eerste child een img is. Je zou wel kunnen argumenteren 'documenteer het dan', maar uiteindelijk stop je een nieuwe requirement in je systeem dat de eerste child binnen je anker een image moet zijn, wat imho niet netjes is.Alex) schreef op zaterdag 21 juli 2007 @ 16:12:
Ik gisteren nog...
JavaScript:
1 ...this.getElementsByTagName('img')[0]...
Het ging over een <a> met daarin een <img> die dynamisch was aangemaakt (via JS, userscripts)... iets zegt me dat gewoon "this.firstChild" ook had volstaan... (dit was btw in een onclick-eventhandler)
If you can't beat them, try harder
Anoniem: 49627 schreef op dinsdag 14 augustus 2007 @ 20:31:
[...]
De compiler is zo lief om helemaal niets te zeggen, die vertrouwt, om compleet ongegronde redenen, op mijn onuitputtelijke wijsheid.
@JVKA
Ik had dit fragment echt vlak daarvoor geschreven en viel gelukkig vrijwel direct op.
edit: ik snap nu wat je met 'reallife code' bedoeld. Ja het stond wat meer verspreid door de codeDit is uiteraard even het versimpelde voorbeeld.
Ik weet niet of het een bestaande term is. Ik ben bang van niet.

Fat Pizza's pizza, they are big and they are cheezy
- .oisyn
- Registratie: September 2000
- Nu online
Demotivational Speaker
:strip_exif()/u/12461/avatar.gif?f=community)
Dat is met de code die daar staat niet veel anders. Het enige verschil is dat het de eerste IMG tag moet zijn ipv gewoon de eerste tag. Geef dat ding dan gewoon een naamdingstje schreef op dinsdag 14 augustus 2007 @ 20:59:
[...]
Ik zou toch ook een dergelijke constructie gebruikt hebben ipv firstChild, om de simpele reden dat als ik over 2 jaar die code aanpas ik niet meer weet dat er ergens een methode is die verwacht dat de eerste child een img is. Je zou wel kunnen argumenteren 'documenteer het dan', maar uiteindelijk stop je een nieuwe requirement in je systeem dat de eerste child binnen je anker een image moet zijn, wat imho niet netjes is.

If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"
.oisyn schreef op dinsdag 14 augustus 2007 @ 21:48:
[...]
Dat is met de code die daar staat niet veel anders. Het enige verschil is dat het de eerste IMG tag moet zijn ipv gewoon de eerste tag. Geef dat ding dan gewoon een naam

If you can't beat them, try harder
Anoniem: 114584
1
2
3
4
5
6
7
8
9
10
11
12
13
| switch(true) { case ($x == 1 || $x == 2 || $x == 3): ... break; case ($x == 4 || $x == 5): ... break; case ($x == 6 || $x == 7 || $x == 8): ... break; default: ... } |
Hier heeft iemand toch echt iets niet helemaal begrepen ...
Anoniem: 178962

Al kan zo'n dergelijke constructie wel handig zijn als de cases iets complexer zijn, vooral de default optie is dan erg handig (itt veel if's en elses).
[Voor 92% gewijzigd door Anoniem: 178962 op 16-08-2007 14:24]
Anoniem: 37526
Dat zeker. Al is dit wel een grappige, waarbij de X prima in de switch-parameter kan.Anoniem: 178962 schreef op donderdag 16 augustus 2007 @ 14:24:
Al kan zo'n dergelijke constructie wel handig zijn als de cases iets complexer zijn, vooral de default optie is dan erg handig (itt veel if's en elses).

Anoniem: 42901
1
2
3
4
5
6
| if (x) if (y) if (z) { // Uiteindelijke code } |

Anoniem: 42901
Dat was er inderdaad niet(en dat stond er eerder ook niet: tis niet weggehaald om vervolgens niet te worden gerefactored).Anoniem: 178962 schreef op donderdag 16 augustus 2007 @ 16:38:
Zonder een rijtje met else statements is die niet heel nuttig inderdaad.
1
2
3
4
5
6
7
8
9
| try { percentWeek.Add(((iplusplus - icurrent) / icurrent) * 100); } catch (Exception) { //Division by zero. percentWeek.Add(0); } |
Ik ging er vanuit dat de arrayList wel een DivisionByZero exception geeft als icurrent 0 is. Maar de arraylist voegt in dat geval 'infinity' toe.
sowieso vind ik een try catch een rare keus voor het opvangen van dit soort 'fouten'JMfx schreef op maandag 27 augustus 2007 @ 21:34:
C#:
1 2 3 4 5 6 7 8 9 try { percentWeek.Add(((iplusplus - icurrent) / icurrent) * 100); } catch (Exception) { //Division by zero. percentWeek.Add(0); }
Ik ging er vanuit dat de arrayList wel een DivisionByZero exception geeft als icurrent 0 is. Maar de arraylist voegt in dat geval 'infinity' toe.
zoiets is meer mijn style:
1
| percentWeek.add(icurrent>0?(iplusplus - icurrent) / icurrent * 100:0); |
(ow en je hebt nutteloze haakjes in je code

[Voor 3% gewijzigd door BasieP op 27-08-2007 21:39]
This message was sent on 100% recyclable electrons.
Nee, vreemd genoeg geven rekenoperaties op wederzijdse floats in C# geen exception als die resulteren in een NaN of Infinity waarde. Ben het in mijn 3D renderer vaak tegengekomen bij matrixtransformaties.JMfx schreef op maandag 27 augustus 2007 @ 21:34:
C#:
1 2 3 4 5 6 7 8 9 try { percentWeek.Add(((iplusplus - icurrent) / icurrent) * 100); } catch (Exception) { //Division by zero. percentWeek.Add(0); }
Ik ging er vanuit dat de arrayList wel een DivisionByZero exception geeft als icurrent 0 is. Maar de arraylist voegt in dat geval 'infinity' toe.
Certified smart block developer op de agile darkchain stack. PM voor info.
Wel geinig detail is dat de Math functies er ook prima mee overweg kunnen. Als je een oneindig getal in Math.Atan stopt (positief of negatief) komt er gewoon 90 of -90 graden uit (in radialen dan). Leuke is dat je met rondjes draaien dan ook gewoon door kan rekenen met overstaande gedeeld door aanliggende, ook op het moment dat je aanliggende 0 wordt.Not Pingu schreef op maandag 27 augustus 2007 @ 21:50:
[...]
Nee, vreemd genoeg geven rekenoperaties op wederzijdse floats in C# geen exception als die resulteren in een NaN of Infinity waarde. Ben het in mijn 3D renderer vaak tegengekomen bij matrixtransformaties.
Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack
Anoniem: 14829
"conditie ? true : false" probeer ik zoveel mogelijk te mijden. Een normale if/else wordt door de compiler net zo efficient gecompileerd, en is na een half jaar een stuk beter leesbaar voor m'n collega's en ook voor mijzelf.BasieP schreef op maandag 27 augustus 2007 @ 21:38:
sowieso vind ik een try catch een rare keus voor het opvangen van dit soort 'fouten'
zoiets is meer mijn style:
C#:
1 percentWeek.add(icurrent>0?(iplusplus - icurrent) / icurrent * 100:0);
(ow en je hebt nutteloze haakjes in je code)
Idem voor die 'nutteloze haakjes'. Niet iedereen heeft MVDWOA altijd direct paraat, en dan zijn wat extra haakjes een stuk verduidelijkender en voor de compiler maakt 't geen barst uit.
Anoniem: 178962
- .oisyn
- Registratie: September 2000
- Nu online
Demotivational Speaker
:strip_exif()/u/12461/avatar.gif?f=community)
Even for the record, je berekening heeft niets met een ArrayList te maken. Dat je de berekende waarde in de lijst wilt stoppen doet er niet toe - je berekent éérst de waarde, en daarna stop je 'm pas in de lijst. De lijst heeft geen controle over de berekening, en zal dus zelf ook geen DivisionByZero exception gooien (een ArrayList hoeft immers niets te delen).JMfx schreef op maandag 27 augustus 2007 @ 21:34:
C#:
1 2 3 4 5 6 7 8 9 try { percentWeek.Add(((iplusplus - icurrent) / icurrent) * 100); } catch (Exception) { //Division by zero. percentWeek.Add(0); }
Ik ging er vanuit dat de arrayList wel een DivisionByZero exception geeft als icurrent 0 is. Maar de arraylist voegt in dat geval 'infinity' toe.
If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"
Dus ik mag van een andere programmeur niet verwachtten dat 'ie de grammatica regels van z'n eigen programmeertaal onder de knie heeft? Net als dat ik niet mag verwachtten dat een programmeur basale syntax constructies onder de knie heeft zoals de ?: operator?Anoniem: 14829 schreef op maandag 27 augustus 2007 @ 23:41:
Niet iedereen heeft MVDWOA altijd direct paraat, en dan zijn wat extra haakjes een stuk verduidelijkender en voor de compiler maakt 't geen barst uit.
Als ik haakjes zie verwacht ik een afwijkende situatie, als dat niet het geval is vind ik ze maar on overzichtelijk en maken ze het juist onduidelijker.Anoniem: 178962 schreef op maandag 27 augustus 2007 @ 23:46:
Inderdaad, die haakjes zijn helemaal niet zo nutteloos, ze maken de code duidelijker leesbaar en helpen om fouten te voorkomen
Not Pingu schreef op maandag 27 augustus 2007 @ 21:50:
[...]
Nee, vreemd genoeg geven rekenoperaties op wederzijdse floats in C# geen exception als die resulteren in een NaN of Infinity waarde. Ben het in mijn 3D renderer vaak tegengekomen bij matrixtransformaties.
Heeft niemand jouw ooit verteld dat je altijd je variabelen moet controleren voordat je ze gebruikt? Verder behoort een exception een onverwachte situatie te zijn. Een variabele met de waarde 0 is zeker geen exception.JMfx schreef op maandag 27 augustus 2007 @ 21:34:
C#:
1 2 3 4 5 6 7 8 9 try { percentWeek.Add(((iplusplus - icurrent) / icurrent) * 100); } catch (Exception) { //Division by zero. percentWeek.Add(0); }
Ik ging er vanuit dat de arrayList wel een DivisionByZero exception geeft als icurrent 0 is. Maar de arraylist voegt in dat geval 'infinity' toe.
En dan hebben we het nog nieteens over de performance.
1
2
3
4
| if (icurrent == 0) //add 0 else //add calculated value |
Is een stuk sneller dan het afvangen van een exception. Je moet als programmeur altijd zoveel mogelijk exceptions voorkomen. Kijk ook eens na het geheugen gebruik van je applicatie wanneer je een exception optreed. Afhankelijk van je stacktrace pakt je programma eenvoudig 'ineens' 5mb extra. Op een desktop computer zal dat niet snel een probleem zijn (tenzij de gebruiker al flink aan het swappen is), maar op een server is dit dodelijk. Want daar heb je niet 1 bezoeker, maar vak tientallen en bij drukken sites soms wel duizenden requests per minuut op 1 machine.
Als laatste puntje wil je ik nog even op de naming guidelines van Microsoft wijzen.
If it isn't broken, fix it until it is..
Als je een DivisionByZero wilt krijgen, moet je niet met doubles / floats gaan werken, maar met decimals.JMfx schreef op maandag 27 augustus 2007 @ 21:34:
C#:
1 2 3 4 5 6 7 8 9 try { percentWeek.Add(((iplusplus - icurrent) / icurrent) * 100); } catch (Exception) { //Division by zero. percentWeek.Add(0); }
Ik ging er vanuit dat de arrayList wel een DivisionByZero exception geeft als icurrent 0 is. Maar de arraylist voegt in dat geval 'infinity' toe.
Digitaal onderwijsmateriaal, leermateriaal voor hbo
Je moet zowiezo geen DivisionByZero willen krijgengorgi_19 schreef op dinsdag 28 augustus 2007 @ 09:03:
[...]
Als je een DivisionByZero wilt krijgen, moet je niet met doubles / floats gaan werken, maar met decimals.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Anoniem: 43565
In dat geval is het toch een Exception i.p.v. een if-elserwb schreef op dinsdag 28 augustus 2007 @ 09:13:
[...]
Je moet zowiezo geen DivisionByZero willen krijgen

De vraag is dan of je het gewoon op nul wilt zetten ipv paniek wilt schoppen, schermpjes wilt oppoppen en logs wilt vol schrijven.
[Voor 21% gewijzigd door Anoniem: 43565 op 28-08-2007 09:29]
\JMfx schreef op maandag 27 augustus 2007 @ 21:34:
C#:
1 2 3 4 5 6 7 8 9 try { percentWeek.Add(((iplusplus - icurrent) / icurrent) * 100); } catch (Exception) { //Division by zero. percentWeek.Add(0); }
Ik ging er vanuit dat de arrayList wel een DivisionByZero exception geeft als icurrent 0 is. Maar de arraylist voegt in dat geval 'infinity' toe.
Als je specifiek de DivisionByZero exception wil handelen kan je overigens ook dit doen (even afgezien van het feit of dit met exceptions afhandelen het netst is:
1
2
3
4
5
6
7
| Try 'Code Catch zeroEx As DivideByZeroException 'Divide by zero afhandelen Catch ex As Exception 'overige fouten afhandelen End Try |
Als je ergens op wijst mag je dat wel iets uitgebreider doen. Linkje, waar gaat het mis etc. Dan kunnen we er nog wat van leren cq er over discusseren.Niemand_Anders schreef op dinsdag 28 augustus 2007 @ 08:48:
Als laatste puntje wil je ik nog even op de naming guidelines van Microsoft wijzen.

Je zou denken op basis van die naam dat het altijd 1 meer is dan icurrent (of i), maar waarom dan niet gewoon 1 (of 100, heb je meteen een percentage

{signature}
De haakjes zijn natuurlijk ter verduidelijking, daar lijkt mij niet zoveel mis mee. De ?: operators vind ik persoonlijk erg onduidelijk, veel onoverzichtelijker dan if / else. Ik zou die niet gebruiken. Wat betreft de naamgeving, de code loopt door een arraylist. Zie hieronder.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| for (int i = 0; i < balanceWeek.Count - 1; i++) { icurrent = Convert.ToDouble(balanceWeek[i]); iplusplus = Convert.ToDouble(balanceWeek[i + 1]); if (icurrent != 0) { percentWeek.Add(((iplusplus - icurrent) / icurrent) * 100); } else { //Prevent infinity being added to the arraylist. percentWeek.Add(0); } } |
{signature}
Zeker bij een desktop applicatie maakt het geheugengebruik mij absoluut niet uit, dan gebruik ik gewoon wat voor mij het meest makkelijke of duidelijke is. (Dat exceptions in dit geval misschien niet nodig zijn even buiten beschouwing gelaten). Door te kijken naar de implementatie van bepaalde features overtreed je trouwens ook nog een basis principe in het object georiënteerd denken namelijk de scheiding van interface (de taal) en implementatie (de compiler).Niemand_Anders schreef op dinsdag 28 augustus 2007 @ 08:48:
Is een stuk sneller dan het afvangen van een exception. Je moet als programmeur altijd zoveel mogelijk exceptions voorkomen. Kijk ook eens na het geheugen gebruik van je applicatie wanneer je een exception optreed. Afhankelijk van je stacktrace pakt je programma eenvoudig 'ineens' 5mb extra.
Waarschijnlijk omdat je (en anderen) alles op een regel probeert te proppen, wat compleet overbodig is. Meestal schrijf ik het daarom ook zo op:JMfx schreef op dinsdag 28 augustus 2007 @ 11:30:De ?: operators vind ik persoonlijk erg onduidelijk, veel onoverzichtelijker dan if / else.
1
2
3
4
5
| percentWeek.Add( icurrent != 0 ? (iplusplus - icurrent) / icurrent * 100 : 0 ); |
Maar waarom zou je deze manier van schrijven gebruiken? Je hebt nu meer coderegels dan het if / else equivalent (afgezien van wat haakjes). En de if / else is veel overzichtelijker.PrisonerOfPain schreef op dinsdag 28 augustus 2007 @ 11:59:
[...]
Waarschijnlijk omdat je (en anderen) alles op een regel probeert te proppen, wat compleet overbodig is. Meestal schrijf ik het daarom ook zo op:
C#:
1 2 3 4 5 percentWeek.Add( icurrent != 0 ? (iplusplus - icurrent) / icurrent * 100 : 0 );
Dit kan veel overzichtelijker zijn dan if else als je bijvoorbeeld variabelen wilt initialiseren o.b.v. bepaalde criteria. Je moet bij een if else je variabele vooraf (op null) initialiseren, met de ternary operator niet. Dan kan alles inline.JMfx schreef op dinsdag 28 augustus 2007 @ 13:29:
[...]
Maar waarom zou je deze manier van schrijven gebruiken? Je hebt nu meer coderegels dan het if / else equivalent (afgezien van wat haakjes). En de if / else is veel overzichtelijker.
1
2
3
| String test = (bladiebla != null) bladiebla.getStringOfzo() ? bladiebla.getStringOfzo() : "leeg"; |
Fat Pizza's pizza, they are big and they are cheezy
Anoniem: 178962
Tjah, dat kun je wel verwachten, maar dan nog moet je het met haakjes heel gemakkelijk kunnen lezen en weet je direct zonder ook maar na te denken wat er staat.PrisonerOfPain schreef op dinsdag 28 augustus 2007 @ 07:56:
[...]
Als ik haakjes zie verwacht ik een afwijkende situatie, als dat niet het geval is vind ik ze maar on overzichtelijk en maken ze het juist onduidelijker.
Hoe meer je moet nadenken bij het lezen van code, des te groter dat er fouten worden gemaakt, mensen maken namelijk nogal eens fouten bij het nadenken

Opmaak van formules als in nutteloze haakjes, spaties, enters, zelfs commentaar in de formule moet gewoon geen enkel probleem zijn en kun je alleen maar aanmoedigen als in ieder geval een poging de code beter leesbaar te maken.
Het is aan de programmeur natuurlijk om te bepalen wanneer dat het als overbodig overkomt en wanneer het nuttig is, als je daar niet goed in bent dan is het beste om gewoon altijd de haakjes te plaatsen dan ben je in ieder geval nog consistent.
Voor de compiler etc maakt het allemaal geen hol uit, dus wat dat betreft is er weinig reden het niet te doen (buiten jouw persoonlijke smaak, maar gezien je andere voorbeelden is die nogal anders als die van mij).
- .oisyn
- Registratie: September 2000
- Nu online
Demotivational Speaker
:strip_exif()/u/12461/avatar.gif?f=community)
Behalve het feit dat teveel haakjes dingen juist helemaal niet duidelijker maken, omdat je door de haakjes de grammatica niet meer kunt zien. Dat haakjes altijd verduidelijken is helemaal niet zonder meer waar.Anoniem: 178962 schreef op dinsdag 28 augustus 2007 @ 13:44:
[...]
Tjah, dat kun je wel verwachten, maar dan nog moet je het met haakjes heel gemakkelijk kunnen lezen en weet je direct zonder ook maar na te denken wat er staat.
If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"
Anoniem: 178962
.oisyn schreef op dinsdag 28 augustus 2007 @ 13:46:
[...]
Behalve het feit dat teveel haakjes dingen juist helemaal niet duidelijker maken, omdat je door de haakjes de grammatica niet meer kunt zien. Dat haakjes altijd verduidelijken is helemaal niet zonder meer waar.
Dat zeg ik Gamma..Anoniem: 178962 schreef op dinsdag 28 augustus 2007 @ 13:44:
[...]
Het is aan de programmeur natuurlijk om te bepalen wanneer dat het als overbodig overkomt en wanneer het nuttig is, als je daar niet goed in bent dan is het beste om gewoon altijd de haakjes te plaatsen dan ben je in ieder geval nog consistent.
Afhankelijk van de situatie kan dat wel degelijk een exception zijn. Bijvoorbeeld als er in principe nooit de mogelijkheid is dat die variabele op 0 kan staan.Niemand_Anders schreef op dinsdag 28 augustus 2007 @ 08:48:
Een variabele met de waarde 0 is zeker geen exception.
true, hoewel ik de voorkeur geef om vooral bij de ternary operator er een paar haakjes extra bij te doen. Juist om enige onduidelijkheid te voorkomen ook als dat niet echt nodig..oisyn schreef op dinsdag 28 augustus 2007 @ 13:46:
[...]
Behalve het feit dat teveel haakjes dingen juist helemaal niet duidelijker maken, omdat je door de haakjes de grammatica niet meer kunt zien. Dat haakjes altijd verduidelijken is helemaal niet zonder meer waar.
Maar is dat niet een andere discussie?

Rowdy.nl - X++ by day. C# by night. I drink coffee in the morning and beer in the evening.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Het aantal regels is niet relevant, noch het aantal tekens. Wat voor mij belangrijker is is dat je op deze manier minder dubbele code hebt (twee keer de percentWeek.Add aanroep).JMfx schreef op dinsdag 28 augustus 2007 @ 13:29:
[...]
Maar waarom zou je deze manier van schrijven gebruiken? Je hebt nu meer coderegels dan het if / else equivalent (afgezien van wat haakjes). En de if / else is veel overzichtelijker.
Zodra je een tijd ervaring hebt met een bepaalde programmeertaal mag je er toch vanuit gaan dat je de voorrangsregels van de betreffende taal kent? Zeker aangezien die regels meestal duidelijk in de manual gespecificeerd zijn. Een van de weinige keren dat ik haakjes prefereer is in PHP als && en and door elkaar gebruikt worden (die hebben namelijk andere voorrangsregels maar betekenen hetzelfde), maar goed dat word sowieso amper gebruikt. Als ik veel haakjes wou zien had ik wel voor een op s-expressions gebaseerde programmeertaal gekozen.Anoniem: 178962 schreef op dinsdag 28 augustus 2007 @ 13:44:
[...]
Tjah, dat kun je wel verwachten, maar dan nog moet je het met haakjes heel gemakkelijk kunnen lezen en weet je direct zonder ook maar na te denken wat er staat.
Anoniem: 178962


- .oisyn
- Registratie: September 2000
- Nu online
Demotivational Speaker
:strip_exif()/u/12461/avatar.gif?f=community)
En soms moet het:Janoz schreef op dinsdag 28 augustus 2007 @ 14:06:
Ik gebruik de ternary operator eigenlijk alleen bij het toekennen of bij het afdrukken. Vaak is het om een default waarde te kunnen gebruiken. Zeker wanneer je veel gegevens afdrukt (of append aan een later te gebruiken string) vind ik een if juist veel lelijker.
1
2
3
4
5
6
7
8
| class MyClass { MyOtherClass myVar; MyClass(bool myParam) : myVar(myParam ? 1 : 2) { } }; |
Wat tevens ook een van de belangrijkste redenen is waarom het ding überhaupt bestaat.
[Voor 7% gewijzigd door .oisyn op 28-08-2007 14:15]
If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"
Anoniem: 43158
Dit werkt toch wel gewoon bij mij als ik hiervan een println doe. Ik ben wel geen ervaren java programmeur dusja misschien mag ik de .toString() wel niet doen om dat bugje te krijgen.Anoniem: 49627 schreef op dinsdag 14 augustus 2007 @ 14:40:
Echt een 'slecht programmeervoorbeeld' is het niet maar toch een 'leuk' foutje/bugje dat ik vanmorgen had gemaakt.
Java:
1 new StringBuffer('[').append(someString).append(']');
Anoniem: 43158
De taal RPGIV waar ik in programmer kent enkel deze switchAnoniem: 114584 schreef op donderdag 16 augustus 2007 @ 14:21:
Ik weet niet of iets soortgelijks al langs gekomen is, maar dit kwam ik zojuist tegen:
PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 switch(true) { case ($x == 1 || $x == 2 || $x == 3): ... break; case ($x == 4 || $x == 5): ... break; case ($x == 6 || $x == 7 || $x == 8): ... break; default: ... }
Hier heeft iemand toch echt iets niet helemaal begrepen ...
1
2
3
4
5
| Select; When x = 1; .... Other; EndSl; |
Anoniem: 43158
De taal RPGIV waar ik in programmer kent enkel deze switchAnoniem: 114584 schreef op donderdag 16 augustus 2007 @ 14:21:
Ik weet niet of iets soortgelijks al langs gekomen is, maar dit kwam ik zojuist tegen:
PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 switch(true) { case ($x == 1 || $x == 2 || $x == 3): ... break; case ($x == 4 || $x == 5): ... break; case ($x == 6 || $x == 7 || $x == 8): ... break; default: ... }
Hier heeft iemand toch echt iets niet helemaal begrepen ...
1
2
3
4
5
| Select; When x = 1; .... Other; EndSl; |
Ja maargoed, je programmeert niet in een andere taal om je aan de regels van de vorige taal te houdenAnoniem: 43158 schreef op dinsdag 28 augustus 2007 @ 14:38:
[
[...]
De taal RPGIV waar ik in programmer kent enkel deze switch
Java:
1 2 3 4 5 Select; When x = 1; .... Other; EndSl;

PHP heeft nog wel niet voor niets case-fallthrough.

Kia e-Soul MY2020 64kWh ExecutiveLine
Dan zou ik toch nog eens even goed gaan kijken. Als ik het uitvoer is namelijk het haakje open verdwenen. Check eventueel ff javadocAnoniem: 43158 schreef op dinsdag 28 augustus 2007 @ 14:23:
[...]
Dit werkt toch wel gewoon bij mij als ik hiervan een println doe. Ik ben wel geen ervaren java programmeur dusja misschien mag ik de .toString() wel niet doen om dat bugje te krijgen.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
In teamverband volg ik gewoon de opgestelde regels, in alle andere gevallen kies ik wat mij het beste ligt (of de huidige coding guideline).Anoniem: 178962 schreef op dinsdag 28 augustus 2007 @ 14:12:
Je schrijft code dan ook niet zodat je het zelf goed kunt lezen, je schrijft code zodat een ander het goed kan lezen(En daarbij hopelijk ook zo dat je het zelf kunt lezen
)
Zag net nog een leuk voorbeeldje op wikipedia:
1
2
3
4
5
6
| vehicle = arg == 'B' ? bus : arg == 'C' ? car : arg == 'A' ? airplane : arg == 'T' ? train : arg == 'H' ? horse : feet; |
Ligt aan de situatie. Delen door 0 kan niet en als een getal dat als deler gebruikt wordt, na berekening uitkomt op 0, lijkt me dat een redelijk exception. Het is ook een stuk makkelijker met debuggen: ipv. alleen als resultaat te zien dat je app een stuk langzamer wordt door het afhandelen van NaN/Infinity, meteen een aanwijzing hebben waar de ongeldige waarde erinsluipt.Niemand_Anders schreef op dinsdag 28 augustus 2007 @ 08:48:
Heeft niemand jouw ooit verteld dat je altijd je variabelen moet controleren voordat je ze gebruikt? Verder behoort een exception een onverwachte situatie te zijn. Een variabele met de waarde 0 is zeker geen exception.
Als je een gigantische hoop rekenwerk doet (bijv. een stel matrixtransformaties) is het niet altijd even makkelijk om te achterhalen waar het nou fout ging. Zeker at debugtime wil je dan die informatie hebben.
Certified smart block developer op de agile darkchain stack. PM voor info.

Zelf een waarde toe gaan kennen in een dergelijke context lijkt me eerder fout. Wanneer je een percentage uitrekend over een bepaalde periode en de periode blijkt 0 te zijn dan is bij een groei de groei inderdaad oneindig en bij een gelijk gebleven hoeveelheid (0/0) inderdaad de groei ongedefinieerd. Inf en NaN zijn de enige juiste uitkomsten uit een dergelijke berekening.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
http://worsethanfailure.com/
edit: en dan voornamelijk het code deel

[Voor 29% gewijzigd door apNia op 28-08-2007 15:45]
Anoniem: 43158
en dit is mijn code:
1
2
3
4
5
6
7
8
9
10
11
| public class ExportData { public static void main(String[] args) { StringBuffer buff = new StringBuffer().append('[').append("Test").append(']'); System.out.println(buff.toString()); } } |
Het probleem zat em in de constructor-aanroep, probeer dit maar eens:Anoniem: 43158 schreef op dinsdag 28 augustus 2007 @ 15:45:
ik krijg deze output in de commandline: [Test]
en dit is mijn code:
Java:
1...
1
2
3
4
5
6
| public class ExportData { public static void main(String[] args) { StringBuffer buff = new StringBuffer('[').append("Test").append(']'); System.out.println(buff.toString()); } } |
De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"
Anoniem: 43565
Er kan ook een exception uit komen. Hangt er van af of je ints of floats/doubles gebruikt.Janoz schreef op dinsdag 28 augustus 2007 @ 15:31:
Delen door 0 kan wel. Daar komt oneindig uit tenzij je 0 deelt door 0. "Delen door nul is flauwekul" is een rijmpje dat op de basisschool onderwezen wordt omdat het concept van oneindig nogal lastig uit te leggen is. Hetzelfde geldt voor de wortel uit een negatief getal. Zoals riezebosch eerder al aangaf kun je vaak nog wel gewoon verder rekenen met deze het resultaat van een delen door nul actie.
Zelf een waarde toe gaan kennen in een dergelijke context lijkt me eerder fout. Wanneer je een percentage uitrekend over een bepaalde periode en de periode blijkt 0 te zijn dan is bij een groei de groei inderdaad oneindig en bij een gelijk gebleven hoeveelheid (0/0) inderdaad de groei ongedefinieerd. Inf en NaN zijn de enige juiste uitkomsten uit een dergelijke berekening.
Voor Java:
int/0 geeft een ArithmeticException.
float/0 geeft Infinity
0.0/0 geeft NaN
0.0/0.0 geeft NaN
float/0.0 geeft Infinity
Is certificeringsstof en er zit 'een' vorm van logica in

Ja, maar die code is nu eenmaal niet hetzelfde als de geposte code heAnoniem: 43158 schreef op dinsdag 28 augustus 2007 @ 15:45:
ik krijg deze output in de commandline: [Test]
en dit is mijn code:
Java:
1 2 3 4 5 6 7 8 9 10 11 public class ExportData { public static void main(String[] args) { StringBuffer buff = new StringBuffer().append('[').append("Test").append(']'); System.out.println(buff.toString()); } }

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Ik weet het (/me is ook rijkelijk gecertificeerd), maar die beperking heeft vooral met het gebruikte datatype type te maken. In een int is namelijk lastig op te slaan dat het oneindig of NaN is.Anoniem: 43565 schreef op dinsdag 28 augustus 2007 @ 15:56:
[...]
Er kan ook een exception uit komen. Hangt er van af of je ints of floats/doubles gebruikt.
Voor Java:
int/0 geeft een ArithmeticException.
float/0 geeft Infinity
0.0/0 geeft NaN
0.0/0.0 geeft NaN
float/0.0 geeft Infinity
Is certificeringsstof en er zit 'een' vorm van logica in
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Maar in welk geval wil je dat? Ervan uitgaande dat de berekeningen die je wilt implementeren wiskundig gewoon kloppen en nuldeling ofwel per definitie wordt afgevangen of niet mogelijk hoort te zijn, is een nuldeling gewoon een onverwacht iets.Janoz schreef op dinsdag 28 augustus 2007 @ 15:31:
Zoals riezebosch eerder al aangaf kun je vaak nog wel gewoon verder rekenen met deze het resultaat van een delen door nul actie.
Bovendien heeft doorrekenen met die infinitywaarde geen enkele zin, want dat had waarschijnlijk een betekenisvolle real-waarde moeten zijn die nu niet meer betekenisvol is (behalve dan als aanwijzing dat er iets fout gaat in je code).
Dan kun je mensen wel uitmaken voor kleuters, maar het feit blijft dat infinity/nan in de meeste gevallen een showstopper is. Je kunt het goed functioneren van je code dan niet meer garanderen.
Certified smart block developer op de agile darkchain stack. PM voor info.
Het punt is dat een berekening waar Inf uitkomt waarschijnlijk gewoon Inf uit hoort te komen. De uitkomst Inf is dus helemaal geen teken dat er iets fout gegaan is.
De enige fouten die in een computer voorkomen zijn eerder overflows en afrondfouten.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
- .oisyn
- Registratie: September 2000
- Nu online
Demotivational Speaker
:strip_exif()/u/12461/avatar.gif?f=community)
Nou zou ik delen door 0 en de wortel van een negatief getal niet bepaald over 1 kam willen scheren. De wortel uit een negatief getal is goed-gedefinieerd en geeft een complex getal. De oneindigheid als gevolg van deling door 0 is echter niet helemaal correct. Als je het zou benaderen dan klopt het idd:Janoz schreef op dinsdag 28 augustus 2007 @ 15:31:
Delen door 0 kan wel. Daar komt oneindig uit tenzij je 0 deelt door 0. "Delen door nul is flauwekul" is een rijmpje dat op de basisschool onderwezen wordt omdat het concept van oneindig nogal lastig uit te leggen is. Hetzelfde geldt voor de wortel uit een negatief getal
limx -> 0 (1/x) = 0.
Maar volgens wiskundige definities kun je een reëel getal niet delen door 0. Het is ongedefinieerd. Het zou alles kunnen zijn, want x*0 = 0 voor alle x. De basisschool was daadwerkelijk correct (itt de stelling over de wortel van negatieve getallen)
If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"
Anoniem: 43565
ik ben geen wiskundige maar ik dacht dat je een Exception kreeg omdat delen door 0 gewoon niet kan en een Inf, omdat een float nooit exact nul hoeft te zijn (afrondingsfouten) en dus gelezen kan worden als oneindig klein.Janoz schreef op dinsdag 28 augustus 2007 @ 16:17:
[...]
Ik weet het (/me is ook rijkelijk gecertificeerd), maar die beperking heeft vooral met het gebruikte datatype type te maken. In een int is namelijk lastig op te slaan dat het oneindig of NaN is.
Maar dan hou je inderdaad NaN over wat een betere uitkomst zou zijn en dat kun je inderdaad niet in een int opslaan.
- .oisyn
- Registratie: September 2000
- Nu online
Demotivational Speaker
:strip_exif()/u/12461/avatar.gif?f=community)
Inf staat voor infinity, niet voor infinitesimal. IEEE floats hebben geen aparte representatie voor infinitesimal. Een deling door 0 geeft gewoon infinity, tenzij de noemer ook 0 is, dan geeft het indefinite (ofwel NaN)Anoniem: 43565 schreef op dinsdag 28 augustus 2007 @ 17:04:
[...]
ik ben geen wiskundige maar ik dacht dat je een Exception kreeg omdat delen door 0 gewoon niet kan en een Inf, omdat een float nooit exact nul hoeft te zijn (afrondingsfouten) en dus gelezen kan worden als oneindig klein.
If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"
Anoniem: 43565
ik bedoel dat een deling door infinitesmall infinity opleverd..oisyn schreef op dinsdag 28 augustus 2007 @ 18:29:
[...]
Inf staat voor infinity, niet voor infinitesimal. IEEE floats hebben geen aparte representatie voor infinitesimal. Een deling door 0 geeft gewoon infinity, tenzij de noemer ook 0 is, dan geeft het indefinite (ofwel NaN)
m.i. geeft 0 zelf namelijk in alle gevallen alles danwel niets als uitkomst en zijn computers gewoon gek
[Voor 12% gewijzigd door Anoniem: 43565 op 28-08-2007 18:39]
- .oisyn
- Registratie: September 2000
- Nu online
Demotivational Speaker
:strip_exif()/u/12461/avatar.gif?f=community)

If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"
"tenzij de noemer ook 0 is" Ik neem aan dat je de teller bedoelt..oisyn schreef op dinsdag 28 augustus 2007 @ 18:29:
Een deling door 0 geeft gewoon infinity, tenzij de noemer ook 0 is, dan geeft het indefinite (ofwel NaN)
Maar dat is niet juist. Stel dat de teller positief is. Als de noemer (0) positief zou zijn, is het resultaat inderdaad Inf. Maar als de noemer negatief zou zijn, is het resultaat -Inf. Maar geen van beide stellingen zijn waar, immers 0 is niet kleiner en ook niet groter dan 0.
Waarom is 0/0 eigenlijk geen 1, zoals geldt voor elke andere x?.oisyn schreef op dinsdag 28 augustus 2007 @ 16:35:
[...]
Nou zou ik delen door 0 en de wortel van een negatief getal niet bepaald over 1 kam willen scheren. De wortel uit een negatief getal is goed-gedefinieerd en geeft een complex getal. De oneindigheid als gevolg van deling door 0 is echter niet helemaal correct. Als je het zou benaderen dan klopt het idd:
limx -> 0 (1/x) = 0.
Maar volgens wiskundige definities kun je een reëel getal niet delen door 0. Het is ongedefinieerd. Het zou alles kunnen zijn, want x*0 = 0 voor alle x. De basisschool was daadwerkelijk correct (itt de stelling over de wortel van negatieve getallen)
Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack
- .oisyn
- Registratie: September 2000
- Nu online
Demotivational Speaker
:strip_exif()/u/12461/avatar.gif?f=community)
Even voor de goede orde, hier had ik het natuurlijk over de IEEE floating point regels, dat stuk heb je echter uit de quote gehaald. Niet dat het correcte wiskunde is (waarvan ik al eerder heb aangegeven dat het dat niet is)
If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"
- .oisyn
- Registratie: September 2000
- Nu online
Demotivational Speaker
:strip_exif()/u/12461/avatar.gif?f=community)
Je bedoelt als in x/x? Waarom is het dan geen 0, zoals voor elke andere x in 0/x?riezebosch schreef op dinsdag 28 augustus 2007 @ 23:23:
[...]
Waarom is 0/0 eigenlijk geen 1, zoals geldt voor elke andere x?
If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"
Na herschrijven was het 10 regels code met behoorlijke variabelen en haakjes en goede enters en indentin ( plus 2 regels comments ). Meeste collega´s zagen nu in 1 oogopslag wat het deed.
En na navragen bij programmeur was het een optimalisatie slag die welgeteld ,08 sec afhaalde van een functie die gewoon 1 sec duurde. Toen collega maar even uitgelegd dat dit een compleet overbodige optimalisatie was die meer koste dan het opleverde ( collega´s negeerden deze regels gewoon omdat het te veel tijd koste om te gaan uitzoeken wat het deed ).
Betreffende collega had trouwens wel meer van dit soort kuntstukjes in zijn code gebouwd, regels kan ik maar 255 tekens lang maken,ach tja als je een beetje gaat concatenaten kan ik meerdere regels van 255 tekens maken die gewoon 1 statement zijn ( hoogtepunt 21 regels over 1 statement doen en dan raar opkijken als je collega´s jouw code weigeren te debuggen . Alleen maar omdat de debugger alleen maar per statement/regel keek dus als hier iets fout in ging dan kon iemand even 21 regels samengeperste troepcode op het oog gaan zitten debuggen of herschrijven.... )
Maar ja, gelukkig is het al enkele jaren een ex-collega...

Zie ook de commentaren ...
/me gaat maar eens omschrijven ... zitten bugs in

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
kenneth schreef op donderdag 30 augustus 2007 @ 13:04:
Zie ik in onze code ergens ranzige datefuncties (met variabelenamen als i, j, k, l, m, n) ... ik vroeg me af waar het vandaan kwam ... blijkt het hier te zijn http://www.codeproject.com/csharp/GregToISO.asp
Zie ook de commentaren ...
/me gaat maar eens omschrijven ... zitten bugs in
1
2
3
4
5
| using System; using System.Globalization; Calendar c = new Calendar(); int weekNumberISO = c.GetWeekOfYear(someTime, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday); |

Toen ik zag wat de code zou moeten doen, wist ik al 99% zeker dat dit gewoon in het .NET framework zit. Dat soort dingen voel je gewoon aan ... zou je denken

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
"template_id 0 is de actieve, want zodra deze niet meer actief is wordt hij handmatig hernoemd naar max(template_id)+1".
Oftewel: De oudste niet-actieve template is id 1, en de nieuwste niet-actieve template is 20 en 0 is de actieve. logisch!

[Voor 0% gewijzigd door ikke007 op 30-08-2007 15:49. Reden: typo]
Lets remove all security labels and let the problem of stupidity solve itself
Mwah, blindelings vertrouwen op correcte implementatie van wat ingewikkelder date-functions wordt je in bepaalde omgevingen keihard afgeleerd, hoor. Het is al enige tijd terug, maar ik heb ooit de ingebouwde weeknummer-functie moeten herschrijven (en dat is ook vrij onleesbare code geworden - soit, het werkt, en er is geen denkbare reden om het voor 2300 aan te passen) omdat de Australische leverancier erin geslaagd was om alleen het Amerikaanse weeknummer te implementeren (dus niet ISO) en dat nog fout te doen ook.kenneth schreef op donderdag 30 augustus 2007 @ 14:43:
Toen ik zag wat de code zou moeten doen, wist ik al 99% zeker dat dit gewoon in het .NET framework zit. Dat soort dingen voel je gewoon aan ... zou je denken

Digitaal onderwijsmateriaal, leermateriaal voor hbo
Oh, zeker met datumfuncties ben ik zeer terughoudend geworden ja, maar waarom zou je een buggy (!) implementatie maken van iets wat al in 't framework zit? Als het al beter is, zeg dan waarom. Maar blijkbaar wist deze meneer gewoon niet van het bestaan af van System.Globalization.Dido schreef op donderdag 30 augustus 2007 @ 16:08:
[...]
Mwah, blindelings vertrouwen op correcte implementatie van wat ingewikkelder date-functions wordt je in bepaalde omgevingen keihard afgeleerd, hoor.
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
Een buggy implementatie is natuurlijk sowieso nooit een alternatief (hell, als je het dan doet, dan test je het toch geautomatiseerd even door voor de eerstvolgende x00 jaar?).kenneth schreef op donderdag 30 augustus 2007 @ 16:18:
Oh, zeker met datumfuncties ben ik zeer terughoudend geworden ja, maar waarom zou je een buggy (!) implementatie maken van iets wat al in 't framework zit? Als het al beter is, zeg dan waarom. Maar blijkbaar wist deze meneer gewoon niet van het bestaan af van System.Globalization.
En als er een werkende implementatie bestaat verdient het vaak aanbeveling die te gebruiken, natuurlijk.
Dit topic is gesloten.
Uiteraard is het in dit topic niet de bedoeling dat andere users en/of topics aangehaald worden om ze voor gek te zetten. Lachen om je eigen code, of over dingen die je "wel eens tegengekomen bent" is prima, maar hou het onderling netjes.
