Acties:
  • 0 Henk 'm!

  • RagingPenguin
  • Registratie: December 2012
  • Niet online
Maar gebruikt tegenwoordig niet praktisch iedereen een ORM en zijn de tabel namen gelijk aan de model namen (enkelvoud dus)?

SQL is wel een beetje anders omdat de type de tabel is iit programmeertalen waar je een losse type hebt voor het item en een losse type voor de collectie van items.

Acties:
  • 0 Henk 'm!

  • Giesber
  • Registratie: Juni 2005
  • Laatst online: 05-09 11:46
.oisyn schreef op vrijdag 5 februari 2021 @ 18:36:
SQL:
1
2
3
SELECT Car.doorCount
FROM Cars AS Car
WHERE Car.Id = MIN(Car.Id)
Vind je dat nu echt duidelijker? Ik vind dat gewoon een potentiële bron van verwarring in een wereld waarin iedereen (behalve .oisyn, vooraleer je mij voor bent :P) enkelvoudige tabelnamen gebruikt.
RagingPenguin schreef op vrijdag 5 februari 2021 @ 18:41:
Maar gebruikt tegenwoordig niet praktisch iedereen een ORM en zijn de tabel namen gelijk aan de model namen (enkelvoud dus)?
Daar kan je ook een alias gaan gebruiken :P .

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-09 08:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

Giesber schreef op vrijdag 5 februari 2021 @ 21:03:
[...]

Vind je dat nu echt duidelijker?
Nee, ik vind "Cars.doorCount" gewoon niet zo stom :)

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


Acties:
  • +2 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Nu online

RayNbow

Kirika <3

.oisyn schreef op vrijdag 5 februari 2021 @ 18:36:
Of:

SQL:
1
2
3
SELECT Car.doorCount
FROM Cars AS Car
WHERE Car.Id = MIN(Car.Id)
Is er nog plek op de heuvel? Ik ben zelf wel een voorstander van het gebruik van enkelvoud voor een element uit een verzameling en meervoud voor de verzameling zelf.

C#:
1
2
3
from car in Cars
where car.Id == Cars.Min(c => c.Id)
select car.DoorCount

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • RagingPenguin
  • Registratie: December 2012
  • Niet online
RayNbow schreef op zaterdag 6 februari 2021 @ 08:19:
[...]

Is er nog plek op de heuvel? Ik ben zelf wel een voorstander van het gebruik van enkelvoud voor een element uit een verzameling en meervoud voor de verzameling zelf.

C#:
1
2
3
from car in Cars
where car.Id == Cars.Min(c => c.Id)
select car.DoorCount
Ja, maar in LINQ moet je al expliciet een naam geven aan de collectie en aan het ding. In SQL hoeft dat niet en dan doen mensen vaak de ene optie (en sommige blijkbaar de andere :+ )

Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Nu online

RayNbow

Kirika <3

RagingPenguin schreef op zaterdag 6 februari 2021 @ 10:00:
[...]


Ja, maar in LINQ moet je al expliciet een naam geven aan de collectie en aan het ding. In SQL hoeft dat niet en dan doen mensen vaak de ene optie (en sommige blijkbaar de andere :+ )
Een reden om SQL maar eens een keer in de prullenbak te flikkeren. :p

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 06-09 13:19
Ohja, LINQ. Een paar jaar geleden (weet niet meer exact wat) had ik iets wat in 4 regels SQL kon opschrijven, maar waar ik vervolgens een halve dag aan het zoeken was hoe ik dat in LINQ moest opschrijven :X Gooi het dus nog niet te snel weg alsjeblieft ;)

Acties:
  • 0 Henk 'm!

  • MatHack
  • Registratie: Oktober 2001
  • Niet online

MatHack

Dev by day, Gamer by night

Kunnen we namespaces (Java/.NET/etc.) ook bij deze discussie trekken?

Class: enkelvoud (Car, Motor, Truck)
Namespace: meervoud (Vehicles)

There's no place like 127.0.0.1


Acties:
  • 0 Henk 'm!

  • RagingPenguin
  • Registratie: December 2012
  • Niet online
MatHack schreef op zaterdag 6 februari 2021 @ 12:03:
Kunnen we namespaces (Java/.NET/etc.) ook bij deze discussie trekken?

Class: enkelvoud (Car, Motor, Truck)
Namespace: meervoud (Vehicles)
In dat voorbeeld wel, maar een namespace bevat natuurlijk niet altijd meerdere dingen. Je kan bijvoorbeeld ook een namespace MyExternalSystemConnection hebben die alle classes bevat van een integratie van een extern systeem. In dat geval is er maar 1 systeem en zou ik enkelvoud doen. Of een namespace die de implementatie van een bepaald protocol bevat, bv. namespace Http.

Acties:
  • 0 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 05-09 11:06
Ik ga meestal voor meervoud in package names omdat ik (externe) interfaces graag in een package genaamd interfaces stopt en het enkelvoud daarvan is een reserved keyword in Java. :P

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


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

/r/softwaregore-materiaal van het onderzoeksbureau dat door de NS wordt ingeschakeld:

Afbeeldingslocatie: https://tweakers.net/i/sKSN7R_n8FZpdDPNKFfI5my0Mro=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/k9jsf3ROYE7oH40IAEFgzXx6.png?f=user_large

Hóe krijg je 22-03-2021 in vredesnaam in dát formaat geprint?

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


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 00:54

Haan

dotnetter

Ik heb ook wel eens zoiets vaags gehad met Moment.js was het geloof ik, die kreeg het ook voor elkaar om van iets normaals iets heel raars te maken.

Kater? Eerst water, de rest komt later


Acties:
  • +1 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Haan schreef op donderdag 25 maart 2021 @ 16:03:
Ik heb ook wel eens zoiets vaags gehad met Moment.js was het geloof ik, die kreeg het ook voor elkaar om van iets normaals iets heel raars te maken.
Och ja, moment.js, die ooit fantastische library die in een paar KB álle numerieke datumformaten aan kon, en ineens op een framework wilde gaan lijken, en nu 60+ KB aan JS nodig heeft om zelfs een ISO 8601 geformatteerde datum te kunnen parsen.

Maar dit gedrocht van hierboven staat al zo scheef in de source die de browser binnenkrijgt, er gaat serverside iets mis.

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


Acties:
  • +6 Henk 'm!

  • P1nGu1n
  • Registratie: Juni 2011
  • Laatst online: 06-09 15:40
CodeCaster schreef op donderdag 25 maart 2021 @ 16:18:
[...]

Och ja, moment.js, die ooit fantastische library die in een paar KB álle numerieke datumformaten aan kon, en ineens op een framework wilde gaan lijken, en nu 60+ KB aan JS nodig heeft om zelfs een ISO 8601 geformatteerde datum te kunnen parsen.
Gelukkig zijn de makers het hiermee eens, en is het sinds oktober deprecated. d:)b

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.


Acties:
  • 0 Henk 'm!

  • page404
  • Registratie: November 2009
  • Laatst online: 02-09 15:01

page404

Website says no

P1nGu1n schreef op donderdag 25 maart 2021 @ 16:26:
[...]


Gelukkig zijn de makers het hiermee eens, en is het sinds oktober deprecated. d:)b
Oh nice, mag ik dat weer aan gaan passen d:)b

Iets anders, ik was laatst met een functie bezig die een batchproces uitvoert. Ik kreeg maar geen resultaat, dus ik ben de code in gegaan om de oorzaak te vinden.
Wat blijkt nou, die functie moet 2x aangeroepen worden met een verschillende waarde in een van de parameters. In de functie zit een IF/ELSE die in het ene geval (parameterx = A) iets voorbereid en in het andere geval (parameterx = B ) de boel verwerkt.
dus:
code:
1
2
3
4
5
6
7
8
9
10
procedure xyz (param1) is
  if (param1 = 'S' ) then
    < do deze shizzle >
  elsif (param1 = 'A' ) then
    < do andere shizzle >
  end if;
end;

xyx('S');
xyz('A');


Dat lijkt me niet echt best practice qua codeontwerp. Doe het dan in één keer, en als je zonodig die zaken apart wil draaien, maak er dan 2 functies van zou ik zeggen. Ik kan geen reden verzinnen waarom je het zo zou doen als nu gedaan is.

ZIPper: Zelfstandig Interim Professional


Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 07:59
Waarschijnlijk omdat deze code op meerdere plekken aangeroepen wordt en je niet van te voren weet (op dat moment van schrijven??) wat de opties waren,. Maar je zou dit inderdaad ook gewoon kunnen weg halen en in de code die dit aanroept direct <do deze zhisle> aanroepen ipv this.xys.shislz

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • page404
  • Registratie: November 2009
  • Laatst online: 02-09 15:01

page404

Website says no

Webgnome schreef op woensdag 31 maart 2021 @ 13:51:
Waarschijnlijk omdat deze code op meerdere plekken aangeroepen wordt en je niet van te voren weet (op dat moment van schrijven??) wat de opties waren,. Maar je zou dit inderdaad ook gewoon kunnen weg halen en in de code die dit aanroept direct <do deze zhisle> aanroepen ipv this.xys.shislz
Dat is het enige wat ik kan verzinnen hoor, dat de code op meerdere plekken aangeroepen wordt. Maar dan nog zou ik het in 2 functies doen. En omdat ik geen enkele manier zie hoe de IF-tak een functie heeft zonder de ELSE-tak uit te voeren (en andersom), zou het zelfs mogelijk zijn om gewoon de IF/ELSE eruit te slopen en alles achter elkaar uit te voeren. Maar hey, er zitten wel meer WTF's in dit deel van de code dus ik kijk eens deemoedig en ga weer verder met de volgende story ;)

ZIPper: Zelfstandig Interim Professional


Acties:
  • +2 Henk 'm!

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 01:54

AW_Bos

Liefhebber van nostalgie... 🕰️

Waarom is deze mail in hemelsnaam verzonden? :')
Iets met missende validatie enzo....

Too bad to go....(send the mail)

Afbeeldingslocatie: https://tweakers.net/i/XTAVtkHRcP0P22Awb3NJ0VY8WQ0=/x800/filters:strip_icc():strip_exif()/f/image/PWNOhh7FhTvqYDYPipEghKYd.jpg?f=fotoalbum_large

[ Voor 7% gewijzigd door AW_Bos op 14-04-2021 13:52 ]

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes


Acties:
  • +4 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-09 08:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

CodeCaster schreef op donderdag 25 maart 2021 @ 16:00:
/r/softwaregore-materiaal van het onderzoeksbureau dat door de NS wordt ingeschakeld:

[Afbeelding]

Hóe krijg je 22-03-2021 in vredesnaam in dát formaat geprint?
Late reactie, maar volgens mij zie ik 'm.

code:
1
2
3
4
5
6
7
8
formatDate(isodate)
{
    // isodate == "2021-03-22"
    day = substr(isodate, 8, 2);
    month = substr(isodate, 5, 2);
    year = substr(isodate, 0, 4);
    return day + "-" + month + "-" + year;
}


Alleen wordt er geen iso formatted date gebruikt, maar bijvoorbeeld iets als "22-3-2021". En dan komt er dus [1 ]-[20]-[22-3] uit rollen, met resp. dag, maand en jaar in blokhaken

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


Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
AW_Bos schreef op woensdag 14 april 2021 @ 13:49:
Waarom is deze mail in hemelsnaam verzonden? :')
Iets met missende validatie enzo....

Too bad to go....(send the mail)

[Afbeelding]
FFS een mail campagne via Google Sheets runnen.

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • RagingPenguin
  • Registratie: December 2012
  • Niet online
armageddon_2k1 schreef op woensdag 14 april 2021 @ 18:07:
[...]


FFS een mail campagne via Google Sheets runnen.
Dat is ongeveer wel het scriptkiddie gehalte van 'marketing automation'.

Er zijn natuurlijk wel goede marketing automation pakketten, maar ik zie nog heel vaak vage scripts die op de een of andere manier mails produceren. Vaak hangt er dan een antiek CRM systeem achter waar de organistaie al compleet is uitgegroeid.

Acties:
  • +7 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Zo zijn er problemen met het omzetten van een negatieve testuitslag in een QR-code, waarmee mensen worden toegelaten. Dat gebeurt volgens een woordvoerder van Testen voor Toegang bij mensen die een leesteken aan het begin van hun achternaam hebben.
Deze mag wel hier, toch?

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


Acties:
  • 0 Henk 'm!

  • Giesber
  • Registratie: Juni 2005
  • Laatst online: 05-09 11:46
kenneth schreef op vrijdag 23 april 2021 @ 14:00:
[...]
Deze mag wel hier, toch?
Dat hangt van de implementatie af. Als het om een achternaam gaat die met een null terminator begint wil ik het nog wel door de vingers zien :+ .

Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 06-09 20:19

alienfruit

the alien you never expected

Bij een Nederlandse bank (ABN Amro) mag je geen spatie hebben in je achternaam:
Your last name can contain only alphanumeric characters!
(bron: https://developer.abnamro.com/index.php/user/register)

Acties:
  • +4 Henk 'm!

  • P1nGu1n
  • Registratie: Juni 2011
  • Laatst online: 06-09 15:40
alienfruit schreef op woensdag 28 april 2021 @ 01:54:
Bij een Nederlandse bank (ABN Amro) mag jemogen developers geen spatie hebben in jehun achternaam:


[...]


(bron: https://developer.abnamro.com/index.php/user/register)
FTFY :Y) Toen ik die URL zag dacht ik dat je een bankrekening via een API kon registreren, ik had beter moeten weten, het blijft een bank ;)

Doet me denken aan dit artikel: Falsehoods Programmers Believe About Names :+

[ Voor 18% gewijzigd door P1nGu1n op 28-04-2021 04:04 ]

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.


Acties:
  • +1 Henk 'm!

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 01:54

AW_Bos

Liefhebber van nostalgie... 🕰️

Gevalletje, whoopsie daisy met ReCaptcha V3 die ik deze week in gebruik had genomen.

PHP:
1
2
3
4
5
6
7
8
<?php
/* code */
} elseif ($captcha->success == false && $captcha->score >= 0.5) {
    throw new Exception('botcheck_not_succeed');
} else {
// Send the mail
}
?>


En toen kreeg je dus alsnog bakken met spam binnen :+. Hoe dan?

Dit is de request als alles goed gaat:
code:
1
2
3
4
5
6
7
{
  "success": true,
  "challenge_ts": "2021-04-29T16:42:29Z",
  "hostname": "www.domein.nl",
  "score": 0.9,
  "action": "submit"
}


En dit als het fout is:
code:
1
2
3
4
5
6
{
  "success": false,
  "error-codes": [
    "invalid-input-response"
  ]
}


score bestaat niet altijd. Zeker niet als iemand niet volgens de procedures van ReCaptcha het formulier invult (oeh, we hebben met botjes te maken :P), die dus een error krijgen.
Daarom dus liever controleren of success true is, en de score lager/gelijk is dan 0.5. Ook die vergelijking klopte niet helemaal :+

Het is natuurlijk nog afwachten of spammers ook andere manieren gebruiken om door ReCaptcha heen te gaan. Maar botjes werken in ieder geval niet meer vanwege een challenge response. Goh, wat werkt dit beter dan ReCaptcha V2, die was echt zo lek als een zeef, en behoorlijk irritant met die kinderlijke TikTak puzzels waarbij je een zebrapad moet aanklikken... :P

[ Voor 8% gewijzigd door AW_Bos op 30-04-2021 13:55 ]

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes


Acties:
  • +4 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Toch gek hoe je dat object maakt, dat zou gewoon een error kunnen zijn.
En check dan ook op ‘=== true’. Als je nu nog niet met muscle memory zoveel mogelijk dat tikt ben je zelf het slechte programmeervoorbeeld. ;)

Sterker nog, het zou '$captcha->success !== true' moeten zijn, zodat bij alle waardes waar je nu niet aan denkt je ook de Exception krijgt. Whitelist ipv blacklist security. :)

[ Voor 29% gewijzigd door Voutloos op 30-04-2021 14:14 ]

{signature}


Acties:
  • +8 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 00:54

Haan

dotnetter

Sowieso is het een security best practice om altijd te zorgen dat de default uitkomst van een check deny is, en dat alleen correcte verwerking kan leiden tot toegang tot iets.
Dus niet
code:
1
2
3
4
5
bool allow = true; 
if (someValidationLogic() == false)
{
   allow = false;
}

maar wel
code:
1
2
3
4
5
bool allow = false;
if (someValidationLogic() == true)
{
    allow = true;
}

Kater? Eerst water, de rest komt later


Acties:
  • +1 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Ligt het aan mij of is dit vreemde code? Is van een wordpressplugin van een best grote partij.
1: omslachtig heen-en-weer array maken en counten. Sla gewoon een int op
2: gaat uit van onderdrukking variabele-not-found notice (#11)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$filter     = $this->data['filter'];
$filter_sql = array();
if ( is_array( $filter ) && ! empty( $filter ) ) {
    foreach ( $filter as $k => $v ) {
        $filter_sql[] = $k;
        $filter_sql[] = $v;
    }
    $filter_sql_count = range( 1, count( $filter_sql ) / 2 );
}

if ( !$filter_sql_count ) {
    $filter_sql_count = array();
}

...

    $result = $wpdb->get_results(
        $wpdb->prepare(
            SQL-stripped-
            . ' WHERE 1=1 '
            . implode( ' ', array_fill( 0, count( $filter_sql_count ), 'AND `%0s`=%s' ) )
            ..

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 22:26
Guillome schreef op vrijdag 10 juni 2022 @ 17:13:
Ligt het aan mij of is dit vreemde code? Is van een wordpressplugin van een best grote partij.
1: omslachtig heen-en-weer array maken en counten. Sla gewoon een int op
2: gaat uit van onderdrukking variabele-not-found notice (#11)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$filter     = $this->data['filter'];
$filter_sql = array();
if ( is_array( $filter ) && ! empty( $filter ) ) {
    foreach ( $filter as $k => $v ) {
        $filter_sql[] = $k;
        $filter_sql[] = $v;
    }
    $filter_sql_count = range( 1, count( $filter_sql ) / 2 );
}

if ( !$filter_sql_count ) {
    $filter_sql_count = array();
}

...

    $result = $wpdb->get_results(
        $wpdb->prepare(
            SQL SQL SQL.
            . ' WHERE 1=1 '
            . implode( ' ', array_fill( 0, count( $filter_sql_count ), 'AND `%0s`=%s' ) )
            ..
Wat is SQL? Keer 3? En onleesbaar!

Acties:
  • 0 Henk 'm!

  • thlst
  • Registratie: Januari 2016
  • Niet online
Guillome schreef op vrijdag 10 juni 2022 @ 17:13:
Ligt het aan mij of is dit vreemde code? Is van een wordpressplugin van een best grote partij.
$filter_sql wordt verder nergens gebruikt ?

Acties:
  • 0 Henk 'm!

  • RagingPenguin
  • Registratie: December 2012
  • Niet online
Guillome schreef op vrijdag 10 juni 2022 @ 17:13:
Ligt het aan mij of is dit vreemde code? Is van een wordpressplugin van een best grote partij.
1: omslachtig heen-en-weer array maken en counten. Sla gewoon een int op
2: gaat uit van onderdrukking variabele-not-found notice (#11)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$filter     = $this->data['filter'];
$filter_sql = array();
if ( is_array( $filter ) && ! empty( $filter ) ) {
    foreach ( $filter as $k => $v ) {
        $filter_sql[] = $k;
        $filter_sql[] = $v;
    }
    $filter_sql_count = range( 1, count( $filter_sql ) / 2 );
}

if ( !$filter_sql_count ) {
    $filter_sql_count = array();
}

...

    $result = $wpdb->get_results(
        $wpdb->prepare(
            SQL-stripped-
            . ' WHERE 1=1 '
            . implode( ' ', array_fill( 0, count( $filter_sql_count ), 'AND `%0s`=%s' ) )
            ..
Dus ze hebben een key-value mapping van attributen en values, die ze eerst plat slaan naar een array van key,value,key,value,etc en imploden ze die naar sql? Dat is vreemd, maar vooral super onveilig (of zijn de values parameter aliasses)?

Je zou natuurlijk ook gewoon direct over je key-value pairs heen kunnen lopen en dan direct die string bouwen. En in die loop zou je dan eventueel ook direct parameter aliasses kunnen genereren en een losse array kunnen vullen met hun waardes.

Edit: die 1=1 zou ook niet nodig zijn als ze de AND als seperator zouden gebruiken en de array enkel zouden vullen met key=value

[ Voor 5% gewijzigd door RagingPenguin op 11-06-2022 12:31 ]


Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

thlst schreef op zaterdag 11 juni 2022 @ 12:19:
[...]


$filter_sql wordt verder nergens gebruikt ?
#8

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • 0 Henk 'm!

  • Daos
  • Registratie: Oktober 2004
  • Niet online
RagingPenguin schreef op zaterdag 11 juni 2022 @ 12:25:
Edit: die 1=1 zou ook niet nodig zijn als ze de AND als seperator zouden gebruiken en de array enkel zouden vullen met key=value
Dat gaat niet werken als je 0 items hebt.

Acties:
  • 0 Henk 'm!

  • RagingPenguin
  • Registratie: December 2012
  • Niet online
Daos schreef op zaterdag 11 juni 2022 @ 16:45:
[...]


Dat gaat niet werken als je 0 items hebt.
maar dan zou je WHERE gewoon niet moeten genereren (of doe simpelweg een WHERE true als dat te moeilijk is).

Acties:
  • 0 Henk 'm!

  • thlst
  • Registratie: Januari 2016
  • Niet online
bedoelde buiten de code die in de post stond :)

Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

thlst schreef op zondag 12 juni 2022 @ 14:39:
[...]


bedoelde buiten de code die in de post stond :)
Ah ja. Ja wordt gebruikt als parameters voor de query, dat gebeurt wel veilig goddank :P

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • +1 Henk 'm!

  • GrooV
  • Registratie: September 2004
  • Laatst online: 06-09 08:46
kenneth schreef op vrijdag 23 april 2021 @ 14:00:
[...]
Deze mag wel hier, toch?
Mijn straatnaam begint met een ' , kom nog regelmatig websites tegen waar dat kapot gaat. In het begin mailde ik nog wel eens maar nu heb ik het maar opgegeven...

Als ik iDIN wil gebruiken bij de Rabobank staat er ook nog altijd %27 voor

Acties:
  • 0 Henk 'm!

  • P1nGu1n
  • Registratie: Juni 2011
  • Laatst online: 06-09 15:40
GrooV schreef op woensdag 15 juni 2022 @ 00:17:
[...]

Mijn straatnaam begint met een ' , kom nog regelmatig websites tegen waar dat kapot gaat. In het begin mailde ik nog wel eens maar nu heb ik het maar opgegeven...

Als ik iDIN wil gebruiken bij de Rabobank staat er ook nog altijd %27 voor
_O-

Wordt de data door de Rabobank wel goed doorgegeven, of speelt daar ook een encodingprobleem?

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.


Acties:
  • 0 Henk 'm!

  • GrooV
  • Registratie: September 2004
  • Laatst online: 06-09 08:46
P1nGu1n schreef op woensdag 15 juni 2022 @ 08:33:
[...]


_O-

Wordt de data door de Rabobank wel goed doorgegeven, of speelt daar ook een encodingprobleem?
Wordt wel goed doorgegeven gelukkig, anders had ik het wel gemeld bij de Rabo. Zijn hier zelf ook iDIN acceptant

Acties:
  • +1 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
P1nGu1n schreef op woensdag 15 juni 2022 @ 08:33:
Wordt de data door de Rabobank wel goed doorgegeven, of speelt daar ook een encodingprobleem
true

{signature}


Acties:
  • +3 Henk 'm!

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 01:54

AW_Bos

Liefhebber van nostalgie... 🕰️

Ook de NS doet mee aan de pride en LHBTIQ-hype, maar ook daar wil wel eens wat verkeerd gaan. Ze besloten pas geleden om in hun database met stationsnamen (die gebruikt worden in de app, en andere NS-gerelateerde sites) een regenboog-vlaggetje achter Utrecht Centraal te plaatsen, omdat Utrecht dit jaar de stad was voor de Pride: 🏳️️‍🌈. Een kwestie van unicode toevoegen, wat de API duidelijk maakt:

Afbeeldingslocatie: https://tweakers.net/i/GKU_thgGZhptYse_DWm1oWdyntE=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/j5Lhm3SYfym2ZNMJBpLPc0pE.png?f=user_large

Maar helaas heeft deze toevoeging een nadeel: Bij het registeren van mijn verloren voorwerpen via een speciaal formulier werd het station "Utrecht Centraal 🏳️️‍🌈" als niet juist geschreven station herkend op dat registratieformulier. 8)7

Via een AJAX-request halen ze dus alle stations op voor een mooie autocomplete-lijst, maar ze doen daarna nog wel een check of de invoer correct is. Misschien is het wel legacy omdat het niet nodig zou moeten zijn als je geen eigen invoer kan geven, maar maf is het wel dat de Verloren Goed pagina en misschien andere sites ook niet werkten bij het valideren. :P

Pride is voorbij, de regenboog-vlag is weg en de bug is vanzelf weer opgelost. Nou ja, opgelost?
Hopelijk volgend jaar geen vervolg op deze bug. Niks mis met die regenboog, en ik vind het ludiek, maar het moet niet gaan slopen. ;)

[ Voor 6% gewijzigd door AW_Bos op 19-06-2022 02:06 ]

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes


Acties:
  • +1 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
AW_Bos schreef op zondag 19 juni 2022 @ 02:04:
Hopelijk volgend jaar geen vervolg op deze bug. Niks mis met die regenboog, en ik vind het ludiek, maar het moet niet gaan slopen. ;)
Het is niet de regenboog die iets sloopt, het is iets wat al stuk is en waarbij het vlaggetje dat pijnlijk duidelijk maakt. Ze moeten juist wat vaker niet-latin-1-karakters in stationsnamen stoppen ;-) (Feanwâlden werkt gelukkig wel...)

[ Voor 9% gewijzigd door ValHallASW op 19-06-2022 10:37 ]


Acties:
  • +1 Henk 'm!

  • bwerg
  • Registratie: Januari 2009
  • Niet online

bwerg

Internettrol

AW_Bos schreef op vrijdag 30 april 2021 @ 13:31:
Gevalletje, whoopsie daisy met ReCaptcha V3 die ik deze week in gebruik had genomen.

PHP:
1
2
3
...
} elseif ($captcha->success == false && $captcha->score >= 0.5) {
...


score bestaat niet altijd. Zeker niet als iemand niet volgens de procedures van ReCaptcha het formulier invult (oeh, we hebben met botjes te maken :P), die dus een error krijgen.
Nou wil ik er niet meteen een PHP-bash-opmerking van maken (want die hebben we al genoeg :+) maar ik vind het niet zozeer een voorbeeld van slecht programeren (zo'n foutje is snel gemaakt, ook als je wél kan programmeren) maar eerder een voorbeeld dat aantoont waarom fail fast in programmeren een goed idee is. $captcha->score had gewoon compleet boem moeten doen. Geen score, dan ook maar geen pagina.

Heeft geen speciale krachten en is daar erg boos over.


Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 22:26
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
25
        private 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

Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Default ook 100% teruggeven :/

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • +2 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-09 08:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ik zie niet zoveel mis met die code. Het is in een oogopslag duidelijk wat het doet.

@Guillome Hoezo, "default"? Het is de enige case die overblijft, als we aannemen dat de precondities voor een "percentage" kloppen.

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


Acties:
  • 0 Henk 'm!

  • Terranova
  • Registratie: Januari 2010
  • Laatst online: 22:44
.oisyn schreef op dinsdag 17 januari 2023 @ 13:15:
Ik zie niet zoveel mis met die code. Het is in een oogopslag duidelijk wat het doet.

@Guillome Hoezo, "default"? Het is de enige case die overblijft, als we aannemen dat de precondities voor een "percentage" kloppen.
Het had in 1 regel gedaan kunnen worden of met een switch. Maar het is nu wel duidelijk inderdaad

Acties:
  • 0 Henk 'm!

  • AlphaRomeo
  • Registratie: Maart 2007
  • Laatst online: 07:52

AlphaRomeo

FP PowerMod
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        private static string GetPercentageRounds(double percentage)
        {
            string result = string.Empty;
            int numberChecked = (int)Math.Round(percentage * 10);
            for(int i = numberChecked; i > 0; i--)
            {
                result += "🔵";
            }
            for(int i = 10 - numberChecked; i > 0; i--)
            {
                result += "⚪";
            }
            return result;
        }

Anders zou het zoiets worden? Dit is minder efficiënt qua geheugen door de string allocaties, het is ook niet sneller en ook niet leesbaarder.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 06-09 17:51

Janoz

Moderator Devschuur®

!litemod

Nou, laat die switch maar zien dan, of die ene regel. En leg dan ook gelijk uit waarom dat leesbaarder is.

Enige commentaar wat ik op die code heb is dat de helft van de checks overbodig is. Alle > checks kun je in principe weg laten.

edit: Bovenstaande was natuurlijk voor @Terranova

@AlphaRomeo laat hierboven al zien dat de 'minder domme approach' uiteindelijk minder efficient en zeker ook minder leesbaar en dus slechter onderhoudbaar is.

[ Voor 31% gewijzigd door Janoz op 17-01-2023 13:34 ]

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


Acties:
  • 0 Henk 'm!

  • PolarBear
  • Registratie: Februari 2001
  • Niet online
Terranova schreef op dinsdag 17 januari 2023 @ 13:26:
[...]

Het had in 1 regel gedaan kunnen worden of met een switch. Maar het is nu wel duidelijk inderdaad
Een switch statement (iig pre C#9) iet per se heel veel leesbaarder. En hoe doe je dit leesbaar op een regel?

Acties:
  • +3 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-09 08:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

Die ene regel kan met
C#:
1
"🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵⚪⚪⚪⚪⚪⚪⚪⚪⚪⚪".Substring(10 - (int)Math.Ceiling(percentage*10), 10);

Het is iets dat ik in zou typen, maar niet echt bepaald duidelijker :P

.edit: et voila, deze regel klopt dus al niet omdat 🔵 een utf-16 surrogate pair nodig heeft, en ⚪ niet, dus het is ook niet zo simpel als simpelweg alles met 2 vermenigvuldigen.

[ Voor 29% gewijzigd door .oisyn op 19-01-2023 12:26 ]

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


Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 22:26
Het is ook niet uberslecht maar ja straks moeten de bolletjes groen en geel worden en dan zit je foutgevoelig te zoek/vervangen. Of er moet nog een extra statement bij, zit je tien keer die { } toe te voegen.

ik denk dat ik het niet door de code review zou krijgen.

[ Voor 12% gewijzigd door Kalentum op 17-01-2023 13:42 ]


Acties:
  • +1 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-09 08:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

Kalentum schreef op dinsdag 17 januari 2023 @ 13:41:
ik denk dat ik het niet door de code review zou krijgen.
Doe dan eens een voorstel dat bij jou wel door de review komt?

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


Acties:
  • +4 Henk 'm!

  • PHPResource
  • Registratie: November 2010
  • Laatst online: 00:14
Bij toeval op dit topic gekomen. Jarenlang niet geprogrammeerd, maar jullie codes snippets doen m'n hart weer sneller kloppen lol. Toch maar weer oppakken dan..
Wilde ik gewoon even delen excuus voor de offtopic.

Acties:
  • 0 Henk 'm!

  • Terranova
  • Registratie: Januari 2010
  • Laatst online: 22:44
.oisyn schreef op dinsdag 17 januari 2023 @ 13:39:
Die ene regel kan met
C#:
1
"🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵⚪⚪⚪⚪⚪⚪⚪⚪⚪⚪".Substring(10 - (int)Math.Ceiling(percentage*10), 10);

Het is iets dat ik in zou typen, maar niet echt bepaald duidelijker :P
Precies, zoiets had ik ook in gedachten, maar ik bedoelde natuurlijk niet dat die ene regel duidelijker is.

Al snap ik ook niet helemaal waarom die bolletjes in code zitten ipv in de UI, maar ik weet ook niet precies waar die code gebruikt wordt. Misschien is dat niet zo handig in die situatie
PolarBear schreef op dinsdag 17 januari 2023 @ 13:33:
[...]

Een switch statement (iig pre C#9) iet per se heel veel leesbaarder. En hoe doe je dit leesbaar op een regel?
Het is ook meer persoonlijke voorkeur denk ik. Ik vind een switch altijd wel duidelijker. Zeker na C# 7.

[ Voor 10% gewijzigd door Terranova op 17-01-2023 13:54 ]


Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 22:26
.oisyn schreef op dinsdag 17 januari 2023 @ 13:44:
[...]

Doe dan eens een voorstel dat bij jou wel door de review komt?
Aantal bolletjes voor 'klaar' genereren en dan padden met de 'todo' bolletjes

Ruby:
1
2
3
4
5
def progress(p)
  done = "🔵" * (p * 10).ceil
  
  return done.ljust(10, "⚪")
end

Acties:
  • +2 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-09 08:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

@Kalentum Dat is geen C#, maar goed, ik vind de oorspronkelijke code duidelijker.

En lees dan ook dit even ;)

[ Voor 37% gewijzigd door .oisyn op 17-01-2023 14:04 ]

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


Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 22:26
.oisyn schreef op dinsdag 17 januari 2023 @ 14:02:
@Kalentum Dat is geen C#, maar goed, ik vind de oorspronkelijke code duidelijker.

En lees dan ook dit even ;)
Er is gelukkig wel een String.PadLeft.

Acties:
  • +3 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Nu online

RayNbow

Kirika <3

Niemand die valt over de naam van het argument?

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • RagingPenguin
  • Registratie: December 2012
  • Niet online
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
25
        private 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]
Ik vind deze nog niet zo slecht, maar als ik door die codebase heen scroll dan zit wel richting de helft van alle code in een switch statement :P

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-09 08:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

Kalentum schreef op dinsdag 17 januari 2023 @ 14:06:
[...]


Er is gelukkig wel een String.PadLeft.
Jammer genoeg passen 🔵 en ⚪ niet in een char.
RayNbow schreef op dinsdag 17 januari 2023 @ 14:14:
Niemand die valt over de naam van het argument?
Niet helemaal. Als ik "percentage" zie in code vind ik het altijd onduidelijk of ze (0, 100) bedoelen of (0, 1)

[ Voor 39% gewijzigd door .oisyn op 17-01-2023 14:26 ]

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


Acties:
  • +1 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 06-09 20:17

Dido

heforshe

RayNbow schreef op dinsdag 17 januari 2023 @ 14:14:
Niemand die valt over de naam van het argument?
Jawel, ik. Maar dat was in een ander topic :P

Het is inderdaad van de gekke om een fractie die kennelijk tussen 0 en 1 kan zitten percentage te noemen.

Dan is het nog net iets minder slecht om de parameter "p" te noemen, dan voorkom je ook aannames over wat je moet meegeven.

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 22:26
.oisyn schreef op dinsdag 17 januari 2023 @ 14:24:
[...]


Jammer genoeg passen 🔵 en ⚪ niet in een char.
Echt niet? Ik las in de docs iets over dat het een Unicode char moet zijn
https://learn.microsoft.c...system-int32-system-char)

Acties:
  • +1 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-09 08:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

Kalentum schreef op dinsdag 17 januari 2023 @ 14:26:
[...]


Echt niet? Ik las in de docs iets over dat het een Unicode char moet zijn
https://learn.microsoft.c...system-int32-system-char)
Als Microsoft het heeft over een "unicode char" dan bedoelen ze een utf-16 waarde. En de bolletjes hebben surrogate pairs nodig voor utf-16 (🔵 is codepoint 0x1F535, een char is maar 16 bits dus dat past niet)

Wat dat betreft was mijn 1-regel-voorbeeld ook fout :). Wat meteen maar weer bewijst dat het niet maintainable is.

[ Voor 5% gewijzigd door .oisyn op 17-01-2023 16:12 ]

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


Acties:
  • 0 Henk 'm!

  • heuveltje
  • Registratie: Februari 2000
  • Laatst online: 06-09 09:22

heuveltje

KoelkastFilosoof

.oisyn schreef op dinsdag 17 januari 2023 @ 13:15:
Ik zie niet zoveel mis met die code. Het is in een oogopslag duidelijk wat het doet.

@Guillome Hoezo, "default"? Het is de enige case die overblijft, als we aannemen dat de precondities voor een "percentage" kloppen.
een check dat het tussen 0 en 1 ligt wel mooi zijn IMHO

[ Voor 4% gewijzigd door heuveltje op 17-01-2023 14:31 ]

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


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 06-09 17:51

Janoz

Moderator Devschuur®

!litemod

heuveltje schreef op dinsdag 17 januari 2023 @ 14:30:
[...]


een check dat het tussen 0 en 1 ligt wel mooi zijn IMHO
Mwah, je kunt wel blijven checken, maar op een gegeven moment kun je ook afspraken maken, zeker omdat het hier ook om een private methode gaat.

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


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 06-09 17:51

Janoz

Moderator Devschuur®

!litemod

Terranova schreef op dinsdag 17 januari 2023 @ 13:46:
Het is ook meer persoonlijke voorkeur denk ik. Ik vind een switch altijd wel duidelijker. Zeker na C# 7.
Laat eens zien dan?

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


Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 06-09 20:17

Dido

heforshe

heuveltje schreef op dinsdag 17 januari 2023 @ 14:30:
een check dat het tussen 0 en 1 ligt wel mooi zijn IMHO
Yeay! Als jouw code een parameter definieert als double percentage, en ik geef 67.89 mee, en jij komt met
code:
1
throw new ArgumentException("Percentage moet tussen 0 en 1 liggen");

Dan ga ik mijn bankschroef kennis laten maken met delen van jouw anatomie ;)
Janoz schreef op dinsdag 17 januari 2023 @ 14:33:
Mwah, je kunt wel blijven checken, maar op een gegeven moment kun je ook afspraken maken, zeker omdat het hier ook om een private methode gaat.
Ja, maar een "afspraak" dat in het geval van een percentage eigenlijk een fractie bedoeld wordt gaat wel heel ver.

Dat is in mijn ogen vergelijkbaar met vragen om een string en dan gaan zeuren als die string niet parsed als US-style long date.

[ Voor 37% gewijzigd door Dido op 17-01-2023 14:37 ]

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-09 08:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dido schreef op dinsdag 17 januari 2023 @ 14:35:
[...]

Yeay! Als jouw code een parameter definieert als double percentage, en ik geef 67.89 mee, en jij komt met
code:
1
throw new ArgumentException("Percentage moet tussen 0 en 1 liggen");

Dan ga ik mijn bankschroef kennis laten maken met delen van jouw anatomie ;)
Ik heb genoeg code gezien die een "percentage" interpreteert als een waarde tussen 0 en 1 (wat het ook is als je de % weglaat) om te weten geen aannames te maken over wat het moet zijn.

Een fractie is (iig in het Nederlands) evt ook weer heel wat anders. Bij 123,456 is 456 de fractie.

[ Voor 7% gewijzigd door .oisyn op 17-01-2023 14:42 ]

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


Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 06-09 20:17

Dido

heforshe

.oisyn schreef op dinsdag 17 januari 2023 @ 14:37:
Ik heb genoeg code gezien die een "percentage" interpreteert als een waarde tussen 0 en 1 (wat het ook is als je de % weglaat) om te weten geen aannames te maken over wat het moet zijn.
Ik heb ook genoeg rare kronkels gezien om voorzichtig te zijn met aannames, maar als iemand vraagt wat voor percentage loonsverhoging je wilt krijgen, geef je, naar ik aanneem, ook geen antwoord tussen 0 en 1.
wat het ook is als je de % weglaat
Ja, zo lust ik er nog wel een paar. Dan definieer ik mijn string-parameters wel als byte[], want dat is een string het uiteindelijk toch? Sterker onder water is alles een bitarray.

Hoewel ik ook daadwerkelijk wel eens datums heb gezien die als long verwacht werden :X

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 06-09 17:51

Janoz

Moderator Devschuur®

!litemod

Dido schreef op dinsdag 17 januari 2023 @ 14:35:

Ja, maar een "afspraak" dat in het geval van een percentage eigenlijk een fractie bedoeld wordt gaat wel heel ver.

Dat is in mijn ogen vergelijkbaar met vragen om een string en dan gaan zeuren als die string niet parsed als US-style long date.
Ik snap wat je bedoeld, maar die afspraak gaat imho helemaal niet zo ver. Gelukkig geeft je voorbeeld aan hoe stringent je beeld is ;). Wat je vervolgens als voorbeeld noemt is namelijk dagelijkse kost in (oa) json land :).

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


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-09 08:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dido schreef op dinsdag 17 januari 2023 @ 14:42:
[...]

Ik heb ook genoeg rare kronkels gezien om voorzichtig te zijn met aannames, maar als iemand vraagt wat voor percentage loonsverhoging je wilt krijgen, geef je, naar ik aanneem, ook geen antwoord tussen 0 en 1.
Nee, maar dan heb je het over spreektaal. Net als dat je zegt "ik reed 100" terwijl je eigenlijk 100 km/u bedoelt. 10% = 0,1. De % is een eenheid van een dimensieloze grootheid met een factor 0,01.

[ Voor 7% gewijzigd door .oisyn op 17-01-2023 14:45 ]

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


Acties:
  • 0 Henk 'm!

  • Terranova
  • Registratie: Januari 2010
  • Laatst online: 22:44
bij deze

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
return percentage switch
            {
                0 => "⚪⚪⚪⚪⚪⚪⚪⚪⚪⚪",
                >= 0 and <= 0.1 => "🔵⚪⚪⚪⚪⚪⚪⚪⚪⚪",
                >= 0.1 and <= 0.2 => "🔵🔵⚪⚪⚪⚪⚪⚪⚪⚪",
                >= 0.2 and <= 0.3 => "🔵🔵🔵⚪⚪⚪⚪⚪⚪⚪",
                >= 0.3 and <= 0.4 => "🔵🔵🔵🔵⚪⚪⚪⚪⚪⚪",
                >= 0.4 and <= 0.5 => "🔵🔵🔵🔵🔵⚪⚪⚪⚪⚪",
                >= 0.5 and <= 0.6 => "🔵🔵🔵🔵🔵🔵⚪⚪⚪⚪",
                >= 0.6 and <= 0.7 => "🔵🔵🔵🔵🔵🔵🔵⚪⚪⚪",
                >= 0.7 and <= 0.8 => "🔵🔵🔵🔵🔵🔵🔵🔵⚪⚪",
                >= 0.8 and <= 0.9 => "🔵🔵🔵🔵🔵🔵🔵🔵🔵⚪",
                _ => "🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵",
            };


afgezien van de uitlijning in 't tweakers code blok natuurlijk

[ Voor 3% gewijzigd door Terranova op 17-01-2023 14:48 ]


Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 06-09 20:17

Dido

heforshe

Janoz schreef op dinsdag 17 januari 2023 @ 14:43:
Ik snap wat je bedoeld, maar die afspraak gaat imho helemaal niet zo ver. Gelukkig geeft je voorbeeld aan hoe stringent je beeld is ;). Wat je vervolgens als voorbeeld noemt is namelijk dagelijkse kost in (oa) json land :).
In jsonland kom ik niet zonder documentatie door de code review :P
.oisyn schreef op dinsdag 17 januari 2023 @ 14:43:
Nee, maar dan heb je het over spreektaal. Net als dat je zegt "ik reed 100" terwijl je eigenlijk 100 km/u bedoelt. 10% = 0,1. De % is een eenheid van een dimensieloze grootheid met een factor 0,01.
Inderdaad, "ik reed 100" is duidelijk. Dat is formeel 161 km/u :P

Maar als iemand je vraagt naar een percentage dan zit die eenheid wel degelijk inmpliciet in de vraag ingebakken.

Net als een parameter die "datum" heet en waar stiekem een DateTime verwacht wordt - lachen als niet-.NET tegen .Net aan moet praten 8)7

Ja, ik ben een zeikerd, en zeker als het om naamgeving aankomt.
Als je parameter gelijk is aan .1, .2, .3 etc valt ie in twee van je switches, dat deed zelfs de oorspronkelijke code nog goed :P
Je kunt mazzel hebben als je een double vergelijkt met .2, maar Murphy doet ook nog mee.

[ Voor 13% gewijzigd door Dido op 17-01-2023 14:52 ]

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-09 08:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

Terranova schreef op dinsdag 17 januari 2023 @ 14:47:
[...]

bij deze

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
return percentage switch
            {
                0 => "⚪⚪⚪⚪⚪⚪⚪⚪⚪⚪",
                >= 0 and <= 0.1 => "🔵⚪⚪⚪⚪⚪⚪⚪⚪⚪",
                >= 0.1 and <= 0.2 => "🔵🔵⚪⚪⚪⚪⚪⚪⚪⚪",
                >= 0.2 and <= 0.3 => "🔵🔵🔵⚪⚪⚪⚪⚪⚪⚪",
                >= 0.3 and <= 0.4 => "🔵🔵🔵🔵⚪⚪⚪⚪⚪⚪",
                >= 0.4 and <= 0.5 => "🔵🔵🔵🔵🔵⚪⚪⚪⚪⚪",
                >= 0.5 and <= 0.6 => "🔵🔵🔵🔵🔵🔵⚪⚪⚪⚪",
                >= 0.6 and <= 0.7 => "🔵🔵🔵🔵🔵🔵🔵⚪⚪⚪",
                >= 0.7 and <= 0.8 => "🔵🔵🔵🔵🔵🔵🔵🔵⚪⚪",
                >= 0.8 and <= 0.9 => "🔵🔵🔵🔵🔵🔵🔵🔵🔵⚪",
                _ => "🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵",
            };


afgezien van de uitlijning in 't tweakers code blok natuurlijk
C#9 though, niet C#7 bij mijn weten.

En dan is de vraag, hoe oud is de code?

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


Acties:
  • +1 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 06-09 17:51

Janoz

Moderator Devschuur®

!litemod

Terranova schreef op dinsdag 17 januari 2023 @ 14:47:
[...]

bij deze

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
return percentage switch
            {
                0 => "⚪⚪⚪⚪⚪⚪⚪⚪⚪⚪",
                >= 0 and <= 0.1 => "🔵⚪⚪⚪⚪⚪⚪⚪⚪⚪",
                >= 0.1 and <= 0.2 => "🔵🔵⚪⚪⚪⚪⚪⚪⚪⚪",
                >= 0.2 and <= 0.3 => "🔵🔵🔵⚪⚪⚪⚪⚪⚪⚪",
                >= 0.3 and <= 0.4 => "🔵🔵🔵🔵⚪⚪⚪⚪⚪⚪",
                >= 0.4 and <= 0.5 => "🔵🔵🔵🔵🔵⚪⚪⚪⚪⚪",
                >= 0.5 and <= 0.6 => "🔵🔵🔵🔵🔵🔵⚪⚪⚪⚪",
                >= 0.6 and <= 0.7 => "🔵🔵🔵🔵🔵🔵🔵⚪⚪⚪",
                >= 0.7 and <= 0.8 => "🔵🔵🔵🔵🔵🔵🔵🔵⚪⚪",
                >= 0.8 and <= 0.9 => "🔵🔵🔵🔵🔵🔵🔵🔵🔵⚪",
                _ => "🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵",
            };


afgezien van de uitlijning in 't tweakers code blok natuurlijk
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

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


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-09 08:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dido schreef op dinsdag 17 januari 2023 @ 14:50:
Maar als iemand je vraagt naar een percentage dan zit die eenheid wel degelijk inmpliciet in de vraag ingebakken.
Fractie dekt de lading echter niet. "Welke fractie aan loonsverhoging wil je" slaat nergens op :)

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


Acties:
  • 0 Henk 'm!

  • Terranova
  • Registratie: Januari 2010
  • Laatst online: 22:44
.oisyn schreef op dinsdag 17 januari 2023 @ 14:50:
[...]

C#9 though, niet C#7 bij mijn weten.

En dan is de vraag, hoe oud is de code?
haha ja, had geen zin om de 7 variant nog te maken :p
maar dan krijg je zoiets als

code:
1
2
3
4
5
6
7
8
9
switch (percentage)
            {
                case double p when p == 0:
                    return "⚪⚪⚪⚪⚪⚪⚪⚪⚪⚪";
                case double p when p > 0.0 && p < 0.1:
                    return "🔵⚪⚪⚪⚪⚪⚪⚪⚪⚪";
                default:
                    return "🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵";
            }


Maar dan alle opties

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-09 08:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dan zit je dus alsnog verkapte if-statements te maken in je switch cases :)

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


Acties:
  • 0 Henk 'm!

  • Terranova
  • Registratie: Januari 2010
  • Laatst online: 22:44
Janoz 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.
Ah je hebt gelijk, ik heb nu even snel de volgorde van de IFs overgenomen uit het origineel. Niet getest natuurlijk :+

Edit: Nog even over nagedacht. Het gaat wel goed, de 1e regel is eigenlijk == 0, maar de == is overbodig in de code in dit geval.

[ Voor 12% gewijzigd door Terranova op 17-01-2023 15:39 ]


Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 06-09 20:17

Dido

heforshe

.oisyn schreef op dinsdag 17 januari 2023 @ 14:52:
Fractie dekt de lading echter niet. "Welke fractie aan loonsverhoging wil je" slaat nergens op :)
Nee, daarom dat we percentages gebruiken.

.2 een percentage noemen (en dan 20% bedoelen!) is programmeurshumor van het niveau "wil je koffie of thee?" - "Ja!".

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • Terranova
  • Registratie: Januari 2010
  • Laatst online: 22:44
.oisyn schreef op dinsdag 17 januari 2023 @ 14:53:
Dan zit je dus alsnog verkapte if-statements te maken in je switch cases :)
Oh zeker, maar daarom zei ik ook persoonlijke voorkeur. In mijn geval is dit overzichtelijker, maar dat zal lang niet voor iedereen zijn

Edit: Ik zie net dat het origineel geen brackets had, dan is de switch bijna identiek aan de if, dus dan geldt mijn statement niet echt, ook al zou ik wel altijd brackets gebruiken bij IFs


Overigens, ik dacht eerder dat de issue van de naam van de functie het steenkolen engels was ipv het percentage :9 Rondjes vertaald naar Rounds :+

[ Voor 34% gewijzigd door Terranova op 17-01-2023 15:00 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-09 08:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dido schreef op dinsdag 17 januari 2023 @ 14:54:
[...]

Nee, daarom dat we percentages gebruiken.

.2 een percentage noemen (en dan 20% bedoelen!) is programmeurshumor van het niveau "wil je koffie of thee?" - "Ja!".
Maar iedereen snapt wat er bedoelt wordt, behalve een zeikert die Dido heet ;), en fractie dekt de lading niet. Dus dan maar zinloos met 100 gaan vermenigvuldigen bij gebrek aan een betere term?

Of een aparte type maken genaamd Percentage die alles opslaat in een double (tussen 0 en 1 dus) met een pretty print naar value*100 + "%" en te initialiseren is vanuit een double (tussen 0 en 1). Doet de code onder water exact hetzelfde als het nu doet, alleen klopt het kwa naamgeving :Y)

[ Voor 24% gewijzigd door .oisyn op 17-01-2023 15:01 ]

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


Acties:
  • +1 Henk 'm!

  • PolarBear
  • Registratie: Februari 2001
  • Niet online
Maar lang verhaal kort, een echt slecht programeervoorbeeld is het niet.

Acties:
  • 0 Henk 'm!

  • Terranova
  • Registratie: Januari 2010
  • Laatst online: 22:44
PolarBear schreef op dinsdag 17 januari 2023 @ 15:00:
Maar lang verhaal kort, een echt slecht programeervoorbeeld is het niet.
Maar nu het nut van de functie nog. Aangezien het duidelijk een progressbar is, waarom is het niet in de UI :+

Acties:
  • +1 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 06-09 20:17

Dido

heforshe

.oisyn schreef op dinsdag 17 januari 2023 @ 14:58:
Maar iedereen snapt wat er bedoelt wordt, behalve een zeikert die Dido heet ;), en fractie dekt de lading niet. Dus dan maar zinloos met 100 gaan vermenigvuldigen bij gebrek aan een betere term?
Oh, ik ben sowieso voorstander van het verbannen van het hele begrip "percentage". We "leren" het allemaal op de basisschool, maar de meeste mensen snappen het hun hele leven niet. Kijk naar de ophef over de BTW-korting van de Mediamarkt indertijd :+

Maar goed, als we "zinloos vermenigvuldigen met 100" weggooien, dan kan de Hertz ook wel uit het SI-stelsel. Da's ook een op zichzelf lege operatie ("per seconde"), je zou een snelheid kunnen weergeven in mHz, ware het niet dat we de m dubbel gebruiken voor meter en milli- :X
Hz is nog makkelijker tikken ook dan s-1.
Terranova schreef op dinsdag 17 januari 2023 @ 15:01:
Maar nu het nut van de functie nog. Aangezien het duidelijk een progressbar is, waarom is het niet in de UI :+
Je doet wel wat aannames, misschien wordt die "progressbar" verderop in het proces wel weer omgerekend naar een numerieke waarde om iets te gaan berekenen 8)7

En ja, dat soort dingen heb ik echt gezien :X

[ Voor 19% gewijzigd door Dido op 17-01-2023 15:05 ]

Wat betekent mijn avatar?


Acties:
  • +1 Henk 'm!

  • PolarBear
  • Registratie: Februari 2001
  • Niet online
Terranova schreef op dinsdag 17 januari 2023 @ 15:01:
[...]

Maar nu het nut van de functie nog. Aangezien het duidelijk een progressbar is, waarom is het niet in de UI :+
Pure gok/aanname, als je in iOS je paspoort scant met NFC (en uit dat deel komt deze snippet) ziet de UI er nogal clonky uit. Het lijkt dan ook een work-around.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-09 08:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dido schreef op dinsdag 17 januari 2023 @ 15:03:
Maar goed, als we "zinloos vermenigvuldigen met 100" weggooien
In de code he. Ik ga niet een multiplier zitten toevoegen alleen omdat de naam dan beter klopt in een stricte interpretatie van het woord. Als je ermee wilt rekenen moet je vervolgens weer delen door 100. Het is wat mij betreft gewoon een representatie-ding. Een percentage sla je op als waarde tussen 0 en 1, maar bij weergeven vermenigvuldig je met 100 en prop je er een % achter.
dan kan de Hertz ook wel uit het SI-stelsel
Daarom hebben we het ook over frametime en niet over framerate in code :Y). Maar goed, frequentie is gewoon een bruikbare grootheid.

[ Voor 42% gewijzigd door .oisyn op 17-01-2023 16:33 ]

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


Acties:
  • 0 Henk 'm!

  • RagingPenguin
  • Registratie: December 2012
  • Niet online
.oisyn schreef op dinsdag 17 januari 2023 @ 14:58:
[...]
Of een aparte type maken genaamd Percentage die alles opslaat in een double (tussen 0 en 1 dus) met een pretty print naar value*100 + "%" en te initialiseren is vanuit een double (tussen 0 en 1). Doet de code onder water exact hetzelfde als het nu doet, alleen klopt het kwa naamgeving :Y)
In FP land is dat ook gewoon heel normaal om dit soort ongein te voorkomen :P Kan je ook direct functies maken die enkel met percentages werken en niet met random nummertjes.

Acties:
  • +1 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
Ik moet zeggen dat ik me ernstig verbaas over hoe normaal sommigen het vinden om twee representaties die een factor 100 uit elkaar liggen door elkaar te gooien. Alsof je code hebt die deels Nm·s en deels lb·ft·s gebruikt en ze vervolgens niet zorgvuldig uit elkaar houdt.

In dit geval maakt het niet zoveel uit (worst case scenario werkt je progress bar niet goed), maar in bijvoorbeeld financiële berekeningen maakt het nogal uit of het rentepercentage 6% of 0.06% (of 600%...) is, en als je niet helder bent in je terminologie dan veroorzaak je dat soort messups.

'percentage' als parameternaam is ook nog om een andere reden problematisch: het vertelt niets over wat er eigenlijk gemeten wordt: een percentage van wat?. Een `double progress` of `double progressFraction` was een stuk informatiever geweest.

Acties:
  • +1 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-09 08:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

ValHallASW schreef op dinsdag 17 januari 2023 @ 17:24:
Ik moet zeggen dat ik me ernstig verbaas over hoe normaal sommigen het vinden om twee representaties die een factor 100 uit elkaar liggen door elkaar te gooien
Je ziet mij ze niet door elkaar gooien, ik zie niet zoveel nut in het opslaan van een waarden tussen 0 en 100 voor een percentage. Ermee rekenen wordt alleen maar gecompliceerd daardoor.
'percentage' als parameternaam is ook nog om een andere reden problematisch: het vertelt niets over wat er eigenlijk gemeten wordt: een percentage van wat?. Een `double progress` of `double progressFraction` was een stuk informatiever geweest.
Daar gaat het dus al mis, voor de functie is het helemaal niet relevant wat er gemeten wordt. Je zou dezelfde functie kunnen gebruiken om aan te geven hoe vol een trein is. Dat heeft weer niets met voortgang te maken :)

[ Voor 27% gewijzigd door .oisyn op 17-01-2023 17:32 ]

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


Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
.oisyn schreef op dinsdag 17 januari 2023 @ 17:30:
Je ziet mij ze niet door elkaar gooien, ik zie niet zoveel nut in het opslaan van een waarden tussen 0 en 100 voor een percentage. Ermee rekenen wordt alleen maar gecompliceerd daardoor.
Ik ben het met je eens dat het weinig zin heeft om in code met percentages te werken. Een percentage is iets voor in een UI, en aan de rand van je applicatie moet je die zo snel mogelijk normaliseren door 'm om te zetten in een fractie.

Maar nadat je dat hebt gedaan is het geen percentage meer, en is het dus verwarrend om het wel zo te noemen.
Daar gaat het dus al mis, voor de functie is het helemaal niet relevant wat er gemeten wordt. Je zou dezelfde functie kunnen gebruiken om aan te geven hoe vol een trein is. Dat heeft weer niets met voortgang te maken :)
Als het een public helper function was geweest dan was dat waar geweest, maar in dat geval was het dubbel zo hard nodig geweest om helder te zijn over wat de vorm van de input van je functie is.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-09 08:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

ValHallASW schreef op dinsdag 17 januari 2023 @ 17:52:
[...]

Ik ben het met je eens dat het weinig zin heeft om in code met percentages te werken. Een percentage is iets voor in een UI, en aan de rand van je applicatie moet je die zo snel mogelijk normaliseren door 'm om te zetten in een fractie.
Een fractie is "het gedeelte achter de komma" of een breuk. Heb je een betere naam?

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


Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
.oisyn schreef op dinsdag 17 januari 2023 @ 17:53:
[...]

Een fractie is "het gedeelte achter de komma". Heb je een betere naam?
Volgens mij is "fractie" een prima term. Zie bv massafractie vs massapromillage vs ppm.

Edit: sterker nog, volgens de Etymologiebank is dat de term 'fractie' voor een wiskundige breuk de oudst bekende betekenis:
fractie zn. ‘gedeelte’
Vnnl. fractie ‘breking, breuk’ [1650; Hofman]. Wrsch. is ‘breking’ slechts een woordenboekdefinitie en is deze betekenis in de praktijk onbekend geweest; in context hebben de oudste attestaties alle de betekenis ‘(wiskundige) breuk, gedeelte’, zoals in abbreviatio ofte verminderinge der fractien ‘vereenvoudiging van breuken’ [1669; WNT vermindering]; nnl. in de decimael-fractien van minuten [1760; WNT tusschen].

[ Voor 53% gewijzigd door ValHallASW op 17-01-2023 18:07 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-09 08:41

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dat zei ik al in mijn edit ;). Ik vind "breuk" nou niet echt de waarde dekken.

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


Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
.oisyn schreef op dinsdag 17 januari 2023 @ 18:09:
Dat zei ik al in mijn edit ;). Ik vind "breuk" nou niet echt de waarde dekken.
Voor mijn part noem je het een "kommagetalInEenheidsinterval", zolang je die kommagetallenInEenheidsintervallen maar geen percentages noemt.

Ik snap niet zo goed waarom je ageert tegen een term die algemeen geaccepteerd is -- in ieder geval in de meeste technische wetenschappelijke vakgebieden -- ten faveure van een term die de lading volstrekt niet dekt.

[ Voor 24% gewijzigd door ValHallASW op 17-01-2023 18:24 ]


Acties:
  • 0 Henk 'm!

Verwijderd

.oisyn schreef op dinsdag 17 januari 2023 @ 17:53:
[...]

Een fractie is "het gedeelte achter de komma" of een breuk. Heb je een betere naam?
Significantie

Acties:
  • +1 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Toch vind ik het een vreemde keuze als je een double als parameter hebt (ongeacht dat het private is), je 10 waardes checkt, en in álle andere gevallen een 100% status terug geeft.

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • +3 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 02:50

F.West98

Alweer 16 jaar hier

Terranova schreef op dinsdag 17 januari 2023 @ 14:47:
[...]

bij deze

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
return percentage switch
            {
                0 => "⚪⚪⚪⚪⚪⚪⚪⚪⚪⚪",
                >= 0 and <= 0.1 => "🔵⚪⚪⚪⚪⚪⚪⚪⚪⚪",
                >= 0.1 and <= 0.2 => "🔵🔵⚪⚪⚪⚪⚪⚪⚪⚪",
                >= 0.2 and <= 0.3 => "🔵🔵🔵⚪⚪⚪⚪⚪⚪⚪",
                >= 0.3 and <= 0.4 => "🔵🔵🔵🔵⚪⚪⚪⚪⚪⚪",
                >= 0.4 and <= 0.5 => "🔵🔵🔵🔵🔵⚪⚪⚪⚪⚪",
                >= 0.5 and <= 0.6 => "🔵🔵🔵🔵🔵🔵⚪⚪⚪⚪",
                >= 0.6 and <= 0.7 => "🔵🔵🔵🔵🔵🔵🔵⚪⚪⚪",
                >= 0.7 and <= 0.8 => "🔵🔵🔵🔵🔵🔵🔵🔵⚪⚪",
                >= 0.8 and <= 0.9 => "🔵🔵🔵🔵🔵🔵🔵🔵🔵⚪",
                _ => "🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵",
            };


afgezien van de uitlijning in 't tweakers code blok natuurlijk
Dit kan natuurlijk nog weer korter omdat C# de cases van boven naar beneden evalueert:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
return percentage switch
{
    0      => "⚪⚪⚪⚪⚪⚪⚪⚪⚪⚪",
    <= 0.1 => "🔵⚪⚪⚪⚪⚪⚪⚪⚪⚪",
    <= 0.2 => "🔵🔵⚪⚪⚪⚪⚪⚪⚪⚪",
    <= 0.3 => "🔵🔵🔵⚪⚪⚪⚪⚪⚪⚪",
    <= 0.4 => "🔵🔵🔵🔵⚪⚪⚪⚪⚪⚪",
    <= 0.5 => "🔵🔵🔵🔵🔵⚪⚪⚪⚪⚪",
    <= 0.6 => "🔵🔵🔵🔵🔵🔵⚪⚪⚪⚪",
    <= 0.7 => "🔵🔵🔵🔵🔵🔵🔵⚪⚪⚪",
    <= 0.8 => "🔵🔵🔵🔵🔵🔵🔵🔵⚪⚪",
    <= 0.9 => "🔵🔵🔵🔵🔵🔵🔵🔵🔵⚪",
    _      => "🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵"
};


En daarom maakt het dus eigenlijk weinig uit of de cases wel of niet overlappen, zolang je het maar goed van boven naar beneden doet. Je zou dan nog <0 kunnen toevoegen los, afhankelijk van wat voor gedrag je wil. Zelf vind ik dit nog net iets leesbaarder dan die andere vorm omdat die extra >= check een beetje overbodig voelt en het net wat meer cluttered maakt.

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

Pagina: 1 ... 19 20 Laatste

Let op:
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. :)