<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-27050600</id><updated>2011-04-21T19:07:01.173-04:00</updated><title type='text'>QED</title><subtitle type='html'>java..python..eclipse..and whatever else interests me.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>30</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-27050600.post-115881368242292724</id><published>2006-09-21T00:41:00.000-04:00</published><updated>2006-09-21T00:41:22.493-04:00</updated><title type='text'>FoxiPod</title><content type='html'>Haven't been able to install this, but it sounds great--&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;a href="http://greg.vario.us/software/foxipod/index.text"&gt;FoxiPod&lt;/a&gt; uses &lt;a href="http://greasemonkey.mozdev.org/"&gt;Greasemonkey&lt;/a&gt; with &lt;a href="http://mozilla.org/"&gt;Firefox&lt;/a&gt;&lt;br /&gt;to make &lt;b&gt;downloading MP3s&lt;/b&gt; and music files and adding them to &lt;b&gt;iTunes &lt;/b&gt;a single-click process.&lt;br /&gt;&lt;br /&gt;This will be help with one-off podcasts which I usually save to the Desktop - and then &lt;b&gt;forget&lt;/b&gt;.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-115881368242292724?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/115881368242292724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=115881368242292724' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/115881368242292724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/115881368242292724'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/09/foxipod.html' title='FoxiPod'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-115113250105754541</id><published>2006-06-24T02:52:00.000-04:00</published><updated>2006-06-24T03:05:03.530-04:00</updated><title type='text'>Bye Bye Blogger</title><content type='html'>It's not you, it's me. It's time for me to &lt;a href="http://jeffwinkler.net/"&gt;move on&lt;/a&gt;. I need a place of my own...to be master of my own &lt;a href="http://jeffwinkler.net/"&gt;domain&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You were always so...static. I need something more &lt;a href="http://www.bluehost.com/tell_me_more.html"&gt;dynamic&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Oh, and quit resizing my images. I hate that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-115113250105754541?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/115113250105754541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=115113250105754541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/115113250105754541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/115113250105754541'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/06/bye-bye-blogger.html' title='Bye Bye Blogger'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-115112697707726641</id><published>2006-06-24T01:29:00.000-04:00</published><updated>2006-06-24T01:29:37.100-04:00</updated><title type='text'>Predictable?</title><content type='html'>Apparently I am.&amp;nbsp; Spurred by a post about Pyrcast, which rips Pandora streams, over at &lt;a href="http://groovymother.com/links/archives/2006/06/18-week/#002607"&gt;Rod's place&lt;/a&gt;, I've been on a jag of researching the various Pandora unboxers.&amp;nbsp; &lt;a href="http://www.tech-recipes.com/internet_tips1391.html"&gt;Pandora's Jar&lt;/a&gt; is especially nice, as it sports band info, last.fm integration and of course, MP3 saving.&amp;nbsp; With java source.&lt;br /&gt;&lt;br /&gt;So how am I predictable? I like the band Cake... and I've happily listened to the Cake channel for a few hours now.&amp;nbsp; Guess I'm a sucker for subtle use of vocal harmony and major key tonality. Mmm, major key tonality. Bishop Allen and Rusty Truck were bands worth noting.&amp;nbsp; Hopping nodes on the cobweb spun of the long tail.. or something like that.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/pandora" rel="tag"&gt;pandora&lt;/a&gt;, &lt;a href="http://technorati.com/tag/mp3" rel="tag"&gt;mp3&lt;/a&gt;, &lt;a href="http://technorati.com/tag/cake" rel="tag"&gt;cake&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-115112697707726641?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/115112697707726641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=115112697707726641' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/115112697707726641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/115112697707726641'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/06/predictable.html' title='Predictable?'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-115102675354005747</id><published>2006-06-22T21:39:00.000-04:00</published><updated>2006-06-22T21:39:13.600-04:00</updated><title type='text'>PyZine goes Free</title><content type='html'>&lt;img src="http://www.pyzine.com/Issue008/Images/caviar_green.gif" border="0" height="9" /&gt; &lt;a class="textSMALL" href="http://www.pyzine.com/"&gt;Latest Issue&lt;/a&gt;&lt;br /&gt;&lt;img src="http://www.pyzine.com/Issue008/Images/caviar_green.gif" border="0" height="9" /&gt; &lt;a class="textSMALL" href="http://www.pyzine.com/Issue008/index.html"&gt;Issue 08&lt;/a&gt;&lt;br /&gt;&lt;img src="http://www.pyzine.com/Issue008/Images/caviar_green.gif" border="0" height="9" /&gt; &lt;a class="textSMALL" href="http://www.pyzine.com/Issue007/index.html"&gt;Issue 07&lt;/a&gt;&lt;br /&gt;&lt;img src="http://www.pyzine.com/Issue008/Images/caviar_green.gif" border="0" height="9" /&gt; &lt;a class="textSMALL" href="http://www.pyzine.com/Issue006/index.html"&gt;Issue 06&lt;/a&gt;&lt;br /&gt;&lt;img src="http://www.pyzine.com/Issue008/Images/caviar_green.gif" border="0" height="9" /&gt; &lt;a class="textSMALL" href="http://www.pyzine.com/Issue005/index.html"&gt;Issue 05&lt;/a&gt;&lt;br /&gt;&lt;img src="http://www.pyzine.com/Issue008/Images/caviar_green.gif" border="0" height="9" /&gt; &lt;a class="textSMALL" href="http://www.pyzine.com/Issue004/index.html"&gt;Issue 04&lt;/a&gt;&lt;br /&gt;&lt;img src="http://www.pyzine.com/Issue008/Images/caviar_green.gif" border="0" height="9" /&gt; &lt;a class="textSMALL" href="http://www.pyzine.com/Issue002/index.html"&gt;Issue 02&lt;/a&gt;&lt;br /&gt;&lt;img src="http://www.pyzine.com/Issue008/Images/caviar_green.gif" border="0" height="9" /&gt; &lt;a class="textSMALL" href="http://www.pyzine.com/Issue001/index.html"&gt;Issue 01&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tag/python" rel="tag"&gt;python&lt;/a&gt;, &lt;a href="http://technorati.com/tag/learning" rel="tag"&gt;learning&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-115102675354005747?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/115102675354005747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=115102675354005747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/115102675354005747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/115102675354005747'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/06/pyzine-goes-free.html' title='PyZine goes Free'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-115032702434851992</id><published>2006-06-14T19:17:00.000-04:00</published><updated>2006-06-14T19:17:04.370-04:00</updated><title type='text'>Amazing Ikea Commercial</title><content type='html'>Use mouse to move around in &lt;a href="http://demo.fb.se/e/ikea/dreamkitchen/site/default.html"&gt;bullet-time kitchen pics&lt;/a&gt;.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-115032702434851992?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/115032702434851992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=115032702434851992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/115032702434851992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/115032702434851992'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/06/amazing-ikea-commercial.html' title='Amazing Ikea Commercial'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114990925276504775</id><published>2006-06-09T23:14:00.000-04:00</published><updated>2006-06-09T23:14:12.766-04:00</updated><title type='text'>Drawing tools for sleepy people</title><content type='html'>&lt;P&gt;&lt;IMG alt="" hspace=0 src="http://aycu05.webshots.com/image/324/1200746840246199310_rs.jpg" align=baseline border=0&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://david-lu.net/v5/_droomzaacht.html"&gt;Droom Zaacht&lt;/A&gt; - an elegant fun drawing environment.&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114990925276504775?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114990925276504775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114990925276504775' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114990925276504775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114990925276504775'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/06/drawing-tools-for-sleepy-people.html' title='Drawing tools for sleepy people'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114990816102347890</id><published>2006-06-09T22:56:00.000-04:00</published><updated>2006-06-09T22:56:05.043-04:00</updated><title type='text'>Do Looks Matter?</title><content type='html'>&lt;P&gt;Presentation Zen &lt;A href="http://presentationzen.blogs.com/presentationzen/2006/03/visceral_design.html"&gt;compares&lt;/A&gt; Apple/Jobs' and Microsoft/Gates' presentation styles, how they impact the viewer on an emotional level.&lt;/P&gt;&lt;P&gt;Which image communicates better?&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;IMG alt="" hspace=0 src="http://static.flickr.com/28/58697220_0f5db5fe00_m.jpg" align=baseline border=0&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;IMG alt="" hspace=0 src="http://static.flickr.com/41/85109090_1f5402546b_m.jpg" align=baseline border=0&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114990816102347890?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114990816102347890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114990816102347890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114990816102347890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114990816102347890'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/06/do-looks-matter.html' title='Do Looks Matter?'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114973488512284597</id><published>2006-06-07T22:48:00.000-04:00</published><updated>2006-06-07T22:48:05.190-04:00</updated><title type='text'>Details on One Laptop Per Child</title><content type='html'>&lt;P&gt;&lt;IMG alt="" hspace=0 src="http://static.flickr.com/65/156906265_83642237f0.jpg" align=baseline border=0&gt;&lt;/P&gt;&lt;P&gt;Ethan Zuckerman posts some &lt;A href="http://www.ethanzuckerman.com/blog/?p=824"&gt;details on the laptop&lt;/A&gt;:&lt;/P&gt;&lt;UL&gt;  &lt;LI&gt;The screen is hinged to be used as an ebook or turned around. Amazing that   this is strong enough for kids&lt;/LI&gt;  &lt;LI&gt;NIMH batteries were used because they accept a wide range of voltages&lt;/LI&gt;  &lt;LI&gt;The bunny ears are the WIFI antenna and fold down to shield the ports.&lt;/LI&gt;  &lt;LI&gt;Will be sold in lots of a million to governments.&lt;/LI&gt;  &lt;LI&gt;The WIFI chip can forward packets in a mesh network with the CPU turned   off, using only .5 watts of power.&lt;/LI&gt;  &lt;LI&gt;EBook mode: screen is in black and white, CPU is off.&lt;/LI&gt;  &lt;LI&gt;Has 512MB of flash and 128MB RAM. Code is compressed; jffs2 filesystem   spreads swap around the disk.&lt;/LI&gt;  &lt;LI&gt;Alan Key is liking Javascript and Python: &lt;A   href="http://www.logowiki.net/wiki/"&gt;LogoWiki &lt;/A&gt;supports programmable wiki   pages (&lt;A   href="http://www.logowiki.net/wiki/Spiral?command=PRViewCommand&amp;view=PRDefaultView&amp;_s=ObgVzWxzTFUKmoVk&amp;_k=ISaicnxm"&gt;spiral&lt;/A&gt;)&lt;/LI&gt;  &lt;LI&gt;Comes with mic jack and recording software.&lt;/LI&gt;  &lt;LI&gt;Subversive - chat app, wiki, collaborative content. Kids will learn better   than teachers..it's theirs to bring home and learn.&lt;/LI&gt;&lt;/UL&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114973488512284597?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114973488512284597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114973488512284597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114973488512284597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114973488512284597'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/06/details-on-one-laptop-per-child.html' title='Details on One Laptop Per Child'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114946307567488425</id><published>2006-06-04T19:14:00.000-04:00</published><updated>2006-06-04T19:19:54.510-04:00</updated><title type='text'>Everybody's getting into the Shangrila Diet</title><content type='html'>&lt;div style="FLOAT: right; MARGIN-BOTTOM: 10px; MARGIN-LEFT: 10px"&gt; &lt;a href="http://www.flickr.com/photos/44124429768@N01/160218578/" title="photo sharing"&gt;&lt;img src="http://static.flickr.com/69/160218578_dc98035cea_m.jpg" alt="" style="BORDER-RIGHT: #000000 2px solid; BORDER-TOP: #000000 2px solid; BORDER-LEFT: #000000 2px solid; BORDER-BOTTOM: #000000 2px solid"&gt;&lt;/a&gt;&amp;nbsp; &lt;br &gt; &lt;span style="MARGIN-TOP: 0px; FONT-SIZE: 0.9em"&gt;Technorati Tags : &lt;A href="http://technorati.com/tag/shangrila" target=_blank rel=tag&gt;shangrila&lt;/A&gt;&lt;!-- End Technorati Tags --&gt; &lt;/span&gt;&lt;/div&gt;&lt;br clear="all" &gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114946307567488425?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114946307567488425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114946307567488425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114946307567488425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114946307567488425'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/06/everybodys-getting-into-shangrila-diet.html' title='Everybody&apos;s getting into the Shangrila Diet'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114945358213304225</id><published>2006-06-04T16:39:00.000-04:00</published><updated>2006-06-04T19:15:25.413-04:00</updated><title type='text'>Camera Toss Pictures</title><content type='html'>I got several comments of "Nice Desktop" at BarCamp Boston yesterday.&lt;p&gt;The technique is called Camera Toss, and it's just what it sounds like. Bit too risky for me, I'll just enjoy the fantastic images in this &lt;A href="http://www.flickr.com/groups/cameratoss/pool/"&gt;Flickr pool&lt;/A&gt;                           .&amp;nbsp; Some examples:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;P&gt;&lt;A href="http://www.flickr.com/photos/clickykbd/159725357/in/pool-cameratoss/" &gt;&lt;img height=100 src="http://static.flickr.com/78/159725357_5dda26297d_t.jpg" width=67&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/neunzehn/159113899/in/pool-cameratoss/" &gt;&lt;img height=100 src="http://static.flickr.com/67/159113899_dc1d21deaf_t.jpg" width=75&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/50543474@N00/158938251/in/pool-cameratoss/" &gt;&lt;img height=75 src="http://static.flickr.com/73/158938251_8a42386122_t.jpg" width=100&gt;&lt;/A&gt; &lt;A href="http://www.flickr.com/photos/50543474@N00/158938250/in/pool-cameratoss/" &gt;&lt;img height=75 src="http://static.flickr.com/51/158938250_edf01e2269_t.jpg" width=100&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/fredlee/159019398/in/pool-cameratoss/" &gt;&lt;img height=71 src="http://static.flickr.com/54/159019398_5bac9f3063_t.jpg" width=100&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Technorati Tags : &lt;A href="http://technorati.com/tag/BarcampBoston" target=_blank rel=tag&gt;BarcampBoston&lt;/A&gt;&lt;!-- End Technorati Tags --&gt;&lt;br&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114945358213304225?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114945358213304225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114945358213304225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114945358213304225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114945358213304225'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/06/camera-toss-pictures.html' title='Camera Toss Pictures'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114945156569895634</id><published>2006-06-04T16:02:00.000-04:00</published><updated>2006-06-04T16:06:05.776-04:00</updated><title type='text'>Beach Rooftop</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/44124429768@N01/160210336/" title="photo sharing"&gt;&lt;img src="http://static.flickr.com/48/160210336_0efd4b7277_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/44124429768@N01/160210336/"&gt;PICT0334&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/44124429768@N01/"&gt;winkler1&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;Taken on the beach on the &lt;a href=http://www.flickr.com/photos/44124429768@N01/sets/72157594155387442/&gt;Cape&lt;/a&gt;.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114945156569895634?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114945156569895634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114945156569895634' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114945156569895634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114945156569895634'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/06/beach-rooftop.html' title='Beach Rooftop'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114934656524521985</id><published>2006-06-03T10:45:00.000-04:00</published><updated>2006-06-03T12:25:01.293-04:00</updated><title type='text'>BarCamp Boston</title><content type='html'>I'll just post here during the day... &lt;a href="http://babynamewizard.com/namevoyager/lnv0105.html"&gt;NameVoyager&lt;/a&gt; - with John of &lt;a href="http://www.hotknifedesign.com/"&gt;HotKnifeDesign&lt;/a&gt; and Jeff of HeyLetsGo.com .. why are there so many guys named Jeff? HeyLetsGo - &lt;a href="http://www.element55.com/benefits/your-personal-automatic-diary"&gt;element55&lt;/a&gt; - auto time capture JavaScript- Venkman has profiler. To get faster performance with Google Maps. Google code not designed to be read.. even after unobfuscate OpenLayers.org - brand new, not Google. BSD license. Layers powered by WMS layers.Google Issue: data is not high-res. Need to switch to Google maps base layer, for better details. Mapstraction.com - wraps yahoo/MC/google map API's. Uses native widgets.&lt;br /&gt;RiverMojo.com&lt;br /&gt;&lt;br /&gt;Podcasting&lt;br /&gt;  Chris Brogan - &lt;a href="http://chrisbrogan.com/"&gt;http://chrisbrogan.com/&lt;/a&gt;&lt;br /&gt;  Funny - &lt;a href="http://feeds.feedburner.com/Dontbethatguyfilms"&gt;http://feeds.feedburner.com/Dontbethatguyfilms&lt;/a&gt;  &lt;a href="http://grasshopperfactory.com/"&gt;GrasshopperFactory&lt;/a&gt; - goal: be a matchmaker, aggregate by interests.  Idea - fill Nano with podcasts, interstitial ads, podsafe music.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114934656524521985?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114934656524521985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114934656524521985' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114934656524521985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114934656524521985'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/06/barcamp-boston.html' title='BarCamp Boston'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114913165514358279</id><published>2006-05-31T23:14:00.000-04:00</published><updated>2006-05-31T23:14:15.206-04:00</updated><title type='text'>The Nose Knows</title><content type='html'>&lt;P&gt;Titus has written a &lt;A href="http://ivory.idyll.org/articles/nose-intro.html"&gt;nice intro&lt;/A&gt; to nose with examples. I emphatically agree:&lt;/P&gt;&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;  &lt;P&gt;the most important part of having unit tests is that they can be run   &lt;EM&gt;quickly&lt;/EM&gt;, &lt;EM&gt;easily&lt;/EM&gt;, and &lt;EM&gt;without any thought&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Thus, I was &lt;EM&gt;suprised&amp;nbsp;not to see something like&amp;nbsp;&lt;/EM&gt;&lt;A href="http://showmedo.com/videoPage?name=UsingNoseyForPythonTesting_jeffW"&gt;&lt;EM&gt;Nosy&lt;/EM&gt;&lt;/A&gt;, to automagically run tests when code changes.&amp;nbsp;To me, running tests by hand&amp;nbsp;requires &lt;EM&gt;thought&lt;/EM&gt;, and a context switch. Nosy keeps me in the &lt;A href="http://en.wikipedia.org/wiki/Flow_%28psychology%29"&gt;flow&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;A href="http://darcs.idyll.org/~t/projects/pinocchio/doc/"&gt;Pinocchio&lt;/A&gt; is an extension to filter out long-running tests so tests may be run quickly. This leads me to believe his test suite&amp;nbsp;was too big to run automatically.&lt;/P&gt;&lt;P&gt;(What &lt;EM&gt;is it&lt;/EM&gt; about nose that inspires bad puns? This blog title, nosy, pinocchio...well, what do expect in a language named after&amp;nbsp;comedy troupe :)&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114913165514358279?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114913165514358279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114913165514358279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114913165514358279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114913165514358279'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/05/nose-knows.html' title='The Nose Knows'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114896196114965674</id><published>2006-05-30T00:06:00.000-04:00</published><updated>2006-07-26T10:30:46.023-04:00</updated><title type='text'>Olive Oil (ELOO) - one of the World's Healthiest Foods?</title><content type='html'>&lt;p&gt;For those of us who are &lt;a href="http://jeffwinkler.net/category/shangrila/"&gt;swigging olive oil daily&lt;/a&gt;, here's some &lt;a href="http://www.whfoods.com/genpage.php?tname=foodspice&amp;dbid=132"&gt;background on olive oil&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Olive oil is rich in Vitamin E, a fat-soluble antioxidant:&lt;/p&gt;&lt;blockquote dir="ltr" style="margin-right: 0px;"&gt;  &lt;p&gt;"It turns out that people who use olive oil regularly, especially in place   of other fats, have &lt;strong&gt;much lower rates of heart disease,   atherosclerosis, diabetes, colon cancer, and asthma&lt;/strong&gt;."&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;This is a pretty technical article. The most interesting and relevant bit concerns &lt;a href="http://www.whfoods.com/genpage.php?tname=foodspice&amp;amp;dbid=132#purchasequalities"&gt;storage&lt;/a&gt;: it should be in a dark place, away from heat. Most olive oil is in glass bottles, so that means I shouldn't store mine by the stove but in a closed cupboard :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114896196114965674?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114896196114965674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114896196114965674' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114896196114965674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114896196114965674'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/05/olive-oil-eloo-one-of-worlds.html' title='Olive Oil (ELOO) - one of the World&apos;s Healthiest Foods?'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114895936988417688</id><published>2006-05-29T23:22:00.000-04:00</published><updated>2006-05-29T23:22:49.930-04:00</updated><title type='text'>8 Dollar Steak Dinner for Two</title><content type='html'>&lt;P&gt;I'm finally making good on my promise to do more cooking. Part of this involves signing up the the &lt;A href="http://cooksillustrated.com/"&gt;Cooks Illustrated site&lt;/A&gt;, and having an EVDO connection to surf with the laptop.&lt;/P&gt;&lt;P&gt;&amp;nbsp;Following the recipe from Cooks Illustrated - Great Cheap Steaks-Sept/2005, we got a pound of &lt;A href="http://en.wikipedia.org/wiki/Sirloin_steak"&gt;Top Sirloin &lt;/A&gt;steak, $5.95 a pound, and a couple pounds of Yukon Gold potatos for Buttermilk Mashed Potatoes.&lt;/P&gt;&lt;P&gt;&amp;nbsp;The potatoes were fluffy and sweet, and the steak tasty and tender. We also whipped up a pan sauce with green onions, port and mustard. Three tablespoons of Grey Poupon was far too vinegary. I assume mustard is used for the sauce because it's a good emulsifier...next time we should use a sweeter brown mustard.&lt;/P&gt;&lt;P&gt;&amp;nbsp;This is an great value, and ready in a half hour- with leftover potatoes to nosh on for the rest of the week.&amp;nbsp; This is a recipe to learn and get good at.&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114895936988417688?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114895936988417688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114895936988417688' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114895936988417688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114895936988417688'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/05/8-dollar-steak-dinner-for-two.html' title='8 Dollar Steak Dinner for Two'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114816334356210018</id><published>2006-05-20T18:15:00.000-04:00</published><updated>2006-05-20T18:15:43.566-04:00</updated><title type='text'>SpringStream</title><content type='html'>&lt;P&gt;&lt;IMG alt="" hspace=0 src="http://www.npr.org/programs/atc/features/2006/apr/springsteen/asbury200x250.jpg" align=baseline border=0&gt;&lt;/P&gt;&lt;P&gt;Bruce Springsteen did a &lt;A href="http://www.bbc.co.uk/radio/aod/radio2_aod.shtml?radio2/r2_springsteen"&gt;live concert for the BBC &lt;/A&gt;in support of his new Seeger album.&lt;/P&gt;&lt;P&gt;We got the CD/DVD a couple weekends ago, and enjoyed it on Mother's Day.&lt;/P&gt;&lt;P&gt;The concert is up for a limited time, streaming in Real format at &lt;A href="rtsp://rmv8.bbc.net.uk/radio2/r2_springsteen.ra"&gt;rtsp://rmv8.bbc.net.uk/radio2/r2_springsteen.ra&lt;/A&gt;. It&amp;nbsp;sounded great &lt;A href="http://manual.xboxmediacenter.de/wakka.php?wakka=PlayingStreams"&gt;streaming through the XBox&lt;/A&gt;. &lt;/P&gt;&lt;P&gt;To capture it, I downloaded an eval version of &lt;A href="http://fileforum.betanews.com/detail/Net_Transport/1052672994/1"&gt;NetTransport&lt;/A&gt;. It downloaded the 15 Meg, hour concert in a mere 3 minutes.&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114816334356210018?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114816334356210018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114816334356210018' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114816334356210018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114816334356210018'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/05/springstream_20.html' title='SpringStream'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114804702790003253</id><published>2006-05-19T09:57:00.000-04:00</published><updated>2006-05-19T09:57:07.956-04:00</updated><title type='text'>Seth Roberts ShangriLa Diet Mp3 Interview</title><content type='html'>&lt;P&gt;&lt;A href="http://www.msnbc.msn.com/id/12858720/"&gt;Interview with the book author&lt;/A&gt; - in MP3. The interview seems a little disjointed, but good content. The name "ShangriLa" and simplicity (tablespoon of oil) seem too simple and alluring, but it's clear from the interview Roberts is a serious, thoughtful scientist building on previous research.&lt;/P&gt;&lt;P&gt;Kudos to MSNBC for posting MP3, not some annoying streaming DRM'd format.&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114804702790003253?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114804702790003253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114804702790003253' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114804702790003253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114804702790003253'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/05/seth-roberts-shangrila-diet-mp3.html' title='Seth Roberts ShangriLa Diet Mp3 Interview'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114752962080232487</id><published>2006-05-13T10:04:00.000-04:00</published><updated>2006-05-13T10:37:47.646-04:00</updated><title type='text'>Neil Young - Living with War</title><content type='html'>&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand" alt="" src="http://www.hyfntrak.com/headers/342B" border="0" /&gt;&lt;br /&gt;&lt;a href="http://www.hyfntrak.com/neilyoung2/AFF25305/"&gt;Listen to the full album&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I tried to buy this last weekend, but it wasn't out yet. Here's the &lt;a href="http://www.rollingstone.com/news/story/10203477/neil_young_gives_it_away_for_free"&gt;story&lt;/a&gt; in Rolling Stone.&lt;br /&gt;&lt;br /&gt;The most rousing song is Impeach the President (the &lt;a href="http://www.whitehouse.gov/president/gwbbio.html"&gt;Miserable Failure&lt;/a&gt;). &lt;a href="http://guerillawomentn.blogspot.com/2006/04/neil-youngs-impeach-president-lyrics.html"&gt;Lyrics here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114752962080232487?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114752962080232487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114752962080232487' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114752962080232487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114752962080232487'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/05/neil-young-living-with-war.html' title='Neil Young - Living with War'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114726821742257134</id><published>2006-05-10T09:36:00.000-04:00</published><updated>2006-05-10T09:36:57.473-04:00</updated><title type='text'>Improv Everywhere - Best Buy</title><content type='html'>&lt;P&gt;&lt;IMG alt="" hspace=0 src="http://static.flickr.com/44/138534842_ea5c7d240f.jpg?v=0" align=baseline border=0&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.improveverywhere.com/mission_view.php?mission_id=57"&gt;"Wearing clothing almost identical to the store's uniform, the agents would not claim to work at the store but would be friendly and helpful if anyone had a question."&lt;/A&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114726821742257134?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114726821742257134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114726821742257134' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114726821742257134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114726821742257134'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/05/improv-everywhere-best-buy.html' title='Improv Everywhere - Best Buy'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114679218939493223</id><published>2006-05-04T21:23:00.000-04:00</published><updated>2006-06-24T17:49:10.193-04:00</updated><title type='text'>ShowMeDo vids are up</title><content type='html'>&lt;p&gt;&lt;a href="http://showmedo.com/videos/video?name=UsingpyWinAutoToControlAWindowsApplication&amp;fromSeriesID=7"&gt;Using pyWinAuto to Control a Windows Application&lt;/a&gt; - this is an enhanced version of the animated GIF on the &lt;a href="http://pywinauto.pbwiki.com/"&gt;pyWinAuto Wiki&lt;/a&gt;.  (The filename is currently 64 characters long, rename if it doesn't play).&lt;/p&gt;&lt;p&gt;&lt;a href="http://showmedo.com/videos/video?name=UsingNoseyForPythonTesting_jeffW&amp;amp;fromSeriesID=7"&gt;Using Nosey for Python Testing&lt;/a&gt; - this is a movie of Nosy, which uses Nose to&lt;a href="http://jeffwinkler.net/2006/04/27/keeping-your-nose-green/"&gt; &lt;/a&gt;&lt;a href="http://jeffwinkler.net/2006/04/27/keeping-your-nose-green/"&gt;automatically run unit tests&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://ianozsvald.com/"&gt;Ian&lt;/a&gt; makes a good editor... luckily my mistakes were minor enough not to have to re-record.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114679218939493223?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114679218939493223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114679218939493223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114679218939493223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114679218939493223'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/05/showmedo-vids-are-up.html' title='ShowMeDo vids are up'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114671437246877317</id><published>2006-05-03T23:46:00.000-04:00</published><updated>2006-05-03T23:46:12.470-04:00</updated><title type='text'>Icons of Colbert's Speech</title><content type='html'>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;IMG alt="" hspace=0 src="http://photos1.blogger.com/blogger/3503/0/320/colbert.600.1.jpg" align=baseline border=0&gt;&lt;/P&gt;&lt;P&gt;Someone has &lt;A href="http://lay-of-luthien.livejournal.com/6749.html"&gt;done up the quotes as icons.&lt;/A&gt; My favorite-&lt;/P&gt;&lt;P&gt;&lt;A href="http://pics.livejournal.com/lay_of_luthien/pic/0008f7zh/"&gt;&lt;IMG height=100 src="http://pics.livejournal.com/lay_of_luthien/pic/0008f7zh" width=100 border=0&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;A href="http://pics.livejournal.com/lay_of_luthien/pic/000869a9/"&gt;&lt;/A&gt; &lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114671437246877317?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114671437246877317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114671437246877317' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114671437246877317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114671437246877317'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/05/icons-of-colberts-speech.html' title='Icons of Colbert&apos;s Speech'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114666957914244405</id><published>2006-05-03T11:19:00.000-04:00</published><updated>2006-05-03T11:19:39.146-04:00</updated><title type='text'>International Flava</title><content type='html'>&lt;P&gt;&lt;!--StartFragment --&gt;&amp;nbsp;My readership seems to be pretty well distributed..cool! &lt;/P&gt;&lt;TABLE cellSpacing=1 cellPadding=1 width=450 border=0&gt;    &lt;TR&gt;    &lt;TD align=right bgColor=#f5f5e2&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=12       src="http://sitemeter.com/images/flags/NL.gif" width=18 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD noWrap align=left bgColor=#f5f5e2&gt;&lt;FONT face=Arial       size=2&gt;Netherlands&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD align=left bgColor=#f5f5e2&gt;&lt;FONT face=Arial       size=2&gt;Almelo,&amp;nbsp;Overijssel&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;  &lt;TR&gt;    &lt;TD align=right&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=12       src="http://sitemeter.com/images/flags/US.gif" width=18 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD noWrap align=left&gt;&lt;FONT face=Arial size=2&gt;United States&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD align=left&gt;&lt;FONT face=Arial     size=2&gt;Waltham,&amp;nbsp;Massachusetts&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;  &lt;TR&gt;    &lt;TD align=right bgColor=#f5f5e2&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=12       src="http://sitemeter.com/images/flags/DE.gif" width=18 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD noWrap align=left bgColor=#f5f5e2&gt;&lt;FONT face=Arial       size=2&gt;Germany&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD align=left bgColor=#f5f5e2&gt;&lt;FONT face=Arial       size=2&gt;Koeln,&amp;nbsp;Nordrhein-Westfalen&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;  &lt;TR&gt;    &lt;TD align=right&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=12       src="http://sitemeter.com/images/flags/GR.gif" width=18 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD noWrap align=left&gt;&lt;FONT face=Arial size=2&gt;Greece&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD align=left&gt;&lt;FONT face=Arial size=2&gt;Athens,&amp;nbsp;Attiki&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;  &lt;TR&gt;    &lt;TD align=right&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=12       src="http://sitemeter.com/images/flags/CA.gif" width=18 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD noWrap align=left&gt;&lt;FONT face=Arial size=2&gt;Canada&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD align=left&gt;&lt;FONT face=Arial size=2&gt;Oakville,&amp;nbsp;Ontario&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;  &lt;TR&gt;    &lt;TD align=right bgColor=#f5f5e2&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=12       src="http://sitemeter.com/images/flags/US.gif" width=18 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD noWrap align=left bgColor=#f5f5e2&gt;&lt;FONT face=Arial size=2&gt;United       States&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD align=left bgColor=#f5f5e2&gt;&lt;FONT face=Arial       size=2&gt;Astoria,&amp;nbsp;New&amp;nbsp;York&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;  &lt;TR&gt;    &lt;TD align=right&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=12       src="http://sitemeter.com/images/flags/FR.gif" width=18 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD noWrap align=left&gt;&lt;FONT face=Arial size=2&gt;France&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD align=left&gt;&lt;FONT face=Arial     size=2&gt;Nanterre,&amp;nbsp;Ile-de-France&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;  &lt;TR&gt;    &lt;TD align=right bgColor=#f5f5e2&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=12       src="http://sitemeter.com/images/flags/US.gif" width=18 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD noWrap align=left bgColor=#f5f5e2&gt;&lt;FONT face=Arial size=2&gt;United       States&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD align=left bgColor=#f5f5e2&gt;&lt;FONT face=Arial       size=2&gt;Laguna&amp;nbsp;Beach,&amp;nbsp;California&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;  &lt;TR&gt;    &lt;TD align=right&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=12       src="http://sitemeter.com/images/flags/US.gif" width=18 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD noWrap align=left&gt;&lt;FONT face=Arial size=2&gt;United States&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD align=left&gt;&lt;FONT face=Arial     size=2&gt;Cambridge,&amp;nbsp;Massachusetts&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;  &lt;TR&gt;    &lt;TD align=right bgColor=#f5f5e2&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=12       src="http://sitemeter.com/images/flags/DE.gif" width=18 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD noWrap align=left bgColor=#f5f5e2&gt;&lt;FONT face=Arial       size=2&gt;Germany&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD align=left bgColor=#f5f5e2&gt;&lt;FONT face=Arial       size=2&gt;Rimpar,&amp;nbsp;Bayern&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;  &lt;TR&gt;    &lt;TD align=right&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=12       src="http://sitemeter.com/images/flags/IT.gif" width=18 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD noWrap align=left&gt;&lt;FONT face=Arial size=2&gt;Italy&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD align=left&gt;&lt;FONT face=Arial     size=2&gt;Campolattaro,&amp;nbsp;Campania&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;  &lt;TR&gt;    &lt;TD align=right bgColor=#f5f5e2&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=12       src="http://sitemeter.com/images/flags/CA.gif" width=18 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD noWrap align=left bgColor=#f5f5e2&gt;&lt;FONT face=Arial     size=2&gt;Canada&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD align=left bgColor=#f5f5e2&gt;&lt;FONT face=Arial       size=2&gt;Ottawa,&amp;nbsp;Ontario&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;  &lt;TR&gt;    &lt;TD align=right&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=12       src="http://sitemeter.com/images/flags/US.gif" width=18 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD noWrap align=left&gt;&lt;FONT face=Arial size=2&gt;United States&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD align=left&gt;&lt;FONT face=Arial     size=2&gt;Flushing,&amp;nbsp;New&amp;nbsp;York&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;  &lt;TR&gt;    &lt;TD align=right bgColor=#f5f5e2&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG height=12       src="http://sitemeter.com/images/flags/CZ.gif" width=18 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD noWrap align=left bgColor=#f5f5e2&gt;&lt;FONT face=Arial size=2&gt;Czech       Republic&lt;/FONT&gt;&lt;/TD&gt;    &lt;TD align=left bgColor=#f5f5e2&gt;&lt;FONT face=Arial       size=2&gt;Praha,&amp;nbsp;Hlavni&amp;nbsp;Mesto&amp;nbsp;Praha&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114666957914244405?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114666957914244405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114666957914244405' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114666957914244405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114666957914244405'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/05/international-flava.html' title='International Flava'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114666910889004296</id><published>2006-05-03T11:11:00.000-04:00</published><updated>2006-05-03T11:23:30.620-04:00</updated><title type='text'>KVM's and Synergy</title><content type='html'>&lt;p&gt;Mark Watson &lt;a href="http://mark-watson.blogspot.com/2006/05/19-for-more-productive-environment.html"&gt;writes &lt;/a&gt;about using a KVM switch to share screens between monitors.&lt;/p&gt;&lt;p&gt;Even better, if you have the desk space, is &lt;a href="http://synergy2.sourceforge.net/"&gt;Synergy &lt;/a&gt;which allows the mouse to move between machines (Windows/Linux/Mac). You can even copy text between OS's!&lt;/p&gt;&lt;p&gt;  &lt;img alt="" hspace="0" src="http://synergy2.sourceforge.net/images/warp.gif" align="baseline" border="0" /&gt;&lt;/p&gt;&lt;p&gt;This way, there is no context switch... you can keep reference/email up on different machines. Most folks have spare screens as the move to flatscreens continues.. why not use them?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114666910889004296?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114666910889004296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114666910889004296' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114666910889004296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114666910889004296'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/05/kvms-and-synergy.html' title='KVM&apos;s and Synergy'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114666583038396112</id><published>2006-05-03T10:17:00.000-04:00</published><updated>2006-05-03T10:17:10.430-04:00</updated><title type='text'>ClearType makes bloated Screencasts</title><content type='html'>&lt;P&gt;I've been making movies for ShowMeDo about Nose and PyWinAuto.&amp;nbsp; As a matter of course, I turn off Windows ClearType rendering. It looks pretty, but I don't think it's worth the bits.&lt;/P&gt;&lt;P&gt;I recorded the same movie with and without ClearType, capturing to Microsoft Video 1 at 100% (lossless) quality:&lt;/P&gt;&lt;UL&gt;  &lt;LI&gt;ClearType ON&amp;nbsp;: 31,157 KB&lt;/LI&gt;  &lt;LI&gt;ClearType OFF: 11,263 KB&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;The movie had audio, and things get even more interesting when looking at it with &lt;A href="http://www.headbands.com/gspot/"&gt;GSpot&lt;/A&gt;:&lt;/P&gt;&lt;UL&gt;  &lt;LI&gt;Cleartype ON Bitrate: 11743 kb/s&lt;/LI&gt;  &lt;LI&gt;Cleartype OFF Bitrate: 3219 kb/s&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;So: Cleartype makes the video &lt;STRONG&gt;264% bigger&lt;/STRONG&gt;.&amp;nbsp; Is it really worth it?&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114666583038396112?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114666583038396112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114666583038396112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114666583038396112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114666583038396112'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/05/cleartype-makes-bloated-screencasts.html' title='ClearType makes bloated Screencasts'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114644621707657505</id><published>2006-04-30T21:16:00.000-04:00</published><updated>2006-05-05T17:39:58.156-04:00</updated><title type='text'>Colbert's White House Correspondents Dinner Speech</title><content type='html'>&lt;img alt="" hspace="0" src="http://photos1.blogger.com/blogger/3503/0/1600/colbert.jpg" align="baseline" border="0" href="http://video.google.com/videoplay?docid=-869183917758574879" /&gt; &lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://video.google.com/videoplay?docid=-869183917758574879"&gt;Fantastic&lt;/a&gt; stuff - slyly delivering the Truth.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114644621707657505?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114644621707657505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114644621707657505' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114644621707657505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114644621707657505'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/04/colberts-white-house-correspondents.html' title='Colbert&apos;s White House Correspondents Dinner Speech'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114624232970205519</id><published>2006-04-28T12:38:00.000-04:00</published><updated>2006-04-28T12:38:49.706-04:00</updated><title type='text'>IT Crowd Soundboard</title><content type='html'>&lt;P&gt;&lt;A href="http://www.e-subversive.net/soundboards/itcrowd/"&gt;Soundboard&lt;/A&gt;&amp;nbsp;-&amp;nbsp;&lt;A href="http://www.e-subversive.net/soundboards_files/sounds/itcrowdthatsbrilliant.mp3"&gt;brilliant&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;IMG alt="" hspace=0 src="http://www.channel4.com/entertainment/tv/microsites/I/itcrowd/images/gallery1.jpg" align=baseline border=0&gt;&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114624232970205519?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114624232970205519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114624232970205519' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114624232970205519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114624232970205519'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/04/it-crowd-soundboard.html' title='IT Crowd Soundboard'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114624122730156947</id><published>2006-04-28T12:20:00.000-04:00</published><updated>2006-04-28T12:20:27.306-04:00</updated><title type='text'>Dashtime Notes - Constructivist Learning, Logo, Papert, DOM-&gt;Eclipse API's,  SynchroEdit, DBC Use case</title><content type='html'>&lt;P&gt;4/25/2006&lt;BR&gt;Jeff Winkler, winkler1@gmail.com&lt;BR&gt;Ward Cunningham &lt;/P&gt;&lt;H2&gt;&lt;A href="http://www.eclipse.org/dash/monkey-help.php?key=running"&gt;Monkey&lt;/A&gt;&lt;/H2&gt;&lt;P&gt;Uses jabberwocky delimiters - easily embedded on blog.&lt;BR&gt;Idea - google Blog search &lt;A href="http://blogsearch.google.com/blogsearch?hl=en&amp;q=%22Came+wiffling+through+the+eclipsey+wood%22&amp;ie=UTF-8&amp;scoring=d "&gt;RSS feed &lt;/A&gt;for new scripts.. (buggy? didn't find &lt;A href="http://pmuellr.blogspot.com/2006/03/eclipse-monkey-publishing.html"&gt;this&lt;/A&gt;) &lt;/P&gt;&lt;H2&gt;Constructivist Learning / Interactive Shell&lt;/H2&gt;&lt;P&gt;The person writing a script has to interact with objects in a safe environment. It's a &lt;SPAN style="FONT-WEIGHT: bold"&gt;conversation&lt;/SPAN&gt; between the user - exploring, understanding the API's, and the objects and API's of the system. The goal is for the user to &lt;SPAN style="FONT-WEIGHT: bold"&gt;learn&lt;/SPAN&gt; the objects by exploration...&lt;BR&gt;&amp;nbsp;The tighter the &lt;SPAN style="FONT-WEIGHT: bold"&gt;feedback loop&lt;/SPAN&gt; the better. An interactive command line where Javascript code can be entered is the best tool for. See this &lt;A href="http://showmedo.com/videoPage?name=IntroductionToPythonObjectsUsingIPython1_JerolH"&gt;showmedo&lt;/A&gt;.&lt;BR&gt;&lt;BR&gt;Ideally, there would be an interactive Rhino shell.&lt;BR&gt;&lt;/P&gt;&lt;H2&gt;Logo, Seymour Papert, Hard Fun&lt;/H2&gt;&lt;P&gt;Before the call, I was reading up on Seymour Papert, after playing with &lt;A href="http://rur-ple.sourceforge.net/"&gt;RUR-PLE&lt;/A&gt;, a python learning environment. &amp;nbsp;I had playing with Graforth as a kid - and it was based on Logo. What makes these learning environments succesful? &amp;nbsp;&lt;A href="http://www.papert.org/articles/HardFun.html"&gt;Hard Fun&lt;/A&gt;, and &lt;A href="http://www.crews.org/curriculum/ex/compsci/7thgrade/whylogo/whylogo.htm#1"&gt;this&lt;/A&gt;, seem to articulate it best:&lt;BR&gt;&lt;/P&gt;&lt;P&gt;&lt;B&gt;&lt;FONT face=Helvetica&gt;&lt;FONT color=#ff0000&gt;&lt;FONT size=+1&gt;1&amp;nbsp;What is Logo?&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt; &lt;/P&gt;&lt;P&gt;&lt;FONT face="New Century Schoolbook,Times"&gt;&lt;FONT size=+0&gt;Logo is a unique piece of software. In the purest sense, Logo is a programming language; it is a full-featured computer language derived from LISP, the language of artificial intelligence. More important, however, Logo is a language for learning. It is the right tool to teach the &lt;I&gt;process&lt;/I&gt; of learning and thinking. Logo provides an environment where students assume the &lt;I&gt;role&lt;/I&gt; of teacher. As a &lt;I&gt;teacher&lt;/I&gt;, they must:&lt;/FONT&gt;&lt;/FONT&gt; &lt;/P&gt;&lt;UL&gt;  &lt;LI&gt;&lt;FONT face="New Century Schoolbook,Times"&gt;&lt;FONT size=+0&gt;understand the   knowledge to be taught&lt;/FONT&gt;&lt;/FONT&gt;   &lt;LI&gt;&lt;FONT face="New Century Schoolbook,Times"&gt;&lt;FONT size=+0&gt;plan an approach   to impart this knowledge&lt;/FONT&gt;&lt;/FONT&gt;   &lt;LI&gt;&lt;FONT face="New Century Schoolbook,Times"&gt;&lt;FONT size=+0&gt;break the   knowledge into small, understandable chunks&lt;/FONT&gt;&lt;/FONT&gt;   &lt;LI&gt;&lt;FONT face="New Century Schoolbook,Times"&gt;&lt;FONT size=+0&gt;know how to   clearly communicate the knowledge&lt;/FONT&gt;&lt;/FONT&gt;   &lt;LI&gt;&lt;FONT face="New Century Schoolbook,Times"&gt;&lt;FONT size=+0&gt;establish this new   knowledge as the foundation for future learning&lt;/FONT&gt;&lt;/FONT&gt;   &lt;LI&gt;&lt;FONT face="New Century Schoolbook,Times"&gt;&lt;FONT size=+0&gt;be aware of and   build on knowledge that the learner already has&lt;/FONT&gt;&lt;/FONT&gt;   &lt;LI&gt;&lt;FONT face="New Century Schoolbook,Times"&gt;&lt;FONT size=+0&gt;be receptive to   exploring new ideas as they appear&lt;/FONT&gt;&lt;/FONT&gt;   &lt;LI&gt;&lt;FONT face="New Century Schoolbook,Times"&gt;&lt;FONT size=+0&gt;respond to the   learner's (computer's) misunderstandings and errors&lt;/FONT&gt;&lt;/FONT&gt; &lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.. &lt;FONT face="New Century Schoolbook,Times"&gt;&lt;FONT size=+0&gt;Designed at MIT as a language for learning, Logo is by its nature:&lt;/FONT&gt;&lt;/FONT&gt; &lt;BR&gt;&amp;nbsp; &lt;TABLE cellPadding=6 border=0&gt;    &lt;TR&gt;    &lt;TD vAlign=top align=middle&gt;&lt;I&gt;&lt;FONT       face="New Century Schoolbook,Times"&gt;&lt;FONT       size=+0&gt;friendly&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/TD&gt;    &lt;TD vAlign=top&gt;&lt;FONT face="New Century Schoolbook,Times"&gt;&lt;FONT       size=+0&gt;Logo is easily grasped; we can relate to the turtle and use it as       an object to think with.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;  &lt;TR&gt;    &lt;TD vAlign=top align=middle&gt;&lt;I&gt;&lt;FONT       face="New Century Schoolbook,Times"&gt;&lt;FONT       size=+0&gt;extensible&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/TD&gt;    &lt;TD vAlign=top&gt;&lt;FONT face="New Century Schoolbook,Times"&gt;&lt;FONT       size=+0&gt;Logo can be taught new commands and other commands can be built       thereon.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;  &lt;TR&gt;    &lt;TD vAlign=top align=middle&gt;&lt;I&gt;&lt;FONT       face="New Century Schoolbook,Times"&gt;&lt;FONT       size=+0&gt;forgiving&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/TD&gt;    &lt;TD vAlign=top&gt;&lt;FONT face="New Century Schoolbook,Times"&gt;&lt;FONT       size=+0&gt;Logo offers immediate feedback through helpful and informative       messages.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;  &lt;TR&gt;    &lt;TD vAlign=top align=middle&gt;&lt;I&gt;&lt;FONT       face="New Century Schoolbook,Times"&gt;&lt;FONT       size=+0&gt;flexible&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/TD&gt;    &lt;TD vAlign=top&gt;&lt;FONT face="New Century Schoolbook,Times"&gt;&lt;FONT       size=+0&gt;Logo is as useful with preschoolers as it is with students of       higher mathematics.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;  &lt;TR&gt;    &lt;TD vAlign=top align=middle&gt;&lt;I&gt;&lt;FONT       face="New Century Schoolbook,Times"&gt;&lt;FONT       size=+0&gt;powerful&lt;/FONT&gt;&lt;/FONT&gt;&lt;/I&gt;&lt;/TD&gt;    &lt;TD vAlign=top&gt;&lt;FONT face="New Century Schoolbook,Times"&gt;&lt;FONT       size=+0&gt;Logo is a programming language, providing all the tools needed to       create programs of any degree of   sophistication.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;/P&gt;&lt;H2&gt;Transitioning from DOM-&amp;gt;Eclipse API's&lt;/H2&gt;&lt;P&gt;How does a person using a DOM understand what's going on under the covers, with the underlying API's?&lt;BR&gt;Ward suggested using debugger to trace into the code.&lt;BR&gt;&lt;/P&gt;&lt;H2&gt;Shared document editing - shared artifacts&lt;/H2&gt;&lt;P&gt;Though we had a great, rambling conversation, we didn't have easy tools to take notes. &amp;nbsp;Though DashTime is a "virtual place" - there's no there, there. &amp;nbsp;I didn't have an IRC client, and it would be a pain to download.&amp;nbsp; I was jonesing for a collaborative shared text space to take notes. An IRC applet would ease the transition; something like SubEthaEdit would be better, be cross-platform and web-based. &lt;A href="http://synchroedit.com/index.php "&gt;SynchroEdit &lt;/A&gt;looks the part:&lt;BR&gt;&lt;/P&gt;&lt;P style="MARGIN-LEFT: 40px"&gt;SynchroEdit is a browser-based simultaneous multiuser editor, a form of same-time, different-place groupware. It allows multiple users to edit a single web-based document at the same time, and it continuously synchronizes all changes so that users always have the same version. &lt;/P&gt;&lt;P style="MARGIN-LEFT: 40px"&gt;SynchroEdit's main editor is fully WYSIWYG, dynamically displaying bolds, italics, underlines, strikethroughs, with various justifications, indents and listing styles as an author inputs them. SynchroEdit also supports a simple, text-only editor for more basic documents. To clarify the multiuser experience, the editor window clearly depicts every user's changes in a specific color and also marks where each user is currently editing with a colored flag listing the user's name. &lt;/P&gt;&lt;H2&gt;My DBC/Requirements use case&lt;/H2&gt;&lt;P&gt;This is a low-hanging fruit which delivers &lt;SPAN style="FONT-WEIGHT: bold"&gt;value&lt;/SPAN&gt; for me, and I would see having other developers in my company use.&lt;BR&gt;&lt;BR&gt;Given the method findbook():&lt;/P&gt;&lt;DIV style="MARGIN-LEFT: 40px"&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;Book findBook ( String strTitle )&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;P&gt;&lt;A href="http://en.wikipedia.org/wiki/DBC"&gt;DBC&lt;/A&gt; &amp;nbsp;suggests that the&amp;nbsp;&lt;SPAN style="FONT-WEIGHT: bold"&gt;contract&amp;nbsp;&lt;/SPAN&gt;should state, and&amp;nbsp;&lt;SPAN style="FONT-WEIGHT: bold"&gt;enforce&lt;/SPAN&gt; any preconditions. &amp;nbsp;In my company, we do:&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;&lt;DIV style="MARGIN-LEFT: 40px"&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;/** Lookup a book by its title&lt;/SPAN&gt;&lt;BR style="FONT-FAMILY: Courier New"&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;* @param strTitle the book title. Case-insensitive. !null.&lt;/SPAN&gt;&lt;BR style="FONT-FAMILY: Courier New"&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;*/&lt;/SPAN&gt;&lt;BR style="FONT-FAMILY: Courier New"&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;Book findBook ( String strTitle ) {&lt;/SPAN&gt;&lt;BR style="FONT-FAMILY: Courier New"&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;Require.notNull&lt;/STRONG&gt; ( strTitle, "strTitle");&lt;/SPAN&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;P&gt;So, I'd like to write a script to type the "Require.notNull" bit for me. I would do:&lt;/P&gt;&lt;UL&gt;  &lt;LI&gt;Double-click on the strTitle variable   &lt;LI&gt;Invoke my Monkey script (ideally, via hotkey)   &lt;LI&gt;The new line is created... cursor is left where it is &lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;This entails:&lt;/P&gt;&lt;UL&gt;  &lt;LI&gt;Getting selected text   &lt;LI&gt;Inserting text into the buffer, as though I'd typed it. &lt;/LI&gt;&lt;/UL&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114624122730156947?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114624122730156947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114624122730156947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114624122730156947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114624122730156947'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/04/dashtime-notes-constructivist-learning_28.html' title='Dashtime Notes - Constructivist Learning, Logo, Papert, DOM-&gt;Eclipse API&apos;s,  SynchroEdit, DBC Use case'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114615963297989191</id><published>2006-04-27T13:40:00.000-04:00</published><updated>2006-06-24T17:36:34.270-04:00</updated><title type='text'>Keeping your Nose Green</title><content type='html'>&lt;a href="http://pywinauto.blogspot.com/"&gt;Mark &lt;/a&gt;of &lt;a href="http://pywinauto.pbwiki.com/"&gt;pywinauto&lt;/a&gt; fame told me about &lt;a href="http://nose.python-hosting.com/"&gt;nose&lt;/a&gt;, a unit testing tool with autodiscovery. I was slinging some python over the weekend, and needed coverage as my codebase got bigger.. so I whipped this up. I run this on a DOS window under windows. Basically &lt;strong&gt;every time you change any .py file, it runs tests&lt;/strong&gt;. I call it &lt;strong&gt;nosy&lt;/strong&gt;.&lt;br /&gt;&lt;div&gt;&lt;blockquote style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;import glob,os,stat,time&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;def checkSum():&lt;br /&gt;''' Return a long which can be used to know if any .py files have changed.&lt;br /&gt;Only looks in the current directory. '''&lt;br /&gt;val = 0&lt;br /&gt;for f in glob.glob ('*.py'):&lt;br /&gt;stats = os.stat (f)&lt;br /&gt;val += stats [stat.ST_SIZE] + stats [stat.ST_MTIME]&lt;br /&gt;return val&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;val=0&lt;br /&gt;while (True):&lt;br /&gt;if checkSum() != val:&lt;br /&gt;val=checkSum()&lt;br /&gt;os.system ('nosetests')&lt;br /&gt;time.sleep(1)&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;I didn't get cute with lambda to squash it into a single line. This is simplistic, but gets the job done. I've sent it to &lt;a href="http://somethingaboutorange.com/mrl/"&gt;Jason&lt;/a&gt; for improvement.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Update: &lt;/em&gt;A video of this is &lt;a href="http://showmedo.com/videos/video?name=UsingNoseyForPythonTesting_jeffW&amp;amp;fromSeriesID=7"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114615963297989191?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114615963297989191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114615963297989191' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114615963297989191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114615963297989191'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/04/keeping-your-nose-green.html' title='Keeping your Nose Green'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114615084463164082</id><published>2006-04-27T11:14:00.000-04:00</published><updated>2006-04-27T11:14:04.716-04:00</updated><title type='text'>ITMFA</title><content type='html'>&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P align=left&gt;&lt;FONT FACE="VERDANA" COLOR="#000080" size=1&gt;&lt;I&gt;&lt;IMG alt="" hspace=0 src="http://www.itmfa.com/images/button.gif" align=baseline border=0&gt;&lt;/P&gt;&lt;DIV align=left&gt;&lt;A href="http://www.itmfa.com/"&gt;ITMFA&lt;/A&gt;&lt;/I&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27050600-114615084463164082?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114615084463164082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114615084463164082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114615084463164082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114615084463164082'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/04/itmfa.html' title='ITMFA'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-27050600.post-114610133037702689</id><published>2006-04-26T21:28:00.000-04:00</published><updated>2006-04-26T21:28:50.380-04:00</updated><title type='text'>Scripting Eclipse with Jython and PyDev</title><content type='html'>&lt;!--StartFragment --&gt;&lt;P&gt;I joined the Eclipse &lt;A href="http://www.eclipse.org/dash/monkey-help.php?key=running"&gt;Monkey &lt;/A&gt;project &lt;A href="http://wiki.eclipse.org/index.php/DashTime"&gt;Dashtime &lt;/A&gt;the other day, and spend the hour talking to &lt;A href="http://en.wikipedia.org/wiki/Ward_Cunningham"&gt;Ward Cunningham&lt;/A&gt; (Wiki inventor)... very cool. &lt;/P&gt;&lt;P&gt;I had seen &lt;A href="http://www.eclipse.org/dash/monkey-help.php?key=running"&gt;Monkey &lt;/A&gt;on &lt;A href="http://wbeaton.blogspot.com/"&gt;Wayne Beaton's&lt;/A&gt; Eclipse when he talked at &lt;A href="http://nejug.org/"&gt;NEJUG&lt;/A&gt;/&lt;A href="http://www.bostonedge.org/"&gt;BostonEdge&lt;/A&gt;, and scripting sounded interesting. I hadn't even installed, and didn't expect to be the only caller!&lt;/P&gt;&lt;P&gt;We had a good discussion, my notes are &lt;A href="http://esnips.com/nsdoc/af46d3aa-9dd4-45b1-8378-60355061fb62"&gt;here&lt;/A&gt;. Apparently Rhino was selected because JavaScript is"nobody's favorite language" :)&lt;/P&gt;&lt;P&gt;Monkey is useful but doesn't yet have autocomplete or an interactive shell. I think that's needed to &lt;STRONG&gt;learn&lt;/STRONG&gt; the API's, and delve further into Eclipse plugins and SWT. &lt;A href="http://eclipse-shell.sourceforge.net/"&gt;EclipseShell &lt;/A&gt;is interesting, but it's not a straight interactive console like Python's, where you can &lt;A href="http://showmedo.com/videoPage?name=IntroductionToPythonObjectsUsingIPython2_JerolH"&gt;create and interact &lt;/A&gt;with objects. (Perhaps the &lt;A href="http://www.mozilla.org/rhino/shell.html"&gt;Rhino console&lt;/A&gt; can be hooked up)&lt;/P&gt;&lt;P&gt;I use &lt;A href="http://pydev.sourceforge.net/"&gt;PyDev &lt;/A&gt;for Python development, and even sprang for the &lt;A href="http://www.fabioz.com/pydev/"&gt;extensions&lt;/A&gt;, which allow an Interactive Console. I can fire up &lt;A href="http://www.jython.org/"&gt;Jython &lt;/A&gt;within Eclipse and then import and invoke Java objects-&lt;/P&gt;&lt;P&gt;&lt;IMG src="http://photos1.blogger.com/blogger/3503/0/320/pydev.png" border=0&gt;&lt;/P&gt;&lt;P&gt;However, something is wrong.. I want to get the the active window (the &lt;A href="http://homepage.mac.com/pmuellr/projects/eclipsemonkey-scriptloader/index.html"&gt;window global &lt;/A&gt;in Monkey), but it is coming back null: &lt;SPAN style="COLOR: rgb(0,200,125)"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BLOCKQUOTE style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;  &lt;P&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;window =   wb.getActiveWorkbenchWindow() print window &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN   style="FONT-FAMILY: Courier New"&gt;None&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Other API's work fine...&lt;/P&gt;&lt;SPAN style="COLOR: rgb(0,200,125)"&gt;&lt;BLOCKQUOTE style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;  &lt;P&gt;&lt;SPAN style="FONT-SIZE: 85%; FONT-FAMILY: Courier New"&gt;for vd in   wb.getViewRegistry().&lt;STRONG&gt;getViews&lt;/STRONG&gt;():&lt;BR&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;print   vd.&lt;STRONG&gt;getId&lt;/STRONG&gt;()&lt;BR&gt; &lt;/SPAN&gt;&lt;SPAN   style="FONT-SIZE: 85%; FONT-FAMILY: Courier New"&gt;byecycle.views.ByecycleView&lt;BR&gt;   com.kodeshare.search.ui.KodeSearchView   edu.mit.csail.relo.console.ConsoleView&lt;BR&gt; ...&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P dir=ltr&gt;There's more than one way to skin a cat--&lt;SPAN style="FONT-FAMILY: Courier New"&gt;getWorkbenchWindows() &lt;SPAN style="FONT-FAMILY: Times New Roman"&gt;works&lt;/SPAN&gt;:&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="COLOR: rgb(0,200,125)"&gt;&lt;BLOCKQUOTE style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;  &lt;P&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;wnds =   PlatformUI.getWorkbench().getWorkbenchWindows()&lt;BR&gt; len(wnds)&lt;BR&gt; &lt;/SPAN&gt;&lt;SPAN   style="FONT-FAMILY: Courier New"&gt;&lt;SPAN&gt;1&lt;BR&gt; &lt;/SPAN&gt;&lt;SPAN   style="COLOR: rgb(0,200,125)"&gt;window=wnds[0]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;SPAN style="COLOR: rgb(0,0,0)"&gt;Great! Let's try a HelloWorld.. &lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="COLOR: rgb(0,200,125)"&gt;&lt;SPAN style="COLOR: rgb(0,200,125)"&gt;&lt;BLOCKQUOTE style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;  &lt;P&gt;import org &lt;BR&gt;org.eclipse.jface.dialogs.MessageDialog.openInformation(   window.getShell(), Hello","World")&lt;BR&gt;&lt;SPAN   style="COLOR: rgb(255,0,0)"&gt;Traceback (innermost last): &lt;/SPAN&gt;&lt;SPAN   style="COLOR: rgb(255,0,0)"&gt;File "&amp;lt;console&amp;gt;", line 1, in ? &lt;/SPAN&gt;&lt;SPAN   style="COLOR: rgb(255,0,0)"&gt;org.eclipse.swt.SWTException: Invalid thread   access&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P dir=ltr&gt;&lt;SPAN style="COLOR: rgb(255,0,0)"&gt;&lt;SPAN style="FONT-SIZE: 100%; COLOR: rgb(0,0,0)"&gt;At least this has a &lt;EM&gt;reasonable explanation&lt;/EM&gt; (I'm on a worker thread). &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P dir=ltr&gt;&lt;SPAN style="COLOR: rgb(255,0,0)"&gt;&lt;SPAN style="COLOR: rgb(0,0,0)"&gt;&lt;SPAN style="FONT-SIZE: 100%"&gt;So, &lt;STRONG&gt;you can use Eclipse API's and objects interactively&lt;/STRONG&gt;. Excellent. Next, I would love for Autocomplete to work. &lt;/SPAN&gt;&lt;A href="http://www.fabioz.com/pydev/manual_adv_complnoctx.html"&gt;&lt;SPAN style="FONT-SIZE: 100%"&gt;Ctrl-Space &lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style="FONT-SIZE: 100%"&gt;doesn't work in the console. (Bug? I think so.. the console has the Jython nature now.)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P dir=ltr&gt;&lt;SPAN style="FONT-SIZE: 100%; COLOR: rgb(0,0,0)"&gt;For some wierd reason, the python &lt;STRONG&gt;dir&lt;/STRONG&gt;() function isn't working, returning an empty list even for a builtin class:&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="COLOR: rgb(0,200,125)"&gt;&lt;BLOCKQUOTE style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;  &lt;P&gt;&lt;SPAN style="FONT-FAMILY: Courier New"&gt;str = "Hello"&lt;BR&gt; dir(str)&lt;BR&gt;   &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN   style="COLOR: rgb(0,0,0); FONT-FAMILY: Courier New"&gt;[]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/SPAN&gt;&lt;P dir=ltr&gt;&lt;SPAN style="COLOR: rgb(255,0,0)"&gt;&lt;SPAN style="FONT-SIZE: 100%; COLOR: rgb(0,0,0)"&gt;Normally this would return a list of methods:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BLOCKQUOTE style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;  &lt;P dir=ltr&gt;&lt;SPAN   style="FONT-SIZE: 78%; FONT-FAMILY: Courier New"&gt;&lt;SPAN&gt;&amp;gt;&amp;gt;&amp;gt;   dir(str)&lt;BR&gt;&lt;/SPAN&gt; ['__add__', '__class__', '__contains__', '__delattr__',   '__doc__', '__eq__', '__ ge__', '__getattribute__', '__getitem__',   '__getnewargs__', '__getslice__', '__g t__', '__hash__', '__init__', '__le__',   '__len__', '__lt__', '__mod__', '__mul__ ', '__ne__', '__new__', '__reduce__',   '__reduce_ex__', '__repr__', '__rmod__', ' __rmul__', '__setattr__',   '__str__', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith',   'expandtabs', 'find', 'index', 'isalnum', 'isalpha', 'isdi git', 'islower',   'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lst rip',   'replace', 'rfind', 'rindex', 'rjust', 'rsplit', 'rstrip', 'split', 'split   lines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper',   'zfill ']&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P dir=ltr&gt;&lt;SPAN style="FONT-SIZE: 100%; COLOR: rgb(0,0,0)"&gt;So close.. hopefully pydev extensions can enable &lt;A href="http://www.fabioz.com/pydev/manual_adv_complnoctx.html"&gt;autocomplete &lt;/A&gt;on the console. That would make for a truly interactive exploration of the Eclipse environment.&lt;/SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/SPAN&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/27050600-114610133037702689?l=jeffwinkler.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeffwinkler.blogspot.com/feeds/114610133037702689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=27050600&amp;postID=114610133037702689' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114610133037702689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/27050600/posts/default/114610133037702689'/><link rel='alternate' type='text/html' href='http://jeffwinkler.blogspot.com/2006/04/scripting-eclipse-with-jyt_114610133037702689.html' title='Scripting Eclipse with Jython and PyDev'/><author><name>Jeff</name><uri>http://www.blogger.com/profile/05978018406554625914</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
