<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>lo-ga-rie &#187; werk</title>
	<atom:link href="http://www.logarie.nl/blog/category/werk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.logarie.nl/blog</link>
	<description>words, lines .. life</description>
	<lastBuildDate>Mon, 23 May 2011 20:36:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>pure CSS semi transparent backgrounds</title>
		<link>http://www.logarie.nl/blog/2011/05/23/pure-css-semi-transparent-backgrounds/</link>
		<comments>http://www.logarie.nl/blog/2011/05/23/pure-css-semi-transparent-backgrounds/#comments</comments>
		<pubDate>Mon, 23 May 2011 20:35:49 +0000</pubDate>
		<dc:creator>lucien immink</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[werk]]></category>

		<guid isPermaLink="false">http://www.logarie.nl/blog/?p=534</guid>
		<description><![CDATA[A sweet tip I got from one of my collegues: Creating semi transparent backgrounds without using extra HTML: If you add an alpha channel to an element all child elements inherit the alpha channel so black texts won't be black after applying the style. We can fix this by adding a an extra element to [...]]]></description>
			<content:encoded><![CDATA[<p>A sweet tip I got from one of my collegues: Creating semi transparent backgrounds without using extra HTML:<br />
If you add an alpha channel to an element all child elements inherit the alpha channel so black texts won't be black after applying the style. We can fix this by adding a an extra element to the dom and position it behind the element we want to style and give that an alpha channel but ... we can make this work without any extra elements as well and here's how!</p>
<p>html:</p>
<pre class="brush:xml">&lt;div class='semi'&gt;&lt;p&gt;This site is awesome!&lt;/p&gt;&lt;/div&gt;</pre>
<p>css:</p>
<pre class="brush:css">.semi {
  background-color: rgba(0,0,255,0.5);
}</pre>
<p>This works great except for our beloved Internet Explorers below version 9 so let's add the magic:</p>
<p>ie8 and below css:</p>
<pre class="brush:css">.semi {
  background: transparent;
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#0000ff50,endColorstr=#0000ff50);
}</pre>
<p>Yes you add it as a gradient filter! from starting color #0000ff at 0.5 opacity to #0000ff at 0.5 opacity</p>
]]></content:encoded>
			<wfw:commentRss>http://www.logarie.nl/blog/2011/05/23/pure-css-semi-transparent-backgrounds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pure CSS buttons</title>
		<link>http://www.logarie.nl/blog/2011/05/18/pure-css-buttons/</link>
		<comments>http://www.logarie.nl/blog/2011/05/18/pure-css-buttons/#comments</comments>
		<pubDate>Wed, 18 May 2011 22:27:44 +0000</pubDate>
		<dc:creator>lucien immink</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[werk]]></category>

		<guid isPermaLink="false">http://www.logarie.nl/blog/?p=529</guid>
		<description><![CDATA[A small entry just because this little script is so pro it will blow your mind! Remember the days where you needed to use a sliding door principle or a piece of javascript to make buttons with rounded corners, dropshadows and gradients? Those days are still here but wait! There is a solution! let's take [...]]]></description>
			<content:encoded><![CDATA[<p>A small entry just because this little script is so pro it will blow your mind!<br />
Remember the days where you needed to use a sliding door principle or a piece of javascript to make buttons with rounded corners, dropshadows and gradients? Those days are still here but wait! There is a solution! let's take a look at it:</p>
<ul>
<li>Rounded corners?  Most browsers* support CSS3 border-radius!</li>
<li>Dropshadows? Most browsers* support CSS3 box-shadow (even with alpha channel!)</li>
<li>Gradients? Most browsers** support CSS3 gradients!</li>
</ul>
<p>* All modern browsers except IE8<br />
** All modern browsers except IE9 and IE8</p>
<p>So ok, without looking at IE we can turn a simple anchor tag into a nice looking button by just using CSS; for IE we need some magic; this is where your trusty other front-end developers come in and Jason Johnston developed <a href="http://css3pie.com/">CSS3PIE </a>just for this; take a look at the site by clicking the name or by following <a href="http://css3pie.com/">this link to CSS3PIE</a>.</p>
<p>Take these small snippets to get things started:</p>
<p>html:</p>
<pre class="brush:xml">&lt;a href="http://www.logarie.nl/blog/" class="button"&gt;This is a link to lo-ga-rie&lt;/a&gt;</pre>
<p>css:</p>
<pre class="brush:css">.button {
display: inline-block;
position: relative;
border: 1px solid #666;
padding: 5px 10px;
text-align: center;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
-webkit-box-shadow: #aaa 0px 2px 3px;
-moz-box-shadow: #aaa 0px 2px 3px;
box-shadow: #aaa 0px 2px 3px;
background: #f00;
background: -webkit-gradient(linear, 0 0, 0 bottom, from(#ff0000), to(#00ff00));
background: -moz-linear-gradient(#ff0000, #00ff00);
background: linear-gradient(#ff0000, #00ff00);
-pie-background: linear-gradient(#ff0000, #00ff00);
behavior: url(/PIE.htc);
}</pre>
<p>Make sure the path to PIE is working and there you go, a nice looking button while only using html and css! Why should we care about this?<br />
Older techniques like the sliding door are adding unused DOM elements to the html; which slows down page rendering, isn't the best for SEO and could be breaking the accesibility of your site. Techniques like I explained with fancybutton is only working with javascript enabled browsers and thus not fully complient with the accesibility standards. This technique is just using that what is provided by the browser; with a gracefull fallback (background: #f00;) in case nothing else works. Creating hover and visited states of this button is as easy and you think; just a few extra lines of CSS; don't forget to include PIE in those rules!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.logarie.nl/blog/2011/05/18/pure-css-buttons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buzzword bingo</title>
		<link>http://www.logarie.nl/blog/2010/04/26/buzzword-bingo/</link>
		<comments>http://www.logarie.nl/blog/2010/04/26/buzzword-bingo/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 21:25:58 +0000</pubDate>
		<dc:creator>lucien immink</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bericht]]></category>
		<category><![CDATA[werk]]></category>

		<guid isPermaLink="false">http://www.logarie.nl/blog/?p=498</guid>
		<description><![CDATA[I've been experimenting with mobile apps the last few days. Though the programming part is coming slow my marketing is running like crazy! The app i came up with is totally useless but it combines some of the things we tend to use and like every day on our mobile devices Updates (twitter) Location based [...]]]></description>
			<content:encoded><![CDATA[<p>I've been experimenting with mobile apps the last few days. Though the programming part is coming slow my marketing is running like crazy!</p>
<p>The app i came up with is totally useless but it combines some of the things we tend to use and like every day on our mobile devices</p>
<ul>
<li>Updates (twitter)</li>
<li>Location based (google maps / foursquare)</li>
<li>Photo's (flickr / panoramia)</li>
</ul>
<p>So i combined them to make "Projected Reality" cause you are so busy on your phone all day you forget the reality around you, my app brings reality back on your phone! So here comes the marketing buzzword bingo</p>
<ul>
<li>"If you can tag it, we can project it" - the slogun</li>
<li>Updating your status is placing a purr</li>
<li>cats purr so the logo is a big cat on a house</li>
<li>a house since it's all local stuff you can read about</li>
<li>the hashtag is #pr; do i need to say more ;)</li>
</ul>
<p>Atm i have a <a href="/android/">semi working android app</a>; but the tools i use make it that the same code should work on an iphone.<br />
the app also "<a href="/android/test/assets/www/">sort of</a>" works in some browers (firefox is known to sometimes work) from time to time</p>
<p>Anyhow: I am not dead, just busy</p>
]]></content:encoded>
			<wfw:commentRss>http://www.logarie.nl/blog/2010/04/26/buzzword-bingo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight wmv playback without using http</title>
		<link>http://www.logarie.nl/blog/2010/01/28/silverlight-wmv-playback-without-using-http/</link>
		<comments>http://www.logarie.nl/blog/2010/01/28/silverlight-wmv-playback-without-using-http/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 11:31:20 +0000</pubDate>
		<dc:creator>lucien immink</dc:creator>
				<category><![CDATA[bericht]]></category>
		<category><![CDATA[werk]]></category>

		<guid isPermaLink="false">http://arielext.selfip.org/blog/?p=456</guid>
		<description><![CDATA[Sounds funny but is it even possible? Our windows media server doesn't have an open http port only rtsp and mms but everything i send to it with a silverlight control is over http. Edit: Seems like silverlight doesn't use rtsp and mms (as moniker, not the protocol) is depricated so the answer is: NO; [...]]]></description>
			<content:encoded><![CDATA[<p>Sounds funny but is it even possible?<br />
Our windows media server doesn't have an open http port only rtsp and mms but everything i send to it with a silverlight control is over http.</p>
<p>Edit: Seems like silverlight doesn't use rtsp and mms (as moniker, not the protocol) is depricated so the answer is: NO; you need http in order for silverlight to stream from a windows media server.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.logarie.nl/blog/2010/01/28/silverlight-wmv-playback-without-using-http/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google maps v3</title>
		<link>http://www.logarie.nl/blog/2009/12/08/google-maps-v3/</link>
		<comments>http://www.logarie.nl/blog/2009/12/08/google-maps-v3/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 19:48:12 +0000</pubDate>
		<dc:creator>lucien immink</dc:creator>
				<category><![CDATA[jquery]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[werk]]></category>

		<guid isPermaLink="false">http://arielext.selfip.org/blog/?p=423</guid>
		<description><![CDATA[Vandaag een technisch verhaal aan de hand van de website onlinereisbeurs.nl gefocused op de scripting die nodig was voor de kaart (google maps) in combinatie met panoramio voor de foto's van de gekozen locatie. Laten we beginnen met het makkelijkste: de HTML Win uw droomreis t.w.v. €10.000,- Stap 1/2: Sleep de koffer naar uw droombestemming [...]]]></description>
			<content:encoded><![CDATA[<p>Vandaag een technisch verhaal aan de hand van de website <a href="http://onlinereisbeurs.nl/" target="_blank">onlinereisbeurs.nl</a> gefocused op de scripting die nodig was voor de kaart (google maps) in combinatie met <a href="http://www.panoramio.com" target="_blank">panoramio</a> voor de foto's van de gekozen locatie.</p>
<p>Laten we beginnen met het makkelijkste: de HTML</p>
<pre class="brush:xml">
<div id="popup">
  <_h2>Win uw droomreis t.w.v. €10.000,-</_h2>
  <span id="arrow">
    <span class="blue">Stap 1/2:</span> Sleep de koffer naar uw droombestemming<span id="arrowImg" class="ie6crop"></span>
  </span>
</div>
</pre>
<p>* <_h2> uiteraard zonder de _ maar anders komt cuffon er weer overheen :p<br />
Eigenlijk maken we hier alleen een div aan voor de map met een blok er overheen voor de info en een apart spannetje voor de pijl die beweegd; met "optimalisatie" voor IE6 omdat die browser zo goed omgaat met png's ...<br />
Met de CSS er bij krijgen een we een set elementen die over elkaar heen vallen en een vlak voor Google maps:</p>
<pre class="brush:css">#googleMap {
height:400px;
margin:0 6px 20px 20px;
}
#popup {
background:transparent url(../images/uitleg_bg.png) no-repeat scroll 0 0;
height:100px;
left:350px;
padding:20px 20px 0;
position:absolute;
top:281px;
width:380px;
z-index:100;
}
#popup h2 {
color:#00468E;
font-size:18px;
font-weight:bold;
}
#arrow {
color:#584436;
display:block;
font-size:12px;
font-weight:bold;
height:35px;
padding:10px 10px 0 0;
}
#arrow .blue {
color:#00468E;
}
#arrowImg {
background:transparent url(../images/pijl_icon.png) no-repeat scroll right top;
height:36px;
position:absolute;
right:13px;
top:38px;
width:32px;
}</pre>
<p>Door goed gebruikte ID's te gebruiken zijn bijna alle elementen direct te benaderen wat een positieve invloed heeft op het laden van de pagina. In eerste instantie had ik de pijl als achtergrond van de ID arrow meegegeven met een background positie op rechts maar daar kan IE6 niets mee. Aangezien de achtergrond semi transparant is moet dit pijltje wel een png zijn; anders hebben we lelijke randen en leg dat je designer maar weer uit ;) Door het pijltje in een aparte span op te nemen verhelpen we dat probleem; een bijkomend voordeel is dat het weer iets makkelijker is om dit pijltje te animeren; al kan dat voor moderne browsers net zogoed via de de background-position properties.</p>
<p>Nu hebben we een opgemaakt vlak met een 2e vlak met textuele uitleg er over heen, laten we google maps er maar eens bijpakken.</p>
<pre class="brush:js">var latLng = new google.maps.LatLng(-10, 150); // we zetten een bepaalde marker neer; hier later meer over
	map = new google.maps.Map(document.getElementById('googleMap'), {
		zoom: 1, // we kunnen zoomen van lvl 0 (alles tot 21; straatniveau)
		center: new google.maps.LatLng(0, 0), // wat is het centrum van de kaart?
		mapTypeId: google.maps.MapTypeId.TERRAIN, // welk type map willen we gebruiken
		mapTypeControl: false // willen we de gebruiker de controle geven over welk type map ze kunnen kiezen? Nu niet iig
	});
	var markerImg = "/include/images/koffer.png"; // plaatje gebruikt voor de marker
	marker = new google.maps.Marker({
		position: latLng, // welke positie heeft de marker
		title: 'Sleep de koffer naar uw droombestemming', // wat is de titel van de marker als je er met je muis overheen gaat?
		map: map, // welke map gebruikt deze marker; ja we kunnen meerdere maps op 1 pagina zetten
		draggable: true, // kan je deze marker slepen?
		icon: markerImg // verrek ons eerder gedefinieerde plaatje voor de marker
	});

	// Update current position info.
	geocodePosition(latLng, false); // tja leuk die lat.lon. getallen maar waar zijn we dan?

	google.maps.event.addListener(marker, 'dragend', function() {
		geocodePosition(marker.get_position(), true); // we hebben de marker versleept, update de positie
	});
function geocodePosition(pos, remove) {
	if (remove) $("#popup").hide(); // moeten we onze div met begin informatie verwijderen?
	if (remove) $.scrollTo("#googleMap", 1000); // om de focus echt op de map te leggen scrollen we daar heen zodat de map goed in beeld is
	geocoder.geocode({
		latLng: pos
	}, function(responses) {
	if (responses &amp;&amp; responses.length &gt; 0) {
/*
 de geocoder zal een set van resultaten terug geven, van zo precies mogelijk tot aan eigenlijk "ja je zit nog op de aarde"
Zodra we dus een set resultaten hebben gaan we bekijken welke we nu exact willen gebruiken
*/
			var lat = responses[0].geometry.location.lat(); // we nemen de meest nauwkeurige; de gegevens die wij nodig hebben zitten ook opgeslagen in dit object
			var lng = responses[0].geometry.location.lng();
/*
  Door het zoekgebied te vergroten krijg je niet alleen resultaten van de straat terug maar van de stad; onderstaande berekening is nogal grof maar werkt behoorlijk goed
*/
			var minLng = Math.floor((lat) * 100) / 100;
			var maxLng = Math.ceil((lat) * 100) / 100;

			var minLat = Math.floor((lng) * 100) / 100;
			var maxLat = Math.ceil((lng) * 100) / 100;

			// console.log("getting photo's for LAT: " + lat + ", LON: " + lng);
			// panoramio
/*
Op panoramio staan mooie foto's; meer op de omgeving dan op mensen gefocussed in tegenstelling tot flickr. Panoramio heeft ook een API om via JSON mooi een set resultaten terug te krijgen; ons zoekgebied is waar de marker gesleept is + de omgeving
*/
			$.getJSON("http://www.panoramio.com/map/get_panoramas.php?order=popularity&amp;set=full&amp;" +
					"from=0&amp;to=10&amp;minx=" + minLat + "&amp;miny=" + minLng + "&amp;maxx=" + maxLat + "&amp;maxy=" + maxLng + "&amp;size=small&amp;callback=?",
					{},
					function(data) {
						$("#photos").html(""); // reset de div waar de foto's staan/stonden
						$(data).each(function(i, item) {
							for (var j = 0; j &lt; item.count; j++) {
								try {
									var img = new Image();
									img.src = item.photos[j].photo_file_url; // maak een image object aan voor elke foto die we terugkrijgen, via het javascript image object zorgen we er direct voor dat deze preloaded worden
									var currentHTML = $("#photos").html();
									$("#photos").html(currentHTML + "<img class="geoPhoto" src="&quot; + img.src + &quot;" alt="" height="110" />"); // voeg de nieuwe foto toe aan de HTML
								} catch (e) { }
							} if (item.count == 0) {
								$("#photos").html("");
								// Tja geen foto's zouden we nu ons zoekscherm moeten uitbreiden misschien? versie 2.0 ;)
							}
						});
					}
				);
			if (remove) updateMarkerAddress(formatAddress(responses[0]), true); // nieuw adres = laat dit nieuwe adres ook zien
		} else {
			updateMarkerAddress('Geen locatie gevonden', false); // aah geen adres gevonden; komt eigenlijk alleen maar voor als je in de zee een straat probeert te vinden ;)
		}
	});
}
function formatAddress(address) {
	var wantedTypes = ["locality", "country"]; // welke types van het adres willen we zien? Je kan postcodes terug krijgen, huisadressen, landmarks e.d. maar wij willen nu alleen de locality (stad) en country (land)
	var formattedAddress = [];
	for (var i = 0; i &lt; address.address_components.length; i++) { 		var component = address.address_components[i]; // een google address bestaat uit verschillende componenten, daar gaan we es doorheen 		var type = component.types[0]; 		if ($.inArray(type, wantedTypes) &gt; -1) {
			formattedAddress.push(component.long_name); // ja dir compontent willen we!
		}
	}
	if (formattedAddress.length &gt; 1) { // kunnen we een adres opbouwen dat uit meerdere compontenten bestaat?
		return formattedAddress[0] + " - " + formattedAddress[1]; // zo ja dan graag stad - land (volgorde bepaal je in de array
	} else {
		return formattedAddress[0]; // zo niet dan laten we maar zien wat we hebben (alleen land)
	}
}
function updateMarkerAddress(str, isAbleToGo) {
	$("#results .text").html(str); // laat maar zien
	var fontSize = 17;
	if (str.length &gt; 13) fontSize = 15;
	if (str.length &gt; 23) fontSize = 13;
	if (str.length &gt; 28) fontSize = 11;
/*
 we passen de fontsize aan aan de hoeveelheid karakters
*/
	$("#results .text").css("fontSize", fontSize);
	$("#results a").attr("href", "step2.html?loc=" + escape(str)); // we sturen het adres escapped en al door naar de volgende pagina; mits je klikt natuurlijk
	(isAbleToGo) ? $("#results a").show() : $("#results a").hide(); // de knop laten we alleen zien als je er ook daadwerkelijk heen kan, helaas geen droomreis mogelijk naar de bodem van de oceaan
	$("#results").show(); // laat de div met resultaten zien.
}</pre>
<p>Zo een lap code is het wel, maar het resultaat is er ook naar, een volledig interactieve map met een versleepbare marker die zodra je die ergens neerzet foto's uit de buurt ophaalt, het adres ophaalt, het adres formatteerd naar een gewenst formaat en vervolgens deze gegevens keurig toont.</p>
<p><div class="wp-caption alignnone" style="width: 310px"><img title="google maps" src="/maps.JPG" alt="Google maps in onlinereisbeurs.nl" width="300" /><p class="wp-caption-text">Google maps in onlinereisbeurs.nl</p></div></_h2></p>
]]></content:encoded>
			<wfw:commentRss>http://www.logarie.nl/blog/2009/12/08/google-maps-v3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is het al vandaag?</title>
		<link>http://www.logarie.nl/blog/2009/11/28/is-het-al-vandaag/</link>
		<comments>http://www.logarie.nl/blog/2009/11/28/is-het-al-vandaag/#comments</comments>
		<pubDate>Sat, 28 Nov 2009 14:52:20 +0000</pubDate>
		<dc:creator>lucien immink</dc:creator>
				<category><![CDATA[bericht]]></category>
		<category><![CDATA[werk]]></category>

		<guid isPermaLink="false">http://arielext.selfip.org/blog/?p=418</guid>
		<description><![CDATA[Als ik nou eens alles een kwart slag draai; dan heb ik optisch meer ruimte in de woonkamer; maar dat klinkt al als veel moeite te moeten doen en daar heb ik geen zin op de vrije dag :P Vandaag geen nieuwe Stargate Universe; begint die serie eindelijk eens interessant te worden zenden ze geen [...]]]></description>
			<content:encoded><![CDATA[<p>Als ik nou eens alles een kwart slag draai; dan heb ik optisch meer ruimte in de woonkamer; maar dat klinkt al als veel moeite te moeten doen en daar heb ik geen zin op de vrije dag :P Vandaag geen nieuwe Stargate Universe; begint die serie eindelijk eens interessant te worden zenden ze geen nieuwe aflevering uit! Hoe dan?!</p>
<p>Qua werk was afgelopen week niet de beste ooit; maar mede door mij kan je nu wel kans maken op een <a title="onlinereisbeurs" href="http://onlinereisbeurs.nl/" target="_blank">droomreis</a>! Verder veel moeten stoeien met R3 nieuwsbrieven en dat gaat een stuk trager dan ik wil; documentatie heb ik er nog niet echt over gevonden, hebben die gasten niet ergens een "dit kan je allemaal wel en niet gebruiken" website? Tegen de tijd dat iemand me daar antwoord op kan geven is het toch al te laat want a.s. maandag moet de template waar ik nu op vastloop af zijn.</p>
<p>Het was deze week ook weer tijd voor de Company Meeting waar ik net iets te lang ben blijven hangen met Marijke en Vinnie en in alle hectiek zijn we vergeten het alarm aan te zetten toen we weg gingen, bam 20 euro down the drain :( Als nou volgende keer 10 mensen vergeten af te sluiten is het maar 6 euro per persoon ;) Als je dan buiten staat in de koude november avond; geen zin hebt om al naar huis te gaan en de avond kan doorzetten dan ga je daar op in, toch? Nou ik wel in ieder geval en uiteindelijk een zeer vermakelijke avond met en bij Marijke gehad maar kolere wat had ik een koppijn vrijdag! Begin ik echt een ouwe lul te worden? Vrijdag was de productiviteit bijna 0, en veul geslapen. T wordt maar eens tijd om boodschappen te gaan doen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.logarie.nl/blog/2009/11/28/is-het-al-vandaag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bezig</title>
		<link>http://www.logarie.nl/blog/2009/11/18/bezig/</link>
		<comments>http://www.logarie.nl/blog/2009/11/18/bezig/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 22:41:43 +0000</pubDate>
		<dc:creator>lucien immink</dc:creator>
				<category><![CDATA[jquery]]></category>
		<category><![CDATA[werk]]></category>

		<guid isPermaLink="false">http://arielext.selfip.org/blog/?p=414</guid>
		<description><![CDATA[Op het moment ben ik bezig met een google maps project waarbij ik verschillende onderdelen van de nieuwe google maps v3 api gebruik om een interactieve "sleur en pleur" ervaring te bewerkstelligen met een onderwerp waar veel mensen wel iets mee hebben: Vakantie! Binnenkort online en vlak erna de uitleg, wees gerust ;) Een kleine [...]]]></description>
			<content:encoded><![CDATA[<p>Op het moment ben ik bezig met een google maps project waarbij ik verschillende onderdelen van de nieuwe google maps v3 api gebruik om een interactieve "sleur en pleur" ervaring te bewerkstelligen met een onderwerp waar veel mensen wel iets mee hebben: Vakantie!</p>
<p>Binnenkort online en vlak erna de uitleg, wees gerust ;)<br />
Een kleine verdieping op het gebied van google maps, geocoding, utf8, "using the cloud" en meer. Voor nu hou ik het even op een mooie functie in javascript die soms erg makkelijk kan zijn: (un)escape</p>
<h2>Situatie</h2>
<p>We hebben een input van een gebruiker die via de url doorgestuurd moet worden naar een andere pagina (GET, iframe)</p>
<pre class="brush:xml">
<form action="/" method="post">
<input id="toSend" name="send" type="text" value="Hello world" />
</form>
</pre>
<p>Als je dit post zal je browser dit automagisch escapen naar</p>
<pre>/?send=hello%20world</pre>
<p>En als je vervolgens dit in een veld wilt tonen, bv met ID <em>jwz</em> dan zal de %20 meegenomen worden als je het volgende gebruikt:</p>
<pre class="brush:js">document.getElementById("jwz").innerHTML = document.location.search.substr(document.location.search.indexOf("=") + 1);</pre>
<p>Om hier van af te komen gebruik je de unescape functie van javascript</p>
<pre class="brush:js">document.getElementById("jwz").innerHTML = unescape(document.location.search.substr(document.location.search.indexOf("=") + 1));</pre>
<p>Maar stel je wilt dit formulier via AJAX posten (ik gebruik nu even jQuery omdat ik dat het meest gebruik, maar (un)escaping is standaard javascript)</p>
<pre class="brush:js">$("form").submit(function () {
 var escaped = escape($("toSend").val());
  // do stuff with the escaped string
});</pre>
<p>Nu is de var <em>escaped</em> ook via de URL door te sturen zonder dat je rekening hoeft te houden met of er niet correcte karakters worden gebruikt.<br />
Soms is het handig om te hebben en nu weet je het ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.logarie.nl/blog/2009/11/18/bezig/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eerste stapjes in de wondere wereld van mobiele websites</title>
		<link>http://www.logarie.nl/blog/2009/10/26/eerste-stapjes-in-de-wondere-wereld-van-mobiele-websites/</link>
		<comments>http://www.logarie.nl/blog/2009/10/26/eerste-stapjes-in-de-wondere-wereld-van-mobiele-websites/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 21:55:32 +0000</pubDate>
		<dc:creator>lucien immink</dc:creator>
				<category><![CDATA[Mobiel]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[werk]]></category>

		<guid isPermaLink="false">http://arielext.selfip.org/blog/?p=398</guid>
		<description><![CDATA[Toen ik werd getracteerd op een url met een website die gewoon heel netjes rendere op het schermpje van mn Hero dacht ik: daar wil ik meer van weten! Een eerste stap was natuurlijk de wordpress addon die er zorgt dat deze website het zelfde doet; maar zelf uitzoeken je weet zelf :) Ok wat [...]]]></description>
			<content:encoded><![CDATA[<p>Toen ik werd getracteerd op een url met een website die gewoon heel netjes rendere op het schermpje van mn Hero dacht ik: daar wil ik meer van weten!<br />
Een eerste stap was natuurlijk de wordpress addon die er zorgt dat deze website het zelfde doet; maar zelf uitzoeken je weet zelf :)</p>
<p>Ok wat verwacht ik op het moment van een mobiele browser wil ik me er druk om gaan maken:</p>
<ul>
<li>Enige vorm van HTML4 / xHTML ondersteuning</li>
<li>Enige vorm van CSS; minimaal 1.0</li>
<li>Javascript?</li>
</ul>
<p>WAP browsers vallen wat mij betreft af nu aangezien ik me nu vooral focus op wat er anders is qua html opmaak en CSS gebruik, WAP sites zijn gewoon een eigen niche (die uitsterft).<br />
Eigenlijk hou ik het nu dus op "smartphones" en dus op:</p>
<ul>
<li>Windows Mobile 6.1+ (brakke ie6 achtige render engine)</li>
<li>(Symbian) -- kan ik nu niet zelf testen</li>
<li>Android (Webkit)</li>
<li>iPhone (Webkit)</li>
</ul>
<p>De 3 doelgroepen die ik kan testen bieden tegenwoordig allemaal browsers aan die zelf kunnen switchen tussen de normale en de mobiele website. Sommige mensen zullen het fijner vinden om je echte website te zien en zelf te pannen en zoomen, anderen weer niet; dus die keuze laten we aan de gebruiker zelf; maar bieden in eerste instantie wel een eigen website aan. Hoe gaan we dat doen?</p>
<h2>Webserver:</h2>
<p>Je kan 2 paden bewandelen: Alles client-side of Server-client. Ik vind hier persoonlijk Server-client mooier werken; de HTML die we uiteindelijk aan de browser geven is helemaal geoptimaliseerd en zo minimaal mogelijk en dus minder bytes om te downloaden terwijl je trein een tunnel inrijdt en 3G wegvalt.<br />
Uit het request object wat je binnenkrijgt op de server kan je destileren welke user-agent gebruikt wordt om de pagina te bekijken, aan de hand daarvan kan je redirecten, een andere masterpage aanbieden, een response variablele aanpassen; wat jij wilt ;)<br />
Voor de bovenstaande browsers moet 1 van de volgende strings in je user-agent staan:</p>
<ul>
<li>"iphone",                   // Apple iPhone</li>
<li>"ipod",                      // Apple iPod touch</li>
<li>"aspen",                  // iPhone simulator</li>
<li>"dream",                  // Pre 1.5 Android</li>
<li>"android",              // 1.5+ Android</li>
<li>"cupcake",              // 1.5+ Android</li>
<li>"Windows CE"    //windows mobile</li>
</ul>
<h2>Client-side:</h2>
<p>Om voor alle platformen het zelfde aan te bieden maken we gebruik van een 1 kolom structuur; een content item is altijd 100% breed</p>
<pre class="brush:xml">&lt; !DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd"&gt;
&lt;_html_&gt;
  &lt;_head_&gt;
    &lt;_title_&gt;Mobiele test site<!--_title_-->
  <!--_head_-->
  &lt;_body_&gt;
    &lt;_h1_&gt;Welkom op de mobiele test site<!--_h1_-->
<div class="post">
      &lt;_h2_&gt;Content item titel<!--_h2_-->
      &lt;_p_&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus semper laoreet pharetra. Donec malesuada nulla at est dictum viverra. Proin scelerisque orci ut massa dapibus viverra. Praesent adipiscing aliquam dapibus. Pellentesque at nibh sem, et dictum diam. Vivamus vel ante vitae ligula tempor auctor at vel ante. In lacinia quam vel odio placerat tristique. Vestibulum eu diam velit, vitae eleifend neque. Aenean nunc velit, tristique egestas tempus a, dapibus id mauris. Aenean pulvinar imperdiet sem sed vestibulum. Curabitur consectetur consectetur mi id luctus. <!--_p_--></div>
<div class="post">
      &lt;_h2_&gt;Content item titel<!--_h2_-->
      &lt;_p_&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus semper laoreet pharetra. Donec malesuada nulla at est dictum viverra. Proin scelerisque orci ut massa dapibus viverra. Praesent adipiscing aliquam dapibus. Pellentesque at nibh sem, et dictum diam. Vivamus vel ante vitae ligula tempor auctor at vel ante. In lacinia quam vel odio placerat tristique. Vestibulum eu diam velit, vitae eleifend neque. Aenean nunc velit, tristique egestas tempus a, dapibus id mauris. Aenean pulvinar imperdiet sem sed vestibulum. Curabitur consectetur consectetur mi id luctus. <!--_p_--></div>

<!--_body_-->
<!--_html_--></pre>
<p>* Sorry voor de incorrecte HTML maar anders krijg ik niet alle tags zichtbaar ...</p>
<pre class="brush:css">.post {
	-webkit-border-radius: 8px; /* rounded corners in webkit */
        -moz-border-radius: 8px; /* rounded corners in firefox */
	background-color: #fff;
	padding: 10px;
	margin-bottom: 12px;
	position: relative;
	margin-right: 10px;
	margin-left: 10px;
	border: 1px solid #b1b1b1;
	overflow: hidden;
}</pre>
<p>Maar hoe breedt is dat dan? iPhone is makkelijk dat is minimaal 320px (portrait mode); Android was makkelijk maar met de komst van Android 1.6 ondersteund Android ook meerdere resoluties zoals WindowsMobile dat al doet. Met onderstaande 2 meta tags geven we aan de browser aan wat er verwacht mag worden:</p>
<pre class="brush:xml">&lt;_meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0"&gt;  <!-- iPhone, Android en Windows Mobile 6.5 -->
&lt;_meta name="MobileOptimized" content="240" /&gt; <!-- Windows Mobile 6.1 en lager; Microsoft adviseerd zelf hier van 240px uit te gaan -->
<!--_meta--></pre>
<p>* Sorry voor de incorrecte HTML maar anders krijg ik niet alle tags zichtbaar ...<br />
Zo, nu hebben we een 1 kolom template die altijd 100% breed is op wat voor resolutie we ook kijken, op wat voor OS.</p>
<p>Uiteindelijk krijg je dan dit te zien:</p>
<div class="wp-caption alignnone" style="width: 387px"><img title="Mobiele versie" src="/mobile.png" alt="Lo-Ga-Rie Mobile" width="377" height="491" /><p class="wp-caption-text">Lo-Ga-Rie Mobile</p></div>
<p>Windows Mobile heeft standaard een zeer brakke browser die iets weg heeft van IE6 maar dan nog erger. Het is wel erg handig om je site eerst te bekijken in IE6 voor je de emulator of je telefoon aanslingert, Veel voorkomende problemen die je hebt in IE6 heb je namelijk ook in Windows Mobile IE. Gebruik ook vooral geen png files, die doen het leuk op je iPhone, Android en Windows Mobile 6.5 maar Windows Mobile 6.1 heeft een png fix nodig. Of het überhaubt werkt weet ik niet eens maar het includen en uitvoeren van een pngfix neemt zo veel tijd in beslag dat het echt niet slim is om dit te proberen. In dit geval kan je, als je dan toch echt png's wilt gebruiken voor IE een andere CSS aan te spreken. Een goed idee hier is bij het serveren van je pagina je server al een id of class op de body te zetten.</p>
<p>Meer later</p>
]]></content:encoded>
			<wfw:commentRss>http://www.logarie.nl/blog/2009/10/26/eerste-stapjes-in-de-wondere-wereld-van-mobiele-websites/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>jquery.xhtml()</title>
		<link>http://www.logarie.nl/blog/2009/08/25/jqueryxhtml/</link>
		<comments>http://www.logarie.nl/blog/2009/08/25/jqueryxhtml/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 13:25:24 +0000</pubDate>
		<dc:creator>lucien immink</dc:creator>
				<category><![CDATA[jquery]]></category>
		<category><![CDATA[werk]]></category>

		<guid isPermaLink="false">http://arielext.selfip.org/blog/?p=380</guid>
		<description><![CDATA[tired of firefox messing up perfectly good xhtml when you put it in a jqeury object? check out the projects page, i might just have the solution for you]]></description>
			<content:encoded><![CDATA[<p>tired of firefox messing up perfectly good xhtml when you put it in a jqeury object? check out the <a href="/blog/?page_id=310">projects </a>page, i might just have the solution for you</p>
]]></content:encoded>
			<wfw:commentRss>http://www.logarie.nl/blog/2009/08/25/jqueryxhtml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>banners &amp; es3x</title>
		<link>http://www.logarie.nl/blog/2009/07/23/banners-es3x/</link>
		<comments>http://www.logarie.nl/blog/2009/07/23/banners-es3x/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 20:53:53 +0000</pubDate>
		<dc:creator>lucien immink</dc:creator>
				<category><![CDATA[werk]]></category>

		<guid isPermaLink="false">http://arielext.selfip.org/blog/?p=344</guid>
		<description><![CDATA[Banners: Deze week 70 banners gemaakt voor Rabomobiel. 1 dag de basis opzetten met scripted animaties, 1 dag wachten op goedkeuring en dan 2 dagen doorrammen om alle andere banners te maken. Met een goeie basis is dat meer dan haalbaar. We hadden van alle telefoons en teksten aparte movieclips gemaakt en hoefde per formaat [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Banners: </strong>Deze week 70 banners gemaakt voor Rabomobiel. 1 dag de basis opzetten met scripted animaties, 1 dag wachten op goedkeuring en dan 2 dagen doorrammen om alle andere banners te maken. Met een goeie basis is dat meer dan haalbaar. We hadden van alle telefoons en teksten aparte movieclips gemaakt en hoefde per formaat / telefoon alleen de juiste movieclips te vervangen en opnieuw te publishen in flash. Heerlijk als een simpel idee zo krachtig kan zijn. Heerlijk als noobs denken dat je het onmogelijke gedaan hebt :)</p>
<p><strong>ES3x: </strong>Vandaag variphone over de werkvloer, klachten meegedeeld en er is een nieuwe afgiet van met mijn linkeroor gemaakt. Maandag gaat de hele buts naar belgië om nogmaals te kijken of alles wel goed is. De afgelopen 2 dagen waren ze al zoveel beter dan daarvoor dat ik die blauwe rakkers alweer mis :) &lt;-- ja die smiley meen ik, er is en blijft iets speciaals met custom in ears, zeker als ze perfect zijn en ik hoop over 2 à 3 weken nogmaals te kunnene posten om te zeggen: nu zijn ze perfect!</p>
<p><strong>fancyButton update:</strong> Also updated the fancyButton project. You can use a (custom) class to add a mouse-over effect to the buttons now. Copy the latest version <a href="/blog/?page_id=315">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.logarie.nl/blog/2009/07/23/banners-es3x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

