Categories
Software Development

Using :nth-child from CSS3

As written is a previous posting about PHPUnit I also wrote the time has come to rewrite an application that is now mainly functional to a object oriented model. As doing standardized unit testing becomes easier and not an one project solution. One of the first goals is to separate the presentation layer from the application layer.

To complete this goal the first requirement is to see which browser versions needed to be supported. Based on the numbers from w3schools.com it is safe to say that both Mozilla Firefox and Google Chrome users are following the latest version in majority. For Microsoft Internet Explorer it is a different story as IE8 is the last possible version on Windows XP and the out of the box version for Windows 7. The numbers for IE8 are declining for months now and Microsoft started to push IE10 out to customers. For now I will select IE9 features when implementing Cascading Style Sheets and those features also need to be supported by the previous released version of Firefox and Chrome.

While moving a lot of inline style sheet information into separate file I also found the odd and even row coloring code. This code assigns a different style sheet class to the rows in question, but with CSS level 3 the pseudo-class selector :nth-child exits and this now can be done in the presentation layer and making the application layer lighter. So a style sheet file that defines the correct tr:nth-child(even) and tr:nth-child(odd) pseudo-clases will do the trick.

tbody tr:nth-child(odd) {
    background: rgb(255,255,255);
}
 
tbody tr:nth-child(even) {
    background: rgb(245,245,245);
}

The following HTML-tags are now completely clean and generating the correct colors will be done by the webbrowser. Saving expensive server-side execution time and precious bandwidth both resulting in a quicker response for the user.

Odd
Even

As this is the first step to separate the presentation layer form the application layer it is also a step that can take a while due to checking if everything still works and looks correct. The next step maybe even more daunting as it requires the separation of creating HTML-tags and business logic. As it looks now I will be moving everything into a PHP-version of CGI.pm known from Perl.

Categories
Internet, Unix en security

Google Wave en Chrome OS

Google WaveNiet The WOW is now, maar The Wave is now. Sinds afgelopen nacht heb ik toegang tot Google Wave met dank aan Hans Wolters. En om maar direct er vooruit te komen, het is meer hype dan echt bruikbaar cq zinvol nu. Dit geldt ook voor Chrome OS waar Google nu hard aan werkt, maar daar later deze week meer over.

Wat is Google Wave nu? Een samenraapsel van e-mail meets Jabber meets IRC meets Usenet en ik bedoel dan ook echt een samenraapsel. Bij de introductievideo om mensen lekker te maken ziet het er veel gelikt en functioneel uit, maar in werkelijkheid komt het nog niet zover. Zeker niet omdat je voldoende contactpersonen moet hebben om mee samen te werken en een gezamelijk doel. Dit is dus direct al een probleem als maar een beperkte set contactpersonen ook toegang tot Google Wave heeft. Het verschilt hiermee echt tussen zeg Gmail, Reader of Documents waarbij je voldoende zelf kan doen of kan vertrouwen op infrastructuur van andere om direct functioneel te zijn.

Zit er toekomst in Wave? Een volmondige ja, maar niet binnen nu en 2011 gok ik zo. Er moeten voldoende mensen op Google Wave zitten en nu lijken de invites te worden verdeelt tussen verschillende werelddelen om een gelijke balans te houden en hiermee heeft Google geleerd van het Orkut drama. Een ander punt wat mogelijk een aanjager voor Wave gaat worden zijn de Google laptops die voor kerst 2010 in de schappen moeten liggen. Voorlopig is het hiermee dus voornamelijk een speeltje die veel mensen kopzorgen gaat geven.

Kopzorgen zijn er zeker en voornamelijk bij netwerkbeheerders en developers van browsers. Na een klein uurtje had FireFox 3.5 z’n 1200 MB gealloceerd en zat bijna geen vooruitbranden meer in. Google Chrome doet het beter en heeft tussen de 40 en 120 MB nodig. Ook doet Google Chrome blijkbaar aan garbage collectie, want na verloop van tijd springt de gealloceerde geheugen daadwerkelijk terug. Op dit gebeid heeft oa Mozilla nog wel iets te verbeteren. Een andere punt is de bandbreedte die nodig is, want dit kan verschillen tussen een paar packets per seconden tot z’n 1300 KiB/s en dat allemaal om with:public te volgen. Beheerders van bedrijfsnetwerken zullen hier niet blij van worden, maar ook telco’s zullen hier nog weleens een probleem mee gaan krijgen. Deze hoeveelheden aan mobieldataverkeer kan een uitdaging vormen waar zelfs de introductie van de iPhone nog bij doet verbleken in veel gevallen.

Het is duidelijk geworden welke kant Google op wil en welke uitdagingen de concurrenten hebben. Microsoft zal erg zijn bedrijfsmodel moeten bijstellen om over 10 jaar nog te bestaan als het zo doorgaat of te zijn teruggebracht tot een niché-speler. Hetzelfde geldt ook voor Apple eigenlijk, want mooi, duur en elite zijn gaat niet voldoende zijn om te overleven. Ik heb wel vraagtekens bij de privacy en de vendor lockin bij dit soort oplossingen en gaat overstappen naar een andere aanbieder wel een mogelijkheid worden.

Categories
Open & free

Mono is the golden bullet?

Logo of the Mono-projectAfter many years and a lot of resistance, it may be that Microsoft worked it’s way into the Free Software world. And the result may be more horrifieing than one can imagion, but the way was maybe to simple to see in the beginning. It all started in 2000 with the release of the specifications of .NET and in 2002 with the release of .NET 1.0 by Microsoft.

In 2004 was the first release of Mono ready and Novell jumped on it like a lioness on a wildebeest. The integration in the OpenSuSE 10-tree started, but others like Redhat refused for the same reason Java from Sun was an issue. But here played Microsoft ball like no one else as they found someone to implement there platform for free under the GPL. Novell takes the blame when thing go bad and Microsoft gets a grip on Linux-market when thing go well.

As SuSE being a KDE-distribution Novell had some issues since other bigger players had selected GNOME as the new defacto desktop. This has changed over time and with a lot of GNOME developers on the payroll of Novell these issues where fixed. Critical applications like Tomboy, F-Spot, Banshee and Beagle where build in an attempt to let GNOME depend on Mono. They partially succeeded, because Beagle was bloatware and developers found a solution in MetaTracker, but Tomboy was added to the releasecycle.

The discussion gets a second round as the biggest Linux-distribution on the planet gives Mono a go by starting depending meta-packages in there distribution. The change in Debian starts to split the community as time goes by. And remember, this is the distribution who thinks they should be more free then Richard M. Stallman. But with the next release a lot of new installations start to include Mono and for Debian-based distributions like Ubuntu this may even become on an earlier moment.

One may ask how this could happen, but it may be more wise to see how we can stop this for spreading. I’m not gone run any .NET-based applications as I’m glad to see Java go from my machines (yes, NetBeans appears to be nice, but give bloatware a new definition). Also tests with other GNOME-applications to remove support for Python or Perl where a good indicator for me to try to drop support for them. It only leaves me with the final question what to use when Debian goes bad? And with a growning dependency on Mono and OpenJDK this could happen.