Met een beetje handige compiler gaat die zelfs met een branchless conditional move.oisyn schreef op zondag 19 april 2015 @ 11:56:
Of gewoon delen door Max(iAvgCount, 1)
@incaz: dat is heel lief maar ik gebruik iAvgValue nog wat verder ook
Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag
Zucht.. websites die een pdf willen en deze dan niet accepteren
en dan vrolijk melden dat er alleen PDF, DOC, DOCX, RTF, ODT, TXT toegestaan is... dan maar ODT.
Glass Eye Photography | Zelfbouw wireless fightstick | Mijn puzzel site
Als, als, als... Typisch is dat gewoon niet het gevalincaz schreef op zondag 19 april 2015 @ 13:14:
.oisyn: als de waarde van iAvgValue <> 0 geeft jouw deling ook een resultaat <> 0 en dus een andere waarde voor x dan het if-block.
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.
Hernoemen al geprobeerd?Acid_Burn schreef op zondag 19 april 2015 @ 17:35:
Zucht.. websites die een pdf willen en deze dan niet accepterenen dan vrolijk melden dat er alleen PDF, DOC, DOCX, RTF, ODT, TXT toegestaan is... dan maar ODT.
code:
1
| "PDF" != "pdf" |
[ Voor 4% gewijzigd door NESFreak op 19-04-2015 19:00 ]
Yup, dat had ik ook al geprobeerd, dat was het eerste wat ik geprobeerd heb
ODT met kleine letters werd overigens wel geaccepteerd.
Glass Eye Photography | Zelfbouw wireless fightstick | Mijn puzzel site
Ik kwam het volgende stukje tegen in een stuk php dat ik ooit eens geschreven had:
heb er het volgende maar tussen lijn 2 en 3 gezet: $tag= $db->sql_escape($tag); iets veiliger, niet?!
PHP:
1
2
3
4
| $tag = $_GET['tag']; $page_title = "Tag zoeken: $tag"; $template->set_filenames(array('body' => 'site/tag_search.tpl')); $sql = 'select id from site_fotos_tags where tag =\''.$tag.'\''; |
heb er het volgende maar tussen lijn 2 en 3 gezet: $tag= $db->sql_escape($tag); iets veiliger, niet?!
Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag
Dit lijkt me beter: How can I prevent SQL-injection in PHP?Damic schreef op donderdag 14 mei 2015 @ 17:45:
Ik kwam het volgende stukje tegen in een stuk php dat ik ooit eens geschreven had:
PHP:
1 2 3 4 $tag = $_GET['tag']; $page_title = "Tag zoeken: $tag"; $template->set_filenames(array('body' => 'site/tag_search.tpl')); $sql = 'select id from site_fotos_tags where tag =\''.$tag.'\'';
heb er het volgende maar tussen lijn 2 en 3 gezet: $tag= $db->sql_escape($tag); iets veiliger, niet?!
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Ja zal wel maar gaat niet, $db is in dit geval mysql4 link, site draait nog op phpbb2
code:
Heb trouwens de pagina offline gehaald en al de links weggehaald vermits ik die functie niet meer meer gebruik.
1
| function sql_escape($msg){ return @mysql_real_escape_string($this->db_connect_id, $msg); |
[ Voor 61% gewijzigd door Damic op 14-05-2015 18:09 ]
Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag
Ik wil toch een code van mijzelf delen.
taal is C. code moet de rijen en kolommen van een array bij elkaar op te tellen.
for (d=0; d<N; d++)
{
c += z[d][0];
e += z[d][1];
f += z[d][2];
g += z[d][3];
h += z[d][4];
}
for (d=0; d<N; d++)
{
c2 += z[0][d];
e2 += z[1][d];
f2 += z[2][d];
g2 += z[3][d];
h2 += z[4][d];
}
taal is C. code moet de rijen en kolommen van een array bij elkaar op te tellen.
for (d=0; d<N; d++)
{
c += z[d][0];
e += z[d][1];
f += z[d][2];
g += z[d][3];
h += z[d][4];
}
for (d=0; d<N; d++)
{
c2 += z[0][d];
e2 += z[1][d];
f2 += z[2][d];
g2 += z[3][d];
h2 += z[4][d];
}
Ja dat kan beter
Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag
Heb de code vorige week geschreven
int sumrows[N] = {}, sumcols[N] = {};
for (i = 0; i < N; ++i) {
for (d = 0; d < N; ++d)
sumrows[i] += z[d][i];
sumcols[i] += z[i][d];
}
}
En metsarkout schreef op zaterdag 16 mei 2015 @ 20:38:
[...]
Heb de code vorige week geschreven. Heb niet echt de tijd om het hele programma te herschrijven en dan er zoiets van te maken :
int sumrows[N] = {}, sumcols[N] = {};
for (i = 0; i < N; ++i) {
for (d = 0; d < N; ++d)
sumrows[i] += z[d][i];
sumcols[i] += z[i][d];
}
}
code:
1
| [code][/code] |
Tags zou het nog beter worden
kon die niet vinden ! TILwsitedesign schreef op zaterdag 16 mei 2015 @ 21:13:
[...]
En met
code:
1 [code][/code]
Tags zou het nog beter worden
wsitedesign schreef op zaterdag 16 mei 2015 @ 21:13:
[...]
En met
code:
1 [code][/code]
Tags zou het nog beter worden
En wat dan helemaal te gek is, is
code:
1
| [code=C][/code] |
dan heeft je code ook nog kleur
heb er een feat request van gemaakt, toch relevant op een site als tweakers niet???
Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag
Ik zou ook even kijken naar wat je met $page_title doet...Damic schreef op donderdag 14 mei 2015 @ 17:45:
Ik kwam het volgende stukje tegen in een stuk php dat ik ooit eens geschreven had:
PHP:
1 2 3 4 $tag = $_GET['tag']; $page_title = "Tag zoeken: $tag"; $template->set_filenames(array('body' => 'site/tag_search.tpl')); $sql = 'select id from site_fotos_tags where tag =\''.$tag.'\'';
heb er het volgende maar tussen lijn 2 en 3 gezet: $tag= $db->sql_escape($tag); iets veiliger, niet?!
Als het zo direct op de pagina terecht komt creëer je een XSS exploit.
$page_title is gewoon de pagina titel, maar zoals ik al zei heb ik de pagina verwijderd.
Ow wacht ik snap hem lekker css/js/... enzo laden.
Ow wacht ik snap hem lekker css/js/... enzo laden.


[ Voor 26% gewijzigd door Damic op 25-05-2015 15:25 ]
Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag
Weer eens een mooi pareltje in JS gevonden:
Een AJAX-request doen om nieuwe items ma een muisklik asynchroon op te halen klinkt erg tof, maar de request doet niets anders dan steeds dezelfde volledige pagina ophalen en met .find() de posts ophalen van navigatiepagina die erop volgt in Wordpress....
Hoop onnodig dataverkeer per request. Bak dan liever een API die aan de hand van een request een JSON-string uitpoept met daarin de nodige posts. Zo lastig zal het ook niet zo zijn...
Het scheelt niet zo veel, maar ik zou het niet zo doen.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| $.ajax({ url: nextLink, cache: false, success: function(data) { $('.pbd-alp-placeholder-'+ pageNum).html($(data).find('article.post').hide()); $('.pbd-alp-placeholder-'+ pageNum +' article.post').slideDown('slow'); // Update page number and nextLink. pageNum++; nextLink = nextLink.replace(/\/page\/[0-9]*/, '/page/'+ pageNum); // Add a new placeholder, for when user clicks again. $('#pbd-alp-load-posts') .before('<div class="pbd-alp-placeholder pbd-alp-placeholder-'+ pageNum +'"></div>'); // Update the button message. if(pageNum <= max) { $('#pbd-alp-load-posts a').html('Meer leesvoer<span class="icon"></span>'); } else { $('#pbd-alp-load-posts a').text('Dat was al het leesvoer.'); } } }); |
Een AJAX-request doen om nieuwe items ma een muisklik asynchroon op te halen klinkt erg tof, maar de request doet niets anders dan steeds dezelfde volledige pagina ophalen en met .find() de posts ophalen van navigatiepagina die erop volgt in Wordpress....
Hoop onnodig dataverkeer per request. Bak dan liever een API die aan de hand van een request een JSON-string uitpoept met daarin de nodige posts. Zo lastig zal het ook niet zo zijn...
Het scheelt niet zo veel, maar ik zou het niet zo doen.
☎ Telecommunicatie van vroeger
🚅Alles over spoor en treintjes
Ziet dat er php uit?AW_Bos schreef op donderdag 28 mei 2015 @ 18:57:
Weer eens een mooi pareltje in PHP gevonden:
Dat is dan ook het slechte programmeervoorbeeld
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.
De vraag blijft altijd wat is de intentie geweest.Caelorum schreef op maandag 09 maart 2015 @ 17:15:
Vraag is of je in C# überhaupt nog wel een methode wil schrijven aangezien categories in het voorbeeld public is
Zo te zien gebeurde er gewoon te veel in het verleden.
Persoonlijk ben ik een fan van om als je zoiets dan toch wil doen ( in dit geval natuurlijk niet nuttig )
code:
1
2
3
4
5
| if ( list == null ) { return; } DeRest; |
Om waar mogelijk de indenatie te verminderen.
Hoe vaak zie je niet iets van
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| if ( iets != null ) { for ( int i = 0 ; i < 10 i++ ) { while ( lijstje ! = null ) { foreach( var item in lijstje ) { doeiets(); } } } } |
Niet altijd zo kort op elkaar maar vaak zie je het wel zo erg onhandig.
Overigens een voorbeeldje (abstract) uit onze code
code:
1
2
| string returnstring Functie ( Input1, input2, null, null, true, true, false, false, true, null, returnstring ); |
waarbij de functie een boolean als return value heeft, maar deze vervolgens niet gebruikt wordt.
[ Voor 44% gewijzigd door Kevinp op 28-05-2015 19:34 ]
d'r is maar één ding in het leven wat moet, en dat is dood gaan.
Errr, dat is javascript met jQuery library....AW_Bos schreef op donderdag 28 mei 2015 @ 18:57:
Weer eens een mooi pareltje in PHP gevonden:
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 $.ajax({ url: nextLink, cache: false, success: function(data) { $('.pbd-alp-placeholder-'+ pageNum).html($(data).find('article.post').hide()); $('.pbd-alp-placeholder-'+ pageNum +' article.post').slideDown('slow'); // Update page number and nextLink. pageNum++; nextLink = nextLink.replace(/\/page\/[0-9]*/, '/page/'+ pageNum); // Add a new placeholder, for when user clicks again. $('#pbd-alp-load-posts') .before('<div class="pbd-alp-placeholder pbd-alp-placeholder-'+ pageNum +'"></div>'); // Update the button message. if(pageNum <= max) { $('#pbd-alp-load-posts a').html('Meer leesvoer<span class="icon"></span>'); } else { $('#pbd-alp-load-posts a').text('Dat was al het leesvoer.'); } } });
Een AJAX-request doen om nieuwe items ma een muisklik asynchroon op te halen klinkt erg tof, maar de request doet niets anders dan steeds dezelfde volledige pagina ophalen en met .find() de posts ophalen van navigatiepagina die erop volgt in Wordpress....
Hoop onnodig dataverkeer per request. Bak dan liever een API die aan de hand van een request een JSON-string uitpoept met daarin de nodige posts. Zo lastig zal het ook niet zo zijn...
Het scheelt niet zo veel, maar ik zou het niet zo doen.
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!
Oei, iets te snel getypt...
☎ Telecommunicatie van vroeger
🚅Alles over spoor en treintjes
Mijn werk wou een tijdje geleden een PHP tool aanschaffen en de vraag was of ik even mijn mening er over wou geven... Ik heb dit gemeld aan mijn leidinggevende;
Dit was namelijk encryptie volgens die applicatieHet is leuk leedvermaak en mag ik gebruiken als voorbeeld hoe je niet moet programmeren ?
PHP:
1
2
3
4
5
6
7
| function encr($v){ $v = sha1($v); $v = md5($v); $v = sha1($v); $v = md5($v); return $v; } |
[ Voor 0% gewijzigd door Hertog6 op 30-05-2015 13:09 . Reden: Typo ]
MacBook Pro Mid 2012 16Gb RAM | Xiaomi Mi2S 32 Gb
Daarom zweer ik zelf dan ook altijd bij rot-13 voor encryptie .. hell voor de extra veiligheid maak ik er meestal nog dubbel rot-13 vanHertog6 schreef op zaterdag 30 mei 2015 @ 13:07:
Mijn werk wou een tijdje geleden een PHP tool aanschaffen en de vraag was of ik even mijn mening er over wou geven... Ik heb dit gemeld aan mijn leidinggevende;
[...]
Dit was namelijk encryptie volgens die applicatie
PHP:
1 2 3 4 5 6 7 function encr($v){ $v = sha1($v); $v = md5($v); $v = sha1($v); $v = md5($v); return $v; }
PHP:
1
| $=str_rot13(str_rot13($v)) |
Lijkt wel op die post van the DailyWTF, daar waar ze md5 als compressie algoritme gebruikenHertog6 schreef op zaterdag 30 mei 2015 @ 13:07:
Mijn werk wou een tijdje geleden een PHP tool aanschaffen en de vraag was of ik even mijn mening er over wou geven... Ik heb dit gemeld aan mijn leidinggevende;
[...]
Dit was namelijk encryptie volgens die applicatie
PHP:
1 2 3 4 5 6 7 function encr($v){ $v = sha1($v); $v = md5($v); $v = sha1($v); $v = md5($v); return $v; }
'k Kan 'm alleen zelf niet meer vinden...
[ Voor 5% gewijzigd door Feanathiel op 30-05-2015 14:20 ]
Mede-student wilde graag een random getal, als het maar onder de 6 bleef:
Ruby:
1
2
3
4
| vote = rand(10) while (vote > 5) vote = rand(10) end |
Zelf vind ik het vervelend om zoiets te moeten lezen. Het liefst zie ik een 'bouncer like' programmeer style wat betreft dit soort dingen. Bijvoorbeeld: Is het object null? Retourneer dan direct uit de methode. Zo krijg je zo min mogelijk if-nesting. Oftewel, check onder elkaar wat er niet goed is. Na deze checks kun je ervan uitgaan dat zich geen probleem meer voordoet. Zo hoef je dus niet in de if brackets te blijven werken.code:
1 2 3 4 5 6 7 8 9 10 11 12 13 if ( iets != null ) { for ( int i = 0 ; i < 10 i++ ) { while ( lijstje ! = null ) { foreach( var item in lijstje ) { doeiets(); } } } }
[ Voor 14% gewijzigd door mobstaa op 31-05-2015 22:24 ]
Nefit EnviLine 7400I AW 7 | Nefit HR 300 liter boiler | Nefit 50 liter buffervat | Nefit Moduline 1010H thermostaat | Buderus pomp | Home Assistant | BBQKees | Itho HRU 300R | Tibber
Ik valideer ook 'as early as possible' maar soms zit je met lijsten in lijsten en ga je onnodig een extra loop doen. Dan valideer ik alleen de outer lijst en bij de inner list loop en check ik alsnog.mobstaa schreef op zondag 31 mei 2015 @ 22:23:
[...]
Zelf vind ik het vervelend om zoiets te moeten lezen. Het liefst zie ik een 'bouncer like' programmeer style wat betreft dit soort dingen. Bijvoorbeeld: Is het object null? Retourneer dan direct uit de methode. Zo krijg je zo min mogelijk if-nesting. Oftewel, check onder elkaar wat er niet goed is. Na deze checks kun je ervan uitgaan dat zich geen probleem meer voordoet. Zo hoef je dus niet in de if brackets te blijven werken.
C#:
1
2
3
4
5
| Foo item = db.Items.Find(id); /**/ model.itemId = item.id; model.item = db.Items.Find(item.id); |
WTF?
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
Hmm, als ik het goed heb, wilde je hier een kopie maken van het object item?F.West98 schreef op vrijdag 05 juni 2015 @ 13:49:
C#:
1 2 3 4 5 Foo item = db.Items.Find(id); /**/ model.itemId = item.id; model.item = db.Items.Find(item.id);
WTF?
Nu zoek je hetzelfde object uit de database, in plaats van dat je direct zegt model.item = item.
Nefit EnviLine 7400I AW 7 | Nefit HR 300 liter boiler | Nefit 50 liter buffervat | Nefit Moduline 1010H thermostaat | Buderus pomp | Home Assistant | BBQKees | Itho HRU 300R | Tibber
Kijk eens naar de topictitel? ^^mobstaa schreef op zaterdag 06 juni 2015 @ 17:11:
[...]
Hmm, als ik het goed heb, wilde je hier een kopie maken van het object item?
Nu zoek je hetzelfde object uit de database, in plaats van dat je direct zegt model.item = item.
Ja haha, dat snap ik weln Wilde alleen even z'n foutje nalopen:)
Nefit EnviLine 7400I AW 7 | Nefit HR 300 liter boiler | Nefit 50 liter buffervat | Nefit Moduline 1010H thermostaat | Buderus pomp | Home Assistant | BBQKees | Itho HRU 300R | Tibber
Ik wilde hier niets doen. Ik kwam deze code alleen maar tegenmobstaa schreef op zaterdag 06 juni 2015 @ 18:22:
[...]
Ja haha, dat snap ik weln Wilde alleen even z'n foutje nalopen:)
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
Maar het werkt toch?
Ik werk mee aan een project dat ooit is ontwikkeld in India. Dat hebben we in Nederland werkend gekregen, maar dit soort juweeltjes zou er niet eens in opvallen

[ Voor 78% gewijzigd door MBV op 08-06-2015 14:59 ]
Ik ga de discussie even afsplitsen naar een ander topic 
.edit: done: [disc] ROT13, encryptie of niet?
.edit: done: [disc] ROT13, encryptie of niet?
[ Voor 37% gewijzigd door .oisyn op 10-06-2015 13:49 ]
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.
Kan je dat evt doen naar een topic dat voor iedereen toegankelijk is?.oisyn schreef op woensdag 10 juni 2015 @ 13:44:
Ik ga de discussie even afsplitsen naar een ander topic
Mischien moet je gewoon even geduld hebben terwijl ik de reacties verplaats. Het is niet 1 enkele handeling namelijk, dus doe ik dat eerst in een forum waar mensen er niet doorheen gaan tetteren
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.
Sorry, ik lees voornamelijk via rss en ineens werkte geen enkele reactie-link meer. Volgende keer zal ik iets geduldiger proberen zijn.oisyn schreef op woensdag 10 juni 2015 @ 13:50:
Mischien moet je gewoon even geduld hebben terwijl ik de reacties verplaats. Het is niet 1 enkele handeling namelijk, dus doe ik dat eerst in een forum waar mensen er niet doorheen gaan tetteren

Van een collega (moet de text van een label in geld omzetten):
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
| UILabel FormatLabel(UILabel lab) { string strToAdd = ""; if (lab.Text.Contains(".")) { string[] splittedPU = lab.Text.Split(".".ToCharArray()); for (int i = 0; i < 4 - splittedPU[0].Length; i++) strToAdd += "0"; lab.Text = strToAdd + lab.Text; strToAdd = ""; for (int i = 0; i < 2 - splittedPU[1].Length; i++) strToAdd += "0"; lab.Text = " € " + lab.Text + strToAdd; } else if (lab.Text == "") lab.Text = " € 0000.00"; else { strToAdd = ""; for (int i = 0; i < 4 - lab.Text.Length; i++) strToAdd += "0"; lab.Text = " € " + strToAdd + lab.Text + ".00"; } lab.Text += "\t"; return lab; } |
Dat lijkt me handig! Ik heb ook wel een label dat ik in geld wil omzettenDaos schreef op vrijdag 12 juni 2015 @ 20:09:
Van een collega (moet de text van een label in geld omzetten):
Never explain with stupidity where malice is a better explanation
Verwijderd
Een projectje van vroeger eens doorgekeken, en wauw:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| if($checklogin == 'yes'){ if($medewerkerid == '') { if($_SERVER['PHP_SELF'] != '/x.php'){ if($_SERVER['PHP_SELF'] != '/x.php'){ if($_SERVER['PHP_SELF'] != '/x.php'){ if($_SERVER['PHP_SELF'] != '/x/x.php'){ if($_SERVER['PHP_SELF'] != '/x/x.php'){ if($_SERVER['PHP_SELF'] != '/x/x.php'){ if($_SERVER['PHP_SELF'] != '/x.php'){ if($_SERVER['PHP_SELF'] != '/x/x.php'){ echo '<meta http-equiv="refresh" content="0;URL=x.php" />'; exit(); } } } } } } } } } } |
Netbeans gaat al zeiken als je 3 if-statements nest. Hier zal hij wel helemaal depressief van worden.
Roses are red, violets are blue, unexpected '{' on line 32.
Verwijderd schreef op vrijdag 12 juni 2015 @ 22:42:
Een projectje van vroeger eens doorgekeken, en wauw:
PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 if($checklogin == 'yes'){ if($medewerkerid == '') { if($_SERVER['PHP_SELF'] != '/x.php'){ if($_SERVER['PHP_SELF'] != '/x.php'){ if($_SERVER['PHP_SELF'] != '/x.php'){ if($_SERVER['PHP_SELF'] != '/x/x.php'){ if($_SERVER['PHP_SELF'] != '/x/x.php'){ if($_SERVER['PHP_SELF'] != '/x/x.php'){ if($_SERVER['PHP_SELF'] != '/x.php'){ if($_SERVER['PHP_SELF'] != '/x/x.php'){ echo '<meta http-equiv="refresh" content="0;URL=x.php" />'; exit(); } } } } } } } } } }


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.
offtopic:
klein vraagje. UIt elke film/serie komt die afbeelding ?
klein vraagje. UIt elke film/serie komt die afbeelding ?
Curb. Neem volgende week vrij, want je moet verplicht deze achterstand inhalen.Webgnome schreef op zaterdag 13 juni 2015 @ 14:01:
[...]
offtopic:
klein vraagje. UIt elke film/serie komt die afbeelding ?
Humanist | Kernpower! | Determinist | Verken uw geest | Politiek dakloos
Brent schreef op zaterdag 13 juni 2015 @ 14:06:
[...]
Curb. Neem volgende week vrij, want je moet verplicht deze achterstand inhalen.
offtopic:
Voor de duidelijkheid, curb your enthusiasm
Voor de duidelijkheid, curb your enthusiasm
IMDB vote history | Next-gen OS, audio en video player, search engine en Movie DB
Daar moet onze vriend van XKCD natuurlijk even een bijdrage aanleveren:RetroTycoon schreef op zondag 31 mei 2015 @ 22:05:
Mede-student wilde graag een random getal, als het maar onder de 6 bleef:
Ruby:
1 2 3 4 vote = rand(10) while (vote > 5) vote = rand(10) end

Tjolk is lekker. overal en altijd.
Ik kom zojuist weer een pareltje tegen.
Eerst een SELECT *... doen gevolgd door dit:
Eerst een SELECT *... doen gevolgd door dit:
PHP:
1
2
3
4
5
6
| foreach($result as $row) { foreach($excluded_columns as $column) { unset($row[$column]); } $rows[] = $row; } |
Roses are red, violets are blue, unexpected '{' on line 32.
C#:
1
2
| int timeOutSeconds = 300; timeout = TimeSpan.FromMilliseconds(timeOutSeconds * 1000) |
Kater? Eerst water, de rest komt later
Je wilt waarschijnlijk niet weten in hoeveel zelfgebouwde ORM's etc dit soort dingen zittenWernerL schreef op woensdag 17 juni 2015 @ 11:39:
Ik kom zojuist weer een pareltje tegen.
Eerst een SELECT *... doen gevolgd door dit:
PHP:
1 2 3 4 5 6 foreach($result as $row) { foreach($excluded_columns as $column) { unset($row[$column]); } $rows[] = $row; }
Ach, ik kwam zoiets ook in C++ tegen:
En het leukste: QSqlRelationalTableModel is juist gemaakt om tabellen aan elkaar te hangen (met foreign keys), wat dus totaal niet wordt gebruikt, en die klasse heeft in onze versie een bug dat hij niet meer dan 256 elementen kan parsen. Bug was verholpen met SELECT * FROM X WHERE Y=PatientID...
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| m_pcRelationalTableModel = new QSqlRelationalTableModel(); m_pcRelationalTableModel->setTable(GLOBAL_DEFINE_TABLE_NAME); int nRowCount = m_pcRelationalTableModel->rowCount(); for( int nRowIndex = 0; nRowIndex < nRowCount; nRowIndex++) { QSqlRecord cChkPatientRecord; cChkPatientRecord = m_pcRelationalTableModel->record(nRowIndex); QString cPatientTblID = cChkPatientRecord.value(GLOBALLY_DEFINED_ID_NAME).toString(); if(cPatientTblID.toStdString() == m_strPatientID) { bPatientRecordFound = true; cPatientRecord = cChkPatientRecord; } } } if (bPatientRecordFound) Whatever(cPatientRecord); |
En het leukste: QSqlRelationalTableModel is juist gemaakt om tabellen aan elkaar te hangen (met foreign keys), wat dus totaal niet wordt gebruikt, en die klasse heeft in onze versie een bug dat hij niet meer dan 256 elementen kan parsen. Bug was verholpen met SELECT * FROM X WHERE Y=PatientID...
Misschien dat deze hier ook wel thuis hoort...
Duizenden regels zoals dit... zucht.
Visual Basic .NET:
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
| 'schrijf registratie gegevens & betaling in XML bestand Public Sub schrijfXML(bestpath As String, a As String, b As String, c As String, d As String, e As String, f As String, g As String, codea As String, codeb As String, codec As String, ticket As String, h As String, i As String, j As String, aa As String, ab As String, ac As String, k As String, l As String, m As String, n As String, o As String, p As String, q As String, r As String, ad As String, ae As String, af As String, s As String, t As String, u As String, v As String, w As String, x As String, y As String, z As String, opma As String, opmb As String) If Not File.Exists(bestpath + "kassa" + Trim(Str(b)) + "log.csv") Then Using sw As StreamWriter = File.CreateText(bestpath + "kassa" + Trim(Str(b)) + "log.csv") sw.WriteLine("Barcode;KassaNr;Taal;Start;Maaltijd;t-Shirt;Totaal;Startcode;MaaltijdCode;t-Shirtcode;Te Betalen;Hoe betaald;Bedrag Betaald;Saldo;In10c;In20c;In50c;In1e;In2e;In5e;In10e;In20e;In50e;In100e;In200e;Uit10c;Uit20c;Uit50c;Uit1e;Uit2e;Uit5e;Uit10e;Uit20e;Uit50e;Uit100e;Uit200e;Handeling;Wie") End Using End If Using sw As StreamWriter = File.AppendText(bestpath + "kassa" + Trim(Str(b)) + "log.csv") sw.WriteLine(a + ";" + b + ";" + c + ";" + d + ";" + e + ";" + f + ";" + g + ";" + codea + ";" + codeb + ";" + codec + ";" + ticket + ";" + h + ";" + i + ";" + j + ";" + aa + ";" + ab + ";" + ac + ";" + k + ";" + l + ";" + m + ";" + n + ";" + o + ";" + p + ";" + q + ";" + r + ";" + ad + ";" + ae + ";" + af + ";" + s + ";" + t + ";" + u + ";" + v + ";" + w + ";" + x + ";" + y + ";" + z + ";" + opma + ";" + opmb) End Using End Sub |
Visual Basic .NET:
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
115
116
117
118
119
120
| Form5.Label1.Text = tabel(1, 0) Form5.Label25.Text = tabel(1, 1) Form5.Label26.Text = tabel(1, 2) Form5.Label27.Text = tabel(1, 3) Form5.Label28.Text = tabel(1, 4) Form5.Label122.Text = tabel(1, 5) Form5.Label2.Text = tabel(2, 0) Form5.Label32.Text = tabel(2, 1) Form5.Label31.Text = tabel(2, 2) Form5.Label30.Text = tabel(2, 3) Form5.Label29.Text = tabel(2, 4) Form5.Label121.Text = tabel(2, 5) Form5.Label3.Text = tabel(3, 0) Form5.Label36.Text = tabel(3, 1) Form5.Label35.Text = tabel(3, 2) Form5.Label34.Text = tabel(3, 3) Form5.Label33.Text = tabel(3, 4) Form5.Label120.Text = tabel(3, 5) Form5.Label4.Text = tabel(4, 0) Form5.Label40.Text = tabel(4, 1) Form5.Label39.Text = tabel(4, 2) Form5.Label38.Text = tabel(4, 3) Form5.Label37.Text = tabel(4, 4) Form5.Label119.Text = tabel(4, 5) Form5.Label5.Text = tabel(5, 0) Form5.Label44.Text = tabel(5, 1) Form5.Label43.Text = tabel(5, 2) Form5.Label42.Text = tabel(5, 3) Form5.Label41.Text = tabel(5, 4) Form5.Label118.Text = tabel(5, 5) Form5.Label6.Text = tabel(6, 0) Form5.Label48.Text = tabel(6, 1) Form5.Label47.Text = tabel(6, 2) Form5.Label46.Text = tabel(6, 3) Form5.Label45.Text = tabel(6, 4) Form5.Label117.Text = tabel(6, 5) Form5.Label11.Text = tabel(7, 0) Form5.Label52.Text = tabel(7, 1) Form5.Label51.Text = tabel(7, 2) Form5.Label50.Text = tabel(7, 3) Form5.Label49.Text = tabel(7, 4) Form5.Label116.Text = tabel(7, 5) Form5.Label10.Text = tabel(8, 0) Form5.Label56.Text = tabel(8, 1) Form5.Label55.Text = tabel(8, 2) Form5.Label54.Text = tabel(8, 3) Form5.Label53.Text = tabel(8, 4) Form5.Label115.Text = tabel(8, 5) Form5.Label9.Text = tabel(9, 0) Form5.Label60.Text = tabel(9, 1) Form5.Label59.Text = tabel(9, 2) Form5.Label58.Text = tabel(9, 3) Form5.Label57.Text = tabel(9, 4) Form5.Label114.Text = tabel(9, 5) Form5.Label8.Text = tabel(10, 0) Form5.Label64.Text = tabel(10, 1) Form5.Label63.Text = tabel(10, 2) Form5.Label62.Text = tabel(10, 3) Form5.Label61.Text = tabel(10, 4) Form5.Label113.Text = tabel(10, 5) Form5.Label7.Text = tabel(11, 0) Form5.Label68.Text = tabel(11, 1) Form5.Label67.Text = tabel(11, 2) Form5.Label66.Text = tabel(11, 3) Form5.Label65.Text = tabel(11, 4) Form5.Label112.Text = tabel(11, 5) Form5.Label22.Text = tabel(12, 0) Form5.Label72.Text = tabel(12, 1) Form5.Label71.Text = tabel(12, 2) Form5.Label70.Text = tabel(12, 3) Form5.Label69.Text = tabel(12, 4) Form5.Label111.Text = tabel(12, 5) Form5.Label21.Text = tabel(13, 0) Form5.Label76.Text = tabel(13, 1) Form5.Label75.Text = tabel(13, 2) Form5.Label74.Text = tabel(13, 3) Form5.Label73.Text = tabel(13, 4) Form5.Label110.Text = tabel(13, 5) Form5.Label20.Text = tabel(14, 0) Form5.Label80.Text = tabel(14, 1) Form5.Label79.Text = tabel(14, 2) Form5.Label78.Text = tabel(14, 3) Form5.Label77.Text = tabel(14, 4) Form5.Label109.Text = tabel(14, 5) Form5.Label18.Text = tabel(15, 0) Form5.Label84.Text = tabel(15, 1) Form5.Label83.Text = tabel(15, 2) Form5.Label82.Text = tabel(15, 3) Form5.Label81.Text = tabel(15, 4) Form5.Label108.Text = tabel(15, 5) Form5.Label17.Text = tabel(16, 0) Form5.Label88.Text = tabel(16, 1) Form5.Label87.Text = tabel(16, 2) Form5.Label86.Text = tabel(16, 3) Form5.Label85.Text = tabel(16, 4) Form5.Label107.Text = tabel(16, 5) Form5.Label16.Text = tabel(17, 0) Form5.Label92.Text = tabel(17, 1) Form5.Label91.Text = tabel(17, 2) Form5.Label90.Text = tabel(17, 3) Form5.Label89.Text = tabel(17, 4) Form5.Label106.Text = tabel(17, 5) Form5.Label15.Text = tabel(18, 0) Form5.Label96.Text = tabel(18, 1) Form5.Label95.Text = tabel(18, 2) Form5.Label94.Text = tabel(18, 3) Form5.Label93.Text = tabel(18, 4) Form5.Label105.Text = tabel(18, 5) Form5.Label14.Text = tabel(19, 0) Form5.Label100.Text = tabel(19, 1) Form5.Label99.Text = tabel(19, 2) Form5.Label98.Text = tabel(19, 3) Form5.Label97.Text = tabel(19, 4) Form5.Label23.Text = tabel(19, 5) Form5.Label13.Text = tabel(20, 0) Form5.Label104.Text = tabel(20, 1) Form5.Label103.Text = tabel(20, 2) Form5.Label102.Text = tabel(20, 3) Form5.Label101.Text = tabel(20, 4) Form5.Label12.Text = tabel(20, 5) |
Duizenden regels zoals dit... zucht.
Lijkt me automatisch gegenereerd door de form builder van Visual studio? Ik mag toch hopen dat niet iemand daadwerkelijk 1000e keren zo' n regel heeft zitten tikken. 
Wel is het slecht dat hij zijn labels geen fatsoenlijke namen geeft.
Wel is het slecht dat hij zijn labels geen fatsoenlijke namen geeft.
Roses are red, violets are blue, unexpected '{' on line 32.
Nee, dit heeft hij echt zelf geschrevenWernerL schreef op vrijdag 19 juni 2015 @ 16:53:
Lijkt me automatisch gegenereerd door de form builder van Visual studio? Ik mag toch hopen dat niet iemand daadwerkelijk 1000e keren zo' n regel heeft zitten tikken.
Wel is het slecht dat hij zijn labels geen fatsoenlijke namen geeft.

Wat zal ik ervan zeggen, het ziet eruit als Visual Basic code
Knap stukje code. Tegenwoordig is dat natuurlijk echt not done om het zo te doen (best practice..)Bv202 schreef:
Duizenden regels zoals dit... zucht.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
Eenmalige bedoelde oplossing die uiteindelijk tot wat permanenter geschopt heeft. Nietl heel uitzonderlijk
Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)
Interessant ook dat schrijfXML gebruikt wordt om een CSV aan te maken. Halverwege van gedachten veranderd maar de naam niet gewijzigd ofzo?Bv202 schreef op vrijdag 19 juni 2015 @ 16:34:
Misschien dat deze hier ook wel thuis hoort...
Visual Basic .NET:
1 2 'schrijf registratie gegevens & betaling in XML bestand Public Sub schrijfXML(bestpath As String,
Visual Basic .NET:
1 2 3 4 5 6 If Not File.Exists(bestpath + "kassa" + Trim(Str(b)) + "log.csv") Then Using sw As StreamWriter = File.CreateText(bestpath + "kassa" + Trim(Str(b)) + "log.csv") sw.WriteLine("Barcode;KassaNr;Taal;Start;Maaltijd;t-Shirt;Totaal;Startcode;MaaltijdCode;t-Shirtcode;Te Betalen;Hoe betaald;Bedrag Betaald;Saldo;In10c;In20c;In50c;In1e;In2e;In5e;In10e;In20e;In50e;In100e;In200e;Uit10c;Uit20c;Uit50c;Uit1e;Uit2e;Uit5e;Uit10e;Uit20e;Uit50e;Uit100e;Uit200e;Handeling;Wie") End Using End If End Sub
Zou me niet verbazen als er een xml tag omheen komt te staan ^^
Mij wel: het bestand heet kassa*log.csv, en je ziet dat er met een streamwriter domweg regels worden weggeschreven
Nouja, er wordt in ieder geval netjes een using block gebruikt
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Iemand wel eens van het EEJJMMDD (eeuw/jaar/maand/dag) datumtijdformaat gehoord?
We leven in de 21e eeuw dus dan word 2015 2115
Dan maar bidden dat je het niet ergens in het verkeerde formaat uitleest 
http://www.geenstijl.nl/m...2015/06/svb_leaks_vi.html
We leven in de 21e eeuw dus dan word 2015 2115
http://www.geenstijl.nl/m...2015/06/svb_leaks_vi.html
Je krijgt er wel wat hits op als je er op googled .. vooral excel .. maar niet van een standaardisatie toko, dus het lijkt erop dat ze iets ongedefinieerds hebben weten te specificeren (tenzij ze een specificatie erbij geleverd hadden).
Maar we zijn toch in het 16e jaar van de 21e eeuw. Dus 2116?
👑
Mag ik dit hier droppen? http://pastebin.com/T6cSEUgD
Het werkte wel! Ik heb dit eind 2013 een keer geschreven. Was moe en het was laat... Nooit meer maak ik zulke excuses om zo'n slechte code te schrijven!
Het werkte wel! Ik heb dit eind 2013 een keer geschreven. Was moe en het was laat... Nooit meer maak ik zulke excuses om zo'n slechte code te schrijven!
De 21e eeuw is strikt genomen pas op 1 januari 2001 begonnen. Dus 2115. Maar maakt het alleen maar interessanter: Op 31 december 2000 volgt daardoor 1 januari 2101. En op 31 januari 2099 volgt 1 januari 2000.ajakkes schreef op zaterdag 20 juni 2015 @ 20:26:
Maar we zijn toch in het 16e jaar van de 21e eeuw. Dus 2116?
Ben wel benieuwd of ze het zo geimplementeerd hadden. Want als het niet zo werkt hadden ze de code op eigen kosten moeten aanpassen. En was het voor alle partijen eenvoudiger om iso 8601 te gebruiken.
👑
Ik kwam dit document tegen tijdens het zoeken (op CCYYMMDD): http://www.unece.org/trade/untdid/download/97cp03.txt. Dat heeft blijkbaar weer iets te maken met EDIFACT.gekkie schreef op zaterdag 20 juni 2015 @ 15:44:
Je krijgt er wel wat hits op als je er op googled .. vooral excel .. maar niet van een standaardisatie toko, dus het lijkt erop dat ze iets ongedefinieerds hebben weten te specificeren (tenzij ze een specificatie erbij geleverd hadden).
Volgens dat document is CC
CC = century, kan dus eeuw zijn, of de honderdtallen. In dat document betekent CC dus honderdtallen. Dus het dateformat zou in het Nederlands HHJJMMDD moeten zijnIf YY > 80, set CC to 19, else set CC to 20.

the less one forgets, the less one remembers
Ja ik was ook nog wat dingen tegen gekomen .. waaronder wat vragen van indiërs :x op wat fora ..
over het algemeen wordt van CCYY gewoon YYYY gemaakt, maar sommigen vinden inderdaad dat het inderdaad +100 mag zijn.
Excel maakt er in iedergeval gewoon YYYY van.
Je linkje laat wel weer zien dat je de UN geen standaarden moet laten maken ... hebben ze toch mooi een year2080 probleem geschapen met hun in de standaard gesuggereerde conversie
over het algemeen wordt van CCYY gewoon YYYY gemaakt, maar sommigen vinden inderdaad dat het inderdaad +100 mag zijn.
Excel maakt er in iedergeval gewoon YYYY van.
Je linkje laat wel weer zien dat je de UN geen standaarden moet laten maken ... hebben ze toch mooi een year2080 probleem geschapen met hun in de standaard gesuggereerde conversie
Waarom zou je de eeuw onderdeel uit laten maken van je datum? Ik snap het nog steeds niet...
We are shaping the future
Dat is 1 van de nadelen van werk uitbesteden in India, het is in NL een niet-standaard manier van schrijven, maar wellicht dat de ingehuurde programmeurs net iets hebben opgeleverd voor een land waar het wel de standaard was...Alex) schreef op zondag 21 juni 2015 @ 18:40:
Waarom zou je de eeuw onderdeel uit laten maken van je datum? Ik snap het nog steeds niet...
Bij buitenlands uitbesteed werk moet je dit soort dingen altijd expliciet specificeren, hoe gewoon het ook in NL lijkt...
In India is dat ook echt niet de standaard. Het probleem is gewoon dat ontwikkelaars in India menen dat ze niet betaald worden om het beter te weten dan de opdrachtgever maar dat ze gewoon zo nauwkeurig mogelijk de gevraagde specs moeten implementeren.Gomez12 schreef op zondag 21 juni 2015 @ 18:51:
Dat is 1 van de nadelen van werk uitbesteden in India, het is in NL een niet-standaard manier van schrijven, maar wellicht dat de ingehuurde programmeurs net iets hebben opgeleverd voor een land waar het wel de standaard was...
Bij buitenlands uitbesteed werk moet je dit soort dingen altijd expliciet specificeren, hoe gewoon het ook in NL lijkt...
Als er later onenigheid tussen opdrachtgever en ontwikkelaar ontstaat over het resultaat dan is er voor de juristen maar één vraag belangrijk: Heeft de ontwikkelaar opgelevert wat er werd gespecificeerd? En als de specs om onzin vragen dan zit de ontwikkelaar goed door ook onzin op te leveren.
Overigens is EDIFACT waar het hier en daar wel in genoemd werd nog steeds wel een aardige standaard in de Nederlandse zorg. Het word weliswaar niet meer doorontwikkeld, maar zal toch zeker deel uit maken van een hoop legacy deelsystemen: http://www.nictiz.nl/page/Standaarden/Edifact
Niet alleen in de zorg hoor. Heb voor een handelsbedrijf ook wel eens moeten koppelen op het EDIFACT systeem van een ander. Kende ik destijds nog niet, maar de andere partij vertelde me met droge ogen dat het DE standaard van de toekomst was en alle grote partijen er op termijn wel op zouden overschakelen. XML en CSV e.d. was allemaal maar onnodig ingewikkeld of te beperkt...
Ik had toen al zoiets van "wtf", maar ach. Zo moeilijk was het nu ook weer niet en het was toch onbegonnen werk om ze van hun ongelijk te overtuigen.
Ik had toen al zoiets van "wtf", maar ach. Zo moeilijk was het nu ook weer niet en het was toch onbegonnen werk om ze van hun ongelijk te overtuigen.
Tjolk is lekker. overal en altijd.
De enorme hoeveelheid WTF-standaarden van de overheid en dergelijke (maar ook die achterlijke clieops) hebben me echt verbaasd.
Never explain with stupidity where malice is a better explanation
Niet per direct een slecht voorbeeld maar ik merk dat ik tijdens mijn vakantie niet moet programmeren.
Er was een een entity met de naam Category die heel erg snel na deze post in de prullenbak is gevlogen
Lees de TODO... Als er (wat ik niet verwacht) zoveel topics en replies zijn als bij GoT dan wordt dit een zeer zware query
Er was een een entity met de naam Category die heel erg snel na deze post in de prullenbak is gevlogen
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
| class Category { /** * @ORM\Column(type="integer", name="id") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Forum\Section") * @ORM\JoinColumn(name="section", referencedColumnName="id") */ private $section; /** * @ORM\Column(type="integer", name="position") */ private $position; /** * @ORM\Column(type="string", length=255, name="title") */ private $title; /** * @ORM\Column(type="string", length=255, name="description") */ private $description; // TODO: Add OneToMany and JoinColumn for topics and replies private $topics; private $replies; } |
Lees de TODO... Als er (wat ik niet verwacht) zoveel topics en replies zijn als bij GoT dan wordt dit een zeer zware query
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
Ik dacht dat de zorg de VEKTIS standaarden hadden voor declaraties?Ger schreef op maandag 22 juni 2015 @ 08:51:
Niet alleen in de zorg hoor. Heb voor een handelsbedrijf ook wel eens moeten koppelen op het EDIFACT systeem van een ander. Kende ik destijds nog niet, maar de andere partij vertelde me met droge ogen dat het DE standaard van de toekomst was en alle grote partijen er op termijn wel op zouden overschakelen. XML en CSV e.d. was allemaal maar onnodig ingewikkeld of te beperkt...
Geen idee, ik ben niet zo bekend met de zorg. Reageerde alleen op jip_86
Tjolk is lekker. overal en altijd.
Het kan prima als model, je moet alleen zorgen dat het niet direct een join wordt met alle topics. Als er een proxy tussen zit waarmee je dmv lazy loading de boel ophaalt kan het wel performen.iRicardo schreef op maandag 22 juni 2015 @ 22:54:
Lees de TODO... Als er (wat ik niet verwacht) zoveel topics en replies zijn als bij GoT dan wordt dit een zeer zware query
Lieve hemel EDIFACT. Dat spul geeft me nog steeds nachtmerries, en dat terwijl ik zulke systemen moet onderhouden.jip_86 schreef op zondag 21 juni 2015 @ 21:04:
Overigens is EDIFACT waar het hier en daar wel in genoemd werd nog steeds wel een aardige standaard in de Nederlandse zorg. Het word weliswaar niet meer doorontwikkeld, maar zal toch zeker deel uit maken van een hoop legacy deelsystemen: http://www.nictiz.nl/page/Standaarden/Edifact

[ Voor 4% gewijzigd door Cilph op 23-06-2015 10:02 ]
Hmm. Naar mijn ervaring zijn Indiers juist heel erg 'opinionated', vooral wanneer het aankomt op hun begrip van wat hen uitgelegd wordt. Ik heb toch verschillende malen meegemaakt dat er heftig ja gezegd wordt op de vraag of het uitgelegde en gespecificeerde begrepen is, en dat er iets totaal anders als resultaat op de wereld werd gezet. Achteraf soms met de uitleg dat het logischer was om e.e.a. zo te doen, omdat de situatie als door mij geschetst niet aansloot bij de verwachtingen van de mensen uit India. Maar vaak ook gewoon omdat de stof onbekend is en/of de technische expertise ontbreekt.downtime schreef op zondag 21 juni 2015 @ 19:31:
[...]
In India is dat ook echt niet de standaard. Het probleem is gewoon dat ontwikkelaars in India menen dat ze niet betaald worden om het beter te weten dan de opdrachtgever maar dat ze gewoon zo nauwkeurig mogelijk de gevraagde specs moeten implementeren.
Als er later onenigheid tussen opdrachtgever en ontwikkelaar ontstaat over het resultaat dan is er voor de juristen maar één vraag belangrijk: Heeft de ontwikkelaar opgelevert wat er werd gespecificeerd? En als de specs om onzin vragen dan zit de ontwikkelaar goed door ook onzin op te leveren.
Het grote verschil met een west europese medewerker/opdrachtnemer zit 'm wat mij betreft vooral in de terugkoppeling. In India wordt een opdracht gewoon afgewerkt, en (in hun ogen) onlogische stukken worden overgeslagen of (erger nog) omgevormd naar totaal iets anders. Aan het einde van het traject volgt dan een oplevering waarin doodleuk wordt gesteld dat de specs niet deugden en je daarom maar totaal iets anders hebt gekregen. Tussentijds vragen is er niet bij, men had immers de vraag/specificaties gezien en al aangegeven die volledig begrepen te hebben
Het is waarschijnlijk wel iets waar beide partijen 'schuld' hebben. Wanneer je vanuit Europa gebruik maakt van India, moet je gewoonweg moeite stoppen in hoe de mensen daar functioneren (vanuit een cultureel oogpunt). Veel standaarden (van o.a. project management e.d.) die we in de IT gebruiken zijn, naast hier ontwikkeld, ook grotendeels gefundeerd in westerse normen en waarden. Vaak heeft men dat niet door, maar wat voor ons als logisch onderdeel van een standaard geldt, hoeft voor mensen aan de andere kant van de wereld helemaal niet als dusdanig ervaren te worden. Werken met mensen uit andere culturen is een hele leerweg en in sommige gevallen echt een job op zich
Niet om alles goed te praten. Maar vergeten we hier niet dat India een groot land is met veel inwoners.
En dat je ook in zo'n land betaald voor kwaliteit?
Geef je project aan een Nederlandse kleine ontwikkelaar en je krijgt mogelijk ook een draak van een product terug.
Bepaalde zaken zijn zeker waar, zoals cultuur verschillen en minder communicatie door afstand. Maar afspraken moeten gewoon duidelijk gemaakt worden. Zoals opleveren van werkende modules. En niet eindeloos bij dezelfde ontwikkelaars blijven hangen terwijl problemen open blijven staan.
Maar dat gebeurd in Nederland zelf ook te vaak.
En dat je ook in zo'n land betaald voor kwaliteit?
Geef je project aan een Nederlandse kleine ontwikkelaar en je krijgt mogelijk ook een draak van een product terug.
Bepaalde zaken zijn zeker waar, zoals cultuur verschillen en minder communicatie door afstand. Maar afspraken moeten gewoon duidelijk gemaakt worden. Zoals opleveren van werkende modules. En niet eindeloos bij dezelfde ontwikkelaars blijven hangen terwijl problemen open blijven staan.
Maar dat gebeurd in Nederland zelf ook te vaak.
👑
Dat klopt, maar door alleen een COUNT uit te voeren in de qeury weet je hoeveel replies een topic heeft.Voutloos schreef:
Een reply hoort al bij een topic, dus de category naar reply relatie is redundant.
Dat klopt, maar zelfs dan doet Doctrine er gemiddeld 9 seconden over om een goede query te cachen. Kortom, heel veel sleutelen om een juiste performance te kunnen krijgen. Je merkt al gauw tijdens het ontwerpen van entities dat je al snel tegen performance issue's oplooptcytherea schreef:
Het kan prima als model, je moet alleen zorgen dat het niet direct een join wordt met alle topics. Als er een proxy tussen zit waarmee je dmv lazy loading de boel ophaalt kan het wel performen.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
Waarom zou je niet gewoon zelf je query kloppen? Dat is toch veel leuker?
We are shaping the future
Wordt in de transportwereld ook volop gebruikt, denk dat ik inmiddels met zo'n 100+ verschillende berichten gewerkt heb volgens EDIFACT standaard....Cilph schreef op dinsdag 23 juni 2015 @ 10:01:
[...]
Lieve hemel EDIFACT. Dat spul geeft me nog steeds nachtmerries, en dat terwijl ik zulke systemen moet onderhouden.Niet alleen de zorgsector gebruikt dit nog btw.
Wie weet wat er hier precies gaat gebeuren? Het crasht niet, geen segfaults of zoiets, misschien omdat de destructor nooit wordt aangeroepen 
Wat gebeurt er met de 3e regel van onderen?
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| class MySingleton { public: static MySingleton* GetInstance() { if (instance == NULL) instance = new MySingleton(); return instance; } static void DeleteInstance() { delete instance; instance = NULL; } private: static MySingleton* instance = NULL; MySingleton() {} ~MySingleton() { delete instance; } } |
Wat gebeurt er met de 3e regel van onderen?

[ Voor 1% gewijzigd door MBV op 30-06-2015 11:45 . Reden: 2 overtypfoutjes gecorrigeerd :) zie onder voor origineel ]
https://stackoverflow.com...nd-class-static-variablesMBV schreef op maandag 29 juni 2015 @ 18:23:
Wie weet wat er hier precies gaat gebeuren? Het crasht niet, geen segfaults of zoiets, misschien omdat de destructor nooit wordt aangeroepen
C++:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 class MySingleton { public: static MySingleton* GetInstance() { if (instance == NULL) instance = new MySingleton(); return instance; } static void DeleteInstance() { delete instance;} private: MySingleton* instance = NULL; MySingleton() {} ~MySingleton() { delete instance; } }
Wat gebeurt er met de 3e regel van onderen?
Lijkt erop dat deze na de return van main worden opgeruimd.
DeleteInstance vind ik trouwens wel eng. Singleton, maar alleen als het uitkomt.
[ Voor 4% gewijzigd door Feanathiel op 29-06-2015 18:31 ]
De class heet ook niet Singleton, maar iets anders. Het is geen base-class waar de rest van wordt afgeleid helaas...
Maar mijn vraag ligt ergens anders. Wat daar indirect staat is 'delete this;' in de destructor, wat gebeurt dan? Er is immers nooit meer dan 1 instance (private constructor), dus instance == this.
Maar mijn vraag ligt ergens anders. Wat daar indirect staat is 'delete this;' in de destructor, wat gebeurt dan? Er is immers nooit meer dan 1 instance (private constructor), dus instance == this.
Krijg je niet überhaupt een compiler error dat je een non-static field gebruikt in een static context?MBV schreef op maandag 29 juni 2015 @ 18:23:
Wie weet wat er hier precies gaat gebeuren? Het crasht niet, geen segfaults of zoiets, misschien omdat de destructor nooit wordt aangeroepen
C++:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 class MySingleton { public: static MySingleton* GetInstance() { if (instance == NULL) instance = new MySingleton(); return instance; } static void DeleteInstance() { delete instance;} private: MySingleton* instance = NULL; MySingleton() {} ~MySingleton() { delete instance; } }
Wat gebeurt er met de 3e regel van onderen?
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Ik had het niet door de compiler gegooid om dat soort 'typo's' te checken, fixed
https://isocpp.org/wiki/faq/freestore-mgmt#delete-this Het kan dus wel, maar je moet zeker zijn van je zaak in meerdere opzichten, hoewel dit naar mijn mening dingen zijn die altijd van toepassing zijn als je een object delete.
AMD 5800X3D | 16gb DDR 4 @ 3800/14 | 4070 Ti | 1TB Samsung Evo 970, 1TB Samsung Evo 860, 512MB Crucial
Dit was dus fout:
C++:
1
2
3
4
5
| MySingleton::~MySingleton() { delete instance; //==this delete other_private_pointer; delete more_private_pointers; } |
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.
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.