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 ... 29 ... 102 Laatste
Acties:
  • 585.889 views

Acties:
  • 0 Henk 'm!

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 22-09 14:08

AW_Bos

Liefhebber van nostalgie... 🕰️

Maar killt hij dan niet alle PHP-scripts? Dat lijkt mij ook niet de bedoeling? Wat als iemand op dat moment een request op mijn site doet?

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
AW_Bos schreef op woensdag 5 juni 2019 @ 16:42:
Maar killt hij dan niet alle PHP-scripts? Dat lijkt mij ook niet de bedoeling? Wat als iemand op dat moment een request op mijn site doet?
Volgens mij bedoelde 'ie het als eenmalige actie. Lijkt me simpeler om de fout uit 't script te halen dan om een aparte job te starten om die fout te corrigeren :)

https://niels.nu


Acties:
  • 0 Henk 'm!

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

Matis

Rubber Rocket

AW_Bos schreef op woensdag 5 juni 2019 @ 16:42:
Maar killt hij dan niet alle PHP-scripts? Dat lijkt mij ook niet de bedoeling? Wat als iemand op dat moment een request op mijn site doet?
Verder in: cURL requests zonder timeout in cronjobs ;)

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


Acties:
  • +1 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Matis schreef op woensdag 5 juni 2019 @ 16:28:
[...]
kill $(ps aux | grep '[p]hp' | awk '{print $2}')
?
Scary stuff.

Ten eerste killt het potentieel - alle - php scripts op het systeem.
Ten tweede neemt het ook alles mee dat toevallig met php begint.

Ik zou filteren op de naam van het script, zoals "waarom-is-die-trein-er-nou-niet.php" :+

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


Acties:
  • +6 Henk 'm!

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

.oisyn

Moderator Devschuur®

Demotivational Speaker

Lethalis schreef op woensdag 5 juni 2019 @ 16:54:
[...]

Scary stuff.

Ten eerste killt het potentieel - alle - php scripts op het systeem.
En terecht :P

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!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 22:04
Zou inderdaad standaard scheduled moeten draaien op servers elke seconde ofzo. :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!

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

Matis

Rubber Rocket

Lethalis schreef op woensdag 5 juni 2019 @ 16:54:
Scary stuff.

Ten eerste killt het potentieel - alle - php scripts op het systeem.
Ten tweede neemt het ook alles mee dat toevallig met php begint.

Ik zou filteren op de naam van het script, zoals "waarom-is-die-trein-er-nou-niet.php" :+
Klopt :+

Zie daarom ook mijn verbeterde post Matis in "cURL requests zonder timeout in cronjobs"

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


Acties:
  • 0 Henk 'm!

  • Ryur
  • Registratie: December 2007
  • Laatst online: 22-09 16:47
Houden jullie het nog een beetje uit met de hitte?
Ik ben zo blij dat mijn werkgever paar jaar geleden heeft geïnvesteerd in een airco systeem! Nu is het makkelijk uit te houden (alleen dan naar huis fietsen is zo zwaar :P).

Denk ook zonder de airco dat het op het kantoor bloedheet was geworden (kantoor zit aan zonkant, en dan hebben wij ook nog dat 'anti-inkijkfolie' dat veel hitte binnenhoudt)

Acties:
  • +1 Henk 'm!

  • BladeSlayer1000
  • Registratie: April 2013
  • Laatst online: 17-09 20:36
Ryur schreef op woensdag 5 juni 2019 @ 19:33:
Houden jullie het nog een beetje uit met de hitte?
Ik ben zo blij dat mijn werkgever paar jaar geleden heeft geïnvesteerd in een airco systeem! Nu is het makkelijk uit te houden (alleen dan naar huis fietsen is zo zwaar :P).

Denk ook zonder de airco dat het op het kantoor bloedheet was geworden (kantoor zit aan zonkant, en dan hebben wij ook nog dat 'anti-inkijkfolie' dat veel hitte binnenhoudt)
Met de prive airco unit die ik heb op het werk houd ik het altijd vol ;)

In 2017 is een nieuwe airco unit op het dak gezet boven mijn werkplek. De bedoeling was om hierop 8 kantoren en een groot magazijn aan te sluiten. Echter ging dit allemaal niet door door te hoge kosten, vandaar dat ik nu een hele airco unit voor mijzelf heb :P

[ Voor 19% gewijzigd door BladeSlayer1000 op 05-06-2019 19:54 ]


Acties:
  • 0 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 22:04
Ryur schreef op woensdag 5 juni 2019 @ 19:33:
Houden jullie het nog een beetje uit met de hitte?
Ik ben zo blij dat mijn werkgever paar jaar geleden heeft geïnvesteerd in een airco systeem! Nu is het makkelijk uit te houden (alleen dan naar huis fietsen is zo zwaar :P).

Denk ook zonder de airco dat het op het kantoor bloedheet was geworden (kantoor zit aan zonkant, en dan hebben wij ook nog dat 'anti-inkijkfolie' dat veel hitte binnenhoudt)
Van de vier werklocaties heb ik er twee met uitstekende airco, eentje gaat wel en een is vrij matig.

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


Acties:
  • +1 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 23:04
Wij zitten in een gebouw eind jaren 50 met buitenmuren van ruim 80 cm dik. Wij hebben het eerder te koud dan te warm. Dat was vorig jaar in de zomer wel een grote overgang. Van krap aan 20.5 graden naar 34 zodra je buiten komt. We hadden zelfs de klimaatbeheersing op verwarmen gezet, omdat het toch wel koud was met de zomerse kledij binnen :+

Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Ryur schreef op woensdag 5 juni 2019 @ 19:33:
Houden jullie het nog een beetje uit met de hitte?
Ik ben zo blij dat mijn werkgever paar jaar geleden heeft geïnvesteerd in een airco systeem! Nu is het makkelijk uit te houden (alleen dan naar huis fietsen is zo zwaar :P).

Denk ook zonder de airco dat het op het kantoor bloedheet was geworden (kantoor zit aan zonkant, en dan hebben wij ook nog dat 'anti-inkijkfolie' dat veel hitte binnenhoudt)
Zijn er dan nog kantoren plekken waar geen airco is?

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • +1 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 23:04
Snake schreef op woensdag 5 juni 2019 @ 20:05:
[...]

Zijn er dan nog kantoren plekken waar geen airco is?
Het probleem van zulke kantoren is vaak niet eens dat er geen airco is. De ruimtes zijn gewoon niet goed geventileerd voor de hoeveelheid mensen die er in zitten.

Acties:
  • +1 Henk 'm!

  • DeluxZ
  • Registratie: Augustus 2003
  • Laatst online: 15-09 11:49

DeluxZ

Livin' the good life

Ryur schreef op woensdag 5 juni 2019 @ 19:33:
Houden jullie het nog een beetje uit met de hitte?
Ik ben zo blij dat mijn werkgever paar jaar geleden heeft geïnvesteerd in een airco systeem! Nu is het makkelijk uit te houden (alleen dan naar huis fietsen is zo zwaar :P).

Denk ook zonder de airco dat het op het kantoor bloedheet was geworden (kantoor zit aan zonkant, en dan hebben wij ook nog dat 'anti-inkijkfolie' dat veel hitte binnenhoudt)
Welke hitte?

]|[ Apple Macbook Pro Retina 13" ]|[


Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
Ben nu bezig met GraphQL te testen. Best gaaf spul. Onze hele XML-based REST API kan een stuk simpeler nu.

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • Gropah
  • Registratie: December 2007
  • Niet online

Gropah

Admin Softe Goederen

Oompa-Loompa 💩

armageddon_2k1 schreef op donderdag 6 juni 2019 @ 10:02:
Ben nu bezig met GraphQL te testen. Best gaaf spul. Onze hele XML-based REST API kan een stuk simpeler nu.
Ik heb gehoord dat het vet is (maar snap niet helemaal waarom, ben wel benieuwd), maar heb ook gehoord dat je erg moet oppassen met de queries omdat die schijnbaar infinite recursion kunnen bevatten...

Acties:
  • 0 Henk 'm!

  • Ryur
  • Registratie: December 2007
  • Laatst online: 22-09 16:47
armageddon_2k1 schreef op donderdag 6 juni 2019 @ 10:02:
Ben nu bezig met GraphQL te testen. Best gaaf spul. Onze hele XML-based REST API kan een stuk simpeler nu.
Ik wilde dat ik daar een beetje tijd voor kon vinden om naar te kijken.
Ben heel benieuwd hoe het werkt, hoor zulke goede berichten erover!

Wel een paar keer een GraphQL endpoint aangeroepen (Facebook API & Office Flow (?)) maar nog nooit echt mee gewerkt.

Acties:
  • 0 Henk 'm!

  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 19-08 14:24

ZaZ

Tweakers abonnee

Ja, inderdaad. Het gaat hier toch gewoon over Nederland? Zondag was er een warme dag maar daarna was het toch gewoon over?

Lekker op de bank


Acties:
  • 0 Henk 'm!

  • Ryur
  • Registratie: December 2007
  • Laatst online: 22-09 16:47
ZaZ schreef op donderdag 6 juni 2019 @ 10:54:
[...]

Ja, inderdaad. Het gaat hier toch gewoon over Nederland? Zondag was er een warme dag maar daarna was het toch gewoon over?
Was dat maar zo. Ik vond het tot gister bloedheet hier in Nederland/Twente.
Vooral gister was zo'n benauwde dag (eigenlijk alles > 25 graden vind ik te warm)

Acties:
  • 0 Henk 'm!

  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 19-08 14:24

ZaZ

Tweakers abonnee

Ryur schreef op donderdag 6 juni 2019 @ 10:59:
[...]

Was dat maar zo. Ik vond het tot gister bloedheet hier in Nederland/Twente.
Vooral gister was zo'n benauwde dag (eigenlijk alles > 25 graden vind ik te warm)
Oh, hier in Alkmaar 18 of 19 graden ofzo

Lekker op de bank


Acties:
  • 0 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 22:04
armageddon_2k1 schreef op donderdag 6 juni 2019 @ 10:02:
Ben nu bezig met GraphQL te testen. Best gaaf spul. Onze hele XML-based REST API kan een stuk simpeler nu.
Wij zijn het ook aan het overwegen voor wat bestaande REST / SOAP APIs. Die zijn vooral gericht op redelijk flexibel zoeken en dan is REST niet ideaal. Je gaat toch wat gekunsteld zaken doen om het in een resource structuur te rammen.
SOAP is sowieso ellende. :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!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
RagingPenguin schreef op dinsdag 4 juni 2019 @ 19:48:
[...]


Als ik meerdere builds will hebben maak ik vaak 2 webpack config bestanden en geef aan het webpack command mee welke ik wil. Dan moet je nog wel iets doen om de juiste te selecteren.
Juist dat is het stuk waar ik vanaf wil. Dat werkt namelijk niet lekker met de dev middleware. :)
Ben er nog op aan het puzzelen.

Acties:
  • +1 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
Gropah schreef op donderdag 6 juni 2019 @ 10:26:
[...]


Ik heb gehoord dat het vet is (maar snap niet helemaal waarom, ben wel benieuwd), maar heb ook gehoord dat je erg moet oppassen met de queries omdat die schijnbaar infinite recursion kunnen bevatten...
Je moet sowieso altijd heel goed oppassen met welke API dan ook ;)
Infinite recursion zie ik niet meteen als een probleem, door gewoon je types goed te definieren.
Bijvoorbeeld, ik heb als definitie:
code:
1
2
3
4
5
type Entity {
  id: UUID,
  name: String,
  children: [Entity]
}


Dan zou je infinite recursion krijgen als de client z'n best doet. Maar ik los dat gewoon zo op:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
type Entity {
  id: UUID,
  name: String,
  children: [EntityRef]
}

type EntityRef {
  id: UUID,
  name: String
}

type Query {
  entity(id: UUID): Entity
  entities(ids: [UUID]): [Entity]
}

Dan kan de client in meerdere stappen de data ophalen, heel bewust. Onder water verwijzen EntityRef en Entity letterlijk naar dezelfde class, maar andere fields zijn beschikbaar.

In ons geval zijn we door de jaren heen van een single-user desktop app naar een multiuser webapp gegaan. De server draait nu de oude desktop code grotendeels in Kotlin welke serialized wordt als XML. Ons data model is echt een graph. Hele hiërarchieën, die ook nog eens horizontaal naar elkaar toe linken. Daarnaast genereren we ook nog eens SVG's aan de hand van de data in sommige gevallen.

Ons hele data-model is prima werkbaar vanuit Kotlin aangezien het typesafe is en je makkelijk door de objecten heen kan lopen.

Echter, de webapp is JS. We hebben dus meerdere endpoints die allemaal doorsnedes van de data in XML terugsturen. Door ons complexe datamodel krijg je dus hele complexe requests, met allemaal parameters die je aan en uit kan zetten om vooral niet teveel data terug te krijgen. Dit werkt helemaal door in de XML serialization. Onze projecten kunnen makkelijk 100MB aan ruwe XML worden, wat niet wenselijk is.

Dus, middels GraphQL kunnen we nu ons Kotlin data-model heel mooi mappen naar een nette type hierarchy in GraphQL, waardoor de client zo granulair mogelijk de data op kan halen. Daarnaast definieren we dus gewoon types als 'SVG':
code:
1
2
3
4
5
6
7
8
9
10
11
12
type Organogram {
  name: String!
  image: SVG!
}

type SVG {
  width: Float,
  height: Float,
  url: URL,
  contents: String,
  base64: ByteArray
}

ls een client dus een SVG oproept kan ie ervoor kiezen of ie de viewBox krijgt en de base64. Maar als ie de URL ophaalt is de gerenderde SVG tijdelijk beschikbaar onder een endpoint op de server en met contents krijgt de client puur de SVG-dom als string. Etc. Etc Etc :)

Erg leuk spul.

[ Voor 16% gewijzigd door armageddon_2k1 op 06-06-2019 12:13 ]

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
Ik begin echt een hekel te krijgen aan contrib commits op Webpack onderdelen.

Zit nu midden in een pull request samen met een collega, wat al 2 maanden sleept.
Initieel krijg je gewoon geen antwoord en moet je nog eens extra gaan roepen of er iemand wil gaan kijken.

Vervolgens accepteren ze de pull-request niet omdat deze ook een aantal zaken aanpast die ze onder "chore-jobs" scharen. Maar ja; als je een stokoude pre-commit hook hebt die kapot is en commits blokkeert; wat dan? Die zul je toch moeten fixen om überhaupt een PR op te zetten, niet waar?

Na een hoop gezever alles er toch nog doorgefrut gekregen. (Creatief zijn met o.a. git reset en git push --force om enkel de wijzigingen aan die hook er after-the-fact weer af te slopen...)


Krijgt mijn collega vervolgens - weer weken later - commentaar dat deze PR 'bestaand gedrag aanpast' (uh nee... dat doet het niet) en dat het dingen stuk zou maken.

Wij: Wat dan?
Zij: Nou gewoon het maakt dingen stuk.
Wij: Ja, maar wat dan? De unit-tests zijn allemaal groen.
Zij: Ja; in de integratie-tests gaat er allemaal spul stuk.
Wij: Welke integratie-tests? Kun je die ergens laten zien? Of beschikbaar maken om te draaien?
Zij: Ja, nee, ja... uh... da's allemaal moeilijk op te zetten en niet voor gewone developers bedoeld.

Wij: :(


Echt. Het verbaasd me totaa-----l niets dat er aan die specifieke loader sinds 2017 niets meer gewijzigd is, als de aangewezen maintainer er zo mee omspringt.

Fucking hell zeg...


Webpack: Fantastische tool. Kut development team.

Denk dat we tegen betere etiquette in toch maar gewoon een fork aan gaan houden en een better-<foo>-loader package gaan maken.

[ Voor 5% gewijzigd door R4gnax op 06-06-2019 19:40 ]


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Maar het is open source dus sowieso goed ;)

Wel herkenbaar. Heb iets dergelijks aan 't handje gehad met Spring HATEOAS. Maintainer daarvan reageerde als een flinke eikel op eigenlijk alle communicatie dus uiteindelijk in overleg met de andere devs op dat project hebben we het eruit gesloopt en vervangen voor een simpele eigen library. Normaal probeer ik te voorkomen dat ik een wiel opnieuw uitvindt, maar soms is het nodig.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • GrooV
  • Registratie: September 2004
  • Laatst online: 16-09 16:01
Sowieso altijd goed bij de keuze van een framework/library hoe (snel) issues op Github opgelost worden en wie de maintainers zijn. In het geval van Webpack heb je niet zo veel keuze kwa lib's maar als je die wel hebt is het goed om het mee te nemen.

Heb tot nu toe alleen nog maar positieve ervaringen met het melden van issue's en PR's :) Uiteindelijk doet iedereen ook gewoon z'n best en hebben maintainers van grote projecten het gewoon druk

[ Voor 13% gewijzigd door GrooV op 07-06-2019 08:46 ]


Acties:
  • 0 Henk 'm!

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

Douweegbertje

Wat kinderachtig.. godverdomme

GrooV schreef op vrijdag 7 juni 2019 @ 08:43:
Sowieso altijd goed bij de keuze van een framework/library hoe (snel) issues op Github opgelost worden en wie de maintainers zijn. In het geval van Webpack heb je niet zo veel keuze kwa lib's maar als je die wel hebt is het goed om het mee te nemen.

Heb tot nu toe alleen nog maar positieve ervaringen met het melden van issue's en PR's :) Uiteindelijk doet iedereen ook gewoon z'n best en hebben maintainers van grote projecten het gewoon druk
En uiteindelijk zegt dat ook niets. :+
Ik heb helaas soms heel diep in bepaalde materie gezeten en dan vind je soms bugs die van een bepaald niveau zijn dat eigenlijk niemand nog snapt wat er gebeurd. Dat was voor een heel goed maintained project met een grote (zelfs betaalde) core aan developers.

Ten eerste kan je het dan vergeten dat iemand zelf een fix maakt; want A: niemand snapt het en B: niemand boeit het.
En dan heb je zelf wat gemaakt maar dan blijft je PR daar open staan want A: niemand snapt het en B: niemand wilt zich er aan branden :D

Ik heb dit pas gefixed bij een soort community event in Duitsland waarbij ik domweg naar die core devs was gelopen, een stuk of 6 bij de lurven had gepakt en een PoC heb laten zien. Toen semi iemand "geforceerd" om mijn PR te approven :+

Het was super awkward en mijn eigen collega's lagen dubbel, maar na meer dan een half jaar had ik eindelijk mijn fix in de master zitten. *O*

Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
Het hele idee dat 'niemand de fix snapt' verhelp je toch juist door een goede lading testcases te beschrijven die falen voor de fix en passen na de fix en alle andere unit/integration test die eventuele regressies in de gaten houden? Dan hoeft niemand zich eraan te branden... van een goed maintained project met een grote groep betaalde code devs zou je dat wel verwachten eigenlijk.....

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

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

Douweegbertje

Wat kinderachtig.. godverdomme

armageddon_2k1 schreef op maandag 10 juni 2019 @ 21:20:
Het hele idee dat 'niemand de fix snapt' verhelp je toch juist door een goede lading testcases te beschrijven die falen voor de fix en passen na de fix en alle andere unit/integration test die eventuele regressies in de gaten houden? Dan hoeft niemand zich eraan te branden... van een goed maintained project met een grote groep betaalde code devs zou je dat wel verwachten eigenlijk.....
Het lastige is dat een test natuurlijk wel uitgaat van een waarde X aan de ene kant waar je op uit moet komen. Wat ik bedoel te zeggen is dat iemand links of rechtsom de logica moet snappen voor het resultaat. Of het nu uit een test komt of de code zelf.

Acties:
  • 0 Henk 'm!

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

Matis

Rubber Rocket

Douweegbertje schreef op maandag 10 juni 2019 @ 21:58:
Het lastige is dat een test natuurlijk wel uitgaat van een waarde X aan de ene kant waar je op uit moet komen. Wat ik bedoel te zeggen is dat iemand links of rechtsom de logica moet snappen voor het resultaat. Of het nu uit een test komt of de code zelf.
* Matis is wel benieuwd naar de daadwerkelijke PR en/of code (wijzigen)

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


Acties:
  • +1 Henk 'm!

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

Douweegbertje

Wat kinderachtig.. godverdomme

Matis schreef op dinsdag 11 juni 2019 @ 00:04:
[...]

* Matis is wel benieuwd naar de daadwerkelijke PR en/of code (wijzigen)
Ik heb even gezocht maar kan het niet terug vinden. Dat was ook wel zeker 5 jaar geleden en het project staat inmiddels op github zonder al te veel historie.

De case was iets frontend-like die gegenereerd werd vanuit een soort model. Als er in dat model een bepaalde setting/waarde aanwezig was en de gebruiker voerde een specifieke actie uit, dan kreeg je een duplicate entry.

De daadwerkelijke fix was het verwijderen van 1 line of code..

Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-09 13:37

alienfruit

the alien you never expected

Ik dacht het zomer was :( Wat een prutweer deze week zeg. Regen of ~16c

Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 23:00
alienfruit schreef op woensdag 12 juni 2019 @ 08:41:
Ik dacht het zomer was :( Wat een prutweer deze week zeg. Regen of ~16c
Mooi weer om de loonslaaf rustig binnen te houden toch ? :+

Acties:
  • +1 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 23:04
alienfruit schreef op woensdag 12 juni 2019 @ 08:41:
Ik dacht het zomer was :( Wat een prutweer deze week zeg. Regen of ~16c
De zomer begint pas vrijdag 21 juni :+

Acties:
  • 0 Henk 'm!

  • DeluxZ
  • Registratie: Augustus 2003
  • Laatst online: 15-09 11:49

DeluxZ

Livin' the good life

alienfruit schreef op woensdag 12 juni 2019 @ 08:41:
Ik dacht het zomer was :( Wat een prutweer deze week zeg. Regen of ~16c
Goed voor de natoer jongen!

]|[ Apple Macbook Pro Retina 13" ]|[


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 23:00
DeluxZ schreef op woensdag 12 juni 2019 @ 11:55:
[...]
Goed voor de natoer jongen!
Straks schiet tie nog wortel achter z'n bureau en hebben we een alienfruit-boom.

Acties:
  • 0 Henk 'm!

  • Feanathiel
  • Registratie: Juni 2007
  • Niet online

Feanathiel

Cup<Coffee>

Ik maar denken dat het onderstaande (Entity Framework):
C#:
1
2
3
dbContext.Tabel.RemoveRange(
    dbContext.Tabel.Where(row => row.Year == year)
);

Werd omgeschreven naar:
SQL:
1
DELETE FROM Tabel WHERE Year = @year

Maar niet dus ;( SQL Profiler vol met losse delete statements.

*schrijft maar weer stored procedures*

Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Dat is inderdaad één van de (vele) tekortkomingen en onhebbelijkheden van Entity Framework. :/

We are shaping the future


Acties:
  • +1 Henk 'm!

  • diabolofan
  • Registratie: Mei 2009
  • Laatst online: 21-09 23:14
Ik gebruik daarvoor deze extensie: https://entityframework-plus.net/batch-delete. Is gratis, ze hebben ook een Extension Pack waar wel voor betaald moet worden.

Acties:
  • 0 Henk 'm!

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 02:20
Feanathiel schreef op donderdag 13 juni 2019 @ 20:51:
Ik maar denken dat het onderstaande (Entity Framework):
C#:
1
2
3
dbContext.Tabel.RemoveRange(
    dbContext.Tabel.Where(row => row.Year == year)
);

Werd omgeschreven naar:
SQL:
1
DELETE FROM Tabel WHERE Year = @year

Maar niet dus ;( SQL Profiler vol met losse delete statements.

*schrijft maar weer stored procedures*
Is dat serieus nog steeds zo? Ik gebruik Entity Framework al jaren niet meer, mede door dit soort dingen.

Roomba E5 te koop


Acties:
  • 0 Henk 'm!

  • Gropah
  • Registratie: December 2007
  • Niet online

Gropah

Admin Softe Goederen

Oompa-Loompa 💩

Is het dan zou ouderwets om zelf je queries te schrijven?

De simpele queries zijn vaak geen probleem om te schrijven en de complexere queries heb ik niet vaak goed door een ORM/Framework geproduceerd zien worden als het gaat om performance. Nu heb ik daar ook geen jaren van ervaring in, dus wellicht mis ik het walhalla, maar ben nu wel benieuwd.

Acties:
  • 0 Henk 'm!

  • Skyaero
  • Registratie: Juli 2005
  • Niet online
Feanathiel schreef op donderdag 13 juni 2019 @ 20:51:
Ik maar denken dat het onderstaande (Entity Framework):
C#:
1
2
3
dbContext.Tabel.RemoveRange(
    dbContext.Tabel.Where(row => row.Year == year)
);

Werd omgeschreven naar:
SQL:
1
DELETE FROM Tabel WHERE Year = @year

Maar niet dus ;( SQL Profiler vol met losse delete statements.
EF6 of EF Core?

In EF Core zou RemoveRange() een single trip moeten zijn.

Acties:
  • 0 Henk 'm!

  • Stoelpoot
  • Registratie: September 2012
  • Niet online
Skyaero schreef op vrijdag 14 juni 2019 @ 10:09:
[...]


EF5 of EF6 (EF Core)?

In EF Core zou RemoveRange() een single trip moeten zijn.
Misschien vanwege de LINQ Where die een Lazy statement meegeeft? Blinde gok hoor.
Gropah schreef op vrijdag 14 juni 2019 @ 10:00:
Is het dan zou ouderwets om zelf je queries te schrijven?

De simpele queries zijn vaak geen probleem om te schrijven en de complexere queries heb ik niet vaak goed door een ORM/Framework geproduceerd zien worden als het gaat om performance. Nu heb ik daar ook geen jaren van ervaring in, dus wellicht mis ik het walhalla, maar ben nu wel benieuwd.
Een hoop mensen pakken de "makkelijke" optie van een ORM. Zeker in ASP.NET MVC vanwege de integratie met authenticatie. Overigens zijn er inderdaad ook genoeg die dat niet doen. De Dapper-library is erg populair als middenweg die de controle geeft waar het nodig is.

Acties:
  • 0 Henk 'm!

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

Matis

Rubber Rocket

Pfffffffffff...

* Matis heeft nu weer iets moois: De volgorde waarin unit tests worden gedraaid is afhankelijk van de uitkomst van de desbetreffend tests.

We maken (in PHP) een SoapClient aan. Wanneer deze een ongeldige wsdl krijgt, raakt het systeem / de unit tests zo over de zeik dat 1 specifieke volgende test niet goed gaat 8)7

Los draaien beide tests goed, ook de tussenliggende tests zijn prima, alleen die twee specifieke tests samen in deze volgorde laat het systeem stuk gaan...

Het resulteert dan in een
League\Csv\CannotInsertRecord : Unable to write record to the CSV document

[ Voor 10% gewijzigd door Matis op 14-06-2019 10:46 ]

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


Acties:
  • 0 Henk 'm!

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

.oisyn

Moderator Devschuur®

Demotivational Speaker

Interessant. Iemand ook een e-mail gehad over "20 Juni | Breda | Accelerating Enterprise, Web & Mobile Development Event"?

Dat event is niet interessant, dat kan me gestolen worden. Wat interessant is, is dat het is verstuurd naar een emailadres dat ik puur en alleen gebruikt heb voor Fiddler. Lekker is dat. Dus dan browsen we even naar https://docs.telerik.com/fiddler/PersonalDataProtection
How personal data is used by Telerik Products
Progress Telerik Fiddler uses your account details, email address and a product usage data to better understand customer experience allowing us to focus development efforts on the products and features that matter most to our customers. Additionally, this information may be used by Marketing and / or Sales to ensure you receive relevant content updates, product news and materials to ensure your success with our products. Please see our Privacy Policy for more details.

This information is for our own purposes and do not sell or otherwise provide this information to any third-parties for a commercial purpose.
Leugens, dus.

.edit: oh toch niet. Het event is van Progress zelf, en dat is blijkbaar tegenwoordig ook de eigenaar van Fiddler. :z

[ Voor 5% gewijzigd door .oisyn op 14-06-2019 10:51 ]

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!

  • Gropah
  • Registratie: December 2007
  • Niet online

Gropah

Admin Softe Goederen

Oompa-Loompa 💩

.oisyn schreef op vrijdag 14 juni 2019 @ 10:49:
Interessant. Iemand ook een e-mail gehad over "20 Juni | Breda | Accelerating Enterprise, Web & Mobile Development Event"?

Dat event is niet interessant, dat kan me gestolen worden. Wat interessant is, is dat het is verstuurd naar een emailadres dat ik puur en alleen gebruikt heb voor Fiddler. Lekker is dat. Dus dan browsen we even naar https://docs.telerik.com/fiddler/PersonalDataProtection

[...]

Leugens, dus.
Melding maken van hack/datalek :P

edit nav oisyn edit: het kan heel leuk onderdeel zijn van een reeks aan bedrijven, maar het bedrijf is eigenaar van de gegevens. Een zusterbedrijf mag dat niet zo maar gebruiken volgens mij.

[ Voor 14% gewijzigd door Gropah op 14-06-2019 10:53 ]


Acties:
  • 0 Henk 'm!

  • Jantje2000
  • Registratie: Februari 2016
  • Laatst online: 20:32
Gropah schreef op vrijdag 14 juni 2019 @ 10:52:
[...]


Melding maken van hack/datalek :P

edit nav oisyn edit: het kan heel leuk onderdeel zijn van een reeks aan bedrijven, maar het bedrijf is eigenaar van de gegevens. Een zusterbedrijf mag dat niet zo maar gebruiken volgens mij.
Ik weet het niet, maar misschien is het een dochterbedrijf? En dan kan ik me wel voorstellen dat het mag

De wet van Murphy: Alles wat fout kan gaan zal fout gaan.


Acties:
  • 0 Henk 'm!

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

.oisyn

Moderator Devschuur®

Demotivational Speaker

Gropah schreef op vrijdag 14 juni 2019 @ 10:52:
edit nav oisyn edit: het kan heel leuk onderdeel zijn van een reeks aan bedrijven, maar het bedrijf is eigenaar van de gegevens. Een zusterbedrijf mag dat niet zo maar gebruiken volgens mij.
Fiddler is van Progress, Progress organiseert het event. Ik zie nergens verschillende bedrijven.

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!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Fiddler is ooit in z'n vrije tijd ontwikkeld door Microsoftie Eric Lawrence. Toen Fiddler groter werd en steeds meer aandacht begon te eisen, bood Telerik hem een fulltime baan aan als Fiddler-ontwikkelaar.

Lawrence heeft dat geaccepteerd en Fiddler werd eigendom van Telerik. In 2014 nam Progress Telerik over. Lawrence zelf is inmiddels weer teruggekeerd naar Microsoft.

We are shaping the future


Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 22-09 13:37

alienfruit

the alien you never expected

Ik zit hier naar code bij mijn nieuwe werkgever te kijken wat gebruik maakt van Entity Framework maar als je dus de database SQL Server stopt dan crasht de webapplicatie. Alleen de Entity Framework documentatie erg onduidelijk waar je nou kunt detecteren of de verbinding kwijt is met de database server. Ik weet ook niet of dat nou iets is voor ADO.net.

Acties:
  • 0 Henk 'm!

  • Feanathiel
  • Registratie: Juni 2007
  • Niet online

Feanathiel

Cup<Coffee>

EF6 inderdaad.
Gropah schreef op vrijdag 14 juni 2019 @ 10:00:
Is het dan zou ouderwets om zelf je queries te schrijven?
[...]
M'nee, queries schud ik zo uit mijn mouw, dat is het probleem niet. Zelf vind ik het wel lekker werken wanneer types uitgegenereerd worden. Zo hebben wij ook een tool die voor ons types uitgenereerd net zoals WCF dat doet, maar dan voor TypeScript (op basis van een interface in C# een request/response structuur genereren in TS). Uiteraard zijn er ondertussen ook wel tools beschikbaar die dat ook kunnen, echter was dat niet zo aan het begin van het TypeScript-tijdperk. Werkt wel goed, één keer een definitie schrijven, en daarna gewoon delen tussen de talen. Zo dus ook bij SQL (Server) en C#. Het grootste deel van code kloppen is toch het om-mappen van data of het tonen ervan. :)

Acties:
  • 0 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 22:04
Ben blij dat ik op het moment al die ORM-ellende kan vermijden. :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!

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 02:20
Mugwump schreef op vrijdag 14 juni 2019 @ 20:31:
Ben blij dat ik op het moment al die ORM-ellende kan vermijden. :P
Ik vind "al die ORM-ellende" niet zo'n ellende anders hoor. Maar hoe vermijdtje het dan?

Roomba E5 te koop


Acties:
  • 0 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 22:04
sig69 schreef op zaterdag 15 juni 2019 @ 01:51:
[...]

Ik vind "al die ORM-ellende" niet zo'n ellende anders hoor. Maar hoe vermijdtje het dan?
Door simpelweg de de R uit je systemen te halen. :P
Het is niet altijd aan te raden, maar als het kan scheelt het wel een hoop gedoe.

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


Acties:
  • +1 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
sig69 schreef op zaterdag 15 juni 2019 @ 01:51:
[...]

Ik vind "al die ORM-ellende" niet zo'n ellende anders hoor. Maar hoe vermijdtje het dan?
Mijn 2 cent: Ik gebruik zelf liever iets als JOOQ of anders gewoon Spring Data JDBC waarbij je gewoon SQL schrijft. ORMs voegen naar mijn mening heel weinig toe. Ze nemen je een klein beetje werk uit handen, maar je krijgt er vaak een zooi lastig te debuggen complexiteit voor terug. Als ik iedere keer moet gaan kijken wat voor'n SQL queries Hibernate verzint, kan ik 't net zo goed zelf doen.

Helaas hebben veel Java developers de houding dat als ze met Hibernate werken niet meer naar de uiteindelijke queries hoeven te kijken. En dan heb je dus in no time het N+1 probleem.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 22:04
JOOQ werkt wel mooi ja, al zie ik wel een verschil in use cases tussen JOOQ en ORMs. JOOQ is heel geschikt voor complexe reads / read heavy loads. Als je veel / complexe writes doet, dan is een ORM wellicht geschikter. Aan de andere kant kun je je ook afvragen of je dan wel naar een relationeel model moet gaan wegschrijven of toch beter voor iets als een document store moet gaan.

"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!

  • BladeSlayer1000
  • Registratie: April 2013
  • Laatst online: 17-09 20:36
Vandaag eens een deel van mijn code herschreven, maar er niet bij stil gestaan om het tussendoor te testen :X

Gevolg; een deel van de website functioneerde niet meer zoals gewenst :(

Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
BladeSlayer1000 schreef op zondag 16 juni 2019 @ 17:29:
Vandaag eens een deel van mijn code herschreven, maar er niet bij stil gestaan om het tussendoor te testen :X

Gevolg; een deel van de website functioneerde niet meer zoals gewenst :(
Euhm, wat heb je dan gedaan? Gewoon een paar uur zitten typen ervanuitgaande dat alles dat je doet foutloos is?

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • +4 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 22:29
BladeSlayer1000 schreef op zondag 16 juni 2019 @ 17:29:
Vandaag eens een deel van mijn code herschreven, maar er niet bij stil gestaan om het tussendoor te testen :X

Gevolg; een deel van de website functioneerde niet meer zoals gewenst :(
Afbeeldingslocatie: https://i.pinimg.com/originals/5f/22/ca/5f22ca573c63db37900d62a357616e73.jpg

Acties:
  • +1 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 22:04
Testen, version control en ga zo maar door zijn niet voor niets een integraal onderdeel van elk fatsoenlijk softwareproject. :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:
  • +1 Henk 'm!

  • BladeSlayer1000
  • Registratie: April 2013
  • Laatst online: 17-09 20:36
armageddon_2k1 schreef op zondag 16 juni 2019 @ 17:43:
[...]


Euhm, wat heb je dan gedaan? Gewoon een paar uur zitten typen ervanuitgaande dat alles dat je doet foutloos is?
Ik zat een film te kijken en tergelijk code te herschrijven, waardoor ik niet in de gaten had hoeveel tijd vergaan was en hoeveel ik al had veranderd :/
Gelukkig niet in productie :)

[ Voor 24% gewijzigd door BladeSlayer1000 op 16-06-2019 17:56 ]


Acties:
  • 0 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 22:04
BladeSlayer1000 schreef op zondag 16 juni 2019 @ 17:55:
[...]


Ik zat een film te kijken en tergelijk code te herschrijven, waardoor ik niet in de gaten had hoeveel tijd vergaan was en hoeveel ik al had veranderd :/
Daarom bij refactoren altijd zorgen dat de randen automatisch worden afgetest, zodat je ongestraft de binnenkant kunt herschrijven. :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!

  • Ryur
  • Registratie: December 2007
  • Laatst online: 22-09 16:47
BladeSlayer1000 schreef op zondag 16 juni 2019 @ 17:55:
[...]


Ik zat een film te kijken en tergelijk code te herschrijven, waardoor ik niet in de gaten had hoeveel tijd vergaan was en hoeveel ik al had veranderd :/
Dat je dat kan 2 dingen tegelijk :O
Als ik dat doe mis ik of de film of ik kan alle code dat ik die avond heb geschreven weggooien!

Acties:
  • +2 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Nou, z'n post gaf al aan dat dat voor hem ook geldt. En hij heeft de film blijkbaar wel kunnen volgen :D

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 23:00
hmm zitten er daarom zoveel transgender-fluoride types in de IT ... dat ze denken dat zich vrouw noemen ze in ineens helpt bij het wel kunnen multi-tasken ? :+

Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

gekkie schreef op zondag 16 juni 2019 @ 20:57:
hmm zitten er daarom zoveel transgender-fluoride types in de IT ... dat ze denken dat zich vrouw noemen ze in ineens helpt bij het wel kunnen multi-tasken ? :+
Is dat een mannetje-vrouwtje-nicht-typje met erg glimmende tanden?

i3 + moederbord + geheugen kopen?


Acties:
  • +1 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 23:00
Boudewijn schreef op zondag 16 juni 2019 @ 22:44:
[...]

Is dat een mannetje-vrouwtje-nicht-typje met erg glimmende tanden?
Zonder gaatjes :*)
(Met praatjes)

[ Voor 6% gewijzigd door gekkie op 16-06-2019 22:49 ]


Acties:
  • 0 Henk 'm!

  • DevWouter
  • Registratie: Februari 2016
  • Laatst online: 02:57

DevWouter

Creator of Todo2d.com

gekkie schreef op zondag 16 juni 2019 @ 20:57:
hmm zitten er daarom zoveel transgender-fluoride types in de IT ... dat ze denken dat zich vrouw noemen ze in ineens helpt bij het wel kunnen multi-tasken ? :+
Dat vrouwen beter zijn in multi-tasken dan mannen is natuurlijk een leugen. Wij "mannen" verwachten gewoon dat vrouwen twee keer zo veel doen als wij mannen. Daarom hebben we die leugen de wereld in geholpen. :+

Gezien mijn bovenstaande opmerking als kwetsend ervaren kan worden...
Ik denk/hoop dat er binnen de IT zoveel ruimte is voor alle soorten mensen is omdat wij individuen meer beoordelen op hun vaardigheden en resultaten dan op hun gedrag. Hierdoor krijgen individuen meer ruimte om zichzelf te zijn en kunnen ze zich ook makkelijker als persoon ontwikkelen.

En laten we eerlijk zijn: Hoewel onze sector op dit moment voornamelijk bestaat uit mannen hebben wij ontzettend veel te danken gehad aan individuen die niet in de "klassieke" man/vrouw rol vallen.

Alan Turing, Sophie Wilson, Mary Ann Horton en vele andere hebben aan de krib gestaan van onze sector en zijn uitzonderlijke individuen met een ongebruikelijke achtergrond.

"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:
  • +1 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 23:00
DevWouter schreef op zondag 16 juni 2019 @ 22:49:
[...]
Dat vrouwen beter zijn in multi-tasken dan mannen is natuurlijk een leugen. Wij "mannen" verwachten gewoon dat vrouwen twee keer zo veel doen als wij mannen. Daarom hebben we die leugen de wereld in geholpen. :+
Trappen ze er toch allemaal mooi in ;)

Acties:
  • +1 Henk 'm!

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

Douweegbertje

Wat kinderachtig.. godverdomme

Mugwump schreef op vrijdag 14 juni 2019 @ 20:31:
Ben blij dat ik op het moment al die ORM-ellende kan vermijden. :P
Niet om jou aan te vallen maar mijn ervaring is dat men ORM ellende vindt op het moment dat ze de meest bizare meuk uitvoeren omdat of A ) de dateset krom is of B ) de applicatie krom is.

Vandaar misschien ook jOOQ, ze zeggen niet voor niets: Je database eerst, of dat voor een nieuwe applicatie of legacy is :) M.a.w. : Hoe krom je database ook is, het werkt. Mooi principe natuurlijk maar soms verhult het ook juist je echte probleem.

[ Voor 25% gewijzigd door Douweegbertje op 17-06-2019 06:23 ]


Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 23:04
gekkie schreef op zondag 16 juni 2019 @ 22:57:
[...]

Trappen ze er toch allemaal mooi in ;)
In zekere zin klopt het wel. Vrouwen doen veel dingen tegelijk, maar hebben daardoor minder focus per taak :+ Dat is ook deels de reden waarom vrouwen vooral voor socialere beroepen kiezen, en mannen gemiddeld genomen beter zijn op technisch vlak. En het een is niet per definitie beter dan het ander. Anders we het met computers vergelijken zijn mannen een CPU en vrouwen meer een GPU.

Acties:
  • 0 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 22:04
Douweegbertje schreef op maandag 17 juni 2019 @ 06:21:
[...]


Niet om jou aan te vallen maar mijn ervaring is dat men ORM ellende vindt op het moment dat ze de meest bizare meuk uitvoeren omdat of A ) de dateset krom is of B ) de applicatie krom is.

Vandaar misschien ook jOOQ, ze zeggen niet voor niets: Je database eerst, of dat voor een nieuwe applicatie of legacy is :) M.a.w. : Hoe krom je database ook is, het werkt. Mooi principe natuurlijk maar soms verhult het ook juist je echte probleem.
In mijn geval meer omdat ik bijvoorbeeld met optimalisatie van complexe queries zit en dan zit ORM vaak eerder in de weg dan dat het helpt. Zoals ik in mijn vervolgpost aangaf is ORM best handig als je veelal complexe writes doet, maar daar zijn ook andere oplossingen denkbaar. Uiteindelijk is het probleem ook vaak inderdaad dat je een systeem hebt waarbij je bijvoorbeeld zowel complexe (real-time) writes als complexe reads op één datamodel probeert te doen. Dat vinden de meeste RDBMsen niet zo heel leuk.
Daarom zit ik nu ook in een project om een complete rebuild / cloudmigratie te doen waarbij we ook veel meer gebruik maken van gescheiden schrijf- en leesmodellen ook in verschillende vormen van opslagtechnologie, of dat nou SQL, NoSQL, search engine, in-memory cache of wat dan ook is zolang het maar het juiste gereedschap voor de klus is.

"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: 23:00
ThomasG schreef op maandag 17 juni 2019 @ 09:35:
[...]
In zekere zin klopt het wel. Vrouwen doen veel dingen tegelijk, maar hebben daardoor minder focus per taak :+ Dat is ook deels de reden waarom vrouwen vooral voor socialere beroepen kiezen, en mannen gemiddeld genomen beter zijn op technisch vlak. En het een is niet per definitie beter dan het ander. Anders we het met computers vergelijken zijn mannen een CPU en vrouwen meer een GPU.
Echt parellalisme is het toch niet ?
Is het niet meer Async met callbacks dan ?

Zolang het I/O waiting is dan winnen ze er wat mee, maar als het diehard number chrunching is niet en kan het een negatieve impact hebben ?
Daarnaast is het door de callback nesting volstrekt onmogelijk om er nog iets van te begrijpen laat staan er een handleiding van te maken :+.

Moet nu wel oppassen, straks heb ik weer een bias, krijg ik er net als de TNO meneer dit weekend problemen mee >:)

Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 23:04
gekkie schreef op maandag 17 juni 2019 @ 09:49:
[...]

Echt parellalisme is het toch niet ?
Is het niet meer Async met callbacks dan ?

Zolang het I/O waiting is dan winnen ze er wat mee, maar als het diehard number chrunching is niet en kan het een negatieve impact hebben ?
Daarnaast is het door de callback nesting volstrekt onmogelijk om er nog iets van te begrijpen laat staan er een handleiding van te maken :+.

Moet nu wel oppassen, straks heb ik weer een bias, krijg ik er net als de TNO meneer dit weekend problemen mee >:)
Ik bedoelde meer dat vrouwen hun focus beter kunnen verdelen over meerdere dingen tegelijk. Een gemiddelde man heeft daar meer moeite mee. Mannen zijn daarentegen gemiddeld wel beter in het gebruiken van al hun focus op een onderwerp.

En dan zijn er vast mensen die zeggen dat dát seksisme e.d. is, maar dat is om evolutionaire redenen nu eenmaal zo (uitzonderingen daargelaten). Een gevolg daarvan is dat mannen en vrouwen in andere gebieden uitblinken. En het een is dus niet perse beter dan het ander.

Acties:
  • +1 Henk 'm!

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

.oisyn

Moderator Devschuur®

Demotivational Speaker

ThomasG schreef op maandag 17 juni 2019 @ 09:35:
[...]
Anders we het met computers vergelijken zijn mannen een CPU en vrouwen meer een GPU.
Da's een heel slecht voorbeeld. Een GPU doet eigenlijk helemaal niet zoveel verschillende dingen tegelijk. Hij doet heel veel dezelfde dingen tegelijk ;). Eigenlijk zijn vrouwen dan meer een multicore CPU, en mannen kunnen alleen multitasken door preemptive scheduling :P

[ Voor 16% gewijzigd door .oisyn op 17-06-2019 11: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!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Mugwump schreef op zaterdag 15 juni 2019 @ 18:20:
JOOQ werkt wel mooi ja, al zie ik wel een verschil in use cases tussen JOOQ en ORMs. JOOQ is heel geschikt voor complexe reads / read heavy loads. Als je veel / complexe writes doet, dan is een ORM wellicht geschikter. Aan de andere kant kun je je ook afvragen of je dan wel naar een relationeel model moet gaan wegschrijven of toch beter voor iets als een document store moet gaan.
Complexe objectstructuren opslaan is een van de dingen waar een ORM relatief goed in is. Maar in mijn ervaring zie je die usecase veel minder dan projecties op je data. En daar gaan ORMs vaak de mist in.

ORMs zijn wat mij betreft een beetje gebaseerd op het idee van een enkel 'model' in memory dat van en naar een relationeel model gemapt moet worden. En da's in de huidige wereld van REST (micro) services meestal niet erg accuraat. Heb danook in de laatste 10 ofzo jaar niet of nauwelijks met ORMs gewerkt, en ik mis ze ook niet.
Douweegbertje schreef op maandag 17 juni 2019 @ 06:21:
Niet om jou aan te vallen maar mijn ervaring is dat men ORM ellende vindt op het moment dat ze de meest bizare meuk uitvoeren omdat of A ) de dateset krom is of B ) de applicatie krom is.
Of je bent gewoon zo ver in ervaring met verschillende manier van zaken aanpakken dat doorhebt dat ORMs een abstractielaag leggen op je data, die zowel voor als nadelen heeft, zonder te moeten doen alsof mensen die er anders over denken slechte programmeurs zijn.
Mugwump schreef op maandag 17 juni 2019 @ 09:44:
In mijn geval meer omdat ik bijvoorbeeld met optimalisatie van complexe queries zit en dan zit ORM vaak eerder in de weg dan dat het helpt.
Niet alleen dat. Juist als je netjes, volgens de regels, je data modelleert heb je al snel te maken met compound keys. Die zijn al vrij lastig te modelleren in je code, je hebt dan meestal een aparte key class per compound key nodig. Dat in je code 'netjes' aan elkaar hangen levert je al snel een flinke annotation hell op. Da's dan nog voordat je uberhaupt gaat testen wat je ORM er van maakt onderwater; je bent dan misschien geen SQL aan het schrijven, je bent wel een hoop code aan het schrijven in plaats van SQL, waarna je ook nog eens moet gaan kijken wat de ORM er van bakt kwa SQL. Als dat niet klopt kun je vaak alsnog direct de SQL schrijven, of de code aanpassen op de SQL.

Dit terwijl SQL ongeveer de meest expressieve taal is die je maar kunt bedenken: het is een declarative taal, dus je vertelt de server alleen maar wat je wil. In plaats van in code waarin je moet vertellen dat de machine allemaal moet doen.

Het enige wat die ORMs dus nog voor je oplossen is het mappen van de resultaten naar objecten. Daar heb je prima light-weight rowmappers voor. Dan heb je niet de problemen van de abstractielaag, want je schrijft direct SQL, maar wel het voordeel dat de software de kolommen rechtstreeks in de juiste velden van je objecten propt.

Maarja. Ik zal wel een slechte programmeur zijn...
ThomasG schreef op maandag 17 juni 2019 @ 09:35:
Anders we het met computers vergelijken zijn mannen een CPU en vrouwen meer een GPU.
Of we blijven gewoon weg van het hangen van dit soort eigenschappen aan een sekse. Nog makkelijker en neigt een stuk minder naar seksisme :)

[ Voor 59% gewijzigd door Hydra op 17-06-2019 15:02 ]

https://niels.nu


Acties:
  • +1 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
...knip...

Ben zelf een beetje met Rust begonnen. Maar ik weet het nog niet.... vind het hele struct, trait en enum type systeem super, maar die borrow checker... man. Nou is het wel zo dat ik totaaaal 0.0 ervaring heb met C++ en echte low-level talen dus die mindset is er helemaal niet. Alleen maar wat C gedaan voor een projectje bij Philips ooit, embedded. Ik snap de voordelen van die borrower en moves etc wel, kwa mem-management. Maar nondeju, soms wring ik me wel in bochten zeg en dan heb ik niet echt het idee dat de tooling de ontwikkeling ondersteunt. Het lijkt er eerder op dat de tooling me forceert op een bepaalde manier te werken.

Maar nogmaals, ben wel een dikke n00b op dit gebied.

[ Voor 179% gewijzigd door armageddon_2k1 op 17-06-2019 18:24 . Reden: Beetje flauw misschien... ;) ]

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • +1 Henk 'm!

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

Douweegbertje

Wat kinderachtig.. godverdomme

Hydra schreef op maandag 17 juni 2019 @ 14:53:
[...]

Of je bent gewoon zo ver in ervaring met verschillende manier van zaken aanpakken dat doorhebt dat ORMs een abstractielaag leggen op je data, die zowel voor als nadelen heeft, zonder te moeten doen alsof mensen die er anders over denken slechte programmeurs zijn.
Ik weet niet of je nu bewust verzint wat ik heb gezegd maar dat laatste is verre van wat ik zei.

Nogmaals: mijn ervaring, is dat mensen die er over zeuren, juist op zoveel andere vlakken het verpesten waardoor je maar ORM de schuld geeft "want het kan X niet". Het motto van jOOQ word inherent ook zo misbruikt. Zoals ik zei; "het maakt niet uit hoe krom het is, het werkt" - wat eigenlijk hetzelfde is als PHP met loosely typed, maar nu gaan we opeens wel in de verdediging hoe goed het is om structuur te vergeten :+

Want naar mijn inziens is ORM maar net een middel waar je niet op hoeft te zeuren aangezien het compleet logisch is om basis meuk via je ORM te doen en je special shit buiten ORM om voor de bulks, custom optimalisaties, etc.

Waar je mij wel op mag quoten als het gaat om "slechte programmeurs"; de gene die ontiegelijk lopen te ranten en te bitchen over prima technieken, omdat ze helemaal misbruikt worden. Overigens niet dat het hier in de devschuur daar nou over ging :)

Acties:
  • +2 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
DevWouter schreef op zondag 16 juni 2019 @ 22:49:
[...]
En laten we eerlijk zijn: Hoewel onze sector op dit moment voornamelijk bestaat uit mannen hebben wij ontzettend veel te danken gehad aan individuen die niet in de "klassieke" man/vrouw rol vallen.

Alan Turing
Homo's zijn gewoon mannen hoor. ;) Maar ik snap je punt.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
DevWouter schreef op zondag 16 juni 2019 @ 22:49:
[...]

Gezien mijn bovenstaande opmerking als kwetsend ervaren kan worden...

... Knip...
Sorry dat ik het zeg hoor, maar is het echt nodig om na een flauw grapje van 3 zinnen een hele disclaimer van meerdere alinea's neer te zetten met een opsomming van achievements van "kwetsbare groepen" om maar niemand tegen het hoofd te stoten? Zijn we echt zo gevoelig geworden met z'n allen? Mijn inziens maak je het alleen maar erger.

Je hebt gelijk met het feit dat de technologische staat van nu toe te schrijven is aan elke afkomst, gender, geloof en kleur, maar waarom schrijf je daar alleen maar over nadat je een grap hebt gemaakt? Volgens mij betwist echt niemand de geschiedenis hieromtrent en helemaal binnen dit topic en als iemand zich gekwetst voelt door jouw grapje dan zal die disclaimer echt helemaal niks uitmaken. Je hebt de grap immers al gemaakt. Als je mensen niet wil kwetsen moet je geen grappen maken waarvan *jij denkt* dat die mensen zouden kunnen kwetsen.

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

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 23:00
*O* een linux "ping of death", weer fijn patchen dan maar.
Vond het al wat wazig dat er een 5.1.11 uit kwam met alleen maar een paar netwerk patches, maar dit verklaard het wel aardig :)

[ Voor 21% gewijzigd door gekkie op 17-06-2019 22:54 ]


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22:17
armageddon_2k1 schreef op maandag 17 juni 2019 @ 17:46:
...knip...

Ben zelf een beetje met Rust begonnen. Maar ik weet het nog niet.... vind het hele struct, trait en enum type systeem super, maar die borrow checker... man.

Maar nogmaals, ben wel een dikke n00b op dit gebied.
Ik ben niet een hele dikke n00b op dit gebied, maar ik heb precies hetzelfde :P

Later weer verder met Rust, nu eerst productief zijn... :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.


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Douweegbertje schreef op maandag 17 juni 2019 @ 19:19:
Ik weet niet of je nu bewust verzint wat ik heb gezegd maar dat laatste is verre van wat ik zei.
Je zegt letterlijk dat, in jouw ervaring, de programmeurs die klagen altijd die mensen zijn die er zelf een potje van gemaakt hebben. Misschien is het niet je bedoeling te stellen dat mensen die klagen over ORMs slechte devs zijn, maar zo komt het, in ieder geval op mij, wel over.

Jij stelt dat ORMs prima technieken zijn. Prima. Mag je vinden. Ik vind dat absoluut niet. In ons dagelijks werk passen we een hoop verschillende abstracties toe. Heck; zonder abstracties waren we allemaal letterlijk machine code aan het produceren. Maar elke transactie komt ook met een 'cost', dus het is altijd een afweging. In het geval van ORMs is er een hele grote hidden cost die vaak niet meegenomen wordt (N+1 en andere lastige te debuggen problemen) terwijl de benefit vrij minimaal is.

Als ik dat dan netjes probeer te beredeneren en er komt daarna iemand met een "Nou hurr durr alle developers die ik ken die klagen over ORMs zijn echt fucking slecht joh!" dan wordt ik daar wel enigzins chagerijning van.

No hard feelings verder, kan wel wat hebben hoor ;)
armageddon_2k1 schreef op maandag 17 juni 2019 @ 17:46:
...knip...

Ben zelf een beetje met Rust begonnen. Maar ik weet het nog niet.... vind het hele struct, trait en enum type systeem super, maar die borrow checker... man. Nou is het wel zo dat ik totaaaal 0.0 ervaring heb met C++ en echte low-level talen dus die mindset is er helemaal niet. Alleen maar wat C gedaan voor een projectje bij Philips ooit, embedded. Ik snap de voordelen van die borrower en moves etc wel, kwa mem-management. Maar nondeju, soms wring ik me wel in bochten zeg en dan heb ik niet echt het idee dat de tooling de ontwikkeling ondersteunt. Het lijkt er eerder op dat de tooling me forceert op een bepaalde manier te werken.

Maar nogmaals, ben wel een dikke n00b op dit gebied.
Heb hetzelfde. Ben afgelopen jaar voor Advent of Code begonnen met Rust, maar al vrij snel naar Kotlin overgestapt omdat ik gewoon niks gedaan kreeg. Ben er nog steeds niet uit of ik nu te dom ben of dat Rust zo lastig in 't gebruik ik. Beetje van beiden vermoed ik. Ik hoor zelf van Rust-fans dat bijvoorbeeld een Game in Rust schrijven masochistisch is... :D

Denk erover het dit jaar in C++ te doen, gewoon back naar de roots. En dan in plaats van een focus op 'mooie' FP code, code die gewoon zo snel mogelijk is. Hoop wel dat komend jaar de opdrachten leuker zijn, op een gegeven moment was het vooral een complexe set instructies die gevolgd moest worden i.p.v. zelf een oplossing uitvogelen.

[ Voor 37% gewijzigd door Hydra op 18-06-2019 08:39 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

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

Douweegbertje

Wat kinderachtig.. godverdomme

Hydra schreef op dinsdag 18 juni 2019 @ 08:35:
[...]


Je zegt letterlijk dat, in jouw ervaring, de programmeurs die klagen altijd die mensen zijn die er zelf een potje van gemaakt hebben.

[...]
Als je het hebt over "letterlijk", quote mij dan gewoon en probeer niet steeds iets toe te voegen aan mijn mening als ik dat niet "letterlijk" zo heb gezegd. Want nu doe je het exact weer net zoals je vorig bericht waar je een stukje van iemand pakt, je eigen negatieve mening er aan vast plakt en dan semi gestrekt erin terug reageert.
Douweegbertje schreef op maandag 17 juni 2019 @ 06:21:
[...]

Niet om jou aan te vallen maar mijn ervaring is dat men ORM ellende vindt op het moment dat ze de meest bizare meuk uitvoeren omdat of A ) de dateset krom is of B ) de applicatie krom is.
Wat klopt hier nou niet aan. Dit is toch puur de definitie waarop ORM niet ok is. Als je dataset niet goed is of dat bizare meuk uitvoert. Want anders is ORM prima voor zijn doel (bijv. simpele CRUD). Opnieuw met aannames wat iemand bedoelt die je op jezelf reflecteert. Ik heb helemaal niet letterlijk gezegd dat ze er zelf een potje van hebben gemaakt.
"Nou hurr durr alle developers die ik ken die klagen over ORMs zijn echt fucking slecht joh!"
Volwassen. (y)
No hard feelings verder, kan wel wat hebben hoor
Nou, laten we dan even agree to disagree. Zolang je steeds een stukje van iemand pakt en totaal niet snapt wat iemand bedoelt te zeggen en dat verdraait, maak je het jezelf wel erg moeilijk.

Acties:
  • +1 Henk 'm!

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

Firesphere

Yoshis before Hoshis

rant
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen

/rant

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!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 22:04
Douweegbertje schreef op dinsdag 18 juni 2019 @ 09:20:
Wat klopt hier nou niet aan. Dit is toch puur de definitie waarop ORM niet ok is. Als je dataset niet goed is of dat bizare meuk uitvoert. Want anders is ORM prima voor zijn doel (bijv. simpele CRUD). Opnieuw met aannames wat iemand bedoelt die je op jezelf reflecteert. Ik heb helemaal niet letterlijk gezegd dat ze er zelf een potje van hebben gemaakt.
Mijn bezwaar tegen ORM is ook helemaal niet zozeer dat het principe van ORM of specifieke ORM frameworks per definitie slecht zou moeten zijn, maar juist dat 'one size fits all' relationele opslag een slecht idee is en dit vaak ook de consequentie is van ORM frameworks.
Hanteer je bijvoorbeeld een eventsourced architectuur, dan moet je je met ORM ook in allerlei bochten wringen omdat de daadwerkelijke state van je aggregates transient is en je transactionele bulkopslag van events wilt hebben.

Je geeft zelf al aan dat ORM prima use cases kennen zoals simpele CRUD. In dat soort gevallen moet je ook lekker een ORM framework gebruiken.
Er zit echter een verschil tussen 'er zijn prima use cases voor een ORM' en 'als ORM niet voor je werkt, dan is je applicatie of je datamodel krom'. Bovendien kun je voor simpele CRUD ook gewoon een Postgres databaseje gebruiken met een key veld en een content veld met type JSON (of iets als Mongo) en weg is de O-R impedence mismatch.
Je kunt dan natuurlijk geen complexe read queries gaan draaien op je model, maar dat is nou juist ook vaak waar het misgaat bij ORM gebruik en architectuur in het algemeen.

"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!

  • wackmaniac
  • Registratie: Februari 2004
  • Laatst online: 22-09 09:15
Firesphere schreef op dinsdag 18 juni 2019 @ 09:36:
rant
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen

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

Read the code, write the code, be the code!


Acties:
  • 0 Henk 'm!

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

Firesphere

Yoshis before Hoshis

wackmaniac schreef op dinsdag 18 juni 2019 @ 09:54:
[...]


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

[ Voor 7% gewijzigd door Firesphere op 18-06-2019 09:57 ]

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!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 22:41
Vandaag las ik voor het eerst over STM (Software Transactional Memory) in C. Nu gebruik ik in mijn multi-threaded applicatie vooral mutex locks om multi-threaded problemen te voorkomen of compare-and-swap.

Meestal betekent dit dat je mogelijk problematische blokken omsluit met een lock / unlock. Dus lock - logica - unlock.

Is het nu zo dat je vrij simpel die locks kan vervangen door de STM __transaction_atomic blokken? Of denk ik nu te makkelijk?

Ik richt me hier specifiek even op de normale lock / unlock en niet op de signals, trylock toepassingen. Daarvan kan ik me voorstellen dat STM geen oplossing biedt.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Douweegbertje schreef op dinsdag 18 juni 2019 @ 09:20:
Wat klopt hier nou niet aan. Dit is toch puur de definitie waarop ORM niet ok is. Als je dataset niet goed is of dat bizare meuk uitvoert. Want anders is ORM prima voor zijn doel (bijv. simpele CRUD). Opnieuw met aannames wat iemand bedoelt die je op jezelf reflecteert. Ik heb helemaal niet letterlijk gezegd dat ze er zelf een potje van hebben gemaakt.
Je zegt hier toch echt dat het de schuld van de developer is. De applicatie is 'krom' of de dataset is 'krom'? Beiden zijn de verantwoordelijkheid van de developer.

Ik ben het daar dus compleet mee oneens. Het N+1 probleem kan op de meest onverwachte momenten optreden dus je moet vrijwel altijd in de gaten houden wat je ORM er van bakt. Erger nog; je moet dat iedere keer bij een upgrade doen; een andere Hibernate versie kan prima het gedrag opeens veranderen. En dan heb je nog het probleem dat juist als je database-first werkt je vaak met compound keys komt te zitten waarmee het via een ORM, omdat alles naar objecten gemapped moet worden, behoorlijk omslachtig werken is.

Ook ben ik het niet met je eens dat een ORM een goeie match is voor simpele CRUD. Juist daar kun je prima uit de voeten met een simpele rowmapper library, of JOOQ ofzo. Het theoretische 'best fit' model voor een ORM is juist het laden / saven van complexe objectstructuren. In theorie kan het je juist daar enorm veel tijd schelen. En in de praktijk gaat het nu dus juist daar vaak mis.

Dan stellen dat de dataset vast 'krom' is of anders de applicatie 'krom' moet zijn, vind ik gewoon lomp. Ik heb hier jarenlang ervaring mee en vaak dit soort shit moeten fixen.

Ik vond je reactie nogal extreem ongenuanceerd en nogal denigrerend overkomen. Daarnaast zitten ORM aanhangers al snel in m'n allergie-zone met dat soort dooddoeners. Vandaar m'n ongenuanceerde reactie terug :)

https://niels.nu


Acties:
  • +2 Henk 'm!

  • DevWouter
  • Registratie: Februari 2016
  • Laatst online: 02:57

DevWouter

Creator of Todo2d.com

Firesphere schreef op dinsdag 18 juni 2019 @ 09:36:
rant
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen

/rant
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!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 23:04
CurlyMo schreef op dinsdag 18 juni 2019 @ 10:13:
Vandaag las ik voor het eerst over STM (Software Transactional Memory) in C. Nu gebruik ik in mijn multi-threaded applicatie vooral mutex locks om multi-threaded problemen te voorkomen of compare-and-swap.

Meestal betekent dit dat je mogelijk problematische blokken omsluit met een lock / unlock. Dus lock - logica - unlock.

Is het nu zo dat je vrij simpel die locks kan vervangen door de STM __transaction_atomic blokken? Of denk ik nu te makkelijk?

Ik richt me hier specifiek even op de normale lock / unlock en niet op de signals, trylock toepassingen. Daarvan kan ik me voorstellen dat STM geen oplossing biedt.
STM is optimistic. Er kunnen dus meerdere threads tegelijkertijd in de __transaction_atomic blokken bezig zijn. Aan het einde kijkt het of er een race condition is, en zo ja dan worden een of meerdere transacties opnieuw gedaan. Als race conditions zeldzaam zijn heeft STM een voordeel. Is er een grote kans op race conditions dan heeft het geen en/of minder nut en kan het zelfs langzamer zijn. En natuurlijk heel erg oppassen bij IO.

Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 22:41
ThomasG schreef op dinsdag 18 juni 2019 @ 11:17:
[...]
STM is optimistic. Er kunnen dus meerdere threads tegelijkertijd in de __transaction_atomic blokken bezig zijn. Aan het einde kijkt het of er een race condition is, en zo ja dan worden een of meerdere transacties opnieuw gedaan. Als race conditions zeldzaam zijn heeft STM een voordeel. Is er een grote kans op race conditions dan heeft het geen en/of minder nut en kan het zelfs langzamer zijn. En natuurlijk heel erg oppassen bij IO.
De valkuilen bij IO begreep ik. Wat ik verder las is dat bij bijv. het updated van een linked list een STM slim genoeg is om daadwerkelijk alleen een lock te leggen op de nodes die worden bijgewerkt, waarbij je als luie programmeur gewoon de hele list zou locken. Dat zou het thread-safe bijwerken van globale data-structuren veel makkelijker maken.

Moet ik de vertraging en herhaling als gevolg van zo'n race-condition voorstellen als een busy-wait i.p.v. een interrupt of een sem_wait?

Klopt het dan verder dat veel van die standaard lock - logica - unlock blokken dus vervangen kunnen worden door zo'n __transaction_atomic?

Ik zit nog wel even hardop na te denken over wat je zegt over STM is optimistic. Is het verschil met STM t.o.v. mutex-locks, dat STM een FIFO uitvoer garandeert waarbij bij een mutex-lock alleen van de eerste thread die een code block raakt gegarandeerd die mag uitvoeren, maar elke volgende thread in willekeurige volgorde toegang krijgen tot een code block zodra de lock wordt opgeheven?

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Hydra schreef op dinsdag 18 juni 2019 @ 10:18:
[...]
Ik ben het daar dus compleet mee oneens. Het N+1 probleem kan op de meest onverwachte momenten optreden dus je moet vrijwel altijd in de gaten houden wat je ORM er van bakt. Erger nog; je moet dat iedere keer bij een upgrade doen; een andere Hibernate versie kan prima het gedrag opeens veranderen.
Het omgekeerde gebeurt gelukkig ook :P

Ik had (jaren geleden) een LINQ-query die Entity Framework omsmurfte in een SQL-statement dat dermate complex was dat SQL Server zich erin verslikte. Toen ik eens in de package manager keek zag ik dat er een minor update was voor EF. In de changelogs kon ik eigenlijk niks noemenswaardigs vinden over veranderingen aan de query interpreter.

Na het installeren van de update werd er echter een heel andere SQL-query gegenereerd, en daar had SQL Server geen moeite meer mee. :)

We are shaping the future


Acties:
  • +1 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 21:38

RayNbow

Kirika <3

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • +1 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
@Alex) mja, dat soort geneuzel is dus voor mij een argument tegen ORMs, ook als het wel de goeie kant opgaat. Regressies komen vaak voor bij updates.
De eiken buiten 't gebouw hier zitten vol met eikenprocessierups-clusters. Telt dat ook?

[ Voor 51% gewijzigd door Hydra op 18-06-2019 15:50 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 22:41
Hydra schreef op dinsdag 18 juni 2019 @ 15:49:
@Alex) mja, dat soort geneuzel is dus voor mij een argument tegen ORMs, ook als het wel de goeie kant opgaat. Regressies komen vaak voor bij updates.
Even advocaat van de duivel / knuppel in het hoenderhok :+ , maar als je model dusdanig complex is dat ORM's niet lekker meer werken, waarom dan niet gewoon makkelijkere representaties van de data voorschotelen middels views en CRUD op die views weer binnen de database afhandelen met triggers? Daarmee trek je die abstractie verder je data laag in i.p.v. dat die tussen je data en controller laag in zit, of zelfs meer richting je controller laag hangt.

Ik doe (in mijn professionele leven) weinig aan echte software development, maar meer met data-warehouses / data-management en data-analyse, dus zeer zeker gekleurd door de database bril 8)

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Degene die verantwoordelijk was voor het opzetten van het datamodel en data access-model was nogal een voorstander van ORMs en abstracties, zodoende dat dus ook alles via LINQ en EF gebeurde. Ik heb meer een voorkeur voor de juiste tools gebruiken voor de juiste omstandigheden.

Onlangs heb ik een keer Petapoco gebruikt om af te zijn van het geestdodend saaie mappen (het probleem waarvoor ORMs meestal gebruikt worden), het schrijven van SQL-queries doe ik wel liever met de hand.

Een tijd geleden heb ik een keer een oplossing gemaakt waarbij ik een stored procedure gemaakt heb, die een table accepteert (user defined table type). De stored procedure gebruikt vervolgens T-SQL's MERGE-command om data in bulk te upserten in de target table. Dat werkte verrassend goed, en lekker snel. Zo'n oplossing bouwen met een ORM leidt dan tot een hoop losse queries, nu is het in één keer klaar :D

We are shaping the future


Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 22:41
Alex) schreef op dinsdag 18 juni 2019 @ 16:11:
De stored procedure gebruikt vervolgens T-SQL's MERGE-command om data in bulk te upserten in de target table.
Dat was dan weer niet het antwoord waar ik op hoopte :P

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 dinsdag 18 juni 2019 @ 16:03:
Even advocaat van de duivel / knuppel in het hoenderhok :+ , maar als je model dusdanig complex is dat ORM's niet lekker meer werken, waarom dan niet gewoon makkelijkere representaties van de data voorschotelen middels views en CRUD op die views weer binnen de database afhandelen met triggers?
Waarom views (dat zijn ook maar gewoon queries) bouwen in je database als je diezelfde queries gewoon vanuit je code kan doen?

Ik volg je vraag niet; de complexiteit komt meestal vanuit de ORM zelf. SQL is best wel simpel over 't algemeen (rare schema's daargelaten). Een schema kan heel netjes genormaliseerd zijn, maar waarbij je toch door hoepels moet springen in een ORM (JPA met compound keys is een PITA bijvoorbeeld). Het N+1 probleem is een complexiteit van de ORM zelf; je weet zelf nooit wanneer 't precies gaat gebeuren (meestal niet, soms wel). Je weet nooit of een update roet in het eten gooit.

Dit terwijl een SQL query in je code gewoon een query blijft.

Mijn punt is dus dat een ORM voor simpel CRUD werk eigenlijk niks toevoegt (geen tijdswinst) en alleen bij complexere entity trees up-front tijdswinst oplevert. Maar die tijd die je wint, verlies je vaak aan de achterkant dubbel en dwars als je weer eens performance issues met Hibernate (daar zijn serieus boeken over geschreven) op moet lossen.

Wat mij betreft zijn ORMs gewoon altijd een slecht idee geweest. Ik heb er in al die jaren dat ik in de Java hoek zit nooit echt profijt van gehad.

Dus ik doe eigenlijk wat @Alex) doet; gewoon een rowmapper library gebruiken en klaar. Die SQL queries schrijven is niet erg interessant, maar da's die entity annotations e.d. op objecten plakken ook niet.

[ Voor 5% gewijzigd door Hydra op 18-06-2019 16:20 ]

https://niels.nu

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