Archive for april, 2010

Ubuntu 10.04 LTS

woensdag, april 28th, 2010

ubuntu krijg nieuw uiterlijkEr is een nieuwe belangrijke(long term support) versie Ubuntu vandaag uitgegeven.
En het is grote verandering voor iedereen die Ubuntu gewend was. Er zijn namelijk nogal wat grafische zaken met Ubuntu gewijzigd.

Ten eerste krijgt Ubuntu andere kleuren/jasje.
Ubuntu stond bekend om zijn bruine en oranje kleuren maar het wordt nu helemaal paars en donker grijs/zwart. Verder wat grafische ook veranderd is, is dat de sluit, minimaliseer en maximaliseer knoppen nu links op venster zitten en niet meer rechts zoals in Windows. Dat is wel behoorlijk wennen vooral voor windows gebruikers.
Je kunt het wel via een tweak met de gnome register editor(gconf) terugzetten.

Op de terminal typ of plak je het volgende:

gconftool-2 --set /apps/metacity/general/button_layout --type string menu:minimize,maximize,close

Druk enter, en je window knoppen zijn weer zoals het in Windows is.

Persoonlijk vindt ik het nieuwe uiterlijk een verbetering. Normaal liep ik heel gnome te tweaken met Emarld maar nu denk ik dat ik dit standaard thema aanhoudt omdat het best mooi is.

De CD image om te branden kun je downloaden vanaf hier.
Een CD zijn ook te verkrijgen op verschillende releaseparty‘s

Handig om te weten, als je het nog niet wist:

-Het is mogelijk een gratis cd per post te krijgen via ShitIt op ubuntu.com.
-Je wilt de eerste keer na het opstarten zeker de grafische driver installeren. Dan heb je een veel beter beeld(hogere resolutie) en grafische effecten werken(compiz).
-Het versie nummer slaat op het jaar en de maand van uitgave van het besturingssysteem. 10 = 2010, 04 = april
-Voor de LTS versie is 3 jaar na uitgifte nog betaalde ondersteuning te krijgen van Canonical op de desktop versie en tot 5jaar op de server versie.
-Ubuntu komt sinds 9.10 met de Grub 2 bootloader.

Grub2 werkt anders dan grub1 wat betreft configuratie… Kort samengevat is de bedoeling is dat je de bootloader configureert aan de hand van de scripts in /etc/grub.d/ en commando update-grub. meer info
-Als je windows Vista of windows7 partities gaat verkleinen kun je dit het beste vanuit windows doen. Dit omdat windows het niet leuk vindt dat de (nieuwe, sinds vista) windows bootloader verplaatst wordt. Het opstart probleem, is wel te herstellen met de vista/7 cd en “opstart problemen oplossen”wizard.
-Zorg ervoor dat je de quicklauncher van OpenOffice.org uitzet, het kan een afsluit probleem geven. (info)
-Na installatie bij het herstarten kan er een I/O error komen als de CD eruit gaat. Deze foutmelding kun je negeren.
-De release opmerking van ubuntu 10.04 met alle bekende problemen.

NoteFly 1.0.0 uitgegeven

donderdag, april 22nd, 2010

[notefly logo]Ik heb noteFly 1.0.0 final uitgegeven. De 1.0.0 final versie bevat nogal wat bugfixes ten opzichten van RC2 versie. Ten eerste werkt het versturen van een notitie naar Facebook weer in de final versie. Het probleem werdt veroorzaakt doordat het echte userid (uid) werdt verzonden terwijl de userid (uid) nul moest zijn. Verder is het automatische starten door installer van NoteFly verwijderd. Dit omdat de installer dan NoteFly als Administrator start. Dat heeft problemen omdat als je dan notitie maakt ze onder de application data van de administrator opgeslagen zijn en niet van de gewone gebruiker. Het probleem is dan dat je notitie’s niet geladen worden. Verder is er nog een bug opgelost die dat iedere keer als je instellingen venster opende het checkboxje voor start at logon uitgevinkt stond wat ervoor zorgde dat als je op Ok duwde en niet goed oplet, het programma niet meer automatische opstartte als je dat eerste wel ingesteld had. Verder is de standaard titel van een nieuwe note nu de datum en tijd, je kunt dit nog steeds elke title geven die je maar wilt maar door een standaard titel in te stellen hoop ik dat maken van notes voor gebruikers sneller werkt. Omdat nadenken over een titel van een notitie is alleen maar lastig, je moet notitie snel kunnen maken. Vandaar dus nu een standaard datum tijd als titel.
update: NoteFly 3.0.0 uitgegeven
update: NoteFly 2.0.0 uitgegeven

Snelheid tellen in PHP vs SQL

woensdag, april 21st, 2010

php vs. sqlStel je wilt bent iets aan het tellen bij de ontwikkeling van je dynamische website.
Dan zijn er vaak twee manieren om dit te doen.

1. In PHP tellen bijvoorbeeld:

$numdownloads = mysql_num_rows(mysql_query("SELECT * FROM downloads));

2. in je SQL query tellen bijvoorbeeld:

$sqlnumdownloads =  mysql_fetch_array( mysql_query("SELECT COUNT(*) AS aantal FROM downloads) );
$numdownloads = mysql_fetch_result($sqlnumdownloads,0,'aantal');

Je kunt verwachten dat de 2e methode sneller is. Omdat niet eerst alle data opvraagt wordt en deze van de database server naar de webserver over gestuurt wordt. De netwerk verbinding vormt de grootste bottelneck. Maar wat als de database server en webserver dezelfde computer is? Dan is de ‘overdracht’ van de gegevens niet de bottleneck meer. Maar ook dan is het tellen in SQL vaak sneller dan in PHP. Dit omdat het PHP parser nog het probleem dat het een grotere bulk data moet verwerken omdat deze data niet door de simple SQL query geoptimaliseerd is. Sterker nog als je MyISAM voor opslag gebruikt zal het resultaat direct beschikbaar zijn omdat het al gedaan is door steeds het aantal verwijderen en toevoegen van records bij te houden. M.a.w. het loont qua performance het tellen in SQL te doen.

Ernstige PDF en Java lekken

donderdag, april 15th, 2010

De afgelopen dagen zijn er heel wat te doen rondom PDF en Java.

Ten eerste was er een Belgische onderzoeker die een exploit vondt om door het openen van een PDF bestanden een programma’s te laten uitvoeren.
De exploit was kinderspel om te maken, en wordt dus ook nu actief misbruikt.
Adobe reader gaf met de juiste instellingen gelukkig wel een waarschuwing voor het uitvoeren van de gevaarlijke code in het PDF bestand. Maar lang niet altijd.
Echter bij Foxit Reader kwam helemaal geen waarschuwing en zodra je dus een gevaarlijk pdf opende werdt de code in het gevaarlijk pdf bestand uitgevoerd en was je geïnfecteerd.
Er was zelfs een PDF worm virus gemaakt, dat alle andere PDF bestanden op een geïnfecteerd systeem besmette.
Het probleem was dat het lek niet zo eenvoudig te patchen was. Het was een daadwerkelijk een feature van het PDF formaat om dingen te kunnen uitvoeren in PDF. Dat maakt het lek ook vrijwel niet patchbaar tenzij je de feature weghaalt. Programma’s starten vanuit PDF is dat niet wat te veel mogelijkheden? Persoonlijk zie ik PDF als een boek, dus met alleen tekst en afbeeldingen.
Zowel Foxit Reader als adobe hebben nu een patch uitgebracht zodat er zeker een waarschuwing komt. Alleen de lichtgewichte opensource Sumatrapdf reader ondersteund deze onveilige zinloze feature niet en zal het pdf bestand niet kunnen openen.

Dan was er deze week nog een lek met Java dat actief misbruikt werdt op website’s. Het lek werdt net gevonden vlak nadat update19 uit was. En omdat het ernstig was moest een noodpatch namelijk update20 uitgegeven worden.
Het probleem zat hem in de plugin “Java Deployment Toolkit” in de browser dat naast je “Java” plugin voor de browser geïnstalleerd is. Echter het gevaarlijke was dat dit lek je simpelweg je computer kan infecteren doordat je een verkeerde website bezoekt. Tenzij je slim genoeg was plugins te blokkeren bijv. met noscript. Indergeval update20 is weer vanaf java.com te verkrijgen en de nieuwe JDK/SDK vanaf de oracle website.

CodeGreen versie 1.5 uitgegeven

maandag, april 12th, 2010

codegreenNa veel dingen in het CodeGreen spel te veranderen is er dan nu een nieuwe release van het spel gekomen. Het is eigenlijk niet gebruikelijk voor een game veel release te doen. Dus met deze update zijn veel dingen veranderd waarmee ik gelijk een hele hoop problemen van 1.0.1 probeer op te lossen. Het is dus niet een uitbreiding van het spel maar verbetering van alle problemen. Ten eerste wordt de highscore nu niet meer in een Access database opgeslagen. De access database was vrij groot, ook al zat er geen highscores in.  Daarom heb ik besloten gebruik te maken van de SQLLite database, die als publiek domein gelicenseerd. Dat is goed, want het combineert beter met opensource spel. Nog een voordeel van SQLlite is dat het lichter in geheugen gebruik is en veel sneller dan access. Verder is het probleem dat de muziek stop als een effect geluidje speelt nu opgelost. Maar ik besloten hier niet DirectSound voor te gaan gebruiken om geluid gelijktijdig te kunnen afslepen. In plaats daarvan heb ik een oplossing bedacht om extra geluidje te laten afspelen via een tweede process. Het is een beetje slordig maar hier vermij ik dat DirectSound en dus directX nodig is. Het voordeel van vermijden van Managed DirectX DirectSound is dat de gebruiker niet mee lastig gevallen wordt dat het directX nodig heeft, want dat is zeker 100mb aan bibliotheken. Dat is ook niet noodzakelijk want het spel gebruikt voornamelijk alleen GDI+ en heeft voor het teken en geen complexe 3d modelen nodig. Daarnaast blijft er zonder directX de mogelijkheid om codegreen op Mono onder linux of mac te draaien. Verder heb ik nog het logo op het hoofdscherm transparant gemaakt. Daarvoor moest ook de manier waarop de tekst naar beneden viel herschreven worden. Maar datzelfde effect is nu ook aan het optie scherm toegevoegd. CodeGreen 1.5 is nu te downloaden
Vooral voor mensen die het spel nog niet kennen een aanrader, om te leren hoe hacking simplistische werkt.
update: ik heb 1.5.1 uitgeven omdat een belangrijk dll’tje voor highscoren te laden ontbrak in de 1.5.0 release.

veiliger PHP6 door minder verwarrende beveiliging

vrijdag, april 2nd, 2010

PHP6 is nu flink in ontwikkeling en het is waarschijnlijk niet lang meer voordat we de eerste php6 release gaan zien. Een ding waar ik blij mee ben is dat in PHP6 magic quotes extensie nu niet meer werkt.

Het probleem met magic quote’s was dat vele PHP programmeur dachten dat ze hun PHP script veilig konden overzetten op een andere hosting terwijl dat niet het geval was. Wat magic qoutes extensie voor PHP scripts namelijk doet is voor elke input via POST en GET variabele de aanhalingstekens en enkele aanhalingsteken escapen.

Dan is het niet mogelijk dat een bezoeker, een string variabel in je script probeert te verlaten en PHP code kan uitvoeren.
Echter gebeurt dit alleen als magic quote op je hosting aanstaat.
Het is dus ook belangrijk dat in de test omgeving en productie omgeving dezelfde instellingen voor magic quotes gebruikt want anders dan is dat vragen om beveiligingsproblemen. Zonder magic quote moet de programmeur zelf ervoor zorgen dat string variabel veilig wordt.

Dan is er ook nog het probleem met magic quote’s dat het de beveiling die de php programmeur wel gemaakt heeft kan opheffen.
Dit gebeurt als Magic Quotes  een slash met aanhalingsteken gaat escape en er dan een dubbele slash staat wat in feit betekent dat de slash ge-escaped wordt en niet het aanhalingsteken meer.

PHP magic quote heeft dus voor veel verwarring en dus beveiligingsproblemen gezorgd terwijl het juist een beveiligingsprobleem automatisch moest oplossen.
Een overzicht van wanneer een php script dus veilig is ziet er dan zo uit:

Een oplossing om een script toch onder zowel hosting met magic quotes aan en magic quote uit veilig te maken was door eerst te controleren of magic quotes aanstond.
Dit kan door de functie get_magic_quotes_gpc() te gebruiken. Echter moet je dan dus wel een aantal dingen dubbel schrijven, een routine waarbij het script niet escaped als magic quote aanstaan en een andere stuk code waarbij de script wel escaped als magic quotes uitstaat. Een slimmer manier om niet overal get_magic_quotes_gpc() te hoeven aanroepen is om een functie te schrijven die je steeds aanroept wanneer je ergens mogelijk moet escapen en in die functie te controleren of magic quotes aanstaat.
Indergeval, in de toekomstige php6 versie zal magic quotes standaard er niet meer zijn en zal de php programmeur dus altijd moeten escapen. Dat maakt het wel een stuk duidelijker.

productie