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.
Dat zij dat vinden maakt het nog niet direct logischmithras schreef op zaterdag 05 februari 2011 @ 14:01:
[...]
Dat het schijnbaar zo werkt voor Word en/of InDesign is leuk voor ze, de specificaties van html geven duidelijk aan wat wel en wat niet nodig is. Zo is een sluittag voor <p> elementen niet verplicht onder bepaalde voorwaarden.
Zie hier de hele rits van optionele tags: html syntax
Een paragraaf is nu eenmaal een blok, daar kun je niet echt omheen. Dat je dit niet verplicht hoeft af te sluiten is imo niet logisch bij een blok. Een div sluit je namelijk ook af door een /div te gebruiken. Nu is het wel zo dat je over het algemeen een p niet zul nesten in een andere p. Voor sommige tags is afsluiten inderdaad een beetje overbodig (zoals bijvoorbeeld een br, maar ook over een li kun je discussiëren, want de volgende li geeft het volgende element weer). Voor een p vind ik het echter een vaag besluit. En dan mag jij weer denken "dat is leuk voor jou"
Ze zullen allicht bij de volgende <p> een nieuwe paragraaf beginnen en de oude afsluiten, maar stel dat je aan het einde van je pagina een tekst hebt die je niet in een p wilt hebben (en dus geen nieuwe p opent) zal de parser deze waarschijnlijk in de vorige p plaatsen, dit kan best vervelende situaties veroorzaken. En dat is weer minder leuk voor de ontwikkelaar...
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.
[ Voor 27% gewijzigd door .oisyn op 05-02-2011 14:32 ]
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
Dat is dan een domme ontwikkelaar die het hele principe van optioneel niet begrijpt. Het betekent dat je hem mag weglaten. Het betekent niet dat als je een optionele end tag weglaat dat het resultaat altijd hetzelfde is. Het betekent alleen dat het in sommige gevallen niet uitmaakt of je hem weglaat..Gertjan. schreef op zaterdag 05 februari 2011 @ 14:23:
Ze zullen allicht bij de volgende <p> een nieuwe paragraaf beginnen en de oude afsluiten, maar stel dat je aan het einde van je pagina een tekst hebt die je niet in een p wilt hebben (en dus geen nieuwe p opent) zal de parser deze waarschijnlijk in de vorige p plaatsen, dit kan best vervelende situaties veroorzaken. En dat is weer minder leuk voor de ontwikkelaar...
Waarom kan dat bij een p element wel en een li element niet? Nesting! Paragrafen kunnen niet worden genest. Een p element mag geen block-level elementen bevatten. Bij het eerstvolgende block-level element houdt een paragraaf dus automatisch op.
Het is simpel, het is logisch. Ik snap niet dat daar discussie over mogelijk is.
Mja is ook wel weer zo, misschien stugheid van de developer.oisyn schreef op zaterdag 05 februari 2011 @ 14:31:
Als je vindt dat een li het volgende element weergeeft, waarom vind je dan niet ook dat een p de volgende paragraaf weergeeft? Er zit niet zo'n wezenlijk verschil in een lijst met listitems en een lijst met paragrafen.
Ben zelf overigens voorstander van /li, en vind dat dat eigenlijk ook wel moet. Op veel voorbeelden op internet zie je inderdaad vaak enkel de <li> dus op de een of andere manier heb ik daar mee "leren leven". Een p zonder /p komt gewoon niet logisch over. Misschien ook wel omdat ik door het werken met InDesign heb geleerd dat een P altijd een blok is wat netjes afgesloten is.
Voor beiden is wat te zeggen, maar er werd aangehaald dat het leuk is dat Word/InDesign het op een bepaalde manier doen en dat het eenmaal zo in de HTML5 standaard staat en dat het daarom zo moet en dus logisch is. Vind dat wel een beetje een drogredenering.
Nou nou, jij maakt nooit fouten/onzorgvuldigheden? Als je code van een ander krijgt moet je nu rekening houden met het optionele op een tag waarvoor je het niet gewend bent.Verwijderd schreef op zaterdag 05 februari 2011 @ 14:40:
[...]
Dat is dan een domme ontwikkelaar die het hele principe van optioneel niet begrijpt. Het betekent dat je hem mag weglaten. Het betekent niet dat als je een optionele end tag weglaat dat het resultaat altijd hetzelfde is. Het betekent alleen dat het in sommige gevallen niet uitmaakt of je hem weglaat.
Waarom was men "vroegah" dan niet zo briljant om in de HTML4 de /p optioneel te maken? Ik snap dat je een paragraaf niet in een andere paragraaf kunt zetten en dat geldt ook voor een li dat klopt. Vraag me af waarom er vroeger dan onderscheid wat gemaakt.Waarom kan dat bij een p element wel en een li element niet? Nesting! Paragrafen kunnen niet worden genest. Een p element mag geen block-level elementen bevatten. Bij het eerstvolgende block-level element houdt een paragraaf dus automatisch op.
Het is simpel, het is logisch. Ik snap niet dat daar discussie over mogelijk is.
Nadeel van optionele tags is dat je de HTML niet echt lekker als een XML structuur kunt parsen, wat bijvoorbeeld bij het automatisch processen van pagina's wel lastig is.
Ik vind zelf het nadeel van optionele tags dat je inconsistentie gaat krijgen. Misschien ook wel door wat er vroeger mis ging in de browsers hoor.
Je zou ook verwachten dat <p>tekst <b>dik </p> ook de b zou afsluiten, zelfde geld voor tags in table cells, dit ging vroeger in IE gigantisch mis. Misschien ben ik daarom wel groot voorstander geworden van netjes sluiten van je tags en zorgen dat je HTML een beetje leesbaar als XML blijft. Dom, stug of whatever ik houd wel van consistent en leesbare HTML.
[ Voor 47% gewijzigd door .Gertjan. op 05-02-2011 14:47 ]
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.
Ho, dat heb ik niet gezegd.Gertjan. schreef op zaterdag 05 februari 2011 @ 14:41:
[...]
Voor beiden is wat te zeggen, maar er werd aangehaald dat het leuk is dat Word/InDesign het op een bepaalde manier doen en dat het eenmaal zo in de HTML5 standaard staat en dat het daarom zo moet en dus logisch is. Vind dat wel een beetje een drogredenering.
Jij zegt dat het hoort, omdat Word en InDesign ook zo werken. Daar ben ik het niet mee eens en daarom reageer ik erop. Naast dat de vergelijking krom is (jij kijkt naar representatie, niet de onderliggende code & jij vergelijkt een programma met een taal) hoeft het ook niet te gelden. Dat in situatie X voor a wordt gekozen en situatie Y voor b, doet niets af aan de mogelijkheden binnen a en/of b.
Daarnaast geef ik commentaar:
Puur optioneel dus, wat niets of niemand verplicht om het zo te doen. Het enige is dat het mag waardoor je misschien kortere en/of overzichtelijkere code krijgt.Dat het schijnbaar zo werkt voor Word en/of InDesign is leuk voor ze, de specificaties van html geven duidelijk aan wat wel en wat niet nodig is. Zo is een sluittag voor <p> elementen niet verplicht onder bepaalde voorwaarden.
En verder Cheatah zegt: de regels van W3C zijn (in dit geval althans) simpel en logisch. Over het waarom kan je discussieren, maar dat het mag: het staat er letterlijk.
Dat het in de specificatie staat snap ik inmiddels. Maar Cheatah vraag zich af waarom er überhaupt over gediscussieerd moet worden, want volgens hem zijn de regels logisch en simpel.mithras schreef op zaterdag 05 februari 2011 @ 15:02:
En verder Cheatah zegt: de regels van W3C zijn (in dit geval althans) simpel en logisch. Over het waarom kan je discussieren, maar dat het mag: het staat er letterlijk.
Daar ben ik het dus niet mee eens, soms is een verplichting makkelijker en logischer dan een reeks situaties waarin iets optioneel is. Door uitzonderingsregels te maken maak je het ook niet simpeler. Er zal straks in de praktijk blijken dat iemand moet nadenken of het op een bepaald punt verplicht of optioneel is en zal daar allicht een fout in maken. Door het altijd verplicht te stellen haal je in ieder geval die onzekerheid weg (en als de /p dus ontbreekt weet je wat er mis is in plaats van dat je moet bedenken of hij daar wel of niet zou moeten). Uitzonderingen maken het, denk ik, lastiger voor de gebruikers van HTML5, maar ook mogelijk voor de ontwikkelaars van de parsers/browsers.
Daarnaast blijf ik het jammer vinden dat ze niet wat meer richting de XHTML standaard zijn gegaan, dan was het ook makkelijker geweest om zelf parsers enzo te maken. Dat is nu in HTML4 niet echt lekker mogelijk en 5 zal daar weinig verandering in brengen.
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.
HTML 4 gebruikt SGML voor de hiërarchie, XHTML gebruikt XML, en HTML5 gebruikt.. HTML5..Gertjan. schreef op zaterdag 05 februari 2011 @ 15:09:
[...]
Daarnaast blijf ik het jammer vinden dat ze niet wat meer richting de XHTML standaard zijn gegaan, dan was het ook makkelijker geweest om zelf parsers enzo te maken. Dat is nu in HTML4 niet echt lekker mogelijk en 5 zal daar weinig verandering in brengen.
Er is een volledig nieuw parsing-model geschreven op basis van wat websites doen. Precies de problemen die je aanhaalt worden daarmee opgelost: ook al wordt een <p> (of welke tag dan ook) niet afgesloten, het resultaat moet consequent zijn in alle browsers. Het internet is nou eenmaal iets te groot om al die regeltjes aan te gaan passen, zelfs een kleine verandering kan desastreuze gevolgen hebben. Een browser heeft namelijk maar twee parsers: een XML-gebaseerde parser voor XHTML, en een HTML parser. Die laatste omvat zowel HTML 4/SGML als HTML5.
Er zijn hier ook al libraries voor beschikbaar:
http://code.google.com/p/html5lib/ voor Python en PHP
WebKit en/of Gecko voor C++ (ja, deze mag je prima gebruiken)
Microsoft werkt aan een C# parser bij wijze van experiment, maar ik weet niet of die open-source uitgegeven gaat worden.
Ja, ik wilde vanavond naar de mac, maar toen ik zag dat hun site niet valide html was twijfelde ik al, maar toen ik zag dat ze inline css gebruikten ben ik toch maar naar de burger king gegaan ..Matis schreef op dinsdag 01 februari 2011 @ 17:31:
Jammer, want ik denk toch dat ze op deze manier een hoop klanten mislopen. Misschien vanavond even vragen of ze nog een fatsoenlijke site willen


[ Voor 79% gewijzigd door Enfer op 05-02-2011 15:44 ]
Verwijderd
Same hereEnfer schreef op zaterdag 05 februari 2011 @ 15:30:
[...]
Ja, ik wilde vanavond naar de mac, maar toen ik zag dat hun site niet valide html was twijfelde ik al, maar toen ik zag dat ze inline css gebruikten ben ik toch maar naar de burger king gegaan ..![]()
Als ze al geen goede website maken, dan ben ik benieuwd wat dat betekent voor hun hamburgers.
En come to think of it: wat heeft het niet hoeven afsluiten van tags in HTML5 voor invloed op het bovenste broodje van een hamburger...
[ Voor 25% gewijzigd door Jaap-Jan op 05-02-2011 16:33 ]
| 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
mcdonaldsEnfer schreef op zaterdag 05 februari 2011 @ 15:30:
[...]
Ja, ik wilde vanavond naar de mac, maar toen ik zag dat hun site niet valide html was twijfelde ik al, maar toen ik zag dat ze inline css gebruikten ben ik toch maar naar de burger king gegaan ..![]()
baggervoedsel. Zou leuke zijn voor "Slechtste fastfood voorbeelden". Subway = best
Let op: Mijn post bevat meningen, aannames of onwaarheden
Verwijderd
[ Voor 24% gewijzigd door Verwijderd op 05-02-2011 17:52 ]
Naja, ik ben wel een groot voorstander er van als meer studios hun code openen nadat het product allang zijn commerciële waarde verloren heeft
Verwijderd
-edit- En dit:
1
| // To Remove For Final Release !!! |
[ Voor 8% gewijzigd door Verwijderd op 05-02-2011 20:42 ]
Op de website van telfort als je ingelogd bent en je wilt telefoons vergelijken die je niet geselecteerd hebt:
1
| window.alert("Telefoon" + (missing.length > 1 ? "s" : "") + " met ID" + (missing.length > 1 ? "'s" : "") + " " + String(missing) + " " + (missing.length > 1 ? "staan" : "staat") + " wel in de dropdown box, maar " + (missing.length > 1 ? "komen" : "komt") + " niet voor in de JSON. Lolwut?"); |
@js file: https://shop.telfort.nl/l...mplate/comparepage.src.js
(TODO: in sessionStorage zetten?)Enfer schreef op zondag 06 februari 2011 @ 00:07:
Niet echt slecht, wel funny..
Op de website van telfort als je ingelogd bent en je wilt telefoons vergelijken die je niet geselecteerd hebt:
code:
1 window.alert("Telefoon" + (missing.length > 1 ? "s" : "") + " met ID" + (missing.length > 1 ? "'s" : "") + " " + String(missing) + " " + (missing.length > 1 ? "staan" : "staat") + " wel in de dropdown box, maar " + (missing.length > 1 ? "komen" : "komt") + " niet voor in de JSON. Lolwut?");
@js file: https://shop.telfort.nl/l...mplate/comparepage.src.js
Die is ook leuk
We are shaping the future
Zo scherp als een voetbal!
Hamburger zonder sluit tag is een oneindig groot broodje?Jaap-Jan schreef op zaterdag 05 februari 2011 @ 16:29:
[...]
Als ze al geen goede website maken, dan ben ik benieuwd wat dat betekent voor hun hamburgers.
En come to think of it: wat heeft het niet hoeven afsluiten van tags in HTML5 voor invloed op het bovenste broodje van een hamburger...
Valt subway onder de fastfood?Gamebuster schreef op zaterdag 05 februari 2011 @ 17:40:
[...]
mcdonalds
baggervoedsel. Zou leuke zijn voor "Slechtste fastfood voorbeelden". Subway = best
Bij fastfood denk ik niet alleen aan snel maar ook aan ongezond, die broodjes van hun zijn volgens mij prima op te leven.
486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22
Verwijderd
Nja, fast food is toch eten dat snel te bestellen en eten is? Daar valt Subway dan uiteraard ook onderPiepPiep schreef op zondag 06 februari 2011 @ 11:25:
[...]
Valt subway onder de fastfood?
Bij fastfood denk ik niet alleen aan snel maar ook aan ongezond, die broodjes van hun zijn volgens mij prima op te leven.
[ Voor 8% gewijzigd door Verwijderd op 06-02-2011 11:33 ]
@fastfood, ik vindt het wel grappig dat wokrestaurants beter en lekkerder eten sneller klaar hebben dan snackbars en de bekende McD's en kompanen,
Damn, waarom zou je je interne projecten zulke omslachtige namen geven. Wat is er mis met ArxDxWrapper, ArxScripting, ArxRendering etc...Verwijderd schreef op zaterdag 05 februari 2011 @ 17:51:
Heeft iemand de codebase van Arx Fatalis gezien? Ik dacht halverwege het bladeren dat het een hele omslachtige grap was.
oude software? misschien is het al ene tijdje geleden ontwikkeld.YopY schreef op zondag 06 februari 2011 @ 14:02:
@Telfort, ik snap niet waarom mensen, in dit tijdperk van Firebug en JS developer consoles, nog zooi alert()en.
@fastfood, ik vindt het wel grappig dat wokrestaurants beter en lekkerder eten sneller klaar hebben dan snackbars en de bekende McD's en kompanen,. Subway gaat er ook altijd wel in.
[ Voor 5% gewijzigd door Gamebuster op 07-02-2011 00:27 ]
Let op: Mijn post bevat meningen, aannames of onwaarheden
IE6/7YopY schreef op zondag 06 februari 2011 @ 14:02:
@Telfort, ik snap niet waarom mensen, in dit tijdperk van Firebug en JS developer consoles, nog zooi alert()en.
IE7: IE8 + compatmode + IE7 quircksmode + devconsole
Let op: Mijn post bevat meningen, aannames of onwaarheden
Daarnaast werkt een alert prima in veel gevallen.
Met IE6 heb je pech.BarôZZa schreef op maandag 07 februari 2011 @ 01:07:
En IE6?
Daarnaast werkt een alert prima in veel gevallen.
alert laat je pagina bevriezen... in sommige situaties kan je dat niet hebben, zoals wanneer je input-events aan het afhandelen bent.
Let op: Mijn post bevat meningen, aannames of onwaarheden
Verwijderd
1
2
3
4
5
6
7
8
9
10
| if(isset($_SESSION['klantid'])) { $klantid_set = $_SESSION['klantid']; if(get_magic_quotes_gpc()) { $klantid_set = stripslashes($klantid_set); } $klantid_set = addslashes($klantid_set); } |
LOL, deze kwam ik tegen in een stuk hele oude code bij een inhuurklus.
Waar stond GPC ook alweer voor in get_magic_quotes_gpc?
Dat moet je het in die situaties dus niet gebruiken. Alerts zijn in mijn ogen enorm handig tijdens het ontwikkelen. Tijdens het schrijven van de code zet je er eentje tussen, F5 in de browser en gaan. Werkt voor mij al prima sinds het Netscapetijdperk en sneller dan Firebug inschakelen, breakpoints instellen, script opnieuw runnen etc.Gamebuster schreef op maandag 07 februari 2011 @ 01:11:
[...]
Met IE6 heb je pech.
alert laat je pagina bevriezen... in sommige situaties kan je dat niet hebben, zoals wanneer je input-events aan het afhandelen bent.
Niet dat ik Firebug niet retehandig vind, maar overkill wanneer ik snel iets simpels wil controleren.
Get, Post, Cookie!? Cake for me?Verwijderd schreef op maandag 07 februari 2011 @ 01:22:
PHP:
1 2 3 4 5 6 7 8 9 10 if(isset($_SESSION['klantid'])) { $klantid_set = $_SESSION['klantid']; if(get_magic_quotes_gpc()) { $klantid_set = stripslashes($klantid_set); } $klantid_set = addslashes($klantid_set); }
LOL, deze kwam ik tegen in een stuk hele oude code bij een inhuurklus.
Waar stond GPC ook alweer voor in get_magic_quotes_gpc?
Dus niet van toepassing hier, mooie.
[ Voor 4% gewijzigd door Davio op 07-02-2011 08:38 ]
En een simpele console.log? Dan kun je tenminste ook objecten of properties tonen.BarôZZa schreef op maandag 07 februari 2011 @ 08:19:
[...]
Dat moet je het in die situaties dus niet gebruiken. Alerts zijn in mijn ogen enorm handig tijdens het ontwikkelen. Tijdens het schrijven van de code zet je er eentje tussen, F5 in de browser en gaan. Werkt voor mij al prima sinds het Netscapetijdperk en sneller dan Firebug inschakelen, breakpoints instellen, script opnieuw runnen etc.
Niet dat ik Firebug niet retehandig vind, maar overkill wanneer ik snel iets simpels wil controleren.
Ik heb een simpel scriptje dat een console opbouwt indien deze niet bestaat. Het injecteert een div in de body en toont daar alles wat je logt. Best handig soms.
[ Voor 53% gewijzigd door orf op 07-02-2011 08:40 ]
Maar in veel gevallen vind ik een alert prima werken. Paar toetsaanslagen en je hebt een pauze + output, ideaal. Ik probeer meestal de beste (of liever gezegd: snelste) oplossing voor een probleem te zoeken.
Het gaat mij er dan ook niet om of er alternatieven zijn, maar dat er wordt gereageerd alsof het iets heel vreemds is. Ik zie de alerts nog geregeld op grote websites voorbij komen, al dan niet gecomment. Waarschijnlijk voor een groot deel doordat diegene die het maakte al fatsoenlijke Javascripts leerde te schrijven voor alle luxe van Javascript debuggers en consoles.
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
| function Navigation($Site) { if (!isset($_GET['ID'])) { $Navigation = "Main"; } else { $Navigation = $_GET['ID']; } if ($Site == "Index") { if ($Navigation == "Main") { print "<h3>Home</h3>"; } elseif ($Navigation == "IncidentManagement") { if (isset($_SESSION['LOGINEXEC'])) include("./Site/IncidentManagement.php"); } elseif ($Navigation == "ConfigPanel") { if (isset($_SESSION['LOGINEXEC'])) include("./Site/ConfigPanel.php"); } elseif ($Navigation == "FAQ") { if (isset($_SESSION['LOGINEXEC'])) include("./Site/FAQ.php"); } elseif ($Navigation == "Login") { LoginForm(); } else { print "Nothing"; } } elseif ($Site == "Admin") { if ($Navigation == "Main") { print "<h3>Main</h3>"; } elseif ($Navigation == "Users") { include("./AdminPanel/Users.php"); } elseif ($Navigation == "ConfigurationManagement") { include("./AdminPanel/ConfigurationManagement.php"); } elseif ($Navigation == "IncidentManagement") { include("./AdminPanel/IncidentManagement.php"); } elseif ($Navigation == "ChangeManagement") { include("./AdminPanel/ChangeManagement.php"); } elseif ($Navigation == "FAQ") { include("./AdminPanel/FAQ.php"); } elseif ($Navigation == "DocumentManagement") { include("./AdminPanel/DocumentManagement.php"); } elseif ($Navigation == "System") { include("./AdminPanel/System.php"); } elseif ($Navigation == "OverviewManagement") { include("./AdminPanel/OverviewManagement.php"); } else { print "Nothing"; } } } |
Oké,
1
2
3
4
5
6
7
| function log(message) { if(typeof window.console != 'undefined') { console.log("%s: %o", msg, this); } else { alert(msg + ": " + this); } } |
Maar d'r zullen vast wel JS logging frameworkjes zijn die zoiets hebben, inclusief instelbare opties zoals bij welke logberichten je terug mag vallen op alerts. Voor berichten richting de gebruiker doe je natuurlijk tekst in de pagina zelf, dat zal in de meeste browsers wel werken - alert()s voor userinteractie is niet koel meer tegenwoordig, evenmin als ronddraaiende apenstaartjes op je Geocities website.
@Mastha-Hacker: Schaam je, schaam je /diep/. Huiswerk voor vandaag, refactor die bakkes code in iets netters:
* HTML in je code is niet koel
* Een functie met naam Navigation geeft niet aan wat het doet
* Een variabelenaam $Site impliceert een Site, niet een website-component-naam annex identifier
* Een lijst met string vergelijkingen kan netter, in PHP kan dat met een switch (sowieso), maar netter is een mapping van navigation met een include, bijvoorbeeld mbt een (associatieve) array.
Console in een los venster, en console.loggen, hoef je ook niet steeds op ok te drukken, en het geeft ook nog duidelijkere info in geval objecten e.d.BarôZZa schreef op maandag 07 februari 2011 @ 08:19:
[...]
Dat moet je het in die situaties dus niet gebruiken. Alerts zijn in mijn ogen enorm handig tijdens het ontwikkelen. Tijdens het schrijven van de code zet je er eentje tussen, F5 in de browser en gaan. Werkt voor mij al prima sinds het Netscapetijdperk en sneller dan Firebug inschakelen, breakpoints instellen, script opnieuw runnen etc.
Niet dat ik Firebug niet retehandig vind, maar overkill wanneer ik snel iets simpels wil controleren.
console.log() al eens geprobeerd?BarôZZa schreef op maandag 07 februari 2011 @ 08:19:
[...]
Dat moet je het in die situaties dus niet gebruiken. Alerts zijn in mijn ogen enorm handig tijdens het ontwikkelen. Tijdens het schrijven van de code zet je er eentje tussen, F5 in de browser en gaan. Werkt voor mij al prima sinds het Netscapetijdperk en sneller dan Firebug inschakelen, breakpoints instellen, script opnieuw runnen etc.
Niet dat ik Firebug niet retehandig vind, maar overkill wanneer ik snel iets simpels wil controleren.
JavaScript:
1 2 3 4 5 6 7 function log(message) { if(typeof window.console != 'undefined') { console.log("%s: %o", msg, this); } else { alert(msg + ": " + this); } }
1
| if(console && console.log instanceof Function) |
'ff mierenwippen
--of--
1
2
3
4
5
6
7
| if(!console) console = new Object(); if(!console.log) console.log = function() { alert.apply(null, arguments); }; |
[ Voor 28% gewijzigd door Gamebuster op 07-02-2011 13:17 ]
Let op: Mijn post bevat meningen, aannames of onwaarheden
Ik zal een voorbeeldje geven van wanneer ik gerust een alert zou kunnen gebruiken. Stel, je voegt een berekening toe en wil daarna even snel waarde van uitkomst x controleren om te kijken of de berekening klopt. Dan kan je het volgende doen:
1. Je logt de waarde, en gaat daarna door de rest van je log scrollen om deze te vinden
2. Je voegt een breakpoint toe en gaat daarna waarde x tussen de rest van de variabelen zoeken in Firebug.
of
3. Je zet even snel alert(x) in je code, runt het script en de waarde verschijnt meteen in het midden van je scherm. Daarna verwijder je de alert.
Nu is mogelijkheid 3 voor mij vaak nog het snelst, maar dat is nog niet eens het punt. Het punt waar iedereen aan voorbij lijkt te gaan is dat het in bepaalde gevallen simpelweg helemaal niks uitmaakt: het doel kan zoals vrijwel altijd op meerdere manieren bereikt worden en er zijn hier geen noemenswaardige nadelen (scheelt misschien seconden werk en je wilt alleen var x hebben). Ik zie vaak dat programmeurs te obsessief bezig zijn met het zoeken naar de beste, meest nette oplossing en daardoor soms het doel of, in veel gevallen nog veel erger, de tijd uit het oog verliezen. Bij IE6 gebruik ik alerts trouwens ook wel eens om te kijken hoe ver m'n script komt voordat het de mist ingaat. De JS errors lijken soms totaal random te zijn en de regelnummer bij de foutmelding klopt nooit.
Hetzelfde verhaal geldt min of meer voor het stukje code van Mastha-Hacker, waarvan ik overigens vermoed dat hij heel goed weet wat er mis is met de code en het daarom juist post, YopY
Nee, veel liever maken we één keydown-handler, kennen die aan álle componenten op een form toe en luisteren daar naar het indrukken van key 27.
Vervolgens een hele bak logica (in een eventhandler...) welk form getoond moet worden in verschillende situaties wanneer op escape wordt gedrukt. Dat hoort natuurlijk ook totaal niet bepaald te worden in de aanroepende code of zo, zodat je de Cancel-property van de Cancel-knop op true kan zetten en in het Click()-event ervan enkel een Close hoeft uit te voeren.
Onderhoud, altijd leuk.
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...

Behalve dat het vreemd is dat er een while-loop wordt gebruikt als er maar 1 entry wordt gefetchd, is het nog gekker dat ze niet meteen leren hoe je SQL - Injecties kunt voorkomen, maar een comment erbij zetten dat het gecontroleerd moet worden.
[ Voor 9% gewijzigd door X_lawl_X op 10-02-2011 19:05 ]
En dat ze hier ID dus ook als string behandelen, terwijl het waarschijnlijk gewoon een integer is.X_lawl_X schreef op donderdag 10 februari 2011 @ 19:03:
We zijn vandaag begonnen op school met een PHP & MySQL Cursus. Ik kwam dit in het boek tegen.
[afbeelding]
Behalve dat het vreemd is dat er een while-loop wordt gebruikt als er maar 1 entry wordt gefetchd, is het nog gekker dat ze niet meteen leren hoe je SQL - Injecties kunt voorkomen, maar een comment erbij zetten dat het gecontroleerd moet worden.
“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.”

Maar ja, misschien gokken ze erop dat niemand SQL-injection nog probeert, omdat het zo bekend is.
Verwijderd
1
| // Let op: zelf controleren of wel een *geldige* id is meegegeven! |
[ Voor 10% gewijzigd door Verwijderd op 10-02-2011 20:19 ]
Jonge, natuurlijk wel, je ziet het toch gebeuren? Runtime abbreviation-based variable resolving noemen ze dat.Davio schreef op maandag 07 februari 2011 @ 11:11:
@YopY, je kunt je variabele natuurlijk niet message noemen en dan in je functie msg gebruiken.
Een vergelijkbaar iets was bij ons eerst de controle (console.log was in een wrapper gepleurd), maar daar kreeg je nog steeds de 'console is not defined'-error bij. D'r moet altijd een controle met window.console oid erbij, anders gaat het (om redenen die mij ontglippen) stuq. Zie ook een bakkes suggesties op SO.Gamebuster schreef op maandag 07 februari 2011 @ 12:32:
JavaScript:
1 if(console && console.log instanceof Function)
Voor de eerste basiscursus lijkt me die aanpak op zich wel oké, zolang het maar niet als De Manier Om Dingen Te Doen aangeprezen wordt - ik heb het toentertijd (5+ jaar terug?) ook op die manier geleerd, met een boek van het een of ander.zijn vandaag begonnen op school met een PHP & MySQL Cursus. Ik kwam dit in het boek tegen.
Niks mis met een PHP cursus die begint met de basis van CRUD te leren met PHP binnen HTML en lekker basale mysql_query regels etc. Zolang die cursus daar maar niet mee ophoudt en in stap twee uitleg geeft over injection, of misschien beter nog, gelijk met parameterized queries begint ipv mysql_query. Concepten als OO, XSS, MVC etc kunnen, voornamelijk voor beginners, iets te complex zijn om te begrijpen - immers, bij MVC moet je al drie redelijk verschillende zaken in je hoofd kunnen organiseren. Da's een skill die met tijd en ervaring pas groeit.
En als beginnende PHP-er (waar dit boek voor bestemd is) denk ik dan (natuurlijk) direct aan SQL-injectie en de correcte PHP methoden om de input te escapen..Verwijderd schreef op donderdag 10 februari 2011 @ 20:19:
Ik hoop dat jullie dit ook hebben gelezen:code:Your arguments are invalid.
1 // Let op: zelf controleren of wel een *geldige* id is meegegeven!
Hoe zegt men dat ook al weer? Jong geleerd is oud gedaan? Of was het nou een goed begin is het halve werk
[ Voor 11% gewijzigd door Enfer op 10-02-2011 20:36 ]
Nope - beveiliging komt niet aan bod, op XSS na. Ze zeggen dat je dit kunt voorkomen door dit te doenroy-t schreef op donderdag 10 februari 2011 @ 20:52:
Nouja het is een comment direct in de code, als het een boek is zal er voor en na de code ook nog wel gewone tekst staan met uitleg waar dit misschien ook aangehaald wordt, zonder context is het nog geen WTF.
1
2
| $input = str_replace('<', '<', $_POST['naam']); $input2 = str_replace('>', '>', $input); |

Puur uit nieuwsgierigheid, wie prutst even een stukje invoer in elkaar dat deze 'beveiliging' omzeilt? Geloof zelf niet dat bovenstaand of even door htmlspecialchars() halen van de uitvoer genoeg is om XSS tegen te gaan, maar kan zo ook niet bedenken hoe je dat moet omzeilen. Misschien met URL-encoded invoer?X_lawl_X schreef op donderdag 10 februari 2011 @ 20:56:
[...]
Nope - beveiliging komt niet aan bod, op XSS na. Ze zeggen dat je dit kunt voorkomen door dit te doen
PHP:
1 2 $input = str_replace('<', '<', $_POST['naam']); $input2 = str_replace('>', '>', $input);
iig, pruts zo'n stukje invoer, geef dat aan je docent, en doe van
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Als hij in een DB gegooid wordt, kun je SQL injecten.
Als hij gebruikt wordt tussen twee HTML-tags, kun je weinig: <p>"'&##*$#Fgekkigheid#$</p>. De double quote, single quote en ampersand worden niet omgezet, maar dat is hier niet erg, de browser maakt er wel iets handelbaars van.
Het wordt pas vervelend als de naam in een attribute wordt geplaatst, bijvoorbeeld:
1
| echo '<input type="hidden" name="naam" value="'.$input2.'">'; |
Met een gekunstelde value van $_POST['naam'] van
" onbepaalde_event="javascript:location.href('http://mijnsite.com');
zou je lekker kunnen XSS-en. Let wel dat je geen double quote aan het eind gebruikt...
1
2
3
4
5
6
7
8
| private static final boolean[] allowed = new boolean[256]; static { for (char c = '0'; c <= 9; c++) allowed[c] = true; for (char c = 'A'; c <= 'Z'; c++) allowed[c] = true; for (char c = 'a'; c <= 'z'; c++) allowed[c] = true; allowed[','] = true; allowed['.'] = true; } |
Hm, hij lijkt iets duidelijker te zijn met deze syntax highlighter, misschien moet ik eens wat kleurtjes in mijn Eclipse aanpassen. Zo ziet het er bij mij uit:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
| class Xxx extends Base { function go() { // De 'constructor' } function display() { // Voert een zooi (view)logica uit en geeft de pagina weer } } $xxx = & new Xxx; $xxx->go(); $xxx->display(); |
Seriously.

Je staat nu nog steeds geen getallen toe?YopY schreef op vrijdag 11 februari 2011 @ 13:32:
Slecht programmeervoorbeeld: Kopiëren van SO. Spot de bug voor 10 punten, en pas op, hij is klein.
Java:
1 2 3 4 5 6 7 8 private static final boolean[] allowed = new boolean[256]; static { for (char c = '0'; c <= 9; c++) allowed[c] = true; for (char c = 'A'; c <= 'Z'; c++) allowed[c] = true; for (char c = 'a'; c <= 'z'; c++) allowed[c] = true; allowed[','] = true; allowed['.'] = true; }
Hm, hij lijkt iets duidelijker te zijn met deze syntax highlighter, misschien moet ik eens wat kleurtjes in mijn Eclipse aanpassen. Zo ziet het er bij mij uit:
[afbeelding]
[ Voor 8% gewijzigd door CodeCaster op 11-02-2011 13:51 ]
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
10 punten, gefeliciteerdquote: CodeCasterJe staat nu nog steeds geen getallen toe?
Inderdaad, daar ben ik ook pas achter gekomen.YopY schreef op donderdag 10 februari 2011 @ 20:28:
[...]
Een vergelijkbaar iets was bij ons eerst de controle (console.log was in een wrapper gepleurd), maar daar kreeg je nog steeds de 'console is not defined'-error bij. D'r moet altijd een controle met window.console oid erbij, anders gaat het (om redenen die mij ontglippen) stuq. Zie ook een bakkes suggesties op SO.
[...]
Het volgende lijkt wel te werken, zowel clientside als in NodeJS, mits je het in de global scope gebruikt:
1
| if(this.console && console.log instanceof Function) |
Deze heb ik ook wel eens gezien:
1
2
| var console; if(console && console.log instanceof Function) |
-maar nog niet getest.
Let op: Mijn post bevat meningen, aannames of onwaarheden
Ik vind zowel met jouw Eclipse screenshot als met de syntax highlighting van GoT duidelijk dat het '9' had moeten zijn ipv 9.YopY schreef op vrijdag 11 februari 2011 @ 13:32:
Slecht programmeervoorbeeld: Kopiëren van SO. Spot de bug voor 10 punten, en pas op, hij is klein.
Java:
1 2 3 4 5 6 7 8 private static final boolean[] allowed = new boolean[256]; static { for (char c = '0'; c <= 9; c++) allowed[c] = true; for (char c = 'A'; c <= 'Z'; c++) allowed[c] = true; for (char c = 'a'; c <= 'z'; c++) allowed[c] = true; allowed[','] = true; allowed['.'] = true; }
Hm, hij lijkt iets duidelijker te zijn met deze syntax highlighter, misschien moet ik eens wat kleurtjes in mijn Eclipse aanpassen. Zo ziet het er bij mij uit:
[afbeelding]
Overigens heeft IntelliJ IDEA een Inspection hiervoor (Numeric Issues > Implicit numeric conversion)
Afhankelijk van de plaats in het boek is de keuze didactisch wel te verdedigen: afhankelijk van het doel van het hoofdstuk en de vooraf behandelde stof moeten voorbeelden zo simpel mogelijk zijn zodat alleen het onderwerp zelf bestudeerd hoeft te worden. Op die manier wordt een student niet afgeleid van het eigenlijke onderwerp met nieuwe of (nog) onduidelijke concepten.X_lawl_X schreef op donderdag 10 februari 2011 @ 19:03:
We zijn vandaag begonnen op school met een PHP & MySQL Cursus. Ik kwam dit in het boek tegen.
[afbeelding]
Behalve dat het vreemd is dat er een while-loop wordt gebruikt als er maar 1 entry wordt gefetchd, is het nog gekker dat ze niet meteen leren hoe je SQL - Injecties kunt voorkomen, maar een comment erbij zetten dat het gecontroleerd moet worden.
Het is gewoon een probleem dat je een beginnende programmeur (of een student die eigenlijk helemaal niet wil programmeren) niet tegelijkertijd de basisconcepten en correct en veilig programmeren kunt leren. De basisconcepten moeten er eerst zijn, daarna kan meestal pas op correct en veilig gericht worden (helaas blijft het vaak alleen bij de basisconcepten...).
Verwijderd
Dat is echt te slecht voor woordendev10 schreef op vrijdag 11 februari 2011 @ 13:44:
PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Xxx extends Base { function go() { // De 'constructor' } function display() { // Voert een zooi (view)logica uit en geeft de pagina weer } } $xxx = & new Xxx; $xxx->go(); $xxx->display();
Seriously.Klok wel horen luiden, maar niet weten waar Mozes de mosterd haalt.
Als beginner wil je vaak snel resultaat, dus dan is zo'n opdrachtje best leuk, aangezien je dan snel een idee krijgt van hoe het werkt. Daarnaast is het natuurlijk lastig om uit te leggen was XSS, SQL injections en dergelijke zijn als iemand uberhaubt nog nooit met POST variabelen en SQL heeft gewerktRemus schreef op zaterdag 12 februari 2011 @ 07:33:
[...]
Afhankelijk van de plaats in het boek is de keuze didactisch wel te verdedigen: afhankelijk van het doel van het hoofdstuk en de vooraf behandelde stof moeten voorbeelden zo simpel mogelijk zijn zodat alleen het onderwerp zelf bestudeerd hoeft te worden. Op die manier wordt een student niet afgeleid van het eigenlijke onderwerp met nieuwe of (nog) onduidelijke concepten.
Het is gewoon een probleem dat je een beginnende programmeur (of een student die eigenlijk helemaal niet wil programmeren) niet tegelijkertijd de basisconcepten en correct en veilig programmeren kunt leren. De basisconcepten moeten er eerst zijn, daarna kan meestal pas op correct en veilig gericht worden (helaas blijft het vaak alleen bij de basisconcepten...).
Moet wel zeggen dat het onderwijsniveau op IT-gebied vaak bedroevend is. De betere IT'ers zitten overduidelijk in het bedrijfsleven. Op de universiteit kregen we ook zulke grappen. Gevoelig voor alle mogelijke exploiten. Maar gelukkig wist hij er wat op: het wachtwoord in de database encrypten. En met encrypten bedoelde hij een MD5 zonder salt

Ben ik trouwens de enige die het echt onmogelijk vindt om een programmeertaal te leren met een boek? Onhandig bladeren, lappen code overtypen, vaak met tikfouten en slecht ingesprongen vanwege ruimtegebrek op papier. De laatste keer dat ik een boek bruikbaar vond was een boek over MSX BASIC toen ik een kleuter was en het nog gangbaar was dat je codesamples moest overtypen.
Daar ben ik het niet echt mee eens. Ik leer liever uit een boek dan dat ik lappen tekst op een beeldscherm lees. Ik moet dan wel zeggen dat ik de codesamples haast nooit overtyp. Maak altijd een eigen app of pagina waarin ik de dingen in dat hoofdstuk even uit probeer. Wanneer ik er niet uit kom pak ik de samples en ga die helemaal aandachtig bekijken zodat ik kan zien waar het fout ga. Zelfs dan typ ik ze nog geen eens over, pas als ik er helemaal niet uitkom typ ik het over.BarôZZa schreef op zaterdag 12 februari 2011 @ 09:55:
[...]
Ben ik trouwens de enige die het echt onmogelijk vindt om een programmeertaal te leren met een boek? Onhandig bladeren, lappen code overtypen, vaak met tikfouten en slecht ingesprongen vanwege ruimtegebrek op papier. De laatste keer dat ik een boek bruikbaar vond was een boek over MSX BASIC toen ik een kleuter was en het nog gangbaar was dat je codesamples moest overtypen.
Een boek werkt wat mij betreft veel beter dan van het scherm: je kan namelijk op je gemak dingen nalezen als je niet achter een computer zit, en ondanks het hebben van een breed scherm (of als ik echt moeite wil doen: twee schermen), vind ik de switch boek <> scherm relaxter dan window <> window. Daarnaast was van ieder boek dat ik in de afgelopen 10 - 15 jaar heb gekocht de source gewoon te downloaden, dus niks overtikken; en voor die tijd zat er vaak een CD (of - horror - floppy) bij met de sources.BarôZZa schreef op zaterdag 12 februari 2011 @ 09:55:
Ben ik trouwens de enige die het echt onmogelijk vindt om een programmeertaal te leren met een boek? Onhandig bladeren, lappen code overtypen, vaak met tikfouten en slecht ingesprongen vanwege ruimtegebrek op papier. De laatste keer dat ik een boek bruikbaar vond was een boek over MSX BASIC toen ik een kleuter was en het nog gangbaar was dat je codesamples moest overtypen.
Er is wel wat meer mis. Je kunt die array niet voor alle Java chars gebruiken.YopY schreef op vrijdag 11 februari 2011 @ 13:32:
Slecht programmeervoorbeeld: Kopiëren van SO. Spot de bug voor 10 punten, en pas op, hij is klein.
Java:
1 2 3 4 5 6 7 8 private static final boolean[] allowed = new boolean[256]; static { for (char c = '0'; c <= 9; c++) allowed[c] = true; for (char c = 'A'; c <= 'Z'; c++) allowed[c] = true; for (char c = 'a'; c <= 'z'; c++) allowed[c] = true; allowed[','] = true; allowed['.'] = true; }
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Als ik een nieuwe taal leer, pak ik wel een boek, maar haak ik na een paar hoofdstukken al af. Veel talen hebben toch dezelfde mogelijkheden en als ik dan iets nodig heb, dan zoek ik achterin naar een onderwerp en blader ik ernaar.BarôZZa schreef op zaterdag 12 februari 2011 @ 09:55:
[...]
Als beginner wil je vaak snel resultaat, dus dan is zo'n opdrachtje best leuk, aangezien je dan snel een idee krijgt van hoe het werkt. Daarnaast is het natuurlijk lastig om uit te leggen was XSS, SQL injections en dergelijke zijn als iemand uberhaubt nog nooit met POST variabelen en SQL heeft gewerkt![]()
Moet wel zeggen dat het onderwijsniveau op IT-gebied vaak bedroevend is. De betere IT'ers zitten overduidelijk in het bedrijfsleven. Op de universiteit kregen we ook zulke grappen. Gevoelig voor alle mogelijke exploiten. Maar gelukkig wist hij er wat op: het wachtwoord in de database encrypten. En met encrypten bedoelde hij een MD5 zonder salt![]()
Ben ik trouwens de enige die het echt onmogelijk vindt om een programmeertaal te leren met een boek? Onhandig bladeren, lappen code overtypen, vaak met tikfouten en slecht ingesprongen vanwege ruimtegebrek op papier. De laatste keer dat ik een boek bruikbaar vond was een boek over MSX BASIC toen ik een kleuter was en het nog gangbaar was dat je codesamples moest overtypen.
Bij ons op school slaan ze wachtwoorden in MD5 (ik vermoed zonder salt) op. Toen ik dat hoorde, heb ik toch even mijn wachtwoord veranderdMoet wel zeggen dat het onderwijsniveau op IT-gebied vaak bedroevend is. De betere IT'ers zitten overduidelijk in het bedrijfsleven. Op de universiteit kregen we ook zulke grappen. Gevoelig voor alle mogelijke exploiten. Maar gelukkig wist hij er wat op: het wachtwoord in de database encrypten. En met encrypten bedoelde hij een MD5 zonder salt
Slechte leerkrachten kom je vooral in het middelbaar tegen. Ik kreeg een vak webdesign wat Frontpage met frames inhield. Een andere leerkracht gaf netwerken, maar wist nauwelijks wat een IP-adres is.
Ik geef de voorkeur aan ebooksBen ik trouwens de enige die het echt onmogelijk vindt om een programmeertaal te leren met een boek? Onhandig bladeren, lappen code overtypen, vaak met tikfouten en slecht ingesprongen vanwege ruimtegebrek op papier. De laatste keer dat ik een boek bruikbaar vond was een boek over MSX BASIC toen ik een kleuter was en het nog gangbaar was dat je codesamples moest overtypen.
So what? Hij initialiseert 'm ook niet met willekeurige letters. Weet jij veel hoe 'ie die lookup table gebruikt...RayNbow schreef op zaterdag 12 februari 2011 @ 11:44:
Er is wel wat meer mis. Je kunt die array niet voor alle Java chars gebruiken.
1
| private static final boolean[] allowed = new boolean['z' + 1]; |
| 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
Trui, maar daar houd ik rekening mee - alle karakters voorbij 255 worden ook niet toegestaan. Tenminste, als je dat bedoelt,RayNbow schreef op zaterdag 12 februari 2011 @ 11:44:
[...]
Er is wel wat meer mis. Je kunt die array niet voor alle Java chars gebruiken.
En die grootte kan idd kleiner, zou er eens mee moeten prutsen. Ik had eerder eenzelfde constructie opgezet die de character index met een constante verminderde om hem op te zoeken in een 0-indexed array, dan heb je de overhead van 200+ nutteloos gereserveerd geheugen ook niet. Maar ben lui, doen we nog wel eens een keer, ;p.
Tja, verschilt.Technieken / basisprincipes vind ik beter te lezen van een extern iets dan een beeldscherm (dus ebookreader of gewoon boek). Dan hoef ik namelijk niet achter mijn pc te zitten.BarôZZa schreef op zaterdag 12 februari 2011 @ 09:55:
[...]
Ben ik trouwens de enige die het echt onmogelijk vindt om een programmeertaal te leren met een boek? Onhandig bladeren, lappen code overtypen, vaak met tikfouten en slecht ingesprongen vanwege ruimtegebrek op papier. De laatste keer dat ik een boek bruikbaar vond was een boek over MSX BASIC toen ik een kleuter was en het nog gangbaar was dat je codesamples moest overtypen.
Syntax dingen zijn dan weer superieur op een beeldscherm (ene tab officiele manual in html, andere tab google)
maar dat is veelal weer omdat ik specifieke use-case dingen nodig heb die niet direct onder de manual vallen.
Als je goede boeken hebt althans... Beetje reviews lezen
In feite is het een andere manier van leren, denk ik: zonder boeken is beginnen en kijken waar het schip strandt, als je niet meer verder komt zoek je je informatie. Met boeken ga je eerst kijken hoe het moet, en dan pas iets doen. Voor allebei valt iets te zeggen, denk ik
[ Voor 82% gewijzigd door MBV op 12-02-2011 21:24 ]
Enkele nanometers hier, ik heb ze namelijk digitaal.
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Naast dat ik liever boeken lees dan internetartikels danwel readers lees ik boeken ook liever fysiek... 500 pagina's lezen achter m'n computer is geen pretjeSebazzz schreef op zaterdag 12 februari 2011 @ 21:25:
[...]
Enkele nanometers hier, ik heb ze namelijk digitaal.
Heb ik eigenlijk nooit problemen meeAvalaxy schreef op zondag 13 februari 2011 @ 00:57:
[...]
500 pagina's lezen achter m'n computer is geen pretje
[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]
Ik heb er juist speciaal een iPad voor besteldSebazzz schreef op zondag 13 februari 2011 @ 09:59:
[...]
Heb ik eigenlijk nooit problemen meeEn anders pak je toch een tablet?
Ik heb hooguit wat last gehad vroeger met de 60Hz of soms zelfs 50Hz crt schermen, maar verder heb ik nooit moeie ogen gehad van monitoren.MBV schreef op zondag 13 februari 2011 @ 14:12:
Wordt je volgens mij net zo moe van. Zonder e-paper wordt lezen nooit echt rustig.
Zo'n tft scherm knippert toch ook niet meer omdat die lamp gewoon continue licht geeft? De verversingssnelheid is nu enkel het aanpassen van de pixels geworden.
486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22
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 zondag 13 februari 2011 @ 20:24:
Het gaat niet om het knipperen, het gaat erom dat je naar een verlicht oppervlak zit te kijken op een verder "gedimde" achtergrond
Het enige wat daar wat aan kan doen is e-paper of een Pixel Qi scherm of andersoortige technieken.
| 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
Edit: @Hieronder: Een spyder is dan direct weer zo'n Pro-Budget oplossing
[ Voor 31% gewijzigd door Aloys op 13-02-2011 23:47 ]
hier helderheid en contrast op 60% en een paar felle led lampen achter, boven het scherm. Zolang je je herrinnert niet in het felle licht te kijken (en recht op te zitten) kan je echt een hele dag (12+ uur) achter mijn bureau zitten ^^Aloys schreef op zondag 13 februari 2011 @ 23:09:
Met de helderheid flink naar beneden en voldoende achtergrond verlichting kan ik uren naar het schermpje turen. Volledige helderheid en een donkere kamer daarentegen levert mij erg snel hoofdpijn en branderige ogen op.
Ongetwijfeld is dit ongelofelijk slecht op de lange termijn mja..

http://news.bbc.co.uk/2/hi/6187080.stm
Voor niks al die jaren dat 'rechtop zitten'-gezeur aangehoord op de basis/middelbare school
Ik merk van mezelf dat ik iets veel beter onthoud wanneer ik het zelf heb uitgevogeld (tegen een probleem aanlopen en dan de oplossing zoeken) dan van wanneer ik iets lees. Ik leer ook een stuk beter/sneller wanneer ik een stuk code bestudeer, dan wanneer ik een ellenlange omschrijving lees over wat een stuk code doet en hoe het werkt. Voor sommige ingewikkelde logische problemen is een goed beschreven uitleg natuurlijk wel handig, maar voor van die beginnersdingen, zoals de PHP pagina die eerder gepost werd, heb ik boeken nooit handig gevonden.MBV schreef op zaterdag 12 februari 2011 @ 21:23:
Maar ze zijn zoveel dikker
In feite is het een andere manier van leren, denk ik: zonder boeken is beginnen en kijken waar het schip strandt, als je niet meer verder komt zoek je je informatie. Met boeken ga je eerst kijken hoe het moet, en dan pas iets doen. Voor allebei valt iets te zeggen, denk ik
Tja, altijd al geweten dat heel dat 'rechtop zitten'-gezeur precies dat was: gezeur. Het feit dat je lijf zelf je vaak al vertelt dat dat een ongemakkelijke positie is, moet toch eigenlijk al voldoende zeggen...BarôZZa schreef op maandag 14 februari 2011 @ 01:31:
[afbeelding]
http://news.bbc.co.uk/2/hi/6187080.stm
Voor niks al die jaren dat 'rechtop zitten'-gezeur aangehoord op de basis/middelbare school
Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| if (worp == 1) { dobbelsteen[0] += 1; } else if (worp == 2) { dobbelsteen[1] += 1; } else if (worp == 3) { dobbelsteen[2] += 1; } else if (worp == 4) { dobbelsteen[3] += 1; } else if (worp == 5) { dobbelsteen[4] += 1; } else if (worp == 6) { dobbelsteen[5] += 1; } |
Wat later dus bleek dat het ook zo kon:
1
| dobbelsteen[worp - 1] += 1; |
1
2
3
4
5
6
7
| echo(0); echo(1); echo(2); echo(3); echo(4); echo(5); echo(6); |
ARRRRRRRRRay matey!
[ Voor 9% gewijzigd door kKaltUu op 14-02-2011 10:36 ]
Bovenstaande is mijn post. Lees deze aandachtig, dank u wel voor uw medewerking.
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.
Je moet je schermen dan ook niet recht voor je zetten, maar schuin boven je hangen, zodat je nog steeds haaks op je monitoren zit.YopY schreef op maandag 14 februari 2011 @ 09:31:
Nu is die 135 positie ook niet geweldig, moet ik zeggen, je zult daarmee last van je nek krijgen als je zo een hele dag achter de PC zit.
No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.
Liefhebber van schieten en schijten. Ouwehoer en niet-evangelisch atheist.
Daniel36: Dat zeg ik(?) Nee, dat zeg ik niet, je hebt gelijk.
Verwijderd
Lijkt me niet dat developers zich bezig moeten houden met de data gebruikt in de app?•Added House "M D" exception

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.