Scriptorama.nl

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

MySQL kondigt nieuwe storage engine aan: Maria

Het lijkt er op dat Sebastiaan's gebeden in elk geval een beetje zijn verhoord want begin deze week heeft Michael Widenius van MySQL A.B. aangekondigd dat hij een zijn team de laatste tijd gewerkt hebben aan een nieuwe crash-safe storage engine: de Maria Storage Engine.

De features van de Maria Storage engine zijn o.a:

  • Crash-safe (dit voorbeeld illustreert dit)
  • Alles wordt gelogged, incl. CREATE/DROP/RENAME/TRUNCATE statements en het volledige log kan worden terug gespeeld.Je kunt dus een backup maken door het volledige log over te nemen.
  • In latere versies zal Maria o.a. ACID compliant zijn, MVCC en row locking ondersteunen en transacties bieden.

Een van de doelen van Maria is om uiteindelijk de vervanger van MyISAM te worden en standaard met MySQL 6.0 meegeleverd te worden, net als de Falcon storage engine. De Falcon storage engine wordt gepositioneerd als vervanger voor InnoDB maar aangezien de Maria storage engine behoorlijk wat features in gemeen heeft met Falcon vraag ik me dan af wat de veel besproken Falcon storage engine nog extra te bieden heeft.

Je kunt Maria zelf al eens proberen door een binary van de Maria Storage Engine te downloaden. Meer informatie vind je op Maria's homepage op MySQLForge.

Eerste working draft HTML5 vrijgegeven

Op vrijwel hetzelfde moment dat Microsoft haar nieuws over IE8 Standards mode bekend maakte, maakte het W3C ook bekend dat de eerste public working draft van HTML5 beschikbaar was. HTML5 is de opvolger van HTML4 en wordt samengesteld door onder andere ontwikkelaars van Firefox, Safari, Opera en Microsoft welke zelfs een Chairman levert.

In HTML5 worden een hele hoop dingen rechtgetrokken waar webdevelopers op dit moment ofwel een workaround voor gebruiken of erg veel moeite voor moeten doen. Ook zijn er de nodige nieuwe dingen bedacht om het web verder te brengen. Zo komen er een behoorlijk wat tags bij om HTML documenten meer semantisch correct te kunnen renderen, wordt de DOM API uitgebreidt met enkele features die we nu al vaak zien in Javascript libraries als jQuery en Prototype.

Wat is er nieuw in HTML 5?

Om uit te vinden wat er nou zoal veranderd is tussen HTML4 en HTML5 kun je het beste document lezen dat Anne van Kesteren van Opera Software ASA heeft geschreven voor het W3C: HTML5: differences from HTML4.

Het is wel belangrijk om te onthouden dat het hier gaat om een samenvatting van een public working draft van de standaard waarvan het mogelijk is en zelfs zeer waarschijnlijk dat bepaalde onderdelen nog grondig herzien of zelfs verwijderd worden.

Een kleine greep uit het document, zoals het er nu voor staat:

  • Er komen verschillende block-level elementen bij: <section>, <article>, <header>, <nav>, <menu>, etc. Deze worden gebruikt om duidelijker aan te geven hoe bepaalde delen van een HTML5 document precies gezien moeten worden.
  • Een <audio> en <video> tag worden toegevoegd om met multimedia om te gaan.
  • Er worden een paar nieuwe controls toegevoegd: <datagrid> voor het weergeven en beheren van gegevens, <canvas> + bijhorende Javascript API voor extra grafische mogelijkheden
  • De <menu> tag wordt uit het stof geklopt en krijgt de mogelijkheid om ingezet te worden als context menu.
  • Er komt een templating-systeem om delen HTML gemakkelijk te (laten) herhalen
  • De <input> tag krijgt behoorlijk wat nieuwe input-types, zoals: url, email, range en datetime.
  • HTML elementen krijgen nieuw DOM attribuut classList, waarmee je de verschillende CSS classes die op een element gezet zijn kunt benaderen en wijzigen.

Zelf HTML5 proberen.. Nog even niet..

Het zal ongetwijfeld nog even duren voordat we een browser kunnen proberen die daadwerkelijk HTML5 kunnen weergeven. De opera webbrowser heeft wel al eens een internal build gepubliceerd met ondersteuning voor de <video> tag, en de Opera browser blijkt vanaf versie 9 al enige ondersteuning te hebben voor Web Forms 2.0, waar HTML5 op bouwt. Verschillende HTML5 artikelen vind je ook al op dev.opera.com. Andere browsers, Safari en Firefox, ondersteunen de <canvas> tag al een tijdje, dit is dan ook een van de features die uit de praktijk wordt toegevoegd.

Mensen zijn natuurlijk al bezig om te proberen om delen van de HTML5 spec nu al te gebruiken. Kijk bevoorbeeld eens naar dit artikel van John Resign: the HTML5 Shiv. Dit trucje, welke overigens niet in Firefox werkt, voor de verandering, geeft je natuurlijk geen van de nieuwe features die in de spec wordt gedefinieerd, maar geeft wel de mogelijkheid om te kijken hoe je met HTML5 zal gaan werken straks.

Op naar de volgende stap voor HTML5!

Microsoft introduceert IE8 Standards Mode

Toen afgelopen maand het nieuws naar biuiten kwam dat de opkomende versie van Internet Explorer, IE8, de ACID2 test juist kon renderen was iedereen - op z'n minst eventjes - optimistisch over de toekomst van Internet Explorer. Toen merkte men echter op dat Microsoft erg hamerde op het feit dat de ACID2 test alleen in IE8 Standards Mode juist renderde. Maar daar was verder nog geen informatie over.

Die informatie is inmiddels gekomen. Chris Wilson, IE Platform Architect, heeft vandaag in een blogposting op IEBlog aangekondigd dat vanwege de problemen die Microsoft heeft ervaren bij de stap van IE6 naar IE7 nu een specifieke opt-in flag wil gebruiken voor de zogenaamde IE8 Standards mode: de X-UA-Compatible header. En dat gaat er dan zo uit zien:

HTML:
  1. <meta http-equiv="X-UA-Compatible" content="IE=8" />

Of als HTTP Header:

CODE:
  1. X-UA-Compatible: IE=8

Zonder deze X-UA-Compatible header zal IE8 zich qua renderen gedragen als IE7 in "Standards mode" zodat websites die nu voor IE7 ontwikkeld worden niet ineens stuk gaan op het moment dat IE8 gebruikt gaat worden. Wilson geeft ook later in een comment aan dat documenten met een nieuw doctype, ik kijk dan direct richting het opkomende HTML5 - waarvan vandaag overigens de eerste Public Working Draft is uitgekomen, wel standaard direct in IE8 Standards mode kunnen worden gerenderd.

Zoals altijd bij nieuws over Internet Explorer is er een explosie aan reacties geweest, met reacties uit het hele spectrum: de obligatory "het is ongelofelijk stom", "het moet maar" en "dit lijkt mij ook de beste oplossing".

Zelf ben ik er nog niet helemaal uit over wat ik hier van vind. Aan de ene kant lijkt het haast de enige manier voor Microsoft om gebruikers toch te laten upgraden naar nieuwe versies, iets wat bij IE7 niet bepaald vlekkeloos gegaan is, maar aan de andere kant brengt het ook enkele beperkingen met zich mee en zitten we na de definitie nu met nog een Internet Explorer specifieke optie om Internet Explorer "standards" gedrag te definieren. Een van de comments op het blogposting bracht het mooi:

[...]
wow... quirks mode, standards mode, super standards mode... :D

In IE9 we will see the super duper standards mode... this will be the ABBA release... hehe

Wat denk jij, is dit de zoveelste stomme actie van Microsoft of kan dit toch helpen de standards-impasse van Internet Explorer te doorbreken?

Forum op Scriptorama?

Zoals beloofd in mijn overzicht van Scriptorama 2007 zitten er enkele wijzigingen aan te komen. Deze wijzigingen zullen er voor zorgen dat Scriptorama duidelijker wordt, beter werkt in alle browsers (zelfs IE6) en er komen ook enkele features bij. Ik ben een heel eind op weg met deze layout en ik verwacht ergens eind deze maand over te schakelen.

Maar, ik heb ook nog een vraag aan jullie. Vanaf 2006 tot april 2007 heeft Scriptorama een forum gehad. Dat was nu niet echt wild succesvol, maar het aantal bezoekers was dan ook een stuk lager. De bezoekersaantallen zijn enigzins gestegen dus nu wordt het denk ik wel weer eens tijd om te kijken of er interesse voor is.

Wat vind jij van het idee om (weer) een forum toe te voegen aan Scriptorama?

Als je nog andere suggesties hebt over hoe we Scriptorama beter kunnen maken, hoor ik dat natuurlijk ook graag ;-)

TextMate geimplementeerd in Javascript

Ik linkte al eens eerder naar een editor die geimplementeerd was in Javascript, maar de mensen achter April-Child.com gaan nog even een stapje verder. Zij hebben in Javascript grote delen van de functionaliteit van de populaire TextMate editor voor MacOSX geimplementeerd: AMY Editor, compleet met bundles, project manager, snippets, enz.

Amy

De AMY editor is behoorlijk functioneel en performed ook behoorlijk goed. Het enige wat lijkt te ontbreken is een mogelijkheid je bestanden direct te downloaden naar je desktop.

Helaas lijkt het niet mogelijk te zijn om de AMY editor zelf (in z'n geheel) te downloaden voor toepassing binnen bijv. je eigen website, maar het is hoe dan ook een knap staaltje Javascripting dat laat zien waar Javascript nu al toe in staat is.

Probeer de AMY Editor zelf!

Sun neemt MySQL over

Who said Open Source couldn't make any money? In een onverwachte actie hebben MySQL A.B. en Sun Microsystems, bekend van o.a. Java, en OpenSolaris, vandaag bekend gemaakt dat het MySQL A.B, het bedrijf achter de populaire opensource database MySQL, zal overnemen voor het astronomische bedrag van 1 miljard dollar. Hoewel overname geruchten voor MySQL niet vreemd waren, we hebben eerder al eens gehoord dat Oracle MySQL A.B. al eens wilde overnemen, komt dit toch enigzins uit onverwachte hoek. Zeker aangezien Sun ook al het nodige geld in een andere populaire opensource database heeft zitten: PostgreSQL.

Jonathan Schwartz van Sun:

But the biggest news of the day is... we're putting a billion dollars behind the M in LAMP. If you're an industry insider, you'll know what that means - we're acquiring MySQL AB, the company behind MySQL, the world's most popular open source database.

[...]

Both sets of customers confirmed what we've known for years - that MySQL is by far the most popular platform on which modern developers are creating network services. From Facebook, Google and Sina.com to banks and telecommunications companies, architects looking for performance, productivity and innovation have turned to MySQL.

[...]

We've historically worked at arm's length to optimize MySQL on Sun's platforms. Just as we did for Oracle in their early days, our performance engineering teams will sit (virtually) with their counterparts in MySQL and in the community, leveraging technologies such as ZFS and DTrace (which we didn't even have in the Oracle era) to ensure Sakila flies - along with the rest of the LAMP stack (from memcached and php, to the broader ISV community around MySQL).

MySQL A.B. Logo

Hoewel Sun het nu natuurlijk voor het zeggen krijgt, blijft de originele auteur van MySQL en ook de rest van MySQL A.B. eigenlijk gewoon verder gaan zoals ze bezig waren. Dat is, met wat extra hulp, want de Sun Engineers hebben met o.a. Java, ZFS, OpenSolaris en DTrace natuurlijk behoorlijk wat kennis te bieden.

Zolang MySQL verder gaat zoals ze nu bezig zijn, ben ik in elk geval enthousiast en vooral benieuwd wat dit gaat opleveren voor MySQL.

Nieuwe ACID test in ontwikkeling: ACID3

De meeste ontwikkelaars kennen de ACID2 test wel. Een test voor het gedrag van voornamelijk CSS en HTML objecten in browsers. Met het recente nieuws over IE8 welke in staat zou zijn om de ACID2 test correct te renderen, al is daar inmiddels -uiteraard- wat controverse over, zullen de ontwikkelaars van deze test hebben gedacht dat het tijd was om nieuwe doelen te stellen. Ze zijn dan ook bezig met ACID3. Anders dan ACID2 focussed ACID3 zich niet op CSS perse, maar meer op de dynamische kant van browsers: Javascript en de DOM.

As many of you will have heard by now, I've been working on the next Acid Test. Acid Tests are a way to encourage browser vendors to focus on interoperability. With the Box Acid Test, Todd Fahrner highlighted the CSS box model, and the resulting interoperability was one of the first big successes of the movement towards having browsers properly implement Web standards.

[...]

With Acid3, we are focusing on the dynamic side of the Web. I have a work in progress which consists of a few rendering tests and 84 subtests, little functions that test specific things from script.

De ACID tests zijn geen officiele tests, ze testen zelfs niet direct of een browser de standaard juist implementeert maar juist of edge-cases de juiste resultaten opleveren. Dit zou dan moeten impliceren dat de browser een groot deel van de standaarden op z'n minst aardig implementeert.

De ACID3 test is nog niet voltooid en de auteur, Ian Hickson, vraagt zijn lezers zelfs om mee te helpen door nog wat testcases te helpen ontwikkelen. John Resig gaat iets dieper in op wat de ACID3 test allemaal onder de loep neemt en laat zien dat ondanks dat de nog vrij te geven Firefox 3.0, Opera 9.5 maar ook bijv. Safari 3 misschien allemaal leuk de ACID2 test goed kunnen renderen: om straks als de test compleet is aan ACID3 te kunnen voldoen zullen ze nog het een en ander moeten knutselen.

Overstappen van de MySQL naar de MySQLi extensie

2008 betekent het einde van PHP4. In augustus is het gedaan. Een van de dingen uit PHP4 die een beetje onderbelicht is gebleven bij de verschillende upgrade artikelen is het feit dat de MySQL extensie nogal oud is. De PHP ontwikkelaars zijn hier uiteraard ook mee bezig en op enkele fora kwam ik vervolgens geruchten tegen over dat de mysql extensie, de extensie die o.a. de welbekende mysql_query() functie levert, verwijderd zou worden - wat natuurlijk de nodige paniek op leverde.

(more...)

Allerlaatste PHP4 versie uitgebracht: PHP 4.4.8

Iet meer dan 7 jaar na de eerste officiele release komt het einde van PHP4 in zicht. Vandaag heeft de PHP groep de allerlaatste geplande versie van PHP 4 uit gebracht. PHP 4.4.8 brengt de volgende fixes:

  • Improved fix for MOPB-02-2007.
  • Fixed an integer overflow inside chunk_split(). Identified by Gerhard Wagner.
  • Fixed integer overlow in str[c]spn().
  • Fixed regression in glob when open_basedir is on introduced by #41655 fix.
  • Fixed money_format() not to accept multiple %i or %n tokens.
  • Addded "max_input_nesting_level" php.ini option to limit nesting level of input variables. Fix for MOPB-03-2007.
  • Fixed INFILE LOCAL option handling with MySQL - now not allowed when open_basedir or safe_mode is active.
  • Fixed session.save_path and error_log values to be checked against open_basedir and safe_mode (CVE-2007-3378).

PHP 4 wordt sinds 31 december 2007 niet meer verder ontwikkelt. Mocht het nodig zijn worden er nog tot 8 augustus 2008 security fixes uitgebracht maar daarna is het in z'n geheel gedaan met de versie die de populariteit van PHP tot nieuwe hoogtes bracht.

Mocht je bezig zijn met de overstap naar PHP 5, lees dan Scriptorama's 4 tips om PHP6 compatible code te schrijven eens door.

Download PHP 4.4.8

Webapplicaties opstarten alsof het desktop applicaties zijn

In 2007 kwam Mozilla Labs met een nieuwe applicatie genaamd Prism. Met Prism wordt het mogelijk om web-applicaties te starten alsof het een daadwerkelijke desktop applicatie is. Vandaag kwam ik via Ajaxian de applicatie Fluidapp tegen welke hetzelfde biedt, maar dan voor de Mac en gebaseerd op WebKit in plaats van Gecko.

Het idee achter Prism en Fluidapp is de gebruiker de mogelijkheid te bieden om een programma te maken van een webapplicatie die gebruiker vaak gebruikt. Om dit te doen vragen zij de gebruiker om een URL en een naam en genereren daaruit dan een soort programma welke door het operating system te starten is. Wanneer dit programma gestart is opent deze een webbrowser met daarin de opgegeven URL. Deze applicaties zijn in feite dus niet veel meer dan een webbrowser gericht op 1 specifieke site. Iedere desktop web-applicatie gebruikt een eigen instantie van de browser. Dit zou volgens de auteurs de nodige voordelen moeten hebben:

  • Je hebt minder kans dat je gegevens verliest bij een webapplicatie wanneer je in een andere tab een andere site bezoekt die om wat voor reden dan ook de browser laat crashen. i
  • De webapplicatie wordt door het operating system gezien als aparte applicatie waardoor je bijv. gemakkelijk naar je Gmail, Google Docs of bijv. Basecamp kunt alt-tabben.

Prism en Fluidapp bieden allebei geen extra functionaliteit aan de website. Ze zijn in feite enkel een nuttige tool voor de gebruiker die veel webapplicaties gebruikt. Adobe AIR, een ontwikkelomgeving waar je met HTML, Javascript en Flash desktop applicaties kunt ontwikkelen die gemakkelijk weer met het Web kunnen communiceren, biedt in zekere zin eenzelfde soort functionaliteit: het haalt de webapplicatie uit de browser en plaatst het als een first-class-citizen op de desktop.

Wat denk jij, zijn Prism en Fluidapp handig genoeg of is een browser voor jou goed genoeg en wordt het pas interessant als je dichtere integratie met het systeem hebt zoals met Adobe AIR?