Is een SPoE niet gewoon een voorbeeld van een SPoR?
Nee, Single Point of Entry en Single Point of Return zijn twee verschillende dingen.
Single Point of Exit 
Ik had me de ambiguïteit ervan niet gerealiseerd.
Ik had me de ambiguïteit ervan niet gerealiseerd.
[ Voor 55% gewijzigd door .oisyn op 30-01-2013 11:58 ]
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.
Ik dacht inderdaad ook aan Exit, en niet aan Entry.
C#:
1
2
3
4
5
6
7
8
9
10
11
12
| try { int birthdayYear = Convert.ToInt32(tbBirthday.Text.Substring(6, 4)); int birthdayMonth = Convert.ToInt32(tbBirthday.Text.Substring(3, 2)); int birthdayDay = Convert.ToInt32(tbBirthday.Text.Substring(0, 2)); DateTime birthday = new DateTime(birthdayYear, birthdayMonth, birthdayDay); Logger.Debug("Conversion to System.DateTime succeeded. tbStartdate.Text=" + tbBirthday.Text); } catch (ArgumentOutOfRangeException) { Logger.Debug("Conversion to System.DateTime FAILED! tbStartdate.Text=" + tbBirthday.Text); } |
En alsof het nog niet erg genoeg is, stond deze code ook nog eens vier keer exact hetzelfde in 1 bestand

Kater? Eerst water, de rest komt later
Wut??
Een try/catch op een datum????
Een try/catch op een datum????
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!
Ook die try/catch: Oh jee, ik doe iets ingewikkelds met converteren, laat ik er een try/catch-blok van maken, dat is robuust

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
Zou je zeggen, maar zelfs de catch is nog niet goed, want Convert.ToInt32 zal een FormatException gooien bij verkeerde inputkenneth schreef op woensdag 06 februari 2013 @ 10:52:
Ook die try/catch: Oh jee, ik doe iets ingewikkelds met converteren, laat ik er een try/catch-blok van maken, dat is robuust

Kater? Eerst water, de rest komt later
Het catchen van Argument(...)Exceptions is sowieso uit den boze natuurlijk.
Niet altijd. SharePoint gooit namelijk vrolijk een ArgumentException als je probeert een lijst aan te spreken die niet bestaat.
We are shaping the future
In een zekere zin is de identifier die je dan gebruikt niet geldig. :-) Dus volgens de MSDN docs zou je dan idd die exception kunnen krijgen. Dat het netter is iets als een Maybe te gebruiken ben ik met je eens.Alex) schreef op woensdag 06 februari 2013 @ 22:39:
Niet altijd. SharePoint gooit namelijk vrolijk een ArgumentException als je probeert een lijst aan te spreken die niet bestaat.
C'est le ton qui fait la musique. | Blog | @linkedin
R8 | 18-55 IS | 50mm 1.8 2 | 70-200 2.8 APO EX HSM | 85 1.8
offtopic:
oeps, verkeerde topic
oeps, verkeerde topic
[ Voor 93% gewijzigd door ValHallASW op 07-02-2013 10:33 ]
Als je een SharePoint-lijst wil opvragen aan de hand van de naam heb je weinig keus. Er is geen method "DoesListExist", "TryGetList" of zoiets. Je kunt de lijst van alle lijsten ophalen en daar overheen itereren, maar dat is zowat nog ranziger dan try/catch.Spockz schreef op woensdag 06 februari 2013 @ 22:59:
[...]
In een zekere zin is de identifier die je dan gebruikt niet geldig. :-) Dus volgens de MSDN docs zou je dan idd die exception kunnen krijgen. Dat het netter is iets als een Maybe te gebruiken ben ik met je eens.
We are shaping the future
Het is een design keuze dat je een null-achtig resultaat oplevert als bepaalde data niet aanwezig is, of dat je de programma-executie afbreekt. Wat er gekozen is hangt af van hoe uitzonderlijk deze situatie gezien wordt. Mijn inziens kan er maar beter een exception gegooid worden wanneer de aanroeper naar verwachting toch niet verder kan gaan.Spockz schreef op woensdag 06 februari 2013 @ 22:59:
[...]
In een zekere zin is de identifier die je dan gebruikt niet geldig. :-) Dus volgens de MSDN docs zou je dan idd die exception kunnen krijgen. Dat het netter is iets als een Maybe te gebruiken ben ik met je eens.
Helaas is het zo dat je aan de signatuur van de functie (meestal) niet kan zien welke keuze gemaakt is, tenzij dat in een contract of met commentaar gespecificeerd is.
putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]
Hoe check je of een hoster vanuit verschillende locaties performt, dus niet alleen vanuit je eigen PC of iets wat in je eigen land staat?
iOS developer
Er zijn best veel grote gratis proxies. Maar wat heeft dat te maken met slechte programmeervoorbeelden
Vandaag ook weer een hele mooie ontdekt:
Toch maar ff vervangen door:
Visual Basic:
1
| .....Text = Replace(FormatCurrency(TebetalenBedrag, 2, TriState.UseDefault, TriState.UseDefault, TriState.UseDefault), "$", "€ ") |

Toch maar ff vervangen door:
Visual Basic:
1
| .....Text = TeBetalenBedrag.ToString("€ 0.00") |
Dat is een mooie conversie van VB6 naar VB.NET. Iets waar ik bij mij ook bang voor ben. (meerendeel is nog in vb6 geschreven nl...)
Tegn die tijd zal ik het hele project wel posten
-->:'(
Tegn die tijd zal ik het hele project wel posten
🇪🇺 pro Europa! | Puinhoop Veroorzaken en Vertrekken (PVV)
Alleen dit was geen conversie, maar een stukje .Net van, euh...., 2 maand oud?Rhapsody schreef op woensdag 13 februari 2013 @ 20:40:
Dat is een mooie conversie van VB6 naar VB.NET.
Ok, dan heb ik ook geen excuses meer
🇪🇺 pro Europa! | Puinhoop Veroorzaken en Vertrekken (PVV)
Verwijderd
Het is dan ook niet correct. Eigenlijk zou je de default regional settings van uw Windows client moeten overnemen...
Zou je niet liever .ToString("c") gebruiken?HeSitated schreef op woensdag 13 februari 2013 @ 20:11:
Vandaag ook weer een hele mooie ontdekt:
Visual Basic:
1 .....Text = Replace(FormatCurrency(TebetalenBedrag, 2, TriState.UseDefault, TriState.UseDefault, TriState.UseDefault), "$", "€ ")
![]()
Toch maar ff vervangen door:
Visual Basic:
1 .....Text = TeBetalenBedrag.ToString("€ 0.00")
Kater? Eerst water, de rest komt later
Bijna -nooit- wil je de default regional settings van de client gebruiken als je currency format. Welke currency je gebruikt staat doorgaans vast. Da's ook een van mn grootste issues met de globalization van het .NET framework, dat ze dat niet goed geregeld hebben. Als je het netjes wilt doen moet je custom cultures gaan bouwen om die dingen goed te regelen, ipv dat de text localization en currency concerns netjes separated zijn.Verwijderd schreef op woensdag 13 februari 2013 @ 21:55:
Het is dan ook niet correct. Eigenlijk zou je de default regional settings van uw Windows client moeten overnemen...
Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info
Het is anders vrij gebruikelijk dat $ 1,- == € 1,-Grijze Vos schreef op donderdag 14 februari 2013 @ 08:43:
[...]
Bijna -nooit- wil je de default regional settings van de client gebruiken als je currency format. Welke currency je gebruikt staat doorgaans vast. Da's ook een van mn grootste issues met de globalization van het .NET framework, dat ze dat niet goed geregeld hebben. Als je het netjes wilt doen moet je custom cultures gaan bouwen om die dingen goed te regelen, ipv dat de text localization en currency concerns netjes separated zijn.
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Die gebruik ik NOOIT!Haan schreef op donderdag 14 februari 2013 @ 07:54:
Zou je niet liever .ToString("c") gebruiken?
Laat ik het alsvolgt motiveren:
Ik heb nog nooit meegemaakt dat omwille van, danwel de clientsettings, danwel de settings van de webserver, een bedrag in een andere valuta moest worden afgerekend....
TrueWoy schreef op donderdag 14 februari 2013 @ 09:01:
[...]
Het is anders vrij gebruikelijk dat $ 1,- == € 1,-
Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info
Tja, het goedzetten van de cultureinfo is toch niet alleen nuttig voor valuta?HeSitated schreef op donderdag 14 februari 2013 @ 21:07:
[...]
Die gebruik ik NOOIT!
Laat ik het alsvolgt motiveren:
Ik heb nog nooit meegemaakt dat omwille van, danwel de clientsettings, danwel de settings van de webserver, een bedrag in een andere valuta moest worden afgerekend....
Het heeft niets te maken met het al dan niet goed zetten van de cultureinfo.Davio schreef op vrijdag 15 februari 2013 @ 09:56:
Tja, het goedzetten van de cultureinfo is toch niet alleen nuttig voor valuta?
Ik ben als ontwikkelaar echter niet graag afhankelijk van meer dan strikt noodzakelijk is....
En als het nu voordelen op zou leveren...
Daarnaast op het moment dat je met meerdere valuta werkt, heb je er sowieso niets aan.
De vraag is natuurlijk of je een valuta waarvan je de currency weet als valuta moet behandelen in globalization. Mijns inziens moet je het gewoon als getal behandelen en zelf het juiste symbool erbij zetten. Je wil immers het getal localizen, niet de munteenheid.
Dat is precies wat ik (be)doe(l):PolarBear schreef op zaterdag 16 februari 2013 @ 19:58:
Je wil immers het getal localizen, niet de munteenheid.
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| void Main() { var amount = 12.5; Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-us"); amount.ToCurrency().Dump(); Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("nl-nl"); amount.ToCurrency().Dump(); } // Define other methods and classes here public static class TestExtensions { public static string ToCurrency(this double value) { return value.ToString("€ 0.00"); } } |
Dit levert met LinqPad keurig netjes:
€ 12.50
€ 12,50
[ Voor 5% gewijzigd door HeSitated op 17-02-2013 12:50 ]
Of gewoon:
(Aangezien 9 uit 10x je die euro toch uit een resource file laat komen.)
C#:
1
| string.Format("€ {0:n}", amount).Dump(); |
(Aangezien 9 uit 10x je die euro toch uit een resource file laat komen.)
[ Voor 35% gewijzigd door Grijze Vos op 17-02-2013 13:39 ]
Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info
Een bedrag als double (of float) lijkt een ook een goed voorbeeld voor dit topicHeSitated schreef op zondag 17 februari 2013 @ 12:49:
[...]
Dat is precies wat ik (be)doe(l):
C#:
1 2 3 4 5 6 7 8 // Define other methods and classes here public static class TestExtensions { public static string ToCurrency(this double value) { return value.ToString("€ 0.00"); } }
Dit levert met LinqPad keurig netjes:
€ 12.50
€ 12,50
[ Voor 20% gewijzigd door Jegorex op 17-02-2013 19:10 ]
Ik zat vrijdag nog een methode te refactoren die iets met twee bedragen deed. Het ene bedrag was een double, het andere een string
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
put your teeth on the sidewalk?
Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info
Het duurde even.
Edit: blame the font, hier valt 'ie meteen op.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
| function languagesEqual(language1, language2) { if (!language1 || !language1.value || !language2 || !!language2.value ) { return false; } // ... return result; } |
Edit: blame the font, hier valt 'ie meteen op.
[ Voor 10% gewijzigd door CodeCaster op 20-02-2013 23:36 ]
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
"Ik mag aannemen dat dit door een stagiair is gemaakt?"Marcj schreef op maandag 18 februari 2013 @ 07:10:
Wat zeg je eigenlijk tegen iemand die het volgende opschrijft:
Java:
1 int nummer = (Integer) null;![]()
Naast het feit dat de vlag de lading niet dekt is het ook gewoon vreselijk omslachtige code. Dat kan veel beter.CodeCaster schreef op woensdag 20 februari 2013 @ 23:35:
Het duurde even.
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 function languagesEqual(language1, language2) { if (!language1 || !language1.value || !language2 || !!language2.value ) { return false; } // ... return result; }
Edit: blame the font, hier valt 'ie meteen op.
JavaScript:
1
| return !!( first && second && ( first.value === second.value )); |
C#:
1
2
3
4
5
6
| private string _foo { get; set; } public string Foo { get { return _foo ; } set { _foo = value; } } |
Die had het nog niet helemaal begrepen

Misschien na een refactoring-actie?jip_86 schreef op donderdag 21 februari 2013 @ 21:21:
C#:
1 2 3 4 5 6 private string _foo { get; set; } public string Foo { get { return _foo ; } set { _foo = value; } }
Die had het nog niet helemaal begrepen
If money talks then I'm a mime
If time is money then I'm out of time
Er staat niet voor niks "// ...", er wordt daarna nog van alles met first en second gedaan die al dan niet true kunnen opleveren en die uiteindelijk nog gerefactord moet worden naar een score van 0 tot 100% (aan de hand van de qvalue, het zijn HTTP accept-params). Er moet dus gewoon even aan parameter checking gedaan worden, anders zou ik je geen ongelijk geven.R4gnax schreef op donderdag 21 februari 2013 @ 21:18:
[...]
Naast het feit dat de vlag de lading niet dekt is het ook gewoon vreselijk omslachtige code. Dat kan veel beter.
JavaScript:
1 return !!( first && second && ( first.value === second.value ));
[ Voor 15% gewijzigd door CodeCaster op 21-02-2013 23:24 ]
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Da fuq?!CodeCaster schreef op donderdag 21 februari 2013 @ 23:22:
Er staat niet voor niks "// ...", er wordt daarna nog van alles met first en second gedaan die al dan niet true kunnen opleveren en die uiteindelijk nog gerefactord moet worden naar een score van 0 tot 100% (aan de hand van de qvalue, het zijn HTTP accept-params). Er moet dus gewoon even aan parameter checking gedaan worden, anders zou ik je geen ongelijk geven.

Daar mag dan wel eens iemand een stoom-cursus "correct beschrijvende functie namen toekennen" naar z'n kop geslingerd krijgen, want dat lees je niet van een naam als languagesEqual af.
hernoem het naar languagesAlmostEqual en het klopt weer 
languagesEqualButSometimesNot is ook een goede kandidaad.
languagesEqualButSometimesNot is ook een goede kandidaad.
Is die pedante toon echt noodzakelijk? Jij hebt namelijk geen gelijk, dat kan ik je ook niet kwalijk nemen omdat niet alle code er staat en begrijpend lezen lastig blijft, maar de functienaam dekt momenteel volledig de lading.R4gnax schreef op vrijdag 22 februari 2013 @ 01:18:
[...]
Da fuq?!![]()
Daar mag dan wel eens iemand een stoom-cursus "correct beschrijvende functie namen toekennen" naar z'n kop geslingerd krijgen, want dat lees je niet van een naam als languagesEqual af.
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Equality checks zijn heel simpel: twee (of meer) dingen zijn gelijk, of ze zijn niet gelijk.CodeCaster schreef op vrijdag 22 februari 2013 @ 08:10:
[...]
de functienaam dekt momenteel volledig de lading.
Wat jij beschrijft is een complexe test die uiteindelijk ergens een glijdende waarde in het bereik [0..1] terug geeft, welke de mate van passendheid aangeeft. Dat heet een fitness function en wat zo'n functie als resultaat terug geeft is een fitness value.
PHP:
1
2
3
| Function form(){ CheckboxField::create('Spam', 'Ja, stuur mij nieuwsberichten'); } |
Niet echt een faal, wel humor
Even ter info, het is Silverstripe, dus de syntax voor een veld is:
PHP:
1
| FieldType::create('FieldName', 'FieldTitle', 'FieldValue'); |
[ Voor 36% gewijzigd door Firesphere op 22-02-2013 20:28 ]
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!
Wel een faal dus, want ik zie 2 argumenten, terwijl de functie om 3 vraagt.
| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett
Sorry, alleen de eerste is verplichtJaap-Jan schreef op vrijdag 22 februari 2013 @ 20:45:
Wel een faal dus, want ik zie 2 argumenten, terwijl de functie om 3 vraagt.
PHP:
1
| public function __construct($name, $title = null, $value = null) |
Het klopt dus wel. My bad om dat niet direct er bij te zetten.
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!
Bedankt voor de link, maar je mag wat mij betreft nog steeds iets minder aanvallend posten. Zoals ik al zei:R4gnax schreef op vrijdag 22 februari 2013 @ 20:23:
[...]
Equality checks zijn heel simpel: twee (of meer) dingen zijn gelijk, of ze zijn niet gelijk.
Wat jij beschrijft is een complexe test die uiteindelijk ergens een glijdende waarde in het bereik [0..1] terug geeft, welke de mate van passendheid aangeeft. Dat het een fitness function en wat zo'n functie als resultaat terug geeft is een fitness value.
CodeCaster schreef op donderdag 21 februari 2013 @ 23:22:
die uiteindelijk nog gerefactord moet worden naar een score
Er staat namelijk nu, en voel je absoluut vrij commentaar te hebben op de code:CodeCaster schreef op vrijdag 22 februari 2013 @ 08:10:
maar de functienaam dekt momenteel volledig de lading.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| function languagesEqual(language1, language2) { if (!language1 || !language1.value || !language2 || !language2.value ) { return false; } // TODO: http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html return (calculateLanguageMatch(language1, language2) >= 1); } function calculateLanguageMatch(language1, language2) { var primaryMatch = language1.value.split('-')[0].toLowerCase() == language2.value.split('-')[0].toLowerCase(); // TODO: calculate score of match by languageN.qValue (0.000-1.000) and take subtag into account, en-US != en-GB return (primaryMatch ? 1 : 0); } |
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Zo werkt de Accept-Language header dus ook gewoon niet. Gegeven "en-US;q=0" zal de resulterende quality value voor de taal "en-US" 0 zijn. En dat terwijl het toch echt dezelfde taal is.CodeCaster schreef op zaterdag 23 februari 2013 @ 01:23:
Er staat namelijk nu, en voel je absoluut vrij commentaar te hebben op de code:
Het functievoorschrift dat je zoekt is waarschijnlijk isLanguageAccepted(language, header), gok ik.
Verder zit je nu naamgeving bewust te baseren op een tijdelijke, incomplete implementatie van een andere functie waarvan de logica op dit moment aantoonbaar incorrect is. Dat is mogelijk een nog grotere WTF, eerlijk gezegd.
Mwa, wie zegt dat de complete (of gedeeltelijke) header die functie in gaat? Als er nou commentaar boven de functie zou staan die de parameters beschrijft..R4gnax schreef op zondag 24 februari 2013 @ 00:12:
[...]
Zo werkt de Accept-Language header dus ook gewoon niet. Gegeven "en-US;q=0" zal de resulterende quality value voor de taal "en-US" 0 zijn. En dat terwijl het toch echt dezelfde taal is.
Het functievoorschrift dat je zoekt is waarschijnlijk isLanguageAccepted(language, header), gok ik.
Verder zit je nu naamgeving bewust te baseren op een tijdelijke, incomplete implementatie van een andere functie waarvan de logica op dit moment aantoonbaar incorrect is. Dat is mogelijk een nog grotere WTF, eerlijk gezegd.
Overigens had ik gekozen voor languagesAreEqual als naam. Dat leest altijd lekker weg:
JavaScript:
1
| if (languagesAreEqual(x, y) |
Mother north, how can they sleep while their beds are burning?
Ik begrijp niet helemaal wat je met de eerste alinea bedoelt, maar hij lijkt mij niet relevant: ik wil alleen maar weten of 'en' hetzelfde is als 'en-US', en in deze context is dat precies wat die functie doet.R4gnax schreef op zondag 24 februari 2013 @ 00:12:
[...]
Zo werkt de Accept-Language header dus ook gewoon niet. Gegeven "en-US;q=0" zal de resulterende quality value voor de taal "en-US" 0 zijn. En dat terwijl het toch echt dezelfde taal is.
Het functievoorschrift dat je zoekt is waarschijnlijk isLanguageAccepted(language, header), gok ik.
Verder zit je nu naamgeving bewust te baseren op een tijdelijke, incomplete implementatie van een andere functie waarvan de logica op dit moment aantoonbaar incorrect is. Dat is mogelijk een nog grotere WTF, eerlijk gezegd.
Misschien heb je een punt met dat er betere alternatieven kunnen zijn voor de functienaam, maar ik snap nog steeds niet dat dat op zo'n toon moet; kun je dat niet op een normale manier doen, en in plaats van met aannames te schermen er gewoon voor zetten "Als je X wil, kun je beter Y doen"? Dan kan ik gewoon zeggen dat ik X helemaal niet wil en blijft het hier wat gezelliger.
[ Voor 27% gewijzigd door CodeCaster op 24-02-2013 11:12 ]
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Ik denk dat je kalme toon hem niet aan staat
Bij elke prijs sla ik altijd in de database de culture op in de database.HeSitated schreef op zondag 17 februari 2013 @ 12:49:
[...]
Dat is precies wat ik (be)doe(l):
C#:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 void Main() { var amount = 12.5; Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-us"); amount.ToCurrency().Dump(); Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("nl-nl"); amount.ToCurrency().Dump(); } // Define other methods and classes here public static class TestExtensions { public static string ToCurrency(this double value) { return value.ToString("€ 0.00"); } }
Dit levert met LinqPad keurig netjes:
€ 12.50
€ 12,50
Het voordeel hiervan is dat ik niet hoef na te denken over weergave van o.a. negatieve bedragen, punten en of komma's.
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| public string Format(decimal value, CultureInfo cultureInfo) { string formattedString = String.Empty; if (cultureInfo != null) { formattedString = value.ToString("c", cultureInfo); } else { formattedString = value.ToString("c"); } return formattedString; } |
To say of what is that it is not, or of what is not that it is, is false, while to say of what is that it is, and of what is not that it is not, is true. | Aristoteles
Eh?
C#:
1
| return cultureInfo != null ? value.ToString("c", cultureInfo) : value.ToString("c"); |
[ Voor 3% gewijzigd door Olaf van der Spek op 24-02-2013 12:03 ]
Huh?Spiral schreef op zondag 24 februari 2013 @ 11:20:
Bij elke prijs sla ik altijd in de database de culture op in de database.
Het voordeel hiervan is dat ik niet hoef na te denken over weergave van o.a. negatieve bedragen, punten en of komma's.
En als je nu twee gebruikers hebt met twee verschillende cultures?
Dat ligt eraan in welke tabel je die koppeling legt. Koppel de culture aan het bedrijf, persoon, fruit, product, fiets, tijd whatever that suits you and is the best for your situation.HeSitated schreef op zondag 24 februari 2013 @ 12:03:
[...]
Huh?![]()
En als je nu twee gebruikers hebt met twee verschillende cultures?
In onze situatie is het gekoppeld aan de vestiging.
eh Potato, patato ? Maar goed dat is een andere discussie. Functioneel is het gelijk.Olaf van der Spek schreef op zondag 24 februari 2013 @ 12:03:
Eh?
C#:
1 return cultureInfo != null ? value.ToString("c", cultureInfo) : value.ToString("c");
[ Voor 3% gewijzigd door Spiral op 24-02-2013 12:34 ]
To say of what is that it is not, or of what is not that it is, is false, while to say of what is that it is, and of what is not that it is not, is true. | Aristoteles
Ik was maar eens oude code terug aan het lezen, kom je dit soort dingen tegen
:
en dan vervolgens op deze manier de gebruiken controleren:

PHP:
1
2
3
4
5
6
| if(isset($_COOKIE['autologin'])){ $array = explode(":",$_COOKIE['autologin']); $_SESSION['id'] = $array[0]; $_SESSION['username'] = stripslashes($array[1]); $_SESSION['password'] = stripslashes($array[2]); } |
en dan vervolgens op deze manier de gebruiken controleren:
PHP:
1
2
3
4
5
| if (!$_SESSION['username']) { header("Location: index.php"); exit(); } |
Ik ben (nog) niet zo een webheld, maar is er iets grondig mis met _enkel_ het 2e?martin149 schreef op zondag 24 februari 2013 @ 18:06:
Ik was maar eens oude code terug aan het lezen, kom je dit soort dingen tegen:
PHP:
1 2 3 4 5 6 if(isset($_COOKIE['autologin'])){ $array = explode(":",$_COOKIE['autologin']); $_SESSION['id'] = $array[0]; $_SESSION['username'] = stripslashes($array[1]); $_SESSION['password'] = stripslashes($array[2]); }
en dan vervolgens op deze manier de gebruiken controleren:
PHP:
1 2 3 4 5 if (!$_SESSION['username']) { header("Location: index.php"); exit(); }
Dat de combo van 1 & 2 een redelijke faal is is duidelijk, maar is er een reden om het 2e deel niet te gebruiken, gesteld dat deel 1 beter gedaan wordt?
Volgensmij kun je het prima gebruiken, als je er voor zorgt dat er niet met sessies geklooit kan worden. Of heb ik het fout? (dan moet ik mijn huidige code door gaan lopen)
Het levert in ieder geval een Notice op als de sessievariabele niet bestaat. Beter om met isset() te kijken of de sessievariabele bestaat. Om session hijacking te voorkomen kun je eventueel checken op de useragent en/of ip-adres.roeleboel schreef op zondag 24 februari 2013 @ 18:36:
[...]
Ik ben (nog) niet zo een webheld, maar is er iets grondig mis met _enkel_ het 2e?
Dat de combo van 1 & 2 een redelijke faal is is duidelijk, maar is er een reden om het 2e deel niet te gebruiken, gesteld dat deel 1 beter gedaan wordt?
Kun jij dan misschien ook even duidelijk maken wat je dan wel wilt bereiken? Het lijkt er namelijk niet op alsof je hier een taal-selectie mechanisme op basis van de Accept-Language header aan het maken bent. (Je lijkt je in elk geval niet aan de regels in de RFC te houden.)CodeCaster schreef op zondag 24 februari 2013 @ 11:02:
[...]
kun je dat niet op een normale manier doen, en in plaats van met aannames te schermen er gewoon voor zetten "Als je X wil, kun je beter Y doen"? Dan kan ik gewoon zeggen dat ik X helemaal niet wil en blijft het hier wat gezelliger.
Als je een taal selectie op basis van de Accept-Language header wil, kun je beter zoiets als het volgende doen.
JavaScript:
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
| /** * Get the language from the array of available language tags that has the best * quality value when matched against the array of language ranges from the * Accept-Language header, per the HTTP 1.1 RFC. */ function getBestAcceptedLanguage( languageTags, languageRanges ) { var current, best; best = { name : "", value : 0 } for ( var i = 0, n = languageTags.length; i < n ; ++i ) { current = { name : languageTags[ i ].name, value : matchTagAgainstRanges( languageTags[ i ], languageRanges ); }; if ( current.value > best.value ) { best = current; } } return best.value > 0 ? best : null; } function matchTagAgainstRanges( languageTag, languageRanges ) { var current, best; // NOTE: HTTP 1.1 RFC states that the quality value for a language tag // is the quality value of the language range from the Accept-Language // header's value string of which the name shares the longest common // prefix with the name of the language tag. // If no match is possible, the quality value is 0. best = { prefix : 0, value : 0 }; for ( var i = 0, n = languageRanges.length; i < n ; ++i ) { current = { prefix : measureCommonPrefix( languageTag, languageRanges[ i ]), value : 0; }; if ( current.prefix > best.prefix ) { // When a range does not specify a quality value, the RFC states it is 1. current.value = languageRanges[ i ] != null ? +languageRanges[ i ] : 1; current.value = Math.min( Math.max( current.value, 0 ), 1 ); best = current; } } return best.value; } function measureCommonPrefix( languageTag, languageRange ) { var tagParts = languageTag.name.toLowerCase().split( "-" ), rangeParts = languageRange.name.toLowerCase().split( "-" ), n = Math.min( tagParts.length, rangeParts.length ), prefix; for ( var i = 0 ; i < n ; ++i ) { if ( tagParts[ i ] !== rangeParts[ i ]) { break; } prefix += tagParts[ i ].length; } return prefix; } |
Nog korter:Olaf van der Spek schreef op zondag 24 februari 2013 @ 12:03:
Eh?
C#:
1 return cultureInfo != null ? value.ToString("c", cultureInfo) : value.ToString("c");
C#:
1
| return value.ToString("c", cultureInfo ?? CultureInfo.CurrentCulture); |
Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info
Waarom? Dit is het slechtste programmeervoorbeeldentopic, en ik postte in eerste instantie alleen maar dat ik over een dubbel uitroepteken heen las.R4gnax schreef op maandag 25 februari 2013 @ 01:44:
[...]
Kun jij dan misschien ook even duidelijk maken wat je dan wel wilt bereiken?
Dat ben ik ook helemaal niet aan het doen.Het lijkt er namelijk niet op alsof je hier een taal-selectie mechanisme op basis van de Accept-Language header aan het maken bent.
Vertel.(Je lijkt je in elk geval niet aan de regels in de RFC te houden.)
Dat heb ik serverside ongeveer op deze manier opgelost, ja.Als je een taal selectie op basis van de Accept-Language header wil, kun je beter zoiets als het volgende doen.
[ Voor 8% gewijzigd door CodeCaster op 25-02-2013 10:45 ]
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Lol, kom net op een mooie default error pagina:
Kan gebeuren, maar imho zou dat op funda.nl niet mogenServer Error in '/' Application.
Runtime Error
Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.
Details: To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off".
<!-- Web.Config Configuration File -->
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's <customErrors> configuration tag to point to a custom error page URL.
<!-- Web.Config Configuration File -->
<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>


[ Voor 3% gewijzigd door Janoz op 25-02-2013 13:05 ]
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Als er iets helemaal fubar is gegaan, gaat je custom error pagina ook niet meer werken. Maar heel netjes is het niet nee
Kater? Eerst water, de rest komt later
Verwijderd
Tot op heden lukt het ons hier om alles met een custom error pagina af te vangen (tenzij IIS onderuit ligt bijv), icm Elmah voor de logging werkt het perfect, ideaal of fouten te traceren en desgewenst even de gebruiker te bellen voor ondersteuningHaan schreef op maandag 25 februari 2013 @ 14:17:
Als er iets helemaal fubar is gegaan, gaat je custom error pagina ook niet meer werken. Maar heel netjes is het niet nee
[ Voor 3% gewijzigd door Verwijderd op 25-02-2013 14:25 ]
Nog korter:Grijze Vos schreef op maandag 25 februari 2013 @ 09:57:
[...]
Nog korter:
C#:
1 return value.ToString("c", cultureInfo ?? CultureInfo.CurrentCulture);
C#:
1
| return value.ToString("c", cultureInfo); |
De cultureinfo parameter is default de current culture: http://msdn.microsoft.com/en-us/library/18sthszb.aspx
edit:
al is de versie van Grijze Vos natuurlijk wel leesbaarder
al is de versie van Grijze Vos natuurlijk wel leesbaarder
[ Voor 7% gewijzigd door -Sander1981- op 25-02-2013 22:42 ]
I don't have a solution; but I do admire the problem.
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
| /* else make returned Chebyshev coefficient structure */ Ts->mu = nru - 1; /* save row degree */ Ts->mv = nrv - 1; Ts->a.u = a.u + b.u; /* set argument scaling */ Ts->a.v = a.v + b.v; Ts->b.u = 1. / (b.u - a.u); Ts->b.v = 1. / (b.v - a.v); Ts->power = 0; for (i = 0; i < nru; ++i) /* store coefficient rows for u */ Ts->cu[i].m = ncu[i]; if (Ts->cu[i].m) if ((p = Ts->cu[i].c = (double *)pj_malloc(sizeof(double) * ncu[i]))) for (j = 0; j < ncu[i]; ++j) *p++ = (w[i] + j)->u; else goto error; for (i = 0; i < nrv; ++i) /* same for v */ Ts->cv[i].m = ncv[i]; if (Ts->cv[i].m) if ((p = Ts->cv[i].c = (double *)pj_malloc(sizeof(double) * ncv[i]))) for (j = 0; j < ncv[i]; ++j) *p++ = (w[i] + j)->v; else goto error; |
Uit een map library somewhere, xcode geeft hier ook warnings.
Brrr. De indenting klopt, maar het leek even alsof ie niet klopte.
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.
Nee, volgens mij niet. De for-loop op regel 9 is alleen van toepassing voor de assignment op regel 10, niet voor de if op regel 11. Idem dito voor de regels vanaf regel 18. Of mis ik hier iets?
09 heeft alleen effect op 10,
14 heeft alleen effect op 15,
18 heeft alleen effect op 19,
23 heeft alleen effect op 24.
Tenminste, zo zie ik het. Als het ook zo is, dan klopt de indenting dus niet.
14 heeft alleen effect op 15,
18 heeft alleen effect op 19,
23 heeft alleen effect op 24.
Tenminste, zo zie ik het. Als het ook zo is, dan klopt de indenting dus niet.
Volgens mij staan de eerste if-jes inderdaad een tab teveel naar rechts (en de rest dus ook).
Zo klopt de indenting volgens mij, als dat waar is klopt er geen hout van die codeZpAz schreef op dinsdag 26 februari 2013 @ 10:19:
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 /* else make returned Chebyshev coefficient structure */ Ts->mu = nru - 1; /* save row degree */ Ts->mv = nrv - 1; Ts->a.u = a.u + b.u; /* set argument scaling */ Ts->a.v = a.v + b.v; Ts->b.u = 1. / (b.u - a.u); Ts->b.v = 1. / (b.v - a.v); Ts->power = 0; for (i = 0; i < nru; ++i) /* store coefficient rows for u */ Ts->cu[i].m = ncu[i]; if (Ts->cu[i].m) if ((p = Ts->cu[i].c = (double *)pj_malloc(sizeof(double) * ncu[i]))) for (j = 0; j < ncu[i]; ++j) *p++ = (w[i] + j)->u; else goto error; for (i = 0; i < nrv; ++i) /* same for v */ Ts->cv[i].m = ncv[i]; if (Ts->cv[i].m) if ((p = Ts->cv[i].c = (double *)pj_malloc(sizeof(double) * ncv[i]))) for (j = 0; j < ncv[i]; ++j) *p++ = (w[i] + j)->v; else goto error;
Uit een map library somewhere, xcode geeft hier ook warnings.

Naast het feit dat ik dat in VB.Net heel lelijk opgelost vind, heb ik mijn twijfels als ik de volgende code zie:
Moeten we nu alles als Func definiëren?
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| Public Shared conCatName As Func(Of String, String, String, String) = _ Function(init, middle, surname) Dim ret As String = "" If String.IsNullOrEmpty(init) = False Then ret = init & " " End If If String.IsNullOrEmpty(middle) = False Then ret = ret.Trim() & " " & middle End If If String.IsNullOrEmpty(surname) = False Then ret = ret.Trim() & " " & surname End If Return ret.Trim() End Function |
Moeten we nu alles als Func definiëren?
Funky shizzle man!HeSitated schreef op woensdag 27 februari 2013 @ 17:18:
Naast het feit dat ik dat in VB.Net heel lelijk opgelost vind, heb ik mijn twijfels als ik de volgende code zie:
Visual Basic:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 Public Shared conCatName As Func(Of String, String, String, String) = _ Function(init, middle, surname) Dim ret As String = "" If String.IsNullOrEmpty(init) = False Then ret = init & " " End If If String.IsNullOrEmpty(middle) = False Then ret = ret.Trim() & " " & middle End If If String.IsNullOrEmpty(surname) = False Then ret = ret.Trim() & " " & surname End If Return ret.Trim() End Function
Moeten we nu alles als Func definiëren?
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!
Vanwege die for-loop problemen die een paar posts hierboven staan vermeldt, vind ik het niet zo vreemd dat je warnings krijgt. De waarde i loopt gewoon op naar nru of nrv en met die waarde wordt de rest van die code uitgevoerd. Je schrijft dan zelfs buiten jouw array.ZpAz schreef op dinsdag 26 februari 2013 @ 10:19:
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 /* else make returned Chebyshev coefficient structure */ Ts->mu = nru - 1; /* save row degree */ Ts->mv = nrv - 1; Ts->a.u = a.u + b.u; /* set argument scaling */ Ts->a.v = a.v + b.v; Ts->b.u = 1. / (b.u - a.u); Ts->b.v = 1. / (b.v - a.v); Ts->power = 0; for (i = 0; i < nru; ++i) /* store coefficient rows for u */ Ts->cu[i].m = ncu[i]; if (Ts->cu[i].m) if ((p = Ts->cu[i].c = (double *)pj_malloc(sizeof(double) * ncu[i]))) for (j = 0; j < ncu[i]; ++j) *p++ = (w[i] + j)->u; else goto error; for (i = 0; i < nrv; ++i) /* same for v */ Ts->cv[i].m = ncv[i]; if (Ts->cv[i].m) if ((p = Ts->cv[i].c = (double *)pj_malloc(sizeof(double) * ncv[i]))) for (j = 0; j < ncv[i]; ++j) *p++ = (w[i] + j)->v; else goto error;
Uit een map library somewhere, xcode geeft hier ook warnings.
Speel ook Balls Connect en Repeat
In dezelfde categorie en zeker aangezien we nu al weer 2 dagen verder zijn:Janoz schreef op maandag 25 februari 2013 @ 13:01:
Lol, kom net op een mooie default error pagina:
This Exact e-Synergy license has expired.
End date: 01-03-2013
Unfortunately you do not have the system rights to enter a new license. Please kindly contact System Administrator to update license.
Thank you.

Dat had ik ook een keer. Doordat iemand m'n applicatie in Program Files had geïnstalleerd (ik installeer zelf altijd op een andere schijf, nooit op C), vond Windows het niet goed dat de license-file werd bijgewerkt door iemand zonder admin-rechtenHeSitated schreef op zondag 03 maart 2013 @ 20:31:
[...]
In dezelfde categorie en zeker aangezien we nu al weer 2 dagen verder zijn:
[...]
Wat is er mis met die code (behalve VB.NETHeSitated schreef op woensdag 27 februari 2013 @ 17:18:
Naast het feit dat ik dat in VB.Net heel lelijk opgelost vind, heb ik mijn twijfels als ik de volgende code zie:
Visual Basic:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 Public Shared conCatName As Func(Of String, String, String, String) = _ Function(init, middle, surname) Dim ret As String = "" If String.IsNullOrEmpty(init) = False Then ret = init & " " End If If String.IsNullOrEmpty(middle) = False Then ret = ret.Trim() & " " & middle End If If String.IsNullOrEmpty(surname) = False Then ret = ret.Trim() & " " & surname End If Return ret.Trim() End Function
Moeten we nu alles als Func definiëren?
[ Voor 32% gewijzigd door EfBe op 04-03-2013 09:40 ]
Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com
C#:
1
2
3
4
5
6
7
8
9
10
| private string CleanHtmlFromText(string source) { if (source.Contains("<")) { var result = source.Substring(0, source.IndexOf("<")) + source.Substring(source.IndexOf(">") + 1); return CleanHtmlFromText(result.Trim()); } else return source.Length > 230 ? source.Substring(0, 230) + "..." : source; } |
Dat kan toch wel beter?

We are shaping the future
Ik wou net zeggen, in welke situatie wil je dat de string korter moet zijn dan 230 tekens tenzij er html in voorkomt? Toen zag ik dat ie zichzelf ook nog aanriep...Alex) schreef op maandag 04 maart 2013 @ 10:36:
C#:
1 2 3 4 5 6 7 8 9 10 private string CleanHtmlFromText(string source) { if (source.Contains("<")) { var result = source.Substring(0, source.IndexOf("<")) + source.Substring(source.IndexOf(">") + 1); return CleanHtmlFromText(result.Trim()); } else return source.Length > 230 ? source.Substring(0, 230) + "..." : source; }
Dat kan toch wel beter?

Uit de enquete op de FP:



Certified smart block developer op de agile darkchain stack. PM voor info.
Dat scheelt, dan hoef je niet een aparte optie voor hermafrodieten aan te maken. En mensen zonder geslacht laten beide vinkjes leeg!
Ampera-e (60kWh) -> (66kWh)
Verwijderd
Ik vind het wel een goed voorbeeld van hoe het ook kan 
Het is minder kwetsend dan "man, vrouw, anders", minder beperkend dan "man/vrouw", het enige dat veranderd moet worden is dat het een verplicht veld is, zou ik niet doen.
Het is minder kwetsend dan "man, vrouw, anders", minder beperkend dan "man/vrouw", het enige dat veranderd moet worden is dat het een verplicht veld is, zou ik niet doen.
[ Voor 4% gewijzigd door Verwijderd op 04-03-2013 11:09 ]
De aanname dat er maar 2 geslachten zouden bestaan stoort me altijd ontzettend aan die formulieren. In Thailand zijn er wettelijk zelfs 3 geslachten (man, vrouw, kathoey). Daarnaast zijn er nog mensen die om allerlei redenen onder de optie 'overige' vallen.
De huidige oplossing is onhandiger dan de optie "Anders, namelijk...". Wat moet een kathoey invullen dan?Verwijderd schreef op maandag 04 maart 2013 @ 11:08:
Ik vind het wel een goed voorbeeld van hoe het ook kan
Het is minder kwetsend dan "man, vrouw, anders", minder beperkend dan "man/vrouw", het enige dat veranderd moet worden is dat het een verplicht veld is, zou ik niet doen.
[ Voor 65% gewijzigd door Alex) op 04-03-2013 11:10 ]
We are shaping the future
Zoals? mij lijkt het dat toch iemand of man, of vrouw is fysiek gezien.
Waarom niet zoiets?HeSitated schreef op woensdag 27 februari 2013 @ 17:18:
Naast het feit dat ik dat in VB.Net heel lelijk opgelost vind, heb ik mijn twijfels als ik de volgende code zie:
Visual Basic:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 Public Shared conCatName As Func(Of String, String, String, String) = _ Function(init, middle, surname) Dim ret As String = "" If String.IsNullOrEmpty(init) = False Then ret = init & " " End If If String.IsNullOrEmpty(middle) = False Then ret = ret.Trim() & " " & middle End If If String.IsNullOrEmpty(surname) = False Then ret = ret.Trim() & " " & surname End If Return ret.Trim() End Function
Moeten we nu alles als Func definiëren?
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| Module Module1 Sub Main() Console.WriteLine(concatName("Raynor ", " ", " Vliegendhart ")) End Sub Delegate Function Concatter(<[ParamArray]> ByVal args As String()) As String Public concatName As Concatter = Function(args() As String) As String Return String.Join(" ", From arg In args Where Not String.IsNullOrWhiteSpace(arg) Select arg.Trim()) End Function End Module |
(** Niet getest of het 100% functioneel identiek is
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Geslacht is meer dan "wat heb je tussen je benen zitten?"spleethoven schreef op maandag 04 maart 2013 @ 11:10:
Zoals? mij lijkt het dat toch iemand of man, of vrouw is fysiek gezien.
We are shaping the future
In HL7 zijn 7 mogelijke keuzes voor het geslacht gedefinieerd:spleethoven schreef op maandag 04 maart 2013 @ 11:10:
Zoals? mij lijkt het dat toch iemand of man, of vrouw is fysiek gezien.
- man
- vrouw
- vroeger man, nu vrouw
- vroeger vrouw, nu man
- beiden
- onbepaald
- onbekend
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
En zelfs die lijst is dus niet volledig 
Een kathoey valt niet onder man (want vrouwelijke kenmerken), niet onder vrouw (want mannelijke kenmerken), niet onder 'vroeger man, nu vrouw' (omdat er nog mannelijke kenmerken zijn). De opties "vroeger vrouw, nu man" en "beiden" zijn niet van toepassing, "onbekend" is dat onder Thaise wetgeving ook niet. De enige optie waar het nog onder zou kunnen vallen is 'onbepaald' omdat het geslacht 'kathoey' een regionaal fenomeen is.
De optie "geslacht" in een M/V-veld vatten is dus eigenlijk zo fout als het maar zijn kan. Helaas maken veel programmeurs die fout
Een kathoey valt niet onder man (want vrouwelijke kenmerken), niet onder vrouw (want mannelijke kenmerken), niet onder 'vroeger man, nu vrouw' (omdat er nog mannelijke kenmerken zijn). De opties "vroeger vrouw, nu man" en "beiden" zijn niet van toepassing, "onbekend" is dat onder Thaise wetgeving ook niet. De enige optie waar het nog onder zou kunnen vallen is 'onbepaald' omdat het geslacht 'kathoey' een regionaal fenomeen is.
De optie "geslacht" in een M/V-veld vatten is dus eigenlijk zo fout als het maar zijn kan. Helaas maken veel programmeurs die fout
We are shaping the future
Alex) schreef op maandag 04 maart 2013 @ 11:09:
De aanname dat er maar 2 geslachten zouden bestaan stoort me altijd ontzettend aan die formulieren. In Thailand zijn er wettelijk zelfs 3 geslachten (man, vrouw, kathoey).
bronLegal recognition of kathoeys and transsexuals is non-existent in Thailand
Certified smart block developer op de agile darkchain stack. PM voor info.
Onder HL7 zal de kathoey gewoon onder "vroeger man, nu vrouw" vallen.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
En iemand met XY- chromosomen die zich ontwikkeld heeft als vrouw?
Misschien moet ik daarbij vermelden dat mensen met AOS geslachtskenmerken hebben van beide seksen en nooit vruchtbaar zijn omdat ze geen volledig ontwikkelde geslachtsorganen hebben, soms mannelijke geslachtsorganen.
Misschien moet ik daarbij vermelden dat mensen met AOS geslachtskenmerken hebben van beide seksen en nooit vruchtbaar zijn omdat ze geen volledig ontwikkelde geslachtsorganen hebben, soms mannelijke geslachtsorganen.
[ Voor 66% gewijzigd door Jaap-Jan op 04-03-2013 11:52 ]
| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett
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.
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.