[alg] Slechtste programmeervoorbeelden deel 5 Vorige deel Overzicht

Pagina: 1 ... 8 ... 20 Laatste
Acties:

Acties:
  • 0 Henk 'm!

  • BoringDay
  • Registratie: Maart 2009
  • Laatst online: 13-05 21:49
Gomez12 schreef op donderdag 29 januari 2015 @ 21:58:
[...]

Het is en blijft PHP, dus waarom zou je dit enkel op een boolean gebruiken >:)

Maar in loosely typed talen zou ik booleans toch expliciet (en dan niet met == maar met ===true) checken, iets te vaak meegemaakt dat iemand $var dacht te kunnen gebruiken voor een string / int en dan zo af en toe "vreemde" resultaten krijgen
Kan prima
return ($true) ? true : false;

niet assigned $true is (nil) 0 en anders ongelijk aan 0.

[ Voor 6% gewijzigd door BoringDay op 30-01-2015 19:39 ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Serieus? Jullie hebben het nog steeds over de vorm? De by far biggest WTF is dat er überhaupt een variabele met de naam 'true' is!

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: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Precies. Hij moet natuurlijk gewoon $false heten.

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!

Verwijderd

biglia schreef op dinsdag 13 januari 2015 @ 11:34:
C# door een Senior Developer. Converteren van int naar string voortdurend als volgt:

string _example = 1 + "";
Ik heb wel eens discussies met mensen die zichzelf "medior" (of zelfs senior) noemen maar wel dergelijke streken uithalen. Met als hoofdargument: "Het resultaat is toch hetzelfde, dus wat maakt het uit?". Of het klassieke: "Ja, dat andere vind ik niet zo mooi"-argument.

Tja.

Acties:
  • 0 Henk 'm!

  • begintmeta
  • Registratie: November 2001
  • Niet online

begintmeta

Moderator General Chat
.oisyn schreef op zaterdag 31 januari 2015 @ 00:07:
Precies. Hij moet natuurlijk gewoon $false heten.
Het beste kan je de variabelenaam afhankelijk maken van de waarde van de variabele, dus bij waarde false is het $false en bij waarde true is het $true.

Acties:
  • 0 Henk 'm!

  • PierreAronnax
  • Registratie: Maart 2002
  • Niet online
Richh schreef op donderdag 29 januari 2015 @ 16:04:
Zolang je variabele een boolean is...
PHP:
1
if($var)


Waarom zou je er nog een == tussen zetten :P
Door deze aanname had ik afgelopen week ook een behoorlijke WTF.

Normaal kan je inderdaad zoiets doen:
C:
1
2
3
uint16_t interval = 1234;
if (interval)
{

Dus ik had een functie:
C:
1
2
3
4
5
bool wakeup(void)
{
    ...
    return interval;
}

Eventjes vergetend dat bool eigenlijk het volgende is:
C:
1
typedef uint8_t bool;

Dit gaat dus goed, behalve als interval precies 256 of 512 etc. is.

Gevolg: langzaam begonnen apparaten in het veld uit te vallen. :X

Pierre - Motormedia.nl - Motor-Forum.nl - Motorshopper.nl - Motormeuk.nl - Motorstek.nl


Acties:
  • 0 Henk 'm!

  • DrBreakalot
  • Registratie: Oktober 2010
  • Laatst online: 10-09 08:29
PierreAronnax schreef op zaterdag 31 januari 2015 @ 15:28:
[...]

Door deze aanname had ik afgelopen week ook een behoorlijke WTF.

Normaal kan je inderdaad zoiets doen:
C:
1
2
3
uint16_t interval = 1234;
if (interval)
{

Dus ik had een functie:
C:
1
2
3
4
5
bool wakeup(void)
{
    ...
    return interval;
}

Eventjes vergetend dat bool eigenlijk het volgende is:
C:
1
typedef uint8_t bool;

Dit gaat dus goed, behalve als interval precies 256 of 512 etc. is.

Gevolg: langzaam begonnen apparaten in het veld uit te vallen. :X
Daarom gebruik je de 'Cast to bool' operator :+
C:
1
2
3
4
5
bool wakeup(void)
{
    ...
    return !!interval;
}

Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 18-09 00:51

F.West98

Alweer 16 jaar hier

Even wat oude code van een jaar oud teruglezen:
C#:
1
2
3
4
5
6
int someInt;
try {
    int.TryParse(someString, out someInt);
} catch {
    // error handling
}

En ik me maar afvragen waarom die nooit fout ging }:|

spoiler:
TryParse returnt een bool met of het gelukt is of niet en throwt niets. Parse throwt wel een exception als het fout gaat

[ Voor 25% gewijzigd door F.West98 op 01-02-2015 00:44 ]

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Intern doet TryParse niet veel anders dan dit hoor:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
public bool TryParse(string input, out value)
{
  try
  {
    value = Int32.Parse(input);
    return true;
  }
  catch (FormatException)
  {
    return false;
  }
}


:P

We are shaping the future


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 18-09 00:51

F.West98

Alweer 16 jaar hier

TryParse geeft geen Exception intern. Het is sneller dan een Parse met een catch (Exceptions zijn duur). Het is volgens de decompiler juist andersom ;)
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
[__DynamicallyInvokable]
    public static bool Parse(string value)
    {
      if (value == null)
        throw new ArgumentNullException("value");
      bool result = false;
      if (!bool.TryParse(value, out result))
        throw new FormatException(Environment.GetResourceString("Format_BadBoolean"));
      return result;
    }

    [__DynamicallyInvokable]
    public static bool TryParse(string value, out bool result)
    {
      result = false;
      if (value == null)
        return false;
      if ("True".Equals(value, StringComparison.OrdinalIgnoreCase))
      {
        result = true;
        return true;
      }
      if ("False".Equals(value, StringComparison.OrdinalIgnoreCase))
      {
        result = false;
        return true;
      }
      value = bool.TrimWhiteSpaceAndNull(value);
      if ("True".Equals(value, StringComparison.OrdinalIgnoreCase))
      {
        result = true;
        return true;
      }
      if (!"False".Equals(value, StringComparison.OrdinalIgnoreCase))
        return false;
      result = false;
      return true;
    }

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22:22
Ook wel rare gegenereerde code trouwens. Waarom wordt op regel 25 wel een assignment aan result gegenereerd, maar voor regel 35 niet? En waarom staat die assignment wel op regel 36, terwijl de compiler de regel ervoor nog wist dat result gelijk aan false is op dat punt?

Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
De return value van de functie is of het parsen gelukt is, niet het resultaat ;) Regel 35 is dus "return error", waar alle andere paden het resultaat instellen en "return success" doen.

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22:22
Ik zie nu inderdaad dat regel 35 een negatie voor het if-statement heeft staan; die had ik even gemist. De code is in die zin dus wel logisch, aangezien "result" voor elke "return true" overschreven wordt.

Feit blijft wel dat "result" bovenaan op "false" geïnitialiseerd is, dus die waarde is ook gedefinieerd als de functie "false" returnt, en dat betekent dat regel 25 en 36 feitelijk overbodig zijn.

Acties:
  • 0 Henk 'm!

  • P_Tingen
  • Registratie: Maart 2005
  • Laatst online: 14:33

P_Tingen

omdat het KAN

begintmeta schreef op zaterdag 31 januari 2015 @ 15:03:
[...]

Het beste kan je de variabelenaam afhankelijk maken van de waarde van de variabele, dus bij waarde false is het $false en bij waarde true is het $true.
Bij ons moeten variabele altijd positief geformuleerd zijn. Een variabele als "NotPrinted" kan dus niet. Dit is om rare en slecht leesbare constructies in de code tegen te gaan. Iets als

code:
1
IF NOT NotPrinted THEN ...


Leest niet lekker en is vragen om problemen.

code:
1
IF Printed THEN ...


Is dan al een stuk beter. Een variabele met de naam $False zou er bij ons niet inkomen. Hooguit $IsFalse, maar ook dat is twijfelachtig.

... en gaat over tot de orde van de dag


Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
Soultaker schreef op zondag 01 februari 2015 @ 11:53:
Ik zie nu inderdaad dat regel 35 een negatie voor het if-statement heeft staan; die had ik even gemist. De code is in die zin dus wel logisch, aangezien "result" voor elke "return true" overschreven wordt.

Feit blijft wel dat "result" bovenaan op "false" geïnitialiseerd is, dus die waarde is ook gedefinieerd als de functie "false" returnt, en dat betekent dat regel 25 en 36 feitelijk overbodig zijn.
Nee, want ze zijn semantisch wel degelijk verschillend. De ene false is 'de waarde die teruggegeven wordt als het parsen mislukt', de andere false is 'de waarde die teruggegeven wordt als de waarde false is'. Die eerste had ook true kunnen zijn, 'geen verandering in waarde' , of (als het een nullable boolean was geweest) null.

Dat neem niet weg dat het gek is dat de compiler de extra assignments niet wegoptimaliseert...

Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 18-09 00:51

F.West98

Alweer 16 jaar hier

Het ging om het idee en niet om de implementatie :+

De implementatie op GitHub ziet er al veel logischer uit:
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
// Determines whether a String represents true or false.
//
public static Boolean Parse (String value) {
if (value==null) throw new ArgumentNullException("value");
Contract.EndContractBlock();
Boolean result = false;
if (!TryParse(value, out result)) {
throw new FormatException(Environment.GetResourceString("Format_BadBoolean"));
}
else {
return result;
}
}
// Determines whether a String represents true or false.
//
public static Boolean TryParse (String value, out Boolean result) {
result = false;
if (value==null) {
return false;
}
// For perf reasons, let's first see if they're equal, then do the
// trim to get rid of white space, and check again.
if (TrueLiteral.Equals(value, StringComparison.OrdinalIgnoreCase)) {
result = true;
return true;
}
if (FalseLiteral.Equals(value,StringComparison.OrdinalIgnoreCase)) {
result = false;
return true;
}
// Special case: Trim whitespace as well as null characters.
value = TrimWhiteSpaceAndNull(value);
if (TrueLiteral.Equals(value, StringComparison.OrdinalIgnoreCase)) {
result = true;
return true;
}
if (FalseLiteral.Equals(value,StringComparison.OrdinalIgnoreCase)) {
result = false;
return true;
}
return false;
}

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22:22
ValHallASW schreef op zondag 01 februari 2015 @ 18:57:
Nee, want ze zijn semantisch wel degelijk verschillend. De ene false is 'de waarde die teruggegeven wordt als het parsen mislukt', de andere false is 'de waarde die teruggegeven wordt als de waarde false is'.
Dat is een puur filosofisch onderscheid; het is dezelfde waarde die je in beide gevallen teruggeeft, dus die hoef je dan niet nog eens te overschrijven.
Dat neem niet weg dat het gek is dat de compiler de extra assignments niet wegoptimaliseert...
Ik weet eerlijk gezegd niet precies wat de semantics zijn von out-parameters in C#. Zijn het extra return values, of references? In het tweede geval kan de compiler die optimalisatie niet uitvoeren omdat het in theorie mogelijk is dat String.Equals() die variabele tussendoor overschrijft.

Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 08-09 11:33
Ik vermoed omdat er ook het ref keyword is in C# dat het extra return values zijn. Maar 100% zeker weten doen ik het niet.

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Het zijn onder water gewoon references, je kan er ook niet op overloaden. Maar je mag ze van de compiler niet lezen voor je ze schrijft, en ze moeten verplicht geschreven worden voor de functie retourneert.

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
using System;
using System.Threading;

namespace CsTest
{
    class Program
    {
        static AutoResetEvent evtMain = new AutoResetEvent(false), evtThread = new AutoResetEvent(false);

        static void Foo(out int i)
        {
            i = 1;
            evtMain.Set();
            evtThread.WaitOne();
            Console.WriteLine(i);
            i = 3;
            evtMain.Set();
            evtThread.WaitOne();
        }

        static void Main(string[] args)
        {
            int i = 0;
            Console.WriteLine(i);

            Thread t = new Thread(() => Foo(out i));
            t.Start();

            evtMain.WaitOne();
            Console.WriteLine(i);
            i = 2;

            evtThread.Set();
            evtMain.WaitOne();
            Console.WriteLine(i);

            evtThread.Set();

        }
    }
}


Dit print gewoon 0, 1, 2, 3. Maar volgens mij mag je daar niet op rekenen.

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!

  • DeluxZ
  • Registratie: Augustus 2003
  • Laatst online: 15-09 11:49

DeluxZ

Livin' the good life

Schaamteloze repost vanuit de Devschuur..

--------------------------
Yes, we hebben er weer een gevonden. Bezig met een project wat we overgenomen hebben van een andere partij... :'(

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
[Serializable]
public class CreatePrizeViewModel
{
    [Required]
    public string Text { get; set; }
    [Required]
    public string Title { get; set; }
    [Required]
    public string Description { get; set; }
    [Required]
    public string SocialText { get; set; }
    [Required]
    public string StartDateTime { get; set; }
    [Required]
    public string EndDateTime { get; set; }
    [Required]
    [Range(0, Int64.MaxValue)]
    public int NumberOfPrizes { get; set; }
    [Required]
    public string Value { get; set; }
    public bool IsPublished { get; set; }
    [Required]
    public string SelectedPage { get; set; }
    [Required]
    public HttpPostedFileBase Photo { get; set; }
}


C#:
1
2
3
4
5
6
7
8
[HttpPost]
public async Task<ActionResult> Create(CreatePrizeViewModel model)
{
    DateTime startDateTime, endDateTime;
    if (!GetDateTimeFromString(model.StartDateTime, out startDateTime))
        ModelState.AddModelError("StartDateTime", new Exception("Invalid date and time, please supply a valid value"));
    if (!GetDateTimeFromString(model.EndDateTime, out endDateTime))
        ModelState.AddModelError("EndDateTime", new Exception("Invalid date and time, please supply a valid value"));


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
private bool GetDateTimeFromString(string input, out DateTime result)
{
    try
    {
        var splitDateAndTime = input.Split(' ');
        var splittedDate = splitDateAndTime[0].Split('/');
        var splittedTime = splitDateAndTime[1].Split(':');

        var day = int.Parse(splittedDate[0]);
        var month = int.Parse(splittedDate[1]);
        var year = int.Parse(splittedDate[2]);
        var hour = int.Parse(splittedTime[0]);
        var min = int.Parse(splittedTime[1]);

        result = new DateTime(year, month, day, hour, min, 0);
    }
    catch (Exception ex)
    {
        result = DateTime.MinValue;
        return false;
    }

    return true;
}


8)7 :F 8)7 :F 8)7 :F 8)7 :F 8)7 :F 8)7 :F 8)7 :F 8)7 :F 8)7 :F 8)7 :F 8)7 :F 8)7 :F 8)7 :F 8)7 :F

]|[ Apple Macbook Pro Retina 13" ]|[


Acties:
  • 0 Henk 'm!

  • Styxxy
  • Registratie: Augustus 2009
  • Laatst online: 15:09
Want DateTime.TryParse is te moeilijk :D .

Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
Styxxy schreef op woensdag 04 februari 2015 @ 16:55:
Want DateTime.TryParse is te moeilijk :D .
DateTime.TryParse goed doen is nog niet helemaal triviaal. Een simpele
C#:
1
return DateTime.TryParse(input)


doet namelijk niet wat je wilt, en de documentatie uitpluizen tot je de goede variant te pakken hebt is nog niet helemaal triviaal.

spoiler:
Je moet namelijk ook de juiste CultureInfo meegeven, want anders wordt je datum opeens anders geïnterpreteerd als de landinstellingen van Windows anders staan... en dat is waarschijnlijk niet wat je wilt als je zo'n specifiek formaat aan het parsen bent. Dan kom je dus uit op iets als

[code=csharp]
CultureInfo nlNL = new CultureInfo("nl-NL");
return DateTime.TryParseExact(dateString, "d/M/yyyy H:m", nlNL, DateTimeStyles.None, out result);
[/code]

maar ik weet niet zeker of je daarmee alle relevante mogelijkheden (moet '04/02' ook werken, of alleen '4/2', of juist alleen '04/02'?) te pakken hebt.

[ Voor 42% gewijzigd door ValHallASW op 04-02-2015 17:07 ]


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 17:15

Haan

dotnetter

C#:
1
2
[Range(0, Int64.MaxValue)]
public int NumberOfPrizes { get; set; }

is ook wel een interessante range restrictie :P

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • DeluxZ
  • Registratie: Augustus 2003
  • Laatst online: 15-09 11:49

DeluxZ

Livin' the good life

Haan schreef op donderdag 05 februari 2015 @ 09:44:
C#:
1
2
[Range(0, Int64.MaxValue)]
public int NumberOfPrizes { get; set; }

is ook wel een interessante range restrictie :P
Haha, ja dat is al veranderd naar Int16.MaxValue...

]|[ Apple Macbook Pro Retina 13" ]|[


Acties:
  • 0 Henk 'm!

  • afraca
  • Registratie: April 2009
  • Laatst online: 13-08 16:46

afraca

Open Source!

Ik vind dit stuk code zo heerlijk, heb er echt minutenlang om moeten lachen:

Python:
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
x = 23493
 
 
class SquareRootResult(Exception):
    def __init__(self, number, sqrt):
        self.number = number
        self.sqrt = sqrt
 
 
def Iterate(x, guess):
    guessedX = guess * guess
 
    difference = x - guessedX
    if difference > -0.0001 and difference < 0.0001:
        raise SquareRootResult(number=x, sqrt=guess)
 
    newGuess = 0.5 * (guess + (x / guess))
    return newGuess
 
 
def GetInitialGuess(x):
    # Unimportant code. From Wikipedia:
    # "one starts with an initial guess which is reasonably close to the true root"
    import math
    return math.sqrt(x)
 
 
numIterations = 0
 
try:
    guess = GetInitialGuess(x)
    while True:
        numIterations += 1
        guess = Iterate(x, guess)
except SquareRootResult as e:
    print "Square root of", e.number, "is", e.sqrt, "in", numIterations, "iterations."
except:
    print "This number has no square root after",  numIterations, "iterations."


De pracht van de comment `unimportant code` is mijn favoriet. En daarnaast natuurlijk de gekke control flow met Exception mishandeling.

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


Acties:
  • 0 Henk 'm!

  • WernerL
  • Registratie: December 2006
  • Laatst online: 21:48
The fuck... :F
En zie ik goed dat x en guess bij iedere iteratie in de while true loop gelijk blijven?
Wat betekend dat hij continue dezelfde sqrt uitrekent.

En die try catch block.. _O-

Roses are red, violets are blue, unexpected '{' on line 32.


Acties:
  • 0 Henk 'm!

  • Firesphere
  • Registratie: September 2010
  • Laatst online: 16-09 09:06

Firesphere

Yoshis before Hoshis

WernerL schreef op zaterdag 14 februari 2015 @ 21:39:
The fuck... :F
En zie ik goed dat x en guess bij iedere iteratie in de while true loop gelijk blijven?
Wat betekend dat hij continue dezelfde sqrt uitrekent.

En die try catch block.. _O-
Nee, want x wordt geupdate in de iterate, dus na de aanroep is x verandert, dus is de aanroep iterate(x) gewoon een iteratie met een nieuwe x

I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!


Acties:
  • 0 Henk 'm!

  • WernerL
  • Registratie: December 2006
  • Laatst online: 21:48
x wordt op regel 1 geinitialiseerd, ik zie nergens een regel code staan waar x een nieuwe waarde krijgt na regel 1. Of ik kijk er gigantisch overheen. :-)

//edit
guess wordt wel geupdate. Maar dat maakt de code niet minder WTF. :P

[ Voor 20% gewijzigd door WernerL op 14-02-2015 21:43 ]

Roses are red, violets are blue, unexpected '{' on line 32.


Acties:
  • 0 Henk 'm!

  • Firesphere
  • Registratie: September 2010
  • Laatst online: 16-09 09:06

Firesphere

Yoshis before Hoshis

Ow ja, ik keek er ook even overheen, x blijft inderdaad hetzelfde :F

I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!


Acties:
  • 0 Henk 'm!

  • NESFreak
  • Registratie: December 2009
  • Laatst online: 19:57
afraca schreef op zaterdag 14 februari 2015 @ 21:22:
Ik vind dit stuk code zo heerlijk, heb er echt minutenlang om moeten lachen:

De pracht van de comment `unimportant code` is mijn favoriet. En daarnaast natuurlijk de gekke control flow met Exception mishandeling.
In wat voor context ben je deze code tegengekomen als ik vragen mag? Ik reken m'n wortels altijd met de volgende functie uit trouwens ;-)
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
float Q_rsqrt( float number )
{
    long i;
    float x2, y;
    const float threehalfs = 1.5F;
 
    x2 = number * 0.5F;
    y  = number;
    i  = * ( long * ) &y;                       // evil floating point bit level hacking
    i  = 0x5f3759df - ( i >> 1 );               // what the fuck?
    y  = * ( float * ) &i;
    y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
//      y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed
 
    return y;
}

Acties:
  • 0 Henk 'm!

  • WernerL
  • Registratie: December 2006
  • Laatst online: 21:48
Aah hij heeft Newton's method gebruikt. http://webcache.googleuse...&cd=1&hl=nl&ct=clnk&gl=nl :+

Daar staat inderdaad de regel "one starts with an initial guess". Dat Math.sqrt() in Python al een correcte uitkomst geeft was de desbetreffende auteur niet van op de hoogte blijkbaar. Ik ben ook wel benieuwd waar dit prachtig stukje prorgammeerstukje vandaan komt... :D

Roses are red, violets are blue, unexpected '{' on line 32.


Acties:
  • 0 Henk 'm!

  • afraca
  • Registratie: April 2009
  • Laatst online: 13-08 16:46

afraca

Open Source!

Mooi dat jullie er ook een beetje van kunnen genieten. Maar de eerlijkheid gebied mij te zeggen dat ik dit niet in de praktijk ben tegengekomen, maar op:
http://www.reddit.com/r/s...oot_finder_running_in_o1/

Dus inderdaad Newton's methode voor sqrt. Maar als je inderdaad zo kiest voor je initial guess, dan slaat de rest nergens meer op. :+

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


Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 22:03

RayNbow

Kirika <3

afraca schreef op zaterdag 14 februari 2015 @ 22:53:
Maar als je inderdaad zo kiest voor je initial guess, dan slaat de rest nergens meer op. :+
Dat hangt natuurlijk af van hoe goed de implementatie van Python's sqrt is. :+

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • afraca
  • Registratie: April 2009
  • Laatst online: 13-08 16:46

afraca

Open Source!

Zolang we niet de complete code hebben, kunnen er nog veel spannendere dingen gebeuren dan dat de implementatie van Python niet precies genoeg is:

Python: awesome_math.py
1
2
def sqrt(x):
    return 42


Python:
1
2
3
4
import sys
sys.modules['math'] = __import__['awesome_math']

import math


>:)

RayNbow , je bent wel een beetje ambigu. Er is natuurlijk niet DE Python implementatie, wel die van CPython (wrapper naar de standaard C implementatie (welke standaard? :o ) ) , PyPy, Jython, IronPython enz.

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


Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 22:03

RayNbow

Kirika <3

afraca schreef op zondag 15 februari 2015 @ 09:34:
Zolang we niet de complete code hebben, kunnen er nog veel spannendere dingen gebeuren dan dat de implementatie van Python niet precies genoeg is:

Python: awesome_math.py
1
2
def sqrt(x):
    return 42
Die implementatie is nauwkeurig genoeg, imho. :p

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

NESFreak schreef op zaterdag 14 februari 2015 @ 22:27:
[...]


In wat voor context ben je deze code tegengekomen als ik vragen mag? Ik reken m'n wortels altijd met de volgende functie uit trouwens ;-)
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
float Q_rsqrt( float number )
{
    long i;
    float x2, y;
    const float threehalfs = 1.5F;
 
    x2 = number * 0.5F;
    y  = number;
    i  = * ( long * ) &y;                       // evil floating point bit level hacking
    i  = 0x5f3759df - ( i >> 1 );               // what the fuck?
    y  = * ( float * ) &i;
    y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
//      y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed
 
    return y;
}
Die zat ook in Quake 1. Tegenwoordig is het hopeloos inefficient.

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!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 18-09 00:51

F.West98

Alweer 16 jaar hier

Java:
1
2
3
4
5
6
7
private void someFunc(double mean) {
/**/
double EX = mean;
int k;
for(k=0;k+1 <= EX;k++);
/* iets met k */
}

En ik maar denken dat die ';' per ongeluk was en het stuk erna geloopt moest worden. Maar niets is minder waar.

:'(

[ Voor 3% gewijzigd door F.West98 op 20-02-2015 09:52 ]

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • boe2
  • Registratie: November 2002
  • Niet online

boe2

'-')/

.oisyn schreef op zondag 15 februari 2015 @ 10:03:
[...]


Die zat ook in Quake 1. Tegenwoordig is het hopeloos inefficient.
Echt? Ik heb onlangs nog eens met vectors zitten spelen in een ingame scripting taal (Wildstar) en had in iedere frame de afstand tussen twee punten nodig. Ik dacht dit dit de heilige graal was om snel de sqrt te berekenen :|

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind.' - Pratchett.


Acties:
  • 0 Henk 'm!

  • NESFreak
  • Registratie: December 2009
  • Laatst online: 19:57
boe2 schreef op vrijdag 20 februari 2015 @ 10:07:
[...]

Echt? Ik heb onlangs nog eens met vectors zitten spelen in een ingame scripting taal (Wildstar) en had in iedere frame de afstand tussen twee punten nodig. Ik dacht dit dit de heilige graal was om snel de sqrt te berekenen :|
Zeker in een scripttaal wil je in principe altijd te build-ins gebruiken. Kijk even of je scripttaal een functie heeft die de norm van een vector voor je kan berekenen (of zelfs vectoren kan normalizeren, mocht dat je uiteindelijke doel zijn). Doordat je scripttaal per regel waarschijnlijk 1000 checks en casts doet (zeker als het interprented is), is minder code over het algemeen een stuk sneller.

fast_rsqrt(x) is een stukje code van voordat SSE instructies gemeengoed waren. Mocht je C(++) code hebben dan zijn gewone rsqrt statements samen met -O3 -ffastmath waarschijnlijk iets sneller.(citation needed)

Acties:
  • 0 Henk 'm!

  • hellfighter87
  • Registratie: Mei 2008
  • Laatst online: 13:15
humh :/

PHP:
1
2
3
function replace($str,$search,$replace) {
    return str_replace($search,$replace,$str);
}

[ Voor 6% gewijzigd door hellfighter87 op 20-02-2015 13:03 ]


Acties:
  • 0 Henk 'm!

  • Merethil
  • Registratie: December 2008
  • Laatst online: 15:34
hellfighter87 schreef op vrijdag 20 februari 2015 @ 13:01:
humh :/

PHP:
1
2
3
function replace($str,$search,$replace) {
    return str_replace($search,$replace,$str);
}
Deze is tenminste in de juiste volgorde! ;)

Acties:
  • 0 Henk 'm!

  • aap
  • Registratie: Januari 2008
  • Laatst online: 17-09 09:50

aap

NESFreak schreef op vrijdag 20 februari 2015 @ 10:57:
fast_rsqrt(x) is een stukje code van voordat SSE instructies gemeengoed waren. Mocht je C(++) code hebben dan zijn gewone rsqrt statements samen met -O3 -ffastmath waarschijnlijk iets sneller.(citation needed)
Ik wed dat die SSE instructie precies hetzelfde doet als fast_sqrt, maar dan in hardware!

Acties:
  • 0 Henk 'm!

  • Fordox
  • Registratie: Maart 2011
  • Laatst online: 13:05

Fordox

00101010

De beste wachttijd in assembly ooit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop

Edit: Ik gebruik de edit-knop vaak.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

boe2 schreef op vrijdag 20 februari 2015 @ 10:07:
[...]

Echt? Ik heb onlangs nog eens met vectors zitten spelen in een ingame scripting taal (Wildstar) en had in iedere frame de afstand tussen twee punten nodig.
Elke frame maarliefst, nou nou ;). Met 60 fps (16,7ms per frame) op een 3GHz CPU heb je 50 miljoen cycles te besteden, denk je nou echt dat die paar cycles die je eventueel kunt winnen het verschil maken?

Het is traag omdat je een integer load doet na een floating point store, dat leidt tot een pipeline flush en dus een enorme stall. Het kan wel snel zijn, maar dan moet je het volledig in SSE uitvoeren (dan kun je de int en float operaties op hetzelfde register doen), maar dan kun je net zo goed de rsqrt instructie zelf gebruiken.

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.


  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 18-09 00:51

F.West98

Alweer 16 jaar hier

Een lijst bijhouden met verschillende objecten die uiteindelijk allemaal een view uitspugen. Wat doe je dan?
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
private int FIRSTTYPE = 1;
private int SECONDTYPE = 2;
/*****/
private List<FirstType> firstTypeList;
private List<SecondType> secondTypeList;
private List<Integer> elementsList;

public void render() {
    /** Get views **/
    int firstTypeIndex, secondTypeIndex = 0;
    for(int type : elementsList) {
        switch(type) {
            case FIRSTTYPE: {
                FirstType element = firstTypeList.get(firstTypeIndex);
                firstTypeIndex++;
                doSomethingWith(element.getView());
            }
            case SECONDTYPE: {
                SecondType element = secondTypeList.get(secondTypeIndex);
                secondTypeIndex++;
                doSomethingWith(element.getView());
            }
        }
    }
}


Natuurlijk niet iets met een abstract class of anders een interface die wordt geëxtend/geïmplementeerd. Dat zou te gemakkelijk zijn.

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 18-09 00:51

F.West98

Alweer 16 jaar hier

Vergeet de vorige post. Dit is echt enorm erg. ;( :F |:( 8)7 :X
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private void loop1() {
    try {
        loop2();
    } catch(StackOverflowError e) {
        loop1();
    }
}
private void loop2() {
    loop2();
}
public void wait() {
    try {
        loop1();
    } catch(StackOverflowError e) {
    }
}

Ik durf dit niet eens te runnen :X

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 15:48
F.West98 schreef op vrijdag 27 februari 2015 @ 02:21:
Vergeet de vorige post. Dit is echt enorm erg. ;( :F |:( 8)7 :X
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private void loop1() {
    try {
        loop2();
    } catch(StackOverflowError e) {
        loop1();
    }
}
private void loop2() {
    loop2();
}
public void wait() {
    try {
        loop1();
    } catch(StackOverflowError e) {
    }
}

Ik durf dit niet eens te runnen :X
En de medewerker die dit gemaakt heeft is nog in dienst? Of is dit een 'testje' ? Kan mij niet indenken waarom je dit soort code zou kunnen implementeren zonder zelf door te hebben dat dit nog niet helemaal de bedoeling is.

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • boe2
  • Registratie: November 2002
  • Niet online

boe2

'-')/

F.West98 schreef op vrijdag 27 februari 2015 @ 02:21:
Vergeet de vorige post. Dit is echt enorm erg. ;( :F |:( 8)7 :X
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private void loop1() {
    try {
        loop2();
    } catch(StackOverflowError e) {
        loop1();
    }
}
private void loop2() {
    loop2();
}
public void wait() {
    try {
        loop1();
    } catch(StackOverflowError e) {
    }
}

Ik durf dit niet eens te runnen :X
Lijkt me geschreven om bewust je pc te saboteren :?

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind.' - Pratchett.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Waarom? Er gebeurt niets hoor. Er gaat een thread out of stack space, daar merk je als gebruiker niets van.

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!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 18-09 00:51

F.West98

Alweer 16 jaar hier

Onderdeel van een OS projectje ergens op Github die ik wilde gebruiken in mijn app... Nu toch maar eens verder zoeken.

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
.oisyn schreef op vrijdag 27 februari 2015 @ 10:36:
Waarom? Er gebeurt niets hoor. Er gaat een thread out of stack space, daar merk je als gebruiker niets van.
Dit had je op de PS3 moeten kunnen doen, dan wist je tenminste zeker dat je maar 256K stackspace nodig had op het moment dat de stackspace als last-resort ineens verlaagd moest worden :+ (in plaats van willekeurig de heap te corrupten).

Acties:
  • 0 Henk 'm!

Verwijderd

-

[ Voor 99% gewijzigd door Verwijderd op 05-09-2023 11:17 ]


Acties:
  • 0 Henk 'm!

  • Haijo
  • Registratie: Februari 2006
  • Laatst online: 21-09-2024
Mag ik deze aandragen?

Java:
1
public static final int HUNDRED_AND_FIFTY_FOUR = 153;

Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 22:03

RayNbow

Kirika <3

Haijo schreef op dinsdag 03 maart 2015 @ 19:24:
Mag ik deze aandragen?

Java:
1
public static final int HUNDRED_AND_FIFTY_FOUR = 153;
Wat als dit gebruikt wordt om een item in een array te adresseren maar in het domein men bij 1 begint te tellen? :p

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • Haijo
  • Registratie: Februari 2006
  • Laatst online: 21-09-2024
1) Hij wordt nergens gebruikt
2) Deze applicatie zit vol met constanten die <GETAL> heten en <GETAL> bevatten.
Java:
1
2
3
public static final int ONE = 1;
public static final int TWO = 2;
public static final int TWENTY = 20;


Maar ook strings en chars hebben dat:
Java:
1
2
3
public static final String SPACE=" ";
public static final String COMMA=",";
public static final String COMMA_SPACE=", ";


enzovoorts, enzovoorts. Mijn senior heeft het idee dat gedaan is om Sonar waarschuwingen over magic numbers te onderdrukken. Iets met klok en klepel dus. :X

Acties:
  • 0 Henk 'm!

  • mitchdc
  • Registratie: December 2004
  • Laatst online: 09-07 11:47
(jarig!)
Ik begon bij een nieuw bedrijf en opende een project...

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const string ITEM = "<li><a href=\"{0}\">{1}</a></li>";

    protected void Page_Load(object sender, EventArgs e)
    {
        StringBuilder sb = new StringBuilder();

        using (DataConnection conn = new DataConnection(PublicationScope.Published))
        {
            IEnumerable<Layout.Navigation.BottomLink> bottomlinks = conn.Get<Layout.Navigation.BottomLink>().OrderBy(b => b.Position);

            foreach (Layout.Navigation.BottomLink link in bottomlinks)
            {
                PageNode node = conn.SitemapNavigator.GetPageNodeById(link.Page);
                if(node != null)
                    sb.AppendLine(string.Format(ITEM, node.Url, node.MenuTitle));
            }
        }

        lit_footernavigation.Text = sb.ToString();
    }


ASP.NET Webforms.

Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Hij gebruikt een StringBuilder, beter dan string d:)b

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


Acties:
  • 0 Henk 'm!

  • Jerrythafast
  • Registratie: September 2012
  • Laatst online: 21:12
Haijo schreef op woensdag 04 maart 2015 @ 11:06:
Maar ook strings en chars hebben dat:
Java:
1
2
3
public static final int SPACE=" ";
public static final int COMMA=",";
public static final int COMMA_SPACE=", ";
Zijn dat geldige ints? :?

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

In C wel als je enkele quotes gebruikt ;)

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!

  • roeleboel
  • Registratie: Maart 2006
  • Niet online

roeleboel

en zijn beestenboel

.oisyn schreef op woensdag 04 maart 2015 @ 19:51:
In C wel als je enkele quotes gebruikt ;)
Daar geloof ik niets van voor de derde uit die reeks :)

Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb mezelf vandaag betrapt op dit stukje code. Ik schaam me.... diep......

code:
1
seoComp[field].isChanged = (seoComp[field].newVal != seoComp[field].oldVal ? true : false );

[ Voor 6% gewijzigd door Verwijderd op 04-03-2015 21:12 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

roeleboel schreef op woensdag 04 maart 2015 @ 20:20:
[...]


Daar geloof ik niets van voor de derde uit die reeks :)
Dan geloof je dat toch niet :). Het resultaat is overigens implementation-defined in die zin dat de volgorde van chars in de int niet vast staat. Onder gcc en msvc++ op x86 komt er 0x202c uit.

[ Voor 6% gewijzigd door .oisyn op 04-03-2015 21:25 ]

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!

  • Haijo
  • Registratie: Februari 2006
  • Laatst online: 21-09-2024
Haha, goed gezien. Koppiepastafaalactie. In onze applicatie zijn het natuurlijk strings. :)

Acties:
  • 0 Henk 'm!

  • Stukfruit
  • Registratie: Oktober 2007
  • Niet online
Verwijderd schreef op woensdag 04 maart 2015 @ 21:11:
Ik heb mezelf vandaag betrapt op dit stukje code. Ik schaam me.... diep......

code:
1
seoComp[field].isChanged = (seoComp[field].newVal != seoComp[field].oldVal ? true : false );
Als er drank in het spel was dan mag het nog hoor. Gewoon net iets te ver over de curve. Heeft iedereen wel eens 8)

[ Voor 8% gewijzigd door Stukfruit op 04-03-2015 23:01 ]

Dat zit wel Schnorr.


Acties:
  • 0 Henk 'm!

Verwijderd

Geen drank in het spel. Stukje code vorige week geschreven, gisteren kwam ik er langs en zag direct 'hey, dat klopt niet...'

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22:22
Nou ja, het klopt tenminste wel. Lelijke code die werkt is nog altijd beter dan code die niet werkt.

Acties:
  • 0 Henk 'm!

  • svenhof
  • Registratie: Juli 2011
  • Laatst online: 20-06 08:22
Kwam dit tegen om een woord in full caps om te zetten in proper casing.

SQL:
1
2
 
SET upper(substring(UserFirst_Name, 1,1)) + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(substring(lower(UserFirst_Name), 2,9000), ' a', ' A'), ' b', ' B'), ' c', ' C'), ' d', ' D'), ' e', ' E'), ' f', ' F'), ' g', ' G'), ' h', ' H'), ' i', ' I'), ' j', ' J'), ' k', ' K'), ' l', ' L'), ' m', ' M'), ' n', ' N'), ' o', ' O'), ' p', ' P'), ' q', ' Q'), ' r', ' R'), ' s', ' S'), ' t', ' T'), ' u', ' U'), ' v', ' V'), ' w', ' W'), ' x', ' X'), ' y', ' Y'), ' z', ' Z') end  

[ Voor 7% gewijzigd door svenhof op 05-03-2015 15:08 ]


Acties:
  • 0 Henk 'm!

  • Firesphere
  • Registratie: September 2010
  • Laatst online: 16-09 09:06

Firesphere

Yoshis before Hoshis

svenhof schreef op donderdag 05 maart 2015 @ 15:08:
Kwam dit tegen om een woord in full caps om te zetten in proper casing.

SQL:
1
2
 
SET upper(substring(UserFirst_Name, 1,1)) + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(substring(lower(UserFirst_Name), 2,9000), ' a', ' A'), ' b', ' B'), ' c', ' C'), ' d', ' D'), ' e', ' E'), ' f', ' F'), ' g', ' G'), ' h', ' H'), ' i', ' I'), ' j', ' J'), ' k', ' K'), ' l', ' L'), ' m', ' M'), ' n', ' N'), ' o', ' O'), ' p', ' P'), ' q', ' Q'), ' r', ' R'), ' s', ' S'), ' t', ' T'), ' u', ' U'), ' v', ' V'), ' w', ' W'), ' x', ' X'), ' y', ' Y'), ' z', ' Z') end  
:X

I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!


Acties:
  • 0 Henk 'm!

  • roeleboel
  • Registratie: Maart 2006
  • Niet online

roeleboel

en zijn beestenboel

svenhof schreef op donderdag 05 maart 2015 @ 15:08:
Kwam dit tegen om een woord in full caps om te zetten in proper casing.

SQL:
1
2
 
SET upper(substring(UserFirst_Name, 1,1)) + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(substring(lower(UserFirst_Name), 2,9000), ' a', ' A'), ' b', ' B'), ' c', ' C'), ' d', ' D'), ' e', ' E'), ' f', ' F'), ' g', ' G'), ' h', ' H'), ' i', ' I'), ' j', ' J'), ' k', ' K'), ' l', ' L'), ' m', ' M'), ' n', ' N'), ' o', ' O'), ' p', ' P'), ' q', ' Q'), ' r', ' R'), ' s', ' S'), ' t', ' T'), ' u', ' U'), ' v', ' V'), ' w', ' W'), ' x', ' X'), ' y', ' Y'), ' z', ' Z') end  
Vooral briljant omdat ze de functie 'lower' wel kennen, maar 'upper' duidelijk niet...
.oisyn schreef op woensdag 04 maart 2015 @ 21:23:
[...]

Dan geloof je dat toch niet :). Het resultaat is overigens implementation-defined in die zin dat de volgorde van chars in de int niet vast staat. Onder gcc en msvc++ op x86 komt er 0x202c uit.
Om het met de woorden van Loekie te zeggen: asjemenou... Ik moet mijn geloof blijkbaar bijstellen...

[ Voor 18% gewijzigd door roeleboel op 05-03-2015 15:36 ]


Acties:
  • 0 Henk 'm!

  • TheDevilOnLine
  • Registratie: December 2012
  • Laatst online: 06-06 22:54
-- nvm

[ Voor 101% gewijzigd door TheDevilOnLine op 05-03-2015 15:47 ]


Acties:
  • 0 Henk 'm!

  • afraca
  • Registratie: April 2009
  • Laatst online: 13-08 16:46

afraca

Open Source!

offtopic:
Ik moet m'n leven herzien, ik ging dit parsen als een (long) option :F

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


Acties:
  • 0 Henk 'm!

  • Acid_Burn
  • Registratie: Augustus 2001
  • Laatst online: 13:27

Acid_Burn

uhuh

roeleboel schreef op donderdag 05 maart 2015 @ 15:34:
[...]

Vooral briljant omdat ze de functie 'lower' wel kennen, maar 'upper' duidelijk niet...
'upper' is het 2e woord van het commando :P

Glass Eye Photography | Zelfbouw wireless fightstick | Mijn puzzel site


Acties:
  • 0 Henk 'm!

  • roeleboel
  • Registratie: Maart 2006
  • Niet online

roeleboel

en zijn beestenboel

Acid_Burn schreef op donderdag 05 maart 2015 @ 16:31:
[...]
'upper' is het 2e woord van het commando :P
ik was te verblind door al de replace's om mij dat nog te realizeren :) - dat maakt het zelfs des te erger 8)7

[ Voor 7% gewijzigd door roeleboel op 05-03-2015 16:50 ]


Acties:
  • 0 Henk 'm!

  • Damic
  • Registratie: September 2003
  • Laatst online: 20:43

Damic

Tijd voor Jasmijn thee

Ik kwam het volgende juist tegen in een kalender functie, volgens mij ergens diep in de nacht geschreven maar het doet wat het moet doen :Y
PHP:
1
2
3
4
5
6
7
8
9
10
11
$start_tel=1;
/** Make empty boxes before the first day **/
    if($start_tel==1)
    {
        $template->assign_block_vars('CAL_BOX',array('week'=>date ("W", mktime (0,0,0,$month,$start_tel,$year)),));
        for ($i=0; $i<=$start_day; $i++)
        {
            $start_tel++;
            $template->assign_block_vars('CAL_E',array());
        }
    }
8)7
*Ik zien jusit dat ik start_tel wat verder gebruik, maar waarom die if :/

[ Voor 7% gewijzigd door Damic op 05-03-2015 21:22 ]

Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 18-09 00:51

F.West98

Alweer 16 jaar hier

Java:
1
2
3
4
5
6
7
8
9
10
private String[] states = ["state1", "state2", "state3"];

public void drawWindow(int state) {
/**/
switch(states[state]) {
    case "state1": {}
    case "state2": {}
    case "state3": {}
}
}

:F

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • ajakkes
  • Registratie: Maart 2004
  • Laatst online: 16-05 22:32

ajakkes

👑

Damic schreef op donderdag 05 maart 2015 @ 21:19:
Ik kwam het volgende juist tegen in een kalender functie, volgens mij ergens diep in de nacht geschreven maar het doet wat het moet doen :Y
PHP:
1
2
3
4
5
6
7
8
9
10
11
$start_tel=1;
/** Make empty boxes before the first day **/
    if($start_tel==1)
    {
        $template->assign_block_vars('CAL_BOX',array('week'=>date ("W", mktime (0,0,0,$month,$start_tel,$year)),));
        for ($i=0; $i<=$start_day; $i++)
        {
            $start_tel++;
            $template->assign_block_vars('CAL_E',array());
        }
    }
8)7
*Ik zien jusit dat ik start_tel wat verder gebruik, maar waarom die if :/
If (true) {

} ter voorbereiding van een verbetering die je al aan ziet komen maar nog niet gevraagd is.

Het ziet er uit alsof je een loopje van plan was maar niet nodig bleek.

👑


Acties:
  • 0 Henk 'm!

  • Damic
  • Registratie: September 2003
  • Laatst online: 20:43

Damic

Tijd voor Jasmijn thee

Ik denk eerder de late uurtjes en vergeten weg te doen.

Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag


Acties:
  • 0 Henk 'm!

  • Ralph Smeets
  • Registratie: September 2000
  • Laatst online: 16-09 13:21

Ralph Smeets

sinds 10-7-2009

Een collega vroeg net aan de junior java developers wat er mis is met de volgende code die hij tegenkwam in een project:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
    public ArrayList<Category> categories;

    public ArrayList<Category> getTopCategories(int numberOfItems) {
         ArrayList<Category> returnList = new ArrayList<Category>();
         if (categories != null) {                           
             int counter = 0;
             while (counter < numberOfItems) {
                 counter++;
                 returnList.add(categories.get(counter));
             }
         }
         return returnList;
     }

Het erge is dat deze code waarschijnlijk niet eens door een junior is geschreven :X :X :X

spoiler:
Behalve de nullpointerexception die je krijgt als meer categorieën vraagt als er zijn, een variable genaamd counter gebruiken als een index, noem hem dan ook gewoon index, had de schrijver op zijn minst gebruik moeten maken van een iterator om door de lijst te lopen. Maar wist hij of zij van het bestaan van een iterator af, dan wist hij of zij ook dat hetzelfde bereikt kon worden met de method sublist, bijvoorbeeld:
public ArrayList<Category> categories;

public ArrayList<Category> getTopCategories(int numberOfItems) {
return categories.subList(0,( numberOfItems > categories.size() ? categories.size() : numberOfItems) -1);
}


Mestreechs volksleed:
Jao diech höbs us aon 't hart gelege, Mestreech door alle ieuwe heer
Veer bleve diech altied genege, En deilde dreufheid en plezeer....etc.


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 18-09 00:51

F.West98

Alweer 16 jaar hier

Dan hou ik toch wel weer van C#/.NET:
C#:
1
2
3
4
private List<Category> categories;
public List<Category> getTopCategories(int number) {
    return categories.Take(number);
}

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 23:21
Vraag is of je in C# überhaupt nog wel een methode wil schrijven aangezien categories in het voorbeeld public is ;)

Acties:
  • 0 Henk 'm!

  • Ralph Smeets
  • Registratie: September 2000
  • Laatst online: 16-09 13:21

Ralph Smeets

sinds 10-7-2009

Die natuurlijk ook nog :)


Mestreechs volksleed:
Jao diech höbs us aon 't hart gelege, Mestreech door alle ieuwe heer
Veer bleve diech altied genege, En deilde dreufheid en plezeer....etc.


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 18-09 00:51

F.West98

Alweer 16 jaar hier

Caelorum schreef op maandag 09 maart 2015 @ 17:15:
Vraag is of je in C# überhaupt nog wel een methode wil schrijven aangezien categories in het voorbeeld public is ;)
Daarom had ik 'm private gemaakt :+

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • WernerL
  • Registratie: December 2006
  • Laatst online: 21:48
Ik ben eens door mijn backups aan het bladeren die op een externe schijf staan, kom ik hele oude code tegen.
PHP:
1
2
3
4
5
6
7
8
9
$emailadres = $_POST['emailadres'];

$sql = mysql_query("SELECT * FROM nieuwsbrief_adressen WHERE emailadres = '$emailadres'");
if(mysql_num_rows($sql) > 0){
    $layout = str_replace("{content}", "U bent al aangemeld voor de nieuwsbrief.", $layout);
}else {
    mysql_query("INSERT INTO nieuwsbrief_adressen (emailadres) VALUES ('$emailadres')") or die(mysql_error());
    $layout = str_replace("{content}", "Het emailadres <b>" . $emailadres . "</b> is aangemeld voor de nieuwsbrief.", $layout);
}


:X

Roses are red, violets are blue, unexpected '{' on line 32.


Acties:
  • 0 Henk 'm!

  • Hatsieflatsie
  • Registratie: Oktober 2011
  • Laatst online: 15-09 10:32
WernerL schreef op donderdag 19 maart 2015 @ 19:37:
Ik ben eens door mijn backups aan het bladeren die op een externe schijf staan, kom ik hele oude code tegen.
PHP:
1
2
3
4
5
6
7
8
9
$emailadres = $_POST['emailadres'];

$sql = mysql_query("SELECT * FROM nieuwsbrief_adressen WHERE emailadres = '$emailadres'");
if(mysql_num_rows($sql) > 0){
    $layout = str_replace("{content}", "U bent al aangemeld voor de nieuwsbrief.", $layout);
}else {
    mysql_query("INSERT INTO nieuwsbrief_adressen (emailadres) VALUES ('$emailadres')") or die(mysql_error());
    $layout = str_replace("{content}", "Het emailadres <b>" . $emailadres . "</b> is aangemeld voor de nieuwsbrief.", $layout);
}


:X
Wat is er daar verkeerd aan? :P.

Overigens, dit vind ik toch wel overwegend bad pratice:


Clojure:
1
2
3
4
5
6
7
8
(defn =  ([x] true)
  ([x y] (lang.Util/equals x y))
  ([x y & more]
   (if (= x y)
     (if (next more)
       (recur y (first more) (next more))
       (= y (first more)))
     false)))

Acties:
  • 0 Henk 'm!

  • WernerL
  • Registratie: December 2006
  • Laatst online: 21:48
Het ging vooral om de sql injectie mogelijkheid, maar daar had ik gelukkig rekening mee gehouden :D
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
//SQL injection security
foreach($_POST as $name => $value) {
    if(!is_array($_POST[$name])){
        if(get_magic_quotes_gpc()==0 && ($name != "layout" && $name != "content")) $_POST[$name] = mysql_real_escape_string($_POST[$name]);
    }
}

foreach($_GET as $name => $value) {
    if(!is_array($_GET[$name])){
        if(get_magic_quotes_gpc()==0) $_GET[$name] = mysql_real_escape_string($_GET[$name]);
        $_GET[$name] = htmlspecialchars($_GET[$name]);
    }
}


In mijn connect.php file :+

Roses are red, violets are blue, unexpected '{' on line 32.


Acties:
  • 0 Henk 'm!

  • Saven
  • Registratie: December 2006
  • Laatst online: 21:57

Saven

Administrator

WernerL schreef op donderdag 19 maart 2015 @ 19:37:
Ik ben eens door mijn backups aan het bladeren die op een externe schijf staan, kom ik hele oude code tegen.
PHP:
1
2
3
4
5
6
7
8
9
$emailadres = $_POST['emailadres'];

$sql = mysql_query("SELECT * FROM nieuwsbrief_adressen WHERE emailadres = '$emailadres'");
if(mysql_num_rows($sql) > 0){
    $layout = str_replace("{content}", "U bent al aangemeld voor de nieuwsbrief.", $layout);
}else {
    mysql_query("INSERT INTO nieuwsbrief_adressen (emailadres) VALUES ('$emailadres')") or die(mysql_error());
    $layout = str_replace("{content}", "Het emailadres <b>" . $emailadres . "</b> is aangemeld voor de nieuwsbrief.", $layout);
}


:X
Ach, zo zijn we allemaal begonnen in PHP :P
Hatsieflatsie schreef op donderdag 19 maart 2015 @ 19:49:
[...]

Wat is er daar verkeerd aan? :P.
Zo'n beetje alles wel? :P
Het werkt wel, maar hoe :')

Acties:
  • 0 Henk 'm!

  • P_Tingen
  • Registratie: Maart 2005
  • Laatst online: 14:33

P_Tingen

omdat het KAN

Ik kwam laatst zoiets tegen in ons Progress 4GL systeem

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
IF cLocationList = "" THEN 
DO:
  FOR EACH location:
   iOnStock = iOnStock + location.onHand.
  END.
END.

ELSE IF NUM-ENTRIES(cLocationList) = 1 THEN
DO:
  FOR EACH location WHERE location.id = cLocationList:
   iOnStock = iOnStock + location.onHand.
  END.
END.

ELSE IF NUM-ENTRIES(cLocationList) > 1 THEN
DO:
  DO iLocation = 1 TO NUM-ENTRIES(cLocationList):
    FOR EACH location WHERE location.id = ENTRY(iLocation,cLocationList):
       iOnStock = iOnStock + location.onHand.
    END.
  END.
END.

De regel met iOnStock = iOnStock + location.onHand heb ik hier neergezet maar was in dit programma een blok code van ruim 100 regels die in ieder blok exact gelijk was.

Dat was al faal 1, want DRY.
Faal 2 zit hem in de drievoudige afhandeling, want eea kan simpeler:
code:
1
2
3
4
5
6
7
IF cLocationList = "" THEN cLocationList = "*".

DO iLocation = 1 TO NUM-ENTRIES(cLocationList):
  FOR EACH location WHERE location.id MATCHES ENTRY(iLocation,cLocationList):
     iOnStock = iOnStock + location.onHand.
  END.
END.


Ik vermoed dat de vorige ontwikkelaar per regel code betaald werd .... :+

... en gaat over tot de orde van de dag


Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 22:03

RayNbow

Kirika <3

Hatsieflatsie schreef op donderdag 19 maart 2015 @ 19:49:
Overigens, dit vind ik toch wel overwegend bad pratice:


Clojure:
1
2
3
4
5
6
7
8
(defn =  ([x] true)
  ([x y] (lang.Util/equals x y))
  ([x y & more]
   (if (= x y)
     (if (next more)
       (recur y (first more) (next more))
       (= y (first more)))
     false)))
Ben niet heel bekend met Clojure, maar wat doet deze functie met een lege lijst? :+

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • Firesphere
  • Registratie: September 2010
  • Laatst online: 16-09 09:06

Firesphere

Yoshis before Hoshis

JavaScript:
1
2
3
4
var description = $(this).data('Title');
if(typeOf(description) === 'undefined'){
    description = description;
}

:F

I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 16-09 15:42

Sebazzz

3dp

Mag typeof wel met hoofdletter O en haakjes?

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


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Waarom zou het niet mogen met haakjes :?. Het verwacht een expressie, om een expressie kun je haakjes zetten.

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!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 15-09 05:50

Douweegbertje

Wat kinderachtig.. godverdomme

De table met wat constanten genaamd 'KONSTANT'. En nee, deze table was niet in 1995 gemaakt maar recent en ja, door iemand relatief gezien op leeftijd. En meneer wilde het ook niet aanpassen want "het hoort zo".

Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
Douweegbertje schreef op maandag 06 april 2015 @ 01:52:
De table met wat constanten genaamd 'KONSTANT'. En nee, deze table was niet in 1995 gemaakt maar recent en ja, door iemand relatief gezien op leeftijd. En meneer wilde het ook niet aanpassen want "het hoort zo".
Rename 'm naar "k" :P

Acties:
  • 0 Henk 'm!

  • Marcj
  • Registratie: November 2000
  • Laatst online: 17:00
Haijo schreef op woensdag 04 maart 2015 @ 11:06:
.... Mijn senior heeft het idee dat gedaan is om Sonar waarschuwingen over magic numbers te onderdrukken. Iets met klok en klepel dus. :X
Sonar, daar ben ik ook een aantal leuke 'fixes' door tegen gekomen. Onder andere dat we in java een Runnable lieten wrappen om zo afhandeling van RuntimeExceptions te kunnen doen. Maar op de code

Java:
1
2
3
4
5
try {
    wrappedRunnable.run();
} catch(RuntimeException ex) {
    // doe iets met logging ofzo
}


kwam Sonar natuurlijk met een waarschuwing dat de run methode direct werd aangeroepen. Dus dat is door een niet nader te noemen ontwikkelaar verbeterd tot:

Java:
1
2
3
4
5
6
7
8
9
new Thread() {
    public void run() {
        try {
            wrappedRunnable.run();
        } catch(RuntimeException ex) {
            // doe iets met logging ofzo
        }
    }
}.start();


Effectief dus het hele nut van de ThreadPool die we gebruikten hiermee ongedaan gemaakt! Aargh |:(

Acties:
  • 0 Henk 'm!

  • Haijo
  • Registratie: Februari 2006
  • Laatst online: 21-09-2024
Ach ja, Sonar is op zich wel nuttig maar geen enkele garantie tot kwaliteit. Dat hangt, als altijd, van de kwaliteit van je ontwikkelaars af.

En deze ontwikkelaars kwamen uit India. :X Daar hebben ze vast goede rondlopen maar die hebben hier nooit gewerkt.

Acties:
  • 0 Henk 'm!

  • Damic
  • Registratie: September 2003
  • Laatst online: 20:43

Damic

Tijd voor Jasmijn thee

Gisteren nog een leuk stukje tegen gekomen: Divide by Zero :) niet aangedacht dat het daar kon voorkomen, dan maar een if then rond gebouwd :)

Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag


Acties:
  • 0 Henk 'm!

  • NESFreak
  • Registratie: December 2009
  • Laatst online: 19:57
Damic schreef op zaterdag 18 april 2015 @ 23:15:
Gisteren nog een leuk stukje tegen gekomen: Divide by Zero :) niet aangedacht dat het daar kon voorkomen, dan maar een if then rond gebouwd :)
Integer of float? Is divide by close tot zero wel wenselijk? Als je het 'daar' niet verwacht, is er dan niet iets heel erg mis?

Acties:
  • 0 Henk 'm!

  • Damic
  • Registratie: September 2003
  • Laatst online: 20:43

Damic

Tijd voor Jasmijn thee

Divide by zero = error en ik had het eigenlijk niet verwacht dus maar if then structuurtje langs gepoot :D

Van
code:
1
2
iAvgValue /= iAvgCount
Dim x As Single = BasicStart+CSng(iAvgValue / FillProcent)

naar:
code:
1
2
3
4
5
Dim x As Single = BasicStart
If iAvgCount > 0 Then
iAvgValue /= iAvgCount
x += CSng(iAvgValue / FillProcent)
End If
O-)

[ Voor 78% gewijzigd door Damic op 19-04-2015 11:44 ]

Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Of gewoon delen door Max(iAvgCount, 1)

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!

  • incaz
  • Registratie: Augustus 2012
  • Laatst online: 15-11-2022
.oisyn: als de waarde van iAvgValue <> 0 geeft jouw deling ook een resultaat <> 0 en dus een andere waarde voor x dan het if-block.

Damic, als je het leuk vindt kun je nog 1 regeltje laten verdwijnen:

code:
1
2
3
4
Dim x As Single = BasicStart
If iAvgCount > 0 Then
    x += CSng(iAvgValue / (iAvgCount * FillProcent))
End If

[ Voor 3% gewijzigd door incaz op 19-04-2015 13:14 ]

Never explain with stupidity where malice is a better explanation

Pagina: 1 ... 8 ... 20 Laatste

Let op:
Uiteraard is het in dit topic niet de bedoeling dat andere users en/of topics aangehaald worden om ze voor gek te zetten. Lachen om je eigen code, of over dingen die je "wel eens tegengekomen bent" is prima, maar hou het onderling netjes. :)