The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.
Als je dan alle logica van je domain er uit wil halen puur om clientside validatie te kunnen doen, zie: http://www.martinfowler.com/bliki/AnemicDomainModel.html
In dat geval zou ik vooral kiezen om niet 'all is fine' te rapporteren maar gewoon niks te zeggen. Maar je kunt natuurlijk al best veelvoorkomende fouten aanwijzen en die meteen melden (on blur van betreffende veld ofzo), en ingewikkeldere fouten onpostback. Dat is absoluut niet verwarrend..Gertjan. schreef op woensdag 02 oktober 2013 @ 13:23:
[...]
Als je clientside valideert moet je in mijn ogen ook alles valideren. Niets lulliger dan een formulier dat zegt "all is fine" en vervolgens na een postback toch wat te zeiken heeft. Ik heb dan liever geen validatie
Never explain with stupidity where malice is a better explanation
Nou ja, onmogelijk. Het is gewoon rot dat je je validatie nog steeds op verschillende plekken hebt. Eerst is daar de serverkant (validatie binnen je eigen code, dat is in je website of webservice), in principe de enige plek waar het moet gebeuren.HMS schreef op woensdag 02 oktober 2013 @ 13:50:
Bij complexere applicaties is soms clientside validatie onmogelijk.
Toch wil je ook graag dat je validatie door de database enigszins wordt afgedwongen. Ik in ieder geval wel. Maak anders meteen maar alle kolommen nullable.
En dan is er nog de webkant, indien van toepassing, waar "men" clientside validatie wil.
Ik heb nog niets gevonden waarbij al deze vormen van validatie maar één keer ingetikt hoeven te worden. Er zijn legio libraries beschikbaar die een poging doen, maar iets simpels als "veld X is required als Y waarde Z of hoger heeft" moet je nog steeds serverside én clientside programmeren.
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Ik denk dat je met DataAnnotation attributes een heel eind komtCodeCaster schreef op woensdag 02 oktober 2013 @ 14:13:
[...]
Nou ja, onmogelijk. Het is gewoon rot dat je je validatie nog steeds op verschillende plekken hebt. Eerst is daar de serverkant (validatie binnen je eigen code, dat is in je website of webservice), in principe de enige plek waar het moet gebeuren.
Toch wil je ook graag dat je validatie door de database enigszins wordt afgedwongen. Ik in ieder geval wel. Maak anders meteen maar alle kolommen nullable.
En dan is er nog de webkant, indien van toepassing, waar "men" clientside validatie wil.
Ik heb nog niets gevonden waarbij al deze vormen van validatie maar één keer ingetikt hoeven te worden. Er zijn legio libraries beschikbaar die een poging doen, maar iets simpels als "veld X is required als Y waarde Z of hoger heeft" moet je nog steeds serverside én clientside programmeren.
Als je deze property validatie op de een of andere manier in Ajax kunt exposen ben je al een heel eind
The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.
Zo zag het er bij mij ook uit.pdebie schreef op woensdag 02 oktober 2013 @ 10:24:
welkom Jeffrey.
Ik ben overigens even benieuwd naar hoe mensen hier hun code-behind inrichten.
Mijn code is zo opgebouwd:
- properties
- page events (Page_Init, Page_Load etc.)
- functies onderverdeeld in regions voor UI functies en functies voor berekeningen etc.
- region validatie, met daarin alle server-side validators
Hebben jullie hier een systeem in? Zetten jullie alles op alfabet? Of rammen jullie alles gewoon door elkaar?
iOS developer
Als je dat op je model-class doet, en je zet unobtrusive validation en client-side validation aan, werkt het ook automatisch client-side..Gertjan. schreef op woensdag 02 oktober 2013 @ 14:23:
[...]
Ik denk dat je met DataAnnotation attributes een heel eind komtIk heb pas een aantal annotations gemaakt die bv [Required] triggeren op basis van een ander attribuut. Mijn entity objecten valideren alle properties en kijken of ze voldoen aan de opgegeven attributen en op basis daarvan wordt gekeken of een object geldig of ongeldig is (inclusief de property namen en meldingen).
Als je deze property validatie op de een of andere manier in Ajax kunt exposen ben je al een heel eindVoor WPF en MVC werkt het al voor een groot deel. WPF signaleert direct een probleem en MVC pakt het probleem op na een post.
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Niet automatisch. De attributes worden vertaald naar HTML-attributes (data-val-), die door unobtrusive-validation en consorten weer wordt opgevangen en gevalideerd middels door MS aangeleverde JavaScript-validatie-functies.Korben schreef op woensdag 02 oktober 2013 @ 14:30:
[...]
Als je dat op je model-class doet, en je zet unobtrusive validation en client-side validation aan, werkt het ook automatisch client-side.
Als je een eigen model-attribute wil laten vertalen naar JS voor clientside validatie, zul je dat zelf moeten doen.
Voor elke vorm van validatie die verder gaat dan "moet langer zijn dan X tekens" of "is verplicht" moet je uitwijken naar third-party oplossingen, maar dan nog blijven de mogelijkheden om je businesslogica (automatisch) te laten vertalen naar JS beperkt.
[ Voor 22% gewijzigd door CodeCaster op 02-10-2013 14:36 ]
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Maar de 'standaard' validaties wel, zoals Required en dergelijken.CodeCaster schreef op woensdag 02 oktober 2013 @ 14:34:
[...]
Niet automatisch. De attributes worden vertaald naar HTML-attributes (data-val-), die door unobtrusive-validation en consorten weer wordt opgevangen en vertaald naar reeds door MS aangeleverde JavaScript-validatie-functies.
Als je een eigen model-attribute wil laten vertalen naar JS voor clientside validatie, zul je dat zelf moeten doen.
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Verwijderd
Ik ben al de hele dag geconcentreerd aan werk. Al van deze ochtend 9 uur heb ik de ene na de andere meeting. Zelfs tijdens de lunch heb ik een 'brown bag session' gevolgd.TheNephilim schreef op woensdag 02 oktober 2013 @ 13:36:
Zo! Even opzoek naar een beetje concentratie! Misschien dat een bakje koffie helpt, wie weet
Gelukkig ben ik nu een uurtje meeting-loos en kan ik mijn vriendjes in de Cofee Corner nog eens een bezoekje brengen.
iOS developer
De regions zijn een optie en kan je uitzetten, en ik zal ook niet zeggen dat we classes hebben waar veel te veel logica inzit (7000+ regels code in 1 classGrijze Vos schreef op woensdag 02 oktober 2013 @ 13:15:
[...]
Als je regions nodig hebt om het overzicht te bewaren dan doe je m.i. teveel in je classes. SRP anyone?
Toch eens kijken of het niet mogelijk is om regionerate voor elke check-in in TFS automatisch te draaien
Hail to the king baby!
Toen bleek de mail kapotalienfruit schreef op woensdag 02 oktober 2013 @ 15:40:
Inbox Zero qua defecten.
[ Voor 82% gewijzigd door BtM909 op 02-10-2013 16:55 ]
iOS developer
Als 'ie live is, mogen wij dan ook kijken?TheNephilim schreef op woensdag 02 oktober 2013 @ 16:49:
Hier nog bezig met de champagne webshop, begint al gestalte te krijgen! ^^ Ik probeer het luxe ontwerp ook een beetje tot z'n recht te laten komen qua winkelmandje en dergelijke, dat is al snel barbaars xd
Screenshot al of niet?
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
Haha, wie weet!F.West98 schreef op woensdag 02 oktober 2013 @ 17:44:
[...]
Als 'ie live is, mogen wij dan ook kijken?
Screenshot al of niet?
Iets wat ik sowieso mis; een forumonderdeel voor work-in-progress of waar je opgeleverde websites kan laten zien. Met de mogelijkheid om feedback te geven uiteraard! Over de looks, of waarom je voor bepaalde oplossingen gekozen hebt etc.
Yup, vaker over gehad, komt op 'zet maar in graphics zonder logo etc.', maar dat bedoel ik niet
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
Niet mijn eigen website, en ik wil natuurlijk feedback op het technisch aspect en op de user interfaceF.West98 schreef op woensdag 02 oktober 2013 @ 17:53:
Show hier je eigen website
Maar kan beter niet in HK
Alleen geen idee hoe dit zou kunnen heten
Start er één zou ik zeggenTheNephilim schreef op woensdag 02 oktober 2013 @ 17:55:
[...]
Niet mijn eigen website, en ik wil natuurlijk feedback op het technisch aspect en op de user interface
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
Ha die tekst is helemaal niet in willekeurige volgorde. Als je goed naar dat plaatje kijkt zie je dat de volgorde van de klinkers bijna niet is veranderd (soms zijn de letters van een 2-teken klinker wel omgedraaid). Je leest geen totaalplaatje maar je leest van lettergreep naar lettergreep, en daarom kan je die tekst nog lezen. Als je totaalplaatjes wil lezen kan je altijd nog Chinees leren
Ik stem voor! Kan wmb in de devschuurTheNephilim schreef op woensdag 02 oktober 2013 @ 17:52:
[...]
offtopic:
Iets wat ik sowieso mis; een forumonderdeel voor work-in-progress of waar je opgeleverde websites kan laten zien. Met de mogelijkheid om feedback te geven uiteraard! Over de looks, of waarom je voor bepaalde oplossingen gekozen hebt etc.
Yup, vaker over gehad, komt op 'zet maar in graphics zonder logo etc.', maar dat bedoel ik niet
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.
Verwijderd
Ga het straks zelf even uittesten, maar ik vind het toch wel heel vreemd dat hier niks over te vinden valt.
[ Voor 23% gewijzigd door Verwijderd op 02-10-2013 19:56 ]
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
[ Voor 95% gewijzigd door RobIII op 02-10-2013 20:33 ]
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
Mazda5 (huisje,boompje etc...), maar blijkbaar is het blok zo ral dat deze in het geheel zou moeten worden vervangen.StM schreef op woensdag 02 oktober 2013 @ 19:53:
Wat is er gebeurd dan? Of heb je zo'n bijzondere auto? Voor 6000 euro kan je heel erg veel vervangen.
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.
Maar je weet niet preciezer wat er kapot is volgens hun (scheur? kop gesmolten? kleppen? gebroken as? vastgelopen?) danwel wat er gebeurd is?
[ Voor 23% gewijzigd door StM op 02-10-2013 21:17 ]
Dat vertelt het verhaal niet: Om te zien wat er mis is moeten ze het blok openschroeven wat al weet ik hoe lang werk/geld is ( volgens de dealer iig ). Volgens de dealer is dat geen optie; dus er zou een ander blok in moeten. Nou, om dat ding er in te laten zetten ben je volgens hen 6000+ euro kwijt, met geen enkele garantie dat dat blok wel goed zou zijn of hoeveel km dat ding zou hebben gelopen. ( En ik mag het vooraf gaan aftikken omdat ze anders bang zijn dat ze hun centen niet krijgen, ik vind nl dat ze moeten meebetalen aan die schade )StM schreef op woensdag 02 oktober 2013 @ 21:07:
Maar je weet niet preciezer wat er kapot is volgens hun (scheur? kop gesmolten? kleppen? gebroken as? vastgelopen?) danwel wat er gebeurd is?
Nu ik het zo opschrijf, begint het steeds meer op een bende oplichters te lijken eigenlijk.
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.
En van service hebben ze blijkbaar nog nooit gehoord. Even starten en je weet al veel (gaat de motor nog rond, gekke geluiden van bv kapotte lagers), je schroeft 2 stukken plastic weg en je weet of de multiriem gebroken is (aka kleppen krom, duur maar prima te herstellen); je draait de bougies / gloeispiralen er uit en je kan meten met een handig apparaatje dat eigenlijk iedere garage (hoort) te hebben of er nog compressie is); visueel kan je zien of er pakkingen uit liggen omdat er dan olie danwel watersporen zijn.
Binnen een uurtje moet je makkelijk een (waarschijnlijke) diagnose kunnen stellen...
[ Voor 60% gewijzigd door StM op 02-10-2013 21:38 ]
1
| Integer.toString(SomeIntObject.getInt()); |
Werkte maar niet, bleef maar "Integer expects Integer" roepen.
Ik had het SomeIntObject al bij het binnenhalen (komt uit een API) naar een string gecast
Ehm, wut?
String MyString = SomeStringObject.getValue());
Logger.info(MyString);
werkt prima.
Logger.info(SomeStringObject.getValue());
faalt omdat "Logger object is an unknown object in this scope".
quirky bugs FTW.
[ Voor 32% gewijzigd door Firesphere op 02-10-2013 22:51 ]
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!
Verwijderd
Maar het kan dus nog sneller. Door niet de rechtsboven coordinaat op te slaan wordt het culling codesnippet 40% sneller. Met vector shuffle magic omzeil ik een LHS waardoor het nog 10% sneller wordt. Ka-ching!
Volgens mij ben ik heel erg aan het overoptimaliseren. Het code snippet neemt al lang niet meer dan 10% van de tijd van een operatie in die eenmaal per frame wordt uitgevoerd minder dan 0.2ms duurt
Verwijderd
Het hele frustum + occlusion culling verhaal kost nu ~0.230 ms per frame. Toen het nog tussen de 2 en 5ms zat maakte ik mij zorgen of het snel genoeg zou zijn..
On a different note... Hoe meer ik met C++ bezig ben, hoe meer ik er van ga houden. Wellicht omdat ik nog niet met andermans code heb hoeven kloten (op libs gebruiken na dan). Het heeft toch wel iets om geen GC te hebben. Daarnaast oogt de code lekker clean..
[ Voor 76% gewijzigd door Caelorum op 02-10-2013 23:39 ]
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
Verwijderd
Googlen, uittekenen op papier, de assembly van je programma bestuderen, profilen. Niet noodzakelijk in die volgore.Caelorum schreef op woensdag 02 oktober 2013 @ 23:36:
Waar haal je die kennis toch vandaan... ^^
Garbage collectors zijn lelijk. Als ik objecten wil recyclen schrijf ik zelf wel een object allocator. Sterker nog, die heb ik al.
GC's zijn overratedCaelorum schreef op woensdag 02 oktober 2013 @ 23:36:
Het heeft toch wel iets om geen GC te hebben.
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.
Weet met wat handigheid je eigen invoer op de plek van een gefree'de vtable te krijgen waar nog steeds een pointer naar is en daar worden weer een ris systemen gehacked.
[ Voor 41% gewijzigd door StM op 03-10-2013 00:00 ]
Verwijderd
De enige reden dat ik af en toe nog delete gebruik is omdat ik soms een class wil forward declaren, wat niet met een unique ptr kan, of dat ik de volgorde van destruction exact wil controleren. Mijn huidige project kent 22 uses van new, en 4 uses van delete, waarvan 2 in gegenereerde code.
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!
Records zijn hele handige datatypen, ongeordend en named, maar als je twee records met dezelfde key maakt in dezelfde namespace met eenzelfde veldnaam gaat Haskell wel op zijn bek...
1
2
| data Cat = Cat {name :: String} data Dog = Dog {name :: String} |
Geeft een vreselijke error.... Of je moet accepteren dat je de naam van je kat opvraagd met catName, of je moet Cat en Dog in een andere module zetten en qualified importen.... URRRRRGH
Vergeet het ergens en sla een rechtstreeks pointer op en je kan al nat gaan volgens mij. Maar ik ken de details niet want het enige C++ werk dat ik de laatste 2 jaar gedaan heb is maintenance en ik heb nog niet met C++11 mogen spelen.Verwijderd schreef op donderdag 03 oktober 2013 @ 00:04:
Dat hoeft niet hoor. Je kan prima C++ schrijven zonder ooit delete te gebruiken, met std::unique_ptr.
De enige reden dat ik af en toe nog delete gebruik is omdat ik soms een class wil forward declaren, wat niet met een unique ptr kan, of dat ik de volgorde van destruction exact wil controleren. Mijn huidige project kent 22 uses van new, en 4 uses van delete, waarvan 2 in gegenereerde code.
Zorg dat je de balans van snelheid en accuraarheid niet uit het oog verliest. Bloedsnelle plane tests zijn leuk, maar uiteindelijk win je vaak meer door het aantal false positives terug te brengen.Verwijderd schreef op woensdag 02 oktober 2013 @ 23:23:
Ik dacht dat mijn frustum-avx functie behoorlijk snel was.
Maar het kan dus nog sneller. Door niet de rechtsboven coordinaat op te slaan wordt het culling codesnippet 40% sneller. Met vector shuffle magic omzeil ik een LHS waardoor het nog 10% sneller wordt. Ka-ching!
Volgens mij ben ik heel erg aan het overoptimaliseren. Het code snippet neemt al lang niet meer dan 10% van de tijd van een operatie in die eenmaal per frame wordt uitgevoerd minder dan 0.2ms duurt
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.
Verwijderd
Je kan nat gaan ja. Maar in C++ ga je nat, in java moet je elke pointer reference counten. Dat is ook niet optimaal.StM schreef op donderdag 03 oktober 2013 @ 00:18:
[...]
Vergeet het ergens en sla een rechtstreeks pointer op en je kan al nat gaan volgens mij. Maar ik ken de details niet want het enige C++ werk dat ik de laatste 2 jaar gedaan heb is maintenance en ik heb nog niet met C++11 mogen spelen.Het is ook niet bepaald mijn favoriete taal aangezien er te veel manieren zijn om jezelf in de ellende te brengen, maar soms ontkom je er niet aan.
Ik ken dat. Probleem is dat ik dat niet leuk vind. Ik ben alleen en ik kan daar niet goed tegenFiresphere schreef op donderdag 03 oktober 2013 @ 00:05:
Gisteren het besluit genomen om meer "ik" tijd te nemen. Gewoon stoppen met die hele rush. Heerlijk, wat een rust, nu al.
Dus geen koffie meer voor de hele devschuur?Firesphere schreef op donderdag 03 oktober 2013 @ 00:05:
Gisteren het besluit genomen om meer "ik" tijd te nemen. Gewoon stoppen met die hele rush. Heerlijk, wat een rust, nu al.
Ben zelf nu bezig met mijn eerste stappen in C++ (nadat ik C een beetje heb leren kennen). Bevalt tot nu toe redelijk goed, maar goed, heb ook nog niets hoeven malloccen oid, dus ja, dan gaat het al snel goed. Enige wat ik tot nu toe een beetje mis is een goede plek voor alle functie's ed. Bij Java kun je gewoon Java <versienummer> api doen en je hebt meteen een goed leesbare en uitgebreide documentatie voor je neus. Dat moet ik voor C++ nog vinden (want C++references vind ik persoonlijk niet lekker leesbaar)
Verwijderd
Ja kan doxygen gebruiken voor het genereren van documentatie.Gropah schreef op donderdag 03 oktober 2013 @ 01:06:
[...]
Dus geen koffie meer voor de hele devschuur?naja, ik drink toch geen koffie
Ben zelf nu bezig met mijn eerste stappen in C++ (nadat ik C een beetje heb leren kennen). Bevalt tot nu toe redelijk goed, maar goed, heb ook nog niets hoeven malloccen oid, dus ja, dan gaat het al snel goed. Enige wat ik tot nu toe een beetje mis is een goede plek voor alle functie's ed. Bij Java kun je gewoon Java <versienummer> api doen en je hebt meteen een goed leesbare en uitgebreide documentatie voor je neus. Dat moet ik voor C++ nog vinden (want C++references vind ik persoonlijk niet lekker leesbaar)
Maar documentatie van C++ code is vaak.. meh. Ik documenteer zelf ook niet heel erg veel. 3rd-party libs die ik gebruik zijn dat vaak ook niet.
Verwijderd
Ik denk dat hij een site als http://en.cppreference.com/w/ bedoelde als naslagwerk voor standaard functiesVerwijderd schreef op donderdag 03 oktober 2013 @ 01:09:
Nep-dev!![]()
[...]
Ja kan doxygen gebruiken voor het genereren van documentatie.
Maar documentatie van C++ code is vaak.. meh. Ik documenteer zelf ook niet heel erg veel. 3rd-party libs die ik gebruik zijn dat vaak ook niet.
Maar met MSDN, man pages en http://www.cplusplus.com voor de SL moet je ver komen zolang het niet om een specifieke lib gaat
Verwijderd
cplusplus.com schijnt niet altijd even accuraat te zijnStM schreef op donderdag 03 oktober 2013 @ 01:12:
Wie heeft er nu documentatie nodig, je hebt toch de header file![]()
Maar met MSDN, man pages en http://www.cplusplus.com voor de SL moet je ver komen zolang het niet om een specifieke lib gaat
Verwijderd
Ahh zoVerwijderd schreef op donderdag 03 oktober 2013 @ 01:11:
[...]
Ik denk dat hij een site als http://en.cppreference.com/w/ bedoelde als naslagwerk voor standaard functies
Ik google meestal op de functienaam, de site die jij noemt heeft meestal de beste informatie. Soms als ik niets te doen heb ga ik wel eens de documentatie van cplusplus doorbladen om te kijken wat voor onontdekte pareltjes er in de std lib zitten. Je kan zelfs stddev one-liners maken met wat slim gebruik van de std lib.
Ik bedoelde eigenlijk cplusplus.com, ik zal eens kijken aar cppreference.com.Verwijderd schreef op donderdag 03 oktober 2013 @ 01:12:
[...]
cplusplus.com schijnt niet altijd even accuraat te zijn
Also: MSDN? Zal wel een MS repo zijn oid. Punt is dat we C++ leren en niet visual C++. Oftewel: Linux
Echte developers gebruiken punchcardsGropah schreef op donderdag 03 oktober 2013 @ 01:16:
[...]
Ik bedoelde eigenlijk cplusplus.com, ik zal eens kijken aar cppreference.com.
Also: MSDN? Zal wel een MS repo zijn oid. Punt is dat we C++ leren en niet visual C++. Oftewel: LinuxVoordat ik weer een OS met naam y is beter discussie begin, het is gewoon smaak en ik vind Linux lekker
Verwijderd
Ik dev onder windows, maar maak geen gebruik van microsoft specifieke libraries. Toch maak soms nog wel gebruik van msdn voor bijvoorbeeld SSE/AVX intrinsics.Gropah schreef op donderdag 03 oktober 2013 @ 01:16:
[...]
Ik bedoelde eigenlijk cplusplus.com, ik zal eens kijken aar cppreference.com.
Also: MSDN? Zal wel een MS repo zijn oid. Punt is dat we C++ leren en niet visual C++. Oftewel: LinuxVoordat ik weer een OS met naam y is beter discussie begin, het is gewoon smaak en ik vind Linux lekker
nee floppies om de cnc g-codes op te zetten en die via de pc van de docent met een seriële modem updoaden naar de cnc freeswindwarrior schreef op donderdag 03 oktober 2013 @ 01:18:
[...]
Echte developers gebruiken punchcards
jep dat heb ik afgelopen 2 dagen moeten doen voor mn opleiding. erg modern. hurrr
[ Voor 5% gewijzigd door mrc4nl op 03-10-2013 01:22 ]
ora et labora
MSDN heeft gewoon een aparte sectie voor de SL. En wil je wat meer als wat tekst printen of een file lezen zal je toch echt aan de OS specifieke API's moeten.Gropah schreef op donderdag 03 oktober 2013 @ 01:16:
[...]
Ik bedoelde eigenlijk cplusplus.com, ik zal eens kijken aar cppreference.com.
Also: MSDN? Zal wel een MS repo zijn oid. Punt is dat we C++ leren en niet visual C++. Oftewel: LinuxVoordat ik weer een OS met naam y is beter discussie begin, het is gewoon smaak en ik vind Linux lekker
http://www.amazon.com/Sta...TF8&qid=1380757131&sr=1-1Gropah schreef op donderdag 03 oktober 2013 @ 01:11:
En wat zijn goede resources voor documentatie van de standaard dingen, zoals IOstream?
Weet alleen niet zeker of hij ook de iostreams behandelt
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.
Daar heb ik het niet over, ik heb het over het verminderen van false positives door een wat ingewikkeldere berekening. Met alleen plane tests heb je nog relatief veel false positives. Het hangt natuurlijk een beetje van de rest van je pipeline af hoe duur dat verder is.Verwijderd schreef op donderdag 03 oktober 2013 @ 00:36:
De precisie is identiek aan de variant met normale floats. Er zit een assert op die afgaat als het resultaat niet exact hetzelfde is als de oude implementatie. Die heb ik na het veranderen van een > naar een !< AVX compare nooit meer zien afgaan.
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.
@mensen die het chinees noemen: Leer het, het is een uitdaging
@Gropah over linux: Eens linux voor devwerk is prettiger.
@mrc4nl: Welke opleiding doe je dat je cnc's moet programmeren en wat voor code gaat daar in?
@Firesphere: Meer tijd aan het nemen om te drinken?
Verder:
Goedemorgen, pak wat koffie.
Kom een heel eind, alleen raak de draad volledig kwijt bij hoe het Query gedeelte werkt als je ES gebruikt.
Maargoed, ik kan natuurlijk altijd nog gewoon direct mn AR opslaan icm met Optimistic Concurrency, en dan daarnaast wel een ES bijhouden. Maw mn AR niet opbouwen vanuit de ES.
Maakt het query gedeelte iig weer iets wat logisch klinkt, maar behoud ik wel de mogelijkheid om op een later moment de boel te refactoren en al mn AR te laten replayen vanuit mn ES.
Wat me wel mateloos irriteert is dat er ansich wel documentatie over CQRS en ES te vinden is, maar totaal geen enkele relevante voorbeelden.
Heb tot nu toe geen enkel voorbeeld gezien die het hele proces van voor tot achter laat zien. Het is allemaal of alleen CQRS, of alleen ES, en dan daarbij alleen een klein frutvoorbeeldje van hoe je een AR replayed.
Best irritant..
Je kunt je event streams gebruiken in het query-deel van je domain, maar dat is niet echt handig, want dat zal niet echt geweldig performen. De bedoeling is dat je de events die je publiceert opvangt en de data denormaliseert in een 'normale' database.D-Raven schreef op donderdag 03 oktober 2013 @ 09:12:
Net als je denkt dat je een goed beeld hebt van CQRS icm DDD komt ES om de hoek kijken...
Kom een heel eind, alleen raak de draad volledig kwijt bij hoe het Query gedeelte werkt als je ES gebruikt.
Dan doe je niet aan event sourcing; je slaat wel een event stream op, maar het idee van event sourcing is nou juist dat die stream de bron van waarheid is voor de staat van je applicatie.Maargoed, ik kan natuurlijk altijd nog gewoon direct mn AR opslaan icm met Optimistic Concurrency, en dan daarnaast wel een ES bijhouden. Maw mn AR niet opbouwen vanuit de ES.
Daar moet je wel mee oppassen, want dat betekent dat je eigenlijk het opslaan van je AR en het opslaan van je event stream in een transactie moet stoppen om het consistent te houden, wat gelijk de schaalbaarheid flink onderuit schopt.Maakt het query gedeelte iig weer iets wat logisch klinkt, maar behoud ik wel de mogelijkheid om op een later moment de boel te refactoren en al mn AR te laten replayen vanuit mn ES.
Als het goed is is Lokad.CQRS wel een compleet voorbeeld (in C#). Ook het voorbeeld van Microsoft zou redelijk compleet moeten zijn.Wat me wel mateloos irriteert is dat er ansich wel documentatie over CQRS en ES te vinden is, maar totaal geen enkele relevante voorbeelden.
Heb tot nu toe geen enkel voorbeeld gezien die het hele proces van voor tot achter laat zien. Het is allemaal of alleen CQRS, of alleen ES, en dan daarbij alleen een klein frutvoorbeeldje van hoe je een AR replayed.
Best irritant..
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Lavabit droeg de sleutel inderdaad over, maar drukte deze met een kleine tekstgrootte af op in totaal elf pagina's. De FBI moest daardoor alle 2560 karakters overtypen om de ssl-sleutel te kunnen gebruiken.
Hehe, briljant, nog wel even een flinke 'fuck you' terwijl ze voldoen aan het verzoek.
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
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!
Je bedoeld dat het publiceren van events naar je event stream ervoor zorgt dat je 'query views' al dan niet uiteindelijk, geupdate worden. En dat je dus queries uitvoert op deze 'views' (wat jij gedenormaliseerde informatie noemt).Korben schreef op donderdag 03 oktober 2013 @ 09:21:
[...]
Je kunt je event streams gebruiken in het query-deel van je domain, maar dat is niet echt handig, want dat zal niet echt geweldig performen. De bedoeling is dat je de events die je publiceert opvangt en de data denormaliseert in een 'normale' database.
Zover kom ik nog, alleen hoe dit dan werkt icm RavenDB is waar ik momenteel vast zit. Maargoed, ik ben al bezig met het voorbereiden van een mailing list post, dus wellicht dat ik daar nog wat meer uit haal.
Dat klopt. Dan wordt het meer een Event Log.[...]
Dan doe je niet aan event sourcing; je slaat wel een event stream op, maar het idee van event sourcing is nou juist dat die stream de bron van waarheid is voor de staat van je applicatie.
Dat klopt, maar volgens mij valt dat wel mee. Als ik alleen een event de event stream in zou pushen, zou ik dit ook in een transactie moeten doen, en Optimistic Concurrency moeten toepassen om de consistentie van mn event stream te kunnen waarborgen. Een extra document gaat dit niet merkbaar beïnvloeden schat ik zo. (let wel, ik gebruik RavenDB als database voor beide, dit maakt het een en ander natuurlijk wat eenvoudiger).[...]
Daar moet je wel mee oppassen, want dat betekent dat je eigenlijk het opslaan van je AR en het opslaan van je event stream in een transactie moet stoppen om het consistent te houden, wat gelijk de schaalbaarheid flink onderuit schopt.
Toevallig dat ik net lokad gevonden had. Heb _net_ de solution geopend[...]
Als het goed is is Lokad.CQRS wel een compleet voorbeeld (in C#). Ook het voorbeeld van Microsoft zou redelijk compleet moeten zijn.
Soms scroll ik me helemaal gek in de Solution Explorer op zoek naar die ene file.
In het geval van een document-database zoals RavenDB lijkt het me dat je in eerste instantie je AR als document opslaat, wat het extreem makkelijk maakt: reageer op elk event wat door die AR gepubliceerd wordt, open de event stream, replay ze naar een AR en sla die AR op.D-Raven schreef op donderdag 03 oktober 2013 @ 09:33:
[...]
Je bedoeld dat het publiceren van events naar je event stream ervoor zorgt dat je 'query views' al dan niet uiteindelijk, geupdate worden. En dat je dus queries uitvoert op deze 'views' (wat jij gedenormaliseerde informatie noemt).
Zover kom ik nog, alleen hoe dit dan werkt icm RavenDB is waar ik momenteel vast zit. Maargoed, ik ben al bezig met het voorbereiden van een mailing list post, dus wellicht dat ik daar nog wat meer uit haal.
Wanneer je een relationele database gebruikt, is het vaker zo dat je per view in je UI een tabel in je database hebt, en per tabel een 'denormalizer' (wat dus gewoon een event handler is).
RavenDB gebruiken maakt het inderdaad een stuk makkelijker.[/quote][...]
Dat klopt. Dan wordt het meer een Event Log.
[...]
Dat klopt, maar volgens mij valt dat wel mee. Als ik alleen een event de event stream in zou pushen, zou ik dit ook in een transactie moeten doen, en Optimistic Concurrency moeten toepassen om de consistentie van mn event stream te kunnen waarborgen. Een extra document gaat dit niet merkbaar beïnvloeden schat ik zo. (let wel, ik gebruik RavenDB als database voor beide, dit maakt het een en ander natuurlijk wat eenvoudiger).
Je kunt het bestand open laten staan natuurlijk, of zeg ik dan hele rare dingen?pdebie schreef op donderdag 03 oktober 2013 @ 09:44:
Bestaat er een mogelijkheid in VS2012 om files in de Solution Explorer te markeren of iets dergelijks? Bijvoorbeeld files die je veel gebruikt (zoals een order formulier waar ik nu aan het werk ben).
Soms scroll ik me helemaal gek in de Solution Explorer op zoek naar die ene file.
[ Voor 15% gewijzigd door Korben op 03-10-2013 09:48 ]
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Ctrl+Shift+N is bij mij 'New Project', en volgens mij heeft ReSharper daar niks aan veranderd.sig69 schreef op donderdag 03 oktober 2013 @ 09:47:
En anders ctrl+shift+n (indien resharper geïnstalleerd is)
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Ik las ergens dat hij lettergroote 4 gebruikte. Dat is echt onleesbaar zonder vergrootglas. Ben benieuwd hoevaak de NSA het heeft geprobeerd voordat ze het opgaven en de digitale versie eiste.
Een bron voor de 4 punts letters:
https://www.security.nl/p...an+e-mailprovider+Snowden
[ Voor 43% gewijzigd door Ealanrian op 03-10-2013 09:59 ]
Bedenk me net, dat als ik nou de AR en het document an sich van elkaar scheid. Dus de AR is mn Domain object, welke geinitialiseerd kan worden vanuit een event stream, of direct vanuit een document (in event sourcing termen een memento/snapshot). Dan ben ik er ook.Korben schreef op donderdag 03 oktober 2013 @ 09:45:
[...]
In het geval van een document-database zoals RavenDB lijkt het me dat je in eerste instantie je AR als document opslaat, wat het extreem makkelijk maakt: reageer op elk event wat door die AR gepubliceerd wordt, open de event stream, replay ze naar een AR en sla die AR op.
Van daaruit kan ik dan mn Views baseren, dit zijn niks meer dan indexes over het document wat ik opsla.
* D-Raven voelt een proverbial click in zn hoofd ^^
In RavenDB is de index dan de denormaliser. Deze wordt automatisch bijgewerkt op het moment dat ik het document waar de index op ligt opsla. Dit gebeurd parralel en server side. Eventual consistency out of the box dus eigenlijk.Wanneer je een relationele database gebruikt, is het vaker zo dat je per view in je UI een tabel in je database hebt, en per tabel een 'denormalizer' (wat dus gewoon een event handler is).
[...]
RavenDB gebruiken maakt het inderdaad een stuk makkelijker.[/quote]
Juist; wat je 'denormaliseert' en waar je overheen query't is de snapshot van de event stream van een AR. Dát is wat je in RavenDB opslaat, maar dat staat los van de 'snapshots' van je event stream.D-Raven schreef op donderdag 03 oktober 2013 @ 10:08:
[...]
Bedenk me net, dat als ik nou de AR en het document an sich van elkaar scheid. Dus de AR is mn Domain object, welke geinitialiseerd kan worden vanuit een event stream, of direct vanuit een document (in event sourcing termen een memento/snapshot). Dan ben ik er ook.
Van daaruit kan ik dan mn Views baseren, dit zijn niks meer dan indexes over het document wat ik opsla.
* D-Raven voelt een proverbial click in zn hoofd ^^
De denormalizer is het stukje code wat de snapshot opslaat. Omdat je in RavenDB meerdere en complexe indexen over hetzelfde document kunt draaien, heb je niet meerdere denormalizers nodig (wat bij een relationele database vaak wel zo is).[...]
In RavenDB is de index dan de denormaliser. Deze wordt automatisch bijgewerkt op het moment dat ik het document waar de index op ligt opsla. Dit gebeurd parralel en server side. Eventual consistency out of the box dus eigenlijk.
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Control+Shift+N roept bij mij een hele andere associatie op. Is zeker de sneltoets om "vieze" projecten te bouwenKorben schreef op donderdag 03 oktober 2013 @ 09:48:
[...]
Ctrl+Shift+N is bij mij 'New Project', en volgens mij heeft ReSharper daar niks aan veranderd.
The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.
Verwijderd
Je bedoelt iets ingewikkelders frustum - AABB tests? Dat heeft met mijn omgeving weinig zin, mijn world bestaat min of meer enkel uit vierkanten zonder rotatie..oisyn schreef op donderdag 03 oktober 2013 @ 02:30:
[...]
Daar heb ik het niet over, ik heb het over het verminderen van false positives door een wat ingewikkeldere berekening. Met alleen plane tests heb je nog relatief veel false positives. Het hangt natuurlijk een beetje van de rest van je pipeline af hoe duur dat verder is.
Je frustum aabb test is geen frustum test, het is een 6 planes test. In die test zitten een aantal false positives. Hier testen we trouwens geen aabbs maar spheres voor betere perf.Verwijderd schreef op donderdag 03 oktober 2013 @ 10:27:
[...]
Je bedoelt iets ingewikkelders frustum - AABB tests? Dat heeft met mijn omgeving weinig zin, mijn world bestaat min of meer enkel uit vierkanten zonder rotatie.

Orange box.
[ Voor 13% gewijzigd door PrisonerOfPain op 03-10-2013 11:00 ]
Verwijderd
Ahh, zo. Dat levert inderdaad een false positive op.PrisonerOfPain schreef op donderdag 03 oktober 2013 @ 10:58:
[...]
Je frustum aabb test is geen frustum test, het is een 6 planes test. In die test zitten een aantal false positives. Hier testen we trouwens geen aabbs maar spheres voor betere perf.
[afbeelding]
Orange box.
Ik bereken trouwens voor elk frustum plane een normal met lengte tussen 1 en sqrt( 2 ) afhankelijk van hoe de plane en AABB tegenover elkaar zijn geroteerd. Dat geeft mij plane-AABB tests met de performance van plane-sphere tests ten koste van een kleine overhead bij het aanmaken van de frustum klasse.
Als je met 'sphere tests' bedoelt dat hij elke plane tegen een sphere test. Een 'sphere test' die het hele frustum als 1 sphere opvat is uiteraard sneller.
Mijn AVX functie gebruikt slechts 6 planes. Dus ik kan er 2 bijschuiven voordat het vol zit. Daarmee kan het aantal false positives iets worden teruggedrongen zonder performance hit. Sterker nog, de performance wordt beter, omdat ik geen mask meer in hoef te laden.
[ Voor 20% gewijzigd door Verwijderd op 03-10-2013 11:24 ]
Yup, zeker als je niemand in je werkomgeving hebt die feedback kan geven. De gebruikerservaring, dus user interface vind ik interessant, maar ook op technisch gebied zijn er soms dingen waar een simpelere of betere oplossing mogelijk is.Avalaxy schreef op woensdag 02 oktober 2013 @ 19:38:
[...]
Ik stem voor! Kan wmb in de devschuurFeedback is ook een belangrijk onderdeel van devven toch?
---
Hostinggegevens bij klanten opvragen, dan ben je zo een week verder
Ik heb de neiging om bestanden die ik op dat moment niet nodig heb gewoon af te sluiten. Anders erger ik me aan alle openstaande tabjes.Ealanrian schreef op donderdag 03 oktober 2013 @ 09:46:
Files die je veel gebruikt staan toch altijd open?
Ah, dat is op zich nog wel een goede jaKorben schreef op donderdag 03 oktober 2013 @ 09:45:
[...]
Bookmarks werken ook in gesloten bestanden, dus je zou een bookmark in je favoriete bestand kunnen zetten.
Al had ik de stille hoop dat je een 'favourites' lijstje of iets dergelijks aan kon maken.
Aah ja dan is dat lastig. Ik ben zo'n persoon die tabjes heeft open staan tot het punt komt dat de browser/IDE crashed vanwege te veel tabjespdebie schreef op donderdag 03 oktober 2013 @ 11:13:
[...]
Ik heb de neiging om bestanden die ik op dat moment niet nodig heb gewoon af te sluiten. Anders erger ik me aan alle openstaande tabjes.
Hier ook, gewoon af en toe even alle onnodige tabjes sluiten, anders vind je door de bomen het bos niet meer.pdebie schreef op donderdag 03 oktober 2013 @ 11:13:
[...]
Ik heb de neiging om bestanden die ik op dat moment niet nodig heb gewoon af te sluiten. Anders erger ik me aan alle openstaande tabjes.
Dit topic is gesloten.
![]()
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.