[alg] Slechtste programmeervoorbeelden deel 4 Vorige deelOverzicht

Pagina: vorige 1 ... 99 100 101 102 laatste

Acties:
Webmaster
Reacties: 934
Reg. datum: 11-02-2008

quote:
Davio schreef op dinsdag 21 mei 2013 @ 11:30:
Hihi, .NET gebruikt intern UTF-8 toch?

Dan zou het mijns inziens zinvoller zijn om een Encoding.UTF8.GetBytes te doen.
Naast dat je BitConverter.ToString(data) kunt doen natuurlijk.
Of eventueel de Base64-representatie als je het toch als string op wilt slaan.
Ik kan inderdaad geen reden bedenken waarom je ASCII zou verkiezen over UTF8, maar daar doelde ik nog nog geeneens op. Bitconverter en Base64 geven niet de gewenste (huidige manier van opslaan in db) format terug, en het moet aansluiten op de oude situatie.

Anyhow, er gaat zoveel mis in deze paar regels code. Ongeacht hoe je het zou willen encoden. StringBuilder versus String, Disposen, ToLower() op elk resultaat in de for-loop.
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/// <summary>
/// Convert current instance to a MD5 hash
/// </summary>
/// <param name="value">Current instance</param>
/// <returns>MD5 hash</returns>
public static string ToMD5(this string value)
{
    StringBuilder hexadecimal = new StringBuilder();

    using (MD5 md5Hash = MD5.Create())
    {
        byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(value));

        for (int i = 0i < data.Lengthi++)
            hexadecimal.Append(data[i].ToString("x2"));
    }

    return hexadecimal.ToString().ToLower();
}

Lijkt mij al een stuk mooier. Nog meer suggesties?

Mijn systeem - HAF932 Review - Kaze Master Pro 5.25 Review

Because he doesn't row...
Reacties: 8.877
Reg. datum: 20-09-2001

quote:
Tarabass schreef op dinsdag 21 mei 2013 @ 12:07:
Lijkt mij al een stuk mooier. Nog meer suggesties?
Weet niet waar het voor is, maar md5 is niet secure als het voor signen is oid. En aangezien C# .NET gewoon ingebouwde SHA varianten heeft.

(en is die 'using' nou echt nodig? Dat je het een regel eerder opruimt?)

Zoijar wijzigde deze reactie 21-05-2013 12:34 (22%)

Доверяй, но проверяй
Reacties: 3.276
Reg. datum: 25-11-2003

quote:
Zoijar schreef op dinsdag 21 mei 2013 @ 12:32:
[...]

Weet niet waar het voor is, maar md5 is niet secure als het voor signen is oid.
MD5 kan je nog uitstekend gebruiken voor vele andere zaken.
Ik gebruik het in een app om dubbele bestanden te vinden, zal vanavond eens kijken hoe ik mijn md5 genereer.

♥ Under Construction ♦ © 1985 - 2013 and counting. ♣ Game Import Grafiekjes ♠ Born to be Root ★ Please, don't feed me meat

Because he doesn't row...
Reacties: 8.877
Reg. datum: 20-09-2001

quote:
IStealYourGun schreef op dinsdag 21 mei 2013 @ 12:35:
MD5 kan je nog uitstekend gebruiken voor vele andere zaken.
Vandaar ook mijn specifieke bewoording in die zin ;)
Reacties: 1.616
Reg. datum: 18-11-2007

Ik zou de methode ook niet "ToMD5" noemen. MD5 genereert een byte hash van een input in bytes,

ToMD5String zou ik dan toepasselijker vinden.

Verder kun je het best zonder een StringBuilder doen, dat is volgens mij één van de langzaamste implementaties.
Zie ook: http://stackoverflow.com/...e-versa/14333437#14333437
Reacties: 302
Reg. datum: 14-06-2006

Ik werd toch even nieuwsgierig naar de performance van verschillende manieren om een string om te zetten naar MD5. Ik heb drie implementaties genomen, en ToMD5_3 is het snelste. Bij 1.000.000 iteraties, op een i7-2600k:

ToMD5_1: 7075ms
ToMD5_2: 6300ms
ToMD5_3: 5752ms

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
using System;
using System.Diagnostics;
using System.Security.Cryptography;
using System.Text;

namespace ConsoleApplication1
{
    static class StringExtensions
    {
        public static string ToMD5_1(this string value)
        {
            StringBuilder hexadecimal = new StringBuilder();

            using (MD5 md5Hash = MD5.Create())
            {
                byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(value));

                for (int i = 0i < data.Lengthi++)
                    hexadecimal.Append(data[i].ToString("x2"));
            }

            return hexadecimal.ToString().ToLower();
        }

        public static string ToMD5_2(this string value)
        {
            byte[] data;

            using (MD5 md5 = MD5.Create())
            {
                data = md5.ComputeHash(Encoding.UTF8.GetBytes(value));
            }

            return BitConverter.ToString(data).ToLower().Replace("-"string.Empty);
        }

        public static string ToMD5_3(this string value)
        {
            byte[] data;

            using (MD5 md5 = MD5.Create())
            {
                data = md5.ComputeHash(Encoding.UTF8.GetBytes(value));
            }

            return data.ToHex().ToLower();
        }
    }

    static class ByteExtensions
    {
        private const string hexChars = "0123456789ABCDEF";

        public static string ToHex(this byte[] bytes)
        {
            int length = bytes.Length * 2;
            char[] hex = new char[length];
            int byteIndex = 0;

            for (int charIndex = 0charIndex < lengthcharIndex += 2)
            {
                byte byteValue = bytes[byteIndex++];
                hex[charIndex] = hexChars[byteValue / 16];
                hex[charIndex + 1] = hexChars[byteValue % 16];
            }

            return new string(hex);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            int iterations = 1000000;
            Stopwatch sw = Stopwatch.StartNew();
            for (int i = 0i < iterationsi++)
            {
                "thisisasillystringtodosomemagicon".ToMD5_1();
            }
            sw.Stop();
            Console.WriteLine((sw.ElapsedMilliseconds).ToString());

            sw = Stopwatch.StartNew();
            for (int i = 0i < iterationsi++)
            {
                "thisisasillystringtodosomemagicon".ToMD5_2();
            }
            sw.Stop();
            Console.WriteLine((sw.ElapsedMilliseconds).ToString());

            sw = Stopwatch.StartNew();
            for (int i = 0i < iterationsi++)
            {
                "thisisasillystringtodosomemagicon".ToMD5_3();
            }
            sw.Stop();
            Console.WriteLine((sw.ElapsedMilliseconds).ToString());
            Console.ReadLine();
        }
    }
}

Reacties: 15.777
Reg. datum: 04-11-2000

quote:
Zoijar schreef op dinsdag 21 mei 2013 @ 12:32:
[...]

(en is die 'using' nou echt nodig? Dat je het een regel eerder opruimt?)
Strict genomen niet (je krijgt er geen foutmelding van), maar hij implementeert IDisposable via HashAlgorithm.

Spank your inner muppet!

Webmaster
Reacties: 934
Reg. datum: 11-02-2008

Hmm, interessant! De using is imo een stukje good practice. Gewoonte dus.

Dat de byte[] naar char[] zo snel is verbaast me eigenlijk helemaal niet. Echter een benadering die ik niet snel gekozen zou hebben. Maar dit is nu het leuke van programmeren!

Het verbaast me overigens dat die stringbuilder en bitconverter zo 'traag' zijn. Nooit geweten :)

[edit]
Het is dus niet de bitconvert die traag is, maar het replacen. Zonder ".ToLower().Replace("-", string.Empty)" is de bitconverter toch een duidelijke winnaar (scheelt 2/3 seconden).

Tarabass wijzigde deze reactie 21-05-2013 13:24 (21%)

Mijn systeem - HAF932 Review - Kaze Master Pro 5.25 Review

Because he doesn't row...
Reacties: 8.877
Reg. datum: 20-09-2001

Misschien moet je een capacity meegeven aan je stringbuilder ctor, dan hoeft hij zeker geen reallocation te doen.

* Zoijar is C# noob en redeneert alles vanuit C++/STL :P

i.e.:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static string ToMD5_1(this string value)
        {

            MD5 md5Hash = MD5.Create();
            byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(value));

            StringBuilder hexadecimal = new StringBuilder(data.Length * 2);

            for (int i = 0; i < data.Length; i++)
                hexadecimal.Append(data[i].ToString("x2"));
            }

            return hexadecimal.ToString().ToLower();
        }

Time dat eens?
quote:
Cyphax schreef op dinsdag 21 mei 2013 @ 13:02:
Strict genomen niet (je krijgt er geen foutmelding van), maar hij implementeert IDisposable via HashAlgorithm.
Oh, ik denk dat ik me dan vergis in hoe C# werkt. Ik nam aan dat als hij uit scope ging sowieso die dispose wordt aangeroepen. Wie heeft er ook GC nodig als je RAII en smart pointers hebt :+

Zoijar wijzigde deze reactie 21-05-2013 13:41 (103%)

Reacties: 1.616
Reg. datum: 18-11-2007

quote:
Tarabass schreef op dinsdag 21 mei 2013 @ 13:15:
Hmm, interessant! De using is imo een stukje good practice. Gewoonte dus.

Dat de byte[] naar char[] zo snel is verbaast me eigenlijk helemaal niet. Echter een benadering die ik niet snel gekozen zou hebben. Maar dit is nu het leuke van programmeren!

Het verbaast me overigens dat die stringbuilder en bitconverter zo 'traag' zijn. Nooit geweten :)

[edit]
Het is dus niet de bitconvert die traag is, maar het replacen. Zonder ".ToLower().Replace("-", string.Empty)" is de bitconverter toch een duidelijke winnaar (scheelt 2/3 seconden).
Tja, het vervelende van de zaak is dat het daarmee wel leesbaarder wordt en er is iets voor te zeggen om die implementaties daarom te kiezen, hangt er ook vanaf hoe vaak zo'n methode wordt uitgevoerd en op welk niveau het zit.

In zo'n StringExtensions-class is het van de categorie: Een keer programmeren en je hoeft er voor de rest niet meer naar te kijken. Dan is de meest snelle, minder leesbare, oplossing prima.
Webmaster
Reacties: 934
Reg. datum: 11-02-2008

Capacity op de stringbuilder maakt niets uit. Heb één met en één zonder gedeclareerd en ze wisselen elkaar af (op snelheid).

Ik denk dat ik voor de bitconverter zou kiezen. Mede voor de leesbaarheid. Qua performance ligt hij dicht bij de 'chararray' methode, maar qua leesbaarheid is hij zelfs beter dan de stringbuilder :)

Mijn systeem - HAF932 Review - Kaze Master Pro 5.25 Review

NoxiousPluK
Reacties: 4.977
Reg. datum: 29-07-2002


code:
1
$tax = number_format(($aInvoice['invoice_define'] == 'C' ? -1 * $aRule['price']['price'] - $aRule['price']['discount'] : ($aRule['price']['price'] - $aRule['price']['discount'])), 2, ',', '');

:X

Oh en de ouput was ook nog eens verkeerd :+

EVE Online: CEO van Jovian Legacy, alliance executor van Jovian Empire. Join 'public redbox' ingame. Blink spelen? http://cogdev.net/blink/ gebruik referalcode 'jovianblink' voor gratis startcredits. IRC

Fulltime #whatpulsert
Reacties: 2.298
Reg. datum: 21-12-2004

Deze Tweaker zet geen actuele feitjes meer in zijn sig, die vergeet hij toch te verwijderen.

NoxiousPluK
Reacties: 4.977
Reg. datum: 29-07-2002

EVE Online: CEO van Jovian Legacy, alliance executor van Jovian Empire. Join 'public redbox' ingame. Blink spelen? http://cogdev.net/blink/ gebruik referalcode 'jovianblink' voor gratis startcredits. IRC

Reacties: 9.584
Reg. datum: 30-06-2003


C#:
1
2
3
4
5
6
7
8
9
public string Status { getset; }

public bool IsGoedgekeurd
{
    get
    {
        return this.Status == "Goedgekeurd";
    }
}

|:( :'( |:(

Alex) wijzigde deze reactie 24-05-2013 14:57 (6%)

We are shaping the future

Reacties: 12.165
Reg. datum: 05-09-2000

Komt vaker voor, met name bij dingen waarbij zo'n string uit een externe bron komt :P

Al is het semantisch natuurlijk beter de bool op te slaan en die vergelijking in de setter te doen :+

"Your life is yours alone. Rise up and live it." - Richard Rahl

Reacties: 9.584
Reg. datum: 30-06-2003

Tsja, maar dat is hier niet het geval. Het datamodel zit in hetzelfde project als de rest van de applicatie. De status kan volgens de broncode die ik heb gevonden drie waardes hebben: Onbehandeld, Goedgekeurd en Afgewezen. Toch staat het als varchar(100) in de database.

Een enum (opgeslagen als short) of zelfs een nullable boolean zou al een stuk beter zijn geweest dan dit gedrocht.

Alex) wijzigde deze reactie 24-05-2013 15:13 (12%)

We are shaping the future

Reacties: 463
Reg. datum: 21-10-2005

Je vergeet de status "Mwah, het is nog niet goedgekeurd maar we zijn er wel mee bezig en misschien passen we dit over 2 weken aan" die er ongetwijfeld in de toekomst in moet. Dat was je niet gelukt met een nullable boolean :P.
Reacties: 1.616
Reg. datum: 18-11-2007

quote:
Alex) schreef op vrijdag 24 mei 2013 @ 15:12:
Tsja, maar dat is hier niet het geval. Het datamodel zit in hetzelfde project als de rest van de applicatie. De status kan volgens de broncode die ik heb gevonden drie waardes hebben: Onbehandeld, Goedgekeurd en Afgewezen. Toch staat het als varchar(100) in de database.

Een enum (opgeslagen als short byte) of zelfs een nullable boolean zou al een stuk beter zijn geweest dan dit gedrocht.
Als je dan toch al de moeite neemt om GEEN int te gebruiken... :)
Reacties: 9.584
Reg. datum: 30-06-2003

quote:
Davio schreef op vrijdag 24 mei 2013 @ 15:20:
[...]

Als je dan toch al de moeite neemt om GEEN int te gebruiken... :)
Even vergeten, als byte kan inderdaad ook.

Of we doen het als ntext(MAX)... :+

We are shaping the future

Reacties: 1.616
Reg. datum: 18-11-2007

quote:
Alex) schreef op vrijdag 24 mei 2013 @ 15:22:
[...]

Even vergeten, als byte kan inderdaad ook.

Of we doen het als ntext(MAX)... :+
Ja, maar ntext gaat altijd zo zeuren als je er een distinct overheen gooit. :9
Reacties: 9.584
Reg. datum: 30-06-2003

quote:
Davio schreef op vrijdag 24 mei 2013 @ 15:24:
[...]

Ja, maar ntext gaat altijd zo zeuren als je er een distinct overheen gooit. :9

SQL:
1
2
SELECT DISTINCT(CONVERT(Status as nvarchar(MAX)) AS AlleStatussen 
ORDER BY AlleStatussen ASC

Zeuren? Hoezo?

We are shaping the future

Reacties: 1.616
Reg. datum: 18-11-2007

Ja, maar daar is het geen ntext!
Niet meer althans. :(

Davio wijzigde deze reactie 24-05-2013 15:28 (26%)

Reacties: 9.584
Reg. datum: 30-06-2003

quote:
Davio schreef op vrijdag 24 mei 2013 @ 15:28:
Ja, maar daar is het geen ntext!
Niet meer althans. :(
En snel is het ook niet meer. :+

Maar ach, dan gooi je ieder jaar de database leeg, dan is het weer een maandje snel.

* heeft zulke code/werkwijze wel eens gezien. Verschrikkelijk.

We are shaping the future

Leef om te leven
Reacties: 6.014
Reg. datum: 20-08-2003

quote:
ThomasG schreef op dinsdag 21 mei 2013 @ 12:57:
Ik werd toch even nieuwsgierig naar de performance van verschillende manieren om een string om te zetten naar MD5. Ik heb drie implementaties genomen, en ToMD5_3 is het snelste. Bij 1.000.000 iteraties, op een i7-2600k:

ToMD5_1: 7075ms
ToMD5_2: 6300ms
ToMD5_3: 5752ms

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
using System;
using System.Diagnostics;
using System.Security.Cryptography;
using System.Text;

namespace ConsoleApplication1
{
    static class StringExtensions
    {
        public static string ToMD5_1(this string value)
        {
            StringBuilder hexadecimal = new StringBuilder();

            using (MD5 md5Hash = MD5.Create())
            {
                byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(value));

                for (int i = 0i < data.Lengthi++)
                    hexadecimal.Append(data[i].ToString("x2"));
            }

            return hexadecimal.ToString().ToLower();
        }

        public static string ToMD5_2(this string value)
        {
            byte[] data;

            using (MD5 md5 = MD5.Create())
            {
                data = md5.ComputeHash(Encoding.UTF8.GetBytes(value));
            }

            return BitConverter.ToString(data).ToLower().Replace("-"string.Empty);
        }

        public static string ToMD5_3(this string value)
        {
            byte[] data;

            using (MD5 md5 = MD5.Create())
            {
                data = md5.ComputeHash(Encoding.UTF8.GetBytes(value));
            }

            return data.ToHex().ToLower();
        }
    }

    static class ByteExtensions
    {
        private const string hexChars = "0123456789ABCDEF";

        public static string ToHex(this byte[] bytes)
        {
            int length = bytes.Length * 2;
            char[] hex = new char[length];
            int byteIndex = 0;

            for (int charIndex = 0charIndex < lengthcharIndex += 2)
            {
                byte byteValue = bytes[byteIndex++];
                hex[charIndex] = hexChars[byteValue / 16];
                hex[charIndex + 1] = hexChars[byteValue % 16];
            }

            return new string(hex);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            int iterations = 1000000;
            Stopwatch sw = Stopwatch.StartNew();
            for (int i = 0i < iterationsi++)
            {
                "thisisasillystringtodosomemagicon".ToMD5_1();
            }
            sw.Stop();
            Console.WriteLine((sw.ElapsedMilliseconds).ToString());

            sw = Stopwatch.StartNew();
            for (int i = 0i < iterationsi++)
            {
                "thisisasillystringtodosomemagicon".ToMD5_2();
            }
            sw.Stop();
            Console.WriteLine((sw.ElapsedMilliseconds).ToString());

            sw = Stopwatch.StartNew();
            for (int i = 0i < iterationsi++)
            {
                "thisisasillystringtodosomemagicon".ToMD5_3();
            }
            sw.Stop();
            Console.WriteLine((sw.ElapsedMilliseconds).ToString());
            Console.ReadLine();
        }
    }
}

Maar als je bv een wachtwoord met MD5 (of welke andere hashing methode dan ook) genereert wil je juist dat je wat trager bent ;) Gezien het feit dat je dan moeilijker kan brute-forcen.

Mijn Twitter | Mijn website

Jongste 4 jaar-actieve user
Reacties: 5.221
Reg. datum: 19-06-2009

Iets van mezelf. Net ineens like 'WTF waarom deed ik dat zo.'. Zomaar :p
PHP:

1
2
3
4
5
6
7
8
<?php
$a = 0;
foreach ($array as $arrayitem) {
$a++;
echo $item;
if($a < count($array)) {
echo 'some stuff in between';
}
}
?>

Wat natuurlijk veel beter zo kan:
PHP:

1
<?php
echo implode('somestuffinbetween'$array);
?>

Dell U2711 *O* | Intel Core i7 2600K | 8GB RAM | Samsung Spinpoint 2TB | EVGA P67 FTW | Club3D HD6790 | Samsung 830 256GB - Alles

getfirefox.com
Reacties: 12.920
Reg. datum: 02-02-2002

quote:
sanderev66 schreef op vrijdag 24 mei 2013 @ 18:58:
[...]

Maar als je bv een wachtwoord met MD5 (of welke andere hashing methode dan ook) genereert wil je juist dat je wat trager bent ;) Gezien het feit dat je dan moeilijker kan brute-forcen.
waarom zou dat helpen? Dan kan je beter een sleep inbouwen aan het eind van de validatie-methode, scheelt je processortijd=load.
Reacties: 1.616
Reg. datum: 18-11-2007

quote:
MBV schreef op vrijdag 24 mei 2013 @ 19:41:
[...]

waarom zou dat helpen? Dan kan je beter een sleep inbouwen aan het eind van de validatie-methode, scheelt je processortijd=load.
Of exponentieel blokkeren.

Drie keer achter elkaar fout is 1 min. geblokkeerd, tien keer fout een dag, twintig keer fout een jaar. :)
Fulltime #whatpulsert
Reacties: 2.298
Reg. datum: 21-12-2004

quote:
MBV schreef op vrijdag 24 mei 2013 @ 19:41:
[...]

waarom zou dat helpen? Dan kan je beter een sleep inbouwen aan het eind van de validatie-methode, scheelt je processortijd=load.
Ik denk dat hij, hoewel daar in dit geval geen sprake van was, doelde op het feit dat het hashen best wel iets duurder mag zijn zodat bruteforcen meer tijd kost.

Deze Tweaker zet geen actuele feitjes meer in zijn sig, die vergeet hij toch te verwijderen.

Reacties: 4.675
Reg. datum: 23-09-2005

quote:
MBV schreef op vrijdag 24 mei 2013 @ 19:41:
[...]

waarom zou dat helpen? Dan kan je beter een sleep inbouwen aan het eind van de validatie-methode, scheelt je processortijd=load.
Volgens mij is dat niet bedoeld voor 'zodat het op je productieserver' trager is. Maar dat als men achter het algoritme komt en de tabel met hashes ligt op straat men niet snel een betreffende hash kan bruteforcen.

Niet het bruteforcen 'live' op de server.

ZpAz wijzigde deze reactie 24-05-2013 21:46 (4%)

“Lost time is never found again.” - Benjamin Franklin

Reacties: 301
Reg. datum: 01-09-2009

quote:
F.West98 schreef op vrijdag 24 mei 2013 @ 19:06:
Iets van mezelf. Net ineens like 'WTF waarom deed ik dat zo.'. Zomaar :p
PHP:

1
2
3
4
5
6
7
8
<?php
$a = 0;
foreach ($array as $arrayitem) {
$a++;
echo $item;
if($a < count($array)) {
echo 'some stuff in between';
}
}
?>

Wat natuurlijk veel beter zo kan:
PHP:

1
<?php
echo implode('somestuffinbetween'$array);
?>

Hah, heel herkenbaar. Het is ook heel moeilijk om te omschrijven om te kijken of er een functie is. Zeker binnen php.
Leef om te leven
Reacties: 6.014
Reg. datum: 20-08-2003

quote:
Patriot schreef op vrijdag 24 mei 2013 @ 21:10:
[...]


Ik denk dat hij, hoewel daar in dit geval geen sprake van was, doelde op het feit dat het hashen best wel iets duurder mag zijn zodat bruteforcen meer tijd kost.
Precies ;) Maar ik wist niet precies waar de code voor diende :p

sanderev66 wijzigde deze reactie 24-05-2013 22:41 (8%)

Mijn Twitter | Mijn website

Reacties: 270
Reg. datum: 24-01-2011

quote:
F.West98 schreef op vrijdag 24 mei 2013 @ 19:06:
Iets van mezelf. Net ineens like 'WTF waarom deed ik dat zo.'. Zomaar :p
PHP:

1
2
3
4
5
6
7
8
<?php
$a = 0;
foreach ($array as $arrayitem) {
$a++;
echo $item;
if($a < count($array)) {
echo 'some stuff in between';
}
}
?>

Wat natuurlijk veel beter zo kan:
PHP:

1
<?php
echo implode('somestuffinbetween'$array);
?>

PHP zelf doet het zelf ook (ongeveer) zo. Het staat natuurlijk wel netter als je implode() gebruikt :)
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
PHPAPI void php_implode(zval *delimzval *arrzval *return_value TSRMLS_DC)
{

    zval         **tmp;
    HashPosition   pos;
    smart_str      implstr = {0};
    int            numelemsi = 0;
    zval tmp_val;
    int str_len;

    numelems = zend_hash_num_elements(Z_ARRVAL_P(arr));

    zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(arr), &pos);

    while (zend_hash_get_current_data_ex(Z_ARRVAL_P(arr), (void **) &tmp, &pos) == SUCCESS) {

        tmp_val = **tmp;
        zval_copy_ctor(&tmp_val);
        convert_to_string(&tmp_val);
        smart_str_appendl(&implstrZ_STRVAL(tmp_val), Z_STRLEN(tmp_val));
        zval_dtor(&tmp_val);

        if (++i != numelems) {
            smart_str_appendl(&implstrZ_STRVAL_P(delim), Z_STRLEN_P(delim));
        }
        zend_hash_move_forward_ex(Z_ARRVAL_P(arr), &pos);
    }

    smart_str_0(&implstr);

    if (implstr.len) {
        RETURN_STRINGL(implstr.cimplstr.len0);
    } else {
        smart_str_free(&implstr);
        RETURN_EMPTY_STRING();
    }
}

Niet de hele functie, alleen de relevante dingen.

Pizzalucht wijzigde deze reactie 24-05-2013 23:02 (6%)

getfirefox.com
Reacties: 12.920
Reg. datum: 02-02-2002

quote:
sanderev66 schreef op vrijdag 24 mei 2013 @ 22:41:
[...]

Precies ;) Maar ik wist niet precies waar de code voor diende :p
Daarom moet je ook een moeilijker algoritme gebruiken dan MD5, de hackers zijn over het algemeen heel goed in het efficiënt implementeren van je algoritme ;)
Fulltime #whatpulsert
Reacties: 2.298
Reg. datum: 21-12-2004

quote:
MBV schreef op zaterdag 25 mei 2013 @ 01:03:
[...]

Daarom moet je ook een moeilijker algoritme gebruiken dan MD5, de hackers zijn over het algemeen heel goed in het efficiënt implementeren van je algoritme ;)
Dat staat op zich los van het gebruikte algoritme. Als we kijken naar PHP, dan kun je middels de hash_pbkdf2 functie ook een heel goedkoop hash-algoritme gebruiken, dan moet je alleen het aantal iteraties omhoog schroeven om dezelfde hoeveelheid work te behalen als een relatief duur algoritme.

Deze Tweaker zet geen actuele feitjes meer in zijn sig, die vergeet hij toch te verwijderen.

getfirefox.com
Reacties: 12.920
Reg. datum: 02-02-2002

Ok, laat ik het anders formuleren: je moet iets doen om het aantal berekeningen dat hackers nodig hebben zo groot mogelijk te maken t.o.v. wat je zelf moet doen. MD5 implementeren op een manier die jou 10x zoveel tijd kost als de optimale implementatie helpt dus niet, maar 10x MD5 helpt wel (een beetje). Dus als je kan kiezen tussen een algoritme snel of langzaam uitvoeren, kan je net zo goed voor de snelle kiezen.
Fulltime #whatpulsert
Reacties: 2.298
Reg. datum: 21-12-2004

quote:
MBV schreef op zaterdag 25 mei 2013 @ 19:39:
Ok, laat ik het anders formuleren: je moet iets doen om het aantal berekeningen dat hackers nodig hebben zo groot mogelijk te maken t.o.v. wat je zelf moet doen. MD5 implementeren op een manier die jou 10x zoveel tijd kost als de optimale implementatie helpt dus niet, maar 10x MD5 helpt wel (een beetje). Dus als je kan kiezen tussen een algoritme snel of langzaam uitvoeren, kan je net zo goed voor de snelle kiezen.
Nouja, als je bedoelt dat je er niets mee opschiet om een 10 keer langzamere implementatie te gebruiken van MD5, omdat je zeker weet dat de hacker toegang heeft tot de snellere implementatie, dan heb je inderdaad gelijk. Maar ook dat staat los van het algoritme, dus ik vind het nog steeds een beetje kort door de bocht om te zeggen dat je een "moeilijker algoritme dan MD5" moet gebruiken.

Deze Tweaker zet geen actuele feitjes meer in zijn sig, die vergeet hij toch te verwijderen.

Reacties: 676
Reg. datum: 24-04-2009

quote:
Tarabass schreef op donderdag 09 mei 2013 @ 09:55:
[...]
Je zal maar een miljoen gebruikers hebben en de gebruiker die zich inlogt is pas net lid :P
Dat maakt alsnog niets uit. Er mist een exit achter de header waardoor hij alsnog de hele lus doorgaat en de output van de hele pagina doorstuurt naar de client ook al zou de client deze niet mogen zien. Daarom dus altijd een exit achter een location header.
Reacties: 2.187
Reg. datum: 24-03-2001

quote:
Phoenix1337 schreef op dinsdag 28 mei 2013 @ 13:25:
[...]
Dat maakt alsnog niets uit. Er mist een exit achter de header waardoor hij alsnog de hele lus doorgaat en de output van de hele pagina doorstuurt naar de client ook al zou de client deze niet mogen zien. Daarom dus altijd een exit achter een location header.
Een van de problemen met die code is dat je niet weet in welke volgorde de gebruikers opgeleverd worden, en het nog niet eens zo verwonderlijk zou zijn dat nieuwe gebruikers achteraan staan en met een exit() dan nog steeds alle gebruikers doorgelopen worden wanneer zo'n nieuwe gebruiker zich aanmeldt.

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]

Reacties: 676
Reg. datum: 24-04-2009

quote:
Infinitive schreef op dinsdag 28 mei 2013 @ 13:53:
[...]

Een van de problemen met die code is dat je niet weet in welke volgorde de gebruikers opgeleverd worden, en het nog niet eens zo verwonderlijk zou zijn dat nieuwe gebruikers achteraan staan en met een exit() dan nog steeds alle gebruikers doorgelopen worden wanneer zo'n nieuwe gebruiker zich aanmeldt.
Klopt, die code is zo fout als wat. Ik doelde alleen op de opmerking over die while. Die wordt hoe dan ook altijd volledig uitgevoerd ongeacht waar de gebruiker in de resultset staat.
NoxiousPluK
Reacties: 4.977
Reg. datum: 29-07-2002


PHP:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$aInvoiceRule = array(
    'invoice_id'            => $iInvoice,
    'parent_id'             => null,
    'subscription_id'       => null,
    'product_id'            => $aProduct[0]['product_id'],
    'description'           => $aProduct[0]['name'],
    'greatbooknumber'       => $aProduct[0]['exactglobenumber'] . '000',
    'purchase_price'        => 0,
    'sale_price'            => '1.25',
    'tax'                   => 21//$aTax['tax']
    'start_date'            => date('Y-m-d'),
    'end_date'              => date('Y-m-d')
);
?>

Een BTW probleempje gefixed, nooit meer aankomen :$

EVE Online: CEO van Jovian Legacy, alliance executor van Jovian Empire. Join 'public redbox' ingame. Blink spelen? http://cogdev.net/blink/ gebruik referalcode 'jovianblink' voor gratis startcredits. IRC

Reacties: 676
Reg. datum: 24-04-2009

quote:
JapyDooge schreef op dinsdag 28 mei 2013 @ 14:53:
PHP:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$aInvoiceRule = array(
    'invoice_id'            => $iInvoice,
    'parent_id'             => null,
    'subscription_id'       => null,
    'product_id'            => $aProduct[0]['product_id'],
    'description'           => $aProduct[0]['name'],
    'greatbooknumber'       => $aProduct[0]['exactglobenumber'] . '000',
    'purchase_price'        => 0,
    'sale_price'            => '1.25',
    'tax'                   => 21//$aTax['tax']
    'start_date'            => date('Y-m-d'),
    'end_date'              => date('Y-m-d')
);
?>

Een BTW probleempje gefixed, nooit meer aankomen :$
Waarom staat 1.25 binnen quotes?
NoxiousPluK
Reacties: 4.977
Reg. datum: 29-07-2002

quote:
Phoenix1337 schreef op dinsdag 28 mei 2013 @ 14:57:
[...]


Waarom staat 1.25 binnen quotes?
Dunno, niet mijn code :+

Ik werk bij een bedrijf die ooit hebben besloten om al hun administratiesoftware inhouse te schrijven en dat is zegmaar niet de allerbeste beslissing geweest.

In ieder geval niet met de developers die het gebakken hebben.

EVE Online: CEO van Jovian Legacy, alliance executor van Jovian Empire. Join 'public redbox' ingame. Blink spelen? http://cogdev.net/blink/ gebruik referalcode 'jovianblink' voor gratis startcredits. IRC

getfirefox.com
Reacties: 12.920
Reg. datum: 02-02-2002

Wees blij, ze hadden het naar India kunnen outsourcen ;)
Reacties: 1.616
Reg. datum: 18-11-2007

Nou ja, op de achtergrond maakt PHP toch het liefst overal strings van, ze zijn hem nu gewoon een stapje voor. :)
Reacties: 2.037
Reg. datum: 18-01-2005

Greatbooknumber :D

Maar waarom niet de waarde die in $aTax['tax'] wordt gezet aanpassen? Als ik die code zo zie, moet de rest van de code op zich redelijk zijn. Dat idee krijg ik in ieder geval.
Reacties: 13.684
Reg. datum: 11-04-2000

quote:
Die zag ik ook, zo grappig :D :D
Reacties: 60
Reg. datum: 05-07-2001

quote:
Het beruchte Nederlandse Stonecoleish. Staat er nog een in volgens mij, aangezien het over boekhouding gaat.
Dit soort uitwassen zit in onze software ook veel, maar dan een combinatie van Engels, Nederlands, Frans, Duits en bijna Engels. En dan beledigd kijken, wanneer een Native zwaar in de lach schiet of zich zich zwaar beledigd voelt.

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

achter de duinen
Reacties: 33.104
Reg. datum: 23-09-2001

Natuurlijk greatbooknumber. Nederlands in code is stom en slecht. Engels is altijd beter. Ook als het domein Nederlandstalig is. Wat weten de domeinexperts nou helemaal?

It was when I was happiest that I longed most. It was on happy days when we were up there on the hills, the three of us, with the wind and the sunshine ...

NoxiousPluK
Reacties: 4.977
Reg. datum: 29-07-2002

Mja, grootboek is 'general ledger' in het english dus het zou beter kunnen idd :P

Maarja, as said, ook niet mijn code :+

En die $tax kwam ergens uit een tabel, door 6 or 7 layers/classes/enz heen en verliest ergens halverwege z'n waarde :+

EVE Online: CEO van Jovian Legacy, alliance executor van Jovian Empire. Join 'public redbox' ingame. Blink spelen? http://cogdev.net/blink/ gebruik referalcode 'jovianblink' voor gratis startcredits. IRC

Reacties: 676
Reg. datum: 24-04-2009

En daarnaast dus de float binnen quotes en floats voor bedragen:)
NoxiousPluK
Reacties: 4.977
Reg. datum: 29-07-2002

Jups.

De hele boel zit vol met classes op classes op database layers enz enz :P 1 grote complexe soep wat ook nog eens op Zend 1.2 ofzo hangt, met een aangepaste core :X

EVE Online: CEO van Jovian Legacy, alliance executor van Jovian Empire. Join 'public redbox' ingame. Blink spelen? http://cogdev.net/blink/ gebruik referalcode 'jovianblink' voor gratis startcredits. IRC

Heartbeats and Brainwaves
Reacties: 16.960
Reg. datum: 31-01-2007

WTF bol.com
Ik wil mijn wachtwoord veranderen. Middels lastpass genereer ik het volgende wachtwoord: #$bLLTK8up7N5P*x.
Dat lijkt overeen te komen met de wensen van bol.com; Immers:
quote:
wachtwoordtips
1. Gebruik altijd voor iedere website of login een verschillend, uniek wachtwoord.
2. Wijzig uw wachtwoorden regelmatig.
3. Gebruik wachtwoorden van minimaal 8 tekens.
4. Een goed wachtwoord bevat hoofdletters en kleine letters, cijfers, en speciale tekens (!$%^&*).
5. Gebruik nooit al te voor de hand liggende wachtwoorden, zoals (achter)namen of geboortedata.
Maar nu krijg ik de volgende foutmelding
We wijzen u graag op het volgende:
Het wachtwoord moet minimaal 6 tekens bevatten.


WTF willen ze nu :/

Edit; Ik heb ook geprobeerd met 8 cijfers, 8 (hoofd) letters of 8 speciale tekens. Geen van alle lijkt ie te slikken.
Ik heb het billie gevraagd (hun helpdeskbot), maar daarvan wordt ik ook niets wijzer:
quote:
Billie zegt:Let bij het invoeren van het e-mailadres en wachtwoord goed op dat u geen typfouten maakt. Mocht het toch niet lukken om in te loggen dan kunt u het beste een nieuw wachtwoord aanvragen. Gebruik minimaal 8 tekens voor uw wachtwoord en maak een combinatie van hoofdletters en kleine letters, cijfers, en speciale tekens. Is er nog iets anders waarmee ik u van dienst kan zijn?
Nu maar een wachtwoord van 12 karakters ingesteld, want 14, 15 en 16 pakt ie niet 8)7

Matis wijzigde deze reactie 28-05-2013 22:08 (31%)

Nobody's all bad, nobody's all good,
Nobody lives forever, but I wish we could,

Reacties: 8.535
Reg. datum: 18-08-2002

quote:
Matis schreef op dinsdag 28 mei 2013 @ 22:01:
Nu maar een wachtwoord van 12 karakters ingesteld, want 14, 15 en 16 pakt ie niet 8)7
Ik denk dat ik toendertijd ook hetzelfde probleem heb gehad want normaal genereer ik 40 character passwords en voor Bol.com is ie ook maar 12 :+

Track je series op je iGoogle http://alwaysapirate.org/

Reacties: 26.929
Reg. datum: 17-01-2001

Ow dat gebeurt zelfs bij banken nog, ik snap niet waarom een wachtwoord voor een bank maar 8-12 tekens mag hebben. Crasht anders de hashingfunctie of wat.

Fotograaf voor een bruiloft, feest, congres of evenement nodig?

Reacties: 9.584
Reg. datum: 30-06-2003

Het wachtwoord van je Hotmail-account Microsoft .NET Passport .NET Passport Windows Live ID Microsoft-account mag ook maar maximaal 16 tekens lang zijn. Vroeger (voor de laatste makeover) werd alles na de eerste 16 tekens gewoon afgekapt in de backend, maar tegenwoordig zit er een maxlength op de tekstbox.

De oorzaak schijnt te liggen in backendsystemen die niet meer aankunnen dan 16 tekens (pre-hashing), en dat het wijzigen de nodige tijd zou kosten.

We are shaping the future

Reacties: 373
Reg. datum: 05-03-2011

Bij mij op school (universiteit ja) is het zelfs nog erger: Je wachtwoord mag zo lang zijn als je wil, maar als de eerste acht tekens goed zijn wordt je al binnen gelaten. Aangezien ik een Informatica-opleiding doe, valt dat toch wel heel erg tegen... Overigens draaien we ook nog een Linux-distro van 3 jaar geleden (en geen LTS-versie, dus hij wordt al niet meer ondersteund, al hebben ze hem überhaupt nooit geüpdatet).
Reacties: 246
Reg. datum: 21-05-2006

quote:
Chris7 schreef op woensdag 29 mei 2013 @ 08:07:
Bij mij op school (universiteit ja) is het zelfs nog erger: Je wachtwoord mag zo lang zijn als je wil, maar als de eerste acht tekens goed zijn wordt je al binnen gelaten. Aangezien ik een Informatica-opleiding doe, valt dat toch wel heel erg tegen... Overigens draaien we ook nog een Linux-distro van 3 jaar geleden (en geen LTS-versie, dus hij wordt al niet meer ondersteund, al hebben ze hem überhaupt nooit geüpdatet).
Dus eigenlijk kapt deze ook af na 8 tekens :+

Share your knowledge!

Reacties: 15.777
Reg. datum: 04-11-2000

quote:
Alex) schreef op dinsdag 28 mei 2013 @ 22:56:
Het wachtwoord van je Hotmail-account Microsoft .NET Passport .NET Passport Windows Live ID Microsoft-account mag ook maar maximaal 16 tekens lang zijn. Vroeger (voor de laatste makeover) werd alles na de eerste 16 tekens gewoon afgekapt in de backend, maar tegenwoordig zit er een maxlength op de tekstbox.

De oorzaak schijnt te liggen in backendsystemen die niet meer aankunnen dan 16 tekens (pre-hashing), en dat het wijzigen de nodige tijd zou kosten.
Pfff ja, vreselijk, en ze zijn totaal vergeten de interface wat feedback te laten geven. Maar toen ik probeerde in te loggen op de app op m'n telefoon ging het mis. Ik kon niet inloggen terwijl ik wist dat m'n wachtwoord echt klopte. Immers, de webinterface accepteerde het gewoon en ook in m'n IM-client ging dat prima... maar die app deed dat dus niet. Dat was (hopelijk niet meer) een lelijke fout van MS daar.

Spank your inner muppet!

getfirefox.com
Reacties: 12.920
Reg. datum: 02-02-2002

Bij Moneyou heb ik ooit een probleem gehad: wachtwoord was verlopen, dus lastpass genereert een wachtwoord met een # erin. Daar kan je wel je wachtwoord naartoe wijzigen, maar niet mee inloggen! 8)7 Vervolgens gebeld wat ik nu moest doen, aangezien ik de geheime vragen natuurlijk ook niet meer wist. Ze konden me het antwoord op de geheime vragen vertellen, dus toen maar geen speciale tekens in moneyou.

MBV wijzigde deze reactie 29-05-2013 09:17 (14%)

Reacties: 15.777
Reg. datum: 04-11-2000

Een wachtwoord met een # erin wordt niet geaccepteerd? Wat voeren ze met die wachtwoorden uit bij het controleren dan? :X
(En anders sla je de antwoorden van je geheime vragen gewoon niet versleuteld op, ben benieuwd of ze dat met de wachtwoorden wel doen :X)

Ik heb ook iets vergelijkbaars met usernames. Ik gebruik eigenlijk net zo lief even een e-mailadres, maar usernames mogen vaak geen @ bevatten. Da's weer jammer.

Spank your inner muppet!

Reacties: 758
Reg. datum: 07-03-2001

quote:
Chris7 schreef op woensdag 29 mei 2013 @ 08:07:
Bij mij op school (universiteit ja) is het zelfs nog erger: Je wachtwoord mag zo lang zijn als je wil, maar als de eerste acht tekens goed zijn wordt je al binnen gelaten. Aangezien ik een Informatica-opleiding doe, valt dat toch wel heel erg tegen... Overigens draaien we ook nog een Linux-distro van 3 jaar geleden (en geen LTS-versie, dus hij wordt al niet meer ondersteund, al hebben ze hem überhaupt nooit geüpdatet).
Haha, Leiden toevallig? Daar had ik het 10 jaar geleden al opgemerkt... Net even gechecked en ik kan (8 jaar na uitschrijven), nog steeds op mijn ftp, mail en persoonlijke site met mijn account en mijn mail account pakt inderdaad nog steeds maar de max 8 characters, alles erachter wordt genegeerd... Toppie hoor!
Reacties: 373
Reg. datum: 05-03-2011

quote:
Coca-Cola schreef op woensdag 29 mei 2013 @ 11:00:
[...]


Haha, Leiden toevallig? Daar had ik het 10 jaar geleden al opgemerkt... Net even gechecked en ik kan (8 jaar na uitschrijven), nog steeds op mijn ftp, mail en persoonlijke site met mijn account en mijn mail account pakt inderdaad nog steeds maar de max 8 characters, alles erachter wordt genegeerd... Toppie hoor!
Leiden ja. Overigens geld die beperking van max. 8 characters ook voor de usernames, dus die zijn bij sommigen ook lekker onlogisch.
Reacties: 2.043
Reg. datum: 16-06-2002

Woningnet.nl heeft hetzelfde, probleem is waarschijnlijk dat http://php.net/crypt wordt gebruikt met voor iedere gebruiker dezelfde salt. Staat gewoon gedocumenteerd op die pagina, maar ja.
quote:
The standard DES-based crypt() returns the salt as the first two characters of the output. It also only uses the first eight characters of str, so longer strings that start with the same eight characters will generate the same result (when the same salt is used).

Specs | WhatPulse | Dynamic Pro Sound & Light | PocketGamer

Reacties: 2.541
Reg. datum: 24-08-2005

quote:
MBV schreef op woensdag 29 mei 2013 @ 09:16:
Bij Moneyou heb ik ooit een probleem gehad: wachtwoord was verlopen, dus lastpass genereert een wachtwoord met een # erin. Daar kan je wel je wachtwoord naartoe wijzigen, maar niet mee inloggen! 8)7 Vervolgens gebeld wat ik nu moest doen, aangezien ik de geheime vragen natuurlijk ook niet meer wist. Ze konden me het antwoord op de geheime vragen vertellen, dus toen maar geen speciale tekens in moneyou.
bij moneyou is het nog leuker... weet niet of het nog zo is, maar een jaar geleden wilde ik een wachtwoord instellen met een + erin... werkte prima.. maar niet in de mobiele app.... na heel veel zoeken kwam ik er achter waarom ik mobiel niet kon inloggen... dat kan pas toen ik de + in een . veranderde....

al die wachtwoordregels van de verschillende sites wordt ik sowieso gek van... ik wil vaak hetzelfde wachtwoord (of een kleine aanpassing al naar gelang de site), maar omdat iedere site weer andere regels hanteert heb ik dus bijna nergens hetzelfde wachtwoord... (net zo irritant als mensen die MIJN loginnaam al eerder hebben dan dat ik me aanmeld op een site... grrr... ook overal andere loginnames... zo irri :+ )
getfirefox.com
Reacties: 12.920
Reg. datum: 02-02-2002

Ik heb kennelijk een redelijk unieke username, meestal is hij nog vrij :) Maar wachtwoorden doe ik niet moeilijk over: sinds die grote hack bij LinkedIn heb ik al mijn wachtwoorden veranderd naar gegenereerde wachtwoorden. Zonder lastpass kom ik alleen in DigId en 1 mailaccount.
Webmaster
Reacties: 934
Reg. datum: 11-02-2008

Ach, Google heeft de dot-bug ook nog in het assortiment. Ze doen het af als een feature. Zolang giganten als Google dit soort 'bugs' niet serieus nemen, verwacht ik van bovenstaande websites al helemaal niet dat ze wachtwoordpolicies serieus gaan nemen.

Mijn systeem - HAF932 Review - Kaze Master Pro 5.25 Review



Woy
Moderator Devschuur®
Reacties: 11.659
Reg. datum: 28-04-2000

quote:
Tarabass schreef op woensdag 29 mei 2013 @ 21:49:
Ach, Google heeft de dot-bug ook nog in het assortiment. Ze doen het af als een feature. Zolang giganten als Google dit soort 'bugs' niet serieus nemen, verwacht ik van bovenstaande websites al helemaal niet dat ze wachtwoordpolicies serieus gaan nemen.
Leg eens uit waarom dat een bug is dan? Dat is zover ik weet gewoon by-design ( I.i.g. al bekend zolang GMail bestaat ). En hoewel je kunt betwisten of het een nuttige/wenselijke feature is, zie ik het niet als een bug.

“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.”

Reacties: 1.616
Reg. datum: 18-11-2007

Tja, ik zie het probleem ook niet.
Want volgens mij zijn geen twee adressen (als je alle dots weghaalt) hetzelfde.
Reacties: 676
Reg. datum: 24-04-2009

Ik ga er vanuit dat ze daar ook op controleren als het een feature is.
Reacties: 373
Reg. datum: 05-03-2011

Bij Gmail is het volgens mij expres. Het werkt geloof ik ook alleen als er ook daadwerkelijk geen ander adres is die hetzelfde is maar dan zonder punten. Overigens kun je @gmail.com ook weglaten bij het inloggen, dus ik denk dat ze het gewoon zo makkelijk mogelijk willen maken.
Webmaster
Reacties: 934
Reg. datum: 11-02-2008

Ik krijg e-mails binnen van iemand anders, terwijl hij het e-mailadres al had zonder punt en ik het e-mailadres kon aanmaken (dus er werd geen check gedaan) met punt. Toen ik mijn mailbox voor het eerst opende kreeg ik van jaren e-mails te zien van iemand anders. Foto's, afspraken, facturen, etc. Zo ben ik achter het bestaan van de bug gekomen (en is mijn vertrouwen in Google redelijk beschadigd).

Ik kon bij gmail dus mijn.naam@gmail.com aanmaken en gebruiken, terwijl iemand anders mijnnaam@gmail.com al had geclaimd en in gebruik heeft.

De 'feature' is dat de punt genegeerd wordt, maar dat de validatie daar niet op ingericht is. Maar als jullie het een feature vinden dat ik jaren e-mails krijg (en nog steeds) omdat ons e-mailadres zonder punt hetzelfde is, is dat prima. Ik zou het erg onprettig vinden als iemand al mijn e-mail ineens voorgeschoteld kreeg. :)

Meer info:
http://blog.sandipb.net/2...our-email-address-policy/
http://productforums.goog...#!topic/gmail/j6jjcm77IEQ

Tarabass wijzigde deze reactie 30-05-2013 10:29 (14%)

Mijn systeem - HAF932 Review - Kaze Master Pro 5.25 Review

Reacties: 13.403
Reg. datum: 29-09-2000

quote:
Tarabass schreef op donderdag 30 mei 2013 @ 10:19:
Ik krijg e-mails binnen van iemand anders, terwijl hij het e-mailadres al had zonder punt en ik het e-mailadres kon aanmaken (dus er werd geen check gedaan) met punt.
Dat is op dit moment in ieder geval niet mogelijk. En voor zover ik weet ook nooit mogelijk geweest. Ik kan geen enkele variatie met punten aanmaken van mijn bestaande gmail adressen.
Hans en Nicow, zusjes 4ever
Reacties: 8.466
Reg. datum: 04-09-2010

quote:
Hydra schreef op donderdag 30 mei 2013 @ 10:31:
[...]


Dat is op dit moment in ieder geval niet mogelijk. En voor zover ik weet ook nooit mogelijk geweest. Ik kan geen enkele variatie met punten aanmaken van mijn bestaande gmail adressen.
Dit was bij de lancering van gmail. Het probleem is al verholpen qua registratie, alleen zijn er dus blijkbaar oude registraties die toch nog steeds fout gaan?

I don't have OCD. I have CDO. It's the same, but with the letters in the right order.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!

Webmaster
Reacties: 934
Reg. datum: 11-02-2008

quote:
Hydra schreef op donderdag 30 mei 2013 @ 10:31:
[...]


Dat is op dit moment in ieder geval niet mogelijk. En voor zover ik weet ook nooit mogelijk geweest. Ik kan geen enkele variatie met punten aanmaken van mijn bestaande gmail adressen.
Dus je zegt eigenlijk dat ik onzin verkondig? Misschien moet je de bronnen die ik (later) toegevoegd heb even lezen. Het gaat (of ging) om de combinatie google-gmail account :)

Mijn systeem - HAF932 Review - Kaze Master Pro 5.25 Review

Reacties: 3.627
Reg. datum: 05-12-2007

Deze bug is inderdaad vrij irritant. Ik heb hier zelf ook last van. Ik heb een emailadres: [eerstelettervoornaam].achternaam@gmail.com. Iemand heeft ook [eerstelettervoornaam]achternaam@gmail.com. Ik wist niet van de bug en ineens kreeg ik een reactie op een sollicitatie binnen (voor een functie waar ik niet van wist, ergens aan de andere kant van het land) en nog meer best wel vertrouwelijk informatie. Heb via google toen een telefoonnummer kunnen achterhalen. Hij was op zijn zachtstgezegd, not amused. Sindsdien krijg ik niets meer binnen van hem, dus ik neem aan dat hij het adres niet meer gebruikt. Zeker weten doe ik het echter niet. Het nadeel is echter ook dat ik nu af en toe twijfel of ik wel alles binnen krijg, maar tot nu toe (3 jaar later) nog niets gemerkt.

GropahTV op TwitchTV | GropahTV op Facebook | GropahTV op Twitter

Supra Addict
Reacties: 6.514
Reg. datum: 22-08-2001

Uuuhm ja.. 186 database tables, waarvan 1 table met alle indexcolumns, en 0 foreign keys.. need I say more? :'(

wil een Toyota Supra mkIV!!!!! | wil een Yamaha YZF-R{1,6} | wil stiekem ook een Ducati
"Security is just a state of mind"
PSN: scorpie | Diablo 3: scorpie#2470

Reacties: 652
Reg. datum: 04-11-2002

gmail vertel mij wat, ik heb mijnvoornaam@gmail.com en krijg regelmatig voor andere mensen met mijn voornaam (en dus ook voornaam van die personen) een mail :), moet er altijd wel om lachen.

zo is er al een paar keer rijlessen voor mij gereserveerd.
heb ik mijn voetbal contributie niet betaald
krijg ik mailtjes met foto sessie enz.
kreeg ik van de week een betaalde NS ticket voor eindhoven naar rotterdam :)

helaas ook de vele online spelletjes :( en wie krijgt mijn mail allemaal ??? :(


ook zo'n mooie waar ik echt een hekel aan heb:

websites die eerst een limiet hebben aan gebruikersnaam en wachtwoord, en opeens niet meer. bijv. icscards / anwbcreditcard, maximaal 10 tekens voor gebuikersnaam dus een maxlength op het input veld. opeens aangepast. Transip had dat ook opeens aangepast. dan moet je dus specifieke gebruikersnamen gaan onthouden omdat ze afkappen maar daarna niet meer.

Oid wijzigde deze reactie 31-05-2013 23:34 (29%)

Reacties: 1.390
Reg. datum: 03-03-2005

Een soortgelijk iets hebben ze ook bij surfspot. Via het account van m'n werk kan ik bij surfspot inloggen, echter hanteert surfspot blijkbaar striktere eisen aan wachtwoorden dan m'n werkgever. Ik had dus een mooi, lang random wachtwoord op m'n werk, maar ik moest het inkorten en speciale tekens verwijderen omdat surfspot het niet aan kon.
Reacties: 95
Reg. datum: 26-12-2009

Zat m'n eigen code is op te schonen toen ik deze faal tegenkwam:
PHP:

1
2
3
4
5
<?php
$sql = "SELECT `idname` FROM `content_types` WHERE `idname`= :content_idname";
$st = $conn->prepare($sql);
$st->bindValue(':content_idname'substr($type8));
$st->execute() or die(print_r($st->errorInfo(), true));
$searchprovider_type_idname = $st->fetch(PDO::FETCH_COLUMN0);
?>

spoiler:
Voor het geval iemand het niet ziet. Dit hele stuk kan vervangen worden door $searchprovider_type_idname=substr($type, 8 ).

boelensman1 wijzigde deze reactie 08-06-2013 21:04 (82%)

Reacties: 2.794
Reg. datum: 07-10-2005

quote:
boelensman1 schreef op zaterdag 08 juni 2013 @ 18:38:
Zat m'n eigen code is op te schonen toen ik deze faal tegenkwam:
PHP:

1
2
3
4
5
<?php
$sql = "SELECT `idname` FROM `content_types` WHERE `idname`= :content_idname";
$st = $conn->prepare($sql);
$st->bindValue(':content_idname'substr($type8));
$st->execute() or die(print_r($st->errorInfo(), true));
$searchprovider_type_idname = $st->fetch(PDO::FETCH_COLUMN0);
?>

spoiler:
Voor het geval iemand het niet ziet. Dit hele stuk kan vervangen worden door $searchprovider_type_idname=substr($type, 8 ).
Behalve dat je in je eerste voorbeeld ook checkt of ie daadwerkelijk in de database staat... ;)

[ Canon 450D + EF 70-300 IS + EFS 18-55 IS ] [ 13" MacBook Air 2012 - 2.0GHz 8GB 256GB ] - [ PSN: gwbh ]

Reacties: 49
Reg. datum: 23-10-2004

Bezig in wat legacy code, van een applicatie dat al flink wat jaartjes draait, kom je dit juweeltje tegen. :/
Visual Basic:
1
2
3
4
5
6
7
8
9
Dim table As DataTable = ... 'Haal eerste 10 rijen op

For i As Integer = 0 To 10
    Try
        Dim row As DataRow = table.Rows(i)
        ...
    Catch ex As Exception
    End Try
Next

Het komt nog redelijk vaak voor dat er geen 10 rijen zijn.
Reacties: 1.328
Reg. datum: 03-04-2006

Ook slim dat je je exceptie catcht _binnen_ de for loop. Da's handig, kan je de volgende iteratie nog een keer een exception throwen ;D

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.

Lotus Notes Geek
Reacties: 5.951
Reg. datum: 21-03-2001

quote:
BoopMeister schreef op donderdag 13 juni 2013 @ 15:32:
Bezig in wat legacy code, van een applicatie dat al flink wat jaartjes draait, kom je dit juweeltje tegen. :/
Visual Basic:
1
2
3
4
5
6
7
8
9
Dim table As DataTable = ... 'Haal eerste 10 rijen op

For i As Integer = 0 To 10
    Try
        Dim row As DataRow = table.Rows(i)
        ...
    Catch ex As Exception
    End Try
Next

Het komt nog redelijk vaak voor dat er geen 10 rijen zijn.
Ach je zegt het zelf al. Legacy code.. for loopje aanpassen enklaar ;)

follow me on twitter

Reacties: 9.584
Reg. datum: 30-06-2003

quote:
Webgnome schreef op donderdag 13 juni 2013 @ 22:13:
[...]


Ach je zegt het zelf al. Legacy code.. for loopje aanpassen enklaar ;)
Upgraden naar .NET 3.5 en vervangen door table.Rows.Take(10) :Y

We are shaping the future

Reacties: 3.460
Reg. datum: 21-05-2002

edit:
Oeps, in de verkeerde tab gepost.. :X

sig69 wijzigde deze reactie 14-06-2013 10:29 (92%)

Feestje? Rob Versluys Entertainment!

Open Source!
Reacties: 1.323
Reg. datum: 29-04-2009

Ik kwam net echt een parel tegen, hoewel het niet daadwerkelijk code betreft, maar meer belachelijk ontwerp van je product en een vreemd policy, allereerst de meeste idiote update-optie OOIT:

http://www.zamfoo.com/updatezamfoo

En blijkbaar mogen ze ook aan hun klantvriendelijkheid werken, alsmede de wijze waarop ze met kritieke security breaches omgaan:
http://www.webhostingtalk.com/showthread.php?t=1275572

IMDB vote history | Next-gen OS, audio en video player, search engine en Movie DB

Reacties: 764
Reg. datum: 11-05-2003

quote:
afraca schreef op zondag 16 juni 2013 @ 12:07:
Ik kwam net echt een parel tegen, hoewel het niet daadwerkelijk code betreft, maar meer belachelijk ontwerp van je product en een vreemd policy, allereerst de meeste idiote update-optie OOIT:

http://www.zamfoo.com/updatezamfoo

En blijkbaar mogen ze ook aan hun klantvriendelijkheid werken, alsmede de wijze waarop ze met kritieke security breaches omgaan:
http://www.webhostingtalk.com/showthread.php?t=1275572
Begrijp ik nu echt goed dat ze verwachten je root wachtwoord over een onbeveiligde verbinding te sturen? En dat je (misschien) je wachtwoord ook moet aanpassen als je zo stom bent 'm moeilijk te maken door speciale tekens?

Gebruik de code 'Tweakers' voor €5,- korting op Handtekening.nl

Reacties: 270
Reg. datum: 24-01-2011

quote:
Stephan4kant schreef op zondag 16 juni 2013 @ 12:25:
[...]

Begrijp ik nu echt goed dat ze verwachten je root wachtwoord over een onbeveiligde verbinding te sturen? En dat je (misschien) je wachtwoord ook moet aanpassen als je zo stom bent 'm moeilijk te maken door speciale tekens?
Alle scriptjes doen ze zo: http://198.57.224.242/~install/ |:(

Waarom niet gewoon wat shell-scriptjes uitbrengen? :?
Reacties: 229
Reg. datum: 19-07-2009

Ik kwam zonet dit tegen, het is dan geen code, maar moest er wel om lachen :)
PHP:

1
<?php
setlocale(LC_ALL'Dutch_Netherlands''Dutch''nl_NL''nl''nl_NL.ISO8859-1''nl_NL.UTF-8''nld_nld''nld''nld_NLD''NL_nl');
?>

[A] Officer @ Ærror - Doomhammer.

Hans en Nicow, zusjes 4ever
Reacties: 8.466
Reg. datum: 04-09-2010

Ik denk dat die site Nederlands is?

I don't have OCD. I have CDO. It's the same, but with the letters in the right order.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!

Reacties: 302
Reg. datum: 14-06-2006

quote:
Brainscrewer schreef op woensdag 19 juni 2013 @ 12:53:
Ik kwam zonet dit tegen, het is dan geen code, maar moest er wel om lachen :)
PHP:

1
<?php
setlocale(LC_ALL'Dutch_Netherlands''Dutch''nl_NL''nl''nl_NL.ISO8859-1''nl_NL.UTF-8''nld_nld''nld''nld_NLD''NL_nl');
?>

Zeker bang dat er eentje niet werkt 8)7

Pagina: vorige 1 ... 99 100 101 102 laatste