<?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>everburning &#187; Everburning</title>
	<atom:link href="http://everburning.com/news/category/everburning/feed/" rel="self" type="application/rss+xml" />
	<link>http://everburning.com</link>
	<description>picking at the fringes of reality</description>
	<lastBuildDate>Wed, 04 Jan 2012 18:42:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Still kicking</title>
		<link>http://everburning.com/news/still-kicking/</link>
		<comments>http://everburning.com/news/still-kicking/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 02:19:22 +0000</pubDate>
		<dc:creator>dj2</dc:creator>
				<category><![CDATA[Everburning]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Odin]]></category>

		<guid isPermaLink="false">http://everburning.com/?p=338</guid>
		<description><![CDATA[<p>Well, as usual, it&#8217;s been quite a while since I last posted. Lots going on the past month or two. As you know, I got a job a <a href="http://aiderss.com">AideRSS</a> where I&#8217;ve been having a lot of fun working with Rails, MySQL, Ruby and a few other bits. Lots of interesting stuff happening on both the front and back-end systems.</p>
<p>Along with the job, we&#8217;ve moved into our new house in Waterloo. <a href="http://perplexity.org">Stacy</a> and I have been busy unpacking and organizing stuff for the last couple of weeks. Most stuff is sorted out now I think, Canada Post finally found our mail from the two week hold they had on stuff and both of us are settling in pretty well. Just waiting on the last few pieces of furniture to arrive.</p>
<p><a href="http://everburning.com/wp-content/uploads/2008/09/2896374351_f9caa4236e.jpg"><img src="http://everburning.com/wp-content/uploads/2008/09/2896374351_f9caa4236e-300x199.jpg" alt="" title="2896374351_f9caa4236e" width="300" height="199" class="alignleft size-medium wp-image-339" /></a>Since we&#8217;ve finally got a house, and a bit of a yard, we picked up a puppy on Saturday. We got ourselves a little Welsh Corgi which we&#8217;ve named Odin. He&#8217;s been a lot of fun so far. Lots of energy and lots of sleep seem to be the orders of the day.</p>
<p>There have been lots of other fun side trips, losing of Foosball tournaments, wine tasting and other goings on that I&#8217;m leaving out at the moment.</p>
<p>Hopefully I&#8217;ll get back into some more regularly schedule writing now that things are starting to settle down. Although, I appear to be getting volunteered to do a presentation at <a href="http://devwaterloo.pbwiki.com/">DevWaterloo</a> tomorrow so we&#8217;ll see what happens.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fstill-kicking%2F&amp;title=Still+kicking" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fstill-kicking%2F&amp;title=Still+kicking" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fstill-kicking%2F&amp;title=Still+kicking" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fstill-kicking%2F&amp;title=Still+kicking" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fstill-kicking%2F&amp;title=Still+kicking', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fstill-kicking%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fstill-kicking%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fstill-kicking%2F&amp;title=Still+kicking" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fstill-kicking%2F&amp;title=Still+kicking" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></description>
			<content:encoded><![CDATA[<p>Well, as usual, it&#8217;s been quite a while since I last posted. Lots going on the past month or two. As you know, I got a job a <a href="http://aiderss.com">AideRSS</a> where I&#8217;ve been having a lot of fun working with Rails, MySQL, Ruby and a few other bits. Lots of interesting stuff happening on both the front and back-end systems.</p>
<p>Along with the job, we&#8217;ve moved into our new house in Waterloo. <a href="http://perplexity.org">Stacy</a> and I have been busy unpacking and organizing stuff for the last couple of weeks. Most stuff is sorted out now I think, Canada Post finally found our mail from the two week hold they had on stuff and both of us are settling in pretty well. Just waiting on the last few pieces of furniture to arrive.</p>
<p><a href="http://everburning.com/wp-content/uploads/2008/09/2896374351_f9caa4236e.jpg"><img src="http://everburning.com/wp-content/uploads/2008/09/2896374351_f9caa4236e-300x199.jpg" alt="" title="2896374351_f9caa4236e" width="300" height="199" class="alignleft size-medium wp-image-339" /></a>Since we&#8217;ve finally got a house, and a bit of a yard, we picked up a puppy on Saturday. We got ourselves a little Welsh Corgi which we&#8217;ve named Odin. He&#8217;s been a lot of fun so far. Lots of energy and lots of sleep seem to be the orders of the day.</p>
<p>There have been lots of other fun side trips, losing of Foosball tournaments, wine tasting and other goings on that I&#8217;m leaving out at the moment.</p>
<p>Hopefully I&#8217;ll get back into some more regularly schedule writing now that things are starting to settle down. Although, I appear to be getting volunteered to do a presentation at <a href="http://devwaterloo.pbwiki.com/">DevWaterloo</a> tomorrow so we&#8217;ll see what happens.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fstill-kicking%2F&amp;title=Still+kicking" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fstill-kicking%2F&amp;title=Still+kicking" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fstill-kicking%2F&amp;title=Still+kicking" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fstill-kicking%2F&amp;title=Still+kicking" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fstill-kicking%2F&amp;title=Still+kicking', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fstill-kicking%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fstill-kicking%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fstill-kicking%2F&amp;title=Still+kicking" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fstill-kicking%2F&amp;title=Still+kicking" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://everburning.com/news/still-kicking/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Going Fullscreen With Medium</title>
		<link>http://everburning.com/news/going-fullscreen-with-medium/</link>
		<comments>http://everburning.com/news/going-fullscreen-with-medium/#comments</comments>
		<pubDate>Fri, 09 May 2008 13:52:30 +0000</pubDate>
		<dc:creator>dj2</dc:creator>
				<category><![CDATA[Everburning]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Medium]]></category>

		<guid isPermaLink="false">http://everburning.com/?p=153</guid>
		<description><![CDATA[<p>So, I&#8217;ve started to write another Mac media application. This one is called Medium. I figure I might as well write some of this stuff down as I do it as I&#8217;m learning most of it along the way.  If you&#8217;re looking for Medium you can get the source from the <a href="http://github.com/dj2/medium">repository</a> hosted at <a href="http://github.com">GitHub</a>.  There is also a <a href="http://everburning.lighthouseapp.com/">bug tracker</a> setup thanks to <a href="http://lighthouseapp.com">LightHouse</a>.</p>
<p>Given that I&#8217;ve started this on about 4 separate occasions I&#8217;ve got a bit of random code sitting around that I&#8217;ll probably recycle during this exercise. One of the bits is to switch between fullscreen and windowed mode for the application.</p>
<p>The first version of this I had was pretty complicated and convoluted. Thankfully, with the release of Leopard (or was it one of the Tiger point releases?) going fullscreen in a Cocoa application got a lot easier.</p>
<p>Here&#8217;s what we&#8217;re going to be doing. We&#8217;re going to create an application that can go fullscreen. We&#8217;ll use the defaults controller to store if it should start fullscreen or windowed. If the users resizes the window in windowed mode we&#8217;ll remember the window size for the next restart. When we switch to fullscreen or to windowed mode we&#8217;ll fade the screen to black and back again.  We&#8217;ll also setup a default property for picking the screen the application should appear on (although, as I don&#8217;t have a second monitor pulled into my PowerBook at the moment this will remain untested).</p>
<p>With that, on with the show.</p>
<p>We&#8217;ll get started by creating a new XCode project. We&#8217;ll be using a <em>Cocoa Application</em> as the basis for the project. I&#8217;m going to call mine MediumFS, you&#8217;re free to use what you want.</p>
<p>We&#8217;re going to be using three objects for this application:</p>
<ol>
<li><em>MediumApplication</em> &#8212; The NSApplication subclass</li>
<li><em>MediumController</em> &#8212; The controller</li>
<li><em>MediumConfig</em> &#8212; Our configuration class</li>
</ol>
<p>Lets go ahead and ctrl-click on the <em>classes</em> item in the sidebar and select <em>Add -> File &#8230;</em>. We&#8217;ll then select the <em>Objective-C class</em> for each item.</p>
<p><a href='http://everburning.com/wp-content/uploads/2008/05/add_new_file.png'><img src="http://everburning.com/wp-content/uploads/2008/05/add_new_file-300x191.png" alt="" title="XCode Add New File" width="300" height="191" class="alignleft size-medium wp-image-154" /></a></p>
<p>With our files created we&#8217;re going to setup the application to use our <em>MediumApplication</em> as the Principle Class. The first thing we need to do is change the parent class of <em>MediumApplication</em> to be <em>NSApplication</em> instead of <em>NSObject</em>. That&#8217;s actually the only change we&#8217;ll need to make in <em>MediumApplication.h</em>. You should end up with something similar to:</p>
<pre>
#import <cocoa /Cocoa.h>

@interface MediumApplication : NSApplication
{
}
@end
</cocoa></pre>
<p>Now, in the <em>Resourses</em> section open the <em>Info.plist</em> file.  Under the key <em>NSPrincipleClass</em> change the <em>string</em> value to be <em>MediumApplication</em> instead of <em>NSApplication</em>.</p>
<p>With that we&#8217;ve setup our <em>MediumApplication</em> class to be the main class in Principle Class for the application. We&#8217;ll now fill in some application code to handle processing key events so we can pull out the apple-f key press.</p>
<p>There are two methods we&#8217;ll implement in <em>MediumApplication</em>: <code>- (void)sendEvent:(NSEvent *)ev</code> and <code>- (BOOL)handleKeyDownEvent:(NSEvent *)ev</code>.  The sendEvent will be overriding the parent class implemention. handleKeyDownEvent is a private helper method.</p>
<pre>
- (void)sendEvent:(NSEvent *)ev
{
    int handled = FALSE;
    if (([ev type] == NSKeyDown) &#038;&#038; ([self handleKeyDownEvent:ev]))
        handled = TRUE;

    if (!handled)
        [super sendEvent:ev];
}
</pre>
<p>sendEvent is pretty simple. If we&#8217;re dealing with a <em>NSKeyDown</em> event we&#8217;ll pass the event to our handleKeyDownEvent method. If handleKeyDownEvent  processes the event it will return TRUE. If this isn&#8217;t the case we&#8217;ll pass the event up to our parent, <em>NSApplication</em> in this case.</p>
<pre>
- (BOOL)handleKeyDownEvent:(NSEvent *)ev
{
    BOOL handled = FALSE;
    NSString *notice = nil;
    unichar key = [[ev charactersIgnoringModifiers] characterAtIndex:0];

    /* apple-f for fullscreen */
    if ((key == 0x66) &#038;&#038; ([ev modifierFlags] &#038; NSCommandKeyMask))
        notice = @"Medium/Notice/Fullscreen";

    if (notice)
    {
        [[NSNotificationCenter defaultCenter]
                            postNotificationName:notice
                            object:nil
                            userInfo:nil];
        handled = TRUE;
    }
    return handled;
}
</pre>
<p>When handleKeyDownEvent is called we&#8217;ll pull the key pressed out of the event with <em>charactersIgnoringModifiers:</em> and we&#8217;ll grab the first character that&#8217;s returned. If that character is <em>0&#215;66</em> or <em>f</em> and the <em>NSCommandKeyMask</em> modifier is set in the event we&#8217;ve got our apple-f.</p>
<p>With that, if we&#8217;ve found something to send a notification about we&#8217;ll post it to the <em>NSNotificationCenter</em> for anyone that&#8217;s interesting to pick up on.</p>
<p>That&#8217;s it for our application class.</p>
<p>Moving on we&#8217;ll setup or configuration object, <em>MediumConfig</em>. <em>MediumConfig</em> is basically a wrapper around <em>NSUserDefaults</em> which allows me to get the defaults with function calls instead of having the keys everywhere in my application.</p>
<pre>
#import <cocoa /Cocoa.h>

@interface MediumConfig : NSObject
{
    NSUserDefaults *defaults;
}

+(MediumConfig *)instance;

-(int)screen;
-(void)setScreen:(int)screen;

-(BOOL)fullscreen;
-(void)setFullscreen:(BOOL)fullscreen;

-(void)windowDimensionsWidth:(int *)width height:(int *)height;
-(void)setWindowDimensionsWidth:(int)width height:(int)height;
@end
</cocoa></pre>
<p>The <em>MediumConfig</em> object is a singleton so we provide an <em>instance:</em> method to retrieve the object. The rest of the class are just the accessors for the different configuration variables we care about.</p>
<pre>
#import "MediumConfig.h"

#define MediumScreenKey @"Medium/Screen"
#define MediumFullscreenKey @"Medium/Fullscreen"
#define MediumWindowDimensionWidth @"Medium/Window/Dimension/Width"
#define MediumWindowDimensionHeight @"Medium/Window/Dimension/Height"

static MediumConfig *medium_config = nil;

@implementation MediumConfig

+(MediumConfig *)instance
{
    if (medium_config) return medium_config;
    return (medium_config = [[MediumConfig alloc] init]);
}

-(id) init
{
    if ((self = [super init]))
    {
        NSMutableDictionary *defaultValues = [NSMutableDictionary dictionary];

        [defaultValues setObject:[NSNumber numberWithBool:FALSE]
                          forKey:MediumFullscreenKey];
        [defaultValues setObject:[NSNumber numberWithInt:0]
                          forKey:MediumScreenKey];

        /* setting these to -1 will cause the code to calcuate a good window size */
        [defaultValues setObject:[NSNumber numberWithInt:-1]
                          forKey:MediumWindowDimensionWidth];
        [defaultValues setObject:[NSNumber numberWithInt:-1]
                          forKey:MediumWindowDimensionHeight];

        [[NSUserDefaults standardUserDefaults] registerDefaults:defaultValues];

        defaults = [NSUserDefaults standardUserDefaults];
    }
    return self;
}

-(int)screen
{
    return [defaults integerForKey:MediumScreenKey];
}

-(void)setScreen:(int)screen
{
    [defaults setInteger:screen forKey:MediumScreenKey];
}

-(BOOL)fullscreen
{
    return [defaults boolForKey:MediumFullscreenKey];
}

-(void)setFullscreen:(BOOL)fullscreen
{
    [defaults setBool:fullscreen forKey:MediumFullscreenKey];
}

-(void)windowDimensionsWidth:(int *)width height:(int *)height
{
    if (width) *width = [defaults integerForKey:MediumWindowDimensionWidth];
    if (height) *height = [defaults integerForKey:MediumWindowDimensionHeight];
}

-(void)setWindowDimensionsWidth:(int)width height:(int)height
{
    [defaults setInteger:width forKey:MediumWindowDimensionWidth];
    [defaults setInteger:height forKey:MediumWindowDimensionHeight];
}

@end
</pre>
<p>The implementation is also pretty simple. We set a few default values into our user defaults hash and the accessors are just wrappers around the calls into the <em>NSUserDefaults</em> object. Nothing special to see here. Oh, as a side note, I&#8217;m allowing the user to pass a <em>nil</em> into the <em>windowDimensionsWidth:height:</em> method. I wasn&#8217;t sure if you&#8217;d always need both values and this just seemed easier in the long run.</p>
<p>Finally, onto the interesting bit, <em>MediumController</em>. We&#8217;re going to store references to the main window, a <em>CGDisplayFadeReservationToken</em> which I&#8217;ll discuss later and to our configuration.</p>
<pre>
#import <cocoa /Cocoa.h>
#import "MediumConfig.h"

@interface MediumController : NSObject
{
    NSWindow *win;
    CGDisplayFadeReservationToken tok;  /** Fade out/in token */

    MediumConfig *cfg;
}

@end
</cocoa></pre>
<p>With the header file created we&#8217;re going to do some work in Interface Builder. Double click on the <em>MainMenu.nib</em> file in the <em>Resources</em> section.  </p>
<p>When interface launches you&#8217;ll see a few windows popup. One of which will be the control window (at least, that&#8217;s what I call it).</p>
<p><a href='http://everburning.com/wp-content/uploads/2008/05/ib_control_window.png'><img src="http://everburning.com/wp-content/uploads/2008/05/ib_control_window-300x179.png" alt="" title="Interface Builder Control Window" width="300" height="179" class="size-medium wp-image-155" /></a></p>
<p>We don&#8217;t actually need the <em>Window (window)</em> item so we can click on that and hit delete. We&#8217;re going to be creating the window manually in the controller.</p>
<p>The next step is to create an instance of our <em>MediumController</em> in Interface Builder. This is done by dragging an <em>Object</em> controller from the library to our control window.</p>
<p><a href='http://everburning.com/wp-content/uploads/2008/05/ib_library_window.png'><img src="http://everburning.com/wp-content/uploads/2008/05/ib_library_window-225x300.png" alt="" title="Interface Builder Library Window" width="225" height="300" class="size-medium wp-image-157" /></a></p>
<p>If the inspector isn&#8217;t open already click on the new object and press shift-apple-i. In the inspector press apple-6 to make sure you&#8217;re in the identity section. Set the <em>Class</em> field to <em>MediumController</em>.</p>
<p>In the control window ctrl-click on the <em>File&#8217;s Owner</em> object and drag the mouse over the <em>Medium Controller</em> object. You should have a popup appear. Click on the <em>delegate</em> entry. We&#8217;ll now receive notifications in our controller as the application changes state.</p>
<p><a href='http://everburning.com/wp-content/uploads/2008/05/ib_delegate_popup.png'><img src="http://everburning.com/wp-content/uploads/2008/05/ib_delegate_popup-300x179.png" alt="" title="Interface Builder Delegate Popup" width="300" height="179" class="size-medium wp-image-156" /></a></p>
<p>That&#8217;s it for our work in Interface Builder. Save your changes and close.</p>
<p>Given that <em>MediumController</em> is the large part of our code I&#8217;m going to go through it piece meal instead of giving a full listing.</p>
<pre>
#import "MediumController.h"

@interface MediumController (ControllerDelegates)
- (void)applicationDidFinishLaunching:(NSNotification *)notice;
- (void)applicationWillTerminate:(NSNotification *)notice;
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)app;
@end

@interface MediumController (WindowDelegates)
- (void)windowDidResize:(NSNotification *)notice;
@end

@interface MediumController (WindowManipulation)
- (void)fullscreenNotice:(NSNotification *)notice;
- (void)changeFullscreenState;
- (NSScreen *)screen;
- (void)fadeOut;
- (void)fadeIn;
@end
</pre>
<p>We start by creating a bunch of method declarations. I like to group my methods into categories as I think it keeps things cleaner. As you can see we&#8217;re going to implement some Controller Delegates, Window Delegates and Window Manipulation functions.</p>
<pre>
@implementation MediumController

- (id)init
{
    if ((self = [super init]))
    {
        cfg = [[MediumConfig instance] retain];

        /* catch the full screen events */
        NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
        [nc addObserver:self
               selector:@selector(fullscreenNotice:)
                   name:@"Medium/Notice/Fullscreen"
                 object:nil];

    }
    return self;
}

@end
</pre>
<p>Our <em>init:</em><em> method is pretty simple. We grab, and </em><em>retain</em> an instance of the <em>MediumConfig</em> singleton. We&#8217;ll be using this throughout our code later.  We then add an observer for the <em>Medium/Notice/Fullscreen</em> event that we setup in our <em>MediumApplication</em> code. Whenever the given event is fired the <em>fullscreenNotice:</em> method will be executed.</p>
<pre>
#pragma mark Controller Delegates
@implementation MediumController (ControllerDelegates)

- (void)applicationDidFinishLaunching:(NSNotification *)notice
{
    NSRect screenFrame = [[self screen] frame];
    int width = -1, height = -1;

    [cfg windowDimensionsWidth:&#038;width height:&#038;height];
    if ((width < 0) || (height < 0))
    {
        width = screenFrame.size.width * 0.75;
        height = screenFrame.size.height * 0.75;
    }

    NSRect frame = NSMakeRect(((screenFrame.size.width - width) / 2),
                              ((screenFrame.size.height - height) / 2),
                              width, height);

    win = [[NSWindow alloc] initWithContentRect:frame
                styleMask:(NSTitledWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask)
                  backing:NSBackingStoreBuffered
                    defer:NO
                   screen:[self screen]];
    [win setDelegate:self];
    [win setTitle:@"MediumFS"];

    /* XXX make this our real view */
    NSView *view = [[NSView alloc] initWithFrame:[win frame]];
    [win setContentView:view];

    if ([cfg fullscreen]) [self changeFullscreenState];

    /* do this after we've gone fullscreen */
    [win makeKeyAndOrderFront:self];
}
</pre>
<p>Once the application has launched we'll, as the delegate, get a <em>applicationDidFinishLaunching:</em> notification. We'll use this to create our main window by hand.</p>
<p>Our window will be set to 75% of the screen width and height if the user hasn't already site a width and height. To do this we'll first need to get the screen frame. We'll see the <em>screen</em> method later, just rest assured it returns an <em>NSScreen</em> object we can work with.  We'll then check in our configuration if the user has set a width and height previously. If not, we use the screen frame to calculate the width and height.</p>
<p>With that done we'll create the frame for our window with <em>NSMakeRect</em>. We do some simple calculations to place the window in the middle of the screen and use the width and height we calculated earlier.</p>
<p>We can now create our window. We use the frame we just calculated and apply a style mask of <em>NSTitledWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask</em>. This way we can have a title, can minimize the window and allow the user to resize the window. We set the backing to <em>NSBackingStoredBuffered</em> and the screen to the screen returned from the <em>screen</em> method.</p>
<p>With the window created we set the controller to be the delegate of the window. This way we can catch certain window events which we'll see in a bit. <em>setTitle:</em> just sets the window title to <em>@"MediumFS"</em>.</p>
<p>Since I don't actually have anything to display in this window I just create an <em>NSView</em> and set it as the content view of my window. You can add your actual views as needed.</p>
<p>With the window created and our content in place we check if we should be fullscreen by querying the <em>MediumConfig</em> object. If we should be fullscreen we transition by calling <em>changeFullscreenState</em>. With all that done we give the window the focus with <em>makeKeyAndOrderFront:</em>.</p>
<p>Phew, OK, that was a lot of work right off the bat. Don't worry, things will get shorter from here on out.</p>
</pre>
<pre>
- (void)applicationWillTerminate:(NSNotification *)notice
{
    if ([cfg fullscreen]) [self fadeOut];

    /* hide the window so it doesn't flicker on fade in */
    [win orderOut:nil];
    [win release];
    if ([cfg fullscreen]) [self fadeIn];

    [cfg release];
}
</pre>
<p>When the user hits apple-q or otherwise terminates the application our <em>applicationWillTerminate</em> notification will be triggered. We first check if we&#8217;re in fullscreen mode. If so, we fade the screen out with <em>fadeOut</em>. We then use <em>orderOut:</em> to hide the window. We don&#8217;t want it to flicker back into existence when we fade the screen back in. With the window hidden we can release it as we no longer need it. Then, as before, if we&#8217;re fullscreen we fade back in with <em>fadeIn</em>. We then release the config object as we&#8217;re done with it.</p>
<pre>
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)app
{
    return YES;
}

@end
</pre>
<p>The final method in our controller delegates section is <em>applicationShouldTerminateAfterLastWindowClosed</em> we&#8217;re just returning a simple <em>YES</em> here so when our window gets closed the application will terminate. Nothing special, move along.</p>
<p>We&#8217;ll now move into the window delegate methods, of which there is only one.</p>
<pre>
#pragma mark Window Delegates
@implementation MediumController (WindowDelegates)

- (void)windowDidResize:(NSNotification *)notice
{
    NSRect frame = [win frame];
    [cfg setWindowDimensionsWidth:frame.size.width height:frame.size.height];
}

@end
</pre>
<p>After the window has been resized the <em>windowDidResize:</em> notification will be sent. We use this to update the window width and height in <em>MediumConfig</em> so we can open the window to the same size on the next launch. Simple enough.</p>
<p>Our last set of functions I&#8217;m put under the name Window Manipulation.</p>
<pre>
#pragma mark Window Manipulation
@implementation MediumController (WindowManipulation)

- (void)fullscreenNotice:(NSNotification *)notice
{
    [self changeFullscreenState];
    [cfg setFullscreen:(![cfg fullscreen])];
}
</pre>
<p>As we saw above when the <em>Medium/Notice/Fullscreen</em> is sent it will trigger the <em>fullscreenNotice:</em> method. We simply call <em>changeFullscreenState</em> and invert the current fullscreen flag in <em>MediumConfig</em>. Short and sweet.</p>
<p>Finally we get to what everyone <em>actually</em> wants to see, the fullscreen method.</p>
<pre>
- (void)changeFullscreenState
{
    NSView *view = [win contentView];
    NSDictionary *opts = [NSDictionary dictionaryWithObjectsAndKeys:
                            [NSNumber numberWithBool:NO], NSFullScreenModeAllScreens, nil];

    [self fadeOut];

    if ([view isInFullScreenMode])
        [view exitFullScreenModeWithOptions:opts];
    else
        [view enterFullScreenMode:[self screen] withOptions:opts];

    [self fadeIn];
}
</pre>
<p>As I mentioned earlier fullscreening got a lot simpler at some point. First thing we do is grab our content view that we set into the main window. It&#8217;s on this view that we&#8217;ll be changing the fullscreen state.</p>
<p>We&#8217;re going to be passing a dictionary of options into the fullscreen methods. In this case I&#8217;m just setting one key into the dictionary, <em>NSFullScreenModeAllScreens</em> which I&#8217;m setting to <em>NO</em> as I only want to go fullscreen on one screen.</p>
<p>With that created we&#8217;re calling <em>fadeOut</em> to fade the screen to make a nice transition.</p>
<p>The screen is blanked and we&#8217;re posed to go fullscreen. Since this function is just switching back and forth the first thing we do is query the current fullscreen state of the view with <em>isInFullScreenMode</em> if this is TRUE we&#8217;ll be going back to windowed mode. Switching to windowed mode is as simple as calling <em>exitFullScreenModeWithOptions:</em> on our view. Similarly, going to fullscreen mode is as simple as calling <em>enterFullScreenModel:withOptions:</em> and passing in the screen we want to be fullscreen on. That&#8217;s it. Pretty simple eh?</p>
<p>With the fullscreen mode changed we&#8217;ll use <em>fadeIn:</em> to fade the screen back from black.</p>
<p>Three more helper methods and we&#8217;re done.</p>
<pre>
/**
 * Return the screen that we should be displaying upon
 */
- (NSScreen *)screen
{
    NSArray *screens = [NSScreen screens];

    /* if we've only got one screen then return it */
    if ([screens count] < = 1) return [NSScreen mainScreen];

    /* try to use the screen set by the user */
    int screen = [cfg screen];
    if (screen > [screens count]) screen = [screens count] - 1;
    else if (screen < 0) screen = 0;

    return [screens objectAtIndex:screen];
}
</pre>
<p>The <em>screen</em> method will return a screen to display on. This will get all the screens by calling <em>[NSScreen screens]</em>. Then, if we only have one screen, it'll return that. Otherwise we check if the user has configured a screen to display on or return the first screen in the list.</p>
<p>The fade methods are both pretty similar.</p>
</pre>
<pre>
- (void)fadeOut
{
    CGAcquireDisplayFadeReservation(25, &#038;tok);
    CGDisplayFade(tok, 1.5, kCGDisplayBlendNormal, kCGDisplayBlendSolidColor, 0, 0, 0, TRUE);
}

- (void)fadeIn
{
    CGDisplayFade(tok, 1.5, kCGDisplayBlendSolidColor, kCGDisplayBlendNormal, 0, 0, 0, TRUE);
    CGReleaseDisplayFadeReservation(tok);
}

@end
</pre>
<p>On <em>fadeOut</em> we acquire a reservation token and tell the screen to fade. We fade from <em>kGCDisplayBlendNormal</em> to <em>kGCDisplayBlendSolidColor</em> and provide the <em>0, 0, 0</em> black colour. <em>fadeIn</em> works in basically the opposite order. We fade from <em>kCGDisplayBlendSolidColor</em> to <em>kCGDisplayBlendNormal</em> and start from <em>0, 0, 0</em>, black. Once faded we release our reservation token.</p>
<p>That, as they say, is that. If you build and run you should be able to hit apple-f to switch to and from fullscreen mode.</p>
<p>Cool, eh?</p>
<p><a href='http://everburning.com/wp-content/uploads/2008/05/mediumfstar.gz'>MediumFS</a> contains the full source for the application.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fgoing-fullscreen-with-medium%2F&amp;title=Going+Fullscreen+With+Medium" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fgoing-fullscreen-with-medium%2F&amp;title=Going+Fullscreen+With+Medium" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fgoing-fullscreen-with-medium%2F&amp;title=Going+Fullscreen+With+Medium" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fgoing-fullscreen-with-medium%2F&amp;title=Going+Fullscreen+With+Medium" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fgoing-fullscreen-with-medium%2F&amp;title=Going+Fullscreen+With+Medium', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fgoing-fullscreen-with-medium%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fgoing-fullscreen-with-medium%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fgoing-fullscreen-with-medium%2F&amp;title=Going+Fullscreen+With+Medium" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fgoing-fullscreen-with-medium%2F&amp;title=Going+Fullscreen+With+Medium" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;ve started to write another Mac media application. This one is called Medium. I figure I might as well write some of this stuff down as I do it as I&#8217;m learning most of it along the way.  If you&#8217;re looking for Medium you can get the source from the <a href="http://github.com/dj2/medium">repository</a> hosted at <a href="http://github.com">GitHub</a>.  There is also a <a href="http://everburning.lighthouseapp.com/">bug tracker</a> setup thanks to <a href="http://lighthouseapp.com">LightHouse</a>.</p>
<p>Given that I&#8217;ve started this on about 4 separate occasions I&#8217;ve got a bit of random code sitting around that I&#8217;ll probably recycle during this exercise. One of the bits is to switch between fullscreen and windowed mode for the application.</p>
<p>The first version of this I had was pretty complicated and convoluted. Thankfully, with the release of Leopard (or was it one of the Tiger point releases?) going fullscreen in a Cocoa application got a lot easier.</p>
<p>Here&#8217;s what we&#8217;re going to be doing. We&#8217;re going to create an application that can go fullscreen. We&#8217;ll use the defaults controller to store if it should start fullscreen or windowed. If the users resizes the window in windowed mode we&#8217;ll remember the window size for the next restart. When we switch to fullscreen or to windowed mode we&#8217;ll fade the screen to black and back again.  We&#8217;ll also setup a default property for picking the screen the application should appear on (although, as I don&#8217;t have a second monitor pulled into my PowerBook at the moment this will remain untested).</p>
<p>With that, on with the show.</p>
<p>We&#8217;ll get started by creating a new XCode project. We&#8217;ll be using a <em>Cocoa Application</em> as the basis for the project. I&#8217;m going to call mine MediumFS, you&#8217;re free to use what you want.</p>
<p>We&#8217;re going to be using three objects for this application:</p>
<ol>
<li><em>MediumApplication</em> &#8212; The NSApplication subclass</li>
<li><em>MediumController</em> &#8212; The controller</li>
<li><em>MediumConfig</em> &#8212; Our configuration class</li>
</ol>
<p>Lets go ahead and ctrl-click on the <em>classes</em> item in the sidebar and select <em>Add -> File &#8230;</em>. We&#8217;ll then select the <em>Objective-C class</em> for each item.</p>
<p><a href='http://everburning.com/wp-content/uploads/2008/05/add_new_file.png'><img src="http://everburning.com/wp-content/uploads/2008/05/add_new_file-300x191.png" alt="" title="XCode Add New File" width="300" height="191" class="alignleft size-medium wp-image-154" /></a></p>
<p>With our files created we&#8217;re going to setup the application to use our <em>MediumApplication</em> as the Principle Class. The first thing we need to do is change the parent class of <em>MediumApplication</em> to be <em>NSApplication</em> instead of <em>NSObject</em>. That&#8217;s actually the only change we&#8217;ll need to make in <em>MediumApplication.h</em>. You should end up with something similar to:</p>
<pre>
#import <cocoa /Cocoa.h>

@interface MediumApplication : NSApplication
{
}
@end
</cocoa></pre>
<p>Now, in the <em>Resourses</em> section open the <em>Info.plist</em> file.  Under the key <em>NSPrincipleClass</em> change the <em>string</em> value to be <em>MediumApplication</em> instead of <em>NSApplication</em>.</p>
<p>With that we&#8217;ve setup our <em>MediumApplication</em> class to be the main class in Principle Class for the application. We&#8217;ll now fill in some application code to handle processing key events so we can pull out the apple-f key press.</p>
<p>There are two methods we&#8217;ll implement in <em>MediumApplication</em>: <code>- (void)sendEvent:(NSEvent *)ev</code> and <code>- (BOOL)handleKeyDownEvent:(NSEvent *)ev</code>.  The sendEvent will be overriding the parent class implemention. handleKeyDownEvent is a private helper method.</p>
<pre>
- (void)sendEvent:(NSEvent *)ev
{
    int handled = FALSE;
    if (([ev type] == NSKeyDown) &#038;&#038; ([self handleKeyDownEvent:ev]))
        handled = TRUE;

    if (!handled)
        [super sendEvent:ev];
}
</pre>
<p>sendEvent is pretty simple. If we&#8217;re dealing with a <em>NSKeyDown</em> event we&#8217;ll pass the event to our handleKeyDownEvent method. If handleKeyDownEvent  processes the event it will return TRUE. If this isn&#8217;t the case we&#8217;ll pass the event up to our parent, <em>NSApplication</em> in this case.</p>
<pre>
- (BOOL)handleKeyDownEvent:(NSEvent *)ev
{
    BOOL handled = FALSE;
    NSString *notice = nil;
    unichar key = [[ev charactersIgnoringModifiers] characterAtIndex:0];

    /* apple-f for fullscreen */
    if ((key == 0x66) &#038;&#038; ([ev modifierFlags] &#038; NSCommandKeyMask))
        notice = @"Medium/Notice/Fullscreen";

    if (notice)
    {
        [[NSNotificationCenter defaultCenter]
                            postNotificationName:notice
                            object:nil
                            userInfo:nil];
        handled = TRUE;
    }
    return handled;
}
</pre>
<p>When handleKeyDownEvent is called we&#8217;ll pull the key pressed out of the event with <em>charactersIgnoringModifiers:</em> and we&#8217;ll grab the first character that&#8217;s returned. If that character is <em>0&#215;66</em> or <em>f</em> and the <em>NSCommandKeyMask</em> modifier is set in the event we&#8217;ve got our apple-f.</p>
<p>With that, if we&#8217;ve found something to send a notification about we&#8217;ll post it to the <em>NSNotificationCenter</em> for anyone that&#8217;s interesting to pick up on.</p>
<p>That&#8217;s it for our application class.</p>
<p>Moving on we&#8217;ll setup or configuration object, <em>MediumConfig</em>. <em>MediumConfig</em> is basically a wrapper around <em>NSUserDefaults</em> which allows me to get the defaults with function calls instead of having the keys everywhere in my application.</p>
<pre>
#import <cocoa /Cocoa.h>

@interface MediumConfig : NSObject
{
    NSUserDefaults *defaults;
}

+(MediumConfig *)instance;

-(int)screen;
-(void)setScreen:(int)screen;

-(BOOL)fullscreen;
-(void)setFullscreen:(BOOL)fullscreen;

-(void)windowDimensionsWidth:(int *)width height:(int *)height;
-(void)setWindowDimensionsWidth:(int)width height:(int)height;
@end
</cocoa></pre>
<p>The <em>MediumConfig</em> object is a singleton so we provide an <em>instance:</em> method to retrieve the object. The rest of the class are just the accessors for the different configuration variables we care about.</p>
<pre>
#import "MediumConfig.h"

#define MediumScreenKey @"Medium/Screen"
#define MediumFullscreenKey @"Medium/Fullscreen"
#define MediumWindowDimensionWidth @"Medium/Window/Dimension/Width"
#define MediumWindowDimensionHeight @"Medium/Window/Dimension/Height"

static MediumConfig *medium_config = nil;

@implementation MediumConfig

+(MediumConfig *)instance
{
    if (medium_config) return medium_config;
    return (medium_config = [[MediumConfig alloc] init]);
}

-(id) init
{
    if ((self = [super init]))
    {
        NSMutableDictionary *defaultValues = [NSMutableDictionary dictionary];

        [defaultValues setObject:[NSNumber numberWithBool:FALSE]
                          forKey:MediumFullscreenKey];
        [defaultValues setObject:[NSNumber numberWithInt:0]
                          forKey:MediumScreenKey];

        /* setting these to -1 will cause the code to calcuate a good window size */
        [defaultValues setObject:[NSNumber numberWithInt:-1]
                          forKey:MediumWindowDimensionWidth];
        [defaultValues setObject:[NSNumber numberWithInt:-1]
                          forKey:MediumWindowDimensionHeight];

        [[NSUserDefaults standardUserDefaults] registerDefaults:defaultValues];

        defaults = [NSUserDefaults standardUserDefaults];
    }
    return self;
}

-(int)screen
{
    return [defaults integerForKey:MediumScreenKey];
}

-(void)setScreen:(int)screen
{
    [defaults setInteger:screen forKey:MediumScreenKey];
}

-(BOOL)fullscreen
{
    return [defaults boolForKey:MediumFullscreenKey];
}

-(void)setFullscreen:(BOOL)fullscreen
{
    [defaults setBool:fullscreen forKey:MediumFullscreenKey];
}

-(void)windowDimensionsWidth:(int *)width height:(int *)height
{
    if (width) *width = [defaults integerForKey:MediumWindowDimensionWidth];
    if (height) *height = [defaults integerForKey:MediumWindowDimensionHeight];
}

-(void)setWindowDimensionsWidth:(int)width height:(int)height
{
    [defaults setInteger:width forKey:MediumWindowDimensionWidth];
    [defaults setInteger:height forKey:MediumWindowDimensionHeight];
}

@end
</pre>
<p>The implementation is also pretty simple. We set a few default values into our user defaults hash and the accessors are just wrappers around the calls into the <em>NSUserDefaults</em> object. Nothing special to see here. Oh, as a side note, I&#8217;m allowing the user to pass a <em>nil</em> into the <em>windowDimensionsWidth:height:</em> method. I wasn&#8217;t sure if you&#8217;d always need both values and this just seemed easier in the long run.</p>
<p>Finally, onto the interesting bit, <em>MediumController</em>. We&#8217;re going to store references to the main window, a <em>CGDisplayFadeReservationToken</em> which I&#8217;ll discuss later and to our configuration.</p>
<pre>
#import <cocoa /Cocoa.h>
#import "MediumConfig.h"

@interface MediumController : NSObject
{
    NSWindow *win;
    CGDisplayFadeReservationToken tok;  /** Fade out/in token */

    MediumConfig *cfg;
}

@end
</cocoa></pre>
<p>With the header file created we&#8217;re going to do some work in Interface Builder. Double click on the <em>MainMenu.nib</em> file in the <em>Resources</em> section.  </p>
<p>When interface launches you&#8217;ll see a few windows popup. One of which will be the control window (at least, that&#8217;s what I call it).</p>
<p><a href='http://everburning.com/wp-content/uploads/2008/05/ib_control_window.png'><img src="http://everburning.com/wp-content/uploads/2008/05/ib_control_window-300x179.png" alt="" title="Interface Builder Control Window" width="300" height="179" class="size-medium wp-image-155" /></a></p>
<p>We don&#8217;t actually need the <em>Window (window)</em> item so we can click on that and hit delete. We&#8217;re going to be creating the window manually in the controller.</p>
<p>The next step is to create an instance of our <em>MediumController</em> in Interface Builder. This is done by dragging an <em>Object</em> controller from the library to our control window.</p>
<p><a href='http://everburning.com/wp-content/uploads/2008/05/ib_library_window.png'><img src="http://everburning.com/wp-content/uploads/2008/05/ib_library_window-225x300.png" alt="" title="Interface Builder Library Window" width="225" height="300" class="size-medium wp-image-157" /></a></p>
<p>If the inspector isn&#8217;t open already click on the new object and press shift-apple-i. In the inspector press apple-6 to make sure you&#8217;re in the identity section. Set the <em>Class</em> field to <em>MediumController</em>.</p>
<p>In the control window ctrl-click on the <em>File&#8217;s Owner</em> object and drag the mouse over the <em>Medium Controller</em> object. You should have a popup appear. Click on the <em>delegate</em> entry. We&#8217;ll now receive notifications in our controller as the application changes state.</p>
<p><a href='http://everburning.com/wp-content/uploads/2008/05/ib_delegate_popup.png'><img src="http://everburning.com/wp-content/uploads/2008/05/ib_delegate_popup-300x179.png" alt="" title="Interface Builder Delegate Popup" width="300" height="179" class="size-medium wp-image-156" /></a></p>
<p>That&#8217;s it for our work in Interface Builder. Save your changes and close.</p>
<p>Given that <em>MediumController</em> is the large part of our code I&#8217;m going to go through it piece meal instead of giving a full listing.</p>
<pre>
#import "MediumController.h"

@interface MediumController (ControllerDelegates)
- (void)applicationDidFinishLaunching:(NSNotification *)notice;
- (void)applicationWillTerminate:(NSNotification *)notice;
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)app;
@end

@interface MediumController (WindowDelegates)
- (void)windowDidResize:(NSNotification *)notice;
@end

@interface MediumController (WindowManipulation)
- (void)fullscreenNotice:(NSNotification *)notice;
- (void)changeFullscreenState;
- (NSScreen *)screen;
- (void)fadeOut;
- (void)fadeIn;
@end
</pre>
<p>We start by creating a bunch of method declarations. I like to group my methods into categories as I think it keeps things cleaner. As you can see we&#8217;re going to implement some Controller Delegates, Window Delegates and Window Manipulation functions.</p>
<pre>
@implementation MediumController

- (id)init
{
    if ((self = [super init]))
    {
        cfg = [[MediumConfig instance] retain];

        /* catch the full screen events */
        NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
        [nc addObserver:self
               selector:@selector(fullscreenNotice:)
                   name:@"Medium/Notice/Fullscreen"
                 object:nil];

    }
    return self;
}

@end
</pre>
<p>Our <em>init:</em><em> method is pretty simple. We grab, and </em><em>retain</em> an instance of the <em>MediumConfig</em> singleton. We&#8217;ll be using this throughout our code later.  We then add an observer for the <em>Medium/Notice/Fullscreen</em> event that we setup in our <em>MediumApplication</em> code. Whenever the given event is fired the <em>fullscreenNotice:</em> method will be executed.</p>
<pre>
#pragma mark Controller Delegates
@implementation MediumController (ControllerDelegates)

- (void)applicationDidFinishLaunching:(NSNotification *)notice
{
    NSRect screenFrame = [[self screen] frame];
    int width = -1, height = -1;

    [cfg windowDimensionsWidth:&#038;width height:&#038;height];
    if ((width < 0) || (height < 0))
    {
        width = screenFrame.size.width * 0.75;
        height = screenFrame.size.height * 0.75;
    }

    NSRect frame = NSMakeRect(((screenFrame.size.width - width) / 2),
                              ((screenFrame.size.height - height) / 2),
                              width, height);

    win = [[NSWindow alloc] initWithContentRect:frame
                styleMask:(NSTitledWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask)
                  backing:NSBackingStoreBuffered
                    defer:NO
                   screen:[self screen]];
    [win setDelegate:self];
    [win setTitle:@"MediumFS"];

    /* XXX make this our real view */
    NSView *view = [[NSView alloc] initWithFrame:[win frame]];
    [win setContentView:view];

    if ([cfg fullscreen]) [self changeFullscreenState];

    /* do this after we've gone fullscreen */
    [win makeKeyAndOrderFront:self];
}
</pre>
<p>Once the application has launched we'll, as the delegate, get a <em>applicationDidFinishLaunching:</em> notification. We'll use this to create our main window by hand.</p>
<p>Our window will be set to 75% of the screen width and height if the user hasn't already site a width and height. To do this we'll first need to get the screen frame. We'll see the <em>screen</em> method later, just rest assured it returns an <em>NSScreen</em> object we can work with.  We'll then check in our configuration if the user has set a width and height previously. If not, we use the screen frame to calculate the width and height.</p>
<p>With that done we'll create the frame for our window with <em>NSMakeRect</em>. We do some simple calculations to place the window in the middle of the screen and use the width and height we calculated earlier.</p>
<p>We can now create our window. We use the frame we just calculated and apply a style mask of <em>NSTitledWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask</em>. This way we can have a title, can minimize the window and allow the user to resize the window. We set the backing to <em>NSBackingStoredBuffered</em> and the screen to the screen returned from the <em>screen</em> method.</p>
<p>With the window created we set the controller to be the delegate of the window. This way we can catch certain window events which we'll see in a bit. <em>setTitle:</em> just sets the window title to <em>@"MediumFS"</em>.</p>
<p>Since I don't actually have anything to display in this window I just create an <em>NSView</em> and set it as the content view of my window. You can add your actual views as needed.</p>
<p>With the window created and our content in place we check if we should be fullscreen by querying the <em>MediumConfig</em> object. If we should be fullscreen we transition by calling <em>changeFullscreenState</em>. With all that done we give the window the focus with <em>makeKeyAndOrderFront:</em>.</p>
<p>Phew, OK, that was a lot of work right off the bat. Don't worry, things will get shorter from here on out.</p>
</pre>
<pre>
- (void)applicationWillTerminate:(NSNotification *)notice
{
    if ([cfg fullscreen]) [self fadeOut];

    /* hide the window so it doesn't flicker on fade in */
    [win orderOut:nil];
    [win release];
    if ([cfg fullscreen]) [self fadeIn];

    [cfg release];
}
</pre>
<p>When the user hits apple-q or otherwise terminates the application our <em>applicationWillTerminate</em> notification will be triggered. We first check if we&#8217;re in fullscreen mode. If so, we fade the screen out with <em>fadeOut</em>. We then use <em>orderOut:</em> to hide the window. We don&#8217;t want it to flicker back into existence when we fade the screen back in. With the window hidden we can release it as we no longer need it. Then, as before, if we&#8217;re fullscreen we fade back in with <em>fadeIn</em>. We then release the config object as we&#8217;re done with it.</p>
<pre>
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)app
{
    return YES;
}

@end
</pre>
<p>The final method in our controller delegates section is <em>applicationShouldTerminateAfterLastWindowClosed</em> we&#8217;re just returning a simple <em>YES</em> here so when our window gets closed the application will terminate. Nothing special, move along.</p>
<p>We&#8217;ll now move into the window delegate methods, of which there is only one.</p>
<pre>
#pragma mark Window Delegates
@implementation MediumController (WindowDelegates)

- (void)windowDidResize:(NSNotification *)notice
{
    NSRect frame = [win frame];
    [cfg setWindowDimensionsWidth:frame.size.width height:frame.size.height];
}

@end
</pre>
<p>After the window has been resized the <em>windowDidResize:</em> notification will be sent. We use this to update the window width and height in <em>MediumConfig</em> so we can open the window to the same size on the next launch. Simple enough.</p>
<p>Our last set of functions I&#8217;m put under the name Window Manipulation.</p>
<pre>
#pragma mark Window Manipulation
@implementation MediumController (WindowManipulation)

- (void)fullscreenNotice:(NSNotification *)notice
{
    [self changeFullscreenState];
    [cfg setFullscreen:(![cfg fullscreen])];
}
</pre>
<p>As we saw above when the <em>Medium/Notice/Fullscreen</em> is sent it will trigger the <em>fullscreenNotice:</em> method. We simply call <em>changeFullscreenState</em> and invert the current fullscreen flag in <em>MediumConfig</em>. Short and sweet.</p>
<p>Finally we get to what everyone <em>actually</em> wants to see, the fullscreen method.</p>
<pre>
- (void)changeFullscreenState
{
    NSView *view = [win contentView];
    NSDictionary *opts = [NSDictionary dictionaryWithObjectsAndKeys:
                            [NSNumber numberWithBool:NO], NSFullScreenModeAllScreens, nil];

    [self fadeOut];

    if ([view isInFullScreenMode])
        [view exitFullScreenModeWithOptions:opts];
    else
        [view enterFullScreenMode:[self screen] withOptions:opts];

    [self fadeIn];
}
</pre>
<p>As I mentioned earlier fullscreening got a lot simpler at some point. First thing we do is grab our content view that we set into the main window. It&#8217;s on this view that we&#8217;ll be changing the fullscreen state.</p>
<p>We&#8217;re going to be passing a dictionary of options into the fullscreen methods. In this case I&#8217;m just setting one key into the dictionary, <em>NSFullScreenModeAllScreens</em> which I&#8217;m setting to <em>NO</em> as I only want to go fullscreen on one screen.</p>
<p>With that created we&#8217;re calling <em>fadeOut</em> to fade the screen to make a nice transition.</p>
<p>The screen is blanked and we&#8217;re posed to go fullscreen. Since this function is just switching back and forth the first thing we do is query the current fullscreen state of the view with <em>isInFullScreenMode</em> if this is TRUE we&#8217;ll be going back to windowed mode. Switching to windowed mode is as simple as calling <em>exitFullScreenModeWithOptions:</em> on our view. Similarly, going to fullscreen mode is as simple as calling <em>enterFullScreenModel:withOptions:</em> and passing in the screen we want to be fullscreen on. That&#8217;s it. Pretty simple eh?</p>
<p>With the fullscreen mode changed we&#8217;ll use <em>fadeIn:</em> to fade the screen back from black.</p>
<p>Three more helper methods and we&#8217;re done.</p>
<pre>
/**
 * Return the screen that we should be displaying upon
 */
- (NSScreen *)screen
{
    NSArray *screens = [NSScreen screens];

    /* if we've only got one screen then return it */
    if ([screens count] < = 1) return [NSScreen mainScreen];

    /* try to use the screen set by the user */
    int screen = [cfg screen];
    if (screen > [screens count]) screen = [screens count] - 1;
    else if (screen < 0) screen = 0;

    return [screens objectAtIndex:screen];
}
</pre>
<p>The <em>screen</em> method will return a screen to display on. This will get all the screens by calling <em>[NSScreen screens]</em>. Then, if we only have one screen, it'll return that. Otherwise we check if the user has configured a screen to display on or return the first screen in the list.</p>
<p>The fade methods are both pretty similar.</p>
</pre>
<pre>
- (void)fadeOut
{
    CGAcquireDisplayFadeReservation(25, &#038;tok);
    CGDisplayFade(tok, 1.5, kCGDisplayBlendNormal, kCGDisplayBlendSolidColor, 0, 0, 0, TRUE);
}

- (void)fadeIn
{
    CGDisplayFade(tok, 1.5, kCGDisplayBlendSolidColor, kCGDisplayBlendNormal, 0, 0, 0, TRUE);
    CGReleaseDisplayFadeReservation(tok);
}

@end
</pre>
<p>On <em>fadeOut</em> we acquire a reservation token and tell the screen to fade. We fade from <em>kGCDisplayBlendNormal</em> to <em>kGCDisplayBlendSolidColor</em> and provide the <em>0, 0, 0</em> black colour. <em>fadeIn</em> works in basically the opposite order. We fade from <em>kCGDisplayBlendSolidColor</em> to <em>kCGDisplayBlendNormal</em> and start from <em>0, 0, 0</em>, black. Once faded we release our reservation token.</p>
<p>That, as they say, is that. If you build and run you should be able to hit apple-f to switch to and from fullscreen mode.</p>
<p>Cool, eh?</p>
<p><a href='http://everburning.com/wp-content/uploads/2008/05/mediumfstar.gz'>MediumFS</a> contains the full source for the application.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fgoing-fullscreen-with-medium%2F&amp;title=Going+Fullscreen+With+Medium" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fgoing-fullscreen-with-medium%2F&amp;title=Going+Fullscreen+With+Medium" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fgoing-fullscreen-with-medium%2F&amp;title=Going+Fullscreen+With+Medium" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fgoing-fullscreen-with-medium%2F&amp;title=Going+Fullscreen+With+Medium" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fgoing-fullscreen-with-medium%2F&amp;title=Going+Fullscreen+With+Medium', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fgoing-fullscreen-with-medium%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fgoing-fullscreen-with-medium%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fgoing-fullscreen-with-medium%2F&amp;title=Going+Fullscreen+With+Medium" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fgoing-fullscreen-with-medium%2F&amp;title=Going+Fullscreen+With+Medium" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://everburning.com/news/going-fullscreen-with-medium/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>I suck</title>
		<link>http://everburning.com/news/i-suck/</link>
		<comments>http://everburning.com/news/i-suck/#comments</comments>
		<pubDate>Tue, 26 Jun 2007 21:14:45 +0000</pubDate>
		<dc:creator>dj2</dc:creator>
				<category><![CDATA[Everburning]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://everburning.com/news/i-suck/</guid>
		<description><![CDATA[<p>Yes, that&#8217;s right. I suck at updating this thing. It&#8217;s been what a month? No real excuse. Been busy, but that&#8217;s beside the point. I just haven&#8217;t had much that struck me as blogging material for the last little while. </p>
<p>Lots of things are happening, Adam and Mels wedding, family gatherings, Stacy&#8217;s trip, etc. Just, don&#8217;t feel like recording it here at the moment.</p>
<p>Oh well.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fi-suck%2F&amp;title=I+suck" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fi-suck%2F&amp;title=I+suck" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fi-suck%2F&amp;title=I+suck" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fi-suck%2F&amp;title=I+suck" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fi-suck%2F&amp;title=I+suck', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fi-suck%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fi-suck%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fi-suck%2F&amp;title=I+suck" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fi-suck%2F&amp;title=I+suck" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></description>
			<content:encoded><![CDATA[<p>Yes, that&#8217;s right. I suck at updating this thing. It&#8217;s been what a month? No real excuse. Been busy, but that&#8217;s beside the point. I just haven&#8217;t had much that struck me as blogging material for the last little while. </p>
<p>Lots of things are happening, Adam and Mels wedding, family gatherings, Stacy&#8217;s trip, etc. Just, don&#8217;t feel like recording it here at the moment.</p>
<p>Oh well.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fi-suck%2F&amp;title=I+suck" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fi-suck%2F&amp;title=I+suck" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fi-suck%2F&amp;title=I+suck" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fi-suck%2F&amp;title=I+suck" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fi-suck%2F&amp;title=I+suck', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fi-suck%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fi-suck%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fi-suck%2F&amp;title=I+suck" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fi-suck%2F&amp;title=I+suck" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://everburning.com/news/i-suck/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Delinquent</title>
		<link>http://everburning.com/news/delinquent/</link>
		<comments>http://everburning.com/news/delinquent/#comments</comments>
		<pubDate>Thu, 23 Nov 2006 20:00:34 +0000</pubDate>
		<dc:creator>dj2</dc:creator>
				<category><![CDATA[Everburning]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Enlightenment]]></category>
		<category><![CDATA[Ewl]]></category>

		<guid isPermaLink="false">http://everburning.com/news/delinquent/</guid>
		<description><![CDATA[<p>As you&#8217;ve probably noticed I&#8217;ve been delinquent with the whole blog thing again. I&#8217;ve been doing stuff <strong>to</strong> the blog, just not <strong>on</strong> the blog. </p>
<p>As you can see there is a new layout. I&#8217;ve converted from my custom Rails thingy to a WordPress blog. The main reason, I can&#8217;t be bothered to update my code. WordPress has other people working on it who can add cool things that I can use. I wrote some scripts to import all of my old posts with comments and to move my quotes over as well. So, everything should be as it was before. Managed to maintain my link names which is nice.</p>
<p>I&#8217;ve also started to setup a photo gallery again. I&#8217;m using <a href="http://photostack.org">Photostack</a> and it seems to be working pretty well so far. They make it really simple to add new albums and things. I&#8217;ve only got some <a href="http://everburning.com/photos/Amsterdam_2006/">Amsterdam</a> pictures up there at the moment. I&#8217;ll end up doing some theming on that too to make it match the rest of the site which is why it doesn&#8217;t show up on the sidebar yet.</p>
<p>The condo stuff is coming along nicely. I should be getting a call at some point today to go pick up the key (or I&#8217;ll just go up at 5pm as it has to be there then.) Everything has gone through that I know of. Now we just need to paint and move in. Almost there.</p>
<p>I&#8217;ve written a few EWL tutorials over on <a href="http://wiki.edevelop.org">wiki.edevelop.org</a>. They&#8217;re introductions to EWL programming, although they do touch on some of the harder things like drag and drop support. You&#8217;ll basically end up with an image viewing application (showing a grid of images and then full images when clicked on) that allows you to drag images from another program onto it to display those images. The three tutorials are: <a href="http://wiki.edevelop.org/index.php/EWL_Introduction">EWL Introduction</a>, <a href="http://wiki.edevelop.org/index.php/EWL_Introduction_II">EWL Introduction II</a> and <a href="http://wiki.edevelop.org/index.php/EWL_Introduction_III">EWL Introduction III</a></p>
<p>The last big EWL thing is a nice Ewl_Text speed improvement. The Ewl_Text widget I wrote had never been optimized, we hadn&#8217;t had a lot of text in it before. This changed when pfritz wrote the syntax highlighting for C source files. Suddenly we had a lot of formatting nodes to deal with. My original tree approach fell apart under the load and I re-wrote it to use a simple linked list about a month ago. This managed to bring the time from about 6 minutes to 6 seconds, which is good. (The actual original time was 12 minutes which another small change dropped to 6 minutes). 6 seconds ain&#8217;t bad, but <a href="http://ningerso.edevelop.org">Nathan</a> did some more profiling and noticed two hot spots in the code. One was when we validate the text we&#8217;re making an extra copy and another was how I was looking up some formatting nodes when converting indexes. Well, once I got the copying removed it dropped to about 5 seconds. Once I got the lookup fixed, we managed to hit 1 second, pfritz is seeming about 0.63 seconds. So, I&#8217;m quite happy with that. It now takes longer to draw then it does to create the formatting tree.</p>
<p>We&#8217;ll see if I manage to get back onto a regular blogging schedule again. Still a bit hectic with the moving and all going on at the moment.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fdelinquent%2F&amp;title=Delinquent" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fdelinquent%2F&amp;title=Delinquent" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fdelinquent%2F&amp;title=Delinquent" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fdelinquent%2F&amp;title=Delinquent" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fdelinquent%2F&amp;title=Delinquent', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fdelinquent%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fdelinquent%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fdelinquent%2F&amp;title=Delinquent" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fdelinquent%2F&amp;title=Delinquent" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></description>
			<content:encoded><![CDATA[<p>As you&#8217;ve probably noticed I&#8217;ve been delinquent with the whole blog thing again. I&#8217;ve been doing stuff <strong>to</strong> the blog, just not <strong>on</strong> the blog. </p>
<p>As you can see there is a new layout. I&#8217;ve converted from my custom Rails thingy to a WordPress blog. The main reason, I can&#8217;t be bothered to update my code. WordPress has other people working on it who can add cool things that I can use. I wrote some scripts to import all of my old posts with comments and to move my quotes over as well. So, everything should be as it was before. Managed to maintain my link names which is nice.</p>
<p>I&#8217;ve also started to setup a photo gallery again. I&#8217;m using <a href="http://photostack.org">Photostack</a> and it seems to be working pretty well so far. They make it really simple to add new albums and things. I&#8217;ve only got some <a href="http://everburning.com/photos/Amsterdam_2006/">Amsterdam</a> pictures up there at the moment. I&#8217;ll end up doing some theming on that too to make it match the rest of the site which is why it doesn&#8217;t show up on the sidebar yet.</p>
<p>The condo stuff is coming along nicely. I should be getting a call at some point today to go pick up the key (or I&#8217;ll just go up at 5pm as it has to be there then.) Everything has gone through that I know of. Now we just need to paint and move in. Almost there.</p>
<p>I&#8217;ve written a few EWL tutorials over on <a href="http://wiki.edevelop.org">wiki.edevelop.org</a>. They&#8217;re introductions to EWL programming, although they do touch on some of the harder things like drag and drop support. You&#8217;ll basically end up with an image viewing application (showing a grid of images and then full images when clicked on) that allows you to drag images from another program onto it to display those images. The three tutorials are: <a href="http://wiki.edevelop.org/index.php/EWL_Introduction">EWL Introduction</a>, <a href="http://wiki.edevelop.org/index.php/EWL_Introduction_II">EWL Introduction II</a> and <a href="http://wiki.edevelop.org/index.php/EWL_Introduction_III">EWL Introduction III</a></p>
<p>The last big EWL thing is a nice Ewl_Text speed improvement. The Ewl_Text widget I wrote had never been optimized, we hadn&#8217;t had a lot of text in it before. This changed when pfritz wrote the syntax highlighting for C source files. Suddenly we had a lot of formatting nodes to deal with. My original tree approach fell apart under the load and I re-wrote it to use a simple linked list about a month ago. This managed to bring the time from about 6 minutes to 6 seconds, which is good. (The actual original time was 12 minutes which another small change dropped to 6 minutes). 6 seconds ain&#8217;t bad, but <a href="http://ningerso.edevelop.org">Nathan</a> did some more profiling and noticed two hot spots in the code. One was when we validate the text we&#8217;re making an extra copy and another was how I was looking up some formatting nodes when converting indexes. Well, once I got the copying removed it dropped to about 5 seconds. Once I got the lookup fixed, we managed to hit 1 second, pfritz is seeming about 0.63 seconds. So, I&#8217;m quite happy with that. It now takes longer to draw then it does to create the formatting tree.</p>
<p>We&#8217;ll see if I manage to get back onto a regular blogging schedule again. Still a bit hectic with the moving and all going on at the moment.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fdelinquent%2F&amp;title=Delinquent" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fdelinquent%2F&amp;title=Delinquent" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fdelinquent%2F&amp;title=Delinquent" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fdelinquent%2F&amp;title=Delinquent" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fdelinquent%2F&amp;title=Delinquent', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fdelinquent%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fdelinquent%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fdelinquent%2F&amp;title=Delinquent" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fdelinquent%2F&amp;title=Delinquent" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://everburning.com/news/delinquent/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Self Inflicted Hell</title>
		<link>http://everburning.com/news/self-inflicted-hell/</link>
		<comments>http://everburning.com/news/self-inflicted-hell/#comments</comments>
		<pubDate>Tue, 22 Aug 2006 05:22:41 +0000</pubDate>
		<dc:creator>dj2</dc:creator>
				<category><![CDATA[Everburning]]></category>

		<guid isPermaLink="false">http://everburning.com/?p=29</guid>
		<description><![CDATA[<p>If you&#8217;ve been having issues with the site the last couple of days, things like crashes or messed up formatting, I apologize.</p>
<p>My last post <a href="http://everburning.com/news/finding-the-tree-in-the-forest">Finding the Tree in the Forest</a> seems to have caused <em>BlueCloth</em> to go nuts.</p>
<p>For those not in the know, BlueCloth is an implementation of <a href="http://daringfireball.net/projects/markdown/">Markdown</a> for Ruby.</p>
<p>It seems that whenever I tried to edit the post, or after it had been loaded a certain number of times the ruby process running the site would crash with an out of memory error. Specifically it was crashing in the <em>markdown</em> call that I was using. I took a quick look at BlueCloth and noticed that its <code>to_html</code> method was duplicating the string about 10 times and letting the garbage collection clean it up. Oops. This seemed to be just enough to trigger the memory limits on <a href="http://www.textdrive.com">TextDrive</a>.</p>
<p>So, I decided to switch to <a href="http://whytheluckystiff.net/ruby/redcloth/">RedCloth</a> which is an implementation of <a href="http://www.textism.com/tools/textile/">Textile</a> in ruby. I spent a bit of time testing that out and it seemed to be working so I converted the problem post over and everything seemed to be going well. I got about 90% of the post converted before I ran into an issue. It seems that the parser was screwing up and marking up some stuff it wasn&#8217;t suppost to. My code was starting to lose important symbols and do strange things like add bolding and strikethrough where it wasn&#8217;t suppost too. Not good, not good at all.</p>
<p>Eventually, I gave up on that too and dropped both. I&#8217;m now using straight HTML code. Doing hand markup. Serves me right for being lazy I guess.</p>
<p>The only problem with this? Every bloody post I&#8217;ve done had to be reformatted. Have its BlueCloth formatting removed and changed into the appropriate HTML code. This only took, 2, 2.5, hours?</p>
<p>Oh, but it gets better. That&#8217;s just the fun from <em>tonight</em>.</p>
<p>I spent about 2 hours writting that post last night. I then spent about 2.5 hrs getting it marked up and formatted so it looked correct in BlueCloth. Ok, that&#8217;s a good chunk of time, but it looked pretty good.</p>
<p>I get to work this morning and get a message from Stacy. Your site is buggered in Internet Explorer. Taking a look, sure enough everything goes screwy half way down the page. Ok, more digging, more fiddling. Spend about an hour undoing formatting from the night before and everythings looking good in IE. At which point I see the random crashes starting to occur. Editing, loading, viewing RSS feed. Crashing all over the place.</p>
<p>So, that&#8217;s my great adventure. My journey into my self inflicted hell. So much of hoping to use the easy route of a nice markup language.</p>
<p>What&#8217;s the moral? Fucked if I know. Let me know if you figure it out.</p>
<p>I need some sleep.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fself-inflicted-hell%2F&amp;title=Self+Inflicted+Hell" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fself-inflicted-hell%2F&amp;title=Self+Inflicted+Hell" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fself-inflicted-hell%2F&amp;title=Self+Inflicted+Hell" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fself-inflicted-hell%2F&amp;title=Self+Inflicted+Hell" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fself-inflicted-hell%2F&amp;title=Self+Inflicted+Hell', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fself-inflicted-hell%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fself-inflicted-hell%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fself-inflicted-hell%2F&amp;title=Self+Inflicted+Hell" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fself-inflicted-hell%2F&amp;title=Self+Inflicted+Hell" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve been having issues with the site the last couple of days, things like crashes or messed up formatting, I apologize.</p>
<p>My last post <a href="http://everburning.com/news/finding-the-tree-in-the-forest">Finding the Tree in the Forest</a> seems to have caused <em>BlueCloth</em> to go nuts.</p>
<p>For those not in the know, BlueCloth is an implementation of <a href="http://daringfireball.net/projects/markdown/">Markdown</a> for Ruby.</p>
<p>It seems that whenever I tried to edit the post, or after it had been loaded a certain number of times the ruby process running the site would crash with an out of memory error. Specifically it was crashing in the <em>markdown</em> call that I was using. I took a quick look at BlueCloth and noticed that its <code>to_html</code> method was duplicating the string about 10 times and letting the garbage collection clean it up. Oops. This seemed to be just enough to trigger the memory limits on <a href="http://www.textdrive.com">TextDrive</a>.</p>
<p>So, I decided to switch to <a href="http://whytheluckystiff.net/ruby/redcloth/">RedCloth</a> which is an implementation of <a href="http://www.textism.com/tools/textile/">Textile</a> in ruby. I spent a bit of time testing that out and it seemed to be working so I converted the problem post over and everything seemed to be going well. I got about 90% of the post converted before I ran into an issue. It seems that the parser was screwing up and marking up some stuff it wasn&#8217;t suppost to. My code was starting to lose important symbols and do strange things like add bolding and strikethrough where it wasn&#8217;t suppost too. Not good, not good at all.</p>
<p>Eventually, I gave up on that too and dropped both. I&#8217;m now using straight HTML code. Doing hand markup. Serves me right for being lazy I guess.</p>
<p>The only problem with this? Every bloody post I&#8217;ve done had to be reformatted. Have its BlueCloth formatting removed and changed into the appropriate HTML code. This only took, 2, 2.5, hours?</p>
<p>Oh, but it gets better. That&#8217;s just the fun from <em>tonight</em>.</p>
<p>I spent about 2 hours writting that post last night. I then spent about 2.5 hrs getting it marked up and formatted so it looked correct in BlueCloth. Ok, that&#8217;s a good chunk of time, but it looked pretty good.</p>
<p>I get to work this morning and get a message from Stacy. Your site is buggered in Internet Explorer. Taking a look, sure enough everything goes screwy half way down the page. Ok, more digging, more fiddling. Spend about an hour undoing formatting from the night before and everythings looking good in IE. At which point I see the random crashes starting to occur. Editing, loading, viewing RSS feed. Crashing all over the place.</p>
<p>So, that&#8217;s my great adventure. My journey into my self inflicted hell. So much of hoping to use the easy route of a nice markup language.</p>
<p>What&#8217;s the moral? Fucked if I know. Let me know if you figure it out.</p>
<p>I need some sleep.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fself-inflicted-hell%2F&amp;title=Self+Inflicted+Hell" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fself-inflicted-hell%2F&amp;title=Self+Inflicted+Hell" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fself-inflicted-hell%2F&amp;title=Self+Inflicted+Hell" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fself-inflicted-hell%2F&amp;title=Self+Inflicted+Hell" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fself-inflicted-hell%2F&amp;title=Self+Inflicted+Hell', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fself-inflicted-hell%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fself-inflicted-hell%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fself-inflicted-hell%2F&amp;title=Self+Inflicted+Hell" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fself-inflicted-hell%2F&amp;title=Self+Inflicted+Hell" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://everburning.com/news/self-inflicted-hell/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Nothing in my drink box</title>
		<link>http://everburning.com/news/nothing-in-my-drink-box/</link>
		<comments>http://everburning.com/news/nothing-in-my-drink-box/#comments</comments>
		<pubDate>Tue, 15 Aug 2006 01:38:23 +0000</pubDate>
		<dc:creator>dj2</dc:creator>
				<category><![CDATA[Everburning]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Ewl]]></category>

		<guid isPermaLink="false">http://everburning.com/?p=25</guid>
		<description><![CDATA[<p>I&#8217;m back from my work trips and wedding shower shenanigans. Was a long week but everything seemed to go pretty well.</p>
<p>Spend the week in Ohio on work. Everything there went smoothly. I think the customer was happy. I&#8217;ll find out in a week or so I guess. I think work is regretting letting me have 2.5 weeks off for my wedding as they may be in need of people to do some work during that time. But, damnit, this summer has been busy enough I want my time off to relax. So, unless told not too, I&#8217;m taking it, heh.</p>
<p>Was a little concerned about getting back over the border on my plane on Friday. I&#8217;d been hearing all kinds of things about no liquids, no electronics, only what you&#8217;re wearing and your passport. All kinds of stuff on what you couldn&#8217;t take on the plane.</p>
<p>With that in mind, I thought I&#8217;d be smart and got to the airport about 3hrs early, just in case there were lines or something. I, of course, got through security and everything about 5 minutes later and ended up sitting in the airport for those 3hrs. This wasn&#8217;t so bad. Ohio has free wi-fi in their airport which is nice. Got bored of the laptop  and decided to read. Between that and the first half of the plane ride back I managed to finsh <a href="http://www.chapters.indigo.ca/books/item/books-978077042879/0770428797/Outlander?ref=Search+Books%3a+'outlander'">Outlander</a> which was a good book. A <em>lot</em> of sex, but a good book. As I said, I liked it but I probably won&#8217;t read any of the others. Not exactly sure why. I guess it just didn&#8217;t take a tight enough grip on my balls to make me want to jump into another 800 page book.</p>
<p>I&#8217;d planned ahead in case I mananged to finish my book and brought <a href="http://www.chapters.indigo.ca/books/item/books-978076531280/0765312808/Someone+Comes+To+Town+Someone+Leaves+Town?ref=Search+Books%3a+'someone+comes+to+town%2c+someone+leaves+town'">Someone comes to town, Someone leaves town</a> by Corey Doctorow with me. This one is shaping up to be an awsome book. I&#8217;m loving it so far, it&#8217;s just the right amount of wacky with technology type stuff, and set in Toronto, which is great.</p>
<p>Once back from Ohio I hopped in a car with Stacy and drove over to Fergus for the opening on the highland games. The tattoo was good, some really good bands playing. Fireworks were cool. Stacy picked me up a <a href="http://rkilts.com/">kilt</a> as a wedding gift. It&#8217;s black and made of hemp. I should get it sometime in November.</p>
<p>Once the tattoo ended, it was up to Owen Sound. Stacy had a hair run through for the wedding at 8am on Saturday (which I in no way go up to drive her too) and then she had a bridal shower that morning. Sunday was another bridal shower, for both of us this time. We got some cool stuff. Lot of glassware which will come in handy. </p>
<p>Over that chunk of time I managed to get a bit of EWL work in there. I gave tree2 a bit of loving and it can now show rows. RbdPngn and I poked at it a bit more and the header can now resize the rows correctly and stuff is looking pretty good. There is a problem with setting the preferred size at the moment so it&#8217;s really small by default but we&#8217;ll get that worked out.</p>
<p>I also fixed ewl_tree to allow the columns to follow the header since the way we did it in tree2 could be easily ported over. A bit of other poking around here and there. I started playing with the icon situation in EWL. We don&#8217;t want to import all the icons from Tango or something in EWL as we don&#8217;t think that makes sense, but we do wany themers to be able to specify stock icons for things. To that end I started playing with ecore_desktop today to see if I could use that to get the icons. I don&#8217;t think it&#8217;s quite up to snuff yet as I don&#8217;t seem to get any of the icons I requested back. I&#8217;ll have to let ecore_desktop mature a bit more then I&#8217;ll come back and see if it&#8217;ll work for EWL.</p>
<p>That&#8217;s long enough for this. Well, one more thing. I&#8217;ve started to get a little bit of spam on here. I&#8217;m going to have to start thinking of ways to deal with it, so the comments system might need a bit of a change in the future. We&#8217;ll see what happens.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fnothing-in-my-drink-box%2F&amp;title=Nothing+in+my+drink+box" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fnothing-in-my-drink-box%2F&amp;title=Nothing+in+my+drink+box" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fnothing-in-my-drink-box%2F&amp;title=Nothing+in+my+drink+box" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fnothing-in-my-drink-box%2F&amp;title=Nothing+in+my+drink+box" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fnothing-in-my-drink-box%2F&amp;title=Nothing+in+my+drink+box', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fnothing-in-my-drink-box%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fnothing-in-my-drink-box%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fnothing-in-my-drink-box%2F&amp;title=Nothing+in+my+drink+box" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fnothing-in-my-drink-box%2F&amp;title=Nothing+in+my+drink+box" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m back from my work trips and wedding shower shenanigans. Was a long week but everything seemed to go pretty well.</p>
<p>Spend the week in Ohio on work. Everything there went smoothly. I think the customer was happy. I&#8217;ll find out in a week or so I guess. I think work is regretting letting me have 2.5 weeks off for my wedding as they may be in need of people to do some work during that time. But, damnit, this summer has been busy enough I want my time off to relax. So, unless told not too, I&#8217;m taking it, heh.</p>
<p>Was a little concerned about getting back over the border on my plane on Friday. I&#8217;d been hearing all kinds of things about no liquids, no electronics, only what you&#8217;re wearing and your passport. All kinds of stuff on what you couldn&#8217;t take on the plane.</p>
<p>With that in mind, I thought I&#8217;d be smart and got to the airport about 3hrs early, just in case there were lines or something. I, of course, got through security and everything about 5 minutes later and ended up sitting in the airport for those 3hrs. This wasn&#8217;t so bad. Ohio has free wi-fi in their airport which is nice. Got bored of the laptop  and decided to read. Between that and the first half of the plane ride back I managed to finsh <a href="http://www.chapters.indigo.ca/books/item/books-978077042879/0770428797/Outlander?ref=Search+Books%3a+'outlander'">Outlander</a> which was a good book. A <em>lot</em> of sex, but a good book. As I said, I liked it but I probably won&#8217;t read any of the others. Not exactly sure why. I guess it just didn&#8217;t take a tight enough grip on my balls to make me want to jump into another 800 page book.</p>
<p>I&#8217;d planned ahead in case I mananged to finish my book and brought <a href="http://www.chapters.indigo.ca/books/item/books-978076531280/0765312808/Someone+Comes+To+Town+Someone+Leaves+Town?ref=Search+Books%3a+'someone+comes+to+town%2c+someone+leaves+town'">Someone comes to town, Someone leaves town</a> by Corey Doctorow with me. This one is shaping up to be an awsome book. I&#8217;m loving it so far, it&#8217;s just the right amount of wacky with technology type stuff, and set in Toronto, which is great.</p>
<p>Once back from Ohio I hopped in a car with Stacy and drove over to Fergus for the opening on the highland games. The tattoo was good, some really good bands playing. Fireworks were cool. Stacy picked me up a <a href="http://rkilts.com/">kilt</a> as a wedding gift. It&#8217;s black and made of hemp. I should get it sometime in November.</p>
<p>Once the tattoo ended, it was up to Owen Sound. Stacy had a hair run through for the wedding at 8am on Saturday (which I in no way go up to drive her too) and then she had a bridal shower that morning. Sunday was another bridal shower, for both of us this time. We got some cool stuff. Lot of glassware which will come in handy. </p>
<p>Over that chunk of time I managed to get a bit of EWL work in there. I gave tree2 a bit of loving and it can now show rows. RbdPngn and I poked at it a bit more and the header can now resize the rows correctly and stuff is looking pretty good. There is a problem with setting the preferred size at the moment so it&#8217;s really small by default but we&#8217;ll get that worked out.</p>
<p>I also fixed ewl_tree to allow the columns to follow the header since the way we did it in tree2 could be easily ported over. A bit of other poking around here and there. I started playing with the icon situation in EWL. We don&#8217;t want to import all the icons from Tango or something in EWL as we don&#8217;t think that makes sense, but we do wany themers to be able to specify stock icons for things. To that end I started playing with ecore_desktop today to see if I could use that to get the icons. I don&#8217;t think it&#8217;s quite up to snuff yet as I don&#8217;t seem to get any of the icons I requested back. I&#8217;ll have to let ecore_desktop mature a bit more then I&#8217;ll come back and see if it&#8217;ll work for EWL.</p>
<p>That&#8217;s long enough for this. Well, one more thing. I&#8217;ve started to get a little bit of spam on here. I&#8217;m going to have to start thinking of ways to deal with it, so the comments system might need a bit of a change in the future. We&#8217;ll see what happens.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fnothing-in-my-drink-box%2F&amp;title=Nothing+in+my+drink+box" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fnothing-in-my-drink-box%2F&amp;title=Nothing+in+my+drink+box" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fnothing-in-my-drink-box%2F&amp;title=Nothing+in+my+drink+box" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fnothing-in-my-drink-box%2F&amp;title=Nothing+in+my+drink+box" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fnothing-in-my-drink-box%2F&amp;title=Nothing+in+my+drink+box', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fnothing-in-my-drink-box%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fnothing-in-my-drink-box%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fnothing-in-my-drink-box%2F&amp;title=Nothing+in+my+drink+box" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fnothing-in-my-drink-box%2F&amp;title=Nothing+in+my+drink+box" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://everburning.com/news/nothing-in-my-drink-box/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Let the people speak</title>
		<link>http://everburning.com/news/let-the-people-speak/</link>
		<comments>http://everburning.com/news/let-the-people-speak/#comments</comments>
		<pubDate>Wed, 26 Jul 2006 16:02:14 +0000</pubDate>
		<dc:creator>dj2</dc:creator>
				<category><![CDATA[Everburning]]></category>

		<guid isPermaLink="false">http://everburning.com/?p=19</guid>
		<description><![CDATA[<p>With that, my first major update of eb should be in place. I&#8217;m now able to mark posts as accepting comments, this one being the first I&#8217;ve turned it on for.</p>
<p>I&#8217;ll see how the comment train goes, the stuff in there is really new, so there might be issues with it. Let me know if anything seems to go screwy when you post.</p>
<p>This update also gives me my live preview and inplace editing of quotes on the quote page. I&#8217;m really liking how the site is shaping up this time around. If only I could get the damn spell checker to not segv whenever I try to check spellings of words.</p>
<p>Or, maybe it&#8217;s just trying to tell me I spell really, really bad.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Flet-the-people-speak%2F&amp;title=Let+the+people+speak" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Flet-the-people-speak%2F&amp;title=Let+the+people+speak" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Flet-the-people-speak%2F&amp;title=Let+the+people+speak" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Flet-the-people-speak%2F&amp;title=Let+the+people+speak" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Flet-the-people-speak%2F&amp;title=Let+the+people+speak', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Flet-the-people-speak%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Flet-the-people-speak%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Flet-the-people-speak%2F&amp;title=Let+the+people+speak" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Flet-the-people-speak%2F&amp;title=Let+the+people+speak" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></description>
			<content:encoded><![CDATA[<p>With that, my first major update of eb should be in place. I&#8217;m now able to mark posts as accepting comments, this one being the first I&#8217;ve turned it on for.</p>
<p>I&#8217;ll see how the comment train goes, the stuff in there is really new, so there might be issues with it. Let me know if anything seems to go screwy when you post.</p>
<p>This update also gives me my live preview and inplace editing of quotes on the quote page. I&#8217;m really liking how the site is shaping up this time around. If only I could get the damn spell checker to not segv whenever I try to check spellings of words.</p>
<p>Or, maybe it&#8217;s just trying to tell me I spell really, really bad.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Flet-the-people-speak%2F&amp;title=Let+the+people+speak" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Flet-the-people-speak%2F&amp;title=Let+the+people+speak" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Flet-the-people-speak%2F&amp;title=Let+the+people+speak" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Flet-the-people-speak%2F&amp;title=Let+the+people+speak" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Flet-the-people-speak%2F&amp;title=Let+the+people+speak', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Flet-the-people-speak%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Flet-the-people-speak%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Flet-the-people-speak%2F&amp;title=Let+the+people+speak" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Flet-the-people-speak%2F&amp;title=Let+the+people+speak" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://everburning.com/news/let-the-people-speak/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>and the band plays on&#8230;</title>
		<link>http://everburning.com/news/and-the-band-plays-on/</link>
		<comments>http://everburning.com/news/and-the-band-plays-on/#comments</comments>
		<pubDate>Tue, 25 Jul 2006 20:57:51 +0000</pubDate>
		<dc:creator>dj2</dc:creator>
				<category><![CDATA[Everburning]]></category>

		<guid isPermaLink="false">http://everburning.com/?p=18</guid>
		<description><![CDATA[<p>Well, I&#8217;ve been working on the site a bit over the last few weeks. Almost ready to get some stuff put up here. Not much that will be visible to visitors of the site, I guess the main thing that you&#8217;d care about is I&#8217;m adding comments.</p>
<p>I&#8217;ll have to see how it goes with spam and all that stuff. I may end up trying to hook it into Akismet to do the spam handling for me. It will depend if I end up getting a shit-tonne of spam or not.</p>
<p>But, on the backend a lot of stuff has been cleaned up, I&#8217;ve got the quotes section nice and slick and AJAXified. The news has an auto-preview feature that works pretty well.</p>
<p>I&#8217;ve spent a lot of time pulling out anything that&#8217;s eb specific and putting it into a settings module. Well, into the database, out to a module, partially in the database partially in a module, and finally, just in a module. The plan is that I&#8217;ll be able to use the exact same source and setup a site for Stacy. Still have to finish the design on that one tho.</p>
<p>Anyway, in theory once I get that stuff done I&#8217;ll tackle the photo gallery. But then, I&#8217;ve been planning on tackling the photo gallery for about a year now. We&#8217;ll see where that goes.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fand-the-band-plays-on%2F&amp;title=and+the+band+plays+on%26%238230%3B" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fand-the-band-plays-on%2F&amp;title=and+the+band+plays+on%26%238230%3B" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fand-the-band-plays-on%2F&amp;title=and+the+band+plays+on%26%238230%3B" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fand-the-band-plays-on%2F&amp;title=and+the+band+plays+on%26%238230%3B" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fand-the-band-plays-on%2F&amp;title=and+the+band+plays+on%26%238230%3B', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fand-the-band-plays-on%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fand-the-band-plays-on%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fand-the-band-plays-on%2F&amp;title=and+the+band+plays+on%26%238230%3B" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fand-the-band-plays-on%2F&amp;title=and+the+band+plays+on%26%238230%3B" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></description>
			<content:encoded><![CDATA[<p>Well, I&#8217;ve been working on the site a bit over the last few weeks. Almost ready to get some stuff put up here. Not much that will be visible to visitors of the site, I guess the main thing that you&#8217;d care about is I&#8217;m adding comments.</p>
<p>I&#8217;ll have to see how it goes with spam and all that stuff. I may end up trying to hook it into Akismet to do the spam handling for me. It will depend if I end up getting a shit-tonne of spam or not.</p>
<p>But, on the backend a lot of stuff has been cleaned up, I&#8217;ve got the quotes section nice and slick and AJAXified. The news has an auto-preview feature that works pretty well.</p>
<p>I&#8217;ve spent a lot of time pulling out anything that&#8217;s eb specific and putting it into a settings module. Well, into the database, out to a module, partially in the database partially in a module, and finally, just in a module. The plan is that I&#8217;ll be able to use the exact same source and setup a site for Stacy. Still have to finish the design on that one tho.</p>
<p>Anyway, in theory once I get that stuff done I&#8217;ll tackle the photo gallery. But then, I&#8217;ve been planning on tackling the photo gallery for about a year now. We&#8217;ll see where that goes.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fand-the-band-plays-on%2F&amp;title=and+the+band+plays+on%26%238230%3B" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fand-the-band-plays-on%2F&amp;title=and+the+band+plays+on%26%238230%3B" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fand-the-band-plays-on%2F&amp;title=and+the+band+plays+on%26%238230%3B" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fand-the-band-plays-on%2F&amp;title=and+the+band+plays+on%26%238230%3B" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fand-the-band-plays-on%2F&amp;title=and+the+band+plays+on%26%238230%3B', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fand-the-band-plays-on%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fand-the-band-plays-on%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fand-the-band-plays-on%2F&amp;title=and+the+band+plays+on%26%238230%3B" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fand-the-band-plays-on%2F&amp;title=and+the+band+plays+on%26%238230%3B" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://everburning.com/news/and-the-band-plays-on/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sloppy</title>
		<link>http://everburning.com/news/sloppy/</link>
		<comments>http://everburning.com/news/sloppy/#comments</comments>
		<pubDate>Fri, 14 Jul 2006 03:47:54 +0000</pubDate>
		<dc:creator>dj2</dc:creator>
				<category><![CDATA[Everburning]]></category>

		<guid isPermaLink="false">http://everburning.com/?p=15</guid>
		<description><![CDATA[<p>So, I&#8217;ve been informed that I&#8217;m getting sloppy with my postings. Spelling mistakes (and it seems just crappy typing). Well, I can tell you it won&#8217;t be correct all the time but I&#8217;ll try just that much harder. You know, like actually reading before I hit <em>submit</em>.</p>
<p>Lets see if that actually helps the situation or not, eh?</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fsloppy%2F&amp;title=Sloppy" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fsloppy%2F&amp;title=Sloppy" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fsloppy%2F&amp;title=Sloppy" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fsloppy%2F&amp;title=Sloppy" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fsloppy%2F&amp;title=Sloppy', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fsloppy%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fsloppy%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fsloppy%2F&amp;title=Sloppy" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fsloppy%2F&amp;title=Sloppy" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></description>
			<content:encoded><![CDATA[<p>So, I&#8217;ve been informed that I&#8217;m getting sloppy with my postings. Spelling mistakes (and it seems just crappy typing). Well, I can tell you it won&#8217;t be correct all the time but I&#8217;ll try just that much harder. You know, like actually reading before I hit <em>submit</em>.</p>
<p>Lets see if that actually helps the situation or not, eh?</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fsloppy%2F&amp;title=Sloppy" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fsloppy%2F&amp;title=Sloppy" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fsloppy%2F&amp;title=Sloppy" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fsloppy%2F&amp;title=Sloppy" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fsloppy%2F&amp;title=Sloppy', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fsloppy%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fsloppy%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fsloppy%2F&amp;title=Sloppy" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fsloppy%2F&amp;title=Sloppy" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://everburning.com/news/sloppy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Poking away</title>
		<link>http://everburning.com/news/poking-away/</link>
		<comments>http://everburning.com/news/poking-away/#comments</comments>
		<pubDate>Fri, 07 Jul 2006 18:32:16 +0000</pubDate>
		<dc:creator>dj2</dc:creator>
				<category><![CDATA[Everburning]]></category>

		<guid isPermaLink="false">http://everburning.com/?p=5</guid>
		<description><![CDATA[<p>Nothing big changing at the moment. I&#8217;ve made a few cosmetic changes which should fixup some rendering issues in IE and cleaned up the quotes page a bit.</p>
<p>I&#8217;m not sure if I&#8217;m totally happy with the quotes page yet, but it is looking better.</p>
<p>Also done a few internal changes, nothing thats visible from the outside, but consolidated some controllers that didn&#8217;t really make sense to be split apart. Added a favicon for no particular reason.</p>
<p>I&#8217;ve been poking at photos, going back, erasing it, poking again so we&#8217;ll see how long it takes me to get them back online in any shape that I can actually stand.</p>
<p><b>UPDATE</b> With that, all of the quotes off of the old site, plus a couple of new ones, are now posted on the quotes page.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fpoking-away%2F&amp;title=Poking+away" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fpoking-away%2F&amp;title=Poking+away" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fpoking-away%2F&amp;title=Poking+away" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fpoking-away%2F&amp;title=Poking+away" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fpoking-away%2F&amp;title=Poking+away', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fpoking-away%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fpoking-away%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fpoking-away%2F&amp;title=Poking+away" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fpoking-away%2F&amp;title=Poking+away" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></description>
			<content:encoded><![CDATA[<p>Nothing big changing at the moment. I&#8217;ve made a few cosmetic changes which should fixup some rendering issues in IE and cleaned up the quotes page a bit.</p>
<p>I&#8217;m not sure if I&#8217;m totally happy with the quotes page yet, but it is looking better.</p>
<p>Also done a few internal changes, nothing thats visible from the outside, but consolidated some controllers that didn&#8217;t really make sense to be split apart. Added a favicon for no particular reason.</p>
<p>I&#8217;ve been poking at photos, going back, erasing it, poking again so we&#8217;ll see how long it takes me to get them back online in any shape that I can actually stand.</p>
<p><b>UPDATE</b> With that, all of the quotes off of the old site, plus a couple of new ones, are now posted on the quotes page.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fpoking-away%2F&amp;title=Poking+away" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fpoking-away%2F&amp;title=Poking+away" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fpoking-away%2F&amp;title=Poking+away" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fpoking-away%2F&amp;title=Poking+away" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fpoking-away%2F&amp;title=Poking+away', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fpoking-away%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fpoking-away%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fpoking-away%2F&amp;title=Poking+away" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fpoking-away%2F&amp;title=Poking+away" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://everburning.com/news/poking-away/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New and improved</title>
		<link>http://everburning.com/news/new-and-improved/</link>
		<comments>http://everburning.com/news/new-and-improved/#comments</comments>
		<pubDate>Thu, 06 Jul 2006 18:57:04 +0000</pubDate>
		<dc:creator>dj2</dc:creator>
				<category><![CDATA[Everburning]]></category>

		<guid isPermaLink="false">http://everburning.com/?p=3</guid>
		<description><![CDATA[<p>Well, I&#8217;ve finaly done it, I got a new site up. I&#8217;ve been working on this on and off for months. Going through dozens of site designs, getting bored, coming back. Finally got a base pushed out today that I can build off of.</p>
<p>A lot of information isn&#8217;t here at the moment. I&#8217;ll have to see what I decide to bring back. I know I&#8217;ll bring the photos back just have to get that portion of the site written. </p>
<p>I&#8217;ve done this one in Ruby on Rails, which is pretty sweet ass for making websites, keeps the drudgery down and the coolness up. Which is probably why I&#8217;m moving my blog off of LiveJournal. LJ works really well at what it does but I like to be able to control, tweek and fiddle. Having all my data over here gives me that ability.</p>
<p>Not sure if I&#8217;ll pull the LJ posts over here or not. Maybe a few of the last ones, once I figure out the best way to do it.</p>
<p>Anyway, here it is, the shiny new everburning. We&#8217;ll see where this one goes.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fnew-and-improved%2F&amp;title=New+and+improved" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fnew-and-improved%2F&amp;title=New+and+improved" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fnew-and-improved%2F&amp;title=New+and+improved" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fnew-and-improved%2F&amp;title=New+and+improved" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fnew-and-improved%2F&amp;title=New+and+improved', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fnew-and-improved%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fnew-and-improved%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fnew-and-improved%2F&amp;title=New+and+improved" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fnew-and-improved%2F&amp;title=New+and+improved" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></description>
			<content:encoded><![CDATA[<p>Well, I&#8217;ve finaly done it, I got a new site up. I&#8217;ve been working on this on and off for months. Going through dozens of site designs, getting bored, coming back. Finally got a base pushed out today that I can build off of.</p>
<p>A lot of information isn&#8217;t here at the moment. I&#8217;ll have to see what I decide to bring back. I know I&#8217;ll bring the photos back just have to get that portion of the site written. </p>
<p>I&#8217;ve done this one in Ruby on Rails, which is pretty sweet ass for making websites, keeps the drudgery down and the coolness up. Which is probably why I&#8217;m moving my blog off of LiveJournal. LJ works really well at what it does but I like to be able to control, tweek and fiddle. Having all my data over here gives me that ability.</p>
<p>Not sure if I&#8217;ll pull the LJ posts over here or not. Maybe a few of the last ones, once I figure out the best way to do it.</p>
<p>Anyway, here it is, the shiny new everburning. We&#8217;ll see where this one goes.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fnew-and-improved%2F&amp;title=New+and+improved" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fnew-and-improved%2F&amp;title=New+and+improved" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fnew-and-improved%2F&amp;title=New+and+improved" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fnew-and-improved%2F&amp;title=New+and+improved" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fnew-and-improved%2F&amp;title=New+and+improved', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fnew-and-improved%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fnew-and-improved%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fnew-and-improved%2F&amp;title=New+and+improved" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fnew-and-improved%2F&amp;title=New+and+improved" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://everburning.com/news/new-and-improved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The king is dead, long live the king</title>
		<link>http://everburning.com/news/the-king-is-dead-long-live-the-king/</link>
		<comments>http://everburning.com/news/the-king-is-dead-long-live-the-king/#comments</comments>
		<pubDate>Thu, 06 Jul 2006 20:20:00 +0000</pubDate>
		<dc:creator>dj2</dc:creator>
				<category><![CDATA[Everburning]]></category>

		<guid isPermaLink="false">http://everburning.com/news/the-king-is-dead-long-live-the-king/</guid>
		<description><![CDATA[<p>Well I&apos;ve finally done it and put the new <a href="http://everburning.com">everburning</a> up. I&apos;ll be posting over there from now on so this blog is essentially dead.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fthe-king-is-dead-long-live-the-king%2F&amp;title=The+king+is+dead%2C+long+live+the+king" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fthe-king-is-dead-long-live-the-king%2F&amp;title=The+king+is+dead%2C+long+live+the+king" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fthe-king-is-dead-long-live-the-king%2F&amp;title=The+king+is+dead%2C+long+live+the+king" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fthe-king-is-dead-long-live-the-king%2F&amp;title=The+king+is+dead%2C+long+live+the+king" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fthe-king-is-dead-long-live-the-king%2F&amp;title=The+king+is+dead%2C+long+live+the+king', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fthe-king-is-dead-long-live-the-king%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fthe-king-is-dead-long-live-the-king%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fthe-king-is-dead-long-live-the-king%2F&amp;title=The+king+is+dead%2C+long+live+the+king" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fthe-king-is-dead-long-live-the-king%2F&amp;title=The+king+is+dead%2C+long+live+the+king" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></description>
			<content:encoded><![CDATA[<p>Well I&apos;ve finally done it and put the new <a href="http://everburning.com">everburning</a> up. I&apos;ll be posting over there from now on so this blog is essentially dead.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Fthe-king-is-dead-long-live-the-king%2F&amp;title=The+king+is+dead%2C+long+live+the+king" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fthe-king-is-dead-long-live-the-king%2F&amp;title=The+king+is+dead%2C+long+live+the+king" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fthe-king-is-dead-long-live-the-king%2F&amp;title=The+king+is+dead%2C+long+live+the+king" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Fthe-king-is-dead-long-live-the-king%2F&amp;title=The+king+is+dead%2C+long+live+the+king" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Fthe-king-is-dead-long-live-the-king%2F&amp;title=The+king+is+dead%2C+long+live+the+king', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Fthe-king-is-dead-long-live-the-king%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Fthe-king-is-dead-long-live-the-king%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Fthe-king-is-dead-long-live-the-king%2F&amp;title=The+king+is+dead%2C+long+live+the+king" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Fthe-king-is-dead-long-live-the-king%2F&amp;title=The+king+is+dead%2C+long+live+the+king" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://everburning.com/news/the-king-is-dead-long-live-the-king/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Feeding the peanut gallery</title>
		<link>http://everburning.com/news/feeding-the-peanut-gallery/</link>
		<comments>http://everburning.com/news/feeding-the-peanut-gallery/#comments</comments>
		<pubDate>Thu, 06 Jul 2006 14:54:00 +0000</pubDate>
		<dc:creator>dj2</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Everburning]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Hobbies]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Weddings]]></category>
		<category><![CDATA[d20 future]]></category>
		<category><![CDATA[Ewl]]></category>

		<guid isPermaLink="false">http://everburning.com/news/feeding-the-peanut-gallery/</guid>
		<description><![CDATA[<p>As you may have noticed, I&apos;m trying to get in the habit of updating this on a semi-regular basis (as opposed to my once every 1-3 month habit). We&apos;ll see how it goes.</p>
<p>Still working on everburning. I&apos;ve got the quotes and the news sections done and could, and may, put them online. I&apos;m currently working on the photo gallery which could be difficult depending on what I do. I still have to check that textdrive supports rmagick, and if they don&apos;t, if they&apos;ll install it. But, assuming I get some time, I should have something up relatively soon. Once it&apos;s up I&apos;ll move this blog over there. I just like controlling my own stuff I guess.</p>
<p>I&apos;ve been trying to get back into EWL programming and to that end have done a couple of little cleanups/fixes in the code. Nothing major, my brain isn&apos;t ready to accept working on anything like ewl_tree2 or ewl_paned at the moment. I think it&apos;s coming back, just taking a while.</p>
<p>Nathan has some interesting plans in the works to abstract out the EWL graphics a step further. I&apos;ve currently pulled out the window and canvas code into engines (it was already wrapped in #ifdef&apos;s just had to extract it out) but he&apos;s thinking of taking it a step further and abstracting out all the evas/edje related calls in the code. This would give us the flexibility of completely changing out backend. So, you could have a gtk/pango backend along side the Evas/Edje backend.</p>
<p>I&apos;ve actually been spending a bunch of my time lately looking up information on D20 Future. I&apos;ve owned this for a while and Anderson is currently running a campaign in it for a couple people but I&apos;m toying with the idea of making my own campaign. So, I&apos;ve been looking up other peoples ideas and other tools that might be useful for this kind of thing. If you&apos;ve got any suggestions send me an email and let me know. Not sure if it&apos;ll pan out or not, I have a tendency to get bogged down in details (and with a whole galaxy to work with, that&apos;s a lot of details.</p>
<p>On a final note, the wedding plans seem to be coming together pretty well. We sent out the invitations the other day and they&apos;ve started to arrive (I still have to get two addresses, I&apos;m a bad man, heh). Other plans seem to be coalescing into something coherent as well. It should all be good. I hope.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Ffeeding-the-peanut-gallery%2F&amp;title=Feeding+the+peanut+gallery" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Ffeeding-the-peanut-gallery%2F&amp;title=Feeding+the+peanut+gallery" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Ffeeding-the-peanut-gallery%2F&amp;title=Feeding+the+peanut+gallery" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Ffeeding-the-peanut-gallery%2F&amp;title=Feeding+the+peanut+gallery" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Ffeeding-the-peanut-gallery%2F&amp;title=Feeding+the+peanut+gallery', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Ffeeding-the-peanut-gallery%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Ffeeding-the-peanut-gallery%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Ffeeding-the-peanut-gallery%2F&amp;title=Feeding+the+peanut+gallery" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Ffeeding-the-peanut-gallery%2F&amp;title=Feeding+the+peanut+gallery" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></description>
			<content:encoded><![CDATA[<p>As you may have noticed, I&apos;m trying to get in the habit of updating this on a semi-regular basis (as opposed to my once every 1-3 month habit). We&apos;ll see how it goes.</p>
<p>Still working on everburning. I&apos;ve got the quotes and the news sections done and could, and may, put them online. I&apos;m currently working on the photo gallery which could be difficult depending on what I do. I still have to check that textdrive supports rmagick, and if they don&apos;t, if they&apos;ll install it. But, assuming I get some time, I should have something up relatively soon. Once it&apos;s up I&apos;ll move this blog over there. I just like controlling my own stuff I guess.</p>
<p>I&apos;ve been trying to get back into EWL programming and to that end have done a couple of little cleanups/fixes in the code. Nothing major, my brain isn&apos;t ready to accept working on anything like ewl_tree2 or ewl_paned at the moment. I think it&apos;s coming back, just taking a while.</p>
<p>Nathan has some interesting plans in the works to abstract out the EWL graphics a step further. I&apos;ve currently pulled out the window and canvas code into engines (it was already wrapped in #ifdef&apos;s just had to extract it out) but he&apos;s thinking of taking it a step further and abstracting out all the evas/edje related calls in the code. This would give us the flexibility of completely changing out backend. So, you could have a gtk/pango backend along side the Evas/Edje backend.</p>
<p>I&apos;ve actually been spending a bunch of my time lately looking up information on D20 Future. I&apos;ve owned this for a while and Anderson is currently running a campaign in it for a couple people but I&apos;m toying with the idea of making my own campaign. So, I&apos;ve been looking up other peoples ideas and other tools that might be useful for this kind of thing. If you&apos;ve got any suggestions send me an email and let me know. Not sure if it&apos;ll pan out or not, I have a tendency to get bogged down in details (and with a whole galaxy to work with, that&apos;s a lot of details.</p>
<p>On a final note, the wedding plans seem to be coming together pretty well. We sent out the invitations the other day and they&apos;ve started to arrive (I still have to get two addresses, I&apos;m a bad man, heh). Other plans seem to be coalescing into something coherent as well. It should all be good. I hope.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Feverburning.com%2Fnews%2Ffeeding-the-peanut-gallery%2F&amp;title=Feeding+the+peanut+gallery" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Ffeeding-the-peanut-gallery%2F&amp;title=Feeding+the+peanut+gallery" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Ffeeding-the-peanut-gallery%2F&amp;title=Feeding+the+peanut+gallery" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Feverburning.com%2Fnews%2Ffeeding-the-peanut-gallery%2F&amp;title=Feeding+the+peanut+gallery" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Feverburning.com%2Fnews%2Ffeeding-the-peanut-gallery%2F&amp;title=Feeding+the+peanut+gallery', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://images.del.icio.us/static/img/delicious.small.gif" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Feverburning.com%2Fnews%2Ffeeding-the-peanut-gallery%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Feverburning.com%2Fnews%2Ffeeding-the-peanut-gallery%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Feverburning.com%2Fnews%2Ffeeding-the-peanut-gallery%2F&amp;title=Feeding+the+peanut+gallery" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Feverburning.com%2Fnews%2Ffeeding-the-peanut-gallery%2F&amp;title=Feeding+the+peanut+gallery" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span>]]></content:encoded>
			<wfw:commentRss>http://everburning.com/news/feeding-the-peanut-gallery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.301 seconds -->

