<?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-7645160</id><updated>2012-02-24T08:26:54.392-06:00</updated><category term='wireframes'/><category term='sharepoint'/><category term='navigation'/><category term='prototyping'/><category term='research'/><category term='sql'/><category term='phones'/><category term='speaking'/><category term='software'/><category term='dashboards'/><category term='skins'/><category term='microsoft'/><category term='design'/><category term='windows'/><category term='career'/><category term='blogging'/><category term='information-architecture'/><category term='browsers'/><category term='reporting-services'/><title type='text'>Aaron Hursman</title><subtitle type='html'>User Experience Architect</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://aaron.hursman.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>48</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7645160.post-7864793679915158086</id><published>2010-01-22T10:16:00.005-06:00</published><updated>2010-02-03T13:32:28.046-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='wireframes'/><category scheme='http://www.blogger.com/atom/ns#' term='prototyping'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>7 Reasons to Prototype with Microsoft Sketchflow</title><content type='html'>&lt;img  src="http://1.bp.blogspot.com/_GMlUJtijrHE/S2nPL_ziXUI/AAAAAAAAAYg/jYDggig4elA/s1600/sketchflow.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5434102230412320066" /&gt;&lt;br /&gt;&lt;p&gt;I’ve been trying to use more of the Microsoft Expression design tools (for a number of reasons). I’ve decided one of its biggest advantages over &lt;a href="http://tr.im/Leis"&gt;other options&lt;/a&gt; is its prototyping tool, &lt;a href="http://tr.im/KQa6"&gt;Sketchflow&lt;/a&gt; (included with &lt;a href="http://tr.im/LelX"&gt;Expression Blend 3&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;Why should you be using Sketchflow to prototype?&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;It’s the &lt;b&gt;closest &lt;/b&gt;digital option &lt;b&gt;to paper&lt;/b&gt; prototyping&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Sketchy&lt;/b&gt; styles – helps people remember that it’s still under construction. More on this from &lt;a title="Sketchy Wireframes: When you can't (or shouldn't) draw a straight line" href="http://www.boxesandarrows.com/view/sketchy-wireframes"&gt;this boxesandarrows article&lt;/a&gt;.&lt;/li&gt;    &lt;li&gt;Pen tablet integration – allows you to &lt;b&gt;hand draw&lt;/b&gt; stuff, which is faster than anything else.  Want one?  Check out the ones from &lt;a href="http://tr.im/Leur"&gt;Wacom&lt;/a&gt;.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Progressive&lt;/strong&gt; Fidelity – move from hand-drawn objects to sketchy objects to wireframe objects to highly-polished designs&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Portable&lt;/b&gt; – can be packaged up quick and sent out to your team and your clients&lt;/li&gt;    &lt;li&gt;&lt;b&gt;Feedback&lt;/b&gt; Management – your team and clients can annotate mockups directly and share back with designers&lt;/li&gt;    &lt;li&gt;Snappy transition to &lt;b&gt;developers&lt;/b&gt; – it produces xaml and code behind files that front-end developers can use as the basis for their code (instead of just looking at a set of graphic mockups and having to translate those into development assets)&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I recently watched a &lt;a href="http://tr.im/Lea3"&gt;good video on Microsoft Sketchflow&lt;/a&gt;. If you just want to see a demo, jump to the 31 minute mark.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="437" height="370" id="viddler"&gt;&lt;param name="movie" value="http://www.viddler.com/player/64c1e8bf/"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="flashvars" value="fake=1"&gt;&lt;embed src="http://www.viddler.com/player/64c1e8bf/" width="437" height="370" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" flashvars="fake=1" name="viddler"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;br /&gt;And if you didn’t know already, &lt;a href="http://tr.im/Leim"&gt;you should be prototyping&lt;/a&gt; your solutions, because it leads to &lt;b&gt;better requirements&lt;/b&gt; and &lt;b&gt;faster development&lt;/b&gt;. If you don’t have access to Sketchflow (or time to learn it), at least get out a pen and paper or jump on the whiteboard with your team. That would be better than nothing. Happy prototyping!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-7864793679915158086?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/7864793679915158086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2010/01/7-reasons-to-prototype-with-microsoft.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/7864793679915158086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/7864793679915158086'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2010/01/7-reasons-to-prototype-with-microsoft.html' title='7 Reasons to Prototype with Microsoft Sketchflow'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GMlUJtijrHE/S2nPL_ziXUI/AAAAAAAAAYg/jYDggig4elA/s72-c/sketchflow.png' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-387185149958063748</id><published>2009-09-11T09:53:00.005-05:00</published><updated>2010-02-03T13:16:10.314-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='information-architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='research'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Penny Sorting: A User Research Game</title><content type='html'>&lt;img src="http://1.bp.blogspot.com/_GMlUJtijrHE/S2nKnbxwOkI/AAAAAAAAAYY/9HrTLl2bbEc/s1600/pennies.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5434097204219361858" /&gt;&lt;br /&gt;&lt;p&gt;Let’s face it, user research can be a total bore…especially for the research subjects.  Answering numerous survey and interview questions can lull them to sleep.  They are taking time out of their busy day to answer a slew of boring questions when they would probably rather be doing something else.  As a result, the data we collect from existing techniques can be suboptimal…especially when the subject is disengaged due to the use of antiquated research methods.&lt;/p&gt;  &lt;p&gt;So, here is an alternative technique that can produce even better results, because it engages research subjects in a fun and tactile game format.  Pulling inspiration from the term, &lt;a title="Wikipedia page about the Card Sorting technique" href="http://en.wikipedia.org/wiki/Card_sorting"&gt;card&lt;/a&gt; &lt;a title="A guide to the card sorting technique from BoxesAndArrows.com" href="http://www.boxesandarrows.com/view/card_sorting_a_definitive_guide"&gt;sorting&lt;/a&gt;, I call it, Penny Sorting.  Here’s how it works:&lt;/p&gt;  &lt;p&gt;Supplies:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;10 &lt;a title="Product page for Dixie bath cups" href="http://www.makeitadixieday.com/prdct-cups-bath.html"&gt;Dixie bath cups&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;1 &lt;a title="Homepage for Sharpie.com, makers of the Sharpie permanent marker" href="http://www.sharpie.com/"&gt;Sharpie&lt;/a&gt; &lt;a title="Wikipedia article on the Sharpie permanent marker" href="http://en.wikipedia.org/wiki/Sharpie_(marker)"&gt;permanent marker&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;1 roll of pennies (a.k.a. Lincoln Log; yes, I "coined" the phrase!) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Participants:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;1 research subject (user) &lt;/li&gt;    &lt;li&gt;1 or 2 facilitators &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Instructions:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;take subject into a quiet room with table and shut door &lt;/li&gt;    &lt;li&gt;setup &lt;strong&gt;cups&lt;/strong&gt; in a &lt;strong&gt;horizontal line&lt;/strong&gt; on table &lt;/li&gt;    &lt;li&gt;give marker to subject &lt;/li&gt;    &lt;li&gt;ask subject to &lt;strong&gt;label each cup&lt;/strong&gt; with a &lt;strong&gt;pain point&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;give subject pennies &lt;/li&gt;    &lt;li&gt;ask subject to &lt;strong&gt;distribute all pennies&lt;/strong&gt; across cups putting the most in the cup that represents their biggest pain point (and so on) &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;When completed, thank the user and capture the data in electronically (spreadsheet, etc.).  It would be *really* cool if you had a coin counter onsite.  Anyway, repeat exercise with as many potential users/stakeholders as you have time for.  You’ll need to do some synthesis before the data is ready to be analyzed (subjects will use different labels).&lt;/p&gt;  &lt;p&gt;This method just works because:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;it is &lt;a title="Merriam-webster.com: definition of the word, tactile" href="http://www.merriam-webster.com/dictionary/tactile"&gt;tactile&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;it is a &lt;a title="AddictingGames.com: Free Online Games" href="http://www.addictinggames.com/"&gt;game&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;it is &lt;a title="Bored.com: Free Online Games, Fun, and Entertaining Sites" href="http://www.bored.com/"&gt;not boring&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;people love to &lt;a title="Jobvent.com: I Love My Job - I Hate My Job - Reviews by Employees" href="http://www.jobvent.com/"&gt;complain about their jobs&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;As you can imagine, the variables in the game can be modified to your liking.  You might use a different number of cups or pennies.  You could have the users label &lt;a title="Product page for 3M Post-It sticky notes" href="http://www.3m.com/us/office/postit/"&gt;Post-It sticky notes&lt;/a&gt; and place them near the cups instead of writing on them directly.  However, the best variable to play with is the "pain point" instruction.  You could do this exercise again and ask the subject to instead label the cups with their:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;most crucial personal needs &lt;/li&gt;    &lt;li&gt;most important business goals &lt;/li&gt;    &lt;li&gt;most important responsibilities &lt;/li&gt;    &lt;li&gt;biggest daily concerns &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;In fact, while you have the user there in person, you might as well run through the exercise multiple times, but change the question in #4 each time.  Happy sorting!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-387185149958063748?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/387185149958063748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2009/09/penny-sorting-user-research-game.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/387185149958063748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/387185149958063748'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2009/09/penny-sorting-user-research-game.html' title='Penny Sorting: A User Research Game'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GMlUJtijrHE/S2nKnbxwOkI/AAAAAAAAAYY/9HrTLl2bbEc/s72-c/pennies.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-8329018759778103101</id><published>2009-08-20T11:29:00.001-05:00</published><updated>2009-08-20T11:29:48.785-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dashboards'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='speaking'/><title type='text'>SXSW: Need Your Vote</title><content type='html'>&lt;p&gt;&lt;a href="http://panelpicker.sxsw.com/ideas/view/5004"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 20px 20px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001" border="0" alt="clip_image001" align="right" src="http://lh6.ggpht.com/_GMlUJtijrHE/So15_Jgg4wI/AAAAAAAAAUc/38LRFwuSMYk/clip_image001%5B1%5D.png?imgmax=800" width="76" height="95" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I’ve submitted my &lt;a href="http://aaron.hursman.com/2008/10/effective-dashboard-design.html"&gt;Effective Dashboard Design&lt;/a&gt; presentation to SXSW 2010 Interactive. A significant portion (30%) of the selection process is based on public voting. I’m competing for 1 of 300 slots, but there are over 2200 entries!!! So, I really need your support! Please vote for my submission using the instructions below.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Sign up at &lt;a href="http://tinyurl.com/mlqvzt"&gt;http://tinyurl.com/mlqvzt&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Click link inside confirmation email &lt;/li&gt;    &lt;li&gt;Vote YES at &lt;a href="http://tinyurl.com/mq46k5"&gt;http://tinyurl.com/mq46k5&lt;/a&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Thanks in advance!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-8329018759778103101?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/8329018759778103101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2009/08/sxsw-need-your-vote.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/8329018759778103101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/8329018759778103101'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2009/08/sxsw-need-your-vote.html' title='SXSW: Need Your Vote'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_GMlUJtijrHE/So15_Jgg4wI/AAAAAAAAAUc/38LRFwuSMYk/s72-c/clip_image001%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-7788079218167379840</id><published>2009-08-18T08:47:00.004-05:00</published><updated>2009-08-19T10:57:55.952-05:00</updated><title type='text'>User Experience Patterns</title><content type='html'>&lt;p&gt;Recently, I been diving into the world of User Experience (UX) patterns.&amp;#160; Being aware of the use of patterns in software development, it is invigorating to see this discipline being adopted in the interaction design (IxD) space.&amp;#160; What is an interaction design pattern?&amp;#160; I like this description from the &lt;a href="http://www.ixda.org/topics.php?topic=patterns"&gt;Interaction Design Association&lt;/a&gt; (IxDA):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Patterns represent optimal solutions to common interaction design problems within specific contexts. They help designers align with standards, they speed design, and they often extend or transform into new contexts or applications.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The catalyst for this discovery came from a &lt;a href="http://2009.visitmix.com/"&gt;MIX09&lt;/a&gt; video entitled, &lt;a href="http://videos.visitmix.com/MIX09/T30F"&gt;Advance Your Design with UX Design Patterns&lt;/a&gt; presented by &lt;a href="http://www.ambroselittle.com/"&gt;Ambrose Little&lt;/a&gt; (&lt;a href="http://twitter.com/ambroselittle"&gt;@ambroselittle&lt;/a&gt;) [via &lt;a href="http://tompierce.blogspot.com/"&gt;Tom Pierce&lt;/a&gt; of &lt;a href="http://www.enterpriseblend.com"&gt;EnterpriseBlend&lt;/a&gt;, &lt;a href="http://twitter.com/tlpierce"&gt;@tlpierce&lt;/a&gt;]&lt;/p&gt; &lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="500" height="280"&gt; &lt;param name="source" value="http://videos.visitmix.com/Skins/mixvideos/Styles/players/VideoPlayer2009_03_27.xap" /&gt; &lt;param name="initParams" value="m=http://mschannel9.vo.msecnd.net/o9/mix/09/wmv-hq/t30f.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://videos.visitmix.com/Skins/mixvideos/Styles/players/VideoPlayer2009_03_27.xap, postid=0" /&gt; &lt;param name="background" value="#00FFFFFF" /&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"&gt; &lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none" /&gt; &lt;/a&gt; &lt;/object&gt;  &lt;p&gt;Based on Ambrose's presentation, I have compiled a list of resources that I am excited to use as resources moving forward.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.welie.com/"&gt;Welie.com - Patterns in Interaction Design&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://quince.infragistics.com/"&gt;Quince UX Design Patterns Explorer&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://developer.yahoo.com/ypatterns/"&gt;Yahoo! Design Pattern Library&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://ui-patterns.com/"&gt;UI-patterns.com&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This structure is very much needed in user experience. UX is saturated with experienced creative types that would describe such structure as constraining.&amp;#160; However, those new to the space would benefit from the documentation of these patterns, as they enable decisions about appropriate interfaces for specific user requirements. The patterns are not intended to constrain a designer, but to present appropriate interfaces for the right situation. And since the pattern libraries are usually open to contributions, innovative types can continue to be creative, but they can now share their new, cutting-edge ideas with to the larger community.&amp;#160; As a result, UX patterns become a great peanut-butter-and-chocolate combination of structure and creativity.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-7788079218167379840?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/7788079218167379840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2009/08/user-experience-patterns.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/7788079218167379840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/7788079218167379840'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2009/08/user-experience-patterns.html' title='User Experience Patterns'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-551428893535838578</id><published>2009-04-16T13:29:00.000-05:00</published><updated>2009-04-16T13:29:42.516-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='information-architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='navigation'/><title type='text'>Enabling User-Centered Navigation</title><content type='html'>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Organizing site navigation based on user needs versus based on internal organization structures is a major step towards creating an effective user experience and enhancing findability.&amp;#160; However, it can create some security/ownership complexities.&amp;#160; This is why organizations rarely bother doing it.&amp;#160; They might understand the benefits to their audience, but they can't stomach what is required to think through these complexities or how to support them.&amp;#160; They would much rather align their content to their internal departments, so they can simply apply security permissions using people from within those departments.&amp;#160; Practically, it can be very difficult to both a) organize content based on user needs/tasks and b) use departments to define content ownership.&lt;/p&gt;  &lt;p&gt;In researching this dilemma, I came across some great articles from &lt;a title="Step Two Designs home page" href="http://www.steptwo.com.au/"&gt;Step Two Designs&lt;/a&gt;:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="direct link to Step Two Design article" href="http://www.steptwo.com.au/papers/cmb_orgchart/index.html"&gt;Why are intranets structured like the organizational chart?&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="direct link to Step Two Design article" href="http://www.steptwo.com.au/papers/kmc_orgchart/index.html"&gt;Escaping the organization chart on your intranet&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="direct link to Step Two Design article" href="http://www.steptwo.com.au/papers/kmc_alltogether/index.html"&gt;The &amp;quot;all together&amp;quot; rule for intranets&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="direct link to Step Two Design article" href="http://www.steptwo.com.au/papers/cmb_intranetcop/index.html"&gt;Establishing an intranet community of practice&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Based on these articles and my own experiences, here is a practical approach I would recommend to clients: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Identify just a few key roles from each department that will be responsible for content authoring/review &lt;/li&gt;    &lt;li&gt;Fill these roles with real people (this will change over time as people leave, change roles, or the organization is restructured) &lt;/li&gt;    &lt;li&gt;Create a 'community of practice' made up of these people and an intranet manager&lt;/li&gt;    &lt;li&gt;Train the members of this community: a) get them intimately familiar with the task-based organization of the site (what goes where &amp;amp; why it is important); b) grant them fairly significant content authoring access (they need shared ownership of the site content); c) help them understand the implications of their raised security permissions (risks &amp;amp; responsibilities) &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;So, move forward with that site redesign.&amp;#160; Maybe you already knew that you &lt;em&gt;should&lt;/em&gt; organize it based on user tasks, but now you know &lt;em&gt;how&lt;/em&gt; to make it happen!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-551428893535838578?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/551428893535838578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2009/04/enabling-user-centered-navigation.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/551428893535838578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/551428893535838578'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2009/04/enabling-user-centered-navigation.html' title='Enabling User-Centered Navigation'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-2640222114633432956</id><published>2009-04-08T15:25:00.006-05:00</published><updated>2010-02-03T13:42:30.291-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='wireframes'/><title type='text'>Sketchy Wireframes</title><content type='html'>&lt;img src="http://3.bp.blogspot.com/_GMlUJtijrHE/S2nRgvcZsBI/AAAAAAAAAYo/ZTHNd7q9Q2U/s1600/sketch.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5434104785820823570" /&gt;&lt;br /&gt;&lt;p&gt;I really like using a sketchy visual theme for wireframes. They purposely convey a feeling of roughness. Incompleteness is actually a good concept to leverage when you still have mockups to build later.&lt;/p&gt;  &lt;p&gt;Microsoft Visio may not be the best tool for wireframing, but it suffices. To make it even better, &lt;a href="http://www.guuui.com/issues/02_07.php"&gt;Henrik Olsen and Niklas Wolkert&lt;/a&gt; built some fantastic templates and sketchy "shapes" for Visio.  &lt;a href="http://www.abbett.org/"&gt;Jonathon Abbot&lt;/a&gt; created an &lt;a href="http://www.abbett.org/resources/SketchGUIShapes.zip"&gt;additional template&lt;/a&gt; that improves upon this work. This &lt;a href="http://www.abbett.org/resources/SketchGUIShapes.zip"&gt;template&lt;/a&gt; combined with the &lt;a href="http://www.dafont.com/hand-of-sean.font"&gt;Hand of Sean font&lt;/a&gt; (or some of these other &lt;a href="http://www.jankoatwarpspeed.com/post/2008/09/05/10-sketchy-fonts-for-web-designers.aspx"&gt;web designer fonts&lt;/a&gt;), can create &lt;a title="PDF version of a sketchy wireframe example" href="http://www.scribd.com/doc/14105551/Sketchy-Wireframe-Example"&gt;great results&lt;/a&gt;. I have posted my own &lt;a title="Visio file that can be used as a template for your next sketchy wireframe" href="http://sites.google.com/site/aaronhursman/Home/SketchyWireframeExample.vsd?attredirects=0"&gt;Visio file&lt;/a&gt; as well.&lt;/p&gt;  &lt;p&gt;UPDATE: Per Jonathon's comment, I am now giving proper credit to Olsen &amp;amp; Wolkert.&lt;/p&gt;&lt;br /&gt;&lt;object id="doc_276704605965708" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" height="500" width="100%" align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" name="doc_276704605965708" externalmouseevent="externalmouseevent" extmouseout="extmouseout" extmouseup="extmouseup" shake="shake" getpage="getpage" setpage="setpage" getpagecount="getpagecount" getzoom="getzoom" setzoom="setzoom" enablerelateddocuments="enablerelateddocuments" disablerelateddocuments="disablerelateddocuments" gethorizontalscroll="gethorizontalscroll" getverticalscroll="getverticalscroll" sethorizontalscroll="sethorizontalscroll" setverticalscroll="setverticalscroll" highlightkeywords="highlightkeywords" disablekeywordhighlighting="disablekeywordhighlighting" enablekeywordhighlighting="enablekeywordhighlighting" sethighlightkeywords="sethighlightkeywords" gethighlightkeywords="gethighlightkeywords" getviewmode="getviewmode" setviewmode="setviewmode" getfullscreen="getfullscreen" setfullscreen="setfullscreen" getdocumentid="getdocumentid" getaccesskey="getaccesskey" getpagedimensions="getpagedimensions" gettitle="gettitle" getdescription="getdescription" getembedcode="getembedcode" getviewurl="getviewurl" getauthorname="getauthorname" getauthorusername="getauthorusername" getauthorid="getauthorid" loaddocument="loaddocument" loaddocumentfromurl="loaddocumentfromurl"&gt;&lt;param name="_cx" value="14393"&gt;&lt;param name="_cy" value="13229"&gt;&lt;param name="FlashVars" value=""&gt;&lt;param name="Movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=14105551&amp;amp;access_key=key-ys0hi0ne55vra2sqsx7&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode="&gt;&lt;param name="Src" value="http://d.scribd.com/ScribdViewer.swf?document_id=14105551&amp;amp;access_key=key-ys0hi0ne55vra2sqsx7&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode="&gt;&lt;param name="WMode" value="Opaque"&gt;&lt;param name="Play" value="-1"&gt;&lt;param name="Loop" value="-1"&gt;&lt;param name="Quality" value="High"&gt;&lt;param name="SAlign" value="LT"&gt;&lt;param name="Menu" value="-1"&gt;&lt;param name="Base" value=""&gt;&lt;param name="AllowScriptAccess" value="always"&gt;&lt;param name="Scale" value="NoScale"&gt;&lt;param name="DeviceFont" value="0"&gt;&lt;param name="EmbedMovie" value="0"&gt;&lt;param name="BGColor" value="FFFFFF"&gt;&lt;param name="SWRemote" value=""&gt;&lt;param name="MovieData" value=""&gt;&lt;param name="SeamlessTabbing" value="1"&gt;&lt;param name="Profile" value="0"&gt;&lt;param name="ProfileAddress" value=""&gt;&lt;param name="ProfilePort" value="0"&gt;&lt;param name="AllowNetworking" value="all"&gt;&lt;param name="AllowFullScreen" value="true"&gt;                                        &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=14105551&amp;amp;access_key=key-ys0hi0ne55vra2sqsx7&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_276704605965708_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" height="500" width="100%"&gt;&lt;/embed&gt;   &lt;/object&gt;  &lt;div style="display: block; margin: 6px auto 3px; font: 12px helvetica,arial,sans-serif; font-size-adjust: none; font-stretch: normal"&gt;&lt;a style="text-decoration: underline" href="http://www.scribd.com/upload"&gt;Publish at Scribd&lt;/a&gt; or &lt;a style="text-decoration: underline" href="http://www.scribd.com/browse"&gt;explore&lt;/a&gt; others: &lt;a style="text-decoration: underline" href="http://www.scribd.com/browse/Presentations-Spreadsheets/"&gt;Presentations &amp;amp; Spreadsheets&lt;/a&gt; &lt;a style="text-decoration: underline" href="http://www.scribd.com/tag/web"&gt;web&lt;/a&gt; &lt;a style="text-decoration: underline" href="http://www.scribd.com/tag/sketches"&gt;sketches&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-2640222114633432956?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/2640222114633432956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2009/04/sketchy-wireframes_08.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/2640222114633432956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/2640222114633432956'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2009/04/sketchy-wireframes_08.html' title='Sketchy Wireframes'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_GMlUJtijrHE/S2nRgvcZsBI/AAAAAAAAAYo/ZTHNd7q9Q2U/s72-c/sketch.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-5194483108923878780</id><published>2009-01-06T11:23:00.000-06:00</published><updated>2009-01-06T11:23:16.621-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Windows Live Writer</title><content type='html'>&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_GMlUJtijrHE/SWOTAg9Zp9I/AAAAAAAAAQE/2Mjls8qKfd0/windowslivewriter%5B4%5D.png?imgmax=800"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="229" alt="windowslivewriter" src="http://lh4.ggpht.com/_GMlUJtijrHE/SWOTBRMHocI/AAAAAAAAAQI/XQMgElfVXXE/windowslivewriter_thumb%5B2%5D.png?imgmax=800" width="244" align="right" border="0" /&gt;&lt;/a&gt; This is my first time using &lt;a href="http://get.live.com/writer/overview"&gt;Windows Live Writer&lt;/a&gt;.&amp;#160; My friend, &lt;a href="http://tompierce.blogspot.com/"&gt;Tom Pierce&lt;/a&gt;, recommend it to me.&amp;#160; I was reminded of it when I installed &lt;a href="http://get.live.com/messenger/overview"&gt;Windows Live Messenger&lt;/a&gt;, so I'm going to listed to Tom for a change [wink] and give this a try.&amp;#160; In a way, maybe it'll give me that disconnected medium that &lt;a href="http://radio.userland.com/"&gt;Radio UserLand&lt;/a&gt; once attempted to make prevalent.&amp;#160; We shall see, won't we?&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-5194483108923878780?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/5194483108923878780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2009/01/windows-live-writer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/5194483108923878780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/5194483108923878780'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2009/01/windows-live-writer.html' title='Windows Live Writer'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_GMlUJtijrHE/SWOTBRMHocI/AAAAAAAAAQI/XQMgElfVXXE/s72-c/windowslivewriter_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-672983357452483766</id><published>2008-11-03T22:19:00.006-06:00</published><updated>2008-11-26T11:50:55.818-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dashboards'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Boutique Dashboarding</title><content type='html'>Recently, I received a question from a colleague that I found to be particularly stimulating from my point of view:&lt;blockquote&gt;&lt;br /&gt;I have a client who is currently looking at &lt;a href="http://www.oracle.com/appserver/business-intelligence/enterprise-edition.html"&gt;OBIEE&lt;/a&gt; and &lt;a href="http://www.businessobjects.com/"&gt;BOBJ&lt;/a&gt; (&lt;a href="http://www.businessobjects.com/product/catalog/xcelsius/"&gt;Xcelsius&lt;/a&gt;) dashboard solutions.  The client recently became aware of another dashboard tool from &lt;a href="http://www.adobe.com/"&gt;Adobe&lt;/a&gt; called &lt;a href="http://www.adobe.com/products/flex/"&gt;Flex&lt;/a&gt;.  Do you have any experience with this tool?  Do you have any precautions or considerations around leveraging this simplified and substantially less expensive solution?&lt;br /&gt;&lt;/blockquote&gt;I do have some experience w/ &lt;a href="http://www.businessobjects.com/product/catalog/xcelsius/"&gt;Xcelsius&lt;/a&gt; and a lot of recent experience with &lt;a href="http://www.oracle.com/appserver/business-intelligence/enterprise-edition.html"&gt;Oracle Business Intelligence Enterprise Edition&lt;/a&gt; (at my current client).  I don't have any direct experience w/ &lt;a href="http://www.adobe.com/devnet/flex/samples/dashboard/"&gt;using Flex to build dashboards&lt;/a&gt;, but I'm very intrigued and have been meaning to learn more about it.&lt;br /&gt; &lt;br /&gt;Lately, I've been turned off by the big players in this space platforms.  They make good sense for large enterprises w/ varied business &amp; technical needs, but I continue to get very frustrated by their limited data visualization options, their bloated architecture, inefficient code, and inflexible customization options (for both data visualizations and web presentation [CSS, XHTML, ...]).  In turn, meeting the client's business requirements becomes increasingly difficult.  I discuss some of these challenges in my presentation on &lt;a href="http://www.slideshare.net/hursman/effective-dashboard-design-presentation"&gt;Effective Dashboard Design&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;Alternatively, I'm intrigued by the "smaller" &amp; less expensive options.  Their high points are the contrast for the low points of the big boys.  They don't spread themselves thin by trying to solve every possible problem.  Instead, they go deep on what they do best, offer a wide variety of customization options, and allow themselves to be plugged into other clients/platforms (web apps, portals, even office apps like excel).  Instead of trying to be the be-all-end-all, they just become plug-able components to a larger architecture.  That makes them easier to absorb/invest in, besides the fact that they are cheaper, too.  In addition to Xcelsius and Flex, I'd also add the follow to this genre: &lt;a href="http://code.google.com/apis/chart/"&gt;Google Charts API&lt;/a&gt;, &lt;a href="http://www.dundas.com/"&gt;Dundas&lt;/a&gt;, &lt;a href="http://www.bonavistasystems.com/"&gt;Microcharts&lt;/a&gt;, &lt;a href="http://www.juiceanalytics.com/"&gt;Juice Analytics&lt;/a&gt;, &lt;a href="http://prefuse.org/"&gt;Prefuse&lt;/a&gt;, &lt;a href="http://teethgrinder.co.uk/open-flash-chart/"&gt;Open Flash Chart&lt;/a&gt;.  At one point, I'd include &lt;a href="http://www-01.ibm.com/software/data/db2/alphablox/"&gt;Alphablox&lt;/a&gt; in there, too, but IBM has buried it since &lt;a href="http://www.ibm.com/press/us/en/pressrelease/7223.wss"&gt;its acquisition&lt;/a&gt; over 4 years ago.&lt;br /&gt; &lt;br /&gt;The biggest hurdle for these cheaper options is probably distribution.  Especially if the tools being leveraged are Excel-based (plugins, macros, hacks, ...) like if the physical dashboard being distributed is just an Excel file.  Part of the reason the collective enterprise moved to the web is because it solved a massive distribution and maintenance issues.  The thin client removes the need to figure out how to publish new files and/or get software updates required for the thicker alternatives.&lt;br /&gt; &lt;br /&gt;I don't buy the "support" argument (e.g. big software vendor "X" has better support than these small niche shops).  It sounds like a repeat of a portion of the Firefox vs. MSIE argument (e.g. security patches depend on the desire of a so-called disorganized, unaccountable set of freelance developers vs. a large organization w/ the experience, know-how, and funding to provide sufficient levels of support).  Smaller organizations are typically more open, nimble, ready, and willing to respond to &lt;strong&gt;all&lt;/strong&gt; their customers (both to support requests and ideas for new features)...and their user community is better connected and more willing to share learnings.  When it comes to support issues, I've enjoyed dealing on these "smaller" scales than waiting for someone to pick up my support request of a bloated and bureaucratic queue.&lt;br /&gt; &lt;br /&gt;That being said, you might always feel more comfortable investing in a product from a large vendor vs. something else, for the simple reason of long-term viability.  There are no guarantees in life, but the big boys aren't going anywhere.  However, this is probably another weak argument, because eventually, even the biggest of software vendors will sunset support for the product you invest in today.  Software life spans are incredibly short no matter who's name is on the box.&lt;br /&gt; &lt;br /&gt;So, I say go for it.  At least go through a trial period and use it to prototype/POC something.  If you don't end up using it for a production app, at least the prototype can serve as a requirements gathering tool.  I'm a big proponent of high-fidelity prototyping, which is very difficult to do for BI applications.  I haven't done this before, but toolsets like Google Charts API might make &lt;a href="http://www.usabilityfirst.com/glossary/term_377.txl"&gt;high-fidelity prototyping&lt;/a&gt; more of a reality in &lt;a href="http://en.wikipedia.org/wiki/Business_intelligence"&gt;BIPM&lt;/a&gt; solutions.&lt;br /&gt; &lt;br /&gt;By the way, if you want specific feedback on Xcelsius, check out &lt;a href="http://www.websitetoolbox.com/tool/post/sfew/vpost?id=2359226"&gt;this discussion&lt;/a&gt; on &lt;a href="http://www.perceptualedge.com/"&gt;Stephen Few's blog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-672983357452483766?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/672983357452483766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2008/11/boutique-dashboarding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/672983357452483766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/672983357452483766'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2008/11/boutique-dashboarding.html' title='Boutique Dashboarding'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-7191036486964821429</id><published>2008-10-30T12:32:00.005-05:00</published><updated>2009-09-04T10:33:53.766-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dashboards'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Effective Dashboard Design</title><content type='html'>I presented a topic entitled, "Effective Dashboard Design", to the &lt;a href="http://refreshdallas.org/"&gt;Refresh Dallas&lt;/a&gt; group &lt;a href="http://refreshdallas.org/meetings/effective-dashboard-design"&gt;last month&lt;/a&gt;.  I have uploaded the &lt;a href="http://www.slideshare.net/hursman/effective-dashboard-design-presentation?type=powerpoint" title="Effective Dashboard Design"&gt;presentation slides&lt;/a&gt; to &lt;a href="http://www.slideshare.net"&gt;SlideShare&lt;/a&gt;, added the audio from the speech, and embedded it below.  I hope you find it to be an informative and interesting topic.&lt;br /&gt;&lt;div id="__ss_663911" style="text-align: left; width: 425px;"&gt;&lt;object height="355" style="margin: 0px;" width="425"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=dashboard-design-1224214052543615-9&amp;stripped_title=effective-dashboard-design-presentation" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=dashboard-design-1224214052543615-9&amp;stripped_title=effective-dashboard-design-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&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/7645160-7191036486964821429?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/7191036486964821429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2008/10/effective-dashboard-design.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/7191036486964821429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/7191036486964821429'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2008/10/effective-dashboard-design.html' title='Effective Dashboard Design'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-1054034535217435652</id><published>2008-10-16T11:31:00.005-05:00</published><updated>2008-10-16T11:43:42.119-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dashboards'/><title type='text'>Tonight's Refresh Dallas Presentation</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i366.photobucket.com/albums/oo105/hursman/refresh.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://i366.photobucket.com/albums/oo105/hursman/refresh.png" border="0" alt="" /&gt;&lt;/a&gt;As I &lt;a href="http://aaron.hursman.com/2008/09/presenting-at-refresh-dallas.html"&gt;mentioned last month&lt;/a&gt;, I will be presenting at the Refresh Dallas meeting tonight. The title of the presentation is Effective Dashboard Design.  Here are all the details from RefreshDallas:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;b&gt;Effective Dashboard Design&lt;/b&gt;&lt;br /&gt;&lt;i&gt;Practical tools and examples for your next dashboard project&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;As enterprises and other organizations look to sift through and make sense of the all the structured and unstructured data available to them, dashboards are being positioned as the solution to their problems. However, a dashboard needs special attention to the visual design or the dashboard will fail to meet expectations. If not carefully designed, a new dashboard can leave consumers unsatisfied, frustrated, confused, and even overwhelmed.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://aaron.hursman.com/"&gt;Aaron Hursman&lt;/a&gt; will share his experiences designing effective dashboards that deliver on the promise of targeted, accessible, and actionable information. He will discuss examples from both his personal work and contributions of thought-leaders in this space. Through these examples, he will present practical dashboard design techniques. He will also present effective approaches to take during design and construction. Finally, Aaron will explain the challenges and obstacles that dashboard designers face today, and how to mitigate the risks that result.&lt;br /&gt;&lt;br /&gt;Live streaming will be available on the &lt;a href="http://www.ustream.tv/channel/refreshdallas"&gt;Ustream Channel&lt;/a&gt;, but that's no excuse not to show up in person.&lt;br /&gt;&lt;br /&gt;If you think you might come please &lt;a href="http://upcoming.yahoo.com/event/1185733/"&gt;RSVP on Upcoming&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Come early (7:00) to mingle with like-minded designers and developers and then soak in a fresh presentation (7:30).&lt;br /&gt;&lt;br /&gt;Thursday October 16th, 2008&lt;br /&gt;7:00pm to 9:00pm&lt;br /&gt;Ackerman McQueen&lt;br /&gt;545 E John Carpenter Fwy&lt;br /&gt;Irving, TX 75062&lt;br /&gt;&lt;a href="http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=545+E+John+Carpenter+Fwy+Irving,+TX+75062&amp;amp;sll=32.859871,-96.932523&amp;amp;sspn=0.010274,0.014699&amp;amp;ie=UTF8&amp;amp;ll=32.859871,-96.932523&amp;amp;spn=0.010274,0.014699&amp;amp;z=16&amp;amp;iwloc=addr"&gt;Get a Map&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Office is on 18th floor. Take ground floor elevator to 17th floor then you'll see signs that point you the way to the 18th. Garage parking will be a free exit until 9:30pm.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Please visit the &lt;a href="http://www.ustream.tv/channel/refreshdallas"&gt;live feed&lt;/a&gt; if you can't make it in person.  If you can't do either, visit the recorded session at a later date.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-1054034535217435652?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/1054034535217435652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2008/10/tonights-refresh-dallas-presentation.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/1054034535217435652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/1054034535217435652'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2008/10/tonights-refresh-dallas-presentation.html' title='Tonight&apos;s Refresh Dallas Presentation'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-5149804034253255501</id><published>2008-10-14T08:40:00.013-05:00</published><updated>2008-10-14T09:29:36.279-05:00</updated><title type='text'>Configuring Batch Printers for Hyperion Financial Reporting</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_GMlUJtijrHE/SPSobKR3Q8I/AAAAAAAAAMs/kBohRHIqDnk/s1600-h/printers.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_GMlUJtijrHE/SPSobKR3Q8I/AAAAAAAAAMs/kBohRHIqDnk/s400/printers.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5257011849617425346" /&gt;&lt;/a&gt;I was having difficulty getting physical printers configured so that users could use them as destinations while scheduling a batch in &lt;a href="http://www.oracle.com/technology/products/bi/financial-reporting.html"&gt;Hyperion Financial Reporting&lt;/a&gt; from &lt;a href="http://www.oracle.com/technology/products/bi/foundation-services/workspace.html"&gt;Hyperion Workspace&lt;/a&gt;.  The best &lt;a href="http://download.oracle.com/docs/cd/E10530_01/doc/epm.931/hs_windows_install.pdf" title="Hyperion Reporting and Analysis – System 9 Installation Guide for Windows (PDF, version 9.3.1)"&gt;documentation&lt;/a&gt; I could find only got me so far.   Eventually, I submitted a support request through &lt;a href="https://metalink3.oracle.com/od/faces/index.jspx" title="Oracle's website for submitting support requests"&gt;Oracle Metalink&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;They got back to me yesterday and walked me through the solution.  We got it working, but the process ain't pretty.  Basically, you have to physically install printers on the Windows server running the Hyperion BI Plus Print Services as local printers via the &lt;a href="http://biochemistry.ucsf.edu/dept/it/Support/Windows/print_over_ip_pc.html" title="Instructions for setting up network printers as local printers using TCP/IP port"&gt;Standard TCP/IP port&lt;/a&gt;.  Installing them as traditional network printers won't work.  Here are the detailed instructions:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Remote into print server (windows machine running Hyperion BI Plus print services) &lt;/li&gt;&lt;li&gt;click start &gt; run… &gt; type control panel &gt; click OK &lt;/li&gt;&lt;li&gt;double-click printers and faxes &lt;/li&gt;&lt;li&gt;double-click add printer &lt;/li&gt;&lt;li&gt;click next &lt;/li&gt;&lt;li&gt;uncheck "automatically detect…" &gt; click next &lt;/li&gt;&lt;li&gt;click "create a new port" &gt; select "standard tcp/ip port" &gt; click next &lt;/li&gt;&lt;li&gt;click next &lt;/li&gt;&lt;li&gt;enter IP address of printer to add &gt; click next &lt;/li&gt;&lt;li&gt;select driver &gt; click next &lt;/li&gt;&lt;li&gt;enter the name of the printer (this is what will show to users when selecting from list) &gt; select No (for default printer) &gt; click next &lt;/li&gt;&lt;li&gt;click "do not share this printer" &gt; click next &lt;/li&gt;&lt;li&gt;click "no" (do not print test page) &gt; click next &lt;/li&gt;&lt;li&gt;click finish&lt;/li&gt;&lt;/ol&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_GMlUJtijrHE/SPSsrwTO44I/AAAAAAAAANM/2NhAQtiPDzU/s1600-h/exportoption.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_GMlUJtijrHE/SPSsrwTO44I/AAAAAAAAANM/2NhAQtiPDzU/s400/exportoption.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5257016532748133250" /&gt;&lt;/a&gt;You will have to restart your browser to see the new printer in the destination list when setting up a scheduled batch.  Oh, Oracle mentioned that users also have to choose the "Export as PDF" destination option, or the print won’t happen.  Nice finishing touch, eh?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-5149804034253255501?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/5149804034253255501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2008/10/configuring-batch-printers-for-hyperion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/5149804034253255501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/5149804034253255501'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2008/10/configuring-batch-printers-for-hyperion.html' title='Configuring Batch Printers for Hyperion Financial Reporting'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_GMlUJtijrHE/SPSobKR3Q8I/AAAAAAAAAMs/kBohRHIqDnk/s72-c/printers.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-8496491849639272025</id><published>2008-10-07T10:33:00.003-05:00</published><updated>2008-10-07T10:41:49.311-05:00</updated><title type='text'>Identity Ownership</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_GMlUJtijrHE/SOuCyyj0H1I/AAAAAAAAAMI/SGAxC9zXfEU/s1600-h/fingerprint.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_GMlUJtijrHE/SOuCyyj0H1I/AAAAAAAAAMI/SGAxC9zXfEU/s400/fingerprint.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5254437199334874962" /&gt;&lt;/a&gt;I tried going dark for a while in an attempt to get my identity off the web, but my attempts were futile.  Once you are out on the web, there's no getting it back.  So, the next best thing is to own your name, identity, etc.  That's why I'm now pointing &lt;a href="http://aaron.hursman.com"&gt;aaron.hursman.com&lt;/a&gt; to this site.  &lt;a href="http://aaronware.blogspot.com"&gt;aaronware.blogspot.com&lt;/a&gt; will continue to work, but the new URL is so much cooler, isn't it?  Be sure to update your bookmarks and &lt;a href="http://www.google.com/reader/" title="Google Reader"&gt;favorite RSS feeder&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-8496491849639272025?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/8496491849639272025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2008/10/identity-ownership.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/8496491849639272025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/8496491849639272025'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2008/10/identity-ownership.html' title='Identity Ownership'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GMlUJtijrHE/SOuCyyj0H1I/AAAAAAAAAMI/SGAxC9zXfEU/s72-c/fingerprint.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-9222292943182467599</id><published>2008-10-01T15:42:00.020-05:00</published><updated>2009-08-21T10:23:32.855-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='career'/><title type='text'>Hitachi Consulting</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_GMlUJtijrHE/So66EqyLwsI/AAAAAAAAAUo/2z1J7k6ZOoA/s1600-h/hitachiconsulting.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 80px;" src="http://2.bp.blogspot.com/_GMlUJtijrHE/So66EqyLwsI/AAAAAAAAAUo/2z1J7k6ZOoA/s400/hitachiconsulting.png" alt="" id="BLOGGER_PHOTO_ID_5372435994866598594" border="0" /&gt;&lt;/a&gt;The company I started my career with, &lt;a href="http://aaron.hursman.com/2005/05/my-company.html" title="A former post by me about Navigator Systems"&gt;Navigator Systems&lt;/a&gt;, was acquired by &lt;a href="http://www.hitachiconsulting.com/" title="Homepage for Hitachi Consulting"&gt;Hitachi Consulting&lt;/a&gt; in &lt;a href="http://65.36.220.242/files/pdfRepository/PR_Navigatoracquisition.pdf" title="Press release of Navigator's acquisition by Hitachi Consulting"&gt;February 2006&lt;/a&gt;.  Initially, I did not know what to think.  On one hand, I was saddened that Navigator's time had come to an end.  However, I was intrigued by the potential new opportunities that Hitachi Consulting would provide to me and the other legacy Navigator employees.  As I wondered what Hitachi Consulting would do with the business Navigator had so carefully cultivated, I withheld judgment for a later date.&lt;br /&gt;&lt;br /&gt;So, it has been a while since those early days.  There have been growing pains and some of the faces have changed.  As I reflect on the past and look to the future, I can't help but get excited about where we are right now.  The kicker for me today was a video that was recently posted as part of the &lt;a href="http://www.hitachi.us/truestories/" title="Hitachi True Stories video campaign"&gt;Hitachi True Stories&lt;/a&gt; campaign.  It is the first entry for Hitachi Consulting and the subject is our BIPM solution offering.  As &lt;a href="http://ecmarchitect.com/archives/2006/02/02/649" title="Jeff's thoughts on the acquisition at the time"&gt;Jeff mentioned&lt;/a&gt;, this was an offering that was birthed by the Navigator acquisition and is still lead by the same people today (like &lt;a href="http://www.hitachiconsulting.com/page.cfm?id=management_profile&amp;amp;employeeId=22" title="Todd Price's biography on Hitachi Consulting's website"&gt;Todd Price&lt;/a&gt;).  Anyway, give it a watch.  It was a proud moment for me.&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://hitachi.us/truestories/player.swf?src=flash/assets/videos/ChartingProgress.flv" quality="high" name="player" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" height="295" width="500"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-9222292943182467599?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/9222292943182467599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2008/10/hitachi-consulting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/9222292943182467599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/9222292943182467599'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2008/10/hitachi-consulting.html' title='Hitachi Consulting'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_GMlUJtijrHE/So66EqyLwsI/AAAAAAAAAUo/2z1J7k6ZOoA/s72-c/hitachiconsulting.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-775232989875802155</id><published>2008-10-01T09:36:00.006-05:00</published><updated>2008-10-16T11:44:34.718-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dashboards'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>What is a Dashboard?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.amazon.com/gp/product/0596100167?ie=UTF8&amp;tag=perceedge-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596100167" title="Stephen Few's book, Information Dashboard Design, on Amazon"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_GMlUJtijrHE/SOONg4zvByI/AAAAAAAAALg/9Y5jGNtck9o/s400/dashboard.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5252197186588837666" /&gt;&lt;/a&gt;All I really needed to know about dashboards, I learned from &lt;a href="http://www.perceptualedge.com/about.php" title="Stephen Few's 'about me' page on his blog, PerpectualEdge"&gt;Stephen Few&lt;/a&gt;:&lt;blockquote&gt;&lt;br /&gt;A dashboard is a &lt;strong&gt;visual&lt;/strong&gt; display of the most &lt;strong&gt;important&lt;/strong&gt; information needed to achieve one or more &lt;strong&gt;objectives&lt;/strong&gt;, consolidated and arranged on a &lt;strong&gt;single screen&lt;/strong&gt; so the information can be monitored at a &lt;strong&gt;glance&lt;/strong&gt;.&lt;br /&gt;&lt;/blockquote&gt;I use this definition as &lt;strong&gt;the&lt;/strong&gt; guiding principle to all my dashboard designs.  You should, too.  In fact, do yourself a favor and go buy Few's book, &lt;a href="http://www.amazon.com/gp/product/0596100167?ie=UTF8&amp;tag=perceedge-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596100167" title="Stephen Few's book, Information Dashboard Design, on Amazon"&gt;Information Dashboard Design&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-775232989875802155?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/775232989875802155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2008/10/what-is-dashboard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/775232989875802155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/775232989875802155'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2008/10/what-is-dashboard.html' title='What is a Dashboard?'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_GMlUJtijrHE/SOONg4zvByI/AAAAAAAAALg/9Y5jGNtck9o/s72-c/dashboard.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-6871876884289959111</id><published>2008-09-30T13:27:00.008-05:00</published><updated>2008-09-30T14:04:42.931-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='career'/><title type='text'>MIS Career Networking Event</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://picasaweb.google.com/spoolenturbo/SmallAustinPhotos#5125584031169149234" title="Clock Tower image by Car Crazy...'s"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_GMlUJtijrHE/SOJ3kk6el5I/AAAAAAAAALQ/5VByQp4lIc8/s400/tower.png" border="0" alt="" /&gt;&lt;/a&gt;I'll be taking a trip down to the &lt;a href="http://www.utexas.edu/" title="Homepage for the University of Texas at Austin"&gt;University of Texas at Austin&lt;/a&gt; next week to talk to students about my experiences at &lt;a href="http://www.hitachiconsulting.com" title="Homepage for Hitachi Consulting"&gt;Hitachi Consulting&lt;/a&gt; and &lt;a href="http://www.hitachiconsulting.com/page.cfm?ID=careers" title="Career page for Hitachi Consulting"&gt;career opportunities&lt;/a&gt; for &lt;a href="http://www.hitachiconsulting.com/page.cfm?ID=campus_recruiting" title="Hitachi Consulting's college recruiting process"&gt;new graduates&lt;/a&gt;.  It is part of the &lt;a href="http://misbridge.mccombs.utexas.edu/events/mis-info-game.asp" title=""&gt;MIS Career Networking event&lt;/a&gt; on October 7, 2008 from 5:00pm-6:45pm in &lt;a href="http://www.utexas.edu/maps/main/buildings/cba.html" title="Map of CBA building on UT campus"&gt;CBA 3.304&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-6871876884289959111?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/6871876884289959111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2008/09/mis-career-networking-event.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/6871876884289959111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/6871876884289959111'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2008/09/mis-career-networking-event.html' title='MIS Career Networking Event'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GMlUJtijrHE/SOJ3kk6el5I/AAAAAAAAALQ/5VByQp4lIc8/s72-c/tower.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-5956249970225977742</id><published>2008-09-29T10:08:00.006-05:00</published><updated>2008-10-16T11:45:14.188-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='skins'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Ecdysis</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_GMlUJtijrHE/SODyWhCpjOI/AAAAAAAAAKw/TCeivA37aQg/s1600-h/colourise.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_GMlUJtijrHE/SODyWhCpjOI/AAAAAAAAAKw/TCeivA37aQg/s400/colourise.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5251463634154523874" /&gt;&lt;/a&gt;I was getting tired of the old out-of-the-box skin I was using on Blogger.  So much so that I considered going through a process of migrating to Wordpress.  That was until I discovered &lt;a href="http://themelib.com/2008/08/colourise-dark-colorful-blogger-template/" title="Colourise dark colorful blogger template"&gt;Colourise&lt;/a&gt;.  I am always drawn to dark skins.  This theme is no exception, and the color spectrum included in the banner put this one over the top.&lt;br /&gt;&lt;br /&gt;I &lt;a href="http://en.wikipedia.org/wiki/Ecdysis" title="Wikipedia's entry for ecdysis"&gt;shed that old skin&lt;/a&gt; for this new one.  I had to make a couple tweaks after I imported it (color of search bar border, javascript on search box), but it was very easy to implement.  Thank you, &lt;a href="http://www.styleshout.com/" title="Erwin Aligam's website, StyleShout"&gt;Erwin Aligam&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;One thing I found about dark skins, is that you really have to revisit the images you provide in your posts...especially those with transparent backgrounds.  They looked pretty bad before I swapped them out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-5956249970225977742?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/5956249970225977742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2008/09/ecdysis.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/5956249970225977742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/5956249970225977742'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2008/09/ecdysis.html' title='Ecdysis'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_GMlUJtijrHE/SODyWhCpjOI/AAAAAAAAAKw/TCeivA37aQg/s72-c/colourise.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-774199588233785917</id><published>2008-09-26T17:20:00.010-05:00</published><updated>2008-09-30T14:05:36.925-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dashboards'/><title type='text'>Presenting at Refresh Dallas</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i366.photobucket.com/albums/oo105/hursman/refresh.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://i366.photobucket.com/albums/oo105/hursman/refresh.png" border="0" alt="" /&gt;&lt;/a&gt;So, I've been busy with user experience work on business intelligence and performance management solutions (a.k.a. BIPM).  BIPM solutions are in serious need of some &lt;a href="http://en.wikipedia.org/wiki/User-centered_design"&gt;user-centered design&lt;/a&gt; (UCD).  Effective dashboard design has become a bit of a passion for me of late, so I'm ready to share my learnings.&lt;br /&gt;&lt;br /&gt;I will be presenting at the &lt;a href="http://refreshdallas.org"&gt;Refresh Dallas&lt;/a&gt; meeting next month.  I'll be speaking about the case for UCD in BIPM, the challenges we face, and effective practices when designing the user experience for a dashboard.&lt;br /&gt;&lt;br /&gt;Are you wondering what Refresh is?  Here is a blurb from their website:&lt;blockquote&gt;&lt;br /&gt;Refresh is a community of designers and developers working to refresh the creative, technical and professional aspects of new media endeavors in the Dallas area.&lt;br /&gt;&lt;/blockquote&gt;If you are available from 7pm to 9pm on October 16, please come, check out the presentation, and say hello.  Need directions?  Visit &lt;a href="http://www.refreshdallas.org/"&gt;Refresh Dallas&lt;/a&gt; and get a &lt;a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=545+E+John+Carpenter+Fwy+Irving,+TX+75062&amp;sll=32.859871,-96.932523&amp;sspn=0.010274,0.014699&amp;ie=UTF8&amp;ll=32.859871,-96.932523&amp;spn=0.010274,0.014699&amp;z=16&amp;iwloc=addr"&gt;map&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-774199588233785917?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/774199588233785917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2008/09/presenting-at-refresh-dallas.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/774199588233785917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/774199588233785917'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2008/09/presenting-at-refresh-dallas.html' title='Presenting at Refresh Dallas'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-4486166311364527970</id><published>2008-04-17T16:06:00.019-05:00</published><updated>2009-08-20T16:11:02.729-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='phones'/><title type='text'>Windows Mobile 6.1 on T-Mobile Dash</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i366.photobucket.com/albums/oo105/hursman/T-MO_Dash.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://i366.photobucket.com/albums/oo105/hursman/T-MO_Dash.png" alt="" border="0" /&gt;&lt;/a&gt;I just upgraded my T-Mobile Dash from Windows Mobile 6 to Windows Mobile 6.1.  It was not completely straight forward, so I’ve provided some instructions below that you might find helpful.  When installing any of these programs, follow prompts on phone/PC (including reboots).&lt;br /&gt;&lt;br /&gt;*WARNING: performing these instructions may void your warranty and/or brick your phone (i.e. make it as useful as a brick).&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download SurrealNetworksAppUnlock.cab to PC from &lt;a href="http://mobile.surrealnetworks.com/AppUnlockReg.htm"&gt;http://mobile.surrealnetworks.com/AppUnlockReg.htm&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Connect phone via USB cable&lt;/li&gt;&lt;li&gt;Copy SurrealNetworksAppUnlock.cab to phone using ActiveSync/Windows Mobile Device Center&lt;/li&gt;&lt;li&gt;From phone, run SurrealNetworksAppUnlock.cab&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Download the RUU_Excalibur_WM61_*.exe to PC from &lt;a href="http://forum.xda-developers.com/showthread.php?t=374890"&gt;http://forum.xda-developers.com/showthread.php?t=374890&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Download Tegic eT9 US English.cab to PC from &lt;a href="http://forum.xda-developers.com/showpost.php?p=2074399&amp;amp;postcount=1148"&gt;http://forum.xda-developers.com/showpost.php?p=2074399&amp;amp;postcount=1148&lt;/a&gt;&lt;/li&gt;&lt;li&gt;From PC, run RUU_Excalibur_WM61_*.exe&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You may have to set up your phone's data connectivity: from your phone, run Connection Startup (Start &gt; All Programs &gt; Accessories; select country and operator)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Setup phone using ActiveSync/Windows Mobile Device Center&lt;/li&gt;&lt;li&gt;Copy Tegic eT9 US English.cab to phone using ActiveSync&lt;/li&gt;&lt;li&gt;From phone, run Tegic eT9 US English.cab&lt;/li&gt;&lt;li&gt;Restart phone&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-4486166311364527970?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/4486166311364527970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2008/04/windows-mobile-61-on-t-mobile-dash.html#comment-form' title='101 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/4486166311364527970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/4486166311364527970'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2008/04/windows-mobile-61-on-t-mobile-dash.html' title='Windows Mobile 6.1 on T-Mobile Dash'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>101</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-8158051963657065844</id><published>2007-07-19T14:41:00.000-05:00</published><updated>2007-07-23T11:08:30.569-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Clearing the Outlook AutoComplete Cache</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_GMlUJtijrHE/Rp_Dal8FplI/AAAAAAAAACo/BWkfiRxrfP4/s1600-h/typeahead.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_GMlUJtijrHE/Rp_Dal8FplI/AAAAAAAAACo/BWkfiRxrfP4/s200/typeahead.png" alt="" id="BLOGGER_PHOTO_ID_5089000965580105298" border="0" /&gt;&lt;/a&gt;Recently, the company I work for switched our email host.  So far, it has been great, with one exception.  The "AutoComplete" feature that Outlook uses to show addresses while you type a new email was using old addresses based on the old host.  Whenever you try to send to those addresses, they bounce back in your face.  The easiest way around this is to dial-up the Outlook cache file and kick them nasty names:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Close Outlook&lt;/li&gt;&lt;li&gt;Click Start &gt; Run&lt;/li&gt;&lt;li&gt;*Type C:\Documents and Settings\YOUR-USERNAME\Application Data\Microsoft\Outlook&lt;/li&gt;&lt;li&gt;Click OK&lt;/li&gt;&lt;li&gt;Delete or Rename all files ending in *.nk2&lt;/li&gt;&lt;/ol&gt;Be sure to substitute "YOUR-USERNAME" with your system username.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-8158051963657065844?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/8158051963657065844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2007/07/clearing-outlook-autocomplete-cache.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/8158051963657065844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/8158051963657065844'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2007/07/clearing-outlook-autocomplete-cache.html' title='Clearing the Outlook AutoComplete Cache'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GMlUJtijrHE/Rp_Dal8FplI/AAAAAAAAACo/BWkfiRxrfP4/s72-c/typeahead.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-6063448208119244230</id><published>2007-05-01T14:08:00.000-05:00</published><updated>2007-05-01T14:14:31.259-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><title type='text'>Clearing SQL Transaction Logs</title><content type='html'>If you have really large transaction log files (*.LDF) for your SQL Databases, you can run this script/query to clear them out and regain some disk space:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;use &lt;dbname&gt;&lt;br /&gt;GO&lt;br /&gt;backup log &lt;dbname&gt; with truncate_only&lt;br /&gt;GO&lt;br /&gt;dbcc shrinkfile (&lt;log&gt;, truncateonly)&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-6063448208119244230?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/6063448208119244230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2007/05/clearing-sql-transaction-logs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/6063448208119244230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/6063448208119244230'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2007/05/clearing-sql-transaction-logs.html' title='Clearing SQL Transaction Logs'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-9105080596870477440</id><published>2007-03-22T10:55:00.000-05:00</published><updated>2007-04-03T09:21:33.369-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='reporting-services'/><title type='text'>MOSS Report Library Security</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_GMlUJtijrHE/RgK0rQ8OCqI/AAAAAAAAABo/7zYTl7ng1HA/s1600-h/readpermissions.png"&gt;&lt;img style="border: 1px solid black; margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_GMlUJtijrHE/RgK0rQ8OCqI/AAAAAAAAABo/7zYTl7ng1HA/s200/readpermissions.png" alt="" id="BLOGGER_PHOTO_ID_5044793187983297186" border="0" /&gt;&lt;/a&gt;I was having a problem getting users with the Read permission level (view only) set to access reports I had deployed to the Microsoft Office SharePoint Server Report Library (Reporting Services is running in SharePoint integrated mode).  It turns out that I had versioning turned on the Report Library and I hadn't published the reports to a major version...oops.&lt;br /&gt;&lt;br /&gt;I decided to just turn off versioning for the entire Report Library.  I did this instead of forcing someone to publishing each report after a deployment, which would be really time-consuming. As soon as I disabled versioning, the users with Read permission levels were able to access the report.&lt;br /&gt;&lt;br /&gt;Anyway, just remember to either (a) publish your reports after you deploy them to a Microsoft Office SharePoint Server Report Library, or (b) turn off versioning for the Report Library, so your read-only users will still be able to see the reports.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-9105080596870477440?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/9105080596870477440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2007/03/moss-report-library-security.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/9105080596870477440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/9105080596870477440'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2007/03/moss-report-library-security.html' title='MOSS Report Library Security'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_GMlUJtijrHE/RgK0rQ8OCqI/AAAAAAAAABo/7zYTl7ng1HA/s72-c/readpermissions.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-1360625622576073183</id><published>2007-03-19T13:30:00.000-05:00</published><updated>2007-03-22T12:01:37.925-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Microsoft Virtual Machine</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_GMlUJtijrHE/Rf7yLPYosjI/AAAAAAAAAA4/ggzvAi7A5ms/s1600-h/regedit.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_GMlUJtijrHE/Rf7yLPYosjI/AAAAAAAAAA4/ggzvAi7A5ms/s200/regedit.gif" alt="" id="BLOGGER_PHOTO_ID_5043734907623879218" border="0" /&gt;&lt;/a&gt;There is an &lt;a href="http://support.microsoft.com/kb/826878"&gt;uninstaller for the Microsoft Virtual Machine&lt;/a&gt;, although you may have a hard time getting the uninstall program (try &lt;a href="http://preview.tinyurl.com/2vohsz"&gt;Panorama&lt;/a&gt; or searching &lt;a href="http://www.google.com/search?q=unmsjvm.exe"&gt;Google&lt;/a&gt;).  However, it does not completely remove everything.  I realized this when one of my clients recently forced the uninstall on all system machines.  The uninstaller documentation says it has not been tested on Windows XP...and I believe it.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Panorama uses applets to render visualizations in the front end, so our Panorama web applications started breaking for users that ran the uninstaller even though they had the Sun JVM installed.  The problem is that the uninstaller does not properly cleanup some registry keys.  There are probably other ways to fix this issue, but this is what worked for us:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;start the Windows XP registry editor (Start &gt; Run... &gt; regedit &gt; OK)&lt;/li&gt;&lt;li&gt;find and delete the following 3 registry keys: HKEY_CLASSES_ROOT\CLSID\{08B0E5C0-4FCB-11CF-AAA5-00401C608501}; HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\{08B0E5C0-4FCB-11CF-AAA5-00401C608500}; HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\msjava.dll)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;uninstall all Sun JRE programs and updates from Control Panel &gt; Add Remove Programs&lt;/li&gt;&lt;li&gt;download and install Sun JRE from &lt;a href="http://www.java.com/"&gt;http://www.java.com&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;At no point did should you have to reboot.  However, delete your Internet Explorer cookies and temporary internet files as a precaution.  Keep in mind that this issue probably is not specific to Panorama.  Other software packages and/or websites may have the same issues related to removing the Microsoft VM.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-1360625622576073183?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/1360625622576073183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2007/03/microsoft-virtual-machine.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/1360625622576073183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/1360625622576073183'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2007/03/microsoft-virtual-machine.html' title='Microsoft Virtual Machine'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GMlUJtijrHE/Rf7yLPYosjI/AAAAAAAAAA4/ggzvAi7A5ms/s72-c/regedit.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-4805407052120924172</id><published>2007-03-19T11:51:00.000-05:00</published><updated>2007-03-22T12:01:57.003-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Domain Not Available</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_GMlUJtijrHE/Rf70H_YoslI/AAAAAAAAABI/rVFBUbGKiUc/s1600-h/eventviewer.gif"&gt;&lt;img style="border: 1px solid black; margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_GMlUJtijrHE/Rf70H_YoslI/AAAAAAAAABI/rVFBUbGKiUc/s200/eventviewer.gif" alt="" id="BLOGGER_PHOTO_ID_5043737050812559954" border="0" /&gt;&lt;/a&gt;I use a Windows laptop/notebook for work.  My employer has our machines connected to a corporate domain, even though most of us are at client site(s) on different networks.  This occasionally creates some annoying situations.  I experienced one of these situations this morning.&lt;br /&gt;&lt;br /&gt;I shutdown my machine due to some software maintenance I was performing (&lt;a href="http://aaronhursman.blogspot.com/2007/03/microsoft-virtual-machine.html"&gt;uninstalling the Microsoft VM&lt;/a&gt;).  Upon startup, I got an error when attempting to login with my domain account:&lt;br /&gt;&lt;br /&gt;"The system cannot log you on now because the domain...is not available"&lt;br /&gt;&lt;br /&gt;Normally, this just gets logged in your event viewer and is not a problem for you, because Windows caches your last successful attempt to log into the domain.  However, Windows only lets you use this cache for 10 consecutive, disconnected logins.  This number (10) is only the default.  You can modify this setting in Control Panel &gt; Administrative Tools &gt; Local Security Policy &gt; Local Policies &gt; Security Options &gt; Interactive logon: Number of previous logons to cache (in case domain controller is not available).  However, it will not help to change this setting after you get the error above.  That leaves you with these 3 options:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;physically go to the office - uh, if there's no traffic, the office is still 30 minutes away&lt;br /&gt;&lt;/li&gt;&lt;li&gt;login with dial-up networking - do you even remember those dial-up numbers?  do you still have a modem?  how long is that going to take?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;connect using the Cisco VPN client - this one worked for me, but there are some prerequisites and specific configurations you will need (see below)&lt;/li&gt;&lt;/ol&gt;For option #3 (using the Cisco VPN client), your employer [obviously] must offer it as a VPN option.  Secondly, you must have access to a local account (non-domain account) that is part of the local Administrators group.  If you don't have either Cisco VPN or this local administrator account, then you will have to revert to options #1 or #2.  Otherwise, you can use the Cisco VPN  client to create a VPN connection that will persist across user login sessions.  Here are the steps:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Log into your machine with an account that is a member of the Administrators local group&lt;/li&gt;&lt;li&gt;Start the Cisco VPN client&lt;/li&gt;&lt;li&gt;In the VPN Client window, click the appropriate connection entry.  In the menu bar, click Options &gt; Windows Logon Properties&lt;/li&gt;&lt;li&gt;In the VPN Client | Windows Logon Properties window, uncheck the option labeled, Disconnect VPN connection when logging off&lt;/li&gt;&lt;li&gt;In the VPN Client window, click the OK button in response to the warning message&lt;/li&gt;&lt;li&gt;In the VPN Client | Windows Logon Properties window, click the OK button.&lt;/li&gt;&lt;/ol&gt;Once you connect to this newly altered VPN connection, it will persist even across windows login sessions.  This allows you to log off [the current user] and login with your domain user while you still have an open connection to the domain.  Once you login, you can close the VPN connection as soon as you need to.  You can also revert the VPN client settings back to the previous settings if you feel like it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-4805407052120924172?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/4805407052120924172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2007/03/domain-not-available.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/4805407052120924172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/4805407052120924172'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2007/03/domain-not-available.html' title='Domain Not Available'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_GMlUJtijrHE/Rf70H_YoslI/AAAAAAAAABI/rVFBUbGKiUc/s72-c/eventviewer.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-6092534534160037078</id><published>2007-03-15T17:44:00.000-05:00</published><updated>2007-03-22T11:59:36.307-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint'/><title type='text'>Closed Web Part Gallery</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_GMlUJtijrHE/RgK1vA8OCrI/AAAAAAAAABw/K4gacTgrlgs/s1600-h/awp.png"&gt;&lt;img style="border: 1px solid black; margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_GMlUJtijrHE/RgK1vA8OCrI/AAAAAAAAABw/K4gacTgrlgs/s200/awp.png" alt="" id="BLOGGER_PHOTO_ID_5044794351919434418" border="0" /&gt;&lt;/a&gt;Microsoft Office SharePoint Server 2007 allows you to close web parts on a page.  This is a good alternative to deleting them, in case you think you'll need them back later.  Closed web parts are stored in a page's "Closed Web Parts Gallery."  Unfortunately, finding this gallery isn't very intuitive.  Here's where to find it:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Edit the page&lt;/li&gt;&lt;li&gt;Click "Add a web part" inside one of the web part zones&lt;/li&gt;&lt;li&gt;When the dialog opens, click the "Advanced Web Part gallery and options" link&lt;/li&gt;&lt;li&gt;You'll see an option for the "Closed Web Part Gallery"&lt;/li&gt;&lt;/ol&gt;Just choose the web part you closed previously, and it'll be restored to your page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-6092534534160037078?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/6092534534160037078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2007/03/closed-web-part-gallery.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/6092534534160037078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/6092534534160037078'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2007/03/closed-web-part-gallery.html' title='Closed Web Part Gallery'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_GMlUJtijrHE/RgK1vA8OCrI/AAAAAAAAABw/K4gacTgrlgs/s72-c/awp.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-2833248538264880651</id><published>2007-03-09T11:14:00.000-06:00</published><updated>2007-03-22T12:02:16.540-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sharepoint'/><title type='text'>Web Parts: ASP.NET or WSS</title><content type='html'>Now that Microsoft Office SharePoint Server 2007 is out, you may have asked yourself this question: which base class should your SharePoint web part inherit from? ASP.NET (System.Web.UI.WebControls.WebParts.WebPart) or Windows SharePoint Services (Microsoft.SharePoint.WebPartPages)?&lt;br /&gt;&lt;br /&gt;I found the answer to this question in the Microsoft Windows SharePoint Services 3.0 SDK documentation, &lt;a href="http://msdn2.microsoft.com/en-us/library/ms367238.aspx"&gt;Creating Web Parts in Windows SharePoint Services&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;"Now that Windows SharePoint Services fully supports the Microsoft ASP.NET 2.0 Web Part infrastructure, you should design Web Parts that inherit from the ASP.NET 2.0 System.Web.UI.WebControls.WebParts.WebPart base class whenever possible. Web Parts such as these are known as ASP.NET Web Parts, and can be used in Windows SharePoint Services applications whether Windows SharePoint Services is involved or not, making them highly reusable..."&lt;/blockquote&gt;&lt;blockquote&gt;"...If you are creating your Web Part specifically for a SharePoint site, and it will consume the Windows SharePoint Services object model, you can derive from the ASP.NET System.Web.UI.WebControls.WebParts.WebPart base class and add a reference to the SharePoint object model in your project."&lt;/blockquote&gt;I've decided to inherit from the ASP.NET web part, because (a) it’s recommended by Microsoft, and (b) it doesn’t stop you from leveraging SharePoint services.  To leverage SharePoint services, just drop a reference to the SharePoint object model.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-2833248538264880651?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/2833248538264880651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2007/03/web-parts-aspnet-or-wss.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/2833248538264880651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/2833248538264880651'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2007/03/web-parts-aspnet-or-wss.html' title='Web Parts: ASP.NET or WSS'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-1094042307826685398</id><published>2006-12-15T11:20:00.000-06:00</published><updated>2007-03-22T12:03:30.784-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reporting-services'/><title type='text'>Reporting Services Best Practices: Deployment</title><content type='html'>Since most of us have to deploy our reports to different environments, building and deploying reports and shared data sources in Microsoft SQL Server Reporting Services can become cumbersome. So, I'm recommending this set of best practices:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;leverage the &lt;span style="font-weight: bold;"&gt;shared data source&lt;/span&gt; feature for your reports&lt;/li&gt;&lt;li&gt;create &lt;span style="font-weight: bold;"&gt;different &lt;/span&gt;solution &lt;span style="font-weight: bold;"&gt;configurations&lt;/span&gt; for each deployment environment&lt;/li&gt;&lt;li&gt;use the &lt;span style="font-weight: bold;"&gt;web interface&lt;/span&gt; to &lt;span style="font-weight: bold;"&gt;manage &lt;/span&gt;your shared data sources&lt;/li&gt;&lt;/ol&gt;For example, we'll create 1 shared data source for our 3 reports. We will setup the connection string to communicate with our database on the development server.&lt;br /&gt;&lt;br /&gt;Next, we'll create 3 solution configurations; one for each environment (development, test, and production). You can do this from the Project Properties window. For each configuration, we'll set the TargetFolder and TargetURL appropriately. We'll also set the "Overwrite Data Sources" to False.&lt;br /&gt;&lt;br /&gt;Finally, we are ready to deploy. First set your Active Solution Configuration appropriately (development, test, or production). You can do this from the Project Properties window, too. Next, deploy your project. You can do this from the Solution window by right-clicking on the project name, and clicking Deploy.&lt;br /&gt;&lt;br /&gt;Now that the project has been deployed, we have to update the shared data source (you don't have to do this step for deployments to the development environment). open the Reporting Services web interface (i.e. http://test.reports.com/Reports). Find the shared data source in the target folder and appropriately set the connection string for that environment.&lt;br /&gt;&lt;br /&gt;Next time, [since we decided not to overwrite data sources] you won't have to make any changes to the shared data source. Just set the Active Solution Configuration and deploy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-1094042307826685398?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/1094042307826685398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2006/12/reporting-services-best-practices.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/1094042307826685398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/1094042307826685398'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2006/12/reporting-services-best-practices.html' title='Reporting Services Best Practices: Deployment'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-115090376291882678</id><published>2006-06-21T10:19:00.002-05:00</published><updated>2008-09-26T16:36:42.050-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Uninstall Opera 9 Beta</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.opera.com" title="Opera home page"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand; border: 0;" src="http://i366.photobucket.com/albums/oo105/hursman/opera.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;I had trouble uninstalling the &lt;a href="http://www.opera.com" title="Opera home page"&gt;Opera 9 Beta&lt;/a&gt;.  I was getting an error that stated "Could not find install.log".  After some digging, I was able to successfully uninstall by running the following command:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;C:\&gt;Program Files\Opera 9 Beta\uninst\unwise.exe install.log&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Hopefully, they've fixed this problem in the final release.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-115090376291882678?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/115090376291882678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2006/06/uninstall-opera-9-beta.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/115090376291882678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/115090376291882678'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2006/06/uninstall-opera-9-beta.html' title='Uninstall Opera 9 Beta'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-115075250183324866</id><published>2006-06-19T16:18:00.000-05:00</published><updated>2006-06-19T16:50:23.520-05:00</updated><title type='text'>Better JavaScript Links</title><content type='html'>&lt;a href="http://www.quirksmode.org/js/events_early.html" title="Quirksmode post about early event handlers"&gt;&lt;img style="border-style: none ; margin: 2px; float: right; cursor: pointer" src="http://photos1.blogger.com/blogger/3572/135/320/quirksmode.png" alt="Quirksmode website logo" border="0" /&gt;&lt;/a&gt;Let's assume you have already forgetten that you should be writting unobtrusive JavaScript.  Or maybe you are just cleaning up some code you've inherited, but you aren't ready to go full-banana on &lt;a href="http://bennolan.com/behaviour/" title="Behaviour home page"&gt;Behaviour&lt;/a&gt;, etc.  Well, at least remember to change the way you are used to generating those JavaScript link tags:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;a href="javascript:doSomething()"&amp;gt;Do Something&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;...To something like this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;a href="#" onclick="doSomething();return false"&amp;gt;Do Something&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Note the "return false" call at the end of the onclick attribute value.  This is to prevent the jump-to-the-top-of-the-page effect when users click the link.&lt;br /&gt;&lt;br /&gt;Hat tip to &lt;a href="http://www.quirksmode.org/"&gt;quirksmode&lt;/a&gt; for their &lt;a href="http://www.quirksmode.org/js/events_early.html"&gt;early event handlers&lt;/a&gt; post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-115075250183324866?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/115075250183324866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2006/06/better-javascript-links.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/115075250183324866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/115075250183324866'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2006/06/better-javascript-links.html' title='Better JavaScript Links'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-113226923160842283</id><published>2005-11-17T16:56:00.000-06:00</published><updated>2005-11-17T17:21:38.410-06:00</updated><title type='text'>Degrader JavaScript library is Behaviour++</title><content type='html'>While I was explaining &lt;a href="http://bennolan.com/behaviour/" title="Home page for the Behaviour JavaScript library"&gt;Behaviour&lt;/a&gt; to &lt;a href="http://markup.thekraemers.com/" title="Home page for Mark Kraemer"&gt;Mark Kraemer&lt;/a&gt;, he brought up and interesting issue related to attaching code to &lt;strong&gt;multiple&lt;/strong&gt; DOM elements.  This is an issue that is addressed by yet another JavaScript library.  It is called &lt;a href="http://encytemedia.com/blog/articles/2005/11/12/graceful-degredation-with-prototype-scriptaculous-and-ruby-on-rails-part-2-the-tools-of-the-trade" title="An explanation of the Degrader library"&gt;Degrader&lt;/a&gt;,  (&lt;a href="http://encytemedia.com/files/degrader.js"  title="The source code for Degrader"&gt;.js source code&lt;/a&gt;) and it holds true to the intent of Behaviour (keep script out of markup).  However, it is more flexible.  Instead of having to explicitly declare code to run with a specific element, you can use regular expressions to match multiple elements (by searching ID values for DOM elements).  This looks promising, but I need to play with it before I call it a &lt;a href="http://bennolan.com/behaviour/" title="Home page for the Behaviour JavaScript library"&gt;Behaviour&lt;/a&gt; killa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-113226923160842283?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/113226923160842283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2005/11/degrader-javascript-library-is.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/113226923160842283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/113226923160842283'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/11/degrader-javascript-library-is.html' title='Degrader JavaScript library is Behaviour++'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-113217353259688777</id><published>2005-11-16T14:36:00.000-06:00</published><updated>2005-11-16T14:56:25.466-06:00</updated><title type='text'>Behaviour addLoadEvent()</title><content type='html'>&lt;a href="http://bennolan.com/behaviour/" title="Homepage of the Behavior JavaScript library"&gt;&lt;img style="border-style: none ; margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger/3572/135/200/behaviour.1.jpg" alt="Logo of Behavior JavaScript library" /&gt;&lt;/a&gt;I recently discovered that the &lt;a href="http://bennolan.com/behaviour/" title="Homepage of the Behavior JavaScript library"&gt;Behaviour&lt;/a&gt; library contains an addLoadEvent() method allowing you to run code onLoad of the page. Before I found this, I was still including script in the body markup (the onload attribute of the body tag). Here is an example:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;!doctype html public "-//w3c//dtd xhtml 1.1//en"&lt;br /&gt;"http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" &amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;script src="behaviour.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;Behaviour.addLoadEvent(function(){alert("Hello, World!")});&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;This is the page body.&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;This method allows you to keep true to Behavior's purpose: to keep script out of your markup via unobtrusive JavaScript.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-113217353259688777?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/113217353259688777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2005/11/behaviour-addloadevent.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/113217353259688777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/113217353259688777'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/11/behaviour-addloadevent.html' title='Behaviour addLoadEvent()'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-113156809415692274</id><published>2005-11-09T14:14:00.000-06:00</published><updated>2005-11-09T14:29:38.553-06:00</updated><title type='text'>Object-Oriented JavaScript</title><content type='html'>I've known for a long time that JavaScript is object oriented, but apparently, I've been using an antiquated syntax. New JavaScript frameworks like &lt;a href="http://prototype.conio.net/" title="Homepage for the Prototype JavaScript Library"&gt;Prototype&lt;/a&gt; and &lt;a href="http://dojotoolkit.org/" title="Homepage for the Dojo, the Browser Toolkit"&gt;Dojo&lt;/a&gt;, use property lists to define new objects. Here's a simple example I pulled from the &lt;a href="http://dojotoolkit.org/docs/" title="Documentation site for Dojo"&gt;Dojo documentation&lt;/a&gt;:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;var exampleObj = {&lt;br /&gt;  counter: 0,&lt;br /&gt;  foo: function(){&lt;br /&gt;      alert("foo");&lt;br /&gt;      this.counter++;&lt;br /&gt;  },&lt;br /&gt;  bar: function(){&lt;br /&gt;      alert("bar");&lt;br /&gt;      this.counter++;&lt;br /&gt;  }&lt;br /&gt;};&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Here's some examples of how you might use this new object:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;exampleObj.foo();&lt;br /&gt;exampleObj.bar();&lt;br /&gt;alert( exampleObj.counter );&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Man, I've gotten behind the times. I thought I had mastered most everything JavaScript had to offer years ago. The world was moving on without me. Forgive me while I attempt to catch up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-113156809415692274?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/113156809415692274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2005/11/object-oriented-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/113156809415692274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/113156809415692274'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/11/object-oriented-javascript.html' title='Object-Oriented JavaScript'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-113147207790939538</id><published>2005-11-08T11:36:00.000-06:00</published><updated>2005-11-08T11:48:56.970-06:00</updated><title type='text'>Stop hiding your scripts and styles</title><content type='html'>Back in the day, we used to use &lt;a href="http://www.javascripter.net/faq/hidingjs.htm" title="Instructions on how to hide JavaScript code from old browsers"&gt;HTML comment tags to hide our scripts&lt;/a&gt; and styles from older, non-compliant browsers.  These days, we should all be writing our pages in well-formed XHTML 1.1, and &lt;a href="http://www.alistapart.com/stories/tohell/" title="A List Apart: To Hell with Bad Browsers"&gt;old browsers suck&lt;/a&gt;.  Furthermore, browsers in the future may become &lt;a href="http://www.outofthetrees.co.uk/resources/business-benefits.php?page=4" title="Why Modern Web Standards Can Save You Money"&gt;less forgiving&lt;/a&gt;.  Therefore, you should &lt;a href="http://www.netmechanic.com/news/vol6/javascript_no12.htm" title="Article: New Browsers May Ignore Your JavaScript"&gt;stop doing it&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-113147207790939538?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/113147207790939538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2005/11/stop-hiding-your-scripts-and-styles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/113147207790939538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/113147207790939538'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/11/stop-hiding-your-scripts-and-styles.html' title='Stop hiding your scripts and styles'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-113140494302942427</id><published>2005-11-07T17:03:00.001-06:00</published><updated>2012-01-23T16:20:47.724-06:00</updated><title type='text'>JavaScript: Array Alternative</title><content type='html'>Instead of using a JavaScript array, sometimes you need to use a "properties list" instead.  A properties list is really a name-value pair (a.k.a. key-value pair).  Here's an example of how to declare it and different ways to reference objects in the list:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;var x = {color:'blue' , height:100, width: 200};&lt;br /&gt;for( y in x ) {&lt;br /&gt;   alert( y + "=" + x[y] );&lt;br /&gt;}&lt;br /&gt;alert( x.color );&lt;br /&gt;alert( x["height"] );&lt;br /&gt;alert( x['width'] );&lt;/code&gt;&lt;br /&gt;I had to post this because I recently noticed different AJAX libraries (i.e. &lt;a href="http://prototype.conio.net/" title="Home page of Prototype JavaScript library"&gt;Prototype&lt;/a&gt;, &lt;a href="http://moofx.mad4milk.net/" title="Home page of the moo.fx JavaScript library"&gt;moo.fx&lt;/a&gt;, &lt;a href="http://script.aculo.us/" title="Home page of the Script.aculo.us JavaScript library"&gt;Script.aculo.us&lt;/a&gt;) leveraging such code. It was foreign to me, so I thought others might benefit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-113140494302942427?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/113140494302942427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2005/11/javascript-array-alternative.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/113140494302942427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/113140494302942427'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/11/javascript-array-alternative.html' title='JavaScript: Array Alternative'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-113043835785766218</id><published>2005-10-27T13:38:00.000-05:00</published><updated>2005-10-27T13:49:08.986-05:00</updated><title type='text'>Prototype Documentation</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://prototype.conio.net/"&gt;&lt;img style="margin: 0 0 3px 3px; float: right; cursor: pointer; border-style: none;" src="http://prototype.conio.net/images/prototype.png" alt="" /&gt;&lt;/a&gt;The &lt;a href="http://prototype.conio.net/"&gt;Prototype&lt;/a&gt; script library (what &lt;a href="http://script.aculo.us/"&gt;script.aculo.us&lt;/a&gt; is based on) has bad/no documentation.  Sergio Pereira published the &lt;a href="http://www.sergiopereira.com/articles/prototype.js.html"&gt;Developer Notes for prototype.js&lt;/a&gt; site that fills this void.  Read the first couple of paragraphs, and you’ll understand the power of the library.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-113043835785766218?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/113043835785766218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2005/10/prototype-documentation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/113043835785766218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/113043835785766218'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/10/prototype-documentation.html' title='Prototype Documentation'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-112420706172046405</id><published>2005-08-16T10:41:00.000-05:00</published><updated>2005-08-16T14:57:50.883-05:00</updated><title type='text'>Aspirin for Windows Domain Headaches</title><content type='html'>If you work at multiple locations (i.e. you are a consultant like me), those Windows domains at your client site can be a real pain.  Here are &lt;a href="http://tinyurl.com/3xffy"&gt;some instructions&lt;/a&gt; that allow you to connect to network domain resources even when your machine isn't registered on the same domain.  Most of my project team nor I was aware of this feature, so I thought I'd share with you.  Enjoy the relief.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-112420706172046405?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/112420706172046405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2005/08/aspirin-for-windows-domain-headaches.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/112420706172046405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/112420706172046405'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/08/aspirin-for-windows-domain-headaches.html' title='Aspirin for Windows Domain Headaches'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-112420563698884094</id><published>2005-08-16T10:13:00.000-05:00</published><updated>2005-08-16T10:39:22.903-05:00</updated><title type='text'>Where is the Move command in TortoiseSVN?</title><content type='html'>I've been using &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt; for source control on the current project.  I am on a windows machine, so I like to use the &lt;a href="http://tortoisesvn.tigris.org/"&gt;TortoiseSVN&lt;/a&gt; client which integrates nicely with the Windows Explorer application. I recently wanted to move a directory to another location. However, performing Subversion move commands using Tortoise SVN is [arguably] not intuitive. I assumed you should be able to right-click on the directory and find a "Move" command under the TortoiseSVN folder. Not so...Instead right-click and drag the folder to the new location, and when you release the mouse button, you will be given the option to move the versioned files.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-112420563698884094?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/112420563698884094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2005/08/where-is-move-command-in-tortoisesvn.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/112420563698884094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/112420563698884094'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/08/where-is-move-command-in-tortoisesvn.html' title='Where is the Move command in TortoiseSVN?'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-112240648322531307</id><published>2005-07-26T14:32:00.000-05:00</published><updated>2005-07-26T14:36:31.766-05:00</updated><title type='text'>Navigator Icon</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3572/135/1600/icon-24x241.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger/3572/135/400/icon-24x24.jpg" alt="" border="0" /&gt;&lt;/a&gt;This is an icon that I created from our Navigator logo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-112240648322531307?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/112240648322531307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/112240648322531307'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/07/navigator-icon.html' title='Navigator Icon'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-111937961697782693</id><published>2005-06-21T13:37:00.000-05:00</published><updated>2005-06-21T13:54:51.030-05:00</updated><title type='text'>Enabling Server-Side Includes on Apache</title><content type='html'>Sometimes the documentation for the Apache Http Server is difficult to understand (or just bad altogether). One section that should be easier to understand is how to &lt;a href="http://httpd.apache.org/docs/mod/mod_include.html"&gt;enable server-side includes&lt;/a&gt;.  Therefore, I've translated that section into the following:&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;Open &lt;apache_root&gt;/conf/http.conf&lt;/apache_root&gt;&lt;/li&gt;   &lt;li&gt;Make sure the following line is already in the file: &lt;code&gt;LoadModule include_module modules/mod_include.so&lt;/code&gt;&lt;br /&gt;&lt;/li&gt;   &lt;li&gt;Add the following line to the end of the file: &lt;code&gt;AddType text/html .shtml&lt;/code&gt;&lt;/li&gt;   &lt;li&gt;Add the following line to the end of the file: &lt;code&gt;AddHandler server-parsed .shtml&lt;/code&gt;&lt;/li&gt;   &lt;li&gt;Add the following line inside the &lt;code&gt;&amp;lt;Directory /&amp;gt;&lt;/code&gt; tag: &lt;code&gt;Options +Includes&lt;/code&gt;&lt;/li&gt;   &lt;li&gt;Save the file (http.conf)&lt;/li&gt;   &lt;li&gt;Restart the server&lt;/li&gt;   &lt;li&gt;Name your files that use the &lt;code&gt;&amp;lt;!--#include file="..." --&amp;gt;&lt;br /&gt;&lt;/code&gt; directive with an &lt;code&gt;.shtml&lt;/code&gt; extension&lt;/li&gt; &lt;/ol&gt; There's probably a lot more that is possible that I am leaving out, but this should get you exactly what you probably need. If you don't want to use the &lt;code&gt;.shtml&lt;/code&gt; extension (and leverage the &lt;code&gt;include&lt;/code&gt; directive in &lt;code&gt;.html&lt;/code&gt; files, you can skip steps #3 &amp;amp; #8, but change step #4 from &lt;code&gt;.shtml&lt;/code&gt; to &lt;code&gt;.html&lt;/code&gt;.  Realize, however, that all &lt;code&gt;.html&lt;/code&gt; files on your site will have to go through the server parser, and, therefore, potential performance issues could occur.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-111937961697782693?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/111937961697782693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2005/06/enabling-server-side-includes-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111937961697782693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111937961697782693'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/06/enabling-server-side-includes-on.html' title='Enabling Server-Side Includes on Apache'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-111817371847916967</id><published>2005-06-07T14:48:00.000-05:00</published><updated>2007-03-22T12:05:36.948-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><title type='text'>Stupify IntelliTXT</title><content type='html'>UPDATE: I'm now using &lt;a href="http://slashetc.net/home"&gt;Steven Barnett&lt;/a&gt;'s &lt;a href="http://slashetc.net/code/intellitxt-disabler.user.js"&gt;script&lt;/a&gt; instead of Micheal's due to a problem in Gmail caused by the http* pattern.&lt;br /&gt;&lt;br /&gt;Get your &lt;a href="http://greasemonkey.mozdev.org/"&gt;Greasemonkey&lt;/a&gt; on and install &lt;a href="http://mushika.blogspot.com/js/dumbtxt.user.js"&gt;this script from Michael Kennan&lt;/a&gt; to kill those annoying &lt;a href="http://www.intellitxt.com/site/advertisers_01a.html"&gt;IntelliTXT&lt;/a&gt; "contextual advertising" links (see screenshot below). Additionally, I've found that the pattern http* helps kill anysite that is using this technique (by default, Michael is only killing &lt;a href="http://www.tomshardware.com/"&gt;tomshardware.com&lt;/a&gt; and &lt;a href="http://www.experts-exchange.com/"&gt;experts-exchange.com&lt;/a&gt; pages).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/img/23/1299/640/dumbtxt-1.jpg"&gt;&lt;img style="border: 1px solid rgb(0, 0, 0); margin: 2px;" src="http://photos1.blogger.com/img/23/1299/480/dumbtxt-1.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-111817371847916967?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/111817371847916967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2005/06/stupify-intellitxt.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111817371847916967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111817371847916967'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/06/stupify-intellitxt.html' title='Stupify IntelliTXT'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-111816784513237378</id><published>2005-06-07T13:20:00.000-05:00</published><updated>2007-03-22T12:05:36.948-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><title type='text'>Wonder Twins: Firefox+Greasemonkey (continued)</title><content type='html'>Here's what you get when viewing &lt;a href="http://linux.about.com/od/commands/l/blcmds.htm"&gt;a page on about.com&lt;/a&gt; with &lt;a href="http://www.mozilla.org/products/firefox/"&gt;Firefox&lt;/a&gt; (plus the &lt;a href="http://greasemonkey.mozdev.org/"&gt;Greasemonkey&lt;/a&gt; extension and &lt;a href="http://dunck.us/collab/GreaseMonkeyUserScripts#head-afa9a13b2705727f396ebded75ed4944f17d280d"&gt;a script&lt;/a&gt; for &lt;a href="http://about.com/"&gt;About.com&lt;/a&gt;)&lt;br /&gt;&lt;a href="http://photos1.blogger.com/img/23/1299/640/good-5.jpg"&gt;&lt;img style="border: 1px solid rgb(0, 0, 0); margin: 2px;" src="http://photos1.blogger.com/img/23/1299/480/good-5.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-111816784513237378?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/111816784513237378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2005/06/wonder-twins-firefoxgreasemonkey_07.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111816784513237378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111816784513237378'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/06/wonder-twins-firefoxgreasemonkey_07.html' title='Wonder Twins: Firefox+Greasemonkey (continued)'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-111816782867008451</id><published>2005-06-07T13:10:00.000-05:00</published><updated>2007-03-22T12:05:36.949-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><title type='text'>Wonder Twins: Firefox+Greasemonkey</title><content type='html'>If you aren't using &lt;a href="http://www.mozilla.org/products/firefox/"&gt;Mozilla Firefox&lt;/a&gt; with &lt;a href="http://greasemonkey.mozdev.org/"&gt;Greasemonkey&lt;/a&gt;, you are missing out. For reference sake, here's what you get when viewing &lt;a href="http://linux.about.com/od/commands/l/blcmds.htm"&gt;a page on about.com&lt;/a&gt; with &lt;a href="http://www.getinternetexplorer.com/"&gt;Microsoft Internet Explorer&lt;/a&gt; (minus any popup blocker add-ons).&lt;br /&gt;&lt;a href="http://photos1.blogger.com/img/23/1299/640/bad-5.jpg"&gt;&lt;img style="border: 1px solid rgb(0, 0, 0); margin: 2px;" src="http://photos1.blogger.com/img/23/1299/480/bad-5.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-111816782867008451?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/111816782867008451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2005/06/wonder-twins-firefoxgreasemonkey.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111816782867008451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111816782867008451'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/06/wonder-twins-firefoxgreasemonkey.html' title='Wonder Twins: Firefox+Greasemonkey'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-111815925598204302</id><published>2005-06-07T10:43:00.000-05:00</published><updated>2007-03-22T12:05:36.950-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><title type='text'>Firefox Wins</title><content type='html'>PC World has just given the top spot in its &lt;a href="http://www.pcworld.com/reviews/article/0,aid,120763,pg,12,00.asp" title="PC World's Full List of 100 Best Products of 2005"&gt;100 Best Products of 2005&lt;/a&gt; to Mozilla Firefox.  A big congrats to &lt;a href="http://www.mozilla.org/products/firefox/" title="Product page for Mozill Firefox"&gt;Firefox&lt;/a&gt;, and a big booya to &lt;a href="http://www.getinternetexplorer.com/" title="Humorous take on Microsoft Internet Explorer"&gt;Microsoft Internet Explorer&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-111815925598204302?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/111815925598204302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2005/06/firefox-wins.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111815925598204302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111815925598204302'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/06/firefox-wins.html' title='Firefox Wins'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-111806877889721495</id><published>2005-06-06T09:27:00.000-05:00</published><updated>2007-03-22T12:05:36.951-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><title type='text'>Firefox Vulnerability</title><content type='html'>Secunia has posted another Firefox/Mozilla &lt;a href="http://tinyurl.com/3yat4" title="Mozilla Firefox vulnerability description by Secunia"&gt;vulnerability&lt;/a&gt;.  Basically, it allows website authors to inject content into windows opened by visitors from their website.  However, using an extension like &lt;a href="http://tinyurl.com/7tzsm" title="Mozilla Add-Ons site for Tabbrowser Preferences"&gt;Tabbrowser Preferences&lt;/a&gt; prevents you from being affected.  I've noticed that tab-based extensions have protected me in the past.  If history says anything, I'm sure &lt;a href="http://www.mozilla.org/products/firefox/" title="Firefox homepage"&gt;Firefox&lt;/a&gt; patch will be posted within a week or so.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-111806877889721495?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/111806877889721495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2005/06/firefox-vulnerability.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111806877889721495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111806877889721495'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/06/firefox-vulnerability.html' title='Firefox Vulnerability'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-111782357650839175</id><published>2005-06-03T11:46:00.000-05:00</published><updated>2005-10-31T12:56:28.256-06:00</updated><title type='text'>XHTML and CSS Templates</title><content type='html'>UPDATED: My previous host killed the files I created.  Instead of republishing them, I'm going to recommend another set of &lt;a href="http://tinyurl.com/at5en" title="XHTML and CSS templates"&gt;XHTML and CSS templates&lt;/a&gt; for you to use when building your site.  The files are maintained by &lt;a href="http://particletree.com/" title="Particle Tree home page"&gt;Particle Tree&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-111782357650839175?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/111782357650839175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2005/06/xhtml-and-css-templates.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111782357650839175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111782357650839175'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/06/xhtml-and-css-templates.html' title='XHTML and CSS Templates'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-111772586225801884</id><published>2005-06-02T10:24:00.000-05:00</published><updated>2007-03-22T12:05:36.951-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><title type='text'>Tab X Firefox Extension</title><content type='html'>If you are having trouble with the new version of the &lt;a href="http://tinyurl.com/9ugdk" title="Tab X description and download page on the Mozilla Update website"&gt;Tab X&lt;/a&gt; extension for Mozilla Firefox, it may be related a conflicting feature of to the &lt;a href="http://tinyurl.com/ajczt" title="Focus Last Selected Tab description and download page on the Mozilla Update website"&gt;Focus Last Selected Tab&lt;/a&gt; extension. Just disable "enable tabflipping" in the Focus Last Seleted Tab options dialog (see screenshot), and everything should be fixed up nicely.&lt;br /&gt;&lt;a href='http://photos1.blogger.com/img/23/1299/640/flt.jpg'&gt;&lt;img border='0' style='border:1px solid #000000; margin:2px' src='http://photos1.blogger.com/img/23/1299/480/flt.jpg'&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-111772586225801884?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/111772586225801884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2005/06/tab-x-firefox-extension.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111772586225801884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111772586225801884'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/06/tab-x-firefox-extension.html' title='Tab X Firefox Extension'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-111592319668439322</id><published>2005-06-01T13:32:00.000-05:00</published><updated>2005-06-03T14:18:44.170-05:00</updated><title type='text'>SiteMesh &gt; Tiles</title><content type='html'>Up to this point, most of the Java web applications I've built have used the open source Tiles project from Jakarta to control page layouts.  Although I've typically been able to get it to turn out the results I wanted, Tiles still leaves some things to be desired.  Recently, I've been introduced to &lt;a href="http://www.opensymphony.com/sitemesh/" title="SiteMesh Homepage"&gt;SiteMesh&lt;/a&gt; from &lt;a href="http://www.opensymphony.com/" title="OpenSymphony Homepage"&gt;OpenSymphony&lt;/a&gt; on my current project.  The bottom line is that SiteMesh is a &lt;a href="http://struts.apache.org/userGuide/dev_tiles.html" title="Tiles Developer Guide"&gt;Tiles&lt;/a&gt; killer.  You get all the functionality of Tiles without the headaches.  It is easier to learn, setup, configure, maintain, and it even &lt;span style="font-style:italic;"&gt;seems&lt;/span&gt; to perform much better (no scientific tests performed...just initial observations).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;My Approach&lt;/span&gt;&lt;br /&gt;I came up with a set of decorators [combined with our CSS stategy] to control page layout.  I've listed them here with a brief description of each:&lt;ul&gt;&lt;li&gt;normal.jsp - Flexible layout, variable width, include branding, tools, nav,...&lt;/li&gt;&lt;br /&gt;&lt;li&gt;portal.jsp - Fixed width, used to layout pages in portal style, includes branding, tools, nav, ...&lt;/li&gt;&lt;br /&gt;&lt;li&gt;light.jsp - Light branding, no tools, no navigation.  Used on pages like login.jsp where users haven't been authenticated yet&lt;/li&gt;&lt;br /&gt;&lt;li&gt;minimal.jsp - No branding or anything, but full xhtml document.  Good for dialogs&lt;/li&gt;&lt;br /&gt;&lt;li&gt;error.jsp - Intended to decorate error pages only&lt;/li&gt;&lt;br /&gt;&lt;li&gt;portlet.jsp - Wraps content inside a portlet look.  Not a full xhtml document; only a fragment&lt;/li&gt;&lt;br /&gt;&lt;li&gt;stripped.jsp - Uses no decoration at all, only includes body.  Good for pages where you can't have any extras.  Basically, this takes "minimal.jsp" one step futher.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The Good (Pros)&lt;/span&gt;&lt;br /&gt;I want to point out the highlights of SiteMesh's strengths.&lt;ul&gt;&lt;li&gt;Central configuration - There is just ONE place to do all layout configurations (decorators.xml).  And because of patterns (see next point) you don't have to create a definition for EVERY page in your application.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Patterns - to apply a decorator to a page, you just have to have a matching pattern definition in decorators.xml (including the use of wildcards)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Applying decorators inside decorators - much like Tiles, you can always apply a decorator to a portion of another decorator.  I found this useful when I needed to apply my "portlet" decorator to just a portion of a page.  You can even pass parameters to the "subdecorators" just like you can in Tiles.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Flexibility - you can do just about anything you dream up.  Everytime I dreamed up some strange requirement, I was able to pull it off...without the typical kludginess.  This one surprises me, because SiteMesh's tag library consist of like 6 tags total.  SiteMesh is simple, but still very flexible.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Full decorators vs. fragments - your decorators can be fully valid xhtml pages, or they can be small fragments that belong in a bigger page.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Useful tag attributes - the &lt;code&gt;writeEntireProperty&lt;/code&gt; attribute of the decorator:getProperty prevents you from having to do silly &lt;code&gt;empty&lt;/code&gt; checks and conditional insertions of non-breaking spaces.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Layouts separate from content - you can finally keep your dynamic pages content-only!  Use the decorators in combination with cascading stylesheets to style your markup.  Keep your content clean!&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Pages can live on their own - You can build your jsps as fully functional on their own.  You don't have to make them fragments and assume they'll be properly wrapped with navigation, branding, footer, menu, ... by some other entity.  Because SiteMesh rips out all the &lt;code&gt;head&lt;/code&gt; and &lt;code&gt;body&lt;/code&gt; tags you have ultimate control.  Ultimately, this can help you reduce the total number of jsp files.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The Not-So-Good (Cons)&lt;/span&gt;&lt;br /&gt;Of course, nothing's perfect.  Here's a few complaints I have with SiteMesh:&lt;ul&gt;&lt;li&gt;Error pages - Error pages (404, 500, ...) don't get decorated according to patterns you define in decorators.xml.  There's a workaround (apply the decorator locally in the error jsp).  This feels wrong (I like to keep my pages from knowing they are being decorated), but maybe there's a reason for this that I'm aware of (i.e. response headers?)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Compile Errors - because of the previous point, compile errors can get really messy...especially when you use a "subdecorator" technique.  Because you have to apply decorators from within error pages, you can end up w/ double branding, navigaiton, menus, etc.  I suppose this is ok, since you should clean up those compile errors prior to deployment, but it'll give you a jolt during development.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Infinite Looping - if I had a problem with one of my jsps, I'd occasionally see some infinite looping issues.  I can't for sure say it was SiteMesh's fault (we were also using Spring MVC), but it appeared to be the culprit.  Page text prior to the error was repeated over and over on the page infinitely.  Sorry, I'm fuzzy on the details of this one, but it was all related to a syntax problem on the jsp that was being decorated.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Third-party custom tag libraries - We were using a DB2 Alphablox tag that had to be placed inside the decorators.  The tag does some server-side mojo that required us to move it to the decorator.  I would rather have left the tag in the original jsp, but SiteMesh was ignoring the tag altogether.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;In summary, I really like SiteMesh.  I suppose you can tell by the list above.  If I ever discover any additional shortcomings I'll be sure to share those, too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-111592319668439322?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/111592319668439322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2005/06/sitemesh-tiles.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111592319668439322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111592319668439322'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/06/sitemesh-tiles.html' title='SiteMesh &gt; Tiles'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-111764002738903201</id><published>2005-05-12T11:40:00.004-05:00</published><updated>2008-10-02T09:52:13.641-05:00</updated><title type='text'>Navigator Systems</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_GMlUJtijrHE/SOTgEm-wFuI/AAAAAAAAAL4/odJ0HnfScR8/s1600-h/navigator-badge1.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_GMlUJtijrHE/SOTgEm-wFuI/AAAAAAAAAL4/odJ0HnfScR8/s400/navigator-badge1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5252569435208685282" /&gt;&lt;/a&gt;I work for &lt;a href="http://www.navigatorsystems.com" title="Homepage for Navigator Systems, Inc."&gt;Navigator Systems, Inc.&lt;/a&gt;, a Corporate Performance Management (CPM) consulting firm.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-111764002738903201?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111764002738903201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111764002738903201'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/05/my-company.html' title='Navigator Systems'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_GMlUJtijrHE/SOTgEm-wFuI/AAAAAAAAAL4/odJ0HnfScR8/s72-c/navigator-badge1.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7645160.post-111591600324211852</id><published>2005-05-12T11:39:00.000-05:00</published><updated>2005-05-12T13:08:33.000-05:00</updated><title type='text'>New Beginnings</title><content type='html'>Welcome to the site that basically picks up where the &lt;a href="http://radio.weblogs.com/0117797/" title="Registered Hearse home page"&gt;Registered Hearse&lt;/a&gt; left off.  I'm gonna try this blogging thing a second time.  Let's see how long it lasts &lt;span style="font-style:italic;"&gt;this&lt;/span&gt; go-round.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7645160-111591600324211852?l=aaron.hursman.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaron.hursman.com/feeds/111591600324211852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://aaron.hursman.com/2005/05/new-beginnings_111591600324211852.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111591600324211852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7645160/posts/default/111591600324211852'/><link rel='alternate' type='text/html' href='http://aaron.hursman.com/2005/05/new-beginnings_111591600324211852.html' title='New Beginnings'/><author><name>Aaron Hursman</name><uri>https://profiles.google.com/115672419181567267354</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-TrSjxon-_So/AAAAAAAAAAI/AAAAAAAAAls/kRHlRh6TzfQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
