<?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>blogg nr. 176 671 167</title>
	<atom:link href="http://3djegrad.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://3djegrad.net/blog</link>
	<description>verden sett fra mine snarveier</description>
	<lastBuildDate>Thu, 19 Aug 2010 05:49:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Technos Incabloc</title>
		<link>http://3djegrad.net/blog/2010/08/technos-incabloc/</link>
		<comments>http://3djegrad.net/blog/2010/08/technos-incabloc/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 05:39:57 +0000</pubDate>
		<dc:creator>chrleon</dc:creator>
				<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://3djegrad.net/blog/?p=399</guid>
		<description><![CDATA[This is a render of my grandfathers old watch. It&#8217;s over 50 years old. The watch, not the render :) I use this watch everyday, and love it to death! I finally managed to render this out. It&#8217;s been an abandoned project, sadly, but now it&#8217;s here. Modelled and rendered in C4D, with manual lights [...]]]></description>
			<content:encoded><![CDATA[<p>This is a render of my grandfathers old watch. It&#8217;s over 50 years old. The watch, not the render :) I use this watch everyday, and love it to death! I finally managed to render this out. It&#8217;s been an abandoned project, sadly, but now it&#8217;s here.</p>

<p>Modelled and rendered in C4D, with manual lights set up for detailing and some GI as fill-lights.
Tried comping it in blender, but had to resort to Photoshop to get the lensblur correct :)</p>

<p>One of the things that bothers me, is the feeling I get that it&#8217;s not photoreal. I can&#8217;t put my finger on what it is, but you might. Leave a hint in the comments if you see something that could get fixed re: photorealism. Thanks!</p>

<p>Hope ya like it :)</p>

<ul>
<li>christian</li>
</ul>

<p><img src="http://3djegrad.net/blog/wp-content/uploads/klokke-render-comp.jpg" alt="" title="klokke-render-comp" width="820" height="1060" class="alignleft size-full wp-image-400" /></p>
]]></content:encoded>
			<wfw:commentRss>http://3djegrad.net/blog/2010/08/technos-incabloc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>webdev on network without NAT-loopback</title>
		<link>http://3djegrad.net/blog/2010/05/webdev-on-network-without-nat-loopback/</link>
		<comments>http://3djegrad.net/blog/2010/05/webdev-on-network-without-nat-loopback/#comments</comments>
		<pubDate>Wed, 19 May 2010 21:07:31 +0000</pubDate>
		<dc:creator>chrleon</dc:creator>
				<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://3djegrad.net/blog/?p=368</guid>
		<description><![CDATA[I&#8217;ve been using WordPress for a while now, and I&#8217;m doing development on a local apacheserver. Since I&#8217;m used to not having NAT loopback on my network, I usually setup wordpress on the local dev-server and pass the blog URL as localhost:portnumber. When clients want to see progress, I upload to the www, and give [...]]]></description>
			<content:encoded><![CDATA[<h3>I&#8217;ve been using WordPress for a while now, and I&#8217;m doing development on a local apacheserver. Since I&#8217;m used to not having NAT loopback on my network, I usually setup wordpress on the local dev-server and pass the blog URL as localhost:portnumber. When clients want to see progress, I upload to the www, and give them the link.</h3>

<p>But I wanted the clients to be able to check out what I&#8217;m doing without uploading, so I had to find a way to enter the blog URL so it would work from outside too. If I put in localhost:portnumber, WordPress reroutes the visitor to that internal address which is not available from outside the LAN.</p>

<h3>Enter DynDNS!</h3>

<p><a href="http://www.dyndns.org">Dynamic DNS</a> was the solution: So I entered myurl.dyndns.org:portnumber. It works like a charm, but since I&#8217;m inside a network without NAT-loopback, when I try to go to myurl.dyndns.org:portnumber, it won&#8217;t resolve for me. Another thing to solve.</p>

<h3>Enter /etc/hosts!</h3>

<p>If I modify my hosts file on my developer-machine, I can reroute all traffic to the dynamic dns URL, to the internal one, which is localhost:portnumber. So I added this to my /etc/hosts file:</p>

<p><code>
//webdev locally on network without NAT-loopback<br />
//10.0.0.2 is my dev-server<br />
10.0.0.2    myurl.dyndns.org
</code></p>

<h3>Enter Terminal</h3>

<p><img src="http://3djegrad.net/blog/wp-content/uploads/terminal-img.png" alt="terminal-img" title="terminal-img" width="96" height="96" class="alignleft size-full wp-image-391" />
To use these hosts-settings without a reboot, enter terminal on macosx and type
<code>
sudo dscacheutil -flushcache
</code></p>

<p>So this is how I&#8217;ll do it going forward. Any tips and ideas can be put in the comments below.</p>
]]></content:encoded>
			<wfw:commentRss>http://3djegrad.net/blog/2010/05/webdev-on-network-without-nat-loopback/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Download complete</title>
		<link>http://3djegrad.net/blog/2010/05/download-complete/</link>
		<comments>http://3djegrad.net/blog/2010/05/download-complete/#comments</comments>
		<pubDate>Mon, 10 May 2010 08:52:33 +0000</pubDate>
		<dc:creator>chrleon</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://3djegrad.net/blog/2010/05/download-complete/</guid>
		<description><![CDATA[Our son arrived last night at 3:13am. Mother and child is fine and sleepy. Say hello :)]]></description>
			<content:encoded><![CDATA[<p>Our son arrived last night at 3:13am. Mother and child is fine and sleepy.</p>

<p>Say hello :)</p>

<p><a href="http://3djegrad.net/blog/wp-content/uploads/p_2048_1536_221D9E81-4FAA-4694-BFF3-6EE030D746A3.jpeg"><img src="http://3djegrad.net/blog/wp-content/uploads/p_2048_1536_221D9E81-4FAA-4694-BFF3-6EE030D746A3.jpeg" alt="" class="alignnone size-full" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://3djegrad.net/blog/2010/05/download-complete/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Donate to charity and get a Google Wave invite</title>
		<link>http://3djegrad.net/blog/2009/11/stw/</link>
		<comments>http://3djegrad.net/blog/2009/11/stw/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 15:31:16 +0000</pubDate>
		<dc:creator>chrleon</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[wave]]></category>

		<guid isPermaLink="false">http://3djegrad.net/blog/?p=302</guid>
		<description><![CDATA[Get a Google Wave invite and donate $35 to charity.]]></description>
			<content:encoded><![CDATA[<p>Update: Thanks to<a href="http://twitter.com/nech" target="_blank">@nech</a>, I now have two more invites.</p>

<p>Update 2: I&#8217;ll convert my nominations to invites as well, so I can send out instant invites.</p>

<p>Update 3: I have now converted all of my nominations, so they are instant!</p>

<p>Google Wave is a new collaboration/email/Instant Messaging platform, that I and other, have yet to understand the complete reach of. There are Multi User dungeons(MUDs) on there already, book-editing and much more.</p>

<p>I recently got some invites to Google wave. Now I&#8217;m seeing people auctioning these off on eBay and other sites.</p>

<p><span id="more-302"></span></p>

<p>These invites are really sought after and instead of just handing them out, like I did <a href="http://twitter.com/chrleon/status/4857641719" target="_blank">last time</a>, I was thinking about selling them.</p>

<p><del datetime="2009-11-17T18:34:21+00:00">For 35$ a piece. </del> Now you can choose a sum.</p>

<p>I don&#8217;t have too many, as it stands now, I&#8217;ve got <del datetime="2009-11-17T18:34:21+00:00">12</del> 22, but I might get more. <del datetime="2009-11-17T18:34:21+00:00">That should net me a nice profit of $420</del>. All great so far, but I&#8217;m guessing you&#8217;re a bit put off by this thinking, as was I.</p>

<p>That&#8217;s why I&#8217;m selling these invites and donating all income to charity. Think of it like my own little <a href="http://www.laptop.org" target="blank">OLPC-project</a>. People can do what they like and I&#8217;m no moral guardian, but I think this is a way to turn the interest for Wave into results in the real world. :)</p>

<p>I realize that this is in some measure an act of faith, but why shouldn&#8217;t I try to see if this could work? If you think it&#8217;s stupid, <a href="#comments">sound off like you got a pair</a> in the comments, or add chrleon[at]googlewave.com.</p>

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="9775811">
<input type="image" src="http://3djegrad.net/blog/wp-content/uploads/donate-knapp-choice.png" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

<h2>What&#8217;s in it for you?</h2>

<p>I will nominate you for Google Wave, and you&#8217;ll receive an invite in a couple of days. It&#8217;s not a quick process as Google is experiencing massive interest in this platform. As they say themselves, they &#8216;have a lot of stamps to lick&#8217;.</p>

<p>Thanks to nech the first two will get an instant email to an invite.</p>

<p>I&#8217;ll also try to convert my nominations to invites so they&#8217;ll get out real quick.</p>

<h2>What charity should we choose?</h2>

<p>It&#8217;s a hard time choosing which one of the charitable organisations should receive this measly sum, so I&#8217;m thinking you can help decide.</p>

<p>The only thing I want to do, is to select an international non-religious organisation, since people would be buying from all over the world (I&#8217;m optimistic, but hey we have to be don&#8217;t we :))</p>

<ul>
<li><a href="http://www.kiva.org">KIVA.org &#8211; microloans</a></li>
<li><a href="http://www.msf.org">Medecins sans frontiers</a></li>
<li><del datetime="2009-11-17T18:34:21+00:00"><a href="http://eff.org">Electronic Frontier Foundation</a></del> &#8211; not an international organization :)</li>
</ul>

<p>Do you have ideas of others? Put them in the comments, and we can decide where this princely sum of money should be headed.</p>

<p>Thanks for reading. Now donate. Or <a href="#comments">argue</a>.</p>

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="9775811">
<input type="image" src="http://3djegrad.net/blog/wp-content/uploads/donate-knapp-choice.png" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
]]></content:encoded>
			<wfw:commentRss>http://3djegrad.net/blog/2009/11/stw/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Vår tapte frihet</title>
		<link>http://3djegrad.net/blog/2009/07/var-tapte-frihet/</link>
		<comments>http://3djegrad.net/blog/2009/07/var-tapte-frihet/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 08:10:35 +0000</pubDate>
		<dc:creator>chrleon</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[surveillance]]></category>

		<guid isPermaLink="false">http://3djegrad.net/blog/?p=288</guid>
		<description><![CDATA[This is a blogpost about current affairs in Norway. It discusses the use of censorship to stifle filesharing. It contains norwegian text. Sorry to my english readers. Dagbladet presenterer i dag en flott kronikk om overvåkningssamfunnet vi er i ferd med å snuble oss inn i. Jeg nekter å tro at noen deler av regjering [...]]]></description>
			<content:encoded><![CDATA[<p>This is a blogpost about current affairs in Norway. It discusses the use of censorship to stifle filesharing. It contains norwegian text. Sorry to my english readers.</p>

<p>Dagbladet presenterer i dag en flott kronikk om overvåkningssamfunnet vi er i ferd med å snuble oss inn i. Jeg nekter å tro at noen deler av regjering eller storting har en skjult agenda, men kanskje de ikke makter å se rekkevidden av sine gjøremål, eller tenker de at målet helliger middelet?
<span id="more-288"></span>
Andreas Wiese bruker George Orwells bok 1984 som eksempel på et samfunn vi kan nærme oss. 1984 er et meget totalitært samfunn, med krig og grove overgrep mot mennesker, og jeg tror kanskje folk flest ikke klarer å se for seg hvordan et slikt samfunn vil være. Det er for drøyt til at man klarer å sette seg inn i det. Derfor liker jeg veldig godt inngangen til artikkelen, som folkeliggjør hele poenget og gjør situasjonen mer håndgripelig for oss alle.</p>

<p><strong>
-sitat-<br />
Tenk deg at kjæresten din hver dag nøye noterte ned hvem du hadde ringt til og hvem du hadde sendt SMS til. Han noterer hvor lenge du snakker og hvor mange ganger. Han noterer også hver eneste e-post du sender. La oss si han er en gentleman, så han leser ikke innholdet. Han lover til og med å ikke se på notatene og å kaste dem etter seks måneder hvis de ikke er kommet til nytte. Likevel ville du neppe være bekvem med situasjonen. Mange ville foreslått en passende diagnose for slik atferd. Hvorfor er vi da så avslappet når det ikke er kjæresten, men staten som nå krever den samme overvåking?<br />
-sitat slutt-
</strong></p>

<p>Les mer på <a href="http://www.dagbladet.no/2009/07/28/kultur/kommentar/debatt/blogg/internett/7393727/">dagbladet</a>. Den anbefales.</p>

<p>Denne bloggstafetten han snakker om, hvor er den utsprunget?</p>

<p>John F. Kennedy, i sin tale &#8216;the President and the press&#8217; fra 27. april 1961, sa: (min oversettelse)
&#8220;Det er ingen vits i å sikre nasjonens fremtid, om ikke dens friheter og tradisjoner også følger med inn i fremtiden. Og det er stor fare for at muligheten for større sikkerhet i samfunnet, vil bli grepet av de som har et ønske om å utvide denne sikkerheten til å omfavne større og større deler av samfunnet, helt ut til offentlig sensur og hemmeligholdelse.&#8221; Les og hør talen hos <a href="http://millercenter.org/scripps/archive/speeches/detail/3677">Miller Center of Public Affairs</a>.</p>

<p>Nå snakket JFK om trusselen av kommunisme, men hemmeligholdelse og sensur kjenner ingen styreform. Dette tospannet er det samme uansett hvem som kontrollerer de. Hvorfor skal dette verktøyet brukes i fredstid, og mot egen befolkning? Hvem vet hvor vi ender om vi begynner å tillate sensur i vårt frie demokrati. Jeg stoler ikke så mye på våre politikere at vi bør gi verktøyet sensur i deres hender. Og om <del datetime="2009-07-30T11:59:41+00:00">vi</del> jeg ikke kan stole på våre folkevalgte med sensur, hvordan kan <del datetime="2009-07-30T11:59:41+00:00">vi</del> jeg da stole på organisasjoner som IFPI, MPAA, RIAA og andre, som har økonomiske motiver(1) for alle sine handlinger?</p>

<hr />

<p>fotnoter<br />
1) Med økonomiske motiver mener jeg at de er organisasjoner som har som sitt hovedformål<br />
å enten tjene penger, eller inndrive penger for sine medlemmer.</p>
]]></content:encoded>
			<wfw:commentRss>http://3djegrad.net/blog/2009/07/var-tapte-frihet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>API fra SSB #ssbdata</title>
		<link>http://3djegrad.net/blog/2009/07/api-fra-ssb-ssbdata/</link>
		<comments>http://3djegrad.net/blog/2009/07/api-fra-ssb-ssbdata/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 08:53:36 +0000</pubDate>
		<dc:creator>chrleon</dc:creator>
				<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://3djegrad.net/blog/?p=280</guid>
		<description><![CDATA[I slutten av mai sendte jeg en epost til Statistisk Sentralbyrå om de hadde APIer tilgjengelig for å håndtere data fra deres statistikk. I dag fikk jeg et meget positivt svar! Ilp. 2010 planlegger SSB å lansere APIer for allmennheten. Kjempegode nyheter! Les mer nedenfor. For english visitors: see the link below For English visitors: [...]]]></description>
			<content:encoded><![CDATA[<p><strong>I slutten av mai sendte jeg en epost til Statistisk Sentralbyrå om de hadde APIer tilgjengelig for å håndtere data fra deres statistikk. I dag fikk jeg et meget positivt svar! Ilp. 2010 planlegger SSB å lansere APIer for allmennheten. Kjempegode nyheter! Les mer nedenfor.</strong>
<strong>For english visitors: see the link below</strong>
<span id="more-280"></span></p>

<p><strong>For English visitors:</strong> The Statistics Bureau in Norway plan to make their data available through APIs by 2010.
They are seeking inputs on what data they should have available, and how to make the API, and present the data. Hopefully we&#8217;ll have a great interface next year! We are discussing this on twitter, with the hashtag #ssbdata, and the user <a href="http://www.twitter.com/trygu">@trygu</a> is the architect behind the API at the Statistics Bureau. Email correspondence in Norwegian below.</p>

<p>EPOST FRA SSB<br />
Hei Christian!</p>

<p>For det første; takk for henvendelse! Jeg fikk videresendt denne henvendelsen for en stund tilbake, men fordi svaret er litt sammensatt så har jeg dessverre ikke fått anledning til å svare deg før. Beklager det!</p>

<p>Svaret på spørsmålet ditt er både ja og nei. Vi har en alpha-tjeneste som vi har tilbudt noen etater og bedrifter. Jeg er ikke helt fornøyd med denne, og er derfor litt restriktiv i forhold til å gi deg tilgang til disse, men også fordi vi jobber med en total omlegging av hele SSB.no. I den sammenheng kommer vi til å tilby en hel del API-er, både på datanivå, men også på metadatanivå. Foreløpig sluttdato for prosjektet er ikke satt, men det er snakk om en lansering midten eller  slutten av 2010. MEN; det jeg ser for meg er at vi kommer til å tilby betatesting av disse tjenestene på et tidligere tidspunkt enn det. (håper jeg!)</p>

<p>Det jeg i mellomtiden kunne ønske meg var tilbakemeldinger på hva slags API-er du kunne tenke deg (både i forhold til innhold, men også teknisk implementasjon, REST, SOAP, Json osv).</p>

<p>Håper det var et slags svar.</p>

<p>Mvh<br />
Trygve Falch<br />
Løsningsarkitekt, Nye SSB.no<br />
Avdeling for IT og Metode<br />
Seksjon for formidlingssystemer<br />
<br />
<br /></p>

<p>MITT SVAR<br /><br />
Hei Trygve</p>

<p>Takk for veldig fyldig, og ikke minst, meget positive svar!</p>

<p>Jeg selv er ikke programmerer av den store sorten, men jeg er tilhenger av at data samlet inn av det offentlige skal være tilgjengelig for folk flest. Det er jo ikke til å komme unna at flere hoder tenker bedre enn færre hoder, og med data fra SSB er det nok uante muligheter for hvilke tjenester og informasjonssystemer som kan bygges opp på web, iphone, android og andre plattformer.</p>

<p>Om du ser på f.eks. twitter.com kjører de ut datastrømmer med JSON, XML og RSS og det er jo veldig gode formater for å håndtere informasjon.</p>

<p>Det som hadde vært interessant i form av API-kall er jo å få ut rådata lik data.gov i USA har begynt med. Dette er det nok andre som kan anbefale mye bedre enn meg.</p>

<p>Jeg anbefaler dere, om du ikke allerede er der, å koble dere opp til twitter, og bruke taggen #ssbdata, som ble startet i dag / går kveld. Slik kan dere samle mye informasjon fra kyndige webfolk rundt omkring i landet, som nok er meget interessert i denne tjenesten deres. Folk på twitter er allerede meget interessert.</p>

<hr />

<p>Nå får vi håpe de benytter seg av invitasjonen bl.a. på twitter og begynner å sanke informasjon slik at vi kan få gode APIer fra SSB ilp. 2010.</p>
]]></content:encoded>
			<wfw:commentRss>http://3djegrad.net/blog/2009/07/api-fra-ssb-ssbdata/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Submit and forget</title>
		<link>http://3djegrad.net/blog/2009/06/submit-and-forget/</link>
		<comments>http://3djegrad.net/blog/2009/06/submit-and-forget/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 12:08:01 +0000</pubDate>
		<dc:creator>chrleon</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://3djegrad.net/blog/?p=261</guid>
		<description><![CDATA[How to make password reminders remember the password even though you use the Cleartext option on passwords. Jakob Nielsen made an alertbox entry about password fields, recently. The gist of what he said, is that it&#8217;s user-unfriendly to obscure the passwords, on websites, which presents a password field to their users. He proposes to just [...]]]></description>
			<content:encoded><![CDATA[<p>How to make password reminders remember the password even though you use the Cleartext option on passwords.</p>

<p>Jakob Nielsen made an alertbox entry <a href="useit.com/alertbox">about password fields</a>, recently.</p>

<p>The gist of what he said, is that it&#8217;s user-unfriendly to obscure the passwords, on websites, which presents a password field to their users. He proposes to just use cleartext and not bullets, in these fields, and also suggests a solution to the secrecy problem on public computers: Have an option to show and hide the password field, in case someone looks over your shoulder.</p>

<p>Jakob Nielsen propose that the password is cleartexted as default, but I, and <a href="http://www.wait-till-i.com/2009/06/26/on-password-fields-masking-and-jakob-nielsen/">others</a> disagree. Chris Heilmann shows a way to make a show / hide link on all password fields, on a page.</p>

<p>It looks like an elegant script. Kudos to him, for sharing it.</p>

<p>What about password reminders? They only trigger on password-fields.<br />
Password reminders, I believe, will remember passwords if input type=&#8217;password&#8217;, when you hit submit.<br />
There should be a script that checks to see if the field is text or password, and turns it into password on submit, so that password reminders can remember the passwords even though you use the cleartext method.</p>

<p>Thanks to <a href="http://www.wait-till-i.com/2009/06/26/on-password-fields-masking-and-jakob-nielsen/">Chris Heilmann</a> for making the script in the first place.
<br />
<br />
<br />
UPDATE:
And btw: I tried my hand at an icon for show/hide password link.
It&#8217;s of-course under Creative Commons.<br />
<div id="attachment_276" class="wp-caption alignleft" style="width: 710px"><a href="http://3djegrad.net/blog/wp-content/uploads/hidepassword.gif"><img src="http://3djegrad.net/blog/wp-content/uploads/hidepassword1.gif" alt="Hide/show password icon. With a Creative Commons license." title="hidepassword.gif" width="95" height="24" class="size-full wp-image-276" /></a><p class="wp-caption-text">Hide/show password icon. With a Creative Commons license.</p></div></p>

<p><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-Share Alike 3.0 Unported License</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://3djegrad.net/blog/2009/06/submit-and-forget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You are here</title>
		<link>http://3djegrad.net/blog/2009/06/you-are-here/</link>
		<comments>http://3djegrad.net/blog/2009/06/you-are-here/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 20:20:32 +0000</pubDate>
		<dc:creator>chrleon</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[BY-SA-NC]]></category>
		<category><![CDATA[cc]]></category>
		<category><![CDATA[modelling]]></category>
		<category><![CDATA[tipstriks]]></category>

		<guid isPermaLink="false">http://3djegrad.net/blog/?p=238</guid>
		<description><![CDATA[A friend,@BrokenPoly challenged me to create a realistic render of Earth. The first thing I did was to got to NASA, and their Earth Observatory and get real high resolution textures. I downloaded textures for day and nighttime, since I wanted to create a partialy lit planet, and a set of clouds to make it [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://3djegrad.net/blog/2009/06/you-are-here/">
<img src="http://3djegrad.net/blog/wp-content/uploads/klode-final-720x405.jpg" alt="klode-final" title="klode-final" width="720" height="405" class="alignnone size-large wp-image-242" /></a></p>

<p>A friend,<a href="http://www.twitter.com/brokenpoly">@BrokenPoly</a> challenged me to create a realistic render of Earth.</p>

<p><span id="more-238"></span></p>

<p>The first thing I did was to got to NASA, and their <a href="http://earthobservatory.nasa.gov">Earth Observatory </a>and get real high resolution textures.</p>

<p>I downloaded textures for day and nighttime, since I wanted to create a partialy lit planet, and a set of clouds to make it more interesting.</p>

<p>I knew that the first thing I had to figure out, was a way to get the texture for the nightside to show up, when there was no light. Luckily Cinema 4D has a shader called &#8216;Proximal&#8217;, that creates a gradient-ramp whenever a selected object is within a certain range of the shader.<br />
The globe had two shaders.
1. The earth texture &#8211; standard diffuse / color
2. The nighttime lights &#8211; alpha channel with just the lights</p>

<p>For the effect to work, I needed a way to control the Proximal shader, and so I added a Null Object to the scene and set the Proximal-shader to react to it. Then I placed the Null Object over the globe and eyeballed where the nighttime was supposed to be.</p>

<p>This gave me nighttime texture, with overlayed lights. This is clearly wrong. :)<br />
<img src="http://3djegrad.net/blog/wp-content/uploads/bilde-4-720x511.png" alt="Proximal" title="Proximal" width="720" height="511" class="alignnone size-large wp-image-250" /></p>

<p>I had to use the proximal shader as the alpha channel for the daytime texture, and thereby showing the nighttime texture, where the sun didn&#8217;t shine ;)</p>

<div id="attachment_252" class="wp-caption alignnone" style="width: 593px"><img src="http://3djegrad.net/blog/wp-content/uploads/bilde-6.png" alt="Fusion Shader with proximal" title="fusion" width="583" height="590" class="size-full wp-image-252" /><p class="wp-caption-text">Fusion Shader with proximal</p></div>

<p>This resulted in a much better image :)</p>

<p><img src="http://3djegrad.net/blog/wp-content/uploads/klode-final-720x405.jpg" alt="klode-final" title="klode-final" width="720" height="405" class="alignnone size-large wp-image-242" /></p>

<p>But seeing as the null objects and the lights are codependant, I thought: 
&#8220;Why not make it so that I can rotate these things, and simulate a day?&#8221;</p>

<p>I grouped the Null Object that affected the Proximal-shader, the Sun light and the Moon-light to a Null and voila, I could now rotate the scene around, and the daytime and nighttime lights would align perfectly. Magic!</p>

<p><object width="640" height="368"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5123548&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5123548&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="368"></embed></object></p>

<p><a href="http://vimeo.com/5123548">Earth rotation</a> from <a href="http://vimeo.com/chrleon">chrleon</a> on <a href="http://vimeo.com">Vimeo</a>.</p>

<p>This looks great, I think, but there was something missing :) 
Space is not empty. The final video is below. With audio and downloadable from Vimeo.</p>

<p><object width="640" height="360"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5188942&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=5188942&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="360"></embed></object></p>

<p><a href="http://vimeo.com/5188942">Rotating Earth &#8211; v2</a> from <a href="http://vimeo.com/chrleon">chrleon</a> on <a href="http://vimeo.com">Vimeo</a>.</p>

<p>Leave your feedback down below and enjoy it :)</p>

<p>Licensed with Creative Commons: By &#8211; Share-Alike &#8211; Non-Commercial</p>

<p>Other credits:<br />
Textures for Earth, Clouds and Nightlights from NASA &#8216;Blue Marble&#8217;
<a href="http://earthobservatory.nasa.gov">earthobservatory.nasa.gov</a></p>

<p>Audio from <a href="http://www.freesound.org">freesound.org</a><br />
<a href="http://www.freesound.org/samplesViewSingle.php?id=17470">Radio Interference</a><br />
by cognito perceptu</p>

<p><a href="http://www.freesound.org/samplesViewSingle.php?id=8132">Brown Noise</a><br />
by Bliss</p>

<p>Russian National Hymn from Wikipedia &#8211; http://en.wikipedia.org/wiki/National_Anthem_of_Russia -</p>
]]></content:encoded>
			<wfw:commentRss>http://3djegrad.net/blog/2009/06/you-are-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Electronic elections and hardcopies</title>
		<link>http://3djegrad.net/blog/2009/05/electronic-elections-and-hardcopies/</link>
		<comments>http://3djegrad.net/blog/2009/05/electronic-elections-and-hardcopies/#comments</comments>
		<pubDate>Sun, 24 May 2009 18:41:09 +0000</pubDate>
		<dc:creator>chrleon</dc:creator>
				<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://3djegrad.net/blog/?p=229</guid>
		<description><![CDATA[Paul Venezia, of infoworld.com, on the 18th of May 2009, published Toward a Technology Bill of Rights, that cites six potential elements of a Technology Bill of Rights. Article no. 5 reads: Any software or hardware used to conduct laws and public policy shall be open-source. This is especially important for elections, to avoid possible [...]]]></description>
			<content:encoded><![CDATA[<p>Paul Venezia, of infoworld.com, on the 18th of May 2009, published <a href="http://www.infoworld.com/d/data-management/toward-technology-bill-rights-867">Toward a Technology Bill of Rights</a>, that cites six potential elements of a Technology Bill of Rights. 
<span id="more-229"></span></p>

<p>Article no. 5 reads:<br />
<em>Any software or hardware used to conduct laws and public policy shall be open-source.</em></p>

<p>This is especially important for elections, to avoid possible frauds, like the now infamous Diebold machines from the US Elections. (closed-source and errorprone).</p>

<p>How can we secure our democratic trust in voting machines, when there is no papertrail, like with regular voting systems? At the same time, we have to keep voting secret.</p>

<h2>Binary papertrails</h2>

<p>Recount of a election-result, is a straight forward process today. The papervotes are there, so it&#8217;s just a matter of (hard) work to reassure the public that the results are correct. The same checks has to be possible in a way, so the public can trust voting machines.</p>

<p>What if every voter gets a paper-receipt from their vote with a sequence of random digits or letters, then they have something to check against? This paper-receipt would let them check that their vote was correct, later, ie. on a government webpage. They would type their random number and get a response telling them what party or candidate their vote went to. This way there is a check against possible fraud, and the user still maintains their anonymity, except for the IP-address. It&#8217;s not perfect but maybe a start? The server for this check must of course not log any IP-addresses.</p>

<h2>When should electronic voting machines replace paper votes?</h2>

<p>No sooner than computer literacy is as high as literacy. In countries where literacy is close to 100%, there are no practical problems with paper elections. All voters will know how to read and write, and therefore be able to add or strike-out candidates, and therefore vote correctly. The same must be true for electronic voting. When close to 100% of the public is comfortable with computers or the same form of input used on electronic voting machines, and we have a system in place to avoid fraud, they may replace paper voting.</p>

<p>My thoughts on the matter, anyway.. Your thoughts are welcome, too</p>
]]></content:encoded>
			<wfw:commentRss>http://3djegrad.net/blog/2009/05/electronic-elections-and-hardcopies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A moat against spammers</title>
		<link>http://3djegrad.net/blog/2009/05/a-moat-against-spammers/</link>
		<comments>http://3djegrad.net/blog/2009/05/a-moat-against-spammers/#comments</comments>
		<pubDate>Fri, 01 May 2009 11:10:04 +0000</pubDate>
		<dc:creator>chrleon</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://3djegrad.net/blog/?p=218</guid>
		<description><![CDATA[If you&#8217;re like me, you probably have eliminated almost all of your daily spam email, by being very diligent. You, and I, read every privacy section on every beta we apply for, to feel secure that our email address won&#8217;t get in the Infernal Spam Database(TM). It pays to be diligent, and safeguarding your email [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re like me, you probably have eliminated almost all of your daily spam email, by being very diligent.</p>

<p>You, and I, read every privacy section on every beta we apply for, to feel secure that our email address won&#8217;t get in the Infernal Spam Database(TM). It pays to be diligent, and safeguarding your email address is a smart thing to do, and you should, but you can&#8217;t do it forever, you know.
<span id="more-218"></span></p>

<p>Some day, on some website, you need to use that precious email address, so People actually can contact you, and People generally like to do so, since that is what the internet is all about. These same People also don&#8217;t like to fill out forms, they like to click links, especially <a href="mailto:iluvspam@3djegrad.net">mailto: links</a> . This gives them a warm and fuzzy feeling, and also let&#8217;s them keep a copy in their Sent folder.</p>

<p>You and I have a strained relationship with mailto:links. So we have devised schemes (like mail-obfuscation) and voodoo-trickery to let People use mailto:links so long as they themselves use voodoo, in the form of JavaScript-enabled browsers. This leaves The Spammers in the dark. At least for now.</p>

<h3>The Spammer Never Sleeps</h3>

<p>Spammers don&#8217;t like to be in the dark, and so They strive for perfection in their spam-robots. Using all Their knowledge about searching text, and using a heap of <abbr title="Regular Expressions">regex</abbr> The Spammers usually manage to suck out all the email addresses They want. According to the report from <a href="http://www.cdt.org/speech/spam/030319spamreport.shtml">Centre for Democracy &amp; Technology</a>, published in 2003, e-mail obfuscation seems to work, but for how long? Probably only so long as it takes Them to make a regex converting obfuscated email addresses into correct email addresses. Considering 2009 &#8211; 2003 = 6 years They are probably on to Us.</p>

<p>The goal must be to hide that mailto-link and the email address with it, but still make it possible for the People to click links.</p>

<h3>For those about to be spammed, we salute you</h3>

<p>We have two requirements for our email-address:<br />
1. It has to be easy to type for an author / contributor. No large codes!<br />
2. We have to be able to use any email on whatever domain.</p>

<p>Seeing as every email-address under a domain is unique, we can simplify emails that belongs to the current domain to only the username.</p>

<p>I&#8217;ll be using the address &#8216;iluvspam@3djegrad.net&#8217; for this article. On the <a href="3djegrad.net/articles/moat/demo-site/" rel="nofollow" target="_blank">demo-site</a>, the link for this email-address will let People click it, open Their favourite email-app, send the email and continue on their Quest to find the End of the Internet.</p>

<p>To do this we&#8217;ll use Apache&#8217;s mod_rewrite capabilities, to rewrite URLs on the fly, and we will be able to write the email above as:</p>

<pre><code>&lt;a href="contact/iluvspam" rel="no-follow"&gt;iluvspam&lt;/a&gt;
</code></pre>

<p>Open up your favourite text-editor (notepad, or textedit will do fine though I prefer the excellent and gratis <a href="http://www.barebones.com">TextWrangler</a> from BareBones Software), and start a new file called &#8216;.htaccess&#8217;. Save this file in your root directory on the webserver.</p>

<p>If you have used mod_rewrite before, the already existing .htaccess will probably look something like this.</p>

<pre><code>&lt;IfModule mod_rewrite.c&gt;
RewriteEngine On
RewriteBase /
&lt;/IfModule&gt;
</code></pre>

<p>This enables the RewriteEngine in Apache and sets the RewriteBase to /, sort of like BASEHREF in HTML, but not exactly the same.</p>

<p>What we need to add is a RewriteRule which fires every time someone clicks the <a href="contact/iluvspam" rel="nofollow">iluvspam</a> link.</p>

<pre><code>&lt;IfModule mod_rewrite.c&gt;
RewriteEngine On
RewriteBase /

#Email-harvest prevention for any domain
RewriteRule contact/([a-zA-Z0-9-_\.]+)/([a-zA-Z0-9-_\.]+) email.php?email=$1&amp;domain=$2  

# Email-harvest for this domain
RewriteRule contact/([a-zA-Z0-9-_\.]+) email.php?email=$1

&lt;/IfModule&gt;
</code></pre>

<p><a name="regex-start"></a></p>

<h3>Rewrite-email-to-the-what-now?</h3>

<p>Before we start, grab a box of concentration and open your head.</p>

<p>All those characters jumbled together like an imploded anthill, are regex. As I said earlier, regex are regular expressions which lets Spammers work with text. We can also use them for Good.</p>

<ul>
<li>^ (the caret sign) means &#8216;the start of the text&#8217;  </li>
<li>() parenthesis groups text together in a variable which can be used again.  </li>
<li>$ means the end of the string.  </li>
<li>[] groups together a string of letters to be handled later by another parameter, like &#8216;+&#8217; or &#8216;*&#8217;.  </li>
</ul>

<p>As an example:
- ^abc matches abcdef but not aabcdef, since the match doesn&#8217;t start with abc
- abc$ matches aabc, but not abcd, since the string &#8216;abcd&#8217; doesn&#8217;t end in abc
- ^abc$ only matches abc, seeing as we tell the regex-engine to look for a string that starts with abc and ends with abc.</p>

<p>Back to our .htaccess-file:</p>

<pre><code># Email-harvest for this domain
RewriteRule contact/([a-zA-Z0-9-_\.]+) email.php?email=$1
</code></pre>

<p>The RewriteRule above tells Apache to forward all links which refer to &#8216;contact/(something)&#8217; to the email.php script which parses the URL and returns the correct email to the (hopefully shiny and happy) People.</p>

<p>Phew! Take a deep breath before we dive back in &#8230; Ready? Let&#8217;s go!</p>

<p>The RewriteRule utilize <abbr title="Regular Expressions">regex</abbr> for pattern recognition. The pattern it looks for is &#8216;contact/&#8217; followed by  any letter between a-z in either lower- or UPPERCASE and/or any digits from 0-9 and/or the characters &#8216;-&#8217;, &#8216;_&#8217; and &#8216;.&#8217;.</p>

<p>This should cover all email-adresses. The plus sign at the end tells the Apache-server that we are looking for multiple characters. If you&#8217;re observant you might have noticed that the period-sign (.) has a backslash infront of it (&#46;), and a bracket encloses the text inside the parentheses. The backslash is an escape-character in regex, and tells the regex-engine that it should allow the literal character &#8216;.&#8217; (period), and not treat it like a wildcard, which is the default behavior for &#8216;.&#8217; in Regular Expressions. The bracket groups text together to be worked on by parameters later, like the &#8216;+&#8217;</p>

<pre><code># Email-harvest for this domain
RewriteRule contact/([a-zA-Z0-9-_\.]+) email.php?email=$1
</code></pre>

<p>The $1 in /email.php?email=$1 tells the regex-engine to use the found-text variable we grouped with parenthesis ([a-zA-Z0-9-_&#46;]+) and set the variable email to the found text, which in our case is iluvspam. The rewritten URL will then be: /email.php?email=iluvspam</p>

<p>So when People click &#8216;iluvspam&#8217; they send the variable &#8216;iluvspam&#8217; into email.php. email.php in turn is configured to append 3djegrad.net after all email variables, unless something else is defined.</p>

<p>As you&#8217;ve seen, we have two RewriteRules in our .htaccess-file and the other one let&#8217;s us type and send email to addresses on other domains, besides our own. That line looks like this.</p>

<pre><code>#Email-harvest prevention for any domain
RewriteRule contact/([a-zA-Z0-9-_\.]+)/([a-zA-Z0-9-_\.]+) email.php?epost=$1&amp;domene=$2
</code></pre>

<p>Using the knowledge you&#8217;ve gained above, you should be able to recognize that we now have two variables in the RewriteRule. The first variable is the email and the second is the domain. This RewriteRule let&#8217;s us write email-adresses to other domains like so:</p>

<pre><code>Contact him via&lt;a href="contact/chrleon/gmail.com" rel="no-follow"&gt;his email-adress&lt;/a&gt;
</code></pre>

<p>Just one thing. The more advanced RewriteRule has to be defined before the simpler ones, or the regex-engine will recognize the simpler form before the more advanced one and fire, never activating the more advanced one. So in this case the .htaccess looks like this:</p>

<pre><code>&lt;IfModule mod_rewrite.c&gt;
RewriteEngine On
RewriteBase /

#Email-harvest prevention for any domain
RewriteRule contact/([a-zA-Z0-9-_\.]+)/([a-zA-Z0-9-_\.]+) email.php?epost=$1&amp;domene=$2 

# Email-harvest for this domain
RewriteRule contact/([a-zA-Z0-9-_\.]+) email.php?epost=$1
&lt;/IfModule&gt;
</code></pre>

<p><a name="regex-links"></a>
You can learn more about Regular Expressions at <a href="http://www.reguar-expressions.info">regular-expressions.info</a> and at <a href="http://weblogtoolscollection.com/regex/regex.php?page=3"> weblogtoolscollection</a>. Or do you need to <a href="#regex-start">read it again?</a></p>

<p>.htaccess files are extra configuration-files for the Apache web-server. To learn more about them, got to the Apache documentation <a href="http://www.apache.org/docs/2.0/">website</a>.</p>

<h3>So, what does email.php look like?</h3>

<p>The file is relatively simple. All it conceptually does is to get the user-name from the email/iluvspam and append the domain address. Try to also check the email-variable for non-allowed characters, or better yet do a white-list check where you only allow the characters a-zA-Z0-9.-_. That way you guard against injection-attacks. Any comments on the security issues are most welcome.</p>

<p>Here is the code for email.php, with comments.</p>

<pre><code>//  set two variables to hold the generated email-adress
//  the $domain variable is used for email-addresses on THIS domain
//  if no domain is entered in the link like contact/abc123
//  then the email will be sent to 'abc123@3djegrad.net'
$recipient = " ";
$domain = "3djegrad.net";


//  The email-address is gathered from the GET-request
//  This GET-request is from the link you clicked
//  An if-statement checks to see that the email is set
if ($_GET['email']) {
$recipient = $_GET['email'];
}

//  The domain is gathered from the GET-request.
//  if it is set, we replace the $domain variable with the correct domain
if($_GET['domain']) {
$domain = $_GET['domain'];
}
</code></pre>

<p>This is the gist of it, but we still haven&#8217;t made any headway on opening uur Readers&#8217; email-application. That&#8217;s the next step.</p>

<p>We open the Readers&#8217; email.application with a header-change in php, like so:</p>

<pre><code>header("Location: mailto:$recipient@$domain");
</code></pre>

<p>This will open the mail-app with the correct email-address, already filled in. But there&#8217;s just a blank page in the browser.</p>

<p>All the People who want to contact you, don&#8217;t like to see blank pages. They&#8217;re a tough crowd.</p>

<p>For this to work we must rely on <abbr title="JavaScript"> voodoo-trickery</abbr>, since PHP won&#8217;t let us send two header(location)-commands to the browser. If we try to send two header(location), only the last one fires. Even with the PHP function <a href="http://no.php.net/ob_start">ob_start()</a>. This is for security-reasons.</p>

<pre><code>echo '&lt;script type="text/javascript"&gt;history.back()&lt;/script&gt;';

$explanation = file_get_contents("spamexplain.html");
echo '&lt;noscript&gt;';
echo $explanation;
echo '&lt;/noscript&gt;';
</code></pre>

<p>The code above does just that. The first line tells the browser to go back one page. The following lines prepare a page for those Readers who for some reason have Javascript turned off or there is no Javascript available to them. This is our graceful fail.</p>

<p>But we&#8217;re not in Kansas yet, Dorothy.</p>

<p><img src="http://3djegrad.net/blog/wp-content/uploads/pie-chart-cc.jpg" alt="pie-chart-cc" title="pie-chart-cc" width="600" height="183" class="alignnone size-full wp-image-221" /></p>

<h3>Oi! What about my statistics!?</h3>

<p>It seems that Firefox and Opera generates a hit when you use the back-button, and so does using the history.back() function. Safari is the only browser not doing this, as I can tell from my tests.</p>

<p>The solution for this is to set a $_SESSION-variable in the email.script and test for that variable on the article page. If the variable is set, then don&#8217;t load the counters. After that test is run, destroy the session-variable. Now the count won&#8217;t register.</p>

<p>For this example I just use a date and time-stamp in a textfile</p>

<pre><code>if (!isset($_SESSION['url'])) { 
$filename = fopen("counter.txt", a);
//  This could be Google Analytics or others
//  like so: include('google-analytics-script.php');

//  write the date and time in the logfile, followed by a newline 
$dateandtime = date("d-m-Y - H:i:s",time());

fwrite($filename, $dateandtime . "\n");

fclose($filename); // close the file

unset($_SESSION['url']); 
//  unset the session-variable so that the counting still works on 
//  the rest of the page. Remember, we only want to drop the count
//  on this one page, after People have clicked their happy 
//  mailto:links.

    } 
</code></pre>

<h3>Try it out</h3>

<p>Demo-site: <a href="http://www.3djegrad.net/moat">3djegrad.net/moat</a></p>

<p>So there you have it. Hopefully spamfree, and humanreadable email-addresses on the internet.<br />
The People will be glad they can click on mailto-links again. Wayhey!</p>

<p>Thanks for reading. Any comments? Submit them below.</p>

<p>Creative Commons photos by: 

http://www.flickr.com/photos/wheatfields/</p>
]]></content:encoded>
			<wfw:commentRss>http://3djegrad.net/blog/2009/05/a-moat-against-spammers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
