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

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

Pagina: 1 ... 80 ... 103 Laatste
Acties:
  • 993.622 views

Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 22:38
RayNbow schreef op dinsdag 07 februari 2012 @ 10:06:
[...]

Haskell:
1
2
3
4
5
data Person = Person { name :: String
                     , address :: String
                     , zipcode :: String
                     , birthday :: DateTime
                     }

:Y)
Das toch niet hetzelfde? Of kan je in Haskell ook makkelijk het volgende typen?
C#:
1
2
3
4
5
6
7
public class Persoon 
{ 
public string Naam { get; private set; } 
public string Adres { get; private set; } 
public string Postcode { get; private set; } 
public DateTime Geboortedatum { get; private set; } 
}

Zoals het in die C# code stond had het net zo goed het volgende kunnen zijn:
C#:
1
2
3
4
5
public class Persoon 
{ 
public string Postcode, Naam, Adres;
public DateTime Geboortedatum;
}

[ Voor 17% gewijzigd door Caelorum op 07-02-2012 11:07 ]


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Pet peeve: het is Geboortedatum, niet GeboorteDatum :)

/me denkt terug aan developer die WerkNemerNummer gebruikte 8)7

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!

Verwijderd

Tja, het is wel een samengesteld woord ;)

Acties:
  • 0 Henk 'm!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50

BikkelZ

CMD+Z

Gaius schreef op dinsdag 07 februari 2012 @ 10:00:
[...]


Eens. De code van Robert C. Martin is een uiterste. Wel heel makkelijk leesbare en eenvoudig ogende code. Maar de korte methods schrijf je niet omdat het moet, het is wat je overhoudt als je methods schrijft die maar één taak uitvoeren.
Het zou niet gek zijn om het in ieder geval eens een tijdje te proberen, en jezelf te dwingen het eens een keer toe te passen (zonder je baas of je project te schaden). Net zoals ik dit bericht nu in IE9 aan het typen ben niet omdat ik geen Chrome of FF mag draaien, maar gewoon uit zelfkastijding nieuwsgierigheid hoe bruikbaar hij is in de dagelijkse praktijk. Ik heb het er nog het moeilijkste mee dat Bing mijn default search engine is, hoewel Stack Overflow toch meestal ook wel bij de bovenste resultaten zit. En weer een boel nieuwe inzichten.

iOS developer


Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 22:38
BikkelZ schreef op dinsdag 07 februari 2012 @ 11:04:
[...]Ik heb het er nog het moeilijkste mee dat Bing mijn default search engine is, hoewel Stack Overflow toch meestal ook wel bij de bovenste resultaten zit. En weer een boel nieuwe inzichten.
Stel je toch lekker google in ;)

Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Verwijderd schreef op dinsdag 07 februari 2012 @ 10:48:
Tja, het is wel een samengesteld woord ;)
Dus? De Nederlandse spellingregels zijn heel duidelijk over hoe samengestelde woorden geschreven moeten worden: aan elkaar wanneer mogelijk, zonder streepjes, tussenvoegsels, trema's of wat dan ook. Pas als het onduidelijk wordt mag je iets gaan toevoegen.

We are shaping the future


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
kenneth schreef op dinsdag 07 februari 2012 @ 10:32:
Pet peeve: het is Geboortedatum, niet GeboorteDatum :)
Het is BirthDate. ;)

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Dát hangt van je domein af :)

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!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50

BikkelZ

CMD+Z

Caelorum schreef op dinsdag 07 februari 2012 @ 11:06:
[...]

Stel je toch lekker google in ;)
En dan? Wat leer ik daar van? Ik kom nu nog wel eens sites tegen die Google steeds niet toonde in zijn zoekresultaten.

iOS developer


Acties:
  • 0 Henk 'm!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50

BikkelZ

CMD+Z

Alex) schreef op dinsdag 07 februari 2012 @ 11:07:
[...]

Dus? De Nederlandse spellingregels zijn heel duidelijk over hoe samengestelde woorden geschreven moeten worden: aan elkaar wanneer mogelijk, zonder streepjes, tussenvoegsels, trema's of wat dan ook. Pas als het onduidelijk wordt mag je iets gaan toevoegen.
Behalve dat Nederlandstalige entiteiten (of nog erger: "Engels tot ik de woorden niet meer kende toen ben ik alsnog over gegaan op Nederlands") al vies zijn om mee te beginnen, vind ik dat het altijd gaat om een technische context en niet om een tien voor taal. Je gebruikt een hoofdletter om een bepaalde subdivisie in de data aan te geven, al je betekenisgevende woorden beginnen met een hoofdletter zodat je ze sneller uit de tekst pikt.

Dus de Geboorte heeft een Plaats en een Naam, en wellicht zelfs een Gewicht. Ongeacht hoe je het schrijft in een zin. Anders dwing je me eigenlijk ook om punten, komma's en spaties te gebruiken.

iOS developer


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Nederlandstalige entiteiten zijn vies, ha, daar is hij weer!

Wat stel je voor? CitizenServiceNumber? ElevenCitiesTour? HealthCareAllowance? FreedomDay?

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!

  • Amras
  • Registratie: Januari 2003
  • Laatst online: 18:13
kenneth schreef op dinsdag 07 februari 2012 @ 11:44:
Nederlandstalige entiteiten zijn vies, ha, daar is hij weer!

Wat stel je voor? CitizenServiceNumber? ElevenCitiesTour? HealthCareAllowance? FreedomDay?
Nederlandse entiteiten moeten zeker kunnen, zolang maar niet alles ineens vertaalt gaat worden. Op een vorig project hadden ze dus zulke methoden:

C#:
1
2
3
public void VoegPersoonToe(Persoon persoon)
{
}


Daar lopen de rillingen van over mijn rug, maak daar gewoon AddPersoon van en het is al een stuk beter. Een volgende stap is natuurlijk een vertaling van de keywords:

C#:
1
2
3
publiek leegte VoegPersoonToe(Persoon persoon)
{
}


Dat wordt pas echt genieten! :)

Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
Amras schreef op dinsdag 07 februari 2012 @ 11:48:
Een volgende stap is natuurlijk een vertaling van de keywords:
één woord: excel.

=row() vs =rij() vs =ligne()

=stdev() vs =stdev() vs =ecartype()

=vlookup() vs =vert.zoeken() vs =recherchev()


FFFFFFFUUUUUUUUUUUU

* ValHallASW aait function_lookup.xls

[ Voor 8% gewijzigd door ValHallASW op 07-02-2012 11:52 ]


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Amras schreef op dinsdag 07 februari 2012 @ 11:48:
Daar lopen de rillingen van over mijn rug, maak daar gewoon AddPersoon van en het is al een stuk beter.
Eens :) Domeinwoorden in de domeintaal, de rest in het Engels, zo doen wij het ook.
Een volgende stap is natuurlijk een vertaling van de keywords:

C#:
1
2
3
publiek leegte VoegPersoonToe(Persoon persoon)
{
}


Dat wordt pas echt genieten! :)
Goeie oude tijd dat VBA voor Excel (95?) nog in het Nederlands was :X

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!

  • Styxxy
  • Registratie: Augustus 2009
  • Laatst online: 16:37
Caelorum schreef op dinsdag 07 februari 2012 @ 10:14:
[...]
Das toch niet hetzelfde? Of kan je in Haskell ook makkelijk het volgende typen?
C#:
1
...

Zoals het in die C# code stond had het net zo goed het volgende kunnen zijn:
C#:
1
....
Dat is toch niet geheel hetzelfde hoor. Public fields <-> properties met een publieke set.

Acties:
  • 0 Henk 'm!

  • Jarrean
  • Registratie: April 2006
  • Laatst online: 15-09 10:56
Amras schreef op dinsdag 07 februari 2012 @ 11:48:
[...]

Nederlandse entiteiten moeten zeker kunnen, zolang maar niet alles ineens vertaalt gaat worden. Op een vorig project hadden ze dus zulke methoden:

C#:
1
2
3
public void VoegPersoonToe(Persoon persoon)
{
}


Daar lopen de rillingen van over mijn rug, maak daar gewoon AddPersoon van en het is al een stuk beter. Een volgende stap is natuurlijk een vertaling van de keywords:

C#:
1
2
3
publiek leegte VoegPersoonToe(Persoon persoon)
{
}


Dat wordt pas echt genieten! :)
CodeCaster heeft dit al eens gedaan met C# .NET ;)

Acties:
  • 0 Henk 'm!

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

RayNbow

Kirika <3

Caelorum schreef op dinsdag 07 februari 2012 @ 10:14:
[...]

Das toch niet hetzelfde? Of kan je in Haskell ook makkelijk het volgende typen?
C#:
1
2
3
4
5
6
7
public class Persoon 
{ 
public string Naam { get; private set; } 
public string Adres { get; private set; } 
public string Postcode { get; private set; } 
public DateTime Geboortedatum { get; private set; } 
}
Datastructuren in Haskell zijn immutable, dus het heeft weinig nut om onderscheid te maken tussen private en public setters... :+

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 22:38
Styxxy schreef op dinsdag 07 februari 2012 @ 11:55:
[...]Dat is toch niet geheel hetzelfde hoor. Public fields <-> properties met een publieke set.
Klopt, maar zover mijn kennis gaat heeft het in dit geval geen praktisch noemenswaardig verschil.

Acties:
  • 0 Henk 'm!

  • Crankyslap
  • Registratie: Juni 2006
  • Laatst online: 10-04 21:59
Ik had laatst een vrij simpel programma'tje voor mezelf nodig dat groepen met subgroepen had, waar je vervolgens winst-objecten in kon plaatsen. Zoiets dus;
Hoofd groep: Schatten Zoeken
->Sub Groep: 1
->->Start Tijd
->->Eind Tijd
->->Winst Objecten:
->->->Naam: Goude ketting
->->->Waarde: 30,6
->->->Naam: 3 oude munten
->->->Waarde: 10,7
->->->etc.

En zo dus gemakkelijk uitrekenen wat je gemiddeld bij het 'schatten zoeken' verdient. Per uur, minuut, seconde, whatever.
Dus ik denk 'no way dat ik dat in C++ ga doen, ik doe dat even snel in vb.net'

Nou, als ik 'even snel' iets doe, dan krijg je dus dit (Code voor het toevoegen van een winst object aan een subgroep):

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    'New ProfitObject
    ReDim Preserve Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects.Length)
    Dim ProfitObjectID As Integer = Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects.Length - 2
    Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID) = New ProfitObject
    'Set ProfitObject properties
    'Set ID
    Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID).id = ProfitObjectID
    'Set Name
    Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID).name = TextBox1.Text
    'Set Profit
    Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID).profit = TextBox2.Text
    'Set TypeID
    Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID).typeID = TextBox3.Text
    'Set Rarity
    Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID).rarity = TextBox4.Text
    'populate(Form1.main.Groups(groupID))
    Dim textt As String = "ID" & ProfitObjectID.ToString
    groupForm.NewProfitObjectsItem(textt, Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID).name, Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID).profit, Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID).rarity, Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID).ProfitObjects(ProfitObjectID).typeID)
End Sub


Daar gaan je ogen van bloeden toch!? Dat kan beter:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim groupObject As GroupObject = Form1.main.Groups(theMainGroupID).GroupObjects(theGroupID)
    
    'New ProfitObject
    ReDim Preserve groupObject.ProfitObjects(groupObject.ProfitObjects.Length)
    Dim ProfitObjectID As Integer = groupObject.ProfitObjects.Length - 2         
    Dim profit As ProfitObject = New ProfitObject() 
    groupObject.ProfitObjects(ProfitObjectID) = profit
    
    'Set ProfitObject properties
    profit.id = ProfitObjectID
    profit.name = TextBox1.Text
    profit.profit = TextBox2.Text
    profit.typeID = TextBox3.Text
    profit.rarity = TextBox4.Text
    
    Dim textt As String = "ID" & ProfitObjectID
    groupForm.NewProfitObjectsItem(profit)
End Sub


Snel en netjes kan ik blijkbaar niet combineren ;(

Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 03:15

alienfruit

the alien you never expected

Mijn ogen altijd bij VB code... gebruik dan Delphi :+

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
VB heeft toch zo'n with syntax. Dat is dan een van de weinige dingen die niet volkomen ruk zijn in VB. ;)

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
Verwijderd schreef op dinsdag 07 februari 2012 @ 10:48:
Tja, het is wel een samengesteld woord ;)
Tsja, maar in Engels schrijf je samengestelde woorden bijna altijd los van elkaar. In het Nederlands is een samengesteld woord gewoon een nieuw, enkelvoudig woord. En dus zou je juist niet moeten CamelCasen.
Verwijderd schreef op maandag 06 februari 2012 @ 21:29:
* Remus heeft moeie handen..

C#:
1
2
3
4
5
6
7
public class Persoon
{
public string Naam { get; set; }
public string Adres { get; set; }
public string Postcode { get; set; }
public DateTime GeboorteDatum { get; set; }
}


Nou, ik weet wel wat ik liever heb...
Of Project Lombok downloaden en installeren:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Persoon {
   @Getter @Setter
   private String naam;
  
   @Getter @Setter
   private String adres;

   @Getter @Setter
   private String postcode;

   @Getter @Setter
   private Calendar geboortedatum;
}

[ Voor 50% gewijzigd door Remus op 07-02-2012 15:01 ]


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Het zou Java niet zijn als er niet een third party framework voor was. Tenminste, het is pas echt Java als er drie verschillende voor zijn. Met XML-configs O+

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!

Verwijderd

Ja, en dat is nog een nadeel aan Java.

Acties:
  • 0 Henk 'm!

  • Voyage
  • Registratie: December 2002
  • Laatst online: 22-09 20:10
Verwijderd schreef op dinsdag 07 februari 2012 @ 15:31:
Ja, en dat is nog een nadeel aan Java.
Hoezo een nadeel? Je hoeft het niet te gebruiken en het wordt ook niet afgedwongen.

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Voyage schreef op dinsdag 07 februari 2012 @ 15:36:
[...]


Hoezo een nadeel? Je hoeft het niet te gebruiken en het wordt ook niet afgedwongen.
Dus is het geen nadeel?

Acties:
  • 0 Henk 'm!

Verwijderd

Voyage schreef op dinsdag 07 februari 2012 @ 15:36:
[...]


Hoezo een nadeel? Je hoeft het niet te gebruiken en het wordt ook niet afgedwongen.
Nee, als je het wil gebruiken moet je weer een minder goed getest framework gaan gebruiken.
.NET verplicht je niet om het op die manier te doen. De code die ik bij Java neerzette werkt ook gewoon als je het in een C# app zet.

Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Er zijn ook maar genoeg libraries enzo voor .NET die een XML-config vereisen hoor. Als je een beetje pech hebt verwacht hij er nog eentje die van het filesystem komt ook.

We are shaping the future


Acties:
  • 0 Henk 'm!

  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
Verwijderd schreef op dinsdag 07 februari 2012 @ 15:31:
Ja, en dat is nog een nadeel aan Java.
Het rijke ecosysteem aan libraries zou je juist een voordeel aan Java kunnen noemen.

Acties:
  • 0 Henk 'm!

  • YakuzA
  • Registratie: Maart 2001
  • Niet online

YakuzA

Wat denk je nou zelluf hey :X

Alex) schreef op dinsdag 07 februari 2012 @ 18:06:
Er zijn ook maar genoeg libraries enzo voor .NET die een XML-config vereisen hoor. Als je een beetje pech hebt verwacht hij er nog eentje die van het filesystem komt ook.
Gelukkig wel, ik ga het liefst niet het programma recompilen als ik on the fly het logging level wil aanpassen ;)

Death smiles at us all, all a man can do is smile back.
PSN


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Een tool die ik gebruik, staat geen spaties toe in URL's. Prima, gebruik ik %20.

De eerste drie requests die de applicatie maakt gaan goed, maar ineens zie ik het volgende in de request voorbij komen:

%2520

Nee, dat wordt een 404 inderdaad. :') Chandler, leuk geprobeerd, jammerlijk gefaald.

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


Acties:
  • 0 Henk 'm!

  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
CodeCaster schreef op woensdag 08 februari 2012 @ 10:23:
Een tool die ik gebruik, staat geen spaties toe in URL's. Prima, gebruik ik %20.

De eerste drie requests die de applicatie maakt gaan goed, maar ineens zie ik het volgende in de request voorbij komen:

%2520

Nee, dat wordt een 404 inderdaad. :') Chandler, leuk geprobeerd, jammerlijk gefaald.
Probeer dan een + in de URL, dat zou volgens mij wel moeten werken (dat is nl de juiste escape voor een spatie in een URL (iig in de query string).

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Maar als hij van een % een %25 maakt, waarom zou hij van een + dan geen %2B maken?
dat is nl de juiste escape
%20 is natuurlijk net zo juist als + :)

[ Voor 33% gewijzigd door .oisyn op 08-02-2012 11:08 ]

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!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

.oisyn schreef op woensdag 08 februari 2012 @ 11:08:
Maar als hij van een % een %25 maakt, waarom zou hij van een + dan geen %2B maken?
Dat is inderdaad precies wat er gebeurt. :)

Verder is %20 percent encoding, en wordt de + gebruikt bij application/x-www-form-encoded:
When data that has been entered into HTML forms is submitted, the form field names and values are encoded [...] with a number of modifications such as newline normalization and replacing spaces with "+" instead of "%20".


Dus ik denk ik download een alternatief, maar een verse installatie van Evolution blijft instanties van dbus-daemon.exe en conhost.exe spawnen, tot in de honderdtallen aan toe. En zo'n beetje de helft van de opensourceprojecten in .NET die ik de afgelopen weken heb gedownload werken niet (hardcoded paden naar niet-meegeleverde libraries, hardcoded paden naar SVN-executables om het versienummer van het project te includen bij het builden, enzovoorts).

Waarom zetten mensen zo veel niet werkende bagger op het internet?

[ Voor 149% gewijzigd door CodeCaster op 08-02-2012 11:35 ]

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


Acties:
  • 0 Henk 'm!

  • hommer
  • Registratie: September 2000
  • Laatst online: 15-09 15:23
Misschien is hij al eens voorbij gekomen, maar deze kwam ik ooit tegen in C code. Hij is wel te begrijpen, maar leesbaar bepaald niet.
code:
1
2
3
int a=0, b=1,x;

x = (a++, b++);

Tja, en wat is de waarde van x daarna?

t.k.a. sig space t.e.a.b.


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Maar als je '+' voor spatie gebruikt dan moet je echte '+' wel encoden natuurlijk. Anders wordt '+' ook spatie.

Acties:
  • 0 Henk 'm!

  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 21-09 18:08

CoolGamer

What is it? Dragons?

hommer schreef op woensdag 08 februari 2012 @ 11:41:
Misschien is hij al eens voorbij gekomen, maar deze kwam ik ooit tegen in C code. Hij is wel te begrijpen, maar leesbaar bepaald niet.
code:
1
2
3
int a=0, b=1,x;

x = (a++, b++);

Tja, en wat is de waarde van x daarna?
1. Het had duidelijker opgeschreven kunnen worden, maar dit is nog wel te begrijpen.

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


Acties:
  • 0 Henk 'm!

  • Chip.
  • Registratie: Mei 2006
  • Niet online
hommer schreef op woensdag 08 februari 2012 @ 11:41:
Misschien is hij al eens voorbij gekomen, maar deze kwam ik ooit tegen in C code. Hij is wel te begrijpen, maar leesbaar bepaald niet.
code:
1
2
3
int a=0, b=1,x;

x = (a++, b++);

Tja, en wat is de waarde van x daarna?
Hmmm geen flauw idee? Gecast naar een float (0,1) en daarna terug naar een integer, 0?

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
hommer schreef op woensdag 08 februari 2012 @ 11:41:
Misschien is hij al eens voorbij gekomen, maar deze kwam ik ooit tegen in C code. Hij is wel te begrijpen, maar leesbaar bepaald niet.
code:
1
2
3
int a=0, b=1,x;

x = (a++, b++);

Tja, en wat is de waarde van x daarna?
Gewoon 1. Toch?

Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 21-09 15:23
Wat doet (var1, var2) in C?

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Het "doet" eerst var1, daarna var2, en het resultaat is var2.

[ Voor 33% gewijzigd door .oisyn op 08-02-2012 18:40 ]

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!

  • G70boX
  • Registratie: Juli 2004
  • Laatst online: 21:10
Goede voorbeelden hier: Wikipedia: Comma operator

Voor dat voorbeeld; de post-increment operator increment de waarde van b met 1, maar geeft de originele waarde van b terug. (Wikipedia: Increment and decrement operators)

[ Voor 33% gewijzigd door G70boX op 08-02-2012 18:45 ]


Acties:
  • 0 Henk 'm!

  • ReneDD
  • Registratie: Februari 2011
  • Laatst online: 22-08 20:17
Ik zou lezen "x = (1, 2);".
In C# wordt 1++ in ieder geval 2..

Maar wat de waarde van x is durf ik niet te zeggen, aangezien ik ook niet weet wat (var, var) doet. Maar mijn gok zou zijn 3 :). Maar dan heeft de functie echt geen nut ;p

Acties:
  • 0 Henk 'm!

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 19-09 11:00

Ventieldopje

I'm not your pal, mate!

ReneDD schreef op woensdag 08 februari 2012 @ 18:41:
Ik zou lezen "x = (1, 2);".
In C# wordt 1++ in ieder geval 2..

Maar wat de waarde van x is durf ik niet te zeggen, aangezien ik ook niet weet wat (var, var) doet. Maar mijn gok zou zijn 3 :). Maar dan heeft de functie echt geen nut ;p
x = 2 ;)

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


Acties:
  • 0 Henk 'm!

  • Firesphere
  • Registratie: September 2010
  • Laatst online: 23-09 03:16

Firesphere

Yoshis before Hoshis

Niet geheel een echt programmeerfout... maar gebruikers...

Laten we een URL in onze nieuwsbrief zetten, met een spatie aan het einde in de href. Bij ELKE URL.

En vervolgens bellen en klagen dat't niet werkt :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!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Bij a=0 wordt a++ inderdaad 1, maar het resultaat van de expressie 'a++' is de oude waarde van a, en dus 0. Ergo, je moet lezen: x = (0, 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!

  • TonnyTonny
  • Registratie: Augustus 2010
  • Laatst online: 09-09 10:25
.oisyn schreef op woensdag 08 februari 2012 @ 18:44:
[...]

Bij a=0 wordt a++ inderdaad 1, maar het resultaat van de expressie 'a++' is de oude waarde van a, en dus 0. Ergo, je moet lezen: x = (0, 1).
Correct. En het laatse (== meest rechtse) resultaat van de , expressie wordt geretourneerd, dus x word uiteindelijk 1.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ja dat zei ik al ;). In C++ geldt het natuurlijk niet meer (ook niet de volgorde van evaluatie) als je operator,() hebt geoverload.

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!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 21-09 15:23
Woah, iemand dacht dat methode's magic black boxes moesten zijn ofzo.

PHP:
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
function newBlock( $blockname )
    {
        $parent = &$this->content[ $this->parent[$blockname] .'_'. $this->index[$this->parent[$blockname]] ];

            $lastitem = sizeof( $parent );
        $lastitem > 1 ? $lastitem-- : $lastitem = 0;

            $ind_blockname = $blockname .'_'. $this->index[ $blockname ];
        
        if ( !isset( $parent[ $lastitem ]["_B:$blockname"] ))
        {
            $this->index[ $blockname ] += 1;

            $ind_blockname = $blockname .'_'. $this->index[ $blockname ];            
            
            if (!isset( $this->content[ $ind_blockname ] ) )
            {
                 $this->content[ $ind_blockname ] = Array();
            }
            $parent[ $lastitem ]["_B:$blockname"] = $ind_blockname;
        }
        $blocksize = sizeof( $this->content[ $ind_blockname ] );

        $this->content[ $ind_blockname ][ $blocksize ] = Array( $blockname );

        $this->currentBlock = &$this->content[ $ind_blockname ][ $blocksize ];
    }


edit: Woo, ergens documentatie gevonden: http://templatepower.codo...tion.newBlock.php?lang=en

Waarom je dat nergens in je code neerzet ;w

PHP:
1
$koekjeLang = 'uk_en';


Ja, je moet toch wat als je variabelenamen op zijn.

PHP:
1
2
3
define( 'core_name',           'Corename' );
define( 'core_name_high',      'CORENAME' );  
define( 'core_name_low',       'corename' );


|:( :F 8)7 ;( ;w

[ Voor 16% gewijzigd door ZpAz op 13-02-2012 12:50 ]

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 23-09 06:10
Stukje code uit een Joomla plugin:
PHP:
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
$img1 = $params->get('img1');
$img2 = $params->get('img2');
$img3 = $params->get('img3');
$img4 = $params->get('img4');
$img5 = $params->get('img5');
$img6 = $params->get('img6');
$img7 = $params->get('img7');
$img8 = $params->get('img8');
$img9 = $params->get('img9');
$img10 = $params->get('img10');
$img11 = $params->get('img11');
$img12 = $params->get('img12');
$img13 = $params->get('img13');
$img14 = $params->get('img14');
$img15 = $params->get('img15');
$img16 = $params->get('img16');
$img17 = $params->get('img17');
$img18 = $params->get('img18');
$img19 = $params->get('img19');
$img20 = $params->get('img20');

$label1 = $params->get('label1');
$label2 = $params->get('label2');
$label3 = $params->get('label3');
$label4 = $params->get('label4');
$label5 = $params->get('label5');
$label6 = $params->get('label6');
$label7 = $params->get('label7');
$label8 = $params->get('label8');
$label9 = $params->get('label9');
$label10 = $params->get('label10');
$label11 = $params->get('label11');
$label12 = $params->get('label12');
$label13 = $params->get('label13');
$label14 = $params->get('label14');
$label15 = $params->get('label15');
$label16 = $params->get('label16');
$label17 = $params->get('label17');
$label18 = $params->get('label18');
$label19 = $params->get('label19');
$label20 = $params->get('label20');

$desc1 = $params->get('desc1');
$desc2 = $params->get('desc2');
$desc3 = $params->get('desc3');
$desc4 = $params->get('desc4');
$desc5 = $params->get('desc5');
$desc6 = $params->get('desc6');
$desc7 = $params->get('desc7');
$desc8 = $params->get('desc8');
$desc9 = $params->get('desc9');
$desc10 = $params->get('desc10');
$desc11 = $params->get('desc11');
$desc12 = $params->get('desc12');
$desc13 = $params->get('desc13');
$desc14 = $params->get('desc14');
$desc15 = $params->get('desc15');
$desc16 = $params->get('desc16');
$desc17 = $params->get('desc17');
$desc18 = $params->get('desc18');
$desc19 = $params->get('desc19');
$desc20 = $params->get('desc20');

$link1 = $params->get('link1')
$link2 = $params->get('link2');
$link3 = $params->get('link3');
$link4 = $params->get('link4');
$link5 = $params->get('link5');
$link6 = $params->get('link6');
$link7 = $params->get('link7');
$link8 = $params->get('link8');
$link9 = $params->get('link9');
$link10 = $params->get('link10');
$link11 = $params->get('link11');
$link12 = $params->get('link12');
$link13 = $params->get('link13');
$link14 = $params->get('link14');
$link15 = $params->get('link15');
$link16 = $params->get('link16');
$link17 = $params->get('link17');
$link18 = $params->get('link18');
$link19 = $params->get('link19');
$link20 = $params->get('link20');


Array's zijn overrated. :X

Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Manuel schreef op maandag 13 februari 2012 @ 10:58:
Stukje code uit een Joomla plugin:
PHP:
1
// wtf


Array's zijn overrated. :X
Oftewel: deze plugin gewoon niet gebruiken...

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • Xirt
  • Registratie: December 2003
  • Laatst online: 21-09 09:14
Het grote probleem met Joomla is dat veel van de plugins op deze manier in elkaar zitten: snel in elkaar gezet, geen controle en dan maar online gooien voor de rest van de community. Overigens is niet alleen het ontbreken van Arrays hier een probleem: het ophalen kan ook een stuk beter ;-). Vroeger (versie 1.x) zag je dit soort dingen ook wel in de core code terug, maar dit is nu een stuk beter geworden volgens mij (geen ervaring mee, uiteindelijk besloten dat een eigen CMS een beter idee was). Kan me nog herrineren dat er op een gegeven moment iets stond als het volgende. Lijkt mij een beetje nutteloos:

code:
1
2
3
4
5
6
7
$ItemID = 0;

if ($ItemID) {
   // Code
} else {
   // Meer code
}

Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 21-09 15:23
snel in elkaar gezet,
Ik denk toch dat met een array werken sneller geweest was. :+

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 22:38
Xirt schreef op maandag 13 februari 2012 @ 12:32:
Lijkt mij een beetje nutteloos:
0 is false in php, toch? Dus als die &ItemID toevallig toch gezet wordt dan is er niets aan de hand toch?

Acties:
  • 0 Henk 'm!

  • Crayne
  • Registratie: Januari 2002
  • Laatst online: 17-03 13:41

Crayne

Have face, will travel

code:
1
2
3
4
5
6
7
$ItemID = 0;

if ($ItemID) {
   // Code
} else {
   // Meer code
}
Met Caelorum, lijkt erop dat bij false en 0 hetzelfde moet gebeuren, dus de schrijver van deze code gebruikt een sluipweggetje in PHP. Beetje jammer als false en 0 ooit NIET hetzelfde moeten doen. ;)

Mijn Library Thing catalogus


Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 23-09 06:10
OkkE schreef op maandag 13 februari 2012 @ 11:31:
[...]

Oftewel: deze plugin gewoon niet gebruiken...
Heb de plugin nu binnen een uurtje herschreven en kan het nu op 2.5 gebruiken zonder problemen.

Wat ik ook nog heelveel tegenkom in commerciële Joomla plugins, templates en modules:
PHP:
1
2
3
4
5
6
7
8
9
10
$superdupervariable = "yes";

if ($superdupervariable == "yes") {
    $superdupervariable = "true";
} else {
    $superdupervariable = "false";
}

// Terwijl dit toch echt korter is:
$superdupervariable = "yes" == $superdupervariable;

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 23:37

Janoz

Moderator Devschuur®

!litemod

Nou, dat lijkt me absoluut niet hetzelfde......

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!

Verwijderd

Waarom "true", en niet boolean true?

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Janoz schreef op maandag 13 februari 2012 @ 13:37:
Nou, dat lijkt me absoluut niet hetzelfde......
inderdaad, dit is al voldoende voor die code:

PHP:
1
$superdupervariable = "true";

Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 23-09 06:10
Janoz schreef op maandag 13 februari 2012 @ 13:37:
Nou, dat lijkt me absoluut niet hetzelfde......
Het enige wat verschilt hiervan is de type van de variabele (string vs boolean). Aangezien er nergens gebruik wordt gemaakt van type matching (===, is_string, ...) lijkt het mij toch echt korter.

Acties:
  • 0 Henk 'm!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50

BikkelZ

CMD+Z

Manuel schreef op maandag 13 februari 2012 @ 13:33:
[...]

Heb de plugin nu binnen een uurtje herschreven en kan het nu op 2.5 gebruiken zonder problemen.

Wat ik ook nog heelveel tegenkom in commerciële Joomla plugins, templates en modules:
PHP:
1
2
3
4
5
6
7
8
9
10
$superdupervariable = "yes";

if ($superdupervariable == "yes") {
    $superdupervariable = "true";
} else {
    $superdupervariable = "false";
}

// Terwijl dit toch echt korter is:
$superdupervariable = "yes" == $superdupervariable;
TRWTF is natuurlijk dat je in 2012 nog met Joomla zit te rommelen ;)

iOS developer


Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 23-09 06:10
BikkelZ schreef op maandag 13 februari 2012 @ 13:56:
[...]


TRWTF is natuurlijk dat je in 2012 nog met Joomla zit te rommelen ;)
Ik hoor graag de argumenten wat er wel niet mis is met Joomla. ;)

Acties:
  • 0 Henk 'm!

  • 418O2
  • Registratie: November 2001
  • Laatst online: 23:06
Het is in ieder geval niet lek.

O, wacht.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Manuel schreef op maandag 13 februari 2012 @ 13:33:
[...]

Heb de plugin nu binnen een uurtje herschreven en kan het nu op 2.5 gebruiken zonder problemen.

Wat ik ook nog heelveel tegenkom in commerciële Joomla plugins, templates en modules:
PHP:
1
2
3
4
5
6
7
8
9
10
$superdupervariable = "yes";

if ($superdupervariable == "yes") {
    $superdupervariable = "true";
} else {
    $superdupervariable = "false";
}

// Terwijl dit toch echt korter is:
$superdupervariable = ("yes" == $superdupervariable).toString();
FTFY
.edit: oh wacht het was PHP, geen JS :P
Manuel schreef op maandag 13 februari 2012 @ 13:54:
[...]

Het enige wat verschilt hiervan is de type van de variabele (string vs boolean). Aangezien er nergens gebruik wordt gemaakt van type matching (===, is_string, ...) lijkt het mij toch echt korter.
En daarmee ook onjuist. Bij een test van een string tegen een boolean converteert hij de string eerst naar boolean om daarna pas de vergelijking te doen. Alleen een string die leeg is of het getal 0 oplevert is false. De string "false" is dus niet false, maar true. Ergo:

PHP:
1
2
if ($suberdupervariabele == "false")
    echo "woei!";

Dat ging eerst goed. Na jouw aanpassing gaat het fout. Je aanpassing past wel lekker in de topic trouwens :Y)

[ Voor 44% gewijzigd door .oisyn op 13-02-2012 14:50 ]

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


Acties:
  • 0 Henk 'm!

  • kaesve
  • Registratie: Maart 2009
  • Laatst online: 16-05 03:04
Manuel schreef op maandag 13 februari 2012 @ 10:58:
Stukje code uit een Joomla plugin:
PHP:
1
// biep


Array's zijn overrated. :X
't Is php, dus ik had het sowieso zo opgelost:

PHP:
1
2
3
4
$var_names = array('img', 'desc', 'label', 'link');
for ($i = 1; $i < 21; $i++)
    foreach ($var_names as $var)
        ${$var.$i} = $params->get($var.$i);


Lekker makkelijk uit te breiden :)

@hieronder: jamaar, dan word het zo leesbaar :o ik gebruik bijna nooit arrays in php 8)

[ Voor 9% gewijzigd door kaesve op 13-02-2012 14:51 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Zo jammer, maak je er een loopje van, zit je alsnog variabele variabelen te gebruiken ipv een array.

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!

  • Firesphere
  • Registratie: September 2010
  • Laatst online: 23-09 03:16

Firesphere

Yoshis before Hoshis

kaesve schreef op maandag 13 februari 2012 @ 14:48:
[...]


't Is php, dus ik had het sowieso zo opgelost:

PHP:
1
2
3
4
$var_names = array('img', 'desc', 'label', 'link');
for ($i = 1; $i < 21; $i++)
    foreach ($var_names as $var)
        ${$var.$i} = $params->get($var.$i);


Lekker makkelijk uit te breiden :)
PHP:
1
2
3
4
$var_names = array('img', 'desc', 'label', 'link');
for ($i = 1; $i < 21; $i++)
    foreach ($var_names as $var)
        $array[$var][$i] = $params->get({$var.$i});

Dat dus. Lekker array van maken. Veul makkelijker.
Hoewel dit alsnog niet een nette oplossing is eigenlijk.

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!

  • kaesve
  • Registratie: Maart 2009
  • Laatst online: 16-05 03:04
jemig man, ik werd geloof ik veel te serieus genomen :p ik vind het gewoon leuk om af en toe php's variabele variabelen zo hard mogelijk te misbruiken :+

Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 23-09 06:10
.oisyn schreef op maandag 13 februari 2012 @ 14:43:
[...]

Dat ging eerst goed. Na jouw aanpassing gaat het fout. Je aanpassing past wel lekker in de topic trouwens :Y)
I see |:(
Ik heb trouwens nog niet == "false" in de code gezien, alleen !$superdupervariabele en != "true". :p

Acties:
  • 0 Henk 'm!

  • Firesphere
  • Registratie: September 2010
  • Laatst online: 23-09 03:16

Firesphere

Yoshis before Hoshis

Manuel schreef op maandag 13 februari 2012 @ 14:59:
[...]

I see |:(
Ik heb trouwens nog niet == "false" in de code gezien, alleen !$superdupervariabele en != "true". :p
PHP:
1
2
3
4
$var = "false"
if($var){
return true;
}

Raad eens wat dat returned?

[ Voor 1% gewijzigd door Firesphere op 13-02-2012 15:07 . Reden: Het is niet een klein beetje mandag! ]

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!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Manuel schreef op maandag 13 februari 2012 @ 14:59:
[...]

I see |:(
Ik heb trouwens nog niet == "false" in de code gezien, alleen !$superdupervariabele
Seriously? Want !$v zal áltijd false geven als $v alleen maar "true" of "false" kan zijn.
en != "true". :p
Zelfde verhaal als false == "false" natuurlijk, false != "true" geeft false ipv true.

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!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 18:21

Sebazzz

3dp

Manuel schreef op maandag 13 februari 2012 @ 13:59:
[...]

Ik hoor graag de argumenten wat er wel niet mis is met Joomla. ;)
Nou... het is gewoon heel cool om te roepen "TRWTF is natuurlijk dat je anno X nog met Y zit te rommelen".

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


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Net zo cool als het is om te roepen dat iets "security by obscurity" is? ;)

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


Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 19:09

chem

Reist de wereld rond

Argh, SOAP webservices die bij elke functie 1 variabele teruggeeft: een string aan XML-data.

For fucks sake…

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

  • Firesphere
  • Registratie: September 2010
  • Laatst online: 23-09 03:16

Firesphere

Yoshis before Hoshis

chem schreef op maandag 13 februari 2012 @ 15:55:
Argh, SOAP webservices die bij elke functie 1 variabele teruggeeft: een string aan XML-data.

For fucks sake…
I feel your pain. SOAP zuigt

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!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

@chem: maar dat is toch handig? :+ Nooit versioning-problemen! Een nieuwe functie toevoegen hoeft ook niet, roep gewoon een oude functie aan met een nieuwe XML-string! Dat ik daar zelf nooit eerder opgekomen ben! :+

@Firesphere: care to elaborate?

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


Acties:
  • 0 Henk 'm!

  • boe2
  • Registratie: November 2002
  • Niet online

boe2

'-')/

Firesphere schreef op maandag 13 februari 2012 @ 16:07:
[...]

I feel your pain. SOAP zuigt
SOAP is mooi, een nette, gemakkelijke standaard om met webservices te communiceren. Echter niet als het zoals hierboven wordt misbruikt.

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


Acties:
  • 0 Henk 'm!

  • Firesphere
  • Registratie: September 2010
  • Laatst online: 23-09 03:16

Firesphere

Yoshis before Hoshis

Domweg slechte ervaringen mee. Het protocol is best mooi, maar ik kreeg dus ook platte strings terug waar ik maar van moest hopen dat wat ik terug kreeg consequent was, et cetera.

Niet grappig dus. Dan ben je zo'n protocol vrij rap zat ;)

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!

  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Lol zat een oud stukje code van me te bekijken.

Ik haal wat gegevens op uit een Volkswagen / Audi legacy systeem.
En in het veld "vermogen" staat soms 85 voor 85 pk maar soms ook 850 en dan bedoelen ze ook 85 pk
Dus ik dacht slim te wezen...lol :)

code:
1
2
3
4
//Test if integer is above 600 ONLY the veyron will be bugged now ;)
if($car['max_vrm'] > 600) {
    $car['max_vrm'] = $car['max_vrm'] / 10;
}

Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
chem schreef op maandag 13 februari 2012 @ 15:55:
Argh, SOAP webservices die bij elke functie 1 variabele teruggeeft: een string aan XML-data.

For fucks sake…
Service behorende bij een facturering & urenmanagement systeem toevallig? Schijnt nogal vaak voor te komen bij software bedrijven in die hoek: van stabiele en gedocumenteerde APIs heeft die kliek over het algemeen nooit gehoord is mijn ervaring. En dat uit zich dan vaak in van die GetXML / SetXML aanroepen. Lekker 'flexibel' en gemaakt op 'toekomstige groei'.

Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 21:05

Haan

dotnetter

Firesphere schreef op maandag 13 februari 2012 @ 17:47:
[...]

Domweg slechte ervaringen mee. Het protocol is best mooi, maar ik kreeg dus ook platte strings terug waar ik maar van moest hopen dat wat ik terug kreeg consequent was, et cetera.

Niet grappig dus. Dan ben je zo'n protocol vrij rap zat ;)
Maar dat heeft dus niks met het protocol te maken. Ranzige troep kan je overal mee maken zelfs in C# / .NET :Y) .

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 19:09

chem

Reist de wereld rond

R4gnax schreef op dinsdag 14 februari 2012 @ 00:44:
[...]


Service behorende bij een facturering & urenmanagement systeem toevallig? Schijnt nogal vaak voor te komen bij software bedrijven in die hoek: van stabiele en gedocumenteerde APIs heeft die kliek over het algemeen nooit gehoord is mijn ervaring. En dat uit zich dan vaak in van die GetXML / SetXML aanroepen. Lekker 'flexibel' en gemaakt op 'toekomstige groei'.
Nope, maar ik zie dit de laatste tijd echt té vaak bij .NET gebaseerde systemen. Het lijkt me in .NET toch echt niet zo lastig om gewoon een nette SOAP interface naar buiten te gooien...

Misschien zwerft er ergens een tutorial rond die dit aanraadt. Die persoon moet dus een nekschot krijgen :(

[ Voor 7% gewijzigd door chem op 14-02-2012 09:09 ]

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Ach, wees blij dat het xml gewrapped is in een webservice, en niet CSV ofzo. :P

Maar idd, die paketten waar R4gnax op doelt, zoals bijv. AFAS zijn behoorlijk -ruk- wat dat betreft.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 21:05

Haan

dotnetter

Juist in .NET is het haast onmogelijk moet je bewust je best doen om niet een goede SOAP webservice te bouwen. De problemen die ik ben tegen gekomen waren altijd icm PHP soap webservices, dat is dan meestal gehannes met datatypes, wel niet nullable zijn van properties e.d.

[ Voor 6% gewijzigd door Haan op 14-02-2012 09:13 ]

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • L-VIS
  • Registratie: April 2005
  • Laatst online: 22:08
chem schreef op dinsdag 14 februari 2012 @ 09:08:
Nope, maar ik zie dit de laatste tijd echt té vaak bij .NET gebaseerde systemen. Het lijkt me in .NET toch echt niet zo lastig om gewoon een nette SOAP interface naar buiten te gooien...

Misschien zwerft er ergens een tutorial rond die dit aanraadt. Die persoon moet dus een nekschot krijgen :(
Wat ik vooral lastig vind aan webservices is om er een UTF8 encryptie er over heen te gooien :+

Acties:
  • 0 Henk 'm!

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Haan schreef op dinsdag 14 februari 2012 @ 09:11:
Juist in .NET is het haast onmogelijk moet je bewust je best doen om niet een goede SOAP webservice te bouwen. De problemen die ik ben tegen gekomen waren altijd icm PHP soap webservices, dat is dan meestal gehannes met datatypes, wel niet nullable zijn van properties e.d.
Moet je eens proberen om een .Net SOAP client te genereren voor een service die een unsignedInteger heeft in de WSDL :N

Nu met Land Rover Series 3 en Defender 90


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Firesphere schreef op maandag 13 februari 2012 @ 17:47:
[...]

Domweg slechte ervaringen mee. Het protocol is best mooi, maar ik kreeg dus ook platte strings terug waar ik maar van moest hopen dat wat ik terug kreeg consequent was, et cetera.

Niet grappig dus. Dan ben je zo'n protocol vrij rap zat ;)
Mjah, zoals gezegd, iedere taal of protocol kun je verkrachten. Ik kwam gisteren een vraag tegen op StackOverflow waar iemand handmatig een "HTTPS"-client en -server aan het bouwen was, die allesbehalve HTTP-verkeer verstuurden. Ja, de eerste twee headers (verb + host), en vervolgens een sloot aan binaire data. En zich dan afvragen waarom het niet door een firewall komt. :') Als je die code mag gaan onderhouden (of er tegenaan moet gaan communiceren), kun je ook zeggen dat HTTP kudt is. :P

Ik vind SOAP een fijn protocol. Ik heb vooral veel ellende meegemaakt met SOAP-services geschreven in PHP en Java, en dan niet met een framework erachter, maar handcoded ... dat is gewoon vragen om problemen.

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


Acties:
  • 0 Henk 'm!

  • Zsub
  • Registratie: Juli 2006
  • Laatst online: 21:51
Ik weet niet of dit wel eens geplaatst is... Een stukje voorbeeldcode uit een bekende push notif. library in php, deze code is een voorbeeld voor de iOS app om zich aan te melden:
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
    // Check what Registered Types are turned on. This is a bit tricky since if two are enabled, and one is off, it will return a number 2... not telling you which
    // one is actually disabled. So we are literally checking to see if rnTypes matches what is turned on, instead of by number. The "tricky" part is that the 
    // single notification types will only match if they are the ONLY one enabled.  Likewise, when we are checking for a pair of notifications, it will only be 
    // true if those two notifications are on.  This is why the code is written this way ;)
    if(rntypes == UIRemoteNotificationTypeBadge){
        pushBadge = true;
    }
    else if(rntypes == UIRemoteNotificationTypeAlert){
        pushAlert = true;
    }
    else if(rntypes == UIRemoteNotificationTypeSound){
        pushSound = true;
    }
    else if(rntypes == ( UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert)){
        pushBadge = true;
        pushAlert = true;
    }
    else if(rntypes == ( UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)){
        pushBadge = true;
        pushSound = true;
    }
    else if(rntypes == ( UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)){
        pushAlert = true;
        pushSound = true;
    }
    else if(rntypes == ( UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)){
        pushBadge = true;
        pushAlert = true;
        pushSound = true;
    }

Toegegeven, ik had geen idee dat het makkelijker kan, maar mijn collega's hebben er dit van gefabriceerd :9
C++:
1
2
3
4
    // bit masks are not that hard...
    BOOL pushBadge = rntypes & UIRemoteNotificationTypeBadge;
    BOOL pushAlert = rntypes & UIRemoteNotificationTypeAlert;
    BOOL pushSound = rntypes & UIRemoteNotificationTypeSound;

Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 22-09 11:37

TheNephilim

Wtfuzzle

w00t, vandaag aan de slag met WPML, een (betaalde) plugin waarmee je Wordpress Multilanguage maakt. Een nieuwe website voor een museum. Eens kijken of dat nog wenen word vandaag XD

Acties:
  • 0 Henk 'm!

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

Snake

Los Angeles, CA, USA

TheNephilim schreef op dinsdag 14 februari 2012 @ 10:19:
w00t, vandaag aan de slag met WPML, een (betaalde) plugin waarmee je Wordpress Multilanguage maakt. Een nieuwe website voor een museum. Eens kijken of dat nog wenen word vandaag XD
Ga je naar Wenen?

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


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 22-09 11:37

TheNephilim

Wtfuzzle

Hahaha, nee als in
` we - nen (weende, h. geweend) schreien

Acties:
  • 0 Henk 'm!

  • Zsub
  • Registratie: Juli 2006
  • Laatst online: 21:51
Haha! Het ene ouderwetse woord uitleggen met het andere :P Nicely done!

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Toegegeven, ik had geen idee dat het makkelijker kan,
En -dat- is TRWTF. Ik verbaas me (wellicht onterecht) nog steeds over het vreselijke niveau van mensen in ons vakgebied. Ik vind het schrijnend dat er zoveel basiskennis mist bij zoveel mensen in de IT.

[ Voor 24% gewijzigd door Grijze Vos op 14-02-2012 10:52 ]

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • Paul
  • Registratie: September 2000
  • Laatst online: 22:08
Mja, ik heb HBO Software Engineering en daar kwamen bitmasks ook niet aan de orde hoor :P Eerste keer dat ik daar echt mee in aanraking kwam was toen ik embedded ging programmeren en zeg nu zelf, hoeveel mensen doen dat? Ken je het gezegde over een programmeur met een soldeerpistool? :+

Als je gewoon letterlijk nog nooit van iets gehoord hebt heb je ook geen vermoeden van het bestaan ervan :) Zoiets heet ervaring en kennis, en die heb je in het begin gewoon nog niet...

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Zsub schreef op dinsdag 14 februari 2012 @ 10:04:
Toegegeven, ik had geen idee dat het makkelijker kan, maar mijn collega's hebben er dit van gefabriceerd :9
C++:
1
2
3
4
    // bit masks are not that hard...
    BOOL pushBadge = rntypes & UIRemoteNotificationTypeBadge;
    BOOL pushAlert = rntypes & UIRemoteNotificationTypeAlert;
    BOOL pushSound = rntypes & UIRemoteNotificationTypeSound;
Ik zou er alleen bools van maken ipv BOOLs, wat een win32 type is voor C dat eigenlijk een int is. Oftewel, als UIRemoteNotificationTypeSound bijvoorbeeld 4 is, dan zal pushSound ook 4 zijn als het vlaggetje is gezet. Een compare met true zal vervolgens ook false geven, want true geconvert naar int is 1, niet 4.

Óf je cast de hele expressie naar bool alvorens het op te slaan in een BOOL, dan wordt het wel 1 of 0.

.edit: ik lees net dat het om een iOS app gaat. Geen idee wat BOOL betekent onder iOS.

[ Voor 12% gewijzigd door .oisyn op 14-02-2012 11:10 ]

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!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Paul schreef op dinsdag 14 februari 2012 @ 10:49:
Mja, ik heb HBO Software Engineering en daar kwamen bitmasks ook niet aan de orde hoor :P
Begrijpelijk als je het niet gehad hebt maar ik vind het wel zorgelijk dat op een hbo-opleiding bitmasks niet behandeld worden.

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!

  • Styxxy
  • Registratie: Augustus 2009
  • Laatst online: 16:37
Paul schreef op dinsdag 14 februari 2012 @ 10:49:
Mja, ik heb HBO Software Engineering en daar kwamen bitmasks ook niet aan de orde hoor :P Eerste keer dat ik daar echt mee in aanraking kwam was toen ik embedded ging programmeren en zeg nu zelf, hoeveel mensen doen dat?
Je zou sowieso wel moeten beseffen dat het korter kan. Een if constructie zoals daar werd gedaan (waar je binnen if statements bepaalde waarden op true gaat zetten) kan toch wel stukken korter geschreven worden. En als je bitmasks niet kent, kan je toch alvast beginnen met "variabele = (conditional statement)" te doen. Daarna kan je eventueel daarin optimaliseren (in hoeverre jouw compiler dat al niet gaat doen).
kenneth schreef op dinsdag 14 februari 2012 @ 11:06:
[...]
Begrijpelijk als je het niet gehad hebt maar ik vind het wel zorgelijk dat op een hbo-opleiding bitmasks niet behandeld worden.
Om eerlijk te zijn, in mijn opleiding (toegepaste informatica, hier in België) werd het maar zeer beperk behandeld. Maar er werd dan ook veel (bijna) niet behandeld (reg.ex. werd doodverzwegen, version control bestond niet eens, ...).

[ Voor 24% gewijzigd door Styxxy op 14-02-2012 11:10 ]


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

kenneth schreef op dinsdag 14 februari 2012 @ 11:06:
[...]
Begrijpelijk als je het niet gehad hebt maar ik vind het wel zorgelijk dat op een hbo-opleiding bitmasks niet behandeld worden.
Ben toch wel benieuwd welke opleiding dat is geweest, tijdens mijn hbo opleiding (hogere informatica te Amsterdam) zijn ze wel behandeld.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ik kan me ook niet heugen dat ik ze heb gehad op de HIO HvU. Zoals bijvoorbeeld in numerieke wiskunde bij de beroemde modpow functie werd ook gewoon gewerkt met modulo 2 om te testen of een bit gezet was 8)7. Ik was altijd degene met de creatieve bitneukoplossingen.

[ Voor 12% gewijzigd door .oisyn op 14-02-2012 11:14 ]

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!

  • Paul
  • Registratie: September 2000
  • Laatst online: 22:08
kenneth schreef op dinsdag 14 februari 2012 @ 11:06:
[...]
Begrijpelijk als je het niet gehad hebt maar ik vind het wel zorgelijk dat op een hbo-opleiding bitmasks niet behandeld worden.
Waarom? Het is een heel low level trucje wat je compleet niet helpt bij het omzetten van user requirements naar een FO (en TO) etc, en er zijn nog duizenden andere trucjes die ook niet behandeld zijn. Ook hebben we redelijk veel Java gehad, beetje C++, amper Delphi, geen .Net (want dat bestond nog niet).

Een opleiding is er om je de basis bij te brengen, de rest leer je door vervolgcursussen of door het gewoon te doen, en ook daar geldt dat je pas ervaring krijgt als je met iets te maken krijgt :)

@Erkens: HIO Hogeschool 's-Hertogenbosch, nu Avans.

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock

Pagina: 1 ... 80 ... 103 Laatste

Dit topic is gesloten.

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