Toon posts:

De Devschuur Coffee Corner - Iteratie ⑬ Vorige deelOverzicht

Pagina: 1 ... 22 ... 26 Laatste
Acties:

  • Kalentum
  • Registratie: Juni 2004
  • Nu online
CodeCaster schreef op zaterdag 27 augustus 2022 @ 15:15:
Maar @DevWouter, jij roept hier al jaren dat TDD de heilige graal is en beter dan gesneden brood en wat dies meer zij, maar je moet er wel mee in aanraking komen, of jezelf erin verdiepen, mensen hebben die je (in persoon, online of op schrift) de fijne kneepjes kunnen bijbrengen. En laat veel geschreven materiaal en video online nou bar slecht zijn en nooit verder gaan dan Hello World of een TODO-app...
Maar op een gegeven moment kom je daar toch ook zelf achter?

Ik heb 5 jaar maatwerk shitcode geschreven zonder tests voor kleine websites van MKB bedrijven. Op een gegeven moment kreeg ik een baan waarbij ik een soort project management systeem erfde van een externe developer. 0 tests. Nou goed daar ging dus af en toe iets mis met projecten en dus toen toch maar begonnen om nieuwe dingen onder test te brengen. Maar goed, dan gaat het op een gegeven moment wel irriteren: dan ben je 'klaar' en dan moet je nog tests schrijven. Dus dan ga je dat vooraf doen. En dan kom je erachter dat dat veel efficiënter en leuker is. En ik doe het vast niet op de juiste manier ofzo en ik heb nooit een boek of wat dan ook erover gelezen of video's gekeken, maar toch, het helpt mij enorm.

PV Output


  • Kalentum
  • Registratie: Juni 2004
  • Nu online
Mugwump schreef op zaterdag 27 augustus 2022 @ 16:59:
[...]


Ik werk bij een IT dienstverlener. Die verhalen zijn wat we bij een klant meemaken. Vrij grote partij maar weinig interne IT competentie en legio meer en minder competente partijen die mensen aan ze leveren. Klant probeert zelf ook een IT afdeling op te bouwen met als gevolg dat wij "senior" developers in ons team geschoven krijgen die wij zelf misschien net aan zouden nemen als junior. :P
Ah ok jij zit zelf bij een klant en hebt dus weinig invloed op wie er binnen komt. Ik werk bij een bedrijf dat alles zelf intern doet en dat betekent dus ook dat de meeste developers bij de hiring zijn betrokken en dat we onder andere moeten aangeven of we denken dat de kandidaat een directe collega zou kunnen zijn. Dus die dingen die jij beschrijft proberen we in de sollicatieprocedure er al uit te vissen... en we nemen eigenlijk alleen maar medior/seniors aan.

Ik persoonlijk ben nogal ongeduldig en zou het erg lastig vinden om zulke mensen te moeten begeleiden, respect hoor.

PV Output


  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 15:05
Kalentum schreef op zaterdag 27 augustus 2022 @ 17:06:
[...]


Ah ok jij zit zelf bij een klant en hebt dus weinig invloed op wie er binnen komt. Ik werk bij een bedrijf dat alles zelf intern doet en dat betekent dus ook dat de meeste developers bij de hiring zijn betrokken en dat we onder andere moeten aangeven of we denken dat de kandidaat een directe collega zou kunnen zijn. Dus die dingen die jij beschrijft proberen we in de sollicatieprocedure er al uit te vissen... en we nemen eigenlijk alleen maar medior/seniors aan.

Ik persoonlijk ben nogal ongeduldig en zou het erg lastig vinden om zulke mensen te moeten begeleiden, respect hoor.
Ja ik doe de interviews voor mijn eigen werkgever ook en dan komen dat soort mensen niet binnen inderdaad.

Overigens lijk ik nog wel enige invloed te hebben want er lijken er twee uit het team te verdwijnen en de "scrum master" zonder toegevoegde waarde krijgt ook een functie elders.
Probleem van dit soort organisaties is ook dat hun oplossing voor grote complexe projecten versnellen is om er gewoon meer developers tegenaan te gooien. Daardoor zat ik er zelf ook wel een tijdje aardig doorheen omdat een collega van me met wie ik de kar hoor te trekken een tijdje uit de roulatie was. Meer developers vertraagt dan vooral de boel omdat ik totaal overlopen wordt als lead / architect. Moet ondertussen namelijk ook nog steeds ruziën met andere teams en architecten, werken aan planningen voor de lange termijn want SAFe en das lekker Agile enzo en ga zo maar door.

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


  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 14:30

Douweegbertje

Wat kinderachtig.. godverdomme

Kalentum schreef op zaterdag 27 augustus 2022 @ 16:42:
[...]


Bij wat voor soort bedrijf werk jij? Ik ben hier echt verbaasd over (en de andere dingen die je post). Gaat er iets fout bij de sollicatieprocedures ofzo? Een soort basishouding van 'ik weet nog niet hoe maar we krijgen dit wel voor elkaar' lijkt me toch wel het minste. Het is geen rocketscience ofzo.
Ik zou het eerder omdraaien, waar werk jij dat je zulke dingen nog nooit hebt meegemaakt :+

De meerderheid van de bedrijven heeft een dumsterfire aan IT..

  • Kalentum
  • Registratie: Juni 2004
  • Nu online
Douweegbertje schreef op zaterdag 27 augustus 2022 @ 17:33:
[...]


Ik zou het eerder omdraaien, waar werk jij dat je zulke dingen nog nooit hebt meegemaakt :+

De meerderheid van de bedrijven heeft een dumsterfire aan IT..
Ik werk er al een redelijk lange tijd en vanaf dag 1 was de cultuur al: prima dat je fouten maakt, als je er maar van leert. En best wel kritisch op code reviews (daar moest ik wel even aan wennen). Dus als je rare hacks doet of iets over- dan wel underengineerd dan krijg je dat als feedback. Een zekere trots op hoge uptime van ons product zit er ook bij, we steken best wat tijd in dingen die misschien met een paar minuten downtime veel minder development time hadden gekost. Maar als jij iets doms doet als developer dan krijg je dat te horen en ook waarom dat niet zo heel handig is.

PV Output


  • Lethalis
  • Registratie: April 2002
  • Niet online
Kalentum schreef op zaterdag 27 augustus 2022 @ 17:02:
[...]
Maar op een gegeven moment kom je daar toch ook zelf achter?

En ik doe het vast niet op de juiste manier ofzo en ik heb nooit een boek of wat dan ook erover gelezen of video's gekeken, maar toch, het helpt mij enorm.
Dat is ook meteen de crux van test driven development. Wat test je wel en wat niet? Doe je alleen unit tests, of toch ook integration en end to end tests?

Refactor jij de code zo dat deze zich ook leent voor goede tests? Hebben de functies die jij test altijd een single responsibility?

En wat test je nou precies? Want als ik sommige tests zie die met een hoop mocking eigenlijk alleen maar controleren of een stuk code een ander stuk code aanroept dan vraag ik me af wat er precies bereikt wordt (behalve een hoge test coverage).

Begrijp me niet verkeerd, ik schrijf wel degelijk unit tests, zeker bij complexe code... maar ik test lang niet alles en altijd.

En ik heb al aardig wat boeken, tutorials en video's over tests gekeken _O- Toevallig ook gisteravond nog eentje, waarin xunit werd gebruikt om inline data te voeren aan een "theory" zodat je heel eenvoudig dezelfde test met een hele range aan verschillende inputs kunt testen. Zag er een stuk handiger uit dan het Microsoft test framework en ga ik zeker meer mee doen.

Maar goed bepalen wat je test en waarom... dat is een studie op zich volgens mij. En juist dát wordt vaak onderbelicht in al die tutorials en filmpjes etc. Het is vaak "kijk je kunt op deze manier een test maken". Mooi man.

Soms is het gewoon obvious. Ik heb ooit een planningssysteem gemaakt dat de beschikbaarheid moest bepalen aan de hand van allerlei tijdvakken. Toen heb ik behoorlijk wat tests geschreven om te controleren of mijn algoritmes kloppen onder allerlei verschillende situaties.

Maar als ik een dertien in een dozijn CRUD app maak? Not so much...

Het is bij mij vooral als mijn "dit is tricky" alarm afgaat dat ik tests begin te schrijven :)

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


  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 14:30

Douweegbertje

Wat kinderachtig.. godverdomme

Kalentum schreef op zaterdag 27 augustus 2022 @ 18:58:
[...]


Ik werk er al een redelijk lange tijd en vanaf dag 1 was de cultuur al: prima dat je fouten maakt, als je er maar van leert. En best wel kritisch op code reviews (daar moest ik wel even aan wennen). Dus als je rare hacks doet of iets over- dan wel underengineerd dan krijg je dat als feedback. Een zekere trots op hoge uptime van ons product zit er ook bij, we steken best wat tijd in dingen die misschien met een paar minuten downtime veel minder development time hadden gekost. Maar als jij iets doms doet als developer dan krijg je dat te horen en ook waarom dat niet zo heel handig is.
Right, wat ik probeer aan te geven is dat er gewoon heel veel bedrijven zijn waar 'de IT' gewoon niet zo goed is. Maar ik moet het misschien beter zeggen, waar gewoon heel de organisatie gewoon niet zo georganiseerd is :)
Meestal gebeurd dat op het moment ze heel erg groeien en dan moet je ook meer aannemen, delegeren, etc. Dan is het nog best een kunst om alles bij elkaar en aan elkaar te knopen. De andere reden (of de reden in wooding) is: enterprises. ze zijn vaak gewoon zo log als de pest.

Zo'n voorbeeld over oauth is, zoals hier al is aangegeven, geen rocket science. Echter is vaak de techniek an sich het probleem niet, maar wel om het voor elkaar te krijgen in een bepaalde organisatie. Die gene die antwoord gaf heeft waarschijnlijk een backlog waar je u tegen zegt en 2 PM's die zitten te neuzelen en 3 managers die interessant doen. Bij elke change dat die wilt doen is ie 3 maanden verder. Dus, 'not gonna fight that battle'... om maar een praktijk voorbeeld te geven.

Dat gezegd hebbende; Ik vind dat wij het vrij goed doen (minder software dev btw, maar meer cloud infra). Echter moet ik soms ook zoiets 'doms' zeggen als 'nou dat van die oauth gaat hem voorlopig niet worden'. 9/10x is het omdat de waarde dat het levert te gering is en we wel 1000 andere dingen kunnen doen wat de organisatie meer helpt. Die andere 1/10 is dat het gewoon een onderschatting/fout was in den beginne, waar we nu tegen aanlopen. :+ Ik zou alleen een wat betere uitleg geven over prio's, doorlooptijd, en waarde ipv dan zo'n basaal antwoord waar de ander niets aan heeft.

  • Kalentum
  • Registratie: Juni 2004
  • Nu online
Lethalis schreef op zaterdag 27 augustus 2022 @ 19:17:
[...]

Dat is ook meteen de crux van test driven development. Wat test je wel en wat niet? Doe je alleen unit tests, of toch ook integration en end to end tests?

Refactor jij de code zo dat deze zich ook leent voor goede tests? Hebben de functies die jij test altijd een single responsibility?

En wat test je nou precies? Want als ik sommige tests zie die met een hoop mocking eigenlijk alleen maar controleren of een stuk code een ander stuk code aanroept dan vraag ik me af wat er precies bereikt wordt (behalve een hoge test coverage).

Begrijp me niet verkeerd, ik schrijf wel degelijk unit tests, zeker bij complexe code... maar ik test lang niet alles en altijd.

En ik heb al aardig wat boeken, tutorials en video's over tests gekeken _O- Toevallig ook gisteravond nog eentje, waarin xunit werd gebruikt om inline data te voeren aan een "theory" zodat je heel eenvoudig dezelfde test met een hele range aan verschillende inputs kunt testen. Zag er een stuk handiger uit dan het Microsoft test framework en ga ik zeker meer mee doen.

Maar goed bepalen wat je test en waarom... dat is een studie op zich volgens mij. En juist dát wordt vaak onderbelicht in al die tutorials en filmpjes etc. Het is vaak "kijk je kunt op deze manier een test maken". Mooi man.

Soms is het gewoon obvious. Ik heb ooit een planningssysteem gemaakt dat de beschikbaarheid moest bepalen aan de hand van allerlei tijdvakken. Toen heb ik behoorlijk wat tests geschreven om te controleren of mijn algoritmes kloppen onder allerlei verschillende situaties.

Maar als ik een dertien in een dozijn CRUD app maak? Not so much...

Het is bij mij vooral als mijn "dit is tricky" alarm afgaat dat ik tests begin te schrijven :)
Wat ik wel heb gemerkt met eerst test schrijven is dat ik veel beter nadenk over de signatures van functies en constructors... dus dat je ook sneller op SOLID code uitkomt, kleine classes enzo, een beetje dit verhaal. Je voorbeeld van "alleen maar controleren of een stuk code een ander stuk code aanroept" is ook zoiets: het is toch juist goed dat je valideert dat code X als gevolg heeft dat bv method Y op class Z wordt aangeroepen met die en die parameters? Dus dat test ik ook.

Eigenlijk test ik alles dus :) ik werk vrij veel aan interne systemen en dan testen we de UI eigenlijk niet, hoewel we nu een frontender hebben die daar wat fanatieker in is. Maar de code die ik maak heeft vaak wel tests voor elke conditie.

PV Output


  • Kalentum
  • Registratie: Juni 2004
  • Nu online
Douweegbertje schreef op zaterdag 27 augustus 2022 @ 19:38:
[...]


Right, wat ik probeer aan te geven is dat er gewoon heel veel bedrijven zijn waar 'de IT' gewoon niet zo goed is. Maar ik moet het misschien beter zeggen, waar gewoon heel de organisatie gewoon niet zo georganiseerd is :)
Meestal gebeurd dat op het moment ze heel erg groeien en dan moet je ook meer aannemen, delegeren, etc. Dan is het nog best een kunst om alles bij elkaar en aan elkaar te knopen. De andere reden (of de reden in wooding) is: enterprises. ze zijn vaak gewoon zo log als de pest.

Zo'n voorbeeld over oauth is, zoals hier al is aangegeven, geen rocket science. Echter is vaak de techniek an sich het probleem niet, maar wel om het voor elkaar te krijgen in een bepaalde organisatie. Die gene die antwoord gaf heeft waarschijnlijk een backlog waar je u tegen zegt en 2 PM's die zitten te neuzelen en 3 managers die interessant doen. Bij elke change dat die wilt doen is ie 3 maanden verder. Dus, 'not gonna fight that battle'... om maar een praktijk voorbeeld te geven.

Dat gezegd hebbende; Ik vind dat wij het vrij goed doen (minder software dev btw, maar meer cloud infra). Echter moet ik soms ook zoiets 'doms' zeggen als 'nou dat van die oauth gaat hem voorlopig niet worden'. 9/10x is het omdat de waarde dat het levert te gering is en we wel 1000 andere dingen kunnen doen wat de organisatie meer helpt. Die andere 1/10 is dat het gewoon een onderschatting/fout was in den beginne, waar we nu tegen aanlopen. :+ Ik zou alleen een wat betere uitleg geven over prio's, doorlooptijd, en waarde ipv dan zo'n basaal antwoord waar de ander niets aan heeft.
Ja maar van @Mugwump begreep ik dat 'oAuth niet kan want we gebruiken 2 libraries', dus dan wordt er gewoon technisch nee verkocht. Uiteraard zijn er planningen en 'oAuth voorlopig niet want andere prioriteiten' is geen incompetentie. Maar 'oAuth niet want we kunnen het niet' is dat wel. Overigens ga ik niet over de prioriteiten maar ik kan wel aangeven dat feature X leuk voor later is want veel tijd, maar het is uiteindelijk 'Product' die daar een afweging in maakt (en dus ook weet dat keuze voor feature Y kan betekenen dat feature X op de langere baan komt, je kan niet alles hebben).

PV Output


  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 03:33

F.West98

Alweer 14 jaar hier

Kalentum schreef op zaterdag 27 augustus 2022 @ 19:40:
[...]


Wat ik wel heb gemerkt met eerst test schrijven is dat ik veel beter nadenk over de signatures van functies en constructors... dus dat je ook sneller op SOLID code uitkomt, kleine classes enzo, een beetje dit verhaal. Je voorbeeld van "alleen maar controleren of een stuk code een ander stuk code aanroept" is ook zoiets: het is toch juist goed dat je valideert dat code X als gevolg heeft dat bv method Y op class Z wordt aangeroepen met die en die parameters? Dus dat test ik ook.

Eigenlijk test ik alles dus :) ik werk vrij veel aan interne systemen en dan testen we de UI eigenlijk niet, hoewel we nu een frontender hebben die daar wat fanatieker in is. Maar de code die ik maak heeft vaak wel tests voor elke conditie.
Nouja ik vraag me soms bij sommige tests wel af wat de toegevoegde waarde is. Bijvoorbeeld een functie die een enum naar één van drie verschillende strings matcht, en dan een test die letterlijk diezelfde drie strings test. Die test op zich voelt voor mij zeer redundant aan omdat je nu gewoon de strings op 2 plekken hebt. Die strings in de code veranderen zichzelf niet zomaar dus die test valt ook niet zomaar om. Of het de juiste strings zijn in de business logic, en of ze verderop in het systeem wel zn werk doen lijkt me juist het belangrijkere om te testen. Toch?




Nou voel ik me hierboven wel snel aangesproken als het om "jonge" programmeurs gaat :+ (als in, ik hoop niet dat het over mij gaat :P ) Maar ik snap echt niet hoe developers kunnen functioneren zoals jullie het beschrijven. Ik zie mezelf vroeg of laat eigenlijk altijd wel in de source code van een library/framework duiken omdat de documentatie onduidelijk/onvolledig is of omdat er vreemd gedrag is en dan check ik of er een bug is. Documentatie lees ik eigenlijk altijd voor een groot/belangrijk deel door voordat ik met een library aan de slag ga. Hoe kan je als fatsoenlijke developer nou zonder?! :?

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


  • RagingPenguin
  • Registratie: December 2012
  • Niet online
F.West98 schreef op zaterdag 27 augustus 2022 @ 22:13:
[...]

Nouja ik vraag me soms bij sommige tests wel af wat de toegevoegde waarde is. Bijvoorbeeld een functie die een enum naar één van drie verschillende strings matcht, en dan een test die letterlijk diezelfde drie strings test. Die test op zich voelt voor mij zeer redundant aan omdat je nu gewoon de strings op 2 plekken hebt. Die strings in de code veranderen zichzelf niet zomaar dus die test valt ook niet zomaar om. Of het de juiste strings zijn in de business logic, en of ze verderop in het systeem wel zn werk doen lijkt me juist het belangrijkere om te testen. Toch?
"Of het de juiste strings zijn in de business logic, en of ze verderop in het systeem wel zn werk doet" is iets voor een integratie of e2e test. Unit tests zijn er juist voor om te testen of de losse units waar dat gedrag uit bestaat te testen. Het voordeel van het hebben van kleine tests voor simpele dingen is dat je direct alle regressie bugs kan herleiden tot specifieke units, en dat maakt het een stuk comfortabeler om aanpassingen te maken in een bestaande codebase. Hierbij een big-tech saas hebben we letterlijk miljoenen unit tests in het platform (wel verspreid over meerdere sub-projecten in een mono repro) en zonder die zou een heel stuk moeizamer zijn om aan bestaande core functionaliteit te zitten.



Nou voel ik me hierboven wel snel aangesproken als het om "jonge" programmeurs gaat :+ (als in, ik hoop niet dat het over mij gaat :P ) Maar ik snap echt niet hoe developers kunnen functioneren zoals jullie het beschrijven. Ik zie mezelf vroeg of laat eigenlijk altijd wel in de source code van een library/framework duiken omdat de documentatie onduidelijk/onvolledig is of omdat er vreemd gedrag is en dan check ik of er een bug is. Documentatie lees ik eigenlijk altijd voor een groot/belangrijk deel door voordat ik met een library aan de slag ga. Hoe kan je als fatsoenlijke developer nou zonder?! :?
Ik zie dat liever de andere kant uit: je zou je code niet afhankelijk moeten maken van ongedocumenteerd gedrag in een dependency. Als ik in de code moet duiken van een library is het de verkeerde library (en ja, soms zit met een verkeerde keuze opgescheept maar dan maak ik wel expliciet duidelijk dat we ervan moeten).

  • Kalentum
  • Registratie: Juni 2004
  • Nu online
F.West98 schreef op zaterdag 27 augustus 2022 @ 22:13:
[...]

Nouja ik vraag me soms bij sommige tests wel af wat de toegevoegde waarde is. Bijvoorbeeld een functie die een enum naar één van drie verschillende strings matcht, en dan een test die letterlijk diezelfde drie strings test. Die test op zich voelt voor mij zeer redundant aan omdat je nu gewoon de strings op 2 plekken hebt. Die strings in de code veranderen zichzelf niet zomaar dus die test valt ook niet zomaar om. Of het de juiste strings zijn in de business logic, en of ze verderop in het systeem wel zn werk doen lijkt me juist het belangrijkere om te testen. Toch?
Dat een implementatie triviaal is betekent niet dat je het niet moet testen. Omdat over 2 jaar misschien de developer na jou de boel gaat refactoren ofzo, dan is het mooi dat het gedrag onder test is en de toekomstige developer rustig de boel kan wijzigen.

Ik heb zelfs publieke constants onder test. Dat is nog trivialer.

PV Output


  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 03:33

F.West98

Alweer 14 jaar hier

RagingPenguin schreef op zaterdag 27 augustus 2022 @ 22:48:
[...]


Ik zie dat liever de andere kant uit: je zou je code niet afhankelijk moeten maken van ongedocumenteerd gedrag in een dependency. Als ik in de code moet duiken van een library is het de verkeerde library (en ja, soms zit met een verkeerde keuze opgescheept maar dan maak ik wel expliciet duidelijk dat we ervan moeten).
Goed nee dat is natuurlijk ook niet wat ik doe; maar soms is de documentatie onduidelijk en snap ik het pas als ik de source code heb bekeken. Soms is de documentatie gewoon niet af/compleet. En soms vertoont een library gek gedrag en zoek ik uit of het een bug is (soms is het dat; soms kom ik er tijdens dat uitzoeken achter dat ik een denkfout maakte)

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


  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 15:05
Kalentum schreef op zaterdag 27 augustus 2022 @ 19:46:
[...]


Ja maar van @Mugwump begreep ik dat 'oAuth niet kan want we gebruiken 2 libraries', dus dan wordt er gewoon technisch nee verkocht. Uiteraard zijn er planningen en 'oAuth voorlopig niet want andere prioriteiten' is geen incompetentie. Maar 'oAuth niet want we kunnen het niet' is dat wel. Overigens ga ik niet over de prioriteiten maar ik kan wel aangeven dat feature X leuk voor later is want veel tijd, maar het is uiteindelijk 'Product' die daar een afweging in maakt (en dus ook weet dat keuze voor feature Y kan betekenen dat feature X op de langere baan komt, je kan niet alles hebben).
Ja het betrof hier een SOAP service. Dat is zo'n typisch enterprisey ding waarvoor in Java of .Net het genereren van de client code vaak in libraries zit die het hele concept van een HTTP request met een body en http headers wegabstraheren, al kun je er doorgaans wel gewoon bij. Je hebt ook wel soortgelijke libraries voor REST die uiteraard moderner zijn, want SOAP is oude meuk, en simpelweg expliciet ondersteuning voor OAuth hebben ingebakken. Het probleem zit hem er natuurlijk in dat mensen lijken te zijn vergeten dat SOAP ook niets anders is dan een laagje bovenop een simpele HTTP request die je in vrijwel elke library of framework die client code voor je genereert wel kunt manipuleren met de toevoeging van custom headers.

De vraag bij dat soort zaken is natuurlijk ook in hoeverre het ook een beetje politiek is. Zij willen liever van dat hele SOAP af. Wij ook wel, maar daar is gewoon ook niet de ruimte voor in het huidige project. Kan ook best zijn dat 'we kunnen geen SOAP en OAuth' ook vooral betekent 'dat kost ons tijd en die willen we er niet insteken, we willen graag dat jullie een variant van die API gaan aanbieden met een andere technologie'.

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


  • DevWouter
  • Registratie: Februari 2016
  • Laatst online: 13:55
CodeCaster schreef op zaterdag 27 augustus 2022 @ 15:15:
Maar @DevWouter, jij roept hier al jaren dat TDD de heilige graal is en beter dan gesneden brood en wat dies meer zij, maar je moet er wel mee in aanraking komen, of jezelf erin verdiepen, mensen hebben die je (in persoon, online of op schrift) de fijne kneepjes kunnen bijbrengen. En laat veel geschreven materiaal en video online nou bar slecht zijn en nooit verder gaan dan Hello World of een TODO-app...
offtopic:
TDD is beter dan gesneden brood, zelfs een perfecte tosti kan je er niet mee vergelijken :+


Inderdaad, TDD is echt een vaardigheid die tijd kost om te ontwikkelen. Het is ook één van de weinige vaardigheden waarbij een paar weken/maanden aan de slag gaan met kata's een vereisten is, het liefst met een vriend/collega waarbij je elkaar coacht. Zonder dat is het inderdaad lastig te leren en het kost extreem veel tijd.

Weetje wat? Laat ik dmv een anekdote de waarde uitleggen waarbij ik aangeef hoeveel tijd het kost om goed grip te krijgen op TDD.


Anekdote: TDD kapot krijgen had een onverwacht resultaat

Waarschuwing De onderstaande code is uit mijn hoofd geschreven, het oorspronkelijk probleem was ook een stuk complexer dan een simple null-check.

Ik was niet altijd overtuigd dat TDD goed was. Het was soms handig, maar het werkte zeker in het begin niet altijd voor mij. Dus gaf ik mij zelf een klein projectje waarbij ik wat extreme regels hanteerde.
  1. Alleen minimale aanpassingen aan de library mag mag, zie je een minimaler oplossing als in het aantal toetsaanslagen dan ben je verplicht om die te doen.
  2. Oude code mag alleen aangepast worden wanneer het onmogelijk is om nieuwe functionaliet toe te voegen.
  3. Refactoren is ten alle tijden verboden. (normaal mag je dit wanneer alle testen groen zijn)
  4. "git commit -a -m 'done'" wordt altijd gedaan na elke aanpassing als elke test groen is.
  5. "git reset --hard" wordt altijd gedaan wanneer er 2 of meer tests rood zijn.
  6. "git reset --hard" wordt onmiddelijk uitgevoerd bij overtreding van de regels, ook als het per ongeluk is
C#:
1
2
3
4
5
6
7
8
9
10
class Player{
  public int MagicDefense {get;set;}
  int calculateDamage(Spell spell) {
    // Old early out
    if(spell == null) return 0; // no spell, no damage

    // Prevent healing when defense is higher than damage.
    return Math.Max(0, spell.MagicDamage - this.MagicDefense); 
  }
}


Met deze regels had ik uiteindelijk de bovenstaande code. Maar toen besloot ik dat ipv een 0 waarde een exception wilde hebben
De code voor de no-spell-no-damage uitkomst was al verwijderd gezien die ongewenst was maar mijn regels verbood refactoren in de lib-code (de test-code was vrijspel).
Regel 2 zegt duidelijk dat bestaande code alleen aangepast mag worden als er geen andere oplossing mogelijk was en dus was ik gedwongen tot twee early-outs (zoals hieronder), waarbij de tweede early-out nooit kan plaats vinden. Maar de code werkte volgens de test.

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
class Player{
  public int MagicDefense {get;set;}
  int calculateDamage(Spell spell) {
    // New early out
    if(spell == null) throw new InvalidSpellException();

    // Old early out
    if(spell == null) return 0; // no spell, no damage

    // Prevent healing when defense is higher than damage.
    return Math.Max(0, spell.MagicDamage - this.MagicDefense); 
  }
}


Na twee dagen stond nog steeds het volgende op mijn notitie:
1. Zorg voor een test die nullref op `spell.MagicDamage` als correct gedrag beschouwdt (hiermee wordt bewijzen we dat old-early-out ongewenst gedrag is).
2. Zorg dat je de "new-early-out" kan paseren. Hoe? HOE!?

Uiteraard was het veel pragmatischer om de body van de if aan te passen. Maar mijn doel was niet om te bewijzen dat ik goeie code kon schrijven, maar dat TDD tot betere code zou leiden. En hoewel ik de property MagicDamage nullRef kon laten geven is het doel ook niet om te bewijzen dat ik binnen de lijntjes kan kleuren door slechte code te schrijven. Het doel was dat TDD mij dwong tot goeie code.
Op dag 3 vond ik de oplossing die aan alle regels voldeed. Hieronder zie je de status van één van de tussen stappen.

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* De code t/m stap 5*/
class Player{
  private ISpellValidator _spellValidator;
  public int MagicDefense {get;set;}
  int calculateDamage(Spell spell) {
    // New early out
    if(!_spellValidator.IsValid(spell)) throw new InvalidSpellException();

    // old default value
    if(spell == null) return 0; // no spell, no damage

    // Prevent healing when defense is higher than damage.
    return Math.Max(0, spell.MagicDamage - this.MagicDefense); 
  }
}


Oké, de aanpassing stelde niks voor, ik introduceerde een validator class waardoor ik controle over de uitkomst van validatie binnen de code kan veranderen door in de constructor een andere type mee te geven. De stappen:
  • Stap 1: Schrijf een test voor de niet bestaande SpellValidator.IsValid(...) die false terug geeft bij een null-object. Dan heb ik 1 non-build/rode test.
  • Stap 2: Maak de SpellValidator die gewoon `return src != null;` doet. Nu waren alle tests weer groen
  • Stap 3: Bewijs dat InvalidSpellException alleen terug komt als _spellValidator.IsValid(...) een negatief advies geeft. Dit kan door 1 recente test aan te passen waardoor ik weer 1 rode test heb.
  • Stap 4: Geef een Mocked ISpellValidator mee aan `Player` en zorg dat die aangeroepen wordt en altijd true terug geeft (hier introduceer ik ook de interface). Ik had nog steeds 1 rode test
  • Stap 5: Zorg dat bij de validatie test `false` terug geeft. Nu was alles wel groen.
  • Stap 6: Maak een test waarbij null meegegeven wordt maar de validator nog steeds aangeeft dat het goed is. De uitkomst moet een NullRefException zijn en geen InvalidSpellException. Nu was er weer 1 rode test
  • Stap 7: Verwijder de no-spell-no-damage code. En nu was alles weer groen.
Had ik mij aan de regels gehouden? Ja, er was geen refactor nodig en was elke aanpassing in de code het gevolg van test.
Had ik met opzet geen slechte code geschreven? Nee, ik heb geen vreemde trucjes uitgehaald.
Dus geen aanpassingen code als gevolg van omdat "ik beter kan" of omdat "ik slechter kan". Elke aanpassing was "test driven" :D

C#:
1
2
3
4
5
6
7
8
9
10
11
12
/* The final result */
class Player{
  private ISpellValidator _spellValidator;
  public int MagicDefense {get;set;}
  int calculateDamage(Spell spell) {
    // New early out
    if(!_spellValidator.IsValid(spell)) throw new InvalidSpellException();

    // Prevent healing when defense is higher than damage.
    return Math.Max(0, spell.MagicDamage - this.MagicDefense); 
  }
}


Het mooiste was dat aan het einde van die dag ik begon aan de Enemy class waarbij de validatie hergebruikt kon worden.
En met al deze realisaties kwam ik tot één andere belangerijke realisatie: Zonder TDD hadden deze verbeteringen nooit zo snel plaats gevonden.
En dus was dit het moment dat ik overtuigd werd dat TDD zoveel meer waarde heeft dan alleen "tests".

De extreme dogmatisch regels waren vooral om te kijken of ik TDD kapot kon krijgen. Vooral omdat ik nog niet overtuigd was van test-first en test-later. En met extreme dogmatisch regels loop je eerder tegen grenzen op (hoewel de vergelijking zelden eerlijk is).
Het doel was dan ook om te bewijzen dat TDD incidenteel zou werken. Tegen de verwachting om leidde het tot een beter resultaat dan dat ik had verwacht.

Ps: normaal is er veel meer pragmatisme in TDD. En zijn de bovenstaande stappen gewoon 1 directe stap.

[Voor 3% gewijzigd door DevWouter op 29-08-2022 03:27]

"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


  • OMX2000
  • Registratie: Januari 2001
  • Laatst online: 22-03 20:46

OMX2000

By any means necessary...

“Doen” is zeker de beste leermeester bij TDD. Maar da’s denk ik met alles wat met programmeren te maken heeft.

De naam TDD is ongelukkig gekozen. En tegen de tijd dat we dat allemaal door hadden was DDD bezet en kon Design Driven Development niet meer, en had de marketing afdeling een makkelijke manier om het “testen” te verkopen: onze developers kunnen hun werk zelf testen, wat dus minder test werk kost 🤦🏾‍♂️

Dat TDD unit tests gebruikt is een goede fit. Makes sense. Maar het resultaat van TDD is een beter design dat de kwaliteit van code verbetert, en daardoor kan het zijn dat je minder bugs in je code hebt. KAN dus.

Unit tests die geschreven worden door dezelfde persoon die de code schrijft is dubieus. Er zullen zeker programmeurs zijn die het kunnen, maar het is pas nuttig als er tenminste twee devs betrokken zijn. En dan bedoel ik dus dat de unit tests testgevallen bevatten die ook voldoende scenario’s dekken om ook echt wat over de kwaliteit van code te kunnen zeggen.

Dè developers podcast in je moerstaal : CodeKlets Podcast


  • DevWouter
  • Registratie: Februari 2016
  • Laatst online: 13:55
OMX2000 schreef op maandag 29 augustus 2022 @ 08:49:
Dat TDD unit tests gebruikt is een goede fit. Makes sense. Maar het resultaat van TDD is een beter design dat de kwaliteit van code verbetert, en daardoor kan het zijn dat je minder bugs in je code hebt. KAN dus.
Mijn ervaring is dat bij het correct toepassen van TDD er je altijd een beter design zal zijn en er altijd minder bugs zal zijn. En hier wordt "zal" gebruikt als in dat het 100% plaats zal vinden. In de anekdote hierboven was de oplossing een Wikipedia: Strategy pattern wiens winst op dag 3 zich meteen uitbetaalde vanwege herbruikbaarheid.

Overigens mocht iemand een anekdote willen schrijven van wanneer die persoon overtuigd raakte van DDD dan hoor ik het graag. Voor mijn gevoel is het altijd iets dat door een blender gehaald is gezien ik elk op een andere manier ken. Naar mijn idee wordt DDD pas goed als het een keer compleet herschreven wordt, maar de kans is zeer groot dat DDD net zoals TDD meer vereist dan een paar boeken en youtube filmpjes.

"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


  • Kalentum
  • Registratie: Juni 2004
  • Nu online
OMX2000 schreef op maandag 29 augustus 2022 @ 08:49:
Unit tests die geschreven worden door dezelfde persoon die de code schrijft is dubieus. Er zullen zeker programmeurs zijn die het kunnen, maar het is pas nuttig als er tenminste twee devs betrokken zijn. En dan bedoel ik dus dat de unit tests testgevallen bevatten die ook voldoende scenario’s dekken om ook echt wat over de kwaliteit van code te kunnen zeggen.
Huh? Als jij als developer een if statement kan schrijven, dan kun je toch ook zelf die test schrijven? Waarom heb je daar twee developers voor nodig?

PV Output


  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

DevWouter schreef op maandag 29 augustus 2022 @ 09:43:
[...]


Mijn ervaring is dat bij het correct toepassen van TDD er je altijd een beter design zal zijn en er altijd minder bugs zal zijn. En hier wordt "zal" gebruikt als in dat het 100% plaats zal vinden. In de anekdote hierboven was de oplossing een Wikipedia: Strategy pattern wiens winst op dag 3 zich meteen uitbetaalde vanwege herbruikbaarheid.

Overigens mocht iemand een anekdote willen schrijven van wanneer die persoon overtuigd raakte van DDD dan hoor ik het graag. Voor mijn gevoel is het altijd iets dat door een blender gehaald is gezien ik elk op een andere manier ken. Naar mijn idee wordt DDD pas goed als het een keer compleet herschreven wordt, maar de kans is zeer groot dat DDD net zoals TDD meer vereist dan een paar boeken en youtube filmpjes.
Over welke DDD hebben we het hier? Domain Driven Design?
Design is ook wel een woord waar je een vrachtwagen doorheen kunt rijden. :)
Kalentum schreef op maandag 29 augustus 2022 @ 10:21:
[...]


Huh? Als jij als developer een if statement kan schrijven, dan kun je toch ook zelf die test schrijven? Waarom heb je daar twee developers voor nodig?
Het is de slager die zijn eigen vlees keurt. Maar @DevWouter ziet TDD breder dan alleen tests schrijven gok ik.

[Voor 15% gewijzigd door Sandor_Clegane op 29-08-2022 10:35]

Less alienation, more cooperation.


  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 15:05
Kalentum schreef op maandag 29 augustus 2022 @ 10:21:
[...]


Huh? Als jij als developer een if statement kan schrijven, dan kun je toch ook zelf die test schrijven? Waarom heb je daar twee developers voor nodig?
Als je if statements aan het testen bent, dan gaat het in mijn ogen al mis.
Dat zie ik veel developers doen in een test-later aanpak. Gewoon de zojuist geschreven code netjes sluitend afdekken, maar dat betekent natuurlijk niet dat je code doet wat ie hoort te doen, enkel dat ie doet wat jij denkt dat ie hoort te doen, veelal ook gewoon door te copy-pasten.

Om een recent voorbeeldje te geven, ik wilde voor m'n team even een voorbeeldje maken van een cache met die periodiek gecleared kan worden en een repo die wordt gebruikt om de cache te vullen indien een entry nog niet aanwezig is.

In plaats van alle if statements te gaan aftesten heb je feitelijk een aantal scenario's die je wilt testen zoals:
  1. Eerste keer aanroepen = repository wordt aangeroepen
  2. Tweede keer aanroepen = repository wordt niet nogmaals aangeroepen
  3. Aanroepen, clearen en vervolgens weer aanroepen = repository wordt weer opnieuw aangeroepen
Dit maakt je tests ook gelijk beschrijvend. Je bent geen technische tests aan het schrijven die jouw specifieke implementatie testen, maar je hebt een stuk documentatie dat beschrijft hoe je Cache hoort te werken. Welke technologie je dan gebruikt voor de cache, hoe je de repository implementeert en ga zo maar door is dan niet relevant.

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


  • Kalentum
  • Registratie: Juni 2004
  • Nu online
Mugwump schreef op maandag 29 augustus 2022 @ 11:11:
[...]


Als je if statements aan het testen bent, dan gaat het in mijn ogen al mis.
Dat zie ik veel developers doen in een test-later aanpak. Gewoon de zojuist geschreven code netjes sluitend afdekken, maar dat betekent natuurlijk niet dat je code doet wat ie hoort te doen, enkel dat ie doet wat jij denkt dat ie hoort te doen, veelal ook gewoon door te copy-pasten.

Om een recent voorbeeldje te geven, ik wilde voor m'n team even een voorbeeldje maken van een cache met die periodiek gecleared kan worden en een repo die wordt gebruikt om de cache te vullen indien een entry nog niet aanwezig is.

In plaats van alle if statements te gaan aftesten heb je feitelijk een aantal scenario's die je wilt testen zoals:
  1. Eerste keer aanroepen = repository wordt aangeroepen
  2. Tweede keer aanroepen = repository wordt niet nogmaals aangeroepen
  3. Aanroepen, clearen en vervolgens weer aanroepen = repository wordt weer opnieuw aangeroepen
Dit maakt je tests ook gelijk beschrijvend. Je bent geen technische tests aan het schrijven die jouw specifieke implementatie testen, maar je hebt een stuk documentatie dat beschrijft hoe je Cache hoort te werken. Welke technologie je dan gebruikt voor de cache, hoe je de repository implementeert en ga zo maar door is dan niet relevant.
Ik bedoelde eigenlijk meer dat @OMX2000 lijkt te suggereren dat je tests door een tweede dev moet laten schrijven.

dus als ik een code heb als dit;
code:
1
2
3
function isEven(i) {
  return i %2 == 0;
}


Dat dan iemand anders de test zou moeten schrijven. Dat lijkt mij een beetje onzin.

PV Output


  • phex
  • Registratie: Oktober 2002
  • Laatst online: 12:12
DevWouter schreef op maandag 29 augustus 2022 @ 03:12:
[...]

Ik was niet altijd overtuigd dat TDD goed was. Het was soms handig, maar het werkte zeker in het begin niet altijd voor mij. Dus gaf ik mij zelf een klein projectje waarbij ik wat extreme regels hanteerde.
  1. Alleen minimale aanpassingen aan de library mag mag, zie je een minimaler oplossing als in het aantal toetsaanslagen dan ben je verplicht om die te doen.
  2. Oude code mag alleen aangepast worden wanneer het onmogelijk is om nieuwe functionaliet toe te voegen.
  3. Refactoren is ten alle tijden verboden. (normaal mag je dit wanneer alle testen groen zijn)
  4. "git commit -a -m 'done'" wordt altijd gedaan na elke aanpassing als elke test groen is.
  5. "git reset --hard" wordt altijd gedaan wanneer er 2 of meer tests rood zijn.
  6. "git reset --hard" wordt onmiddelijk uitgevoerd bij overtreding van de regels, ook als het per ongeluk is
Ik heb serieus met smacht gewacht op jouw reactie.

Misschien komt het door je extreme voorbeeld.

Maar dingen kunnen refactoren zonder side effects lijkt mij een van de meest waardevolle eigenschappen van TDD.

Ben je niet gewoon al je tests in leven aan het houden omdat het bad practice is om tests te verwijderen? Voelt een beetje compulsief imho.

En auto git reset hard is de dev equivalent van een shock collar.. (Local history ftw?)

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:29
Kalentum schreef op zaterdag 27 augustus 2022 @ 19:40:
[...]


Wat ik wel heb gemerkt met eerst test schrijven is dat ik veel beter nadenk over de signatures van functies en constructors... dus dat je ook sneller op SOLID code uitkomt, kleine classes enzo, een beetje dit verhaal. Je voorbeeld van "alleen maar controleren of een stuk code een ander stuk code aanroept" is ook zoiets: het is toch juist goed dat je valideert dat code X als gevolg heeft dat bv method Y op class Z wordt aangeroepen met die en die parameters? Dus dat test ik ook.
Dat is -imho- net het punt van TDD: het gaat niet enkel over testen, maar het gaat in eerste instantie ook over design. Je gaat nadenken over hoe je die class / function wil gaan gebruiken. Je denkt na over de api. Eigenlijk zou het beter Test Driven Design heten :)

https://fgheysels.github.io/


  • OMX2000
  • Registratie: Januari 2001
  • Laatst online: 22-03 20:46

OMX2000

By any means necessary...

DevWouter schreef op maandag 29 augustus 2022 @ 09:43:
[...]


Mijn ervaring is dat bij het correct toepassen van TDD er je altijd een beter design zal zijn en er altijd minder bugs zal zijn. En hier wordt "zal" gebruikt als in dat het 100% plaats zal vinden. In de anekdote hierboven was de oplossing een Wikipedia: Strategy pattern wiens winst op dag 3 zich meteen uitbetaalde vanwege herbruikbaarheid.

Overigens mocht iemand een anekdote willen schrijven van wanneer die persoon overtuigd raakte van DDD dan hoor ik het graag. Voor mijn gevoel is het altijd iets dat door een blender gehaald is gezien ik elk op een andere manier ken. Naar mijn idee wordt DDD pas goed als het een keer compleet herschreven wordt, maar de kans is zeer groot dat DDD net zoals TDD meer vereist dan een paar boeken en youtube filmpjes.
Wat ik bedoel is dat TDD gaat om Design en unit testing is een middel om dat design te kunnen maken. Vandaar dat de term Design Driven Development beter was geweest.

Domain Driven Design is natuurlijk wat anders. Maar goed ik denk dat je dat al begreep.

Dè developers podcast in je moerstaal : CodeKlets Podcast


  • OMX2000
  • Registratie: Januari 2001
  • Laatst online: 22-03 20:46

OMX2000

By any means necessary...

whoami schreef op maandag 29 augustus 2022 @ 11:33:
[...]

Dat is -imho- net het punt van TDD: het gaat niet enkel over testen, maar het gaat in eerste instantie ook over design. Je gaat nadenken over hoe je die class / function wil gaan gebruiken. Je denkt na over de api. Eigenlijk zou het beter Test Driven Design heten :)
Jaaa. Test Driven Design is de perfecte term. Design Driven Development mag op plek 2 ;)

Dè developers podcast in je moerstaal : CodeKlets Podcast


  • OMX2000
  • Registratie: Januari 2001
  • Laatst online: 22-03 20:46

OMX2000

By any means necessary...

Kalentum schreef op maandag 29 augustus 2022 @ 11:17:
[...]


Ik bedoelde eigenlijk meer dat @OMX2000 lijkt te suggereren dat je tests door een tweede dev moet laten schrijven.

dus als ik een code heb als dit;
code:
1
2
3
function isEven(i) {
  return i %2 == 0;
}


Dat dan iemand anders de test zou moeten schrijven. Dat lijkt mij een beetje onzin.
Het gaat me erom dat, zoals iemand hier al eerder zei, de slager niet zijn eigen vlees moet keuren. Dat kun je afvangen door PR te laten peer reviewen. Maar in mijn ogen is het nog beter door samen tests te schrijven.

Dat hoeft niet voor triviale tests, maar die zijn dan ook niet het spannendste. Maar in je unit tests wil je o.a. naar voren laten komen wat de code functioneel moet doen (beetje richting Behaviour Driven Development), ook tot uiting brengt wat de samenhang van code is, en een vangnet voor refactoring.

Dekkende unit tests zijn vrij eenvoudig te schrijven, zonder dat ze echt wat toevoegen. En dat is, zoals ookal eerder is gezegd hier, meestal het geval als je achteraf unit tests gaat schrijven. En vaak gebeurt dat om een bepaalde dekkingsgraad te behalen, omdat je bijvoorbeeld SonarQube blij wilt maken.

Dè developers podcast in je moerstaal : CodeKlets Podcast


  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 15:05
Kalentum schreef op maandag 29 augustus 2022 @ 11:17:
[...]


Ik bedoelde eigenlijk meer dat @OMX2000 lijkt te suggereren dat je tests door een tweede dev moet laten schrijven.

dus als ik een code heb als dit;
code:
1
2
3
function isEven(i) {
  return i %2 == 0;
}


Dat dan iemand anders de test zou moeten schrijven. Dat lijkt mij een beetje onzin.
Ja, maar die code is ook volkomen triviaal. Je zult ook geen verzoek krijgen om een systeem waarin je een cijfer invoert waarna het systeem aangeeft of het wel of niet even is. :P

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


  • roeleboel
  • Registratie: Maart 2006
  • Niet online

roeleboel

en zijn beestenboel

Mugwump schreef op maandag 29 augustus 2022 @ 11:49:
[...]


Ja, maar die code is ook volkomen triviaal. Je zult ook geen verzoek krijgen om een systeem waarin je een cijfer invoert waarna het systeem aangeeft of het wel of niet even is. :P
De populariteit van https://www.npmjs.com/package/is-even spreekt u tegen >:)

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

NPM spreekt alles tegen. :)

Less alienation, more cooperation.


  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 15:05
Ik zei systeem, niet library. :P
Dat er libraries zijn met allemaal van dit soort functies (of zoals in NPM het onzalige idee om ze allemaal in losse packages te stoppen) lijkt me logisch.

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


  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 14:29
Mugwump schreef op maandag 29 augustus 2022 @ 12:39:
[...]


Ik zie systeem, niet library. :P
Dat er libraries zijn met allemaal van dit soort functies (of zoals in NPM het onzalige idee om ze allemaal in losse packages te stoppen) lijkt me logisch.
Het probleem is ook niet dat er zulke packages zijn, maar dat NPM (en Yarn, etc.) alles lokaal downloaden. Niet alleen de source code nodig voor development en runtime, maar ook de documentatie, tests en voorbeelden. Dan krijg je packages die runtime nog geen 1kB in beslag nemen wel 10-20 MB ruimte in beslagen nemen bij het ontwikkelen. Dus voor je het weet heb je 5 GB aan node_modules, terwijl alles bij elkaar misschien 30 MB aan javascript is. En als je dan een repository meerdere keren gecloned heb om gelijktijdig aan meerdere branches te werken, wordt je daar niet bepaald vrolijk van.

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 15:05
ThomasG schreef op maandag 29 augustus 2022 @ 14:25:
[...]
Het probleem is ook niet dat er zulke packages zijn, maar dat NPM (en Yarn, etc.) alles lokaal downloaden. Niet alleen de source code nodig voor development en runtime, maar ook de documentatie, tests en voorbeelden. Dan krijg je packages die runtime nog geen 1kB in beslag nemen wel 10-20 MB ruimte in beslagen nemen bij het ontwikkelen. Dus voor je het weet heb je 5 GB aan node_modules, terwijl alles bij elkaar misschien 30 MB aan javascript is. En als je dan een repository meerdere keren gecloned heb om gelijktijdig aan meerdere branches te werken, wordt je daar niet bepaald vrolijk van.
Ja ik weet hoe het werkt. Ik bedoelde ook niet dat de micropackages het enige probleem van NPM waren. :P
Doe zelf niet heel veel meer met front-end, maar voor AWS infra gebruiken we wel CDK obv typescript en dus ook NPM. AWS heeft nu een nieuwe versie, maar de eerste versie had echt 89729432 losse packages voor alle kleine componentjes, extensions en ga zo maar door. Was ook heel fijn als je met semantic versioning altijd de meest recente minor versioning pakte, want als AWS in z'n wekelijkse NPM update cyclus zat kon je gewoon niet builden. Je kreeg namelijker versie 1.12 van componentje 1 en 1.13 van componentje 2 en die waren uiteraard weer niet onderling compatible. :')

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


  • DevWouter
  • Registratie: Februari 2016
  • Laatst online: 13:55
phex schreef op maandag 29 augustus 2022 @ 11:17:
[...]


Ik heb serieus met smacht gewacht op jouw reactie.

Misschien komt het door je extreme voorbeeld.

Maar dingen kunnen refactoren zonder side effects lijkt mij een van de meest waardevolle eigenschappen van TDD.

Ben je niet gewoon al je tests in leven aan het houden omdat het bad practice is om tests te verwijderen? Voelt een beetje compulsief imho.

En auto git reset hard is de dev equivalent van een shock collar.. (Local history ftw?)
Allereerst was het ook zeer dogmatisch (wat jij compulsief noemt) maar dat was omdat ik van mening was dat TDD zelfs onder de meeste absurde regels zou breken. Maar tot mijn verbazing kon ik door elke fout heen werken.

Overigens mocht de testen ten alle tijden op elke manier aangepast worden. Maar het "echte development" moest altijd door een test gedreven zijn.

En ja, het was inderdaad shock therapie, maar daardoor kon ik niet afsnijden en fouten manieren aanleren. Overigens kwam rond die tijd Kent Beck met test && commit || revert en die deed het met een automatisch tooltje terwijl ik elke keer handmatig het intikte. Ik moet dat idee nog steeds eens proberen :9

"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


  • bwerg
  • Registratie: Januari 2009
  • Niet online

bwerg

Internettrol

Lol.
Dependencies (1)

is-odd
Troll is obvious.

[Voor 3% gewijzigd door bwerg op 02-09-2022 12:42]

Heeft geen speciale krachten en is daar erg boos over.


  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 14:30

Douweegbertje

Wat kinderachtig.. godverdomme

Ik kwam dit tegen:

En vervolgens zijn originele blog hoe die daar aan kwam: https://kevinkuchta.com/2018/03/lambda-only-url-shortener/

I'm not even mad.

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
En toen bleek mijn DNS provider / registrar al uren een storing te hebben, waar ook niet over gecommuniceerd is en een DuckDuckGo zoekopdracht maar moet leiden tot een Reddit resultaat waar iemand dus al eerder vroeg van "Porkbun is kaput?".

Zucht, dus maar weer op zoek naar wat anders. Nadat ik na het kopen van de domeinen vorig jaar ook al issues had waarbin een domein ineens alleen maar errors gaf. Support / chat gecontacteerd, en die bleef maar bezig over "maar heb je bij webhosting provider ook de boel geconfigureerd", ook op mijn herhaaldelijk aankaarten dat een "dig <domainnaam>" daadwerkelijk een SERVFAIL resultaat gaf en het dus niks met hosting te maken had. En toen ineens stuurde die "het werkt nu, succes ermee". Oftewel: mijn ervaringen waren al niet al te positief.
Uiteraard zou ik Porkbun kunnen aanhouden als registrar voor de prijs met een goedkope/gratis nameserver aanbieder. Maar de grote jongens als Cloudflare hoeft van mij ook niet perse. Wellicht dan toch maar alles bij TransIP onder brengen voor de dubbele prijs. Daar heb ik nog nooit problemen gehad.

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 14:30

Douweegbertje

Wat kinderachtig.. godverdomme

RobertMe schreef op dinsdag 6 september 2022 @ 09:24:
En toen bleek mijn DNS provider / registrar al uren een storing te hebben, waar ook niet over gecommuniceerd is en een DuckDuckGo zoekopdracht maar moet leiden tot een Reddit resultaat waar iemand dus al eerder vroeg van "Porkbun is kaput?".

Zucht, dus maar weer op zoek naar wat anders. Nadat ik na het kopen van de domeinen vorig jaar ook al issues had waarbin een domein ineens alleen maar errors gaf. Support / chat gecontacteerd, en die bleef maar bezig over "maar heb je bij webhosting provider ook de boel geconfigureerd", ook op mijn herhaaldelijk aankaarten dat een "dig <domainnaam>" daadwerkelijk een SERVFAIL resultaat gaf en het dus niks met hosting te maken had. En toen ineens stuurde die "het werkt nu, succes ermee". Oftewel: mijn ervaringen waren al niet al te positief.
Uiteraard zou ik Porkbun kunnen aanhouden als registrar voor de prijs met een goedkope/gratis nameserver aanbieder. Maar de grote jongens als Cloudflare hoeft van mij ook niet perse. Wellicht dan toch maar alles bij TransIP onder brengen voor de dubbele prijs. Daar heb ik nog nooit problemen gehad.
Tja, ik heb ook alles bij TransIP, maar ben dat toch aan het afbouwen. Mede omdat ik niet meer zo actief er mee bezig ben. Het grootste probleem wat ik had met TransIP is dat ze geen 'cname forwarding' kunnen doen. Dus veel plezier als je een domein wilt koppelen aan een S3 bucket of whatever.
Alles staat wel bij TransIP maar Cloudflare regelt mijn DNS meuk :)

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
Douweegbertje schreef op dinsdag 6 september 2022 @ 11:58:
[...]


Tja, ik heb ook alles bij TransIP, maar ben dat toch aan het afbouwen. Mede omdat ik niet meer zo actief er mee bezig ben. Het grootste probleem wat ik had met TransIP is dat ze geen 'cname forwarding' kunnen doen. Dus veel plezier als je een domein wilt koppelen aan een S3 bucket of whatever.
Alles staat wel bij TransIP maar Cloudflare regelt mijn DNS meuk :)
Zoveel doe ik er dan weer niet mee. Dus met een paar A / AAAA, MX en CNAME records ben ik al tevreden :p Alleen nu schijt irritant dat mijn eigen mailadres er nu uit ligt (ja, ze zijn nog steeds offline). Bij een grote DNS provider de nameserver afnemen kan. Maarja, ik ben niet zo'n fan van dingen bij de grote jongens plaatsen (nog naast de rompslomp van twee systemen). Denk dus dat ik dadelijk maar eens een verhuizing naar TransIP ga doen. Gek genoeg lijken andere (Nederlandse?) providers ook niet echt goedkoper te zijn. Of in ieder geval niet die met "lego" support (Lets Encrypt Go client, in gebruik door Traefik). En dat is wel echt een harde eis die ik heb.

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 14:30

Douweegbertje

Wat kinderachtig.. godverdomme

RobertMe schreef op dinsdag 6 september 2022 @ 12:07:
[...]

Zoveel doe ik er dan weer niet mee. Dus met een paar A / AAAA, MX en CNAME records ben ik al tevreden :p Alleen nu schijt irritant dat mijn eigen mailadres er nu uit ligt (ja, ze zijn nog steeds offline). Bij een grote DNS provider de nameserver afnemen kan. Maarja, ik ben niet zo'n fan van dingen bij de grote jongens plaatsen (nog naast de rompslomp van twee systemen). Denk dus dat ik dadelijk maar eens een verhuizing naar TransIP ga doen. Gek genoeg lijken andere (Nederlandse?) providers ook niet echt goedkoper te zijn. Of in ieder geval niet die met "lego" support (Lets Encrypt Go client, in gebruik door Traefik). En dat is wel echt een harde eis die ik heb.
Niet om hier een reclamepraatje te maken, maar je laat alles bij TransIP en CF leest al je records in. Daar bepaal je wat CF wel/niet moet routen en je kunt extra records toevoegen (zelfs nog bij TransIP).
Nu weet ik het niet meer zeker, maar volgens mij is het zelfs gratis (? not sure).

M.a.w. het is wat makkelijker. Voorbeeldje van een foto gevonden via Google;

[Voor 3% gewijzigd door Douweegbertje op 06-09-2022 12:11]


  • RobertMe
  • Registratie: Maart 2009
  • Nu online
Douweegbertje schreef op dinsdag 6 september 2022 @ 12:11:
[...]


Niet om hier een reclamepraatje te maken, maar je laat alles bij TransIP en CF leest al je records in. Daar bepaal je wat CF wel/niet moet routen en je kunt extra records toevoegen (zelfs nog bij TransIP).
Nu weet ik het niet meer zeker, maar volgens mij is het zelfs gratis (? not sure).

M.a.w. het is wat makkelijker. Voorbeeldje van een foto gevonden via Google;

[Afbeelding]
Cloudflare pulled dus de records van TransIP? Dat is dus wel netjes.
Maarja, als ik naar TransIP ga kan het ook prima daar staan :p Als ze dit ook kunnen met Porkbun blijven ze door de prijs wel interessant. Want hun eigen site doet het nu zelfs ook nog (NS staat ook op awsdns.com).

  • Koenvh
  • Registratie: December 2011
  • Laatst online: 22-03 19:04

Koenvh

Hier tekenen: ______

RobertMe schreef op dinsdag 6 september 2022 @ 12:16:
[...]

Cloudflare pulled dus de records van TransIP? Dat is dus wel netjes.
Maarja, als ik naar TransIP ga kan het ook prima daar staan :p Als ze dit ook kunnen met Porkbun blijven ze door de prijs wel interessant. Want hun eigen site doet het nu zelfs ook nog (NS staat ook op awsdns.com).
TransIP DNS heeft er ook wel eens uitgelegen (zeg ik uit ervaring :/ ). Ik zou toch eens overwegen om naar Cloudflare, deSEC, of Hurricane Electric FreeDNS te kijken als je wat meer betrouwbaarheid wilt.

🠕 This side up


  • RobertMe
  • Registratie: Maart 2009
  • Nu online
Koenvh schreef op dinsdag 6 september 2022 @ 13:59:
[...]

TransIP DNS heeft er ook wel eens uitgelegen (zeg ik uit ervaring :/ ). Ik zou toch eens overwegen om naar Cloudflare, deSEC, of Hurricane Electric FreeDNS te kijken als je wat meer betrouwbaarheid wilt.
Dat TransIP ook niet heilig is ben ik mij bewust van :p. Maar ik ben ook geen fan ervan om het dan maar bij een Cloadflare / Google DNS / Azure thingy / AWS thingy te gooien. deSEC ziet er dan wel interessant uit, als zijnde (Duitse) non-profit organisatie.

  • Koenvh
  • Registratie: December 2011
  • Laatst online: 22-03 19:04

Koenvh

Hier tekenen: ______

RobertMe schreef op dinsdag 6 september 2022 @ 14:36:
[...]

Dat TransIP ook niet heilig is ben ik mij bewust van :p. Maar ik ben ook geen fan ervan om het dan maar bij een Cloadflare / Google DNS / Azure thingy / AWS thingy te gooien. deSEC ziet er dan wel interessant uit, als zijnde (Duitse) non-profit organisatie.
deSEC is ook leuk, vooral als je wilt experimenteren met de nieuwste toevoegingen aan DNS (zoals het
HTTPS en SVCB record), en de oprichters zijn aardige mensen. :) Oh, en deSEC is open source: https://github.com/desec-io

Ik word verder niet betaald door deSEC om dat te zeggen hoor :P

🠕 This side up


  • RobertMe
  • Registratie: Maart 2009
  • Nu online
Koenvh schreef op dinsdag 6 september 2022 @ 15:56:
[...]

deSEC is ook leuk, vooral als je wilt experimenteren met de nieuwste toevoegingen aan DNS (zoals het
HTTPS en SVCB record)
Die dingen had ik gezien ja. Maar had ik nog nooit van gehoord :p

Ik zit alleen te zoeken. Is dit nu wel wat ik zoek? Als ik het als algemene authoritive nameserver kan gebruiken dan verwacht ik ook ergens te kunnen vinden hoe ik dit koppel aan eender welke registrar? Als in: in dit geval zal ik bij Porkbun dan ergens de NS records / configuratie moeten aanpassen, maar wat dit dan moet zijn (welke servers dus) zie ik nergens terug / gedocumenteerd waar dat zou staan. En ik zie desec voornamelijk spreken over het dyndns deel (dat dan <foo>.desec.io is?). Want in dit geval gaat het mij dus om een fictieve robertme.dev die ik dan wil onder brengen, en niet een fictieve robertme.desec.io.

  • Koenvh
  • Registratie: December 2011
  • Laatst online: 22-03 19:04

Koenvh

Hier tekenen: ______

RobertMe schreef op dinsdag 6 september 2022 @ 16:38:
[...]

Die dingen had ik gezien ja. Maar had ik nog nooit van gehoord :p

Ik zit alleen te zoeken. Is dit nu wel wat ik zoek? Als ik het als algemene authoritive nameserver kan gebruiken dan verwacht ik ook ergens te kunnen vinden hoe ik dit koppel aan eender welke registrar? Als in: in dit geval zal ik bij Porkbun dan ergens de NS records / configuratie moeten aanpassen, maar wat dit dan moet zijn (welke servers dus) zie ik nergens terug / gedocumenteerd waar dat zou staan. En ik zie desec voornamelijk spreken over het dyndns deel (dat dan <foo>.desec.io is?). Want in dit geval gaat het mij dus om een fictieve robertme.dev die ik dan wil onder brengen, en niet een fictieve robertme.desec.io.
Je bedoelt gewoon dit toch? (DNSSEC is uiteraard optioneel)


Je hoeft alleen ns1.desec.io en ns2.desec.org bij Porkbun door te geven (en een aantal uur te wachten totdat je TLD ook de nieuwe nameservers heeft overgenomen en de resolvers de oude niet meer in de cache hebben staan).

🠕 This side up


  • RobertMe
  • Registratie: Maart 2009
  • Nu online
Koenvh schreef op dinsdag 6 september 2022 @ 17:14:
[...]

Je bedoelt gewoon dit toch? (DNSSEC is uiteraard optioneel)
[Afbeelding]

Je hoeft alleen ns1.desec.io en ns2.desec.org bij Porkbun door te geven (en een aantal uur te wachten totdat je TLD ook de nieuwe nameservers heeft overgenomen en de resolvers de oude niet meer in de cache hebben staan).
Yes, dat :)

Dat valt echt nergens te vinden, in de documentatie etc. Maar gevoelsmatig valt er überhaupt vrij weinig te vinden over deSEC, behalve hun eigen documentatie die niet verder komt dan API calls. Maar, ik ga het op basis van deze info eens proberen. (Uiteraard via de simpelere/beperktere UI).

  • WernerL
  • Registratie: December 2006
  • Laatst online: 15:18
RobertMe schreef op dinsdag 6 september 2022 @ 17:34:
[...]

Yes, dat :)

Dat valt echt nergens te vinden, in de documentatie etc. Maar gevoelsmatig valt er überhaupt vrij weinig te vinden over deSEC, behalve hun eigen documentatie die niet verder komt dan API calls. Maar, ik ga het op basis van deze info eens proberen. (Uiteraard via de simpelere/beperktere UI).
Op de homepage staat onderaan een gele wereldkaart waarop je deze info kunt vinden. Amsterdam is ns1.desec.io. Londen is ns2.desec.org.

Maar echt makkelijk vinden was dat niet mee. :P Had dat in eerste instantie ook gemist.

  • RobertMe
  • Registratie: Maart 2009
  • Nu online
WernerL schreef op woensdag 7 september 2022 @ 09:22:
[...]


Op de homepage staat onderaan een gele wereldkaart waarop je deze info kunt vinden. Amsterdam is ns1.desec.io. Londen is ns2.desec.org.

Maar echt makkelijk vinden was dat niet mee. :P Had dat in eerste instantie ook gemist.
Dat kon natuurlijk ook de nameserver zijn die ze hanteren voor hun dyndns systeem :+
Maar inderdaad, in zoverre had ik ook nog niet naar dat kaartje gekeken.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:41

.oisyn

Moderator Devschuur® / Cryptocurrencies

Demotivational Speaker

I was today years old toen ik erachter kwam dat het "mother lode" is, niet "mother load", wat de betekenis van lode is, en waarom Lode Runner dus Lode Runner heet (8>

If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"


  • Laurens-R
  • Registratie: December 2002
  • Laatst online: 10-02 23:16
.oisyn schreef op donderdag 15 september 2022 @ 14:03:
I was today years old toen ik erachter kwam dat het "mother lode" is, niet "mother load", wat de betekenis van lode is, en waarom Lode Runner dus Lode Runner heet (8>
*Mind blown* ... opgezocht dankzij deze post...

  • Laurens-R
  • Registratie: December 2002
  • Laatst online: 10-02 23:16
Wauw het is stil hier... :/

  • azerty
  • Registratie: Maart 2009
  • Laatst online: 15:33
Sorry, moet mijn PC eerst herinstalleren met Windows nadat ik daarnet mijn booster ben gaan halen... Zal nog eventjes duren :+

  • Hipska
  • Registratie: Mei 2008
  • Laatst online: 14:30
De Quickreply was zelfs verdwenen O-)

Bitcoin.de


  • ElkeBxl
  • Registratie: Oktober 2014
  • Laatst online: 10:47

ElkeBxl

Tassendraagster

Kom, vertel eens een goeie mop om er weer wat sfeer in te brengen :)

Without nipples, boobs are pointless - 365 project - In mijn hoofd is het alle dagen Kerstmis - What type of bees make milk? Boobies! - What type of bees are scary? BoooOOOOOooobeees! - Cactusliefhebster


  • Gropah
  • Registratie: December 2007
  • Niet online

Gropah

Admin Softe Goederen

Oompa-Loompa 💩

Sorry, het opstarten duurt hier wat lang. Ik doe bijna 3 minuten over om op windows in te loggen, waarna alle applicatie's als een zak stront door een trechter laden. Ik mag blij zijn als ik uberhaupt aan werk toe kom... ;(

  • Laurens-R
  • Registratie: December 2002
  • Laatst online: 10-02 23:16
ElkeBxl schreef op donderdag 22 september 2022 @ 10:29:
[...]

Kom, vertel eens een goeie mop om er weer wat sfeer in te brengen :)
Nou ok, een dadjoke dan maar:

Een vriend van mij heeft geïnvesteerd in aandelen van de Johma
spoiler:
Hij wil er een slaatje uit slaan.



*badum....... tsssss...... *


Ik daag jullie uit: Wie kan er een nog slechtere grap maken :+

[Voor 3% gewijzigd door Laurens-R op 22-09-2022 11:08]


  • RagingPenguin
  • Registratie: December 2012
  • Niet online
ElkeBxl schreef op donderdag 22 september 2022 @ 10:29:
[...]

Kom, vertel eens een goeie mop om er weer wat sfeer in te brengen :)
"Windows kan tegenwoordig zelf drivers updaten"

Mijn 1 maand oude laptop met Windows 11 en BSOD's door een 5 jaar oude Realtek driver: :o

  • Laurens-R
  • Registratie: December 2002
  • Laatst online: 10-02 23:16
RagingPenguin schreef op donderdag 22 september 2022 @ 10:47:
[...]


"Windows kan tegenwoordig zelf drivers updaten"

Mijn 1 maand oude laptop met Windows 11 en BSOD's door een 5 jaar oude Realtek driver: :o
Hey dacht dat je een grap ging maken, dit is gewoon een Postbus 51 mededeling... "Je bent een rund als je met Windows stunt"

  • wackmaniac
  • Registratie: Februari 2004
  • Laatst online: 20-03 08:42
Laurens-R schreef op donderdag 22 september 2022 @ 10:42:
[...]


Nou ok, een dadjoke dan maar:

Een vriend van mij heeft geïnvesteerd in aandelen van de Johma
Hij wil er een slaatje uit slaan.


*badum....... tsssss...... *


Ik daag jullie uit: Wie kan er een nog slechtere grap maken :+
Challenge accepted!

Waarom stinkt een scheet?

spoiler:
Dan hebben dove mensen er ook wat aan.

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


  • Laurens-R
  • Registratie: December 2002
  • Laatst online: 10-02 23:16
wackmaniac schreef op donderdag 22 september 2022 @ 11:05:
[...]


Challenge accepted!

Waarom stinkt een scheet?

spoiler:
Dan hebben dove mensen er ook wat aan.
:D De lat ligt alweer een stuk lager :+

  • RagingPenguin
  • Registratie: December 2012
  • Niet online
Laurens-R schreef op donderdag 22 september 2022 @ 10:53:
[...]


Hey dacht dat je een grap ging maken, dit is gewoon een Postbus 51 mededeling... "Je bent een rund als je met Windows stunt"
Wel, ik kan nu nog wel lachen om Microsofts Q&A niveau. Misschien over een jaar niet meer :P

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 14:29
Het is van vlees, maar ruikt naar vis.
spoiler:
De visboer

  • DevWouter
  • Registratie: Februari 2016
  • Laatst online: 13:55
Twee mannen zitten wat te praten met elkaar, vraagt de ene aan de andere of hij zijn vrouw weleens in haar ogen aan kijkt als hij de liefde bedrijft. Waarop de man antwoordt “Nou, dat heb ik weleens gedaan maar toen zag ik de woede in haar ogen” De man kijkt wat verbaast en vraagt “Hoezo, woede?” Nou zegt de andere man: “Ze stond buiten door het raam te kijken!”

"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


  • RobertMe
  • Registratie: Maart 2009
  • Nu online
RagingPenguin schreef op donderdag 22 september 2022 @ 10:47:
[...]


"Windows kan tegenwoordig zelf drivers updaten"

Mijn 1 maand oude laptop met Windows 11 en BSOD's door een 5 jaar oude Realtek driver: :o
Paar weken terug een nieuwe laptop gekocht. Als Linux gebruiker maar meteen opnieuw installeren met dualboot. Na de installatie van Windows 11 start hij mooi opnieuw op en moet je een aantal stappen doorlopen. Een van die stappen is verbinding maken met internet. Guess what? Laptop heeft geen ethernet (zelfs alleen 2x USB-C, 1x USB-A / 3 en 1x audio jack). En de wifi adapter werd niet herkend. Dat is ook knap lastig zeg maar. Ergens in een doos heb ik nog een USB netwerkadapter liggen die bij het installatiepakket van "Essent@home" zat (van begin 2000 dus) en die werd ook al niet herkend. Gelukkig had ik wel al een USB-C dockje / dongle besteld, met ethernet ingebakken. Dag later toen die gearriveerd was kon ik dus pas verder met de installatie van Windows.

Daarna Arch Linux geïnstalleerd, en die herkende de kaart wel en werkte zonder problemen. Ok, ik lieg, blijkbaar stond wifi ineens uit en moest ik die met rfkill aan zetten. Maar ik vermoed dat een andere distri wel gewerkt zou hebben. En Windows deed het na installatie ook op wifi. Dus het was niet dat die letterlijk hardwarematig uit stond of zo. Als die tijdens Windows installatie al uit stond dan moet die hem na installatie al vanzelf aan hebben gezet i.p.v. dat meteen tijdens installatie te doen. Ergo: lijkt mij nog steeds het meest voor de hand liggend dat Windows daadwerkelijk de driver miste.

Kaartje was overigens een MediaTek 7921 iets. Volgens de Tweakers Pricewatch zou er een Realtek in moeten zitten waar alleen maar problemen mee zijn. Dus toen ook maar meteen een Intel AX200 besteld (waarbij de Amazon listing ook nog eens de desktop kit was aan de prijs van alleen de adapter <+:) ).

  • DaWin
  • Registratie: Juni 2012
  • Laatst online: 15:42

DaWin

beep boop

Yes, mijn specialiteit!

Hoe noem je een hond zonder pootjes?
spoiler:
Dat maakt niet uit, hij komt toch niet

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:41

.oisyn

Moderator Devschuur® / Cryptocurrencies

Demotivational Speaker

.oisyn schreef op donderdag 15 september 2022 @ 14:03:
I was today years old toen ik erachter kwam dat het "mother lode" is, niet "mother load", wat de betekenis van lode is, en waarom Lode Runner dus Lode Runner heet (8>
Hey, dit was niet de coffeecorner 8)7. *schop*

If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"


  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

DaWin schreef op donderdag 22 september 2022 @ 12:32:
Yes, mijn specialiteit!

Hoe noem je een hond zonder pootjes?
spoiler:
Dat maakt niet uit, hij komt toch niet
Matt.

Less alienation, more cooperation.


  • Lethalis
  • Registratie: April 2002
  • Niet online
Wat een dag... in ons ERP pakket - dat een hele sloot aan dependencies en ook weer transitieve dependencies heeft - kwam een runtime assembly binding error voor.

In mijn zoektocht vandaag wat handige gratis tooltjes ontdekt, namelijk ILSpy en Fusion++. Ik heb het uiteindelijk door Fusion++ opgelost.

"Did you ever have the pleasure to analyze assembly binding logs in .NET?"

Bijna weekend _/-\o_

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


  • Ryur
  • Registratie: December 2007
  • Laatst online: 14:24
Lethalis schreef op vrijdag 23 september 2022 @ 15:09:
Wat een dag... in ons ERP pakket - dat een hele sloot aan dependencies en ook weer transitieve dependencies heeft - kwam een runtime assembly binding error voor.
Custom-made ERP pakket?
Of welke gebruik jij dan?

Ikzelf zit de laatste jaren ook in de ERP-wereld! Complex wereldje, maar wel heel leuk.

  • Lethalis
  • Registratie: April 2002
  • Niet online
Ryur schreef op woensdag 28 september 2022 @ 09:08:
[...]

Custom-made ERP pakket?
Of welke gebruik jij dan?

Ikzelf zit de laatste jaren ook in de ERP-wereld! Complex wereldje, maar wel heel leuk.
Custom pakket voor grossiers in automaterialen. Er zit in principe alles in; de financiële administratie, voorraadbeheer, order management, statistieken etc.

Bestaat al ruim 20 jaar overigens en is wel aan wat vernieuwing toe (Windows Forms pakket). Maar het blijft nog best lastig om al die functionaliteit in een webapplicatie te proppen.

Vooral omdat je bij het intikken van een order in 1 oogopslag over veel informatie moet kunnen beschikken. Bijvoorbeeld voorraad informatie in verschillende depots, maar ook bij leveranciers inclusief de prijzen en toegepaste kortingen, tot en met de route tijden zodat je kunt zien wanneer een klant over de artikelen kan beschikken.

Uiteraard zijn er ook standaard pakketten, maar de werkwijze van grossiers laat zich vaak lastig in een standaard stramien duwen, waardoor ze vaak graag bij ons komen (ons pakket heeft 100+ opties om allerlei workflows anders te laten lopen).

Dat is de andere uitdaging. Om al die complexiteit in een nieuw pakket te bouwen.

Maar ach, ik hoef me iig nooit te vervelen.

Collega van mij werkt overigens al jaren aan een shop portal die volledig is geïntegreerd, dat deel is wel modern (Angular, .NET 6, Docker). Zelfde geldt voor onze interne support site (die heb ik gemaakt).

Ik ben nog steeds met een prototype voor het web bezig. Al raak ik soms een beetje ondergesneeuwd door het werk aan het bestaande pakket. Nieuwe klanten, nieuwe wensen.

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


  • Firesphere
  • Registratie: September 2010
  • Laatst online: 20-03 23:23

Firesphere

Yoshis before Hoshis

Woah!

Meer dan een week geen post hier? :O

Anyways, ik ga vanaf November een nieuw titeltje aan m'n naam toevoegen: CTO
*O*

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!


  • scosec
  • Registratie: Februari 2016
  • Laatst online: 15-01 13:40
Firesphere schreef op vrijdag 7 oktober 2022 @ 01:06:
Woah!

Meer dan een week geen post hier? :O

Anyways, ik ga vanaf November een nieuw titeltje aan m'n naam toevoegen: CTO
*O*
Nice proficiat! d:)b

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 15:05
Firesphere schreef op vrijdag 7 oktober 2022 @ 01:06:
Woah!

Meer dan een week geen post hier? :O

Anyways, ik ga vanaf November een nieuw titeltje aan m'n naam toevoegen: CTO
*O*
Chief Tea Officer? :P

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


  • Firesphere
  • Registratie: September 2010
  • Laatst online: 20-03 23:23

Firesphere

Yoshis before Hoshis

Daar drink ik teveel koffie voor :9B

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!


  • azerty
  • Registratie: Maart 2009
  • Laatst online: 15:33
Als CTO verlies je wel het recht om hier te posten :+

  • Firesphere
  • Registratie: September 2010
  • Laatst online: 20-03 23:23

Firesphere

Yoshis before Hoshis

azerty schreef op vrijdag 7 oktober 2022 @ 13:15:
Als CTO verlies je wel het recht om hier te posten :+
Meh, momenteel ben ik toch Security Engineer, dus weinig devschuring :+

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!


  • Koenvh
  • Registratie: December 2011
  • Laatst online: 22-03 19:04

Koenvh

Hier tekenen: ______

azerty schreef op vrijdag 7 oktober 2022 @ 13:15:
Als CTO verlies je wel het recht om hier te posten :+
Mag ik jouw papieren zien waar staat dat je het recht hebt om hier te posten? :>

🠕 This side up


  • OMX2000
  • Registratie: Januari 2001
  • Laatst online: 22-03 20:46

OMX2000

By any means necessary...

Koenvh schreef op zaterdag 8 oktober 2022 @ 17:13:
[...]

Mag ik jouw papieren zien waar staat dat je het recht hebt om hier te posten? :>
Als ie zichzelf naar binnen heeft gehackt hoort ie hier wel thuis. ;)

Dè developers podcast in je moerstaal : CodeKlets Podcast


Acties:
  • +3Henk 'm!

  • Koenvh
  • Registratie: December 2011
  • Laatst online: 22-03 19:04

Koenvh

Hier tekenen: ______

OMX2000 schreef op zaterdag 8 oktober 2022 @ 17:19:
[...]


Als ie zichzelf naar binnen heeft gehackt hoort ie hier wel thuis. ;)

🠕 This side up


  • azerty
  • Registratie: Maart 2009
  • Laatst online: 15:33
Title is missing, hier zoals het hoort:


  • DevWouter
  • Registratie: Februari 2016
  • Laatst online: 13:55
@Koenvh en @azerty

"Uh... Mevrouw, heeft u al uw mail gecheckt? Nee? En u heeft de komende twee dagen geen internet meer? Damn..."

Overigens heeft tijdens mijn eerste studie een klasgenoot het cijfersysteem gehackt, dat was in de periode dat school het nog gaaf vond.

"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


  • ElkeBxl
  • Registratie: Oktober 2014
  • Laatst online: 10:47

ElkeBxl

Tassendraagster


Iemand koffie? 8)

Without nipples, boobs are pointless - 365 project - In mijn hoofd is het alle dagen Kerstmis - What type of bees make milk? Boobies! - What type of bees are scary? BoooOOOOOooobeees! - Cactusliefhebster


  • azerty
  • Registratie: Maart 2009
  • Laatst online: 15:33

  • Ghehe
  • Registratie: April 2011
  • Laatst online: 21-03 19:59

Ghehe

400 pound hacker

Via via weekje Devoxx gescoord :*) Nog mensen die daar in de coffee corner rondhangen deze week?
Een goeie evolutie (sinds ik er laatst was in 2012) is dat je nu ook straffe koffie kan scoren aan verschillende vendor booths. https://tweakers.net/i/STUUTR6ZJlAh78VKvwaFp0EMkHc=/full-fit-in/4000x4000/filters:no_upscale():fill(white):gifsicle():strip_exif()/f/image/sYR1wfv8M7DeTCUmrKcagxFf.gif?f=user_large


  • Firesphere
  • Registratie: September 2010
  • Laatst online: 20-03 23:23

Firesphere

Yoshis before Hoshis

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!


  • ElkeBxl
  • Registratie: Oktober 2014
  • Laatst online: 10:47

ElkeBxl

Tassendraagster

Without nipples, boobs are pointless - 365 project - In mijn hoofd is het alle dagen Kerstmis - What type of bees make milk? Boobies! - What type of bees are scary? BoooOOOOOooobeees! - Cactusliefhebster


  • HawVer
  • Registratie: Februari 2002
  • Laatst online: 15:13
Iemand ervaring met programmeertaal Rust? Wat ik tot nu toe zie ben ik wel van gecharmeerd.

http://hawvie.deviantart.com/


  • Koenvh
  • Registratie: December 2011
  • Laatst online: 22-03 19:04

Koenvh

Hier tekenen: ______

HawVer schreef op woensdag 12 oktober 2022 @ 16:37:
Iemand ervaring met programmeertaal Rust? Wat ik tot nu toe zie ben ik wel van gecharmeerd.
Ik heb alleen ervaring met Rust, Reinheid en Regelmaat :+

Volgens mij doet @.oisyn tegenwoordig dingen in Rust. 't Is een leuke taal, ik heb alleen niets wat ik per se in Rust zou willen doen.

🠕 This side up


  • DevWouter
  • Registratie: Februari 2016
  • Laatst online: 13:55
@Firesphere en @ElkeBxl



Verdikke, was er maar een website die dit soort fouten behandelde :+

"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


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:41

.oisyn

Moderator Devschuur® / Cryptocurrencies

Demotivational Speaker

HawVer schreef op woensdag 12 oktober 2022 @ 16:37:
Iemand ervaring met programmeertaal Rust? Wat ik tot nu toe zie ben ik wel van gecharmeerd.
Ben nog geen fan.

If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"


  • Merethil
  • Registratie: December 2008
  • Laatst online: 10:08
Not a giant rusty fan?

  • Antrax
  • Registratie: April 2012
  • Laatst online: 14:01
HawVer schreef op woensdag 12 oktober 2022 @ 16:37:
Iemand ervaring met programmeertaal Rust? Wat ik tot nu toe zie ben ik wel van gecharmeerd.
Geen tijd gehad om ermee te spelen maar het lijkt wel mature enough. Zijn er eigenlijk al productie like voorbeelden die in Rust zijn geschreven? (Ja ik weet dat ik kan Google-en).

.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!


  • Koenvh
  • Registratie: December 2011
  • Laatst online: 22-03 19:04

Koenvh

Hier tekenen: ______

Antrax schreef op woensdag 12 oktober 2022 @ 19:22:
[...]

Geen tijd gehad om ermee te spelen maar het lijkt wel mature enough. Zijn er eigenlijk al productie like voorbeelden die in Rust zijn geschreven? (Ja ik weet dat ik kan Google-en).
Ja, die zijn er.

:>

🠕 This side up


  • gekkie
  • Registratie: April 2000
  • Laatst online: 22-03 23:10
Hamerite al geprobeerd ?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:41

.oisyn

Moderator Devschuur® / Cryptocurrencies

Demotivational Speaker

Antrax schreef op woensdag 12 oktober 2022 @ 19:22:
[...]

Geen tijd gehad om ermee te spelen maar het lijkt wel mature enough. Zijn er eigenlijk al productie like voorbeelden die in Rust zijn geschreven? (Ja ik weet dat ik kan Google-en).
Embark heeft er bijna een hele gamestudio omheen gebouwd :P

(Not really though, Sony verplicht je om hun tooling te gebruiken voor de Playstation, dus nog geen toestemming voor Rust daar :z)

Maar eerlijk gezegd wordt ik er enthousiaster van dat er (en dat is ongetwijfeld ook mede dankzij Rust) steeds meer mensen van mening zijn dat C++ van zijn bagage af moet, en heb je initiatieven als Carbon en Cpp2.

[Voor 17% gewijzigd door .oisyn op 12-10-2022 23:09]

If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"


  • ElkeBxl
  • Registratie: Oktober 2014
  • Laatst online: 10:47

ElkeBxl

Tassendraagster

DevWouter schreef op woensdag 12 oktober 2022 @ 16:54:
@Firesphere en @ElkeBxl

[Afbeelding]

Verdikke, was er maar een website die dit soort fouten behandelde :+

/r/ProgrammerHumor >:)

Without nipples, boobs are pointless - 365 project - In mijn hoofd is het alle dagen Kerstmis - What type of bees make milk? Boobies! - What type of bees are scary? BoooOOOOOooobeees! - Cactusliefhebster


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-03 23:38
.oisyn schreef op woensdag 12 oktober 2022 @ 21:00:
[...]
Maar eerlijk gezegd wordt ik er enthousiaster van dat er (en dat is ongetwijfeld ook mede dankzij Rust) steeds meer mensen van mening zijn dat C++ van zijn bagage af moet, en heb je initiatieven als Carbon en Cpp2.
Ik ben erg benieuwd waarom je dat een beter idee vindt dan simpelweg iets pakken wat die bagage niet heeft?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 15:41

.oisyn

Moderator Devschuur® / Cryptocurrencies

Demotivational Speaker

farlane schreef op donderdag 13 oktober 2022 @ 22:27:
[...]

Ik ben erg benieuwd waarom je dat een beter idee vindt dan simpelweg iets pakken wat die bagage niet heeft?
De voorbeelden die ik noemde hebben die bagage ook niet. Maar wél de interop met oude code. Dat is met iets als Rust wat lastiger.

If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"


  • azerty
  • Registratie: Maart 2009
  • Laatst online: 15:33


Ik snap hem niet? :?

O-)

[Voor 34% gewijzigd door azerty op 13-10-2022 22:36]


  • DevWouter
  • Registratie: Februari 2016
  • Laatst online: 13:55
Gadver. Ik had jouw laatste smiley niet gezien. _O-
spoiler:
de website waar @ElkeBxl naar verwees was de status pagina van stackoverflow.com (https://www.stackstatus.net/), de grap is dat @ElkeBxl er een recursief verhaal van maak wat de snelste methode is om een StackOverflowException te krijgen.

[Voor 4% gewijzigd door DevWouter op 14-10-2022 00:25]

"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

Pagina: 1 ... 22 ... 26 Laatste

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.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee