Scriptorama.nl

Header image showing a keyboard, mouse, laptop and books on design patterns

PHP contributor stopt

Er is veel controversie ontstaan nadat Jani Taskinen, ook wel bekend als sniper, op de PHP internals mailinglist aangaf om te stoppen met contributies maken. Hij was vooral actief bij bug reporting en fixes daarvan. Hieronder staat de e-mail:

Thank you all for the last 6 years or so. It has been fun (sometimes)
and many times not so much fun. Unfortunately I have had enough and
I don't want to be associated with this project anymore.

I'm sure most people (the ones who matter) can understand why.
If someone doesn't, I could not care less. Take care.

Please do not reply to this email.
--Jani
p.s. Delete my CVS account. I have no use for it anymore.

(more...)

Firefox 1.5.0.5

De Mozilla Foundation heeft vandaag een nieuwe maintenance release van de Firefox 1.5 serie vrijgegeven: Firefox 1.5.0.5. Deze versie bevat verschillende stabiliteits fixes maar ook de nodige security fixes:

Dat zijn behoorlijk wat (serieuze!) problemen in de javascript engine die zijn opgelost. Het is dan ook niet helemaal verwonderlijk dat een van de Security Advisories ook spreekt van een heuze security audit van de Javascript Engine.

Continuing our security audit of the JavaScript engine, Mozilla developers found and fixed several potential vulnerabilities.

Igor Bukanov and shutdown found additional places where an untimely garbage collection could delete a temporary object that was in active use (similar to MFSA 2006-01 and MFSA 2006-10). Some of these may allow an attacker to run arbitrary code given the right conditions

De automatische update zou de nieuwe versie automagisch moeten installeren voor je, maar als je niet kunt wachten kun je hem ook gewoon downloaden via GetFirefox.com.

Happy surfing!

MSIE, Iframes en BrowserFun

Ik ben erg geinteresseerd in de beveiliging van websites. Ik houd er zoveel mogelijk rekening mee in m'n eigen ontwikkel meuk en ik probeer als ik overduidelijke problemen zie anderen er ook van op de hoogte te brengen. In dat licht hebben we op Scriptorama al de nodige artikelen over hoe je je site veilig kunt houden geschreven. Soms kom je dan toch mensen tegen die het allemaal een beetje over-the-top vinden: ".. en wat als m'n site gehackt wordt, wat dan nog?".

Zoals dit artikeltje op Security.nl beschrijft gaat het niet alleen om jouw site die gehacked is. Via een lek in jouw site kunnen mensen die een onveilige browser gebruiken via jouw site ook nog eens onnodig geconfronteerd worden met verschillende exploits voor onveilige browsers. Deze mensen worden vervolgens zelf ook weer een bron van irritatie.

Doordat nog altijd veel mensen hun Internet Explorer niet gepatcht hebben blijft het interessant voor hackers om websites te hacken en iFrame exploits te verstoppen, zo heeft een onderzoeker van McAfee ontdekt. De onderzoeker vond 130 websites waar de exploit verstopt was.

Het Security.nl artikeltje beschrijft MSIE, maar dat gaat natuurlijk ook op voor andere browsers. Ter illustratie: Het weblog BrowserFun houdt problemen bij die gevonden worden in verschillende browsers.

Even spieken

Webontwikkeling is een leuk vak, maar tenzij je een fotografisch geheugen hebt onthoud je nooit alle tags, attributes, API's e.d. De volgende sites helpen je om snel de juiste documentatie te vinden.

TechCheatSheets.com verzamelt cheat sheets en andere bondige documentatie.

Deze lijst helpt je ook aan spiekbriefjes. Dezelfde site biedt ook een behoorlijk aantal links naar bronnen voor bookmarklets en sidebars (Mozilla en Opera).

Sitepoint verkoopt een aantal aardige 'Quick Reference Posters' voor Linux, PHP, CSS en DOM & JavaScript (de laatste siert mijn werkhok).

PHP 5.2.0 RC1 & Javascript Mousewheel

Het is enigzins een trage tijd in Internet land, Tri zit ongeveer in het vliegtuig naar L.A. en ik heb de laatste tijd niet heel erg veel tijd gehad om wat nieuws te schrijven. Maar vandaag heb ik wel 2 kleine interessante dingen voor je:

Allereerst, voor de bleeding-edge webdevelopers onder ons is RC1 van PHP 5.2.0 uitgekomen voor een grondige test. Het is een Release Candidate dus het kan natuurlijk zijn dat er nog de nodige problemen in zitten. Buiten het korte overzicht van Ilia (de release-master voor de 5.2.0 serie) kon ik helaas verder geen duidelijk overzicht van nieuwe dingen vinden:

Given that it took a few months to reach this point and addition of new features was allowed the changelog already looks extremely impressive. Some of the key changes include things like 3 new extensions (filter, json and zip), the date extension had the rest of its functionality enabled, much work was done in terms of getting PHP 5.2 to run faster and more efficiently (in terms on memory usage). There have also been nearly 80 bug fixes made to existing functionality, which hopefully translates to a more stable release.

Verder kwam ik een artikeltje tegen dat uitlegt hoe je, net als bijvoorbeeld Google Maps, scrollwheel events kunt afvangen en gebruiken in Javascript.

This page, however, is not about AJAX (or any other buzzword). It is about rather simple user input method -- mouse wheel. I believe it would now be difficult to find a mouse without wheel. Vast majority of users are used to the wheel as a control for scrolling in lists, zooming etc. Rather few web applications, however, make smart use of mouse wheel. This page is to provide you with general information about handling mouse wheel-generated events in JavaScript programming language

Leer hoe je deze in Firefox en MSIE kunt toepassen in Mousewheel programming in Javascript!

Prototype en CSS-style selectors

We hebben het de afgelopen tijd gehad over verschillende javascript libraries die CSS-style selectors aankonden, zoals jQuery en Behaviour. Maar ook de opkomende versie van Prototype: prototype 1.5.0, zal ook in staat zijn om DOM elementen te selecteren met CSS-style selectors. Hiervoor gebruik je dan de $$() functie:

JAVASCRIPT:
  1. var elements = $$('#content .headings');

Wat leuk is, is dat ondanks dat prototype 1.5.0 nog niet eens is uitgebracht er nu al patches voor gemaakt worden. Sylvain Zimmer heeft gevonden dat de $$() functie nogal traag was en heeft alvast het een en ander geoptimaliseerd.

Ter afsluiting: hier is een overzicht van verschillende documentatie voor Prototype.

PHP design patterns in een notendop

Met de komst van PHP5 is het nu mogelijk om traditionele design patterns echt te kunnen gebruiken. Je ziet ook steeds meer patterns verschijnen in PHP web applicaties, je kunt er niet meer omheen. Eerder schreven we al over een pattern repository, waar je PHP patterns kon terugvinden op een wiki. Mocht je snel willen opzoeken hoe de bekende patterns ook alweer inelkaar zaten, dan kun je ook Five common PHP design patterns raadplegen. Wil je ook andere patterns bekijken zonder al te veel fluff en uitleg, bekijk het hier!

Meeting

Dit keer posten we iets anders dan web development content. Mijn plannen zijn om te gaan studeren in LA. Het klinkt misschien raar maar mijn studie is helemaal niet ICT / Computer Science gericht. In september ga ik beginnen aan me International Business studie. Daar heb je een studentenvisum voor nodig en ik moest gisteren naar de Amerikaanse Consulaat in Amsterdam voor een visuminterview. Ik was onnodig zenuwachtig en ik krijg binnen enkele dagen mijn visum toegestuurd. Yeah! Wees niet gevreesd. Ook al zit ik aan de andere kant van de wereld, ik zal natuurlijk gewoon door blijven bloggen. Alleen ik zal dan posten op de raarste uren van dag!

Na de interview had ik afgesproken met Mathieu. Gisteren hebben wij elkaar voor het eerst ontmoet op het Museumplein in Amsterdam. Met het mooie weer besloten wij een terras op te gaan zoeken. We hebben over van alles gepraat, van web development tot "testen-of-iemand-dronken-is". Mathieu, de echte geek onder ons ;), had natuurlijk een Javascript boek bij. Ik hoopte ook op een Macbook, maar die lag thuis. Misschien was dat te geek-erig :-) We hebben ook een en ander besproken wat we met Scriptorama gaan doen. Ik kan vast een ding verklappen, er komt wat aan! Na wat biertjes gingen we allebei weer richting huis.

Hete CAPTCHA

Onlangs in Hoe veilig zijn CAPTCHA’s? werd er hevig gediscussieerd over de veiligheid van CAPTCHA's en andere potentiele oplossingen tegen spam. Het komt erop neer dat je mensen van bots moet onderscheiden. Er is eigenlijk maar een oplossing hiervoor en ik denk dat we er een gevonden hebben! Hotcaptcha is de oplossing!

Frameworks Symfony, Rails en Django benchmark

Op de wiki van Ruby On Rails vinden we een interessante vergelijking tussen de frameworks Symfony (PHP), Ruby On Rails (Ruby) en Django (Python). Alle drie ondergingen een benchmark waarbij de snelheid werd vergeleken. Het resultaat is hier te lezen.

Wat opvalt is dat Symfony bij high loads veel errors geeft, Django heeft hier geen last van. Het blijkt dat de combinatie RoR en lighttpd ook slecht draait onder zware omstandigheden, waar RoR en Apache geen problemen hebben. Uiteindelijk is Django de winnaar, gevolgd door Rails. Kunnen we hieruit wat concluderen?