[alg] Slechtste programmeervoorbeelden deel 4 Vorige deel Overzicht Laatste deel

Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.

Pagina: 1 ... 97 ... 103 Laatste
Acties:
  • 993.595 views

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
GrimaceODespair schreef op dinsdag 06 november 2012 @ 17:05:
Eigenlijk zou er voor Threading zoiets als een rijbewijs moeten zijn: Je mag niet aan threading doen als je geen Threading-bewijs hebt. Anders ben je strafbaar.
En dan gewoon oldskool vingers afhakken enzo!

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
Hydra schreef op dinsdag 06 november 2012 @ 17:07:
[...]


En dan gewoon oldskool vingers afhakken enzo!
9 vingers afhakken zodat je niet meer kunt multitasken met je vingers?

Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 18-09 15:29
zzattack schreef op dinsdag 06 november 2012 @ 17:07:
[...]

Met soortgelijke boetes voor overtredingen dan wel! En verplicht op cursus bij te schrijnende overtredingen :D
Dan vind ik deze toch wel 3 dagen threading-ontzegging waard :+

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Dit topic is al te lang dood.

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function firstElementChecker(elem) {
    $(elem + ":first-child").addClass("firstElem");
}
function firstElementConverter(elem) {
    $(elem).addClass("firstElem");
}

function lastElementConverter(elem) {
    $(elem).addClass("lastElem");
}

// IE Only functions
function initIEonly() {
    firstElementConverter(".accordion > li, .foldOut > li");
    firstElementConverter(".accordion li > a, .foldOut li > a");
}


Naast de rare opzet gaat dit volgens mij niet helemaal doen wat het moet doen :+

  • YopY
  • Registratie: September 2003
  • Laatst online: 13-07 01:14
Nouja, het lijkt erop dat dit een IE-compatibility poging is, aangezien IE 7 en co geen CSS pseudo-selectors (:first-child) ondersteunen en je het dus niet voor styling kunt gebruiken. :first-child werkt echter wel in jquery, dus dit lijkt me een redelijke oplossing.

Hij doet het natuurlijk niet omdat hij het op alle li's onder iets met een class .accordion / .foldOut doet, maar dat terzijde.

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 22:59

chem

Reist de wereld rond

Nee, hij doet het niet omdat een multiple selector eenmalig wordt voorzien van een suffix.

En eerlijk gezegd is het netter als je dit server-side doet. IE is al zo'n ramp, om die ook nog extra JS voor te schotelen...

Klaar voor een nieuwe uitdaging.


  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
YopY schreef op donderdag 29 november 2012 @ 16:45:
Nouja, het lijkt erop dat dit een IE-compatibility poging is, aangezien IE 7 en co geen CSS pseudo-selectors (:first-child) ondersteunen en je het dus niet voor styling kunt gebruiken. :first-child werkt echter wel in jquery, dus dit lijkt me een redelijke oplossing.
IE ondersteunt sinds versie 7 toch echt wel :first-child hoor...

Acties:
  • 0 Henk 'm!

  • Chris7
  • Registratie: Maart 2011
  • Niet online
R4gnax schreef op donderdag 29 november 2012 @ 23:13:
[...]

IE ondersteunt sinds versie 7 toch echt wel :first-child hoor...
Volgens mij niet, dat soort selectors werkt pas sinds IE9. Ik heb het pasgeleden nog geprobeerd maar in IE <9 krijg je dan hele rare dingen...

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Niet "dat soort selectors", maar specifiek :first-child. Die werkte voor 8 weldegelijk. Wel een <!doctype> gebruik uiteraard.
MSDN: :first-child pseudo-class (Internet Explorer)

[ Voor 34% gewijzigd door .oisyn op 30-11-2012 16:05 ]

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.


Acties:
  • 0 Henk 'm!

  • Chris7
  • Registratie: Maart 2011
  • Niet online
Aha, inderdaad. Ik had blijkbaar alleen :last-child gebruikt en die werkt niet in oudere IE-versie's. Ik dacht dat ook first-child CSS3 is maar die zat al in 2.1.

Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 00:49
last-child of first-child, één van de twee werkt zelfs in IE6 als ik me niet vergis. Maar niet beide.

edit:
Chris7 schreef op vrijdag 30 november 2012 @ 19:15:
Aha, inderdaad. Ik had blijkbaar alleen :last-child gebruikt en die werkt niet in oudere IE-versie's. Ik dacht dat ook first-child CSS3 is maar die zat al in 2.1.
Aa, first-child werkt dus al in IE6.

[ Voor 61% gewijzigd door ZpAz op 30-11-2012 19:38 ]

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • Sitethief
  • Registratie: Mei 2002
  • Laatst online: 18-07 15:05

Sitethief

Silence..........

PHP:
1
2
3
4
5
6
$i=0;
$max = count($lsProducts);
while($i < $max) {
        //doeiets
        //doenogiets
}


En ik me maar afvragen waarom de code er zo lang over deed...

To rule the entire world your servants should be loyal .


Acties:
  • 0 Henk 'm!

  • Tsunami
  • Registratie: Juni 2002
  • Niet online
En daarom bestaat for, dan maak je dat soort fouten niet ;)

Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 07:07

Haan

dotnetter

Tsunami schreef op woensdag 05 december 2012 @ 11:58:
En daarom bestaat for, dan maak je dat soort fouten niet ;)
Dat is inderdaad les 1 of 2 als je begint met programmeren: "als je bij voorbaat al weet hoeveel iteraties je gaat doen, gebruik je een for-loop."

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
Tsunami schreef op woensdag 05 december 2012 @ 11:58:
En daarom bestaat for, dan maak je dat soort fouten niet ;)
Hoe bedoel je? :+
PHP:
1
2
3
4
for($i=0; $i < $max; $j++)
{
// DoStuff....
}

Acties:
  • 0 Henk 'm!

  • Rutix
  • Registratie: Augustus 2009
  • Laatst online: 05-09-2024
Davio schreef op woensdag 05 december 2012 @ 12:41:
[...]

Hoe bedoel je? :+
PHP:
1
2
3
4
for($i=0; $i < $max; $j++)
{
// DoStuff....
}
En daarom gebruik je geen php :)

Nothing to see here!


Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
ZpAz schreef op vrijdag 30 november 2012 @ 19:36:
last-child of first-child, één van de twee werkt zelfs in IE6 als ik me niet vergis. Maar niet beide.

edit:

[...]


Aa, first-child werkt dus al in IE6.
Nee, vanaf IE7. IE6 ondersteunt alleen de :first-letter en :first-line pseudos, misschien dat je daar mee in de war zit.

Tot en met IE8 bevat :first-child trouwens nog een leuke bug; als je een element dynamisch met JavaScript invoegt als eerste child element, dan zal het oude child element nog steeds gematched worden met de :first-child CSS rule. In IE7 tellen non-element SGML constructs zoals comments ook nog mee voor het bepalen van wat het eerste child element van een element is.

[ Voor 3% gewijzigd door R4gnax op 05-12-2012 13:15 ]


Acties:
  • 0 Henk 'm!

  • Tsunami
  • Registratie: Juni 2002
  • Niet online
Of je telt gewoon niet met willekeurige letters. i staat voor index, voor de rest kan je wel wat beters bedenken.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Tsunami schreef op woensdag 05 december 2012 @ 13:16:
Of je telt gewoon niet met willekeurige letters. i staat voor index, voor de rest kan je wel wat beters bedenken.
Wat je hoeft altijd maar over één index te itereren...

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • WormLord
  • Registratie: September 2003
  • Laatst online: 01-08 12:04

WormLord

Devver

RobIII schreef op woensdag 05 december 2012 @ 13:19:
[...]

Wat je hoeft altijd maar over één index te itereren...
Een tweede index waar je over wil itereren noem je natuurlijk ii.

Acties:
  • 0 Henk 'm!

  • Vaan Banaan
  • Registratie: Februari 2001
  • Niet online

Vaan Banaan

Heeft ook Apache ontdekt

Ik gebruik daar altijd de combi's I1 / l1 of l1 / ll voor.
Hangt er vanaf welke het slechtst in de IDE te onderscheiden is.
code:
1
2
Ik gebruik daar altijd de combi's I1 / l1 of l1 / ll voor.
Hangt er vanaf welke het slechtst in de IDE te onderscheiden is.

500 "The server made a boo boo"


Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
Vaan Banaan schreef op woensdag 05 december 2012 @ 22:04:
Ik gebruik daar altijd de combi's I1 / l1 of l1 / ll voor.
Hangt er vanaf welke het slechtst in de IDE te onderscheiden is.
code:
1
2
Ik gebruik daar altijd de combi's I1 / l1 of l1 / ll voor.
Hangt er vanaf welke het slechtst in de IDE te onderscheiden is.
Monospace O+
Afbeeldingslocatie: http://duft.nl/web/Schermafdruk%20van%202012-12-05%2022:26:43.png

[ Voor 9% gewijzigd door mcDavid op 05-12-2012 22:28 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Ach, zolang je binnen de lus niet met complexe getallen hoeft te rekenen voldoen i en opvolgend j prima dacht ik zo...

Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
Verwijderd schreef op woensdag 05 december 2012 @ 22:52:
Ach, zolang je binnen de lus niet met complexe getallen hoeft te rekenen voldoen i en opvolgend j prima dacht ik zo...
eens. Dat zie je ook in ongeveer 80% van de code van anderen (in alle talen)

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 18-09 15:29
nou ja, meer dan 2 lusjes in elkaar is sowieso dubieus. x, y en z voor 3 dimensies uitgezonderd, maar die noem je niet i en j...

Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 16-09 13:49

Patriot

Fulltime #whatpulsert

MBV schreef op donderdag 06 december 2012 @ 09:25:
nou ja, meer dan 2 lusjes in elkaar is sowieso dubieus. x, y en z voor 3 dimensies uitgezonderd, maar die noem je niet i en j...
Het is PHP hè, dus er zijn vast mensen die bijvoorbeeld een treemodelletje niet recursief hebben aangepakt maar gewoon met 40 lussen "want wie gaat er nou verder dan 40" :+

Brr.. ik zeg het als grap maar ik weet dat er iemand is geweest die het heeft gedaan..

Acties:
  • 0 Henk 'm!

  • Firesphere
  • Registratie: September 2010
  • Laatst online: 16-09 09:06

Firesphere

Yoshis before Hoshis

Patriot schreef op donderdag 06 december 2012 @ 09:55:
[...]


Het is PHP hè, dus er zijn vast mensen die bijvoorbeeld een treemodelletje niet recursief hebben aangepakt maar gewoon met 40 lussen "want wie gaat er nou verder dan 40" :+

Brr.. ik zeg het als grap maar ik weet dat er iemand is geweest die het heeft gedaan..
Raad eens wat ik van de week heb mogen fixen :X

I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 18-09 15:29
Sterkte! Ik heb wel eens een boom van 5 lagen diep gehad, maar de eerste 2 lagen waren dan een foreach die elke keer een functie processThirdThing($tree[i][j]) aanriep.

Ik bedoel dus een boom van eigenschappen: order bevat regels bevat producten bevat eigenschappen.

[ Voor 22% gewijzigd door MBV op 06-12-2012 16:00 ]


Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Patriot schreef op donderdag 06 december 2012 @ 09:55:
Het is PHP hè, dus er zijn vast mensen die bijvoorbeeld een treemodelletje niet recursief hebben aangepakt
Terzijde, ik vind recursieve functies ook meestal niet zo netjes. Moeilijk uit te breiden, te debuggen, eet stack space... toch leer je dat vaak op school. Zelf push ik altijd 'work items' op een stack/vector binnen een functie. Dan kan je ook nog switchen tussen breadth of depth first door van het begin of einde van je vector te lezen. (en dat geheel kan je natuurlijk weer generaliseren/templatizen oid)

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

YopY schreef op donderdag 29 november 2012 @ 16:45:
Nouja, het lijkt erop dat dit een IE-compatibility poging is, aangezien IE 7 en co geen CSS pseudo-selectors (:first-child) ondersteunen en je het dus niet voor styling kunt gebruiken. :first-child werkt echter wel in jquery, dus dit lijkt me een redelijke oplossing.

Hij doet het natuurlijk niet omdat hij het op alle li's onder iets met een class .accordion / .foldOut doet, maar dat terzijde.
Ik snap wat ie denkt dat het moet doen, maar dat doet het dus niet. Nu voegt ie gewoon aan alle li's die class toe :+

Daarnaast is het inderdaad sinds IE7 niet meer nodig en zelfs die ondersteunen we praktisch niet meer.

Daarnaast, heb je echt 3 functies nodig waarvan de naam langer is dan de totale aanroep voor iets simpels als het toevoegen van een class? En als je dat al doet, wil je dan niet liever gewoon de element-set gebruiken ipv een selector-string? Nu krijg je bij die bovenste dus iets raars dat ie string concat moet doen voor iets waar het niet echt een fijne oplossing is (en breekt op meerdere element-selectors, dan pakt ie alleen de laatste) :P

[ Voor 22% gewijzigd door Bosmonster op 06-12-2012 17:10 ]


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 18-09 15:29
Zoijar schreef op donderdag 06 december 2012 @ 16:37:
[...]

Terzijde, ik vind recursieve functies ook meestal niet zo netjes. Moeilijk uit te breiden, te debuggen, eet stack space... toch leer je dat vaak op school. Zelf push ik altijd 'work items' op een stack/vector binnen een functie. Dan kan je ook nog switchen tussen breadth of depth first door van het begin of einde van je vector te lezen. (en dat geheel kan je natuurlijk weer generaliseren/templatizen oid)
En daarom heeft PHP ook recursieve foreach, en ik dacht zelfs map/reduce achtige zaken.

Acties:
  • 0 Henk 'm!

  • L-VIS
  • Registratie: April 2005
  • Laatst online: 18-09 13:57

Acties:
  • 0 Henk 'm!

  • boe2
  • Registratie: November 2002
  • Niet online

boe2

'-')/

Zoijar schreef op donderdag 06 december 2012 @ 16:37:
[...]

Terzijde, ik vind recursieve functies ook meestal niet zo netjes. Moeilijk uit te breiden, te debuggen, eet stack space... toch leer je dat vaak op school. Zelf push ik altijd 'work items' op een stack/vector binnen een functie. Dan kan je ook nog switchen tussen breadth of depth first door van het begin of einde van je vector te lezen. (en dat geheel kan je natuurlijk weer generaliseren/templatizen oid)
Dat lijkt me wel HEEL omslachtig als je simpelweg een treeview wil weergeven.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind.' - Pratchett.


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 18-09 15:29
Alleen 2 functionele cookies voor de load balancer, lijkt mij niet zo'n probleem :? Er stonden nog wat cookies van nos.nl, als je die weggooit worden ze niet opnieuw aangemaakt.

Acties:
  • 0 Henk 'm!

  • L-VIS
  • Registratie: April 2005
  • Laatst online: 18-09 13:57
Er stonden eerder nog google analytics cookies! Maar die twee cookies zijn in mijn ogen wel een probleem als je site cookievrij heet.

Acties:
  • 0 Henk 'm!

  • Puc van S.
  • Registratie: Maart 2002
  • Laatst online: 18-09 14:29
L-VIS schreef op dinsdag 11 december 2012 @ 10:41:
Er stonden eerder nog google analytics cookies! Maar die twee cookies zijn in mijn ogen wel een probleem als je site cookievrij heet.
En al helemaal als je beweert dat je zelfs voor functionele cookies toestemming hoort te vragen:
https://twitter.com/laram/status/278418507807461377

[http://www.okbreijnen.nl] [Overwatch] [Cennahysh]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

boe2 schreef op dinsdag 11 december 2012 @ 10:14:
[...]


Dat lijkt me wel HEEL omslachtig als je simpelweg een treeview wil weergeven.
Even los van of je het ermee eens bent of niet, het is absoluut niet omslachtig, laat staan "HEEL" omslachtig.

[ Voor 5% gewijzigd door .oisyn op 11-12-2012 11:28 ]

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.


Acties:
  • 0 Henk 'm!

  • Tarilo
  • Registratie: December 2007
  • Laatst online: 18-09 16:54
PHP:
1
$rTransactie = "SELECT * FROM $tabel WHERE TRUE ORDER BY DATUM";

Dit soort pareltjes vind ik dagelijks in productiecode. Ik zal maar niet beginnen over de kwaliteit van de rest can de code... :X

Acties:
  • 0 Henk 'm!

  • JohnStaakke
  • Registratie: Oktober 2007
  • Laatst online: 09-09 15:17
_O-

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Tarilo schreef op dinsdag 11 december 2012 @ 15:13:
PHP:
1
$rTransactie = "SELECT * FROM $tabel WHERE TRUE ORDER BY DATUM";

Dit soort pareltjes vind ik dagelijks in productiecode. Ik zal maar niet beginnen over de kwaliteit van de rest can de code... :X
Daadwerkelijk in productie-code of in sql-logs?

Het 2e kan ik me nog enigszins voorstellen als iemand met string concatenation query's zit op te bouwen en hierbij toevallig geen where heeft.
Maar het 1e... 8)7

Acties:
  • 0 Henk 'm!

  • lauwsa
  • Registratie: Juli 2010
  • Laatst online: 10-09 20:43
Volgens mij kwam ik vroeger een keer uit op een vergelijkbaar probleem als dit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "iostream"

using namespace std;

int main()
{
    double valueA = 1.0;
    double valueB = 0.0;

    for( int i = 0; i < 10; i++)
        valueB += 0.1;

    cout << (valueA == valueB ? "Equal\n" : "Not equal\n");

    return 0;
}


Resultaat: Not equal. De compiler heeft gelijk, maar als je de vaules uitprint dan denk je echt: Waarom komt dat toch niet uit. Eigenlijk staat er gewoon 1 == 0.9999999999. Dus idd not equal.

Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

lauwsa schreef op maandag 24 december 2012 @ 11:06:
Volgens mij kwam ik vroeger een keer uit op een vergelijkbaar probleem als dit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "iostream"

using namespace std;

int main()
{
    double valueA = 1.0;
    double valueB = 0.0;

    for( int i = 0; i < 10; i++)
        valueB += 0.1;

    cout << (valueA == valueB ? "Equal\n" : "Not equal\n");

    return 0;
}


Resultaat: Not equal. De compiler heeft gelijk, maar als je de vaules uitprint dan denk je echt: Waarom komt dat toch niet uit. Eigenlijk staat er gewoon 1 == 0.9999999999. Dus idd not equal.
Het is wel heel logisch en dit soort dingen zou eigenlijk elke programmeur ook moeten weten. Een float kan namelijk geen 0.1 representen.

Ik weet dat het eigenlijk niet helemaal correct is maar meestal doe ik gewoon abs(a-b) < 1.0E-5 aangezien mijn getallen meestal in de buurt van 1.0 liggen.

http://www.cygnus-softwar...loats/comparingfloats.htm

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Zoijar schreef op maandag 24 december 2012 @ 11:52:
Het is wel heel logisch en dit soort dingen zou eigenlijk elke programmeur ook moeten weten. Een float kan namelijk geen 0.1 representen.
Het gaat hier over doubles en of 0.1 wel of niet exact kan hangt volgens mij af van het platform.

Acties:
  • 0 Henk 'm!

  • Koppensneller
  • Registratie: April 2002
  • Laatst online: 17-09 22:56

Koppensneller

winterrrrrr

Een double is gewoon een float met meer precisie :)

Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Olaf van der Spek schreef op maandag 24 december 2012 @ 11:55:
Het gaat hier over doubles en of 0.1 wel of niet exact kan hangt volgens mij af van het platform.
Meh, doubles, floats, reals... :)

Ja, de decimalxx IEEE 754 formats zijn idd decimaal, maar ken jij platformen die dat gebruiken? Ergens bij banken wellicht? (ik heb geen idee, nog nooit ergens gezien)

[ Voor 5% gewijzigd door Zoijar op 24-12-2012 11:59 ]


Acties:
  • 0 Henk 'm!

  • Herko_ter_Horst
  • Registratie: November 2002
  • Niet online

"Any sufficiently advanced technology is indistinguishable from magic."


  • lauwsa
  • Registratie: Juli 2010
  • Laatst online: 10-09 20:43
Ik ben nog maar een hobbyist hé ;). Of ja, ik begin over een maand met Informatica in Eindhoven. Dus dat klopt bijna niet meer.

Ik had toen zelf trouwens geen floats gebruikt, die krijg ik aangeleverd. Ik wilde er een vergelijking mee maken wat dus niet zo goed lukte dan verwacht. Maar och, daar leer je van.

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
Zoijar schreef op maandag 24 december 2012 @ 11:58:
[...]
Ja, de decimalxx IEEE 754 formats zijn idd decimaal, maar ken jij platformen die dat gebruiken? Ergens bij banken wellicht? (ik heb geen idee, nog nooit ergens gezien)
Waarschijnlijk niet, of tenminste met een eigen sausje er overheen. IEEE 854 is de originele IEEE standaard voor radix-independent floating points, maar deze standardiseerde de interne binaire representatie niet, waardoor data interchange tussen veel software eigenlijk niet te garanderen valt zonder afspraken over het gebruik van een aansluitende interne representatie. (Pas met IEEE 754-2008, een herziene versie uit 2008 die ook een herziene versie van IEEE 854 bevat, is deze gestandardiseerd.)

Acties:
  • 0 Henk 'm!

  • HeSitated
  • Registratie: April 2009
  • Laatst online: 03-12-2024
Geen code voorbeeld (die ziet er zelfs nog gestructureerd uit :)), maar alleen de gedachte al: maandag een vb-script debuggen van 3400 regels...

:X

Acties:
  • 0 Henk 'm!

  • JohnStaakke
  • Registratie: Oktober 2007
  • Laatst online: 09-09 15:17
Iemand op mijn FB die dit post:

Afbeeldingslocatie: https://fbcdn-sphotos-h-a.akamaihd.net/hphotos-ak-prn1/16708_443957929002786_1979930881_n.jpg

En het dan nog gaat zitten verdedigen ook. So wrong in so many ways.

Acties:
  • 0 Henk 'm!

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

L-VIS schreef op dinsdag 11 december 2012 @ 10:41:
Er stonden eerder nog google analytics cookies! Maar die twee cookies zijn in mijn ogen wel een probleem als je site cookievrij heet.
Staan er bij mij ook 2 van, oeps :'(

Wel grappig dat met al het gepraat over tree's ik een stamboom reclame krijg op deze pagina :9

Last.fm | Code Talks


Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 23:49
JohnStaakke schreef op vrijdag 04 januari 2013 @ 00:08:
Iemand op mijn FB die dit post:

[afbeelding]

En het dan nog gaat zitten verdedigen ook. So wrong in so many ways.
Gelukkig maar dat je oneindig veel tijd hebt om te leren, date('d-m-Y') levert namelijk '07-01-2013' op :P (kun je functies uberhaupt wel met een hoofdletter beginnen in PHP trouwens?

Maargoed, het runt toch niet, 'd' zal niet herkend worden zonder dollarteken er voor.

[ Voor 7% gewijzigd door Avalaxy op 04-01-2013 00:40 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Avalaxy schreef op vrijdag 04 januari 2013 @ 00:38:
(kun je functies uberhaupt wel met een hoofdletter beginnen in PHP trouwens?
Jep:

Note: Function names are case-insensitive, though it is usually good form to call functions as they appear in their declaration.
emphasis mine
Echter:
Variables in PHP are represented by a dollar sign followed by the name of the variable. The variable name is case-sensitive
emphasis mine
Mooi spul jonguh! :X
PHP:
1
2
3
4
5
$x = 'A';
$X = 'B';

echo sprintf("%s : %s\r\n", $x, $X);
EchO SprIntF("%s : %s\r\n", $x, $X);

A : B
A : B
Avalaxy schreef op vrijdag 04 januari 2013 @ 00:38:
Maargoed, het runt toch niet, 'd' zal niet herkend worden zonder dollarteken er voor.
Evenals het ontbreken van de quotes om 'd-m-Y' om nog maar eens een obvious fout aan te wijzen...

[ Voor 83% gewijzigd door RobIII op 04-01-2013 01:32 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • lauwsa
  • Registratie: Juli 2010
  • Laatst online: 10-09 20:43
JohnStaakke schreef op vrijdag 04 januari 2013 @ 00:08:
Iemand op mijn FB die dit post:

[afbeelding]

En het dan nog gaat zitten verdedigen ook. So wrong in so many ways.
Hopen dat hij geen PHP in zijn tentamen krijgt ;).

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Olaf van der Spek schreef op maandag 24 december 2012 @ 11:55:
[...]

Het gaat hier over doubles en of 0.1 wel of niet exact kan hangt volgens mij af van het platform.
In een binair talstelsel heeft 0.1 hetzelfde probleem als 1/3 heeft in het decimale talstelsel. Het enige verschil tussen float of double is dat je gewoon meer 'cijfers achter de komma' hebt en er dus iets minder naast zit.

Tenzij je met platform ook platformen bedoeld die onderliggend niet met bits werken....

/oudekoe

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • steveman
  • Registratie: Mei 2001
  • Laatst online: 18-09 18:41

steveman

Comfortabel ten onder

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php

$date = "07-01-13";
$d = Date("d-m-y");

if ($date == $d) {
    echo "We are screwed dude!";
}
else {
    echo "Nog tijd om te leren voor proeftentamen :)";
}?>


Omfg ik verveel me echt...

Tevens, jeej m'n eerste php-dingetje

"Take the risk of thinking for yourself. Much more happiness, truth, beauty, and wisdom will come to you that way." -Christopher Hitchens | In memoriam? 🏁 ipv kruis!


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Dus op 8-1-13 heb je nog tijd om voor je tentamen te leren? :P

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 16-09 13:49

Patriot

Fulltime #whatpulsert

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

// TODO: Knappe taal gebruiken
$date = strtotime('07-01-2013');

if (time() >= $date) {
    echo "We are screwed dude!";
}
else {
    echo "Still screwed, using PHP";
}

?>

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Janoz schreef op vrijdag 04 januari 2013 @ 10:14:
In een binair talstelsel heeft 0.1 hetzelfde probleem als 1/3 heeft in het decimale talstelsel. Het enige verschil tussen float of double is dat je gewoon meer 'cijfers achter de komma' hebt en er dus iets minder naast zit.
Dat is niet het enige verschil, het bereik van double is ook groter.
Tenzij je met platform ook platformen bedoeld die onderliggend niet met bits werken....
Daar doelde ik inderdaad op, maar dat is vooral een theoretisch issue.

Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Janoz schreef op vrijdag 04 januari 2013 @ 10:14:
Tenzij je met platform ook platformen bedoeld die onderliggend niet met bits werken....
Als je echt wilt mierenneuken (oid), dan maakt het niet uit wat het plaform onderliggend gebruikt maar wat de float representatie betekent. Standaard floats zijn uitgedrukt in machten van (-)2; de decimale floats schrijf je ook in bits maar de basis is in machten van 10 waardoor je wel 0.1 kan uitdrukken. Al moet je dan wel hardware support hebben om met die bit-reeksen te rekenen, althans als het efficient moet. Fixed point 8 bits kan je ook opvatten als een getal van 0 tot 2.55 in stapjes van 0.01. Dan heb je een platform dat onderliggend met bits werkt maar in een decimale basis.

Acties:
  • 0 Henk 'm!

  • lauwsa
  • Registratie: Juli 2010
  • Laatst online: 10-09 20:43
C++:
1
char * test = new char[length] + 1;


Oops, misschien voortaan beter kijken wat je "toevoeg" :S. Wel leuk, op Windows met een x86 CPU kreeg ik er geen problemen mee. Op Debian met een ARM CPU krijg ik er wel problemen mee. Op Ubuntu met een x86 CPU kreeg ik er geen problemen mee.

Ook nog leuk:

C++:
1
2
3
4
5
6
7
8
int dataSize = data.size();

for ( int i = 0; i < dataSize; i++)
{
    if( data[i] == 'x')
        data = blabla();
    //Wat kan er nu toch fout gaan xD
}

[ Voor 24% gewijzigd door lauwsa op 07-01-2013 12:39 ]


Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

lauwsa schreef op maandag 07 januari 2013 @ 12:37:
C++:
1
char * test = new char[length] + 1;


Oops, misschien voortaan beter kijken wat je "toevoeg" :S. Wel leuk, op Windows met een x86 CPU kreeg ik er geen problemen mee. Op Debian met een ARM CPU krijg ik er wel problemen mee. Op Ubuntu met een x86 CPU kreeg ik er geen problemen mee.
Wat voor problemen dan? Je mag wel 1 bij een pointer optellen. Je moet het niet casten naar int oid en dan unaligned lezen, maar verder zie ik het probleem niet?

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Als je een char array van 'length' bytes alloceert dan wil je er waarschijnlijk ook 'length' bytes instoppen :). Daarnaast heb je nog een probleem met delete[].

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.


Acties:
  • 0 Henk 'm!

  • BarôZZa
  • Registratie: Januari 2003
  • Laatst online: 06:39
Niet zo zeer slecht, maar wel enorm lelijk en vermakelijk. De meest betrouwbare manier om een file upload te stylen met behulp van CSS.

Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.fileupload {
    width: 100px;
    height: 50px;
    position: relative;
    overflow: hidden;
    background: ...; /* and other things to make it pretty */
}

.fileupload input {
    position: absolute;
    top: 0;
    right: 0; /* not left, because only the right part of the input seems to
                 be clickable in some browser I can't remember */
    cursor: pointer;
    opacity: 0.0;
    filter: alpha(opacity=0); /* and all the other old opacity stuff you
                                 want to support */
    font-size: 300px; /* wtf, but apparently the most reliable way to make
                         a large part of the input clickable in most browsers */
    height: 200px;
}

Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 16-09 15:42

Sebazzz

3dp

lauwsa schreef op maandag 07 januari 2013 @ 12:37:
Oops, misschien voortaan beter kijken wat je "toevoeg" :S. Wel leuk, op Windows met een x86 CPU kreeg ik er geen problemen mee. Op Debian met een ARM CPU krijg ik er wel problemen mee. Op Ubuntu met een x86 CPU kreeg ik er geen problemen mee.
Op Windows met x86 in release mode neem ik aan? Ik kan me niet voorstellen dat je in debug mode er niet uit klapt.

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Sebazzz schreef op maandag 07 januari 2013 @ 23:28:
[...]

Op Windows met x86 in release mode neem ik aan? Ik kan me niet voorstellen dat je in debug mode er niet uit klapt.
Ligt aan de rest van de code. Zonder delete[] gaat het misschien nog wel, mogelijk schrijf je ergens een 0 teveel weg.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Heap corruption van dat blok (dus als je buiten de bounds van de array schrijft) wordt pas gedetecteerd bij het vrijgeven van het blok (of bij het aanroepen van een heap check functie). Maar daar komt ie natuurlijk nooit, want diezelfde delete[] gaat nu sowieso fout.

Aangezien lauwsa zegt dat er "geen problemen mee waren" roept ie dus nooit delete[] aan. En ja, dan zal het gemiddeld gezien wel vaak goed gaan. Geheugenallocaties onder VC++ zijn standaard 8-bytes aligned, dus voor elke 'length' die geen veelvoud van 8 is kun je er rustig een byte extra achteraan plakken :P

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.


Acties:
  • 0 Henk 'm!

  • lauwsa
  • Registratie: Juli 2010
  • Laatst online: 10-09 20:43
Hmm, de code kwam niet echt in een fase waar hij de chars moest verwijderen. Dat was juist het vervelende, je hebt het nog steeds zo gevonden maar dan weet je tenminste meteen wat het probleem is. Bij een delete zal hij een Debug asserion failed geven in Debug mode en in release mode zal hij hoogst waarschijnlijk vast lopen in de HeapFree functie.

Ik neem aan dat de Compiler bijbouwt hoe groot de geheugen blokken zijn die hij vrij gegeven heeft? Als er uit getreden word zal hij dat denk ik detecteren dat er wat niet klopt. Of doet hij dat op een andere manier?

Maar waarom gaat het eigenlijk niet fout op Debian met een ARM CPU? Op Ubuntu en op Debian gebruik ik zo ver ik weet G++. Het kan ook nog zijn dat op Debian daar kritische data stond.

[ Voor 9% gewijzigd door lauwsa op 08-01-2013 08:58 ]


Acties:
  • 0 Henk 'm!

  • lauwsa
  • Registratie: Juli 2010
  • Laatst online: 10-09 20:43
Sebazzz schreef op maandag 07 januari 2013 @ 23:28:
[...]

Op Windows met x86 in release mode neem ik aan? Ik kan me niet voorstellen dat je in debug mode er niet uit klapt.
Zolang je niks verwijderd niet:

C++:
1
2
3
4
5
6
7
8
9
    char * test = new char[2];
    test[0] = 'a';
    test[1] = '\0';

    char * test2 = new char[3] + 1;
    test2[0] = 'a';
    test2[1] = 'a';
    test2[2] = 'a';
    test2[3] = '\0';


Als je delete[] gebruikt natuurlijk wel, op debug sowieso en op release waarschijnlijk ook. Edit: getest, op beide modes gaat het niet goed met delete.

[ Voor 5% gewijzigd door lauwsa op 08-01-2013 08:59 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Bij test2 schrijf je overigens 2 bytes voorbij het einde ;)

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.


Acties:
  • 0 Henk 'm!

  • lauwsa
  • Registratie: Juli 2010
  • Laatst online: 10-09 20:43
I know, dat gebeurde ook in het voorbeeld daar boven.
Ik schrijf iets met de lengthe: length er in, en zet een \0 aan het einden.

Die +1 was bedoeld voor de \0. Wat dus bij de pointer op geteld word waardoor er 2 plaatsen “verspilt” worden.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Oh zo :D

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.


Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

lauwsa schreef op dinsdag 08 januari 2013 @ 09:52:
I know, dat gebeurde ook in het voorbeeld daar boven.
Ik schrijf iets met de lengthe: length er in, en zet een \0 aan het einden.

Die +1 was bedoeld voor de \0. Wat dus bij de pointer op geteld word waardoor er 2 plaatsen “verspilt” worden.
Oh, ok, ja, als je out of bounds schrijft en een niet gealloceerde pointer delete dan snap ik wel dat dat fout gaat :)

Acties:
  • 0 Henk 'm!

  • Houbie
  • Registratie: Mei 2010
  • Laatst online: 12-09 19:54
Ooit gelezen in mijn eerste jaar informatica (van een medestudent)

Java:
1
2
3
int getInt(int n) {
   return n;
}

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Simonhoubracken schreef op dinsdag 08 januari 2013 @ 16:03:
Ooit gelezen in mijn eerste jaar informatica (van een medestudent)

Java:
1
2
3
int getInt(int n) {
   return n;
}
Zo slecht is het niet, voor educatie doeleinden. Verder is het natuurlijk wel doelloos, maar misschien was die persoon gewoon dingen aan het uitproberen. Van een eerstejaars student moet je ook niet verwachten dat die alleen maar productieniveau code schrijft. Heeft iig een leesbare naam die redelijk beschrijft wat de functie doet. :P

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • Geerrrt
  • Registratie: Juli 2008
  • Laatst online: 18-09 13:00
Kwam deze laatst nog een keer tegen in oude code:

Java:
1
2
3
public boolean checkState(TestRoom testRoom) {
    return this.checkState(testRoom);
}


En het maar niet zien :(

Eury#2434


Acties:
  • 0 Henk 'm!

Verwijderd

Dat is wel dom ja. Kreeg je geen warning van je IDE?

Acties:
  • 0 Henk 'm!

  • lauwsa
  • Registratie: Juli 2010
  • Laatst online: 10-09 20:43
Je cpu zal dat leuk gevonden hebben ;).

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
lauwsa schreef op woensdag 09 januari 2013 @ 19:41:
Je cpu zal dat leuk gevonden hebben ;).
Anderhalve nanoseconde ja, daarna krijg je gewoon een stack overflow ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
RobIII schreef op woensdag 09 januari 2013 @ 19:55:
[...]

Anderhalve nanoseconde ja, daarna krijg je gewoon een stack overflow ;)
Ligt eraan, met tail recursie optimalistie niet per se.

Acties:
  • 0 Henk 'm!

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 07:03
slecht? Niet echt. Slordig? Dat zeker.
Kwam net tijdens het refactoren onderstaand if statement tegen in een stukje code. What was I thinking??? |:( :+

C#:
1
2
if (!UseDebtorsOnOrderForm)
            phFormDebtor.Visible = false;

Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

pdebie schreef op vrijdag 11 januari 2013 @ 13:56:
slecht? Niet echt. Slordig? Dat zeker.
Kwam net tijdens het refactoren onderstaand if statement tegen in een stukje code. What was I thinking??? |:( :+

C#:
1
2
if (!UseDebtorsOnOrderForm)
            phFormDebtor.Visible = false;
Je bedoelt de ontbrekende braces? Een doodzonde idd. Gebruik nooit een if-statement zonder braces. Dat een nieuw-ontwikkelde taal het uberhaupt ondersteund vind ik al een fout van C# trouwens.

@onder: ja, dat snap ik :)

[ Voor 16% gewijzigd door Zoijar op 11-01-2013 14:09 ]


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Leesbaarder dus minder foutgevoelig:

C#:
1
phFormDebtor.Visible = UseDebtorsOnOrderForm;

[ Voor 3% gewijzigd door CodeCaster op 11-01-2013 14:09 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 07:03
@CodeCaster: dat is het dus inderdaad geworden ;)

@Zoijar: Als er maar 1 regel volgt gebruik ik nooit braces, tenzij er een else achter komt.
Bij elke if braces gebruiken vind ik het minder leesbaar door worden. Maar dat is persoonlijk denk ik.

Ik doe het zelf dus zo:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//-------------------------------------------
//exclusief else

if(foo)
  bar();

//-------------------------------------------
//inclusief else

if(foo)
{
  bar();
}
else
{
  otherFunction();
}

[ Voor 3% gewijzigd door PdeBie op 11-01-2013 14:15 ]


Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

pdebie schreef op vrijdag 11 januari 2013 @ 14:14:
@Zoijar: Als er maar 1 regel volgt gebruik ik nooit braces, tenzij er een else achter komt.
Bij elke if braces gebruiken vind ik het minder leesbaar door worden. Maar dat is persoonlijk denk ik.
Brace-style valt over te twisten, maar je weet niet of er in de toekomst maar 1 regels volgt. Je ziet soms dit:

C++:
1
2
3
4
5
6
7
8
9
if (blah blah lbha lbha)
    // if bla we do blah blah
    // because blah blahblah
    // also see blah blah
    visibility = false;

// continue processing

foo();

En dan voegt iemand achter visibility = false ook later nog toe, scale = 0... Het is foutgevoelig en onhandig. Als je maar 1 regel wilt gebruiken:

C++:
1
if (blah)  {vis = false;}


Over brace style doe ik trouwens dit, maar dat is persoonlijk:

C++:
1
2
3
4
5
if (a) {
   //
} else {
   //
}

Ik vind teveel verticaal wit de code lastig leesbaar maken. Schermen zijn al veel breder dan hoger tegenwoordig.

Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

CodeCaster schreef op vrijdag 11 januari 2013 @ 14:08:
Leesbaarder dus minder foutgevoelig:

C#:
1
phFormDebtor.Visible = UseDebtorsOnOrderForm;
Is alleen maar equivalent als er ook else phFormDebtor.Visible = true; achter zou staan :P

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 07:03
Dat is inderdaad puur een kwestie van gewenning denk ik ja.

Ik laat de braces juist verticaal uitlijnen, zodat ik makkelijker de begin en eind brace kan vinden (ook al markeert Visual Studio dit voor je als je de cursor erop zet). Binnen een brace inspringen uiteraard.

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if(foo) {
    if(foo2) {
        //do lot's of stuff here
    }
    else {
        //do a little bit here
    }

    var1 = bar3();
    
    //some comment
    //some comment
    //some comment
}


Mijn variant:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if(foo)
{
    if(foo2)
    {
        //do lot's of stuff here
    }
    else
    {
        //do a little bit here
    }

    var1 = bar3();
    
    //some comment
    //some comment
    //some comment
}


Iets verder scrollen inderdaad. Maar voor mij persoonlijk vind ik het verticaal uitlijnen leesbaarder.

[ Voor 25% gewijzigd door PdeBie op 11-01-2013 14:49 ]


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

"Jouw" variant is ook de standaardinstelling in VS.

Bij ons zijn standaardinstellingen heilig. Wel zo makkelijk, zowel wat betreft luiheid als het voorkomen van brace wars :)

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Dit vind ik het leesbaarst qua curly brackets/indenting:

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
<#
Voorbeeld met inspiratieloze variabelen 
#>

Function Veel-Ietsen()
    {
    ForEach ($Iets in $Ietsen)
        {
        While ($Iets -NE $IetsAnders)
            {
            If ($Iets -LT $NogIetsAnders)
                {
                Switch ($Iets -EQ $NogIets)
                    { 
                    1 {"Iets 1"} 
                    2 {"Iets 2"} 
                    3 {"Iets 3"} 
                    Default {"Oops"}
                    }
                }
            Else
                {
                #Nothing
                }
            Iets++
            }
        }
    }

Veel-Ietsen


Da's eigenlijk hetzelfde als wat jullie hierboven standaard vinden, behalve dat ik een tab meer doe om de codeblokken beter te onderscheiden (imho).

[ Voor 24% gewijzigd door YellowOnline op 11-01-2013 15:13 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

pdebie schreef op vrijdag 11 januari 2013 @ 14:47:
Mijn variant:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if(foo)
{
    if(foo2)
    {
        //do lot's of stuff here
    }
    else
    {
        //do a little bit here
    }

    var1 = bar3();
    
    //some comment
    //some comment
    //some comment
}
Met ^^^^

Wel of geen verplicht braces is imho ook erg afhankelijk van of je braces op dezelfde regel plaatst of niet.
C++:
1
2
3
4
5
6
7
8
9
10
11
12
// #1
if (x)
    doSomething();

// #2
if (x) {
    doSomething();

// #3
if (x)
{
    doSomething();

Het verschil tussen #1 en #2 is zo klein dat een fout zo gemaakt is. Dus als je #2 gebruikt zou ik #1 nooit gebruiken. Bij #3 is de openings-brace echter niet te missen en maak je zelden de fout dat je gewoon een regel toevoegt zonder de brace toe te voegen. Het is mij iig nog nooit overkomen (ja *letterlijk* nooit)

[ Voor 34% gewijzigd door .oisyn op 11-01-2013 15:24 ]

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.


Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Eigenlijk zou je een file formaat moeten hebben dat een soort ast opslaat en dat je die kan afbeelden hoe jij wilt (vergelijk, code in xml, editor met xsl/css stylesheet) en dat hij dan ook jouw invoer weer om kan zetten in het canonical formaat. Of bestaat dat al? (buiten smalltalk :) )

Het is toch eigenlijk raar dat programmeurs onderling afspraken moeten maken over de layout van de code en niet puur en alleen de werking?

[ Voor 23% gewijzigd door Zoijar op 11-01-2013 15:27 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Wat een beetje haaks staat op mijn vorige opmerking, tenzij je verplicht dat je altijd braces moet gebruiken omdat er nou eenmaal mensen zijn die #2 als persoonlijke voorkeur hebben (en dus fouten kunnen maken met jouw #1 code)

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.


Acties:
  • 0 Henk 'm!

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 07:03
Zoijar schreef op vrijdag 11 januari 2013 @ 15:24:
Het is toch eigenlijk raar dat programmeurs onderling afspraken moeten maken over de layout van de code en niet puur en alleen de werking?
Bij mijn vorige werkgever hadden we geen tot weinig afspraken hierover en dat zag je ook terug in de code.

Dat was voor mij destijds ontzettend onhandig, omdat ik in het ene project met de code van programmeur A zat te rommelen en bij een ander project met de code van programmeur B.
Beiden hielden hun eigen stijl er op na en ik moest dus regelmatig 2 of 3 keer lezen wat er nou stond.

Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Natuurlijk, het is belangrijk om afspraken erover te maken maar Zoijar heeft gelijk dat het raar is dat die afspraken nodig zijn.

Want:

C#:
1
2
3
if (i == 1) {
    result = "hello";
}



C#:
1
2
3
4
if ( i == 1 )
{
    result = "hello";
}


Daar zit toch geen verschil in voor een compiler? Zoveel conventies komen neer op gezanik over whitespace ... daar zou allang een geautomatiseerde oplossing voor moeten zijn. Check ik de code uit, krijg ik de code geformat zoals ik het wil, checkt mijn collega code uit, krijgt hij het geformat volgens zijn voorkeuren. Daar ligt een compiler echt niet wakker van en je dvcs-oplossing zou daar ook niet wakker van moeten liggen.

Het is de IT verdorie, wij zijn van het automatiseren van repetitieve oplossingen voor repetitieve problemen :P

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

Ja, maar als je geen braces doet, worden ze niet automagisch toegevoegd volgens mij? :P

Last.fm | Code Talks


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Valt ook wel een mouw aan te passen als je code als een AST is opgeslagen, zoals Zoijar zegt. En dan in je IDE een instelling "don't use braces when block contains a single statement" ...

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
kenneth schreef op vrijdag 11 januari 2013 @ 16:09:
Zoveel conventies komen neer op gezanik over whitespace ... daar zou allang een geautomatiseerde oplossing voor moeten zijn. Check ik de code uit, krijg ik de code geformat zoals ik het wil, checkt mijn collega code uit, krijgt hij het geformat volgens zijn voorkeuren. Daar ligt een compiler echt niet wakker van en je dvcs-oplossing zou daar ook niet wakker van moeten liggen.

Het is de IT verdorie, wij zijn van het automatiseren van repetitieve oplossingen voor repetitieve problemen :P
Het is een beetje opzetwerk, maar met git en astyle kan dat gewoon. Zie http://git-scm.com/book/ch7-2.html bij 'keyword expansion'.

Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

kenneth schreef op vrijdag 11 januari 2013 @ 16:19:
Valt ook wel een mouw aan te passen als je code als een AST is opgeslagen, zoals Zoijar zegt. En dan in je IDE een instelling "don't use braces when block contains a single statement" ...
Ik zou me zelfs nog voor kunnen stellen dat je behalve dat je een standaard lokale stylesheet kiest, je ook nog lokaal per file extra persoonlijke formatting aan zou kunnen geven die afwijkt van de default. Soort meta formatting hints.

[ Voor 15% gewijzigd door Zoijar op 11-01-2013 17:10 ]


Acties:
  • 0 Henk 'm!

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 18-09 18:18

deadinspace

The what goes where now?

@ de eeuwige brace-discussie: ik doe het graag zo:
C:
1
2
3
4
5
6
7
8
9
if( foo )
{
    if(foo2)
        baz1();
    else
        baz2();

    var1 = bar3();
}

Dus braces op nieuwe regels, vertikaal uitgelijnd onder het eerste karakter van het bijbehorende control-flow keyword, en geen braces voor 1-statement ifs/elses.

Ik vind dit persoonlijk een fijne balans; de braces op deze manier schrijven maakt het voor mij makkelijk blocks te zien, en ze weglaten bij 1-statement ifs (wat vrij veel voorkomt) beperkt de hoogte van de code weer een beetje. Ik kan me niet herinneren dat ik hiermee ooit ben vergeten braces toe te voegen voor een extra statement in de if-body.

Stiekem wilde ik dat meer talen aan semantische whitespace deden zoals Python...
Zoijar schreef op vrijdag 11 januari 2013 @ 15:24:
Eigenlijk zou je een file formaat moeten hebben dat een soort ast opslaat en dat je die kan afbeelden hoe jij wilt (vergelijk, code in xml, editor met xsl/css stylesheet) en dat hij dan ook jouw invoer weer om kan zetten in het canonical formaat. Of bestaat dat al? (buiten smalltalk :) )
In principe bestaat dat al, waar de kanonieke vorm "code met willekeurige formatting" is (feitelijk ook een AST-representatie ;)) en de display tools code formatters zijn :)

Niet zo technisch elegant als wat jij impliceerde, maar wel iets dat al bestaat en met huidige software kan werken :)
Het is toch eigenlijk raar dat programmeurs onderling afspraken moeten maken over de layout van de code en niet puur en alleen de werking?
Ja. Ach, misschien komen we daar nog wel eens van af, net zoals samenwerken zonder VCS tegenwoordig een beetje als onacceptabel wordt gezien...

Acties:
  • 0 Henk 'm!

  • Waster
  • Registratie: September 2006
  • Laatst online: 14-04 17:49
En wat is er mis met altijd braces op dezelfde regel.

code:
1
2
3
if (bla) {
    ..
}


Dan kosten try catch tenminste niet zoveel ruimte:

code:
1
2
3
4
5
6
7
8
try
{
    ..
}
catch (Exception e)
{
    ..
}
Pagina: 1 ... 97 ... 103 Laatste

Dit topic is gesloten.

Let op:
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. :)