<?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-9464387</id><updated>2011-04-21T22:44:25.732-04:00</updated><title type='text'>Lucid Thought</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9464387.post-112753272762371137</id><published>2005-09-23T23:30:00.000-04:00</published><updated>2005-09-23T23:32:07.630-04:00</updated><title type='text'>Final Post</title><content type='html'>Well, this will be my final post on my Lucid Thought Blogger account.  I had so much fun blogging here that I wanted to launch my site.  Unfortunately, Blogger's tools don't take too kindly to importing posts on the fly so I've constructed my own blogging software.  I'm very excited to have semi-launched &lt;a href="http://www.elegant-solutions.org"&gt;Elegant-Solutions.org&lt;/a&gt; as my personal website.  Go check that out instead.  I'll try to keep it updated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-112753272762371137?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/112753272762371137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=112753272762371137' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/112753272762371137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/112753272762371137'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/09/final-post.html' title='Final Post'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-112191458647933089</id><published>2005-07-20T23:57:00.000-04:00</published><updated>2005-07-20T23:39:15.276-04:00</updated><title type='text'>Married and Loving It</title><content type='html'>Yeah, so it has been a long time since I've posted, but I've got a good reason this time -- &lt;a href="http://sarahejames.blogspot.com"&gt;Sarah&lt;/a&gt; and I just got married!  Woohoo!  After much time and planning, we're finally married!  That sentence makes it sound as though I did tons of work, when in actuality Sarah, her mom Linda, and stepdad Bob did 98% of everything and I merely did my job of not screwing up the 2% I was given.  At least, I don't think I did. :)&lt;br /&gt;&lt;br /&gt;Not only did Linda and Bob volunteer their time, but their family was also quite instrumental in helping us pull off such an event.  Her Aunts helped throw her a Bridal shower as well as put in their time to do decorations.  Finally, we even had the wonderful &lt;a href="http://www.justinrussell.com"&gt;Justin&lt;/a&gt; &lt;a href="http://flickr.com/photos/nightthree/"&gt;Russell&lt;/a&gt; do our photography free of charge with his uber-digital SLR beast camera!  And during the reception our wedding party helped out wherever they could.&lt;br /&gt;&lt;br /&gt;Even after all the great donations of time, effort and skill, we were overwhelmed with the presents received by our friends and family!  We both wondered what we did to deserve such great people around us.  Thanks go out to everyone who contributed!  We are really extremely grateful!!&lt;br /&gt;&lt;br /&gt;After the wedding, Sarah and I took a short mini-honeymoon over the weekend into Portland (and spilling over into NH and MA for a few hours).  Our entire goal was to relax and eat out.  We hit our favorite restaurants: &lt;a href="http://www.ontheborder.com"&gt;On the Border&lt;/a&gt;, &lt;a href="http://www.ihop.com"&gt;IHOP&lt;/a&gt;, and &lt;a href="http://www.crackerbarrel.com"&gt;Cracker Barrel&lt;/a&gt;.  On the way to the closest Cracker Barrel in Londonderry, NH, we hit up the closest &lt;a href="http://www.apple.com"&gt;Apple Store&lt;/a&gt; in nearby Salem, NH.  While there, I picked up a backpack for my Powerbook.&lt;br /&gt;&lt;br /&gt;To make a long story short, we have TONS of pictures from both the wedding as well as the honeymoon.  I've posted a few from the Apple Store on my &lt;a href="http://www.flickr.com/photos/lucidthought/"&gt;Flickr Account&lt;/a&gt; with tons more to come, I'm sure.  As soon as I can find that URL Justin gave me for the gallery of wedding photos, I'll post that as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-112191458647933089?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/112191458647933089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=112191458647933089' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/112191458647933089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/112191458647933089'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/07/married-and-loving-it.html' title='Married and Loving It'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-111800905948666959</id><published>2005-06-05T17:56:00.000-04:00</published><updated>2005-06-05T18:04:19.490-04:00</updated><title type='text'>Craft Part II: Requirements</title><content type='html'>I believe that there is only one condition needed to create a “good” product.  If the designer takes pride in their work (and therefore pays attention to detail) the resulting product will inevitably be good.  Attention to detail, then, is the path to good design.  Well, that sounds simple enough, right?  Actually, it is much harder than it seems.  Attention to detail is something that one must believe in with religious vigor.  It requires taking into account every possible scenario, angle, and element.  By this definition, it’s impossible.  The good news is that by striving for purity of design in one project, we will learn general methods that will translate to future projects.  The hard part is learning when to let to go.&lt;br /&gt;&lt;br /&gt;What about skill?  Don’t you need skill to create something well?  After all, the definition of craft is “an activity involving skill in making things by hand.”  It’s true, skill is a necessary trait.  In fact, one might quickly jump to the conclusion from the previous paragraph that to have craft, you must be good at everything.  In a nutshell, you’d have micromanagement.  Thankfully, this assessment of craft is wrong.  You don’t need to have every possible skill required to use craft, you just need to be able to pick people as teammates who are blessed with such skills.  Once you have those people, the job becomes easier.  You can trust in their judgement, for they know much more than you in each individual area.  The only necessary skill, then, is to have an eye for quality.  Whether it be quality in people, quality in design, or quality in craftsmanship.  You need to recognize good workers who take pride in what they do and have the same religious fervor that you do about making something well.  You need to recognize what needs improvement and what doesn’t.  You need to recognize craft.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-111800905948666959?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/111800905948666959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=111800905948666959' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/111800905948666959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/111800905948666959'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/06/craft-part-ii-requirements.html' title='Craft Part II: Requirements'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-111753864144662486</id><published>2005-05-31T07:23:00.000-04:00</published><updated>2005-05-31T07:24:01.450-04:00</updated><title type='text'>Craft Part I: Having it All</title><content type='html'>Before Steve Wozniak built the first Apple Computers, he was messing with transistors, diodes, and gates for electronics in his spare time.  He usually did these projects on his own for educational, experimental and personal experience.  He took pride in making his creations to have fewer parts, be well designed and efficient.  Even when he moved onto making commercial products to be consumed, he put time and effort into building things right.  Steve Wozniak is a self-described purist.&lt;br /&gt;What Steve calls a purist, I would describe in terms of craft; taking pride in one’s work.  In the commercial world, products need to be marketable, meet specifications, have technological features, be usable and attractive.  All of these things are nothing without craft.  It is the single most important influence upon design.  In fact, I will argue that if you can master craft in good design, all other elements will follow suit.  When you design something, if you put hard work, dedication and pride into it, you are putting stress on creating something “good”.  In this effort, you are also subconsciously taking into account all other elements.  Attention to detail and striving for quality is exactly what creates “good” products because they are being designed from the start with this intention.  It isn’t an effort to create something cheaper or faster, it is an effort to create something better.  Those may be byproducts of the original intent, but they needn’t be the focus.&lt;br /&gt;Professional developers often pose certain design elements in conflict when talking about what makes good design.  Do we make it pretty or usable? robust or simple?  What I have to ask is why we have to choose between one or the other.  In short, why can’t we have it all?&lt;br /&gt;Some of the best mathematicians in the world believe that a good formula or proof is beautiful.  This insinuates that beauty and technical merit are not separate entities, but rather, they interact with each other.  In fact, often by improving the usability of something, we are able to improve the aesthetics as well.&lt;br /&gt;Generally, usable designs are simple.  Look at the iPod -- very simple and very usable.  The transition from the 3G iPod to the 4G yielded a change in the user interface.  With the introduction of the 3G, Apple moved the buttons from the perimeter of the famous iPod wheel to just beneath the  screen.  The 4G iPod, however, repositioned the playback buttons by building them into the actual wheel interface.  The result was a much more intuitive, simple, design that you could feel in your pocket and very quickly obtain the control that you were looking for.  Performing this operation on the older model would require thumbing over 4 buttons of the same size and shape and counting each button as you move along to find the one you are looking for.  Not only that, but the improvement required less movement of the thumb to do the same amount of work.  This change made it more efficient for the user to operate.&lt;br /&gt;Even with these changes, Apple was able to upgrade the song capacity as well as the battery life.  A change in the interface didn’t negatively effect the technology.  But what about the design?  Arguably, the upgrade was actually more beautiful than the previous version.  What this story tells us is that aesthetics, technology, and usability are all inter-related.  The significance is that the relationship isn’t negative.  A positive change in one, does not require a negative change in another.  We &lt;i&gt;can&lt;/i&gt; have it all.&lt;br /&gt;&lt;br /&gt;What did Apple get right?  The company is developed on the culture of creating nice things.  They don't just want to in a casual sense, they &lt;i&gt;need&lt;/i&gt; to.  And the company thrives off of this desire.  They realize that a product isn't just the technical aspects, the design, or the usability -- it's the whole thing.  They push for excellence wherever they can.  It's this drive that is behind each and every one of their products.  This is what makes them the Cadillac of computing companies -- their craft.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-111753864144662486?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/111753864144662486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=111753864144662486' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/111753864144662486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/111753864144662486'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/05/craft-part-i-having-it-all.html' title='Craft Part I: Having it All'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-111753774268919828</id><published>2005-05-31T07:06:00.000-04:00</published><updated>2005-05-31T07:09:02.693-04:00</updated><title type='text'>Pieces of the Whole</title><content type='html'>I asked &lt;a href="http://sarahejames.blogspot.com"&gt;Sarah's&lt;/a&gt; advice last night regarding my blog and my paper.  Basically, I was stuck trying to decide whether or not to finish the paper, then make it available, or to go ahead and post snippets of the disjointed document as it is now and refine it into a more cohesive piece before putting it on the web in its entirety.  She argued for the latter and I'm following her advice.&lt;br /&gt;&lt;br /&gt;While we're on more personal details, I also think I should mention that I've bought the domain &lt;a href="http://www.elegant-solutions.org/"&gt;www.elegant-solutions.org&lt;/a&gt; (hosted by my employer, &lt;a href="http://www.sephone.com"&gt;Sephone&lt;/a&gt;) and am in the process of creating my personal and professional website.  It will house this blog, my portfolio, as well as current, new, and revisited projects.  I'm very excited about the whole thing and can't wait till I work out the snags I've hit so far.&lt;br /&gt;&lt;br /&gt;Anyway, without further ado, next is my first installment of Craft, an essay about pursuing quality.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-111753774268919828?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/111753774268919828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=111753774268919828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/111753774268919828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/111753774268919828'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/05/pieces-of-whole.html' title='Pieces of the Whole'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-111698188311824799</id><published>2005-05-24T20:50:00.000-04:00</published><updated>2005-05-24T22:33:25.080-04:00</updated><title type='text'>Project Management</title><content type='html'>At &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt;, they have developed a system now known as "&lt;a href="http://www.eightypercent.net/Archive/2005/04/15.html"&gt;20% Time&lt;/a&gt;".  Google engineers (though I'm not sure about the rest of their employees) are told to spend 80% of their time on assigned projects and 20% of their time on pet projects.  The thought behind this system is to both keep developers happy as well as foster innovation.  The idea is that if you let a bunch of really smart people tinker with technology and work together, they will undoubtedly come up with something cool.  I heard somewhere that it was a ratio that one of the founders of the company stumbled upon that seems to work best.  An example of a project that came out of this approach is &lt;a href="http://www.google.com/webhp?complete=1&amp;hl=en"&gt;Google Suggest&lt;/a&gt; which will suggest possible terms you might be looking for as you type in your query rather than having you wait for your search results to come back.  Very creative indeed!&lt;br /&gt;&lt;br /&gt;I've come to the conclusion through work experience at &lt;a href="http://www.sephone.com"&gt;Sephone&lt;/a&gt; and various talks with my fellow employees that "spec-ing" (pronounced speking) out a project might follow similar logic.  For instance, a project that is not well-planned from the start will without doubt lead to a poorly constructed result.  Without a clear vision for where the project is going how do you know what to build?  One can be assured that by pursuing a project in such a way one will encounter many bugs, cludges, and rework.  It is very rare that a project with little-to-no documentation will keep the end user be happy.  However, it is never a guarantee that a project which &lt;i&gt;is&lt;/i&gt; well-documented will be flawlessly executed as well.  It is also possible to over-plan.  This is where you spend a majority of your time imagining and planning a final result and not enough time actually building it.  The thinking, then, is that there is some magic ratio between time spent planning and time spent doing which will yield the maximum result.  Granted, not every project works this way, but I'd wager that the majority do.  Now all I have to do is find the number...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-111698188311824799?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/111698188311824799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=111698188311824799' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/111698188311824799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/111698188311824799'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/05/project-management.html' title='Project Management'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-111598318553922624</id><published>2005-05-13T07:09:00.000-04:00</published><updated>2005-05-13T07:19:45.543-04:00</updated><title type='text'>Today on Slashdot</title><content type='html'>So today, I stumbled across an article rarely seen on the pages of a very geeky website which I like to visit called &lt;a href="http://www.slashdot.org"&gt;Slashdot&lt;/a&gt;.  The page, for the uninitiated, usually has tech news and the like.  Today, however, there was an article on &lt;a href="http://developers.slashdot.org/article.pl?sid=05/05/12/2150231&amp;from=rss"&gt;Usability&lt;/a&gt; of all things!  The headline and excerpt were mainly about an organization called OpenUsability which was developed to help OpenSource programers with the usability of their applications.  Great!  That's something I've been meaning to do for a while, I'm glad to see I'm not the only one who is complaining.&lt;br /&gt;&lt;br /&gt;A quick visit to their &lt;a href="http://www.openusability.org"&gt;site&lt;/a&gt; revealed the downfall.  DESIGN!  The site was very usable with big fonts, clear distinction, etc, but it looked horrible.  I can't help but think about &lt;a href="http://www.jnd.org"&gt;Donald Norman&lt;/a&gt; and his book &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0465051359/donnormanA/"&gt;Emotional Design&lt;/a&gt; where he argues that things that are more attractive are actually more usable as well.  It's nice to see that someone is making the connection.&lt;br /&gt;&lt;br /&gt;Why is it that we pigeon-hole ourselves into a handful of categories when it comes to software?  We seem incredibly determined that software can only be usable &lt;i&gt;or&lt;/i&gt; look good &lt;i&gt;or&lt;/i&gt; be technologically sophisticated &lt;i&gt;or&lt;/i&gt; be useful.  It bugs me to no end.  I go into this a little more in-depth with my Craft paper, but essentially -- why can't we have it all?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-111598318553922624?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/111598318553922624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=111598318553922624' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/111598318553922624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/111598318553922624'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/05/today-on-slashdot.html' title='Today on Slashdot'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-111586608967763227</id><published>2005-05-11T22:48:00.000-04:00</published><updated>2005-05-12T23:07:38.766-04:00</updated><title type='text'>Whew, it's been a long time...</title><content type='html'>Well, I'm glad that's over with!  I just finished my undergraduate college education (graduate school eventually) and have moved into an apartment that I share with my loving fiancee, &lt;a href="http://sarahejames.blogspot.com"&gt;Sarah&lt;/a&gt;.  We're all moved in, (mostly) unpacked and I've been working full-time at &lt;a href="http://www.sephone.com"&gt;Sephone&lt;/a&gt;.  Currently, they've only promised me 30 hours a week, so I'm also going to be moonlighting at &lt;a href="http://www.umecut.maine.edu/"&gt;Cutler Health Center&lt;/a&gt; helping out where they need me in the tech arena.&lt;br /&gt;&lt;br /&gt;Outside of all this personal stuff, I've also been planning my new website, which I still have yet to name (please post suggestions as comments).  It will house this blog, all my projects (both finished and unfinished) as well as my resume and writings.  Hopefully it will provide a much better articulation of my work than my current &lt;a href="http://cordova.asap.um.maine.edu/~jamesm/portfolio"&gt;Portfolio&lt;/a&gt; page.  &lt;br /&gt;&lt;br /&gt;As for writing, I'm currently developing an idea that I've labeled "Craft".  To make a long story short, I'm asserting that "Craft" is the single most important element of design.  The paper I'm working on will go much more in-depth with industry examples, anecdotes and research.  It's working out well in my head right now, so here's hoping it works well on paper as well!&lt;br /&gt;&lt;br /&gt;Will post again soon... MUCH to do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-111586608967763227?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/111586608967763227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=111586608967763227' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/111586608967763227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/111586608967763227'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/05/whew-its-been-long-time.html' title='Whew, it&apos;s been a long time...'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-111452403237004152</id><published>2005-04-26T09:55:00.000-04:00</published><updated>2005-04-26T10:00:32.373-04:00</updated><title type='text'>Aesthetics vs Usability?</title><content type='html'>I was looking over one of my heros' (Donald Norman) &lt;a href="http://www.jnd.org"&gt;websites&lt;/a&gt; and found a link back to a blog that Doug introduced me to -- &lt;a href="http://www.ok-cancel.com"&gt;OK/Cancel&lt;/a&gt; which is right up my alley (dedicated to usability design).  In the post and comments, they discuss the role of Aesthetics and Usability in design.  I tried to add a comment, which I have attached below, but it didn't work.  This makes me think that we were all omitting another important piece of design -- technical.  The thing has to actually work as it says it does.  Anyway, without further ado:&lt;br /&gt;&lt;br /&gt;Link: &lt;a href="http://www.ok-cancel.com/archives/post/2003/10/iteajuicer_x.html"&gt;http://www.ok-cancel.com/archives/post/2003/10/iteajuicer_x.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;One thing that no one has brought up is the idea that aesthetics and usability are not mutually exclusive.  It isn't that you can have only one or the other, or even that you can have 50% usability and 50% design.  Why do they have to be in conflict?  Perhaps we, as designers, need to take up the challenge of making decisions on either front that merely compliment the other.  By taking the time to concentrate on such details, we inevitably come out with a better product in the end.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-111452403237004152?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/111452403237004152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=111452403237004152' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/111452403237004152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/111452403237004152'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/04/aesthetics-vs-usability.html' title='Aesthetics vs Usability?'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-111331620505812656</id><published>2005-04-12T10:29:00.000-04:00</published><updated>2005-04-12T10:34:47.223-04:00</updated><title type='text'>Interaction Programming</title><content type='html'>In my first Computer Science course at the University of Maine, my professor, Carol Roberts, said that 95% of programming is error checking.  One of my co-workers at &lt;a href="http://www.sephone.com"&gt;Sephone&lt;/a&gt;, Earl, used to work for Microsoft.  He said (and I'm paraphrasing) that Internet Explorer's code is so large because 80% of it is to make sure webpages with poor code render properly.  What staggering, albeit approximate, statistics!&lt;br /&gt;&lt;br /&gt;Let's face it -- programmers work hard.  They take classes on how to create the best algorithm for a certain problem, spend hours drawing node networks and doing mathematical induction proofs just to make something the tiniest bit faster.  They are constantly being asked to "add this feature" or "make that faster".  With all the work they have to do, why are we blaming them for something that isn't in their nature, their subject matter, or even their interest?  Why should they be given the extra burden of making sure that someone typed in an email address, filled out the appropriate fields, selected a file, has permission to perform that operation, is connected to the internet, is sure that they want to delete something, meant to rename that directory, has enough hard drive space, or can install that application?  Why is it that the same problems crop up in all kinds of applications?  In short, why is error checking 95% of software creation?&lt;br /&gt;&lt;br /&gt;The answer?  We have no true mechanism for programming interaction.  In HTML, when a developer creates a form, they have the option of choosing if they want a dropdown, a text box, a button, a radio button, etc.  They can change the size, the length, and even in some cases, the color (no thanks to Safari).  They can set up a pretty little form that has all the information they need.  They can put it on the webpage and people can send them information.  Easy as pie, right?&lt;br /&gt;&lt;br /&gt;Well, yes.  That will work as long as no fields are dependent on others, certain fields don't have to match others, formatting isn't a problem, nothing is required, and you'd like to have repeat entries when someone double-clicks the submit button.  In short, HTML forms weren't designed to be used in a real-world situation.  So what does the web developer do?  They code, test and run scripts everytime something is added, changed, looked at, breathed on or submitted.  They jump through hoops to make sure that everything goes smoothly.  And they are rewarded for their efforts with lack of browser support or clunky design.&lt;br /&gt;&lt;br /&gt;This problem isn't limited to HTML.  Let's take Director's Lingo language for example.  Try to send a form from Lingo to a PHP script.  Here are the steps - clicking a button triggers a script that goes through all of your form fields and grabs their info.  After this, that info is submitted to a web address.  As you repeat this frame in Director (ie, while the application is running), you have to keep making sure that it is done.  When it is, you have to look for an error that might be returned.  If there is one, you have to relay this error to the user.  If there isn't, you can continue with your processing.  And pity the programmer whose user hits the button twice -- they have to check for that as well.  All of this to send information between Director and PHP.  And that's in the most basic implementation with the simplest information.&lt;br /&gt;&lt;br /&gt;These languages / development systems weren't designed with their actual use in mind.  HTML designers didn't think -- hey, we should make some way to specify that a field only allow certain formatting since that will be needed all the time.  They weren't thinking that someone's grandmother would hit the submit button just to see what happened.&lt;br /&gt;&lt;br /&gt;We need an interaction layer between the user and the programmer.  Not only do we need someone to organize the information on screen or word the instructions just right so that it makes the most sense to a user.  We also have to understand how the user will manipulate the system.  What is the right response for a certain action?  What are the most likely mistakes?  How do we plan for them in advance?  These questions aren't application specific, they are system specific.  If I develop a system that is meant to handle files, I need to understand how a programmer will apply that system &lt;i&gt;at the level with which I have control&lt;/i&gt;.  I'm worried about my users (the programmers), but I also need to worry about their users (grandma) because that's why they are programming -- to accomplish a task.  Understanding and implementing the most popular, basic functions -- at my level of control -- means I've done my job right.&lt;br /&gt;&lt;br /&gt;Everything's an interface.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-111331620505812656?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/111331620505812656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=111331620505812656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/111331620505812656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/111331620505812656'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/04/interaction-programming.html' title='Interaction Programming'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-111098242675388508</id><published>2005-03-16T09:13:00.000-05:00</published><updated>2005-03-16T09:15:12.243-05:00</updated><title type='text'>Observing</title><content type='html'>I've been working on an important project for &lt;a href="http://www.sephone.com"&gt;Sephone&lt;/a&gt; for a while now (with recent help from co-worker and friend, &lt;a href="http://www.justinrussell.com"&gt;Justin Russell&lt;/a&gt;).  It's just about to the point where we are handing it over to people and letting them try it out -- beta testing with our closest clients.  Kelly, one of the partners, wanted to try out the software, so I gave her an account.  Since it was incomplete, there were only placeholders for help text that were filled by repeating "Instructions" over and over again.  Given this, she was a bit confused at first and needed some help getting started.  I walked her through the different areas of the application and explained exactly how things worked.  As she worked, I was able to pick up on a couple of places that might need some usability attention.  Eventually, I left her to it and made those small changes.&lt;br /&gt;&lt;br /&gt;As I've been reading more on usability and interface design, I have realized how important (and fun) it can be to observe the user.  Being hired as a web programmer, I don't often get the chance to sit down with a typical user and observe them, so it was a real treat to walk Kelly through the project.  However, I'm also finding myself disappointed.&lt;br /&gt;&lt;br /&gt;I'm not sure if Mike Scott told me this, or I read it somewhere else, but ideally software shouldn't need a manual.  It should be so easy to use that you don't need one.  Unfortunately, given the state of software this is almost NEVER the case.  And even if you made the most painstaking efforts to make software intuitive, there is no way to be sure that it will work for everyone in the world to use; hence the saying in usability "Know your user."&lt;br /&gt;&lt;br /&gt;With my project, this isn't necessarily the part that was disappointing me, though it sure could have used some help.  The worst part about the experience was the realization that because I put on several hats as a Sephone developer (coder, ui design, architecture, some graphics, etc), I was the person who had built the application (with guidance from my boss Scott of course).  When you build something, you are naturally inclined to be connected to it.  This was the case with my project.  I even had to stop myself from saying "Nope, that's not what you do." when she was trying to perform an action with the application.  With software, you should never say that!  It's the users' software, not mine.  They use it, I merely facilitate their needs.  If they aren't "using it properly" it's because I haven't designed it well enough.&lt;br /&gt;&lt;br /&gt;From my experience with UI literature thus far, it seems like the most important thing you can do is let go, sit back and observe.  See what the user is doing.  See what your software is *not* doing.  Find a way to bridge the gap.  This may seem easy, but if you are closely connected with a project, it becomes very difficult.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-111098242675388508?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/111098242675388508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=111098242675388508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/111098242675388508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/111098242675388508'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/03/observing.html' title='Observing'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-110980773949636129</id><published>2005-03-02T18:55:00.000-05:00</published><updated>2005-03-02T18:55:39.503-05:00</updated><title type='text'>Mimicking the Mind</title><content type='html'>As I mentioned in my &lt;a href="http://lucidthought.blogspot.com/2005/02/do-people-like-hierarchy.html"&gt;last post&lt;/a&gt;, I think it is time for a revolution in file organization / manipulation.  Currently, the hot topic is search, what with &lt;a href="http://desktop.google.com"&gt;Google Desktop&lt;/a&gt;, &lt;a href="http://www.apple.com/macosx/tiger/spotlight.html"&gt;Apple Spotlight&lt;/a&gt;, &lt;a href="http://www.gmail.com"&gt;Gmail&lt;/a&gt;, etc.  The motto here, as GMail so bluntly put it is, "Search, Don't Sort".  This is very revolutionary and interesting.  Search has its place.&lt;br /&gt;&lt;br /&gt;Having said that, there are a few downsides to search.  Mainly, if you rely completely on search, there is no way to browse a collection.  Ie, you can find what you want very quickly, but only if you know what you want.  If you are interested in discovering something new in an ordered fashion, then search is not your answer.  Secondly, it requires quite a bit of metadata.  In the case of &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt; and the web, this meta-data is pretty easy to come by.  It's all right there for you in plain text.  In the case of multimedia, however, it is much harder to obtain.  You have to have a text version of what is taking place in the video like commentary, translation, or &lt;a href="http://video.google.com/video_about.html"&gt;closed captioning&lt;/a&gt;.  Eventually, translation algorithms will help to quell this need, but this won't be for a while yet.&lt;br /&gt;&lt;br /&gt;As computers become more affordable and simpler to use, they become open to a wider audience.  This audience is not the early adopters of the &lt;a href="http://www.engadget.com"&gt;Engadget crowd&lt;/a&gt;.  These are the mothers, grandfathers, and crazy uncles of the world.  They keep photos of their grandchildren, email from distant cousins, geneology reports, etc.  They shouldn't be burdened with folders and the aging office metaphor for their personal information.  They shouldn't have to wade through hundreds of keywords or tags, they shouldn't have to relentlessly enter meta-data just to keep above water.  The paradigm that we choose should make sense to them, to children, to ourselves, even to geeks.  We are not built for the digital world.  As &lt;a href="http://www.jnd.org"&gt;Donald Norman&lt;/a&gt; would say, we are biological and analog, while computers are synthetic and digital.  Not only are the machines we use contrary to our very nature, but the software we design is just as unnatural -- &lt;i&gt;and we built it&lt;/i&gt;!  We're doing it to ourselves!&lt;br /&gt;&lt;br /&gt;My solution would be to organize our information in a more personal way; in a way we are all used to thinking -- by time and events.  Even when we fill semantic memory (the memory of facts), we remember it better when we associate it with the time and place in which we learned it.  We remember how we felt, what we were doing, how life was going -- those are strong, personal connections.  They are so strong, in fact, that they can bring even the silliest, least important information from the infinite depths of the mind and into working memory.  Why not build on this concept and allow people to organize their "files" the way they organize their thoughts and memories?  Does that not seem logical?  That's all life is, a series of events.  Events that are deep, personal and meaningful.  What better place to start?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110980773949636129?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110980773949636129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110980773949636129' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110980773949636129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110980773949636129'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/03/mimicking-mind.html' title='Mimicking the Mind'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-110934361911509654</id><published>2005-02-25T10:00:00.000-05:00</published><updated>2005-02-25T10:00:19.116-05:00</updated><title type='text'>Do People Like Hierarchy?</title><content type='html'>This is a question I routinely ask myself -- especially in my Cognitive Psychology course at &lt;a href="http://www.umaine.edu"&gt;UMO&lt;/a&gt;.  Often with computers, we are asked to put things in hierarchy via folders.  A file can only exist in one folder and one folder only.  A few classes ago, we talked about the root of this idea which might be linked to how humans cognitively process data.  I was flabbergasted, according to the theory we were studying, people do like hierarchy!  Well, as it turns out, the theory (Quillian's TLC Model) is based on a software program written to understand human language in 1969 -- a computer programmer helped found this idea.  Ugh!&lt;br /&gt;&lt;br /&gt;Well, in my opinion, programmers often tie in their programming experience with other ideas assuming that it is the best fit, since it is scientifically the best idea.  This is often the case with user-interfaces, and I am not immune to this disease.  It would seem as though the theory was mostly based on Object Oriented Programming (OOP), where the programmer sets up a hierarchy of "classes" and then uses those to control the properties of "subclasses".  This leads to very readable code that often makes lots of sense and is very clean.  Does this programming model necessarily reflect the way our mind works?  I don't think so.&lt;br /&gt;&lt;br /&gt;I've often thought of our minds as more like a relational database, where we make loose connections between nodes and there is no hierarchy.  We just look for things that relate to the item in question.  For instance, when being asked the question "Is a canary an animal?" we don't go from the canary node in our brains, up the hierarchy to the "bird" node, and then up again to the "animal" node.  We have a direct connection between canary and animal.  Just like we have a connection from canary to feathers.  It just makes sense to us.&lt;br /&gt;&lt;br /&gt;The same can be said for filestructures.  If humans don't really visualize or process data in hierarchy, and they only accept it because that is what they're used to, shouldn't we be coming up with a new concept of information organization?  One that is perhaps based more on the psychology of memory and how people *really* think rather than the basis of a computer program?&lt;br /&gt;&lt;br /&gt;More on this later.  Time for Psych class. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110934361911509654?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110934361911509654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110934361911509654' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110934361911509654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110934361911509654'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/02/do-people-like-hierarchy.html' title='Do People Like Hierarchy?'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9464387.post-110934290069205130</id><published>2005-02-25T09:48:00.000-05:00</published><updated>2005-02-25T09:48:20.693-05:00</updated><title type='text'>It's been too long!</title><content type='html'>Wow, it has been quite a long time since I've posted.  17 days?  Yikes!&lt;br /&gt;&lt;br /&gt;The reason for the long absence is mostly attributed to my schedule -- it has been crazy.  Most notably due to an overwhelming workload from classes, paid-work, non-paid work and did I mention classes??  Very rough.&lt;br /&gt;&lt;br /&gt;But, I digress because I always hate it when bloggers go on about their personal life.  So back to the good stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110934290069205130?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110934290069205130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110934290069205130' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110934290069205130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110934290069205130'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/02/its-been-too-long.html' title='It&apos;s been too long!'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-110787413921777254</id><published>2005-02-08T10:05:00.000-05:00</published><updated>2005-02-08T10:05:51.336-05:00</updated><title type='text'>How I want to work for Google...</title><content type='html'>Today, Google announced their new &lt;a href="http://maps.google.com"&gt;Google Maps&lt;/a&gt; online application.  Ugh, they make it so hard to endure the next year and a half of staying in Maine.  I guess the best that I can take from this is to strive to create something good with what I can work with.&lt;br /&gt;&lt;br /&gt;Yes, Google Maps (like it's previous sibling &lt;a href="http://www.gmail.com"&gt;Gmail&lt;/a&gt;) trounces in the face of a Mike Scott quote "DHTML is dead."  Unfortunately for Mike, DHTML is at least alive and breathing in Google.  I can understand the benefits of DHTML (and Flash) and I'm glad to see that Google has pushed the aging combination of Javascript and CSS to a new level.  Their infatuation with DHTML is also a good indication that they have somehow created a system of coding that alleviates quite a bit of code-branching to make their application cross-browser compliant.  Too bad it's probably considered &lt;b&gt;I&lt;/b&gt;ntellectual &lt;b&gt;P&lt;/b&gt;roperty and won't be available to outside web developers anytime soon, if ever.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Screenshot&lt;/b&gt;&lt;br /&gt;&lt;a href="http://cordova.asap.um.maine.edu/~jamesm/media/google_maps.jpg" target="_new"&gt;&lt;img src="http://cordova.asap.um.maine.edu/~jamesm/media/google_maps_thumb.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here's to hoping that I'll have a chance at becoming a &lt;a href="http://www.google.com/jobs/internship.html"&gt;Google intern&lt;/a&gt; when a year and a half rolls around, just in time for the move to Seattle.&lt;br /&gt;&lt;br /&gt;Begin daydream....... now!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110787413921777254?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110787413921777254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110787413921777254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110787413921777254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110787413921777254'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/02/how-i-want-to-work-for-google.html' title='How I want to work for Google...'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-110723527909405645</id><published>2005-02-01T01:20:00.000-05:00</published><updated>2005-02-01T00:22:51.636-05:00</updated><title type='text'>Scalable Interface Design</title><content type='html'>Often web developers run into the problem of making their website viewable on everything from a 640 x 480 old monitor to a 30" Cinema display.  You want to make effective use of the screen, but not clutter it.  This problem is compounded with the advent of wireless web enabled devices like cell phones, PDAs, etc.  In fact, those devices require that you seriously think about design on a more fundamental level than making tables with percentages for dimensions (referred to as liquid design).&lt;br /&gt;&lt;br /&gt;I will argue that true liquid design might mean something more.  For instance, making an interface that truly works on a cell phone screen as well as an HDTV requires not only scaling the physical attributes of the on-screen elements, but truly assessing what the vital pieces of information are and scaling back on the unnecessary ones.&lt;br /&gt;&lt;br /&gt;A good example of this technique is found in a text palette available to OS X developers and built by &lt;a href="http://www.apple.com"&gt;Apple&lt;/a&gt; (though I originally attributed its design to the &lt;a href="http://www.omnigroup.com"&gt;OmniGroup&lt;/a&gt; since I first noticed it in &lt;a href="http://www.omnigroup.com/applications/omnioutliner/"&gt;OmniOutliner&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;In developing their text palette, they realized that when you scale back the size of the palette, it should in turn scale back the displayed information.  At its largest setting, this palette includes 4 columns, a search field, 5 buttons, 3 dropdowns, 3 sliders and a rotation control.  At its smallest, it contains only 3 dropdowns.  In between it varies the information accordingly.  I've posted a movie to illustrate my point.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cordova.asap.um.maine.edu/~jamesm/media/Apple_text_palette.mov"&gt;Quicktime Video&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This principle, although very simple, is often overlooked when designing applications (or anything for that matter).  Web design (outside of Flash and Shockwave) particularly suffers from the lack of technology to easily implement such a framework.  To do it in Javascript requires some hoop jumping.  Does anyone else know of a way to produce such an effect &lt;i&gt;easily&lt;/i&gt; by using open web standards?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110723527909405645?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110723527909405645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110723527909405645' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110723527909405645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110723527909405645'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/02/scalable-interface-design.html' title='Scalable Interface Design'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9464387.post-110704834553808278</id><published>2005-01-29T20:22:00.000-05:00</published><updated>2005-01-29T20:27:13.180-05:00</updated><title type='text'>Ceiva wisens up to iPhoto</title><content type='html'>After several tech support phone calls tonight from my Mom, I talked to her (again) about switching to the Mac platform thanks to Apple's cheap Mac mini.  Her main concern at the time was the &lt;a href="http://www.ceiva.com/home/nf/ceiva_sender.jsp"&gt;Ceiva Sender&lt;/a&gt; application (which is used to send pictures to my grandmother's digital picture frame) not being available on &lt;a href="http://www.apple.com/macosx"&gt;OS X&lt;/a&gt;.  I just did a quick search to find that you can &lt;a href="http://www.ceiva.com/ccare/hlp/hp/help_ceiva_sender_mac.jsp"&gt;use iPhoto to mail your pictures to Ceiva&lt;/a&gt; and it will automatically send them to a frame.  Yay!  One step closer to an all Apple family! :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110704834553808278?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110704834553808278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110704834553808278' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110704834553808278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110704834553808278'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/01/ceiva-wisens-up-to-iphoto.html' title='Ceiva wisens up to iPhoto'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-110628130439650398</id><published>2005-01-20T23:21:00.000-05:00</published><updated>2005-01-20T23:21:44.396-05:00</updated><title type='text'>Interface Design</title><content type='html'>I've been looking over some books on interface design to determine the one that I will spend my precious money on.  Thanks to Amazon's "Look Inside the Book" feature, I'm able to browse a few pages from the comfort of my bed this evening.&lt;br /&gt;&lt;br /&gt;While looking over a few books, I keep thinking about how cool it would be to do this kind of stuff for a living and how to squeeze as much interface design work into my current &lt;a href="http://www.sephone.com"&gt;Sephone&lt;/a&gt; projects as I can.  Then it dawned on me what the best outlet for my passion for UI would be -- open source software.  OSS is notorious for bad user interface design.  If I ever have some free time perhaps I should try to join a team that is making software with the potential to be really cool, but needs some help to develop the features and design that its users crave.  I think the biggest pitfall in such an experience would be that a developer who is doing software design on their own time probably cares more about the benefit that the software gives to &lt;i&gt;them&lt;/i&gt; rather than to the users.  In which case, they don't want to hear what someone else wants for features if it doesn't apply to them.  But hey, with all the OSS being developed, there is bound to be a cool group of people willing to listen. :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110628130439650398?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110628130439650398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110628130439650398' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110628130439650398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110628130439650398'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/01/interface-design.html' title='Interface Design'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-110611149151389325</id><published>2005-01-19T01:11:00.000-05:00</published><updated>2005-01-19T00:12:13.396-05:00</updated><title type='text'>Packaging</title><content type='html'>A few days ago in my COS 350 class with Prof. Larry Latour, I started to realize (or re-discover) the power of packaging (or abstraction).  The class isn't on abstraction, which is the interesting part.  This class is on programming algorithms and is about correctness and efficiency (but primarily the latter).  The whole class my mind kept wandering to what Jon Ippolito,  another of my professors, used to call - "Worshipping the false God of efficiency."  Jon is a big fan of readable code.  He's not a coder by trade (specializing mostly in Javascript and DHTML), but more an advocate for open-standards, free intellectual property and the like.  To the tune of these subjects, he likes readable code because he wants to promote open-ness.  Ie, if code is more readable, the next person who works on it can rework it or repurpose it more easily.  Cryptic code often makes it too complicated to easily perform such tasks.  In the case of efficiency, Jon would say that readable code is more efficient in the long run because it would take less time to go back over it (which is often the case with code) and it is more likely that a person could re-use the code and therefore be more productive with their time.&lt;br /&gt;&lt;br /&gt;Since this class was on efficiency, it would be obvious why this argument would spring up in my head over and over again.  However (as often is the case) the alternative argument sprung up as well saying "Yes, but isn't an efficient algorithm a good thing too?  Doesn't it have merit?".  The answer is of course, yes, it has merit.  You may have one hell of a readable application that works as a proof of concept and can be reused, but would you want to reuse it if it takes forever to run?  This got me thinking that perhaps there is some middle ground where these two worlds can co-exist.  The answer was packaging, or abstraction.&lt;br /&gt;&lt;br /&gt;Let's say you have a compression algorithm that has some hardcore math in it and is written to be very, very efficient -- but the code is HORRIBLE to look at.  Why not put an abstraction layer over it and (as Larry has said before) "Let the algorithm guy handle that part."  It seems to me (probably through Larry's classes) that a program is broken up into layers.  Everything from the core binary and machine language layer that is so archaic only few people can actually understand it, to the surface layer that the user interacts with, and everything in between.  The reason it all works is through packaging.  The "algorithm guys" are used to handling complex code.  In fact, it might be easier for them to handle something like that rather than some of Jon's code because that's how they think.  So long as an appropriate package is put around the algorithm so that another programmer can use it and not give a damn about what it means, who cares if the code is hard to read for the "higher level" programmer?&lt;br /&gt;&lt;br /&gt;Other examples of this technique are employed in much of Apple's software design.  Let's choose two of them.  1) UNIX underpinnings to OS X -- Apple wrote a nice GUI to go over an existing OS that they trusted and was known for it's stability.  For one, it was a smart move to not re-invent the wheel.  For another, they are "leaving it to the algorithms guys" so to speak.  2) Application files (extension .app) are essentially packaging around a series of files that, when executed, use their contents.  The user doesn't have to know about these contents, so why show them to them?  (Microsoft - hint, hint).&lt;br /&gt;&lt;br /&gt;Appropriate packaging, whether through the interface for a user, a high-level programmer, or an algorithms guy, makes all the difference in the world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110611149151389325?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110611149151389325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110611149151389325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110611149151389325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110611149151389325'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/01/packaging.html' title='Packaging'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-110607898274176382</id><published>2005-01-18T15:07:00.000-05:00</published><updated>2005-01-18T15:10:52.176-05:00</updated><title type='text'>Google Accounts Update</title><content type='html'>OK, so it turned out that &lt;a href="http://www.google.com/accounts"&gt;Google Accounts&lt;/a&gt; was nothing more than a login system for things other than a Google Grid :(.&lt;br /&gt;&lt;br /&gt;It looks like something similar to [shudder]Passport[/shudder] but hopefully better done.  Google Accounts works with Google Groups, Google Answers, Google Alerts, etc.  Nothing earth-shattering here.  A guy can dream though, huh?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110607898274176382?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110607898274176382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110607898274176382' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110607898274176382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110607898274176382'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/01/google-accounts-update.html' title='Google Accounts Update'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-110593798105797864</id><published>2005-01-16T23:59:00.000-05:00</published><updated>2005-01-17T00:01:58.540-05:00</updated><title type='text'>Google Accounts?</title><content type='html'>Perhaps I've never noticed it, but just after logging out of my GMail account, I was taken to this screen.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.w0rdtothat.com/trid3nt/images/google_accounts.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;What is Google Accounts and why does it seem like there will be more services?  I am reminded of the Google Grid musings that have circulated the net.  Is this a sign of things to come?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110593798105797864?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110593798105797864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110593798105797864' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110593798105797864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110593798105797864'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/01/google-accounts.html' title='Google Accounts?'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-110593696607520692</id><published>2005-01-16T23:42:00.000-05:00</published><updated>2005-01-16T23:48:07.876-05:00</updated><title type='text'>Delicious Monster</title><content type='html'>I've spent a lot of time today surfing the web and stumbled upon the &lt;a href="http://www.wired.com/news/mac/0,2125,66276,00.html"&gt;Wired&lt;/a&gt; article (that I somehow missed) by way of &lt;a href="http://www.slashdot.org"&gt;/.&lt;/a&gt; about one of my favorite companies - &lt;a href="http://www.delicious-monster.com"&gt;Delicious Monster&lt;/a&gt;.  I especially took notice to the last few paragraphs of the article talking about their vision for Delicious Library.  In fact, it prompted me to send a response to them via e-mail.  I've decided to include both the paragraphs from the Wired article for context and the email that I sent to them.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Wired Article&lt;/b&gt;&lt;br /&gt;&lt;div style="text-indent: 25px; border: 1px solid #170C4C; font-family:Verdana; font-size: 12px; width: 80%; padding: 15px; background-color: #EEEEEE; margin-left: 30px;"&gt;"Version two, due later this year, will allow users to browse each other's libraries. It will be location-aware, letting users know who has what in their neighborhood or city.&lt;br /&gt;&lt;br /&gt;It will also work on local networks (using Apple Computer's Rendezvous), so people can browse their colleagues' or fellow students' collections, just as Apple's iTunes exposes other users' playlists."&lt;br /&gt;&lt;br /&gt;"The bigger picture is social idea sharing," he said. "Right now it's for obsessive-compulsive collectors, but we're going to flip a switch in the next version and it will turn into social software."&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;My E-Mail&lt;/b&gt;&lt;br /&gt;&lt;div style="text-indent: 25px; border: 1px solid #170C4C; font-family:Verdana; font-size: 12px; width: 80%; padding: 15px; background-color: #EEEEEE; margin-left: 30px;"&gt;&lt;br /&gt;Hello All,&lt;br /&gt;&lt;br /&gt;I just read the article from Wired about your company and the future of Delicious Library.  First off, I'd just like to say congratulations on your success and that I love your product!  The attention to detail and design is reminiscent of Apple's great products.  You deserve all that you have gotten!&lt;br /&gt;&lt;br /&gt;In the article, Wired points in the direction that you hope to take Delicious Library which got me quite excited.  It's great to see products that use the network that they are afforded by today's computers.  Too many applications just stick to the Desktop and rarely use the vast information of the web.  It's nice to see that you plan on taking something that was normally thought of as a static application and reworking it to use the power of the network.&lt;br /&gt;&lt;br /&gt;What I found most interesting was the thought that this new feature could help to remedy one of the primary criticisms of Delicious Library for those hardcore movie, book and game buffs that use your program.  From what I've read, people who have rare items want to have the information pulled from other sources than Amazon's web services. Giving them this option would decrease the amount of typing required of them.  However, for technical and business reasons, I can see why you haven't made that leap and (from what I can tell) you don't plan to.  My thought was that if you plan on having libraries viewable to others, you might as well take advantage of that feature and associate scanned (or typed in barcodes) with the information provided by others.  This way, when someone's rare Anime collection gets scanned in, they can help out the next person (who normally would have had to type it all in again) by doing it in the first place.&lt;br /&gt;&lt;br /&gt;Once again, it comes down to tweaking an existing structure to provide hidden power that normally might have been overlooked.&lt;br /&gt;&lt;br /&gt;I hope you guys aren't too tired from Macworld and are enjoying your work as much as I am!  Thanks again!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110593696607520692?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110593696607520692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110593696607520692' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110593696607520692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110593696607520692'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/01/delicious-monster.html' title='Delicious Monster'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-110563404684204859</id><published>2005-01-13T11:33:00.000-05:00</published><updated>2005-01-13T11:34:06.843-05:00</updated><title type='text'>Mac mini HTPC?</title><content type='html'>So the Mac mini came out two days ago and I wasn't that surprised.  I had kept up with the rumors all the way up to the actual Keynote and they were right on target for hardware, apps and the new iPod shuffle.  Ever since I heard about the sub $500 headless iMac, I got excited -- it sounded perfect for a media center or (home theater PC).  No keyboard, display, etc.  Just plug it into the TV and get going.  During the Keynote I was excited and wanted one, however the more I think about it, the more it sounds like I'm having to shoehorn the mini into a media center.  The new iPhoto will have the ability to organize videos, but that's where the advantages end.  Sure, it looks nice and would be very cool, but I'm kidding myself if I think it would be cheap and easy to do what I want.  There's no denying that it's possible to use it for this, but I'm sacrificing quite a bit to do it.&lt;br /&gt;&lt;br /&gt;For instance, it comes with no keyboard or mouse.  I'd want to buy the optional bluetooth and wireless keyboard/mouse combo.  That, unfortunately, adds another $150.  To make it even easier, I'd want wireless networking -- another $79.  So already, I'm up to around a 50% hike of the price.  Yikes!  So then, I want to use it with my regular TV (no high-tech digital TV here) so that is another $3-5 for a VGA -to- Composite/S-Video converter.  On top of all that, there is no TV-tuner built into the thing.  So my choices are to either download my TV shows from the combination of BitTorrent/RSS or to record them legally from my PC (which I have to sell to buy the Mac mini) and then transfer them to the mini.  Either way I look at it, no fun and expensive.&lt;br /&gt;&lt;br /&gt;Here's hoping that someone:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Writes software for Media management between Linux, Windows and OS X.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Comes out with an intuitive bluetooth remote for OS X&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;With the media management software, I can work with my friend H and keep all our media on either his machine or some other cheap Linux box and just stream it to the mini.  It *would* be possible to use a Bluetooth phone (if I had one) and &lt;a href="http://homepage.mac.com/jonassalling/Shareware/Clicker/"&gt;Salling Clicker&lt;/a&gt; to remotely control the mini, but that fizzles out since not only do I not have a Bluetooth phone, but I certainly wouldn't leave it at home for others to use the mini if I did have one!&lt;br /&gt;&lt;br /&gt;I'm looking at &lt;a href="http://www.newegg.com/app/ViewProductDesc.asp?description=82-103-601&amp;depa=0"&gt;other solutions&lt;/a&gt; in the meantime, but either way I slice it, it is going to cost money that I don't have or get rid of my PC which would, ideally, hold all my media. :(&lt;br /&gt;&lt;br /&gt;If you have any advice, feel free to post a comment or two!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110563404684204859?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110563404684204859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110563404684204859' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110563404684204859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110563404684204859'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2005/01/mac-mini-htpc.html' title='Mac mini HTPC?'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9464387.post-110452776120926238</id><published>2004-12-31T16:15:00.000-05:00</published><updated>2004-12-31T16:16:01.210-05:00</updated><title type='text'>Voice Control Systems</title><content type='html'>On the same subject of poor user interface, I thought it would be interesting to discuss the effect of voice control computers.  As technology advances, we will delve into new arenas for computer control and step away from the aging "Desktop Metaphor", keyboard and mouse.  Once option that is particularly interesting is the voice control system.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The Advantages&lt;/b&gt;&lt;br /&gt;New systems for control have the potential to create more a more natural method of communication with our computers (or computer-driven devices).  The study of &lt;a href="http://en.wikipedia.org/wiki/Haptics"&gt;haptics&lt;/a&gt; pertains to the development of physical interfaces based on touch.  In the realm of voice control, we start seeing computers less as mechanical devices and more as people.  OS X even has built in voices that will read text off the screen or give you vocal instructions.  You can choose between Vicki, Fred, Princess or Junior.  You can even set a word or phrase to say after which the computer begins listening.  For instance, saying "Computer", "Hey you", or even "Josh" will tell the computer that the next words you say are to be interpretted as instructions.  We are naming our computers.  I don't know about you, but my digital assistant of the future will be "Ike".&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The Disadvantages&lt;/b&gt;&lt;br /&gt;With these personality-driven systems comes a dark side, however.  I'll use the UMaine voice controlled phone directory as an example.  Here's how it works.  You dial the number from either on or off campus and are met with instructions.  "Welcome to the University of Maine.  To whom would you like to be connected?"  You then just say the name of the person you are trying to reach.  The system interprets what you said and matches it to a person (or department) in its directory.  Saying "Erich Bensheimer" is accepted and the reply is - "Please hold while I transfer you to Erich Bensheimer."  In the event that it has several people with the same name, it tells you so and asks which you are interested in and names the places where this person lives as well as whether they are a student, faculty, etc.  Well, that seems to work well doesn't it?  The problem occurs when a name doesn't match properly.  I have a friend named Fana AkereleAle.  Needless to say the voice system has trouble with this name.  When you say a name that it can't match, the system responds, "I'm sorry, I did not understand.  Please say the name of the person or department that you would like to be connected to."  I say the name again.  Response - "I'm sorry, I still did not understand.  Please say the name of the person or department that you would like to be connected to."  It gets very irritating, very quickly.  With an error message that pops up on a screen of my computer, I click OK and it's gone.  Sure, if there is a beep or warning "blip" it gets more irritating (or at the worst those stupid duck sounds from OS 9... YUCK).  Talking to the computer is much worse, however.  Since we've attributed human characteristics to a computer, and start talking to a computer, whether we like it or not, we feel like we're talking to a difficult human.  We get irritated because this person just isn't understanding us.  You can only spell it out so much and yet, the computer will continue to be baffled at the simplest of instructions.  Although the second error response from the computer included the word "still" (ie, "I &lt;i&gt;still&lt;/i&gt; did not understand"), the rest of the message was exactly the same.  This frustrates us even more.  It's like if you asked someone "Do you have a watch?" and they said "I don't understand what you mean."  So you ask them in a different way, "What time is it?" and they say again "I don't understand what you mean."  No matter what you say, they respond this way.  The good news is that people don't normally act this way.  Eventually the person will either understand you or react differently by storming off.  The repetetiveness of the response is what is most infuriating.  It's almost as if the person (or computer) is trying to be a jerk or is toying with you.  No matter how many times you say the name of the person that it doesn't understand, you are given this error message over and over again.  The system was not programmed to respond differently.  For instance, if the fourth time it didn't understand it said "I'm sorry, but I still didn't understand.  I am now transferring you to a human operator who might be of more assistance.", we would be more forgiving.  Met with the continued brick wall of non-communication however can be more than we can stand.&lt;br /&gt;&lt;br /&gt;Don't get me wrong, I love the idea of escaping the traditional means of computer operation and look forward to alternative methods, but we have to realize that there is no holy grail of interface design.  However, we can get close as long as we truly understand the implications of these alternatives and work with their strengths as well as their weaknesses.&lt;br /&gt;&lt;br /&gt;Happy New Year everyone!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110452776120926238?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110452776120926238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110452776120926238' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110452776120926238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110452776120926238'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2004/12/voice-control-systems.html' title='Voice Control Systems'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9464387.post-110437510964465636</id><published>2004-12-29T21:47:00.000-05:00</published><updated>2004-12-29T21:51:49.643-05:00</updated><title type='text'>Courteous Computers (contd)</title><content type='html'>&lt;a href="http://lucidthought.blogspot.com/2004/12/courteous-computers.html"&gt;Previously&lt;/a&gt;, I've discussed the idea of courteous computers and how they would work.  I have recently stumbled upon an excerpt from an interface book I hope to buy in the future thanks to &lt;a href="http://www.amazon.com"&gt;Amazon.com&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0764526413/qid=1104372297/sr=8-1/ref=pd_csp_1/102-5288648-7541706?v=glance&amp;s=books&amp;n=507846"&gt;About Face 2.0&lt;/a&gt;, besides having a stupid title, had quite a few good ideas in it -- I, of course, only know this thanks to the "Look Inside" genie, but hey...&lt;br /&gt;&lt;br /&gt;Here's one of my favorite passages in the first two pages! :)&lt;br /&gt;&lt;br /&gt;&lt;div style="text-indent: 25px; border: 1px solid #170C4C; font-family:Verdana; font-size: 12px; width: 80%; padding: 15px; background-color: #EEEEEE; margin-left: 30px;"&gt;"Software is often rude to the user.  It blames the user for making mistakes that are not the user's fault, or should not be.  Error message boxes [...] pop up like weeds  announcing that the user has failed yet again.  These messages also demand that the user acknowledge his failure by agreeing: OK."&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I especially love the idea of that last line where the user must "acknowledge his failure by agreeing".  Alan Cooper (the author) brings up such wonderful things that I completely understand once they're said, but haven't recognized in my own experience, however, I hope that in the book he offers suggestions to fix the problems that he points out.  I'll definitely be purchasing this book.... eventually.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110437510964465636?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110437510964465636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110437510964465636' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110437510964465636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110437510964465636'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2004/12/courteous-computers-contd.html' title='Courteous Computers (contd)'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-110360491974180796</id><published>2004-12-20T23:55:00.000-05:00</published><updated>2004-12-20T23:55:19.740-05:00</updated><title type='text'>Where I've been, what I've been doing.</title><content type='html'>Hello all, sorry for the long silence.  As soon as I was back on my feet it was time for finals and holiday festivities.  I finished my COS final on Friday and am happy to report that I think I did pretty well.  Then it was time to head to Fairfield (Sarah's home) for a holiday get-together.  The family was way too generous with their presents for me, especially since I'm only a member on the out-skirts.  I'm very greatful for their thoughtfulness, though!&lt;br /&gt;&lt;br /&gt;Today I went to do a presentation to the web class at Ellsworth High School for one of my old teachers.  She wanted some "tags" to help her and her students spruce up their sites, but was hoping for the end result to be like PHP or Flash.  I gave an introduction to how those technologies worked and led them into a small bit of CSS.  It was unfortunate to let them down (ie, Flash and PHP are a lot harder than a quick demo), but I think they have a better understanding of web technologies now.&lt;br /&gt;&lt;br /&gt;So, now onto more interesting things.  You see, I've got a PC (sad to say it's not a G5, but hey, it plays some games..).  I've outfitted it with a TV tuner card for recording my favorite shows -- &lt;a href="http://www.nbc.com/Scrubs"&gt;Scrubs&lt;/a&gt; and &lt;a href="http://www.comedycentral.com/tv_shows/thedailyshowwithjonstewart/"&gt;The Daily Show&lt;/a&gt;.  It's a nice legal, alternative to filesharing with BitTorrent which has gotten me in trouble before.  Anyway, more to the point.  So when I record these shows, I like to go back to them and cut out the commercials, then encode them into Xvid format for a smaller file size.  I used to have a seperate keyboard and mouse for my PC as my laptop, but that was just so cumbersome, so I looked for another solution.  &lt;a href="http://www.tightvnc.org"&gt;Tight VNC&lt;/a&gt; was a nice solution, but not fast enough and didn't have the ability to show me frames from captured video.  Ie, it pretty much was stuck to the desktop.&lt;br /&gt;&lt;br /&gt;My friend Jasper pointed me to another solution, Windows Remote Desktop which just happens to have &lt;a href="http://www.microsoft.com/mac/otherproducts/otherproducts.aspx?pid=remotedesktopclient"&gt;an OS X client&lt;/a&gt;.  This worked a little bit faster and has the ability to display frames from compressed video, not to mention play audio, mount local drives, etc.  It was quite handy, even for a Microsoft product!  Unfortunately, it was still too slow for the commercial cutting abilities of &lt;a href="http://www.virtualdub.org"&gt;Virtual Dub&lt;/a&gt; (the single-best app I've found to do this sort of thing).  So I started rethinking my connection method.&lt;br /&gt;&lt;br /&gt;At the time, I was using my wireless in the Powerbook to connect to one of my roommate's wireless AP, then to the net which then came back and connected to the PC sitting not but a foot away.  Needless to say there was room for speed improvement.  For quite a while, I was debating the reinstallation of my router to put these two computers on the same network and hopefully increase the speed to 100mbs.  The reason I waited so long to do that was because of the excess cables and the pain of having to open ports and do port forwarding on the router to let myself into my PC's FTP server as well as the Remote Desktop.  I then started thinking that perhaps the best option was to use the second of my two Ethernet ports on my PC and run a crossover.  Unfortunately, I was mistaken and my board only has one Ethernet port.  Since I didn't want to take the PC offline, that was a negatory.  What I did stumble on, however, in Network Places was the 1394 Connection.  After a little research, I figured out how to connect the Powerbook (running OS X) to the PC (running Windows XP Pro) via a firewire network connection at 400 mbs (even better than the router).&lt;br /&gt;&lt;br /&gt;Right now I'm using OS X's Internet sharing preference to share the net from my Airport to the PC via the firewire connection.  The real reason for this connection is to get the Powerbook to hand the desktop an IP so I can get them to work together.  The original plan for static IPs didn't seem to work, but this one works like a charm!  I was very happy with the way that OS X and Windows played together on this one!  Thanks to all those geniuses who figured that someone, some day, might need this ability!  I have been very happy with the results!  No KVM, router, excess cords, etc.  Just simple (the way I like it).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110360491974180796?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110360491974180796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110360491974180796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110360491974180796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110360491974180796'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2004/12/where-ive-been-what-ive-been-doing.html' title='Where I&apos;ve been, what I&apos;ve been doing.'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-110308216128802377</id><published>2004-12-14T22:42:00.000-05:00</published><updated>2004-12-14T22:42:41.286-05:00</updated><title type='text'>Sick as a dog...</title><content type='html'>I thought I'd make a short post tonight regarding my recent lack of posting.  I've been quite sick for the last two days.  I've barely had enough energy to check my e-mail and whatnot.  I've even had to take a few days off from Sephone, which I don't have to tell you (but I will) really sucks when it comes to holiday spending money!  I'm not sure if I will have enough money to do my part in purchasing the wedding rings for Christmas.  (Editor's note: Sarah, my fiancee and I are saving as much money as we can to pay for our wedding in July '05.  We are buying the wedding rings for each other for Christmas and storing them away until the big day.)&lt;br /&gt;&lt;br /&gt;Anyway, this is just a note to say that I'm not dead (unlike Cole Torrey, Spidawg and River Pheonix - inside joke), and I haven't forgotten about the blog.  Once finals are over, I'll make sure the next post is good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110308216128802377?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110308216128802377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110308216128802377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110308216128802377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110308216128802377'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2004/12/sick-as-dog.html' title='Sick as a dog...'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-110274332766772317</id><published>2004-12-11T01:35:00.000-05:00</published><updated>2004-12-11T00:36:25.666-05:00</updated><title type='text'>How project management is like inheritance.</title><content type='html'>So, I've been working at &lt;a href="http://www.sephone.com"&gt;Sephone Internet Solutions&lt;/a&gt; for about two months now and gained some valuable experience in my time there.&lt;br /&gt;&lt;br /&gt;My most recent project was for the &lt;a href="http://www.mainetechnology.com"&gt;Maine Technology Institute&lt;/a&gt;.  I was given the task of incorporating two separate pieces of previously built projects into one.  After looking over the code and database structure, I realized that there might be a better, more clean construction of the previous method that was being used.  I laid out this plan and began to execute it.  I should probably mention here that the code I was beginning with worked and worked pretty well, as did the database.  I saw potential in the data structure, in particular and wanted to change it.  Unfortunately, these changes that were supposed to make things simpler had quite the opposite effect.  The worst part is that I knew better.  I blindly pursued this objective and found pitfall after pitfall.  Eventually, after much time had already been wasted, I was able to convince myself that it would actually be easier to get rid of all the changes I was making and start again.  The more I worked on the project after this point, the more I was glad that I had made this decision.  Even the simplest change in a database (like changing a table name from "contacts" to "contact") was horrific.  There was all this existing code that was now broken from each change.  I had to trace my way through the entire system looking for each discontinuity and fix it.  Each time I thought I'd almost had one down, I got distracted by another.  The result was a downward spiral of productivity.  I was fixing something that wasn't necessarily broken.&lt;br /&gt;&lt;br /&gt;How is this like inheritance?  Well, inheriting a class is like inheriting a code base.  The parent class has a set of functions and variables.  It expects to receive instructions and return answers in a particular manner.  If you alter this manner, you have to alter the class.  One of the ideas behind encapsulation is that once you've created a parent class, it doesn't need to be touched.  All changes are made through the child class which inherits from the parent.  When you inherit a code base, there is already a structure there.  Changing that structure is an extremely intensive job and gets exponentially more intensive as the project scales.  Why would you write a subclass that required changes to the initial parent class that it inherited from?  You shouldn't!  In the same manner, you shouldn't go changing previous code / data structure unless absolutely necessary.  &lt;br /&gt;&lt;br /&gt;From now on, I will abide by the rule that an "inherited code base" is like a class marked &lt;i&gt;final&lt;/i&gt; -- don't touch it.  In the event that your task is to re-create or improve upon a given code base and the complexity and time to be invested is understood by all parties, go ahead and get cracking on that class.  Until then, hold your tongue and mark one up to maturity.  It takes just as much intelligence to realize when not to "fix" something as it does to know how to fix it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110274332766772317?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110274332766772317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110274332766772317' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110274332766772317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110274332766772317'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2004/12/how-project-management-is-like.html' title='How project management is like inheritance.'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-110256625695028626</id><published>2004-12-08T23:24:00.000-05:00</published><updated>2004-12-08T23:24:16.950-05:00</updated><title type='text'>Courteous Computers</title><content type='html'>I'd like to refer back to my &lt;a href="http://lucidthought.blogspot.com/2004/12/concept-context-sensitivity.html"&gt;previous post&lt;/a&gt; about Context Sensitive devices.  Although I touched on it a little in the text as well as a comment I made, I thought this topic to merit its own seperate post.&lt;br /&gt;&lt;br /&gt;Most people don't like computers.  Sure, they like what computers &lt;i&gt;can&lt;/i&gt; do for them.  There's no denying that.  They don't, in general, like interacting with computers.  As a software / interface designer, it's my job to ask why and how to fix it.  From general experience and what I've read, the reason why people don't like it is because the computer often does something that the user doesn't expect.  This can be frustrating.  Let's say you're working on a paper and all of a sudden your computer slows to a crawl - your anti-virus scan has kicked in.  Your looking around, trying to minimize windows to get to the one you want, all the while enduring the painful agony of slow-response times.  Eventually, you get to the virus program and pause it (or worse, turn it off).  You finally get back to the paper, only to have forgotten what you were thinking.  This one instance has caused you quite a bit of grief and time.  Was it necessary?&lt;br /&gt;&lt;br /&gt;What if the computer had issued a noticeable, yet un-intrusive, message box.  Not the kind that pops up in the middle of your screen, but rather the kind that fades in from the side.  Better yet, what if the message box appeared only after you had stopped typing for a few seconds (an implicit suggestion that you are available for such a message).  This box had a question in it - "Would you like to run your scheduled anti-virus scan now?"  Your options are "Yes, Snooze (10 minutes) and Cancel Scan".&lt;br /&gt;&lt;br /&gt;The computer is practicing some etiquette here.  It doesn't just start doing something without your permission, possibly interrupting what you are working on.  Instead, it waits courteously.  If you are not around, or have not responded within a minute, it will then begin the scan automatically.  If you are around, chances are that you will answer the computer's question within the alotted time.  If you choose to Snooze the scan, you merely delay it, not turn it off or pause it indefinitely.&lt;br /&gt;&lt;br /&gt;This is just one example of how rude computers are and how much we just accept it (or resent it).  If you can think of another example where this type of courteous approach is helpful, please post a comment below.  I'd love to hear it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110256625695028626?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110256625695028626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110256625695028626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110256625695028626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110256625695028626'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2004/12/courteous-computers.html' title='Courteous Computers'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-110247703300939701</id><published>2004-12-07T22:36:00.000-05:00</published><updated>2004-12-07T22:40:15.806-05:00</updated><title type='text'>Concept: Context Sensitivity</title><content type='html'>As I stated &lt;a href="http://lucidthought.blogspot.com/2004/12/concept-seamless-computing.html"&gt;before&lt;/a&gt;, the ability for computers, electronic devices and software to be sensitive to a given context is extremely valuable.  When combined with the concept of seamless computing, it's value increases even more.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Let's try an example:&lt;/b&gt;&lt;br /&gt;I'm in my car with phone in tow and (thanks to seamless computing) my entire schedule for the year resides on this device.  By the time I've sat down in the driver's seat, my phone has told my computer that, according to my schedule, I am most likely headed to the Bangor Hoyt's Cinema.  My GPS unit then asks if I would like directions to the cinema.  If so, it begins tracing the route to my destination as I drive.  I've now arrived early to the movie only to find that it is sold out.  Bummer, guess I should have ordered the tickets ahead of time.  Ah, but what's this?  There is another movie showing 20 minutes later that I've been dying to see.  I alert my phone that I've changed plans.  It immediately leaves text messages on each of the other attendee's phones to let them know.  Once my friends have arrived, we walk into the theater -- the phone responds by automatically going into vibrate mode since it is aware of my current surroundings.  After the movie, it's time for a bite to eat.  No one is familiar with our immediate surroundings.  We ask the GPS to give us an overlay of the nearby restaurants complete with recommendations by friends we have manually entered and trust.  The nearest and best restaurant is selected, the GPS responds by giving us directions.&lt;br /&gt;&lt;br /&gt;The overlying concept of this description is context sensitivity.  Software and devices are no longer dumb, but helpful.  The phone turned itself off because understood how location and behavior are linked.  It messaged my friends because it understood common courtesy.  The phone was programmed to understand social contexts.  The car GPS unit understands the meaning of time and its impact on events and messages.  It also understands location and that when I say, "What is the best restaurant around?" I mean, "What is the nearest restaurant that I might like because my trusted friends liked it?"  Mobile computing already exists.  It works with PDAs, smartphones, and laptops.  The technology that we own, however, is not imbued with these abilities... not yet anyway.&lt;br /&gt;&lt;br /&gt;I am certainly not the first to point out such scenarios.  The cell phone industry is paying attention to this trend and they are investing heavily in it.  They must not get lost in the glitter of it all and push new features on their users, however.  The cellphone is made to reflect the user's need, not the other way around.  How do we blend the abilities of our mobile, connected technology with our mobile, connected lives without burdening them?  How do we make technology courteous, not annoying or demanding? This may be the most difficult challenge of them all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110247703300939701?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110247703300939701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110247703300939701' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110247703300939701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110247703300939701'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2004/12/concept-context-sensitivity.html' title='Concept: Context Sensitivity'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9464387.post-110239465780417307</id><published>2004-12-06T23:44:00.000-05:00</published><updated>2004-12-06T23:44:17.806-05:00</updated><title type='text'>Concept: Seamless Computing</title><content type='html'>So a while ago, Bill Gates offered Microsoft's dream of &lt;a href="http://www.hollywoodreporter.com/thr/new_media/article_display.jsp?vnu_content_id=2065485"&gt;Seamless Computing&lt;/a&gt;.  What I think the mogul got wrong was the concentration on audio and video.  [Now, from the start, I should mention that I'm an Apple guy; the examples I'm about to use are going to be Apple based, but there is no reason why Windows couldn't use the same technology.]&lt;br /&gt;&lt;br /&gt;The center-piece of their vision is Microsoft Media Center.  While this is a legitimate starting point, I would wager that the user would be better served through other means.  My concept of seamless computing looks like this:&lt;br /&gt;&lt;br /&gt;I've got two computers, a desktop and a laptop.  Right now I can use the laptop to remotely connect to the desktop a la &lt;a href="http://en.wikipedia.org/wiki/Thin_client"&gt;thin client&lt;/a&gt;.  But doing this means that my ability to use the desktop machine is hindered by the speed of my connection (or even availability of a connection).  Why not use powerful syncing technology to make these machines symbiant?  Using Apple's &lt;a href="http://www.apple.com/macosx/features/rendezvous/"&gt;Rendezvous&lt;/a&gt; technology (or ZeroConf for other folks) would allow the computers to auto-discover each other on a wireless network.  All I'd have to do is walk up next to my desktop with my notebook in hand.  The computers get to talking and start synching up with the latest changes on either machine.  For the most part, these updates will be complete by the time I can sit down in my chair and turn on my monitor.  It's like I was never away.  As I work on the desktop and the laptop is charging, my work is being updated between the two machines.  Time for class -- I get up with my laptop and when I open it up during a lecture, the bookmarks I've created are available.&lt;br /&gt;&lt;br /&gt;This is easy, so let's take it a step further.  What if I have a cell phone.  Any of my contacts in &lt;a href="http://www.apple.com/macosx/features/addressbook/"&gt;Address Book&lt;/a&gt; on OS X should be immediately available on my phone (and more importantly, vice versa).  Now, I won't want a complete copy of every app from the desktop/laptop on my phone, but I will want my email.  Discretion is important.  If I was lucky enough to have GPS navigation in my car, it would be important to have certain locations stored there as well as the corresponding events from &lt;a href="http://www.apple.com/ical/"&gt;iCal&lt;/a&gt;, etc.  This is seamless computing.&lt;br /&gt;&lt;br /&gt;Sure, multimedia is there too.  But the ability to have available my Information for Life is more important.  The ability to aid communication is more important.  In general, Apple has been better at managing this information than Microsoft.&lt;br /&gt;&lt;br /&gt;Another important aspect I will cover next time that was overlooked by Mr. Gates is making hardware and software that is context sensitive -- not just in the sense of how information should scale to different devices, but how it should respond to the context of a situation in space and time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110239465780417307?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110239465780417307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110239465780417307' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110239465780417307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110239465780417307'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2004/12/concept-seamless-computing.html' title='Concept: Seamless Computing'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-110231003064025368</id><published>2004-12-05T13:13:00.000-05:00</published><updated>2004-12-06T00:18:23.573-05:00</updated><title type='text'>Tog's Ten Most Wanted Design "Bugs"</title><content type='html'>I've been meaning to catch up on this article since I saw it on &lt;a href="http://www.slashdot.org"&gt;/.&lt;/a&gt; a while ago.  It was written by Bruce Tognazzini a former Apple employee who began their in-house Human Interface Group and is a &lt;a href="http://asktog.com/tog.html"&gt;self-described&lt;/a&gt; &lt;i&gt;Interface Evangelist&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;I can't say that I disagree with the term.  He has a &lt;b&gt;lot&lt;/b&gt; of good ideas.  Most notably, he has written an article called &lt;a href="http://asktog.com/columns/044top10docksucks.html"&gt;Top Nine Reasons Why The Dock Sucks&lt;/a&gt;.  The one I'm talking about in this post, however, is his list of &lt;a href="http://asktog.com/Bughouse/10MostPersistentBugs.html"&gt;10 Most Persistent Design Bugs&lt;/a&gt;, which in my opion is a confusing title.&lt;br /&gt;&lt;br /&gt;He doesn't really address this in the article, but I think the word "bug" needs a bit of clarification.  I don't really think of the things on his list (including The Macintosh Dock) to be bugs.  If there is anything that I've learned in COS 221 with Larry Latour here at the University of Maine, it's this -- there are design choices.  One can argue about the quality of a choice, but a bug is more of a definite.  If the software is literally not working and breaks at a certain point, perhaps issuing a warning, or whatever -- that is a bug.  The Macintosh Dock isn't a bug, it's a design choice.  Apple decided that the Dock was the best app launching mechanism and went with it.  That's all.&lt;br /&gt;&lt;br /&gt;Having said that, I think Tog makes some good critique on the Dock, especially in terms of efficiency.  His argument is that a power user will have too many items on the dock to make it effective.  Sure, there is the zooming effect when you mouse-over an icon on the dock, but if you have so many that they are bite-size, you can't really see what you are looking for.  So you end up scrubbing back and forth over the dock looking for a certain application.  Although this is only a small amount of time, it adds up.  He offers &lt;a href="http://www.dragthing.com"&gt;DragThing&lt;/a&gt;, a launching app for OS X, as a replacement for afflicted users.&lt;br /&gt;&lt;br /&gt;I downloaded DragThing given the great review and was relatively impressed.  It seemed to have categorization down pretty well and offered other features.  I ended up not using it for a few reasons, but one of which was that I didn't want to have to categorize all my stuff into some kind of hierarchy.&lt;br /&gt;&lt;br /&gt;The best solution, in my opinion, is &lt;a href="http://quicksilver.blacktree.com/"&gt;Quicksilver&lt;/a&gt;.  This app is SO easy to use and DRAMATICALLY changed the way I use a computer.  Essentially, you hit Cmd+Space (which are right next to each other on the keyboard) and start typing the application that you want to use.  Quicksilver has already indexed your folders, apps, etc and so it starts &lt;b&gt;rapidly&lt;/b&gt; filtering its list.  What's at the top is your application.  Not only is this method extremely effective and fast, but the application learns what you like.  So, for instance, if I type, "NetNewsWire" a few times, it knows that I use that application quite a bit.  So, it starts to lessen the amount of typing I have to do.  Now, when I just hit Cmd+Space and then N, it brings up NetNewsWire as the default answer.  It doesn't stop there, either.  Typing the name of a friend of mine makes Quicksilver bring up his entry in Address Book.  It filters whatever you want -- apps, folders, files, people, conversations, mail, music, etc.  Type it and it's there.  No hassle.&lt;br /&gt;&lt;br /&gt;In the future, Quicksilver will take advantage of OS 10.4's &lt;a href="http://www.apple.com/macosx/tiger/spotlight.html"&gt;Spotlight&lt;/a&gt; technology to further index your multitude of files and, more importantly, their meta data.  This will make the technology even better.  If you are an OS X user, I &lt;b&gt;strongly suggest&lt;/b&gt; trying out Quicksilver.  It's the best $0 you'll ever spend! :D&lt;br /&gt;&lt;br /&gt;Hopefully I will post in the future about the other listings in the 10 Most Wanted Design "Bugs".  If so, be sure that there will be a bit nicer commentary for Mr. Tog who is quite good at relieving problems for the user.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110231003064025368?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110231003064025368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110231003064025368' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110231003064025368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110231003064025368'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2004/12/togs-ten-most-wanted-design-bugs.html' title='Tog&apos;s Ten Most Wanted Design &quot;Bugs&quot;'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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-9464387.post-110219770397274834</id><published>2004-12-04T17:03:00.000-05:00</published><updated>2004-12-04T17:04:47.503-05:00</updated><title type='text'>Bayesian News Filtering</title><content type='html'>I've been reading up on some of &lt;a href="http://www.paulgraham.com"&gt;Paul Graham's&lt;/a&gt; interesting essays.  Between his comments on &lt;a href="http://www.paulgraham.com/taste.html"&gt;Design&lt;/a&gt; and &lt;a href="http://www.paulgraham.com/sofar.html"&gt;Spam Filtering&lt;/a&gt;, he's got me hooked!  What  brilliant guy and a terrific writer.&lt;br /&gt;&lt;br /&gt;It's mostly what he's been saying on Spam Filtering that has gotten me thinking.  Bayesian filtering, if you don't know or are too lazy to follow the link above (don't worry, I would be too) is commonly used to filter out spam messages from your email.  Lots of companies, including AOL, are starting to use them and they are VERY effective.  What it does, in a nut shell, is to scan your mail for "tokens" or words.  Each word is statisically analyzed for it's "spamminess" and the message is given an overall statistical score depending on its content.  I think it was Paul who described this as removing the ability of a spammer to get their message across since they would have to restructure their message to get through the filter.  If they can't get their message across effectively, they'll probably give up.  Well, they haven't given up on it, but it's certainly helping people regain the time that they would normally waste via manually filtering.&lt;br /&gt;&lt;br /&gt;Anyway, this has gotten me thinking.  If we can filter spam so well (I believe Paul mentioned 99.7-99.9% effectively being removed), why not use this technique for other arenas?  I like to think that the larger the content on the Internet becomes, the better your filters have to be.  Right now we use Google (or other search engines) to sift through the mass of web pages out there, but there has to be a better way.  I know I've adopted Google's &lt;a href="http://scholar.google.com"&gt;Scholar&lt;/a&gt; search which indexes graduate theses and other information-rich documents.&lt;br /&gt;&lt;br /&gt;Another strength of Bayesian filtering is that the program responds to your personal email collection.  It doesn't (to my knowledge) work off of a list of known spammy words, but generates them as it learns what types of emails you prefer not to look at or mark as spam.  This personalization is key to Bayesian filtering's success, in my opinion.  Why can't we use this same technique to filter our news?  Currently RSS has helped us to speed read the net, but from personal experience, it leaves a lot to be desired.  I only subscribe to 20 blogs and I constantly find myself going past articles that I'm not particularly interested in.  Now, I wouldn't give these articles the same label as V1agra e-mails, but having a filter would be definitely beneficial.  Perhaps even put them into levels so that if I've ready through the posts that I'm primarily interested in, I could go to the next level that might be less interesting, but still interesting.  Using the same statistical analysis of Bayesian filtering would make this a piece of cake.  No doubt posts with the same topics will share similar language.  The only question left is why haven't news readers incorporated this technique?  It would surely give them an edge over anyone else in the market.&lt;br /&gt;&lt;br /&gt;There is also, of course, the possibility that some RSS readers have this ability and I'm not yet privy to them.  If you know of one, post a comment -- I'd love to see their implementation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110219770397274834?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110219770397274834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110219770397274834' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110219770397274834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110219770397274834'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2004/12/bayesian-news-filtering.html' title='Bayesian News Filtering'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9464387.post-110219537442380413</id><published>2004-12-04T16:22:00.000-05:00</published><updated>2004-12-04T17:02:24.786-05:00</updated><title type='text'>First Post!</title><content type='html'>Yeah, it's a cheesy title for the first post, but it was meant to be a joke on the stupid comments people leave on &lt;a href="http://www.slashdot.org"&gt;/.&lt;/a&gt; or other misc blogs.  For those people - NO ONE CARES that you got first post.  There's no medal or bragging rights associated with it -- so stop doing it.&lt;br /&gt;&lt;br /&gt;Yay, only the first paragraph on my new blog and I'm already ranting.  A sign of things to come?&lt;br /&gt;&lt;br /&gt;I guess a description of what I want to accomplish with this blog is in order.  Here's the best way I can put it:  I have these little black books that hold everything; class notes, ideas, to do lists, etc.  Mostly the stuff in it is short hand and there is little time or room to elaborate with.  I guess I'll use this blog as a companion to the ideas that I sketch out in my books.  Writing gives people a chance to hear their ideas out loud and then realize how bad they are or what needs to be changed.  Writing on a blog is 10x worse I would assume since so many people can read it.  Perhaps this will keep me in check.&lt;br /&gt;&lt;br /&gt;Given that I don't expect much traffic out of this blog, I'd suggest that anyone leave comments if you have the minutest thing to say.  With that, the intro post is over and I can add the first one with actual content!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9464387-110219537442380413?l=lucidthought.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lucidthought.blogspot.com/feeds/110219537442380413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9464387&amp;postID=110219537442380413' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110219537442380413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9464387/posts/default/110219537442380413'/><link rel='alternate' type='text/html' href='http://lucidthought.blogspot.com/2004/12/first-post.html' title='First Post!'/><author><name>Matt James</name><uri>http://www.blogger.com/profile/09715311746238370877</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>
