[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Ja, die het makkelijk maakt op de automatische piloot documentatie te laten genereren.Sebazzz schreef op dinsdag 13 juli 2010 @ 16:01:
[...]
Nee, maar voor iedere taal of framework is er wel een conventie, iets wat vaak wordt gebruikt.
Precies, en IDE's zoals Zend doen dat in Javadoc stijl.Davio schreef op dinsdag 13 juli 2010 @ 17:07:
[...]
Ja, die het makkelijk maakt op de automatische piloot documentatie te laten genereren.
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Nog handiger: dit doen bij interfaces, en dan waar je die interface implementeert op de method name klikken en dan in het ReSharper-menu kiezen voor "Copy comment from base"
[ Voor 7% gewijzigd door Alex) op 13-07-2010 18:22 ]
We are shaping the future
Dat soort dingen hoor je gewoon te weten als je VS en R# gebruiktAlex) schreef op dinsdag 13 juli 2010 @ 18:21:
Handige shortcut in Visual Studio voor het genereren van xmlDoc-tags: ///.
Nog handiger: dit doen bij interfaces, en dan waar je die interface implementeert op de method name klikken en dan in het ReSharper-menu kiezen voor "Copy comment from base"
Overigens nog handiger: Ghostdoc!
Wel opletten dat je comments goed uitbreidt, uitkijken dat je niet de neiging krijgt om lui te worden.
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Ow, wacht, deze tool genereert het commentaar
[ Voor 34% gewijzigd door Matis op 13-07-2010 21:53 ]
If money talks then I'm a mime
If time is money then I'm out of time
Doxygen is om documentatiebestanden te genereren, niet om automatisch documentatie te maken toch?Matis schreef op dinsdag 13 juli 2010 @ 21:51:
Ziet er net zo uit als DoxyGen, daar deden wij meestal onze documentatie mee.
edit: Ja editen he
[ Voor 4% gewijzigd door Sebazzz op 13-07-2010 21:57 ]
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Naar mijn idee is zo'n tool dus vooral symptoombestrijding bij een code policy waarbij je élke methode verplicht móet becommentariëren, ook implementeer je bijvoorbeeld een interface letterlijk zoals bedoeld en heb je dus feitelijk niets toe te voegen. In dat geval is de policy eigenlijk verkeerd, en kun je die beter veranderen dan dat je het probleem omzeilt door nutteloze troep in te laten voegen in je broncode.
En dat zit dan in de automatisering

If money talks then I'm a mime
If time is money then I'm out of time
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.
Nog leuk om het volgende te vermelden. Deze functie wordt (werd) op de volgende manier gebruikt:Michali schreef op dinsdag 13 juli 2010 @ 15:22:
Ik ben onderhoud aan het doen aan een website. Echt een genot, ik kwam net deze functie tegen:
PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 // Return hele string (voor zoeken) function GetFullString($fullstring,$text) { if (!(stristr ($fullstring, $text) === FALSE)) { $result = "$fullstring"; } if ($fullstring == "") { $result = " "; } if (empty($fullstring)) { $result = " "; } return $result; }
1
2
| if (GetFullString($title, $waarde) == $title) { ... |
Het wordt dus gebruikt om te controleren of $waarde in $title voorkomt, hoofdletter ongevoelig. Waar die &nsbp; voor zijn is me een raadsel.
Ik hoop dat het juist in die nbsp; zit dat deze functie bestaat. De programmeur kent stristr ( alhoewel hij imho een rare manier heeft om True te bepalen ) enkel die nbsp rechtvaardigt het bestaan van de functie nog...Michali schreef op woensdag 14 juli 2010 @ 11:22:
[...]
Nog leuk om het volgende te vermelden. Deze functie wordt (werd) op de volgende manier gebruikt:
PHP:
1 2 if (GetFullString($title, $waarde) == $title) { ...
Het wordt dus gebruikt om te controleren of $waarde in $title voorkomt, hoofdletter ongevoelig. Waar die &nsbp; voor zijn is me een raadsel.
Verwijderd
Volgens mij rechtvaardigt de het ook niet hoor, die functie is gewoon bagger... Dat hij stristr kent zegt niks, hij 'kent' empty ook, moet je eens kijken hoe hij het gebruikt haha.Gomez12 schreef op woensdag 14 juli 2010 @ 19:38:
[...]
Ik hoop dat het juist in die nbsp; zit dat deze functie bestaat. De programmeur kent stristr ( alhoewel hij imho een rare manier heeft om True te bepalen ) enkel die nbsp rechtvaardigt het bestaan van de functie nog...
Ja, eerst kijken of de string gelijk is aan een lege string ($str == "") en dan nog eens controleren (en vooral geen elseif gebruiken) of de string leeg is. (empty($str))Verwijderd schreef op donderdag 15 juli 2010 @ 22:02:
[...]
Volgens mij rechtvaardigt de het ook niet hoor, die functie is gewoon bagger... Dat hij stristr kent zegt niks, hij 'kent' empty ook, moet je eens kijken hoe hij het gebruikt haha.
En kan iemand me de humor van dit uitleggen:
!(stristr ($fullstring, $text) === FALSE)
if( ! ($bool===FALSE) ) { ... }
Yeah... right
[ Voor 13% gewijzigd door Gamebuster op 16-07-2010 06:13 ]
Let op: Mijn post bevat meningen, aannames of onwaarheden
Voorbeeld:
1
2
3
4
5
6
| $haystack = '43210'; $needle = '0'; $found = stristr($haystack, $needle); echo $found ? 'true' : 'false'; // echo's false. echo !($found === false) ? 'true' : 'false'; // echo's true. |
[ Voor 225% gewijzigd door FragFrog op 16-07-2010 07:49 ]
Want de string 'aep' is dan hetzelfde als de boolean true.
Verwijderd
Bijvoorbeeld:
1
2
3
4
5
6
7
8
9
10
11
12
| <?php class TransactionController { public static function begin() { pg_query('BEGIN'); } public static function commit() { pg_query('COMMIT'); } } class Transaction extends TransactionController {} |
Wat is hier nou allemaal mis? :-)
- Het is een klasse bestaande uit een paar statische methoden die direct de pg_query-functies aanroepen in plaats van onze DAL. Hoe dit was uitgedacht weet ik niet maar het zijn dus gewoon queries die je zelf ook kunt uitvoeren.
- De gehele klasse wordt ge-extend omdat Transaction korter typen is, gok ik? Ik weet het niet precies, niemand hier weet het eigenlijk.
Eigenlijk is dat hetzelfde als de boolean false. Maar dat ligt aan PHP, niet aan loose typed programmeertalen. In zo'n beetje iedere andere loose typed programmeertaal is "aep" niet gelijk aan false (of aan true)Davio schreef op vrijdag 16 juli 2010 @ 09:17:
Want de string 'aep' is dan hetzelfde als de boolean true.
[ Voor 7% gewijzigd door .oisyn op 16-07-2010 13: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.
Javascript toch wel? Moet je ook === gebruiken ipv ==..oisyn schreef op vrijdag 16 juli 2010 @ 13:03:
[...]
Eigenlijk is dat hetzelfde als de boolean false. Maar dat ligt aan PHP, niet aan loose typed programmeertalen. In zo'n beetje iedere andere loose typed programmeertaal is "aep" niet gelijk aan false (of aan true)
Probeer maar eens in een javascript shell.Davio schreef op vrijdag 16 juli 2010 @ 13:26:
[...]
Javascript toch wel? Moet je ook === gebruiken ipv ==.
"aep" == true false "1" == true true "1" === true false 1 === true false 1 == true true "aep" == false false "aep" != false true
[ Voor 5% gewijzigd door Sebazzz op 16-07-2010 13:32 . Reden: Ik edit omdat ik edit 8) ]
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Verwijderd
JavaScript heeft bijna nog vreemdere regels voor typeconversie dan PHP. Zo levert bijvoobeeld (' \r\n\t ' == false) true op.Davio schreef op vrijdag 16 juli 2010 @ 13:26:
[...]
Javascript toch wel? Moet je ook === gebruiken ipv ==.
Bijna alle loosely typed talen hebben dit soort conversies, maar bij de meeste talen zitten er betere regels aan.
Waarschijnlijk omdat dat control characters en whitespace zijn, maar die regels zijn wel degelijk opgesteld en gedocumenteerd in ECMA.Verwijderd schreef op vrijdag 16 juli 2010 @ 13:34:
[...]
JavaScript heeft bijna nog vreemdere regels voor typeconversie dan PHP. Zo levert bijvoobeeld (' \r\n\t ' == false) true op.
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Verwijderd
Ik heb nergens gezegd dat het ongedocumenteerd is, ik vind het zelf alleen bizar. :-)Sebazzz schreef op vrijdag 16 juli 2010 @ 13:37:
[...]
Waarschijnlijk omdat dat control characters en whitespace zijn, maar die regels zijn wel degelijk opgesteld en gedocumenteerd in ECMA.
Waarom is dat raar als ik vragen mag?Verwijderd schreef op vrijdag 16 juli 2010 @ 13:38:
[...]
Ik heb nergens gezegd dat het ongedocumenteerd is, ik vind het zelf alleen bizar. :-)
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Verwijderd
Lees die eerste zin van je nog eens, is "" niet leeg dan?Gamebuster schreef op vrijdag 16 juli 2010 @ 06:11:
[...]
Ja, eerst kijken of de string gelijk is aan een lege string ($str == "") en dan nog eens controleren (en vooral geen elseif gebruiken) of de string leeg is. (empty($str))
En kan iemand me de humor van dit uitleggen:
!(stristr ($fullstring, $text) === FALSE)
if( ! ($bool===FALSE) ) { ... }
Yeah... right
1
2
3
4
5
6
7
8
9
| '' == '0' //false 0 == '' //true 0 == '0' //true false == 'false' //false false == '0' //true false == undefined //false false == null //false null == undefined //true " \t\r\n" == 0 //true |
Leuk hoor.
Verwijderd
Ik vind het raar omdat in mijn gedachtenwereld alleen de lege string zou moeten mogen evalueren naar false. Ik zeg overigens ook niet dat het raar *is*, alleen dat ik het vind. :-)
"Ik weet niet waarom dat zo is", is dat niet een code smell?quote: jexusIk weet het niet precies, niemand hier weet het eigenlijk.
Sterker nog... refactor het, ik smeek je,
En eigenlijk zijn loose typed talen allemaal raar, stiekem,
Het worden dan bijna filosofische kwesties.
Verwijderd
Geloof me, ik ga het refactoren. :-) Maar nu is er de tijd nog niet voor, we zijn druk bezig met een aantal side-projects die nog enkele weken tijd kosten. Daarna gaan we de bestaande codebase onder de loep nemen en verbeteren.YopY schreef op vrijdag 16 juli 2010 @ 14:43:
[...]
"Ik weet niet waarom dat zo is", is dat niet een code smell?Als het jullie code is, schroom niet om het keihard te refactoren.
Sterker nog... refactor het, ik smeek je,. if ($vaag) { refactor(Time::NOW); }.
N.b.: deze code is niet ons eigen werk geweest, dit is van enkele programmeurs die hier voor mij en m'n collega's werkten. Mag je eens raden waarom ze ontslagen zijn.
De fout die PHP maakt is dat als er bij de == een van de twee operanden een nummer is, dan wordt de andere operand ook geconverteerd naar een nummer, en als dat niet lukt dan wordt het een 0. Daarom is "aap" == 0 in PHP gelijk aan true.Davio schreef op vrijdag 16 juli 2010 @ 13:26:
[...]
Javascript toch wel? Moet je ook === gebruiken ipv ==.
In Javascript en Python e.d. echter, wordt er niet gewoon maar geconverteerd en daarna vergeleken, maar wordt er ook gekeken of de conversie lukt. Een string als "aap" is niet naar een int te converteren, dus een vergelijking met een int zal ook altijd false opleveren.
De uitzondering die javascript overigens maakt is dat een lege string (sowieso altijd na stripping van leading en trailing whitespaces) wel te converteren is naar een int, waar 0 uitkomt. Questionable als je het mij vraagt, maar nog niet zo fout dat elke string dat geen int is gelijk is aan 0.
Afgezien van de laatste statement zie ik daar niet heel veel mis mee.Shagura schreef op vrijdag 16 juli 2010 @ 14:11:
[...]
JavaScript:
1 2 3 4 5 6 7 8 9 '' == '0' //false 0 == '' //true 0 == '0' //true false == 'false' //false false == '0' //true false == undefined //false false == null //false null == undefined //true " \t\r\n" == 0 //true
Leuk hoor.
[ Voor 3% gewijzigd door .oisyn op 16-07-2010 15:45 ]
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.
Echter: iedere request werd geredirect, dus ook requests voor plaatjes e.d., waardoor styling op die settingspagina ook volledig fubar was. "Ja, ik zag dat ook maar ik dacht dat dat met m'n cache te maken had."
Ik heb 't nu aangepast zodat alléén .aspx-pagina's worden geredirect en de rest met rust wordt gelaten.
We are shaping the future
Wij maken gebruik van een database waar plaatjes in opgeslagen worden (als CLOBs of BLOBs).
Via een agent (gewoon een .exe process) wordt er een script (net zoiets als php, maar dan anders) uitgevoerd die van het plaatje uit de database een response maakt met een goede header, waardoor de browser het ziet als een plaatje.
Maar soms worden er 600 thumbnails geladen in een div met een scrollbar en dan worden er dus 600 agents gestart en gestopt, niet echt fijn. Ik zat te denken om gewoon één agent te laten runnen die alle plaatjes in een temp-map aanmaakt en dan die in de img src te gooien.
Een ander idee leek me om de plaatjes te lazy loaden. Hiervoor hebruik ik een Lazy Load plug-in voor JQuery. Op zich aardig, maar het werkt niet fijn met Backbase, wat wij ook gebruiken. Ik heb namelijk een window (soort popup, gewoon een overlay op het scherm) open waar die div inzit en hij laad alleen de bovenste twee plaatjes, terwijl er ruimte is voor meer.
Dus dit wordt nog sleutelen.
Maar alles beter dan 600 processen starten en stoppen.
Klinkt alsof je een vorm van reverse proxy kan gebruiken. Kijk eens naar varnish. Het lijkt me netter om bestaande software te gebruiken die daarnaast nog meer voordelen gaat opleveren ipv. een custom-ware oplossing.Davio schreef op vrijdag 16 juli 2010 @ 16:54:
Dan dit.
Wij maken gebruik van een database waar plaatjes in opgeslagen worden (als CLOBs of BLOBs).
Via een agent (gewoon een .exe process) wordt er een script (net zoiets als php, maar dan anders) uitgevoerd die van het plaatje uit de database een response maakt met een goede header, waardoor de browser het ziet als een plaatje.
Maar soms worden er 600 thumbnails geladen in een div met een scrollbar en dan worden er dus 600 agents gestart en gestopt, niet echt fijn. Ik zat te denken om gewoon één agent te laten runnen die alle plaatjes in een temp-map aanmaakt en dan die in de img src te gooien.
Een ander idee leek me om de plaatjes te lazy loaden. Hiervoor hebruik ik een Lazy Load plug-in voor JQuery. Op zich aardig, maar het werkt niet fijn met Backbase, wat wij ook gebruiken. Ik heb namelijk een window (soort popup, gewoon een overlay op het scherm) open waar die div inzit en hij laad alleen de bovenste twee plaatjes, terwijl er ruimte is voor meer.
Dus dit wordt nog sleutelen.
Maar alles beter dan 600 processen starten en stoppen.
TRWTFDavio schreef op vrijdag 16 juli 2010 @ 16:54:
Wij maken gebruik van een database waar plaatjes in opgeslagen worden (als CLOBs of BLOBs).
Niet al te serieus nemen, ik wil best geloven dat het in jullie situatie wel de beste oplossing is
[ Voor 21% gewijzigd door FragFrog op 16-07-2010 17:31 ]
1
2
3
| <div class="gallery"> <a href=\"#\" onclick=\"watchvideo('$url','$title2');\ class="group left" rel="group">$title</a> </div> |
Dit stukje code kwam ik tegen op een forum. Erg leuk, maar als je een topic over jQuery en de Fancybox begint. Waarom gebruik je dan nog een onClick
De escaping klopt ook niet helemaal, maar dat had niet met zijn probleem te maken. Selectief copy-paste naar een forumtopic doet zijn werk blijkbaar...
☎ Telecommunicatie van vroeger
🚅Alles over spoor en treintjes
Overigens is een onclick helemaal niet zo erg hoor
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Check de escapingSebazzz schreef op vrijdag 16 juli 2010 @ 18:53:
Je bent bekent met [code=HTML][/] ?
Overigens is een onclick helemaal niet zo erg hoor
Maar met jQuery kan je ook prima kijken of er op een a-tag geklikt is. Dus een onClick event lijkt me dan erg overbodig.
[ Voor 19% gewijzigd door AW_Bos op 16-07-2010 19:14 ]
☎ Telecommunicatie van vroeger
🚅Alles over spoor en treintjes
Hmm, ik kan bijna niet meer zonder het onClick="return jsFunction(this)", vooral omdat je met de return-value kunt bepalen of er naar de link gesprongen wordt of niet.AW_Bos schreef op vrijdag 16 juli 2010 @ 19:13:
[...]
Check de escaping. Dit hoort me dan eerder bij PHP.
Maar met jQuery kan je ook prima kijken of er op een a-tag geklikt is. Dus een onClick event lijkt me dan erg overbodig.
En om een heel framework te installeren / gebruiken om alleen de onClick af te vangen is over-engineering © NMe
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]
1
2
| document.getElementById('someElement').onclick = function() { } |
Dat kan toch prima met een preventDefault() wanneer je gebruik maakt van event handlers? Dan blijft de (js) code netjes gescheiden van de HTML. Ook dan heb je geen framework nodig.Matis schreef op vrijdag 16 juli 2010 @ 19:31:
[...]
Hmm, ik kan bijna niet meer zonder het onClick="return jsFunction(this)", vooral omdat je met de return-value kunt bepalen of er naar de link gesprongen wordt of niet.
En om een heel framework te installeren / gebruiken om alleen de onClick af te vangen is over-engineering © NMe
Ja, onze plaatjes worden ook nog eens geëncrypt voordat ze worden opgeslagen. Wij werken met gevoelige informatie, dus we moeten er alles aan doen om die informatie te beschermen. En in een database gaat dat prima.FragFrog schreef op vrijdag 16 juli 2010 @ 17:28:
[...]
TRWTF
Niet al te serieus nemen, ik wil best geloven dat het in jullie situatie wel de beste oplossing is
Het is gewoon vervelend dat er 600x dit gebeurt:
- De img src = http://blabla/cgiip.exe?plaatje-id start de cgiip.exe agent
- De agent runt een procedure die het plaatje ophaalt uit de database, decrypt en omzet naar een normale HTTP response
- En dan sluit de agent weer
Het aantal agents dat tegelijk actief mag zijn, is echter beperkt (15 ofzo, misschien 30), dus als voor iemand 600 plaatjes tegelijk wordt opgehaald, is dat gewoon een tijdelijke DoS-attack.
Ik weet niet of Varnish hier tegen kan helpen, want het zijn vaak elke keer nieuwe plaatjes en die moeten toch opgehaald worden...
Ik probeer het toch met Lazy Loading, want niet alle plaatjes zijn tegelijk zichtbaar en zullen ook niet altijd allemaal bekeken worden.
Zomaar een idee: Is het echt nodig dat er 600 thumbnails weergegeven worden? En is het misschien een idee om die 600 afbeeldingen in een tijdelijke thumbnail map of cache op te slaan?quote: DavioHet is gewoon vervelend dat er 600x dit gebeurt:
Een kwart valt mee, als je die plaatjes ook nog eens encrypted opgeslagen hebt.FragFrog schreef op maandag 19 juli 2010 @ 10:34:
[...]
Toevallig heb ik dat van de week nog lopen benchmarken (nav een andere opmerking hier), op mijn testserver is het grofweg een kwart sneller om filesystem te gebruiken dan een MySQL database (link). Wellicht dat er situaties zijn waar dit niet geldt, maar ik ben ze nog niet tegengekomen
Tja, het gaat om afbeeldingen die per persoon verschillen. Een tijdelijke thumbnail map of cache is dan wel leuk, maar er zal zelden een plaatje opnieuw worden opgevraagd.YopY schreef op maandag 19 juli 2010 @ 11:51:
[...]
Zomaar een idee: Is het echt nodig dat er 600 thumbnails weergegeven worden? En is het misschien een idee om die 600 afbeeldingen in een tijdelijke thumbnail map of cache op te slaan?
Ik vermoed dat de kans bestaat dat de requirement die afdwingt dat encryptie nodig is er ook voor zorgt dat er geen thumbnails gecached zouden mogen worden.YopY schreef op maandag 19 juli 2010 @ 11:51:
Zomaar een idee: Is het echt nodig dat er 600 thumbnails weergegeven worden? En is het misschien een idee om die 600 afbeeldingen in een tijdelijke thumbnail map of cache op te slaan?
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Tja, dat kan je nooit 100% voorkomen.Janoz schreef op maandag 19 juli 2010 @ 12:09:
[...]
Ik vermoed dat de kans bestaat dat de requirement die afdwingt dat encryptie nodig is er ook voor zorgt dat er geen thumbnails gecached zouden mogen worden.
Het gaat er ook meer om dat de aanvankelijke requests geoptimaliseerd worden en niet de requests daarna.
In dat geval zou ik inderdaad eerst kijken of ik het aantal thumbnails terug zou kunnen brengen (alsof een gebruiker uberhaupt 600 thumbs in 1 keer gaat bekijkenDavio schreef op maandag 19 juli 2010 @ 13:11:
[...]
Tja, dat kan je nooit 100% voorkomen.
Het gaat er ook meer om dat de aanvankelijke requests geoptimaliseerd worden en niet de requests daarna.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
In ieder geval. Slechte programmeervoobeelden svp,
Het is sowieso geen keus om de boel uit een db te halen, minder thumbs te laten zien, of de decryptie als een service te runnen, omdat er een bestaande functionaliteit is waar ik mee moet werken.
Ik doe momenteel zeg maar de 'voorkant' en alhoewel ik ook bij de achterkant kan en daar verstand van heb, wil ik er niet teveel mee rommelen ivm het spaghetti-probleem; dat je één klein dingetje verandert en dat ergens anders wat kapot gaat.
Edit: Bedankt voor jullie suggesties iig.
[ Voor 4% gewijzigd door Davio op 19-07-2010 13:46 ]
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
De site voor de voorverkoop van de nieuwe iPhone;
1
| <table style="display: none;"> |
Lekker geprogrammeerd



[ Voor 30% gewijzigd door Matis op 19-07-2010 22:11 ]
If money talks then I'm a mime
If time is money then I'm out of time

Ik bedoel: zit je altijd de source van pagina's te controleren om te kijken wat er nog aan hidden features in zitten?
[ Voor 36% gewijzigd door Reptile209 op 19-07-2010 22:15 ]
Zo scherp als een voetbal!
@Reptile209, nieuws: Apple iPhone 4 bij T-Mobile 70 euro duurder dan 3GS stond vermeld dat het wel in de broncode stond. Dan is het voor mij niet veel werk om te zoeken waar de "display: none" staat
Maar ik snuffel wel vaker door broncode's, voornamelijk of er grappige commentaarregels zijn opgenomen ofzo
Meestal staan die bij IE-gerelateerde CSS-eigenschappen
[ Voor 17% gewijzigd door Matis op 19-07-2010 22:22 ]
If money talks then I'm a mime
If time is money then I'm out of time
1
| <!-- This seperates the head from the body --> |
1
| // That's all folks! |
1
| /* HACK HACK HACK to get IE behaving properly */ |
1
| /* Crappy IE once again refuses to honour standards. HACK!*/ |
Heerlijk is dat ja
We are shaping the future
Die laatste 2 zijn geen programmeerfouten, dat is een schier noodzakelijke afreageermogelijkheid die voorkomt dat alle webdeveloppers zich na 3 dagen voor de trein zouden werpen.Alex) schreef op maandag 19 juli 2010 @ 22:51:
HTML:
1<!-- This seperates the head from the body -->
JavaScript:
1// That's all folks!
Cascading Stylesheet:
1/* HACK HACK HACK to get IE behaving properly */
Cascading Stylesheet:
1/* Crappy IE once again refuses to honour standards. HACK!*/
Heerlijk is dat ja
Ik denk altijd even terug aan Steve Ballmer, Developers, Developers, DevelopersmcDavid schreef op maandag 19 juli 2010 @ 23:43:
[...]
Die laatste 2 zijn geen programmeerfouten, dat is een schier noodzakelijke afreageermogelijkheid die voorkomt dat alle webdeveloppers zich na 3 dagen voor de trein zouden werpen.
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Naja, de nieuwe Internet Explorer wordt redelijkSebazzz schreef op maandag 19 juli 2010 @ 23:45:
[...]
Ik denk altijd even terug aan Steve Ballmer, Developers, Developers, Developers

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸
Overigens zullen hacks denk ik altijd wel nodig blijven... CSS3 staat ook weer voor de deur (al weet ik niet hoe (goed) de IE9 implementatie daarvan is).
[ Voor 34% gewijzigd door Avalaxy op 20-07-2010 01:46 ]
IE 9 is echt wel een enorme verbetering, ik had het eigenlijk niet verwacht van Microsoft.
We are shaping the future
Ik heb in sommige gevallen de indruk dat IE9 zelfs nog strikter is met CSS3 dan de andere browsers. Misschien willen ze vanuit Redmond het een en ander goedmaken voor het leed dat ze de webdevvers de afgelopen jaren hebben aangedaanAvalaxy schreef op dinsdag 20 juli 2010 @ 01:45:
Muah, ik denk dat met Vista en Win7 IE9 best goed gepushed kan worden door Windows UpdateDat was bij XP toch een stuk minder het geval volgens mij.
Overigens zullen hacks denk ik altijd wel nodig blijven... CSS3 staat ook weer voor de deur (al weet ik niet hoe (goed) de IE9 implementatie daarvan is).
If money talks then I'm a mime
If time is money then I'm out of time
"If it sounds too good to be true..."Alex) schreef op dinsdag 20 juli 2010 @ 08:19:
IE 9 is echt wel een enorme verbetering, ik had het eigenlijk niet verwacht van Microsoft.
Microsoft heeft laten zien dat ze het kunnen, maar ze zullen voor IE9 wel weet een paar eigen quircks introduceren
[ Voor 19% gewijzigd door Sebazzz op 20-07-2010 09:11 ]
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| $i=0; foreach ($blokItems as $blokItem){ $i++; if ($i<6) { $blokItemTitle = $blokItems[(($i-1)*2)]; // cut title to proper size if (strlen($blokItemTitle)>29) { $blokItemTitle = neat_trim($blokItemTitle,28); } if ($nieuwsVolgorde[($i-1)] == "video") { $nieuwsType = "1"; } print '<a href="'.$_SERVER['PHP_SELF'].'?id='.$nieuwsType.'&'.$nieuwsVolgorde[($i-1)].'='; print $blokItems[((($i-1)*2)+1)].'">'.strip_tags($blokItemTitle).'</a>'; } } |
Extra uitleg lijkt mij overbodig
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.
1
2
3
4
5
6
7
| array_push($blokItems,$blokItems1[$x]['name'],$blokItems1[$x]['id']); // Titel = even values $blokItems[(($i-1)*2)] // ID = oneven values $blokItems[((($i-1)*2)+1)] |
[ Voor 7% gewijzigd door basvd op 20-07-2010 12: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.
Ja klopt, die berekening lijkt toch wel goed te gaan. Ik dacht dat het niet klopte..oisyn schreef op dinsdag 20 juli 2010 @ 15:29:
Nee, de code is niet fout. Hij is alleen slecht.
1
2
3
4
5
6
7
8
9
10
11
| $blokitems1; // bevat name & id for ($i = 0; $i < 6; $i++) { $blokItemTitle = strip_tags($blokItems1[$i]['name']); $blokItemTitle = (strlen($blokItemTitle) > 29) ? neat_trim($blokItemTitle,28) : $blokItemTitle; // daweeknie if ($nieuwsVolgorde[($i)] == "video") { $nieuwsType = "1"; } print "<a href=\"{$_SERVER['PHP_SELF']}?id={$nieuwsType}&{$nieuwsVolgorde[$i]}={$blokItems1[$i]['id']}\">{$blokItemTitle}</a>"; } } |
Niet optimaal qua netheid, maar het is toch beterder. Imho, natuurlijk, en liever zou ik het helemaal wegdoen ;p.
Verwijderd
Het doet wat het moet doen, maar geen handige oplossing als het later aangepast moet worden. Ik lag wel krom van het lachen trouwens.
Over 10 jaar is de meute eindelijk overgestapt op een browser die al vóór zijn officiële release (dan 10 jaar geleden) als "redelijk" te boek stond.TheCoolGamer schreef op dinsdag 20 juli 2010 @ 00:37:
[...]
Naja, de nieuwe Internet Explorer wordt redelijk. 10 jaar wachten tot iedereen over is gestapt en dan zijn dit soort hacks niet meer nodig.
Kijk er al naar uit.
1
2
3
4
5
6
7
8
9
10
| public void btnOpen1_Click( object sender, EventArgs e ) { this.rdbCase1.Checked = true; Open(); } public void btnOpen2_Click( object sender, EventArgs e ) { this.rdbCase2.Checked = true; Open(); } |
Op die radiobuttons werd weer gereageerd:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| public void rdbCase_CheckedChanged( object sender, EventArgs e ) { // ... if ( !rdbCase3.Checked ) { RadioButton clicked = (RadioButton)sender; if ( ( rdbCase1.Checked && clicked.Text == "Case1" && this.CurrentCase == Case2 ) || ( rdbCase2.Checked && clicked.Text == "Case2" && this.CurrentCase == Case1 ) ) { if ( MessageBox.Show( "Weet u het zeker?", "", MessageBoxButtons.YesNo ) == DialogResult.No ) { if ( rdbCase1.Checked ) rdbCase2.Checked = true; else rdbCase1.Checked = true; } } } } |
1
2
3
4
5
6
7
8
9
| private void Reopen() { if ( this.SelectedX == null || MessageBox.Show( "Andere X?", "", MessageBoxButtons.YesNo ) == DialogResult.Yes ) { SelectX(); } SelectY(); } |
Waarin ook de SelectX() en SelectY() functies weer UI afhankelijk waren en bovendien ook nog beide geannuleerd konden worden.

Alles wat ik zeg kan en zal tegen u gebruikt worden
Scream! Suffer! Panic! | Dark-future Dawnbringer | Unofficial Mordor community

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind.' - Pratchett.
Ja, ik geef het toe, ik had een VB3 tijd

[ Voor 43% gewijzigd door .oisyn op 23-07-2010 16:37 . Reden: Nee, het was toch 3 ]
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.
Iedereen had een VB tijd..oisyn schreef op vrijdag 23 juli 2010 @ 16:31:
Idd, dat lijkt op code uit mijn VB3 tijd
Ja, ik geef het toe, ik had een VB3 tijd
Helaas
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
Zal wel aan het jaartal liggen dan. Ik begon met PHP, is dat erger?
Daarna iig C++, Java, C#.
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Nee ik heb nooit echt een VB tijd gehad, wel een QBasic tijd
“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, ja, GW-BASIC.Woy schreef op vrijdag 23 juli 2010 @ 18:53:
[...]
Nee ik heb nooit echt een VB tijd gehad, wel een QBasic tijd
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
If money talks then I'm a mime
If time is money then I'm out of time
Wat zou er gebeuren als ik /"><script>alert('test');</script><a href=" achter de url van dat script ingeef? Die php_self lijkt me ook iets om te vermijden, toch zonder een goede controle.YopY schreef op dinsdag 20 juli 2010 @ 17:04:
In dat geval...
PHP:
1 2 3 4 5 6 7 8 9 10 11 $blokitems1; // bevat name & id for ($i = 0; $i < 6; $i++) { $blokItemTitle = strip_tags($blokItems1[$i]['name']); $blokItemTitle = (strlen($blokItemTitle) > 29) ? neat_trim($blokItemTitle,28) : $blokItemTitle; // daweeknie if ($nieuwsVolgorde[($i)] == "video") { $nieuwsType = "1"; } print "<a href=\"{$_SERVER['PHP_SELF']}?id={$nieuwsType}&{$nieuwsVolgorde[$i]}={$blokItems1[$i]['id']}\">{$blokItemTitle}</a>"; } }
Niet optimaal qua netheid, maar het is toch beterder. Imho, natuurlijk, en liever zou ik het helemaal wegdoen ;p.
Verder, QBasic had leuke demo's! Maar veel verder ben ik nooit gekomen. Turbo pascal heb ik wel een aantal jaar geprogrammeerd. VBA heb ik ook ooit gedaan.
En weleens wat dingetjes gedaan met Python en Haskell enzo maar dat mag geen naam hebben.
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.
1
2
3
4
| /** @inheritDoc */ private void myCoolMethod() { [..] } |
inheritDoc op een private method? Er staat nu inderdaad wat, maar het lijkt me sterk dat dit bedoeld werd. myCoolMethod overrides geen functie uit een superclass of implementeert geen methode uit een interface.Gwaihir schreef op zaterdag 24 juli 2010 @ 23:19:
Van de week gespot. Commentaar is natuurlijk zo'n beetje verplicht, dus los je dat zo op:
Java:
1 2 3 4 /** @inheritDoc */ private void myCoolMethod() { [..] }
¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸
Kijk even goed in welk topic je zit.TheCoolGamer schreef op zaterdag 24 juli 2010 @ 23:53:
[...]
inheritDoc op een private method? Er staat nu inderdaad wat, maar het lijkt me sterk dat dit bedoeld werd. myCoolMethod overrides geen functie uit een superclass of implementeert geen methode uit een interface.
Ik leg het even uit voor de niet JavaDoc-kenners.
¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸
Met dank daarvoor ^^TheCoolGamer schreef op zondag 25 juli 2010 @ 00:02:
[...]
Ik leg het even uit voor de niet JavaDoc-kenners.
Ook al twijfelde ik aan dat commentaar, want zo'n woordje "inherit" staat er natuurlijk niet zomaar en als je dan nergens opgeeft wat die moet overnemen..
Heh, als je zinnige dingen wilt doen op de TI-83+ kun je beter meteen assembly gaan programmeren.Matis schreef op vrijdag 23 juli 2010 @ 21:16:
Ik ben begonnen met programmeren op mijn TI-83 Silver Edition, dat was dus Basic waarin ik mijn eerste regeltjes code programmeerde
Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info
basvd schreef op dinsdag 20 juli 2010 @ 11:21:
PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $i=0; foreach ($blokItems as $blokItem){ $i++; if ($i<6) { $blokItemTitle = $blokItems[(($i-1)*2)]; // cut title to proper size if (strlen($blokItemTitle)>29) { $blokItemTitle = neat_trim($blokItemTitle,28); } if ($nieuwsVolgorde[($i-1)] == "video") { $nieuwsType = "1"; } print '<a href="'.$_SERVER['PHP_SELF'].'?id='.$nieuwsType.'&'.$nieuwsVolgorde[($i-1)].'='; print $blokItems[((($i-1)*2)+1)].'">'.strip_tags($blokItemTitle).'</a>'; } }
Extra uitleg lijkt mij overbodig
basvd schreef op dinsdag 20 juli 2010 @ 12:56:
Nou..., ergens bovenaan in het script staat dit:
PHP:
1 2 3 4 5 6 7 array_push($blokItems,$blokItems1[$x]['name'],$blokItems1[$x]['id']); // Titel = even values $blokItems[(($i-1)*2)] // ID = oneven values $blokItems[((($i-1)*2)+1)]
In php is het inderdaad een onlogische keuze. Dat neemt niet weg dat de constructie in o.a. lisp niet vreemd is: het heet daar een property list..oisyn schreef op dinsdag 20 juli 2010 @ 15:29:
Nee, de code is niet fout. Hij is alleen slecht.
Hmm, mijn eerste applicatie was volgens mij de SOSCASTOA berekeningen, compleet met menu en hufter-proofGrijze Vos schreef op zondag 25 juli 2010 @ 11:38:
Heh, als je zinnige dingen wilt doen op de TI-83+ kun je beter meteen assembly gaan programmeren.
Of het was de ABC-formule, ik weet het niet meer, maar het werd in de klas iig gretig afgenomen

If money talks then I'm a mime
If time is money then I'm out of time
Oh, dus in lisp is het gebruikelijk om een array te maken van n*m elementen als je n keer m properties wilt gebruiken, itt de link die je daar geeft waarbij je properties adhv hun naam op kunt vragen?ValHallASW schreef op zondag 25 juli 2010 @ 16:35:
In php is het inderdaad een onlogische keuze. Dat neemt niet weg dat de constructie in o.a. lisp niet vreemd is: het heet daar een property list.
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 gaat hier om een array van 2*n elementen om n key:value-mappings op te slaan. En ja. Letterlijk uit de pagina waar ik naar link:.oisyn schreef op zondag 25 juli 2010 @ 20:02:
[...]
Oh, dus in lisp is het gebruikelijk om een array te maken van n*m elementen als je n keer m properties wilt gebruiken, itt de link die je daar geeft waarbij je properties adhv hun naam op kunt vragen?
Dat betekent dus bijvoorbeeld:A property list is implemented as a memory cell containing a list with an even number (possibly zero) of elements. (Usually this memory cell is the property-list cell of a symbol, but any memory cell acceptable to setf can be used if getf and remf are used.) Each pair of elements in the list constitutes an entry; the first item is the indicator, and the second is the value.
1
2
3
4
| > (setf (symbol-plist 'clyde) '(a b c d)) (A B C D) > (get 'clyde 'a) B |
[ Voor 18% gewijzigd door .oisyn op 25-07-2010 22:29 ]
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.
Dit topic is gesloten.
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.