Afbeeldingen bij de kleuren van uw website

Op 14-04-2011 aangemaakt door Cees Rijken in de rubriek(en) Design & Layout

0

Heeft u de kleuren voor uw nieuwe of herziene website bepaald? U kunt met onderstaande website foto’s of afbeeldingen vinden in dezelfde kleurschakeringen.

Imageafter

U kiest een kleur en Imageafter.com kiest bijpassende afbeeldingen uit haar eigen database met uploaded images. Zie http://www.imageafter.com/colors.php.

Idee Labs

Idee Labs zoekt op basis van de kleur die u kiest in de colorpicker, door ruim 10 miljoen afbeeldingen op Flickr.com. Zie http://labs.ideeinc.com/multicolr.

Colorhunter

Colorhunter gaat nog een stapje verder. Je kunt hier in de Flickr.com database zoeken op tag, vervolgens zoekt Colorhunter daar de juiste afbeeldingen bij een genereert een colorpalet. Je kunt ook een eigen afbeelding uploaden. Zie http://www.colorhunter.com/.

Kleuren bepalen voor uw website

Op 14-04-2011 aangemaakt door Cees Rijken in de rubriek(en) Design & Layout

0

U wilt een website, maar u heeft nog keuze kunnen maken met betrekking tot kleuren? Hieronder staan een aantal links die u kunnen helpen om kleurcombinaties te evalueren.

www.ficml.org

Op de website van FicML kunt u gebruik maken van het “4096 Color Wheel” om 7 bij elkaar passende kleuren te kiezen. Het wiel toont meteen de bijbehorende HTML kleurcodes.

kuler.adobe.com

De Kuler van Adobe.com is een online applicatie waar geregistreerde gebruikers hun persoonlijke kleurenschema’s kunnen maken, gebaseerd op voorgeprogrammeerde compatibiliteitsregels of afgaande op hun eigen voorkeuren.

www.colorschemedesigner.com

Bij Colorschemedesigner.com kiest u een hoofdkleur en meteen worden 7 bijpassende kleuren gezocht. U kunt er ook voor kiezen om juist contrasterende kleuren te kiezen, door een ander “scheme” te kiezen.

www.somacon.com

Onderaan deze pagina van Somacon vindt u lange lijst met kleuren en kleurcodes, als een soort waaier die een schilder zou gebruiken.

www.pic2color.com

Heeft u een afbeelding waarbij u passende kleuren zoekt? Dan is Pic2Color een uitkomst. U uploadt een plaatje en deze website vindt bijpassende kleuren.

www.websitetips.com

Met de “Colorblender” van Websitetips.com kunt u 2 kleuren online mengen.

www.colorblender.com

Een soortgelijke tool is de “Colorblender” van colorblender.com, waarmee u uw kleurschema’s direct naar Adobe Illustrator kunt exporteren.

www.morecrayons.com

Met de slider van morecrayons.com kunt u experimenteren totdat u de juiste RGB-waarde heeft gevonden.

www.colortoy.net

Colortoy.net heeft de Flash Color Schemer, u kunt zelf kleurcodes opgeven of eenvoudigweg op “random” drukken.

www.colorjack.com

ColorJack opent met een scherm met allemaal kleurige blokjes. Klik erop en u krijgt suggesties voor kleurcombinaties. Deze zijn vervolgens te exporteren naar de diverse applicaties.

www.colourlovers.com

En lest best: met colourlovers.com kunt u niet alleen (de helderheid van) uw kleuren bepalen, de website bevat ook nog kant-en-klare palettes die in allerlei formaten zijn te downloaden.

Heeft u de juiste kleuren bepaald? Zoek dan de juiste afbeeldingen bij uw kleuren

zoekmachinevriendelijke URL’s

Op 14-04-2011 aangemaakt door Cees Rijken in de rubriek(en) Zoekmachines

0

querystrings naar woorden

Als je de content van je PHP-pagina’s wilt onderhouden via een database, dan zullen de URL’s al gauw het volgende format hebben: “http://www.jouwdomein.nl/index.php?id=23″. Hoewel op deze manier de juiste content wordt weergegeven, is de URL niet echt zoekmachine-vriendelijk.

Google kijkt bijvoorbeeld ook naar de woorden in de URL. Dus we zouden liever een URL hebben met de syntax: “http://www.jouwdomein.nl/tweedehands-grasmaaiers/”, maar dan wel met de content die wordt opgehaald via het databaserecord met ID 23.

met .htaccess

De methode MET .htaccess is het mooiste, maar vereist dat je (bijvoorbeeld via FTP) toegang hebt tot het .htaccess bestand. Aangezien Windows geen bestanden beginnend met een punt ondersteunt, werkt deze methode alleen op Linux/Unix-platformen. Zet het onderstaande in je .htaccess bestand en upload het naar je server:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php

Deze code zorgt ervoor dat alle pagerequests worden teruggeleid naar “index.php”. Zet vervolgens bovenin jouw “index.php”:

// URL without mod_rewrite
// apparently the index page is called in a SEO UNfriendly manner...
if (basename($_SERVER['SCRIPT_NAME']) == "index.php" && (int)$_GET["id"] > 0)
{
$wantedID = (int)$_GET["id"];
}
elseif( (int)array_pop(explode('-', $_SERVER['REQUEST_URI']))>0 )
{
// URL with mod_rewrite
// the index page is called with dashes (Google friendly)
// the htaccess redirects it to index.php and the scripts reads the INTEGER value of the last array item...
$wantedID = (int)array_pop(explode('-', $_SERVER['REQUEST_URI']));
}
else
{
// the index page is called without querystring AND without dashes, so we need to use a default value
$wantedID = 777;
}
echo "Querystring for your database is:
";
echo "select * from <table> where ID=".$wantedID;

Deze PHP code zorgt ervoor dat altijd het juiste ID wordt gefilterd. Het eerste if-statement kijkt of de zoekmachine-onvriendelijke manier wordt gebruikt (“index.php?id=23″). Zo ja, dan wordt het ID 23 in een variabele gestopt.

Het tweede if-statement breekt de URL op in een verzameling strings, die worden gescheiden door streeps (dashes). Google ziet deze streepjes namelijk als spaties en zo kun je verschillende losse woorden gebruiken. Vereiste is wel dat de string achter het laatste streepje het juiste ID bevat. Met andere woorden: de URL krijgt de volgende syntax: “http://www.jouwdomein.nl/tweedehands-grasmaaiers-23/”. Ook hier wordt weer ID 23 in een variabele gestopt.

Als niet de zoekmachine onvriendelijke URL wordt opgeroepen en ook niet de vriendelijke, dan wordt “index.php” blijkbaar zonder toevoegingen aangeroepen, logischerwijs vindt dit plaats als de hele domeinnaam wordt aangeroepen (http://www.jouwdomein.nl) zonder extra’s. Om te zorgen dat dan evengoed de juiste content wordt getoond, kun je hier het ID van de homepage als contante neerzetten. In dit voorbeeld is dat ID 777.

WordPress gebruikt deze methode ook en heeft in het admin panel een tool opgenomen om dit makkelijk voor je te regelen (vereist wel dat je .htaccess writable is!). Zie http://codex.wordpress.org/Using_Permalinks.

zonder .htaccess

Als je geen toegang hebt tot het .htaccess bestand, kun je helaas niet de requests herleiden naar “index.php”. Dit betekent dat “index.php” altijd zichtbaar zal blijven in de URL, wat weer tot gevolg heeft dat je geen streepje direct achter “index.php” kunt gebruiken.

“http://www.jouwdomein.nl/index.php-wat-dan-ook” zal namelijk altijd tot een 404 (Not found) melding leiden. Je kunt dat eerste streepje wel vervangen door een forward slash (/). De browser zal dan namelijk denken dat het hier om subfolders gaat.

Met behulp van bovenstaande PHP code kun je dan URL’s vormen in de vorm van “http://www.jouwdomein.nl/index.php/tweedehands-fietsen-23/”). Minder fraai dan de eerste methode, maar nog steeds met zoektermen in de URL….

wanneer handig?

Stel dat je op basis van het pageID verschillende content toont (index.php?pageID=12). Veel statistiekenprogramma’s (w.o. Google Analytics) kunnen geen rapporten genereren op basis van individuele querystrings, terwijl je wel wilt weten wat de specifieke bezoekersaantallen van pagina 12 zijn. Door de querystring te vervangen door een geformatteerde URL, kun je een dergelijke meting een stuk eenvoudiger uitvoeren.

Zoek Machine Gids

Op 14-04-2011 aangemaakt door Cees Rijken in de rubriek(en) Zoekmachines

0

Wilt u weten hoe zoekmachines werken of hoe uw zoektermen moet toepassen?
De ZoekMachine Gids 3.0 is een gratis Nederlandstalige PDF met een duidelijk overzicht over de stappen die u moet nemen om uw positie te verbeteren.
U kunt deze hier downloaden.

Heeft u de ZoekMachine Gids helemaal doorgebladerd en wilt u nog beter gevonden worden? Misschien is Google AdWords dan iets voor u!

Google Adwords Gids

Op 14-04-2011 aangemaakt door Cees Rijken in de rubriek(en) Zoekmachines

0

Heeft u de ZoekMachine Gids helemaal doorgebladerd en wilt u nog beter gevonden worden? Misschien is Google AdWords iets voor u!

Onder deze link vindt u een PDF die poogt Google AdWords begrijpelijker te maken…

afstandberekening Google Maps pt. 1

Op 14-04-2011 aangemaakt door Cees Rijken in de rubriek(en) Geocoding

0

Afstandsberekening wordt van oudsher gedaan met een postcode tabel. Echter, de prijzen voor een postcode tabel beginnen vanaf zo’n € 600,=. Misschien niet zo interessant voor een hobby-matige website of een klein koeriersbedrijf.

Met Google Maps kun je ook leuke dingen doen, mits er een “wegennet” beschikbaar is voor jouw omgeving. In onderstaand voorbeeld is die omgeving Nederland en Google Maps is goed voorzien wat betreft Nederlandse geodata.

1. API sleutel

Allereerst moet je een API sleutel hebben voor jouw domein. Deze kun je hier aanvragen: http://code.google.com/apis/maps/signup.html.

Vervolgens roep je in <HEAD>-tag de volgende code aan:

<script src=”http://maps.google.nl/maps?file=api&v=2&key=JOUW EIGEN API SLEUTEL” type=”text/javascript”></script> om je browser te vertellen dat we met Google Maps gaan werken.

Open daarna een nieuwe <script type=”text/javascript”>-tag om de daadwerkelijke code te schrijven.

2. Javascript functies

In de nieuwe SCRIPT-tag gaan we het GDirections-object initialiseren:

function initialize()
{
if (GBrowserIsCompatible())
{
gdir = new GDirections();
GEvent.addListener(gdir,"load", set_distance);
}
}

Omdat we GEEN routebeschrijving willen en GEEN kaartje willen tonen, roepen we GDirections aan zonder de (twee) gebruikelijke parameters.

Vervolgens voegen we een addListener-functie toe. Deze functie roept de functie set_distance aan, die straks de daadwerkelijke afstand in een DIV gaat stoppen. Omdat GDirections asynchronous werkt, moeten we dat hier al doen. Diegenen die reeds met Ajax hebben gewerkt, weten wat asynchronous requests zijn, voor meer info: http://econym.org.uk/gmap/async.htm.

Vervolgens roepen we de load-method van het aangemaakt GDirections-object aan. Deze load-methode kan voorzien worden van diverse parameters, om o.a. aan te geven of de afstand berekend moet worden voor de auto of voor de wandelaar en of de snelwegen vermeden moeten worden. Deze parameters zijn de zgn. GDirectionsOptions.

De load-methode wordt aangeroepen in een functie setDirections, die als input 3 parameters vereist: het vertrekadres, het bestemmingsadres en de lokale settings. De lokale setting is in ons geval altijd “nl”, maar voor de volledigheid heb ik deze variabele erin gelaten.

function setDirections(fromAddress, toAddress, locale)
{
gdir.load("from: " + fromAddress + " to: " + toAddress, {locale: locale, travelMode:G_TRAVEL_MODE_DRIVING,avoidHighways: false} );
}

Als laatste functie maken we de set_distance-functie, die tijdens de initialisatie van het object via de addListener wordt aangeroepen:

function set_distance()
{
document.getElementById("afstand").innerHTML = gdir.getDistance().html;
}

Sluit vervolgens de SCRIPT-tag af (</script>), we zijn klaar met de Javascript. We gaan nu de FORM maken.

3. Formulier

Roep de GDirection initialize-functie aan in de <BODY>-tag:

<body onload="initialize()" onunload="GUnload()">

Voeg daarna het onderstaande formulier toe:

<form action="#" onsubmit="setDirections(this.from.value, this.to.value, 'nl'); return false">
<table border="0">
<tbody>
<tr>
<td>van: </td>
<td><input id="fromAddress" name="from" size="40" type="text" value="zuiddijk 415, zaandam" /></td>
<td>naar: </td>
<td><input id="toAddress" name="to" size="40" type="text" value="dam 1, amsterdam" /></td>
<td><input name="submit" type="submit" value="Bereken afstand!" tabindex="1" /></td>
</tr>
</tbody></table>
</form>

Ik heb in het voorbeeld standaard waardes ingevuld voor het vertrek- en het bestemmingsadres. Dat is natuurlijk niet verplicht.

Wel raad ik aan om via Javascript te controleren of de gebruiker echt iets (zinnigs!) invult in deze twee velden. De GDirections-functie van Google Maps accepteert strings, d.w.z. alleen de postcode invullen werkt, maar ook de combinatie adres, postcode, plaatsnaam.

Als de adres-velden zijn ingevuld, stuurt de submit-button deze twee waardes naar de setDirections-functie, die vervolgens een request naar de Google servers doet en output terugstuurt. Uit deze output, kun je via de getDistance-methode de daadwerkelijke afstand filteren.

Deze afstand wordt via de set_distance-functie onderaan het formulier geplaatst in de DIV met het id “afstand”.

Let op: de afstand die wordt teruggegeven is een string. Behalve het kilometer-aantal staat er ook een spatie en het woordje “km” in. Als je deze afstand wilt gebruiken om transportkosten te berekenen, kun je misschien beter gdir.getDistance().meters in plaats van gdir.getDistance().html gebruiken.

Google neemt geen verantwoordelijkheid voor de nauwkeurigheid van de route. Ik heb resultaten vergeleken met andere online routeplanners zoals b.v. routenet.nl.

Hieruit blijkt dat Google Maps standaard de SNELSTE route neemt, dus niet altijd de KORTSTE, met andere woorden: er wordt zo snel mogelijk een snelweg gezocht.

Je kunt goochelen met de avoidHighways-parameter, maar dat levert ook niet altijd de gewenste resultaten op…

4. Voorbeeld

van:
naar:

5. Download

Bovenstaande voorbeeld is heel basic. Je moet er zelf toevoegingen aan doen, om het passend te krijgen voor jouw kilometerstand-, vervoersbedrijf- of wandelroute-applicatie. Je kunt hier een HTML bestand downloaden, waarin het voorbeeld is toegepast.

afstandberekening Google Maps pt. 2

Op 13-04-2011 aangemaakt door Cees Rijken in de rubriek(en) Geocoding

0

Het makkelijkste is om naar http://afstand.connectcase.nl te gaan en de aanwijzingen te lezen eigenlijk….

Zit Yahoo Maps fout?

Op 13-04-2011 aangemaakt door Cees Rijken in de rubriek(en) Geocoding

0

Omdat Google Maps hier en daar nog weleens een time-out geeft (G_GEO_SERVER_ERROR), besloot ik een afstandsberekening via Yahoo Maps te proberen.

1. API sleutel

Allereerst een API sleutel aangevraagd via https://developer.yahoo.com/wsregapp/. Dit kan alleen als je al een Yahoo account hebt, dus die moet je eventueel OOK aanvragen.

YGeopoints

Yahoo biedt 2 API’s aan: een Ajax API en een Flash AS3 API. Zie http://developer.yahoo.com/maps/. Omdat ik geen kaartje wilde tonen en zo weinig mogelijk code wil gebruiken, heb ik gekozen voor de Ajax API.

Na lang speuren en doorlezen van de Reference Manual, kwam ik erachter dat ik 2 YGeoPoints met elkaar moest vergelijken. YGeoPoints worden gedefineerd door lengte- en breedtegraden. Helaas biedt Yahoo Maps geen mogelijkheid om tekstuele strings (b.v. “Zuiddijk 415, Zaandam”) om te zetten in graden. Ik heb derhalve de juiste graden via http://developer.yahoo.com/maps/rest/V1/geocode.html

(Aangezien je met deze GeoCoding API XML terugkrijgt, is het vrij eenvoudig om via b.v. PHP en Ajax de juiste graden te achterhalen, maar dat terzijde….)

Javascript functies

Vervolgens roep je de juiste Javascript functies aan:

in de <HEAD>:

<script type=”text/javascript” src=”http://api.maps.yahoo.com/ajaxymap?v=3.8&appid=JOUW EIGEN API SLEUTEL”></script> in de <HEAD>-tag

in de <BODY>:

<script type=”text/javascript”>

// eerste adres = Zuiddijk 415, Zaandam
// tweede adres = Dam 1, Amsterdam
// lengte- en breedtegraden opgehaald via http://developer.yahoo.com/maps/rest/V1/geocode.html
var g1 = new YGeoPoint(52.426520,4.839082);
var g2 = new YGeoPoint(52.373277,4.893598);
var d = g1.distance(g2);
alert(d.kilometers);

</script>

Resultaat

Bovenstaande berekening geeft 6,98 kilometer terug, terwijl de werkelijke afstand ongeveer 15,5 kilometer is. Gebruikt Yahoo Maps de Haversine formula, die eigenlijk niet zo geschikt is voor “echte, over-de-weg kilometerberekening” of doe ik gewoon iets fout? Opmerkingen zijn welkom, ik heb de vraag al in het Ajax API forum geplaatst, maar dat forum is helaas niet zo levendig als het lijkt….

Yahoo weerkaartjes

Op 13-04-2011 aangemaakt door Cees Rijken in de rubriek(en) Geocoding

0

Om een weerkaartje te tonen op een website, zijn er diverse scripts op het Internet beschikbaar, al dan niet tegen betaling.

Yahoo Weather maakt gebruik van de data van Weather.COM en bouwt op basis daarvan RSS feeds voor verschillende steden ter wereld. Deze RSS feeds worden gratis ter beschikking gesteld.

Op deze manier kunt u voor 1, maar ook voor meerdere steden ter wereld (b.v. voor een website over vakantiehuizen) het weer tonen. Vereiste is wel dat uw webserver PHP5 en SimpleXML ondersteunt. Let wel op dat Yahoo Weather Engelstalig is!

Yahoo Weather werkt met locatiecodes. Ga naar http://weather.yahoo.com/. Kies een werelddeel, vervolgens een land en vervolgens een stad, b.v. Amsterdam. Dit leidt tot de volgende URL:

http://weather.yahoo.com/netherlands/north-holland/amsterdam-727232/

Op de pagina van deze URL zit u rechts bovenaan het RSS logootje staan. . Klik hierop en een RSS feed in de vorm van

http://weather.yahooapis.com/forecastrss?p=NLXX0002&u=f

opent zich. NLXX0002 is als het ware de RSS code voor Amsterdam. Deze feed kunt u met (bijvoorbeeld) PHP uitlezen via het simplexml_load_file-commando.

Google Maps plugin for TinyMce

Op 13-04-2011 aangemaakt door Cees Rijken in de rubriek(en) Geocoding

0

A customer of mine requested a custom Google Maps plugin for his richtext editor. Since I could not find one for the TinyMce editor he was using, I decided to create my own. To get this plugin working, you need the three things:

1. API key

To get Google Maps appearing on your webpage, you need your very own API key from Google. You can obtain one here: http://code.google.com/apis/maps/signup.html

2. Coordinates

You can query the coordinates of the place you want to show by using the form below. Just enter your location as a comma or space seperated string and press “Go!”.

You will find your coordinates between parentheses just above the form.

 

Why not use the locationstring as a variable in a TinyMce dialog box, you say? The main reason is that once you have inserted the Google Map into your TinyMce textarea, it does not appear when in wysisyg-mode. You first need to save (or publish) the page in order for the map to appear.

The form above saves you the time of republishing over and over again, just to get your location right.

3. Download

You can download the plugin here.

Remember: it’s a very crude first version with much room for improvement. It comes with a readme.txt, in which I have tried to explain the steps I have taken.

Originally a Google Map needs a “onLoad” function in your body-tag. Since TinyMce is mainly used in content management systems, a user cannot access the body-tag. I added some extra Javascript that avoids the body-tag from being used (not my own, I found the code somewhere on the Internet).

SourceForge

Jeroen van der Stijl has picked up this project and created a SourceForge depository. Since my code was very crude, any improvements are more than welcome. Check out https://sourceforge.net/projects/mcegooglemap/