de waarde tussen 0 en 1Dido schreef op woensdag 18 januari 2023 @ 10:39:
[...]
Welke 10 waardes worden er volgens jou gechecked dan?
Alle voorbeelden (en het orgineel) lijken me toch echt ranges van waardes te checken?
Als jij als variable -5 of 69 invoert krijg je dus gewoon 100% terug
Heuveltjes CPU geschiedenis door de jaren heen : AMD 486dx4 100, Cyrix PR166+, Intel P233MMX, Intel Celeron 366Mhz, AMD K6-450, AMD duron 600, AMD Thunderbird 1200mhz, AMD Athlon 64 x2 5600, AMD Phenom X3 720, Intel i5 4460, AMD Ryzen 5 3600 5800x3d
Dat zijn er, in het geval van een double, heeeeeel veel, niet eentjeheuveltje schreef op woensdag 18 januari 2023 @ 10:44:
de waarde tussen 0 en 1
Ja, daar ging de hele discussie over de parameternaam dus over. Maar inderdaad, er wordt ook geen sanity check op de meegegeven waarde gedaan. Daar was ook al eerder op gereageerd (alsook op het idee om 69 af te keuren als "geen geldige waarde voor een percentage") dus laten we die disussie niet nog een keer oprakelenAls jij als variable -5 of 69 invoert krijg je dus gewoon 100% terug
1023*252+1 om precies te zijn (als je 0 en 1 meetelt)Dido schreef op woensdag 18 januari 2023 @ 10:48:
[...]
Dat zijn er, in het geval van een double, heeeeeel veel, niet eentje
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.
https://learn.microsoft.c...erence/operators/patternsJanoz schreef op dinsdag 17 januari 2023 @ 14:52:
[...]
Ah oke, in dit geval moet ik je dan toch gelijk geven. Ik wist niet dat C# daadwerkelijk ranges in de cases op kon nemen. Ik vraag me trouwens wel af of dit werkt. De eerste case geldt namelijk ook in alle andere gevallen. Oh ik lees verkeerd, maar dan nog zitten er dubbele matches in
Wie du mir, so ich dir.
Ik ben van het kamp waar we de methodenamen met een kleine letter schrijven
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Daar ben je natuurlijk helemaal vrij inJanoz schreef op woensdag 18 januari 2023 @ 13:24:
[...]
Ik ben van het kamp waar we de methodenamen met een kleine letter schrijven
Wie du mir, so ich dir.
Leugens, er is maar 1 correctie manier en dat is mijn manier.
Komt d'r in, dan kö-j d’r oet kieken
Wanneer komt jouw boek uit ?D4NG3R schreef op woensdag 18 januari 2023 @ 13:29:
[...]
Leugens, er is maar 1 correctie manier en dat is mijn manier.
Wie du mir, so ich dir.
Verwijderd
1
2
3
4
5
6
7
8
9
10
11
| this.collect.date = new Date().toISOString(); let agent = navigator.userAgent; let needle = 'SamsungBrowser/'; let position = agent.toLowerCase().indexOf((needle).toLowerCase()); let url; if(position){ //if browser is SamsungBrowser/19.0 use this.collect.date otherwise Bootstrap will only be available on one subdomain (the init) and not on the (docs). url = this.collect.web.bin + 'Bootstrap.json?' + this.version + '.' + this.collect.date; } else { url = this.collect.web.bin + 'Bootstrap.json?' + this.version; } |
Hij denkt dat ie gecached is, maar dat is van een ander subdomein / domein, maar mijn menu doet het weer...
nog een klein vraagje, wat vinden jullie, vinden jullie `<script src="...?feature=value" ` een mooie optie om bijvoorbeeld die bootstap url op tegeven of hoe zouden jullie daarvoor een kleine configuratie maken ?
en het ergste is nog dat ik een checkout heb gemaakt van een week terug, want hij werkte toch had ik hierbij heel erg, nu moet ik mijn laatste week weer patchen) lekker...
[ Voor 18% gewijzigd door Verwijderd op 18-01-2023 22:59 ]
Toen ik dat zag dacht ik meer aan de volgende oplossing:Kalentum schreef op dinsdag 17 januari 2023 @ 13:06:
Nou dit had vast wel wat korter gekund:
https://github.com/MinBZK...s/NFCService.cs#L182-L206
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25private static string GetPercentageRounds(double percentage) { if (percentage == 0) return "⚪⚪⚪⚪⚪⚪⚪⚪⚪⚪"; if (percentage > 0.0 && percentage <= 0.1) return "🔵⚪⚪⚪⚪⚪⚪⚪⚪⚪"; if (percentage > 0.1 && percentage <= 0.2) return "🔵🔵⚪⚪⚪⚪⚪⚪⚪⚪"; if (percentage > 0.2 && percentage <= 0.3) return "🔵🔵🔵⚪⚪⚪⚪⚪⚪⚪"; if (percentage > 0.3 && percentage <= 0.4) return "🔵🔵🔵🔵⚪⚪⚪⚪⚪⚪"; if (percentage > 0.4 && percentage <= 0.5) return "🔵🔵🔵🔵🔵⚪⚪⚪⚪⚪"; if (percentage > 0.5 && percentage <= 0.6) return "🔵🔵🔵🔵🔵🔵⚪⚪⚪⚪"; if (percentage > 0.6 && percentage <= 0.7) return "🔵🔵🔵🔵🔵🔵🔵⚪⚪⚪"; if (percentage > 0.7 && percentage <= 0.8) return "🔵🔵🔵🔵🔵🔵🔵🔵⚪⚪"; if (percentage > 0.8 && percentage <= 0.9) return "🔵🔵🔵🔵🔵🔵🔵🔵🔵⚪"; return "🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵"; }
Via
[Twitter]
Klik hier om op linkedIn lid te worden van de Freelance Tweakers groep.
Dat wordt mooi als iemand daar 100 in gooit in plaats van 1.Jogai schreef op woensdag 18 januari 2023 @ 23:23:
[...]
Toen ik dat zag dacht ik meer aan de volgende oplossing:
[Afbeelding]
Helaas, 🔵 past niet in een char.Jogai schreef op woensdag 18 januari 2023 @ 23:23:
[...]
Toen ik dat zag dacht ik meer aan de volgende oplossing:
[Afbeelding]
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.
Dat lijkt me niet echt een probleem om pas op dat punt op te vangen, je moet gewoon zorgen dat je die percentages netjes normaliseert naar een getal van 0 tot 1 voor je bij je weergavelaag komt.sig69 schreef op woensdag 18 januari 2023 @ 23:45:
[...]
Dat wordt mooi als iemand daar 100 in gooit in plaats van 1.
Whut? * Reptile209 needs more comments on this. Morgen even herlezen en herschrijven denk ikVerwijderd schreef op woensdag 18 januari 2023 @ 22:52:
[...]
en het ergste is nog dat ik een checkout heb gemaakt van een week terug, want hij werkte toch had ik hierbij heel erg, nu moet ik mijn laatste week weer patchen) lekker...
Zo scherp als een voetbal!
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
Überhaupt waarom moet het korter? Dit lijkt mij typisch een functie die niet of nauwelijks aangepast gaat worden. Dan heb ik liever een functie die in een keer helemaal duidelijk is en misschien een beetje verbose is dan een hoogstandje van een oneliner (die ook nog eens niet werkt zoals @.oisyn al opmerkt).Jogai schreef op woensdag 18 januari 2023 @ 23:23:
[...]
Toen ik dat zag dacht ik meer aan de volgende oplossing:
[Afbeelding]
Mijn god wat een abonimatie.P1nGu1n schreef op donderdag 19 januari 2023 @ 09:17:
Ik kwam deze tegen, je kan het ook oplossen met binary search
[Afbeelding]
:fill(white):strip_exif()/f/image/lTlUGnj9S8rOIzcIXqI2HXvq.png?f=user_large)
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.
Ik had hier letterlijk geen twee keer over nagedacht; dit is prima code wmb. Ik had dit zelf kunnen schrijven en dit was een no-brainer review geweest. Al die meuk met binary searches, clamps, pad's etc, leuk hoor, maar dit is aanzienlijk duidelijker en makkelijker te veranderen.Kalentum schreef op dinsdag 17 januari 2023 @ 13:06:
Nou dit had vast wel wat korter gekund:
https://github.com/MinBZK...s/NFCService.cs#L182-L206
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25private static string GetPercentageRounds(double percentage) { if (percentage == 0) return "⚪⚪⚪⚪⚪⚪⚪⚪⚪⚪"; if (percentage > 0.0 && percentage <= 0.1) return "🔵⚪⚪⚪⚪⚪⚪⚪⚪⚪"; if (percentage > 0.1 && percentage <= 0.2) return "🔵🔵⚪⚪⚪⚪⚪⚪⚪⚪"; if (percentage > 0.2 && percentage <= 0.3) return "🔵🔵🔵⚪⚪⚪⚪⚪⚪⚪"; if (percentage > 0.3 && percentage <= 0.4) return "🔵🔵🔵🔵⚪⚪⚪⚪⚪⚪"; if (percentage > 0.4 && percentage <= 0.5) return "🔵🔵🔵🔵🔵⚪⚪⚪⚪⚪"; if (percentage > 0.5 && percentage <= 0.6) return "🔵🔵🔵🔵🔵🔵⚪⚪⚪⚪"; if (percentage > 0.6 && percentage <= 0.7) return "🔵🔵🔵🔵🔵🔵🔵⚪⚪⚪"; if (percentage > 0.7 && percentage <= 0.8) return "🔵🔵🔵🔵🔵🔵🔵🔵⚪⚪"; if (percentage > 0.8 && percentage <= 0.9) return "🔵🔵🔵🔵🔵🔵🔵🔵🔵⚪"; return "🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵"; }
Via
[Twitter]
Klik hier om op linkedIn lid te worden van de Freelance Tweakers groep.
[ Voor 4% gewijzigd door HugoSmits op 19-01-2023 12:36 ]
Verwijderd
Ja ik was met cors bezig geweest, en ineens deed de Samsung browser raar. Toen dacht ik, het ligt aan de cors. Met de oude implementatie daarvan wezen stoeien omdat ik soms referer gebruik. Dat bleek soms een file te zijn, waardoor iets in cors fout stond. En toen deed ie het op het eerste domein wel, op het tweede subdomein niet. En toen heb ik dat kunnen omdraaien en gezien die bij de 2e subdomein niet logt dat ie een bestand nodig heeft, bleek het de browser cache te zijn. Echter chrome en Firefox hadden geen last. Dus nu veroorzaak ik een cache miss, op de Samsung browser en nu laadt hij wel.Reptile209 schreef op donderdag 19 januari 2023 @ 01:31:
[...]
Whut? * Reptile209 needs more comments on this. Morgen even herlezen en herschrijven denk ik.
Ik bedoelde meer dat er geen touw aan dat paragraafje tekst te knopen was: halve zinnen, beperkte interpunctie...Verwijderd schreef op donderdag 19 januari 2023 @ 12:53:
[...]
Ja ik was met cors bezig geweest, en ineens deed de Samsung browser raar. Toen dacht ik, het ligt aan de cors. Met de oude implementatie daarvan wezen stoeien omdat ik soms referer gebruik. Dat bleek soms een file te zijn, waardoor iets in cors fout stond. En toen deed ie het op het eerste domein wel, op het tweede subdomein niet. En toen heb ik dat kunnen omdraaien en gezien die bij de 2e subdomein niet logt dat ie een bestand nodig heeft, bleek het de browser cache te zijn. Echter chrome en Firefox hadden geen last. Dus nu veroorzaak ik een cache miss, op de Samsung browser en nu laadt hij wel.
Zo scherp als een voetbal!
makkelijk te veranderen is subjectief, als ze morgen vragen om 20 rondjes in plaats van 10 (voor extra nauwkeurigheid) dan verdubbeld de code. Ik zou dat persoonlijk niet handig of makkelijk willen noemen.PrisonerOfPain schreef op donderdag 19 januari 2023 @ 11:50:
[...]
Ik had hier letterlijk geen twee keer over nagedacht; dit is prima code wmb. Ik had dit zelf kunnen schrijven en dit was een no-brainer review geweest. Al die meuk met binary searches, clamps, pad's etc, leuk hoor, maar dit is aanzienlijk duidelijker en makkelijker te veranderen.
Makkelijk te veranderen: je delete een functie en typt een nieuwe in. Je hoeft niet door een berg types heen om een oplossing voor je nieuwe probleem te bouwen.HugoSmits schreef op donderdag 19 januari 2023 @ 13:04:
[...]
makkelijk te veranderen is subjectief, als ze morgen vragen om 20 rondjes in plaats van 10 (voor extra nauwkeurigheid) dan verdubbeld de code. Ik zou dat persoonlijk niet handig of makkelijk willen noemen.
Precies. Nu ziet iemand dit en weten ze gelijk hoe of wat. Zo'n oneliner moet ik eerst 10 keer lezen voordat ik hem begrijp en sluipt veel sneller een foutje in. Qua performance is dit ook niet iets waar je wakker om hoeft te liggen.PrisonerOfPain schreef op donderdag 19 januari 2023 @ 11:50:
[...]
Ik had hier letterlijk geen twee keer over nagedacht; dit is prima code wmb. Ik had dit zelf kunnen schrijven en dit was een no-brainer review geweest. Al die meuk met binary searches, clamps, pad's etc, leuk hoor, maar dit is aanzienlijk duidelijker en makkelijker te veranderen.
10/10, top programmeur.
Blijft omslachtig hoor. Je hoeft niet hele moeilijke algoritmische zaken te doen. Gewoon een functie die totaal aantal balletjes als parameter heeft en de huidige waarde. Aantal gevulde balletjes is floor(percentage * totaal), aantal ongevuld is totaal - aantal gevuld.Zebby schreef op donderdag 19 januari 2023 @ 16:32:
[...]
Precies. Nu ziet iemand dit en weten ze gelijk hoe of wat. Zo'n oneliner moet ik eerst 10 keer lezen voordat ik hem begrijp en sluipt veel sneller een foutje in. Qua performance is dit ook niet iets waar je wakker om hoeft te liggen.
10/10, top programmeur.
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
Qua performance wint de huidige implementatie met vlag en wimpel van implementaties die een string bouwen aan de hand van het percentage. Dingen als binary search of een O(1) lookup in een array zijn slechts micro-optimalisaties.Zebby schreef op donderdag 19 januari 2023 @ 16:32:
Qua performance is dit ook niet iets waar je wakker om hoeft te liggen.
Die code zou ik ook niet afwijzen in een review. Maar het slaat nergens op de huidige code als slecht te markeren (behalve dan de naamgeving), en als iemand het op eigen houtje aan gaat zitten passen dan ga ik toch wel even het gesprek aan of dat de meest nuttige manier is om zijn/haar tijd te bestedenMugwump schreef op donderdag 19 januari 2023 @ 16:50:
[...]
Blijft omslachtig hoor. Je hoeft niet hele moeilijke algoritmische zaken te doen. Gewoon een functie die totaal aantal balletjes als parameter heeft en de huidige waarde. Aantal gevulde balletjes is floor(percentage * totaal), aantal ongevuld is totaal - aantal gevuld.
Wat dat betreft spreken de voorgestelde alternatieven boekdelen, ook in die Twitter thread. Ze blijken allemaal meerdere iteraties en input van andere nodig te hebben om correct te zijn.
[ Voor 68% gewijzigd door .oisyn op 19-01-2023 17:05 ]
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.
Voor een functie die misschien een of twee keer tijdens de levensduur van de app gebruikt wordt. Namelijk het scannen van je ID met NFC. Dat doe je niet zo vaak. Als alle mensen die dit slechte code vinden het voor het zeggen hadden was er nu minimaal een dag extra aan deze code besteed, hadden we functioneel niets beters maar wel extra kosten..oisyn schreef op donderdag 19 januari 2023 @ 16:59:
[...]
Qua performance wint de huidige implementatie met vlag en wimpel van implementaties die een string bouwen aan de hand van het percentage. Dingen als binary search of een O(1) lookup in een array zijn slechts micro-optimalisaties.
Die code zou ik ook niet afwijzen in een review. Maar het slaat nergens op de huidige code als slecht te markeren (behalve dan de naamgeving), en als iemand het op eigen houtje aan gaat zitten passen dan ga ik toch wel even het gesprek aan of dat de meest nuttige manier is om zijn/haar tijd te besteden. Het altneratief is namelijk niet per se beter en toch introduceert het potentieel nieuwe bugs.
Wat dat betreft spreken de voorgestelde alternatieven boekdelen, ook in die Twitter thread. Ze blijken allemaal meerdere iteraties en input van andere nodig te hebben om correct te zijn.
Je mist eigenlijk ook context, waardoor het in mijn ogen altijd lastig is om te bepalen wat nou eigenlijk de wens is. Kijk als je iets maakt voor een fysiek apparaat met 10 ledjes, dan is dit verder prima. Maar dan zou je het ook qua naamgeving specifiek daarvoor moeten laten zijn. Zo'n vaststaande ifjes structuur is echter wel heel erg rigide. Als je twintig bolletjes wilt ben je flink wat aan het typen (en officieel ook aan het testen, want je creëert heel veel branches), terwijl dat in mijn voorbeeld een kwestie is van 1 variabele aanpassen..oisyn schreef op donderdag 19 januari 2023 @ 16:59:
[...]
Die code zou ik ook niet afwijzen in een review. Maar het slaat nergens op de huidige code als slecht te markeren (behalve dan de naamgeving), en als iemand het op eigen houtje aan gaat zitten passen dan ga ik toch wel even het gesprek aan of dat de meest nuttige manier is om zijn/haar tijd te besteden. Het altneratief is namelijk niet per se beter en toch introduceert het potentieel nieuwe bugs.
Wat dat betreft spreken de voorgestelde alternatieven boekdelen, ook in die Twitter thread. Ze blijken allemaal meerdere iteraties en input van andere nodig te hebben om correct te zijn.
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
Bij 20 bolletjes wordt de if-structuur wat mij betreft ook een beetje onhoudbaar. Maar dat impliceert niet dat je een functie moet maken die alles moet kunnen. Dit typ je een keer in. Misschien verander je het een keer, prima, typ je het nog een keer in. Maar dat is het dan ook wel.Mugwump schreef op donderdag 19 januari 2023 @ 17:08:
Als je twintig bolletjes wilt ben je flink wat aan het typen
Ah jouw voorbeeld, waar een fout in staat, omdat jij floor() doet ipv ceil()(en officieel ook aan het testen, want je creëert heel veel branches), terwijl dat in mijn voorbeeld een kwestie is van 1 variabele aanpassen.
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.
Nee, zoals ik zeg, het hangt af van wat je beoogt. Als het doel is om een percentage discreet weer te geven dan is dit in mijn ogen te specifiek geïmplementeerd en niet flexibel..oisyn schreef op donderdag 19 januari 2023 @ 17:11:
[...]
Bij 20 bolletjes wordt de if-structuur wat mij betreft ook een beetje onhoudbaar. Maar dat impliceert niet dat je een functie moet maken die alles moet kunnen. Dit typ je een keer in. Misschien verander je het een keer, prima, typ je het nog een keer in. Maar dat is het dan ook wel.
Hoezo? met 10 bolletjes wil je bij 0.85 toch 8 bolletjes? Oftewel de floor van 8.5.[...]
Ah jouw voorbeeld, waar een fout in staat, omdat jij floor() doet ipv ceil(). En wat als de input NaN is? Of negatief?
Wat betreft NaN of negatieve input, kom je bij taalspecifieke implementaties en de vraag waar je inputvalidatie.
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
We weten dat het aantal bolletjes niet configureerbaar is, want daar is geen parameter voor. Dus het is een beetje raar om dan te gaan zitten theorycraften dat dat wel nodig zou zijn.Mugwump schreef op donderdag 19 januari 2023 @ 17:17:
Nee, zoals ik zeg, het hangt af van wat je beoogt. Als het doel is om een percentage discreet weer te geven dan is dit in mijn ogen te specifiek geïmplementeerd en niet flexibel.
De huidige code geeft 9 bolletjes.Hoezo? met 10 bolletjes wil je bij 0.85 toch 8 bolletjes?
1
2
| if (percentage > 0.8 && percentage <= 0.9) return "🔵🔵🔵🔵🔵🔵🔵🔵🔵⚪"; |
We weten dat de huidige functie gewoon 10 blauwe bolletjes teruggeeft bij die waarden.Wat betreft NaN of negatieve input, kom je bij taalspecifieke implementaties en de vraag waar je inputvalidatie
[ Voor 164% gewijzigd door .oisyn op 19-01-2023 17:22 ]
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.
Als het sneller of makkelijker is om alles weg te gooien en over nieuw te schrijven dan was het bij voorbaat dus niet makkelijk te veranderen.PrisonerOfPain schreef op donderdag 19 januari 2023 @ 15:48:
[...]
Makkelijk te veranderen: je delete een functie en typt een nieuwe in. Je hoeft niet door een berg types heen om een oplossing voor je nieuwe probleem te bouwen.
Ah, verkeerd gelezen..oisyn schreef op donderdag 19 januari 2023 @ 17:18:
[...]
We weten dat het aantal bolletjes niet configureerbaar is, want daar is geen parameter voor. Dus het is een beetje raar om dan te gaan zitten theorycraften dat dat wel nodig zou zijn.
[...]
De huidige code geeft 9 bolletjes.
C#:
1 2 if (percentage > 0.8 && percentage <= 0.9) return "🔵🔵🔵🔵🔵🔵🔵🔵🔵⚪";
Is dat zo? Ik weet niet welke taal het is, een NaN in een vergelijking gebruiken leidt in sommige talen tot een error.[...]
We weten dat de huidige functie gewoon 10 blauwe bolletjes teruggeeft bij die waarden.
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
Daar ga je dus al
Het is C#, die volgt IEEE754 regels (zoals de meeste talen), en een vergelijking met NaN is altijd false.Is dat zo? Ik weet niet welke taal het is, een NaN in een vergelijking gebruiken leidt in sommige talen tot een error.
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.
Maar nu maak je het probleem abstracter dan het is, wat hier nergens voor nodig is. Voor business logica is dat prima, maar voor UI code maak je daarmee vaak alleen maar meer problemen. In jouw voorbeeld is het leuk dat deze functie 20 bolletjes aankan, maar de kans dat die dan ook in de layout passen is erg klein. En dan heb je iets wat ik eigenlijk erger vind: een abstractie die minder aankan dan die zegt aan te kunnen.Mugwump schreef op donderdag 19 januari 2023 @ 17:17:
[...]
Nee, zoals ik zeg, het hangt af van wat je beoogt. Als het doel is om een percentage discreet weer te geven dan is dit in mijn ogen te specifiek geïmplementeerd en niet flexibel.
Ligt er een beetje aan hoe complex het in eerste instantie was natuurlijk; wmb is goede duidelijke code die ik makkelijk en snel weg kan gooien en kan vervangen door iets nieuws. Niet perse code waarbij ik uren zit te zoeken naar het juiste hoekje om nog een extra if-statement toe te voegen.HugoSmits schreef op donderdag 19 januari 2023 @ 17:20:
[...]
Als het sneller of makkelijker is om alles weg te gooien en over nieuw te schrijven dan was het bij voorbaat dus niet makkelijk te veranderen.
In principe is de methode zelf (onafhankelijk van of het wordt gedaan met of zonder binary search) het probleem, want de implementatie is per definitie fout omdat het intern dingen beslist over dingen waar het niet over zou moeten beslissen.
Moet ik wel bij zeggen dat ik er dan alleen met een technische blik naar kijk en niet weet wat de context is
En daarom moet je als klant of manager dus met je (lead) werknemers de volledige wensen bespreken en niet als matige manager aannemen dat een omschrijving zoals "ik wil een boom met een schommel" genoeg is
Dat zit wel Schnorr.
Ik ben het met je eens dat de huidige code duidelijk en makkelijk te begrijpen is. Maar dat is wel iets anders dan makkelijk te veranderen. Een nieuwe functie is in mijn ogen geen verandering of aanpassing, maar iets totaal nieuws.PrisonerOfPain schreef op donderdag 19 januari 2023 @ 17:35:
[...]
Ligt er een beetje aan hoe complex het in eerste instantie was natuurlijk; wmb is goede duidelijke code die ik makkelijk en snel weg kan gooien en kan vervangen door iets nieuws. Niet perse code waarbij ik uren zit te zoeken naar het juiste hoekje om nog een extra if-statement toe te voegen.
Als je wel een echte verandering wil maken dan zou je in de huidige code alle if statements moeten aanpassen. Met het risico dat je per ongeluk een if statement overslaat of een typefout maakt.
Dat maakt het in mijn ogen lastig om te veranderen.
Dat is leuk, maar dan moet je je functie gewoon een betere naam geven.RagingPenguin schreef op donderdag 19 januari 2023 @ 17:26:
[...]
Maar nu maak je het probleem abstracter dan het is, wat hier nergens voor nodig is. Voor business logica is dat prima, maar voor UI code maak je daarmee vaak alleen maar meer problemen. In jouw voorbeeld is het leuk dat deze functie 20 bolletjes aankan, maar de kans dat die dan ook in de layout passen is erg klein. En dan heb je iets wat ik eigenlijk erger vind: een abstractie die minder aankan dan die zegt aan te kunnen.
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
Proberen te herframen wat een verandering is, maakt iets niet meer of minder een verandering natuurlijkHugoSmits schreef op donderdag 19 januari 2023 @ 17:55:
[...]
Ik ben het met je eens dat de huidige code duidelijk en makkelijk te begrijpen is. Maar dat is wel iets anders dan makkelijk te veranderen. Een nieuwe functie is in mijn ogen geen verandering of aanpassing, maar iets totaal nieuws.
Als je wel een echte verandering wil maken dan zou je in de huidige code alle if statements moeten aanpassen. Met het risico dat je per ongeluk een if statement overslaat of een typefout maakt.
Dat maakt het in mijn ogen lastig om te veranderen.
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.
(taal is python, mocht het uitmaken).
Maar ik ben altijd gewend om "if boolean == true then" te doen.
Nu ben ik met een vriend gezamelijk wat in code aan het doen.
(Wij zijn beiden overigens echt bottom level hobbyproject niveau programmeurs)
En hij is van mening dat het "if boolean then" moet zijn. Want dat zou "netter en sneller" zijn.
In mijn optiek zou beide exact even snel moeten zijn omdat python dat wel optimaliseert. en is het eerste gewoon makkelijker lezen (voor mij).
Ik snap dat beide opties werken, maar vroeg me af of 1 als "slecht(er) programmeerwerk" betiteld zou worden ?
[ Voor 5% gewijzigd door heuveltje op 25-01-2023 11:57 ]
Heuveltjes CPU geschiedenis door de jaren heen : AMD 486dx4 100, Cyrix PR166+, Intel P233MMX, Intel Celeron 366Mhz, AMD K6-450, AMD duron 600, AMD Thunderbird 1200mhz, AMD Athlon 64 x2 5600, AMD Phenom X3 720, Intel i5 4460, AMD Ryzen 5 3600 5800x3d
Ik denk dat het qua performance niet zou moeten uitmaken (denk dat anderen daar meer over kunnen zeggen). Je hebtje natuurlijk ook talen waar er verschillende equality operators zijn (zoals het verschil in veel dynamic languages tussen == en ===, waarbij de laatste vaak ook type checks doet).
Ik geef mijn booleans vaak namen zoals isTriggered, hasResolved, of iets in die richting waardoor een zoals if isTriggered heel natuurlijk leest. Dan is de vergelijking met true niet nodig.
Ik ben niet zo bekend met Python maar daar heb je toch geen "then"?
Ik zie het als een kwestie van leesbaarheid. Een uniforme stijl aanhouden maakt het programma leesbaarder voor mensen met wie je samenwerkt. Dan hoeft het niet uit te maken welke stijl je kiest zolang je maar iets kiest. Ga maar eens op zoek naar programming style guides voor Python zoals deze van Google.heuveltje schreef op woensdag 25 januari 2023 @ 11:54:
Vond het niet echt nieuw topic waardig, maar was wel even benieuwd naar de mening hier ?
(taal is python, mocht het uitmaken).
Maar ik ben altijd gewend om "if boolean == true then" te doen.
Nu ben ik met een vriend gezamelijk wat in code aan het doen.
(Wij zijn beiden overigens echt bottom level hobbyproject niveau programmeurs)
En hij is van mening dat het "if boolean then" moet zijn. Want dat zou "netter en sneller" zijn.
In mijn optiek zou beide exact even snel moeten zijn omdat python dat wel optimaliseert. en is het eerste gewoon makkelijker lezen (voor mij).
Ik snap dat beide opties werken, maar vroeg me af of 1 als "slecht(er) programmeerwerk" betiteld zou worden ?
Wat betreft het performance argument: Meten is weten. Maak twee programmaatje die zo’n vergelijking in een loop hebben staan en ga 100 miljoen keer door die loop heen. Dan merk je vanzelf welke variant sneller is. Moet in een paar minuten wel te maken zijn.
Uiteindelijk zou ik in een script meestal niet op performance focussen. Dat is meestal de slechtste reden om iets te doen. Of een functie een milliseconde sneller wordt uitgevoerd is onderaan de streep vaak helemaal niet relevant.
Voor 'True' maakt het niet zoveel uit. Ik vind zonder 'True' leesbaarder, als de variable naam goed gekozen is:heuveltje schreef op woensdag 25 januari 2023 @ 11:54:
Vond het niet echt nieuw topic waardig, maar was wel even benieuwd naar de mening hier ?
(taal is python, mocht het uitmaken).
Maar ik ben altijd gewend om "if boolean == true then" te doen.
Nu ben ik met een vriend gezamelijk wat in code aan het doen.
(Wij zijn beiden overigens echt bottom level hobbyproject niveau programmeurs)
En hij is van mening dat het "if boolean then" moet zijn. Want dat zou "netter en sneller" zijn.
In mijn optiek zou beide exact even snel moeten zijn omdat python dat wel optimaliseert. en is het eerste gewoon makkelijker lezen (voor mij).
Ik snap dat beide opties werken, maar vroeg me af of 1 als "slecht(er) programmeerwerk" betiteld zou worden ?
1
2
3
4
5
| if enabled: print('Enabled') if enabled == True: print('Enabled') |
Voor 'enabled == False' is het anders. Omdat een variabele ook 'None' kan zijn. 'None == False' is False, 'False == False' is True
De PEP 8 Style Guide (https://peps.python.org/p...ogramming-recommendations) zegt:(taal is python, mocht het uitmaken).
Don’t compare boolean values to True or False using ==:
code:
1 2 3 4 5 # Correct: if greeting: # Wrong: if greeting == True:
Ik ben het eens met de bovenstaande reacties. Goede naming conventions helpen hier wel bij. Ik vind daarom het voorbeeld van @Kalentum eigenlijk beter dan die uit de Python Style Guide.heuveltje schreef op woensdag 25 januari 2023 @ 11:54:
Vond het niet echt nieuw topic waardig, maar was wel even benieuwd naar de mening hier ?
(taal is python, mocht het uitmaken).
Maar ik ben altijd gewend om "if boolean == true then" te doen.
Nu ben ik met een vriend gezamelijk wat in code aan het doen.
(Wij zijn beiden overigens echt bottom level hobbyproject niveau programmeurs)
En hij is van mening dat het "if boolean then" moet zijn. Want dat zou "netter en sneller" zijn.
In mijn optiek zou beide exact even snel moeten zijn omdat python dat wel optimaliseert. en is het eerste gewoon makkelijker lezen (voor mij).
Ik snap dat beide opties werken, maar vroeg me af of 1 als "slecht(er) programmeerwerk" betiteld zou worden ?
Om dit soort discussies te voorkomen zou je trouwens gebruik kunnen maken van packages als ruff (of flake8), en black. Die helpen met het automatisch netjes houden van je Python code en verifiëren dat je code voldoet aan de Python Style Guide, zodat je daar geen discussies meer over hoeft te hebben.
Taal maakt sowieso uit. Als je bijvoorbeeld in java de Boolean wrapper class gebruikt (en niet de primitive boolean), dan heb je drie mogelijke waarden; true, false en null. Als je if (Boolean) gebruikt, dan doet Java iets dat unboxing heet (er een primitive boolean van maken). Als de waarde echter null was levert dat een nullpointer op.Gropah schreef op woensdag 25 januari 2023 @ 12:02:
Heel flauw, maar het hangt van de taal en van de context af?
Ik denk dat het qua performance niet zou moeten uitmaken (denk dat anderen daar meer over kunnen zeggen). Je hebtje natuurlijk ook talen waar er verschillende equality operators zijn (zoals het verschil in veel dynamic languages tussen == en ===, waarbij de laatste vaak ook type checks doet).
Ik geef mijn booleans vaak namen zoals isTriggered, hasResolved, of iets in die richting waardoor een zoals if isTriggered heel natuurlijk leest. Dan is de vergelijking met true niet nodig.
Edit: dat geldt overigens voor beide van bovenstaande methodes. In Java geef ik altijd de voorkeur aan Boolean.TRUE.equals(booleanToCheck).
[ Voor 6% gewijzigd door Mugwump op 25-01-2023 14:56 ]
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
Ik heb hem even de vraag neer gelegd hoe je met PHP kan bepalen of het carnaval is.
Ikzelf zou dat gewoon met een lijst bepalen voor de komende paar jaar in een statementje en DateTime.
Ik heb geen idee of deze theorie klopt...Carnaval valt elk jaar op een andere datum en wordt gevierd op de dagen voorafgaand aan Aswoensdag. Aswoensdag is de eerste dag van de vastentijd voor christenen en valt altijd op een woensdag, 46 dagen voor Pasen. Om te bepalen of het volgend jaar carnaval is, moeten we dus eerst de datum van Pasen berekenen en vervolgens terugtellen naar de dagen voorafgaand aan Aswoensdag.
Maar het script was echt hi-la-rish....
En de output klopt niet. Ik heb geen zin om dit geval te debuggen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| <?php // bereken de datum van Pasen function calculate_easter_date($year) { $a = $year % 19; $b = floor($year / 100); $c = $year % 100; $d = floor($b / 4); $e = $b % 4; $f = floor(($b + 8) / 25); $g = floor(($b - $f + 1) / 3); $h = (19 * $a + $b - $d - $g + 15) % 30; $i = floor($c / 4); $k = $c % 4; $l = (32 + 2 * $e + 2 * $i - $h - $k) % 7; $m = floor(($a + 11 * $h + 22 * $l) / 451); $month = floor(($h + $l - 7 * $m + 114) / 31); $day = (($h + $l - 7 * $m + 114) % 31) + 1; return mktime(0, 0, 0, $month, $day + 49, $year); } // controleer of het vandaag carnaval is function is_today_carnaval() { $carnaval_start_date = strtotime('-48 days', calculate_easter_date(date('Y'))); $carnaval_end_date = strtotime('-47 days', calculate_easter_date(date('Y'))); $today = time(); return $today >= $carnaval_start_date && $today <= $carnaval_end_date; } // uitvoeren van de functie om te controleren of het vandaag carnaval is if (is_today_carnaval()) { echo "Ja, het is vandaag carnaval!"; } else { echo "Nee, het is vandaag geen carnaval."; } ?> |
☎ Telecommunicatie van vroeger
🚅Alles over spoor en treintjes
De versie voor C# geeft dezelfde prachtige code met a t/m m.AW_Bos schreef op zondag 19 februari 2023 @ 16:38:
En de output klopt niet. Ik heb geen zin om dit geval te debuggen
Na wat doorvragen zei "hij" dat het ging om het Meeus/Jones/Butcher-algoritme. Dat is wel handig.
Maar na verder doorvragen naar een betere benaming en het gebruik van constanten kreeg ik dit:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| using System; public class Program { private const int DaysInWeek = 7; private const int DaysInYear = 365; private const int DaysInLeapYear = 366; private const int MetonicCycleLength = 19; private const int MoonPhasesPerCycle = 235; private const int DaysFromMarchToApril = 31; private const int DaysFromAprilToMay = 30; private const int DaysFromFebruaryToMarch = 31; private int DaysPerCentury = (DaysInYear * 100) + (int)Math.Floor(100 / 4.0); private int DaysPerMetonicCycle = (DaysInYear * MetonicCycleLength) + (int)Math.Floor(MetonicCycleLength / 4.0); private int DaysPerLeapYearCycle = (DaysInYear * 400) + (int)Math.Floor(400 / 4.0) - (int)Math.Floor(400 / 100.0) + (int)Math.Floor(400 / 400.0); public static void Main() { int year = 2023; DateTime easter = CalculateEasterSunday(year); DateTime carnival = easter.AddDays(-DaysInWeek * 7); Console.WriteLine("Carnaval valt op: {0}", carnival.ToString("dd-MM-yyyy")); } private static DateTime CalculateEasterSunday(int year) { int goldenNumber = year % MetonicCycleLength; int centuries = year / 100; int remainingYears = year % 100; int leapYearCycles = centuries / 4; int leapYearExtra = centuries % 4; int metonicMonth = (centuries + 8) / 25; int centuryAdjustment = (centuries - metonicMonth + 1) / 3; int epact = (MoonPhasesPerCycle * goldenNumber + centuries - leapYearCycles - centuryAdjustment + 15) % 30; int leapYearAdjustment = remainingYears / 4; int leapYearExtraAdjustment = remainingYears % 4; int lunarCorrection = (32 + 2 * leapYearExtra + 2 * leapYearAdjustment - epact - leapYearExtraAdjustment) % DaysInWeek; int daysToFullMoon = (goldenNumber + 11 * epact + 22 * lunarCorrection) / 451; int month = (epact + lunarCorrection - DaysInWeek * daysToFullMoon + 114) / 31; int day = ((epact + lunarCorrection - DaysInWeek * daysToFullMoon + 114) % 31) + 1; int monthAdjustment = month == 4 ? DaysFromMarchToApril : DaysFromAprilToMay; return new DateTime(year, month, day).AddDays(monthAdjustment); } } |
In tegenstelling tot de eerste versie geeft deze code aan dat carnaval op 15 maart is.
Ik durfde niet verder te pushen omdat de resultaten steeds langzamer kwamen en de laatste reactie halverwege werd afgebroken
Dat zit wel Schnorr.
Als die functie de juiste datum teruggeeft is de stap naar de juiste datum voor carnaval goed te controleren.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| import datetime
import math
def calculate_easter_date(year):
a = year % 19
b = math.floor(year / 100)
c = year % 100
d = math.floor(b / 4)
e = b % 4
f = math.floor((b + 8) / 25)
g = math.floor((b - f + 1) / 3)
h = (19 * a + b - d - g + 15) % 30
i = math.floor(c / 4)
k = c % 4
l = (32 + 2 * e + 2 * i - h - k) % 7
m = math.floor((a + 11 * h + 22 * l) / 451)
month = math.floor((h + l - 7 * m + 114) / 31)
day = ((h + l - 7 * m + 114) % 31) + 1
return datetime.date(year, month, day)
def calculate_carnival_start(year):
easter = calculate_easter_date(year)
carnival_start = easter - datetime.timedelta(days=50)
return carnival_start
def calculate_carnival_end(year):
easter = calculate_easter_date(year)
carnival_end = easter - datetime.timedelta(days=47)
return carnival_end
# Example usage
year = 2023
carnival_start = calculate_carnival_start(year)
print(f"The start date of Dutch Carnival in {year} is {carnival_start.strftime('%Y-%m-%d')}.")
carnival_end = calculate_carnival_end(year)
print(f"The end date of Dutch Carnival in {year} is {carnival_end.strftime('%Y-%m-%d')}.") |
👑
Pas op dat in die code het algoritme voor leap year niet correct is!!!Stukfruit schreef op zondag 19 februari 2023 @ 17:26:
[...]
De versie voor C# geeft dezelfde prachtige code met a t/m m.
Na wat doorvragen zei "hij" dat het ging om het Meeus/Jones/Butcher-algoritme. Dat is wel handig.
Maar na verder doorvragen naar een betere benaming en het gebruik van constanten kreeg ik dit:
C#:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 using System; public class Program { private const int DaysInWeek = 7; private const int DaysInYear = 365; private const int DaysInLeapYear = 366; private const int MetonicCycleLength = 19; private const int MoonPhasesPerCycle = 235; private const int DaysFromMarchToApril = 31; private const int DaysFromAprilToMay = 30; private const int DaysFromFebruaryToMarch = 31; private int DaysPerCentury = (DaysInYear * 100) + (int)Math.Floor(100 / 4.0); private int DaysPerMetonicCycle = (DaysInYear * MetonicCycleLength) + (int)Math.Floor(MetonicCycleLength / 4.0); private int DaysPerLeapYearCycle = (DaysInYear * 400) + (int)Math.Floor(400 / 4.0) - (int)Math.Floor(400 / 100.0) + (int)Math.Floor(400 / 400.0); public static void Main() { int year = 2023; DateTime easter = CalculateEasterSunday(year); DateTime carnival = easter.AddDays(-DaysInWeek * 7); Console.WriteLine("Carnaval valt op: {0}", carnival.ToString("dd-MM-yyyy")); } private static DateTime CalculateEasterSunday(int year) { int goldenNumber = year % MetonicCycleLength; int centuries = year / 100; int remainingYears = year % 100; int leapYearCycles = centuries / 4; int leapYearExtra = centuries % 4; int metonicMonth = (centuries + 8) / 25; int centuryAdjustment = (centuries - metonicMonth + 1) / 3; int epact = (MoonPhasesPerCycle * goldenNumber + centuries - leapYearCycles - centuryAdjustment + 15) % 30; int leapYearAdjustment = remainingYears / 4; int leapYearExtraAdjustment = remainingYears % 4; int lunarCorrection = (32 + 2 * leapYearExtra + 2 * leapYearAdjustment - epact - leapYearExtraAdjustment) % DaysInWeek; int daysToFullMoon = (goldenNumber + 11 * epact + 22 * lunarCorrection) / 451; int month = (epact + lunarCorrection - DaysInWeek * daysToFullMoon + 114) / 31; int day = ((epact + lunarCorrection - DaysInWeek * daysToFullMoon + 114) % 31) + 1; int monthAdjustment = month == 4 ? DaysFromMarchToApril : DaysFromAprilToMay; return new DateTime(year, month, day).AddDays(monthAdjustment); } }
In tegenstelling tot de eerste versie geeft deze code aan dat carnaval op 15 maart is.
Ik durfde niet verder te pushen omdat de resultaten steeds langzamer kwamen en de laatste reactie halverwege werd afgebroken
Knap dat je dat ziet. Waarom niet?PageFault schreef op vrijdag 3 maart 2023 @ 10:48:
[...]
Pas op dat in die code het algoritme voor leap year niet correct is!!!
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Hoezo knap?
Ik zie dat hij module 4 optelt, dat klopt nooit, zie ook:
https://www.mathsisfun.com/leap-years.html
https://www.wikihow.com/Calculate-Leap-Years
Omdat de berekening die we hier zien veel ingewikkelder is dan gewoon bepalen of het een schrikkeljaar is. De code is uiteindelijk geinteresseerd in de stand van de maan.
Dus ik hoopte op een gedetailleerder antwoord dan "modulo optellen klopt ook nooit"
[ Voor 19% gewijzigd door .oisyn op 03-03-2023 11:03 ]
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.
Hij houdt geen rekening met de deelbaarheid door 100 en 400 (en 1000 als je nog wat verder wilt kijken, 4000 is niet meer relevant omdat de Gregoriaanse kalender geen stand meer houdt na het jaar 4000)..oisyn schreef op vrijdag 3 maart 2023 @ 11:01:
[...]
Omdat de berekening die we hier zien veel ingewikkelder is dan gewoon bepalen of het een schrikkeljaar is. De code is uiteindelijk geinteresseerd in de stand van de maan.
Dus ik hoopte op een gedetailleerder antwoord dan "modulo optellen klopt ook nooit". Zo op het eerste gezicht lijkt hij de regels van 'deelbaar door 4, maar niet deelbaar door 100, maar wel weer deelbaar door 400' in ieder geval wel mee te nemen.
Je hebt gelijk, uiteraard
Voorlopig blijft het verstandiger om het vooral als snelle lookup voor documentatie te gebruiken dan voor onderhoudbare code.
Maar voor dat eerste is ChatGPT dan weer wel geweldig.
Dat zit wel Schnorr.
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Lijkt me UTC tijd, geen VS tijd. Daar is het minimaal 6 uur eerder.CodeCaster schreef op dinsdag 5 september 2023 @ 08:20:
Gebruik de nieuwe Outlook! We zijn echt superfuckingtrots dat we een mailclient in HTML hebben geschreven! Nu, voor maar 300 MB RAM, en alleen getest in de VS!
[Afbeelding]
"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra
De makkelijkste manier om hyprocrieten boos te krijgen? Confronteer ze met hun eigen uitspraken...
Er staan geen secondes bij. Het zou zo maar kunnen dat de taaktalk al een rollover had, maar Outlook (blijkbaar in JavaScript) nog nietroeleboel schreef op dinsdag 5 september 2023 @ 09:45:
systeemtijd versus utc tot daar aan toe, maar een minuut achter lopen lijkt me veel minder wenselijk
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Dus ja, het gaat om het datumformaat én het printen in UTC.
Jawel, want je ziet de klassieke "reply"-, "reply all"- en "forward"-knoppen, vergezeld door de volstrekt kansloze "like"- en "react"-knoppen.Woy schreef op dinsdag 5 september 2023 @ 09:49:
Het is uit de context van het plaatje niet te zien
Ik durf nog steeds niet op "👍" te klikken bij een mail, want ik weet niet bij wie die terechtkomt.
[ Voor 88% gewijzigd door CodeCaster op 05-09-2023 10:15 ]
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Dan is er dus wel context van buiten het plaatje nodigCodeCaster schreef op dinsdag 5 september 2023 @ 10:11:
Jawel, want je ziet de klassieke "reply"-, "reply all"- en "forward"-knoppen, vergezeld door de volstrekt kansloze "like"- en "react"-knoppen.
Maar inderdaad zowel het format als de timezone kun je instellen.
:fill(white):strip_exif()/f/image/eU2HI3CIWHizhrUF1EkXmcCj.png?f=user_large)
Maar een setting "Pak mijn system settings", met de optie om die te overschrijven zou wel een stuk gebruikersvriendelijker geweest zijn ja.
[ Voor 11% gewijzigd door Woy op 05-09-2023 10:29 ]
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
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.
Works on my machine?.oisyn schreef op dinsdag 5 september 2023 @ 10:59:
Hmz zo te zien geen support voor alternatieve send-from adressen, dus de nieuwe Outlook is sowieso een no go voor mij
:fill(white):strip_exif()/f/image/6CfAPLWX6cPCiabfrmWB62dS.png?f=user_large)
Maar komend van Gmail blijft het dagelijks vechten met Outlook. Gelukkig mail ik niet zo veel meer.
[ Voor 10% gewijzigd door CodeCaster op 05-09-2023 11:19 ]
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Ja ik heb hetzelfde, ik gebruik gmail, maar bij klanten vaak outlook, het blijft een draak van een stuk softwareCodeCaster schreef op dinsdag 5 september 2023 @ 11:19:
[...]
Maar komend van Gmail blijft het dagelijks vechten met Outlook. Gelukkig mail ik niet zo veel meer.
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Is dat een MS account of een gmail account?CodeCaster schreef op dinsdag 5 september 2023 @ 11:19:
[...]
Works on my machine?
[Afbeelding]
Maar komend van Gmail blijft het dagelijks vechten met Outlook. Gelukkig mail ik niet zo veel meer.
.edit: trouwens een beetje offtopic hier
[ Voor 4% gewijzigd door .oisyn op 05-09-2023 11:58 ]
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.
Zitten er grote geheimen in @CodeCaster? Dan weet ik of het de moeite waard is.
{signature}
Geen informatie die toch al niet open en bloot op het internet aan mij te koppelen is.Voutloos schreef op dinsdag 5 september 2023 @ 17:50:
Screenshot met blurred text van een bekend font, met heel beperkt aantal mogelijke karakters.
Zitten er grote geheimen in @CodeCaster? Dan weet ik of het de moeite waard is.
Maar als je het kunt ontcijferen, DM maar!
[ Voor 5% gewijzigd door CodeCaster op 05-09-2023 18:36 ]
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
CodeCaster schreef op dinsdag 5 september 2023 @ 18:28:
[...]
Geen informatie die toch al niet open en bloot op het internet aan mij te koppelen is.
Maar als je het kunt ontcijferen, DM maar!
Hoeveel koelkasten win ik?
Dat zit wel Schnorr.
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
Omdat ze dat gezien hebben bij Android dat alles in een browser app draaitF.West98 schreef op woensdag 6 september 2023 @ 03:26:
Dat hele "nieuwe Outlook" is wel één groot slecht programmeervoorbeeld wat mij betreft. Wat een meuk. Waarom moet dat nou een HTML app worden? De oude versie was misschien wat log soms, maar het werkte en de UI was vlot voor dagelijks gebruik. Mijn "quick actions" in de nieuwe Outlook doen er letterlijk 2 seconden over om een mail te archiveren! En dan werkt het natuurlijk ook nog eens niet als je geen internetverbinding hebt, omdat er naar het schijnt geen mail lokaal wordt gecacht. Fijn hoor, een always-online mail client.
![]()
![]()
Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag
Uiteraard is het in dit topic niet de bedoeling dat andere users en/of topics aangehaald worden om ze voor gek te zetten. Lachen om je eigen code, of over dingen die je "wel eens tegengekomen bent" is prima, maar hou het onderling netjes.