Dat is de reden dat ik vrij vaak op F5 ram in plaats van die balk onderin aanklikken.oisyn schreef op dinsdag 02 september 2014 @ 15:57:
[...]
Ja net pas, met behulp van jouw post en het stukje wat RobIII in zijn laatste post heeft bijgeëdit maar wat ik niet zag omdat edits niet updaten
Het gebruiken van een client certificate voor een website lijkt me juist compleet het tegenovergestelde van security through obscurity?Matis schreef op dinsdag 02 september 2014 @ 12:57:
Gadverdamme.
Sinds 1 september zijn we met onze webbased urenregistratietool van een lokale server naar de cloud gegaan.
Wanneer je nu de tool (lees URL) wilt openen, moet je eerst handmatig een certificaat installeren in de browser. Daarna moet je dat certificaat middels een wachtwoord decrypten en dan pas kun je inloggen.
Voor iedere browser op iedere PC moet bovenstaand proces doorlopen worden, wil je er bij kunnen.
[afbeelding]
Over "security through obscurity" gesproken.
Omslachtig, sure, maar die client certificates zijn ongetwijfeld handiger uit te rollen dan handmatig.
Waarom heb je een laptop nodig op school?F.West98 schreef op dinsdag 02 september 2014 @ 15:13:
Ik zat net ook gewoon op school hoor
Met een laptop.
Om je niet te vervelen?alienfruit schreef op dinsdag 02 september 2014 @ 16:48:
[...]
Waarom heb je een laptop nodig op school?
Ik weet nog, toen ik op de middelbare zat. Het was altijd een strijd tegen verveling. Lekker kletsen met vrienden, vaak complete lessen niet meekrijgen. Nu op de uni is het wel wat anders. De docenten boeit het nu niets meer of je oplet. Wanneer je niet oplet faal je gewoon bijna direct (Tenzij je een introducerende Computer Science les krijgt, terwijl je al aantal jaar ervaring hebt in diezelfde programmeertaal natuurlijk
* Dido voelt zich echt oud.Robbiedobbie schreef op dinsdag 02 september 2014 @ 16:51:
Om je niet te vervelen?![]()
Ik weet nog, toen ik op de middelbare zat. Het was altijd een strijd tegen verveling.
Ik moest indertijd nog daadwerkelijk fysiek het klaslokaal verlaten om op de administratie met computers te kunnen spelen. En aangezien er geen internet was ging dat om zaken die nog daadwerkelijk productief waren zoals het (her)installeren van software, instellingen van WP standaardiseren, printerdrivers aanpassen. Het had wel hetzelfde doel: verveling tegengaan
Vreemd dat ze computers toelaten in de klas... Ik zou het allemaal niet meeslepen naar school. Heb je toch klasgenoten voor om je niet te vervelen?
Ook dat heb ik niet gezegd/bedoeld. Voor 't geval 't je niet opgevallen is/was: sbrilaaealtnmtlemnyvoeyaa is een permutatie van de string myTotallySaneVariableName (en lowercased ja...). En dat zou op die manier betekenen dat bar bijv. arb of bra zou worden (en niet jsahhrfegrlkajrhhawg). Misschien dat deze post dan logischer is/klinkt?.oisyn schreef op dinsdag 02 september 2014 @ 15:40:
Ontopic: ben het niet met RobIII eens dat jsahhrfegrlkajrhhawg duidelijker te lezen is dan lo10l01l0lol1ll1o0l101l0l10lo01l.
Maar goed; genoeg gewir-ward
[ Voor 13% gewijzigd door RobIII op 02-09-2014 17:16 ]
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
Is er een reden te verzinnen (behalve een academische oefening) om bij het obfuscaten uit te gaan van permutaties van de variabelenaam? Ik ben echt heel benieuwd wat de gedachtegang erachter is. Waar komt dit vandaan?
Never explain with stupidity where malice is a better explanation
Van Douweegbertje in "De Devschuur Coffee Corner - Iteratie 7"incaz schreef op dinsdag 02 september 2014 @ 17:17:
Waar komt dit vandaan?
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
Ah, goed punt!
(Maar ik blijf het een wonderlijke constraint vinden, permutaties van de naam.)
(Maar ik blijf het een wonderlijke constraint vinden, permutaties van de naam.)
Never explain with stupidity where malice is a better explanation
Ik ook; daarom kaartte ik 't ook aanincaz schreef op dinsdag 02 september 2014 @ 17:22:
(Maar ik blijf het een wonderlijke constraint vinden, permutaties van de naam.)
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
Ik heb een laptop omdat mijn tablet kapot is 
En op allebei 'maak ik aantekeningen'. De laatste echt, de eerste niet, maar wel leuk om te hebben
En wat vinden jullie:
Er zit een bug in code van persoon x, maar die is nooit boven water gekomen. Nu pas ik iets aan in andere waardoor die bug boven water komt.
Mijn fout of x' fout?
Het gaat om een array met x items, en we itereren max. 10 items (of de lengte van de array). In sommige gevallen willen we items i+1. Voor de aanpassing was de array altijd groter dan 20 items, geen probleem. Nu is de array <10 items, en nu gaat het dus in dat speciale geval mis (index out of bound).
En op allebei 'maak ik aantekeningen'. De laatste echt, de eerste niet, maar wel leuk om te hebben
En wat vinden jullie:
Er zit een bug in code van persoon x, maar die is nooit boven water gekomen. Nu pas ik iets aan in andere waardoor die bug boven water komt.
Mijn fout of x' fout?
Het gaat om een array met x items, en we itereren max. 10 items (of de lengte van de array). In sommige gevallen willen we items i+1. Voor de aanpassing was de array altijd groter dan 20 items, geen probleem. Nu is de array <10 items, en nu gaat het dus in dat speciale geval mis (index out of bound).
[ Voor 62% gewijzigd door F.West98 op 02-09-2014 17:46 ]
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
Boeie. Gewoon (al dan niet door x láten) fixen en verder met de gang van zaken.F.West98 schreef op dinsdag 02 september 2014 @ 17:43:
Mijn fout of x' fout?
[ Voor 8% gewijzigd door RobIII op 02-09-2014 18:23 ]
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
Klinkt als een stukje solide codeF.West98 schreef op dinsdag 02 september 2014 @ 17:43:
Het gaat om een array met x items, en we itereren max. 10 items (of de lengte van de array). In sommige gevallen willen we items i+1. Voor de aanpassing was de array altijd groter dan 20 items, geen probleem. Nu is de array <10 items, en nu gaat het dus in dat speciale geval mis (index out of bound).
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.
Daarom heb ik nu ook die hele case eruit gesloopt, een van de laatste stukjes code van x.
En we hadden er een discussie over, vandaar
En we hadden er een discussie over, vandaar
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
Als je code schrijft voor lijsten moet het kunnen werken met alle (redelijk/verwachte) grootte lijsten. Daarmee bedoel ik dus dat het met 10, maar ook met 1, 100 of 1000 moet kunnen werken en in gevallen waar schaalbaarheid speelt ook nog wel een miljoen. Het is wat meer programmeren, maar het is betere code en vaak zijn dit soort stukken code ook goed te hergebruiken dus kun je het maar beter meteen goed doen. Maar goed, dat is mijn mening.
Schuld geven is kinderachtig, als je een professional bent maak je nog vaak genoeg een lullige fout dat je dat niet meteen op iemand gaat lopen verhalen als het andersom is. Zeker als de code voorheen goed werkte. Maar je moet er wel voor zorgen dat je allemaal volgens de zelfde standaarden werkt.F.West98 schreef op dinsdag 02 september 2014 @ 17:43:
Ik heb een laptop omdat mijn tablet kapot is
En op allebei 'maak ik aantekeningen'. De laatste echt, de eerste niet, maar wel leuk om te hebben
En wat vinden jullie:
Er zit een bug in code van persoon x, maar die is nooit boven water gekomen. Nu pas ik iets aan in andere waardoor die bug boven water komt.
Mijn fout of x' fout?
Het gaat om een array met x items, en we itereren max. 10 items (of de lengte van de array). In sommige gevallen willen we items i+1. Voor de aanpassing was de array altijd groter dan 20 items, geen probleem. Nu is de array <10 items, en nu gaat het dus in dat speciale geval mis (index out of bound).
iOS developer
Daarom heb ik het nu omgeschreven 
We hadden die discussie niet serieus, het is een 'running gag' tussen ons om elkaar 'de schuld' te geven van foutenBikkelZ schreef op dinsdag 02 september 2014 @ 19:14:
[...]
Schuld geven is kinderachtig, als je een professional bent maak je nog vaak genoeg een lullige fout dat je dat niet meteen op iemand gaat lopen verhalen als het andersom is. Zeker als de code voorheen goed werkte. Maar je moet er wel voor zorgen dat je allemaal volgens de zelfde standaarden werkt.
[ Voor 88% gewijzigd door F.West98 op 02-09-2014 19:15 ]
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
Sowieso, de persoon die het breekt is altijd de schuldige
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.
Feitelijk gezien klopt dat natuurlijk. Als jij een aanpassing maakt en ergens anders valt er iets om, hoe dom dan ook.. is het nog steeds jouw gemaakte bug..oisyn schreef op dinsdag 02 september 2014 @ 19:46:
Sowieso, de persoon die het breekt is altijd de schuldige
Geeft niet weg dat er soms ontiegelijk domme meuk staat ergens verderop waar je haast niet op kan anticiperen.. vooral niet met een dikke code base. Mijn ex collega die een tard is had ontzettend veel van dat soort dingen. Tegenwoordig blame ik ook hem en zijn code ipv dat ik mij enigszins verantwoordelijk voel
- db query, itereren op het nummer van de kolom ipv naam.
- insert query zonder row names
cloudmap op naam van xfeatureDocumenten/y/m/d/h/i/ waarin gekoppelde documenten in staan. Doodleuk deze cloud dir gebruiken voor bijlages van wat nieuwsberichten die dus ook nergens een koppeling hadden behalve de nieuwsberichten. Na een clean-up waren opeens deze bijlages dus weg.
Dus als ik oorspronkelijk dit hadDouweegbertje schreef op dinsdag 02 september 2014 @ 21:20:
Feitelijk gezien klopt dat natuurlijk. Als jij een aanpassing maakt en ergens anders valt er iets om, hoe dom dan ook.. is het nog steeds jouw gemaakte bug.
Python:
1
2
3
4
| import thirdparty for x in range(10): thirdparty.do_cool_stuff_with_any_int(x) |
en vanwege andere eisen verander naar
Python:
1
2
3
4
| import thirdparty for x in range(20): thirdparty.do_cool_stuff_with_any_int(x) |
en vervolgens valt er ergens anders (in thirdparty) iets om, ben ik dan alsnog diegene die de bug gemaakt heeft?
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Man, wat vind ik PHP toch een bitch. Maar ik ben er doorheen, de rest komt morgen wel
R6 | 24-70 F2.8 DG OS HSM Art | 18-35 F1.8 DC HSM Art | EF 70-200 F4L IS USM | EF 50mm f/1.8 | Zenbook 14 OLED | T14G4 OLED
Je trapt wel open deuren in nu hè.......
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
PHP is liev!BeefHazard schreef op dinsdag 02 september 2014 @ 22:11:
Man, wat vind ik PHP toch een bitch. Maar ik ben er doorheen, de rest komt morgen wel
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!
Ik vind "je hebt de bug gemaakt" verkeerde terminologie. Het is duidelijk waar de bug in zit. Prubleem is wel dat jij ervoor hebt gezorgd dat het omvalt, het is jouw verantwoordelijkheid* dat het weer goed werkt.RayNbow schreef op dinsdag 02 september 2014 @ 21:59:
en vervolgens valt er ergens anders (in thirdparty) iets om, ben ik dan alsnog diegene die de bug gemaakt heeft?
* Wat best kan betekenen dat jij de originele auteur moet schoppen om 't gefixed te krijgen, maar hoe je het ook wendt of keert, jij bent met een taak bezig (of je hebt code gecommit) waardoor het ineens breekt, dus het is jouw probleem. Kan het niet snel gefixed worden omdat het in een thirdparty lib zit dan zul je er omheen moeten werken, of je change moeten terugdraaien
[ Voor 10% gewijzigd door .oisyn op 02-09-2014 22:46 ]
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.
Mja eigenlijk wel.RayNbow schreef op dinsdag 02 september 2014 @ 21:59:
[...]
Dus als ik oorspronkelijk dit had
Python:
1 2 3 4 import thirdparty for x in range(10): thirdparty.do_cool_stuff_with_any_int(x)
en vanwege andere eisen verander naar
Python:
1 2 3 4 import thirdparty for x in range(20): thirdparty.do_cool_stuff_with_any_int(x)
en vervolgens valt er ergens anders (in thirdparty) iets om, ben ik dan alsnog diegene die de bug gemaakt heeft?
Jouw feature genereert een bug, de bug was er nog niet. Er was wel slechte code, en misschien overduidelijk kans op een flaw maar het was geen bug. Ondanks het feit dat je bijv. 'any_int' erin zet, betekend nog niet dat het dat is. Tis gewoon knullig, maar je wordt genaaid omdat iemand anders zijn meuk niet in orde heeft
Er zit een verschil tussen @()*!@! slechte code en een bug.
En wat nou als het zo was dat in de oude situatie het aantal onder de 10 KON komen, maar het meestal niet gebeurde, en in de nieuwe situatie ALTIJD onder de 10 is. Dan is het toch gewoon slecht testen van die andere persoon?
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
Mijn ervaring is dat je niet moet muggenziften. Gewoon lekker fixen, en als je absoluut niet thuis bent in de code, gewoon de voel delegeren. Verder in sommige gevallen als je iets vaker tegenkomt of zo, eventjes degene aanspreken en opbouwende kritiek leveren
Wat als, wat als..F.West98 schreef op dinsdag 02 september 2014 @ 23:00:
En wat nou als het zo was dat in de oude situatie het aantal onder de 10 KON komen, maar het meestal niet gebeurde, en in de nieuwe situatie ALTIJD onder de 10 is. Dan is het toch gewoon slecht testen van die andere persoon?
Het is toch vrij simpel, als jij iets aan het doen bent en je genereert een bug, dan heb je een bug gemaakt. Ben je aan het dev'en en je ziet een bug voorkomen zoals in jouw voorbeeld, dan had je al een bug...
Snap heel die discussie niet. Als er een bug is, dan is er een bug. Was er geen bug, dan was er geen bug. Hoe simpel moet je het hebben?
Kan ik helaas niet meer. Hij is weg. Briljante drama achter gelaten op sommige mensen zonder documentatie of wat dan ook. We zijn nu ~ 1 jaartje verder en we komen soms nog meuk ervan tegen.Robbiedobbie schreef op dinsdag 02 september 2014 @ 23:02:
Mijn ervaring is dat je niet moet muggenziften. Gewoon lekker fixen, en als je absoluut niet thuis bent in de code, gewoon de voel delegeren. Verder in sommige gevallen als je iets vaker tegenkomt of zo, eventjes degene aanspreken en opbouwende kritiek leveren
Ik ben totaal niet iemand die loopt te zeiken over bepaalde code, en ik wil iedereen helpen.. maar.. et was een externe die redelijk wat verdiende en domweg lui, slecht en weet ik veel wat was. Wilde nergens aan mee doen, deed niet mee met versiebeheer en maakte geen documentatie. Daarom mijn 'haat'.
[ Voor 38% gewijzigd door Douweegbertje op 02-09-2014 23:07 ]
Nee ok, duidelijk. 
Ik vind het wel leuk, dit soort dingen. Beter dan die meta-praat van vanmiddag
Ik vind het wel leuk, dit soort dingen. Beter dan die meta-praat van vanmiddag
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
Jij exposed de bug door jouw verandering. Jouw verantwoordelijkheid. Punt. Dat betekent niet dat jij geen recht hebt om te klagen bij de persoon die de oorspronkelijke bug geïntroduceerd heeft, maar daar zijn je superieuren nauwelijks in geïnteresseerd als jij iets breekt.F.West98 schreef op dinsdag 02 september 2014 @ 23:00:
En wat nou als het zo was dat in de oude situatie het aantal onder de 10 KON komen, maar het meestal niet gebeurde, en in de nieuwe situatie ALTIJD onder de 10 is. Dan is het toch gewoon slecht testen van die andere persoon?
[ Voor 19% gewijzigd door .oisyn op 02-09-2014 23:19 ]
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.
mja tis een rot voorbeeld omdat de bug er ook letterlijk was.oisyn schreef op dinsdag 02 september 2014 @ 23:16:
[...]
Jij exposed de bug door jouw verandering. Jouw verantwoordelijkheid. Punt.
Dus ja, er was al een bug, maar jij (jij; voorbeeld van FWest) maakt dan dé bug die 100% voorkomt.maar het meestal niet gebeurde, en in de nieuwe situatie ALTIJD
Oftewel, eerst kon de gebruiker 90% van de tijd productief zijn, en na de change van F.West98 0% van de tijd. Wiens schuld is dat?
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.
Daar ben ik het absoluut niet met eens. Als de requirement zegt "maximaal 10 items" ga je geen code schrijven die ook met een miljoen items goed kan omgaan, dat is weggegooid geld en afhankelijk van je resources misschien wel onmogelijk.Gropah schreef op dinsdag 02 september 2014 @ 19:07:
Als je code schrijft voor lijsten moet het kunnen werken met alle (redelijk/verwachte) grootte lijsten. Daarmee bedoel ik dus dat het met 10, maar ook met 1, 100 of 1000 moet kunnen werken en in gevallen waar schaalbaarheid speelt ook nog wel een miljoen.
Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.
Dus jij gebruikt ook geen functies of classes of..? Want; zonde. Lekker allemaal statisch etc.farlane schreef op dinsdag 02 september 2014 @ 23:42:
[...]
Daar ben ik het absoluut niet met eens. Als de requirement zegt "maximaal 10 items" ga je geen code schrijven die ook met een miljoen items goed kan omgaan, dat is weggegooid geld en afhankelijk van je resources misschien wel onmogelijk.
Goede code is naar mijn mening juist modulair, simpel aanpasbaar en absoluut niet statisch. Requirements zijn leuk, maar als je domweg het 1op1 gaat coden dan heb je bizar slechte code. Je wilt het juist zo maken dat er ooit later iets aan veranderd kan worden -zonder- dat a; heel je 'core' anders moet en b; er op 1000 andere plaatsen iets om valt.
Even een stom voorbeeld maar wat jij zegt komt ongeveer neer op het volgende (ook al zeg je het niet direct zo):
PHP:
1
2
3
4
5
6
| $blaat = $this->getSomeItems(); //is nu een object met 10 elementen for ($i=0; $i < 10; $i++) { echo $blaat->foo; } |
Werkt prima, alleen jij gaat er dus vanuit dat het nu mooi is omdat je -geen- rekening ermee houdt dat getSomeItems ooit misschien 15, of 30 items returned. Het is zo bizar simpel om of een count te doen, of een foreach op het object te doen ipv zo'n domme statische for loop.. Who cares dat je 'requirements' hard aangeeft dat het -altijd- zonder excepties 10 items zijn? Het gaat juist om de toekomst als je na 3 jaar weer iets moet wijzigingen...
Nu is dit een simpel voorbeeld, maar je kan dit overal in toepassen. In alles wat ik nu maak, denk ik na wat er eventueel kan gebeuren over 1 seconden of over ~x jaar. Config items voor bepaalde dingen als je perse 'hard' een waarde ergens nodig hebt, verder alles zo doende ingeregeld dat ik heel simpel wijzigingen kan toepassen zonder dat je direct in de problemen komt.
Als je codebase op een gegeven moment enorm groot wordt en je werkt er met 4 man aan, dan wil je niet van die obscure meuk erdoor heen hebben. Dan wil je iets volwassen hebben wat op dat moment aan de requirements voldoet, maar waarbij een nieuwe feature geen enorm )@(*#! werk is omdat iemand 'te lui' is geweest om na te denken over zijn stukje code.
Juist de basis is zo verdomd belangrijk. Als de basis nou eens correct is, dan scheelt je dat enorm veel dev-werk en je eventuele opvolger van dat stukje code enorm veel hoofdpijn.
Mijn punt precies.oisyn schreef op dinsdag 02 september 2014 @ 23:37:
Oftewel, eerst kon de gebruiker 90% van de tijd productief zijn, en na de change van F.West98 0% van de tijd. Wiens schuld is dat?
[ Voor 3% gewijzigd door Douweegbertje op 03-09-2014 00:18 ]
Ik heb hier een console app (C#) die flink wat javascripts moet afvuren
Die zitten inline in de code met string literals, maar dan moet je nog steeds de quotes escapen.
Zijn hier mooiere methodes voor?
Die zitten inline in de code met string literals, maar dan moet je nog steeds de quotes escapen.
Zijn hier mooiere methodes voor?
Lekker op de bank
Dat is toch heel wat anders? Stel we pakken het verschil van 10 en een miljoen items, en stel de operatie die je uitvoert duurt 10µs. In het eerste geval ga je zeggen: het is voldoende om met een for-each-achtige constructie te werken en vervolgens het resultaat terug te geven. In het tweede geval duurt het toch net wel een beetje langer, en te lang om snel op een gebruikersactie te kunnen reageren. Wellicht kies je er voor om te gaan paralleliseren, of misschien ga je de gebruiker van de voortgang van de operatie informeren met een voortgangsbalk.Douweegbertje schreef op woensdag 03 september 2014 @ 00:15:
[...]
Dus jij gebruikt ook geen functies of classes of..? Want; zonde. Lekker allemaal statisch etc.
Javascript lust zowel enkele als dubbele aanhalingstekens voor strings. Misschien helpt dat?ZaZ schreef op woensdag 03 september 2014 @ 00:41:
Ik heb hier een console app (C#) die flink wat javascripts moet afvuren
Die zitten inline in de code met string literals, maar dan moet je nog steeds de quotes escapen.
Zijn hier mooiere methodes voor?
[ Voor 20% gewijzigd door dcm360 op 03-09-2014 00:44 ]
Wat een load of BS weer zeg. Wat hebben functies en classes met statisch te maken?Douweegbertje schreef op woensdag 03 september 2014 @ 00:15:
Dus jij gebruikt ook geen functies of classes of..? Want; zonde. Lekker allemaal statisch etc.
Alsof "modulair en simpel aanpasbaar" automatisch inhoudt dat het niet statisch kan zijn.Goede code is naar mijn mening juist modulair, simpel aanpasbaar en absoluut niet statisch.
Er zijn meerdere manieren om je code eenvoudig aanpasbaar te maken mocht de grootte moeten veranderen, alleen blijkbaar niet in jouw wereld.
[rest van je rant]
Whatever. Ik denk alleen wel dat als je niet gegeven requirements "maakt" omdat het over 3 jaar nog wel eens van pas zou kunnen komen dat je niet lekker bezig bent.
[ Voor 12% gewijzigd door farlane op 03-09-2014 00:53 ]
Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.
Een console app die javascripts moet afvuren? Ja kan me wel voorstellen dat daar mooiere methodes voor zijn...ZaZ schreef op woensdag 03 september 2014 @ 00:41:
Ik heb hier een console app (C#) die flink wat javascripts moet afvuren
Die zitten inline in de code met string literals, maar dan moet je nog steeds de quotes escapen.
Zijn hier mooiere methodes voor?
Er zit een headless browser in verwerkt die een hele zooi automation uitvoert. Het is wat het is en nu het beste ervan maken, maar die inline stukken js in strings gefrot is gewoon fuglysig69 schreef op woensdag 03 september 2014 @ 00:51:
[...]
Een console app die javascripts moet afvuren? Ja kan me wel voorstellen dat daar mooiere methodes voor zijn...
Lekker op de bank
Ja, zoiets had ik er al van gemaakt maar dan zijn de scripts ook niet echt lekker aan te passen want dat verneukt de hele layout.
Ik had ook al zitten stoeien door gewoon javascript files toe te voegen (heb je meteen syntax highlighting yay) en die dan als resource te markeren.
Kan ik bijv heel jquery oproepen door Resources.jQuery aan te roepen.
Werkt wel, maar met een paar honderd (hele kleine) scripts wordt het alsnog een zooitje van files. Regelmatig bestaat het maar uit 1 of 2 regels en dan is elke aanroep wegstoppen in een andere file ook niet echt overzichtelijk en wil je het liever in je methods verwerken zodat de context duidelijk blijft.
Ben wel aan het googlen geweest en heb wel iets gevonden wat erop lijkt. In Vb.net heb je xml literals. Zoiets wilde ik eigenlijk ook voor js in c#, maar ik denk dat het 'm niet gaat worden. Had gehoopt dat ik iets over het hoofd zag.
Ik had ook al zitten stoeien door gewoon javascript files toe te voegen (heb je meteen syntax highlighting yay) en die dan als resource te markeren.
Kan ik bijv heel jquery oproepen door Resources.jQuery aan te roepen.
Werkt wel, maar met een paar honderd (hele kleine) scripts wordt het alsnog een zooitje van files. Regelmatig bestaat het maar uit 1 of 2 regels en dan is elke aanroep wegstoppen in een andere file ook niet echt overzichtelijk en wil je het liever in je methods verwerken zodat de context duidelijk blijft.
Ben wel aan het googlen geweest en heb wel iets gevonden wat erop lijkt. In Vb.net heb je xml literals. Zoiets wilde ik eigenlijk ook voor js in c#, maar ik denk dat het 'm niet gaat worden. Had gehoopt dat ik iets over het hoofd zag.
Lekker op de bank
Heerlijk, de afgelopen dagen lekker beziggeweest met research. We willen distributed applicaties gaan maken ipv applicaties die op één server draaien. Ik ben dus beziggeweest om een tof distributed caching systeem te vinden, dus onder andere lekker bezig geweest met Redis. Verder message queueing uit zitten zoeken en een tof opzetje gemaakt met RabbitMQ + EasyNetQ. Zelf erg enthousiast, nu de rest nog zien te overtuigen. Een van de seniors vond de keuze voor Redis voor caching raar, hij vond dat we caching InProc moesten doen (o.a. vanwege latency). Lijkt mij totaal niet te doen, maargoed.
Die bug was er dus wel, maar om een bug te vinden moet je eerst de code waar de bug zich bevindt bereiken, vervolgens moet je de bug triggeren en tenslotte moet je ervoor zorgen dat je de effecten van de bug waarneembaar zijn.Douweegbertje schreef op dinsdag 02 september 2014 @ 22:58:
[...]
Mja eigenlijk wel.
Jouw feature genereert een bug, de bug was er nog niet.
Ik zou willen dat ik soms de originele auteur in elkaar kon schoppen voor bugs die ik soms tegenkom... (haat-liefde-verhouding met de YouTube Player API...).oisyn schreef op dinsdag 02 september 2014 @ 22:44:
* Wat best kan betekenen dat jij de originele auteur moet schoppen om 't gefixed te krijgen, maar hoe je het ook wendt of keert, jij bent met een taak bezig (of je hebt code gecommit) waardoor het ineens breekt, dus het is jouw probleem. Kan het niet snel gefixed worden omdat het in een thirdparty lib zit dan zul je er omheen moeten werken, of je change moeten terugdraaien
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
functies en classes zijn in feite ook extra meuk wat niets met je requirements te maken hebben, want immers kon je het sneller statisch maken aangezien je precies de requirements weet. Nogmaals kan ik wel een voorbeeld geven.. Als er wordt gevraag om een nieuws module waarbij je 10 items moet laten zien dan ga je toch niet hard 10 items op halen? Dan roep je toch gewoon een functie aan met wat arguments waarbij $amount een onderdeel ervan is? Dan heb je toch niet een limit of (top 10) hard in je query zitten?..farlane schreef op woensdag 03 september 2014 @ 00:47:
[...]
Wat een load of BS weer zeg. Wat hebben functies en classes met statisch te maken?
[...]
Alsof "modulair en simpel aanpasbaar" automatisch inhoudt dat het niet statisch kan zijn.
Er zijn meerdere manieren om je code eenvoudig aanpasbaar te maken mocht de grootte moeten veranderen, alleen blijkbaar niet in jouw wereld.
[rest van je rant]
Whatever. Ik denk alleen wel dat als je niet gegeven requirements "maakt" omdat het over 3 jaar nog wel eens van pas zou kunnen komen dat je niet lekker bezig bent.
[rest van je 'oh ik ben aangevallen en ik schiet in de verdediging' post]
Wat je wilt. Als je niet precies snapt wat ik bedoel of de moeite wilt nemen om er over te discussiëren op een normale manier..
Zo moeilijk is het niet, aangezien dcm360 het wel kan. snip
@dcm360 dus, goed punt maar over het 'algemeen' kun je meestal zonder al te veel moeite al rekening houden met verschillende mogelijkheden. Zoals je zelf zegt kun je er dan misschien voor kiezen om de output anders te laten zijn echter kun je dan naar mijn mening nog steeds je 'core' het zelfde laten. Natuurlijk is dat verschillend per keer, maar ik zie geen rede om niet even na te denken over schaalbaarheid en aanpasbaarheid en het puur zo te maken dat het voor 'nu' werkt.
[ Voor 0% gewijzigd door BtM909 op 03-09-2014 13:45 ]
Dat is leuk met simpele en kleine requirements maar sommige requirements zijn groot en complex en daar is dan met alles rekening houden misschien een dag extra werk (ik noem maar wat) wat misschien wel helemaal niet in de resources past
. Ik denk niet dat er een zwart-wit practice is hier. Je kunt niet zeggen dat er met alles rekening moet worden gehouden maar met niks rekening houden wanneer het minimaal werk is is ook niks
. Ik denk dat je gewoon per situatie moet kijken wat het beste werkt.
Nothing to see here!
Ik probeer dingen altijd zo modulair mogelijk te maken, en als ik bijvoorbeeld ergens een hardcoded limit heb (max. x items tonen) dan zet ik die in een configfile of een static class (afh. van de middelen).
Tot nu toe is dat meerdere keren nuttig gebleken, dingen waarvan ik eerst dacht 'onnodig abstract', bleke toch handig te zijn toen ik ging uitbreiden.
Ohja, * F.West98 groet vanuit de mediatheek
RDP FTW
Tot nu toe is dat meerdere keren nuttig gebleken, dingen waarvan ik eerst dacht 'onnodig abstract', bleke toch handig te zijn toen ik ging uitbreiden.
Ohja, * F.West98 groet vanuit de mediatheek
RDP FTW
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
Ik zie niet in waarom je RDP nodig hebt om op tweakers te posten? 
Also, @pdebie, je komt me misschien wel tegen op appelpop
Also, @pdebie, je komt me misschien wel tegen op appelpop
[ Voor 31% gewijzigd door Robbiedobbie op 03-09-2014 10:46 ]
Sommige scholen zijn nogal wank met het blokkeren van alles. Op mijn school moest ik ook een tunneltje naar huis opzetten om fatsoenlijk te kunnen surfenRobbiedobbie schreef op woensdag 03 september 2014 @ 10:44:
Ik zie niet in waarom je RDP nodig hebt om op tweakers te posten?
Also, @pdebie, je komt me misschien wel tegen op appelpop
Really..... En waarom gebruik je weer de termen "functies", "classes" en "modulair" alsof ze niet samengaan met "statisch"?Functies en classes zijn in feite ook extra meuk wat niets met je requirements te maken hebben, want immers kon je het sneller statisch maken aangezien je precies de requirements weet
Er zijn meerdere manieren om te zorgen dat het aantal van 10 makkelijk aan te passen is. Dat kan bijvoorbeeld door het configureerbaar te maken ( dus zonder dat je een nieuwe versie van de applicatie zou moeten maken ) tot het definieren van een constante die je vervolgens op de juiste plekken in je code gebruikt. Jij lijkt de eerste variant te willen zonder dat de requirements aangeven dat het aantal configureerbaar moet zijn en dat vindt ik een bad practice want het levert een bende extra ontwikkel en testwerk op zonder dat daar om gevraagd is. Ik zou voor de andere variant kiezen en dan zo ontworpen dat je maar op 1 plaats het aantal van 10 zou moeten aanpassen naar iets anders.Als er wordt gevraag om een nieuws module waarbij je 10 items moet laten zien dan ga je toch niet hard 10 items op halen? Dan roep je toch gewoon een functie aan met wat arguments waarbij $amount een onderdeel ervan is? Dan heb je toch niet een limit of (top 10) hard in je query zitten?..
In beide gevallen zal het niet zonder meer zo zijn dat je van 1 tot oneindig kunt invullen zonder dat er wat aan je algoritmes verandert.
Dat komt omdat je in mijn beleving met oogkleppen op discussieert en voor een groot gedeelte voor mij lijkt te denken.Wat je wilt. Als je niet precies snapt wat ik bedoel of de moeite wilt nemen om er over te discussiëren op een normale manier..
Zo moeilijk is het niet, aangezien dcm360 het wel kan. snip
[ Voor 0% gewijzigd door BtM909 op 03-09-2014 13:46 ]
Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.
Ik wil het even invliegen vanuit een aan andere kant; je klant/de persoon voor wie de tool gemaakt word. Los van requirements zijn andere factoren tijd, geld en mensenkennis die een behoorlijke invloed op je architectuur kunnen hebben. (mogelijk het verschil tussen recht-toe-recht-aan programmeren en een flexibele architectuur). Het kiezen van de approach vind ik zelf niet zo bijzonder. Beide zijn voor mij prima; ik wil achter af alleen niet door deze keuze gebeten worden.
Doe wat mogelijk is binnen de gestelde tijd en budget en communiceer duidelijk de implicaties die dit met zich meebrengt.(minder tijd/geld kan leiden tot minder flexibiliteit en testwerk) Als je weet dat je 'klant' niet gelijk weet wat hij/zij wil, zorg er dan voor dat je dit zo snel mogelijk boven water krijgt. Laat deze dan ook direct tekenen voor het geaccepteerde eindresultaat en alle boundaries die daar bij horen.
De klant denkt niet altijd na over toekomstige groei, maar is meestal wel blij als tegen die tijd blijkt dat uitbreiding eenvoudig is. De discussie is achteraf altijd een stuk lastiger als blijkt dat er ineens een bulk geld voor uitbreiding bij moet komen dat voorkomen had worden. Die discussie word een stuk gemakkelijker als je dat eerder genoemde getekende papiertje dan bij de hand hebt.
Doe wat mogelijk is binnen de gestelde tijd en budget en communiceer duidelijk de implicaties die dit met zich meebrengt.(minder tijd/geld kan leiden tot minder flexibiliteit en testwerk) Als je weet dat je 'klant' niet gelijk weet wat hij/zij wil, zorg er dan voor dat je dit zo snel mogelijk boven water krijgt. Laat deze dan ook direct tekenen voor het geaccepteerde eindresultaat en alle boundaries die daar bij horen.
De klant denkt niet altijd na over toekomstige groei, maar is meestal wel blij als tegen die tijd blijkt dat uitbreiding eenvoudig is. De discussie is achteraf altijd een stuk lastiger als blijkt dat er ineens een bulk geld voor uitbreiding bij moet komen dat voorkomen had worden. Die discussie word een stuk gemakkelijker als je dat eerder genoemde getekende papiertje dan bij de hand hebt.
Soms (lees: vaak
) heb je op kleine sets gewoon baat bij andere algoritmes dan bij groooote sets.
'Nadenken over schaalbaarheid' zou imo ook kunnen betekenen dat je bewust voor een eenvoudiger aanpak gaat omdat jouw functie/api niet bedoeld is om miljarden entries terug te geven.
'Nadenken over schaalbaarheid' zou imo ook kunnen betekenen dat je bewust voor een eenvoudiger aanpak gaat omdat jouw functie/api niet bedoeld is om miljarden entries terug te geven.
offtopic:
O, en protip: Als je op een normale manier wil discussieren kan je het beste de
-smiley achterwege laten.
O, en protip: Als je op een normale manier wil discussieren kan je het beste de
{signature}
In een dergelijke situatie zou ik inderdaad gewoon een constante introduceren zodat het op één plaats aan te passen valt. Direct configureerbaar maken is wel beetje afhankelijk van je verwachtingen van zo'n waarde. In principe maak ik niets meteen configureerbaar tenzij expliciet gevraagd of het erg waarschijnlijk is dat er om gevraagd gaat worden. Anders is het gebruik van een constante goed genoeg, omdat het eenvoudig later te vervangen is door een configuratiewaarde.
Alles per definitie configureerbaar maken is iets waar je (imho) op terug gaat komen naarmate je applicaties groter/complexer worden. Ik zou daar spaarzaam mee om gaan
Alles per definitie configureerbaar maken is iets waar je (imho) op terug gaat komen naarmate je applicaties groter/complexer worden. Ik zou daar spaarzaam mee om gaan
Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana
Iemand ervaring met AngularJS en Symfony2?
Voor een dashboard van een app die we maken zouden we graag wat minder html willen inladen bij het wisselen van views. Maar ik ben bang dat ik alles dat custom of dubbel moet schrijven qua routing.
Voor een dashboard van een app die we maken zouden we graag wat minder html willen inladen bij het wisselen van views. Maar ik ben bang dat ik alles dat custom of dubbel moet schrijven qua routing.
Precies het ligt heel erg aan de situatie. Wij hadden bijvoorbeeld een applicatie die gedeployed moest worden op een gesloten systeem van de klant (en daar was geen test systeem voor) en dat systeem was helemaal dichtgetimmerd. Wij hadden in dat geval dus heel veel in configs gegooid dat als er iets veranderd moest worden of er een issue was we even met de config konden spelen om te kijken wat er aan de hand was. Bijvoorbeeld hadden we een config file die regexes bevatten die gateway messages moest parsen. Als er dan iets veranderd dan hoef je niet een hele release te doen en builds te draaien maar kun je gewoon de config updaten. De klant had hierom niet specific gevraagd maar was er uiteindelijk wel erg blij mee (en wij ook trouwens) want hierdoor konden we snel schakelen. Maar normaal heb je zulke situaties niet en dan is het minder erg als je een keer een nieuwe build moet doenCloud schreef op woensdag 03 september 2014 @ 11:17:
In een dergelijke situatie zou ik inderdaad gewoon een constante introduceren zodat het op één plaats aan te passen valt. Direct configureerbaar maken is wel beetje afhankelijk van je verwachtingen van zo'n waarde. In principe maak ik niets meteen configureerbaar tenzij expliciet gevraagd of het erg waarschijnlijk is dat er om gevraagd gaat worden. Anders is het gebruik van een constante goed genoeg, omdat het eenvoudig later te vervangen is door een configuratiewaarde.
Alles per definitie configureerbaar maken is iets waar je (imho) op terug gaat komen naarmate je applicaties groter/complexer worden. Ik zou daar spaarzaam mee om gaan
Nothing to see here!
Nee, maar je zou wel sneller geneigd kunnen zijn om een O(n^2) of trager algoritme te implementeren omdat je weet dat je upper-bound niet uit de hand loopt. Zo moeilijk is dit toch niet te begrijpen? Bij verschillende ordes van grootte maak je verschillende tradeoffs.Douweegbertje schreef op woensdag 03 september 2014 @ 08:19:
[...]
Als er wordt gevraag om een nieuws module waarbij je 10 items moet laten zien dan ga je toch niet hard 10 items op halen?
Precies. Voor sommige software is het juist erg handig om het wél te doen zodat je software veel breder inzetbaar wordt. Maar, dan is configuratie vaak ook onderdeel van de requirements
Inderdaad. Iets met 'premature optimization' enzo.PrisonerOfPain schreef op woensdag 03 september 2014 @ 11:45:
[...]
Nee, maar je zou wel sneller geneigd kunnen zijn om een O(n^2) of trager algoritme te implementeren omdat je weet dat je upper-bound niet uit de hand loopt. Zo moeilijk is dit toch niet te begrijpen? Bij verschillende ordes van grootte maak je verschillende tradeoffs.
Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana
Ook zelfs ná het optimizen, door de constante factor kan een minder efficient (in termen van big-oh) algoritme sneller zijn. Een lineair search in een lijst van 10 elementen kan makkelijk van een binary search winnen door de extra complexiteit die die laatste met zich meebrengt (meer instructies, branch mispredictions, cache misses, etc), met als bijkomend voordeel dat de elementen niet gesorteerd hoeven zijn.
Toevallig is dat precies iets waar ik nu tegenaan loop. De code die al in 2 games geshipped is was heel erg efficient, maar het schaalde eigenlijk voor geen meter. Nu er vele malen meer lights in de scene zitten zit hij 30% van de outer loop in die ene functie. Tijd om een andere oplossing te bedenken die waarschijnlijk slechter performt dan voorheen met lage aantallen maar veel beter om kan gaan met hoge aantallen.
Toevallig is dat precies iets waar ik nu tegenaan loop. De code die al in 2 games geshipped is was heel erg efficient, maar het schaalde eigenlijk voor geen meter. Nu er vele malen meer lights in de scene zitten zit hij 30% van de outer loop in die ene functie. Tijd om een andere oplossing te bedenken die waarschijnlijk slechter performt dan voorheen met lage aantallen maar veel beter om kan gaan met hoge aantallen.
[ Voor 49% gewijzigd door .oisyn op 03-09-2014 11:55 ]
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 iemand mij vertellen waar de Z voor staat in de volgende regel:
Dit komt voort uit de format specifier "u" in .NET.2008-04-10 13:30:00Z
Glass Eye Photography | Zelfbouw wireless fightstick | Mijn puzzel site
Zulu. UTC.
.edit: eigenlijk is dat verkeerd om, het is Zulu (NAVO fonetisch alfabet) omdat het de letter Z is, niet andersom
. De Z staat voor timezone Zero.
.edit: eigenlijk is dat verkeerd om, het is Zulu (NAVO fonetisch alfabet) omdat het de letter Z is, niet andersom
[ Voor 88% gewijzigd door .oisyn op 03-09-2014 11:57 ]
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.
Aha. Dat verklaart het
Glass Eye Photography | Zelfbouw wireless fightstick | Mijn puzzel site
Ja dat is ook vrij logisch, echter heb ik zelf daar vrij weinig mee te maken en dan trek ik niet automatisch zo'n conclusie. De meeste meuk hier is al zelf redelijk groot en dat verschilt niet even van 10 items naar 1mil. Dat is meestal wel een lineair stijgende lijn.PrisonerOfPain schreef op woensdag 03 september 2014 @ 11:45:
[...]
Nee, maar je zou wel sneller geneigd kunnen zijn om een O(n^2) of trager algoritme te implementeren omdat je weet dat je upper-bound niet uit de hand loopt. Zo moeilijk is dit toch niet te begrijpen? Bij verschillende ordes van grootte maak je verschillende tradeoffs.
Mijn grootste ergernis was meer dat ik af en toe in wat spul moet werken waar niet echt over nagedacht is. Even los van het type implementatie of wat dan ook, zijn er zeker wel basis dingen wat je netjes kunt maken. Nu liep ik de afgelopen dagen tegen wat dingen aan, wat puur luiheid is.
Als ik wat codesnippits hier zou kunnen plaatsen, snap je denk ik wel mijn frustratie.
los van dat; ik ben een PHP'er. Het meeste waar jullie het nu over hebben, zover ga je meestal niet met PHP..
[ Voor 5% gewijzigd door Douweegbertje op 03-09-2014 12:00 ]
Je weet toch dat als je een post van RobIII tegenkomt, dat je nog een paar keer mag refreshen.oisyn schreef op dinsdag 02 september 2014 @ 15:57:
[...]
Ja net pas, met behulp van jouw post en het stukje wat RobIII in zijn laatste post heeft bijgeëdit maar wat ik niet zag omdat edits niet updaten
Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.
Niet perse, er zijn wat modules die je S2 routing omzetten naar Angular resources.phex schreef op woensdag 03 september 2014 @ 11:29:
Iemand ervaring met AngularJS en Symfony2?
Voor een dashboard van een app die we maken zouden we graag wat minder html willen inladen bij het wisselen van views. Maar ik ben bang dat ik alles dat custom of dubbel moet schrijven qua routing.
o.a. https://github.com/matteo...essAngularNgRoutingBundle
Ik heb juist voor een recente app er voor gekozen het volledig los te zijn, en dus gewoon wat REST endpoints gemaakt waar de frontend app de data uit kan trekken. Mocht er ooit besloten worden dat S2 niet meer voldoet is het een kwestie van die endpoints in een andere omgeving na maken zonder dat de voorkant daar last van heeft.
Driving a cadillac in a fool's parade.
Dat klinkt inderdaad veel mooier. Misschien is dat ook gelijk een mooi begin om wat data voor 3e partijen te kunnen ontsluiten.
Goede tip, thx
Goede tip, thx
Ik of all people zou dat idd moeten weten jaBtM909 schreef op woensdag 03 september 2014 @ 12:01:
[...]
Je weet toch dat als je een post van RobIII tegenkomt, dat je nog een paar keer mag refreshen
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.
Staat dat nou eigenlijk op de planning, die edits meenemen in de updates? Weet nou eigenlijk niet meer wat de conclusie was op dat bugje.
Volgens mij was de conclusie: "nee is te complex"Douweegbertje schreef op woensdag 03 september 2014 @ 12:55:
Staat dat nou eigenlijk op de planning, die edits meenemen in de updates? Weet nou eigenlijk niet meer wat de conclusie was op dat bugje.
Nothing to see here!
Niet zozeer te complex alswel dat dat een veel grotere belasting geeft van het systeem (zowel database als requests). Wat ik me enigszins afvraag... in plaats van alle posts sinds tijd X vraag je ook alle posts die geëdit zijn sinds tijd X op. Maar daar zal wel geen index van zijn
. Volgens mij zijn er sowieso geen indices op tijd, maar is het puur op post_id.
Of gewoon initieel niet de postdata opsturen maar puur hoeveel het er zijn, en pas bij het uitklappen de daadwerkelijke postdata ophalen. Gaat natuurlijk wel ten koste van de responsiviteit.
Of gewoon initieel niet de postdata opsturen maar puur hoeveel het er zijn, en pas bij het uitklappen de daadwerkelijke postdata ophalen. Gaat natuurlijk wel ten koste van de responsiviteit.
[ Voor 72% gewijzigd door .oisyn op 03-09-2014 13:10 ]
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.
Als ik fiddler er op na sla word er idd een topic_id en een post_id meegestuurd, waarschijnlijk idd ook de minst belastende manier om aan die data te komen.oisyn schreef op woensdag 03 september 2014 @ 13:07:
Volgens mij zijn er sowieso geen indices op tijd, maar is het puur op post_id.
Xbox
Even the dark has a silver lining | I'm all you can imagine times infinity, times three
Dat zou dan toch iets moeten worden als:
?
(In zoverre dat het datamodel van React dat toelaat uiteraard)
SQL:
1
2
3
4
| SELECT * FROM Messages WHERE (TopicId = 12345 AND PostId > laatstePostId) OR (TopicId = 12345 AND LastEditTime > laatste-sync-tijd) |
?
(In zoverre dat het datamodel van React dat toelaat uiteraard)
[ Voor 13% gewijzigd door Alex) op 03-09-2014 13:31 ]
We are shaping the future
Maak daar volgende keer even een apart topic voor aan, wil je?ZaZ schreef op woensdag 03 september 2014 @ 01:28:
. Had gehoopt dat ik iets over het hoofd zag.
Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.
Het maakt de functie nu eigenlijk vrij nutteloos, want er zijn er genoeg (zoals ik) die de post nog wat wijzigen nadat er is gepost (omdat ze dan pas gaan nadenken, zoals ik ^^)
Ik heb het al eerder geprobeerd maar je kunt natuurlijk altijd de druk een beetje op proberen te voeren door het nog een keer te vragenCaelorum schreef op woensdag 03 september 2014 @ 13:48:
Het maakt de functie nu eigenlijk vrij nutteloos, want er zijn er genoeg (zoals ik) die de post nog wat wijzigen nadat er is gepost (omdat ze dan pas gaan nadenken, zoals ik ^^)
Mooie Features
Cloud schreef op woensdag 03 september 2014 @ 11:17:
In een dergelijke situatie zou ik inderdaad gewoon een constante introduceren zodat het op één plaats aan te passen valt.
C#:
1
| public const int ten = 10; |
Wie weet waar die GitHub pagina is waar al dit soort redefinitions (maar dan geraffineerder) bij elkaar stonden (was een soort "annoy your dev company when you're leaving" ofzo).
Grappig ding: http://www.logitech.com/e...ice-keyboard-k480?crid=26
[ Voor 9% gewijzigd door BtM909 op 03-09-2014 14:08 ]
Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.
Nee ik kijk wel uit ^^PrisonerOfPain schreef op woensdag 03 september 2014 @ 13:49:
[...] Ik heb het al eerder geprobeerd maar je kunt natuurlijk altijd de druk een beetje op proberen te voeren door het nog een keer te vragen
Mooie Features
Heeft iemand toevallig nog Languages and Machines van Sudkamp liggen ergens? Ik zal het meeste dat ik uit dat boek nodig ga hebben ook wel op andere manieren te weten komen, maar het werd toch wel sterk aangeraden om het boek te halen, ook al ken je de inhoud al (gedeeltelijk, zoals in mijn geval
Mijne staat op amazon voor 250ECaelorum schreef op woensdag 03 september 2014 @ 14:14:
[...]
Nee ik kijk wel uit ^^
Heeft iemand toevallig nog Languages and Machines van Sudkamp liggen ergens? Ik zal het meeste dat ik uit dat boek nodig ga hebben ook wel op andere manieren te weten komen, maar het werd toch wel sterk aangeraden om het boek te halen, ook al ken je de inhoud al (gedeeltelijk, zoals in mijn geval). Maar het boek is nogal prijzig geworden in de afgelopen tijd. De hardcover is de enige die nog fatsoenlijk verkrijgbaar is, en 130E gaat mij wat te ver IMO. Bij amazon.de is zelfs de enige die je nog kan krijgen een tweedehands hardcover voor 250E
Nothing to see here!
^^ Mja, ik vind het hele gedoe eigenlijk wel grappig. Het boek is verplicht voor een hele hoop studenten, maar wordt nu niet meer gedrukt. Nu de voorraden ook een beetje opraken zie je veel absurde prijzen voorbij komen. Ik kan mij nog voorstellen dat een CS student die het boek voor meerdere vakken nodig heeft het wel wil hebben voor die belachelijke prijzen, maar ik heb het maar voor 1 vak 'nodig'. Veel van de dingen zou ik ook wel via andere boeken en websites kunnen leren/opfrissen, als het goed is.
Daarom is het maar goed dat het als ebook beschikbaar is
Heb ik geen github voor nodig, daar kan ik onze codebase ook wel voor gebruikenBtM909 schreef op woensdag 03 september 2014 @ 13:53:
[...]
C#:
1 public const int ten = 10;
![]()
Wie weet waar die GitHub pagina is waar al dit soort redefinitions (maar dan geraffineerder) bij elkaar stonden (was een soort "annoy your dev company when you're leaving" ofzo).
C#:
1
2
3
| private readonly SolidColorBrush red = new SolidColorBrush(Colors.Red); private readonly SolidColorBrush black = new SolidColorBrush(Colors.Black); private readonly SolidColorBrush green = new SolidColorBrush(Colors.Green); |
Xbox
Even the dark has a silver lining | I'm all you can imagine times infinity, times three
Vandaag mijn nieuwe bril opgehaald. Heel fijn om weer een goede sterkte te hebben, nu snap ik waarom ik niet altijd alles kon lezen met mijn oude bril/lenzen.
Was dat maar zo. Als jij hem hebt gevonden zou ik graag een link zien, maar ik heb uren gezocht en kan het niet vinden als ebook.alienfruit schreef op woensdag 03 september 2014 @ 14:39:
Daarom is het maar goed dat het als ebook beschikbaar is
[ Voor 6% gewijzigd door Caelorum op 03-09-2014 15:43 ]
Weet niet of dit hem volledig is : http://www.academia.edu/6...ter_Science_Third_EditionCaelorum schreef op woensdag 03 september 2014 @ 15:43:
[...]
Was dat maar zo. Als jij hem hebt gevonden zou ik graag een link zien, maar ik heb uren gezocht en kan het niet vinden als ebook.(niet te koop en niet als illegale download)
No trees were harmed in the creation of this message, but several thousand electrons were mildly inconvenienced.
Dat zijn alleen de oplossingen ^^ (maar wel van de goede druk)
Maar het was niet de bedoeling om dit topic te hijacken. Ik vroeg me alleen af of iemand het boek had en die weg wilde doen. Het op V&A neerzetten verwachte ik niet veel van en het boekentopic is hier dacht ik ook niet zo voor bedoeld. Daarnaast zitten de mensen die dit boek kunnen hebben op Tweakers wel allemaal hier
Maar back on topic:
PHP is kut en C++ is to high-level
Owja en config files zijn voor mietjes....
Maar het was niet de bedoeling om dit topic te hijacken. Ik vroeg me alleen af of iemand het boek had en die weg wilde doen. Het op V&A neerzetten verwachte ik niet veel van en het boekentopic is hier dacht ik ook niet zo voor bedoeld. Daarnaast zitten de mensen die dit boek kunnen hebben op Tweakers wel allemaal hier
Maar back on topic:
PHP is kut en C++ is to high-level
[ Voor 7% gewijzigd door Caelorum op 03-09-2014 16:05 ]
Hoe denken jullie over Clean Code in de praktijk gebruiken zoals Uncle Bob het beschrijft? Nog even los van het hele TDD verhaal.
iOS developer
Hij beschrijft redelijk veel in het boek.BikkelZ schreef op woensdag 03 september 2014 @ 16:26:
Hoe denken jullie over Clean Code in de praktijk gebruiken zoals Uncle Bob het beschrijft? Nog even los van het hele TDD verhaal.
Zelf heb ik geprobeerd om klassen en methoden zo klein mogelijk te maken (max 6 regels per methode of zo) en dat werd een onhoudbare situatie. Er kwamen zoveel kleine methoden en klassen dat het hele project onoverzichtelijker werd dan wanneer alles, bijvoorbeeld, onder elkaar zou staan in 1 god klasse.
Momenteel gebruik ik de 'adviezen' uit het boek meer als richtlijn. Wel zou ik adviseren om het boek eens in de x jaar (4?) weer door te nemen om te controleren of je nog steeds aan die richtlijnen voldoet, of dat je volledig de andere kant bent opgeslagen.
Battle.net - Jandev#2601 / XBOX: VriesDeJ
In een wereld met onbeperkt tijd en waarin iedereen zich perfect aan de regels houdt, is het een erg goede praktijk. Je er strict aan houden is lastig. Zolang je je eraan houdt, heb je een glimmende code-base die je met trots kan laten zien aan je collega's. Je moet echter niet gaan valsspelen; zodra je shortcuts gaat nemen, krijg je zwarte gaten in het project en is het klaar.BikkelZ schreef op woensdag 03 september 2014 @ 16:26:
Hoe denken jullie over Clean Code in de praktijk gebruiken zoals Uncle Bob het beschrijft? Nog even los van het hele TDD verhaal.
Ik ben groot voorstander van zijn princiepes, eraan houden is echter meer dan enkel het maken van de keuze: Het is erg lastig om consistent de regels te volgen. Het zorgt echter wel daadwerkelijk voor... "clean code". Vind ik dan.
M.a.w.,
Het kost veel tijd om je strict eraan te houden, maar je behoud ook echt de kwaliteit van de code. Althans, zo is het bij mij uit praktijk gebleken.
[ Voor 8% gewijzigd door Gamebuster op 03-09-2014 17:03 ]
Let op: Mijn post bevat meningen, aannames of onwaarheden
Ik ben het echter ook eens met Jan_V; sommige guidelines gaan zover dat het weer een uitdaging op zich word om deze dan weer bij te houden. Elke subtaak in een method onderbrengen in separate methods lijkt ansich een goed plan, maar ik heb menig collega helemaal gek gekregen door dat heel strict te volgen. Runtime springt de code alle kanten op en is het lastig achterhalen hoe de algehele logische flow loopt.Gamebuster schreef op woensdag 03 september 2014 @ 17:01:
[...]
In een wereld met onbeperkt tijd en waarin iedereen zich perfect aan de regels houdt, is het een erg goede praktijk. Je er strict aan houden is lastig. Zolang je je eraan houdt, heb je een glimmende code-base die je met trots kan laten zien aan je collega's. Je moet echter niet gaan valsspelen; zodra je shortcuts gaat nemen, krijg je zwarte gaten in het project en is het klaar.
Ik ben groot voorstander van zijn princiepes, eraan houden is echter meer dan enkel het maken van de keuze: Het is erg lastig om consistent de regels te volgen. Het zorgt echter wel daadwerkelijk voor... "clean code". Vind ik dan.
M.a.w.,
Het kost veel tijd om je strict eraan te houden, maar je behoud ook echt de kwaliteit van de code. Althans, zo is het bij mij uit praktijk gebleken.
Ja per method is alles heel duidelijk; maar vaak verliest men dan ook weer het overzicht wat je dan weer wel hebt als een paar sub onderdelen in 1 enkele method staan. Begrijp me niet verkeerd, je moet geen monster methods van 100+ regels maken (goed moment om te refactoren). Maar als je method 20 regels groot is (mede veroorzaakt door code formatting etc), is het ook nog steeds goed te doen en kan je eventuele subsecties van een method toelichten via comments.
+ (dit heb ik vaker gezien in de praktijk) zodra je een project perfect hebt gerealiseerd volgens alle best practices, kan al die effort nog wel eens sneuvelen zodra code in beheer komt van de support afdeling. Als die bepaalde keuzes dan niet snappen, helpen ze kwaliteit bij de eerst volgende change om zeep en na een jaar kan het zomaar zijn dat je je eigen code niet meer herkend. Tuurlijk de support afdeling moet in zo'n geval geschoold worden, maar de realiteit is vaak anders.
[ Voor 14% gewijzigd door Laurens-R op 03-09-2014 17:21 ]
Ik heb een privé projectje waar ik nu al een tijdje mee bezig ben waar ik het in toepas en iedere keer kan ik de boel zo weer oppakken want de kern code is heel klein (ViewController van 300 regels en een AppDelegate van max 200) en is behoorlijk abstract en verhalend. De echt flow zit hem in die twee classes en het leest gewoon als een verhaal. Toch bleek ik bijna de 10.000 regels code aan te tikken inmiddels.
Gouden regel is een beetje dat ik geen commentaar schrijf maar dat uit de functie steeds duidelijk moet blijken wat hij doet. Wat ik ook probeer is zo veel mogelijk Class methods te gebruiken (static functions) om dingen te checken (i.e. + (bool) shouldStopRecordingForRecordingState:(RecordingState)recordingState andSpaceLeft:(long)capacityInBytes;) in plaats van dat ter plekke uit te vinden met een hoop referenties naar de klasse zelf.
Dit maakt testen niet alleen makkelijker maar je krijgt ook meer een verhaal in je code.
Side effects probeer ik ook altijd te minimaliseren of onder te brengen in een overkoepelende functie zodat ik niet én beslissingen neem wat ik ga doen én de uitvoering op een plek doe.
Toch zie ik een hoop programmeurs die echt wel kwaliteitswerk leveren zich er niet aan houden, soms vraag ik me af of het niet allemaal...tja...een beetje overdreven is?...
Gouden regel is een beetje dat ik geen commentaar schrijf maar dat uit de functie steeds duidelijk moet blijken wat hij doet. Wat ik ook probeer is zo veel mogelijk Class methods te gebruiken (static functions) om dingen te checken (i.e. + (bool) shouldStopRecordingForRecordingState:(RecordingState)recordingState andSpaceLeft:(long)capacityInBytes;) in plaats van dat ter plekke uit te vinden met een hoop referenties naar de klasse zelf.
Dit maakt testen niet alleen makkelijker maar je krijgt ook meer een verhaal in je code.
Side effects probeer ik ook altijd te minimaliseren of onder te brengen in een overkoepelende functie zodat ik niet én beslissingen neem wat ik ga doen én de uitvoering op een plek doe.
Toch zie ik een hoop programmeurs die echt wel kwaliteitswerk leveren zich er niet aan houden, soms vraag ik me af of het niet allemaal...tja...een beetje overdreven is?...
iOS developer
Ik zie 't probleem niet zoBM schreef op woensdag 03 september 2014 @ 15:01:
[...]
Heb ik geen github voor nodig, daar kan ik onze codebase ook wel voor gebruiken
C#:
1 2 3 private readonly SolidColorBrush red = new SolidColorBrush(Colors.Red); private readonly SolidColorBrush black = new SolidColorBrush(Colors.Black); private readonly SolidColorBrush green = new SolidColorBrush(Colors.Green);
![]()
Als je die drie brushes vaak nodig hebt scheelt 't toch elke keer een constructor uitvoeren (en god-knows wat dat ding intern doet) en is ook lief voor je GC. Ik had alleen even gekeken of ik 'm ook nog meteen static kon maken, maar dat is niet af te leiden uit je snippet (maar kan vast wel
[ Voor 9% gewijzigd door RobIII op 03-09-2014 17:55 ]
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
Zodat ze niet kunnen meekijkenRobbiedobbie schreef op woensdag 03 september 2014 @ 10:44:
Ik zie niet in waarom je RDP nodig hebt om op tweakers te posten?
Also, @pdebie, je komt me misschien wel tegen op appelpop
Ik heb even gekeken, in mijn project zijn de meeste methods ongeveer 30-40 regels, (die van 2 regels met enkel een listener enzo niet meegerekend), en heb ik één monsterfunctie met bijna 200 regels. Die stond dan ook op de todo-lijst voor refactoren (threading toevoegen en opdelen).Laurens-R schreef op woensdag 03 september 2014 @ 17:14:
[...]
...
Ja per method is alles heel duidelijk; maar vaak verliest men dan ook weer het overzicht wat je dan weer wel hebt als een paar sub onderdelen in 1 enkele method staan. Begrijp me niet verkeerd, je moet geen monster methods van 100+ regels maken (goed moment om te refactoren). Maar als je method 20 regels groot is (mede veroorzaakt door code formatting etc), is het ook nog steeds goed te doen en kan je eventuele subsecties van een method toelichten via comments.
...
Ik schrijf ook geen commentaar (vooral luiheid), maar anderen vinden mijn code desondanks toch vrij goed leesbaar. Alleen bij stukjes waar abstraction in zit moet ik wat commentaar zetten, maar verder is het vrij logisch (denk ikBikkelZ schreef op woensdag 03 september 2014 @ 17:28:
Ik heb een privé projectje waar ik nu al een tijdje mee bezig ben waar ik het in toepas en iedere keer kan ik de boel zo weer oppakken want de kern code is heel klein (ViewController van 300 regels en een AppDelegate van max 200) en is behoorlijk abstract en verhalend. De echt flow zit hem in die twee classes en het leest gewoon als een verhaal. Toch bleek ik bijna de 10.000 regels code aan te tikken inmiddels.
Gouden regel is een beetje dat ik geen commentaar schrijf maar dat uit de functie steeds duidelijk moet blijken wat hij doet. Wat ik ook probeer is zo veel mogelijk Class methods te gebruiken (static functions) om dingen te checken (i.e. + (bool) shouldStopRecordingForRecordingState:(RecordingState)recordingState andSpaceLeft:(long)capacityInBytes;) in plaats van dat ter plekke uit te vinden met een hoop referenties naar de klasse zelf.
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
Zolang je ze netjes opruimt maakt dit denk ik de code alleen maar leesbaarder. Misschien wel xxxBrush noemen?BM schreef op woensdag 03 september 2014 @ 15:01:
Heb ik geen github voor nodig, daar kan ik onze codebase ook wel voor gebruiken
C#:
1 2 3 private readonly SolidColorBrush red = new SolidColorBrush(Colors.Red); private readonly SolidColorBrush black = new SolidColorBrush(Colors.Black); private readonly SolidColorBrush green = new SolidColorBrush(Colors.Green);
Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.
Oh boy, kwam vandaag erachter dat een bepaalde webapplicatie het niet helemaal doet in Safari... Hoe moet ik dit gaan debuggen zonder Mac? 
(Een vieze user agent string check of het Safari is en dan gewoon een foutmelding geven?
)
(Een vieze user agent string check of het Safari is en dan gewoon een foutmelding geven?
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
je kan toch gewoon safari downloaden voor windows?RayNbow schreef op woensdag 03 september 2014 @ 18:46:
Oh boy, kwam vandaag erachter dat een bepaalde webapplicatie het niet helemaal doet in Safari... Hoe moet ik dit gaan debuggen zonder Mac?
(Een vieze user agent string check of het Safari is en dan gewoon een foutmelding geven?)
En wat voor app is het dan, dat het voor zo'n specifiek iets niet werkt?
Safari voor Windows bestaat niet meerDouweegbertje schreef op woensdag 03 september 2014 @ 18:52:
[...]
je kan toch gewoon safari downloaden voor windows?
En wat voor app is het dan, dat het voor zo'n specifiek iets niet werkt?
Al een hele tijd niet meer
Weet inderdaad heel goed of je het boek nodig hebt... de meeste van mijn studieboeken zijn ondanks hun verplichte status gewoon grotendeels ongebruikt*, en ik heb bij meerdere vakken de verplichte boeken niet aan kunnen schaffen en het met succes zonder gedaan. Dat viel bv op te lossen met selectief kopieren - in de universiteitsbieb is het boek meestal wel beschikbaar. Beetje waardeloos werk trouwens, maar wel legaal.Caelorum schreef op woensdag 03 september 2014 @ 14:27:Ik kan mij nog voorstellen dat een CS student die het boek voor meerdere vakken nodig heeft het wel wil hebben voor die belachelijke prijzen, maar ik heb het maar voor 1 vak 'nodig'. Veel van de dingen zou ik ook wel via andere boeken en websites kunnen leren/opfrissen, als het goed is.
(En het is gebleken dat ik ook geen persoon ben die d'r studieboeken nog eens uit de kast trekt en opnieuw gaat lezen, dus als ik het over had kunnen doen had ik wellicht nog minder boeken gekocht.)
* daarbij moet ik wel aantekenen dat ik door mijn wat toeristische route door diverse studies ook meer dan eens een inleidend vak heb gedaan waarbij ik het vervolgvak niet, of niet daar, heb gedaan. Maar toch.
Never explain with stupidity where malice is a better explanation
ok, je krijgt de 2 jaar oude versie maar wellicht is dat prima om te debuggen. 9 mei 2012 is de laatste release geweest.Ryur schreef op woensdag 03 september 2014 @ 18:56:
[...]
Safari voor Windows bestaat niet meer
Al een hele tijd niet meer
Dit topic is gesloten.
![]()
Let op:
Dit topic is niet de plaats om te lopen helpdesken. De Coffee Corner is primair bedoeld als uitlaatklep voor iedereen in de Devschuur® en niet als vraagbaak.
Dit topic is niet de plaats om te lopen helpdesken. De Coffee Corner is primair bedoeld als uitlaatklep voor iedereen in de Devschuur® en niet als vraagbaak.