Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 31-07 12:20

.oisyn

Moderator Devschuur®

Demotivational Speaker

Alleen zou dat een beetje het doel van de class voorbij gaan.

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.


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Java is echt zo'n Apple-taal: eerst roepen dat je dat helemaal niet nodig hebt en dat je zelfs beter bent omdat je het niet hebt, en het een jaar later dan met veel bombarie presenteren als nieuwe feature :)

Anoniem: 516179

Zoijar schreef op dinsdag 17 september 2013 @ 20:47:
[...]

Ik word zo moe van die meningen :) Wat als mijn mening nou is dat al het gras paars is. Zou je daar dan voorbij lezen en denken, och, ja, is z'n mening heh, moet kunnen, vrij land. Of zou je gewoon zeggen, ik denk dat jou mening niet helemaal juist is?
Meningen en feiten zijn iets heel anders. We hebben met z'n allen afgesproken een bepaalde golflengte van licht groen te noemen en aantoonbaar (meetbaar) reflecteert gras (onder wit licht) licht met de golflengte die valt in het gebied wat we groen noemen. Dat is dus een feit.

Dat staat nogal ver af van een mening over een codestijl, waar voor zo ver ik weet geen universele afspraken vergelijkbaar met de afspraken rondom kleuren van zijn. Daarnaast is je reactie een voorbeeld van een "Argumentum ad hominem" waarbij je de originele stelling voorbij gaat en in plaats daarvan mijn overige uitspraken aanvalt.
.oisyn schreef op dinsdag 17 september 2013 @ 22:29:
[...]


Als je niet in staat bent je mening te verdedigen, doe dan ook gewoon niet mee aan de discussie want dan is die mening geen moer waard.
Volgens mij heb ik dat wel gedaan? Ik heb in ieder geval geen tegenargument gezien buiten dat het onzin zou zijn en een achterlijke smiley. Plus een voorbeeld wat niet direct een realistische situatie is en dus geen goed voorbeeld van wat ik bedoel. Let ook op dat ik zeg "waarschijnlijk", er zijn dus prima situaties te bedenken waarbij de code wel goed is en whitespace de enige oplossing is. In de praktijk zal dat echter niet zo snel het geval zijn.

Als je een hele lijst van variabele declaraties met toekenningen hebt dan is het logisch dat je denkt: Pfoe das niet echt leesbaar zo.

Mijn mening is dat je dan niet moet gaan proberen met whitespace het meer leesbaar te maken, maar in plaats daarvan moet kijken naar de structuur van het geheel om te voorkomen dat je een hele lijst variabele declaraties met toekenningen hebt.

Oftewel: Onleesbare code is vaak op een ander niveau niet goed, dat proberen op te lossen met whitespace pakt niet de oorzaak aan, maar slechts een symptoom.

Daarnaast is het qua onderhoud niet echt handig, als je over de grens van spaties van je voorganger heen gaat moeten alle regels worden aangepast.

In de woorden van Robert C Martin met betrekking tot horizontale uitlijning: "If I have long lists that need to be aligned, the problem is the length of the lists, not the lack of alignment."

[ Voor 29% gewijzigd door Anoniem: 516179 op 18-09-2013 09:22 ]


  • Djesse8999
  • Registratie: April 2013
  • Laatst online: 31-07 21:25

Djesse8999

Houd van (T)weekend!

Iemand wel gehad dat ze in .bat ( of .cmd ) Bezig waren met een code en dan vergeten echo voor een hele zooi woord te zetten?

Verwijderd

Anoniem: 516179 schreef op woensdag 18 september 2013 @ 09:04:
[...]

Meningen en feiten zijn iets heel anders. We hebben met z'n allen afgesproken een bepaalde golflengte van licht groen te noemen en aantoonbaar (meetbaar) reflecteert gras (onder wit licht) licht met de golflengte die valt in het gebied wat we groen noemen. Dat is dus een feit.
Het mag zo zijn dat alle golflengtes A < X < B groen genoemd worden, een kleur bestaat niet uit een enkele golflengte, maar uit een menging van verschillende golflengtes. Of een bepaalde kleur groen is is volgens elke standaard weer anders.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 31-07 12:20

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dat niet alleen, als je het hebt over geel dan kan je nog steeds de kleur geel zien terwijl de golflengten totaal niet overeenkomen met de kleur geel. Kan bijv. ook een menging van rood en groen zijn, beide substantieel verschillend van geel, maar heeft dezelfde invloed op onze receptoren.

Een alien met receptoren voor een breed scala aan golflengtes zal waarschijnlijk denken: "WTF waarom zenden jullie TV's alleen mengels van R, G en B uit?!" 8)7

[ Voor 22% gewijzigd door .oisyn op 18-09-2013 17:12 ]

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.


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Anoniem: 516179 schreef op woensdag 18 september 2013 @ 09:04:
Meningen en feiten zijn iets heel anders. We hebben met z'n allen afgesproken een bepaalde golflengte van licht groen te noemen en aantoonbaar (meetbaar) reflecteert gras (onder wit licht) licht met de golflengte die valt in het gebied wat we groen noemen. Dat is dus een feit.

Dat staat nogal ver af van een mening over een codestijl, waar voor zo ver ik weet geen universele afspraken vergelijkbaar met de afspraken rondom kleuren van zijn. Daarnaast is je reactie een voorbeeld van een "Argumentum ad hominem" waarbij je de originele stelling voorbij gaat en in plaats daarvan mijn overige uitspraken aanvalt.
Codestijl zou je ook het effect kunnen meten met verschillende tests.

Dat over die golflengtes is wel grappig: dus dan kunnen we het eens zijn over het feit dat deze twee honden dezelfde kleur hebben, zelfde golflengtes immers :)

Afbeeldingslocatie: http://brainden.com/images/yellow-blue-dogs.jpg

Even tussendoor :)

Anyway, ik ga geen hele discussie aan over wat waarheid is etc. Ook een mening moet je verdedigen als je hem uit.

[ Voor 6% gewijzigd door Zoijar op 18-09-2013 18:41 ]


  • Puch-Maxi
  • Registratie: December 2003
  • Laatst online: 11:46
Ik moest een intersectie maken van twee lijsten, heb ik het volgende 'pareltje' bedacht:

Python: intersect.py
35
36
37
38
39
40
41
42
    inters = []
    for result in results:
        p1 = result['pos'][q1]
        p2 = result['pos'][q2]

        for item in p1:
            if item + 1 in p2 and item not in result:
                inters.append(item)

Was niet helemaal de bedoeling :+.

My favorite programming language is solder.


Verwijderd

Heeft python geen intersect methode?

Het is trouwens sneller als je beide lijsten sorteert en er daarna doorheen wandelt. Dat is O( n log(n) ).

  • Puch-Maxi
  • Registratie: December 2003
  • Laatst online: 11:46
Uiteraard heeft Python een intersect methode :). Gaat ongeveer zo geloof ik:

Python:
1
2
3
4
b1 = [1,2,3,4]
b2 = [0,3,4,5]

inters = set(b1).intersection(set(b2))

In dit geval wilde ik een intersectie maken van twee lijsten, zonder gebruik te maken van build-ins.
Mijn oplossing werkte wel (soort van), maar is niet echt efficiënt.

My favorite programming language is solder.


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Verwijderd schreef op woensdag 18 september 2013 @ 19:50:
Het is trouwens sneller als je beide lijsten sorteert en er daarna doorheen wandelt. Dat is O( n log(n) ).
Afhangend van verschillende factoren is hashen waarschijnlijk nog sneller. Theoretisch ammortized O(n). Wel meer space O(n) itt O(log n) voor inplace quicksort. Het hangt van je specifieke use-case af. Maar in ieder geval allebei een stuk beter dan O(n^2) :)

En parallel wordt het weer een heel ander verhaal.

[ Voor 5% gewijzigd door Zoijar op 18-09-2013 20:02 ]


Acties:
  • 0 Henk 'm!

Anoniem: 529096

Een paar dagen geleden had ik iets gepost over Java, dat ik niet haat overigens zoals werd gesuggereerd. Ik steek er alleen de draak mee ;)
Op dezelfde site staat ook een interview met Bjarne Stroustrup waarin hij uitlegt wat zijn motieven waren om de taal C++ te bedenken. http://harmful.cat-v.org/software/c++/I_did_it_for_you_all

Acties:
  • 0 Henk 'm!

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

Anoniem: 516179 schreef op woensdag 18 september 2013 @ 09:04:
[...]

Meningen en feiten zijn iets heel anders. We hebben met z'n allen afgesproken een bepaalde golflengte van licht groen te noemen en aantoonbaar (meetbaar) reflecteert gras (onder wit licht) licht met de golflengte die valt in het gebied wat we groen noemen. Dat is dus een feit.

Dat staat nogal ver af van een mening over een codestijl, waar voor zo ver ik weet geen universele afspraken vergelijkbaar met de afspraken rondom kleuren van zijn. Daarnaast is je reactie een voorbeeld van een "Argumentum ad hominem" waarbij je de originele stelling voorbij gaat en in plaats daarvan mijn overige uitspraken aanvalt.
Coding style zijn niet "zomaar" afspraken. Goeie coding style regels komen voort uit:
- observaties over hoe het menselijk brein (efficientst) informatie verwerkt
- observaties over hoe het menselijk brein (efficientst) informatie verzamelt
- observaties uit het verleden over wat wel en niet werkt
- observaties over de psyche van de programmeur (lazy bastards ;) )
- etc.

Dat jij ze afdoet als "zomaar afspraken" (met een naar ik lees denigrerende ondertoon) toont aan dat je dit nog niet helemaal begrepen hebt.

Er zijn maar 2 stakeholders wanneer je codeert: de eindgebruiker en de persoon die na jou die code moet wijzigen (wat jijzelf kan zijn). Coding rules zijn een onderdeel van het kwaliteitsprocess die voor die 2de stakeholder zorgt.

ASSUME makes an ASS out of U and ME


Acties:
  • 0 Henk 'm!

  • Hatsieflatsie
  • Registratie: Oktober 2011
  • Laatst online: 27-07 22:34
Voor iemand anders moest ik op een website wijzigen dat eerder door een developer ontwikkeld. Dus ik kreeg toeganggegevens. Even snel rondneuzen, en het enige wat mij meteen opviel, was dat alle 20 pagina's dezelfde inhoud hadden. Er was GEEN enkel verschil tussen alle pagina's, alleen het bestandsnaam was anders. :?

Inhoud is:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
//makes $page_nr in statement available;
global $page_nr; 

$host="XXX-weggehaald";
$user="XXX-weggehaald";
$password="XXX-weggehaald";
$dbname = "website";
$cxn = mysqli_connect($host, $user, $password, $dbname)
        or exit ("Couldn't connect to server");
$paginaurl=$_SERVER['REQUEST_URI'];

$catchpag1   = 'disclaimer.php';
$pag1 = strpos($paginaurl, $catchpag1);
    if ($pag1 == 1){
        $page_nr = 1;
    }

$catchpag2   = 'contact.php';
$pag2 = strpos($paginaurl, $catchpag2);

    if ($pag2 == 1){
        $page_nr = 2;
    }

$catchpag3   = 'assistance.php';
$pag3 = strpos($paginaurl, $catchpag3);

    if ($pag3 == 1){
        $page_nr = 3;
        }

[..KNIP..] Dat ging dus nog stuk of 30 regels door  8)7 [.. KNIP ..]

$query = "SELECT * FROM website WHERE page_nr = ".$page_nr;

$result = mysqli_query($cxn,$query)
            or exit ("Couldn't execute query.");

$row = mysqli_fetch_array($result);
echo $row['page_content'];

mysqli_close($cxn);
?>


Hmmz. Wat doet het nu?

Zo te zien maakt-ie een sql query, op basis van URL. Wat zou er dan in de tabel 'website' kunnen zitten waar de page_nr zit? Ik keek in de database, onder tabel websites.

En wat tref ik aan in content of page_nr 1?

HTML:
1
2
3
4
5
6
<html>
<title>blabla</title>
<body> 
Inhoud van die pagina's, overeenkomend met wat er opgevraagd is. 
</body>
</html>


Iedere content van ieder page_nr (cijfer verschillend) bevat HTML-pagina die allemaal van elkaar verschillen. Okay.. het werkt. Maar ben ik dom, of ontgaat mij het nut hiervan?

Die worden als code uitgespuugd met echo $row, zodat iedere pagina op basis van URL HTML-inhoud weergeeft. Wat is dit. 8)7

[ Voor 11% gewijzigd door Hatsieflatsie op 24-10-2013 19:17 ]


Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
Dit is een in-house ontwikkeld turbo CMS!!!

Nee, dit is gewoon een complete faal van iemand die de klok heeft horen luiden maar niet weet waar de klepel hangt.

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • Hatsieflatsie
  • Registratie: Oktober 2011
  • Laatst online: 27-07 22:34
Slecht of niet, creatief is het wel. :)

Zelden zo'n creatieve 'CMS'-like oplossing gezien. Ben wel benieuwd waarom-ie het zo doet.

[ Voor 27% gewijzigd door Hatsieflatsie op 25-10-2013 13:09 ]


Acties:
  • 0 Henk 'm!

  • Steevo_S
  • Registratie: September 2010
  • Laatst online: 21-07 13:50
Misschien dacht ie dat de mensen zo de page source niet kunnen kopieren XD

Clash of Clans - MISSeR :: #Y0JU9R98 ::


Acties:
  • 0 Henk 'm!

  • Devil
  • Registratie: Oktober 2001
  • Niet online

Devil

King of morons

Ik denk dat hij niet snapt hoe .htaccess werkt en dus maar een losse php pagina voor elke URL heeft gemaakt. En dan natuurlijk de html uit de database halen, want dat is hardstikke dynamisch :+

After all, we are nothing more or less than what we choose to reveal.


Acties:
  • 0 Henk 'm!

  • Zidane007nl
  • Registratie: Mei 2008
  • Laatst online: 09:29
Ik zat net een (saaie en lange) vragenlijst in te vullen van HBO Monitor, maar wat daar onderaan in de broncode staat ...

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- dirty patch -->
<script type="text/javascript">

  function checkDoRedirect() {
    if (window.location.protocol == 'http:'){
      var secureLink = 'https://' + window.location.host + window.location.pathname + window.location.search;
      window.location.href = secureLink;
    }
  }

  //change || to && to disable quickly!
  if ( true || false ){
    addEvent(window,"load",function(e){checkDoRedirect();});
  }

</script>


if true or false. :P

Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 03:26

F.West98

Alweer 16 jaar hier

Want // kende je nog niet :P
Oh wacht....

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Styxxy
  • Registratie: Augustus 2009
  • Laatst online: 12:57
Zidane007nl schreef op dinsdag 29 oktober 2013 @ 21:48:
Ik zat net een (saaie en lange) vragenlijst in te vullen van HBO Monitor, maar wat daar onderaan in de broncode staat ...
[...]
if true or false. :P
Gebruik ik ook regelmatig om stukken code aan en af te zetten hoor :-). Het is slordig dat het zichtbaar is op niet-development.
F.West98 schreef op dinsdag 29 oktober 2013 @ 22:09:
Want // kende je nog niet :P
Oh wacht....
Comments hebben het nadeel niet uitvoerbaar te zijn. Ik gebruik het bijvoorbeeld om stukken code snel uit te schakelen en eventueel tijdens debugging een breakpoint te zetten op de IF en geforceerd de IF laten uitvoeren; of rechtstreeks code wijzigen tijdens het debuggen :-) handig hoor.

[ Voor 36% gewijzigd door Styxxy op 30-10-2013 00:18 ]


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 15:13
waarom zou je niet gewoon "if (true)" neerzetten?

Acties:
  • 0 Henk 'm!

  • Pizzalucht
  • Registratie: Januari 2011
  • Laatst online: 10:07

Pizzalucht

Snotneus.

Zidane007nl schreef op dinsdag 29 oktober 2013 @ 21:48:
Ik zat net een (saaie en lange) vragenlijst in te vullen van HBO Monitor, maar wat daar onderaan in de broncode staat ...

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- dirty patch -->
<script type="text/javascript">

  function checkDoRedirect() {
    if (window.location.protocol == 'http:'){
      var secureLink = 'https://' + window.location.host + window.location.pathname + window.location.search;
      window.location.href = secureLink;
    }
  }

  //change || to && to disable quickly!
  if ( true || false ){
    addEvent(window,"load",function(e){checkDoRedirect();});
  }

</script>


if true or false. :P
Dit is natuurlijk gewoon wachten op een developer die er "true && false" in zet en het per ongeluk commit :+

Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 16:45
MBV schreef op woensdag 30 oktober 2013 @ 09:45:
waarom zou je niet gewoon "if (true)" neerzetten?
zou ik eerder gaan voor
JavaScript:
1
2
3
4
//if (false )
{ 
    addEvent(window,"load",function(e){checkDoRedirect();}); 
} 

Kan je het uitcommenten als je het snel wilt disablen.

Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Niet echt programmeer code maar wel een WTF?!?

Een REST request: api.ekomi.de/v2/getSettings?auth=0123|password&version=cust-1.0.0
Het resultaat: serialized php

Handige API als je niet met PHP werkt.

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Authenticatie middels de URL is ook een beetje 1992.

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


Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
DJMaze schreef op woensdag 30 oktober 2013 @ 13:27:
Niet echt programmeer code maar wel een WTF?!?

Een REST request: api.ekomi.de/v2/getSettings?auth=0123|password&version=cust-1.0.0
Het resultaat: serialized php

Handige API als je niet met PHP werkt.
Vooral ook een handige API voor iemand die bij alle klanten van ekomi een backdoor wil droppen...

Acties:
  • 0 Henk 'm!

Anoniem: 541917

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<form method="POST" action="insert.php">
    <table border="0" cellpadding="1" width="550" id="table1">
        <tr>
            <td width="340" align="right">Naam:</td>
            <td width="10">&nbsp;</td>
            <td width="200"><input class="form-control input-sm" name="Naam" type="text" size="30" placeholder="Naam" tabindex="1"></td>
        </tr>
        <tr>
            <td width="340" align="right">Adres:</td>
            <td width="10">&nbsp;</td>
            <td width="200"><input class="form-control input-sm" type="text" name="Adres" size="30" tabindex="1" placeholder="Adres"></td>
        </tr>
        <tr>
            <td width="340" align="right">Tel:</td>
            <td width="10">&nbsp;</td>
            <td width="200"><input class="form-control input-sm" type="text" name="Telefoon"  size="30" tabindex="1" placeholder="Tel. Nr."></td>
        </tr>
        <tr>
            <td width="340" align="right">Aantal personen:</td>
            <td width="10">&nbsp;</td>
            <td width="200"><input class="form-control input-sm" type="text" name="Personen" size="30" tabindex="1" placeholder="Aantal"></td>
        </tr>
        <tr>
            <td width="340" align="right">Aankomst uur:</td>
            <td width="10">&nbsp;</td>
            <td width="200"><input class="form-control input-sm" type="text" name="Uur" size="30" tabindex="1" placeholder="Uur"></td>
        </tr>
        <tr>
            <td width="340" align="right">&nbsp;</td>
            <td width="10">&nbsp;</td>
            <td width="200">&nbsp;</td>
        </tr>
    </table>
    <p>Vertel ons wat je zou willen eten!</p>
    <table border="0" cellpadding="1" width="550" id="table2">
        <tr>
            <td width="250" height="31"><b>Keuzes:</b></td>
            <td align="center" width="100" height="31"><b>Hoeveelheid</b></td>
            <td align="right" height="31" width="60"><b>Prijs </b></td>
            <td align="right" height="31" width="140"><b>Totaal bedrag</b></td>
        </tr>
        <tr>
            <td width="250">Mosselen met frieten:</td>
            <td align="center" width="100">
            <input type="text" name="Optie1" size="5" tabindex="5"></td>
            <td align="right" width="60">€ 16</td>
            <td align="right" width="140">
            <input type="text" size="12" tabindex="99"></td>
        </tr>
        <tr>
            <td width="250">Mosselen met brood:</td>
            <td align="center" width="100">
            <input type="text" name="Optie2" size="5" tabindex="5"></td>
            <td align="right" width="60">€ 16</td>
            <td align="right" width="140">
            <input type="text" size="12" tabindex="99"></td>
        </tr>
        <tr>
            <td width="250">Stoofvlees met frieten</td>
            <td align="center" width="100">
            <input type="text" name="Optie3" size="5" tabindex="5"></td>
            <td align="right" width="60">€ 10</td>
            <td align="right" width="140">
            <input type="text" size="12" tabindex="99"></td>
        </tr>
        <tr>
            <td width="250">Stoofvlees met brood</td>
            <td align="center" width="100">
            <input type="text" name="Optie4" size="5" tabindex="5"></td>
            <td align="right" width="60">€ 10</td>
            <td align="right" width="140">
            <input type="text" size="12" tabindex="99"></td>
        </tr>
        <tr>
            <td width="250">Curryworst met frieten</td>
            <td align="center" width="100">
            <input type="text" name="Optie5" size="5" tabindex="5"></td>
            <td align="right" width="60">€ 3</td>
            <td align="right" width="140">
            <input type="text" size="12" tabindex="99"></td>
        </tr>
        <tr>
            <td width="250">Mosselen met frieten <small>(kinder)</small></td>
            <td align="center" width="100">
            <input style="width:60px;" class="form-control input-sm" type="text" name="Optie6" size="5" tabindex="5" placeholder="0x"></td>
            <td align="right" width="60">€ 8</td>
            <td align="right" width="140">
            <input style="width:110px" class="form-control input-sm" type="text" size="12" tabindex="99" placeholder="Totaal bedrag"></td>
        </tr>
        <tr>
            <td width="250">Stoofvlees met frieten <small>(kinder)</td>
            <td align="center" width="100">
            <input style="width:60px" class="form-control input-sm" type="text" name="Optie7" size="4" tabindex="5" placeholder="0x" /></td>
            <td align="right" width="60">€ 5</td>
            <td align="right" width="140">
            <input style="width:110px;" class="form-control input-sm" type="text" size="4" tabindex="99" placeholder="Totaal bedrag"></td>
        </tr>
        <tr>
            <td width="250">&nbsp;</td>
            <td align="center" width="100">&nbsp;</td>
            <td align="right" width="60">&nbsp;</td>
            <td align="right" width="140">&nbsp;</td>
        </tr>
        <tr>
            <td width="250">
               <input class="btn btn-xs btn-success" type="button" value="Submit" onclick="this.form.submit()">
               <input class="btn btn-danger btn-xs" type="reset" value="Reset" />                   
            </td>
            <td align="center" width="100">&nbsp;</td>
            <td align="right" width="60"><b>Totaal:</b></td>
            <td align="right" width="140"><input type="text" name="Bedrag" size="9"></td>
        </tr>
    </table>
</form>


Weet begot niet waar ik het vandaan haalde om een week geleden dit te coden!

Acties:
  • 0 Henk 'm!

  • azerty
  • Registratie: Maart 2009
  • Laatst online: 10:46
1x Mosselen met friet AUB!

Het enige wat ik hiet kan aan opmerken is: waarom een tabel als je bootstrap (of een ander framework) gebruikt? Dat is het enige "slechte" wat ik eraan kan zien :p

Acties:
  • 0 Henk 'm!

Anoniem: 541917

wsitedesign schreef op donderdag 31 oktober 2013 @ 00:32:
1x Mosselen met friet AUB!

Het enige wat ik hiet kan aan opmerken is: waarom een tabel als je bootstrap (of een ander framework) gebruikt? Dat is het enige "slechte" wat ik eraan kan zien :p
Het is eigenlijk best useless! en gewoon cellspacing enz is toch niet meer van deze tijd? Wel? ben maar een trainee

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Anoniem: 541917 schreef op donderdag 31 oktober 2013 @ 00:35:
Het is eigenlijk best useless! en gewoon cellspacing enz is toch niet meer van deze tijd? Wel? ben maar een trainee
Een table is nog wel te verdedigen, border/cellspacing/alignment/widths e.d. doe je in je CSS, maar ik zie nog wel wat andere WTF's:

Afbeeldingslocatie: http://tweakers.net/ext/f/aUqptBJOo0mVHpaGCL0C4hYV/full.png
  • "Hoeveelheid" waar ik persoonlijk "Aantal" gebruikt zou hebben, "Tel" i.p.v. voluit "Telefoon(nummer)" (want wat kosten die paar letters extra je? En waarom in de placeholder dan "Tel. Nr."?) en dat soort (kleine) tekstuele dingetjes...
  • Voor alles een textbox 8)7
  • Het zelf laten invullen van 't totaal 8)7
  • Het inconsistente gebruik van placeholders (dan weer wel, dan weer niet)
  • Hoewel "toegestaan", de tabindex vind ik erg onlogisch (waarom niet gewoon sequentieel?)
  • Bovenop voorgenoemde border/cellspacing/alignment/widths e.d. ook nog eens inline styles
  • Table cells met &nbsp; ... (Her-en-der had mogelijk zelfs een colspan gekund i.p.v. een <td>&nbsp;</td>)
  • Markup voor "kolomkoppen" (<td><b>Blaat</b></td> i.p.v. gewoon th's gebruiken: <th>Blaat</th>)
  • onclick="this.form.submit()" op de submitbutton. Why? 8)7
Maar having said all that: ik vind 't niet echt "Slechtste programmeervoorbeelden"-waardig en het is niet de bedoeling dat je hier stiekem/verkapt code-reviews gaat (laten) doen.

[ Voor 24% gewijzigd door RobIII op 31-10-2013 01:18 ]

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!

Anoniem: 541917

RobIII schreef op donderdag 31 oktober 2013 @ 01:03:
[...]

Een table is nog wel te verdedigen, border/cellspacing/alignment/widths e.d. doe je in je CSS, maar ik zie nog wel wat andere WTF's:

[afbeelding]
  • "Hoeveelheid" waar ik persoonlijk "Aantal" gebruikt zou hebben, "Tel" i.p.v. voluit "Telefoon(nummer)" (want wat kosten die paar letters extra je? En waarom in de placeholder dan "Tel. Nr."?) en dat soort (kleine) tekstuele dingetjes...
  • Voor alles een textbox 8)7
  • Het zelf laten invullen van 't totaal 8)7
  • Het inconsistente gebruik van placeholders (dan weer wel, dan weer niet)
  • Hoewel "toegestaan", de tabindex vind ik erg onlogisch (waarom niet gewoon sequentieel?)
  • Bovenop voorgenoemde border/cellspacing/alignment/widths e.d. ook nog eens inline styles
  • Table cells met &nbsp; ... (Her-en-der had mogelijk zelfs een colspan gekund i.p.v. een <td>&nbsp;</td>)
  • Markup voor "kolomkoppen" (<td><b>Blaat</b></td> i.p.v. gewoon th's gebruiken: <th>Blaat</th>)
  • onclick="this.form.submit()" op de submitbutton. Why? 8)7
Maar having said all that: ik vind 't niet echt "Slechtste programmeervoorbeelden"-waardig en het is niet de bedoeling dat je hier stiekem/verkapt code-reviews gaat (laten) doen.
Mijn excuses was de bedoeling niet. Ik dacht dat het een slechtste programmeervoorbeeld waardig was!

Acties:
  • 0 Henk 'm!

  • Laurens-R
  • Registratie: December 2002
  • Laatst online: 29-12-2024
Kwam dit gisteren nog tegen in de krochten van wat oude probeersels... Refactoring zou wel eens nodig kunnen zijn :+

code:
1
ClientSubsystems::GetInstance()->GetGraphicsSubsystem()->GetRenderer()->GetDevice()->GetDeviceFactory()->GetAssetResourceFactory()

Acties:
  • 0 Henk 'm!

  • DXaroth
  • Registratie: Maart 2011
  • Laatst online: 03-06 23:36
wsitedesign schreef op donderdag 31 oktober 2013 @ 00:32:
1x Mosselen met friet AUB!

Het enige wat ik hiet kan aan opmerken is: waarom een tabel als je bootstrap (of een ander framework) gebruikt? Dat is het enige "slechte" wat ik eraan kan zien :p
Waarschijnlijk omdat bootstrap juist styling heeft voor tables? .. bedoel, een nette grid bouwen met divs is leuk en aardig, maar zebra-stripes maken gaat een stuk makkelijker met tables in bootstrap .

Mind, voor formulieren hebben ze weer andere (discuseerbaar betere) oplossingen, maar ik zou dat niet de wtf noemen.

Acties:
  • 0 Henk 'm!

  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 16-06 15:45

Not Pingu

Dumbass ex machina

Een tijdje geleden was ik op bezoek bij de softwaretoko in de Oekraïne waar we een softwarepakket laten ontwikkelen. Ik heb er al eens eerder wat van gepost.

Een van de testers zou mij laten zien hoe hun testproces gaat, want er zaten verrekte veel bugs in de vorige release. Die kerel demonstreert mij hoe hij het aanmeldproces van een nieuwe consument test. Onderdeel van dit proces is dat de consument zijn (mobiele) telefoonnummer moet bevestigen door middel van een SMS met bevestigingscode. Omdat het pakket vooralsnog alleen Nederlandse consumenten bedient moet het telefoonnummer beginnen met 06.
Tester vult een willekeurig 06-nummer in en klikt op 'Confirm'
Ik: Wordt er nu niet gewoon een SMS verstuurd naar dat nummer?
Tester: Nee hoor, ik draai de software in testmodus en dan wordt er geen SMS verstuurd.
Ik:Weet je dat heel zeker?
Tester: Ja, dit heb ik al honderd keer gedaan.
Thuisgekomen test ik het softwarepakket (in testmodus) door mijn eigen 06-nummer in te vullen en jawel, ik krijg gewoon een SMSje.

Certified smart block developer op de agile darkchain stack. PM voor info.


Acties:
  • 0 Henk 'm!

  • boe2
  • Registratie: November 2002
  • Niet online

boe2

'-')/

wsitedesign schreef op donderdag 31 oktober 2013 @ 00:32:
1x Mosselen met friet AUB!

Het enige wat ik hiet kan aan opmerken is: waarom een tabel als je bootstrap (of een ander framework) gebruikt? Dat is het enige "slechte" wat ik eraan kan zien :p
Je kan het ook omdraaien: Waarom bootstrap gebruiken om het gedrag van tabellen te emuleren? :)

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


Acties:
  • 0 Henk 'm!

  • azerty
  • Registratie: Maart 2009
  • Laatst online: 10:46
Not Pingu schreef op dinsdag 05 november 2013 @ 16:45:
Een tijdje geleden was ik op bezoek bij de softwaretoko in de Oekraïne waar we een softwarepakket laten ontwikkelen. Ik heb er al eens eerder wat van gepost.

Een van de testers zou mij laten zien hoe hun testproces gaat, want er zaten verrekte veel bugs in de vorige release. Die kerel demonstreert mij hoe hij het aanmeldproces van een nieuwe consument test. Onderdeel van dit proces is dat de consument zijn (mobiele) telefoonnummer moet bevestigen door middel van een SMS met bevestigingscode. Omdat het pakket vooralsnog alleen Nederlandse consumenten bedient moet het telefoonnummer beginnen met 06.


[...]


Thuisgekomen test ik het softwarepakket (in testmodus) door mijn eigen 06-nummer in te vullen en jawel, ik krijg gewoon een SMSje.
Hopelijk niet 100x hetzelfde nummer, anders is die willekeurige persoon (indien bestaand) redelijk gepest >:)

Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 15:13
Ik zou ook nooit 0611111111 of 0612345678 accepteren als telefoonnummer :P

Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Zeker die 2e die je noemt heb ik best veel in de database van een testomgeving staan (is voor integratietests met een betalingsprovider). Al wordt er zover ik weet geen sms gestuurd of naar gebeld, dat is enkel als er vragen zijn over orders op de liveomgeving.

Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 15:13
Ik heb hem ook heel vaak in databases van testomgevingen gezet, en ik had al zo'n vaag vermoeden dat ik er niet echt origineel mee was ;) Ook mijn eigen nummer stond er vaak in, maar ja, je hebt vaak toch 2 verschillende accounts nodig :)

Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 04-07 10:37
06-12345678 is toch gewoon een geldig nummer? Een vriend van me heeft dat nummer wel eens gebeld en kreeg iemand z'n voicemail. :')

We are shaping the future


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 15:13
Daarom is het ook zo'n handig nummer in testsystemen, ongeldige nummers worden vaak geweigerd ;) Ik vind het wel mooi dat ze voor dat soort doeleinden example.com hebben gereserveerd, heel jammer dat 3/4 van de boeken en websites gewoon een willekeurig adres gebruikt.

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-07 13:42
Ik heb ook medelijden met de persoon die 111222333 als BSN heeft ;)

https://niels.nu


Acties:
  • 0 Henk 'm!

  • YakuzA
  • Registratie: Maart 2001
  • Niet online

YakuzA

Wat denk je nou zelluf hey :X

Alex) schreef op dinsdag 05 november 2013 @ 21:31:
06-12345678 is toch gewoon een geldig nummer? Een vriend van me heeft dat nummer wel eens gebeld en kreeg iemand z'n voicemail. :')
06-12345678 was ooit van iemand bij KPN.
Door alle kansloze telefoontjes wordt dit nummer nu niet meer gebruikt :)

Death smiles at us all, all a man can do is smile back.
PSN


Acties:
  • 0 Henk 'm!

  • Gamebuster
  • Registratie: Juli 2007
  • Laatst online: 10:05
code:
1
2
3
4
min_number_length = 1 # constant in class
max_number_length = 14 # constant in class
regex = "\d{" + min_number_length + ", " + max_number_length + "}"
if regex.match input_string # input string if valid

[ Voor 9% gewijzigd door Gamebuster op 12-11-2013 14:48 ]

Let op: Mijn post bevat meningen, aannames of onwaarheden


  • king_charles
  • Registratie: Maart 2008
  • Laatst online: 15-08-2023
De kracht van goed commentaar en regex!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 16:45
really? Zie ik dat goed? regex om te kijken of een cijfer niet te groot is?

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 15:13
Nee, een regex die kijkt of in de input een getal zit van minimaal 1 en maximaal 14 tekens. Doordat $ en ^ ontbreken had er dus net zo goed "\d" kunnen staan...

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 31-07 14:07

Douweegbertje

Wat kinderachtig.. godverdomme

PHP:
1
  if($blaat == '01110' || $blaat == '01150' || $blaat == '01165' || $blaat == '02040' || $blaat == '02106' || $blaat == '02910' || $blaat == '02946' || $blaat == '02965' || $blaat == '02966' || $blaat == '02968' || $blaat == '02969' || $blaat == '02971' || $blaat == '02974' || $blaat == '02975' || $blaat == '03683' || $blaat == '03831' || $blaat == '03922' || $blaat == '03993' || $blaat == '03994' || $blaat == '03995' || $blaat == '03996' || $blaat == '05017' || $blaat == '05018' || $blaat == '05019' || $blaat == '05038' || $blaat == '05040' || $blaat == '05045' || $blaat == '05060' || $blaat == '05193' || $blaat == '05194' || $blaat == '05195' || $blaat == '05196' || $blaat == '05197' || $blaat == '05200' || $blaat == '05210'|| $blaat == '05202' || $blaat == '05201' || $blaat == '05250' || $blaat == '05385' || $blaat == '05386'|| $blaat == '05387' || $blaat == '05395' || $blaat == '05396' || $blaat == '05409' || $blaat == '05411' || $blaat == '05412' || $blaat == '05413' || $blaat == '05414' || $blaat == '05417' || $blaat == '05421' || $blaat == '05423' || $blaat == '05431' || $blaat == '05425' || $blaat == '05426' || $blaat == '05430' || $blaat == '05431' || $blaat == '05432' ||  $blaat == '05433' || $blaat == '05434' || $blaat == '05436' || $blaat == '05561' || $blaat == '05591' || $blaat == '05610' || $blaat == '05636'  || $blaat == '05638' || $blaat == '05645' || $blaat == '05681' || $blaat == '06010' || $blaat == '06110' || $blaat == '06115' || $blaat == '06117' || $blaat == '06118' || $blaat == '06119' || $blaat == '10905' || $blaat == '10910' || $blaat == '10911' || $blaat == '10912'  || $blaat == '10913' || $blaat == '10950' || $blaat == '10955' || $blaat == '10990' || $blaat == '10991' || $blaat == '10992' || $blaat == '10993' || $blaat == '55000' || $blaat == '55002' || $blaat == '55003' || $blaat == '55004' || $blaat == '55006')


:+

  • _Moe_
  • Registratie: Mei 2006
  • Laatst online: 24-06 22:41
douweegbertje schreef op donderdag 14 november 2013 @ 14:42:
PHP:
1
  if($blaat == '01110' || $blaat == '01150' || $blaat == '01165' || $blaat == '02040' || $blaat == '02106' || $blaat == '02910' || $blaat == '02946' || $blaat == '02965' || $blaat == '02966' || $blaat == '02968' || $blaat == '02969' || $blaat == '02971' || $blaat == '02974' || $blaat == '02975' || $blaat == '03683' || $blaat == '03831' || $blaat == '03922' || $blaat == '03993' || $blaat == '03994' || $blaat == '03995' || $blaat == '03996' || $blaat == '05017' || $blaat == '05018' || $blaat == '05019' || $blaat == '05038' || $blaat == '05040' || $blaat == '05045' || $blaat == '05060' || $blaat == '05193' || $blaat == '05194' || $blaat == '05195' || $blaat == '05196' || $blaat == '05197' || $blaat == '05200' || $blaat == '05210'|| $blaat == '05202' || $blaat == '05201' || $blaat == '05250' || $blaat == '05385' || $blaat == '05386'|| $blaat == '05387' || $blaat == '05395' || $blaat == '05396' || $blaat == '05409' || $blaat == '05411' || $blaat == '05412' || $blaat == '05413' || $blaat == '05414' || $blaat == '05417' || $blaat == '05421' || $blaat == '05423' || $blaat == '05431' || $blaat == '05425' || $blaat == '05426' || $blaat == '05430' || $blaat == '05431' || $blaat == '05432' ||  $blaat == '05433' || $blaat == '05434' || $blaat == '05436' || $blaat == '05561' || $blaat == '05591' || $blaat == '05610' || $blaat == '05636'  || $blaat == '05638' || $blaat == '05645' || $blaat == '05681' || $blaat == '06010' || $blaat == '06110' || $blaat == '06115' || $blaat == '06117' || $blaat == '06118' || $blaat == '06119' || $blaat == '10905' || $blaat == '10910' || $blaat == '10911' || $blaat == '10912'  || $blaat == '10913' || $blaat == '10950' || $blaat == '10955' || $blaat == '10990' || $blaat == '10991' || $blaat == '10992' || $blaat == '10993' || $blaat == '55000' || $blaat == '55002' || $blaat == '55003' || $blaat == '55004' || $blaat == '55006')


:+
Is toch makkelijker te lezen dan het gebruik van in_array() :)

RTFM!


  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 31-07 14:07

Douweegbertje

Wat kinderachtig.. godverdomme

_Moe_ schreef op donderdag 14 november 2013 @ 16:11:
[...]


Is toch makkelijker te lezen dan het gebruik van in_array() :)
eh ja/nee...
Het gaat hier niet perse om DIT voorbeeld, maar om de gedachte erachter. Als je dit soort code -moet- gaan gebruiken heb je iets structureel niet goed gedaan als je uiteindelijk zover komt dat je een IF vergelijking moet maken van zoveel karakters..

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Ik vind het altijd wel grappig dat mensen "structurele fouten" kunnen afleiden uit één regel code.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 31-07 12:20

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ik zou een polynoom bepalen die door al die waarden heen gaat, en vervolgens kun je gewoon in een loopje verschillende punten van de polynoom evalueren :+

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.


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Of iets met bloom filters. :P

Overigens (als je dit wil doen) is een in_array() imo waaaaay beter leesbaar. De array var kan je een goede naam geven en het scheelt tig keer '|| $blaat = ' pasten.

{signature}


  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 16:24
En dan de strict-flag niet vergeten. Het is immers PHP dus '01110' == '1110'.

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Is er dan niemand die er een regex voor kan verzinnen? :)
Overigens (als je dit wil doen) is een in_array() imo waaaaay beter leesbaar. De array var kan je een goede naam geven en het scheelt tig keer '|| $blaat = ' pasten.
Ik weet het gebruik niet, maar verschil leesbaarheid tussen een goed geindente array en een goed geindente if-constructie vind ik niet echt heel erg groot hoor.

Als het echt 100% zeker eenmalig is (zijn dit soort constructies nooit maargoed) dan vind ik dit mits goed geindent en van commentaar voorzien wel te verdedigen (of beter gezegd ik zie de toegevoegde waarde van een array / in_array niet, de leesbaarheid is toch minimaal met een array-constructor of een if-statement van 80 regels).

Alhoewel ik het persoonlijk wel 100% zeker in een array zou dumpen omdat dit lijstje over 6 maanden ergens anders ook moet gaan werken en over 7 maanden moet het uitgebreid gaan worden met 2 waardes en over 8 maanden moeten er 15 waardes uit en over 8 maanden en 1 week krijg je een rare bug-melding binnen omdat de lijstjes toch niet 100% gelijk zijn ( of nog leuker, je moet het lijstje ergens anders hergebruiken maar dan minus 1 waarde, dan denk je een bug te fixen door het 1e lijstje te copy-pasten naar het 2e en dan introduceer je een nieuwe bug)

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 31-07 12:20

.oisyn

Moderator Devschuur®

Demotivational Speaker

Gomez12 schreef op vrijdag 15 november 2013 @ 01:16:
[...]

Is er dan niemand die er een regex voor kan verzinnen? :)
Natuurlijk niet, dan zou het een slecht programmeervoorbeeld zijn.

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!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Een goed programmeervoorbeeld zou zoiets zijn:

PHP:
1
2
3
$blaatValues = array('01110', '01150', ... );
$blaatTest = array_map($blaatValues, function ($value) { return '$blaat == ' . "'$value'"; });
$blaatInBlaatValues = eval(implode($blaatTest, ' || '));


8)

Acties:
  • 0 Henk 'm!

  • _Moe_
  • Registratie: Mei 2006
  • Laatst online: 24-06 22:41
HuHu schreef op vrijdag 15 november 2013 @ 08:04:
Een goed programmeervoorbeeld zou zoiets zijn:

PHP:
1
2
3
$blaatValues = array('01110', '01150', ... );
$blaatTest = array_map($blaatValues, function ($value) { return '$blaat == ' . "'$value'"; });
$blaatInBlaatValues = eval(implode($blaatTest, ' || '));


8)
_/-\o_

RTFM!


Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 31-07 14:07

Douweegbertje

Wat kinderachtig.. godverdomme

HuHu schreef op donderdag 14 november 2013 @ 21:09:
Ik vind het altijd wel grappig dat mensen "structurele fouten" kunnen afleiden uit één regel code.
eh ja, behalve dat ik alles kan zien. Maar verder prima hoor als jij dit netjes vindt! :)
Op het moment dat een IF statement moet gaan maken van 500 karakters+ dan doe je toch echt iets fout.. ;w

[ Voor 15% gewijzigd door Douweegbertje op 19-11-2013 11:12 ]


Acties:
  • 0 Henk 'm!

  • _Peter2_
  • Registratie: November 2008
  • Laatst online: 07:32
douweegbertje schreef op dinsdag 19 november 2013 @ 11:11:
[...]


eh ja, behalve dat ik alles kan zien. Maar verder prima hoor als jij dit netjes vindt! :)
Op het moment dat een IF statement moet gaan maken van 500 karakters+ dan doe je toch echt iets fout.. ;w
Ik dacht in eerste instantie ook: "is toch niets mis mee"....totdat ik de scollbar onder de code-snippet zag...

Diablo III: <GOT> Pteer#2475 --- POE: Dwergux


Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
douweegbertje schreef op dinsdag 19 november 2013 @ 11:11:
[...]


eh ja, behalve dat ik alles kan zien. Maar verder prima hoor als jij dit netjes vindt! :)
Op het moment dat een IF statement moet gaan maken van 500 karakters+ dan doe je toch echt iets fout.. ;w
Ja, jij... maar wij niet. Eén zo'n regel duidt niet per se op "structurele" fouten, het kan ook een maandagochtendregel zijn.

Op basis van één regel iets structureel (kan ik de nadruk nog harder op "structureel" leggen?) fout noemen is nogal voorbarig.

Overigens zeg ik nergens dat ik het netjes vind. Ik ken de context verder ook niet. Maar om op basis van één regel, één regel (!), iets "structureel" (dat is: alle regels) fout te noemen... nah, daar krijg je mij niet in mee.

Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 31-07 14:07

Douweegbertje

Wat kinderachtig.. godverdomme

HuHu schreef op dinsdag 19 november 2013 @ 13:39:
[...]

Ja, jij... maar wij niet. Eén zo'n regel duidt niet per se op "structurele" fouten, het kan ook een maandagochtendregel zijn.

Op basis van één regel iets structureel (kan ik de nadruk nog harder op "structureel" leggen?) fout noemen is nogal voorbarig.

Overigens zeg ik nergens dat ik het netjes vind. Ik ken de context verder ook niet. Maar om op basis van één regel, één regel (!), iets "structureel" (dat is: alle regels) fout te noemen... nah, daar krijg je mij niet in mee.
Met één regel als 'voorbeeld' kun je toch concreet zien of het nou goed of slecht is? Vervolgens kun je toch heel makkelijk zeggen of dát nu fout is, of dat het structureel fout gaat?

Ik bedoel, stel dat je een function rand hebt, die hard 5 returned.. dan kun je zeggen dat die functie gewoon ruk is. Verder kun je dan weer geen conclusie trekken of de rest structureel fout is. Echter met mijn voorbeeld weet je dat het structureel niet goed zit, anders hoefde je namelijk geen bizare IF constructie te maken met die gare data.

Indien het structureel goed zat, heb je geen vage statements nodig. Dan heb je bijvoorbeeld de data beter geordend al dan niet mooi in een DB gezet. Je wilt gewoon -niet- zulke statements hebben, en heb je dat wel.. dan gaat er -ergens- iets mis. Structureel dus.

Misschien definieer ik structureel in deze context wat verkeerd. Voor mij betekend in dit geval dat het 'vanaf het begin' al fout gaat, dat je uiteindelijk bij zo'n constructie komt.

In ieder geval heb ik al 3000 regels aan code aangepast naar een kleine 200-300. :+

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Ik zeg ook niet dat je ongelijk hebt, ik zeg alleen dat ik voorbarig vind om op basis van één regel zulke uitspraken te doen. Jij kent de context en zal er een ander gevoel bij hebben.

Zoals ik zei: wellicht is het een maandagochtendregel. Het is niet netjes, maar ook niet fout... en als het bij één zo'n actie blijft is het niet structureel. Misschien is het zelfs automatisch gegenereerde code vanuit één of ander project en was dit de makkelijkste aanpak. Wellicht compileert het naar iets beters/snellers dan een in_array() functie voor elkaar kan krijgen en is dit optimaal in de gegeven situatie.

Allemaal overwegingen die zo'n regel aannemelijk maken en niet per se "structureel fout".

Acties:
  • 0 Henk 'm!

  • SmokingCrop
  • Registratie: Januari 2012
  • Niet online
Need for Speed: Rivals is ook een voorbeeld van slechtste programmeervoorbeelden :+
Als je de framerate unlocked via een console command naar 60 fps dan loopt het spel 2x zo snel, want normaal is het locked op 30 fps 8)7

YouTube: Let's not play Need for Speed: Rivals

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
douweegbertje schreef op dinsdag 19 november 2013 @ 13:50:
[...]
Indien het structureel goed zat, heb je geen vage statements nodig. Dan heb je bijvoorbeeld de data beter geordend al dan niet mooi in een DB gezet. Je wilt gewoon -niet- zulke statements hebben, en heb je dat wel.. dan gaat er -ergens- iets mis. Structureel dus.
Waarom is dit een vaag statement? Het is gewoon een if-statement met ietwat veel mogelijkheden maar waar ligt dit grens anders qua mogelijkheden?
En zie ook de mensen die het in een array willen doen, dan maak je het leesbaarder maar je "vaagheid" zit er nog steeds in.

Ook met wat jij "mooi in een DB gezet" noemt houd je dezelfde basis-premisse (als ... dan) alleen heb je de data opeens verstopt in een ander systeem.

Ik ben erg van het leesbaar zijn van code en als dit voorbeeld gewoon een weinig gebruikt iets is dan is een dbase voornamelijk obfuscating en voor de rest niets.

Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 31-07 14:07

Douweegbertje

Wat kinderachtig.. godverdomme

Gomez12 schreef op dinsdag 19 november 2013 @ 22:29:
[...]

Waarom is dit een vaag statement? Het is gewoon een if-statement met ietwat veel mogelijkheden maar waar ligt dit grens anders qua mogelijkheden?
En zie ook de mensen die het in een array willen doen, dan maak je het leesbaarder maar je "vaagheid" zit er nog steeds in.

Ook met wat jij "mooi in een DB gezet" noemt houd je dezelfde basis-premisse (als ... dan) alleen heb je de data opeens verstopt in een ander systeem.

Ik ben erg van het leesbaar zijn van code en als dit voorbeeld gewoon een weinig gebruikt iets is dan is een dbase voornamelijk obfuscating en voor de rest niets.
Sorry maar wat is daar nou leesbaar aan? Prima, je weet dat het een if statement is, maar zo simpel lees je niet wat hij vergelijkt. Daarnaast zijn er gewoon oplossingen dat je bepaalde waardes in de DB kunt zetten en dat je hier -geen- IF statement meer hoeft te gebruiken, noch alles moet ophalen. Zet jij ook alle usernames en password in je .php bestand en loop je die in een foreach om te kijken of iemand mag inloggen? In feite is dat precies de zelfde vergelijking. Je hoeft niet over obfuscating te beginnen, want dat is het niet.

Kom eens met echte code die zulke IF-statements gebruikt, ik weet vrij zeker dat ik daar wel wat beters voor kan verzinnen. Het jammere is dat ik niet al mijn code kan dumpen hier, noch mijn fix.

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Kom jij eerst maar eens met "bewijs" dat één enkel slecht if-statement gegarandeerd equivalent is aan "structureel slechte code".

Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 16:45
SmokingCrop schreef op dinsdag 19 november 2013 @ 22:20:
Need for Speed: Rivals is ook een voorbeeld van slechtste programmeervoorbeelden :+
Als je de framerate unlocked via een console command naar 60 fps dan loopt het spel 2x zo snel, want normaal is het locked op 30 fps 8)7

YouTube: Let's not play Need for Speed: Rivals
Och tegenwoordig is het niet meer echt gebruikelijk om de simulatiesnelheid aan de framerate te koppelen, maar zo enorm slecht is het nou ook weer niet.

Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 31-07 14:07

Douweegbertje

Wat kinderachtig.. godverdomme

HuHu schreef op woensdag 20 november 2013 @ 09:52:
Kom jij eerst maar eens met "bewijs" dat één enkel slecht if-statement gegarandeerd equivalent is aan "structureel slechte code".
Dat zijn je eigen woorden. Ik zei dat ALS je zo'n IF statement MOET gebruiken, dat je al bij het begin fout gaat.

PHP:
1
  if($blaat == '01110' || $blaat == '01150' || $blaat == '01165' || $blaat == '02040' || $blaat == '02106' || $blaat == '02910' || $blaat == '02946' || $blaat == '02965' || $blaat == '02966' || $blaat == '02968' || $blaat == '02969' || $blaat == '02971' || $blaat == '02974' || $blaat == '02975' || $blaat == '03683' || $blaat == '03831' || $blaat == '03922' || $blaat == '03993' || $blaat == '03994' || $blaat == '03995' || $blaat == '03996' || $blaat == '05017' || $blaat == '05018' || $blaat == '05019' || $blaat == '05038' || $blaat == '05040' || $blaat == '05045' || $blaat == '05060' || $blaat == '05193' || $blaat == '05194' || $blaat == '05195' || $blaat == '05196' || $blaat == '05197' || $blaat == '05200' || $blaat == '05210'|| $blaat == '05202' || $blaat == '05201' || $blaat == '05250' || $blaat == '05385' || $blaat == '05386'|| $blaat == '05387' || $blaat == '05395' || $blaat == '05396' || $blaat == '05409' || $blaat == '05411' || $blaat == '05412' || $blaat == '05413' || $blaat == '05414' || $blaat == '05417' || $blaat == '05421' || $blaat == '05423' || $blaat == '05431' || $blaat == '05425' || $blaat == '05426' || $blaat == '05430' || $blaat == '05431' || $blaat == '05432' ||  $blaat == '05433' || $blaat == '05434' || $blaat == '05436' || $blaat == '05561' || $blaat == '05591' || $blaat == '05610' || $blaat == '05636'  || $blaat == '05638' || $blaat == '05645' || $blaat == '05681' || $blaat == '06010' || $blaat == '06110' || $blaat == '06115' || $blaat == '06117' || $blaat == '06118' || $blaat == '06119' || $blaat == '10905' || $blaat == '10910' || $blaat == '10911' || $blaat == '10912'  || $blaat == '10913' || $blaat == '10950' || $blaat == '10955' || $blaat == '10990' || $blaat == '10991' || $blaat == '10992' || $blaat == '10993' || $blaat == '55000' || $blaat == '55002' || $blaat == '55003' || $blaat == '55004' || $blaat == '55006')


Dus wat doe je hier? Je gaat vergelijken of een waarde, in dit geval '$blaat' gelijk is aan één van de 100+ waardes. Sinds wanneer is dit logisch?

Dus wat je kan doen, is netjes een tabel maken in je DB. Je zet hier elke waarde in, met vervolgens 'iets' wat aangeeft wat het is. Zo kun je een simpele query uitvoeren op jouw waarde om terug te krijgen wat je er mee moet doen. Mijn stukje code bestond uit ongeveer nog 10-15 van dit soort statements. Uiteindelijk heb ik dit netjes in de DB gezet, wordt gecached en vervolgens heb ik elke keer de waarde wat ik moet uitvoeren.

Dan nog, waarom moet ik mensen overtuigen dat het vergelijken van 100+ waardes gewoon bad practice is?

Op het moment dat jij weet dat je een waarde met 100 dingen moet conditioneren, dan ga je iets verzinnen zodat je niet zulke statements krijgt. Als je niet nadenkt en dingen gaat bouwen, kun je hier tegen aan lopen en dan kun je het inderdaad zo oplossen maar dan heb je het naar mijn mening structureel fout gedaan.

Maar prima verder, ik heb eigenlijk niet heel veel zin om nog verder te moeten gaan, met verdedigen. Ik zal wel anders na denken over bepaalde dingen.

Acties:
  • 0 Henk 'm!

  • SmokingCrop
  • Registratie: Januari 2012
  • Niet online
Caelorum schreef op woensdag 20 november 2013 @ 11:15:
[...]

Och tegenwoordig is het niet meer echt gebruikelijk om de simulatiesnelheid aan de framerate te koppelen, maar zo enorm slecht is het nou ook weer niet.
Dat je hierdoor niet eens de kracht van je computer kan gebruiken, is gewoon wél heel erg.. Dit is een miljoenen spel en niet even een spelletje dat je zelf gemaakt hebt.

Dat is misschien net het probleem.. dat ze dit niet eens erg vinden.

Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 16:45
Mja, is het niet gewoon een slechte goedkope console port?

[ Voor 8% gewijzigd door Caelorum op 20-11-2013 11:50 ]


Acties:
  • 0 Henk 'm!

  • WernerL
  • Registratie: December 2006
  • Laatst online: 16:34
Ik kom zojuist dit pareltje tegen. Moet ik mezelf hier voor schamen? :D

code:
1
var newval = element.value.split('.').join('').toUpperCase().split('').join('.');


It gets the job done... (automatisch punten zetten als je voorletters typt, abc wordt A.B.C.).

Roses are red, violets are blue, unexpected '{' on line 32.


Acties:
  • 0 Henk 'm!

  • boe2
  • Registratie: November 2002
  • Niet online

boe2

'-')/

Caelorum schreef op woensdag 20 november 2013 @ 11:15:
[...]

Och tegenwoordig is het niet meer echt gebruikelijk om de simulatiesnelheid aan de framerate te koppelen, maar zo enorm slecht is het nou ook weer niet.
Het is iets wat je in eerste deel van een gamedevelopment tutorial doet om te zien waarom dit zo slecht is. Mijn gamedev ervaring komt niet veel verder dan gepruts in XNA, maar hier had ik toch echt het gevoel: "Wat die mensen bij EA doen kan ik veel beter".

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


Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 16:45
boe2 schreef op vrijdag 22 november 2013 @ 13:41:
[...] Het is iets wat je in eerste deel van een gamedevelopment tutorial doet om te zien waarom dit zo slecht is. [...]
Dan moet je wel weten waarom het zo slecht is. Als je maar op 1 hardware configuratie focust en je alle (of iig voorspelbare) resources hebt dan is het helemaal zo slecht nog niet. Dat het uiteindelijk in een PC versie komt is dan wel een redelijke fuckup, aan de andere kant: het werkt wel en wie weet was het wel helemaal niet de bedoeling om een PC versie te maken en om het nou achteraf nog te gaan veranderen is vragen om problemen.

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
boe2 schreef op vrijdag 22 november 2013 @ 13:41:
[...]


Het is iets wat je in eerste deel van een gamedevelopment tutorial doet om te zien waarom dit zo slecht is. Mijn gamedev ervaring komt niet veel verder dan gepruts in XNA, maar hier had ik toch echt het gevoel: "Wat die mensen bij EA doen kan ik veel beter".
De meeste gamedevelopmenttutorials bespreken dan ook niet het simultaan ontwikkelen van één game voor meerdere platforms, onder tijdsdruk, voor een miljoenenpubliek, waarbij er zo goed als niets fout mag gaan.

Dat er dan iemand is die zelf het spel gaat lopen aanpassen en vervolgens boos wordt... tsja, pech dan.

Acties:
  • 0 Henk 'm!

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 19-07 21:32

deadinspace

The what goes where now?

WernerL schreef op vrijdag 22 november 2013 @ 13:12:
Ik kom zojuist dit pareltje tegen. Moet ik mezelf hier voor schamen? :D

code:
1
var newval = element.value.split('.').join('').toUpperCase().split('').join('.');


It gets the job done... (automatisch punten zetten als je voorletters typt, abc wordt A.B.C.).
Mmh, ik vind hem wel ok eigenlijk. Het enige wat ik liever zou zien is een filter op [a-zA-Z] ipv .split('.').join(''). Het is wel typisch zo'n stukje code dat je van commentaar moet voorzien om uit te leggen dat hij initialen format :)

Er zit alleen wel een bugje in, hij genereert geen punt na de laatste letter.

Ik ben eigenlijk wel benieuwd wie een mooiere constructie weet te verzinnen. Voor Javascript weet ik weinig beters (maar ik ben ook geen JS-programmeur meestal), maar in Python zou ik het zo doen:
Python:
1
2
initials = 'abc'
''.join([c.upper() + '.' for c in initials if c.isalpha()])

Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 12-07 22:24
deadinspace schreef op vrijdag 22 november 2013 @ 16:36:
Ik ben eigenlijk wel benieuwd wie een mooiere constructie weet te verzinnen.
Dit is nou typisch zo'n scenario waarin je wel regular expressions zou moeten gebruiken:

JavaScript:
1
2
3
4
5
6
7
function formatInitials( str ) {
  var regexp = /([a-z])\.|([a-z])/gi;
    
  return str.replace( regexp, function( _, p1, p2 ) {
    return ( p1 || p2 ).toUpperCase() + ".";
  });
};

Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 09-07 10:34
R4gnax schreef op vrijdag 22 november 2013 @ 20:01:
[...]


Dit is nou typisch zo'n scenario waarin je wel regular expressions zou moeten gebruiken:

JavaScript:
1
2
3
4
5
6
7
function formatInitials( str ) {
  var regexp = /([a-z])\.|([a-z])/gi;
    
  return str.replace( regexp, function( _, p1, p2 ) {
    return ( p1 || p2 ).toUpperCase() + ".";
  });
};
Ook fout, net als bij TS. Het "slechte programmeervoorbeeld" hier is dat er van uitgegaan wordt dat mensen hun eigen naam of initialen niet kunnen spellen, en dat alle namen en initialen in het vaste stramien van 1 letter per punt passen, wat natuurlijk niet waar is. Er zijn meer dan genoeg namen, ook in het Nederlands, waar de naam wordt afgekort naar 2 of meer letters. En als je naar internationale namen gaat kijken dan ga je helemaal de mist in. Laat mensen lekker zelf beslissen hoe ze aangesproken willen worden, hoe een brief geadresseerd moet worden en wat hun volledige naam is.

Edit: zie ook www.kalzumeus.com/2010/06...mers-believe-about-names/

[ Voor 4% gewijzigd door _js_ op 22-11-2013 20:43 ]


Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 12-07 22:24
_js_ schreef op vrijdag 22 november 2013 @ 20:36:
[...]

Ook fout, net als bij TS. Het "slechte programmeervoorbeeld" hier is dat er van uitgegaan wordt dat mensen hun eigen naam of initialen niet kunnen spellen, en dat alle namen en initialen in het vaste stramien van 1 letter per punt passen, wat natuurlijk niet waar is.
Dat is meer een slecht requirements engineering voorbeeld dan een slecht programmeervoorbeeld.

Acties:
  • 0 Henk 'm!

  • TimothyW
  • Registratie: Januari 2002
  • Laatst online: 16-05 08:34
Geen idee hoe slecht dit is, maar ik ben geen PHP wonder, het doet wat het moet doen zeg maar.

PHP: box.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
}
// Als het een mobieltje is, dan is dit een schakelaartje om naar de Desktop versie te gaan
if (($mobileswitch=="yes") && ($mobile=="yes")){ ?>
    <div class="boxbg">
        <p align="right">
        <a href="./switch.php">Desktop versie</a>
    </div>
<br />
<?php
} 
// Als het een mobieltje is, dan is dit een schakelaartje om naar de Mobiele versie te gaan
if (($mobileswitch=="yes") && ($mobile=="no")){ ?>
    <div class="boxbg">
        <p align="right">       
        <a href="./switch.php">Mobiele versie</a>
    </div>
<br />
<?php
} 
?>


En dan het volgende in switch.php

PHP: switch.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$expire=time()+60*60*24*365;

    // Eigenlijk beetje overbodig, want dat cookie zou moeten bestaan, anders kan je hier niet eens komen...
if (isset($_COOKIE['mobile'])) {
    $mobile = $_COOKIE['mobile'];
}
    // Ja, als het ja is, wordt het toch gewoon nee!
if ($mobile=="yes") {
    $mobile = ('no');
}
    // Anders was het nee, dan wordt het eh.. ja! Dat heb je wel vaker met een switch.
else {
    $mobile = ('yes');
}
// Gooi dat gelijk ff in dat cookie, dan is dat ook weer voor elkaar.
setcookie("mobile", "$mobile", $expire, "/", "blablabla.nl");

// laten we dan de pagina even verversen, dan werkt het ook nog...
header("Location: ./");
?>

[ Voor 0% gewijzigd door TimothyW op 22-11-2013 23:20 . Reden: even toegevoegd wat de tweede code is... ]


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 04-07 10:37
Dat tweede blok code bevat een berg overbodig commentaar. In principe spreekt de code voor zichzelf, het commentaar is ruis op de lijn.

We are shaping the future


Acties:
  • +1 Henk 'm!

  • TimothyW
  • Registratie: Januari 2002
  • Laatst online: 16-05 08:34
Ja, kan er wel uit inderdaad die nutteloze commentaar.
maar is dit wel oké?
if ($mobile=="yes") {
$mobile = ('no');

ik zie daar eerst twee == en daaronder eentje. dan zie ik "yes" en daaronder 'no' en die no staat dan tussen haakjes, het zal allemaal wel, ik heb het zo verzonnen, meer trial and error geweest dan kunde. Dus vraag me wel af of dit niet simpeler kan, of beter. Ik zie mijn code altijd als poep :P als het werkt, spring ik al een gat in de lucht.

Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 04-07 10:37
Het verschil tussen == en = is dat je met de enkele = een assignment doet (je zet de waarde van $mobile op 'no') en dat je met de dubbele == een vergelijking doet. De haakjes rondom 'no' en 'yes' zijn niet nodig.

We are shaping the future


Acties:
  • 0 Henk 'm!

  • TimothyW
  • Registratie: Januari 2002
  • Laatst online: 16-05 08:34
Top Alex), haakjes pleite en klaar!
En het verhaal met == en = is me ook ineens weer helder, toen ik het in elkaar stak, kwam ik dat inderdaad tegen, maar wist totaal niet meer waarom dat nou was, dit maakt het helder.

Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
mja

boolean iemand?

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • 8088
  • Registratie: December 2000
  • Niet online

8088

NaN

TimothyW schreef op vrijdag 22 november 2013 @ 23:06:
PHP: box.php
1
2
header("Location: ./");
?>
Zou een absolute URL moeten zijn volgens de specs.

Do you seek to engage in or have you ever engaged in terrorist activities, espionage, sabotage, or genocide?


Acties:
  • 0 Henk 'm!

  • HeSitated
  • Registratie: April 2009
  • Laatst online: 03-12-2024
And the winner is:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
                var toSend = from q1 in Connections
                                              where
                                                  (from q2 in contractRules
                                                   where
                                                       (from q3 in contracts
                                                        where
                                                            q3.LabelID == Label
                                                            &&
                                                            (from q4 in switches
                                                             where
                                                                 (
                                                                     (from q5 in switchRules
                                                                      where
                                                                          q5.Status == "Done"
                                                                          &&
                                                                          new[] { "Requirement1", "Requirement2" }
                                                                              .Contains(q5.Message) &&
                                                                          q5.SwitchDate != null &&
                                                                          q5.SwitchDate <=
                                                                          DateTime.Today
                                                                      select q5.LineID)
                                                                         .Contains(
                                                                             q4.BeginLineID ?? 0)
                                                                     ||
                                                                     (from q5 in switchRules
                                                                      where
                                                                          q5.Status == "Done"
                                                                          &&
                                                                          new[] { "Requirement3", "Requirement4" }
                                                                              .Contains(q5.Message) &&
                                                                          q5.SwitchDate != null &&
                                                                          q5.SwitchDate <=
                                                                          DateTime.Today
                                                                      select q5.LineID)
                                                                         .Contains(
                                                                             q4.EndLineID ?? 0)
                                                                 )
                                                                 &&
                                                                 (from q8 in switches
                                                                  where
                                                                      q8.ContractLineID ==
                                                                      q4.ContractLineID
                                                                  group q8 by q8.ContractLineID
                                                                      into g1
                                                                      select
                                                                          (from q9 in g1 select q9.SwitchID)
                                                                          .Max()).Contains(q4.SwitchID)
                                                             select q4.ContractLineID).Contains(
                                                                 q2.ContractLineID)
                                                        select q3.ContractID).
                                                       Contains(q2.ContractID)
                                                   select q2.ID).Contains(
                                                       q1.ID)
                                                  &&
                                                  q1.SegmentID == segmentId
                                                  &&
                                                  (from q6 in meters
                                                   where
                                                       (from q7 in Reading
                                                        where
                                                            q7.Uploaded == false
                                                            &&
                                                            new[] { "Customer", "Internal" }.Contains(q7.BronID)
                                                            && (q7.IsJunk == null || !(bool)q7.IsJunk)
                                                        select q7.MeterID).Contains(q6.MeterID)
                                                   select q6.ID).Contains(q1.ID)
                                              select q1;

                var result = toSend.ToList();


Een linq statement van 66 regels... 8)7

EN natuurlijk gaat het nog fout ook.... :'(

Acties:
  • 0 Henk 'm!

  • Kwastie
  • Registratie: April 2005
  • Laatst online: 31-07 17:31

Kwastie

Awesomeness

Lambda expressies <3 maar dat 7(8)7.

Behalve dat het slecht leesbaar is, zijn de performance ongelofelijk slecht. >:)

[ Voor 53% gewijzigd door Kwastie op 23-11-2013 21:30 ]

When I get sad i stop being sad and be awesome instead


Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
Kwastie schreef op zaterdag 23 november 2013 @ 21:26:
Lambda expressies <3 maar dat 7(8)7.

Behalve dat het slecht leesbaar is, zijn de performance ongelofelijk slecht. >:)
als je ze goed gebruikt zijn ze snel hoor, maar dit is inderdaad een hoogtedieptepuntje

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 13:03
Kwam net dit pareltje tegen. Heb even de namen van de variabelen etc. gewijzigd, maar het punt is duidelijk.

C#:
1
2
3
4
5
6
switch (booleanVar)
{
    case false:
        booleanVar2 = false;
        break;
}


8)7

[ Voor 4% gewijzigd door PdeBie op 02-12-2013 14:35 ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 11:54

Janoz

Moderator Devschuur®

!litemod

WernerL schreef op vrijdag 22 november 2013 @ 13:12:
Ik kom zojuist dit pareltje tegen. Moet ik mezelf hier voor schamen? :D

code:
1
var newval = element.value.split('.').join('').toUpperCase().split('').join('.');


It gets the job done... (automatisch punten zetten als je voorletters typt, abc wordt A.B.C.).
Voor alle mensen die vinden dat het commentaar van _js_ ("[alg] Slechtste programmeervoorbeelden deel 5") wat vergezocht is hoop ik niet dat ze ooit bv een IJsbrandt als gebruiker krijgen, of iemand die de schrijver A. F. Th. van der Heijden ergens in kwijt moet ;)

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!

  • begintmeta
  • Registratie: November 2001
  • Niet online

begintmeta

Moderator General Chat
IJsbrandt in plaats van IJsbrandt zou nog een beetje verzachtend werken.

Acties:
  • 0 Henk 'm!

  • Stroopwafels
  • Registratie: September 2009
  • Laatst online: 16:14
Kwam dit pareltje tegen.

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
        function drawLoadedImage(id)
        {
            if (id<10)
            {
                document.write('<img src="./images/DarkSide-Of-MU-Sliced_0'+id+'.gif">');           
            } else {
                if (id != 14 &&
                    id != 17 &&
                    id != 18 &&
                    id != 26 &&
                    id != 33 &&
                    id != 36 &&
                    id != 38 &&
                    id != 48 &&
                    id != 49 &&
                    id != 50 &&
                    id != 51 &&
                    id != 47 && id != 29 && id != 19 && id != 21 && id != 22 && id != 24 && id != 27 && id != 28 && id != 30 && id != 32 && id != 34 && id != 37 && id != 39 && id != 41 && id != 42 && id != 43 && id != 44 && id != 46 && id != 52 && id != 54 && id != 55
                )
                {
                    if (id == 20 || id == 25 || id == 31 || id == 40)
                    {
                        document.write('<div style="width:100%;height:100%;background-color:#333333;">&nbsp</div>');
                    } 
                    else 
                    {
                        document.write('<img src="./images/DarkSide-Of-MU-Sliced_'+id+'.gif">');
                    }
                }
            }
        }

Acties:
  • 0 Henk 'm!

Verwijderd

Collega vanmiddag:

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

   if ($not_found) {
      ob_clean();
      header('HTTP/1.1 301 Moved Permanently');
      header("Location: http://www.nieuwe-url-yolo.com/");
      exit;
      clean_up_routine_that_does_something_important();
   }


"MIJN CLEANUP ROUTINE WERKT NIET MEER"


:F :P

[ Voor 5% gewijzigd door Verwijderd op 04-12-2013 19:54 ]


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Of ik even wat belangrijke productiecode wil aanpassen, een job die 's nachts draait.

/me opent solution

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
static void Main(string[] args)
{
    try
    {
        // Honderdvierenzeventig regels code met inline bijna alle domeinlogica,
        // transactieafhandeling, data access en logging

        foreach(...)
        {
        
            try
            {
                // ...
            }
            catch (IndexOutOfRangeException ex)
            {
                // meld dat het aantal argumenten (args[]) niet klopt
            }
        }
    }
    catch (Exception ex)
    {
        // Log exceptie
    }
}

Een berg moeilijk te ontcijferen code (want fuck SRP), binnen iedere iteratie van een foreach excepties afvangen die gecheckt hadden kunnen worden of op z'n minst buiten de loop eenmalig opgevangen kunnen worden, yay!

edit:
Hoe kon ik dit over het hoofd zien, prachtig:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
if (ConfigurationManager.AppSettings["Debug"] == "1")
{
    // doe wat debug-dingen
}
else
{
    // doe wat echte dingen
}

if (ConfigurationManager.AppSettings["Debug"] == "1")
{
    // doe andere debug-dingen
}
else
{
    // doe andere echte dingen
}

if (ConfigurationManager.AppSettings["Debug"] == "1")
{
    // doe nog meer debug-dingen
}
else
{
    // doe nog meer echte dingen
}

if (ConfigurationManager.AppSettings["Debug"] == "1")
{
    // doe verschillende debug-dingen
}
else
{
    // doe verschillende echte dingen
}

Hard-wired debugcode, en zelfs dát verkeerd geimplementeerd _o_

[ Voor 31% gewijzigd door kenneth op 05-12-2013 11:54 ]

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!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 11:54

Janoz

Moderator Devschuur®

!litemod

begintmeta schreef op maandag 02 december 2013 @ 16:54:
IJsbrandt in plaats van IJsbrandt zou nog een beetje verzachtend werken.
Tja, maar die komt vervolgens weer niet langs andere overijverige ontwikkelaars...
deadinspace schreef op vrijdag 22 november 2013 @ 16:36:
Mmh, ik vind hem wel ok eigenlijk. Het enige wat ik liever zou zien is een filter op [a-zA-Z] ipv .split('.').join('').

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!

  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 11:05
kenneth schreef op donderdag 05 december 2013 @ 11:48:

Hard-wired debugcode, en zelfs dát verkeerd geimplementeerd _o_
Ik denk dat die gast het wel geprobeerd heeft te debuggen :D

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


Acties:
  • 0 Henk 'm!

  • Blubber
  • Registratie: Mei 2000
  • Niet online
deadinspace schreef op vrijdag 22 november 2013 @ 16:36:
Ik ben eigenlijk wel benieuwd wie een mooiere constructie weet te verzinnen. Voor Javascript weet ik weinig beters (maar ik ben ook geen JS-programmeur meestal), maar in Python zou ik het zo doen:
Python:
1
2
initials = 'abc'
''.join([c.upper() + '.' for c in initials if c.isalpha()])
Ik zou hiervoor gaan, als ik in een omgeving zou werken waar ik 100% zeker weet dat er geen niet-latijnse karakters in de string zitten. Want dit werkt in bijvoorbeeld arabisch niet goed.

Python:
1
2
initials = 'abc'
'{}.'.format('. '.join(c for c in initials.upper() if c.isalpha()))

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 11:54

Janoz

Moderator Devschuur®

!litemod

Gewoon niet aankomen. Er zijn geen regels voor initialen en degene die weten hoe het er uit zou moeten zien zijn zijn de mensen die het intikken. Het voorbeeld dat je zelf geeft gaat bijvoorbeeld al mis bij een Turk die 'i' opgegeven heeft.

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

Pagina: 1 2 ... 20 Laatste

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