[alg] Slechtste programmeervoorbeelden deel 4 Vorige deel Overzicht Laatste deel

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

Pagina: 1 2 ... 103 Laatste
Acties:
  • 992.790 views

Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Ik zei dan ook minstens. Het gaat hier ook om 2 nummers, niet om 1 nummer :P

Acties:
  • 0 Henk 'm!

  • Bananenplant
  • Registratie: Januari 2001
  • Laatst online: 15:16
rwb schreef op vrijdag 24 oktober 2008 @ 16:12:
De vraag is of de captcha visueel ook 96334 bevatte of dat het alleen een identifier was voor de server om te herleiden over welke captcha het gaat. Als dat het geval is dan zou het geen probleem zijn ( Mits ze niet hergebruikt worden ;) )
Ik vind het dan toch netter om dat getal ook in een alt-tekst te zetten. Dan kunnen blinden de captcha ook goed gebruiken.

💶 Wil je in een vrije democratie blijven wonen? Betaal dan voor nieuws. 📰
❌ ceterum censeo contra factiones ad dextrum extremum esse pugnandum. 🙅🏻‍♂️


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 07:51

Sebazzz

3dp

ucchan schreef op vrijdag 24 oktober 2008 @ 20:35:
[...]


Ik vind het dan toch netter om dat getal ook in een alt-tekst te zetten. Dan kunnen blinden de captcha ook goed gebruiken.
En spambots ook. Handig hè. Er zijn voor diverse webtalen libraries beschikbaar die tekst naar gesproken tekst in bijv. MP3 formaat kunnen omzetten. Dat is een betere optie.

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Sebazzz schreef op vrijdag 24 oktober 2008 @ 20:46:
[...]

En spambots ook. Handig hè. Er zijn voor diverse webtalen libraries beschikbaar die tekst naar gesproken tekst in bijv. MP3 formaat kunnen omzetten. Dat is een betere optie.
Totdat je internationaal wilt gaan... Of je te maken hebt met mensen die al het geluid uitzetten behalve hun screenreader om geen last te hebben van flash-reclames etc... Of als je niet ongelimiteerde bandbreedte hebt...

IMHO zijn screenreaders echt the way to go for blinden, dat is een eenduidige stem etc speciaal gemaakt voor blinden / slechtzienden. Denk aub niet dat je met een mp3'jes als webdesigner iets oplost, volgens mij maak je het alleen maar ontoegankelijker hoe goed je bedoelingen ook zijn.

Alt-tekst is bedoeld als redelijk universeel alternatief. Gebruik dit dan ook gewoon en ondervang de spambots op andere manieren dan een geaccepteerde werkwijze te slopen...

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Gomez12 schreef op vrijdag 24 oktober 2008 @ 21:28:
[...]

Totdat je internationaal wilt gaan... Of je te maken hebt met mensen die al het geluid uitzetten behalve hun screenreader om geen last te hebben van flash-reclames etc... Of als je niet ongelimiteerde bandbreedte hebt...

IMHO zijn screenreaders echt the way to go for blinden, dat is een eenduidige stem etc speciaal gemaakt voor blinden / slechtzienden. Denk aub niet dat je met een mp3'jes als webdesigner iets oplost, volgens mij maak je het alleen maar ontoegankelijker hoe goed je bedoelingen ook zijn.

Alt-tekst is bedoeld als redelijk universeel alternatief. Gebruik dit dan ook gewoon en ondervang de spambots op andere manieren dan een geaccepteerde werkwijze te slopen...
Maar het idee van een captcha is natuurlijk juist dat niet makkelijk door een machine gelezen kan worden zodat spambots niet automatisch dingen kunnen doen. Het leesbaar maken voor een screenreader maakt dat hele concept onbruikbaar.

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


Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 15:01

pietje63

RTFM

Het gaat een beetje offtopic, maar wellicht is het dan een goed idee om de alt-tekst wat uitgebreider te maken dan enkel de tekst die je moet typen. Voorbeelden:

alt="Type negen zes drie drie vier in getallen"
alt="bereken 12+96334-12" (of is deze te moeilijk voor mensen?)

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

Anoniem: 178962

Het lijkt me niet dat dit het juiste topic is voor een captcha discussie (plus dat we die al zoveel gehad hebben).

Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
BalusC schreef op vrijdag 24 oktober 2008 @ 20:04:
Ik zei dan ook minstens. Het gaat hier ook om 2 nummers, niet om 1 nummer :P
Ten eerste: nee, het gaat wel degelijk om één getal. Het eerste getal is willekeurig, het tweede getal moet hetzelfde zijn. Vergelijk het met het gooien van twee dobbelstenen: de kans dat je twee dezelfde cijfers gooit is 1/6, niet 1/36. De kans dat je twee keer 6 gooit is wél 1/36 (maar de kans dat je twee dezelfde cijfers gooit is (de kans dat je twee keer 1 gooit) + (de kans dat je twee keer 2 gooit) + ... + (de kans dat je twee keer 6 gooit) = 6*(de kans dat je twee keer 1 gooit)=1/6 ;))

Verder: Hoyle's fallacy. Dat de kans klein is dat het gebeurt betekent nog niet dat het daarom geen toeval is!

Acties:
  • 0 Henk 'm!

  • dev10
  • Registratie: April 2005
  • Laatst online: 05-06 11:35
pietje63 schreef op zaterdag 25 oktober 2008 @ 16:46:
alt="bereken 12+96334-12" (of is deze te moeilijk voor mensen?)
Reken er maar op dat er een hoop mensen zijn die dat te moeilijk vinden. ;) Ik moest zelf ook even denken en meestal heb ik dan geen zin om te gaan denken en het goede antwoord in te vullen.

Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

ValHallASW schreef op zaterdag 25 oktober 2008 @ 17:05:
Verder: Hoyle's fallacy. Dat de kans klein is dat het gebeurt betekent nog niet dat het daarom geen toeval is!
Hoyle's gaat over evolutie theorie en dat argument, niet over algemene kansrekening. Het zou eerder een Prosecutors fallacy zijn.

[ Voor 19% gewijzigd door Zoijar op 25-10-2008 17:39 ]


Acties:
  • 0 Henk 'm!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

ValHallASW schreef op zaterdag 25 oktober 2008 @ 17:05:
het tweede getal moet hetzelfde zijn
.oisyn suggereerde dus dat dit niet het geval is ;)

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 14:31

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dat is niet wat ValHallASW bedoelt. Het tweede getal (rand) moet hetzelfde zijn aan het eerste (seed), om de test (rand == seed) te laten slagen. De kans dat rand == seed is gelijk aan 1 op rand_length (zolang seed_length <= rand_length), en niet 1 op rand_length * seed_length oid.

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!

  • BalusC
  • Registratie: Oktober 2000
  • Niet online

BalusC

Carpe diem

Er lopen discussies door elkaar. Ik had het gewoon over dat stukje HTML code van KabouterSuper waarbij met geen woord over diens werking danwel een randomgenerator werd gerept. That's all.

Acties:
  • 0 Henk 'm!

  • Sv3n
  • Registratie: Mei 2002
  • Laatst online: 11:21
Kwam dit net tegen:

Java:
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
49
50
51
52
53
54
55
    /**
     * Vergelijk 2 objecten met elkaar
     * 
     * @param a
     * @param b
     * @param found
     * @return true als gelijk.
     */
    @SuppressWarnings("unchecked")
    private boolean vergelijk(Object a, Object b, boolean found)
    {
        if (found)
        {
            if (a != null && b != null)
            {
                if (a instanceof Integer)
                {
                    if (((Long) a).intValue() == ((Long) b).intValue())
                    {
                        return true;
                    }
                }
                if (a instanceof String)
                {
                    if (((String) a).equals(b))
                    {
                        return true;
                    }
                }
                if (a instanceof Double)
                {
                    if (((Double) a).doubleValue() == ((Double) b).doubleValue())
                    {
                        return true;
                    }
                }
                if (a instanceof Set)
                {
                    if (((Set) a).size() == ((Set) b).size())
                    {
                        return true;
                    }
                }
            }
            else if (a == null && b != null && b instanceof Set)
            {
                if (((Set) b).size() == 0)
                {
                    return true;
                }
            }
            return a == null && b == null;
        }
        return found;
    }


;(

Last.fm
Films!


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15:25

Janoz

Moderator Devschuur®

!litemod

Naast dat het een draak van een methode is vermoed ik ook nog eens dat de toegevoegde found een soort kut oplossing is voor het halverwege afkappen wanneer iets al gevonden is.

iets als:
Java:
1
2
3
4
found = false;
for(Object o : someCollection) {
  found = vergelijk(o,subject,found);
}

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!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 15:42
Comparable interface??
Sv3n schreef op woensdag 29 oktober 2008 @ 09:56:
Kwam dit net tegen:

Java:
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
49
50
51
52
53
54
55
    /**
     * Vergelijk 2 objecten met elkaar
     * 
     * @param a
     * @param b
     * @param found
     * @return true als gelijk.
     */
    @SuppressWarnings("unchecked")
    private boolean vergelijk(Object a, Object b, boolean found)
    {
        if (found)
        {
            if (a != null && b != null)
            {
                if (a instanceof Integer)
                {
                    if (((Long) a).intValue() == ((Long) b).intValue())
                    {
                        return true;
                    }
                }
                if (a instanceof String)
                {
                    if (((String) a).equals(b))
                    {
                        return true;
                    }
                }
                if (a instanceof Double)
                {
                    if (((Double) a).doubleValue() == ((Double) b).doubleValue())
                    {
                        return true;
                    }
                }
                if (a instanceof Set)
                {
                    if (((Set) a).size() == ((Set) b).size())
                    {
                        return true;
                    }
                }
            }
            else if (a == null && b != null && b instanceof Set)
            {
                if (((Set) b).size() == 0)
                {
                    return true;
                }
            }
            return a == null && b == null;
        }
        return found;
    }


;(

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15:25

Janoz

Moderator Devschuur®

!litemod

Niet eens nodig. Alle gebruikte objecten implementeren gewoon equals. Het enige verschil is de manier waarop met sets omgegaan wordt. Daarbij wordt alleen gekeken of beide evenveel elementen bevatten en staat een lege set gelijk aan een null (onafhankelijk van het type van het null object)

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!

  • Maghiel
  • Registratie: Maart 2004
  • Laatst online: 09-06 12:12
Ik kom net dit tegen in een oud stukje code van een ex-stagair:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
    /**
     * Checks for a space
     *
     */
    private function has_space($text)
    {
        if( ereg(" ",$text) )
        {
            return true;
        }

        return false;       
    } // end func has_space

Acties:
  • 0 Henk 'm!

Anoniem: 140111

Maghiel schreef op woensdag 29 oktober 2008 @ 15:58:
Ik kom net dit tegen in een oud stukje code van een ex-stagair:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
    /**
     * Checks for a space
     *
     */
    private function has_space($text)
    {
        if( ereg(" ",$text) )
        {
            return true;
        }

        return false;       
    } // end func has_space
Behalve twee returns, wat je slordig kunt vinden, wat is hier fout aan?
(ik ken de php api niet echt)

Acties:
  • 0 Henk 'm!

Anoniem: 58827

Anoniem: 140111 schreef op woensdag 29 oktober 2008 @ 16:07:
[...]

Behalve twee returns, wat je slordig kunt vinden, wat is hier fout aan?
(ik ken de php api niet echt)
Denk dat hij bedoeld dat
code:
1
2
3
4
5
<?php
if(ereg(" ",$text)){
  /// uit te voeren code
}
?>


Gewoon ook werkt.

Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
Anoniem: 58827 schreef op woensdag 29 oktober 2008 @ 16:12:
[...]


Denk dat hij bedoeld dat

Gewoon ook werkt.
Of het feit dat er een regular expression engine opgestart word om te kijken of er een spatie voorkomt in een string.

Acties:
  • 0 Henk 'm!

  • Maghiel
  • Registratie: Maart 2004
  • Laatst online: 09-06 12:12
Anoniem: 140111 schreef op woensdag 29 oktober 2008 @ 16:07:
[...]

Behalve twee returns, wat je slordig kunt vinden, wat is hier fout aan?
(ik ken de php api niet echt)
Er is niets mis met die twee returns, maar wat is het verschil tussen dit doen:

PHP:
1
2
3
4
if (ereg(" ",$text))
{
  //uit te voeren code
}


en

PHP:
1
2
3
4
if (has_space($text))
{
   // uit te voeren code
}


Das net zoiets doen als zo'n functie maken

PHP:
1
2
3
4
function outputSomething($string)
{
     echo $string;
}


:p
Anoniem: 58827 schreef op woensdag 29 oktober 2008 @ 16:12:
[...]


Denk dat hij bedoeld dat

code:
1
2
3
4
5
<?php
if(ereg(" ",$text)){
  /// uit te voeren code
}
?>


Gewoon ook werkt.
idd :)
Of het feit dat er een regular expression engine opgestart word om te kijken of er een spatie voorkomt in een string.
en dat ook idd

[ Voor 8% gewijzigd door Maghiel op 29-10-2008 16:19 ]


Acties:
  • 0 Henk 'm!

  • !null
  • Registratie: Maart 2008
  • Laatst online: 09-06 14:15
Wat PrisonerOfPain zegt lijkt me. Plus dat je het ook zo kan schrijven:

PHP:
1
2
3
4
private function has_space($text)
{
    return ereg(" ",$text);
}


edit: Ik vind een HasSpace functie niet zo heel erg. Tuurlijk kan je het in 1 keer schrijven, maar dit is weer een puntje voor de netheid. (al snap ik dat genoeg mensen het direct zullen doen)

[ Voor 37% gewijzigd door !null op 29-10-2008 16:24 ]

Ampera-e (60kWh) -> (66kWh)


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 14:31

.oisyn

Moderator Devschuur®

Demotivational Speaker

Maghiel schreef op woensdag 29 oktober 2008 @ 16:19:
[...]


Er is niets mis met die twee returns, maar wat is het verschil tussen dit doen:

PHP:
1
2
3
4
if (ereg(" ",$text))
{
  //uit te voeren code
}


en

PHP:
1
2
3
4
if (has_space($text))
{
   // uit te voeren code
}
Het verschil is dat bij de tweede variant veel duidelijker is wat het doet, plus dat het gemakkelijker aan te passen is als je de regex wilt veranderen, om bijv. ook naar andere whitespaces te zoeken.

Ik vind wat jij zegt dan ook absoluut geen slecht programmeervoorbeeld. Daarnaast is het weliswaar een beetje overkill om een reguliere expressie te gebruiken als je ook gewoon strstr() kunt doen die een stuk sneller is, maar fout is het echter niet, en de regex kan makkelijk uitgebreid worden om ook naar andere whitespaces (zoals tabs en returns) te zoeken.

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!

Anoniem: 140111

Stijlverschillen dus, geen programmeerfouten.

Acties:
  • 0 Henk 'm!

  • !null
  • Registratie: Maart 2008
  • Laatst online: 09-06 14:15
Inderdaad, al blijft het onzin om handmatig true of false te returnen.

Ampera-e (60kWh) -> (66kWh)


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 14:31

.oisyn

Moderator Devschuur®

Demotivational Speaker

Klopt, maar dat gaat hier niet op, want eregi() returnt niet of er een match is maar hoeveel van de string gematcht is. Je zou 'm natuurlijk kunnen casten naar bool.

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!

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 09-06 20:31

Robtimus

me Robtimus no like you

Sv3n schreef op woensdag 29 oktober 2008 @ 09:56:
Java:
1
2
3
if (a instanceof Integer)
{
    if (((Long) a).intValue() == ((Long) b).intValue())
Ik ben ook de enige die deze ClassCastException waiting to happen heeft gezien?
PrisonerOfPain schreef op woensdag 29 oktober 2008 @ 16:18
Of het feit dat er een regular expression engine opgestart word om te kijken of er een spatie voorkomt in een string.
Inderdaad. Een strpos lijkt me een stukje handiger / efficienter in dit geval, als je toch een aparte functie wilt hebben.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Anoniem: 58827 schreef op woensdag 29 oktober 2008 @ 16:12:
Denk dat hij bedoeld dat [code=]<?php
Ik denk dat hij dat bedoelt :P

Functie op zich is prima, maar bij een scripted language krijg je een performance los.

Acties:
  • 0 Henk 'm!

  • !null
  • Registratie: Maart 2008
  • Laatst online: 09-06 14:15
.oisyn schreef op woensdag 29 oktober 2008 @ 17:10:
Klopt, maar dat gaat hier niet op, want eregi() returnt niet of er een match is maar hoeveel van de string gematcht is. Je zou 'm natuurlijk kunnen casten naar bool.
Ok, das waar en dat geldt ook voor de betere vervangings functies die hier gesuggereerd worden. Wat zou jij dan doen? '== true' ?

Ampera-e (60kWh) -> (66kWh)


Acties:
  • 0 Henk 'm!

  • chocoschijtje
  • Registratie: September 2007
  • Laatst online: 04-06 09:48
die hele functie is niet nodig, want php heeft gewoon ctype_space ;)

shit je hebt gelijk 8)7

[ Voor 11% gewijzigd door chocoschijtje op 29-10-2008 22:30 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 14:31

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ik denk dat je de door jezelf aangedragen documentatie beter moet doorlezen ;)

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!

  • YopY
  • Registratie: September 2003
  • Laatst online: 31-05 09:09
IceManX schreef op woensdag 29 oktober 2008 @ 20:51:
Ik ben ook de enige die deze ClassCastException waiting to happen heeft gezien?
Die komt natuurlijk niet voor, er staat '@SuppressWarnings("unchecked")' boven de functie, die dat mogelijke probleem gewoon oplost. :+

Acties:
  • 0 Henk 'm!

  • ibmos2warp
  • Registratie: Januari 2007
  • Laatst online: 20-11-2023

ibmos2warp

Eval is Evil

chocoschijtje schreef op woensdag 29 oktober 2008 @ 22:18:
die hele functie is niet nodig, want php heeft gewoon ctype_space ;)

shit je hebt gelijk 8)7
Misschien werkt ctype_graph wel :+.
(Oke, je checkt dan niet precies op een spatie, maar ook op een tab, een nieuwe regel, enz. En het is idd misschien wat omslachtig. :X)

Ik weet alles van niks
Vind Excel ongelovelijk irritant.


Acties:
  • 0 Henk 'm!

  • Quincy5
  • Registratie: November 2006
  • Laatst online: 14:16
IceManX schreef op woensdag 29 oktober 2008 @ 20:51:

Ik ben ook de enige die deze ClassCastException waiting to happen heeft gezien?
En voor de mensen die niet zo onderlegd zijn in Java en classes, wat kan er dan fout gaan of een exception geven?

PV Output


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15:25

Janoz

Moderator Devschuur®

!litemod

Quincy5 schreef op donderdag 30 oktober 2008 @ 13:31:
[...]

En voor de mensen die niet zo onderlegd zijn in Java en classes, wat kan er dan fout gaan of een exception geven?
Eerst controleer je om te kijken of het van het type Integer is, maar daarna probeer je het te casten naar een Long.

@YopY
Dat is alleen om de waarschuwingen van de non generic Set te onderdrukken.

[ Voor 10% gewijzigd door Janoz op 30-10-2008 13:36 ]

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: 14:31

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hij kijkt of het een Integer is, en vervolgens cast ie het naar een Long. You do the math.

.edit: damn you Janoz :P

[ Voor 13% gewijzigd door .oisyn op 30-10-2008 13:36 ]

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!

  • .Gertjan.
  • Registratie: September 2006
  • Laatst online: 17-02 21:20

.Gertjan.

Owl!

Janoz schreef op donderdag 30 oktober 2008 @ 13:35:
[...]

Eerst controleer je om te kijken of het van het type Integer is, maar daarna probeer je het te casten naar een Long.

@YopY
Dat is alleen om de waarschuwingen van de non generic Set te onderdrukken.
Opzich hoeft dat toch niet slecht te zijn? Stel je voor dat je alleen input waardes wilt die in het bereik van een Integer liggen, maar vervolgens met het getal berekeningen gaat doen (waardoor het een Long kan worden). Ik geef toe dat het een vrij lelijke oplossing is, maar toch kan het.

Maar van Integer naar Long krijg je toch geen problemen? Andersom krijg je wel exceptions (geloof dat je dan iets kreeg over precision).

The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15:25

Janoz

Moderator Devschuur®

!litemod

Je kunt een Integer object niet zomaar naar een Long object casten. Verder is Long niet eens rechtstreeks gerelateerd aan Integer. Beiden extenden ze Number. Wanneer het meegegeven object een Long zou zijn geweest dan zou de check met Integer dus gewoon false opleveren. Zou het een Integer zijn, dan krijg je een ClassCastException omdat je een (subclass van) Integer probeert te casten naar een Long.

[ Voor 67% gewijzigd door Janoz op 30-10-2008 14:23 ]

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: 14:31

.oisyn

Moderator Devschuur®

Demotivational Speaker

Net als dat je in C++ niet zomaar een int* naar een long* kunt casten, maar wel een int naar een long. In het laatste geval converteer je gewoon de waarde, maar in het eerste geval ga je een object van een bepaald type ineens interpreteren alsof het een ander type heeft.

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!

  • .Gertjan.
  • Registratie: September 2006
  • Laatst online: 17-02 21:20

.Gertjan.

Owl!

Janoz schreef op donderdag 30 oktober 2008 @ 14:21:
Je kunt een Integer object niet zomaar naar een Long object casten. Verder is Long niet eens rechtstreeks gerelateerd aan Integer. Beiden extenden ze Number. Wanneer het meegegeven object een Long zou zijn geweest dan zou de check met Integer dus gewoon false opleveren. Zou het een Integer zijn, dan krijg je een ClassCastException omdat je een (subclass van) Integer probeert te casten naar een Long.
Dat hij cast gebruikte had ik even gemist. Uiteraard heb je gelijk over die check, dat is ook logisch natuurlijk.
Maar het volgende is wel mogelijk (en ik dacht dat het daar over ging):
code:
1
2
3
int x = 1;
long y = 1;
y = x;


Dit is volgens mij in de meeste talen wel mogelijk (in C# zeker) en zal geen errors geven.

Blijkt dat ik me meng in een discussie zonder eerst het begin te lezen :P

[ Voor 0% gewijzigd door .Gertjan. op 30-10-2008 15:15 . Reden: Oeps... Geef zelf het verkeerde voorbeeld in de code. Het moet natuurlijk y = x zijn. ]

The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15:25

Janoz

Moderator Devschuur®

!litemod

In java kan dat iig niet zomaar zonder explicite cast.

y = x

kan daarintegen wel.

[ Voor 6% gewijzigd door Janoz op 30-10-2008 15:05 ]

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!

  • bobo1on1
  • Registratie: Juli 2001
  • Laatst online: 18-05 17:57
.oisyn schreef op donderdag 30 oktober 2008 @ 14:25:
Net als dat je in C++ niet zomaar een int* naar een long* kunt casten, maar wel een int naar een long. In het laatste geval converteer je gewoon de waarde, maar in het eerste geval ga je een object van een bepaald type ineens interpreteren alsof het een ander type heeft.
Dat is imho een beetje een slecht voorbeeld, op veel systemen wordt een long hetzelfde geïnterpreteerd als een int.

Impedance, a measure of opposition to time-varying electric current in an electric circuit.
Not to be confused with impotence.


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 08-06 23:13
bobo1on1 schreef op donderdag 30 oktober 2008 @ 16:59:
Dat is imho een beetje een slecht voorbeeld, op veel systemen wordt een long hetzelfde geïnterpreteerd als een int.
*cough*64 bit*cough*

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


Acties:
  • 0 Henk 'm!

  • bobo1on1
  • Registratie: Juli 2001
  • Laatst online: 18-05 17:57
Snap jij de betekenis van "veel"?

Impedance, a measure of opposition to time-varying electric current in an electric circuit.
Not to be confused with impotence.


Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Zo weinig 64bits systemen zijn er niet, en zeker in de toekomst zal dat toenemen.
Slecht dus ;).

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 14:31

.oisyn

Moderator Devschuur®

Demotivational Speaker

bobo1on1 schreef op donderdag 30 oktober 2008 @ 16:59:
[...]

Dat is imho een beetje een slecht voorbeeld
Het is helemaal geen slecht voorbeeld, want op geen enkel systeem mag je een int* casten naar een long* zonder reinterpret_cast, ookal geldt sizeof(int)==sizeof(long). Het toch wel doen is UB, en kan dus net zo goed je harde schijf formatteren (extreem voorbeeld, maar een compliant compiler mag dergelijke code genereren). Dat het over het algemeen gewoon werkt als sizeof(int)==sizeof(long) maakt het nog geen good practice.

Overigens hanteert Win x64 het LLP64 model, waardoor een long dus nog steeds 32 bits is ;). Unices zijn doorgaans LP64 als ik me niet vergis (dus met 64 bits longs)

[ Voor 40% gewijzigd door .oisyn op 30-10-2008 22:20 ]

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


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 08-06 23:13
tut tut ...

Wikipedia: 64-bit

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


Acties:
  • 0 Henk 'm!

  • Zyppora
  • Registratie: December 2005
  • Laatst online: 25-04 16:24

Zyppora

155/50 Warlock

.Gertjan. schreef op donderdag 30 oktober 2008 @ 14:33:
[...]


Dat hij cast gebruikte had ik even gemist. Uiteraard heb je gelijk over die check, dat is ook logisch natuurlijk.
Maar het volgende is wel mogelijk (en ik dacht dat het daar over ging):
code:
1
2
3
int x = 1;
long y = 1;
y = x;


Dit is volgens mij in de meeste talen wel mogelijk (in C# zeker) en zal geen errors geven.

Blijkt dat ik me meng in een discussie zonder eerst het begin te lezen :P
Binnen Java is er een verschil tussen primitieve variabelen en objectvariabelen. Jouw voorbeeld werkt in Java perfect, maar als je het volgende doet:

code:
1
2
3
Int x = 1;
Long y = 1;
y = x;


dan gaat de compiler op alle drie de regels over zijn nek. Dat is ook wat er volgens mij in de code die aangedragen werd, fout is: men gaat met objecten te werk als waren ze primitieven, en probeert hier omheen te werken door te classcasten (maar dat gaat nog hopelozer fout). Kwestie van even de longValue() methode aanroepen en gebruikmaken van primitieven.

Phenom II X4 945 \\ 8GB DDR3 \\ Crosshair IV Formula \\ R9 290


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15:25

Janoz

Moderator Devschuur®

!litemod

In java 5 en hoger zit autoboxing zodat het alleen nog op de laatste regel fout 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!

  • enira
  • Registratie: Augustus 2002
  • Laatst online: 14:57
Zelf nu ook bezig @ school met wat c#, en je merkt dat je in een aantal weken toch wel wat vooruitgang boekt. Denk je effe een logincheck te maken..
Ik had het van mezelf al "logisch" bedacht dat ik 2 strings met elkaar wilde vergelijken(1 die je invoert, en 1 waarde van sql query), en als ze dan overeen kwamen dat je dan ingelogd was..

Zonder alle gekheid van connectionstrings etc:

Code:
C#:
1
2
3
4
5
6
7
8
9
10
11
            string uitDB = "SELECT password FROM logins WHERE username = 'pietje'";
            string invoer = password.Text;

            if (invoer == uitDB)
            {
                label1.Text = "goedzo!";
            }
            else
            {
                label1.Text = "fout!";
            }


Dat kon natuurlijk veel makkelijker:

C#:
1
string sql = "SELECT nr, username, password FROM logins WHERE username = '" + username.Text + "' AND password = '" + password.Text + "'";


Achteraf gezien ook niet de meeste briljante oplossing van me. Zou betekenen als 2 verschillende users hetzelfde wachtwoord hebben dat het dan ook werkt. Maargoed! :)
Naja, aldoende leert men.. :P

[ Voor 7% gewijzigd door enira op 01-11-2008 02:29 ]

Twitch: Phyloni1
Path of Exile character info: Active character


Acties:
  • 0 Henk 'm!

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

Snake

Los Angeles, CA, USA

jarnotjuh schreef op zaterdag 01 november 2008 @ 02:25:

C#:
1
string sql = "SELECT nr, username, password FROM logins WHERE username = '" + username.Text + "' AND password = '" + password.Text + "'";


Achteraf gezien ook niet de meeste briljante oplossing van me. Zou betekenen als 2 verschillende users hetzelfde wachtwoord hebben dat het dan ook werkt. Maargoed! :)
Naja, aldoende leert men.. :P
Ga toch maar eens kijken naar prepared statements, want dit is zeer SQL injection gevoelig.

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


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 14:31

.oisyn

Moderator Devschuur®

Demotivational Speaker

jarnotjuh schreef op zaterdag 01 november 2008 @ 02:25:
Achteraf gezien ook niet de meeste briljante oplossing van me. Zou betekenen als 2 verschillende users hetzelfde wachtwoord hebben dat het dan ook werkt.
Euh, hoe dan? :?

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!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-06 18:50

NMe

Quia Ego Sic Dico.

Topicstarter
Inderdaad. :o Los van eventuele SQL-injectie haalt die query toch gewoon de gebruiker op die zowel in naam als in wachtwoord overeen komt met wat jij verwacht? :?

edit:
Los daarvan is "nr" wel een vrij slechte benaming voor een kolomnaam in je database. Wat voor nummer is het? Een telefoonnummer? Huisnummer? Sofinummer? Jij bedoelt waarschijnlijk een ID; noem het dan ook zo. ;)

[ Voor 27% gewijzigd door NMe op 01-11-2008 05:47 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • enira
  • Registratie: Augustus 2002
  • Laatst online: 14:57
Bij voorbeeld 1(code die ik dus eerst had) select ik alleen password uit mijn tabel.. Dus KAN je meerdere usernames terugkrijgen.. Of zie ik dat fout? Kreeg het van meerdere mensen te horen, en zag het zelf achteraf ook. :)

En dit was een voorbeeld, dat 'Nr' is inderdaad aangepast naar 'ID'. Ben er al door meerdere mensen op aangewezen.
Snake schreef op zaterdag 01 november 2008 @ 03:20:
Ga toch maar eens kijken naar prepared statements, want dit is zeer SQL injection gevoelig.
Ben maar niet bang, ik wil eerst gewoon dat het werkt. Daarna moeten we inderdaad met stored procedures(prepared statements dus? :P) gaan werken. Maar om het werkend te krijgen is dit ook voldoende. :)

Twitch: Phyloni1
Path of Exile character info: Active character


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 12:33

Haan

dotnetter

C#:
1
2
if (invoer == uitDB) 
//etc

is ook niet zo netjes, om strings te vergelijken gebruik je
C#:
1
invoer.Equals(uitDB)

en wat ik zelf altijd nog voor de zekerheid doe als je het case-insensitive wil houden:
C#:
1
invoer.Equals(uitDB, StringComparison.InvariantCultureIgnoreCase)

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Haan schreef op zaterdag 01 november 2008 @ 12:28:
C#:
1
2
if (invoer == uitDB) 
//etc

is ook niet zo netjes, om strings te vergelijken gebruik je
C#:
1
invoer.Equals(uitDB)
Wat is dan het verschil? Ik gebruik altijd gewoon operator== om strings te vergelijken.

Acties:
  • 0 Henk 'm!

  • osorkon!
  • Registratie: September 2006
  • Laatst online: 10-01 18:56
Zoijar schreef op zaterdag 01 november 2008 @ 12:57:
[...]

Wat is dan het verschil? Ik gebruik altijd gewoon operator== om strings te vergelijken.
Ik weet niet of het in C# zo is maar in java is een String een object en objecten vergelijk je met .equals :)

Acties:
  • 0 Henk 'm!

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

In C# kan je gewoon de comparison operator gebruiken om strings te vergelijken.

Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 07:51

Sebazzz

3dp

Dat is waar, maar ik krijg het toch soms voor elkaar dat het niet werkt :S En met Equals werkt het altijd.

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • MatHack
  • Registratie: Oktober 2001
  • Niet online

MatHack

Dev by day, Gamer by night

jarnotjuh schreef op zaterdag 01 november 2008 @ 12:15:
[...]

Bij voorbeeld 1(code die ik dus eerst had) select ik alleen password uit mijn tabel.. Dus KAN je meerdere usernames terugkrijgen.. Of zie ik dat fout? Kreeg het van meerdere mensen te horen, en zag het zelf achteraf ook. :)
Als je een unique constraint op de username kolom hebt gezet, zou je maar één rij terug moeten krijgen. (Of in code afvangen dat een username maar één keer kan voorkomen, maar dat is een minder nette manier imo).

In C# is trouwens de == operator van String objecten overschreven zodat deze waardes vergelijkt, en niet referenties.

[ Voor 9% gewijzigd door MatHack op 01-11-2008 13:46 . Reden: String opmerking toegevoegt ]

There's no place like 127.0.0.1


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 12:33

Haan

dotnetter

Ik weet er ook niet meer het fijne van, maar als het goed is zit het zo: met == kijk je of de object referenties gelijk zijn, met Equals() kijk je of de objecten zelf gelijk zijn. Zoiets in ieder geval..

Daarbij kan je met de verschillende methoden die je in C# hebt om strings te vergelijken gewoon wat meer controle uitoefenen, zoals bijvoorbeeld het voorbeeld dat ik eerder al gaf.

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 03-06 15:40
Haan schreef op zaterdag 01 november 2008 @ 13:44:
Ik weet er ook niet meer het fijne van, maar als het goed is zit het zo: met == kijk je of de object referenties gelijk zijn, met Equals() kijk je of de objecten zelf gelijk zijn. Zoiets in ieder geval..

Daarbij kan je met de verschillende methoden die je in C# hebt om strings te vergelijken gewoon wat meer controle uitoefenen, zoals bijvoorbeeld het voorbeeld dat ik eerder al gaf.
C# heeft iets dat operator overloading heet, in alle valuetypes (geen echte classes, pass by value) is == dan ook overwritten met .equals(). :)

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 12:33

Haan

dotnetter

Hmm dat is natuurlijk waar ook ja, daar had ik helemaal niet bij stil gestaan. Blijft alleen het punt van bijvoorbeeld makkelijk case-insensitive kunnen vergelijken over als reden om wel de Equals() methode te gebruiken :)

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-06 18:50

NMe

Quia Ego Sic Dico.

Topicstarter
jarnotjuh schreef op zaterdag 01 november 2008 @ 12:15:
[...]

Bij voorbeeld 1(code die ik dus eerst had) select ik alleen password uit mijn tabel.. Dus KAN je meerdere usernames terugkrijgen.. Of zie ik dat fout? Kreeg het van meerdere mensen te horen, en zag het zelf achteraf ook. :)
Je haalt alleen een wachtwoord op, maar je doet dat op basis van een username, die naar ik hoop uniek is. Je haalt dus het wachtwoord van één specifieke gebruiker ok; het zou pas gebeuren zoals jij nu zegt als je een gebruikersnaam op zou vragen en in de WHERE een wachtwoord zou vergelijken. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 09-06 20:31

Robtimus

me Robtimus no like you

Maar je wilt passwords meestal juist NIET case-insensitive vergelijken. En daarom is de password in de where clause zetten juist een slecht idee - de meeste RDBMs willen bij where clauses de case nog wel eens negeren als het varchar / text velden zijn. Pas als je ze binary gaat vergelijken wordt de case meegenomen.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Acties:
  • 0 Henk 'm!

  • Spinal
  • Registratie: Februari 2001
  • Laatst online: 12-05 11:12
Als het goed is sla je een hash van je wachtwoord op, niet het wachtwoord zelf. En MD5, SHA1 e.d. maakt het niet uit of dat nou bijv. 5ed of 5ED is.

Full-stack webdeveloper in Groningen


Acties:
  • 0 Henk 'm!

Anoniem: 279039

ZanderZ schreef op zaterdag 01 november 2008 @ 16:42:
Als het goed is sla je een hash van je wachtwoord op, niet het wachtwoord zelf. En MD5, SHA1 e.d. maakt het niet uit of dat nou bijv. 5ed of 5ED is.
In professionele systemen mag je dat inderdaad wel aannemen, maar in dit geval (schoolopdrachten of zelfstudie) kan het dus voorkomen dat je (tijdelijk) gebruik maakt van plaintext opslag.

En in dat geval moet je er wel aan denken dat je eventueel rekening moet houden met hoofd- en kleine letters.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 14:31

.oisyn

Moderator Devschuur®

Demotivational Speaker

jarnotjuh schreef op zaterdag 01 november 2008 @ 12:15:
[...]


Bij voorbeeld 1(code die ik dus eerst had) select ik alleen password uit mijn tabel.. Dus KAN je meerdere usernames terugkrijgen.. Of zie ik dat fout? Kreeg het van meerdere mensen te horen, en zag het zelf achteraf ook. :)
Je selecteert password voor alle rijen waarvoor de WHERE clause geldt. Dus voor alle rijen waar username='pietje' AND password='geheim'. Dan krijg je niet ineens resultaten terug als er een user 'henk' bestaat met een ander wachtwoord en je doet WHERE username='henk' AND password='geheim'. Er bestaat namelijk helemaal geen rij waarvoor geldt username='henk' AND password='geheim'.

In feite maakt het niet eens uit dat je SELECT password doet (is ook onzinnig, dat zal altijd 'geheim' zijn als je daarop zoekt), je kunt net zo goed SELECT 1 doen. SELECT user_id is dan wellicht handiger, dan weet je ook meteen om welke user_id het gaat ;)

[ Voor 23% gewijzigd door .oisyn op 02-11-2008 14:24 ]

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!

  • JMfx
  • Registratie: April 2007
  • Laatst online: 08:23
roy-t schreef op zaterdag 01 november 2008 @ 14:01:
[...]


C# heeft iets dat operator overloading heet, in alle valuetypes (geen echte classes, pass by value) is == dan ook overwritten met .equals(). :)
System.String is volgens mij een reference type. Je hebt wel gelijk dat de == operator overwritten is:
public static bool operator ==(string a, string b)
Member of System.String

Summary:
Determines whether two specified System.String objects have the same value.

Parameters:
a: A System.String or null.
b: A System.String or null.

Returns:
true if the value of a is the same as the value of b; otherwise, false.

[ Voor 22% gewijzigd door JMfx op 02-11-2008 16:37 ]


Acties:
  • 0 Henk 'm!

  • Daspeed
  • Registratie: Maart 2001
  • Nu online
JMfx schreef op zondag 02 november 2008 @ 16:33:
[...]


System.String is volgens mij een reference type. Je hebt wel gelijk dat de == operator overwritten is:


[...]
Equals heeft voor het type string een overload waar je een StringComparison kan meegeven

[ Voor 0% gewijzigd door Daspeed op 02-11-2008 16:41 . Reden: edit: nu mijn bovenbuurman zijn post gewijzigd heeft slaat die van mij niet echt ergens meer op :P ]


Acties:
  • 0 Henk 'm!

  • JMfx
  • Registratie: April 2007
  • Laatst online: 08:23
Daspeed schreef op zondag 02 november 2008 @ 16:38:
[...]

Equals heeft voor het type string een overload waar je een StringComparison kan meegeven
Ik had het al gezien, daarom had ik het verwijderd :)

[ Voor 3% gewijzigd door JMfx op 02-11-2008 16:49 ]


Acties:
  • 0 Henk 'm!

  • Wijnbo
  • Registratie: December 2002
  • Laatst online: 02-06 11:21

Wijnbo

Electronica werkt op rook.

Anoniem: 279039 schreef op zaterdag 01 november 2008 @ 17:02:
[...]

In professionele systemen mag je dat inderdaad wel aannemen, maar in dit geval (schoolopdrachten of zelfstudie) kan het dus voorkomen dat je (tijdelijk) gebruik maakt van plaintext opslag.

En in dat geval moet je er wel aan denken dat je eventueel rekening moet houden met hoofd- en kleine letters.
Hier spreek je jezelf een beetje tegen. Een professioneel systeem werkt dus met hashing, waardoor case-sensitivity niet belangrijk is. Een schoolopdracht vaak (nog) niet, waardoor het wel belangrijk is. En wat boeit vaak geen hol met schoolopdrachten? Juist, de beveiliging.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
edit:
Hier stond onzin
ZanderZ schreef op zaterdag 01 november 2008 @ 16:42:
Als het goed is sla je een hash van je wachtwoord op, niet het wachtwoord zelf. En MD5, SHA1 e.d. maakt het niet uit of dat nou bijv. 5ed of 5ED is.
Wijnbo schreef op dinsdag 04 november 2008 @ 14:26:
Een professioneel systeem werkt dus met hashing, waardoor case-sensitivity niet belangrijk is.
Euh, since when :?

code:
1
2
3
4
5
md5("5ed") = "a08e8432acac59e97148477a09c7f558"
md5("5ED") = "b9c19b35ed6e5e4f9f7895b58c34ad5e"

Sha1("5ed") = "0f81011f36bc3d46f060bee62abd2648465e3b13"
Sha1("5ED") = "e093348aa602230914710363bb9bb84089d4af26"


Dus tenzij je doelt op de case van de hash gewoon niet waar.

[ Voor 116% gewijzigd door RobIII op 04-11-2008 15:05 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Wijnbo schreef op dinsdag 04 november 2008 @ 14:26:
Een professioneel systeem werkt dus met hashing, waardoor case-sensitivity niet belangrijk is.
Een hash is een reeks binaire waardes (bytes). De presentatie van deze bytes bepaald of het wel of niet case-sensitive is. Als ik de hash via heximale waardes presenteer (zoals vaak het geval is) dan maakt de case inderdaad niet uit, maar als ik de hash als base64 presenteerd zit er wel degelijk een verschil tussen 'A' en 'a'.

Webbased talen zullen inderdaad snel de heximale notatie gebruiken, maar wat meer algemene talen geven gewoon de hash bytes terug. Zo heeft C# geen methode om een byte array heximaal te noteren, maar heeft wel wel een Convert.ToBase64String() methode.

@RobIII: WijnBo bedoelde meer de presentatie van de uitkomst van de hash, niet de input.

[ Voor 5% gewijzigd door Niemand_Anders op 04-11-2008 14:40 ]

If it isn't broken, fix it until it is..


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Mm.. niet zozeer een slecht programmeer voorbeeld, maar meer slechte definitie: Ik moet tegen een webservice van een externe partij aanpraten, staat er in de definitie
Boolean
Enkelvoudig datatype. Toegestane waarden zijn: “true”, “J”, ”Ja", 1, “false”, “N”, “Nee” en "0".
Ik ben benieuwd of je ook willekeurig "true", "J", "Ja" of 1 terug krijgt.

Overigens zijn datums in dit systeem ook gewoon strings, maar daar hebben ze gelukkig wel gewoon een definitie voor

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


Acties:
  • 0 Henk 'm!

  • Spinal
  • Registratie: Februari 2001
  • Laatst online: 12-05 11:12
RobIII schreef op dinsdag 04 november 2008 @ 14:31:
[...]

Want? Een fatsoenlijk systeem heeft gewoon case-sensitive wachtwoorden hoor :? Even een paar willekeurige quotes van password guidelines:

Euh, since when :?

code:
1
2
3
4
5
md5("5ed") = "a08e8432acac59e97148477a09c7f558"
md5("5ED") = "b9c19b35ed6e5e4f9f7895b58c34ad5e"

Sha1("5ed") = "0f81011f36bc3d46f060bee62abd2648465e3b13"
Sha1("5ED") = "e093348aa602230914710363bb9bb84089d4af26"


Dus tenzij je doelt op de case van de hash gewoon niet waar.
Ik doelde op de case van de hash idd :) had ik er inderdaad even bij moeten zetten voor de duidelijkheid.

Full-stack webdeveloper in Groningen


Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

rwb schreef op dinsdag 04 november 2008 @ 14:38:
Mm.. niet zozeer een slecht programmeer voorbeeld, maar meer slechte definitie: Ik moet tegen een webservice van een externe partij aanpraten, staat er in de definitie

[...]

Ik ben benieuwd of je ook willekeurig "true", "J", "Ja" of 1 terug krijgt.

Overigens zijn datums in dit systeem ook gewoon strings, maar daar hebben ze gelukkig wel gewoon een definitie voor
Grappig dat 'Yes' en 'No' dan niet zijn toegestaan..

If it isn't broken, fix it until it is..


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Niemand_Anders schreef op dinsdag 04 november 2008 @ 14:43:
[...]

Grappig dat 'Yes' en 'No' dan niet zijn toegestaan..
Dat zijn toch dingen die ik gewoon voor de 'ouwehoer' eens zou proberen en ze dan doodleuk mailen dat hun documentatie niet compleet is :P

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • NetForce1
  • Registratie: November 2001
  • Laatst online: 15:04

NetForce1

(inspiratie == 0) -> true

RobIII schreef op dinsdag 04 november 2008 @ 14:31:
[...]

Want? Een fatsoenlijk systeem heeft gewoon case-sensitive wachtwoorden hoor :?
Je moet de zin die van IcemanX die je quote nog maar eens rustig doorlezen denk ik ;), hij zegt nl dit:
IceManX schreef op zaterdag 01 november 2008 @ 15:19:
Maar je wilt passwords meestal juist NIET case-insensitive vergelijken.
bold, italic en underline door mij toegevoegd

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
NetForce1 schreef op dinsdag 04 november 2008 @ 15:02:
[...]

Je moet de zin die van IcemanX die je quote nog maar eens rustig doorlezen denk ik ;), hij zegt nl dit:

[...]

bold, italic en underline door mij toegevoegd
Kolere zeg :X
Niet case-insensitive... zeg dan gewoon case sensitive :P :X :D My bad; heb het al gecorrigeerd.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 09-06 20:31

Robtimus

me Robtimus no like you

NetForce1 schreef op dinsdag 04 november 2008 @ 15:02:
[...]

bold, italic en underline door mij toegevoegd
Ja dat bedoelde ik uiteindelijk ook. Ik typte het alleen niet...

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Acties:
  • 0 Henk 'm!

  • NetForce1
  • Registratie: November 2001
  • Laatst online: 15:04

NetForce1

(inspiratie == 0) -> true

IceManX schreef op dinsdag 04 november 2008 @ 16:48:
[...]

Ja dat bedoelde ik uiteindelijk ook. Ik typte het alleen niet...
Huh, ik zie het toch echt zo in je post staan, en er staat geen edit-tijd bij.

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


Acties:
  • 0 Henk 'm!

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 09-06 20:31

Robtimus

me Robtimus no like you

Je hebt gelijk, ik slaap gewoon :z

Ik dacht dat je mij aan het verbeteren was, en tja, dan had ik je gelijk moeten geven ;)

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Acties:
  • 0 Henk 'm!

  • CrashOverDrive
  • Registratie: Augustus 2005
  • Laatst online: 15:41
Geen stukje code, maar iets wat ik vandaag op school tegen kwam. Waar mijn C# `leraar` mee kwam aanzetten.
Een groepje leerlingen is bezig met een app, Ze hebben het main screen gemaakt, en vragen aan de docent hoe ze de child forms het beste kunnen maken, zodat deze in het hoofdscherm geopend worden.
Eerste methode die ik zou zeggen, MDI.

Komt de leraar met zijn methode: Inheritance.
Het child form, de parent laten overerven, en op deze manier het nieuwe form opbouwen. (er zijn een 15tal forms) |:( . En stug blijven volhouden dat het de manier is. :X

[ Voor 10% gewijzigd door CrashOverDrive op 05-11-2008 00:04 ]


Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Ik dacht ook dat je iets inherit uit system.windows.forms

Acties:
  • 0 Henk 'm!

  • !null
  • Registratie: Maart 2008
  • Laatst online: 09-06 14:15
CrashOverDrive schreef op woensdag 05 november 2008 @ 00:01:
Geen stukje code, maar iets wat ik vandaag op school tegen kwam. Waar mijn C# `leraar` mee kwam aanzetten.
Een groepje leerlingen is bezig met een app, Ze hebben het main screen gemaakt, en vragen aan de docent hoe ze de child forms het beste kunnen maken, zodat deze in het hoofdscherm geopend worden.
Eerste methode die ik zou zeggen, MDI.

Komt de leraar met zijn methode: Inheritance.
Het child form, de parent laten overerven, en op deze manier het nieuwe form opbouwen. (er zijn een 15tal forms) |:( . En stug blijven volhouden dat het de manier is. :X
Op zich is MDI een mooie vorm, als je wil dat alles binnen in het main screen zit. Echter, je ziet dat de 'grote' bekende applicaties van MDI zijn afgestapt, zoals het hele MS Office. Ik vind het zelf ook fijner werken zonder MDI, in de 'office' gevallen. Echter zullen er genoeg situaties zijn waarbij MDI wel wenselijk is.

Ampera-e (60kWh) -> (66kWh)


Acties:
  • 0 Henk 'm!

  • CrashOverDrive
  • Registratie: Augustus 2005
  • Laatst online: 15:41
GreenSky schreef op woensdag 05 november 2008 @ 09:29:
[...]


Op zich is MDI een mooie vorm, als je wil dat alles binnen in het main screen zit. Echter, je ziet dat de 'grote' bekende applicaties van MDI zijn afgestapt, zoals het hele MS Office. Ik vind het zelf ook fijner werken zonder MDI, in de 'office' gevallen. Echter zullen er genoeg situaties zijn waarbij MDI wel wenselijk is.
Situatie in dit geval: Inventaris systeempje. Dus een hoofdscherm, en een lading forms die zaken regelen zoals: Voorraad bijwerken, artiest toevoegen, checkout, etc. Lijkt MDI me toch echt the way to go.

Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
GreenSky schreef op woensdag 05 november 2008 @ 09:29:Echter, je ziet dat de 'grote' bekende applicaties van MDI zijn afgestapt, zoals het hele MS Office.
Nouja, vooral net niet. Wél losse items op je taakbalk maar je moet met het MDI-subkruisje een document sluiten... ik raak er niet aan gewend :P

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
CrashOverDrive schreef op woensdag 05 november 2008 @ 09:49:
[...]
Situatie in dit geval: Inventaris systeempje. Dus een hoofdscherm, en een lading forms die zaken regelen zoals: Voorraad bijwerken, artiest toevoegen, checkout, etc. Lijkt MDI me toch echt the way to go.
Ik zou het gewoon als UserControls implementeren, je kunt daarna altijd nog kiezen of je het in een MDIChild host of dat je het via bijvoorbeeld tabbladen, of een outlook style navigatie doet. Doordat je je controls dan gewoon makkelijk in een andere container kunt stoppen, ben je niet zo gebonden aan het hele MDI gebeuren.

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


Acties:
  • 0 Henk 'm!

  • !null
  • Registratie: Maart 2008
  • Laatst online: 09-06 14:15
@CrashOverDrive, er zijn nog andere opties zoals een groot scherm met tabbladen, kan ook heel mooi werken.
ValHallASW schreef op woensdag 05 november 2008 @ 10:32:
[...]

Nouja, vooral net niet. Wél losse items op je taakbalk maar je moet met het MDI-subkruisje een document sluiten... ik raak er niet aan gewend :P
Hmm je hebt gelijk, in Office 2003. Thuis even kijken of dat ook zo is in 2007. Dom dat me dat nooit is opgevallen zeg.

MDI is een leuke vorm, maar het leent zich er voor om een GUI te maken met te veel schermpjes naast elkaar open --> onoverzichtelijk en rommelig etc. Dat lokt het een beetje uit. (maar dat hoeft natuurlijk niet)

Ampera-e (60kWh) -> (66kWh)


Acties:
  • 0 Henk 'm!

  • .Gertjan.
  • Registratie: September 2006
  • Laatst online: 17-02 21:20

.Gertjan.

Owl!

ValHallASW schreef op woensdag 05 november 2008 @ 10:32:
[...]

Nouja, vooral net niet. Wél losse items op je taakbalk maar je moet met het MDI-subkruisje een document sluiten... ik raak er niet aan gewend :P

Dit is overigens volgens mij alleen in Excel. Als je het kruisje gebruikt van het hoofdwindow ben je al je documenten kwijt. Dit terwijl je in Word volgens mij alleen maar het huidige document sluit.

Dat is in ieder geval de reden waarom ik er niet aan kan wennen, omdat Word en Excel beide een andere methode gebruiken...

Zo is dacht ik de situatie in Office 2003.

[ Voor 3% gewijzigd door .Gertjan. op 05-11-2008 10:50 ]

The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.


Acties:
  • 0 Henk 'm!

Anoniem: 14829

GreenSky schreef op woensdag 05 november 2008 @ 09:29:
Op zich is MDI een mooie vorm, als je wil dat alles binnen in het main screen zit. Echter, je ziet dat de 'grote' bekende applicaties van MDI zijn afgestapt, zoals het hele MS Office.
En aan de andere kant zie je bv. dat iedere zichzelf respecterende browser ondertussen 'tabbed browsing' doet, wat in feite gewoon MDI is, en de meeste mensen vinden dat gewoon prettig werken.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 14:31

.oisyn

Moderator Devschuur®

Demotivational Speaker

Nee, werken met tabs is SDI. Je werkt namelijk met 1 document (window) tegelijk, die de hele applicatie inneemt. Of je dat implementeert middels tabs of middels daadwerkelijk verschillende applicatie-windows doet er verder weinig toe.

Neemt niet weg dat MDI imho nog wel degelijk nuttig gebruikt wordt. Iets als Photoshop zou ik me niet kunnen indenken zonder MDI.

[ Voor 22% gewijzigd door .oisyn op 05-11-2008 21:50 ]

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!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 14:41

Patriot

Fulltime #whatpulsert

.oisyn schreef op woensdag 05 november 2008 @ 21:47:
Nee, werken met tabs is SDI. Je werkt namelijk met 1 document (window) tegelijk, die de hele applicatie inneemt. Of je dat implementeert middels tabs of middels daadwerkelijk verschillende applicatie-windows doet er verder weinig toe.

Neemt niet weg dat MDI imho nog wel degelijk nuttig gebruikt wordt. Iets als Photoshop zou ik me niet kunnen indenken zonder MDI.
Tabs is toch TDI? O-)

Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

.oisyn schreef op woensdag 05 november 2008 @ 21:47:
Nee, werken met tabs is SDI. Je werkt namelijk met 1 document (window) tegelijk, die de hele applicatie inneemt. Of je dat implementeert middels tabs of middels daadwerkelijk verschillende applicatie-windows doet er verder weinig toe.

Neemt niet weg dat MDI imho nog wel degelijk nuttig gebruikt wordt. Iets als Photoshop zou ik me niet kunnen indenken zonder MDI.
True, maar wat voor criterium komt daarbij kijken?
De beschikking moeten hebben over meerdere (configureerbare) sets van tools, en je 'werkwindow' tegelijk oid?

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
CrashOverDrive schreef op woensdag 05 november 2008 @ 00:01:
Geen stukje code, maar iets wat ik vandaag op school tegen kwam. Waar mijn C# `leraar` mee kwam aanzetten.
Een groepje leerlingen is bezig met een app, Ze hebben het main screen gemaakt, en vragen aan de docent hoe ze de child forms het beste kunnen maken, zodat deze in het hoofdscherm geopend worden.
Eerste methode die ik zou zeggen, MDI.
Je kunt de forms ook in een panel laten zien.. vies trucje, maar niet iedereen heeft zin in MDI. Onder andere wanneer je duidelijk maar 1 form tegelijk wil laten zien, maar nog wel toegang tot de parent wil hebben.

Inheritance is wel erg vreemd dat hij daarmee komt :D Het enge is dat zo iemand dus blijkbaar een C# docent is.. lol.

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


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 14:31

.oisyn

Moderator Devschuur®

Demotivational Speaker

Volgens wikipedia wordt TDI idd meer gezien als MDI dan als SDI. Het criterium lijkt ook meer te zijn dat je in een SDI app met 1 document werkt, en dat alle toolwindows en menu's e.d. dus voor dat document opgeaan. Om meerdere documents te openen moet je dus meerdere apps (of instances van de main window binnen de app) openen, die als losse taken op de taakbalk terecht komen. In dat opzicht is een TDI dus ook een vorm van MDI.

IOW, I stand corrected :)

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!

  • !null
  • Registratie: Maart 2008
  • Laatst online: 09-06 14:15
Ja TDI lijkt me ook een vorm van MDI, toch meerdere documenten. Alleen niet naast elkaar te zetten (doorgaans).
Ik zou in zo'n inventaris geval met tabs werken denk ik. Dan zou ik 1 inventaris overzicht tab maken, en dan een tab die open kan staan voor ieder soort scherm. Dus max 1 voor het editen van een inventaris item bijvoorbeeld. Zo kun je redelijk wat naast elkaar open hebben, en dan nog kun je het nog steeds strak en overzichtelijk houden. In het main panel waar alle tabs geladen worden kun je dan ook gebruik maken van een witte achtergrond, is toch prettiger (vind ik).

Ampera-e (60kWh) -> (66kWh)


Acties:
  • 0 Henk 'm!

Anoniem: 142689

rwb schreef op dinsdag 04 november 2008 @ 14:38:
Mm.. niet zozeer een slecht programmeer voorbeeld, maar meer slechte definitie: Ik moet tegen een webservice van een externe partij aanpraten, staat er in de definitie

[...]

Ik ben benieuwd of je ook willekeurig "true", "J", "Ja" of 1 terug krijgt.

Overigens zijn datums in dit systeem ook gewoon strings, maar daar hebben ze gelukkig wel gewoon een definitie voor
Dat vind ik niet zo heel raar. Als het systeem van klant y 'J' gebruikt en klant x 'true' en je checkt zelf op 'yes' dan ga je echt niet tegen die klant zeggen dat hij zijn systeem maar moet aanpassen, tenzij je een of andere multinational bent die iets unieks aanbied.
Pagina: 1 2 ... 103 Laatste

Dit topic is gesloten.

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