<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<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/"
	>

<channel>
	<title>undo &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/undo/</link>
	<description>Feed of posts on WordPress.com tagged "undo"</description>
	<pubDate>Sun, 27 Dec 2009 10:41:43 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Ctrl + Z Because Shit Happens T-Shirt]]></title>
<link>http://funnytees.wordpress.com/2009/12/23/ctrl-z-because-shit-happens-t-shirt/</link>
<pubDate>Wed, 23 Dec 2009 07:06:33 +0000</pubDate>
<dc:creator>funnytees</dc:creator>
<guid>http://funnytees.wordpress.com/2009/12/23/ctrl-z-because-shit-happens-t-shirt/</guid>
<description><![CDATA[Funny t-shirt about the undo shortcut Ctrl + Z Because Shit Happens - T-Shirt by Lamborati http://ww]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Funny t-shirt about the undo shortcut</p>
<div id="attachment_98" class="wp-caption alignnone" style="width: 408px"><a href="http://www.zazzle.com.au/ctrl_z_because_t_shirt-235341112241598883"><img class="size-full wp-image-98" title="Ctrl + Z Because Shit Happens - T-Shirt" src="http://funnytees.wordpress.com/files/2009/12/ctrl-z-because.jpg" alt="Ctrl + Z Because Shit Happens - T-Shirt by Lamborati" width="398" height="399" /></a><p class="wp-caption-text">Ctrl + Z Because Shit Happens - T-Shirt by Lamborati</p></div>
<p><a href="http://www.zazzle.com.au/ctrl_z_because_t_shirt-235341112241598883">http://www.zazzle.com.au/ctrl_z_because_t_shirt-235341112241598883</a></p>
<p>More funny designs by Lamborati:<br />
<a href="http://www.zazzle.com.au/lamborati/gifts">http://www.zazzle.com.au/lamborati/gifts</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Undo, Redo and Whatever... From A Web Application]]></title>
<link>http://somewebguy.wordpress.com/2009/12/21/undo-redo-and-whatever-from-a-web-application/</link>
<pubDate>Mon, 21 Dec 2009 05:03:49 +0000</pubDate>
<dc:creator>webdev_hb</dc:creator>
<guid>http://somewebguy.wordpress.com/2009/12/21/undo-redo-and-whatever-from-a-web-application/</guid>
<description><![CDATA[Long ago a brilliant developer invented the Undo command &#8212; probably one of the most important ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Long ago a brilliant developer invented the <strong>Undo</strong> command &#8212; probably one of the most important features to be added in computing history. It seems funny to me that today, in 2009, it is still a very rare feature to find on a website. This isn&#8217;t to say <em>no one</em> is doing it but more that it isn&#8217;t a common feature to find.</p>
<h3>Using Lambdas For Undo Actions</h3>
<p>In .NET you can use Lambdas to create a function and pass it around like an argument and then that <em>argument</em> can then be invoked at a later time in a different place. That said, with a little careful planning and a few correctly stored Lambdas, you could have a working &#8216;Undo&#8217; model in your ASP.NET web sites <em>For this example I&#8217;m going to use MVC but this would really work anywhere.</em></p>
<p><em><strong>Warning:</strong> This is very crude code, more of a proof of concept, so you probably don&#8217;t want to use it in your projects as is.</em></p>
<p>Let&#8217;s start with an abstract controller that contains our Undo handling code.</p>
<p><strong>[UndoController.cs]</strong></p>
<pre class="brush: csharp;">
using System;
using System.Web;
using System.Web.Mvc;

namespace UndoAction {

	//class that supports an undo action
	public class UndoController : Controller {

		#region Constants

		private const string SESSION_UNDO_ACTION = &#34;Session:UndoAction&#34;;
		private const string SESSION_UNDO_MESSAGE = &#34;Session:UndoMessage&#34;;
		private const string TEMP_DATA_UNDO_MESSAGE = &#34;UndoResult&#34;;
		private const string DEFAULT_UNDO_MESSAGE = &#34;Previous action was undone!&#34;;
		private const string DEFAULT_MISSING_UNDO_MESSAGE = &#34;No actions to undo!&#34;;

		#endregion

		#region Undo Action Container (Session)

		//contains the current undo action
		private static Action _UndoAction {
			get {
				return System.Web.HttpContext.Current
					.Session[SESSION_UNDO_ACTION] as Action ;
			}
			set {
				System.Web.HttpContext.Current
					.Session[SESSION_UNDO_ACTION] = value;
			}
		}

		//the message to return in the view data for this action
		private static string _UndoMessage {
			get {
				return System.Web.HttpContext.Current
					.Session[SESSION_UNDO_MESSAGE] as string ;
			}
			set {
				System.Web.HttpContext.Current
					.Session[SESSION_UNDO_MESSAGE] = value;
			}
		}

		#endregion

		#region Setting Undo Actions

		/// &#60;summary&#62;
		/// Applies an undo action
		/// &#60;/summary&#62;
		protected void SetUndo(Action action) {
			this.SetUndo(DEFAULT_UNDO_MESSAGE, action);
		}

		/// &#60;summary&#62;
		/// Applies an undo action with a return message for the user
		/// &#60;/summary&#62;
		protected void SetUndo(string message, Action action) {
			UndoController._UndoAction = action;
			UndoController._UndoMessage = message;
		}

		/// &#60;summary&#62;
		/// Performs the undo action (if any) and saves the message
		/// &#60;/summary&#62;
		protected void PerformUndo() {

			//check if there is an action
			if (UndoController._UndoAction is Action) {

				//perform the action and save the message
				Action action = UndoController._UndoAction;
				action();
				this.TempData[TEMP_DATA_UNDO_MESSAGE] =
					UndoController._UndoMessage;

				//and clear out the previous information
				UndoController._UndoAction = null;
				UndoController._UndoMessage = null;

			}
			//just save a generic message
			else {
				this.TempData[TEMP_DATA_UNDO_MESSAGE] =
					DEFAULT_MISSING_UNDO_MESSAGE;
			}

		}

		#endregion

	}

}
</pre>
<p>Basically, we create an abstract Controller that allows us to set an Undo action using a Lambda. You can also set a message for to return to the user that sumarizes what the action had done. This example uses a couple Session variables to hold the parts of the undo action, except I recommend that you create an actual class to house all of the information.</p>
<p>Next, let&#8217;s look at how we would actually use this controller.</p>
<p><strong>[HomeController.cs]</strong></p>
<pre class="brush: csharp;">
using System;
using System.Collections.Generic;
using System.Web.Mvc;
using System.Linq;

namespace UndoAction {

	//example of using undo actions
	public class HomeController : UndoController {

		#region Constants

		private const string SESSION_LIST_CONTAINER = &#34;Session:ListContainer&#34;;

		#endregion

		#region Properties

		//a simple list of items for the list
		public static List&#60;string&#62; ListContainer {
			get {
				List&#60;string&#62; container = System.Web.HttpContext.Current.Session[SESSION_LIST_CONTAINER] as List&#60;string&#62;;
				if (container == null) {
					container = new List&#60;string&#62;();
					System.Web.HttpContext.Current.Session[SESSION_LIST_CONTAINER] = container;
				}
				return container;
			}
		}

		#endregion

		#region Actions

		//shows the list of items
		public ActionResult Index() {
			return this.View(HomeController.ListContainer.OrderBy(item =&#38;gt; item.ToLower()));
		}

		//adds an item to the list
		public ActionResult Add(string phrase) {

			//format the value
			phrase = (phrase ?? string.Empty).Trim();

			//add the item if it isn't there yet
			if (!HomeController.ListContainer.Any(item =&#62; item.Equals(phrase, StringComparison.OrdinalIgnoreCase)) &#38;amp;&#38;amp;
			    !string.IsNullOrEmpty(phrase)) {
				HomeController.ListContainer.Add(phrase);
			}

			//return to the list view
			return this.RedirectToAction(&#34;Index&#34;);

		}

		//removes an item from the list
		public ActionResult Delete(string phrase) {

			//make sure the item even exists first
			if (HomeController.ListContainer.Any(item =&#62; item.Equals(phrase, StringComparison.OrdinalIgnoreCase))) {

				//since it exists, save the logging message
				this.SetUndo(
					string.Format(&#34;Restored '{0}' to the list!&#34;, phrase),
					() =&#62; {
						HomeController.ListContainer.Add(phrase);
					});

				//and then actually remove it
				HomeController.ListContainer.Remove(phrase);

			}

			//return to the main page
			return this.RedirectToAction(&#34;Index&#34;);

		}

		//tries to undo the previous action
		public ActionResult Undo() {

			//attempts to undo the previous action (if any)
			this.PerformUndo();

			//return to the main page
			return this.RedirectToAction(&#34;Index&#34;);
		}

		#endregion

	}

}
</pre>
<p>This controller allows the user to manage a simple shopping list with an Undo action to allow them to restore a deleted item. It is some ugly code, but you get the idea on how it works.</p>
<p>The important thing you should note is that the Lambda doesn&#8217;t refer to the instance of the class (<code>this</code>) but instead that the list is a static property. This is important to keep in mind as you develop something like this. When you create the Lambda action, you can&#8217;t refer to the instance that it was created in. Instead, you need to work with static properties.</p>
<p>Finally, let&#8217;s look at the ViewPage that is used in this example.</p>
<p><strong>[Index.aspx]</strong></p>
<pre class="brush: xml;">
&#60;%@ Page Language=&#34;C#&#34;
	Inherits=&#34;System.Web.Mvc.ViewPage&#34; %&#62;
&#60;%@ Import Namespace=&#34;System.Collections.Generic&#34; %&#62;

&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Strict//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&#34;&#62;
&#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34;&#62;
	&#60;head&#62;
		&#60;title&#62;Shopping List&#60;/title&#62;
	&#60;/head&#62;
	&#60;body&#62;
		&#60;% IEnumerable&#60;string&#62; list = this.Model as IEnumerable&#60;string&#62;; %&#62;

		&#60;h2&#62;Shopping List&#60;/h2&#62;

		&#60;p&#62;&#60;% =this.Html.ActionLink(&#34;Undo Previous Action&#34;, &#34;Undo&#34;) %&#62;&#60;/p&#62;

		&#60;% if (this.TempData[&#34;UndoResult&#34;] is string) { %&#62;
		&#60;p&#62;&#60;em&#62;&#60;% =this.TempData[&#34;UndoResult&#34;] as string %&#62;&#60;/em&#62;&#60;/p&#62;
		&#60;% } %&#62;

		&#60;hr /&#62;

		&#60;table&#62;
		&#60;% foreach(string item in list) { %&#62;
			&#60;tr&#62;
				&#60;td&#62;&#60;% =this.Html.Encode(item) %&#62;&#60;/td&#62;
				&#60;td&#62;&#60;% =this.Html.ActionLink(&#34;Remove&#34;, &#34;Delete&#34;, new { phrase = item }) %&#62;&#60;/td&#62;
			&#60;/tr&#62;
		&#60;% } %&#62;
		&#60;/table&#62;

		&#60;hr /&#62;

		&#60;form action=&#34;&#60;% =this.Url.Action(&#34;Add&#34;) %&#62;&#34; method=&#34;post&#34; &#62;
			&#60;strong&#62;Add an item:&#60;/strong&#62;
			&#60;input type=&#34;text&#34; name=&#34;phrase&#34; /&#62;
			&#60;input type=&#34;submit&#34; value=&#34;Add&#34; /&#62;
		&#60;/form&#62;

	&#60;/body&#62;
&#60;/html&#62;
</pre>
<p>The ViewPage itself is nothing fancy &#8212; If you&#8217;re working in a project you should create a strongly-typed view but in this example we just read the information we need and go on.</p>
<h3>Using The Page</h3>
<p>Below are a few screen shots of what happens as the user makes changes to the page. This example starts with a list of a few different items.</p>
<p><a href="http://somewebguy.wordpress.com/files/2009/12/shopping-list-1.png"><img class="aligncenter size-medium wp-image-896" title="shopping-list-1" src="http://somewebguy.wordpress.com/files/2009/12/shopping-list-1.png?w=294" alt="" width="294" height="300" /></a></p>
<p>After removing an item from the list (the &#8216;Orange&#8217;) pressing the &#8216;Undo Previous Action&#8217; button will restore the item. The custom message that was added is displayed (from the TempData field).</p>
<p><a href="http://somewebguy.wordpress.com/files/2009/12/shopping-list-2.png"><img class="aligncenter size-medium wp-image-897" title="shopping-list-2" src="http://somewebguy.wordpress.com/files/2009/12/shopping-list-2.png?w=294" alt="" width="294" height="300" /></a></p>
<p>If you press the &#8216;Undo&#8217; button again there aren&#8217;t any actions waiting anymore and the default message is displayed instead (no actions waiting).</p>
<p><a href="http://somewebguy.wordpress.com/files/2009/12/shopping-list-3.png"><img class="aligncenter size-medium wp-image-898" title="shopping-list-3" src="http://somewebguy.wordpress.com/files/2009/12/shopping-list-3.png?w=294" alt="" width="294" height="300" /></a></p>
<h3>Things To Consider</h3>
<p>This code is just a sample of how you could implement and Undo function into your web applications. Here are a few things that you might want to keep in mind before starting something like this.</p>
<ul>
<li>Make sure that your Undo command doesn&#8217;t cause you to duplicate code. In this example, the undo command uses a different &#8216;Add&#8217; approach than the actual &#8216;Add&#8217; action on the controller. This could result in duplicated code or incorrect results.</li>
<li>Determine if you can queue up &#8216;Undo&#8217; commands. This example can only do one action at a time, but you could potentially create a Stack of actions that are executed in the reverse order that they were added.</li>
<li>Could you use the same concept to &#8216;Redo&#8217; a command after it has been undone?</li>
<li>Be careful with your context &#8211; Don&#8217;t use &#8216;this&#8217; inside of your Undo Lambdas.</li>
</ul>
<p>Anyways, just an interesting concept to share. This approach requires a lot more thought but could pay off in the end.</p>
<p><strong>Do you have a web application that could benefit from an &#8216;Undo&#8217; command?</strong></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The aftermath of GIS...]]></title>
<link>http://imicrothinking.wordpress.com/2009/12/15/the-aftermath-of-gis/</link>
<pubDate>Tue, 15 Dec 2009 10:13:48 +0000</pubDate>
<dc:creator>imicrothinking</dc:creator>
<guid>http://imicrothinking.wordpress.com/2009/12/15/the-aftermath-of-gis/</guid>
<description><![CDATA[Hey guys! Finally, after a painstaking wait, I&#8217;m gonna write this! Sorry about that&#8230;it h]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Hey guys!</p>
<p>Finally, after a painstaking wait, I&#8217;m gonna write this!</p>
<p>Sorry about that&#8230;it has been a crazy month, with us moving and pipes bursting and attending the GIS and all that&#8230;it&#8217;s been hard to take time out and blog.</p>
<p>Well, without further digressing, here it is.</p>
<p>Going to GIS&#8230;literally blew my mind away. I mean, in the mere presence of those power players, the patina of awesomeness they exuded, I felt humbled. I truly felt a world of difference between the audience and the stage, despite the speakers&#8217; efforts at convincing us that there&#8217;s not a lot of distance betwen us (literally&#8230;and figuratively).</p>
<p>So then, I thought, &#8216;well, the pro guys speaking up there on stage SHOULDN&#8217;T be lying.&#8217;</p>
<p>The more I pondered, the more I became convinced that there&#8217;s not so much difference between &#8216;you and me&#8217; (quote unquote, &#8216;you&#8217; being us newbies, and &#8216;me&#8217; being the gurus).</p>
<p>I mean, looking back at the SIMPLEST model of internet marketing available, email marketing, all you have to do to get started:</p>
<ol>
<li>Conduct market research (finding rabid buyers)</li>
<li>Conduct keyword research (finding those that have a modest search volume, and which you can dominate, without much competition)</li>
<li>Buy your domain name and webhosting, and transfer your DNSes to your webhost (you have to wait for it to propagate &#8211; that&#8217;s to circulate in the world&#8217;s DNSes)<img class="alignright" style="margin-left:20px;margin-top:20px;margin-bottom:20px;" title="Market research" src="http://sarah0401.files.wordpress.com/2008/10/marketresearch.jpg" alt="Conducting market research" width="50%" /></li>
<li>Find a product (either buy PLRs, that&#8217;s Private Label Rights, or MRRs, Master Resell Rights) or develop your own</li>
<li>Design the marketing graphics that go with it (banner ads, text ads, front covers, etc.)</li>
<li>Build a squeeze page and FTP it to your webhost&#8217;s server</li>
<li>Link the optin form to your autoresponder</li>
<li>Write a series of emails (start with 7?) without the greens in mind and including a load of content (use ethos, logos and pathos to help elicit empathy and establish rapport)</li>
<li>Research related products that have affiliate programs</li>
<li>Contact the support team to get a sample portion of the product and review it</li>
<li>If it&#8217;s worth it, sign up. If the quality is awful, then search for another one.</li>
<li>Check conversion rates and commission payout rates (reputation of those affiliate programs and webmasters) to make sure you actually get the commissions on time.</li>
<li>Get your affiliate links.</li>
<li>Post them whenever the etiquette is appropriate in your emails (content that links to it).</li>
<li>Automate your emails using an autoresponder service.</li>
<li>Promote your squeeze page using traffic generation techniques (Q&#38;A sites, Social media, Social bookmarking, eZines, article directories, Blogs, review sites, etc.)</li>
<li>Wait for commissions to pour in.</li>
</ol>
<p>I mean, when you put it like that, it sounds W-A-A-A-A-Y more logical, doesn&#8217;t it?</p>
<p>The only difference is in the numbers. We&#8217;d probably make a few do</p>
<div class="wp-caption alignleft" style="width: 310px"><img title="Lots of cash" src="http://human-test.info/wp-content/uploads/2009/10/lots-of-cash.jpg" alt="$, $, lots of it" width="300" height="356"><p class="wp-caption-text">Lots of $$</p></div>
<p>llars &#8211; a couple hundred of bucks, while the gurus are doing this in the hundreds of thousands of dollars PER MONTH, and possibly 7-8 figures, depending on their viral marketing strategies.</p>
<p>So, what&#8217;s the catch?</p>
<p>After all, these 17 steps LOOK simple enough, aren&#8217;t they? They LOOK simple enough, don&#8217;t they&#8230;..</p>
<p>The catch is simple. It&#8217;s the <em>terra incognita</em> factor in play again.</p>
<p>It&#8217;s the fear of the unknown.</p>
<p>It&#8217;s the technicalities.</p>
<p>GUESS WHAT?! IT&#8217;S REALLY NOT THAT DIFFICULT!</p>
<p>But again, it&#8217;s not the separate components that are difficult, it&#8217;s STRINGING THE COMPONENTS TO FORM A COMPLETE PICTURE THAT IS.</p>
<p>What do I do with the domain name? How do I configure custom emails? How do I access them? What services should I sign up with? What happens when I do build my squeeze page?</p>
<p>Again, it&#8217;s really as the gurus said on stage.</p>
<p>&#8216;&#8230;most people fail&#8230;because they get CAUGHT UP.&#8217;</p>
<p>Period.</p>
<p>You get caught up in life, caught up in the finer details of each step, caught up in a snag&#8230;</p>
<p>There&#8217;s no end to it.</p>
<p>So, <strong>WHAT&#8217;S THE SOLUTION</strong>???</p>
<p>That&#8217;s the whole point of this post. I really wanted to share my thoughts to this seemingly impossible conundrum&#8230;</p>
<p>But instead of being direct, I wanna use a slightly roundabout manner of expression&#8230;</p>
<p>So, I&#8217;m going to leave with Ewen&#8217;s slightly comical (but true) quote, with a slight extrapolation&#8230;</p>
<p>&#8216;&#8230;the most important skills you <strong>must </strong>have in Internet marketing are: copy and paste.&#8217;</p>
<p>- Ewen Chia</p>
<p>A slight addition:</p>
<p>&#8216;&#8230;the most important skills you <strong>must </strong>have in Internet marketing are: copy, paste <strong>AND UNDO</strong>.&#8217;</p>
<p>No biggie. Just one more shortcut, one more key sequence to remember (*hints hints* UNDO)&#8230;</p>
<p>There it is.</p>
<p>Do share your thoughts <a href="http://imicrothinking.wordpress.com/2009/12/15/the-aftermath-of-gis/#comments">here (leave a comment)!</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Finally 'UNDO' option in Edit mode of Google Wave]]></title>
<link>http://technofanatics.wordpress.com/2009/12/11/finally-undo-option-in-edit-mode-of-google-wave/</link>
<pubDate>Fri, 11 Dec 2009 02:07:00 +0000</pubDate>
<dc:creator>prasunnair</dc:creator>
<guid>http://technofanatics.wordpress.com/2009/12/11/finally-undo-option-in-edit-mode-of-google-wave/</guid>
<description><![CDATA[&nbsp;&nbsp; &nbsp; Dont know how long has this been there, but it was today that I realised that th]]></description>
<content:encoded><![CDATA[&nbsp;&nbsp; &nbsp; Dont know how long has this been there, but it was today that I realised that th]]></content:encoded>
</item>
<item>
<title><![CDATA[Ctrl + Z]]></title>
<link>http://ashigaru.wordpress.com/2009/12/07/ctrl-z/</link>
<pubDate>Mon, 07 Dec 2009 04:30:37 +0000</pubDate>
<dc:creator>Arm Kai</dc:creator>
<guid>http://ashigaru.wordpress.com/2009/12/07/ctrl-z/</guid>
<description><![CDATA[While I was lurking in a certain forum, I&#8217;ve stucked at this thread. It talks about how to rev]]></description>
<content:encoded><![CDATA[While I was lurking in a certain forum, I&#8217;ve stucked at this thread. It talks about how to rev]]></content:encoded>
</item>
<item>
<title><![CDATA[Everything in our world is about convenience]]></title>
<link>http://singledelight.wordpress.com/2009/11/30/everything-in-our-world-is-about-convenience/</link>
<pubDate>Tue, 01 Dec 2009 05:48:50 +0000</pubDate>
<dc:creator>a single delight</dc:creator>
<guid>http://singledelight.wordpress.com/2009/11/30/everything-in-our-world-is-about-convenience/</guid>
<description><![CDATA[Everything in our world is about convenience: saving time because it&#8217;s priceless. Thus, the in]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://singledelight.wordpress.com/files/2009/11/30nov.jpg"><img src="http://singledelight.wordpress.com/files/2009/11/30nov.jpg?w=150" alt="Ctrl+z" title="30nov" width="150" height="150" class="aligncenter size-thumbnail wp-image-48" /></a></p>
<p>Everything in our world is about convenience: saving time because it&#8217;s priceless. Thus, the invention of keyboard shortcuts doesn&#8217;t really come as a surprise, but I&#8217;m still very grateful to whoever came up with such a concept (probably someone who didn&#8217;t like using a mouse). Most are pretty conventional, such as ctrl + i for italicise, ctrl + s for save, ctrl + n for new file/folder, so on and so forth. Substitute &#8220;ctrl&#8221; with &#8220;command/apple&#8221; key for Macs. So I never really understood why ctrl + z was undo, instead of something like, say, zip the file. I know ctrl + u is underline, so that&#8217;s taken, but why not make the underline shortcut ctrl + shift + u, and use ctrl + u as the shortcut for undo? Then it clicked: the &#8220;z&#8221; key is closest to the ctrl/command key. Hence one doesn&#8217;t have to stretch one&#8217;s fingers allllll the way over to the &#8220;u&#8221; key and waste all that energy and effort. What an ingenious decision!</p>
<p>Still, there are downsides to ctrl + z. Sometimes when I write or draw something on paper, and make a mistake, I catch myself doing the &#8220;ctrl + z&#8221; motion with my left fingers. It&#8217;s a big disappointment, especially when nothing happens. Oh well. If even real life could be controlled by shortcuts, everything would get too fast, and I won&#8217;t be able to catch up with myself. Otherwise, I love my keyboard shortcuts. Especially in Photoshop.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Undoer (C#)]]></title>
<link>http://ozba.wordpress.com/2009/11/29/undoer-c/</link>
<pubDate>Sun, 29 Nov 2009 13:00:34 +0000</pubDate>
<dc:creator>theone3</dc:creator>
<guid>http://ozba.wordpress.com/2009/11/29/undoer-c/</guid>
<description><![CDATA[public class Undoer { private static Stack sUndoStack = new Stack(); private static Stack sRedoStack]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><pre class="brush: css;">
public class Undoer
    {
        private static Stack sUndoStack = new Stack();
        private static Stack sRedoStack = new Stack();
        public static int UndoStackCount { get { return sUndoStack.Count; } }
        public static int RedoStackCount { get { return sRedoStack.Count; } }

        public static bool InsertEnabled = true;

        public static void Insert(Func pObj)
        {
            if (InsertEnabled)
            {
                sUndoStack.Push(pObj());
                sRedoStack.Clear();
            }
        }

        public static T Undo()
        {
            var tObj = sUndoStack.Pop();
            sRedoStack.Push(tObj);
            if (sUndoStack.Count &#38;gt; 0)
            {
                return sUndoStack.Peek();
            }
            return default(T);
        }

        public static T Redo()
        {
            var tObj = sRedoStack.Pop();
            sUndoStack.Push(tObj);
            return tObj;
        }

        public static bool CanUndo { get { return sUndoStack.Count &#38;gt; 0; } }

        public static bool CanRedo { get { return sRedoStack.Count &#38;gt; 0; } }

        public static void Init()
        {
            sUndoStack.Clear();
            sRedoStack.Clear();
        }

    }
</pre>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Using the Undo Function in Windows]]></title>
<link>http://bigdtechresource.wordpress.com/2009/11/19/using-the-undo-function-in-windows/</link>
<pubDate>Thu, 19 Nov 2009 18:00:00 +0000</pubDate>
<dc:creator>currind06</dc:creator>
<guid>http://bigdtechresource.wordpress.com/2009/11/19/using-the-undo-function-in-windows/</guid>
<description><![CDATA[Something that I mentioned in the past is the ability to use keyboard shortcuts to get work done wit]]></description>
<content:encoded><![CDATA[Something that I mentioned in the past is the ability to use keyboard shortcuts to get work done wit]]></content:encoded>
</item>
<item>
<title><![CDATA[Rush of Fools]]></title>
<link>http://abbielie.wordpress.com/2009/11/06/rush-of-fools/</link>
<pubDate>Fri, 06 Nov 2009 06:49:30 +0000</pubDate>
<dc:creator>abbielie</dc:creator>
<guid>http://abbielie.wordpress.com/2009/11/06/rush-of-fools/</guid>
<description><![CDATA[I found this one song from Rush of Fools: Undo. Have you ever listened to this song? It&#8217;s one ]]></description>
<content:encoded><![CDATA[I found this one song from Rush of Fools: Undo. Have you ever listened to this song? It&#8217;s one ]]></content:encoded>
</item>
<item>
<title><![CDATA[Edit Menu]]></title>
<link>http://mediashout411.wordpress.com/2009/11/05/editmenu/</link>
<pubDate>Thu, 05 Nov 2009 23:59:13 +0000</pubDate>
<dc:creator>chrisrouse</dc:creator>
<guid>http://mediashout411.wordpress.com/2009/11/05/editmenu/</guid>
<description><![CDATA[Undo let&#8217;s you go back one or several steps if you messed something up or accidentally deleted]]></description>
<content:encoded><![CDATA[Undo let&#8217;s you go back one or several steps if you messed something up or accidentally deleted]]></content:encoded>
</item>
<item>
<title><![CDATA[Anni B Sweet - Start, Restart, Undo]]></title>
<link>http://tododealgo.wordpress.com/2009/11/03/anni-b-sweet-start-restart-undo/</link>
<pubDate>Tue, 03 Nov 2009 20:20:28 +0000</pubDate>
<dc:creator>tododealgo</dc:creator>
<guid>http://tododealgo.wordpress.com/2009/11/03/anni-b-sweet-start-restart-undo/</guid>
<description><![CDATA[Start, Restart, Undo http://www.megaupload.com/?d=S8M029N4 320kbps ^^ Que mona va esta chica siempre]]></description>
<content:encoded><![CDATA[Start, Restart, Undo http://www.megaupload.com/?d=S8M029N4 320kbps ^^ Que mona va esta chica siempre]]></content:encoded>
</item>
<item>
<title><![CDATA[Gracepoint Live - UNDO DVDs]]></title>
<link>http://sfsukoinonia.wordpress.com/2009/10/30/gracepoint-live-undo-dvds/</link>
<pubDate>Fri, 30 Oct 2009 21:21:47 +0000</pubDate>
<dc:creator>sfsukoinonia</dc:creator>
<guid>http://sfsukoinonia.wordpress.com/2009/10/30/gracepoint-live-undo-dvds/</guid>
<description><![CDATA[As many of you saw during our Sierra Lodge trip, Gracepoint puts on a huge performance called G-Live]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>As many of you saw during our Sierra Lodge trip, Gracepoint puts on a huge performance called G-Live!   We got a chance to see various skits from the past two GLive performances.   We actually got a sneak preview prior to the official GLive release.  But that was only two clips out of the entire performance.  So many of us were left thinking, &#8220;man, that was awesome!  I want more Glive!&#8221;  Well you couldn&#8217;t!  At least until now! The official GLive DVDs have been announced!  To pre-order your DVDs, <a href="http://spreadsheets.google.com/viewform?formkey=dEVKNnpzUmlVaXY2RU9XSUxlMkpxZXc6MA">click here!</a></p>
<p>To get you guys pumped up about it, here the intro video:</p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/q32WJrxmk7A&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/q32WJrxmk7A&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Subtravelling Festival]]></title>
<link>http://elblogdeluko.wordpress.com/2009/10/30/subtravelling-festival/</link>
<pubDate>Fri, 30 Oct 2009 17:22:44 +0000</pubDate>
<dc:creator>elblogdeluko</dc:creator>
<guid>http://elblogdeluko.wordpress.com/2009/10/30/subtravelling-festival/</guid>
<description><![CDATA[Subtravelling Festival: Primera muestra Internacional de Cortometrajes en el Metro Entre los días 15]]></description>
<content:encoded><![CDATA[Subtravelling Festival: Primera muestra Internacional de Cortometrajes en el Metro Entre los días 15]]></content:encoded>
</item>
<item>
<title><![CDATA[Cool Joke - UNDO]]></title>
<link>http://aoinnoji.wordpress.com/2009/10/30/cool-joke-undo/</link>
<pubDate>Fri, 30 Oct 2009 11:49:30 +0000</pubDate>
<dc:creator>aoinnoji</dc:creator>
<guid>http://aoinnoji.wordpress.com/2009/10/30/cool-joke-undo/</guid>
<description><![CDATA[Cool Joke &#8211; UNDO Artist: Cool Joke Title: UNDO Single Anime: Full Metal Alchemist Tracklist: 0]]></description>
<content:encoded><![CDATA[Cool Joke &#8211; UNDO Artist: Cool Joke Title: UNDO Single Anime: Full Metal Alchemist Tracklist: 0]]></content:encoded>
</item>
<item>
<title><![CDATA[Don't Panic! Gmail Has You Covered]]></title>
<link>http://socialtab.wordpress.com/2009/10/29/dont-panic-gmail-has-you-covered/</link>
<pubDate>Thu, 29 Oct 2009 20:16:18 +0000</pubDate>
<dc:creator>Cody Barbierri</dc:creator>
<guid>http://socialtab.wordpress.com/2009/10/29/dont-panic-gmail-has-you-covered/</guid>
<description><![CDATA[While this particular post might not have a whole lot to do with social media, it reminded me of a c]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="null"><img class="alignnone" src="http://www.hrmorning.com/wp-content/uploads/email-envelope.jpg" alt="" width="146" height="158" /></a>While this particular post might not have a whole lot to do with social media, it reminded me of a conversation I had with a former client that made me laugh, so I wanted to highlight the feature</p>
<p>Many rely on the popular Gmail email service and don’t use Outlook or other email formats otherwise found in a business setting.  Gmail is a great resource as it’s free and gives you many of the same capabilities as traditional services. However, in the past there has been one feature missing from Gmail that appears in other email services: the recall button. While not necessarily new news, I wanted to take the time to point out that Gmail now has a “recall” feature, or more appropriately labeled “undo.”</p>
<p>The undo feature allows users a 5 second window after they hit the send button to recall their email. Now, there are a whole hosts of reasons why you may want to recall an email. Reasons could include: an incorrect recipient, wrong draft email or possibly a previously missed spelling error. For whatever reason, I can safely say that most of us at one point in time have pushed the send button and immediately said “oh crap.”</p>
<p>Gmail also has a similar function– a service that once activated makes you solve a series of math problems and only allows your email to go out during specific hours (which default to Friday and Saturday nights). The service is supposed to stop “drunk emailing” using the notion that if you’re drunk it will be hard to do math and may deter you to not send an inappropriate email and falls in line as a preventative measure for Gmail users.</p>
<p>Says Michael Leggett, User Experience Designer, “This feature can&#8217;t pull back an email that&#8217;s already gone; it just holds your message for five seconds so you have a chance to hit the panic button. And don&#8217;t worry – if you close Gmail or your browser crashes in those few seconds, we&#8217;ll still send your message.”</p>
<p>For the skeptics out there saying that individuals should be responsible enough workers to check and double check their emails, Google included some statistics to justify the undo button. The study showed that 87% of executives reported they have mistakenly sent or received an email or other electronic message.</p>
<p>Email is an important aspect to our daily routine and, if you’re using Gmail, you now have the capabilities to join the other masses who have the option to recall or undo an email. Because, let’s face it, we are all human and humans make mistakes.</p>
<p><a href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fsocialtab.wordpress.com%2F2009%2F10%2F29%2Fdont-panic-gmail-has-you-covered%2F&#38;linkname=Don%27t%20Panic!%20Gmail%20Has%20You%20Covered"><img src="http://static.addtoany.com/buttons/share_save_256_24.png" alt="Share" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Electroshock US 2009]]></title>
<link>http://wego.wordpress.com/2009/10/26/electroshock-us-2009/</link>
<pubDate>Mon, 26 Oct 2009 17:19:29 +0000</pubDate>
<dc:creator>irammartinez</dc:creator>
<guid>http://wego.wordpress.com/2009/10/26/electroshock-us-2009/</guid>
<description><![CDATA[Iram Martínez / revistawego@gmail.com La Universidad de Sevilla confirma su apuesta por las nuevas t]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong>Iram Martínez / <a href="mailto:revistawego@gmail.com" target="_blank">revistawego@gmail.com</a></strong></p>
<p style="text-align:justify;"><strong><a rel="attachment wp-att-11590" href="http://wego.wordpress.com/2009/10/26/electroshock-us-2009/cartel_programa/"><img class="alignleft size-full wp-image-11590" title="CARTEL_PROGRAMA" src="http://wego.wordpress.com/files/2009/10/cartel_programa.jpg" alt="CARTEL_PROGRAMA" width="198" height="320" /></a>La Universidad de Sevilla</strong> confirma su apuesta por las nuevas tendencias y la música electrónica (que no todo lo que organice la hispalense tiene que ver con música clásica, copón) y organiza el segundo Electroshock US que se celebrará del 5 al 7 de noviembre en La Pista Digital (<a href="http://maps.google.com/maps/ms?ie=UTF8&#38;hl=es&#38;msa=0&#38;msid=103141000215693969028.0004672f3fe24bb479764&#38;source=embed&#38;ll=37.406437,-6.005101&#38;spn=0.003273,0.004495&#38;z=17" target="_blank">mira por aquí el mapa</a>) y en la Sala WAM (Hotel Los Lebreros).</p>
<p style="text-align:justify;">La descarga de esta nueva edición la proporcionarán, ojo al cartel: <a href="http://myspace.com/bedroomcommunity" target="_blank"><strong>Bedroom Comunity</strong></a><strong>, </strong><a href="www.myspace.com/christ.music" target="_blank"><strong>Christ</strong></a><strong>, </strong><a href="http://www.myspace.com/littlericard" target="_blank"><strong>Voodooetnies</strong></a><strong>, <a href="http://www.myspace.com/tensionco" target="_blank">Tensión Co</a>, </strong><a href="http://www.myspace.com/hauschka" target="_blank"><strong>Hauschka</strong></a><strong>, <a href="http://www.myspace.com/brunasounds" target="_blank">bRUNA</a> y <a href="http://www.myspace.com/djundo" target="_blank">Undo</a>.</strong></p>
<p><strong>Sigue leyendo para ver la programación, precios y datos sobre los artistas</strong></p>
<p><!--more--></p>
<h2><strong>Jueves 5 de noviembre</strong></h2>
<p>Pista Digital (<a href="http://maps.google.com/maps/ms?ie=UTF8&#38;hl=es&#38;msa=0&#38;msid=103141000215693969028.0004672f3fe24bb479764&#38;source=embed&#38;ll=37.406437,-6.005101&#38;spn=0.003273,0.004495&#38;z=17" target="_blank">C/ Madame Curie &#8211; Isla de la Cartuja</a>), a las 21:00 h.</p>
<p>Comunidad Universitaria de la Universidad de Sevilla 3€. Entrada general 6€</p>
<p>Venta de entradas en el local a partir de las 19:00 h.</p>
<p style="text-align:justify;"><strong><a href="www.myspace.com/christ.music" target="_blank">Chris Horne</a></strong> es la única persona de la que no se puede decir que tiene influencias de Boards of Canada porque conoce a los hermanos Eoin desde el colegio, y juntos han compartido multitud de grupos, risas y cervezas en los pubs de Edimburgo. Comparte con ellos su afición al sonido de los sintetizadores setenteros, las melodías agridulces y las texturas desenfocadas. Desde que lanzó en 2002 su primer EP &#8220;Pylonesque&#8221;, ha probado ser un individuo creativo que ha sabido forjarse una carrera única en cuanto a belleza se refiere.</p>
<p style="text-align:justify;"><strong><a href="http://www.myspace.com/littlericard" target="_blank">Voodoo Etnies</a></strong></p>
<p style="text-align:justify;">Tras el nombre de Voodoo Etnies está el nombre de uno de los más prometedores productores de hip-hop español. El sevillano se caracteriza por fundir en sus ritmos la tradición rapera más clásica con influencias de lo más variopinto. Ha trabajado con MCs como Tote King, Putolargo y Shotta, con quien gira en los últimos meses. Tiene recién editado el EP &#8220;Unfinished Works&#8221; con el sello británico A Future Without, que cuenta entre sus filas con músicos tan reputados como Adrian Utley, de Portishead.</p>
<h2><strong>Viernes 6 de noviembre</strong></h2>
<p>Sala Pista Digital (<a href="http://maps.google.com/maps/ms?ie=UTF8&#38;hl=es&#38;msa=0&#38;msid=103141000215693969028.0004672f3fe24bb479764&#38;source=embed&#38;ll=37.406437,-6.005101&#38;spn=0.003273,0.004495&#38;z=17" target="_blank">C/ Madame Curie &#8211; Isla de la Cartuja</a>), a las 21:00 hrs.  Comunidad Universitaria de la Universidad de Sevilla 3€. Entrada general 6€.  Venta de entradas en el local a partir de las 19:00 h.</p>
<p><strong><a href="http://www.myspace.com/hauschka" target="_blank">Hauschka</a></strong></p>
<p style="text-align:justify;">Volker Bertelmann se ha pasado muchos años en bandas de pop y rock, peor su pasión es el piano de cola. Acompañado de ese instrumento mezcla irreverencia, delicadeza y géneros de distintas épocas. Lo suyo no es solamente tocar el piano sino que introduce (literalmente) en el distintos objetos, juega con sus piezas y consigue sonidos que no podríamos imaginar que vienen de un instrumento tan clásico. En su último trabajo &#8220;Ferndof&#8221;, incorpora al discurso la presencia de dos chelos, formación con la que se presentaría en Electrochock US 2009.</p>
<p><strong><a href="http://www.myspace.com/tensionco" target="_blank">TENSION Co.</a></strong></p>
<p style="text-align:justify;">La parte local de la noche la ponen Tensión Co, dúo electrónico formado a finales de 2006 por Miriam Blanch (aka MIR), laptop y bajo (que toca, procesa y manipula en directo), y José Mª Pérez-Flor (aka Synthetic Mouse), laptop.</p>
<p style="text-align:justify;">El grupo sevillano mezcla el noise más atmosférico, el minimalismo digital, la electroacústica y músicas de difícil tránsito que requieren una escucha un poco más comprometida. La música de TENSION Co. es electrónica ambiental oscura y minimal, ruidista y de intensidad creciente. Consiguen crear extrañas y personales atmósferas que enganchan y desconciertan a la vez. Para sus actuaciones en directo se arman de dos laptops y un bajo asistido con Pd (Pure Data) y tocado con diferentes objetos y pedales de efectos, con los cuales desarrollan su música o no-música, experimental, tensa e hipnótica.</p>
<p><strong><a href="http://www.myspace.com/brunasounds" target="_blank">Dj bRUNA</a></strong></p>
<p>Sala Wam (Hotel Los Lebreros), a las 00:00 h. Entrada libre.</p>
<p style="text-align:justify;"><strong>Carles Guajardo</strong>, quien artísticamente se hace conocer como bRUNA, tiene por objetivo poner el acento feliz en sus sesiones de DJ. Esa habilidad ha sido demostrada de sobra en magníficas sesiones para salas como Club13, festivales como Sónar e incluso novedosas actividades &#8220;escolares&#8221; como la Red Bull Music Academy celebrada en Toronto en 2007. Y esa intención, también, es la misma que subyace en su disco de debut, el luminoso &#8220;And It Matters to Me to See You Smiling&#8221; (spa.RK, 2009). Es algo que queda claro desde el mismo título, que certifican el tono desenfadado y alegre de la mayoría de los temas y el infeccioso acento pop con el que compone sus melodías.</p>
<h2>Sábado 7 de noviembre</h2>
<p><strong><a href="http://myspace.com/bedroomcommunity" target="_blank">Bedroom Community</a></strong></p>
<p style="text-align:justify;">Sala Pista Digital (<a href="http://maps.google.com/maps/ms?ie=UTF8&#38;hl=es&#38;msa=0&#38;msid=103141000215693969028.0004672f3fe24bb479764&#38;source=embed&#38;ll=37.406437,-6.005101&#38;spn=0.003273,0.004495&#38;z=17" target="_blank">C/ Madame Curie &#8211; Isla de la Cartuja</a>), a las 21:00 hrs. Venta de entradas en el local a partir de las 19:00 h. Comunidad Universitaria de la Universidad de Sevilla 3€. Entrada general 6€</p>
<p style="text-align:justify;">El sello islandés <strong><a href="http://myspace.com/bedroomcommunity" target="_blank">Bedroom Community</a></strong> es una plataforma que funciona en parte como comuna artística y en parte como refugio creativo. <strong>Como comuna artística, porque cada vez que producen un disco, los cuatro miembros de la comunidad (Nico Muhly, Ben Frost, Valgeir Sigurðsson y Sam Amidon)</strong> participan en el proceso de grabación, de manera que siempre existe un cierto tono de complicidad, un &#8220;sello&#8221; de calidad que los hace únicos. Y como refugio creativo, porque los cuatro músicos suelen trabajar en otros entornos, como músicos de sesión, arreglistas o productores para grandes estrellas del pop. El resultado de esta actitud es un puñado de discos tan inconformistas como delicados. Pequeñas piezas de orfebrería que mezclan pop, rock, ambient y música electrónica, y que gustan de adornarse con recursos de música contemporánea, arreglos medievalistas y detalles robados a la música de bandas sonoras.</p>
<p style="text-align:justify;">A Electroshock US <strong>vendrán con su último proyecto &#8220;The Whale Watching Tour&#8221;</strong>, un espectáculo en el que los cuatro músicos, <strong>acompañados de violines, guitarras, percusiones, un piano de cola y todo tipo de cachivaches electrónicos</strong>, tocan un repertorio en el que se mezclan algunas piezas sacadas de sus distintos discos, otras hechas expresamente para la ocasión e incluso alguna versión. Todo ello acompañado por una espectacular puesta en escena, que incluye visuales.</p>
<p><strong><a href="http://www.myspace.com/djundo" target="_blank">Dj Undo</a></strong></p>
<p>Sala Wam (Hotel Los Lebreros), a las 00:00 h. Entrada libre. 00:00 h. Entrada libre.</p>
<p style="text-align:justify;">DJ, productor y propietario de un sello discográfico, Undo es un hombre de muchas caras. Muchas son las actividades que realiza este músico que tuvo una carrera sólida antes de convertirse en la revelación de la Barcelona de principios de milenio. Gabriel Berlanga ha sido compositor, vocalista, guitarrista y bajista en numerosas bandas de pop-rock desde muy pequeño. A mediados de los años noventa, descubrió el emergente mundo de la electrónica de baile, y se dejó fascinar por él. Gabriel empezó a coleccionar discos, pinchar y experimentar con los sonidos electrónicos: tocando viejos sintetizadores, loop-samplers y efectos de guitarra.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Garbage Collection and KVO and NSNotificationCenter, Oh My!]]></title>
<link>http://cocoaconvert.net/2009/10/23/garbage-collection-and-kvo-and-nsnotificationcenter-oh-my/</link>
<pubDate>Fri, 23 Oct 2009 15:56:40 +0000</pubDate>
<dc:creator>Jeremy</dc:creator>
<guid>http://cocoaconvert.net/2009/10/23/garbage-collection-and-kvo-and-nsnotificationcenter-oh-my/</guid>
<description><![CDATA[Recently, I ran into some problems with data dependencies and garbage collection in my bespoke model]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Recently, I ran into some problems with data dependencies and garbage collection in my bespoke model classes.  Several classes in my model code register as observers of other model classes using either KVO or via <code>NSNotificationCenter</code>.</p>
<p>Although I&#8217;m using garbage collection, I was trying to be a good boy by implementing a dispose method on some of these model classes so that they could de-register as observers when they were no longer an active participant of the model.</p>
<p>The problem with this approach is that various Cocoa classes, such as <code>NSUndoManager</code>, don&#8217;t easily offer me the opportunity to invoke my <code>dispose</code> method (say for example when the redo queue is cleared by registering a new invocation).  There are a few different solutions to the problem.  In my case, registering the &#8220;activation&#8221; and &#8220;deactivation&#8221; of my model classes (i.e. the adding and removing of themselves as observers) with the <code>NSUndoManager</code> is the one I opted for.</p>
<p>In the course of implementing this code, I played around with using <code>NSObject's finalize</code> method as a way to de-register my observers, rather than inducing the undo manager to invoke my own <code>dispose</code> method.  Generally speaking, I try to stay away from <code>finalize</code> methods in garbage collected languages, and Objective-C is no exception.  Apple cautions against the madness of using <code>finalize</code> methods for performing any serious work.</p>
<p>All that said, it got me thinking about where exactly Apple expects objects to de-register their KVO and <code>NSNotificationCenter</code> observers in the general case.  The problem with remove observers in  <code>finalize</code> methods are several:</p>
<ol>
<li>You are forced to introduce a <code>finalize</code> method where you otherwise wouldn&#8217;t have to.  Not good for performance and can open up a Pandora&#8217;s box of non-determinism.</li>
<li>The finalizer&#8217;s of objects collected in the same cycle are not guaranteed to run in any particular order.  So de-registering object A as an observer of object B in object A&#8217;s <code>finalize</code> method might happen after object B is already collected (i.e. when it&#8217;s invalid), leading to &#8220;Cannot remove an observer &#8230; for the key path &#8230; from &#8230; because it is not registered as an observer.&#8221;</li>
<li>The de-registration of observers happens at a non-deterministic time (i.e. whenever the garbage collector gets around to running).</li>
</ol>
<p>As far as items #1 and #2 are concerned, there is a better way, which is (wait for it&#8230;) to do nothing.</p>
<p>From the docs on <code>NSNotificationCenter's addObserver</code>:</p>
<blockquote><p><em>&#8220;As a convenience, when built with garbage collection, you do not need to remove any garbage collected observer as the system will do it implicitly.&#8221;</em></p></blockquote>
<p>And as of the November seed of 10.6, this is also now true of KVO.  The seed note <em>&#8220;Automatic Removal of Finalized Key-Value Observers When Running Garbage-Collected (New since November seed)&#8221;</em> describes the following:</p>
<blockquote><p><em>&#8220;In Mac OS 10.6, explicit removal of observers when they&#8217;re finalized is now never necessary. KVO automatically removes observers as they&#8217;re collected. Actually, in Mac OS 10.6 all invocations of -[NSObject(NSKeyValueObserverRegistration) removeObserver:forKeyPath:] and -[NSArray(NSKeyValueObserverRegistration) removeObserver:fromObjectsAtIndexes:forKeyPath:] do virtually nothing when either the receiver or the observer is being finalized (so it&#8217;s not very bad for performance to leave them there in applications that still have to run on Mac OS 10.5).&#8221;</em></p></blockquote>
<p>So at least in Snow Leopard after the November seed, you can just let it ride and the system will take care of cleaning up your KVO and <code>NSNotificationCenter</code> registrations.</p>
<p>As for item #3, well it&#8217;s either playing games with regularly invoking <code>NSGarbageCollector's collectExhastively</code> or implementing a dispose pattern.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Students go ga-ga for 'Undo Send']]></title>
<link>http://dotedu.wordpress.com/2009/10/15/students-go-ga-ga-for-undo-send/</link>
<pubDate>Thu, 15 Oct 2009 14:12:22 +0000</pubDate>
<dc:creator>Gary Ploski</dc:creator>
<guid>http://dotedu.wordpress.com/2009/10/15/students-go-ga-ga-for-undo-send/</guid>
<description><![CDATA[Every time I tell students about the lab feature Undo Send within seconds they are giddy with excite]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Every time I tell students about the lab feature Undo Send within seconds they are giddy with excitement about how much this is <em>going</em> to save them. That&#8217;s right &#8211; going to. Inevitably their thoughts go back to an email they wish they could have unsent but the possibility of never having that worry again is mesmerizing.</p>
<p style="text-align:center;"><img class="aligncenter" title="undo send" src="http://1.bp.blogspot.com/_JE4qNpFW6Yk/ScLHy-gp_qI/AAAAAAAAAS8/OlL1Wf2W6W0/undo_send.png" alt="" width="371" height="70" /></p>
<p>At a student club leader presentation two weeks ago I reviewed a number of labs and explained Undo Send. Note &#8211; I had approximatley 5-10 minutes to review the entire Google Apps suite so I was going quickly. About 3 seconds after I explained Undo Send and had paused for effect one student literally gasped with jaw agape! You could see the &#8220;OMG HFCIT FTW&#8221; look across her face. She was elated.</p>
<p>Though not at profound a reaction, possibly because of the brain melt that has affected them, students also smile a the fact that they can change the undo time from 5 seconds to 10 seconds.</p>
<p>Tasks has graduated to become an official part of GMail, when will Undo Send.</p>
<p>Nobody has snubbed the lab feature. Yet. Will someone? I&#8217;d be amazed.<!--more--></p>
<p>Read the GMail blog on Undo Send:<br />
<a title="GMail blog Undo Send" href="http://gmailblog.blogspot.com/2009/03/new-in-labs-undo-send.html" target="_blank">http://gmailblog.blogspot.com/2009/03/new-in-labs-undo-send.html</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The Excitement Continues!]]></title>
<link>http://facefromthepast.wordpress.com/2009/10/14/the-excitement-continues/</link>
<pubDate>Wed, 14 Oct 2009 00:07:21 +0000</pubDate>
<dc:creator>facefromthepast</dc:creator>
<guid>http://facefromthepast.wordpress.com/2009/10/14/the-excitement-continues/</guid>
<description><![CDATA[There is so much exciting stuff happening in my life right now, I can hardly keep up with it all eve]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>There is so much exciting stuff happening in my life right now, I can hardly keep up with it all even in my own mind! My high at the moment is a bit of serendipity that happened yesterday.</p>
<p>Last week, I &#8220;cheated&#8221; on the knitting I was supposed to be doing, and took the time to knit my first serious Fair Isle project. My only previous experience with Fair Isle had been a felted container, so I could get by with doing a lazy job. However, the moment I saw the new clock project from <a href="http://www.knitpicks.com/knitting.cfm" target="_blank"><strong>Knit Picks</strong></a>, I was enchanted with the concept of knitting myself a clock.</p>
<p><img class="aligncenter size-full wp-image-879" title="Clock" src="http://facefromthepast.wordpress.com/files/2009/10/clock.jpg" alt="Clock" width="470" height="352" /></p>
<p>It was very disappointing that the <span style="text-decoration:underline;">only</span> way to get the pattern was to buy the whole kit, and there was only one colorway. I find the choice of colors quite unappealing, and in my house, they would be downright appalling. However, I wanted to do this badly enough that I bought it anyway. The Caribbean corals, banana, and periwinkle shades can go into my stash and be used for doll knitting or other such things in the future. I added a heap of pinks, browns, and greens to my order, and when it all arrived, I knew I&#8217;d done the right thing. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I spent a lovely evening playing with the colors, using the black and white mode on my camera to compare the intensity of the colors. Fair Isle that doesn&#8217;t have gray scale contrast between colors used with each other appears muddy &#8211; a problem I noted in the kit colors, by the way.</p>
<p><img class="aligncenter size-full wp-image-874" title="Clock 004" src="http://facefromthepast.wordpress.com/files/2009/10/clock-0041.jpg" alt="Clock 004" width="470" height="352" /></p>
<p>I ended up with a selection of 10 colors that felt perfect to me, plus the bare, which is used for the ribbing that gathers behind the face to hold the knitting in place.</p>
<p><img class="aligncenter size-full wp-image-878" title="Clock 040" src="http://facefromthepast.wordpress.com/files/2009/10/clock-040.jpg" alt="Clock 040" width="470" height="352" /></p>
<p>This is half again as many colors as is on the pattern, so I sat down with Knit Visualizer and redesigned the color layout. While I was at it, I just made a 12 repeat wide chart for myself so I didn&#8217;t have to risk going back and forth between the separate number charts and the main chart during the knitting.  I knew that was a recipe for trouble!</p>
<p>Once the planning was finished, the knitting seemed to go very smoothly, and it was terribly addictive!</p>
<p><img class="aligncenter size-full wp-image-875" title="Clock 005" src="http://facefromthepast.wordpress.com/files/2009/10/clock-005.jpg" alt="Clock 005" width="470" height="352" /></p>
<p>I started in the wee hours of Sunday morning, and the actual knitting was done by Wednesday morning &#8211; just 3 days later!</p>
<p><img class="aligncenter size-full wp-image-876" title="Clock 008" src="http://facefromthepast.wordpress.com/files/2009/10/clock-008.jpg" alt="Clock 008" width="470" height="352" /></p>
<p>I was so proud of how tidy my back looked, and my knitting is very smooth on the front &#8211; not lumpy in the least. I was amazed I&#8217;d managed so well, and had definitely not expected my first project to turn out so nicely.</p>
<p><img class="aligncenter size-full wp-image-877" title="Clock 010" src="http://facefromthepast.wordpress.com/files/2009/10/clock-010.jpg" alt="Clock 010" width="470" height="352" /></p>
<p>A two hour marathon resulted in a couple million ends being sewn in (picture above showing only part of them), leaving me with nothing to do except be impatient to be able to have a finished  clock.</p>
<p><img class="aligncenter size-full wp-image-873" title="Clock 001" src="http://facefromthepast.wordpress.com/files/2009/10/clock-001.jpg" alt="Clock 001" width="470" height="352" /></p>
<p>Here&#8217;s where things started getting a little bit more challenging, though&#8230; but I&#8217;ll get to that in a minute. First, a few comments about the pattern and instructions&#8230;</p>
<ul>
<li>For some really odd reason, the instructions say to use a provisional cast on. I can&#8217;t for anything figure out why. I opted for a long tail, since that is not bulky, and it is just fine. My completed clock face is gathered smoothly and easily to the back by running a gathering strand up and down through the ribbing, and there&#8217;s more support for the gathering, because it&#8217;s not just through a single loop of fingering weight yarn.</li>
<li>I added several plain color rows between the ribbing and the beginning of the design, and I started knitting the design just a little lower on the chart. I wanted to have that band of little pink roses around the edge of my clock.</li>
<li>The decreases worked really nicely until the very end. There the designer has 8 rows knit on the remaining stitches, and for me, that funneled. It&#8217;s just too many rows of the same at that small of a diameter. (Think about the Pi Shawl concept and that will make sense.) I&#8217;ve already gone back and picked out one row, which made a definite improvement. I might remove one more, but I&#8217;m waiting to see what happens when I assemble my clock before I commit.</li>
<li>If I knit something like this again, I might try knitting from the center out instead of the outside in. I found it extremely difficult to work the last few rows. It was very tight quarters.</li>
<li>Instructions say to just tie the ends together and cut them off. I experimented with that, but I found it left a jog in my Fair Isle design, so I did take the time to darn each end into the work, easing the design back toward looking more seamless. I think it was worth the effort. I don&#8217;t notice the seam unless I look for it.</li>
<li>Instead of starting my rows at center top, I started somewhere less conspicuous, making the jog even less noticeable.</li>
<li>There is an admonition in the instructions that totally confuses me. If I&#8217;d followed it the way it reads to me, I&#8217;d have had my numbers going the wrong direction around the dial. It says to be sure to put the numbers on in descending order. However, when you knit, you actually have to knit them in ascending order, or you will have a backwards clock. Just take some time to be sure you are going to have what you want when you are finished &#8211; like the carpenter measuring twice and cutting once, it is worth checking and double checking this before you knit very far.</li>
</ul>
<p>Now, about the rest of this project&#8230; The finishing instructions say to wrap your hat around a paper plate, punch a hole in the middle for a craft store clockwork, and hang it on the wall. I&#8217;m really proud of my knitting, and I have a Victorian style home with antique clocks. The paper plate thing was going to look seriously tacky &#8211; or at least very out of place here, no two ways about it! I&#8217;ve probably spent more hours working on finding a way to finish this and have something that looked fantastic than I&#8217;ve spent on the knitting to this point. However, I&#8217;ve finally had a serendipity happening that has resolved the challenge. Yesterday I dropped into the clock shop while I was in the city to teach lace knitting classes.</p>
<p><img class="aligncenter size-full wp-image-871" title="Clock 002" src="http://facefromthepast.wordpress.com/files/2009/10/clock-002.jpg" alt="Clock 002" width="470" height="626" /></p>
<p>While conducting my other business, I mentioned my knitted clock and my needs. It turned out that they happened to have a gutted case in the shop, and believe it or not, it was not only just the right size, but the style was appealing, and the case was from the 1980&#8217;s , so no guilt about messing up an antique. It&#8217;s an antique style case, but of modern manufacture, with solid, heavy wood. I don&#8217;t know wood well, but I think I&#8217;m guessing it is oak.</p>
<p><img class="aligncenter size-full wp-image-872" title="Clock 003" src="http://facefromthepast.wordpress.com/files/2009/10/clock-003.jpg" alt="Clock 003" width="470" height="626" /></p>
<p>And the back is wide open, which is going to make it much easier for me to make any modifications I need to do. A closed back, antique case would have made it more challenging to use an electronic movement. This set up is perfect, as it&#8217;s designed to use exactly what I was hoping to install.</p>
<p><img class="aligncenter size-full wp-image-870" title="Clock 004" src="http://facefromthepast.wordpress.com/files/2009/10/clock-004.jpg" alt="Clock 004" width="470" height="626" /></p>
<p>Best of all, they let me have it for just $25! There is no way I&#8217;d have been able to create any sort of a case for that price with my limited woodworking skills, let alone a fancy case like this one. Today I called <strong><a href="http://www.klockit.com/" target="_blank">Klockit</a></strong> for the umpteenth time, finally placing an order with them. All the inner workings are on the way, along with a glass bezel, arriving hopefully early next week. (I have to put in a gold star rating for this company, by the way. I&#8217;ve spoken and/or emailed multiple clock related companies in the past week, and the service I got from Klockit has been so far above and beyond anything I got elsewhere that I doubt I&#8217;ll look to the right or the left again. They are fantastic people, and so helpful that it&#8217;s a delight to work with them, even if you don&#8217;t quite know what you are doing.)</p>
<p>A little bit of <a href="https://un-du.com/" target="_blank"><strong>Un-du</strong></a> (I love this stuff!) has already removed the presentation plaque from the front of the case, leaving not a trace of residue. So, now my only problem is to find something other than my dinner plate to use as a dial disk. It has to be thin enough for the clockwork shaft, strong enough to not buckle from the knitting being stretched around it, and I have to have a way to get it cut in a perfectly smooth, 10.25&#8243; disk. I&#8217;ll be puzzling over that problem and Briwaxing my clock case while I wait with eager anticipation for my Klockit package to arrive.</p>
<p>I know&#8230; Patience is a virtue and all that&#8230; <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Besides, it&#8217;s not like I don&#8217;t have anything else to do here, right?</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[LetGo or LetGo _ LeToonz Character]]></title>
<link>http://letoonz.wordpress.com/2009/10/09/letgo-or-let-it-go-or-letgo-or-lettinggo-or-letting-go-or/</link>
<pubDate>Fri, 09 Oct 2009 20:52:04 +0000</pubDate>
<dc:creator>JohnBrian</dc:creator>
<guid>http://letoonz.wordpress.com/2009/10/09/letgo-or-let-it-go-or-letgo-or-lettinggo-or-letting-go-or/</guid>
<description><![CDATA[Abridged Version Let Go is the stopping of all AY activities.  LG is no thought.  LG is no Feeling. ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong><img class="alignleft size-full wp-image-39" title="Let Go" src="http://letoonz.wordpress.com/files/2009/10/let-go.jpg" alt="Let Go" width="337" height="450" />Abridged Version</strong></p>
<p>Let Go is the stopping of all AY activities.  LG is no thought.  LG is no Feeling.  LG is mindlessness.  LG is a moment or a window that allows something to come through.  Typically LG allows insights or Ah-Ha&#8217;s to come to us.  LG can happen physically, psychologically or spiritually or a mix of both.  The ways we LG are as varied as each and every one of us is varied.  We can LG as individuals or LG in groups of any rank or size.  LG is hard for adults to do. </p>
<p><strong>Unabridged Version</strong></p>
<p>LG is not giving up or quitting.  Quite the opposite, LG allows us to move forward and beyond where we are by letting go to the next thing.  LG can happen in the Head but not in the Heart or vice versa.  For example, I can lose weight and know intellectually that I&#8217;m 50- pounds lighter but still feel and believe that I am a fat person!.  In this scenario I have not let Go as a Whole. </p>
<p>LG happens all the time but some people find it very difficult to do.  Others tend to be predominantly LG and need the rest of the LeToonz facets to be bring balance into their lives.  LG people often keep others from getting stuck on something. Let Go might seem like a 60&#8217;s kinda&#8217; character but it&#8217;s not as simple as that. </p>
<p>LG can happen in a split second.  LG may take no time at all to happen or may happen over a long period of time.  The time it takes to stop feeling the pain of losing someone special in our lives is an example of this.  We can LG slowly about something in our hearts while we LG about that same thing quickly in our Minds.  LG is not fully complete until the Head and Heart have LG together.  Most often LG happens so fast we can say it occurs as a moment in time. Like having just one, or a bunch, or a whole string of Ah-Ha&#8217;s while taking a shower, glancing out a window, or while taking a walk in the woods.  We LG many, many times without sensing the time it takes to LG one bit. And with that much LettingGo and Ah-Ha&#8217;s happening time just flies.  Interesting isn&#8217;t it.  Like AskYouself, LetGo or Letting Go, can happen in the Head or the Heart or both at Once.  We call the both at once event The Whole.  LG comes after AY and before Ah-Ha on Le Wave.  LG allows Ah-Ha or insight to happen.  Without LG we can&#8217;t learn or evolve into the 6W&#8217;s – The Who and What, When and Where and How and WHY of each and every one of us whether that US is ourselves, our families, friends, teams or group of any size. That size includes the world by the way.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Ctrl + Z/Cmd + Z Erasers]]></title>
<link>http://sheleftmecauseimweak.wordpress.com/2009/10/06/ctrl-zcmd-z-erasers/</link>
<pubDate>Tue, 06 Oct 2009 18:21:37 +0000</pubDate>
<dc:creator>WEAK</dc:creator>
<guid>http://sheleftmecauseimweak.wordpress.com/2009/10/06/ctrl-zcmd-z-erasers/</guid>
<description><![CDATA[]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img src="http://sheleftmecauseimweak.wordpress.com/files/2009/10/crtl-z-eraser.jpg" alt="Crtl + Z eraser" title="Crtl + Z eraser" width="450" height="315" class="aligncenter size-full wp-image-811" /></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Can you undo what you’re about to do?]]></title>
<link>http://canberrabusiness.wordpress.com/2009/10/02/can-you-undo-what-you%e2%80%99re-about-to-do/</link>
<pubDate>Fri, 02 Oct 2009 00:00:26 +0000</pubDate>
<dc:creator>andrewnewnham</dc:creator>
<guid>http://canberrabusiness.wordpress.com/2009/10/02/can-you-undo-what-you%e2%80%99re-about-to-do/</guid>
<description><![CDATA[Andrew Newnham By Andrew Newnham (Fruition Data) A very important question should be asked before in]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div id="attachment_297" class="wp-caption alignleft" style="width: 140px"><img class="size-full wp-image-297" title="Andrew Newnham" src="http://canberrabusiness.wordpress.com/files/2009/02/anewnham.jpg" alt="Andrew Newnham" width="130" height="180" /><p class="wp-caption-text">Andrew Newnham</p></div>
<p>By Andrew Newnham (<a title="Fruition Data" href="http://www.fruitiondata.com.au" target="_blank">Fruition Data</a>)</p>
<p>A very important question should be asked before installing any new piece of software. “Can I undo what I am about to do?”<br />
Now before you say to me “Well yes, I simply click the uninstall button”, I realise that you can press the uninstall software button and the software will uninstall. But what about the changes which that software has done to your computer? These are changes such as modify your existing data files to suit its new format, uninstall other pieces of old or conflicting software, or worst of all, the software which never quite uninstalls properly, which leave bits of itself around to haunt you for months to come.</p>
<p>If you ever read a project plan written by a reputable IT company it’ll usually include a plan on how they can “roll back” any software change. The process for undoing what you have just done may be more complex than simply clicking uninstall.<br />
So how does a company come up with these plans? Well it’s usually based on their consultants experience and knowledge of what the software does when it is working, and more importantly what the software does when it is not working. Often these plans have been generated after many hours of extensive testing and even then the choice to install it on a customer’s computer is not often taken lightly.</p>
<p>So before you next download that “free” piece of software from the web or purchase that “excellent” deal down at your local computer store, ask yourself “Can I undo what I am about to do?”</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[UNDO INFORMATION:dbms_undo_adv]]></title>
<link>http://maxwellmiranda.wordpress.com/2009/09/29/undo-informationdbms_undo_adv/</link>
<pubDate>Tue, 29 Sep 2009 13:58:53 +0000</pubDate>
<dc:creator>maxwellmiranda</dc:creator>
<guid>http://maxwellmiranda.wordpress.com/2009/09/29/undo-informationdbms_undo_adv/</guid>
<description><![CDATA[Table 1 Function calls within DBMS_UNDO_ADV Function Description Outputs undo_info Provides basic in]]></description>
<content:encoded><![CDATA[Table 1 Function calls within DBMS_UNDO_ADV Function Description Outputs undo_info Provides basic in]]></content:encoded>
</item>
<item>
<title><![CDATA[Teaching Photoshop to Purge (sorry can't think of a good dieting teen joke) - Performance Tip]]></title>
<link>http://o0odemocrazyo0o.wordpress.com/2009/09/23/teaching-photoshop-to-purge-sorry-cant-think-of-a-good-dieting-teen-joke-performance-tip/</link>
<pubDate>Wed, 23 Sep 2009 21:11:33 +0000</pubDate>
<dc:creator>o0odemocrazyo0o</dc:creator>
<guid>http://o0odemocrazyo0o.wordpress.com/2009/09/23/teaching-photoshop-to-purge-sorry-cant-think-of-a-good-dieting-teen-joke-performance-tip/</guid>
<description><![CDATA[Photoshop can be a like a weight lifting freak on Asterix potion&#8230; this program can crunch amaz]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Photoshop can be a like a weight lifting freak on Asterix potion&#8230; this program can crunch amazingly big files it can bench presses 600mb files without popping a blood vessel&#8230;</p>
<p>But sometimes when you swap / close / copy / paste / create new files etc it forgets to clean up all the old junk laying around and can get a bit slow. Thats where the <strong>Purge </strong>menu rocks&#8230; When you feel photoshop getting slow and cranky (especially if you need to alternate between photoshop and say illustrator or indesign etc)&#8230; maybe you have just copy pasted a huge file?&#8230; Go click the Edit menu with your meaty digits and select Purge. You can choose between clearing just the stuff in the clipboard (your copy / cut memory), histories, undos or completely erase all junk (including undos BTW)&#8230; This is great at keeping your system stable after a few hours of work&#8230; Just remember that it will remove your undos on your file so far created (no really focus on this&#8230;don&#8217;t blame me!)</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Vic mjeseca]]></title>
<link>http://bosnarije.wordpress.com/2009/09/23/vic-mjeseca/</link>
<pubDate>Wed, 23 Sep 2009 03:17:46 +0000</pubDate>
<dc:creator>taboovoice</dc:creator>
<guid>http://bosnarije.wordpress.com/2009/09/23/vic-mjeseca/</guid>
<description><![CDATA[• Tata, reci mi, kako sam se rodio? • Dobro sine, znao sam da ćeš me jednog dana to pitati. Evo ovak]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="alignleft size-full wp-image-2429" title="baby" src="http://bosnarije.wordpress.com/files/2009/09/baby.gif" alt="baby" width="15" height="18" />• Tata, reci mi, kako sam se rodio?<br />
• Dobro sine, znao sam da ćeš me jednog dana to pitati.<br />
Evo ovako&#8230;<br />
Tata i mama su napravili jedan copy/paste na jednom chatu na MSN-u.<br />
Tata je onda dao mami sastanak preko email-a u WC-u u jednom cybercafe-u.<br />
Onda je mama napravila nekoliko download-a s tatinim memory stick-om.<br />
Kad je tata bio spreman za upload, primjetili smo da nismo stavili firewall.<br />
Kako je bilo kasno da se koristi undo, a ni delete više nije pomagao, 9 mjeseci kasnije nam je stigao za*ebani virus&#8230;<img class="alignright size-full wp-image-2428" title="smiley53_haha" src="http://bosnarije.wordpress.com/files/2009/09/smiley53_haha.gif" alt="smiley53_haha" width="33" height="24" /></p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
