<?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 &#187; dev</title>
	<atom:link href="http://3djegrad.net/blog/tag/dev/feed/" rel="self" type="application/rss+xml" />
	<link>http://3djegrad.net/blog</link>
	<description>verden sett fra mine snarveier</description>
	<lastBuildDate>Tue, 09 Nov 2010 13:58:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<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>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>1</slash:comments>
		</item>
		<item>
		<title>Wolfram Alpha</title>
		<link>http://3djegrad.net/blog/2009/03/wolfram-alpha/</link>
		<comments>http://3djegrad.net/blog/2009/03/wolfram-alpha/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 08:56:37 +0000</pubDate>
		<dc:creator>chrleon</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://3djegrad.net/blog/?p=191</guid>
		<description><![CDATA[Ny søkemotor fra Wolfram Research og Stephen Wolfram, personen bak Mathematica. Wolfram er en fremragende fysiker, astronom, multitalent og matematiker &#8211; Wolfram på Wikipedia. Denne søkemotoren, skal være ulik fra de andre, ved at den skal kalkulere svarene dine, og ikke bare gi deg en liste med treff som kan ligne. Ønsket deres er at [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.wolframalpha.com"><img src="http://3djegrad.net/blog/wp-content/uploads/wolfram-alpha.png" alt="wolfram-alpha" title="wolfram-alpha" width="600" height="135" class="alignnone size-full wp-image-192" /></a></p>

<p>Ny søkemotor fra Wolfram Research og Stephen Wolfram, personen bak Mathematica. Wolfram er en fremragende fysiker, astronom, multitalent og matematiker &#8211; <a href="http://en.wikipedia.org/wiki/Stephen_Wolfram">Wolfram på Wikipedia</a>.</p>

<p>Denne søkemotoren, skal være ulik fra de andre, ved at den skal kalkulere svarene dine, og ikke bare gi deg en liste med treff som kan ligne. Ønsket deres er at denne søkemotoren, skal kunne finne svar på spørsmål du spør den om. Så det er ikke en søkemotor på samme måte som Google, men heller noe helt annet, som visstnok er mer peilet inn på kunnskap, enn lenker.</p>

<p>Her er et utdrag fra en <a href="http://blog.wolfram.com/2009/03/05/wolframalpha-is-coming/">lengre bloggpost</a> Stephen Wolfram postet på nettsiden sin 5. mars</p>

<blockquote>
Fifty years ago, when computers were young, people assumed that they’d quickly be able to handle all these kinds of things.  
And that one would be able to ask a computer any factual question, and have it compute the answer.
</blockquote>

<p>Så i mai 2009 braker det løs. Det blir spennende å se hva denne søkemotoren kan levere.<br />
Følg med på <a href="http://wolframalpha.com">wolframalpha.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://3djegrad.net/blog/2009/03/wolfram-alpha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion &#8211; del 1</title>
		<link>http://3djegrad.net/blog/2009/03/subversion-1/</link>
		<comments>http://3djegrad.net/blog/2009/03/subversion-1/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 21:02:20 +0000</pubDate>
		<dc:creator>chrleon</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://3djegrad.net/blog/?p=169</guid>
		<description><![CDATA[Se i prosjektmappene dine. Har du mange filer som heter index.php, index2.php, index3.php, index4.php, index5.php? Da er nok Subversion for deg og meg. Jeg har bestemt meg for å installere Subversion for å drive versjonskontroll på kode jeg skriver. Subversion er OpenSource Version Control System, som lar deg ta vare på alle versjoner av kode, [...]]]></description>
			<content:encoded><![CDATA[<p>Se i prosjektmappene dine. Har du mange filer som heter index.php, index2.php, index3.php, index4.php, index5.php? Da er nok Subversion for deg og meg.</p>

<p>Jeg har bestemt meg for å installere Subversion for å drive versjonskontroll på kode jeg skriver. Subversion er OpenSource Version Control System, som lar deg ta vare på alle versjoner av kode, og gjør at du kan dele prosjektet som et team og alle kan sjekke inn og ut kode. For min del er versjons-styringen det viktigste, ettersom jeg jobber alene på programmeringsprosjekter, og har foreløpig ikke så mye bruk for team-delen.
Les mer på <a href="http://subversion.tigris.org">subversion.tigris.org</a>.</p>

<p><img src="http://3djegrad.net/blog/wp-content/uploads/2009/03/instaaling-svn-macports.jpg" alt="instaaling-svn-macports" title="instaaling-svn-macports" width="600" height="347" class="alignnone size-full wp-image-174" /></p>

<p>Installasjonen av <a href="http://subversion.tigris.org/">Subversion</a> skjer gjennom <a href="http://macports.org">MacPorts</a>, et prosjekt som er laget for å installere og administrere fri kildekode under OS X.</p>

<p>Følg med fremover for mer informasjon om hvordan jeg opplever Subversion.</p>

<h4>Installasjon av Subversion</h4>

<p><a href="http://subversion.tigris.org/">subversion.tigris.org</a> &#8211; her finner du Subversion<br />
<a href="http://macports.org">MacPorts</a> &#8211; er programvare for å installere FLOSS (free software / opensource) under OS X</p>

<h4>GUI for Subversion i OS X &#8211; Både fri og lukket</h4>

<p><a href="http://www.lachoseinteractive.net/en/community/subversion/svnx/features/">svnX</a> &#8211; open source<br />
<a href="http://versionsapp.com/">Versions</a> &#8211; ser unektelig sexy ut. €39 &#8211; demoversjon<br />
<a href="http://www.syncrosvnclient.com/">Syncro SVN Client</a> &#8211; $59 &#8211; årlig avgift</p>

<p>Hva er dine erfaringer med Subversion? Noen gode tips eller fallgruver jeg bør være obs på?</p>
]]></content:encoded>
			<wfw:commentRss>http://3djegrad.net/blog/2009/03/subversion-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion error</title>
		<link>http://3djegrad.net/blog/2009/03/subversion-error/</link>
		<comments>http://3djegrad.net/blog/2009/03/subversion-error/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 17:39:28 +0000</pubDate>
		<dc:creator>chrleon</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[tipstriks]]></category>

		<guid isPermaLink="false">http://3djegrad.net/blog/?p=157</guid>
		<description><![CDATA[This post is mostly for reminding myself as I dive into SubVersion (.svn) for development Dette er mest for min egen del, i tilfelle jeg støter på det når jeg skal sette opp Subversion for utvikling. godkjent av kilde/approved by source: agit8 - &#8211; - Cut from agit8 &#8211; - - While developping our (AGIT8) [...]]]></description>
			<content:encoded><![CDATA[<p>This post is mostly for reminding myself as I dive into SubVersion (.svn) for development<br />
Dette er mest for min egen del, i tilfelle jeg støter på det når jeg skal sette opp Subversion for utvikling.</p>

<p>godkjent av kilde/approved by source: <a href="http://agit8.turbulent.ca/bwp/2008/05/01/flash-cs3-bug-on-mac-os-x-and-subversion-svn-files/">agit8</a></p>

<p style="text-align: center;">- &#8211; - Cut from agit8 &#8211; - -</p>

<p><img class="size-full wp-image-158" title="macosx_flash_error" src="http://3djegrad.net/blog/wp-content/uploads/2009/03/macosx_flash_error.png" alt="macosx_flash_error" width="554" height="234" /></p>

<p>While developping our (AGIT8) latest project we encountered a bug in the Flash IDE that caused us many headaches and woes. Our project was setup in the Flash IDE with assets and files located in subdirectories, nothing fancy. Right on the last day of production, suddenly after a particular commit , our project would no longer compile. Flash would return the standard compiler error: “A definition for the document class could not be found in the classpath, so one will be automatically generated in the SWF file upon export.” The document class is in the same directory as the FLA! What in god’s name is going on!</p>

<p>It turns out Flash is not able find any classes in the project’s directory. Even when creating a new FLA file with a classpath entry to the project’s directory ; the compiler would just refuse to find ANY classes in that particular directory.</p>

<p>After about a day of investigation, we isolated the problem to OSX, as PC checked out working copies of the project would function properly. We also found out that by doing a subversion “EXPORT” of the project (basically removing the .svn files from the project dir) the project would magically start working again.</p>

<p>After another day of headaches and stress we finally figured it out. It seems that under OSX <em>ONLY</em>, if you have a directory in your classpath that is under subversion control (has .svn files) and that any one single directory has over 128 files subversionned, it will make the flash compiler class lookup fail silently and stop. You’ll get the usual compiler error messages for unfound classes.</p>

<p>The solution?</p>

<p>Make sure that no single directory in your project has over 128 files in it under subversion control. If you have one, simply segment it into sub directories and commit.</p>

<p style="text-align: center;">- &#8211; - end blatant copy &#8211; - -</p>
]]></content:encoded>
			<wfw:commentRss>http://3djegrad.net/blog/2009/03/subversion-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

