<?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/"
	>

<channel>
	<title>Unformatt.com</title>
	<atom:link href="http://unformatt.com/news/feed/" rel="self" type="application/rss+xml" />
	<link>http://unformatt.com/news</link>
	<description>Random.</description>
	<pubDate>Wed, 27 Jan 2010 21:03:18 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Disable Enter Button for a Form in jQuery</title>
		<link>http://unformatt.com/news/disable-enter-button-for-a-form-in-jquery/</link>
		<comments>http://unformatt.com/news/disable-enter-button-for-a-form-in-jquery/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 21:03:18 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
		
		<category><![CDATA[ajax]]></category>

		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://unformatt.com/news/?p=31</guid>
		<description><![CDATA[
$("#form").keypress(function(e){ return e.which != 13; });

]]></description>
			<content:encoded><![CDATA[<p><code><br />
$("#form").keypress(function(e){ return e.which != 13; });<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://unformatt.com/news/disable-enter-button-for-a-form-in-jquery/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Checkboxes and Vertical Text Alignment</title>
		<link>http://unformatt.com/news/checkboxes-and-vertical-text-alignment/</link>
		<comments>http://unformatt.com/news/checkboxes-and-vertical-text-alignment/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 19:58:10 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
		
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://unformatt.com/news/checkboxes-and-vertical-text-alignment/</guid>
		<description><![CDATA[You set the vertical-align on the checkbox, not the parent div or the text. Intuitive. Works in Firefox and IE.

&#60;style&#62;
    * {
        font-size: 10px;
    }
    #cb {
        vertical-align: text-bottom;
    [...]]]></description>
			<content:encoded><![CDATA[<p>You set the vertical-align on the checkbox, not the parent div or the text. Intuitive. Works in Firefox and IE.</p>
<pre>
&lt;style&gt;
    * {
        font-size: 10px;
    }
    #cb {
        vertical-align: text-bottom;
        _vertical-align: middle;
        padding: 0 !important;
        margin: 0 !important;
    }
&lt;/style&gt;
&lt;div&gt;
    &lt;input id="cb" type="checkbox"/&gt; Checkbox
&lt;/div&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://unformatt.com/news/checkboxes-and-vertical-text-alignment/feed/</wfw:commentRss>
		</item>
		<item>
		<title>mod_rewrite During Site Maintenance by IP Address</title>
		<link>http://unformatt.com/news/mod_rewrite-during-site-maintenance-by-ip-address/</link>
		<comments>http://unformatt.com/news/mod_rewrite-during-site-maintenance-by-ip-address/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 18:58:50 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
		
		<category><![CDATA[admin]]></category>

		<category><![CDATA[apache]]></category>

		<guid isPermaLink="false">http://unformatt.com/news/mod_rewrite-during-site-maintenance-by-ip-address/</guid>
		<description><![CDATA[If you are performing site maintenance, you can redirect all users to a maintenance page while letting yourself through by IP address:
.htaccess

# If user IP is NOT 123.123.123.123, then redirect to maintenance.html
# (Don't forget to escape the dots)
RewriteCond %{REMOTE_ADDR} !123\\.123\\.123\\.123
RewriteRule .* /maintenance.html [L]

]]></description>
			<content:encoded><![CDATA[<p>If you are performing site maintenance, you can redirect all users to a maintenance page while letting yourself through by IP address:</p>
<p><strong>.htaccess</strong></p>
<pre>
# If user IP is NOT 123.123.123.123, then redirect to maintenance.html
# (Don't forget to escape the dots)
RewriteCond %{REMOTE_ADDR} !123\\.123\\.123\\.123
RewriteRule .* /maintenance.html [L]
</pre>
]]></content:encoded>
			<wfw:commentRss>http://unformatt.com/news/mod_rewrite-during-site-maintenance-by-ip-address/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Non-Standard SSH Ports with Tortoise SVN</title>
		<link>http://unformatt.com/news/non-standard-ssh-ports-with-tortoise-svn/</link>
		<comments>http://unformatt.com/news/non-standard-ssh-ports-with-tortoise-svn/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 18:49:07 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
		
		<category><![CDATA[hacks]]></category>

		<category><![CDATA[ssh]]></category>

		<category><![CDATA[svn]]></category>

		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://unformatt.com/news/non-standard-ssh-ports-with-tortoise-svn/</guid>
		<description><![CDATA[Supernifty shows a quick hack for this but it doesn&#8217;t work for multiple SVN servers. So you can take it one step further and put a batch script in between which will let you enter the port number in your connection string and it will pull it out and pass it to TortoisePlink. Save this [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.supernifty.com.au/blog/2007/09/27/hack-it-1-change-the-tortoisesvn-ssh-port/">Supernifty</a> shows a quick hack for this but it doesn&#8217;t work for multiple SVN servers. So you can take it one step further and put a batch script in between which will let you enter the port number in your connection string and it will pull it out and pass it to TortoisePlink. Save this script as something like ssh_router.bat and then go to TortoiseSVN->Settings->Network and set the SSH client to ssh_router.bat. Now you can pass this type of connection string to Tortoise: <strong>svn+ssh://user@host.com:123456/svn/blah/</strong></p>
<pre>
@echo off
set HOST=%1
set PORT=%HOST:*:=%

IF [%PORT%]==[%HOST%] (
    set PORT=22
)

c:\\Progra~1\\TortoiseSVN\\bin\\TortoisePlink.exe -P %PORT% %HOST% %2 %3</pre>
<p><span id="more-27"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://unformatt.com/news/non-standard-ssh-ports-with-tortoise-svn/feed/</wfw:commentRss>
		</item>
		<item>
		<title>AS3: MP3 Player</title>
		<link>http://unformatt.com/news/as3-mp3-player/</link>
		<comments>http://unformatt.com/news/as3-mp3-player/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 21:20:12 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
		
		<category><![CDATA[as3]]></category>

		<category><![CDATA[audio]]></category>

		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://unformatt.com/news/as3-mp3-player/</guid>
		<description><![CDATA[Usage:

var player:Mp3Player =  new Mp3Player();
player.play('blah.mp3');
or
var player:Mp3Player =  new Mp3Player();
player.playlist = ['item1.mp3','item2.mp3'];
player.next();


package {
	import flash.events.Event;
	import flash.events.EventDispatcher;
	import flash.media.Sound;
	import flash.media.SoundChannel;
	import flash.media.SoundTransform;
	import flash.net.URLRequest;
	import flash.utils.clearInterval;
	import flash.utils.setInterval;		

	public class Mp3Player extends EventDispatcher {

		static public const EVENT_TIME_CHANGE:String = 'Mp3Player.TimeChange';
		static public const EVENT_VOLUME_CHANGE:String = 'Mp3Player.VolumeChange';
		static public const EVENT_PAN_CHANGE:String = 'Mp3Player.PanningChange';
		static public const EVENT_PAUSE:String = 'Mp3Player.Pause';
		static public const EVENT_UNPAUSE:String = 'Mp3Player.Unpause';
		static public const EVENT_PLAY:String [...]]]></description>
			<content:encoded><![CDATA[<p>Usage:</p>
<p><code><br />
var player:Mp3Player =  new Mp3Player();<br />
player.play('blah.mp3');<br />
or<br />
var player:Mp3Player =  new Mp3Player();<br />
player.playlist = ['item1.mp3','item2.mp3'];<br />
player.next();<br />
</code></p>
<pre>
package {
	import flash.events.Event;
	import flash.events.EventDispatcher;
	import flash.media.Sound;
	import flash.media.SoundChannel;
	import flash.media.SoundTransform;
	import flash.net.URLRequest;
	import flash.utils.clearInterval;
	import flash.utils.setInterval;		

	public class Mp3Player extends EventDispatcher {

		static public const EVENT_TIME_CHANGE:String = 'Mp3Player.TimeChange';
		static public const EVENT_VOLUME_CHANGE:String = 'Mp3Player.VolumeChange';
		static public const EVENT_PAN_CHANGE:String = 'Mp3Player.PanningChange';
		static public const EVENT_PAUSE:String = 'Mp3Player.Pause';
		static public const EVENT_UNPAUSE:String = 'Mp3Player.Unpause';
		static public const EVENT_PLAY:String = 'Mp3Player.Play';
		//
		public var playing:Boolean;
		public var playlist:Array;
		public var currentUrl:String;
		public var playlistIndex:int = -1;
		//
		protected var sound:Sound;
		protected var soundChannel:SoundChannel;
		protected var soundTrans:SoundTransform;
		protected var progressInt:Number;

		public function play( url:String ):void {
			clearInterval(progressInt);
			if ( sound ) {
				soundChannel.stop();
			}
			currentUrl = url;
			sound = new Sound();
			sound.addEventListener(Event.COMPLETE, onLoadSong);
			sound.addEventListener(Event.ID3, onId3Info);

			sound.load(new URLRequest(currentUrl));

			soundChannel = sound.play();
			if ( soundTrans ) {
				soundChannel.soundTransform = soundTrans;
			} else {
				soundTrans = soundChannel.soundTransform;
			}
			soundChannel.addEventListener(Event.COMPLETE, onSongEnd);
			playing = true;
			clearInterval(progressInt);
			progressInt = setInterval(updateProgress, 30);
			dispatchEvent(new Event(EVENT_PLAY));
		}
		public function pause():void {
			if ( soundChannel ) {
				soundChannel.stop();
				dispatchEvent(new Event(EVENT_PAUSE));
				playing = false;
			}
		}
		public function unpause():void {
			if ( playing ) return;
			if ( soundChannel.position < sound.length ) {
				soundChannel = sound.play(soundChannel.position);
				soundChannel.soundTransform = soundTrans;
			} else {
				soundChannel = sound.play();
			}
			dispatchEvent(new Event(EVENT_UNPAUSE));
			playing = true;
		}
		public function seek( percent:Number ):void {
			soundChannel.stop();
			soundChannel = sound.play(sound.length * percent);
		}
		public function prev():void {
			playlistIndex--;
			if ( playlistIndex < 0 ) playlistIndex = playlist.length - 1;
			play(playlist[playlistIndex]);
		}
		public function next():void {
			playlistIndex++;
			if ( playlistIndex == playlist.length ) playlistIndex = 0;
			play(playlist[playlistIndex]);
		}
		public function get volume():Number {
			if (!soundTrans) return 0;
			return soundTrans.volume;
		}
		public function set volume( n:Number ):void {
			if ( !soundTrans ) return;
			soundTrans.volume = n;
			soundChannel.soundTransform = soundTrans;
			dispatchEvent(new Event(EVENT_VOLUME_CHANGE));
		}
		public function get pan():Number {
			if (!soundTrans) return 0;
			return soundTrans.pan;
		}
		public function set pan( n:Number ):void {
			if ( !soundTrans ) return;
			soundTrans.pan = n;
			soundChannel.soundTransform = soundTrans;
			dispatchEvent(new Event(EVENT_PAN_CHANGE));
		}
		public function get length():Number {
			return sound.length;
		}
		public function get time():Number {
			return soundChannel.position;
		}
		public function get timePretty():String {
			var secs:Number = soundChannel.position / 1000;
			var mins:Number = Math.floor(secs / 60);
			secs = Math.floor(secs % 60);
			return mins + ":" + (secs < 10 ? "0" : "") + secs;
		}
		public function get timePercent():Number {
			if ( !sound.length ) return 0;
			return soundChannel.position / sound.length;
		}
		protected function onLoadSong( e:Event ):void {
		}
		protected function onSongEnd( e:Event ):void {
			if ( playlist )
				next();
		}
		protected function onId3Info( e:Event ):void {
			dispatchEvent(new Event(Event.ID3, e.target.id3));
		}
		protected function updateProgress():void {
			dispatchEvent(new Event(EVENT_TIME_CHANGE));
			if ( timePercent >= .99 ) {
				onSongEnd(new Event(Event.COMPLETE));
				clearInterval(progressInt);
			}
		}
	}
}
</pre>
<p><span id="more-19"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://unformatt.com/news/as3-mp3-player/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wordpress Resizes &#8220;Full Size&#8221; Images to 500px</title>
		<link>http://unformatt.com/news/wordpress-resizes-full-size-images-to-500px/</link>
		<comments>http://unformatt.com/news/wordpress-resizes-full-size-images-to-500px/#comments</comments>
		<pubDate>Tue, 06 May 2008 16:22:25 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
		
		<category><![CDATA[admin]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://unformatt.com/news/wordpress-resizes-full-size-images-to-500px/</guid>
		<description><![CDATA[I edited a Wordpress template so that the width of the body content was 730px. But when I inserted images and selected &#8220;full size&#8221;, the stupid thing still inserts &#60;img width=&#8221;500&#8243;&#8230;/&#62;. This can be fixed by adding this to your theme&#8217;s functions.php:

$GLOBALS['content_width'] = 730;

]]></description>
			<content:encoded><![CDATA[<p>I edited a Wordpress template so that the width of the body content was 730px. But when I inserted images and selected &#8220;full size&#8221;, the stupid thing still inserts <b>&lt;img width=&#8221;500&#8243;&#8230;/&gt;</b>. This can be fixed by adding this to your theme&#8217;s functions.php:</p>
<pre>
$GLOBALS['content_width'] = 730;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://unformatt.com/news/wordpress-resizes-full-size-images-to-500px/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Incremental Backups with rsync and Python</title>
		<link>http://unformatt.com/news/incremental-backups-with-rsync-and-python/</link>
		<comments>http://unformatt.com/news/incremental-backups-with-rsync-and-python/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 21:04:32 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
		
		<category><![CDATA[admin]]></category>

		<category><![CDATA[backups]]></category>

		<category><![CDATA[python]]></category>

		<category><![CDATA[scripts]]></category>

		<guid isPermaLink="false">http://unformatt.com/news/incremental-backups-with-rsync-and-python/</guid>
		<description><![CDATA[This uses rsync to do an incremental backup to another drive. You could easily change this to do remote backups. It uses rsync&#8217;s &#8211;backup and &#8211;backup-dir arguments which will keep incremental backups. The latest backup will have all your files. Older backups will have the old versions of changed files. e.g. if you only changed [...]]]></description>
			<content:encoded><![CDATA[<p>This uses <a href="http://samba.anu.edu.au/rsync/download.html">rsync</a> to do an incremental backup to another drive. You could easily change this to do remote backups. It uses rsync&#8217;s <strong>&#8211;backup</strong> and <strong>&#8211;backup-dir</strong> <a href="http://www.samba.org/ftp/rsync/rsync.html">arguments</a> which will keep incremental backups. The latest backup will have all your files. Older backups will have the old versions of changed files. e.g. if you only changed blah.txt the latest folder will have all your files, while the folder from the day before will only have the old blah.txt. </p>
<p>This is meant to be run once a day, no more no less. Else, it will not work.<br />
You&#8217;ll end up with a folder structure like this:<br />
backups/20080428<br />
backups/20080429<br />
backups/20080430<br />
etc</p>
<p>Python script is below:<br />
<span id="more-22"></span></p>
<pre>
#!python

# Folders to Backup
SOURCE_DIRS=( "C:/Backups", "C:/OtherStuff" )

# Backup to: (maybe ssh would work here, I haven't tried it)
BACKUP_DIR="D:/"

######################################################

import datetime
import platform
import os

IS_WINDOWS = platform.uname()[0]=='Windows'

# Make backup dir, should only happen once
if not os.path.isdir( BACKUP_DIR ):
    os.mkdir( BACKUP_DIR )

today = datetime.datetime.today()
yesterday = today - datetime.timedelta(1)

today_tstamp = '%d%02d%02d' % (today.year,today.month,today.day)
yesterday_tstamp = '%d%02d%02d' % (yesterday.year,yesterday.month,yesterday.day)

today_folder = '%s/%s' % (BACKUP_DIR,today_tstamp)
yesterday_folder = '%s/%s' % (BACKUP_DIR,yesterday_tstamp)

if os.path.isdir( yesterday_folder ):
    os.system('mv %s %s' % (yesterday_folder,today_folder))
    os.mkdir( yesterday_folder )
else:
    os.mkdir( today_folder )

# Stupid Windows Fix for Cygwin
if IS_WINDOWS:
    today_folder = today_folder.split(':')
    today_folder = '/cygdrive/%s%s' % (today_folder[0],today_folder[1])

for SOURCE_DIR in SOURCE_DIRS:

    # Stupid Windows Fix for Cygwin
	if IS_WINDOWS:
    	SOURCE_DIR = SOURCE_DIR.split(':')
    	SOURCE_DIR = '/cygdrive/%s%s' % (SOURCE_DIR[0],SOURCE_DIR[1])

    print "%s --> %s" % (SOURCE_DIR,today_folder)

    rsync_options="-v -r -a --delete --backup --exclude=.svn --delete-excluded --backup-dir=%s" % yesterday_folder
    rsync_cmd = 'rsync %s %s %s' % (rsync_options,SOURCE_DIR,today_folder)

    os.system(rsync_cmd)
</pre>
]]></content:encoded>
			<wfw:commentRss>http://unformatt.com/news/incremental-backups-with-rsync-and-python/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Windows: Map CAPS LOCK to Windows Key</title>
		<link>http://unformatt.com/news/window-map-caps-lock-to-windows-key/</link>
		<comments>http://unformatt.com/news/window-map-caps-lock-to-windows-key/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 20:13:37 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
		
		<category><![CDATA[hacks]]></category>

		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://unformatt.com/news/window-map-caps-lock-to-windows-key/</guid>
		<description><![CDATA[Make your CAPS LOCK key trigger the Windows Key instead, then install something like Launchy.
Save as caps.reg, then double click to import into Registry.

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,5c,e0,3a,00,00,00,00,00

]]></description>
			<content:encoded><![CDATA[<p>Make your CAPS LOCK key trigger the <a href="http://en.wikipedia.org/wiki/Windows_key">Windows Key</a> instead, then install something like <a href="http://www.launchy.net/">Launchy</a>.</p>
<p>Save as caps.reg, then double click to import into Registry.</p>
<pre>
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,5c,e0,3a,00,00,00,00,00
</pre>
]]></content:encoded>
			<wfw:commentRss>http://unformatt.com/news/window-map-caps-lock-to-windows-key/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SSH Automatic Login with Public/Private Keys</title>
		<link>http://unformatt.com/news/ssh-automatic-login-with-publicprivate-keys/</link>
		<comments>http://unformatt.com/news/ssh-automatic-login-with-publicprivate-keys/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 21:35:14 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://unformatt.com/news/ssh-automatic-login-with-publicprivate-keys/</guid>
		<description><![CDATA[Some people like to create ssh keys in addition to entering their password for double security. I am not one of these people - I am sick of typing my damn password.

&#35; Create public and private key files
ssh-keygen -b 1024 -f identity -P '' -t dsa

&#35; Copy it to the server you want to connect [...]]]></description>
			<content:encoded><![CDATA[<p>Some people like to create ssh keys in addition to entering their password for double security. I am not one of these people - I am sick of typing my damn password.</p>
<pre>
&#35; Create public and private key files
ssh-keygen -b 1024 -f identity -P '' -t dsa

&#35; Copy it to the server you want to connect to sans password
scp identity.pub user@SERVERNAME:~/identity.pub

&#35; SSH to the server, add new key to authorized_keys
ssh user@SERVERNAME
mkdir .ssh
cat identity.pub >> .ssh/authorized_keys
chmod 400 .ssh/authorized_keys
exit

&#35; Test it out
ssh -i identity user@SERVERNAME
</pre>
<p><span id="more-20"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://unformatt.com/news/ssh-automatic-login-with-publicprivate-keys/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Eclipse: The memory could not be &#8220;read&#8221;</title>
		<link>http://unformatt.com/news/eclipse-the-memory-could-not-be-read/</link>
		<comments>http://unformatt.com/news/eclipse-the-memory-could-not-be-read/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 05:34:08 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
		
		<category><![CDATA[eclipse]]></category>

		<category><![CDATA[fdt]]></category>

		<category><![CDATA[hacks]]></category>

		<category><![CDATA[wtf]]></category>

		<guid isPermaLink="false">http://unformatt.com/news/eclipse-the-memory-could-not-be-read/</guid>
		<description><![CDATA[Eclipse started giving me this error when I tried to open it. Who knows why - no new plugins, projects, etc.

The instruction at "0x7c93426d" referenced memory
at "0x00000000". The memory could not be "read".

Click on OK to terminate the program
Click on CANCEL to debug the program

Then I vaguely remembered editing a .ini file for Eclipse once [...]]]></description>
			<content:encoded><![CDATA[<p>Eclipse started giving me this error when I tried to open it. Who knows why - no new plugins, projects, etc.</p>
<pre>
The instruction at "0x7c93426d" referenced memory
at "0x00000000". The memory could not be "read".

Click on OK to terminate the program
Click on CANCEL to debug the program
</pre>
<p>Then I vaguely remembered editing a .ini file for Eclipse once and it had something to do with memory allocation. I opened eclipse.ini in my Eclipse folder and just added another line, which doubled the previous number. The last line said <em>-Xmx512m</em>, so I added <em>-Xmx1024m</em>&#8230;&#8230; and this actually worked. I ended up with this <strong>eclipse.ini</strong>:</p>
<pre>
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
128M
-vmargs
-Xms40m
-Xmx256m
-Xmx512m
-Xmx1024m
</pre>
<p>I have almost no idea WTF. I&#8217;m sure the answer is in <a href="http://forum.java.sun.com/thread.jspa?threadID=678366&#038;messageID=3957743">here</a> somewhere.</p>
<p><span id="more-18"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://unformatt.com/news/eclipse-the-memory-could-not-be-read/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
