De Devschuur Coffee Corner - Iteratie ⓬ Vorige deel Overzicht Laatste deel

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

Pagina: 1 ... 30 ... 102 Laatste
Acties:
  • 585.890 views

Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Ach, dat was voor hobby. In een productie-omgeving zou ik het niet zo bouwen, beetje lastig uit te leggen (zeker aan offshore mensen).

We are shaping the future


Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 14:50
Hydra schreef op dinsdag 18 juni 2019 @ 16:19:
[...]
Waarom views (dat zijn ook maar gewoon queries) bouwen in je database als je diezelfde queries gewoon vanuit je code kan doen?
Omdat je dan de abstractie direct vanuit je datamodel kan maken. Dus je hebt een genormaliseerde database volgens bepaalde functionele specs neergezet. Stel dat dat een insert-only historisch database model is. Meestal werk je in je applicatie op het nu. De historie is heel vaak niet nodig. Dan kan je in je applicatie SQL implementeren die het nu selecteert, maar je kan ook views maken die standaard een representatie geven van nu. Diezelfde views kan je ook weer gebruiken om data toe te voegen aan je historie (middels triggers) volgens de verwerking die je als database architect / manager verkiest.

Voordeel van een ORM is dat je je zo min mogelijk hoeft druk te maken over het onderliggende model. Zolang je mapping maar klopt. Door de abstractie naar de database te verplaatsen behoud je dat voordeel bij complexere queries, zodat voor het perspectief van je ORM simpele CRUD actie overblijven.

[ Voor 15% gewijzigd door CurlyMo op 18-06-2019 16:38 ]

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Nu online

RayNbow

Kirika <3

Hydra schreef op dinsdag 18 juni 2019 @ 15:49:
[...]


De eiken buiten 't gebouw hier zitten vol met eikenprocessierups-clusters. Telt dat ook?
Hangt af of je verantwoordelijk bent voor externe bugs. :P

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • +1 Henk 'm!

  • BladeSlayer1000
  • Registratie: April 2013
  • Laatst online: 17-09 20:36
@RayNbow succes met oplossen van de bug

Acties:
  • 0 Henk 'm!

  • Firesphere
  • Registratie: September 2010
  • Laatst online: 03:16

Firesphere

Yoshis before Hoshis

DevWouter schreef op dinsdag 18 juni 2019 @ 10:33:
[...]


Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen

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!


Acties:
  • 0 Henk 'm!

  • Marcj
  • Registratie: November 2000
  • Laatst online: 14:39
Ik loop vandaag en morgen nog rond bij de GOTO Amsterdam conferentie. Zijn er nog meer tweakers die daar rond lopen? Gisteren begon het met Bruce Dickinson als keynote speaker, dat was informatiever dan ik verwacht had.

Acties:
  • 0 Henk 'm!

  • DevWouter
  • Registratie: Februari 2016
  • Laatst online: 14:46

DevWouter

Creator of Todo2d.com

Firesphere schreef op woensdag 19 juni 2019 @ 07:14:
[...]

Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen

"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel


Acties:
  • 0 Henk 'm!

  • rvankruistum
  • Registratie: September 2012
  • Laatst online: 14-07 17:09
Marcj schreef op woensdag 19 juni 2019 @ 07:49:
Ik loop vandaag en morgen nog rond bij de GOTO Amsterdam conferentie. Zijn er nog meer tweakers die daar rond lopen? Gisteren begon het met Bruce Dickinson als keynote speaker, dat was informatiever dan ik verwacht had.
Mijn eerste reactie: "Hey, die heeft precies dezelfde naam als de zanger van Iron Maiden.". Check ik vervolgens de website... |:(

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
CurlyMo schreef op dinsdag 18 juni 2019 @ 16:28:
Voordeel van een ORM is dat je je zo min mogelijk hoeft druk te maken over het onderliggende model. Zolang je mapping maar klopt. Door de abstractie naar de database te verplaatsen behoud je dat voordeel bij complexere queries, zodat voor het perspectief van je ORM simpele CRUD actie overblijven.
Ik ben zeker niet tegen het maken van views (doe het zelf ook meestal; ook een vorm van documentatie) maar dan voegt een ORM weinig meer toe. Je kunt dan een ORM vaak niet eens zelf meer SQL laten bouwen dus je moet de queries op de views vaak al hard-coden. Dan gebruik je de ORM alleen nog maar als row-mapper. En dan gebruik ik liever gewoon een row-mapper.
Marcj schreef op woensdag 19 juni 2019 @ 07:49:
Ik loop vandaag en morgen nog rond bij de GOTO Amsterdam conferentie. Zijn er nog meer tweakers die daar rond lopen? Gisteren begon het met Bruce Dickinson als keynote speaker, dat was informatiever dan ik verwacht had.
Helaas niet. Ik vergeet 'em iedere keer, terwijl 't wel een goeie conferentie is. Laatste keer dat ik er was, was 5 jaar geleden.

[ Voor 24% gewijzigd door Hydra op 19-06-2019 09:27 ]

https://niels.nu


Acties:
  • +1 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 14:50
Hydra schreef op woensdag 19 juni 2019 @ 09:26:
[...]
Dan gebruik je de ORM alleen nog maar als row-mapper. En dan gebruik ik liever gewoon een row-mapper.
Zijn we het op dat punt via een omweg toch eens :)

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • Merethil
  • Registratie: December 2008
  • Laatst online: 09:33
Hydra schreef op woensdag 19 juni 2019 @ 09:26:
[...]


Ik ben zeker niet tegen het maken van views (doe het zelf ook meestal; ook een vorm van documentatie) maar dan voegt een ORM weinig meer toe. Je kunt dan een ORM vaak niet eens zelf meer SQL laten bouwen dus je moet de queries op de views vaak al hard-coden. Dan gebruik je de ORM alleen nog maar als row-mapper. En dan gebruik ik liever gewoon een row-mapper.
Ik gebruik nu Spring Data (JPA/Hibernate) voor queries en die doet dus alles voor mij qua mapping e.d. Welke Rowmapper raad jij aan? Want ik merk dat de rowmapper van Spring gewoon neerkomt op "Map zelf de zaken uit de resultset" terwijl ik nu alles via annotations laat mappen (en dat graag zo houd).
Anders kan ik net zo goed heel Spring JDBC negeren en gewoon zelf queries bouwen met preparedstatements en de resultset zelf afhandelen :P

Edit: Ah ik zie al dat BeanPropertyRowMapper het zelf kan op basis van kolomnamen in de tabel en variabelenamen in je model. Hm. Kwestie van verschil tussen tabelnaam en variabelenaam oplossen met aliassen. Okido.

[ Voor 9% gewijzigd door Merethil op 19-06-2019 09:52 ]


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Merethil schreef op woensdag 19 juni 2019 @ 09:48:
Edit: Ah ik zie al dat BeanPropertyRowMapper het zelf kan op basis van kolomnamen in de tabel en variabelenamen in je model. Hm. Kwestie van verschil tussen tabelnaam en variabelenaam oplossen met aliassen. Okido.
Graag gedaan :P

(Ja die dus)

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Merethil
  • Registratie: December 2008
  • Laatst online: 09:33
Hydra schreef op woensdag 19 juni 2019 @ 10:00:
[...]


Graag gedaan :P

(Ja die dus)
Goed verhaal, lekker kort :+

Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 14:50
Verder geen C specialisten hier die meer kunnen vertellen over Transactional Memory en de implementatie ervan?

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
CurlyMo schreef op woensdag 19 juni 2019 @ 10:08:
Verder geen C specialisten hier die meer kunnen vertellen over Transactional Memory en de implementatie ervan?
@.oisyn zit in de C++ hoek toch? Misschien hij.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 20-09 20:54

Douweegbertje

Wat kinderachtig.. godverdomme

Marcj schreef op woensdag 19 juni 2019 @ 07:49:
Ik loop vandaag en morgen nog rond bij de GOTO Amsterdam conferentie. Zijn er nog meer tweakers die daar rond lopen? Gisteren begon het met Bruce Dickinson als keynote speaker, dat was informatiever dan ik verwacht had.
Nope maar zag er toch wel leuk uit. Ik ben wel op de devops day volgende week: https://devopsdays.org/

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

CurlyMo schreef op woensdag 19 juni 2019 @ 10:08:
Verder geen C specialisten hier die meer kunnen vertellen over Transactional Memory en de implementatie ervan?
Ik heb weleens een STM library in C++ gemaakt om mee te experimenteren, maar nooit iets gedaan met compiler danwel hardware support.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-09 22:17
CurlyMo schreef op woensdag 19 juni 2019 @ 10:08:
Verder geen C specialisten hier die meer kunnen vertellen over Transactional Memory en de implementatie ervan?
Ik ben er nooit mee bezig geweest, maar zonder hardware support (want snelheid) lijkt het me niet veel toevoegen tov een lock/unlock constructie 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.


Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 14:50
farlane schreef op woensdag 19 juni 2019 @ 11:50:
[...]

Ik ben er nooit mee bezig geweest, maar zonder hardware support (want snelheid) lijkt het me niet veel toevoegen tov een lock/unlock constructie eigenlijk.
Mits de aanname klopt van wat ik eerder heb gelezen. Dat zo'n constructie slimmer is aangezien het niet een heel code blok blokkeert, maar alleen dat deel dat mogelijk conflicten oplevert. Zoals het voorbeeld van het invoegen of verwijderen bij een linked list.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

farlane schreef op woensdag 19 juni 2019 @ 11:50:
[...]

Ik ben er nooit mee bezig geweest, maar zonder hardware support (want snelheid) lijkt het me niet veel toevoegen tov een lock/unlock constructie eigenlijk.
Het hangt heel erg van de situatie af. Transactional operaties zijn veel finer grained dan locks, dus er zijn zeker cases waar transactions geen contention hebben, terwijl een lock dat typisch wel heeft. Heb je daarentegen gewoon erg veel contention op dezelfde data, dan wint het idd niet van locks. Bovendien heb je geen last van de nadelen van locks, zoals deadlocks.

[ Voor 5% gewijzigd door .oisyn op 19-06-2019 12:47 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • kwaakvaak_v2
  • Registratie: Juni 2009
  • Laatst online: 02-06 12:29
Marcj schreef op woensdag 19 juni 2019 @ 07:49:
Ik loop vandaag en morgen nog rond bij de GOTO Amsterdam conferentie. Zijn er nog meer tweakers die daar rond lopen? Gisteren begon het met Bruce Dickinson als keynote speaker, dat was informatiever dan ik verwacht had.
De beste man is naast zanger best wel een bezig bijtje. Meerdere bedrijven, pragmatisch en gedreven in bijna alles wat hij doet. En ook best wel een tikkie egocentrisch, maar dat moet je denk ik ook wel zijn om zo ver te komen in het leven.

Enige waar hij juist op papier het minste over te zeggen heeft is de band, want daar zwaait Steve Harris de scepter over.

Driving a cadillac in a fool's parade.


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-09 22:17
.oisyn schreef op woensdag 19 juni 2019 @ 12:45:
[...]
Het hangt heel erg van de situatie af. Transactional operaties zijn veel finer grained dan locks, dus er zijn zeker cases waar transactions geen contention hebben, terwijl een lock dat typisch wel heeft. Heb je daarentegen gewoon erg veel contention op dezelfde data, dan wint het idd niet van locks. Bovendien heb je geen last van de nadelen van locks, zoals deadlocks.
Okay, daar kan ik inkomen. Ik vraag me wel af hoeveel complexiteit (ik denk aan caches bijvoorbeeld) en resources (in feite het je een kopie van alle data in elke transactie nodig) het toevoegt/nodig heeft om lekker te functioneren...

Zijn er ueberhaupt werkende implementaties (hardware danwel software) die gebruikt worden?

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.


Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 14:50
Ander (C) probleem waar ik tegenaan loop. Ik probeer een associatieve array te implementeren in de context van een C - Lua interface. In Lua heten die dingen metatables. Een van de eigenschappen hiervan is dat je keys moet kunnen verwijderen. Oftewel:

Pseudo code:
code:
1
2
3
4
5
array[1][1][1] = 1
array[1][1][2] = 2;
array[1][1][3] = 3;
array[1][2] = 2;
delete array[1][1];

In dit geval wordt de hele geneste structuur array[1][1] verwijderd. In een single threaded applicatie werkt dat prima.

Nu heb ik alleen de situatie dat meerdere threads dezelfde array proberen te bewerken. Stel nu dat meerdere threads exact het stukje pseudo code van hierboven proberen uit te voeren. Er komt een moment dat zodra thread 1 de delete uitvoer thread 2 probeert array[1][1][2] op 2 te zetten. Op een of andere manier moet thread 2 wachten totdat de delete klaar is of thread 1 weten dat dat stukje in de array toch nog in gebruik is.

Hoe implementeer je nu zoiets robuust? Ik zit de hele avond te stoeien, maar kom er niet goed uit.

TDLR: Hoe bouw je een atomic hash table?

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • +2 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21-09 21:47

Creepy

Tactical Espionage Splatterer

Klinkt als een post die direct als topicstart kan dienen. Maak je zelf even een nieuw topic aan?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 14:00
farlane schreef op woensdag 19 juni 2019 @ 21:18:
[...]

Okay, daar kan ik inkomen. Ik vraag me wel af hoeveel complexiteit (ik denk aan caches bijvoorbeeld) en resources (in feite het je een kopie van alle data in elke transactie nodig) het toevoegt/nodig heeft om lekker te functioneren...

Zijn er ueberhaupt werkende implementaties (hardware danwel software) die gebruikt worden?
Het probleem van STM is dat er veel problemen zijn. Hoe ga je om met een rollback? Je zou dan geen functies kunnen aanroepen in het TM block, of je moet met annotaties gaan werken. I/O kan sowieso niet teruggedraaid worden, dus die kun je dan ook niet gebruiken in TM. Hoe weet de compiler dat?

En het belangrijkste waarom het niet in de meeste compilers zit: C++ is een zero-overhead language. Als je met de hand een betere (presterende) code kunt schrijven dat wat het STM blok doet, is het een nutteloze abstractie. Waarom zit het er dan in als language feature? En zoals Herb dat zegt: Dan is het geen C++, maar Java.

STM is leuk voor MCAS datastructuren, en geen zeker vervanging voor alle locks.

Dit zijn deels de redenen waarom Clang geen TM heeft. Je kunt wel de GNU implementatie aanzetten in Clang, maar die is gebrekkig. De third-party libraries die er zijn lossen bovengenoemde problemen ook niet op.

Acties:
  • 0 Henk 'm!

  • Marc3l
  • Registratie: December 2005
  • Laatst online: 14:18
*snip*
* RobIII wijst naar de topicwarning. Open even een topic per onze Quickstart ;)

[ Voor 85% gewijzigd door RobIII op 20-06-2019 15:09 ]


Acties:
  • 0 Henk 'm!

  • MichielPH
  • Registratie: Februari 2005
  • Laatst online: 14-07-2024
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen

Acties:
  • 0 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 06:55
MichielPH schreef op maandag 24 juni 2019 @ 15:10:
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen

"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra


Acties:
  • 0 Henk 'm!

  • MichielPH
  • Registratie: Februari 2005
  • Laatst online: 14-07-2024
Mugwump schreef op maandag 24 juni 2019 @ 15:40:
[...]


Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen

Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 14:00
Mugwump schreef op maandag 24 juni 2019 @ 15:40:
[...]


Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

MichielPH schreef op maandag 24 juni 2019 @ 15:47:
[...]
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen


.edit: lol. clear:both for the lose :z

[ Voor 14% gewijzigd door .oisyn op 24-06-2019 16:30 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • MichielPH
  • Registratie: Februari 2005
  • Laatst online: 14-07-2024
.oisyn schreef op maandag 24 juni 2019 @ 16:17:
[...]


Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen


.edit: lol. clear:both for the lose :z
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen

Acties:
  • 0 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 06:55
MichielPH schreef op maandag 24 juni 2019 @ 17:11:
[...]
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen

"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra


Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 20-09 20:54

Douweegbertje

Wat kinderachtig.. godverdomme

MichielPH schreef op maandag 24 juni 2019 @ 15:10:
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen

Acties:
  • +1 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
Oftewel die gast heeft een onduidelijke opdracht gekregen :+
Wie geeft er nou floats door als de vraag over het restgetal van een deling van ints gaat. Wel precies zij he ;-)

[ Voor 17% gewijzigd door armageddon_2k1 op 24-06-2019 21:01 ]

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • +1 Henk 'm!

  • MichielPH
  • Registratie: Februari 2005
  • Laatst online: 14-07-2024
MichielPH schreef op maandag 24 juni 2019 @ 15:10:
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen
Douweegbertje schreef op maandag 24 juni 2019 @ 20:45:
[...]


Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen

Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 22-09 23:00
MichielPH schreef op maandag 24 juni 2019 @ 21:21:
[...]

Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen
Neh dat laatste is overduidelijk een gevalletje van een premature optimalisatie :+
(bij de grote code-klop-clubs, moet je neem ik toch aan, wel wat optimalisaties achter de hand houden om nog lekker lang wat billable hours er tegen aan te kunnen gooien.)

Acties:
  • +1 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Met extra duiding wordt het verhaal niet echt beter. Goh, summen met minder boilerplate (subjectief) en kennis van de modulo operatie, whoopie.
Andersom wil jij misschien ook niet dat de opdrachten letterlijk op internet komen (anders zou je deze hopelijk ook beter verwoord hebben). Dus de antwoorden dan ook maar niet.

Ja, het zou een bron van al dan niet bijzondere/originele/gekke/slechte codevoorbeelden kunnen zijn maar eigenlijk kan je er niets mee. Helaas pindakaas, laat ‘t maar lekker iets tussen jou en een sollicitant.

[ Voor 3% gewijzigd door Voutloos op 24-06-2019 23:04 ]

{signature}


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
gekkie schreef op maandag 24 juni 2019 @ 22:32:
[...]

(bij de grote code-klop-clubs, moet je neem ik toch aan, wel wat optimalisaties achter de hand houden om nog lekker lang wat billable hours er tegen aan te kunnen gooien.)
Als het een fixed price-project is? Vergeet het maar. Bij Fixed Price betaalt de klant niet meer dan wat is afgesproken.

Als je meer nodig hebt moet je met hangende pootjes naar de klant, en hopen dat je een goed verhaal hebt (bijvoorbeeld: significant meerwerk door een onverwachte API-wijziging). Maar het kan ook zijn dat de klant zegt "Nee, dit is het en ik verwacht dat je levert conform afspraak."

Bij Time and Material (T&M) wordt er inderdaad gewerkt met billable hours, maar dat is geen vrijbrief om maar wat aan te prutsen. Een klant wil -in de regel- verantwoording zien voor de gemaakte uren en zal niet zomaar blijven betalen. Als je een beetje pech hebt schakelen ze een derde partij in om het geleverde werk te reviewen. Als die dan een rapport oplevert waarin staat dat er slordig werk is opgeleverd, slaat de klant je daarmee om je oren. Voor jou 3 anderen hoor :)

Dat wil niet zeggen dat elke onhandigheid of slordigheid je meteen problemen kan opleveren. Als er een nette oplossing wordt opgeleverd, maar er zitten een paar regels code in zoals hierboven getoond, dan is dat te vergeven. Als het project echter al 3 maanden achterloopt op schema en uit een review blijkt dat het lasagne-met-gehaktballencode is dan kun je een moeilijk gesprek verwachten.

[ Voor 14% gewijzigd door Alex) op 24-06-2019 23:18 ]

We are shaping the future


Acties:
  • +1 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 22-09 23:00
Alex) schreef op maandag 24 juni 2019 @ 23:15:
[...]

Als het een fixed price-project is? Vergeet het maar. Bij Fixed Price betaalt de klant niet meer dan wat is afgesproken.

Als je meer nodig hebt moet je met hangende pootjes naar de klant, en hopen dat je een goed verhaal hebt (bijvoorbeeld: significant meerwerk door een onverwachte API-wijziging). Maar het kan ook zijn dat de klant zegt "Nee, dit is het en ik verwacht dat je levert conform afspraak."

Bij Time and Material (T&M) wordt er inderdaad gewerkt met billable hours, maar dat is geen vrijbrief om maar wat aan te prutsen. Een klant wil -in de regel- verantwoording zien voor de gemaakte uren en zal niet zomaar blijven betalen. Als je een beetje pech hebt schakelen ze een derde partij in om het geleverde werk te reviewen. Als die dan een rapport oplevert waarin staat dat er slordig werk is opgeleverd, slaat de klant je daarmee om je oren. Voor jou 3 anderen hoor :)

Dat wil niet zeggen dat elke onhandigheid of slordigheid je meteen problemen kan opleveren. Als er een nette oplossing wordt opgeleverd, maar er zitten een paar regels code in zoals hierboven getoond, dan is dat te vergeven. Als het project echter al 3 maanden achterloopt op schema en uit een review blijkt dat het lasagne-met-gehaktballencode is dan kun je een moeilijk gesprek verwachten.
yeah yeah, niet alles is een overheidsproject dat is waar ... maar dat is meer curry-in-a-hurry dan italiaansekeuken bij mijn weten ;)

Acties:
  • +1 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 06:55
Voutloos schreef op maandag 24 juni 2019 @ 23:03:
Met extra duiding wordt het verhaal niet echt beter. Goh, summen met minder boilerplate (subjectief) en kennis van de modulo operatie, whoopie.
Andersom wil jij misschien ook niet dat de opdrachten letterlijk op internet komen (anders zou je deze hopelijk ook beter verwoord hebben). Dus de antwoorden dan ook maar niet.

Ja, het zou een bron van al dan niet bijzondere/originele/gekke/slechte codevoorbeelden kunnen zijn maar eigenlijk kan je er niets mee. Helaas pindakaas, laat ‘t maar lekker iets tussen jou en een sollicitant.
Ik ben ook geen fan van sollicitanten afrekenen op één zo'n opdrachtje. Zenuwen of een kleine blackout kunnen er toe leiden dat iemand het gewoon even niet ziet. Laat bij dit soort opdrachtjes in ieder geval de sollicitant uitleg geven bij wat hij of zij heeft proberen te doen. Waarom maakt de kandidaat bepaalde keuzes en wat zijn de overwogen opties?

Ik doe regelmatig code reviews bij collega's waar ik vreemde dingen zie en dan vind ik het ergste nog dat de vraag waarom een bepaalde implementatie is gekozen en welke afwegingen er gemaakt zijn wordt beantwoord met "oh dat heb ik uit een ander project geknipt en geplakt'.

"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 22-09 23:00
Zou misschien ook schelen als je wel gebruik kunt maken van de language / lib docs.
Soort van openboek tentamen dus, in mijn ogen over het algemeen de betere tentamens.

Als je in dit geval nog nooit wat met de remainder hebt gedaan (ok kans is in dit geval niet heel groot, meestal ben je wel eens een situatie tegen gekomen om iets evens en onevens aan te geven maar goed), kan ik me voorstellen dat je het wel snel in documentatie gevonden zou kunnen hebben.

En dat laatste zou je ook als kwaliteit kunnen beschouwen.

Acties:
  • 0 Henk 'm!

  • BertS
  • Registratie: September 2004
  • Laatst online: 14-04 17:14
Voutloos schreef op maandag 24 juni 2019 @ 23:03:
Met extra duiding wordt het verhaal niet echt beter. Goh, summen met minder boilerplate (subjectief) en kennis van de modulo operatie, whoopie.
Een string-operatie gebruiken om een rekenkundige bewerking uit te voeren vind ik anders best een relevante factor om mee te nemen bij de beoordeling.

Acties:
  • 0 Henk 'm!

  • Gropah
  • Registratie: December 2007
  • Niet online

Gropah

Admin Softe Goederen

Oompa-Loompa 💩

Ben wel benieuwd jullie dan wel als goede sollicitatie (opdracht) beschouwen voor een progarmmeerpositie. Ik zit niet vaak in de positie om zo'n gesprek af te nemen, maar merk wel dat ik het moeilijk vind om wat goeds te vinden.

Ik ben zelf eigenlijk nooit formeel op sollicitatie geweest voor een developerpositie. Via een vriend heb ik we een voorbeeld gekregen van vragen die zij stellen bij een sollicitatie:

Je hebt een kubus van 10 bij 10 bij 10 steentjes van 1 bij 1 bij 1cm. Hoeveel steentjes zitten er aan de buitenkant? Neem ons door je denkproces, leg alles uit en hier heb je een pak papier

Het gaat dus niet echt om programmeren maar meer om je denkproces. Je ziet hier wel verschil in, hoe mensen het aanpakken en hoe ze met hints omgaan. Maar dit is echt iets heel basaals en is vaak binnen 10 minuten wel volledig doorsproken.

Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Gropah schreef op dinsdag 25 juni 2019 @ 11:36:
Ben wel benieuwd jullie dan wel als goede sollicitatie (opdracht) beschouwen voor een progarmmeerpositie.
Een praktische opdracht die past bij de functie.

Een web developer zou ik een simpele web api laten bouwen, een frontend ervoor bouwen, database modelleren etc.

Dan zie je wat iemand voor werkervaring meeneemt als je kijkt naar wat hij of zij zelf erbij betrekt (qua security, performance, schaalbaarheid, testbaarheid etc).

Een opdracht over een kubus is leuk (ik begin al te puzzelen :+ ), maar zegt zo weinig over iemand zijn toepasbare kennis.

PS
Er zit een wetmatigheid in het aantal steentjes.

2 vlakken zijn volledig, 10x10
2 vlakken missen de randen, 8x10
2 vlakken missen de randen rondom, 8x8

Dus 2 x (100 + 80 + 64) = 488 steentjes.

Een eenvoudiger alternatief is substractie. 10^3 - 8^3 = 1000 - 512 = 488.

[ Voor 19% gewijzigd door Lethalis op 25-06-2019 12:01 ]

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 14:00
Lethalis schreef op dinsdag 25 juni 2019 @ 11:53:
[...]

Een praktische opdracht die past bij de functie.

Een web developer zou ik een simpele web api laten bouwen, een frontend ervoor bouwen, database modelleren etc.

Dan zie je wat iemand voor werkervaring meeneemt als je kijkt naar wat hij of zij zelf erbij betrekt (qua security, performance, schaalbaarheid, testbaarheid etc).

Een opdracht over een kubus is leuk (ik begin al te puzzelen :+ ), maar zegt zo weinig over iemand zijn toepasbare kennis.
Dan moet je iemand al een basis geven, want anders gaat dat niet lukken. Of het gaat te veel tijd kosten. Misschien heeft die persoon geen ervaring met de desbetreffende framework en libraries, waardoor het weer lastiger wordt.

Wij vragen altijd of ze zelf iets kunnen laten zien voor zover mogelijk, en dan stellen we daar een paar vragen over. Bijvoorbeeld waarom ze bepaalde keuzes hebben gemaakt, dan pik je de bullshitters er vaak snel uit.

Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
ThomasG schreef op dinsdag 25 juni 2019 @ 11:59:
[...]
Wij vragen altijd of ze zelf iets kunnen laten zien voor zover mogelijk, en dan stellen we daar een paar vragen over. Bijvoorbeeld waarom ze bepaalde keuzes hebben gemaakt, dan pik je de bullshitters er vaak snel uit.
Dat werkt ook natuurlijk.

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 22-09 23:00
Gropah schreef op dinsdag 25 juni 2019 @ 11:36:
Ben wel benieuwd jullie dan wel als goede sollicitatie (opdracht) beschouwen voor een progarmmeerpositie. Ik zit niet vaak in de positie om zo'n gesprek af te nemen, maar merk wel dat ik het moeilijk vind om wat goeds te vinden.

Ik ben zelf eigenlijk nooit formeel op sollicitatie geweest voor een developerpositie. Via een vriend heb ik we een voorbeeld gekregen van vragen die zij stellen bij een sollicitatie:

Je hebt een kubus van 10 bij 10 bij 10 steentjes van 1 bij 1 bij 1cm. Hoeveel steentjes zitten er aan de buitenkant? Neem ons door je denkproces, leg alles uit en hier heb je een pak papier

Het gaat dus niet echt om programmeren maar meer om je denkproces. Je ziet hier wel verschil in, hoe mensen het aanpakken en hoe ze met hints omgaan. Maar dit is echt iets heel basaals en is vaak binnen 10 minuten wel volledig doorsproken.
Eens kijken:
- hoekposities van 1 steentje per hoek, 8 hoekposities in totaal = 8 steentjes
- ribben van (10 - 2) = 8 steentjes per rib, 4 + 4 + 4 = 12 ribben in totaal = 96 steentjes
- "binnen"vlakken van 8 bij 8 steentjes = 64 steentjes per vlak, 6 vlakken in totaal = 384
totaal: 488 steentjes.

Acties:
  • +1 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
gekkie schreef op dinsdag 25 juni 2019 @ 12:06:
[...]


Eens kijken:
- hoekposities van 1 steentje per hoek, 8 hoekposities in totaal = 8 steentjes
- ribben van (10 - 2) = 8 steentjes per rib, 4 + 4 + 4 = 12 ribben in totaal = 96 steentjes
- "binnen"vlakken van 8 bij 8 steentjes = 64 steentjes per vlak, 6 vlakken in totaal = 384
totaal: 488 steentjes.
Het is makkelijker om een kubus van 8x8x8 af te trekken van de volledige van 10x10x10 :)

Maar dat bedacht ik ook pas later _O-

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • Gropah
  • Registratie: December 2007
  • Niet online

Gropah

Admin Softe Goederen

Oompa-Loompa 💩

Lethalis schreef op dinsdag 25 juni 2019 @ 11:53:
[...]

Een praktische opdracht die past bij de functie.

Een web developer zou ik een simpele web api laten bouwen, een frontend ervoor bouwen, database modelleren etc.

Dan zie je wat iemand voor werkervaring meeneemt als je kijkt naar wat hij of zij zelf erbij betrekt (qua security, performance, schaalbaarheid, testbaarheid etc).
[...]
Ik snap het idee, maar:

- Het word dan echt een opdracht waar iemand wat tijd voor moet vrijmaken/hebben
- Aangenomen dat er niets als basis word gegeven, weet je niet of iemand dan ook lekker kan werken binnen het framework wat je op het werk hebt
ThomasG schreef op dinsdag 25 juni 2019 @ 11:59:
[...]

Wij vragen altijd of ze zelf iets kunnen laten zien voor zover mogelijk, en dan stellen we daar een paar vragen over. Bijvoorbeeld waarom ze bepaalde keuzes hebben gemaakt, dan pik je de bullshitters er vaak snel uit.
Zit wat in, maar dan ben je wel heel erg aan het leunen op de cultuur dat developers in hun vrije tijd ook met programmeren bezig moeten zijn. En dat is iets wat ik persoonlijk niet zou willen aanwakkeren of vanuit zou willen gaan.
gekkie schreef op dinsdag 25 juni 2019 @ 12:06:
[...]


Eens kijken:
- hoekposities van 1 steentje per hoek, 8 hoekposities in totaal = 8 steentjes
- ribben van (10 - 2) = 8 steentjes per rib, 4 + 4 + 4 = 12 ribben in totaal = 96 steentjes
- "binnen"vlakken van 8 bij 8 steentjes = 64 steentjes per vlak, 6 vlakken in totaal = 384
totaal: 488 steentjes.
Dat is inderdaad het antwoord. De volgende stap zou zijn om het generieker te maken voor een kubus van N bij N bij N. Daarna de vraag of ze die formule kunnen versimpelen, om te kijken of ze uiteindelijk op dit kunnen komen:
Lethalis schreef op dinsdag 25 juni 2019 @ 12:07:
[...]

Het is makkelijker om een kubus van 8x8x8 af te trekken van de volledige van 10x10x10 :)

Maar dat bedacht ik ook pas later _O-

Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 22-09 23:00
Lethalis schreef op dinsdag 25 juni 2019 @ 12:07:
[...]

Het is makkelijker om een kubus van 8x8x8 af te trekken van de volledige van 10x10x10 :)

Maar dat bedacht ik ook pas later _O-
klopt, maar goed ze willen toch een beetje systematische uitleg ?
Zullen ze het krijgen ook :p, wederom ook hier, premature optimalisatie :+

Overigens wel gek, doe het eigenlijk regelmatig met solid-modelling, kubusjes van elkaar aftrekken, toch niet de eerste gedachte, eerst maar systematisch opbouwen ipv de simpelste oplossing kiezen.

[ Voor 20% gewijzigd door gekkie op 25-06-2019 12:36 ]


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-09 22:17
gekkie schreef op dinsdag 25 juni 2019 @ 12:26:
[...]
klopt, maar goed ze willen toch een beetje systematische uitleg ?
Alle steentjes minus steentjes die *niet* aan de buitenkant liggen. Best systematisch.

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.


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 22-09 23:00
Misschien had het geholpen als ./configure wel gewoon de include voor de Math Kernel Library had gevonden. Grmbl puinzooi ook altijd met dingen die van bepaalde paden uitgaan. Om van CUDA nog maar niet te spreken, dat eet dan g++-8 weer niet ... pffrrrt je zou er hittestress van krijgen.

Misschien maar gewoon compieleren van maken ipv compileren.

[ Voor 33% gewijzigd door gekkie op 25-06-2019 12:41 ]


Acties:
  • +1 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

gekkie schreef op dinsdag 25 juni 2019 @ 12:26:
[...]

klopt, maar goed ze willen toch een beetje systematische uitleg ?
Als iemand met een dergelijk antwoord komt dan zijn dat gewoon bonuspunten. Een hele elegante oplossing voor wat er gevraagd is, waar je meestal niet direct aan denkt. Soort out of the box denken, maar dan inside the box :+

Ik zat zelf te denken aan 6*10x10 - 12*10 + 8.

6 vlakken van 10x10. Maar dan tel je de edges dubbel, dus 12 edges van 10 blokjes eraf. Maar dan haal je er per hoekpunt weer een teveel af, dus 8 hoekpunten er weer bij.

In het generieke geval dus: 6n2 - 12n + 8.

Met de andere oplossing: n3 - (n-2)3
= n3 - (n - 2)(n2 - 4n + 4)
= n3 - ((n3 - 4n2 + 4n) - (2n2 - 8n + 8))
= n3 - (n3 - 4n2 + 4n - 2n2 + 8n - 8)
= n3 - (n3 - 6n2 + 12n - 8)
= n3 - n3 + 6n2 - 12n + 8
= 6n2 - 12n + 8

QED :)

[ Voor 48% gewijzigd door .oisyn op 25-06-2019 12:54 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 22-09 23:00
.oisyn schreef op dinsdag 25 juni 2019 @ 12:42:
[...]
Als iemand met een dergelijk antwoord komt dan zijn dat gewoon bonuspunten. Een hele elegante oplossing voor wat er gevraagd is, waar je meestal niet direct aan denkt. Soort out of the box denken, maar dan inside the box :+
Klopt.
Ik zat zelf te denken aan 6*10x10 - 12*10 + 8.

6 vlakken van 10x10. Maar dan tel je de edges dubbel, dus 12 edges van 10 blokjes eraf. Maar dan haal je er per hoekpunt weer een teveel af, dus 8 hoekpunten er weer bij.
Interessante mengeling van additie en subtractie :)
Vele wegen die naar Rome leiden ...

Acties:
  • +1 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Vul eens 1 in ;)

Gaat bij mij natuurlijk ook fout, maar je mag het bereik van een domein nooit vergeten.

Dus volgende stappen zijn alle input kleiner dan 0 niet accepteren, en een if statement voor de 0 en 1 situatie.

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Doet er niet toe, gevraagd werd op een kubus van 10 groot. De generalisatie naar n deed ik om te bewijzen dat hij overeenkwam met de andere oplossing, en niet alleen toevallig bij n=10 :)

[ Voor 6% gewijzigd door .oisyn op 25-06-2019 13:12 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 22-09 23:00
.oisyn schreef op dinsdag 25 juni 2019 @ 13:11:
[...]

Doet er niet toe, gevraagd werd op een kubus van 10 groot. De generalisatie naar n deed ik om te bewijzen dat hij overeenkwam met de andere oplossing, en niet alleen toevallig bij n=10 :)
Maar de generalisatie is dus alleen maar geldig als de generaal geen andere dingen zit te doen in het kleinste hokje. Kortom het stinkt }:O

Acties:
  • 0 Henk 'm!

  • Gropah
  • Registratie: December 2007
  • Niet online

Gropah

Admin Softe Goederen

Oompa-Loompa 💩

gekkie schreef op dinsdag 25 juni 2019 @ 13:13:
[...]

Maar de generalisatie is dus alleen maar geldig als de generaal geen andere dingen zit te doen in het kleinste hokje. Kortom het stinkt }:O
Geef mij maar eens een generieke oplossing die werkt voor n=1 of n=2, ben erg benieuwd.

Overigens is de oplossing die .oisyn gaf met de vlakken - ribben + hoeken ook de oplossing die ik zelf als eerste had.

Maar goed, de vraag was dus: als niet dit soort dingen, wat dan wel? En nu het toch over dit soort vraagstukken gaat: zijn er nog mensen die meer van dit soort dingetjes weten? Vind ze zelf wel grappig en kunnen handig zijn om te weten voor sollicitaties :P

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

gekkie schreef op dinsdag 25 juni 2019 @ 13:13:
[...]

Maar de generalisatie is dus alleen maar geldig als de generaal geen andere dingen zit te doen in het kleinste hokje
We namen aan dat de n3 - (n-2)3 correct was. Mijn oplossing geeft exact dezelfde output als die oplossing. Het domein komt dus automatisch ook overeen met die oplossing.

Maar goed, zelfde bijdehandmodus dan:
Lethalis schreef op dinsdag 25 juni 2019 @ 13:05:
Dus volgende stappen zijn alle input kleiner dan 0 niet accepteren, en een if statement voor de 0 en 1 situatie.
En wat als n=√5? Of n=34+5i? ;)

[ Voor 26% gewijzigd door .oisyn op 25-06-2019 13:31 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 22-09 23:00
Gropah schreef op dinsdag 25 juni 2019 @ 13:17:
[...]
Geef mij maar eens een generieke oplossing die werkt voor n=1 of n=2, ben erg benieuwd.
Maar dan is er toch geen generalisatie mogelijk zonder ook de grenzen aan generieke oplossing te geven (en de uitzonderingsgevallen eventueel los te definieren in dit geval), zoals iemand eerder al aangaf ?
Overigens is de oplossing die .oisyn gaf met de vlakken - ribben + hoeken ook de oplossing die ik zelf als eerste had.
Ook eentje die ik als eerste overwogen heb, maar toch maar gekozen voor volledig opbouwen / addities ipv een mengeling met subtracties.
Maar goed, de vraag was dus: als niet dit soort dingen, wat dan wel? En nu het toch over dit soort vraagstukken gaat: zijn er nog mensen die meer van dit soort dingetjes weten? Vind ze zelf wel grappig en kunnen handig zijn om te weten voor sollicitaties :P
Op zich een mengeling kan geen kwaad, dit test wat (ruimtelijk)inzicht en eventueel decomposen van je probleem in hapbare brokken. Stukje waarbij je wel syntax en taalkennis test hoeft ook niet per se verkeerd te zijn zoals het remainder probleem in feite was. Bij de gekozen oplossing zou doorvragen op het waarom van de oplossing misschien naar voren hebben gebracht dat deze oplossing gekozen is omdat men niet zeker wist of en hoe er een remainder functies is in die taal (sommatie idem dito). Afhankelijk van het gewenste niveau van de kandidaat.
Basic tooling is misschien ook nog wel iets om aan te stippen.
Als er gewerkt moet worden met (SQL) databases, daar wat vragen over, optimalisatie van een query ?
Er lijkt me op zich genoeg te verzinnen, al blijft het belangrijkste het waarom van de gekozen oplossing.

Vraag is ook of en hoeveel je parate kennis wilt testen en hoeveel op inzicht en het kunnen vergaren en interpreteren van de benodigde kennis op dat moment.

En als je bij de TU/e in de sollicitatiecommissie zit is het makkelijk .. to be V or not to be V.
.oisyn schreef op dinsdag 25 juni 2019 @ 13:29:
[...]
We namen aan dat de n3 - (n-2)3 correct was. Mijn oplossing geeft exact dezelfde output als die oplossing. Het domein komt dus automatisch ook overeen met die oplossing.
Owhhh maar dan heb ik nog een veel kortere en eenvoudigere generieke oplossing voor dat domein:
488. :+

Maar goed misschien zijn we nu alle sollicitatie-bonus-punten wel weer aan het verspelen als muggeziftende autisten.

[ Voor 13% gewijzigd door gekkie op 25-06-2019 13:40 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

gekkie schreef op dinsdag 25 juni 2019 @ 13:36:
Owhhh maar dan heb ik nog een veel kortere en eenvoudigere generieke oplossing voor dat domein:
488. :+
Maar het domein was niet n=10.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • +1 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
.oisyn schreef op dinsdag 25 juni 2019 @ 13:29:
[...]
En wat als n=√5? Of n=34+5i? ;)
Ik blijf het als een programmeur zien, dus wanneer je alleen een unsigned integer als input accepteert, hoef je ook alleen de 0 en 1 situatie af te vangen :)

Uiteindelijk wil je correcte code. Dus het is niet eens zo bijdehand bedoeld van mij :P

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Lethalis schreef op dinsdag 25 juni 2019 @ 13:42:
[...]

Ik blijf het als een programmeur zien, dus wanneer je alleen een unsigned integer als input accepteert
Brrr, unsigned ints voor generieke getallen...

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
.oisyn schreef op dinsdag 25 juni 2019 @ 14:04:
[...]

Brrr, unsigned ints voor generieke getallen...
Kan ik begrijpen, de afweging:

1. uint dwingt positief getal af, maar heeft als nadeel dat het een veel hogere waarde kan hebben dan een int (met risico op overflow ergens anders in de code).

2. int gebruiken kan ook, als je een ArgumentException geeft bij een negatief getal (al dan niet met behulp van een framework).

3.De overdreven oplossing kan een custom type zijn.

Choose your poison :) Optie 2 is wellicht de veiligste.

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Lethalis schreef op dinsdag 25 juni 2019 @ 14:12:
[...]

Kan ik begrijpen, de afweging:

1. uint dwingt positief getal af.
Maar dat is ook maar een arbitraire regel die in de verste verte niet opweegt tegen de problemen die je krijgt met het mixen van ints en uints in code. Je zult hoe dan ook je domein af moeten dekken. Als je bijvoorbeeld de n3 - (n-2)3 oplossing pakt mag n ook niet groter zijn dan 1290 bij een 32 bits signed int (al blijft het bij two's complement op zich wel lang goed gaan). Het testen op 0 is nauwelijks extra moeite :)

[ Voor 5% gewijzigd door .oisyn op 25-06-2019 14:20 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 14:00
Gropah schreef op dinsdag 25 juni 2019 @ 13:17:
[...]


Geef mij maar eens een generieke oplossing die werkt voor n=1 of n=2, ben erg benieuwd.
Een generieke formule die werkt voor n=1 of n=2, is er niet. Als je er een sequence van maakt is de 2nd difference steeds een stap van 12, behalve bij n=1 en n=2 (19 tussen 1 en 2, 8 tussen 2 en 3). Zonder check daarop gaat het dus niet werken.

Een hele crappy pseudo-recursieve functie die daar gebruikt van maakt :+
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
let fn = (n) => {
    if (n == 1) {
        return 1;
    }
    else if (n == 2) {
        return 4;
    }
    else if (n == 3) {
        return 26;
    }
    // return 30 + 12 * (n - 4) + fn(n - 1);
    // edit:
    return (12 * n - 18) + fn(n - 1);
}
Speciale cases voor 1 en 2 en x^3-x(-2)^3 is waarschijnlijk gewoon de efficiëntste manier.

Edit: domme fout, n=2 is natuurlijk 8.
JavaScript:
1
2
3
4
5
6
7
8
9
fn = (n) => {
    if (n == 1) {
        return 1;
    }
    else if (n == 2) {
        return 8;
    }
    return (12 * n - 18) + fn(n - 1);
}

[ Voor 13% gewijzigd door ThomasG op 25-06-2019 15:09 ]


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Gropah schreef op dinsdag 25 juni 2019 @ 11:36:
Het gaat dus niet echt om programmeren maar meer om je denkproces. Je ziet hier wel verschil in, hoe mensen het aanpakken en hoe ze met hints omgaan. Maar dit is echt iets heel basaals en is vaak binnen 10 minuten wel volledig doorsproken.
Komt nog eens bij dat dit een vrij 'standaard' vraag is, en je er dus, als je hem vaker gehad hebt, heel snel doorheen bent. Het is de som van de lengte van de ribben en het oppervlak tussen die ribben. En dat weet ik dan omdat 't toevallig terugkwam in de Advent of Code deze winter ;)

https://niels.nu


Acties:
  • +1 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 06:55
ThomasG schreef op dinsdag 25 juni 2019 @ 14:40:
[...]
Een generieke formule die werkt voor n=1 of n=2, is er niet. Als je er een sequence van maakt is de 2nd difference steeds een stap van 12, behalve bij n=1 en n=2 (19 tussen 1 en 2, 8 tussen 2 en 3). Zonder check daarop gaat het dus niet werken.

Een hele crappy pseudo-recursieve functie die daar gebruikt van maakt :+
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
let fn = (n) => {
    if (n == 1) {
        return 1;
    }
    else if (n == 2) {
        return 4;
    }
    else if (n == 3) {
        return 26;
    }
    return 30 + 12 * (n - 4) + fn(n - 1);
}
Speciale cases voor 1 en 2 en x^3-x(-2)^3 is waarschijnlijk gewoon de efficiëntste manier.
2 *n2 + 2 * ((n-2) *n) + 2 * ((n-2) * (n-2)) werkt ook gewoon voor n=2.
Die formule is gebaseerd op het idee dat je het in drie stappen bepaalt. De twee zijkanten zijn dan n*n. Daarna de voor en achterkant 'zonder de zijkanten' (dus 2 keer n * (n-2)). dan de boven en onderkant zonder zijkanten en voor- en achterkant, dus 2 keer (n-2)*(n-2).

Volgens mij ontkom je voor 1 niet aan een special case, al heb ik er ook niet heel diep over nagedacht. :P

"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 11:11

F.West98

Alweer 16 jaar hier

n3 - (n-2)3 werkt toch ook gewoon voor n=2?
n=2: 23 - (0)3 = 8

[ Voor 3% gewijzigd door F.West98 op 25-06-2019 16:48 ]

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


Acties:
  • +2 Henk 'm!

  • EddoH
  • Registratie: Maart 2009
  • Niet online

EddoH

Backpfeifengesicht

Toch zie ik persoonlijk niet zo het nut van 'wiskundige' puzzeltjes in bij het zoeken naar een goede programmeur. Natuurlijk als je in een specifieke industrie of domein zit kan het toegevoegde waarde hebben, maar ik ken genoeg slimme mensen die een zootje van hun code maken en ook niet makkelijk inzien hoe het beter kan.
Programmeren is niet alleen systematisch denken of slimme algoritmes verzinnen. Het heeft naar mijn mening ook een creatieve kant.

Structureren, ordenen, het grote plaatje zien, zinnige interfaces bedenken, interactie tussen componenten modelleren, documenteren, handigheid met diverse tools, zelfinzicht, omgaan met feedback, omgaan met teamleden, datastructuren, goede tests schrijven, documentatie lezen, jezelf willen verbeteren, communiceren en ga zo maar door. Allemaal zaken die je niet test met puzzeltjes, maar die voor functioneren een team ook heel zijn om dingen gedaan te krijgen.

Hoe je in al deze zaken inzicht krijgt tijdens een sollicitatiegesprek is dan weer een 2e :+

Acties:
  • 0 Henk 'm!

  • DevWouter
  • Registratie: Februari 2016
  • Laatst online: 14:46

DevWouter

Creator of Todo2d.com

.oisyn schreef op dinsdag 25 juni 2019 @ 14:04:
[...]

Brrr, unsigned ints voor generieke getallen...
Inderdaad koude rillingen. Vaak wordt er ergens anders in de code weer gebruik gemaakt van signed ints bij invoer of het resultaat want "we voeren alleen kleine getallen in" of dat men toch om een gekke reden negatieve waardes gaat invoeren.
EddoH schreef op dinsdag 25 juni 2019 @ 22:05:
Toch zie ik persoonlijk niet zo het nut van 'wiskundige' puzzeltjes in bij het zoeken naar een goede programmeur. Natuurlijk als je in een specifieke industrie of domein zit kan het toegevoegde waarde hebben, maar ik ken genoeg slimme mensen die een zootje van hun code maken en ook niet makkelijk inzien hoe het beter kan.
Programmeren is niet alleen systematisch denken of slimme algoritmes verzinnen. Het heeft naar mijn mening ook een creatieve kant.

Structureren, ordenen, het grote plaatje zien, zinnige interfaces bedenken, interactie tussen componenten modelleren, documenteren, handigheid met diverse tools, zelfinzicht, omgaan met feedback, omgaan met teamleden, datastructuren, goede tests schrijven, documentatie lezen, jezelf willen verbeteren, communiceren en ga zo maar door. Allemaal zaken die je niet test met puzzeltjes, maar die voor functioneren een team ook heel zijn om dingen gedaan te krijgen.

Hoe je in al deze zaken inzicht krijgt tijdens een sollicitatiegesprek is dan weer een 2e :+
Simpel, als sollicitant vragen wat een bedrijf belangrijk vind en als bedrijf aangeven wat jij belangrijk vindt. Vervolgens kijken of je visie op die punten overeenkomt en hoe je dat kan bewijzen.
Ik zie sollicitatiegesprekken altijd als een spelletje en om een spel te winnen moet je bekend zijn met de regels :*)

"Doubt—the concern that my views may not be entirely correct—is the true friend of wisdom and (along with empathy, to which it’s related) the greatest enemy of polarization." -- Václav Havel


Acties:
  • 0 Henk 'm!

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 14:40
Toen ik solliciteerde bij het bedrijf waar ik nu werk kreeg ik ook een "puzzeltje". Ik kwam er niet eens uit, want het antwoord was zo simpel dat ik teveel aan het doordenken was. Wiskunde problemen oplossen is dan ook niet mijn kracht.. Uiteindelijk wat hobby projectjes laten zien, toen was het wel geregeld

Roomba E5 te koop


Acties:
  • +1 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 20-09 20:54

Douweegbertje

Wat kinderachtig.. godverdomme

Mijn setup was gewoon een opdracht die gemaakt moest worden. Geen limitaties, dus prima om Google erbij te pakken. In eerste instantie even de tijd gunnen om zijn/haar eigen IDE en whatever te installeren en dat alles "goed" staat. Hoe kut is het dat je altijd op een Mac werkt en vervolgens een opdracht op een Windows bak moet doen waar alleen notepad++ op staat.. Daarom dus.

Vervolgens niet perse over de schouder mee kijken maar wel enigszins aanwezig zijn. Qua opdracht staat er vooral gespecificeerd dat men voor deze ene keer excessief veel comments moet maken, qua denkwijzes etc.

Uiteindelijk lopen we er samen doorheen en ik ben vooral benieuwd naar het proces, hoe/wat iemand zoekt en hoe iemand iets oplost.

Men wordt zeker niet afgerekend op hoeveel ze kunnen doen, dat vertel ik al aan het begin. Ik vertel sowieso wat de bedoeling is en waar ik allemaal naar kijk (het totaal plaatje dus).

Dit is vaak dan na een eerste "persoonlijk" gesprek, en visa-versa laat ik van alles van het bedrijf / applicatie zien.

Toentertijd in elk geval nooit een slechte keuze genomen met het aannemen :)

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

DevWouter schreef op dinsdag 25 juni 2019 @ 22:55:
Vaak wordt er ergens anders in de code weer gebruik gemaakt van signed ints bij invoer of het resultaat want "we voeren alleen kleine getallen in"
Want grote getallen zijn idd wél een goede reden om unsigned ints te gebruiken 8)7

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • +5 Henk 'm!

  • Firesphere
  • Registratie: September 2010
  • Laatst online: 03:16

Firesphere

Yoshis before Hoshis

Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen

^^ Mijn nieuwe titel, en ik vind het best leuk!

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!


Acties:
  • +3 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-09 22:17
Firesphere schreef op woensdag 26 juni 2019 @ 07:58:
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen
*giechel*

[ Voor 12% gewijzigd door farlane op 26-06-2019 08:43 ]

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.


Acties:
  • 0 Henk 'm!

  • Ryur
  • Registratie: December 2007
  • Laatst online: 22-09 16:47
Dat was mijn reactie ook gelijk!

Gefeliciteerd @Firesphere :) Hopelijk heb jij veel plezier in je nieuwe functie.

Acties:
  • +1 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Gefeliciteerd @Firesphere!


Amper bekend zijn met C++ en continu dingen moeten opzoeken:
Afbeeldingslocatie: https://i.imgur.com/g5HZoqW.png

}:|

Gelukkig bouwt DuckDuckGo geen profiel op O-)

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 14:00
.oisyn schreef op dinsdag 25 juni 2019 @ 23:09:
[...]

Want grote getallen zijn idd wél een goede reden om unsigned ints te gebruiken 8)7
Bij een database primary keys (sequence of increment) is dat soms inderdaad de reden, want die kunnen toch niet negatief zijn (tenzij je rare dingen doet). Je kunt dan namelijk zonder extra schijfruimte in te nemen, grof weg 2 keer het aantal rijen opslaan. En voor indices is dat erg fijn. Een signed 32 bit PK kan te weinig zijn, en 64 bit primary keys zijn weer overkill en hebben een performance impact.

Acties:
  • +1 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

In welke situatie is pakweg 2 miljard niet genoeg maar pakweg 4 miljard wel? Als je tegen de limieten van een 32 bits signed ints aan gaat lopen, dan ga je dat op termijn voor unsigned ints ook.

Overigens zijn primary keys geen rekenkundige getallen, dus mijn stelling was sowieso niet echt van toepassing. Unsigned ints zijn uitermate geschikt als identifiers.

[ Voor 68% gewijzigd door .oisyn op 26-06-2019 09:20 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • +2 Henk 'm!

  • bauke1994
  • Registratie: Maart 2011
  • Nu online
kenneth schreef op woensdag 26 juni 2019 @ 09:02:
Amper bekend zijn met C++ en continu dingen moeten opzoeken:
[Afbeelding]

}:|

Gelukkig bouwt DuckDuckGo geen profiel op O-)
Erg herkenbaar, ik zie deze regelmatig langs komen

Afbeeldingslocatie: https://i.ibb.co/JrD126j/Screenshot-from-2019-06-26-09-24-42.png

[ Voor 5% gewijzigd door bauke1994 op 26-06-2019 09:28 ]


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
@ThomasG veel DBMS systemen hebben helemaal geen (goede) support voor unsigned integers, tevens is het inderdaad maar de vraag hoeveel je er mee opschiet dat je 2 maal zoveel ruimte hebt, want als je over de ~2miljard gaat, komt de grens van 4 miljard ook al snel in zicht, zoals .oisyn ook aandraagt. En dan is het IMHO eerder een premature optimization. Het is wel een heel specifiek geval dat het verschil tussen een 32/64 bit integer key zoveel uithaalt op je data, en je precies tussen de 2 en 4 miljard records zit.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Giesber
  • Registratie: Juni 2005
  • Laatst online: 10:22
.oisyn schreef op woensdag 26 juni 2019 @ 09:14:
In welke situatie is pakweg 2 miljard niet genoeg maar pakweg 4 miljard wel? Als je tegen de limieten van een 32 bits signed ints aan gaat lopen, dan ga je dat op termijn voor unsigned ints ook.
Bijvoorbeeld iets als adressen in Europa. Misschien zijn er nu 1,5 miljard (nu ja, in werkelijkheid minder gok ik, maar het is een voorbeeld), is 2 miljard wat riskant, maar zullen het er nooit 4 miljard worden.

Er zijn altijd wel uitzonderingen met datasets die groot zijn, maar nog amper of niet meer groeien.

Of stel nu dat je toch maar een 64 bit key hebt genomen, maar je moet belachelijk veel gaan jongleren met de data. Als je nu 3 miljard entries hebt, kan je prima in je jongleer code met een 32 bit unsigned int werken om wat snelheid te winnen. Tegen dat je 5 jaar later aan de limiet komt (of bent, want je gaat het vergeten en het in de error logging zien :P ) maak je er even een 64 bit van en klaar is kees.

Dat gezegd zijnde zal zo'n situatie inderdaad wel zeldzaam zijn, en zal de performantie winst dikwijls niet eens opwegen tegen het uur onderzoek wat je ernaar moet doen.

Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
sig69 schreef op dinsdag 25 juni 2019 @ 22:59:
Wiskunde problemen oplossen is dan ook niet mijn kracht..
Het is idd maar de vraag of het echt nodig is voor de functie.

Zelf was ik altijd vrij goed in wiskunde en ik vond het ook altijd leuk, maar op mijn werk heb ik het al ruim 16 jaar nooit nodig gehad.

Alleen op mijn eerste baan, waar ik voornamelijk CAD tekenaar / developer was, was het echt belangrijk.

Maar bij mijn .NET developer banen daarna niet...

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Giesber schreef op woensdag 26 juni 2019 @ 10:34:
Bijvoorbeeld iets als adressen in Europa. Misschien zijn er nu 1,5 miljard (nu ja, in werkelijkheid minder gok ik, maar het is een voorbeeld), is 2 miljard wat riskant, maar zullen het er nooit 4 miljard worden.
Vind daar dan een 32 bits int voor gaan gebruiken in de hoop dat 't past nogal een voorbeeld van premature optimisation.

Dit soort data type keuzes moet je gaan maken als je op een vrij laag niveau met arrays van waarden bijvoorbeeld werkt. Als het gaat om database IDs e.d. is het sowieso al gangbaar gewoon een UUID te gebruiken.
ThomasG schreef op woensdag 26 juni 2019 @ 09:12:
Bij een database primary keys (sequence of increment) is dat soms inderdaad de reden, want die kunnen toch niet negatief zijn (tenzij je rare dingen doet). Je kunt dan namelijk zonder extra schijfruimte in te nemen, grof weg 2 keer het aantal rijen opslaan. En voor indices is dat erg fijn. Een signed 32 bit PK kan te weinig zijn, en 64 bit primary keys zijn weer overkill en hebben een performance impact.
Schijfruimte voor IDs vind ik nogal een non-issue. Je hebt een beter argument als het gaat om geheugen; buiten caching betekent (kort door de bocht) 2 keer zoveel ruimte nodig voor je index ook 2 keer zoveel tijd kwijt met het overhevelen naar de CPU. Maar dit zijn wel echt extreme optimalisaties die je m.i. alleen wil nemen als je een bottleneck geidentificeerd hebt.

Tegenwoordig zijn 128-bit UUIDs enorm gangbaar als primary keys.

[ Voor 42% gewijzigd door Hydra op 26-06-2019 11:38 ]

https://niels.nu


Acties:
  • +1 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 22-09 23:00
Hydra schreef op woensdag 26 juni 2019 @ 11:31:
[...]
Schijfruimte voor IDs vind ik nogal een non-issue. Je hebt een beter argument als het gaat om geheugen; buiten caching betekent (kort door de bocht) 2 keer zoveel ruimte nodig voor je index ook 2 keer zoveel tijd kwijt met het overhevelen naar de CPU. Maar dit zijn wel echt extreme optimalisaties die je m.i. alleen wil nemen als je een bottleneck geidentificeerd hebt.

Tegenwoordig zijn 128-bit UUIDs enorm gangbaar als primary keys.
Als je dat wil optimaliseren dan moet je ook al naar alignment en volgorde van alle datatypes in je tabel gaan kijken in je database (in iedergeval voor Postgres ivm padding, zie https://kuntalgh.blogspot...gnment-in-postgresql.html). Ben benieuwd of nieuwe storage formaten versie 13 gaan halen.

[ Voor 9% gewijzigd door gekkie op 26-06-2019 13:43 ]


Acties:
  • 0 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 06:55
Ach, een project bij ons had laatst binnen maand al een koppeltabelletje van 750GB. Zou dus niet willen zeggen dat IDs en schijfruimte helemaal geen issue zouden kunnen zijn. :P

"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 22-09 23:00
Mugwump schreef op woensdag 26 juni 2019 @ 13:40:
Ach, een project bij ons had laatst binnen maand al een koppeltabelletje van 750GB. Zou dus niet willen zeggen dat IDs en schijfruimte helemaal geen issue zouden kunnen zijn. :P
Willekeurig overal (btree) indexen op mikken kan er zo nog een veelvoud van maken 8).

Acties:
  • 0 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 06:55
gekkie schreef op woensdag 26 juni 2019 @ 13:44:
[...]

Willekeurig overal (btree) indexen op mikken kan er zo nog een veelvoud van maken 8).
Kwestie van je OLTP en je OLAP op één model doen. Succes gegarandeerd. :P

"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Mugwump schreef op woensdag 26 juni 2019 @ 13:40:
Ach, een project bij ons had laatst binnen maand al een koppeltabelletje van 750GB. Zou dus niet willen zeggen dat IDs en schijfruimte helemaal geen issue zouden kunnen zijn. :P
Gelukkig dan maar dat niemand dat zegt :)

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 22-09 14:14

Matis

Rubber Rocket

Hydra schreef op woensdag 26 juni 2019 @ 11:31:
Tegenwoordig zijn 128-bit UUIDs enorm gangbaar als primary keys.
Die gebruiken wij ook als unieke IDs in onze databases. Dan hoef je je daar geen zorgen meer over te maken. Sommige zijn nog timestamped ook, waardoor je terug kunt halen hoe laat ze gemaakt zijn.

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • +1 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
Firesphere schreef op woensdag 26 juni 2019 @ 07:58:
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen

^^ Mijn nieuwe titel, en ik vind het best leuk!
Als je je in uberprogressief Sillicon Valley zo voorstelt aan een vrouw heb je meteen een #metoo aan je broek hangen. Misogynistisch patriarchaal zwijn dat je bent.

;)

Feli trouwens :*)

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Matis schreef op woensdag 26 juni 2019 @ 17:52:
Die gebruiken wij ook als unieke IDs in onze databases. Dan hoef je je daar geen zorgen meer over te maken. Sommige zijn nog timestamped ook, waardoor je terug kunt halen hoe laat ze gemaakt zijn.
Hebben ook nog als voordeel dat enumeration attacks lastiger worden.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 22-09 14:14

Matis

Rubber Rocket

Hydra schreef op woensdag 26 juni 2019 @ 19:56:
Hebben ook nog als voordeel dat enumeration attacks lastiger worden.
Ja, dat ook. Al maakt dat bij ons niet heel veel uit, want er is geen koppeling met een gebruiker mogelijk.

En een uuid ziet er natuurlijk veel l33t haxors uit dan een suffe integer (unsigned of niet >:) )

[ Voor 15% gewijzigd door Matis op 26-06-2019 22:47 ]

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • +1 Henk 'm!

Verwijderd

Hell! Dit is het enthousiasme, ritme en tempo waarop ik code klop :D


Acties:
  • 0 Henk 'm!

  • Koenvh
  • Registratie: December 2011
  • Laatst online: 22-09 21:15

Koenvh

Hier tekenen: ______

@Verwijderd Niet YouTube: Richard Strauss - Also sprach Zarathustra, Op. 30 ? Valt me toch weer tegen :P

🠕 This side up


Acties:
  • 0 Henk 'm!

Verwijderd

Die pauken klinken wel als mijn constanten. Verder wat veel grandeur :D

Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Nu online

RayNbow

Kirika <3

Hmm... * RayNbow zit wat naar code van een project te kijken...
C++:
1
2
3
// ...
buf = (Point*)glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB);
// ...


* RayNbow ziet vervolgens verder op iets staan als...
C++:
1
2
3
// ...
buf[i].X -= translation.X;
// ...

Write only...? 🤔

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Hydra schreef op woensdag 26 juni 2019 @ 11:31:
[...]
Tegenwoordig zijn 128-bit UUIDs enorm gangbaar als primary keys.
Hoe doen jullie het eigenlijk qua database indexes?

UUID's zijn lekker uniek en random, maar daardoor ook vrij nasty als primary index (veel fragmentatie).

Nu kun je natuurlijk extra ruimte reserveren in de index, maar ik ben benieuwd :)

SQL Server heeft ook sequentiële UUID'S, maar that kinda defeats the purpose (wat enumeration attacks e.d. betreft).

Ook kun je natuurlijk een clustered sequentiële surrogate index gebruiken en een non clustered index voor de UUID's die je regelmatig defragmenteert.

Geen idee of dat best practice is echter. Al geeft het wel minder I/O overhead (om te defragmenteren).

PS
https://tomharrisonjr.com...s-be-careful-7b2aa3dcb439

Hier wordt aangeraden idd beide te gebruiken. Sequentiële ID's voor interne verwijzingen, random UUID's voor externe doeleinden.

[ Voor 40% gewijzigd door Lethalis op 27-06-2019 15:39 ]

Ask yourself if you are happy and then you cease to be.

Pagina: 1 ... 30 ... 102 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.