https://fgheysels.github.io/
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.
Vind ik altijd nogal meevallen we hebben de taken meestal al voor >90% op een rij en moeten er dan alleen nog punten aanhangen. Met de (poker)planning zijn we meestal binnen een uurtje klaar. In dezelfde sessie doen we ook nog presentatie aan de klant (via video conferencing) en een retrospective. Dit alles is gepland van 9:00 tot 12:15 met een pauze om 10 uur en we lopen zelden uit de tijd.whoami schreef op dinsdag 13 juli 2010 @ 23:22:
Sprintplanning == vermoeiend.
Hoe zit het process bij jullie verder in elkaar hoe lang duurt een sprint? Wat doen jullie allemaal tijdens de planningssessie? Hoe doen jullie de retrospective?
Testdatabase: geen last. Acceptatie: niet reproduceerbaar. Productie: soms vier keer per dag, dan weer vier keer per uur een totale block van alle met die instance verbonden applicaties die één specifieke tabel proberen te benaderen.
Vandaag deze drie linkjes maar eens lezen en verder prutsen:
http://www.dalun.com/blogs/10.13.2006.htm
How to monitor blocking in SQL Server 2005 and in SQL Server 2000
http://technet.microsoft....ibrary/cc966523.aspx#EHAA
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Ik weet niet of het mogelijk is om een aantal query's te loggen en dan mbv MySQL Workbench, dezelfde query's nogmaals uit te voeren; om op die manier te kunnen kijken waar het fout loopt.
Zonder belemmering van enige kennis over jouw product
If money talks then I'm a mime
If time is money then I'm out of time
Waarom niet op dinsdag ?
De laatste dag van onze sprint is op vrijdag; op maandag is er demo & retrospective, en op dinsdag planning.
https://fgheysels.github.io/
Het probleem bij ons, is dat we met ons team niet aan één product werken, maar aan verschillende producten.Refro schreef op woensdag 14 juli 2010 @ 07:38:
[...]
Vind ik altijd nogal meevallen we hebben de taken meestal al voor >90% op een rij en moeten er dan alleen nog punten aanhangen. Met de (poker)planning zijn we meestal binnen een uurtje klaar. In dezelfde sessie doen we ook nog presentatie aan de klant (via video conferencing) en een retrospective. Dit alles is gepland van 9:00 tot 12:15 met een pauze om 10 uur en we lopen zelden uit de tijd.
Hoe zit het process bij jullie verder in elkaar hoe lang duurt een sprint? Wat doen jullie allemaal tijdens de planningssessie? Hoe doen jullie de retrospective?
En, dat de taken op de backlog toch vaak nog heel wat verduidelijking vereisen, waar er echt tijd in kruipt (om verduidelijking te krijgen).
Een sprint duurt bij ons 3 weken; we zitten met 6 man in een team. Tijdens de planning wordt de backlog samen met de PO overlopen, worden er vragen gesteld over dingen die niet duidelijk zijn, krijgen we niet altijd een eenduidig antwoord, moet er opnieuw verduidelijking gevraagd worden, etc... Daarna schatten we als team alles in.
Retrospective: gebeurd in eerste instantie met de PO er niet bij. Overleggen we wat goed / niet goed was, en wat beter kon. (soms doen we aan bullet-voting).
Daarna vragen we de PO er bij, bespreken we onze standpunten en vragen ook wat hij vond van de sprint, wat er beter kon, etc...
[ Voor 25% gewijzigd door whoami op 14-07-2010 08:56 ]
https://fgheysels.github.io/
Dit probleem hadden wij in het verleden ook sinds een half jaar hebben we dit uit elkaar getrokken een een plannings sessie een een backlog grooming sessie om de taken compleet te krijgen. Voordeel hiervan is dat de antwoorden niet direct hoeven te komen en een aantal zaken door kleinere groepjes uitgezocht kunnen worden. In de planning is het er dan puur punten aan plakken. Al met al is ons werk hier weer een stukje efficienter van geworden.whoami schreef op woensdag 14 juli 2010 @ 08:54:
[...]
Het probleem bij ons, is dat we met ons team niet aan één product werken, maar aan verschillende producten.
En, dat de taken op de backlog toch vaak nog heel wat verduidelijking vereisen, waar er echt tijd in kruipt (om verduidelijking te krijgen).
Een sprint duurt bij ons 3 weken; we zitten met 6 man in een team. Tijdens de planning wordt de backlog samen met de PO overlopen, worden er vragen gesteld over dingen die niet duidelijk zijn, krijgen we niet altijd een eenduidig antwoord, moet er opnieuw verduidelijking gevraagd worden, etc... Daarna schatten we als team alles in.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
1
2
3
4
5
| var package = assembly.GetTypes().Where(t => typeof(baseType).IsAssignableFrom(t) && !t.IsAbstract).FirstOrDefault(); if (package != null) { packages.Add((baseType)package); } |
Vervolgens de meeste vage foutmeldingen krijgen dat het niet gecast kan worden. Ga ik uiteindelijk koffie halen, kom na 10 min terug.
... doh!

1
| packages.Add((baseType)Activator.CreateInstance(package)); |
ook goeiemorgen..
Mja, het lijkt me wel van belang dat er duidelijkheid moet zijn op het moment dat je de planning gaat doen, niet dat je er op dat moment om moet vragen. Nou hebben wij er zelf niet zo'n last van aangezien wij zelf de enige zijn die de inbox vullen, dus als bijv. mijn baas iets erin heeft gezet wat niet direct duidelijk is dan kan hij altijd meteen verduidelijking geven - al moet ik zeggen dat dat nog nauwelijks voorkomt sinds ik heb gepleit voor betere taakomschrijvingenwhoami schreef op woensdag 14 juli 2010 @ 08:54:
En, dat de taken op de backlog toch vaak nog heel wat verduidelijking vereisen, waar er echt tijd in kruipt (om verduidelijking te krijgen).
Sprint retrospective doen we niet meer aan - als er punten zijn kan dat ook wel tijdens de sprint review gezegd worden. We hebben een 2-wekelijkse sprint met een sprint review op maandag-ochtend en sprint planning op maandag-middag, met momenteel 4 man, al is dat idealiter 6.
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.
Zit alleen nog een bugje in. Het heeft een flash frontend die de gegevens die het weer moet geven ophaalt via een webservice gemaakt via een servlet. Daar het nogal zwaar is om alle gegevens en foto's uit het systeem te halen (en het wat overbodig is aangezien dit maar eens per maand ofzo gebruikt) zit er een eenvoudige cache in - een map met een key gemaakt van het opgevraagde ID en een value met daarin de JSON die teruggegeven wordt. Bliksemsnel etc. Alleen moest het zodanig gemaakt worden dat de cache geleegd wordt indien in de backend iets geleegd wordt.
"Och", dacht ik, "Doen we zo even". Boolean in een object gezet die door zowel de backend als frontend gebruikt wordt, en op de testomgeving werkte dat gewoon zonder problemen. Live, klaar.
...alleen op de productieomgeving draait het in een geclusterde omgeving, dus een boolean zetten in de instantie die op de achterkant draait wordt niet doorgegeven naar de vier frontend servers,

Oeps

De les van vandaag: Als je een live-omgeving hebt met meerdere servers, zorg ervoor dat je ook een testomgeving hebt die dat heeft.
[ Voor 4% gewijzigd door YopY op 14-07-2010 12:04 ]
Eh, wat is het verschil tussen een retrospective & een review ?.oisyn schreef op woensdag 14 juli 2010 @ 11:34:
[...]
Mja, het lijkt me wel van belang dat er duidelijkheid moet zijn op het moment dat je de planning gaat doen, niet dat je er op dat moment om moet vragen. Nou hebben wij er zelf niet zo'n last van aangezien wij zelf de enige zijn die de inbox vullen, dus als bijv. mijn baas iets erin heeft gezet wat niet direct duidelijk is dan kan hij altijd meteen verduidelijking geven - al moet ik zeggen dat dat nog nauwelijks voorkomt sinds ik heb gepleit voor betere taakomschrijvingen.
Sprint retrospective doen we niet meer aan - als er punten zijn kan dat ook wel tijdens de sprint review gezegd worden. We hebben een 2-wekelijkse sprint met een sprint review op maandag-ochtend en sprint planning op maandag-middag, met momenteel 4 man, al is dat idealiter 6.
https://fgheysels.github.io/
Wikipedia: Scrum (development) Zie de onderste twee kopjes.
[ Voor 24% gewijzigd door .oisyn op 14-07-2010 12:47 ]
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.
https://fgheysels.github.io/
[ Voor 3% gewijzigd door .oisyn op 14-07-2010 14:24 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Kan natuurlijk MarkAsModified() gebruiken, maar dat is natuurlijk een beetje cheaten.
Nu dus op zoek naar een oplossing waar ik zelf ook blij mee ben.
Battle.net - Jandev#2601 / XBOX: VriesDeJ
We are shaping the future
Nu kijken of de repair wat voor me kan betekenen.
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Vervelend maar had al zo'n vermoeden, iemand een tip om er achter te komen wat een beetje een marktconform salaris is?Janoz schreef op woensdag 14 juli 2010 @ 10:05:
Voor de IT is geen CAO.
[ Voor 49% gewijzigd door Sebazzz op 14-07-2010 21:06 ]
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Het ziet er naar uit dat alleen het 'object' wordt geserialized en niet de achterliggende code. Op zich wel logisch als je er bij na gaat denken, maar ik had gehoopt dat EF4.0 en WCF samen zo geintegreerd/slim waren dat dit self-tracking toch ging werken bij serializen/deserializen.Alex) schreef op woensdag 14 juli 2010 @ 18:05:
Implementeert dat INotifyPropertyChanged dan niet?
Beetje jammer, maar toch weer wat geleerd. Gelukkig is het een prive project en dus geen harde deadlines om te halen.
Battle.net - Jandev#2601 / XBOX: VriesDeJ

Zojuist maar weer terug gestapt op Galileo

If money talks then I'm a mime
If time is money then I'm out of time
Ik dacht dat slechts de volgorde van belang was voor de regel die werd uitgevoerdYeah, !important is the only way to override inline element styles, but if you only need to override a rule in another stylesheet, and your stylesheet appears first, then all you need is a more specific selector. I would resort to !important, in the latter situation. So if another stylesheet, outside of your control has a rule like this:
#content h1 { color: green; }
But you want all the h1 elements to be blue then override it with this:
body #content h1 { color: blue; }
Not ideal, but do-able in a tricky situation.
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Voor een raster wordt ook in een GIS database speciale ondersteuning gebouwd. Een record voor elke pixel of cel kan wel, maar efficient is het niet. Voor PostGIS is een recente ontwikkeling WKTRaster. Of dat al bruikbaar is weet ik niet.Zoijar schreef op donderdag 15 juli 2010 @ 19:01:
Hoe (on)efficient denken jullie dat het zou zijn om grote plaatjes als (x,y,value) of (point, value) tuples in een database op te slaan? Als ik zo iets doe in bv. postgresql heb toch niet echt postgis nodig? Standaard pg ondersteunt dan toch ook dingen als "where point in circle(point, radius)"? Ik twijfel namelijk of het echt nuttig is om zelf allemaal caching, disk block ordering en asynchronuous fetches etc. te gaan maken op binary image data, of dat het veel makkelijker is om dit gewoon allemaal aan een database over te laten die dat al geoptimaliseerd heeft. Ik wil nl. ook 3d data opslaan waar 'value' dan een variable length array is... zo domweg in pg dumpen een optie zijn om te testen?
Verwijderd
http://www.loonwijzer.nl/home/salarischeckedxtreem schreef op woensdag 14 juli 2010 @ 21:03:
[...]
Vervelend maar had al zo'n vermoeden, iemand een tip om er achter te komen wat een beetje een marktconform salaris is?
CSS SpecificityRetroTycoon schreef op donderdag 15 juli 2010 @ 18:40:
Net even een enorm belangrijk, maar bij mij onbekend, feit over CSS (mbt cascading) geleerd:
[...]
Ik dacht dat slechts de volgorde van belang was voor de regel die werd uitgevoerd
The actual specificity of a group of nested selectors takes some calculating. Basically, you give every id selector ("#whatever") a value of 100, every class selector (".whatever") a value of 10 and every HTML selector ("whatever") a value of 1. Then you add them all up and hey presto, you have the specificity value.
[list]
• p has a specificity of 1 (1 HTML selector)
• div p has a specificity of 2 (2 HTML selectors; 1+1)
• .tree has a specificity of 10 (1 class selector)
• div p.tree has a specificity of 12 (2 HTML selectors and a class selector; 1+1+10)
• #baobab has a specificity of 100 (1 id selector)
• body #content .alternative p has a specificity of 112 (HTML selector, id selector, class selector, HTML selector; 1+100+10+1)
Is PDT dan al wel goed compatible met Helios? Ik wacht nog even met upgraden op mijn werk PC naar Helios omdat het voor zover ik kan zien weinig toevoegt voor mijn werk (webdevelopment icm java) en ivm compatibiliteit met de vele handige addon dingen die ik heb. Alhoewel de marketplace wel handig moet zijn. D'r zijn zoveel plugins voor Eclipse, maar maar zo weinig waar ik het praktisch nut (voor mij persoonlijk) inzie, terwijl er toch veel handige features bij kunnen imo.Matis schreef op donderdag 15 juli 2010 @ 18:16:
Pff, wat is de nieuwe versie van Eclipse (Helios) toch bagger in combinatie met PDT1 op 10 keer crasht de applicatie wanneer ik codecompletion probeer te openen en de crawler loopt ook om de haverklap te kloten
Zojuist maar weer terug gestapt op Galileo
Kijk, regels, altijd goed. Spontaan ideetje voor klein programmeerprojecte: CSS speckifitittity calculator. Moet wel te doen zijn. Gek dat dat niet in tools als Firebug zit (alhoewel je daarin als je een element selecteert wel precies kunt zien welke CSS zorgt voor zijn opmaak, daar zal die specificititie wel in zitten op de een of andere manier.CSS Specificity
Vindt het trouwens nog steeds een beetje apart dat ik nog nooit echt gehoord heb van een HTML / CSS alternatief. Ja, in een artikel / boek over de geschiedenis van HTML5 waar eerder naar gelinkt werd, waar postscript (volgens mij) aangedragen werd als alternatief.
[ Voor 42% gewijzigd door YopY op 16-07-2010 09:10 ]
Nu al worden deze standaarden door verschillende browser-bouwers verschillend geimplementeerd, wat zou een tweede markup-taal toevoegen?
Omdat CSS het DRY-principe schendt.CyCloneNL schreef op vrijdag 16 juli 2010 @ 09:34:
Waarom zou er een alternatief voor HTML/CSS moeten komen?
Vind ik ook gek van zo'n ervaren programmeur zoals jijYopY schreef op vrijdag 16 juli 2010 @ 09:10:
[...]
Vindt het trouwens nog steeds een beetje apart dat ik nog nooit echt gehoord heb van een HTML / CSS alternatief.
Leesvoer:
http://www.codinghorror.c...whats-wrong-with-css.html
http://lesscss.org/
http://sass-lang.com/
http://haacked.com/archiv...emplate-for-less-css.aspx
http://combres.codeplex.com/
En als je geen zin hebt om te lezen, met LessCSS wordt dit:
1
2
3
4
5
6
7
8
9
10
11
12
13
| .rounded_corners (@radius: 5px) { -moz-border-radius: @radius; -webkit-border-radius: @radius; border-radius: @radius; } #header { .rounded_corners; } #footer { .rounded_corners(10px); } |
dit:
1
2
3
4
5
6
7
8
9
10
11
| #header { -moz-border-radius: 5; -webkit-border-radius: 5; border-radius: 5; } #footer { -moz-border-radius: 10; -webkit-border-radius: 10; border-radius: 10; } |
En met SASS wordt dit:
1
2
3
4
5
6
7
8
9
10
11
| !blue = #3bbfce !margin = 16px .content_navigation border-color = !blue color = !blue - #111 .border padding = !margin / 2 margin = !margin / 2 border-color = !blue |
1
2
3
4
5
6
7
8
9
10
| .content_navigation { border-color: #3bbfce; color: #2aaebd; } .border { padding: 8px; margin: 8px; border-color: #3bbfce; } |
[ Voor 20% gewijzigd door Sebazzz op 16-07-2010 09:42 ]
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Thanks, dat ziet er goed uit. Zal het eens grondiger lezenmatthijsln schreef op donderdag 15 juli 2010 @ 19:26:
Voor PostGIS is een recente ontwikkeling WKTRaster.
LessCSS is echt een geweldig programmaSebazzz schreef op vrijdag 16 juli 2010 @ 09:41:
[...]
Omdat CSS het DRY-principe schendt.
[...]
Vind ik ook gek van zo'n ervaren programmeur zoals jijMaar die alternatieven zijn er zeer zeker wel. En op het moment zijn er ook genoeg libraries die het serverside naar CSS kunnen vertalen. Het is niet zozeer een volledig alternatief, maar meer wat toevoegingen en handigheidjes.
Leesvoer:
http://www.codinghorror.c...whats-wrong-with-css.html
http://lesscss.org/
http://sass-lang.com/
http://haacked.com/archiv...emplate-for-less-css.aspx
http://combres.codeplex.com/
En als je geen zin hebt om te lezen, met LessCSS wordt dit:
Het werken met "functies" en het instellen van variabelen werkt zo gigantisch lekker. Vaak kom je halverwege je ontwerp er achter dat je eigenlijk een andere kleur wilde gebruiken (iets donkerder/lichter of zelfs een hele andere kleur), dan moet je op zoek naar die codes. Daarnaast is niet altijd duidelijk uit de HEX code welke kleur je ergens hebt staan. Die variabelen werken dan echt geweldig. Daarnaast kan je kleuren van elkaar aftrekken/optellen, zo kun je dus een tint donkerder/lichter kiezen zonder een nieuwe kleur code te bepalen, daarnaast als je dat toepast op een variabele die een kleur voorstelt past je donkerdere/lichtere versie zich automatisch aan.
Daarnaast kan LessCSS de file in de gaten houden en bij een change meteen een nieuwe file maken, dat maakt het werken met dit tooltje in development echt zeer fijn.
Ben er nu mee bezig voor een web projectje en ik moet zeggen dat ik hier wel vrolijk van word.
The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.
Dat is niet waar. Je kan in CSS een bepaalde stijldeclaratie voor meerdere selectors bv
1
2
3
4
5
6
7
8
9
| h1, h2, h3, h4 { font-size: larger; } h1, .highlight, img, h2 { background-color: red; } h1 { border: solid yellow 2px; } |
Je moet dan denken vanuit declaraties ('Waar wil ik een rode achtergrond hebben') in plaats van vanuit selectors ('Hoe moet het linker menu eruit zien'). Het levert bovendien ook kleinere CSS files op.
[ Voor 8% gewijzigd door Kalentum op 16-07-2010 11:27 ]
Het schend DRY omdat je niet kunt zeggen: elementen x, y en z hebben kleur c. Je moet c specificeren voor zowel x als y als z. En als je later dus c wilt veranderen, dan moet je dat voor zowel x als y als z doen.rutgerw schreef op vrijdag 16 juli 2010 @ 11:27:
[...]
Dat is niet waar. Je kan in CSS een bepaalde stijldeclaratie voor meerdere selectors bv
Cascading Stylesheet:
1 2 3 4 5 6 7 8 9 h1, h2, h3, h4 { font-size: larger; } h1, .highlight, img, h2 { background-color: red; } h1 { border: solid yellow 2px; }
Je moet dan denken vanuit declaraties ('Waar wil ik een rode achtergrond hebben') in plaats van vanuit selectors ('Hoe moet het linker menu eruit zien'). Het levert bovendien ook kleinere CSS files op.
HuHu schreef op vrijdag 16 juli 2010 @ 11:49:
[...]
Het schend DRY omdat je niet kunt zeggen: elementen x, y en z hebben kleur c. Je moet c specificeren voor zowel x als y als z. En als je later dus c wilt veranderen, dan moet je dat voor zowel x als y als z doen.
1
2
3
| h1, .highlight, img, h2 { background-color: red; } |
There, I said it. Als je het opeens blauw wilt hebben hoef je het maar op 1 plek te veranderen.
Dan gaat je schending dus "de andere kant" op. Nu heb je duplicatie in de declaraties van je elementen. Je wilt de declaratie van één element ook op maar één plaats hebben.rutgerw schreef op vrijdag 16 juli 2010 @ 11:56:
[...]
Cascading Stylesheet:
1 2 3 h1, .highlight, img, h2 { background-color: red; }
There, I said it. Als je het opeens blauw wilt hebben hoef je het maar op 1 plek te veranderen.
Voorbeeld: A en B beschikken over x en y, B en C beschikken over y en z.
1
2
3
4
5
6
7
8
| A, B { x } A, B, C { y } B, C { z } /* of zo: */ A { x, y } B { x, y, z } C { y, z } |
Je hebt hoe dan ook duplicatie. In het eerste geval moet je een element dupliceren (A en C komen tweemaal voor, B zelfs driemaal) om alle eigenschappen toe te kennen, in het tweede geval moet je de eigenschappen dupliceren (x en z tweemaal, y driemaal) om aan alle elementen toe te kennen.
[ Voor 4% gewijzigd door HuHu op 16-07-2010 12:06 ]
Waarschijnlijk bedoeld ie dat @ compile-time (ASP.NET compileer je over het algemeen, hoeft niet, kan wel) de LessCSS bestanden in CSS worden omgezetorf schreef op vrijdag 16 juli 2010 @ 11:03:
Als ik naar LessCSS kijk is dat erg vergelijkbaar, maar met PHP hebben wij het in ons framework zitten waardoor je niet hoeft te 'compilen' o.i.d.
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Jouw woorden, niet de mijneSebazzz schreef op vrijdag 16 juli 2010 @ 09:41:
Vind ik ook gek van zo'n ervaren programmeur zoals jij

Maar het is niet gek, heb er gewoon nog nooit van gehoord. Niet dat ik er ooit actief naar gezocht heb, mind.
Dat is zeker handig ja! ik zal het eens aan de CSSers alhier laten zien, kijken of ze het ook handig vinden. Hopelijk is dat een beetje goed te integreren in een Maven build, maar ach, zolang het commandline aan kan roepen moet het wel werken.Maar die alternatieven zijn er zeer zeker wel. En op het moment zijn er ook genoeg libraries die het serverside naar CSS kunnen vertalen. Het is niet zozeer een volledig alternatief, maar meer wat toevoegingen en handigheidjes.
De 2.2.0 versie staat als stable getaged, dus daar ga ging ik dan gemakshalve maar vanuitYopY schreef op vrijdag 16 juli 2010 @ 09:10:
Is PDT dan al wel goed compatible met Helios? Ik wacht nog even met upgraden op mijn werk PC naar Helios omdat het voor zover ik kan zien weinig toevoegt voor mijn werk (webdevelopment icm java) en ivm compatibiliteit met de vele handige addon dingen die ik heb. Alhoewel de marketplace wel handig moet zijn. D'r zijn zoveel plugins voor Eclipse, maar maar zo weinig waar ik het praktisch nut (voor mij persoonlijk) inzie, terwijl er toch veel handige features bij kunnen imo.
Nadat ik weer terug ben gegaan naar Galileo loopt alles weer als een zonnetje (qua crashes) maar Helios is toch wel een heel stuk sneller met codecompletion en het cross-class opzoeken van functies en variabelen.
If money talks then I'm a mime
If time is money then I'm out of time
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Going for adventure, lots of sun and a convertible! | GMT-8
Als ik zo dit artikel op MSDN doorlees vind ik het nog wel meevallen hoor: http://msdn.microsoft.com/en-us/library/ms788718.aspx. Het had erger gekund.Sebazzz schreef op zondag 18 juli 2010 @ 21:52:
Wat werkt internationalisatie in WPF toch lekker knullig.
We are shaping the future
idd heerlijke functieSnake schreef op maandag 19 juli 2010 @ 06:59:
Ik heb zelf niet met Globalization gewerkt in .NET, maar ik heb wel gezien dat Re# de mogelijkheid heeft om strings naar een resx file te moven, zodat je dat werk al niet meer hebt...
http://www.jetbrains.com/...internationalization.html
Altijd "had iets erger gekund", maar het is toch belachelijk dat je met een unsupported tooltje van Microsoft via een hokkie-tokkie oplossing met csv bestanden de boel moet vertalen. Tuurlijk, resx is ook mogelijk maar dat is weer trager en heeft zijn eigen limitaties en het is in principe niet de bedoeling dat je resx en xaml combineert (daar zijn namelijk resource dictionaries voor). Als er nou een fatsoenlijk tooltje was om dit te regelen, ala wat je bij WinForms doet, maar dat lijkt er niet te zijn zonder dat je 500 dollar neertelt.Alex) schreef op maandag 19 juli 2010 @ 08:30:
[...]
Als ik zo dit artikel op MSDN doorlees vind ik het nog wel meevallen hoor: http://msdn.microsoft.com/en-us/library/ms788718.aspx. Het had erger gekund.
Voor de normale classes gebruik ik ook resx, dat werkt ideaal maar voor WPF werkt dat niet goed en makkelijk of je moet alles handmatig gaan binden.
[ Voor 8% gewijzigd door Sebazzz op 19-07-2010 13:03 ]
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Verwijderd
[ Voor 15% gewijzigd door Verwijderd op 19-07-2010 15:07 ]
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
1
| StringTokenizer st = new StringTokenizer(in, "$"); |
“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.”
Verwijderd
That did the trick, heel erg bedankt. Ik was het escapen van de slash vergeten, had \$ namelijk ook geprobeerd.Janoz schreef op maandag 19 juli 2010 @ 15:16:
useDelimiter vraagt dan ook om een (regexp)-pattern en een $ is een speciaal teken. Gewoon normaal escapen (waarbij de slash zelf natuurlijk ook geescaped moet worden om hem de string in te krijgen). \\$ should do the job.
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.
We are shaping the future
Ligt eraan of je al kunt delen door 0.Verwijderd schreef op maandag 19 juli 2010 @ 17:30:
Ben ik hier nog welkom nu ik officieel geen dev'er meer ben?
If money talks then I'm a mime
If time is money then I'm out of time
.oisyn schreef op maandag 19 juli 2010 @ 17:41:
Je bent voornamelijk niet meer welkom omdat je Zend Certified Engineer bent, maar goed...
[ Voor 40% gewijzigd door Hoogie2004 op 20-07-2010 08:58 ]
Tien dagen mee op zeilkamp geweest als kookstaf; veel drinken, laat naar bed, vroeg op, dus ben redelijk gesloopt

Nu eerst maar eens rustig door de mailbox werken..
Kater? Eerst water, de rest komt later
Wacht maar tot je iets hebt dat 'bijna af' is maar dat na anderhalf jaar pas live gezet wordt,Hoogie2004 schreef op dinsdag 20 juli 2010 @ 08:56:
Laatste stapjes voordat iets af is duren altijd zo lang.... Debuggen komt me mijn neus wel uit nu, zeker omdat bij het reproduceren van de meeste bugs je het hele product moet doorlopen.... Devven met infopath is gewoon een ramp..
En als je in de laatste fase van een project nog zoveel bugs hebt zou je toch eens het ontwikkelproces na moeten kijken.
Het is niet zozeer het aantal bugs of het ontwikkelproces (maar infopath is gewoon een rampYopY schreef op dinsdag 20 juli 2010 @ 09:14:
[...]
Wacht maar tot je iets hebt dat 'bijna af' is maar dat na anderhalf jaar pas live gezet wordt,. Mede door een onvolledige API en heel erg brakke code (lijstjes met getallen opslaan in strings met komma's, en een # als daar niks in zit. Levert leuke fouten op in combinatie met Spring die dat probeert te interpreteren als een integer, als de logger die dat meldt uitstaat,
.
En als je in de laatste fase van een project nog zoveel bugs hebt zou je toch eens het ontwikkelproces na moeten kijken.
We are shaping the future

Verwijderd
1
| script.php?var=%25Achternaam%E9%E9%25 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| <?php mb_internal_encoding('UTF-8'); header("Content-type: text/html; charset=utf-8"); ini_set('default_charset', 'utf-8'); function isUTF8($string) { // From http://w3.org/International/questions/qa-forms-utf-8.html return preg_match('%^(?: [\x09\x0A\x0D\x20-\x7E] # ASCII | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 )*$%xs', $string) === 1; } var_dump(isUTF8($_GET['var'])) ?> |
Bovenstaand levert false op.
Verwijderd
[ Voor 4% gewijzigd door Verwijderd op 20-07-2010 10:49 ]
Verwijderd
Dit wordt dan wel weer als UTF-8 verzonden:Verwijderd schreef op dinsdag 20 juli 2010 @ 10:47:
Lijkt me logisch, UTF8 is ook niet de standaard charset voor PHP toch?
1
| script.php?var=日本 |
Oftewel, hoe weet ik welke charset er is gebruikt?
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Verwijderd
Daar kun je gelijk in hebben:.oisyn schreef op dinsdag 20 juli 2010 @ 11:13:
De query string is volgens mij per definitie in UTF-8.
1
2
3
4
5
6
| //is query string utf-8? --> true var_dump(isUTF8($_SERVER['QUERY_STRING'])); //decode de query string --> false var_dump(urldecode($_SERVER['QUERY_STRING'])); //omzetten van iso-8859-1 naar utf-8 zorgt weer voor een geldige utf-8 string --> true var_dump(isUTF8(utf8_encode(urldecode($_SERVER['QUERY_STRING'])))); |
Echter na het gebruik van urldecode (welke intern in php ook wel gebruikt zal worden) om de $_GET array te vullen gaat het mis. Why?
Pertinent onwaar. De standaard stringfuncties doen idd net alsof het een fixed width encoding is met 1 byte per char, maar nergens staat dat het ISO-8859 is, en PHP doet al helemaal niets om input van wat voor encoding dan ook te converteren naar ISO-8859.hostname schreef op dinsdag 20 juli 2010 @ 11:22:
In PHP zijn strings standaard ISO-8859, dus dat zal $_GET ook wel zijn.
Het enige wat de default_charset setting doet is de default encoding zetten die via de Content-Type HTTP header wordt teruggegeven aan de client.
[ Voor 14% gewijzigd door .oisyn op 20-07-2010 11:34 ]
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.
Verwijderd
In aanvulling op .oisyn:hostname schreef op dinsdag 20 juli 2010 @ 11:22:
In PHP zijn strings standaard ISO-8859, dus dat zal $_GET ook wel zijn. Wordt in de volgende versie UTF-8. Overigens kan je het ook instellen in php.ini met default_charset o.i.d.
Kijk eens goed naar regel 4 van mijn snippet (daar staat toch echt):
1
| ini_set('default_charset', 'utf-8'); |
En wanneer word de $_GET variablen geïnitialiseerd? Wat gebeurt er als je de default_charset in .htaccess of in php.ini op UTF-8 zet?Verwijderd schreef op dinsdag 20 juli 2010 @ 11:39:
[...]
In aanvulling op .oisyn:
Kijk eens goed naar regel 4 van mijn snippet (daar staat toch echt):
PHP:
1 ini_set('default_charset', 'utf-8');
Programmer - an organism that turns coffee into software.
Dat zijn natuurlijk ook rare testjesVerwijderd schreef op dinsdag 20 juli 2010 @ 11:23:
Daar kun je gelijk in hebben:
isUTF8 op je querystring zal altijd true geven, omdat de query string geencodeerd wordt met ascii tekens, dus dat is altijd compatible met utf-8. Dit gaat uiteraard ook weer op voor een opnieuw urlgeëncodeerde string.
Waarom urldecode() uberhaupt false teruggeeft is mee een raadsel, die zou een string terug moeten geven. Of ben je daar de isUTF8 vergeten omheen te zetten?
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
* Alex) aait .NET en UTF-16
We are shaping the future
Verwijderd
.htaccess geprobeerd met de volgende regel:LuCarD schreef op dinsdag 20 juli 2010 @ 11:50:
[...]
En wanneer word de $_GET variablen geïnitialiseerd? Wat gebeurt er als je de default_charset in .htaccess of in php.ini op UTF-8 zet?
1
| AddDefaultCharset UTF-8 |
Maar er verandert niets.
Probeer dit eens in je htaccessVerwijderd schreef op dinsdag 20 juli 2010 @ 11:55:
[...]
.htaccess geprobeerd met de volgende regel:
code:
1 AddDefaultCharset UTF-8
Maar er verandert niets.
1
| php_value default_charset UTF-8 |
[ Voor 5% gewijzigd door LuCarD op 20-07-2010 12:01 ]
Programmer - an organism that turns coffee into software.
PHP is juist heel erg consistent. Het laat alle encodings intact, en de programmeur moet ervoor zorgen dat alles klopt. En dat is juist wat er vaak fout gaatAlex) schreef op dinsdag 20 juli 2010 @ 11:52:
Wat is PHP toch ook een ranzig inconsistent taaltje als ik dit zo eens aanhoor...
de letter ë in UTF-8 is de tekenreeks C3 AB. In een url-encoded formaat is dat dus %C3%AB. Als je urldecode("%C3%AB") doet krijg je een string van 2 tekens terug, ofwel hij wordt niet omgezet naar latin-1 oid waar je een string van 1 teken verwacht (byte EB)
[ Voor 28% gewijzigd door .oisyn op 20-07-2010 12:05 ]
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.
Verwijderd
script.php?var=%25Achternaam%E9%E9%25LuCarD schreef op dinsdag 20 juli 2010 @ 12:01:
[...]
Probeer dit eens in je htaccess
code:
1 php_value default_charset UTF-8
.htaccess
1
2
| AddDefaultCharset UTF-8 php_value default_charset UTF-8 |
script:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| mb_internal_encoding('UTF-8'); header("Content-type: text/html; charset=utf-8"); ini_set('default_charset', 'utf-8'); function isUTF8($string) { // From http://w3.org/International/questions/qa-forms-utf-8.html return preg_match('%^(?: [\x09\x0A\x0D\x20-\x7E] # ASCII | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 )*$%xs', $string) === 1; } var_dump(isUTF8($_GET['var'])); |
levert nog steeds false
[ Voor 62% gewijzigd door Verwijderd op 20-07-2010 12:06 ]
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.
Verwijderd
Zie url: http://www.w3.org/International/questions/qa-forms-utf-8.oisyn schreef op dinsdag 20 juli 2010 @ 12:06:
waar komt die isUTF8 functie vandaan? Het is geen standaard PHP functie.
As an example, in Perl, a regular expression testing for UTF-8 may look as follows:
$field =~
m/\A(
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*\z/x;
This expression can be adapted to other programming languages. It takes care of various issues, such as illegal overlong encodings and illegal use of surrogates. It will return true if $field is UTF-8, and false otherwise.
.edit:
Dat is sowieso geen valide UTF-8 string. Er is niet zoiets als E9 E9 in UTF-8. Waar komt ie vandaan?script.php?var=%25Achternaam%E9%E9%25
[ Voor 46% gewijzigd door .oisyn op 20-07-2010 12:13 ]
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.
Verwijderd
Hij staat al een paar keer vermeld in mijn post hierboven, maar komt tie nogmaals:.oisyn schreef op dinsdag 20 juli 2010 @ 12:09:
Ik ben meer geïnteresseerd in de daadwerkelijke PHP implementatie ervan, en of die wel klopt.
.edit:
[...]
Dat is sowieso geen valide UTF-8 string. Er is niet zoiets als E9 E9 in UTF-8.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| function isUTF8($string) { // From http://w3.org/International/questions/qa-forms-utf-8.html return preg_match('%^(?: [\x09\x0A\x0D\x20-\x7E] # ASCII | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 )*$%xs', $string) === 1; } |
Firefox maakt van een é een %E9. String is:
1
| %Achternaaméé% |
Wikipedia: Percent-encoding
Tenzij firefox expres iets doet met de encoding van je pagina, hoewel dat eigenlijk niet zou moeten.The generic URI syntax mandates that new URI schemes that provide for the representation of character data in a URI must, in effect, represent characters from the unreserved set without translation, and should convert all other characters to bytes according to UTF-8, and then percent-encode those values. This requirement was introduced in January 2005 with the publication of RFC 3986. URI schemes introduced before this date are not affected.
[ Voor 7% gewijzigd door .oisyn op 20-07-2010 12:19 ]
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.
quote: Request op Websniffer.net?blaat=éééHTTP Request Header
Connect to 188.93.10.56 on port 80 ... ok
GET /?blaat=%E9%E9%E9 HTTP/1.1[CRLF]
Host: web-sniffer.net[CRLF]
Connection: close[CRLF]
User-Agent: Web-sniffer/1.0.36 (+http://web-sniffer.net/)[CRLF]
Accept-Encoding: gzip[CRLF]
Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7[CRLF]
Cache-Control: no[CRLF]
Accept-Language: de,en;q=0.7,en-us;q=0.3[CRLF]
Referer: http://web-sniffer.net/[CRLF]
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Verwijderd
Chrome:.oisyn schreef op dinsdag 20 juli 2010 @ 12:18:
Dan bugt firefox.
Wikipedia: Percent-encoding
[...]
Tenzij firefox expres iets doet met de encoding van je pagina, hoewel dat eigenlijk niet zou moeten.
1
| ?var=%Achternaam%C3%A9%C3%A9% |
IE:
1
| ?var=%Achternaaméé% |
Firefox:
1
| ?var=%Achternaam%E9%E9% |
Safari:
1
| ?var=%AChternaam%C3%A9%C3%A9% |
WTF?
Als je in Javascript encodeURIComponent("ééé") doet krijg je "%C3%A9%C3%A9%C3%A9"
[ Voor 4% gewijzigd door .oisyn op 20-07-2010 12:26 ]
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.
.oisyn schreef op dinsdag 20 juli 2010 @ 12:26:
Als je in Javascript encodeURIComponent("ééé") doet krijg je "%C3%A9%C3%A9%C3%A9"
encodeURIComponent("ééé") %C3%A9%C3%A9%C3%A9
Klopt. Ook in Firefox.
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
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.
http://www.google.nl/#hl=nl&source=hp&q=%C3%A9%C3%A9%C3%A9&aq=f&aqi=g-s1&aql=&oq=&gs_rfai=&fp=1
[ Voor 3% gewijzigd door Sebazzz op 20-07-2010 12:46 ]
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
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.
Het http uri scheme is voor 2005 geintroduceert, dus het lijkt me dat het niet perse fout is..oisyn schreef op dinsdag 20 juli 2010 @ 12:18:
Dan bugt firefox.
Wikipedia: Percent-encoding
quote:
...
This requirement was introduced in January 2005 with the publication of RFC 3986. URI schemes introduced before this date are not affected.
..
“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.”
Hmm good point. Dus feitelijk zitten we nog steeds met een non-standaardWoy schreef op dinsdag 20 juli 2010 @ 13:40:
[...]
Het http uri scheme is voor 2005 geintroduceert, dus het lijkt me dat het niet perse fout 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.
Ik betwijfel of je überhaupt zo in PHP kunt controleren of een string UTF-8 gecodeerd is. Wellicht dat je hier beter mee kunt testen:Verwijderd schreef op dinsdag 20 juli 2010 @ 12:15:
[...]
Hij staat al een paar keer vermeld in mijn post hierboven, maar komt tie nogmaals:
PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 function isUTF8($string) { // From http://w3.org/International/questions/qa-forms-utf-8.html return preg_match('%^(?: [\x09\x0A\x0D\x20-\x7E] # ASCII | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 )*$%xs', $string) === 1; }
Firefox maakt van een é een %E9. String is:
code:
1 %Achternaaméé%
http://www.php.net/manual/en/function.mb-detect-encoding.php
Edit:
Ik krijg met een simpel scriptje het volgende resultaat:
1
2
3
4
5
| <?php var_dump(mb_detect_encoding($_GET['var'])); ?> |
request: utf8.php?var=%E9%E9%E9
resultaat: string(5) "UTF-8"
[ Voor 8% gewijzigd door Michali op 20-07-2010 15:43 ]
edit: nou daar klopt iig geen zak van, E9 E9 E9 is geen geldige UTF-8 string
[ Voor 15% gewijzigd door .oisyn op 20-07-2010 15:44 ]
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.
Hmmm dat weet ik ook niet..oisyn schreef op dinsdag 20 juli 2010 @ 15:41:
edit: nou daar klopt iig geen zak van, E9 E9 E9 is geen geldige UTF-8 string
Edit: met utf8.php?var=%C3%A9%C3%A9%C3%A9 hetzelfde resultaat overigens.
[ Voor 9% gewijzigd door Michali op 20-07-2010 15:50 ]
Wat blijkt: stond het stuk SQL in een query-component, en ja, daar zoekt Delphi niet in
Damn, ik wil weer een fatsoenlijke IDE.
[ Voor 13% gewijzigd door CodeCaster op 20-07-2010 16:36 ]
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Dit topic is gesloten.
Dit topic is niet de plaats om te lopen helpdesken. De Coffee Corner is primair bedoeld als uitlaatklep, niet als vraagbaak