Qr codes

qrcodeQR codes lijken stillaan meer en meer ingeburgerd te raken, je ziet ze op affiches, in magazines en op beurzen. Voor wie niet weet wat QR codes zijn volgt hier een korte uitleg.
Lees verder: Qr codes »

Wordpress 3.0: de beste nieuwe features

Wordpress 3.0 komt er aan, de nieuwsgierigen kunnen alvast de beta versie 2 van wordpress 3.0 downloaden. Maar voor diegenen die niet kunnen wachten tot de nieuwe wordpress officieel gereleased is, hier alvast een opsomming van de beste nieuwe features.

  1. Custom post types
    Met de nieuwe mogelijkheden van de custom post types zet Wordpress een stap verder in de richting van CMS systemen. Met deze optie die gelijkaardig is aan de custom types die je kunt aanmaken in Drupal, kan je zelf je eigen inhoud types aanmaken. Vroeger had je standaard het content type post en het type page, nu kun je bijv een type auto aanmaken en bepalen welke velden voor dat inhoudstype beschikbaar moeten zijn voor de gebruiker. Er bestonden al plugins voor Wordpress zoals flutter die deze functionaliteit invoerden, maar dat het nu standaard in wordpress zit ingebakken vind ik wel een hele grote verbetering.
  2. Menu management
    Deze verbetering wijst er toch ook op dat Wordpress zich meer als CMS wil gaan profileren, met het menu management kan je via de admin zelf menu’s gaan samenstellen en organiseren. Deze menu’s kan je dan toevoegen in je template. Waar je vroeger louter met categorieën een menu kon tevoorschijn toveren, zal deze nieuwe feature ervoor zorgen dat het menu beheer een pak flexibeler word.
  3. Custom taxonomieën
    Taxonomieën zijn eigenlijk verzamelingen. In de huidige wordpress kennen we hierbij de tags en de categorieën, maar in wordpress 3.0 is het nu mogelijk om zelf je eigen taxonomieën aan te maken.
  4. Nieuw standaard thema
    Kubrick was al jaren de theme die je er bij je wordpress installatie bijkreeg, daar komt nu verandering in, er is een nieuwe theme Twentyten die het uitzicht van een standaard blog een pak de hoogte zal injagen. Daarnaast is de template qua code en structuur een pak beter en ook op SEO vlak zit deze template heel goed in elkaar.
  5. Multi site
    Vroeger had je naast de standaard versie van wordpress ook nog Wordpress MU of Multi User, met deze versie kon je meerdere blogs beheren met dezelfde Wordpress installatie. Deze functionaliteit zit nu standaard in de nieuwe wordpress 3.0 ingebakken.

Daarnaast zijn er nog een aantal kleinere wijzigingen op komst, zo is er een koppeling met wp.me, die automatisch je urls verkort, en nu kan je ook bij de installatie je eigen login en paswoord kiezen, wat vroeger niet het geval was.

Adverteren bij google via Google Adwords

Google Adwords is het online advertentie medium van google. Via adwords kan je dus online adverteren bij google. De adwords advertenties verschijnen naar gelang van de het bedrag dat je betaalt en het aantal adverteerders, boven of naast de normale zoekresultaten. De normale zoekresultaten worden ook wel de organische zoekresultaten genoemd.

Adverteren met adwords is een zeer populair marketing middel, zo is het door de uitgebreide statistieken perfect mogelijk om uw kosten tegenover uw opbrengsten te plaatsen en zo te zien hoeveel de adwords advertenties u effectief opbrengen. De getalletjes zijn leuk voor de marketing, maar voor een bedrijf is het ook van groot belang dat er doelgericht kan geadverteerd worden. Bij het adverteren in klassieke media kan je vaak niet specifiek genoeg je doelgroep bereiken, maar bij adverteren in google kan je dat perfect zelf bepalen. Je kan zelf kiezen voor welke trefwoorden je betaald en welke doelgroepen je op die manier aanspreekt.

Het opstarten van een dergelijke adwords campagne kan op enkele minuten gebeuren, maar het vakkundig beheren van de google advertenties is iets anders. Het is zeer belangrijk om het beheer van een dergelijke campagne over te laten aan adwords professionals, deze helpen u bij het kiezen van de juiste trefwoorden terwijl de kosten per click toch betaalbaar blijven. Een goeie adwords partner zal er trouwens voor zorgen dat de campagne frequent geoptimaliseerd word. Dit is zeer belangrijk, een kleine wijziging in de advertentie tekst en/of titel kan direct een grote verandering in CTR (click trough rate) hebben en op die manier ook een stuk schelen in de kosten.

Lokaal een url koppelen met je hosts file

Lokaal een webserver opzetten om een web applicatie te ontwikkelen is zeer eenvoudig. Je wil vaak net dezelfde lokale ontwikkel omgeving opzetten als de omgeving waar je applicatie live zal komen te staan. De applicatie komt dan vaak op een url als deze te staan: http://localhost/mijn-project/. Dit wijkt uiteraard af van de uiteindelijke domeinnaam waar je applicatie op komt te staan, maar het is dus mogelijk om een URL te koppelen aan je lokale server door middel van het hosts bestand. De domeinnaam is dan enkel lokaal op je PC gekoppeld aan je webserver aangezien de hosts file een bestand is met lokale instellingen.

Met de hosts file kun je een domeinnaam aan een bepaal IP adres koppelen, zo kun je bijv www.google.be aan je lokale server koppelen. Om het bestanden moet je wel even de windows verkenner in duiken, het bestand kan je hier terug vinden: c:\windows\system32\drivers\etc\hosts. Je kan het best openen met notepad, dreamweaver of een andere teksteditor. Een hostfile ziet er standaard als volgt uit:

# Copyright (c) 1993-2006 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a ‘#’ symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

127.0.0.1       localhost
::1             localhost

Wil je bijvoorbeeld www.mijnsite.be koppelen aan je lokale webserver, dan voeg je gewoon een nieuwe lijn toe met volgende tekst:
127.0.0.1   www.mijsite.be

Wanneer je dan naar www.mijnsite.be surft, dan kom je terecht op je lokale webserver. Je zal er wel nog moeten voor zorgen dat je webserver correct is ingesteld zodanig dat die ook weet welke applicatie hij moet laten zien als je via die url erop terecht komt.

Ronde hoeken compatibiliteit in verschillende browsers

Heb je al wel eens een ontwerp gehad met ronde hoeken en je kende als enige oplossing hiervoor het invoegen van afbeeldingen, dan zal ik je bij deze verlossen van deze inefficiënte manier van werken.

CSS3 komt eraan, en daarmee zal ook de border-radius CSS property beschikbaar worden. Met border-radius kan je instellen hoe rond een hoek van een element moet zijn. Er zijn 2 varianten, want zowel -webkit als -moz omdat elk hun eigen property geïmplementeerd hebben.

Wil je een div met bovenaanrechts een ronde hoek, dan kan je dit als volgt in je CSS implemeneteren:

#mijndiv {
-moz-border-radius-topleft: 7px;
-webkit-border-top-left-radius: 10px;
}
<div id="mijndiv">inhoud div</div>

Let wel op met deze property, want die is momenteel nog niet in alle browsers beschikbaar, zelfs de nieuwe IE8 ondersteund de property nog niet, daarnaast zijn er een aantal oudere browsers, die deze property niet ondersteunen.

Voor deze browsers kun je volgens mij het best dd_roundies javascript plugin gebruiken, met deze script kan je zeer makkelijk voor andere browsers ronde hoeken gaan maken.
Onderstaande script voeg je toe in de header van je pagina en hiermee zal je ook een border rechtsboven met een radius van 10pixels maken.
<script src=”DD_roundies_0.0.2a-min.js” type=”text/javascript”></script>
<script type=”text/javascript”>DD_roundies.addRule(’#footertext’, ‘0px 10px 0px 0px’);</script>

Let op! De plugin werkt door middel van VML en dat kan niet meer in IE8, via een eenvoudige meta tag kan je als render engine IE7 instellen, zodanig dat IE8 eigenlijk dezelfde render engine als IE7 gebruikt.
<meta http-equiv=”X-UA-Compatible” content=”IE=7″ />

De plugin lijkt redelijk goed zijn werk te doen, maar in IE geeft hij soms problemen, ook bij afdruk pagina’s verschijnen er soms nog elementen op de pagina die er niet zouden moeten staan.

Codeigniter: een open source PHP framework

codeigniterVandaag mijn eerste ervaring opgedaan met Codeigniter, een open source framework voor PHP.  Frameworks zijn er gekomen omdat programmeurs bij het opzetten van een nieuw project telkens opnieuwe dezelfde code moeten maken om te connecteren met een database, objecten maken, formulieren valideren, enz… Met een framework is deze codde direct voor je beschikbaar en kan je onmiddellijk starten met het echte werk. Een dergelijk famework stelt je dus in staat om makkelijker, sneller en ook meer gestructureerd een nieuwe PHP applicatie op poten te zetten, nu ja makkelijker vind ik het nog niet. Met de documentatie kan je al snel een “hello world” tevoorschijn toveren, maar wil je een website opzetten waarbij er bijv items opgedeeld worden in categorieën, dan ben je wel even bezig om alles aan te maken.

Het systeem werkt op basis van MVC (Model, View, Controller). Een controller verzorgt de functionaliteit, een model bevat de inhoud en de variabelen van de objecten waar je mee werkt en de view bevat HTML code voor het weergeven van je data. Op deze manier krijg je een mooie scheiding tussen je business logic en je user inferface waardoor naar onderhoud toe, de zaken wel heel wat makkelijker worden.

Naar structuur opbouw van mijn urls ben ik er nog niet helemaal uit. Ik wil die graag zeer goed kunnen controleren, maar bij dit framework slaag ik er nog niet in om de urls te maken zoals ik het zelf wil. Die werken namelijk volgens het volgende principe:
/blog/categorie/test/
Als je naar die url surft, dan zoekt hij eerst de controller “blog”, binnen die controller zou een functie moeten zitten met de naam “categorie”, en die functie categorie krijgt de variabele “test” doorgestuurd. Echter, wanneer ik een url als volgt wil maken: /blog/nieuwspost-item/ dan ontbreekt eigenlijk mijn “functie” in de url, dus daar moet ik nog even op zoeken.
Ik ga eens kijken of het niet op te lossen valt met de routes, daarmee kun je namelijk instellen welke urls naar welke controllers moeten gestuurd worden, voor het geval je niet tevreden bent met de standaard koppeling tussen url en controller.

Naaste Codeigniter zijn Cake PHP en Zend wel de meest bekende. Deze systemen hebben een gelijkaardige werking met Codeigniter en zijn beiden ook open source. Cake PHP heb ik ook al eens kunnen testen, ook een framework dat zeker de moeite waard is om even uit te proberen, die heeft trouwens User authentication standaard ingebouwd, en dat is iets wat in het framework van Codeigniter jammer genoeg ontbreekt.

Facebook applicaties ontwikkelen

facebook-applicatiesFacebook heeft al meer dan 180miljoen actieve gebruikers en dat aantal stijgt nog dagelijks. Een facebook applicatie is dan ook de ideale manier om je merk of product tot bij die gebruikers te brengen. Het grote voordeel van zo een applicatie te ontwikkelen is dat je er een groot aantal mensen mee kunt bereiken, mensen die het installeren kunnen de applicatie dan nog eens doorsturen naar hun vrienden, en al snel heb je enkele duizenden gebruikers van je applicatie.

Wat moet je kunnen om een facebook applicatie te maken?

Er zijn verschillende manieren om een facebook applicatie te ontwikkelen.Applicaties ontwikkelen op facebook is vrij eenvoudig als je enige kennis hebt van PHP, Ruby on Rails of om het even welke programmeertaal waar een Facebook API voorhanden is. Verder heb je best een algemeen beeld van het internet en de verschillende basis technologiën waarmee sites gemaakt kunnen worden zoals CSS, HTML en SQL. Weet je hier al alles over dan ben je al een hele stap dichter bij de ontwikkeling van je eerste facebook applicatie.

Een applicatie bestaat uit 3 grote onderdelen, namelijk de Facebook API, FBML (Facebook Markup Language) enFQL (Facebook Query Language).

  1. Facebook API
    De Facebook API is een tussenlaag tussen je applicatie en de facebook database. Met behulp van deze tussenlaag kan je makkelijk verschillende gegevens opvragen uit de database, zoals bijvoord de vrienden van de huidige gebruiker, maar je kan de API ook gebruiken om berichten te publiceren naar de gebruiker zijn profiel pagina.
  2. FBML (Facebook Markup Language)
    Met de FMBL kan je gegevens uit Fb in je applicatie laten zien zoals bijv de username van de momenteel ingelogd gebruiker. Daarnaast ondersteund FBML ook bepaalde controles om na te gaan of een gebruiker wel toegang mag hebben tot bepaalde gegevens.
    Bijkomend voordeel is dat je applicatie qua look en feel zeer makkelijk integreert in fb. Met bijv kan je op elke pagina een commentaarbox in de facebookstijl tevoorschijn toveren. Elke commentaarbox geef je een uniek ID waarmee facebook kan bijhouden bij welke pagina van je applicatie de comments horen.
  3. FQL (Facebook Query Language)
    Is een variant op SQL en dient om op een makkelijke manier data uit de facebook database te kunnen halen. De facebook APi werkt eigenlijk met FQL om de gegevens uit de database op te halen, maar je kan de queries ook zonder API gebruiken om zo iets meer controle te krijgen over de gegevens die je wil opvragen en een manier te hebben om zaken die niet in de API voorzien zijn toch te kunnen opvragen.

Hoe maak je succesvolle facebook applicaties?

Echter niet elke facebook app wordt een grote hit, er zijn enkele richtlijnen die je kunnen helpen bij het maken van een succesvolle tool.Om een succesvolle applicatie te maken op facebook moet ze infeite voldoen aan één van deze peilers:

  1. Mensen met elkaar in contact brengen, bijv op basis van hobby of mensen die bijvoorbeeld naar een zelfde streek op reis gegaan zijn zouden met behulp van een facebook applicatie met elkaar in contact kunnen gebracht worden.
  2. Daarnaast moeten facebook applicaties een meerwaarde hebben, er moet een functie inzitten die gebruikers kan helpen met bepaalde taken, bijvoorbeeld de alom vertegenwoordigde verjaardagskalenders zijn een goed voorbeeld van een applicatie met een meerwaarde.
  3. Mensen moeten vooral geneigd zijn om terug te komen naar je applicatie, de applicatie moet hen aanspreken om terug te komen. de mensen moeten geneigd zijn om regelmatig eens terug te komen om te kijken of er al nieuwe content is toegevoegd, of bijvoorbeeld bij spelletjes wordt er vaak met een vorm van credits of energie gewerkt die zich automatisch ter na enige tijd hervuld.

Een facebook applicatie maken is dus vrij eenvoudig, een succesvolle facebook applicatie maken dat is al een pak moeilijker. In een volgende post zal ik aan de hand van een voorbeeld laten zien hoe je zelf een facebook applicatie kan ontwikkelen.

Subdirectory inhoud als homepage met .htaccess

htaccess rewrite rulesIk ben momenteel bezig met het overzetten van een website die ik vroeger in PHP had gemaakt naar een systeem dat aangestuurd is door drupal. Op de website staan artikels die ik via de zelfgeschreven PHP code weergeef zoals ik het wil. De PHP code staat in de root directory en via .htaccess rewrite rules zorg ik ervoor dat mijn urls mooi SEO in orde zijn.

Nu wil ik graag mijn artikels behouden en die nog steeds laten draaien op mijn eigen code. Ik wil echter ook drupal installeren in de root directory, makkelijk op te lossen dacht ik, maar het bleek toch een kleine zoektocht te worden naar een werkende oplossing.

Ik moest 3 stappen uitvoeren om tot een werkende oplossing te komen.

Stap 1: rewrite van clean url naar nieuwe subdirectory
Eerst en vooral, al de reeds bestaande mappen uit de root, die moeten onder een eigen subdirectory /artikels komen te staan, op die manier is mijn root directory leeg en kan ik daar de drupal installatie plaatsen. Alles verzetten en mijn htaccess generator aanpassen zodanig dat die mijn bestaande urls behoud, maar ze intern herschrijft naar de juiste map:

OUD: rewriterule ^sitemap.htm sitemap.php
NIEUW: rewriterule ^sitemap.htm artikels/sitemap.php

Het gevolg van deze actie is dat de bestaande url’s blijven bestaan wat zeker een must is als je je opgenomen pagina’s in google wil behouden. Let wel op, de .htaccess file mag niet mee verhuizen naar de /artikels map, maar moet in de root directory blijven staan.

Stap 2: drupal installeren
Drupal downloaden en installeren. Het downloaden en installeren gaat praktisch vanzelf, met enkele drukken op de knop en het invoeren van een aantal standaard gegevens is mijn website nu voorzien van een drupal installatie. Jammer genoeg heb ik hier nog wat werk aan, instellingen goed zetten en wat content toevoegen voor die klaar is, maar nu ziet iedereen al een onafgewerkte website staan wat niet de bedoeling is, dus snel naar stap3.

Stap 3: Homepage instellen
Tijdens het afwerken en goed instellen van de drupal configuratie wil ik wel nog mijn oude homepage blijven behouden. De website moet eigenlijk nog even blijven draaien zoals hij dat vroeger deed. Ik zit nu echter met een andere structuur en ook mijn homepage zit onder /artikels. Om die op te lossen moet ik de aanvragen van www.mijnsite.be doorsturen naar www.mijnsite.be/artikels en dat kan door de volgende code toe te voegen aan je .htaccess:

rewritecond %{HTTP_HOST} ^(www.)?mijnsite.be$
rewriterule ^(/)?$ artikels/index.php [L]

Wanneer ik nu surft naar www.mijnsite.be zie ik niet langer de drupal installatie maar mijn oude homepage. De url veranderd niet door deze rewriterule dus de website ziet er terug identiek uit als vroeger.

Voortaan zal ik trouwens deze manier van werken altijd gaan gebruiken, ik vind het beter georganiseerd wanneer alles in zijn eigen map zit, wanneer ik een nieuwe site start zal ik direct alles in een map zetten zodanig dat alles makkelijk uitbreidbaar is in de toekomst.

Drupal 6.8 en 5.14 gereleased

Drupal 6.8 en drupal 5.14 zijn kleine updates voor de versie 6.7 en 5.13, die de laatste compatibiliteitsproblemen met PHP versies ouder dan 5.2 oplossen. Deze versies bevatten geen nieuwe features, maar wel een aantal veiligheidsupdates. Het is zoals altijd aangeraden om zo snel mogelijk deze laatste nieuwe versies van drupal te installeren zo ben je zeker dat je website optimaal beveiligd is.

Download drupal 6.8 of download drupal 5.14

Verder komt er nog spannend nieuws van het drupal front. Op dit moment is er een heuse design herwerking van drupal.org aan de gang, momenteel nog in conceptfase, maar weldra zal drupal.org in zijn nieuwe kleedje staan stralen. Al het redesign werk kan je volgen in de redesign groep.

WordPress 2.7 “Coltrane”

Wordpress 2.7 is officieel gereleased en heeft de naam Coltrane gekregen. Coltrane heeft een grote invloed gehad op de ontwikkeling van de jazz muziek en was een meester in de improvisatie. Vandaar ook dat de naam gekozen is voor deze versie van wordpress 2.7. Je kunt de blog software volledig vormen naar je eigen hand en de verschillende vensters in het admin gedeelte plaatsen zoals je het zelf wil.

Er is heel wat veranderd aan deze versie van wordpress, vooral het nieuwe design van het admin gedeelte zal je onmiddellijk opvallen. Wil je weten wat er nog zo allemaal veranderd is, dan kan je hier de 10 beste wordpress 2.7 features zien.

Download snel deze laatste nieuwe versie van wordpress of als je al een beta of release candidate had geïnstalleerd, dan kun je via de automatisch update tool in je admin onder tools > upgrade gemakkelijk je versie updaten.