<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DEMHSH08eyp7ImA9WhRaFE8.&quot;"><id>tag:blogger.com,1999:blog-2689881006482382221</id><updated>2012-02-16T13:07:19.373-08:00</updated><category term="featured" /><category term="squeak pharo smalltalk morphic beginners" /><category term="infrastructure" /><category term="Intro" /><category term="Java" /><category term="Smalltalk" /><category term="Programming" /><title>withaguide.com</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.withaguide.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.withaguide.com/" /><author><name>David</name><uri>http://www.blogger.com/profile/14110604812109593844</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://1.bp.blogspot.com/_sca5crli7II/SsHy704-oVI/AAAAAAAAAKI/a03rAJy1nrY/S220/david-headshot-90-117.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/WithAGuide" /><feedburner:info uri="withaguide" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DUAGQXw9fCp7ImA9WxFUGUg.&quot;"><id>tag:blogger.com,1999:blog-2689881006482382221.post-7768850320105226699</id><published>2010-06-30T21:11:00.000-07:00</published><updated>2010-06-30T21:15:20.264-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-30T21:15:20.264-07:00</app:edited><title>Apple Hater Converted? I want an iPad!</title><content type="html">I've tweeted several times about my misgivings on the Apple iPad.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Still not getting an iPad (I'm a h8r), but Gruber's got a point against my main beef (the closed platform) &lt;a href="http://bit.ly/a0vO6j"&gt;http://bit.ly/a0vO6j&lt;/a&gt;&lt;br /&gt;
Apr 02 2010&lt;/li&gt;
&lt;li&gt;No scripting/coding on the iPhone was pad enough. But the iPad could have been great 4 kids to learn 2 code. Too bad. &lt;a href="http://bit.ly/ayKHYM"&gt;http://bit.ly/ayKHYM&lt;/a&gt;&lt;br /&gt;
Jan 31st&lt;/li&gt;
&lt;li&gt;if I had an iPad rather than a real computer as a kid, I’d never be a programmer today -- Alex Payne &lt;a href="http://al3x.net/2010/01/28/ipad.html"&gt;http://al3x.net/2010/01/28/ipad.html&lt;/a&gt;&lt;br /&gt;
Jan 29th&lt;/li&gt;
&lt;/ul&gt;I'd prefer an open platform. I think the changes to section 3.2.2 of the developer agreement are a small step in the right direction, and &amp;nbsp;I'd like to see more openness. From &lt;a href="http://www.boygeniusreport.com/2010/06/14/apple-adjusts-section-3-2-2-of-developer-agreement-again-becomes-slightly-more-inclusive/"&gt;Boy Genius&lt;/a&gt;:&lt;br /&gt;
&lt;blockquote&gt;Apple has again tweaked section 3.2.2 of the agreement, adding in a loophole which will allow them to approve certain interpretive code tools. The old section 3.2.2 read like this:&amp;nbsp;&lt;i&gt;No interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Apple’s Documented APIs and built-in interpreter(s).﻿&lt;/i&gt;&lt;/blockquote&gt;&lt;blockquote&gt;While the updated version looks like this:&amp;nbsp;&lt;i&gt;Unless otherwise approved by Apple in writing, no interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Apple’s Documented APIs and built-in interpreter(s). Notwithstanding the foregoing, with Apple’s prior written consent, an Application may use embedded interpreted code in a limited way if such use is solely for providing minor features or functionality that are consistent with the intended and advertised purpose of the Application.﻿&lt;/i&gt;&lt;/blockquote&gt;And I particularly hope that Squeak and Scratch and other great programming environments for kids and otherwise make it onto the iPad or similar devices.&lt;br /&gt;
&lt;br /&gt;
But, the iPad is just too good for me to not want one. Stefan Miller let me try his iPad a couple of times and I'm sold.&lt;br /&gt;
&lt;br /&gt;
The main reason is that I want a great PDF reader. The iPad is significantly better than the Kindle or even the Kindle DX for reading PDFs. I also want to annotate, and that capability is available as well.&lt;br /&gt;
&lt;br /&gt;
I read a lot of books on programming. These books tend to be heavy and expensive. The PDF versions can often be had for less than half the cost. But, that means carrying a laptop. (I've been known to hold my HP EliteBook sideways with the screen orientation on portrait.&lt;br /&gt;
&lt;br /&gt;
Hopefully innovative programming environments like the Lively Kernel will make it possible to write some code on the device and do some programming with kids. Quoting &lt;a href="http://www.infoq.com/interviews/ingalls-smalltalk"&gt;an interview with Dan Ingalls&lt;/a&gt;:&lt;br /&gt;
&lt;blockquote&gt;The fact that the Lively Kernel is just a web page and you click on it and you're running this system, it's a system that can do graphics editing, can produce images, can do simple programs, like Squeak that you can save a page from, means that basically anywhere you have a network computer, you can have authoring.&lt;/blockquote&gt;&lt;blockquote&gt;That's one ingredient. Another is I noticed that there is a certain challenge you have before you can become a developer for say the iPhone and yet the iPhone has Safari in it and it runs Lively Kernel applications just fine. It seems to me there is an opportunity here for something much more open than the App Store in which everybody can contribute and produce and share active content.&lt;/blockquote&gt;And, I hold out hope that &lt;a href="http://news.squeak.org/2010/06/17/squeak-running-on-ipad/"&gt;eToys&lt;/a&gt;, &lt;a href="http://isqueak.org/HomePage"&gt;Squeak &lt;/a&gt;and &lt;a href="http://news.ycombinator.com/item?id=1268382"&gt;Scratch&lt;/a&gt; will someday be approved as well.&lt;br /&gt;
&lt;br /&gt;
But, for now, I am looking forward to compromising my principles! The iPad is on my birthday list! As are a number of apps, gift cards will be welcomed!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2689881006482382221-7768850320105226699?l=www.withaguide.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WithAGuide/~4/It27c9Sw_Q8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.withaguide.com/feeds/7768850320105226699/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2689881006482382221&amp;postID=7768850320105226699" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/7768850320105226699?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/7768850320105226699?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WithAGuide/~3/It27c9Sw_Q8/apple-hater-converted-i-want-ipad.html" title="Apple Hater Converted? I want an iPad!" /><author><name>David</name><uri>http://www.blogger.com/profile/14110604812109593844</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://1.bp.blogspot.com/_sca5crli7II/SsHy704-oVI/AAAAAAAAAKI/a03rAJy1nrY/S220/david-headshot-90-117.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.withaguide.com/2010/06/apple-hater-converted-i-want-ipad.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4NQHg4cCp7ImA9WxBQGEg.&quot;"><id>tag:blogger.com,1999:blog-2689881006482382221.post-8677149080702236975</id><published>2010-01-18T15:15:00.000-08:00</published><updated>2010-01-18T15:23:11.638-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-18T15:23:11.638-08:00</app:edited><title>Iowa Code Camp 5 on May 1, 2010</title><content type="html">The &lt;a href="http://iowacodecamp.com"&gt;site&lt;/a&gt; is still showing ICC4 info, but the countdown clock has been updated to a new date! Looks like I need to free up a spring day for some hacking!&lt;br /&gt;&lt;br /&gt;While browsing the site, found a &lt;a href="http://picasaweb.google.com/iowacodecamp/Fall2009#5402299305993242594"&gt;picture&lt;/a&gt; of me presenting Seaside at ICC4. The book in the picture is Learning Programming with Robots. I think I was answering a question about Alice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2689881006482382221-8677149080702236975?l=www.withaguide.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WithAGuide/~4/QjF9gW_FHns" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.withaguide.com/feeds/8677149080702236975/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2689881006482382221&amp;postID=8677149080702236975" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/8677149080702236975?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/8677149080702236975?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WithAGuide/~3/QjF9gW_FHns/iowa-code-camp-5-on-may-1-2010.html" title="Iowa Code Camp 5 on May 1, 2010" /><author><name>David</name><uri>http://www.blogger.com/profile/14110604812109593844</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://1.bp.blogspot.com/_sca5crli7II/SsHy704-oVI/AAAAAAAAAKI/a03rAJy1nrY/S220/david-headshot-90-117.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.withaguide.com/2010/01/iowa-code-camp-5-on-may-1-2010.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQHQX84fip7ImA9WxBQE04.&quot;"><id>tag:blogger.com,1999:blog-2689881006482382221.post-6891194374186746987</id><published>2010-01-12T15:00:00.000-08:00</published><updated>2010-01-12T15:02:10.136-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-12T15:02:10.136-08:00</app:edited><title>Nice and simple script to install rails on Ubuntu 9.10</title><content type="html">Thanks to castilho:&lt;br /&gt;http://castilho.biz/blog/2009/11/05/ruby-on-rails-ubuntu-9-10-karmic-koala/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2689881006482382221-6891194374186746987?l=www.withaguide.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WithAGuide/~4/pqsY1_uYHsE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.withaguide.com/feeds/6891194374186746987/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2689881006482382221&amp;postID=6891194374186746987" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/6891194374186746987?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/6891194374186746987?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WithAGuide/~3/pqsY1_uYHsE/nice-and-simple-script-to-install-rails.html" title="Nice and simple script to install rails on Ubuntu 9.10" /><author><name>David</name><uri>http://www.blogger.com/profile/14110604812109593844</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://1.bp.blogspot.com/_sca5crli7II/SsHy704-oVI/AAAAAAAAAKI/a03rAJy1nrY/S220/david-headshot-90-117.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.withaguide.com/2010/01/nice-and-simple-script-to-install-rails.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUFSHgycSp7ImA9WxBRGUQ.&quot;"><id>tag:blogger.com,1999:blog-2689881006482382221.post-4014759566173305428</id><published>2010-01-08T16:16:00.001-08:00</published><updated>2010-01-08T16:16:59.699-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-08T16:16:59.699-08:00</app:edited><title>Refactoring – Ruby Ed.</title><content type="html">&lt;p&gt;The original Refactoring book by Martin Fowler had a big impact on how I thought about writing software. I’d used the refactoring tools in Smalltalk, but the book changed the way I thought about refactoring and gave names to many new refactorings.&lt;/p&gt;  &lt;p&gt;This Ruby edition of the book is highly anticipated. I received my copy at a drawing in our local Ruby user’s group. Part of the deal was you had to write a review (you are reading it) in exchange for the book. Nearly everyone at the meeting wanted a crack at the book.&lt;/p&gt;  &lt;p&gt;The authors suggest that if you have the original work, you probably shouldn’t purchase this new edition. I don’t agree. There is plenty of new content with around 20 new refactorings and a few new code smells to make the difference worthwhile. There is a tremendous amount of thoughtful Ruby code snippets inserted throughout the text.&lt;/p&gt;  &lt;p&gt;In fact, this is one of those books that is great for everyone on a team to have a copy. It is the kind of book that can be used to raise the quality of communication across the team.&lt;/p&gt;  &lt;p&gt;You can see the respect the new authors had for the original work, as the new refactorings jibe with the old. Much of the text remains unchanged, which is good as things like the justification, most of the code smells, and background have aged well. Even the order of the refactorings has been largely preserved, which makes it easy to compare the two editions. &lt;/p&gt;  &lt;p&gt;Jay Fields and Shane Harvey have updated the examples and step-by-step examples using idiomatic Ruby. Where the original book used Java for the code examples, the examples were pretty language-agnostic, not using anything from beyond the core SDK and even avoiding things like inner classes in examples. This book leverages Ruby’s strengths.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2689881006482382221-4014759566173305428?l=www.withaguide.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WithAGuide/~4/s7-4-sX_w_o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.withaguide.com/feeds/4014759566173305428/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2689881006482382221&amp;postID=4014759566173305428" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/4014759566173305428?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/4014759566173305428?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WithAGuide/~3/s7-4-sX_w_o/refactoring-ruby-ed.html" title="Refactoring – Ruby Ed." /><author><name>David</name><uri>http://www.blogger.com/profile/14110604812109593844</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://1.bp.blogspot.com/_sca5crli7II/SsHy704-oVI/AAAAAAAAAKI/a03rAJy1nrY/S220/david-headshot-90-117.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.withaguide.com/2010/01/refactoring-ruby-ed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcNRnY6eCp7ImA9WhZXEU0.&quot;"><id>tag:blogger.com,1999:blog-2689881006482382221.post-2857976444335558731</id><published>2009-11-05T13:35:00.000-08:00</published><updated>2011-04-29T12:41:37.810-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-29T12:41:37.810-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="featured" /><title>New Environment for "Programming with Kids"</title><content type="html">I was psyched to see the &lt;a href="http://news.squeak.org/2009/10/31/etoys-4-released/"&gt;Etoys 4.0 release last week&lt;/a&gt;. It's been a while since I looked at &lt;a href="http://www.squeakland.org/"&gt;Squeakland&lt;/a&gt; so I took some time to play with it last weekend. I am directing a hands-on exploratory session called "Programming with Kids" this Saturday at &lt;a href="http://iowacodecamp.com/"&gt;Iowa Code Camp 4&lt;/a&gt; and Etoys will definitely be the jumping off spot.&lt;br /&gt;
&lt;br /&gt;
I'll be using the Etoys to Go package. This is a nicely packaged environment that runs your code portably across Windows, Mac, and Linux without installation. You can put it on a flash drive, plug it in, and go. Save your work, switch to another computer and go. Etoys to Go is a much better name than the old "One-click image" since it really has little to do with the image or how many clicks it takes.&lt;br /&gt;
&lt;br /&gt;
In addition to eToys, I'll be mixing in some examples from Ducasse's great book, "&lt;a href="http://scg.unibe.ch/wiki/botsinc"&gt;Learn Programming with Robots&lt;/a&gt;," and from the &lt;a href="http://www.seaside.st/"&gt;Seaside web application framework&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I just finished testing the distribution on Windows, Mac, and Ubuntu. I'll be putting it on media to hand out at the conference and I'll post a download link here soon.&lt;br /&gt;
&lt;br /&gt;
Updated:&lt;br /&gt;
&lt;br /&gt;
Download the ZIP here and expand to any folder on Windows, Macintosh, or Linux:&lt;br /&gt;
http://bit.ly/4khd83&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2689881006482382221-2857976444335558731?l=www.withaguide.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WithAGuide/~4/BbjdUid_KK8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.withaguide.com/feeds/2857976444335558731/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2689881006482382221&amp;postID=2857976444335558731" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/2857976444335558731?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/2857976444335558731?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WithAGuide/~3/BbjdUid_KK8/new-environment-for-programming-with.html" title="New Environment for &quot;Programming with Kids&quot;" /><author><name>David</name><uri>http://www.blogger.com/profile/14110604812109593844</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://1.bp.blogspot.com/_sca5crli7II/SsHy704-oVI/AAAAAAAAAKI/a03rAJy1nrY/S220/david-headshot-90-117.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.withaguide.com/2009/11/new-environment-for-programming-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUBQnkycCp7ImA9WxNWFEg.&quot;"><id>tag:blogger.com,1999:blog-2689881006482382221.post-7210532213090431314</id><published>2009-10-12T09:26:00.001-07:00</published><updated>2009-10-13T10:00:53.798-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-13T10:00:53.798-07:00</app:edited><title>Hands-on Microformats: Quickly build an hCalendar-based view with XSLT and Seaside</title><content type="html">I gave a talk with the title, "Hands-on Microformats: Quickly build an hCalendar-based view" at the 2009 &lt;a href="http://barcampomaha.org/"&gt;BarCamp Omaha&lt;/a&gt;. Since the presentation was really looking at code, I didn't have a slide deck. So I thought I would share my notes in a series of posts. This is the first.&lt;br /&gt;&lt;br /&gt;Short version: By adding a few specific attributes and abiding by some date formatting rules, you can generate a great-looking monthly calendar with surprisingly little effort. That is, get something like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_sca5crli7II/StPXJOXIoCI/AAAAAAAAAKs/NgwMttqZRlM/s1600-h/calendar.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 309px;" src="http://2.bp.blogspot.com/_sca5crli7II/StPXJOXIoCI/AAAAAAAAAKs/NgwMttqZRlM/s400/calendar.png" alt="" id="BLOGGER_PHOTO_ID_5391889732366540834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From HTML that looks like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_sca5crli7II/StSlD0FEhgI/AAAAAAAAAK0/sgu_mUHusH4/s1600-h/calendarcode.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 245px;" src="http://2.bp.blogspot.com/_sca5crli7II/StSlD0FEhgI/AAAAAAAAAK0/sgu_mUHusH4/s400/calendarcode.png" alt="" id="BLOGGER_PHOTO_ID_5392116138807428610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A &lt;a href="http://microformats.org/wiki/Main_Page#Definition"&gt;microformat&lt;/a&gt; lets you use standard XHTML but add in some semantic goodness without resorting to a separate XML namespace and corresponding set of tags (or formally, an &lt;a href="http://www.google.com/search?q=define:xml+application"&gt;XML application&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;For our example, &lt;a href="http://microformats.org/wiki/hcalendar"&gt;hCalendar&lt;/a&gt; uses a 1:1 representation of standard iCalendar (&lt;a href="http://microformats.org/wiki/rfc-2445" title="rfc-2445"&gt;RFC2445&lt;/a&gt;) VEVENT properties and values in &lt;a href="http://microformats.org/wiki/semantic-xhtml" title="semantic-xhtml"&gt;semantic XHTML&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;hCalendar wouldn't have caught my attention if it weren't for &lt;a href="http://code.google.com/p/js-hcalendar/"&gt;js-hCalendar&lt;/a&gt;. This bit of JavaScript created by &lt;a href="http://code.google.com/u/dglasser/"&gt;David Glasser&lt;/a&gt; and hosted at Google code will take some hCalendar-laced HTML and give you back a Monthly calendar view of the data.&lt;br /&gt;&lt;br /&gt;Now, if you are working in the heart of the application and you already have (or can acquire) a calendar component that does what you want, then this code may be less useful. But, I've found it very handy when I'm working around the edges of an application or I'm using a language with a smaller set of available components. The key is, no matter what platform on which I'm running, I can probably generate the required HTML to get this working in an hour or two.&lt;br /&gt;&lt;br /&gt;Up next: some examples from &lt;a href="http://www.w3schools.com/xsl/"&gt;XSLT&lt;/a&gt; and &lt;a href="http://www.seaside.st/download/pharo#167943699"&gt;Seaside&lt;/a&gt; (Smalltalk).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2689881006482382221-7210532213090431314?l=www.withaguide.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WithAGuide/~4/am1qL1Riz6U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.withaguide.com/feeds/7210532213090431314/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2689881006482382221&amp;postID=7210532213090431314" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/7210532213090431314?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/7210532213090431314?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WithAGuide/~3/am1qL1Riz6U/hands-on-microformats-quickly-build.html" title="Hands-on Microformats: Quickly build an hCalendar-based view with XSLT and Seaside" /><author><name>David</name><uri>http://www.blogger.com/profile/14110604812109593844</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://1.bp.blogspot.com/_sca5crli7II/SsHy704-oVI/AAAAAAAAAKI/a03rAJy1nrY/S220/david-headshot-90-117.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_sca5crli7II/StPXJOXIoCI/AAAAAAAAAKs/NgwMttqZRlM/s72-c/calendar.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.withaguide.com/2009/10/hands-on-microformats-quickly-build.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcHRHoyfip7ImA9WxJTEkU.&quot;"><id>tag:blogger.com,1999:blog-2689881006482382221.post-5837195606020961356</id><published>2009-04-20T20:33:00.000-07:00</published><updated>2009-04-20T20:53:55.496-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-20T20:53:55.496-07:00</app:edited><title>What makes Squeak special?</title><content type="html">Avidan Ackerson asked a great &lt;a href="http://www.nabble.com/Squeak-vs.-Smalltalk-td23148311.html"&gt;question&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;I know that Squeak is written in Smalltalk, but are there specific advantages to Squeak over Smalltalk proper?&lt;br /&gt;&lt;/blockquote&gt;What makes &lt;a href="http://squeak.org/"&gt;Squeak&lt;/a&gt; special is the &lt;a href="http://squeak.org/Community/"&gt;Squeak community&lt;/a&gt;. Fantastic history and tradition. Inspiring thinkers. &lt;a href="http://wiki.squeak.org/squeak/158"&gt;Colorful ideas&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For someone used to &lt;a href="http://www.bobjectsinc.com/cstug/vendors.htm"&gt;commercial Smalltalk &lt;/a&gt;development, Squeak is a bit of a &lt;a href="http://en.wikipedia.org/wiki/Siren"&gt;siren song&lt;/a&gt;. I've certainly felt that way. Much of Squeak's GUI wasn't built to satisfy commercial developers, but to get some &lt;a href="http://www.squeakland.org/"&gt;wild, crazy, next generation media playground &lt;/a&gt;for kids and adults to experiment with. Very trippy but sometimes frustrating to someone who just wants to build a &lt;a href="http://en.wikipedia.org/wiki/Create,_read,_update_and_delete"&gt;CRUD GUI&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you want to build for the web, Squeak is a nice home for &lt;a href="http://www.seaside.st/"&gt;Seaside&lt;/a&gt; development. I'm currently using &lt;a href="http://www.pharo-project.org/home"&gt;Pharo&lt;/a&gt;, which is still Squeak to me, but it may diverge in the near future.&lt;br /&gt;&lt;br /&gt;Now to get a little pedantic:&lt;br /&gt;&lt;br /&gt;Squeak is a Smalltalk. It is written in Squeak Smalltalk&lt;sup&gt;[*]&lt;/sup&gt;. Visual Works is a Smalltalk. Most of it is also written in Visual Works Smalltalk.&lt;br /&gt;&lt;br /&gt;All Smalltalks have little variations. There is no downloadable, runnable thing called Smalltalk proper. You might call Smalltalk-80 Smalltalk proper. Squeak and VisualWorks both descend&lt;sup&gt;[**]&lt;/sup&gt; from Smalltalk-80. You might also call ANSI Smalltalk proper, but there is no implementation of Smalltalk that is only ANSI Smalltalk.&lt;br /&gt;&lt;br /&gt;If you want to write code that you can take from one Smalltalk into another, you're in for a bit of a bumpy ride. The Seaside team probably has the most broad and most current experience here. Looking at the work they are doing for 2.9 (as well as their coding standards) are a good things to emulate.&lt;br /&gt;&lt;br /&gt;Squeak and GNU Smalltalk are both open-source. GNU is GPL, natch. Squeak predates the OSI definition of that term and so has a more colorful license history, but it will (soon) be MIT with bits of APSL.&lt;br /&gt;&lt;br /&gt;VisualWorks and GemStone are not open-source, but each provides professional commercial support and licenses that make it easy to start exploring and developing. VW is probably the most mainstream, commercial tool. GemStone is the leader for big Object-Oriented DBs.&lt;br /&gt;&lt;br /&gt;Instantiations still supports VisualAge Smalltalk (formerly IBM Smalltalk). Also good commercial support.&lt;br /&gt;&lt;br /&gt;Lots of other Smalltalks I'm leaving out.&lt;br /&gt;&lt;br /&gt;Between Squeak and GNU, Squeak is the more traditional, image-based Smalltalk. GNU keeps its code in files, which makes sense to most non-Smalltalkers. But, as &lt;a href="http://stackoverflow.com/users/62970/markusq"&gt;MarkusQ&lt;/a&gt; &lt;a href="http://stackoverflow.com/questions/670347/misunderstanding-smalltalk-and-tdd"&gt;wrote&lt;/a&gt; recently:&lt;a href="http://stackoverflow.com/questions/670347/misunderstanding-smalltalk-and-tdd"&gt;&lt;br /&gt;&lt;/a&gt;&lt;blockquote&gt;Trying to get your head around smalltalk without using the IDE is like going to Paris and eating at McDonalds. Sure, you're in Paris, but you aren't really exposing yourself to what it's all about.&lt;/blockquote&gt;Footnotes:&lt;br /&gt;&lt;br /&gt;&lt;a name="star"&gt;[*]&lt;/a&gt; There are a few parts of the Virtual Machine that are written in C, but even those are actually written in a pidgin (reduced) Squeak Smalltalk called Slang. It really is a C subset with Squeak Smalltalk style. The benefit of this is you can simulate the VM using Smalltalk tools as you develop.&lt;br /&gt;&lt;br /&gt;&lt;a name="starstar"&gt;[**] &lt;/a&gt;and lore has it they may actually both still be running some of the same bits as an ancient Smalltalk image.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2689881006482382221-5837195606020961356?l=www.withaguide.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WithAGuide/~4/UjQeeZLGw6w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.withaguide.com/feeds/5837195606020961356/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2689881006482382221&amp;postID=5837195606020961356" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/5837195606020961356?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/5837195606020961356?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WithAGuide/~3/UjQeeZLGw6w/what-makes-squeak-special.html" title="What makes Squeak special?" /><author><name>David</name><uri>http://www.blogger.com/profile/14110604812109593844</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://1.bp.blogspot.com/_sca5crli7II/SsHy704-oVI/AAAAAAAAAKI/a03rAJy1nrY/S220/david-headshot-90-117.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.withaguide.com/2009/04/what-makes-squeak-special.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcFSXkzfip7ImA9WxVaE0o.&quot;"><id>tag:blogger.com,1999:blog-2689881006482382221.post-5235590978023181180</id><published>2009-04-10T07:56:00.000-07:00</published><updated>2009-04-10T08:23:38.786-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-10T08:23:38.786-07:00</app:edited><title>Seaside Community Service (Picking Up Garbage)</title><content type="html">(OK, this post is more for my reference than to teach anything, but hopefully at least I'll learn something!)&lt;br /&gt;&lt;br /&gt;Pharo, Squeak, and most Smalltalks have the ability to save everything you are working on when you exit the environment. This saves all of the objects you have created, any text you've written, and if your program is running, it will still be running when you restart the environment, exactly where you left off.&lt;br /&gt;&lt;br /&gt;In Smalltalk, we call it saving the image.&lt;br /&gt;&lt;br /&gt;Images are cool, but you really shouldn't depend on them for source code control. You should back up your program code using a separate source code control system. Examples include CVS, Subversion, and Git. Some Smalltalks can use those tools and there are certainly bridges for others, but most Smalltalkers use a version control tool written especially for Smalltalk.&lt;br /&gt;&lt;br /&gt;In Pharo, I use Monticello. Monticello integrates nicely with the existing tools. In fact, most of the time, I don't even think that I'm using Monticello at all. I just code and when it comes time to save my code, I switch to the Monticello Browser window, click Save and type in a comment. I then save my image.&lt;br /&gt;&lt;br /&gt;Still, it takes a bit of time to load a new image from scratch. I try to do it once a month. I know a good agile process would let me do it every day or at any moment, but I'm not there yet with my Pharo work.&lt;br /&gt;&lt;br /&gt;Even though I'm only running a personal web server and my load is light, I'm pumping a fair bit of data from a back-end data store. I cache a lot in memory to keep my query time light. Over a few weeks of running, my image will start to grow. Today I noticed I was over 100MB! That seemed like a bit much. I'm in the 30-40MB when I load from source on top of a full set of development and web serving tools.&lt;br /&gt;&lt;br /&gt;I went searching for a quick cleanup script and I turned up a message from Bill Schwab where he had found a Seaside FAQ with some workspace code:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;WARegistry clearAllHandlers.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; Smalltalk garbageCollect.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That knocked 30MB off my image.&lt;br /&gt;&lt;br /&gt;Adrian Lienhard noted that to go further, he might want to look at SpaceTally.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;SpaceTally new systemWideSpaceTally inspect&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I was about to spend some time inspecting the tally, but I noticed as soon as I ran that, another 50MB flew off. I was back under 60MB, which is my pain point.&lt;br /&gt;&lt;br /&gt;&lt;bschwab@anest.ufl.edu&gt;&lt;/bschwab@anest.ufl.edu&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2689881006482382221-5235590978023181180?l=www.withaguide.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WithAGuide/~4/Ne6_Y5E9afM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.withaguide.com/feeds/5235590978023181180/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2689881006482382221&amp;postID=5235590978023181180" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/5235590978023181180?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/5235590978023181180?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WithAGuide/~3/Ne6_Y5E9afM/seaside-community-service-picking-up.html" title="Seaside Community Service (Picking Up Garbage)" /><author><name>David</name><uri>http://www.blogger.com/profile/14110604812109593844</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://1.bp.blogspot.com/_sca5crli7II/SsHy704-oVI/AAAAAAAAAKI/a03rAJy1nrY/S220/david-headshot-90-117.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.withaguide.com/2009/04/seaside-community-service-picking-up.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8BRXgzfSp7ImA9WxVXFU4.&quot;"><id>tag:blogger.com,1999:blog-2689881006482382221.post-6808780143056654572</id><published>2009-02-13T06:43:00.001-08:00</published><updated>2009-02-13T06:54:14.685-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-13T06:54:14.685-08:00</app:edited><title>Class Announcement for Santa Fe area</title><content type="html">This isn't a class offering from &lt;span style="font-weight: bold;"&gt;withaguide.com&lt;/span&gt;, but I think it would be of interest to anyone learning Smalltalk.&lt;br /&gt;&lt;br /&gt;An Educational Offering From the&lt;br /&gt;The Santa Fe Complex&lt;br /&gt;&lt;br /&gt;Advanced Web Applications with GLASS*&lt;br /&gt;March 30 to April 3&lt;br /&gt;&lt;br /&gt;Building sophisticated multi-media, intensely interactive, Web applications is a significant challenge requiring mastery of multiple technologies. GLASS provides a single environment, and language, for developing desktop-like Web applications.&lt;br /&gt;&lt;br /&gt;This workshop will provide a GLASS overview and tutorial followed by a combination of hands-on projects and in-depth coverage of special topics (e.g. the incorporation of Sun’s Lively Kernel technology into GLASS).&lt;br /&gt;&lt;br /&gt;James Foster of Gemstone will lead the workshop. You will also have the opportunity to work with prominent members of the Santa Fe Complex on projects.&lt;br /&gt;&lt;br /&gt;Dates and Times: Monday, March 30 – Thursday, April 2, 8:30-4:00. Friday, April 3, 8:30-noon. Informal discussions, explorations, and hacking likely to take place each evening.&lt;br /&gt;&lt;br /&gt;Where:  The Santa Fe Complex – 632 Agua Fria, in Santa Fe (one block from the RailRunner if you are coming up from Albuquerque)&lt;br /&gt;&lt;br /&gt;Prerequisites: Some programming background will be helpful. Open to high school students.&lt;br /&gt;&lt;br /&gt;Fee: $375 – includes lunch and breaks&lt;br /&gt;&lt;br /&gt;Housing:  Discounted rates at hotels (all within walking distance of the Complex) will be available.&lt;br /&gt;&lt;br /&gt;For More Information:&lt;br /&gt;E-mail Dr. Dave West at profwest@fastmail.fm or phone him at 505-231-7233.&lt;br /&gt;Or come by the Santa Fe Complex, 632 Agua Fria in Santa Fe.&lt;br /&gt;&lt;br /&gt;*Gemstone, Linux, Apache, Seaside and Smalltalk (http://seaside.gemstone.com)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2689881006482382221-6808780143056654572?l=www.withaguide.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WithAGuide/~4/PVpe9_7fLbE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.withaguide.com/feeds/6808780143056654572/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2689881006482382221&amp;postID=6808780143056654572" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/6808780143056654572?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/6808780143056654572?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WithAGuide/~3/PVpe9_7fLbE/classannounceglass.html" title="Class Announcement for Santa Fe area" /><author><name>David</name><uri>http://www.blogger.com/profile/14110604812109593844</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://1.bp.blogspot.com/_sca5crli7II/SsHy704-oVI/AAAAAAAAAKI/a03rAJy1nrY/S220/david-headshot-90-117.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.withaguide.com/2009/02/classannounceglass.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIGQnszfip7ImA9WxVQFU8.&quot;"><id>tag:blogger.com,1999:blog-2689881006482382221.post-15714536575494805</id><published>2009-02-01T12:48:00.000-08:00</published><updated>2009-02-01T13:08:43.586-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-01T13:08:43.586-08:00</app:edited><title>Characters, Strings, and Things</title><content type="html">&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:times new roman;"&gt;Sebastian Nozzi asked on the beginners list:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;I've been struggling a bit with some basics about Strings for which I&lt;br /&gt;couldn't find an answer (yet).&lt;br /&gt;&lt;br /&gt;1) How to construct a String from Characters?&lt;br /&gt;&lt;br /&gt;For example, I want to construct a String from the Chatacter literals:&lt;br /&gt;&lt;br /&gt;$H $I&lt;br /&gt;Character cr&lt;br /&gt;$T $H $E $R $E&lt;br /&gt;&lt;br /&gt;2) How to replace a sequence of Characters in a String for others?&lt;br /&gt;&lt;br /&gt;For exaple, I want to replace every 'HI' (in this case only one) for&lt;br /&gt;'HELLO' in the String above (not necesarily destructively, getting a&lt;br /&gt;new String is also ok). Is there a quick way to do that?&lt;br /&gt;&lt;br /&gt;Thanks in advance! &lt;/blockquote&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:times new roman;"&gt;Smalltalk isn't known for being a scripting language. The runtime and object model are very similar to Ruby, but it is lacking all of the little Perl-isms that we associate with scripting languages.&lt;br /&gt;&lt;br /&gt;To deal with the input characters, it is useful to have them in an array. A traditional Smalltalk array with characters would look like this #($a $b $c) but it isn't obvious what to do with the carriage return. For this, the Squeak brace array is handy and also works in Pharo.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;characters := {&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;$H.$I.&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;Character cr.&lt;/span&gt;  &lt;span style="font-family:courier new;"&gt;$T.$H.$E.$R.$E&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;}.&lt;/span&gt; &lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;br /&gt;It isn't terribly portable to other Smalltalks, but it sure is easy to type. Now we've got an array of characters, how to create the new String? Another Squeak-ism is the class method #streamContents:. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:times new roman;"&gt;It takes a one argument block. The argument is a writeable stream that will return its contents at the end. I have to admit I was &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:times new roman;"&gt;thrown by it the first time I saw it.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;string := String streamContents: &lt;/span&gt;  &lt;span style="font-family:courier new;"&gt;    [:writeStream | &lt;/span&gt;  &lt;span style="font-family:courier new;"&gt;    characters do:  &lt;/span&gt;  &lt;span style="font-family:courier new;"&gt;        [:c | writeStream nextPut: c]].&lt;/span&gt;  &lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;br /&gt;Like the brace array, it isn't very portable to other Smalltalks, but it is pretty handy.&lt;br /&gt;&lt;br /&gt;That leaves us with replacing. I opened the method finder and typed replace into the search box.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_sca5crli7II/SYYOsXQHzqI/AAAAAAAAAFs/TpE6FRZ8D40/s1600-h/Method+Finder.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 98px;" src="http://1.bp.blogspot.com/_sca5crli7II/SYYOsXQHzqI/AAAAAAAAAFs/TpE6FRZ8D40/s320/Method+Finder.png" alt="" id="BLOGGER_PHOTO_ID_5297938166966636194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;That gives us the following complete solution:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;| characters string |&lt;br /&gt;characters := {&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;$H.$I.&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;Character cr.&lt;/span&gt;  &lt;span style="font-family:courier new;"&gt;$T.$H.$E.$R.$E&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;}.&lt;/span&gt; &lt;br /&gt;&lt;span style="font-family:courier new;"&gt;string := String streamContents: &lt;/span&gt;  &lt;span style="font-family:courier new;"&gt;    [:writeStream | &lt;/span&gt;  &lt;span style="font-family:courier new;"&gt;    characters do:  &lt;/span&gt;  &lt;span style="font-family:courier new;"&gt;        [:c | writeStream nextPut: c]].&lt;br /&gt;string copyReplaceAll: 'HI' with: 'HELLO'&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2689881006482382221-15714536575494805?l=www.withaguide.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WithAGuide/~4/OBxHEmTyic8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.withaguide.com/feeds/15714536575494805/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2689881006482382221&amp;postID=15714536575494805" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/15714536575494805?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/15714536575494805?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WithAGuide/~3/OBxHEmTyic8/characters-strings-and-things.html" title="Characters, Strings, and Things" /><author><name>David</name><uri>http://www.blogger.com/profile/14110604812109593844</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://1.bp.blogspot.com/_sca5crli7II/SsHy704-oVI/AAAAAAAAAKI/a03rAJy1nrY/S220/david-headshot-90-117.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_sca5crli7II/SYYOsXQHzqI/AAAAAAAAAFs/TpE6FRZ8D40/s72-c/Method+Finder.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.withaguide.com/2009/02/characters-strings-and-things.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04ERX44cSp7ImA9WxVQFE8.&quot;"><id>tag:blogger.com,1999:blog-2689881006482382221.post-1236556506511422653</id><published>2009-01-31T08:58:00.000-08:00</published><updated>2009-01-31T09:11:44.039-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-31T09:11:44.039-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="squeak pharo smalltalk morphic beginners" /><title>Learning by tearing things apart</title><content type="html">&lt;span style=""&gt;Daniel Klein posted to the Squeak Beginners list:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;I'm currently reading the 'Squeak by Example' book with the goal of being able to do some Morphic stuff.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway, I get the impression that everything in the image at my fingertips. So what if I want to add something to one of the context menus, or find out what message gets sent to invoke a menu entry so that I can run it directly in a workspace, or change the order of the objects in one of the flaps, etc.&lt;/div&gt; &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What are the steps to go about finding out where this stuff is in the image?&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="color: rgb(136, 136, 136);"&gt;&lt;div&gt;&lt;div id=":8i" class="ArwC7c ckChnd"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;One of the neat things about Morphic is that you can tear it apart while it is running. This can give you some clues as to how a GUI was built. Note that the image is built by direct manipulation as well as by code. If you move a window and then save the image, the window will be where you left it. But, you won't be able to find the code that moved the window to that location because there isn't any.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;But, most GUIs in Squeak are built with Smalltalk code, not with direct manipulation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;One of my favorite things to show a new Squeaker is that they can Alt+Shift click on the World menu to bring up a halo on a menu item (Alt+Clicking will let you drill into a GUI, Alt goes backward which usually gets to the menu or icon directly and bypasses all of the alignment morphs.) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style=""&gt; &lt;p&gt;&lt;span style=""&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style=""&gt;&lt;b&gt;&lt;img src="https://mail.google.com/mail/?attid=0.1&amp;amp;disp=emb&amp;amp;view=att&amp;amp;th=11f2d7a120284710" /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I then click on the debug halo and look at an explorer.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style=""&gt; &lt;p&gt;&lt;span style=""&gt;&lt;b&gt;&lt;img src="https://mail.google.com/mail/?attid=0.2&amp;amp;disp=emb&amp;amp;view=att&amp;amp;th=11f2d7a120284710" /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;This tells me that the Menu Item calls #doMenuItem:with: and passes two arguments. TheWorldMenu and another selector helpDo.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I can then start browsing implementors and senders. I think helpDo is the more interesting implementation and leads me quickly to helpMenu.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;doMenuItem:with: is the more interesting sender. It takes me to fillIn:from: and then senders there takes me to I think what you are looking for (I see my CSS is cropping the pic, click to see the whole thing).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p style="color: rgb(0, 0, 0);"&gt;&lt;span style=""&gt;&lt;b&gt;&lt;img src="https://mail.google.com/mail/?attid=0.3&amp;amp;disp=emb&amp;amp;view=att&amp;amp;th=11f2d7a120284710" /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2689881006482382221-1236556506511422653?l=www.withaguide.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WithAGuide/~4/NHqPZTqxpec" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.withaguide.com/feeds/1236556506511422653/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2689881006482382221&amp;postID=1236556506511422653" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/1236556506511422653?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/1236556506511422653?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WithAGuide/~3/NHqPZTqxpec/daniel-klein-posted-to-squeak-beginners.html" title="Learning by tearing things apart" /><author><name>David</name><uri>http://www.blogger.com/profile/14110604812109593844</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://1.bp.blogspot.com/_sca5crli7II/SsHy704-oVI/AAAAAAAAAKI/a03rAJy1nrY/S220/david-headshot-90-117.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.withaguide.com/2009/01/daniel-klein-posted-to-squeak-beginners.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IERH8zeCp7ImA9WxRUFko.&quot;"><id>tag:blogger.com,1999:blog-2689881006482382221.post-785082619679939435</id><published>2008-11-25T22:02:00.000-08:00</published><updated>2008-11-25T22:05:05.180-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-25T22:05:05.180-08:00</app:edited><title>First meeting test a success</title><content type="html">&lt;a href="http://www.withaguide.com/2008/11/lifehacker-has-nice-intro-to-dimdim.html"&gt;Last week&lt;/a&gt; I mentioned that I was planning to use &lt;a href="http://www.dimdim.com/"&gt;DimDim&lt;/a&gt; for our classes. I did a cross-town test yesterday and everything went well. I had to install a little application so that I can share my screen, which is to be expected.&lt;br /&gt;&lt;br /&gt;But the best part is the participants don't have to install anything (presuming they already have a current &lt;a href="www.adobe.com/products/flashplayer/"&gt;Flash player&lt;/a&gt;). I tested on Windows and Linux. Need to test the Mac as well, but it appears if you have Flash , you are ready to go.&lt;br /&gt;&lt;br /&gt;One thing I didn't realize is that DimDim apparently supports telephone voice conferencing as well. Looks like they pick a long-distance number, so for that feature to work, you would need unlimited (or low-cost) access to long distance.&lt;br /&gt;&lt;br /&gt;Next test will be using voice-over-IP (VOIP).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2689881006482382221-785082619679939435?l=www.withaguide.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WithAGuide/~4/KyEDGxxQMA0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.withaguide.com/feeds/785082619679939435/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2689881006482382221&amp;postID=785082619679939435" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/785082619679939435?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/785082619679939435?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WithAGuide/~3/KyEDGxxQMA0/first-meeting-test-success.html" title="First meeting test a success" /><author><name>David</name><uri>http://www.blogger.com/profile/14110604812109593844</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://1.bp.blogspot.com/_sca5crli7II/SsHy704-oVI/AAAAAAAAAKI/a03rAJy1nrY/S220/david-headshot-90-117.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.withaguide.com/2008/11/first-meeting-test-success.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkICR3k4fip7ImA9WxRUEEo.&quot;"><id>tag:blogger.com,1999:blog-2689881006482382221.post-7840890486531349589</id><published>2008-11-18T20:24:00.000-08:00</published><updated>2008-11-18T20:56:06.736-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-18T20:56:06.736-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="Smalltalk" /><category scheme="http://www.blogger.com/atom/ns#" term="Intro" /><title>Just what are you using for material</title><content type="html">I like writing and coding, but creating new content takes a lot of time, time that I would rather spend guiding (i.e., coaching, training, and consulting). If there is good content to leverage, I will. I've spent a fair bit of time on both sides of creation and delivery of content. Some of my prior jobs:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;technical writer&lt;/li&gt;&lt;li&gt;training developer&lt;/li&gt;&lt;li&gt;software developer&lt;/li&gt;&lt;li&gt;consultant&lt;/li&gt;&lt;li&gt;trainer&lt;/li&gt;&lt;/ul&gt;One of my goals for withaguide.com is to keep costs low for me and my students. I'm also a big believer in open-source content. My initial plan was to use the book &lt;a href="http://squeakbyexample.org/"&gt;Squeak by Example&lt;/a&gt; as a textbook. I love this book. You can purchase it for about $20 off Lulu and it is a nice, perfect-bound paperback. Even better, you can download the PDF directly from the authors. Heck, they even let you use the source material they used for developing the book to create your own content. Fantastic.&lt;br /&gt;&lt;br /&gt;If you can afford the book, I highly recommend purchasing it. I also recommend downloading the book whether you can afford it or not. I even carry a copy with me on my PDA.&lt;br /&gt;&lt;br /&gt;Unfortunately, the book is really aimed at people who already know how to program in something. One of the authors of Squeak by Example also wrote another great book: &lt;a href="http://smallwiki.unibe.ch/botsinc"&gt;Squeak: Learn Programming with Robots&lt;/a&gt;. I'm leaning toward using this book as a starting point. It approaches Smalltalk a lot like Logo was taught in the 80s, using direct scripting and turtle graphics. The only drawback to this book is that it is traditionally published, so it costs about $40 and until recently it wasn't available under and open-source license. I've heard that is changing, which is terrific news.&lt;br /&gt;&lt;br /&gt;Again, if you can afford the book, I recommend it highly.&lt;br /&gt;&lt;br /&gt;Before the robots book went open-source, I thought I would have to write a book. One that didn't assume you knew programming, and that taught an approachable language like Smalltalk. I wrote a few chapters and drew up some diagrams. I'll probably publish the work in progress here soon.&lt;br /&gt;&lt;br /&gt;I've also done a lot of work writing and teaching about Java. Java is a great, practical environment for getting work done. It isn't my favorite language but it is certainly popular and there are tons of libraries. I really didn't want to use Java as a first language, but there is no shortage of books available that do. The summer of 2008, I saw a new release of a truly open book for learning Java: &lt;a href="http://math.hws.edu/javanotes/"&gt;Introduction to Programming Using Java&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I really like this book as well. I liked it so much that I wrote the author and asked if he minded if I "translated" it to Smalltalk. He was very helpful and provided me with his original source material to help me along. I'm done with the first two chapters (maybe only 5-7 of the chapters will really translate, the later chapters are probably too specific to Java). Anyway, I'm planning to use these chapters as well. I'll definitely be serializing the content of these chapters here to get your feedback. (Eventually, I'd like to publish the results on Lulu, but I'd like to teach the material a few times first.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2689881006482382221-7840890486531349589?l=www.withaguide.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WithAGuide/~4/mcThVroLSPQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.withaguide.com/feeds/7840890486531349589/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2689881006482382221&amp;postID=7840890486531349589" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/7840890486531349589?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/7840890486531349589?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WithAGuide/~3/mcThVroLSPQ/just-what-are-you-using-for-material.html" title="Just what are you using for material" /><author><name>David</name><uri>http://www.blogger.com/profile/14110604812109593844</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://1.bp.blogspot.com/_sca5crli7II/SsHy704-oVI/AAAAAAAAAKI/a03rAJy1nrY/S220/david-headshot-90-117.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.withaguide.com/2008/11/just-what-are-you-using-for-material.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UASX09fSp7ImA9WxRUEEo.&quot;"><id>tag:blogger.com,1999:blog-2689881006482382221.post-7485226764141742188</id><published>2008-11-17T19:52:00.000-08:00</published><updated>2008-11-18T21:07:28.365-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-18T21:07:28.365-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="infrastructure" /><title>Software for our meetings</title><content type="html">&lt;a href="http://lifehacker.com/5089881/dimdim-hosts-your-webinars-for-free"&gt;Lifehacker&lt;/a&gt; has a nice intro to &lt;a href="http://www.dimdim.com/"&gt;DimDim&lt;/a&gt;, which is the meeting software I'm planning to use:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;free-hosting for up to 20 (should work nice for our purposes)&lt;/li&gt;&lt;li&gt;open-source (no lock-in, can download and self host)&lt;/li&gt;&lt;li&gt;runs on Windows, Mac, and Linux (covers the bases and supports free software)&lt;/li&gt;&lt;/ul&gt;If you have any feedback abour DimDim, let me know. I'm working on some trials.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2689881006482382221-7485226764141742188?l=www.withaguide.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WithAGuide/~4/cOKvltObTvU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.withaguide.com/feeds/7485226764141742188/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2689881006482382221&amp;postID=7485226764141742188" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/7485226764141742188?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/7485226764141742188?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WithAGuide/~3/cOKvltObTvU/lifehacker-has-nice-intro-to-dimdim.html" title="Software for our meetings" /><author><name>David</name><uri>http://www.blogger.com/profile/14110604812109593844</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://1.bp.blogspot.com/_sca5crli7II/SsHy704-oVI/AAAAAAAAAKI/a03rAJy1nrY/S220/david-headshot-90-117.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.withaguide.com/2008/11/lifehacker-has-nice-intro-to-dimdim.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEER3w6fCp7ImA9WxRUEEo.&quot;"><id>tag:blogger.com,1999:blog-2689881006482382221.post-3475983330830641045</id><published>2008-11-16T18:39:00.000-08:00</published><updated>2008-11-18T20:56:46.214-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-18T20:56:46.214-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Intro" /><title>Learning is easier...</title><content type="html">Learning is easier with a guide.&lt;br /&gt;&lt;br /&gt;I'm getting ready to teach my two older sons computer programming. Perhaps you, your child, or both would like to come along for the ride. I'm not planning a single course, but more of a computer club with a facilitator.&lt;br /&gt;&lt;br /&gt;I've been programming since I was a kid. I had a computer when I was 8 and about the only thing you could do with a computer was play a game or write a program. Some of the games were great, but programming was often more fun.&lt;br /&gt;&lt;br /&gt;Computers have gotten a lot more capable and you can certainly use a computer without learning how to program. That's really a shame because programming can make boring, repetitive tasks disappear. Programming is also a lot of fun, partially because the computer does exactly what you tell it (even when you wish it wouldn't).&lt;br /&gt;&lt;br /&gt;Support for programming has gotten so much better over the years. There are lots of great free, open-source programming environments available. There are several I'm sure we will explore, but I'm starting with a favorite: Smalltalk.&lt;br /&gt;&lt;br /&gt;Watch this space for more details.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2689881006482382221-3475983330830641045?l=www.withaguide.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WithAGuide/~4/n_U6EjyLp-o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.withaguide.com/feeds/3475983330830641045/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2689881006482382221&amp;postID=3475983330830641045" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/3475983330830641045?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2689881006482382221/posts/default/3475983330830641045?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WithAGuide/~3/n_U6EjyLp-o/learning-is-easier.html" title="Learning is easier..." /><author><name>David</name><uri>http://www.blogger.com/profile/14110604812109593844</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://1.bp.blogspot.com/_sca5crli7II/SsHy704-oVI/AAAAAAAAAKI/a03rAJy1nrY/S220/david-headshot-90-117.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.withaguide.com/2008/11/learning-is-easier.html</feedburner:origLink></entry></feed>

