De Devschuur Coffee Corner - Iteratie 4 Vorige deel Overzicht Volgende deel Laatste deel

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

Pagina: 1 ... 43 ... 137 Laatste
Acties:
  • 340.136 views

  • .Gertjan.
  • Registratie: September 2006
  • Laatst online: 17-02 21:20

.Gertjan.

Owl!

alienfruit schreef op woensdag 02 oktober 2013 @ 13:13:
[...]


Maar wel wat AJAX op de validatie te doen? Anders is het ook niet echt aardig voor de gebruiker...
Hangt erg van je applicatie af. In sommige gevallen is clientside (al dan niet met Ajax) iets te ingewikkeld om je validatie te doen. 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 :)

Bij complexere applicaties is clientside validatie dan wat minder interessant dan een consumer website met een contact formulier :) Gelukkig bestaat grotendeels van mijn projecten uit de eerste categorie en geeft men niet zoveel om clientside validatie :) Uiteraard is het wel goed om altijd te zorgen dat foute input zoveel mogelijk wordt voorkomen, dus enkel numeriek toestaan waar nummers worden verwacht, date-pickers, etc.

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.


  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 18-12 12:14

TheNephilim

Wtfuzzle

Zo! Even opzoek naar een beetje concentratie! Misschien dat een bakje koffie helpt, wie weet :o

  • Ealanrian
  • Registratie: Februari 2009
  • Laatst online: 21:23
Concentratie is inderdaad zeer ver te zoeken... Normaal werkt koffie met grafherrie wel maar zelfs dat werkt niet vandaag :(

  • HMS
  • Registratie: Januari 2004
  • Laatst online: 29-12 11:53

HMS

Bij complexere applicaties is soms clientside validatie onmogelijk. Je kan dan meestal hooguit checken of de input zinnig is (dus valide dates, numerics, etc), maar je Domain kan dan altijd nog weigeren een bepaalde actie uit te voeren.

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

  • incaz
  • Registratie: Augustus 2012
  • Laatst online: 15-11-2022
.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 :)
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.

Never explain with stupidity where malice is a better explanation


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

HMS schreef op woensdag 02 oktober 2013 @ 13:50:
Bij complexere applicaties is soms clientside validatie onmogelijk.
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.

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


  • .Gertjan.
  • Registratie: September 2006
  • Laatst online: 17-02 21:20

.Gertjan.

Owl!

CodeCaster 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.
Ik denk dat je met DataAnnotation attributes een heel eind komt :) Ik 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 eind :) Voor WPF en MVC werkt het al voor een groot deel. WPF signaleert direct een probleem en MVC pakt het probleem op na een post.

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.


  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 17:30

BikkelZ

CMD+Z

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? :)
Zo zag het er bij mij ook uit.

iOS developer


  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11 13:15

Korben

() => {};

.Gertjan. schreef op woensdag 02 oktober 2013 @ 14:23:
[...]

Ik denk dat je met DataAnnotation attributes een heel eind komt :) Ik 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 eind :) Voor WPF en MVC werkt het al voor een groot deel. WPF signaleert direct een probleem en MVC pakt het probleem op na een post.
Als je dat op je model-class doet, en je zet unobtrusive validation en client-side validation aan, werkt het ook automatisch client-side.

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

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

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


  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11 13:15

Korben

() => {};

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.
Maar de 'standaard' validaties wel, zoals Required en dergelijken.

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


Verwijderd

TheNephilim schreef op woensdag 02 oktober 2013 @ 13:36:
Zo! Even opzoek naar een beetje concentratie! Misschien dat een bakje koffie helpt, wie weet :o
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.

Gelukkig ben ik nu een uurtje meeting-loos en kan ik mijn vriendjes in de Cofee Corner nog eens een bezoekje brengen. :w

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 17:30

BikkelZ

CMD+Z

Bah, WFH dagje, al mijn directe collega's ziek, ontslag genomen, nog niet begonnen of in een andere tijdzone en geen idee wat ik nog kan doen aangezien niemand een signoff heeft gedaan in de VS

iOS developer


  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 21:39
Grijze 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?
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 class 8)7 |:( ) maar dan nog ik hou van mijn code netjes en dan ook nog alfabetisch geordend per type (variabelen, methodes, events etc) en in plaats van dat allemaal met de hand te doen, gebruiken we dus regionerate. Ook voor kleine classes, ben volgens mij een van COD -> CDO personen :D

Toch eens kijken of het niet mogelijk is om regionerate voor elke check-in in TFS automatisch te draaien >:)

Hail to the king baby!


  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 18-12 12:14

TheNephilim

Wtfuzzle

Hmmm, winkelmandjes opslaan. Daar is nogal wat te doen om geweest, serialize en unserialize enzo. Even zeker weten dat ik dat niet verkeerd doe :p

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 21:37

alienfruit

the alien you never expected

Inbox Zero qua defecten.

  • Radiant
  • Registratie: Juli 2003
  • Niet online

Radiant

Certified MS Bob Administrator

Toen bleek de mail kapot :P

  • Ryur
  • Registratie: December 2007
  • Laatst online: 19:51
Door de grote hoeveelheid defects :P Overbelasting

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 21:37

alienfruit

the alien you never expected

Nee, blijkbaar stonden een paar IE8 performance/script error problemen nog niet in het systeem ;( ;( ;(

  • elnaeth
  • Registratie: Januari 2009
  • Laatst online: 25-09 08:53
Ik schiet voor geen meter op vandaag. Pff....

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 18-12 12:14

TheNephilim

Wtfuzzle

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

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 17:30

BikkelZ

CMD+Z

Dat zou perfect in een eigen topic passen ;)

[ Voor 82% gewijzigd door BtM909 op 02-10-2013 16:55 ]

iOS developer


  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 29-12 03:10

F.West98

Alweer 16 jaar hier

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
Als 'ie live is, mogen wij dan ook kijken?
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


  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 18-12 12:14

TheNephilim

Wtfuzzle

F.West98 schreef op woensdag 02 oktober 2013 @ 17:44:
[...]

Als 'ie live is, mogen wij dan ook kijken?
Screenshot al of niet?
Haha, wie weet! :p Kan vast een screen regelen, maar moet ik weer aardig aan het blurren en klooien :+ Dan zie je ook nog eens de mooie animaties niet :o

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 :+

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 29-12 03:10

F.West98

Alweer 16 jaar hier

Show hier je eigen website

Maar kan beter niet in HK :+

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


  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 18-12 12:14

TheNephilim

Wtfuzzle

Niet mijn eigen website, en ik wil natuurlijk feedback op het technisch aspect en op de user interface :+

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Heeft iemand wel eens gewerkt met een eigen verwerking van kaarten dmv een pinautomaat :P Ik weet dat ze het in Rotterdam en Den Haag doen met de Rotterdampas, even swypen door je pinautomaat en je kan er iets mee doen.

Alleen geen idee hoe dit zou kunnen heten :P

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 29-12 03:10

F.West98

Alweer 16 jaar hier

TheNephilim 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 :+
Start er één zou ik zeggen :Y)

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


  • alwinuzz
  • Registratie: April 2008
  • Nu online
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 :P .

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 28-12 13:12
TheNephilim 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 :+
Ik stem voor! Kan wmb in de devschuur :) Feedback is ook een belangrijk onderdeel van devven toch?

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 29-12 09:48
Garage -O- , 6000+ euries schade binnen een jaar van aankoop en kan als het aan hun ligt lekker zelf voor alle kosten opdraaien. Great.

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.


  • StM
  • Registratie: Februari 2005
  • Laatst online: 22:01

StM

Wat is er gebeurd dan? Of heb je zo'n bijzondere auto? Voor 6000 euro kan je heel erg veel vervangen.

Verwijderd

Weet iemand wat het meest performant is? string[].Containt() of HashSet.Contains(). Al een hele tijd zitten googlen, maar er is helaas niet veel te vinden over dit onderwerp.
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 ]


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Omdat het nogal afhangt van wat voor en hoeveel data je erin stopt en wat je precies wil meten?

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


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Sowieso is een HashSet.Contains() O(1) en een string[].Contains() O(N). Nogal wiedes want de eerste is een lookup (op basis van hash) en de tweede een (worst case: complete) iteratie over de array. Je kunt dus vrij veilig zeggen dat HashSet.Contains() het meest performant is (average case).

[ 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


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 29-12 09:48
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.
Mazda5 (huisje,boompje etc...), maar blijkbaar is het blok zo ral dat deze in het geheel zou moeten worden 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.


  • StM
  • Registratie: Februari 2005
  • Laatst online: 22:01

StM

Ik zou langs gaan bij een andere (bij voorkeur niet dealer) garage voor een second opnion :) Een heel blok in puin is al echt knap hoewel het nog wel kan, maar 6000+ vind ik richting oplichting misbruik van de situatie maken gaan. Waarschijnlijk willen ze je alles nieuw aansmeren ipv vervangen wat er nodig is danwel er een 2e hands motor in te zetten van bv een total loss auto die gesloopt wordt voor de onderdelen waarbij wat nog bruikbaar is wordt overgezet.

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 ]


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 29-12 09:48
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? :)
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 )

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.


  • StM
  • Registratie: Februari 2005
  • Laatst online: 22:01

StM

Lol ze weten niet wat er kapot is, ze willen niet kijken wat er mis is en de enige optie is een nieuw blok? HEEEL rap wegwezen daar :) En je krijgt voor die 6000 euro nog niet eens een nieuw blok? :|

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 ]


  • Firesphere
  • Registratie: September 2010
  • Laatst online: 27-12 04:33

Firesphere

Yoshis before Hoshis

Net een half uur verspeelt aan stupiditeit:
Java:
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

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 8)7

  • StM
  • Registratie: Februari 2005
  • Laatst online: 22:01

StM

Leuk en leerzaam toch? Het is immers maar hobby :)

Verwijderd

Ik vermaak we er wel mee.

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

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 23:40
Waar haal je die kennis toch vandaan... ^^

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

[ Voor 76% gewijzigd door Caelorum op 02-10-2013 23:39 ]


  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 29-12 03:10

F.West98

Alweer 16 jaar hier

Voor mij allemaal chinees :+

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

Caelorum schreef op woensdag 02 oktober 2013 @ 23:36:
Waar haal je die kennis toch vandaan... ^^
Googlen, uittekenen op papier, de assembly van je programma bestuderen, profilen. Niet noodzakelijk in die volgore.

Garbage collectors zijn lelijk. Als ik objecten wil recyclen schrijf ik zelf wel een object allocator. Sterker nog, die heb ik al.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 29-12 09:48
Caelorum schreef op woensdag 02 oktober 2013 @ 23:36:
Het heeft toch wel iets om geen GC te hebben.
GC's zijn overrated :P

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

Real programmers use explicit memory management 8)

  • StM
  • Registratie: Februari 2005
  • Laatst online: 22:01

StM

Voor 99% van de applicaties is zelf het geheugen beheren alleen maar een bron van ellende, bugs en security problemen :)

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

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.

  • Firesphere
  • Registratie: September 2010
  • Laatst online: 27-12 04:33

Firesphere

Yoshis before Hoshis

Gisteren het besluit genomen om meer "ik" tijd te nemen. Gewoon stoppen met die hele rush. Heerlijk, wat een rust, nu al.

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!


  • windwarrior
  • Registratie: Januari 2009
  • Laatst online: 12-07-2024

windwarrior

ʍıupʍɐɹɹıoɹ

Urgh... Haskell is een prachtige taal, maar soms....

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

Haskell:
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

  • StM
  • Registratie: Februari 2005
  • Laatst online: 22:01

StM

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

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 23:11

.oisyn

Moderator Devschuur®

Demotivational Speaker

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

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

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.
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.
Je kan nat gaan ja. Maar in C++ ga je nat, in java moet je elke pointer reference counten. Dat is ook niet optimaal.

  • Styxxy
  • Registratie: Augustus 2009
  • Laatst online: 21:11
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.
Ik ken dat. Probleem is dat ik dat niet leuk vind. Ik ben alleen en ik kan daar niet goed tegen ;). Dat is ook een van de redenen waarom ik nog steeds ~90% van mijn vakantiedagen heb om op te nemen. Ik vind werken leuk en ik heb het nodig om mezelf bezig te houden...

  • Gropah
  • Registratie: December 2007
  • Niet online

Gropah

Admin Softe Goederen

Oompa-Loompa 💩

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

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 21:37
Eensch ;)

Roomba E5 te koop


Verwijderd

Nep-dev! }:O
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)
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.

  • Gropah
  • Registratie: December 2007
  • Niet online

Gropah

Admin Softe Goederen

Oompa-Loompa 💩

En wat zijn goede resources voor documentatie van de standaard dingen, zoals IOstream?

Verwijderd

Verwijderd schreef op donderdag 03 oktober 2013 @ 01:09:
Nep-dev! }:O


[...]

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.
Ik denk dat hij een site als http://en.cppreference.com/w/ bedoelde als naslagwerk voor standaard functies

  • StM
  • Registratie: Februari 2005
  • Laatst online: 22:01

StM

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

StM 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 :)
cplusplus.com schijnt niet altijd even accuraat te zijn

Verwijderd

Verwijderd 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
Ahh zo 8)7

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.

  • Gropah
  • Registratie: December 2007
  • Niet online

Gropah

Admin Softe Goederen

Oompa-Loompa 💩

Verwijderd schreef op donderdag 03 oktober 2013 @ 01:12:
[...]


cplusplus.com schijnt niet altijd even accuraat te zijn
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: Linux _/-\o_ Voordat ik weer een OS met naam y is beter discussie begin, het is gewoon smaak en ik vind Linux lekker

  • windwarrior
  • Registratie: Januari 2009
  • Laatst online: 12-07-2024

windwarrior

ʍıupʍɐɹɹıoɹ

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: Linux _/-\o_ Voordat ik weer een OS met naam y is beter discussie begin, het is gewoon smaak en ik vind Linux lekker
Echte developers gebruiken punchcards :Y)

Verwijderd

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: Linux _/-\o_ Voordat ik weer een OS met naam y is beter discussie begin, het is gewoon smaak en ik vind Linux lekker
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.

  • mrc4nl
  • Registratie: September 2010
  • Laatst online: 21:53

mrc4nl

Procrastinatie expert

windwarrior schreef op donderdag 03 oktober 2013 @ 01:18:
[...]


Echte developers gebruiken punchcards :Y)
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 frees

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


Verwijderd

Deze blijft leuk:
Real programmers set the universal constants at the start such that the universe evolves to contain the disk with the data they want.

  • StM
  • Registratie: Februari 2005
  • Laatst online: 22:01

StM

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: Linux _/-\o_ Voordat ik weer een OS met naam y is beter discussie begin, het is gewoon smaak en ik vind Linux lekker
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.

  • mrc4nl
  • Registratie: September 2010
  • Laatst online: 21:53

mrc4nl

Procrastinatie expert

plaatje voor de geïnteresseerden

Afbeeldingslocatie: http://tweakers.net/ext/f/EGIMRNdgcQFE8vprKuDbXF1U/thumb.jpg

ora et labora


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 29-12 09:48
Gropah schreef op donderdag 03 oktober 2013 @ 01:11:
En wat zijn goede resources voor documentatie van de standaard dingen, zoals IOstream?
http://www.amazon.com/Sta...TF8&qid=1380757131&sr=1-1

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.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 23:11

.oisyn

Moderator Devschuur®

Demotivational Speaker

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

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.


  • Ealanrian
  • Registratie: Februari 2009
  • Laatst online: 21:23
@Darkstone en optimalisatie: Je kan nooit genoeg optimaliseren :P
@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? :P

Verder:
Goedemorgen, pak wat koffie.

  • DXaroth
  • Registratie: Maart 2011
  • Laatst online: 17-12 23:11
Tijd voor thee (nee, ik ben geen koffiedrinker) ... beetje mazzel krijg ik hardware binnen vandaag, jeuj speeltjes

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 16-10 10:47
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.
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..

  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11 13:15

Korben

() => {};

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.
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.
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.
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.
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.
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.
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..
Als het goed is is Lokad.CQRS wel een compleet voorbeeld (in C#). Ook het voorbeeld van Microsoft zou redelijk compleet moeten zijn.

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • Blubber
  • Registratie: Mei 2000
  • Niet online
nieuws: 'E-mailprovider Lavabit moest ssl-sleutels overhandigen aan overheid VS':
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.
*O*

  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11 13:15

Korben

() => {};

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?


  • Firesphere
  • Registratie: September 2010
  • Laatst online: 27-12 04:33

Firesphere

Yoshis before Hoshis

Koffie hoort natuurlijk nog wel bij werken :Y

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!


  • D-Raven
  • Registratie: November 2001
  • Laatst online: 16-10 10:47
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.
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.
[...]
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. Dan wordt het meer een Event Log.
[...]

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.
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).
[...]

Als het goed is is Lokad.CQRS wel een compleet voorbeeld (in C#). Ook het voorbeeld van Microsoft zou redelijk compleet moeten zijn.
Toevallig dat ik net lokad gevonden had. Heb _net_ de solution geopend :D. Het Microsoft voorbeeld ziet er veelbelovend uit. Thx!

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 19:02
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.

  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11 13:15

Korben

() => {};

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

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).
[...]


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).
RavenDB gebruiken maakt het inderdaad een stuk makkelijker.[/quote]
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.
Je kunt het bestand open laten staan natuurlijk, of zeg ik dan hele rare dingen? :P Bookmarks werken ook in gesloten bestanden, dus je zou een bookmark in je favoriete bestand kunnen zetten.

[ 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?


  • Ealanrian
  • Registratie: Februari 2009
  • Laatst online: 21:23
Files die je veel gebruikt staan toch altijd open?

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 21:37
En anders ctrl+shift+n (indien resharper geïnstalleerd is)

Roomba E5 te koop


  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11 13:15

Korben

() => {};

sig69 schreef op donderdag 03 oktober 2013 @ 09:47:
En anders ctrl+shift+n (indien resharper geïnstalleerd is)
Ctrl+Shift+N is bij mij 'New Project', en volgens mij heeft ReSharper daar niks aan veranderd.

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • MuddyMagical
  • Registratie: Januari 2001
  • Laatst online: 16:36
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.

  • Ealanrian
  • Registratie: Februari 2009
  • Laatst online: 21:23
Ik denk niet dat ze het hebben geprobeerd. Gewoon direct verzoek voor digitaal indienen.

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 ]


  • HuHu
  • Registratie: Maart 2005
  • Niet online
M'n HD gaat dood ;(.

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 16-10 10:47
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.
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 ^^
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]
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.

  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11 13:15

Korben

() => {};

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 ^^
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.
[...]


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

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • .Gertjan.
  • Registratie: September 2006
  • Laatst online: 17-02 21:20

.Gertjan.

Owl!

Korben 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.
Control+Shift+N roept bij mij een hele andere associatie op. Is zeker de sneltoets om "vieze" projecten te bouwen ;) Ik zou hem mappen naar "New Visual Basic project" :+

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.


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 21:37
Oh ja het hangt er natuurlijk ook vanaf welke shortcut set je in R# geselecteerd hebt

Roomba E5 te koop


Verwijderd

.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 bedoelt iets ingewikkelders frustum - AABB tests? Dat heeft met mijn omgeving weinig zin, mijn world bestaat min of meer enkel uit vierkanten zonder rotatie.

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 23-12 15:42
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.
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. :)

Afbeeldingslocatie: http://zach.in.tu-clausthal.de/teaching/cg_literatur/lighthouse3d_view_frustum_culling/images/vfbox2.gif

Orange box.

[ Voor 13% gewijzigd door PrisonerOfPain op 03-10-2013 11:00 ]


Verwijderd

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.
Ahh, zo. Dat levert inderdaad een false positive op.


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 ]


  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 18-12 12:14

TheNephilim

Wtfuzzle

Avalaxy schreef op woensdag 02 oktober 2013 @ 19:38:
[...]


Ik stem voor! Kan wmb in de devschuur :) Feedback is ook een belangrijk onderdeel van devven toch?
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.

---

Hostinggegevens bij klanten opvragen, dan ben je zo een week verder :p

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 19:02
Ealanrian schreef op donderdag 03 oktober 2013 @ 09:46:
Files die je veel gebruikt staan toch altijd open?
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.
Korben 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.
Ah, dat is op zich nog wel een goede ja :)

Al had ik de stille hoop dat je een 'favourites' lijstje of iets dergelijks aan kon maken.

  • Ealanrian
  • Registratie: Februari 2009
  • Laatst online: 21:23
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.
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 tabjes :P Die chaos is een soort van nodig voor mij om efficient te kunnen werken :P

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 18-12 12:14

TheNephilim

Wtfuzzle

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.
Hier ook, gewoon af en toe even alle onnodige tabjes sluiten, anders vind je door de bomen het bos niet meer.
Pagina: 1 ... 43 ... 137 Laatste

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.