<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MatSays : ramblings of a grumpy developer-designer-teacher &#187; Tips and Tricks</title>
	<atom:link href="http://www.matsays.com/category/misc/tricks/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.matsays.com</link>
	<description>ramblings of a grumpy developer - designer - teacher &#124; my art institute of las vegas web design blog</description>
	<lastBuildDate>Wed, 23 Jun 2010 15:56:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>WordPress 3.0</title>
		<link>http://www.matsays.com/misc/wordpress-3-0/</link>
		<comments>http://www.matsays.com/misc/wordpress-3-0/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 15:56:16 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Internet News]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Toolbox]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.matsays.com/?p=1208</guid>
		<description><![CDATA[I&#8217;ve been waiting in anticipation for the release of WP3.0 and now that it went full-bore, I&#8217;ve been way to busy to mess around with it. Nonetheless, I&#8217;m looking forward to spending a few hours this weekend checking out the changes. In the meantime, here&#8217;s a good post from Craig Buckler at Sitepoint &#8230;
WordPress version [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been waiting in anticipation for the release of WP3.0 and now that it went full-bore, I&#8217;ve been way to busy to mess around with it. Nonetheless, I&#8217;m looking forward to spending a few hours this weekend checking out the changes. In the meantime, here&#8217;s a <a href="http://www.sitepoint.com/blogs/2010/06/22/whats-new-in-wordpress-3-0-for-developers/">good post from Craig Buckler at Sitepoint</a> &#8230;</p>
<p>WordPress version 3.0 was released at the end of last week. It’s a little later than the intended May 1 release date, but WordPress is one of the most popular blogging and content management systems on the planet, so it was better to be late than cause issues for thousands of websites.</p>
<p>The update is the result of six months’ work by 218 dedicated contributors, culminating in 1,217 bug fixes and feature enhancements. So what can you expect from WordPress 3.0?</p>
<h4>New Installer</h4>
<p>WordPress has always been easy to install but it’s become even simpler. Few administrators will have to fiddle with the <code>wp-config.php</code> configuration file: all the MySQL settings can be specified within the installer panels now.</p>
<p>The new installer also allows you to specify the administrator ID and password. I suspect few people ever bothered to change it from the default “admin” in previous versions, so the facility to create your own ID will aid security.</p>
<h4>New Interface</h4>
<p>The WordPress 3.0 administration panels have received a polish. It’s hardly a radical change from version 2, but it’s lighter and feels slicker.</p>
<p><a href="http://www.matsays.com/wp-content/uploads/2010/06/wordpress-3-admin.png"><img class="aligncenter size-full wp-image-1209" title="wordpress-3-admin" src="http://www.matsays.com/wp-content/uploads/2010/06/wordpress-3-admin.png" alt="" width="450" height="387" /></a></p>
<p>There are few obvious changes to the interface until you reach the Appearance section.</p>
<h4>New Default Theme</h4>
<p>RIP Kubrick: you’ve served us well and many websites use you to this day. Kubrick has been replaced by “Twenty Ten,” a new theme that has built-in support for child themes, background alterations, header customization, and drop-down menus.</p>
<p>The theme’s look and widgets can be customized within the administration panel, so I expect many people will never venture beyond the Twenty Ten theme. For those that do, there’s a new “Install Themes” tab that allows you to search for templates by color, type, and features.</p>
<p><em>Not impressed but then again, if they made a nice one, I&#8217;d be out of extra work!</em></p>
<h4>WordPress Multi-user</h4>
<p>WordPress MU was a fork that allowed hundreds of blogs to run from a single installation; it has now been merged with the main version 3.0 application. It’s disabled by default, but can be switched on by adding the following line to your <code>wp-config.php</code> file:</p>
<div>
<div><code>define('WP_ALLOW_MULTISITE', true);<br />
</code></div>
</div>
<p>This could be the most important feature for web developers: you can create a number of websites using just one installation of WordPress. Updates are easier and hosting space is drastically reduced.</p>
<h4>Custom Post Types</h4>
<p>Pages and Posts were available in previous versions of WordPress:</p>
<ul>
<li>Pages were normally used for static content such as About Us or Contact Us pages.</li>
<li>Posts would commonly be used for date-stamped news, articles, or blog posts.</li>
</ul>
<p>WordPress 3.0 supports custom post types. For example, you could have a Product type that’s specifically used for items sold on your website. Product pages can then be treated separately; for example, have their own menu or search box.</p>
<p>Custom post types are configured using PHP rather than within the administration panels. Watch out for a full tutorial on SitePoint shortly.</p>
<h4>Other Features</h4>
<p>Where do I start? I suggest you visit <a href="http://codex.wordpress.org/Version_3.0">the WordPress 3.0 Codex page</a> for a comprehensive list.</p>
<h4>Should you upgrade now?</h4>
<p>I have no hesitation in recommending WordPress 3.0 for a new installation. But what if you’re upgrading from WordPress 2.x?</p>
<p>I’ve rarely experienced problems with the WordPress automated upgrade; it’s a quick one-click process that just works. However, my first attempt failed abysmally and I was left with a broken site. You should note that this was a test installation of 2.8.6 with lots of dodgy code and plugins, but you need to be wary: some themes and plugins are certain to break.</p>
<p>I would recommend updating a local test version of your site before attempting to upgrade the live server. Remember to back up your files and MySQL database, and you can’t go wrong.</p>
<p>If past experience is anything to go by, the WordPress team will almost certainly release 3.0.1 within a few weeks. If you’re especially nervous, you might be advised to wait a little longer …</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Fwordpress-3-0%2F', 'WordPress+3.0')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusorange.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/wordpress-3-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Cautionary Tale</title>
		<link>http://www.matsays.com/soapbox/dont-work-for-family-friends/</link>
		<comments>http://www.matsays.com/soapbox/dont-work-for-family-friends/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 15:25:18 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Soapbox]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.matsays.com/?p=1193</guid>
		<description><![CDATA[via anonymous donor in one of my favorite tumblogs &#8211; Clients From Hell &#8211; but one of the most well written accounts for up-and-coming (meaning student and novice) web developers&#8230;
I’m sure none of you are strangers to being asked to do favours for  friends and family. I’m here to tell you that while there’s [...]]]></description>
			<content:encoded><![CDATA[<p><strong>via anonymous donor</strong> in one of my favorite tumblogs &#8211; <a title="A Cautionary Tale" href="http://clientsfromhell.net/post/700943778/a-cautionary-tale"><strong>Clients From Hell</strong></a> &#8211; but one of the most well written accounts for up-and-coming (meaning student and novice) web developers&#8230;</p>
<hr size="1" />I’m sure none of you are strangers to being asked to do favours for  friends and family. I’m here to tell you that while there’s nothing  wrong with doing a favour for someone you love now and then, always draw  up a contract and terms of service, no matter how small or minimal the  project. I don’t care if you’re doing it for free &#8211; make them sign a  contract.  In this case, I assume complete responsibility for the  following situation because I mistakenly worked from trust. I should  also warn you that this reads more like a bad romance than anything  else, but hey, I wouldn’t wish the following on anyone.</p>
<p>Background: I’m a 22-year-old university student with aspirations of  practicing rural medicine. I’m also a freelance web/print designer. It’s  my sole source of income, and it’s what I do to put myself through  school. I don’t have much of a social life because I balance a full-time  university schedule with twenty to thirty hours a week of volunteer and  paid design work.  I wouldn’t change a thing here. I’m happiest  a-codin’ and designin’, and I count myself as pretty lucky to be able to  make a living from my hobby while I’m working towards my doc dreams.<span id="more-1193"></span></p>
<p>I’ve  always been a nerdy and creative kid, so I got into computers and art  at a fairly young age. I knew I liked designing and I spent a lot of  time playing with Python to pick up on basic programming in middle  school. In high school, I designed posters and crappy Geocities websites  for nearly every extra-curricular club around. So when I was fifteen, I  was really excited when my dad asked me if I’d be interested in doing  some design work for a good business acquaintance of his, whom I’ll  refer to from now on as CFH (for Client From Hell &#8211; what else?).  The  job involved developing some simple layouts and promotional materials  for an industry-specific print career guide. Armed with Publisher and  Photoshop, I got to work.</p>
<blockquote><p><strong>The pay seemed pretty damn great for someone my age, and the  idea of getting paid to do something I loved from home seemed pretty  attractive compared to the notion of finding a summer retail job, an  experience that had bored me out of my mind the previous year.</strong></p></blockquote>
<p>I did the job, CFH was happy with my work, and I continued working on  small projects for him every now and then, past graduating high school  and entering university.</p>
<p>In early 2009, I received a scholarship  to study abroad for a semester. When CFH heard, he gave me his heartfelt  congratulations, attended a goodbye party my parents had for me, and  even gave me a generous monetary gift for my travel expenses. He’d  become a very supportive family friend at this time, and was often the  only non-South Asian face at family gatherings. I was really grateful  for his support and thought the world of him. When I returned six months  later, CFH let me know that the website I had designed for him had been  voted into the global top ten of its field and that he would be  branching out to cover a greater range of clientele. I knew that it was  making him boatloads of money and I was happy to have been involved in a  project that had achieved such status. He asked me if I’d be interested  in taking a lead role in helping out with the company’s growth. I  agreed enthusiastically, and got to work.</p>
<p>Fast forward to  September, when I started as CFH’s primary web designer. The work was  substantial, and took up much more of my time than previous projects  had, but it was completed on time and he was thrilled with it. Prior to  starting, I had let CFH know that I’d be changing our previously casual  business relationship, and that I’d be invoicing him all Official-Like  from now on since I was going to be using my work as my primary source  of employment, and needed to keep good records for tax purposes. At this  stage, CFH had started outsourcing all his back-end development work to  India because it was cheaper than hiring Canadian-based developers, so I  think my invoice took him by surprise as he had thought that web work  would be ‘cheaper’ and ‘easier to do’ than print, for whatever reason.   Keep in mind that I was asking for what was essentially cents above  minimum wage per hour of work not including the many hours I spent on  development, consultation, edits, etc. because I was a little insecure  in my legitimacy as a designer due to my lack of formal education in the  subject. I now know this to be BS, as my current clients continue to  hire me, citing the diversity of skills I offer and the highly creative  and efficient nature of my print and web work. Nevertheless, I decided  to give CFH a very steep discount because we hadn’t pre-negotiated the  terms (even though he was aware of how much time each project was taking  me). He took his sweet time with my invoice but finally, and  begrudgingly, decided to pay up.</p>
<p>Things get a little ridiculous  here.</p>
<blockquote><p><strong>CFH became increasingly imposing. His phone calls to me  became increasingly longer and unrelated, bordering on uncomfortable.</strong></p></blockquote>
<p>He started demanding additional amounts of work to be done  ‘immediately’, and when I’d ask about payment, he’d get irritable and  tell me that it was ‘all about the money’ with me, and that he’d pay me  as soon as I sent him an invoice via snail mail. Everytime I would mail  out an invoice, he’d complain about some charge, and insist that I send  him an updated invoice with this or that detail changed. This continued.  I didn’t see a cent. I was even paying for stock photos and fonts out  of pocket and not being reimbursed like I had earlier been promised.  Keep in mind that I was in a particularly delicate position given that  this person was my father’s good friend, and regretfully, my pride got  in the way of actually saying anything to my father at the time. At the  time, I didn’t think things would (could?) get worse.</p>
<p>They did,  so in January, I put my foot down. I told CFH I’d no longer be working  for him as he had become unbearably imposing, and had unreasonable  expectations of me. Primarily, I was concerned because I hadn’t seen a  cent from any of this work I’d done since September. He countered this  by telling me that I was a rip-off and that he’d found a “professional  design agency” that was better equipped to meet his needs. I wished him  the best despite the fact that I was disappointed at having let go of my  biggest client. I tried not to think about the many hours of work I  wouldn’t be seeing a cent for anymore. At the same time, I was relieved  that I wouldn’t have to put up with his borderline psychotic behaviour,  or compromise the quality of my work anymore to meet his increasingly  ass-backwards demands (white text on beige?).</p>
<p>Two days later, I  received a phone call from CFH. He apologized profusely right off the  bat, said that he’d pay his complete owing sum, and that he needed me to  come back. He told me that he was extremely unhappy with the quality  of, and the speed at which his new designers were completing his work.  He begged me to come back, saying that this time he’d be more  considerate of my time and reasonable in his expectations of me. I  hesitated, but agreed to come back on the terms that he had to agree to  the estimate I gave him prior to starting each job. Since my prices were  ‘too steep’ for him and he didn’t want to contend with the fact that I  could only work in the evenings due to my class schedule, we worked out a  system where I would design the main graphical elements and primary  pages, and his “professional design agency” would use these elements to  develop subsidiary pages for the back-end. He agreed, and I got to work.  As a sidenote, I should mention that his “professional design agency”  pulled out when they realized the extent of work that needed to be done  and his unreasonably demanding nature, but I digress.</p>
<blockquote><p><strong>So I hadn’t realized that my new agreement with CFH would  otherwise translate into a one-way ticket to hell, with him reigning as  chief Satanic commander.</strong></p></blockquote>
<p>His behaviour become fairly unbelievable at this point: he’d call me  at 11:30pm and asking to have something by 7am the next morning. He’d  whine when I’d decline. He’d have me sit on the phone for hours while  directing me to this stock photo or that website to “get inspired by”  (i.e. steal). At the time, I was under a lot of stress because I was  experiencing a flare-up in an existing neurological condition that was  putting me in the emergency room almost every week. I mentioned at one  point to CFR that I was scheduled for an MRI in a couple of months, and  he suggested that I pay out-of-pocket to get it done privately to avoid  the wait. A private MRI has to be done out-of-province, and runs upwards  of $1500. I explained that this was not an option for me given that a  recent astronomical increase in tuition costs, and my student aid being  cut substantially due to the increasing conservatization of my  post-secondary institution.</p>
<p>Unsurprisingly, he didn’t ‘get’ it,  telling me to bug my parents for the money or ‘something’. For the  record, I’m completely financially independent, and have no intentions  of harassing my parents for money I’m perfectly capable of making  myself. My lifestyle ain’t so lavish that it requires a lot of  dough  either: I’m a herbivore, don’t go out much, share an apartment with two  other people, and ride a bicycle or take public transit everywhere. I  use open-source software and recycle hardware whenever possible.  Textbooks (which I generally buy secondhand) and tuition are my major  expense, so while my living costs might be minimal, they’re still there.  I wasn’t sure what part of this CFH couldn’t comprehend. Surely, he’d  understand, having himself been a student forty years ago?</p>
<p>April  was the final straw. I hadn’t seen a cent since September despite many  false exclamations of  “the cheque is in the mail!” and what I now knew  to be CFH’s lavish income from MY work.</p>
<blockquote><p><strong>He even had the nerve to call me to share his excitement  about his new ‘keyless’ car, which he eagerly explained cost about as  much as a house.</strong></p></blockquote>
<p>A myriad of other reasons followed, and you should tell me if I’m  being a bit too sensitive here: Rape jokes? check. Racist remarks about  his Indian developers DESPITE the fact that I’m South Asian too &#8211; but  ‘not like one of them’, according to him? Check. Pictures of, and  forwarded emails from women he was sleeping with? Check. Pervasive  questions about my sexuality and personal life? Double-check.</p>
<p>I  quit. I fucking quit. I sent a politely-worded e-mail explaining that I  would not be working for him anymore. I don’t believe in leaving people  in the dark about their behaviour, so I explained very clearly exactly  how his behaviour had influenced my decision to leave. CFH responded by  saying that he hadn’t “bothered to read my e-mail” but that “as a  professional, [he] anticipated that [I] would provide [my] assistance in  bringing the new resources up to speed..”. Regarding my invoice, his  exact words were: “It shall, of course, be paid, in full, upon receipt”  (all those commas, must be, compensating, for, something) seeing as how  he was continuing to use my work. I had no problem with this, and made  the remaining incomplete files available in their raw form on my server,  alongside a detailed explanation of what the new designer/s would need  to know. I’m not a vengeful person, so when the new designer got in  touch with me, I was quick to direct him to where he needed to be. I  just wanted to get paid and get CFH out of my life already.</p>
<p>Things  seemed like they were ending on a slightly more positive note. A few  days later  I got a call from my father. CFH had taken him out for  drinks and then gotten him call me to “tell me” to come back to work for  him. CFH had explained to him that I was upset about my pay (I didn’t  realize zero dollars was pay?) but that he had ‘forgotten’ that I was  now a grown-up with financial responsibilities, and not that same  fifteen-year-old who was estatic about getting some spending money from  his hobby.</p>
<blockquote><p><strong>He told my dad that I had left him hanging despite having  given me a pretty decent deal; apparently my ‘mental health issues’ and  ‘greed’ were getting in the way.</strong></p></blockquote>
<p>Clearly, this wasn’t just about the money for me anymore, and I  realized that CFH’s new designer had probably bailed on him as well as a  result of his.. loopiness.  Naturally, I declined. This upset my father  initially, though he changed his mind later when I gave him a (heavily  censored) account of what had actually happened.</p>
<p>Besides, hadn’t  CFH mentioned that he’d be paying me for the work I’d already completed?  The invoice was in the mail for the fourth time. Of course, I didn’t  set my expectations too high because on May 11, I received  the  following message:  “Let me be quite clear about things. Unless you  immediately finish the projects you started for [Company Name], we shall  not pay your invoice. Enough is enough!”</p>
<blockquote><p><strong>So now I know better than to expect any pay at all. Over 300  hours logged since September, and not a cent.</strong></p></blockquote>
<p>CFH continues to use my work and profit from it. I have no legal  backing because (1) CFH happens to be a retired lawyer, and (2) I never  drew up a physical contract because of the sporadic nature of the work  and our long-standing business relationship. My own fault.  The best  part? I have to defer my next semester at university to work more,  because I couldn’t come up with my minimum tuition payment in time this  year &#8211; seeing as how my job didn’t pay me, and I had to use my existing  funds for things like rent, medication, and food. CFH is well aware of  this. Sucks, but I’m not one to dwell in the past recognizing my own  mistakes. I’m also far too grateful for things like a roof over my head  to feel sorry for myself.</p>
<p>I learnt my lesson and since then, I have had no problem putting what  I’ve learnt into practice with my current clients. Keep in mind that  these are primarily charitable organizations and student groups with  very limited funding &#8211; yet they have no problem respecting my time,  signing contracts without complaint, agreeing to my terms and putting  down a 50% deposit before I do any work.  These clients believe in my  right to make a living wage from my work, and that’s exactly how all  clients should treat their freelancer.</p>
<blockquote><p><strong>In closing, please don’t make the same mistakes I did with  CFH. I don’t care if you’re making invites for your neighbor’s son’s  friend’s girlfriend’s baby shower: always draw up a physical contract,  regardless of whether the work is for-pay or not.</strong></p></blockquote>
<p>It’s a sad fact, but there is no guarantee of sanctity in a  long-standing relationship regardless of how long you have had your  client. There are people out there whose only motivation is to make as  much money as possible while taking credit for your work and screwing  you over in the process. A contract gives you some legal backing, and at  the very least ensures that both parties understand the terms of  service. Deposits are great too, because they ensure that both parties  are invested in the project to some extent. Lessons are better learnt  earlier rather than later.</p>
<p>And finally, to CFH? I trust Karma.</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fsoapbox%2Fdont-work-for-family-friends%2F', 'A+Cautionary+Tale')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusorange.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/soapbox/dont-work-for-family-friends/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Fast CMS Deployment with jQuery and Web Services</title>
		<link>http://www.matsays.com/misc/tricks/fast-cms-deployment-with-jquery-and-web-services/</link>
		<comments>http://www.matsays.com/misc/tricks/fast-cms-deployment-with-jquery-and-web-services/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 06:03:58 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[IMD223 Advanced Scripting]]></category>
		<category><![CDATA[IMD322 Dynamic Design]]></category>
		<category><![CDATA[IMD325 UCD I]]></category>
		<category><![CDATA[IMD335 UCD II]]></category>
		<category><![CDATA[IMD345 UCD III]]></category>
		<category><![CDATA[IMD375 Databases]]></category>
		<category><![CDATA[IMD402 Server Side Scripting]]></category>
		<category><![CDATA[IMD414 Dynamic Design]]></category>
		<category><![CDATA[INF400 Web Security]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[dam]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[silverlight]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.matsays.com/?p=1178</guid>
		<description><![CDATA[This week we&#8217;ve been working on a quick digital asset manager for the upcoming Wimbledon.  Last year, Delta Tre produced a massive, well designed system to handle the metadata and media transfer between the UK and the partners in the US.  They had months to build it.  This year we had 2 [...]]]></description>
			<content:encoded><![CDATA[<p>This week we&#8217;ve been working on a quick digital asset manager for the upcoming Wimbledon.  Last year, Delta Tre produced a massive, well designed system to handle the metadata and media transfer between the UK and the partners in the US.  They had months to build it.  This year we had 2 weeks.  Granted we had some experience with the system from last year and that we&#8217;ve been toying with our own Director and VWAP systems, but we decided that in the interest of time (10 business days) and resources (2 developers) that we&#8217;d take a different approach.</p>
<p>Rather than take a traditional page-design approach, we architected the database and interaction to be slim and exchangeable.  First, the database was managed by use of two .NET-based Web Services written in C# that ingested via POST marking transaction success with 32-character IDs, output via XML and with multi-purpose edit functions using switches and variable inputs.  Next, the authentication was built on a combination Basic and session-based approach using ASP &#8211; quick and efficient and easy to modularize should the system need to be moved to another platform.  Finally, the front-end was built on a single HTML page with jQuery and jQuery UI to support the large number of Ajax exchanges and interactive features.</p>
<p>The result is a clean, easy to use, transportable DAM-CMS capable of complex transactions (multi-tiered, synchronous updates), hooks to a Silverlight-based rough cut editor from Southworks, and most of all, easy and quick to modify without affecting the production environment.  By deploying a single jQuery-based controller separate from the parser and presentation components, new objects could be introduced to the interface based on a modifiable, dynamic XML document at login (or pushed in real-time, even after the user had logged in).</p>
<p><img class="aligncenter size-large wp-image-1179" title="Screen capture of development interface" src="http://www.matsays.com/wp-content/uploads/2010/06/Picture-2-600x341.png" alt="" width="600" height="341" /></p>
<p>Some of the things we learned seem pretty silly but in fact were critical to the project completing in such a short amount of time.</p>
<p>First, segregate all the processes &#8211; by constructing the database, the web services, and the interface separate from each other, different developers could rapidly deploy all of it and mesh together quickly at stop-points each day.  Chandler and I (with a big assist from Srini and Mio) were able to work independently and merge as he completed parts of the web service, or make changes as parts of the interface came together.  Likewise, during testing, changes to the interface and sequence could be done in real-time and re-tested within minutes instead of having to go back to the drawing board.  This was eased by the fact that issues could be easily attributable and divisible to interface or back-end, and handled separately.</p>
<p><img class="alignright size-full wp-image-1180" title="Modal window in RCE-CMS" src="http://www.matsays.com/wp-content/uploads/2010/06/Picture-3-e1276495120982.png" alt="" width="350" height="180" align="right"/>Second, it&#8217;s the little things that make a difference.  Providing small visual cues &#8211; update notifications at the top of the page that disappear, Ajax loader starburts, highlighted labels and input boxes &#8211; all give the user information, information that helps them get through difficult or tedious and complex processes (for example, in creating a VOD asset, a user had options that might require upwards of 50 different pieces of information &#8211; eliminating unnecessary components on the screen made it easier to get through).</p>
<p>Finally, architect it but be flexible.  Changes happen, and while developers and project managers all try to keep scope creep from happening, we all know that in the real world, so does feature change.  It is unrealistic to assume that projects will get started 6 months before the deadline.  It is also unrealistic to assume that, in such a project with a short deadline, that you&#8217;ll remember to include everything.  Likewise, it&#8217;s also unrealistic to assume that during the process you&#8217;ll realize that the planned interface will work &#8211; prototyping is great but it takes time and testing that you may not always have.  Being able to be flexible by following a basic interface design, using modular builders (in jQuery UI or other framework) and XML-based instruction sets, and providing error catching systems in both the front-end as well as the web services makes the project continue to move, even when not all the parts are correct.</p>
<p><a href="http://www.matsays.com/wp-content/uploads/2010/06/Picture-4.png"><img class="aligncenter size-large wp-image-1181" title="Silverlight Rough Cut Editor interface by Ezeqiual Jadib at Southworks" src="http://www.matsays.com/wp-content/uploads/2010/06/Picture-4-600x359.png" alt="" width="600" height="359" /></a></p>
<p>In the end, we had a lot of hiccups and it didn&#8217;t go as smoothly as we&#8217;d hoped but it did get done and delivered on-time.  The client goes to training in 9 hours and there will likely be another round of changes, but that we were able to post a full-featured DAM CMS in such a short amount of time gives us new methods and targets for the future.</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Ffast-cms-deployment-with-jquery-and-web-services%2F', 'Fast+CMS+Deployment+with+jQuery+and+Web+Services')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusorange.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/fast-cms-deployment-with-jquery-and-web-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Font API &amp; Google Font Directory</title>
		<link>http://www.matsays.com/misc/tricks/google-font-api-google-font-directory/</link>
		<comments>http://www.matsays.com/misc/tricks/google-font-api-google-font-directory/#comments</comments>
		<pubDate>Thu, 20 May 2010 15:10:05 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[IMD325 UCD I]]></category>
		<category><![CDATA[IMD335 UCD II]]></category>
		<category><![CDATA[IMD345 UCD III]]></category>
		<category><![CDATA[IMD414 Dynamic Design]]></category>
		<category><![CDATA[Internet News]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[typeface]]></category>
		<category><![CDATA[typography]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[webdevelopment]]></category>

		<guid isPermaLink="false">http://www.matsays.com/?p=1159</guid>
		<description><![CDATA[Yesterday Google announced a new initiative to provide extended web font support through the Google Font API and the Google Font Directory.The Font API provides a cross-browser methodology for using any of the fonts in the Font Directory in a web page with a simple line of HTML.  The result &#8211; richer, textually styled web [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday Google announced a new initiative to provide extended web font support through the Google Font API and the Google Font Directory.The Font API provides a cross-browser methodology for using any of the fonts in the Font Directory in a web page with a simple line of HTML.  The result &#8211; richer, textually styled web pages with SEO semantics intact, crisp scaling in browser zoom mode and accessibility to screen readers.</p>
<p>For years, the only other options were to use images (which then lose the semantics and made it difficult to update over time) or <a title="sIFR" href="http://www.mikeindustries.com/blog/sifr">sIFR</a> (which still rocks and can provide much more extended support for very unusual fonts).  Now you can add Font API support with:</p>
<pre>&lt;link href='http://fonts.googleapis.com/css?family=Tangerine' rel='stylesheet' type='text/css'&gt;

body { font-family: 'Tangerine', serif; }</pre>
<p>Produces (though this is an image):</p>
<div style="text-align: center;"><img class="aligncenter size-full wp-image-1160" title="Tangerine from Google Font API" src="http://www.matsays.com/wp-content/uploads/2010/05/Tangerine.png" alt="" width="400" height="71" /></div>
<p>According to Google, the back end system converts the font into a format acceptable to the browser (including MSIE6), serving up only the weights and styles you specify, and can be cache headered in order to optimize/improve performance over the span of the site.  They also work with HTML5 and CSS3, so transformations like rotation and drop shadows still works.  Currently support exists only for Western European languages (Latin-1) but I&#8217;m pretty sure that will expand quickly once it takes hold.</p>
<p>Nice job!</p>
<p><a title="Goofle Font API &amp; Google Font Directory" href="http://googlecode.blogspot.com/2010/05/introducing-google-font-api-google-font.html">Read the Google announcement here</a>.<br />
See the fonts available in the <a title="Google Font Directory" href="http://code.google.com/webfonts">Google Font Directory</a>.</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Fgoogle-font-api-google-font-directory%2F', 'Google+Font+API+%26%23038%3B+Google+Font+Directory')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusorange.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/google-font-api-google-font-directory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 Ways Designers Can Earn More from Projects</title>
		<link>http://www.matsays.com/misc/tricks/10-ways-designers-can-earn-more-from-projects/</link>
		<comments>http://www.matsays.com/misc/tricks/10-ways-designers-can-earn-more-from-projects/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 15:34:03 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[freelancing]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.matsays.com/?p=1085</guid>
		<description><![CDATA[Took me years (unlike the 18-year old author) to learn the advice dished out in this incredibly good post &#8211; every once in a while, take stock of where you stand as a designer and keep these in mind.
[authored by Matthew Carpenter at Six Revisions, images courtesy of Six Revisions]
When it comes to expanding per-project [...]]]></description>
			<content:encoded><![CDATA[<p>Took me years (unlike the <strong>18-year old</strong> author) to learn the advice dished out in this incredibly good post &#8211; every once in a while, take stock of where you stand as a designer and keep these in mind.</p>
<p>[authored by Matthew Carpenter at <a title="10 Ways Designers Can Earn More from Projects" href="http://sixrevisions.com/web_design/earn-more-web-designer/">Six Revisions</a>, images courtesy of Six Revisions]</p>
<p>When it comes to expanding per-project revenue, service businesses are at an immediate disadvantage. As our &#8220;product&#8221; is essentially our time, increasing income on a per-project basis almost always comes with extra work and an increased time commitment. Office hours increase, personal time slips away, and before we know it, the &#8220;extra&#8221; $300 weekly income has turned into little more than lost time.</p>
<p><a rel="attachment wp-att-1087" href="http://www.matsays.com/misc/tricks/10-ways-designers-can-earn-more-from-projects/attachment/earn00/"><img class="aligncenter size-full wp-image-1087" title="earn00" src="http://www.matsays.com/wp-content/uploads/2010/04/earn00.jpg" alt="" width="550" height="200" /></a></p>
<p>Product-based businesses have a distinct advantage when it comes to increasing revenue. Rather than increasing per-hour costs or per-project estimates, all that’s required is an increase in scale. Expand your operation, ship more units, and earn more money. While service businesses can take a similar approach–more employees, more projects, and relatively more income–scale can again become a problem.</p>
<p>These ten approaches to per-project earnings could help you boost total revenue and profits. Of course, they’re not foolproof, and some businesses will inevitably invest time into a strategy only to have it prove ineffective. However, they do work, and with the right balance of time investment and experimentation, they could become the changes that drastically increase your per-project, per-client, and per-hour revenue.<span id="more-1085"></span></p>
<h3>1. Don’t take on stressful or high-risk projects</h3>
<p><a rel="attachment wp-att-1088" href="http://www.matsays.com/misc/tricks/10-ways-designers-can-earn-more-from-projects/attachment/earn01/"><img class="aligncenter size-full wp-image-1088" title="earn01" src="http://www.matsays.com/wp-content/uploads/2010/04/earn01.jpg" alt="" width="550" height="200" /></a></p>
<p>Risk is a part of business. While service businesses operate at a slightly lower level of risk than a major product-based business or global company, they’re still taking cost-related risks whenever they accept a new project. The amount of time required could surpass expectations, the project’s complexity could be deceptive and surprising, or the entire project could be a stress-test disguised as something simple.</p>
<p>Whenever certain revenue is the goal, take on projects that offer security and relatively smooth income. Increasing revenue can be as simple as taking on more work, which is made easier when you’re not juggling complex projects.</p>
<h3>2. Keep a network of contracted designers for project overflow</h3>
<p><a rel="attachment wp-att-1089" href="http://www.matsays.com/misc/tricks/10-ways-designers-can-earn-more-from-projects/attachment/earn02/"><img class="aligncenter size-full wp-image-1089" title="earn02" src="http://www.matsays.com/wp-content/uploads/2010/04/earn02.jpg" alt="" width="550" height="200" /></a></p>
<p>There are hundreds of reasons to network with other designers, and managing work overload and excess projects is just one of them. As with any business operating at 100% capacity, there are going to be times when your clients will expect you to take on work that’s simply not possible. Rather than scrambling to find new designers, managers, or developers, it’s best to keep a relatively wide network of professionals ready to offer contracted work to.</p>
<p>This selective and optimized outsourcing also gives you an opportunity to increase overall revenues. While your design team works directly on clients projects – earning on an input basis – outsourced design teams can bring in a relatively stable per-project income for you.</p>
<h3>3. Use affiliate programs to help clients with hosting</h3>
<p><a rel="attachment wp-att-1090" href="http://www.matsays.com/misc/tricks/10-ways-designers-can-earn-more-from-projects/attachment/earn03/"><img class="aligncenter size-full wp-image-1090" title="earn03" src="http://www.matsays.com/wp-content/uploads/2010/04/earn03.jpg" alt="" width="550" height="200" /></a></p>
<p>If your design business specializes in local businesses and low-tech companies, it’s not unlikely that your clients will need their own hosting space or dedicated server. While it’s unwise to take care of hosting entirely on your own – problems can often arise, and client support is not a business that you want to be involved in – passing clients on to an affiliated hosting company is never a bad idea.</p>
<p>A range of hosting providers offer affiliate programs, some of which are more lucrative than others. Whenever possible, aim to provide hosting that meets a clients needs, not those of your business. It’s worth eating a small commission to keep a major client, and it’s never worth selling out a client for a one-off hosting kickback.</p>
<h3>4. Don’t use a reseller hosting program for clients</h3>
<p><a rel="attachment wp-att-1091" href="http://www.matsays.com/misc/tricks/10-ways-designers-can-earn-more-from-projects/attachment/earn04/"><img class="aligncenter size-full wp-image-1091" title="earn04" src="http://www.matsays.com/wp-content/uploads/2010/04/earn04.jpg" alt="" width="550" height="200" /></a></p>
<p>Reseller hosting programs are often viewed as an ultra-simple passive income solution for web designers. Unfortunately, they’re about as far from passive as anything can be. Whenever you take responsibility for web hosting, you also inherit every problem that would otherwise be directed to the web hosting company.</p>
<p>Every second of downtime becomes your concern, every connection speed issue becomes a phone call  to your office, and every time a client forgets their cPanel password, you’re the person that’s called for support. Focus on low-maintenance revenue increases, not income streams like reseller hosting which require ongoing support.</p>
<h3>5. Market yourself as a premium provider</h3>
<p><a rel="attachment wp-att-1092" href="http://www.matsays.com/misc/tricks/10-ways-designers-can-earn-more-from-projects/attachment/earn05/"><img class="aligncenter size-full wp-image-1092" title="earn05" src="http://www.matsays.com/wp-content/uploads/2010/04/earn05.jpg" alt="" width="550" height="200" /></a></p>
<p>Don’t want to deal with clients that pay poorly? Then don’t market to them.</p>
<p>Whether you’re a freelance designer or part of an established design business, the audience that you market your services to is by far the largest influence on your per-project income. Audiences that have come to expect low-cost services will expect the same from you, and explaining a premium cost structure instantly compromises your ability to offer services.</p>
<p>Study the market that your business operates in, and approach premium clients with your services. Most businesses don’t mind paying a higher price for high quality services, and if you can back up your promises, those clients can be great long-term assets.</p>
<h3>6. Network other creatives and online professionals</h3>
<p><a rel="attachment wp-att-1093" href="http://www.matsays.com/misc/tricks/10-ways-designers-can-earn-more-from-projects/attachment/earn06/"><img class="aligncenter size-full wp-image-1093" title="earn06" src="http://www.matsays.com/wp-content/uploads/2010/04/earn06.jpg" alt="" width="550" height="200" /></a></p>
<p>Networking gives you an opportunity to hand off work to extra designers in the event of a quantity crisis. It also gives you an opportunity to market your services to other online workers, increasing your professional network and creating another stream of incoming clients.</p>
<p>However, there’s another benefit to networking, one that can do wonders for per-project earnings. Most online services businesses are happy to pay for business leads, or at least offer a commission for valuable projects. Create a professional network between yourself and some online marketers, copywriters, and other service businesses that are beneficial to new businesses.</p>
<p>That way, when you’re approached by a new client, you can offer them extra value through related services, and yourself more per-project income through related commissions. Win-win.</p>
<h3>7. Offer extra services in project updates and pitches</h3>
<p><a rel="attachment wp-att-1094" href="http://www.matsays.com/misc/tricks/10-ways-designers-can-earn-more-from-projects/attachment/earn07/"><img class="aligncenter size-full wp-image-1094" title="earn07" src="http://www.matsays.com/wp-content/uploads/2010/04/earn07.jpg" alt="" width="550" height="200" /></a></p>
<p>There’s nothing wrong with a friendly, non-pushy upsell. By including an ‘extra services’ rate card or list of related products or services with every project email, you’ll find your business increasing and your professional relationships extending. Most clients want your web design services to increase their long-term business income, and extending projects to incorporate long-term marketing, design, or website upgrades can often do just that.</p>
<h3>8. Aim for ongoing business relationships</h3>
<p><a rel="attachment wp-att-1095" href="http://www.matsays.com/misc/tricks/10-ways-designers-can-earn-more-from-projects/attachment/earn08/"><img class="aligncenter size-full wp-image-1095" title="earn08" src="http://www.matsays.com/wp-content/uploads/2010/04/earn08.jpg" alt="" width="550" height="200" /></a></p>
<p>Short-term projects can be a hassle. While they’re often worthwhile from an earnings perspective, the amount of stress and unnecessary headaches that come with them can drive a sane business owner crazy.</p>
<p>There are two ways to deal with short-term projects effectively. The first, and most effective method, is to ignore them completely and focus entirely on long-term projects and ongoing work. The second method is to make your short-term work more immediately profitable and effective. Charge higher rates for short-term projects, let your clients understand that you work with other clients too, and create accommodating timeframes your yourself.</p>
<h3>9. Prioritize clients that have long-term growth potential</h3>
<p><a rel="attachment wp-att-1096" href="http://www.matsays.com/misc/tricks/10-ways-designers-can-earn-more-from-projects/attachment/earn09/"><img class="aligncenter size-full wp-image-1096" title="earn09" src="http://www.matsays.com/wp-content/uploads/2010/04/earn09.jpg" alt="" width="550" height="200" /></a></p>
<p>When seeking out new clients, it’s tempting to fall for the &#8220;take all&#8221; approach where you let accept almost any project, so long as it meets your income criteria. While this strategy is great for filling out a schedule, it almost never works effectively for maximizing per-project income and total revenue.</p>
<p>Opportunity cost is a true nightmare for a service business. Product-based companies can pass over opportunities only to focus on scale, but service businesses with set resources and time allotments are always stuck with the projects that they’ve taken. Taking each and every project that’s offered to you leaves you with no room to focus on the most profitable and valuable clients.</p>
<p>Whenever possible, prioritize new clients that have massive growth potential. The brand new marketing firm with a dedicated owner is more likely to need your ongoing services than an aging local business with relatively low online needs. Give time to clients that have huge potential to expand, and you’ll end up getting it back again in projects that are lucrative, long-term, and very secure.</p>
<h3>10. Say &#8220;No&#8221; more often</h3>
<p><a rel="attachment wp-att-1086" href="http://www.matsays.com/misc/tricks/10-ways-designers-can-earn-more-from-projects/attachment/earn10/"><img class="aligncenter size-full wp-image-1086" title="earn10" src="http://www.matsays.com/wp-content/uploads/2010/04/earn10.jpg" alt="" width="550" height="200" /></a></p>
<p>Saying &#8220;yes&#8221; wins you clients, opportunities, and information, but it also locks you into deals that might not work in your favor. Despite the old &#8220;customer is always right&#8221; maxim, the reality of service businesses, particularly design businesses, is that the client often isn’t right. Design is subjective, and when a project comes coupled with a client that just doesn’t know what they want, things can become a major headache.</p>
<p>Increasing per-project revenue isn’t just about optimizing what projects you do have, but making sure you pick the right projects not to have. Every potential opportunity can be a drag for your business – an ongoing annoyance that brings in income but leaves you shut out of more lucrative products. Fight away per-project time-killers by saying &#8220;no&#8221; more often. It hurts at first, but the more you do it, the more effective your business will become.</p>
<p><strong><em>Have you ever experimented with different revenue streams or per-project income strategies? There are hundreds of ways to increase per-project earnings, and we’ve just scratched the surface!</em></strong></p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2F10-ways-designers-can-earn-more-from-projects%2F', '10+Ways+Designers+Can+Earn+More+from+Projects')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusorange.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/10-ways-designers-can-earn-more-from-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Power of Oranges</title>
		<link>http://www.matsays.com/misc/tricks/the-power-of-oranges/</link>
		<comments>http://www.matsays.com/misc/tricks/the-power-of-oranges/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 17:03:45 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.matsays.com/?p=989</guid>
		<description><![CDATA[Marketing and social media firm Imperial Leisure has an advertisement featuring 2380 slices of Jaffa oranges to power an iPhone, to promote the sale of Jaffa oranges. Per TUAWM, &#8220;Talk about thinking outside of the box, or in this case, the crate.&#8221; And I suppose you wouldn&#8217;t get a cold for at least a year [...]]]></description>
			<content:encoded><![CDATA[<p>Marketing and social media firm Imperial Leisure has an advertisement featuring 2380 slices of Jaffa oranges to power an iPhone, to promote the sale of Jaffa oranges. Per <a href="http://www.tuaw.com/2010/02/17/iphone-battery-dead-in-a-squeeze-you-can-charge-it-with-jaffa-o/#continued">TUAWM</a>, &#8220;Talk about thinking outside of the box, or in this case, the crate.&#8221; And I suppose you wouldn&#8217;t get a cold for at least a year after that.</p>
<p>But I thought you weren&#8217;t supposed to mix apples and oranges.</p>
<p><a rel="attachment wp-att-990" href="http://www.matsays.com/misc/tricks/the-power-of-oranges/attachment/orangedw21610/"><img class="aligncenter size-full wp-image-990" title="Oranges Power Apple" src="http://www.matsays.com/wp-content/uploads/2010/02/orangedw21610.jpg" alt="" width="520" height="286" /></a></p>
<p>[posts <a href="http://macenstein.com/default/2010/02/how-many-orange-slices-does-it-take-to-charge-an-iphone-about-2380/">here</a>, <a href="http://www.tuaw.com/2010/02/17/iphone-battery-dead-in-a-squeeze-you-can-charge-it-with-jaffa-o/#continued">here</a> and <a href="http://www.engadget.com/2010/02/13/how-many-oranges-does-it-take-to-charge-an-apple-video/">here</a>]</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Fthe-power-of-oranges%2F', 'The+Power+of+Oranges')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusorange.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/the-power-of-oranges/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Transitions</title>
		<link>http://www.matsays.com/misc/tricks/css-transitions/</link>
		<comments>http://www.matsays.com/misc/tricks/css-transitions/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 05:50:44 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[IMD414 Dynamic Design]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[interactivity]]></category>
		<category><![CDATA[ui]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://www.matsays.com/?p=813</guid>
		<description><![CDATA[[partially reposted from WebDesignerDepot]
Despite people’s expectation of change and movement on the screen, CSS and HTML have few controls that allow you to design interactivity, and those that exist are binary.
A link is either one color or another. A text field is either one size or another. A photo is either transparent or opaque. No [...]]]></description>
			<content:encoded><![CDATA[<p>[partially reposted from <a title="CSS Transitions 101 on WebDesignerDepot" href="http://www.webdesignerdepot.com/2010/01/css-transitions-101/">WebDesignerDepot</a>]</p>
<p>Despite people’s expectation of change and movement on the screen, <strong>CSS</strong> and <strong>HTML</strong> have few controls that allow you to design interactivity, and those that exist are binary.</p>
<p>A link is either one color or another. A text field is either one size or another. A photo is either transparent or opaque. No in-betweens from one state to the next. <strong>No</strong> <strong>transitions</strong>.</p>
<p>This has led to most web pages feeling abrupt, with elements shifting and changing ungracefully.</p>
<p>Yes, we can use DHTML and leverage the jQuery library for transitions, but this requires a lot of code for something that should be very simple.</p>
<p>What we need is a quick and easy way to add simple transitions to the page and in this article you’ll find useful information about <strong>CSS transitions </strong>and how to use them.</p>
<p><em>[MatSays: some rambling by the author omitted]</em></p>
<p>CSS transitions are being introduced right now in CSS Level 3 but have already been added as an extension to Webkit. Right now that means they work only in browsers based on Webkit, including Apple Safari and Google Chrome. <em>[MatSays: so use a "real" browser but don't forget your graceful degradation for MSIE and stuff]</em></p>
<div style="width:500px;margin:0px auto;"><img class="size-large wp-image-814 alignnone" title="CSS Transition layering examples" src="http://www.matsays.com/wp-content/uploads/2010/01/CSStransition-500x309.jpg" alt="" width="500" height="309" /></div>
<h2>Where CSS Transitions Come From</h2>
<p>Transitions have been a part of Webkit for a while and are the basis of a lot of the cool things that the Safari UI can do that other browsers cannot.</p>
<p>But the W3C CSS Workgroup resisted adding transitions to its official specs, some members arguing that transitions are not style properties and would be better handled by a scripting language.</p>
<p>But many designers and developers, myself included, argued that these are in fact styles— only <strong><em>dynamic</em></strong> styles, rather than the traditional static styles that so many of us are used to.</p>
<p>Fortunately, the argument for dynamic styles held the day. Last March, representatives from Apple and Mozilla began adding the <a rel="nofollow" href="http://www.w3.org/TR/css3-transitions/">CSS Transitions Module to the CSS Level 3 specification</a>, closely modeled on what Apple had already added to Webkit.</p>
<p>[read the <a title="CSS Transitions How-To" href="http://www.webdesignerdepot.com/2010/01/css-transitions-101/">complete tutorial here</a>]</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Fcss-transitions%2F', 'CSS+Transitions')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusorange.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/css-transitions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I </title>
		<link>http://www.matsays.com/misc/i-2/</link>
		<comments>http://www.matsays.com/misc/i-2/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 16:11:06 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Toolbox]]></category>

		<guid isPermaLink="false">http://www.matsays.com/?p=764</guid>
		<description><![CDATA[If you use it, you know. Granted it really isn&#8217;t any different than Mesh or any of the other cloud storage systems but Dropbox, at least IMHO, is definitely a step above. Not only is the web version intuitive, but the apps make it just that much easier. In the past whenever Jennifer and I [...]]]></description>
			<content:encoded><![CDATA[<p><img title="dropbox-logo" src="http://www.matsays.com/wp-content/uploads/2009/11/dropbox-logo.png" alt="dropbox-logo" width="231" height="60" style="float:left; margin-right: 10px;margin-bottom:5px;"/>If you use it, you know. Granted it really isn&#8217;t any different than Mesh or any of the other cloud storage systems but Dropbox, at least IMHO, is definitely a step above. Not only is the web version intuitive, but the apps make it just that much easier. In the past whenever Jennifer and I needed to transfer files to each other, we&#8217;d email. That eventually graduated to central FTP, then to network but now that we work in separate offices and have to send relatively large files back and forth with changes, Dropbox makes it a cinch. We started using Dropbox about 8 months ago and now I can&#8217;t live without it &#8211; 7 computers all hooked to the same account, easy access to pretty much everything we need.</p>
<p>The jury is still out on why I would need an iPhone app (though I guess it would make it simple for presentations maybe?) but I&#8217;m sure I&#8217;ll eventually fall into that one (of course, I still have to be convinced to get an iPhone in the first place).</p>
<p>Anyway, I admit that my only issue is that the box could be a bit larger (2GB on the free version) but face it, it&#8217;s still a business and it still has employees to pay so they can&#8217;t give away the farm. And it probably keeps me from storage too much digital crap that I don&#8217;t need.</p>
<p>PS: <a href="http://wiki.dropbox.com/TipsAndTricks/HostWebsites">double bonus</a> if you need a quick web page</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Fi-2%2F', 'I+%3C3+Dropbox')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusorange.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/i-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The UX of CMS</title>
		<link>http://www.matsays.com/misc/the-ux-of-cms-wimbledonlive-cms/</link>
		<comments>http://www.matsays.com/misc/the-ux-of-cms-wimbledonlive-cms/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 07:32:52 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[IMD223 Advanced Scripting]]></category>
		<category><![CDATA[IMD322 Dynamic Design]]></category>
		<category><![CDATA[IMD325 UCD I]]></category>
		<category><![CDATA[IMD335 UCD II]]></category>
		<category><![CDATA[IMD345 UCD III]]></category>
		<category><![CDATA[IMD402 Server Side Scripting]]></category>
		<category><![CDATA[IMD414 Dynamic Design]]></category>
		<category><![CDATA[INF340 Web Design Concepts]]></category>
		<category><![CDATA[Soapbox]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Toolbox]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[hci]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[user interface]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://www.matsays.com/?p=626</guid>
		<description><![CDATA[Part of the reason I love WordPress as much as I do is simply that the total user experience of using the admin tools just makes it that much better than most CMS packages.  While I still think there are a lot of areas that can use improvement, I have rarely ever used a [...]]]></description>
			<content:encoded><![CDATA[<p>Part of the reason I love WordPress as much as I do is simply that the total user experience of using the admin tools just makes it that much better than most CMS packages.  While I still think there are a lot of areas that can use improvement, I have rarely ever used a CMS that made it quite as easy to manage and publish content.</p>
<p>While is why I am extremely proud of the evolution of the CMS that I designed and built for the Wimbledon Live player (see <a href="http://www.matsays.com/misc/wimbledon-live-smooth-stream-silverlight/">this post</a>).  </p>
<p><img src="/images/wcms1.png" border="0" alt="Screen shot of Wimbledon Live CMS"/></p>
<p><span id="more-626"></span>To understand the complexity behind designing the UX it&#8217;s important to understand the nature of the data and the critical effect of the workflow.  First, video was being supplied from six sources, some to us using Saviant direct to our servers, some we pulled via FTP, and then of course the live streams (some HD and some SD).  Then there were multiple parties&#8230;NBC (as the news reporter) needed editorial control over metadata, while iStream&#8217;s Managed Webcasting team needed to control the timeline over when items went to publication.  My team, RnCS (Research &#038; Creative Services) needed to insure that everything was tested before going live so we needed to throw the whole thing through a staging server before hitting a production server that then fed a cluster of edge servers on Akamai&#8217;s network.</p>
<p><img src="/images/wcms2.png" border="0" alt="Screen shot of Wimbledon Live CMS"/></p>
<p>So we structured it in several parts.  First we put automated bots to determine when new assets had been dropped, specifically seeking out XML files that held the initial metadata, and dropped that into the CMS DB.  Once there, the appropriate parties were notified by email (or in my case as PM, by SMS) &#8211; to update metadata, insert images, begin video transcoding, etc.  Through the entire process, we designed screens to make it as easy as possible to follow the flow of assets, provide enough ability to each staff person so that overlaps in duties existed but that checkpoints assured data integrity throughout.</p>
<p><img src="/images/wcms3.png" border="0" alt="Screen shot of Wimbledon Live CMS"/></p>
<p>The grid above, for example shows the visual layout of the thumbnails that would appear in the cover-flow style playlist inside the player.  Deep linking was provided so editorial users could create pointers on the MSNBC/NBCSports sites.  Drag and drop allowed us to reorder objects to maximize the visibility of prominent players.</p>
<p><img src="/images/wcms4.png" border="0" alt="Screen shot of Wimbledon Live CMS"/></p>
<p>Each level of user had various modal windows to insert data.  Even imagery was uploaded first to the staging, processed for size and then sent to production.</p>
<p><img src="/images/wcms5.png" border="0" alt="Screen shot of Wimbledon Live CMS"/></p>
<p>Because of the nature of edge servers, we also had to purge the cache after any update, so we provided a three-section grouping that allowed us to send the feed XMLs to production and clear the cache in one shot.  And to make THAT process even easier, we built it so that it was accessibly by mobile phone so even if I was in transit, I could still update the CMS in a timely fashion.</p>
<p><img src="/images/wcms6.png" border="0" alt="Screen shot of Wimbledon Live CMS"/></p>
<p>Finally, the live streams had the ability to be toggled on and off so that the matrix of available feeds, particularly the Smooth HD stream, was optimized and prioritized.  To be sure, there was still much room for improvement but given that the whole CMS was built in 6 days and now, five days into Wimbledon, has eased us into a steady, smooth workflow, speaks volumes for making it easy to use, intuitive (for example, the color designations on the player match the ones in the CMS, big text and extensive micro-transaction Ajax created an interactive environment), and overall a good experience.</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Fthe-ux-of-cms-wimbledonlive-cms%2F', 'The+UX+of+CMS')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusorange.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/the-ux-of-cms-wimbledonlive-cms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Help Elements Advice</title>
		<link>http://www.matsays.com/misc/tricks/help-elements-advice/</link>
		<comments>http://www.matsays.com/misc/tricks/help-elements-advice/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 17:04:17 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[IMD322 Dynamic Design]]></category>
		<category><![CDATA[IMD335 UCD II]]></category>
		<category><![CDATA[IMD345 UCD III]]></category>
		<category><![CDATA[IMD414 Dynamic Design]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[error handling]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[ux]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/?p=593</guid>
		<description><![CDATA[[quoted excerpts from Smashing Magazine, article by Matt Cronin]
Excellent article on a consistently overlooked problem for most web designers &#8211; help elements.  A help element is anything that provides the user with assistance in completing a task.  They come in many shapes, sizes and formats but the primary goal is to be unobtrusive but noticeable [...]]]></description>
			<content:encoded><![CDATA[<p>[quoted excerpts from Smashing Magazine, article by Matt Cronin]</p>
<p>Excellent article on a consistently overlooked problem for most web designers &#8211; help elements.  A help element is anything that provides the user with assistance in completing a task.  They come in many shapes, sizes and formats but the primary goal is to be unobtrusive but noticeable and, well, helpful.  Most designers/developers look at help elements with trudgery but in many cases it can actually enhance the user experience.</p>
<p><img class="aligncenter size-full wp-image-596" title="form5" src="http://www.mobimeet.com/wp-content/uploads/2009/04/form5.jpg" alt="form5" width="450" height="250" /></p>
<p>The place we frequently see help elements is in form completion and validation.  Why we somehow can&#8217;t provide scripts that reduce error rates in the first place is beyond me, but I suppose in a lot of cases you still have to provide visual cues and alerts to help some users out. </p>
<p><img class="aligncenter size-full wp-image-595" title="form9" src="http://www.mobimeet.com/wp-content/uploads/2009/04/form9.jpg" alt="form9" width="450" height="250" /></p>
<p>In HCI we consider that a standard free-form entry is the most volatile of inputs and sure enough, that&#8217;s where you&#8217;ll encounter the most errors, but don&#8217;t neglect the other visual aspects, including external labels, internal (low contrast, like the one shown below) labels, direct manipulation (such as calendar popups). </p>
<p><img class="aligncenter size-full wp-image-594" title="login1" src="http://www.mobimeet.com/wp-content/uploads/2009/04/login1.jpg" alt="login1" width="450" height="250" /></p>
<p>The extremes of direct input error handling might be dates and telephone numbers, but here you may need to also consider flow; if within the form you require country, simply provide formats that the user will be more familiar with (such as auto-complete country codes).</p>
<p><img class="aligncenter size-full wp-image-597" title="mapsample" src="http://www.mobimeet.com/wp-content/uploads/2009/04/mapsample.jpg" alt="mapsample" width="450" height="150" />From Matt Cronin&#8217;s post:</p>
<blockquote>
<h3>Usability is the Key</h3>
<p>With any website design, one strives for usability. Usability is the key factor in the success that a website achieves. Usability is simply about making things easier for your users — and help elements certainly do that. But are your individual help elements themselves usable?</p>
<p><strong>Don’t Confuse the User</strong><br />
Confusing the user contradicts the purpose of the help element, so avoid it. Only put in content that is appropriate to the element. The way you organize content within the help element affects usability. If the element contains a lot of content, use lists and highlight keywords so that the content is easy to scan.</p>
<p><strong>Placement Has a Major Impact</strong><br />
In Web design layout, placement of objects is a top usability consideration. Likewise for help elements, placement affects usability.</p>
<p>Many designers make the mistake of making help elements (i.e. buttons, links, etc.) very small so that they don’t get in the way of the website’s main content. The problem is that they become hard for the user to find. Sure, their small size leaves room for more content, but that won’t help a confused user. Find a balance between subtlety and accessibility.</p>
<p>Also remember that help elements should be optional for the user, not required. Allow the user to choose to get help, instead of immediately showing the element.</p></blockquote>
<p>Next time you&#8217;re designing your site, put some extra consideration into the help elements and see what ideas you can come up with.  Send me some examples of your clever solutions via comment.</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Fhelp-elements-advice%2F', 'Help+Elements+Advice')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusorange.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/help-elements-advice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>9 Hot Tips to Increase Site Conversions</title>
		<link>http://www.matsays.com/misc/tricks/9-hot-tips-to-increase-site-conversions/</link>
		<comments>http://www.matsays.com/misc/tricks/9-hot-tips-to-increase-site-conversions/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 15:38:51 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[conversion]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[sem]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/?p=546</guid>
		<description><![CDATA[[by Gary Klingsheim for SitePro News]
&#8220;Site conversion&#8221; is a very dry and unexciting way of saying &#8220;how to get more profíts from the same amount of website traffic.&#8221; Isn&#8217;t that a more upbeat way of expressing it? Who doesn&#8217;t want to get more profíts from the same number of visitors?
Increasing your conversion rate is a [...]]]></description>
			<content:encoded><![CDATA[<p>[by Gary Klingsheim for <a title="9 Hot Tips to Increase Site Conversions" href="http://www.sitepronews.com/archives/2009/mar/4.html">SitePro News</a>]</p>
<p>&#8220;Site conversion&#8221; is a very dry and unexciting way of saying &#8220;how to get more profíts from the same amount of website traffic.&#8221; Isn&#8217;t that a more upbeat way of expressing it? Who doesn&#8217;t want to get more profíts from the same number of visitors?</p>
<p>Increasing your conversion rate is a straightforward, even dramatic way of positively impacting your bottom line. It really cannot be emphasized too much that any improvement at all in your conversion rate means additional revenue that is total profít.</p>
<p> <img class="size-medium wp-image-549 alignnone" title="seo_site21" src="http://www.mobimeet.com/wp-content/uploads/2009/03/seo_site21-500x160.jpg" alt="seo_site21" width="500" height="160" /></p>
<p>Remember this fact when you are told that the way to &#8220;make more money&#8221; is to invest in more traffic-generating schemes (and dreams, at times). Before you start spending more money to generate additional traffic, you need to do as much as you can with the traffic you are already getting. If you keep the horse ahead of the cart in your planning, you will have an efficient, stable, measurable conversion rate from which you can extrapolate x amount of additional profit from y amount of new-traffic generation.<span id="more-546"></span></p>
<p>The following tips are not in any particular order (except for Number 1), and can be modified and reordered to suit your particular situation. Take ownership of the change and improvement, and make sure everyone involved understands the importance of maximizing every revenue source, beginning with the existing ones!</p>
<p><strong>1:</strong> Before you can repair or improve something, you have to have a good way of measuring where you are, what you&#8217;re doing, where you&#8217;re going, etc. You can sign up for a free Google Analytics account and use other low- and no-cost tools to develop your &#8220;analytics&#8221; and &#8220;metrics&#8221; &#8211; essentially fancy words that tell you how you&#8217;re doing with numbers.</p>
<p><strong>2:</strong> Create landing pages that are both keyword- and campaign-specific. Try separating any related pay-per-click keywords into smaller and tighter groups, and then create the landing pages for each of those new subgroups. Conversions will almost certainly be better if keywords, advertising approaches and landing pages are thematically related and tightly integrated.</p>
<p><strong>3:</strong> Test different headlines and copy writing. This might be the most effective way of quickly showing improvements. Therefore, you need to write compelling copy or find someone else who can do it for you. There is plenty of free advice about this (much of it worth every penny you pay for it), but the importance of copywriting as it affects site conversions cannot possibly be overstated. This is key.</p>
<p><strong>4:</strong> It is very important to test your pricing, as it really does make a huge difference in conversions. If your goal is to maximize customer value, then the highest converting price may not actually be the optimal one. In other words, if you raise your price by 50% and only see a 10% reduction in conversions, you will more than compensate for the drop. Going the other direction, if you lower the price 15% and this doubles or triples your ratio, your gain compensates for your price reduction. Test your prices, and test them in both directions.</p>
<p><strong>5:</strong> Website load time has become an oft-overlooked item in this age of &#8220;broadband everywhere.&#8221; Load time is critically important in reducing your &#8220;bounce rate&#8221; on landing pages. There are various online services that will measure your load speed (websiteoptimization.com), and when you know what it is, you can reduce it by compressing images, removing redundant items, optimizing your style sheets (CSS) and HTML code, and so on. The referenced website will also give you advice on other ways to improve your site&#8217;s load speed.</p>
<p><strong>6:</strong> Clearly identify the sales path(s) and discard any points of resistance, or bottlenecks. Even if you have just a single product, there may be a number of different &#8220;paths&#8221; that lead to a sale. Perhaps you have a landing page to acquire visitor contact data, which then takes them to a sales page, thence to an order page, and so on. Check your metrics and analytics carefully and you should start seeing patterns in how your visitors navigate your site. If you can see when, where and how visitors are leaving the site, you can delete unnecessary steps, enhance the sales copy or the &#8220;call to action,&#8221; insert a few testimonials, emphasize your warranty or something else to capture that business. Do everything you can to keep the sales process simple and straightforward. The less confusing it is, the less resistance visitors will display.</p>
<p><strong>7:</strong> Let your praises come from others&#8217; lips. Sometimes talking about oneself can sound egotistical, and it has been clearly proven that third-party testimonials boost conversions. In marketing it is called &#8220;social proof&#8221; when you bring in statements and assessments from others to buttress your message. If you add testimonials &#8211; short blurbs, highlighted quotes, letters &#8211; to your various landing pages, sales pages and even shopping cart pages, you will almost invariably notice an improvement in your conversion rate.</p>
<p><strong>8:</strong> You need to understand the mind of your market, and your customer&#8217;s experience with your website. Place an order on the site yourself as you step into the mind of a first-time visitor. Identify the hang-ups, inefficiencies and confusing or missing components that hinder your conversions. In concert with step #6 above, you want to identify why you are not converting, so that you can make the necessary improvements, whatever they may be, to improve your ratio.</p>
<p><strong>9:</strong> Some people believe passionately in the power of media on landing, sales and order pages to raise conversions considerably. Others are not convinced, and there is not much hard data from controlled studies to consult. You should consider testing this idea yourself. You should try pages both with and without automatic play engaged. The idea is to lower buyer resistance, and if media helps, all the better. Music, motion graphics and video do add life and personality to your website, but there is a &#8220;sweet spot&#8221; (balancing point) and the fact remains that different age and cultural groups respond differently to the media. You need to make changes here in the context of your site&#8217;s demographics. You wouldn&#8217;t put rock music on your page of ladies&#8217; perfumes, probably &#8211; unless you have a 20-something demographic and it&#8217;s a signature fragrance from U2 or some other chart-topping band.</p>
<p>Aren&#8217;t most of these lists called the &#8220;top 10&#8243; this or that? You can count this tip as a bonus, then: Keep track of everything you do! Nothing &#8220;goes without saying&#8221; anymore, so you are hereby reminded that all your hard work can go for naught if you do not keep good records of what changes you are making, when, where, why and how. Chart your progress, review it regularly and don&#8217;t be afraid to make continuing refinements as you move along your strategic path.</p>
<p>Finally, as a &#8220;super bonus tip&#8221; &#8211; use some kind of sales accelerator, &#8220;offer intensifier&#8221; or other method to move people faster through the sales process. It could be a special &#8220;one time&#8221; or &#8220;limited time&#8221; offer, a limíted quantity offer or even a &#8220;special event&#8221; promotíon. Research what&#8217;s going on at other sites in your industry and others, and stay abreast of what seems to be working. Add your creativity to the mix, tailor things to your company&#8217;s situation and you should start seeing increased conversion rates in short order.</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2F9-hot-tips-to-increase-site-conversions%2F', '9+Hot+Tips+to+Increase+Site+Conversions')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusorange.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/9-hot-tips-to-increase-site-conversions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://www.matsays.com/misc/tricks/540/</link>
		<comments>http://www.matsays.com/misc/tricks/540/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 10:16:32 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[IMD325 UCD I]]></category>
		<category><![CDATA[IMD345 UCD III]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[ucd]]></category>
		<category><![CDATA[user centered design]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/?p=540</guid>
		<description><![CDATA[[by Steven Snell at Smashing Magazine]
Communication is one of the foundational elements of a good website. It is essential for a positive user experience and for a successful website that truly benefits its owners. All types of websites are affected by the need for good communication in one way or another. Regardless of whether the [...]]]></description>
			<content:encoded><![CDATA[<p>[by Steven Snell at <a title="Clear And Effective Communication In Web Design" href="http://www.smashingmagazine.com/2009/02/03/clear-and-effective-communication-in-web-design/">Smashing Magazine</a>]</p>
<p>Communication is one of the foundational elements of a good website. It is essential for a positive user experience and for a successful website that truly benefits its owners. All types of websites are affected by the need for good communication in one way or another. Regardless of whether the website in question is an e-commerce website, a blog, a portfolio website, an information website for a service company, a government website or any other type of website, there is a significant need to communicate effectively with visitors.</p>
<p>Because of the significance of communication with visitors, it is an essential consideration for every designer and website owner and the responsibility of both. Unfortunately, communication is sometimes overlooked and takes a backseat to the visual attractiveness of a website. Ideally, the design and other elements that do the communicating work together to create a clear, unified message to visitors.</p>
<p style="text-align: center;"><img class="size-full wp-image-541  aligncenter" title="macmac" src="http://www.mobimeet.com/wp-content/uploads/2009/02/macmac.jpg" alt="macmac" width="500" height="350" /></p>
<p>In this article, we’ll take a broad look at the subject of clear communication in Web design. We’ll start with a discussion of the primary methods of communication for websites and typical challenges that designers face. From there, we’ll move on to look at what specifically should be communicated to visitors and tips for implementing this in your own work. At the end, we’ll look at some of the goals that should be established in terms of communication when developing websites, as well as some of the results of having a website that communicates effectively.</p>
<p>[read the entire article at <a title="Clear And Effective Communication In Web Design" href="http://www.smashingmagazine.com/2009/02/03/clear-and-effective-communication-in-web-design/">Smashing Magazine</a>]</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2F540%2F', '')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusorange.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/540/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FireScope &#8211; FireBug Add-On</title>
		<link>http://www.matsays.com/misc/tricks/firescope-firebug-add-on/</link>
		<comments>http://www.matsays.com/misc/tricks/firescope-firebug-add-on/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 17:26:10 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[IMD213 Int. Scripting]]></category>
		<category><![CDATA[IMD223 Advanced Scripting]]></category>
		<category><![CDATA[IMD322 Dynamic Design]]></category>
		<category><![CDATA[IMD414 Dynamic Design]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[firebug webdevelopment css]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/?p=524</guid>
		<description><![CDATA[FireBug, as most web developer-designers know, is probably one of the single best inventions to come out in the last couple of years to help debug those crazy layout and code problems.  Well, if that weren&#8217;t enough, here&#8217;s an add-on to the add-on &#8211; SitePoint introduces FireScope.  This tool extends FireBug with reference material for [...]]]></description>
			<content:encoded><![CDATA[<p><a title="FireScope from SitePoint" href="http://tools.sitepoint.com/firescope/"><img style="float:left;margin-right:5px; margin-bottom:5px;" src="/wp-content/uploads/2009/01/firescope-logo.jpg" border="0" alt="FireScope" /></a>FireBug, as most web developer-designers know, is probably one of the single best inventions to come out in the last couple of years to help debug those crazy layout and code problems.  Well, if that weren&#8217;t enough, here&#8217;s an add-on to the add-on &#8211; SitePoint introduces <a title="FireScope from SitePoint" href="http://tools.sitepoint.com/firescope/">FireScope</a>.  This tool extends FireBug with reference material for HTML &amp; CSS.</p>
<div><a href="/wp-content/uploads/2009/01/firescopeconsole.png"><img style="float:left;margin-right:5px; margin-bottom:5px;" src="/wp-content/uploads/2009/01/firescopecutaway.png" border="0" alt="FireScope" /></a></div>
<div style="clear:both;"></div>
<p>Once installed, it adds an additional panel to the FireBug console labelled &#8220;Reference&#8221;.  Check out the screen shot to see the changes and be sure to get all the details on <a title="FireScope from SitePoint" href="http://tools.sitepoint.com/firescope/">SitePoint&#8217;s web site</a>.</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Ffirescope-firebug-add-on%2F', 'FireScope+%26%238211%3B+FireBug+Add-On')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusorange.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/firescope-firebug-add-on/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>6 Steps for Building Successful Websites</title>
		<link>http://www.matsays.com/soapbox/6-steps-for-building-successful-websites/</link>
		<comments>http://www.matsays.com/soapbox/6-steps-for-building-successful-websites/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 23:17:17 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[IMD325 UCD I]]></category>
		<category><![CDATA[IMD335 UCD II]]></category>
		<category><![CDATA[IMD345 UCD III]]></category>
		<category><![CDATA[Soapbox]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[audience]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[target]]></category>
		<category><![CDATA[ucd]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[ux]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/?p=487</guid>
		<description><![CDATA[[via Smashing Magazine - this article was very concise and follows the exact guidelines of every UCD class I teach so as both a refresher for those who have taken it as well as a prelude to those about to next quarter I've included the entire article here for your enjoyment and learning pleasure]
Web design [...]]]></description>
			<content:encoded><![CDATA[<p><strong><em>[via <a title="Strategic Design: 6 Steps For Building Successful Websites" href="http://www.smashingmagazine.com/2008/11/05/strategic-design-6-steps-for-building-successful-websites/">Smashing Magazine</a> - this article was very concise and follows the exact guidelines of every UCD class I teach so as both a refresher for those who have taken it as well as a prelude to those about to next quarter I've included the entire article here for your enjoyment and learning pleasure]</em></strong></p>
<p><span style="font-size: small;"><strong><span style="font-family: ">Web design isn’t art.</span></strong><span style="font-family: "> It involves a whole collection of different skills — from copywriting and typography to layout and art — all fused together to create an interface that not only features a pleasant aesthetic but that communicates function and facilitates easy access to its content.</span></span></p>
<p><span style="font-family: "><span style="font-size: small;">But in order to combine all these elements of Web design together and achieve successful results you must have a clear direction, a direction that will guide each and every aspect of your design towards common goals. <strong><span style="font-family: ">You must think strategically</span></strong>.</span></span></p>
<p><span style="font-family: "><span style="font-size: small;"><img id="_x0000_i1025" src="http://www.mobimeet.com/wp-content/uploads/2008/11/chess.jpg" alt="Chess" width="480" height="230" /></span></span></p>
<h4 style="margin: auto 0in;"><span style="font-family: "><span style="font-size: small;">What is strategic design?</span></span></h4>
<p><span style="font-family: "><span style="font-size: small;">Strategic design is the fusion of your organizational goals with every aspect of your design process. You aren’t simply designing a user interface that looks good and is usable and accessible. You’re designing an interface that will <strong><span style="font-family: ">help you accomplish your organization’s objectives</span></strong>.</span></span></p>
<p><span style="font-family: "><span style="font-size: small;">There are many websites out there that look fantastic and sport the latest trends in design yet often fail miserably in their intended function. Design trends are, of course, important because they give you fresh inspiration and new techniques, but the implementation of those techniques and styles needs to be <strong><span style="font-family: ">intelligent and focused</span></strong>. For example, a blog isn’t a marketing brochure; you should focus on usability and readability rather than style. Similarly, a promotional website for a computer game should feature graphics and styles that portray a specific feel and style; the aesthetic is very important here.</span></span></p>
<p><span style="font-family: "><span style="font-size: small;">When the designer simply implements a look and feel that is fashionable at the moment (think Web 2.0 trends) without any thought of how they fit the function of the website or the business behind it, the end result is unlikely to be very effective.</span></span></p>
<p><span style="font-family: "><span style="font-size: small;">Web design is all about crafting an interface that communicates function, is usable and accessible and exudes the right emotion and feeling. Effective Web design needs all of these elements to be in tune with the <strong><span style="font-family: ">goals</span></strong> of your website and in sync with the organizational <strong><span style="font-family: ">objectives</span></strong> behind the website. Strategic design is all about identifying those goals and using them to guide your design.</span></span></p>
<h3 style="margin: auto 0in;"><span style="font-family: "><span style="font-size: medium;">Implementing Strategic Design</span></span></h3>
<p><span style="font-family: "><span style="font-size: small;">Let’s take a look at how we can use <strong><span style="font-family: ">six steps</span></strong> to think strategically about a Web design project:</span></span></p>
<h4 style="margin: auto 0in;"><span style="font-family: "><span style="font-size: small;">1. Establish your goals</span></span></h4>
<p><span style="font-family: "><span style="font-size: small;">One of the first things you need to do before starting work on a Web design project is to be clear about your client or organization’s goals. What are you trying to <strong><span style="font-family: ">achieve</span></strong> with the new website or redesign? What is the website’s main <strong><span style="font-family: ">purpose</span></strong>? Ask your client, your manager or yourself what those are. If they or you don’t know yet, then they should be discussed and agreed upon. A clear direction is essential if you want your design to have a purpose.</span></span></p>
<p><span id="more-487"></span></p>
<p><span style="font-family: "><span style="font-size: small;">Remember that a website isn’t a piece of art; <strong><span style="font-family: ">it’s an interface that serves a function</span></strong>. That function may be to sell products, to deliver informational content, to entertain, to inform or to provide access to a service. Whatever that function is, your design must focus on fulfilling it. Goals are also important, especially if you’re doing a redesign. Ask why you are doing the redesign: are you looking to grow the number of sign-ups, decrease the bounce rate or maybe increase user participation?</span></span></p>
<p><span style="font-family: "><a href="http://www.nytimes.com/"><span style="text-decoration: none; text-underline: none;"><span style="font-size: small;"><img id="_x0000_i1026" src="http://www.mobimeet.com/wp-content/uploads/2008/11/nytimes.jpg" border="0" alt="The New York Times website" width="480" height="280" /></span></span></a></span></p>
<p><span style="font-family: "><span style="font-size: small;">Take a look at the design of the </span><a href="http://www.nytimes.com/"><span style="font-size: small;">New York Times</span></a><span style="font-size: small;"> website above. Its function is to deliver informational content. The minimalist interface serves this function beautifully by fading into the background.</span></span></p>
<p><span style="font-family: "><a href="http://www.apaptd.com/"><span style="text-decoration: none; text-underline: none;"><span style="font-size: small;"><img id="_x0000_i1027" src="http://www.mobimeet.com/wp-content/uploads/2008/11/adaptd.jpg" border="0" alt="AdaptD website" width="480" height="338" /></span></span></a></span></p>
<p><span style="font-family: "><span style="font-size: small;">In contrast to the New York Times, </span><a href="http://www.apaptd.com/"><span style="font-size: small;">AdaptD</span></a><span style="font-size: small;"> is a Web design studio, so the goal is not to deliver a lot of content but to impress visitors with its design, showcase a gallery and advertise the company’s services. The visuals are very important here, and AdaptD delivers a browsing experience with beautiful imagery and strong colors.</span></span></p>
<h4 style="margin: auto 0in;"><span style="font-family: "><span style="font-size: small;">2. Identify your audience</span></span></h4>
<p><span style="font-family: "><span style="font-size: small;">Who your audience is will play a big role in how your website should look and function. There are many demographics here that can influence your design, ones like <strong><span style="font-family: ">age, gender, profession</span></strong> and <strong><span style="font-family: ">technical competency</span></strong>. A computer game website for a younger audience needs a different style than that of a serious business journal. Usability should play a bigger role for older and less technically savvy audiences.</span></span></p>
<p><span style="font-family: "><span style="font-size: small;">Who your audience is will not only influence the general aesthetic of the website but will also determine a lot of smaller details, like font sizes, so make sure you’re clear about who will be using your website.</span></span></p>
<p><span style="font-family: "><a href="http://www.jquery.com/"><span style="text-decoration: none; text-underline: none;"><span style="font-size: small;"><img id="_x0000_i1028" src="http://www.mobimeet.com/wp-content/uploads/2008/11/jquery.jpg" border="0" alt="The jQuery website redesign" width="480" height="300" /></span></span></a></span></p>
<p><span style="font-family: "><span style="font-size: small;">This is the unsuccessful </span><a href="http://www.jquery.com/"><span style="font-size: small;">jQuery</span></a><span style="font-size: small;"> rock-star redesign. The designer went too far in trying to create excitement and so failed to cater to the more serious, techy audience. Since then, the rock-star graphic has been replaced with a more conservative look.</span></span></p>
<p><span style="font-family: "><a href="http://www.disney.co.uk/"><span style="text-decoration: none; text-underline: none;"><span style="font-size: small;"><img id="_x0000_i1029" src="http://www.mobimeet.com/wp-content/uploads/2008/11/disney.jpg" border="0" alt="Disney's website" width="480" height="312" /></span></span></a></span></p>
<p><span style="font-family: "><a href="http://www.disney.co.uk/"><span style="font-size: small;">Disney’s</span></a><span style="font-size: small;"> target audience is kids. The intent is to entertain and involve this young audience, and the design does it by wrapping the content in a fun, colorful interface with a lot of visual and interactive elements.</span></span></p>
<h4 style="margin: auto 0in;"><span style="font-family: "><span style="font-size: small;">3. Determine your brand image</span></span></h4>
<p><span style="font-family: "><span style="font-size: small;">A lot of designers tend to get a little too inspired by the latest trends and then implement them without thinking first about what sort of image they really should be conveying. Glossy buttons, gradients and reflective floors may work for some websites, but they may not be right for your <strong><span style="font-family: ">brand</span></strong>.</span></span></p>
<p><span style="font-family: "><span style="font-size: small;">Think about <strong><span style="font-family: ">color</span></strong>. Think about the <strong><span style="font-family: ">feel</span></strong> you want to achieve and <strong><span style="font-family: ">emotions</span></strong> you wish to elicit. Your design should embody the personality and character of your brand. Everything has a brand; even if you don’t sell a product or service — for example, if you run a blog — your website still has a certain feel that makes an impression on your visitors. Decide what that impression should be.</span></span></p>
<p><span style="font-family: "><a href="http://www.carbonica.org/"><span style="text-decoration: none; text-underline: none;"><span style="font-size: small;"><img id="_x0000_i1030" src="http://www.mobimeet.com/wp-content/uploads/2008/11/carbonica.jpg" border="0" alt="Carbonica website" width="480" height="346" /></span></span></a></span></p>
<p><span style="font-family: "><a href="http://www.carbonica.org/"><span style="font-size: small;">Carbonica</span></a><span style="font-size: small;"> is a website aimed at helping people reduce their carbon emissions. The environmentally friendly image of the website is crafted using a lot of recycled paper images and textures, as well as earthy green and brown tones.</span></span></p>
<p><span style="font-family: "><a href="http://www.restaurantica.com/"><span style="text-decoration: none; text-underline: none;"><span style="font-size: small;"><img id="_x0000_i1031" src="http://www.mobimeet.com/wp-content/uploads/2008/11/restaurantica.jpg" border="0" alt="Restaurantica" width="480" height="289" /></span></span></a></span></p>
<p><span style="font-family: "><a href="http://www.restaurantica.com/"><span style="font-size: small;">Restaurantica</span></a><span style="font-size: small;"> is a restaurant reviews website. Its design illustrates this by taking on the look and feel of an actual menu you would see in a restaurant.</span></span></p>
<h4 style="margin: auto 0in;"><span style="font-family: "><span style="font-size: small;">4. Goal-driven design direction</span></span></h4>
<p><span style="font-family: "><span style="font-size: small;">You’ve established the purpose of your website, set some goals you want to achieve, identified your audience and determined your brand image. You can now proceed to implement it. So how do you <strong><span style="font-family: ">make design decisions sync with your strategy</span></strong>? Let me illustrate this with a likely example.</span></span></p>
<p><span style="font-family: "><span style="font-size: small;">Suppose your main objective is to increase the number of subscribers to your Web service. How can your design help accomplish this goal? I can see at least three things here that will make a difference:</span></span></p>
<ul type="disc">
<li class="MsoNormal" style="margin: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1; tab-stops: list .5in;"><span style="font-family: "><span style="font-size: small;">Make the “About” snippet on your landing page as clear and concise as possible. Your visitors must not have any confusion about the function of your website.</span></span></li>
<li class="MsoNormal" style="margin: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1; tab-stops: list .5in;"><span style="font-family: "><span style="font-size: small;">Use color and contrast to make the registration button or link stand out. If people can’t find it, then you won’t get many sign-ups.</span></span></li>
<li class="MsoNormal" style="margin: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l1 level1 lfo1; tab-stops: list .5in;"><span style="font-family: "><span style="font-size: small;">Streamline the registration process by removing unnecessary and optional elements; people can fill those out later. If the form looks long, people may be put off of filling it in.</span></span></li>
</ul>
<p><span style="font-family: "><span style="font-size: small;">These are just three ways you can lead your design towards accomplishing the goal of increasing the number of sign-ups to your service. Your goals may vary, but the strategy is the same: <strong><span style="font-family: ">shape and focus all the design elements towards meeting those goals</span></strong>.</span></span></p>
<p><span style="font-family: "><span style="font-size: small;">The same strategy applies to your brand and audience: design the aesthetic that best suits it. If your website’s focus is entertainment, then create an “experience.” You are free to use a lot of color and imagery to shape that experience. On the other hand, if you’re designing a website that is focused on information consumption, for example, a blog or a magazine, then focus on usability and readability. Create an interface that fades away and doesn’t distract the user from accessing the content.</span></span></p>
<p><span style="font-family: "><a href="http://www.stubmatic.com/"><span style="text-decoration: none; text-underline: none;"><span style="font-size: small;"><img id="_x0000_i1032" src="http://www.mobimeet.com/wp-content/uploads/2008/11/stubmatic.jpg" border="0" alt="Stubmatic" width="480" height="340" /></span></span></a></span></p>
<p><span style="font-family: "><a href="http://www.stubmatic.com/"><span style="font-size: small;">Stubmatic</span></a><span style="font-size: small;"> is an online box-office application. Their external website has two purposes: explain what the service does and get people to sign up. New visitors may only remain on your website for a few seconds, so if you don’t want to lose them you must be concise. You can do this by:</span></span></p>
<ul type="disc">
<li class="MsoNormal" style="margin: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo2; tab-stops: list .5in;"><span style="font-family: "><span style="font-size: small;">Using large imagery and diagrams to illustrate the function of your product or service.</span></span></li>
<li class="MsoNormal" style="margin: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo2; tab-stops: list .5in;"><span style="font-family: "><span style="font-size: small;">Showing screenshots of your application. People will want to see what it looks like before they commit to a download or sign up.</span></span></li>
<li class="MsoNormal" style="margin: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo2; tab-stops: list .5in;"><span style="font-family: "><span style="font-size: small;">Providing a tour, using descriptive examples of how your service can help them solve a problem. Show a video if you can; the less effort people need to make to understand how your app works the better.</span></span></li>
<li class="MsoNormal" style="margin: 0in 0in 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-list: l0 level1 lfo2; tab-stops: list .5in;"><span style="font-family: "><span style="font-size: small;">Having the sign-up link accessible from all pages.</span></span></li>
</ul>
<p><span style="font-family: "><span style="font-size: small;">To succeed, the website must make the best use of the very limited amount of attention visitors will be giving it by not only <strong><span style="font-family: ">informing</span></strong> but <strong><span style="font-family: ">educating</span></strong> them about what your product does, and selling the <strong><span style="font-family: ">benefits</span></strong> it provides. Stubmatic uses design elements effectively to pursue those goals.</span></span></p>
<p><span style="font-family: "><a href="http://www.techcrunch.com/"><span style="text-decoration: none; text-underline: none;"><span style="font-size: small;"><img id="_x0000_i1033" src="http://www.mobimeet.com/wp-content/uploads/2008/11/techcrunch.jpg" border="0" alt="TechCrunch" width="480" height="275" /></span></span></a></span></p>
<p><span style="font-family: "><a href="http://www.techcrunch.com/"><span style="font-size: small;">TechCrunch</span></a><span style="font-size: small;"> is one of the more popular tech blogs. Its new design removes every single unnecessary graphical element from the page. What’s left is just the content, advertising and navigation. Subtle lines and grey shades give the page structure, yet the interface is almost invisible and places content straight into the front row. For a blog that posts several new articles a day, this format is ideal because it <strong><span style="font-family: ">facilitates fast and easy access to the content</span></strong>.</span></span></p>
<h4 style="margin: auto 0in;"><span style="font-family: "><span style="font-size: small;">5. Measure results</span></span></h4>
<p><span style="font-family: "><span style="font-size: small;">Once you’ve designed and deployed your website, it’s time to <strong><span style="font-family: ">measure your success</span></strong>. This is just as important as the first two steps because until you test how well your design performs, you won’t know whether or not it is effective in fulfilling your goals.</span></span></p>
<p><span style="font-family: "><span style="font-size: small;">If your goal is to increase the number of sign-ups to your service, measure it and see if your changes are making a positive impact. If you want to increase the number of subscribers to your blog, check your RSS stats. If you want to increase user involvement, see if you get more comments or more forum posts or whatever else is relevant in your context.</span></span></p>
<p><span style="font-family: "><span style="font-size: small;">You can, of course, also ask people for their feedback, and this is a very good way to check if you’re on the right track. Be careful though not to implement every suggestion people make. Everyone has different tastes and wants, so everyone is going to have a different opinion about what your website should look like. If you do collect feedback, <strong><span style="font-family: ">look for patterns</span></strong>; see if there are common issues that crop up and deal with those.</span></span></p>
<p><span style="font-family: "><span style="font-size: small;">Measuring various website metrics is a whole science unto itself and is beyond the scope of this article. But however in-depth your analytics are at this stage doesn’t really matter; the important thing is that <strong><span style="font-family: ">at the very least you have some way of measuring your key objectives</span></strong>. You can use this information to see if you’re moving in the right direction with your design and with any future changes you or your client make.</span></span></p>
<p><span style="font-family: "><a href="http://www.google.com/analytics/"><span style="text-decoration: none; text-underline: none;"><span style="font-size: small;"><img id="_x0000_i1034" src="http://www.mobimeet.com/wp-content/uploads/2008/11/analytics.jpg" border="0" alt="Google Analytics" width="480" height="346" /></span></span></a><br />
<em><span style="font-family: "><span style="font-size: small;">Even if you’re on a tight budget, you can use free tools like </span><a href="http://www.google.com/analytics/"><span style="font-size: small;">Google Analytics</span></a><span style="font-size: small;"> to get a lot of data on how your website is being used, including overlays of your pages to see what links people click on most as well as the ability to track conversion funnels.</span></span></em></span></p>
<h4 style="margin: auto 0in;"><span style="font-family: "><span style="font-size: small;">6. Kaizen</span></span></h4>
<p><span style="font-family: "><span style="font-size: small;">There is a Japanese philosophy called “Kaizen,” which focuses on <strong><span style="font-family: ">continuous improvement</span></strong> using <strong><span style="font-family: ">small steps</span></strong>. When you work on your website, you should be thinking of Kaizen because the version you’ve just published is not the final version. There doesn’t even have to be a final version.</span></span></p>
<p><span style="font-family: "><span style="font-size: small;">You can always make improvements, and the very nature of a website will allow you to introduce these at any time. This is because a website isn’t a magazine that you print and sell: once a magazine copy is out of your hands, you cannot make any changes or fix any spelling mistakes or errors. A website, however, sits on your server: if you find a mistake, you can fix it right away. In the same vein, you can introduce <strong><span style="font-family: ">gradual improvements</span></strong> and updates to make your website more effective in <strong><span style="font-family: ">serving its function</span></strong>.</span></span></p>
<p><span style="font-family: "><span style="font-size: small;">Using the results of your measurements, you can identify problem areas. Perhaps your visitors cannot find the RSS feed link, or your bounce rate is too high or an important page on your website isn’t getting enough visits. Whatever the problem is, there will always be a way to improve things.</span></span></p>
<h3 style="margin: auto 0in;"><span style="font-family: "><span style="font-size: medium;">Conclusion</span></span></h3>
<p><span style="font-family: "><span style="font-size: small;">The main gist of strategic design is simply common sense: you’re making something for a specific purpose, so of course it should <strong><span style="font-family: ">fulfill that purpose through its design</span></strong>. But it is actually very easy to lose track of your goals and end up with something that is beautiful but ultimately doesn’t work in its context. It’s very easy to fall into the trap of implementing the latest design trends just because they look attractive or shaping a section of your website to resemble another website that you really like without first thinking about why you are doing it or how it fits in with the <strong><span style="font-family: ">purpose</span></strong> of your project.</span></span></p>
<p><span style="font-family: "><span style="font-size: small;">Avoid falling into these traps by thinking through every design decision you make. Why is this button this color? Why are we using tabs? Why should we use icons here? Once you get into the habit of questioning your every design decision, the whole process will become much more <strong><span style="font-family: ">focused</span></strong>. Think about the product or organization you’re representing. Think about the target audience and your brand. What will work in this context? What is expected? How can you use design to best fulfill the website’s purpose? Don’t just build a beautiful website: make a website that really <strong><span style="font-family: ">works</span></strong>.</span></span></p>
<h4 style="margin: auto 0in;"><span style="font-family: "><span style="font-size: small;">About the author</span></span></h4>
<p><em><span style="font-family: "><span style="font-size: small;">Dmitry Fadeyev is the founder of the </span><a href="http://www.usabilitypost.com/"><span style="font-size: small;">Usability Post</span></a><span style="font-size: small;"> blog, where you can read his thoughts on good design and usability.</span></span></em><span style="font-family: "><span style="font-size: small;"> <em><span style="font-family: ">(al)</span></em></span></span></p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fsoapbox%2F6-steps-for-building-successful-websites%2F', '6+Steps+for+Building+Successful+Websites')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusorange.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/soapbox/6-steps-for-building-successful-websites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Joy of Sketch: explorations in hand-crafted visuals</title>
		<link>http://www.matsays.com/misc/tricks/the-joy-of-sketch-explorations-in-hand-crafted-visuals/</link>
		<comments>http://www.matsays.com/misc/tricks/the-joy-of-sketch-explorations-in-hand-crafted-visuals/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 06:51:52 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/misc/tricks/the-joy-of-sketch-explorations-in-hand-crafted-visuals/</guid>
		<description><![CDATA[&#60;bloggerNote&#62;I first have to tell you, I am a terrible artist.&#160; It is one thing to have a reasonable eye for design, composition, balance and so on, but it&#8217;s an entirely different thing to put it on paper (by hand).&#160; Hell, I don&#8217;t even have great handwriting (a detriment of being in the technology business).&#160; [...]]]></description>
			<content:encoded><![CDATA[<p><strong><font face="Courier New">&lt;bloggerNote&gt;</font></strong><em>I first have to tell you, I am a terrible artist.&#160; It is one thing to have a reasonable eye for design, composition, balance and so on, but it&#8217;s an entirely different thing to put it on paper (by hand).&#160; Hell, I don&#8217;t even have great handwriting (a detriment of being in the technology business).&#160; So to a certain degree I can&#8217;t associate with this article; but on the other hand, even I with my limited abilities and stick-figure UML drawings follow this concept.&#160; And as everyone knows I am all about the planning, I wholeheartedly agree with the premises.&#160; Read it, digest it, follow the links and try it out.&#160; Seriously.</em><strong><font face="Courier New">&lt;/bloggerNote&gt;</font></strong></p>
<p>[excerpted...article by Kate Rutter via Adaptive Path]</p>
<p>&#160;</p>
<p>There&#8217;s always been a strong visual element to our work: architecture diagrams, interface wireframes, concept models, system and service models. We&#8217;ve become adept at the computer applications that help us create these things, but there are other tools out there, such as the simple tools of pen, paper and sketching.   <br />About two years ago, Adaptive Path experienced an upwelling of analog approaches. We started using design tools that jumped out of the screen and into the real world. We started using our hands to make things. </p>
<p>Alongside our computers there appeared slabs of blank paper. Rather than reaching for a mouse, we started reaching for a Sharpie. Large rolls of paper and drafting dots became part of the lingua franca of client working sessions. Sketching was the new black.</p>
<p>And we saw the impact of these approaches in many ways: more visibility for design solutions. More engagement in collaborative working sessions with clients. More design artifacts co-created in real-time. Our design solutions got faster and stronger.</p>
<p>There&#8217;s a lot of research to support the idea that visual thinking activates different parts of our brains than language thinking. Pictures allow a holistic view of something. &quot;Seeing is believing&quot; holds especially true when working with a diverse group of people.</p>
<p>Graphic elements create stronger memory and recognition points; it&#8217;s easier to remember an image than a page of text. Illustrations communicate ideas faster than descriptions, because processing pictures requires less &quot;translation&quot; than written language. This means more meaning in less time. In addition, there is a tactile pleasure to hand sketching that is rich and engaging.</p>
<p>Analog tools of pen and paper have had a major impact on our work. Looking back over the past two years, there are overall themes in the hands-to-paper trend. Below are four techniques that have supported more rigorous capture and exploration of ideas, fostered clearer communication of concepts, and as a result have enabled better and faster design. Each one is illustrated with a visual so that you can see how the different methods shift the nature of the info.   <br /><strong>     <br />1) Hand Sketching</strong>    <br />In order to become adept at capturing ideas and concepts visually, we need to know the basics of hand sketching. For the work we do, hand sketching falls into two main categories: <em>drawing people, places &amp; things</em>; and <em>drawing abstract concepts and ideas</em>.    </p>
<p><strong><em>Drawing People, Places, Things</em></strong>    <br />Getting comfortable with hand-sketching things, people and objects is key to communicating complex ideas for service design, product design and environments/spaces. We need to be able to communicate scenarios and interfaces clearly and visually, but at low fidelity. Tools in the toolkit are the basics of composition, shape, line quality, color, perspective and creating abstract human forms. Put together, these elements comprise a visual language for telling compelling stories visually and quickly.    </p>
<p><em>What it&#8217;s good for:</em></p>
<ul>
<li>Illustrating product concepts and product interfaces. </li>
<li>Creating scenarios and storyboards. </li>
<li>Drawing physical spaces. </li>
</ul>
<p> <em>
<p>What it looks like:</p>
<p> </em><a href="https://mail.istreamplanet.com/redir.aspx?C=7473676196714cec850eca4c0f2895a0&amp;URL=http%3a%2f%2fapp.bronto.com%2fpublic%2f%3fq%3dulink%26fn%3dLink%26ssid%3d8317%26id%3ddjsbsxyhrcus8oici19c7xijxw9xz%26id2%3djldinh0htnslonaqyh3dhzof515t9"><img height="208" alt="Hand Sketching, People, Places &amp; Things" src="http://farm4.static.flickr.com/3111/2840804404_423817c5ce_m.jpg" width="240" border="0" /></a>  </p>
<p><a href="https://mail.istreamplanet.com/redir.aspx?C=7473676196714cec850eca4c0f2895a0&amp;URL=http%3a%2f%2fapp.bronto.com%2fpublic%2f%3fq%3dulink%26fn%3dLink%26ssid%3d8317%26id%3ddjsbsxyhrcus8oici19c7xijxw9xz%26id2%3dgykn6yxrte4ykuhdpyn0cjnasi8g7">View the larger image on Flickr.</a>  <br /><em>   <br /></em><em><strong>     <br /></strong></em><em>
<p><em><strong></strong></em></p>
<p><em><strong></strong></em></p>
<p><em><strong></strong></em></p>
<p><em><strong></strong></em></p>
<p><em><strong></strong></em></p>
<p><em><strong></strong></em></p>
<p><em><strong></strong></em></p>
<p> </em><br />
<span id="more-461"></span><br />
<em>
<p><em><strong>Drawing abstract concepts &amp; ideas</strong></em></p>
<p>Conceptual drawing captures the essence and structure of ideas. These are diagrams, models, figures and charts. All can be drawn by hand, and the opportunities are unlimited&#8230;new forms and models emerge frequently. Key to this approach is developing the visual grammar necessary to make shapes and lines that tell the right story to communicate compelling information.</p>
<p><em>What it&#8217;s good for:</em></p>
<p> </em>
<ul>
<li>Using simple shapes and lines to create compelling pictures of abstract concepts. </li>
<li>Distilling thoughts from a group into a unified, clear picture. </li>
<li>Creating visuals that &quot;solve problems and sell ideas&quot; (Dan Roam&#8217;s great quote!) </li>
<li>Forwarding conversations with product and business stakeholders. </li>
</ul>
<p> <em>
<p>What it looks like:</p>
<p> </em>  <br /><a href="https://mail.istreamplanet.com/redir.aspx?C=7473676196714cec850eca4c0f2895a0&amp;URL=http%3a%2f%2fapp.bronto.com%2fpublic%2f%3fq%3dulink%26fn%3dLink%26ssid%3d8317%26id%3ddjsbsxyhrcus8oici19c7xijxw9xz%26id2%3dec84prhbz8ni1upc4ns59q1uz0ovb"><img height="240" alt="Hand Sketching, Abstract Concepts" src="http://farm4.static.flickr.com/3097/2840804472_0beaf2df40_m.jpg" width="235" border="0" /></a>  <br /><a href="https://mail.istreamplanet.com/redir.aspx?C=7473676196714cec850eca4c0f2895a0&amp;URL=http%3a%2f%2fapp.bronto.com%2fpublic%2f%3fq%3dulink%26fn%3dLink%26ssid%3d8317%26id%3ddjsbsxyhrcus8oici19c7xijxw9xz%26id2%3d4hqirmx7wxmfak8ve5hz3mko0u7xr">View the larger image on Flickr.</a> <em>   <br /></em><strong>   <br /></strong><em>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong>2) Graphic recording and graphic facilitation</strong></p>
<p>Graphic Recording refers to the act of transcribing a meeting using large display graphics and words without a lot of interaction with the group. Graphic facilitation is the process of combining graphic work with meeting facilitation, sometimes in a team with a recorder, and often alone. Both methods rely on accurate listening, on-the-fly composition, and mixing words and images to accurately record the happenings of a conversation, presentation or event. These concepts were pioneered by David Sibbert of <a href="https://mail.istreamplanet.com/redir.aspx?C=7473676196714cec850eca4c0f2895a0&amp;URL=http%3a%2f%2fapp.bronto.com%2fpublic%2f%3fq%3dulink%26fn%3dLink%26ssid%3d8317%26id%3ddjsbsxyhrcus8oici19c7xijxw9xz%26id2%3d2qnutt5mab94u9iizzezt35q51sf3">The Grove Consultants</a>.</p>
<p><em>What it&#8217;s good for:</em></p>
<p> </em>
<ul>
<li>Capturing group conversation and contributions in real time. </li>
<li>Using visuals and note-taking to guide the conversation. </li>
<li>Developing a language of symbols to communicate potent concepts. </li>
<li>Create an artifact of a shared experience. </li>
</ul>
<p> <em>
<p>What it looks like:</p>
<p> </em>  <br /><a href="https://mail.istreamplanet.com/redir.aspx?C=7473676196714cec850eca4c0f2895a0&amp;URL=http%3a%2f%2fapp.bronto.com%2fpublic%2f%3fq%3dulink%26fn%3dLink%26ssid%3d8317%26id%3ddjsbsxyhrcus8oici19c7xijxw9xz%26id2%3d91kbk4hvwbmw2v9er8xhl99k5y70g"><img height="500" alt="Graphic Recording" src="http://farm4.static.flickr.com/3030/2840804760_e3a91c0074.jpg" width="333" border="0" /></a>  <br /><a href="https://mail.istreamplanet.com/redir.aspx?C=7473676196714cec850eca4c0f2895a0&amp;URL=http%3a%2f%2fapp.bronto.com%2fpublic%2f%3fq%3dulink%26fn%3dLink%26ssid%3d8317%26id%3ddjsbsxyhrcus8oici19c7xijxw9xz%26id2%3de3g582pg8ft1uj6m9vti87ri4df0c">View the larger image on Flickr.</a>  <br /><em>   <br /></em>  <br /><strong></strong><em>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong>3) Mind Mapping</strong></p>
<p><a href="https://mail.istreamplanet.com/redir.aspx?C=7473676196714cec850eca4c0f2895a0&amp;URL=http%3a%2f%2fapp.bronto.com%2fpublic%2f%3fq%3dulink%26fn%3dLink%26ssid%3d8317%26id%3ddjsbsxyhrcus8oici19c7xijxw9xz%26id2%3d2q3h6xhszne5m5s5zrb9hgrnzb9jy">Mind mapping</a> explores ideas via radiant and associative thinking. This enables you to delve into an idea space in a structured yet fluid way. By creating mind maps, you discover and reveal the elements at play in and around an idea. Starting with a central concept and radiating out in a free-form star-like structure is a natural and powerful way to explore and flesh out an idea.</p>
<p><em>What it&#8217;s good for:</em></p>
<p> </em>
<ul>
<li>Pushing your thinking out from a central concept or idea. </li>
<li>Organizing your thoughts and ideas. </li>
<li>Breaking away from lists and creating spatial notation. </li>
<li>Figuring out what the heart of an idea is. </li>
<li>Understanding the scope of a concept. </li>
</ul>
<p><em></em><em>
<p><em>What it looks like:</em></p>
<p>   <em>
<p><a href="https://mail.istreamplanet.com/redir.aspx?C=7473676196714cec850eca4c0f2895a0&amp;URL=http%3a%2f%2fapp.bronto.com%2fpublic%2f%3fq%3dulink%26fn%3dLink%26ssid%3d8317%26id%3ddjsbsxyhrcus8oici19c7xijxw9xz%26id2%3dgwivszwjlsc1mdbuurj7i5mkp5dhv"><img height="500" alt="Mind Map" src="http://farm4.static.flickr.com/3045/2840804860_daf93cd0b5.jpg" width="396" border="0" /></a></p>
<p><a href="https://mail.istreamplanet.com/redir.aspx?C=7473676196714cec850eca4c0f2895a0&amp;URL=http%3a%2f%2fapp.bronto.com%2fpublic%2f%3fq%3dulink%26fn%3dLink%26ssid%3d8317%26id%3ddjsbsxyhrcus8oici19c7xijxw9xz%26id2%3di3oen2k5kdnoibtya1tk2gmekb6lv">View the larger image on Flickr.</a></p>
<p>   </em>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong>4) Sketchnoting</strong></p>
<p>Sketchnoting is a personal form of capturing and/or exploring information visually. Really, it&#8217;s simply journaling with imagery. This is not a new concept; visual journaling has been around for ages, but it&#8217;s gaining a lot of momentum for people who attend events and capture the information in visually compelling ways. There&#8217;s a lot of overlap with graphic recording, but sketchnoting tends to happen on a personal and individual level, not in front of a group or for the purposes of group share-outs.</p>
<p>One thing is for sure: people <strong>love</strong> to look at other people&#8217;s visual stuff. Words? Not interesting. Pictures? You have to beat people off with a stick. It&#8217;s a natural and wonderful connecting tool. People are enchanted by the visual communications of other people.</p>
<p><em>What it&#8217;s good for:</em></p>
<p> </em>
<ul>
<li>Capturing a presentation, talk, article, book or personal idea exploration. </li>
<li>Combining words and pictures to illustrate and evoke meaning. </li>
<li>Developing a personal style for visual communications. </li>
<li>Maintaining a strong personal visual practice. </li>
<li>Sharing ideas with others: friends, colleagues and community members. </li>
</ul>
<p><em></em><strong>
<p><em>What it looks like:</em></p>
<p><a href="https://mail.istreamplanet.com/redir.aspx?C=7473676196714cec850eca4c0f2895a0&amp;URL=http%3a%2f%2fapp.bronto.com%2fpublic%2f%3fq%3dulink%26fn%3dLink%26ssid%3d8317%26id%3ddjsbsxyhrcus8oici19c7xijxw9xz%26id2%3ddg72dhgg35jlsxs1ewhfdgixotej9"><img height="186" alt="SketchNotes" src="http://farm4.static.flickr.com/3111/2839971487_9fe1dc5dcd_m.jpg" width="240" border="0" /></a></p>
<p><a href="https://mail.istreamplanet.com/redir.aspx?C=7473676196714cec850eca4c0f2895a0&amp;URL=http%3a%2f%2fapp.bronto.com%2fpublic%2f%3fq%3dulink%26fn%3dLink%26ssid%3d8317%26id%3ddjsbsxyhrcus8oici19c7xijxw9xz%26id2%3d58n6vl5fnujts0a1c7f8iawceqy0n">View the larger image on Flickr.</a></p>
<p>   <strong>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong>Further Inspiration</strong></p>
<p>   </strong>
<p>We&#8217;ve listed <a href="https://mail.istreamplanet.com/redir.aspx?C=7473676196714cec850eca4c0f2895a0&amp;URL=http%3a%2f%2fapp.bronto.com%2fpublic%2f%3fq%3dulink%26fn%3dLink%26ssid%3d8317%26id%3ddjsbsxyhrcus8oici19c7xijxw9xz%26id2%3d1ya557clgedyixewrye1kav32xjva">links and additional inspirations on the blog</a>. What methods and approaches have <strong>you</strong> experienced that have furthered your practices? Please share them in the <a href="https://mail.istreamplanet.com/redir.aspx?C=7473676196714cec850eca4c0f2895a0&amp;URL=http%3a%2f%2fapp.bronto.com%2fpublic%2f%3fq%3dulink%26fn%3dLink%26ssid%3d8317%26id%3ddjsbsxyhrcus8oici19c7xijxw9xz%26id2%3dd4ks4a6yzzssynh6v9kdn2ucj7jnk">comments</a>. New tools are always welcome!</p>
<p>Events like <a href="https://mail.istreamplanet.com/redir.aspx?C=7473676196714cec850eca4c0f2895a0&amp;URL=http%3a%2f%2fapp.bronto.com%2fpublic%2f%3fq%3dulink%26fn%3dLink%26ssid%3d8317%26id%3ddjsbsxyhrcus8oici19c7xijxw9xz%26id2%3d7hyt9thf2j786ad4m1m1mwpqgqh1k">VizThink</a> help us learn ways to further our work in interesting ways. And resources like the <a href="https://mail.istreamplanet.com/redir.aspx?C=7473676196714cec850eca4c0f2895a0&amp;URL=http%3a%2f%2fapp.bronto.com%2fpublic%2f%3fq%3dulink%26fn%3dLink%26ssid%3d8317%26id%3ddjsbsxyhrcus8oici19c7xijxw9xz%26id2%3dc0dl0ata9yp0ayyj6x644ibxoeh7y">Periodic Table of Visualization Methods</a> keep us inspired with how many options there are for communicating concepts.</p>
<p>These are only a few of the ways we&#8217;ve found to infuse product and design work with the liveliness of hand-crafted visual elements. I know we&#8217;ve only started to scratch the surface on the opportunities to find new ways for teams to envision, design and communicate ideas that make for great experiences.</p>
<p>It&#8217;s a vast world of visual methods out there, and we&#8217;re having a lot of fun and success in using these lightweight yet impactful techniques. <strong>Viva the joy of sketch!</strong></p>
<p></strong></p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Fthe-joy-of-sketch-explorations-in-hand-crafted-visuals%2F', 'The+Joy+of+Sketch%3A+explorations+in+hand-crafted+visuals')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusred.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/the-joy-of-sketch-explorations-in-hand-crafted-visuals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Common WordPress Problems</title>
		<link>http://www.matsays.com/misc/tricks/common-wordpress-problems/</link>
		<comments>http://www.matsays.com/misc/tricks/common-wordpress-problems/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 21:03:11 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[IMD345 UCD III]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[keywords]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[sem]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[tagging]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/?p=458</guid>
		<description><![CDATA[If you happen to use WordPress for your blog (or even as a CMS), you should be aware of some pitfalls that can hurt your SEO rankings.  Many of the theme that you download from various sources might look great but the minute you veer from the classic or default themes, you open the probability [...]]]></description>
			<content:encoded><![CDATA[<p>If you happen to use WordPress for your blog (or even as a CMS), you should be aware of some pitfalls that can hurt your SEO rankings.  Many of the theme that you download from various sources might look great but the minute you veer from the classic or default themes, you open the probability for issues.  Fortunately there&#8217;s some pretty easy solutions depending on your need to improve the visibility.</p>
<p><strong>1. Proper use of &lt;h#&gt; tags</strong><br />
Many themes I&#8217;ve looked at do not use &lt;h1&gt;, &lt;h2&gt; and so forth properly.  Remember that the search engines (and POSH) dictate that the header tags place emphasis on specific information (which should include things like the title, the date of publication or the author).  Comb through the single post and main index templates to make sure there is consistent use of both &lt;h1&gt; and &lt;h2&gt; tags (at the very least, and preferably &lt;h3&gt; as well) and adjust the CSS to get the look and feel you want instead of relying on class-based &lt;div&gt; markup.</p>
<p><strong>2. Too many links on the index page</strong><br />
Two problems here &#8211; first, the increase in links (past 40) decreases or dilutes the value of importance placed on the page.  At the very least, push the most important posts on the front page and consider whether or not you need the others.  Second, why are you sending people elsewhere in the first place?  Sure your friends might run a great blog but do you really need 100 listings in your blogroll?  Consider that external links in your posts should not go past 2 each and that you should keep the total number of links as close to 40 as possible.</p>
<p><strong>3. Bad keyword choices</strong><br />
Especially on the main index page, it is critical that you consider your choice of keywords and mold your page to the proper density.  Use a free tool like <a title="Google Keyword Tool" href="https://adwords.google.com/select/KeywordToolExternal" target="_blank">Google&#8217;s Keyword Tool</a> to find ones if you&#8217;re unfamiliar with structuring keywords.</p>
<p><strong>4. Alt and title text</strong><br />
Always, always, always include alt attribute text on images and preferably include a title attribute on links and lists so that search engines know what tags to associate with the image.</p>
<p><strong>5. Unique keywords</strong><br />
Every page in the site should have a) unique titles and b) different keywords.  You may even opt to remove the name of your blog from the page title because in the end it&#8217;s just a vanity thing isn&#8217;t it?  There are several plugins that can help you do this by converting the text and tags on the posts into the keywords and description &lt;meta&gt; elements.</p>
<p><strong>6. Fix your markup</strong><br />
Bad markup is, well, just bad.  This goes for both the HTML as well as the RSS feeds.  By default (the newer versions of) WordPress provides at least 4 places to get the feeds from: www.domain.com/feed/, www.domain.com/comments/feed/, www.domain.com/wp-rss.php, and www.domain.com/wp-rss2.php and you should provide appropriate links to them as needed.</p>
<p><em>Now many of you (all 5 reading this post) are probably asking why I don&#8217;t even follow these rules necessarily and the fact of the matter is that for this blog, I don&#8217;t personally care.  I publish this for information purposes and largely for my students, not really for the public at large.  Should I teach by example, sure I should; but there are many other ways to get this information across, so I do as I wish.</em></p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Fcommon-wordpress-problems%2F', 'Common+WordPress+Problems')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusred.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/common-wordpress-problems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>7 Principles Of Clean And Optimized CSS Code</title>
		<link>http://www.matsays.com/misc/tricks/7-principles-of-clean-and-optimized-css-code/</link>
		<comments>http://www.matsays.com/misc/tricks/7-principles-of-clean-and-optimized-css-code/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 03:45:28 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/misc/tricks/7-principles-of-clean-and-optimized-css-code/</guid>
		<description><![CDATA[[excerpted from SmashingMagazine by Tony White]
Note for my students: especially #s 1, 2 and 6 I&#8217;ve spoken about in class frequently &#8211; if you have questions about any of this over the coming week &#8211; ASK!
But there are some principles to consider during and after you write your CSS to help keep it tight and [...]]]></description>
			<content:encoded><![CDATA[<p>[excerpted from <a href="http://www.smashingmagazine.com/2008/08/18/7-principles-of-clean-and-optimized-css-code/" target="_blank">SmashingMagazine</a> by Tony White]</p>
<p><em>Note for my students: especially #s 1, 2 and 6 I&#8217;ve spoken about in class frequently &#8211; if you have questions about any of this over the coming week &#8211; ASK!</em></p>
<p>But there are some principles to consider during and after you write your CSS to help keep it tight and optimized. <strong>Optimization isn&#8217;t just minimizing file size</strong> &#8212; it&#8217;s also about being organized, clutter-free, and efficient. You&#8217;ll find that the more knowledge you have about optimal CSS practices, smaller file size will inevitably come as an direct result of their implementation. You may already be familiar with some of the principles mentioned below, but they are worth a review. Being familiar with this concepts will help you write optimized CSS code and make you a better all-around web designer.</p>
<p>1. Use Shorthand   <br />Using shorthand properties is the single easiest practice you can do to cut down your code (and coding time). There&#8217;s no better time than the present to start this efficient coding practice, or to review it. <code>Margin</code>, <code>border</code>, <code>padding</code>, <code>background</code>, <code>font</code>, <code>list-style</code>, and even <code>outline</code> are all properties that allow shorthand (and that&#8217;s not even an extensive list!).</p>
<p>2. Axe the Hacks   <br />But now we know that using conditional comments to serve <del>hacks</del> correctional declarations for IE6 and IE7 is an accepted practice, even recommended by the Microsoft IE development team. <strong>Using conditional comments</strong> to serve IE-specific CSS rules has the added benefit of serving a cleaner, and therefore smaller, default CSS file to more standards-compliant browsers, while only those browsers that need the hackery daiquri (i.e. IE) will download the additional page weight.</p>
<p>3. Use Whitespace Wisely   <br />Whitespace, including spaces, tabs, and extra line breaks, is <strong>important for readability</strong> for CSS code. However, whitespace does add, however miniscule it may be, to page weight. Every space, line-break, and tab you can eliminate is like having one less character.</p>
<p>4. Prune Frameworks and Resets   <br />If you&#8217;ve chosen to use a CSS framework (including ones you&#8217;ve written yourself), take the time to review the documentation <em>as well as every line</em> of the CSS file. You may find that the framework includes some rules that you don&#8217;t care to use for your current project, and they can be weeded out. This goes for resets as well.</p>
<p>5. Future-proof your CSS   <br />However, I&#8217;m warming up to the idea of <strong>separating layout styles from the rest of the styles</strong>, and giving layout it&#8217;s own file, or at least it&#8217;s own section.</p>
<p>6. Document Your Work   <br /><strong>Documentation, including markup guides and style sheet guides</strong>, is not just for group efforts &#8212; they are just as important for a one-man design team. After all, a year after working on other things, revisiting one of your own projects can feel quite foreign. Your future self might appreciate reminder of how your CSS grid framework is supposed to work, or what pages already have a treatment for a secondary action form button, and it will save you or someone else from appending redundant and unnecessary rules to your CSS.</p>
<p>7. Make Use of Compression   <br />Some great applications have been created to compress and optimize CSS for you, allowing you to serve a human-unreadable but still browser-friendly files that are a fraction of the origional working copies.</p>
<p>[<a href="http://www.smashingmagazine.com/2008/08/18/7-principles-of-clean-and-optimized-css-code/" target="_blank">Read the article in its entirety at Smashing Magazine</a>]</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2F7-principles-of-clean-and-optimized-css-code%2F', '7+Principles+Of+Clean+And+Optimized+CSS+Code')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusred.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/7-principles-of-clean-and-optimized-css-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MsSQL Stored Procedures</title>
		<link>http://www.matsays.com/misc/tricks/mssql-stored-procedures/</link>
		<comments>http://www.matsays.com/misc/tricks/mssql-stored-procedures/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 07:52:02 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[mssql]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[stored procedure]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/?p=428</guid>
		<description><![CDATA[In SQL, a stored procedure is a type of action.  In general, it is a specially formatted sequence of functions or actions to perform.  It has extensive benefits over writing simple queries in that it is stored in the SQL engine for re-use.
For example, let&#8217;s say that you&#8217;ve created a table to hold all of your [...]]]></description>
			<content:encoded><![CDATA[<p>In SQL, a stored procedure is a type of action.  In general, it is a specially formatted sequence of functions or actions to perform.  It has extensive benefits over writing simple queries in that it is stored in the SQL engine for re-use.</p>
<p>For example, let&#8217;s say that you&#8217;ve created a table to hold all of your users logins and passwords (and some other info):</p>
<pre>CREATE TABLE users (
   userID INT NOT NULL IDENTITY(1,1),
   login NVARCHAR(32) NOT NULL,
   passw NVARCHAR(100) NOT NULL,
   email NVARCHAR(50) NOT NULL,
   uName NVARCHAR(50) NULL,
   uCreated SMALLDATETIME NOT NULL DEFAULT (getdate())
)</pre>
<p>On the one hand you can simply write a simple query in your server-side script (here in ASP.NET):</p>
<pre>string mySqlQuery = "SELECT * FROM users
   WHERE login = '" + strLogin + "' AND passw = '" + strPass + "'";</pre>
<p>And that would work great.  But now lets say you&#8217;ve constructed a second table containing more normalized information about the user:</p>
<pre>CREATE TABLE usersMetadata (
   userID INT NOT NULL DEFAULT (0),
   dataDescription NVARCHAR(50) NOT NULL,
   theInformation NVARCHAR(1000) NULL
)</pre>
<p>So what if you wanted to pull certain information about a specific user?  Once again we can write a simple query:</p>
<pre>string mySqlQuery = "SELECT usersMetadata.*,users.*
   FROM usersMetadata
   LEFT JOIN users ON users.userID = usersMetadata.userID
   WHERE userID = " + intUserId + " AND dataDescription = '" + strSomeInfo + "'";</pre>
<p>And that would work great too.  But as those of us who develop large-scale web sites know, we re-use queries over and over, frequently.  So what happens when we change the query on one page and neglect to change it on another?  Now we have two pages with different results.  Not good.<span id="more-428"></span></p>
<p>Using a stored procedure, we now give ourselves direct access to a centralized query.  This means that if we change it once (on the server), it changes for all instances of it.  So how do we do this?  Writing a stored procedure is relatively simple. </p>
<pre>CREATE PROCEDURE dbo.getUserMetadata
   @userID INT,
   @dataType NVARCHAR(50)
SET NO COUNT ON
BEGIN
   SELECT usersMetadata.*,users.* FROM usersMetadata
   LEFT JOIN users ON users.userID = usersMetadata.userID
   WHERE userID = @userID AND dataDescription = @dataType
END</pre>
<p>Calling stored procedures is a snap too. Instead of writing out the entire query, we can just execute the procedure as:</p>
<pre>string mySqlQuery = "EXEC getUserMetadata @UserID, @dataType";</pre>
<p><small>Note that we would declare the @ parameters as well</small></p>
<p>Stored procedures can also be great when you need to extrapolate data from multiple places and perform additional actions on the data before output.  Stored procedures, for example, allow you to create, use and destroy temporary tables of information without affecting the whole.  Say, for example you want to test how your data might react if performed but you don&#8217;t want it to go against the live table first.</p>
<pre>CREATE PROCEDURE dbo.testUserUpdate
SET NO COUNT ON
BEGIN
   -- this is the temporary table
   CREATE TABLE #users (
      userID INT NOT NULL IDENTITY(1,1),
      login NVARCHAR(32) NOT NULL,
      passw NVARCHAR(32) NOT NULL,
      email NVARCHAR(50) NOT NULL,
      uName NVARCHAR(50) NULL,
      uCreated SMALLDATETIME NOT NULL DEFAULT (getdate())
   )
   -- inserts all users created in the last month to the temporary table
   INSERT INTO #users SELECT users.userID,login,passw,email,uName,uCreated FROM users
   WHERE uCreated &gt; DATEADD('dd',-30,getdate())
-- apply some silly change like altering the password for any user with a login beginning with an a
UPDATE #users SET passw = 'KILLED-YOUR-PASSWORD' WHERE login LIKE 'a%'
   -- now display the data
SELECT * FROM #users ORDER BY #users.login
-- and be sure to destroy the temporary (it is temporary after all)
DROP TABLE #users
SET NOCOUNT OFF
END</pre>
<p>This procedure will have the same basic effect as having made the update to the users table but instead applied it to transitory data that was destroyed before leaving the query. Now assuming that the results were good, you could ideally just have a second procedure to actually alter the original table.</p>
<p>Shortly we&#8217;ll add to this post with an update. In the meantime, code on!</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Fmssql-stored-procedures%2F', 'MsSQL+Stored+Procedures')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusred.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/mssql-stored-procedures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Friday Night Finds for 07/11</title>
		<link>http://www.matsays.com/misc/tricks/friday-night-finds-for-0711/</link>
		<comments>http://www.matsays.com/misc/tricks/friday-night-finds-for-0711/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 07:01:36 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[IMD345 UCD III]]></category>
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/misc/tricks/friday-night-finds-for-0711/</guid>
		<description><![CDATA[To be honest with you, I&#8217;ve been so friggin&#8217; busy that I have nothing to report for today.
This morning I spent 90 minutes in line with Jennifer waiting to buy her 3G.&#160; I&#8217;m not quite sure what the fascination is with actually waiting in line that long (more than 7 hours all in all) to [...]]]></description>
			<content:encoded><![CDATA[<p>To be honest with you, I&#8217;ve been so friggin&#8217; busy that I have nothing to report for today.</p>
<p>This morning I spent 90 minutes in line with Jennifer waiting to buy her 3G.&#160; I&#8217;m not quite sure what the fascination is with actually waiting in line that long (more than 7 hours all in all) to get one, but I&#8217;ll give her credit for persevering that long.&#160; Now on the other hand, the Touch Pro will reportedly be out in September, so maybe I&#8217;ll eat my own words.&#160; Unless I break down and import one instead.</p>
<p>I sat through an enlightening department meeting today in which the issue of, amongst other things, design came up.&#160; Without going overboard I would like to elicit a challenge to all WDIM students this quarter not only to complete the work they are assigned but to challenge themselves one step further and &quot;polish&quot; your design.&#160; </p>
<p>Mr. Anderson had an interesting point &#8211; a lot of you don&#8217;t seem to know where to begin and he gave out a lot of recommendations that I strongly agree with: stepping away from the computer and drawing by hand, layering screencaps of choice sites on top of each other in Photoshop and deconstructing or morphing them together, cutting clips from magazines and arranging them together like a scrapbook.&#160; The point being that despite everyone&#8217;s creative talents, sometimes finding direction is the hardest part.&#160; Take a step to be different.</p>
<p>From my end I would like to see more polish.&#160; Hopefully we&#8217;ll be able to incorporate a few good example of what we mean by this in IMD345 (UCD3) this quarter.&#160; Or if you need some examples, pick up Web Designer Magazine (a glossy, expensive British mag &#8211; find it at Barnes &amp; Noble) and check out some of the great design coming out of the UK.&#160; Aspire to get that kind of cleanliness or artistry in your design.&#160; By the same token, don&#8217;t lose sight of the content and functionality.</p>
<p>See you next week!</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Ffriday-night-finds-for-0711%2F', 'Friday+Night+Finds+for+07%2F11')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusred.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/friday-night-finds-for-0711/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Signs that you are a bad programmer</title>
		<link>http://www.matsays.com/soapbox/signs-that-you-are-a-bad-programmer/</link>
		<comments>http://www.matsays.com/soapbox/signs-that-you-are-a-bad-programmer/#comments</comments>
		<pubDate>Sat, 05 Jul 2008 08:46:21 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Soapbox]]></category>
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/soapbox/signs-that-you-are-a-bad-programmer/</guid>
		<description><![CDATA[[via infogami]
No, I didn&#8217;t write this but it&#8217;s something I wish I could lay claim to.
1. Inability to reason about code
Reasoning about code means being able to follow the execution path (&#34;running the program in your head&#34;) while knowing what the goal of the code is.
Symptoms

The presence of &#34;voodoo code&#34;, or code that has no [...]]]></description>
			<content:encoded><![CDATA[<p>[via <a href="http://badprogrammer.infogami.com/">infogami</a>]</p>
<p><em><font color="#00ff00">No, I didn&#8217;t write this but it&#8217;s something I wish I could lay claim to.</font></em></p>
<h5>1. Inability to reason about code</h5>
<p>Reasoning about code means being able to follow the execution path (&quot;running the program in your head&quot;) while knowing what the goal of the code is.</p>
<h6>Symptoms</h6>
<ol>
<li>The presence of &quot;voodoo code&quot;, or code that has no effect on the goal of the program but is diligently maintained anyway (such as initializing variables that are never used, calling functions that are irrelevant to the goal, producing output that is not used, etc.) </li>
<li>Executing idempotent functions multiple times (eg: calling the save() function multiple times &quot;just to be sure&quot;) </li>
<li>Fixing bugs by writing redundant code that overwrites the result of the faulty code </li>
<li>&quot;YoYo code&quot; that converts a value into a different representation, then converts it back to where it started (eg: converting a decimal into a string and then back into a decimal, or padding a string and then trimming it) </li>
<li>&quot;Bulldozer code&quot; that gives the appearance of refactoring by breaking out chunks into subroutines, but that are impossible to reuse in another context (very high cohesion) </li>
</ol>
<h6>Remedies</h6>
<p>To get over this deficiency a programmer can practice by using the IDE&#8217;s own debugger as an aide if it has the ability to step through the code one line at a time. In Visual Studio, for example, this means setting a breakpoint at the beginning of the problem area and stepping through with the &#8216;F11&#8242; key, inspecting the value of variables&#8211;before and after they change&#8211;until you understand what the code is doing. If the target environment doesn&#8217;t have such a feature, then practice in one that does.</p>
<p>The goal is to reach a point where you no longer need the debugger to be able to follow the flow of code in your head, and where you are patient enough to think about what the code is doing to the state of the program. The reward is the ability to identify redundant and unnecessary code, as well as how to find bugs in existing code without having to re-implement the whole algorithm from scratch.</p>
<h5>2. Poor understanding of the language&#8217;s programming model</h5>
<p>Object Oriented Programming is an example of a language model, as is Functional or Declarative programming. They&#8217;re each significantly different from procedural or imperative programming, just as procedural programming is significantly different from assembly or GOTO-based programming. Then there are languages which follow a major programming model (such as OOP) but introduce their own improvements such as list comprehensions, generics, duck-typing, etc.</p>
<h6>Symptoms</h6>
<ol>
<li>Using whatever syntax is necessary to break out of the model, then writing the remainder of the program in imperative/procedural style </li>
<li>(OOP) Attempting to call non-static functions or variables in uninstantiated classes, and having difficulty understanding why it won&#8217;t compile </li>
<li>(OOP) Writing lots of &quot;xxxxxManager&quot; classes that contain all of the methods for manipulating objects that have little or no methods of their own </li>
<li>(Relational) Treating the database as an object store, possibly going as far as serializing the state of the object to a binary column </li>
<li>(Functional) Creating multiple versions of the same algorithm to handle different types or operators, rather than passing high-level functions to a generic implementation </li>
<li>(Functional) Manually caching the results of a deterministic function </li>
<li>(Pure Functional) Using cut-n-paste code from someone else&#8217;s program to deal with I/O and Monads </li>
<li>(Declarative) Setting individual values in imperative code rather than using data-binding </li>
</ol>
<h6>Remedies</h6>
<p>If your skills deficiency is a product of ineffective teaching or studying, then an alternative teacher is the compiler itself. There is no more effective way of learning a new programming model than starting a new project and committing yourself to use whatever the new constructs are, intelligently or not. You also need to practice explaining the model&#8217;s features in crude terms of whatever you are familiar with, then recursively building on your new vocabulary until you understand the subtleties as well. For example:</p>
<p>Phase 1: &quot;OOP is just records with methods&quot;    <br />Phase 2: &quot;OOP methods are just functions running in a mini-program with its own global variables&quot;     <br />Phase 3: &quot;The global variables are called fields, some of which are private and invisible from outside the mini-program&quot;     <br />Phase 4: &quot;The idea of having private and public elements is to hide implementation details and expose a clean interface, and this is called Encapsulation&quot;     <br />Phase 5: &quot;Encapsulation means my business logic doesn&#8217;t need to be polluted with implementation details&quot;</p>
<p>Phase 5 looks the same for all languages, since they are all really trying to get the programmer to the point where he can express the <em>intent</em> of the program without burying it in the specifics of <em>how</em>. Take functional programming as another example:</p>
<p>Phase 1: &quot;Functional programming is just doing everything by chaining deterministic functions together&quot;    <br />Phase 2: &quot;When the functions are deterministic, they don&#8217;t need to be executed until the output is called for, and only for as much as needed. This is called Lazy Evaluation and Partial Evaluation&quot;     <br />Phase 3: &quot;In order to support Lazy and Partial Evaluation, the compiler requires that I write functions in terms of how to transform a single parameter, sometimes into another function. This is called Currying&quot;     <br />Phase 4: &quot;When all functions are curried, the compiler can choose the best execution plan by using a constraint solver&quot;     <br />Phase 5: &quot;By letting a constraint solver figure out the mundane details, I can write programs by describing <em>what</em> I want, rather than <em>how</em> to give it to me&quot;</p>
<p><span id="more-436"></span></p>
<h5>3. Deficient research skills / Chronically poor knowledge of the platform&#8217;s features</h5>
<p>Modern languages and frameworks now come with an awesome breadth and depth of built-in commands and features, with some leading frameworks (Java, .Net, Cocoa) being too large to expect any programmer, even a good one, to learn in anything less than a few years. But a good programmer will search for a built-in function that does what they need before they begin to roll their own, and excellent programmers have the skill to break-down and identify the abstract problems in their task, then search for existing frameworks, patterns, models and languages that can be adapted before they even begin to design the program.</p>
<h6>Symptoms</h6>
<p>These are only indicative of the problem if they continue to appear in the programmer&#8217;s work long after he should have mastered the new platform.</p>
<ol>
<li>Re-inventing or laboring without basic mechanisms that are built-into the language, such as events-and-handlers or regular expressions </li>
<li>Re-inventing classes and functions that are built-into the framework (eg: timers, collections, sorting and searching algorithms) * </li>
<li>&quot;Email me teh code, plz&quot; messages posted to help forums </li>
<li>&quot;Roundabout code&quot; that accomplishes in many instructions what could be done with far fewer (eg: rounding a number by converting a decimal into a formatted string, then converting the string back into a decimal) </li>
<li>Persistently using old-fashioned techniques even when new techniques are better in those situations (eg: still writes named delegate functions instead of using lambda expressions for one-offs) </li>
<li>Having a stark &quot;comfort zone&quot;, and going to extreme lengths to solve complex problems with primitives </li>
</ol>
<p>* &#8211; Accidental duplication will also happen, proportionate to the size of the framework, so judge by degree.</p>
<h6>Remedies</h6>
<p>A programmer can&#8217;t acquire this kind of knowledge without slowing down, and it&#8217;s likely that he&#8217;s been in a rush to get each function working by whatever means necessary. He needs to have the platform&#8217;s technical reference handy and be able to look through it with minimal effort, which can mean either having a hard copy of it on the desk right next to the keyboard, or having a second monitor dedicated to a browser. To get into the habit initially, he should refactor his old code with the aim of reducing its instruction count by 10:1 or more.</p>
<h5>4. Inability to comprehend pointers</h5>
<p>If you don&#8217;t understand pointers then there is a very shallow ceiling on the types of programs you can write, as the concept of pointers enables the creation of complex data structures and efficient APIs. Managed languages use references instead of pointers, which are similar but add automatic dereferencing and prohibit pointer arithmetic to eliminate entire classes of bugs. They are still similar enough, however, that a failure to grasp the concept will be reflected in poor data-structure design and bugs that trace back to the difference between pass-by-value and pass-by-reference in method calls.</p>
<h6>Symptoms</h6>
<ol>
<li>Failure to implement a linked list, or write code that inserts/deletes nodes from linked list without losing data </li>
<li>Allocating arbitrarily big arrays for variable-length collections and maintaining a separate collection-size counter, rather than using a linked list or other dynamic data structure </li>
<li>Inability to find or fix bugs caused by performing arithmetic on pointers </li>
<li>Modifying the dereferenced values from pointers passed as the parameters to a function, and not expecting it to change the values in the scope outside the function </li>
<li>Making a copy of a pointer, changing the dereferenced value via the copy, then assuming the original pointer still points to the old value </li>
<li>Serializing a pointer to the disk or network when it should have been the dereferenced value </li>
<li>Sorting an array of pointers by performing the comparison on the pointers themselves </li>
</ol>
<h6>Remedies</h6>
<p>A friend of mine named Joe was staying somewhere else in the hotel, but I didn&#8217;t know which room number. I did, however, know which room his acquaintance, Frank, was staying in. So I went up there and knocked on his door and asked him, &quot;Where&#8217;s Joe staying?&quot; Frank didn&#8217;t know, but he did know which room Joe&#8217;s co-worker, Theodore, was staying in, and gave me that room number instead. So I went to Theodore&#8217;s room and asked him where Joe was staying, and Theodore told me that Joe was in Room 414. And that, in fact, is where Joe was.</p>
<p>Pointers can be described with many different metaphors, and the data structures you can build translated into many analogies. The above is a simple analogy for a linked list, and anybody can invent their own, even if they aren&#8217;t programmers. The comprehension failure doesn&#8217;t occur when pointers are described, so you can&#8217;t describe them any more thoroughly than they already have been. It fails when the programmer then tries to visualize what&#8217;s going on in the computer&#8217;s memory and it gets conflated with their understanding of regular variables, which are very similar. It may help to translate the code into a simple story to help reason about what&#8217;s going on, until the distinction clicks and the programmer can visualize pointers and the data structures they enable as intuitively as scalar values and arrays.</p>
<h5>5. Difficulty seeing through recursion</h5>
<p>The idea of recursion is easy enough to understand, but programmers often have problems imagining the result of a recursive operation in their minds, or how a complex result can be computed with a simple function. This makes it harder to design a recursive function because you have trouble picturing &quot;where you are&quot; when you come to writing the test for the base condition or the parameters for the recursive call.</p>
<h6>Symptoms</h6>
<ol>
<li>Hideously complex iterative algorithms for problems that can be solved recursively (eg: traversing a filesystem tree), especially where memory and performance is not a premium </li>
<li>Recursive functions that check the same base condition both before and after the recursive call </li>
<li>Recursive functions that don&#8217;t test for a base condition </li>
<li>Recursive subroutines that concatenate/sum to a global variable or a carry-along output variable, and aren&#8217;t implementing tail recursion </li>
<li>Apparent confusion about what to pass as the parameter in the recursive call, or recursive calls that pass the parameter unmodified </li>
</ol>
<h6>Remedies</h6>
<p>Get your feet wet and be prepared for some stack overflows. Begin by writing code with only one base-condition check and one recursive call that uses the same, unmodified parameter that was passed. Stop coding even if you have the feeling that it&#8217;s not enough, and run it anyway. It throws a stack-overflow exception, so now go back and pass a modified copy of the parameter in the recursive call. More stack overflows? Excessive output? Then do more code-and-run iterations, switching from tweaking your base-condition test to tweaking your recursive call until you start to intuit how the function is transforming its input. Resist the urge to use more than one base-condition test or recursive call unless you really know what you&#8217;re doing.</p>
<p>Your goal is to have the confidence to jump in, even if you don&#8217;t have a complete sense of &quot;where you are&quot; in the imaginary recursive path. Then when you now need to write a function for a real project you&#8217;d begin by writing a unit test first, and proceeding with the same technique above.</p>
<h4>Signs that you are a mediocre programmer</h4>
<h5>1. Inability to think in sets</h5>
<p>Transitioning from imperative programming to functional and declarative programming will immediately require you to think about operating on <em>sets</em> of data as your primitive, not scalar values. The transition is required whenever you use SQL with a relational database (and not as an object store), whenever you design programs that will scale linearly with multiple processors, and whenever you write code that has to execute on a SIMD-capable chip (such as modern graphics cards and video game consoles).</p>
<h6>Symptoms</h6>
<p>The following count only when they&#8217;re seen on a platform with Declarative or Functional programming features that the programmer should be aware of.</p>
<ol>
<li>Performing atomic operations on the elements of a collection within a <em>for</em> or <em>foreach</em> loop </li>
<li>Writing Map or Reduce functions that contain their own loop for iterating through the dataset </li>
<li>Fetching large datasets from the server and computing sums on the client, instead of using aggregate functions in the query </li>
<li>Functions acting on elements in a collection that begin by performing a new database query to fetch a related record </li>
<li>Writing business-logic functions with tragically compromising side-effects, such as updating a user interface or performing file I/O </li>
<li>Entity classes that open their own database connections or file handles and keep them open for their lifespan </li>
</ol>
<h6>Remedies</h6>
<p>Funny enough, visualizing a card dealer cutting a deck of cards and interleaving the two stacks together by flipping through them with his thumbs can jolt the mind into thinking about sets and how you can operate on them in bulk. Other stimulating visualizations are:</p>
<ul>
<li>freeway traffic passing through an array of toll booths (parallel processing) </li>
<li>springs joining to form streams joining to form creeks joining to form rivers (parallel reduce/aggregate functions) </li>
<li>a newspaper printing press (coroutines, pipelines) </li>
<li>the zipper tag on a jacket pulling the zipper teeth together (simple joins) </li>
<li>transfer RNA picking up amino acids and joining messenger RNA within a ribosome to become a protein (multi-stage function-driven joins, <a href="http://www.dnai.org/text/mediashowcase/index2.html?id=586">see animation</a>) </li>
<li>the above happening simultaneously in billions of cells in an orange tree to convert soil, water and sunlight into orange juice (Map/Reduce on large distributed clusters) </li>
</ul>
<p>If you are writing a program that works with collections, think about all the supplemental data and records that your functions need to work on each element and use Map functions to join them together in pairs before you have your Reduce function applied to each pair.</p>
<h5>2. Lack of critical thinking</h5>
<p>Unless you criticize your own ideas and look for flaws in your own thinking, you will miss problems that can be fixed before you even start coding. If you also fail to criticize your own code once written, you will only learn at the vastly slower pace of trial and error. This is the root of lazy thinking and egocentric thinking, so its symptoms seem to come from two different directions.</p>
<h6>Symptoms</h6>
<ol>
<li>&quot;Business Rule Engines&quot; </li>
<li>Fat static utility classes, or multi-disciplinary libraries with only one namespace </li>
<li>Conglomerate applications, or attaching unrelated features to an existing application to avoid the overhead of starting a new project </li>
<li>Architectures that have begun to require <a href="http://en.wikipedia.org/wiki/Epicycle">epicycles</a></li>
<li>Adding columns to tables for tangential data </li>
<li>Inconsistent naming conventions </li>
<li>&quot;Man with a hammer&quot; mentality, or changing the definitions of problems so they can all be solved with one particular technology </li>
<li>Programs that dwarf the complexity of the problem they solve </li>
<li>Pathologically and redundantly defensive programming (&quot;Enterprisey code&quot;) </li>
</ol>
<h6>Remedies</h6>
<p>Start with a book like <a href="http://www.amazon.com/Critical-Thinking-Taking-Professional-Personal/dp/0130647608">Critical Thinking</a> by Paul and Elder, work on controlling your ego, and practice resisting the urge to defend yourself as you submit your ideas to friends and colleagues for criticism.</p>
<p>Once you get used to other people examining your ideas, start examining your own ideas yourself and practice imagining the consequences of them. In addition, you also need to develop a sense of proportion (to have a feel for how much design is appropriate for the size of the problem), a habit of fact-checking assumptions (so you don&#8217;t overestimate the size of the problem), and a healthy attitude towards failure (Isaac Newton was wrong about gravity, but we still love him and needed him to try anyway).</p>
<p>Finally, you must have discipline. Being aware of flaws in your plan will not make you more productive unless you can muster the willpower to correct and rebuild what you&#8217;re working on.</p>
<h5>3. Pinball Programming</h5>
<p>When you tilt the board just right, pull back the pin to just the right distance, and hit the flipper buttons in the right sequence, then the program runs flawlessly with the flow of execution bouncing off conditionals and careening unchecked toward the next state transition.</p>
<h6>Symptoms</h6>
<ol>
<li>One Try-Catch block wrapping the entire body of Main() and resetting the program in the Catch clause (the pinball gutter) </li>
<li>Using strings/integers for values that have (or could be given) more appropriate wrapper types in a strongly-typed language </li>
<li>Packing complex data into delimited strings and parsing it out in every function that uses it </li>
<li>Failing to use assertions or method contracts on functions that make assumptions about their arguments </li>
<li>The use of Sleep() to wait for another thread to finish its task </li>
<li>Switch statements, on non-enumerated values, that don&#8217;t have an &quot;Otherwise&quot; clause </li>
<li>Using Automethods or Reflection to invoke methods that are named in unqualified user input </li>
<li>Setting global variables in functions as a way to return multiple values </li>
<li>Classes with one method and a couple of fields, where you have to set the fields as the way of passing parameters to the method </li>
<li>Multi-row database updates without a transaction </li>
<li>Hail-Mary passes (eg: trying to restore the state of a database without a transaction and ROLLBACK) </li>
</ol>
<h6>Remedies</h6>
<p>Imagine your program&#8217;s input is water. It&#8217;s going to fall through every crack and fill every pocket, so you need to think about what the consequences are when it flows somewhere other than where you&#8217;ve explicitly built something to catch it.</p>
<p>You will need to make yourself familiar with the mechanisms on your platform that help make programs robust and ductile. There are three basic kinds:</p>
<ol>
<li>those which stop the program before any damage is done when something unexpected happens, then helps you identify what went wrong (type systems, assertions, exceptions, etc.), </li>
<li>those which direct program flow to whatever code best handles the contingency (try-catch blocks, multiple dispatch, event driven programming, etc.), </li>
<li>those which pause the thread until all your ducks are in a row (WaitUntil commands, mutexes and semaphores, SyncLocks, etc.) </li>
</ol>
<p>There is also a fourth, Unit Testing, which you use at design time.</p>
<p>Using these ought to become second nature to you, like putting commas and periods in sentences. To get there, go through the above mechanisms (the ones in parenthesis) one at a time and refactor an old program to use them wherever you can cram them, even if it doesn&#8217;t turn out to be appropriate (especially when they don&#8217;t seem appropriate, so you also begin to understand why).</p>
<h4>Signs that you shouldn&#8217;t be a programmer</h4>
<p>The following may not have any remedies if you still suffer from them after taking a programming course in school, so you will stand a better chance of advancing your career by choosing another profession.</p>
<h5>1. Inability to determine the order of program execution</h5>
<h6>Symptoms</h6>
<pre><code>a = 5
b = 10
a = b

print a
</code></pre>
<ol>
<li>You look at the code above and aren&#8217;t sure what number gets printed out at the end </li>
</ol>
<h6>Alternative careers</h6>
<ol>
<li>Electrician </li>
<li>Plumber </li>
<li>Architect </li>
<li>Civil engineer </li>
</ol>
<h5>2. Insufficient ability to think abstractly</h5>
<h6>Symptoms</h6>
<ol>
<li>Difficulty comprehending the difference between objects and classes </li>
<li>Difficulty implementing design patterns for your program </li>
<li>Difficulty writing functions with low cohesion </li>
<li>Incompetence with Regular Expressions </li>
<li>Lisp is opaque to you </li>
<li>Cannot fathom the Church-Turing Thesis </li>
</ol>
<h6>Alternative careers</h6>
<ol>
<li>Contract negotiator </li>
<li>Method actor </li>
</ol>
<h5>3. Collyer Brothers syndrome</h5>
<h6>Symptoms</h6>
<ol>
<li>Unwilling to throw away anything, including garbage </li>
<li>Unwilling to delete anything, be it code or comments </li>
<li>The urge to build booby-traps for defense against trespassers </li>
<li>Unwilling to communicate with other people </li>
<li>Poor organization skills </li>
</ol>
<h6>Alternative careers</h6>
<ol>
<li>Antique dealer </li>
<li>Bag lady </li>
</ol>
<h5>4. Dysfunctional sense of causality</h5>
<h6>Symptoms</h6>
<ol>
<li>You seriously consider malice to be a reason why the compiler rejects your program </li>
<li>When called on to fix a bug in a deployed program, you try prayer </li>
<li>You take hidden variables for granted and don&#8217;t think twice about blaming them for a program&#8217;s misbehavior </li>
<li>You think the presence of code in a program will affect its runtime behavior, even if it is never invoked </li>
<li>Your debugging repertoire includes rituals like shining your lucky golf ball, twisting your wedding ring, and tapping the nodding-dog toy on your monitor. And when the debugging doesn&#8217;t work, you think it might be because you missed one or didn&#8217;t do them in the right order </li>
</ol>
<h6>Alternative careers</h6>
<ol>
<li>Playing the slot machines in Vegas </li>
</ol>
<h5>5. Indifference to outcomes</h5>
<p>Programming could still be a hobby for you, but it would be in society&#8217;s best interests to defend itself against your entry into the world of professional software development.</p>
<h6>Symptoms</h6>
<ol>
<li>You aren&#8217;t interested in fixing a bug that can be worked around by rebooting the computer </li>
<li>Your installation program silently deploys unsolicited third party programs that are unrelated to the function of yours * </li>
<li>You don&#8217;t use any ergonomic model when designing user interfaces, nor do you have any interest in usability studies </li>
<li>Your program exhibits pretension and grandeur beyond its utility, eg: displaying splash screens over active programs while loading in the background, or placing multiple launch icons in premium desktop locations * </li>
<li>Your program produces output to be read by another (eg: a browser), or implements a network protocol, and relies on the other party&#8217;s software to be significantly tolerant to spec violations </li>
<li>You write busy-wait loops even when the platform offers event-driven programming </li>
<li>You don&#8217;t use managed languages and can&#8217;t be bothered to do bounds checking or input validation </li>
<li>Your program asks for exploitable personal information from the user (passwords, social security numbers, credit card numbers, etc), but stores and transmits it without effective encryption </li>
<li>Your user interfaces do not make the difficulty of accidentally invoking a function proportionate to its destructiveness (eg: the &quot;Delete Database&quot; button is next to &quot;Save&quot;, just as big, has no confirmation step and no undo) </li>
<li>You don&#8217;t use whitespace, indentation or comments </li>
</ol>
<p>* &#8211; These are actually imposed by management more often than by the programmer, who only implements them. We&#8217;d still group them together for the sake of this self-test, though, and at the most suggest that one seek employment at a better firm, while the other goes back to business school to learn less destructive ways of making a profit.</p>
<h6>Alternative careers</h6>
<ol>
<li>Debt collection </li>
<li>Telemarketing </li>
</ol>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fsoapbox%2Fsigns-that-you-are-a-bad-programmer%2F', 'Signs+that+you+are+a+bad+programmer')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusred.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/soapbox/signs-that-you-are-a-bad-programmer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A second chance for that first impression?</title>
		<link>http://www.matsays.com/misc/tricks/a-second-chance-for-that-first-impression/</link>
		<comments>http://www.matsays.com/misc/tricks/a-second-chance-for-that-first-impression/#comments</comments>
		<pubDate>Sat, 28 Jun 2008 07:23:34 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[IMD325 UCD I]]></category>
		<category><![CDATA[IMD335 UCD II]]></category>
		<category><![CDATA[IMD345 UCD III]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[bounce rate]]></category>
		<category><![CDATA[impression]]></category>
		<category><![CDATA[retention]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/?p=422</guid>
		<description><![CDATA[It is said that &#8220;you only get one chance at that first impression&#8221; and that may be true but a lot of us in the business also know that sometimes you do in fact get a second chance. And what&#8217;s more, as I&#8217;ve always tried to enumerate to both students and colleagues, there&#8217;s a big [...]]]></description>
			<content:encoded><![CDATA[<p>It is said that &#8220;you only get one chance at that first impression&#8221; and that may be true but a lot of us in the business also know that sometimes you do in fact get a second chance. And what&#8217;s more, as I&#8217;ve always tried to enumerate to both students and colleagues, there&#8217;s a big difference between bad form or function and simply omitting something (in the case of the latter, I still strongly believe in the adage I learned from the hotel business: &#8220;if the guest didn&#8217;t know it was there in the first place they won&#8217;t miss it&#8221;).</p>
<p><a title="21 Factors that Influence the First Impression of Your Website’s Visitors" href="http://vandelaydesign.com/blog/design/first-impression/">This article from VandelayDesign</a> makes a pretty good point about that first impression. Of course you&#8217;ll want to make the best one possible but don&#8217;t forget that because of the plethora of choices, a lot of visitors will forget anything other than the visual in a web design &#8211; throw some makeup and a new dress on it and frequently a visitor will not even know it was the same skeleton underneath. Nonetheless, it&#8217;s those fundamentals a web site still needs that counts and this post makes a clear and concise listing of them.<span id="more-422"></span></p>
<p>And for those of you too impatient to read the whole thing:</p>
<ol>
<li>Load Times</li>
<li>Error Messages</li>
<li>Colors</li>
<li>Logo/Branding</li>
<li>Header Images</li>
<li>Typography</li>
<li>Layout</li>
<li>Advertisments</li>
<li>(Your) Reputation</li>
<li>Ease of Navigation</li>
<li>Clarity of Purpose</li>
<li>Unprofessional Items</li>
<li>Quality of Images and Photos</li>
<li>Accessibility</li>
<li>Popups and Popunders</li>
<li>Video and Audio</li>
<li>Associations</li>
<li>Quality of Content</li>
<li>Tone</li>
<li>Number of Comments and Trackbacks</li>
<li>Flash Intros</li>
</ol>
<p>[via <a href="http://vandelaydesign.com">VandelayDesign</a>]</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Fa-second-chance-for-that-first-impression%2F', 'A+second+chance+for+that+first+impression%3F')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusred.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/a-second-chance-for-that-first-impression/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Put it on paper</title>
		<link>http://www.matsays.com/soapbox/put-it-on-paper/</link>
		<comments>http://www.matsays.com/soapbox/put-it-on-paper/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 04:12:06 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[IMD302 Net Broadcasting]]></category>
		<category><![CDATA[IMD325 UCD I]]></category>
		<category><![CDATA[IMD335 UCD II]]></category>
		<category><![CDATA[Internet News]]></category>
		<category><![CDATA[Soapbox]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[brainstorming]]></category>
		<category><![CDATA[concept]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[user interface design]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/?p=420</guid>
		<description><![CDATA[Thankfully someone out there agrees with me about the benefit of putting the idea on paper first.  Stop opening Photoshop or Illustrator when you&#8217;re trying to flesh out your ideas, you&#8217;ll get too distracted by the little things (color, pixels, blah blah).  Instead, restrict yourself to a single page and a black pen (or if [...]]]></description>
			<content:encoded><![CDATA[<p>Thankfully someone out there agrees with me about the benefit of putting the idea on paper first.  Stop opening Photoshop or Illustrator when you&#8217;re trying to flesh out your ideas, you&#8217;ll get too distracted by the little things (color, pixels, blah blah).  Instead, restrict yourself to a single page and a black pen (or if you&#8217;re really into it, try using some post-it notes and a second color pen).  Sometimes you&#8217;ll be amazed what kind of ideas can come from simplicity.</p>
<p>Read the post &#8220;<a title="The Paper Version of the Web" href="http://deeplinking.net/paper-web/">The Paper Version of the Web</a>&#8221; and see the pics at deeplinking.net.</p>
<div style="text-align:center;">Dan Catt’s concept sketch for Flickr Places<br />
<a href="http://www.flickr.com/photos/35468159852@N01/2072452369"><img title="flickrplaces" src="http://www.mobimeet.com/wp-content/uploads/2008/06/flickrplaces.jpg" alt="concept sketch for flickrplaces" width="350" height="457" style="border:dotted 1px #ccc;"/></a><small><br />
<a href="http://www.flickr.com/places/"></a></small></div>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fsoapbox%2Fput-it-on-paper%2F', 'Put+it+on+paper')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusred.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/soapbox/put-it-on-paper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sexy Stylesheets</title>
		<link>http://www.matsays.com/misc/tricks/sexy-stylesheets/</link>
		<comments>http://www.matsays.com/misc/tricks/sexy-stylesheets/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 08:05:07 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[IMD223 Advanced Scripting]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[stylesheets]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/?p=412</guid>
		<description><![CDATA[ Oh yes, oh yes!  OK, a little much but this was a great article by CSS guru (yes, guru&#8230;if you don&#8217;t believe me, this beyotch young lady is one of the brains behind The Art &#38; Science of CSS, a fantastic anthology of styling examples).  Go here for the original article&#8230;(by Jina Bolton)
&#8220;Lately, I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FArt-Science-CSS-Jonathan-Snook%2Fdp%2F0975841971%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214120635%26sr%3D8-1&amp;tag=mobimeet-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325"><img style="margin-left:10px;margin-bottom:5px;border:solid 1px #777;" src="http://www.mobimeet.com/wp-content/uploads/2008/06/41c84glfctl_sl500_ss75_.jpg" alt="" align="right" /></a> Oh yes, oh yes!  OK, a little much but this was a great article by CSS guru (yes, guru&#8230;if you don&#8217;t believe me, this <span style="text-decoration: line-through;">beyotch</span> young lady is one of the brains behind <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FArt-Science-CSS-Jonathan-Snook%2Fdp%2F0975841971%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1214120635%26sr%3D8-1&amp;tag=mobimeet-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">The Art &amp; Science of CSS</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=mobimeet-20&amp;l=ur2&amp;o=1" border="0" alt="" width="1" height="1" />, a fantastic anthology of styling examples).  <a title="Creating Sexy Stylesheets" href="http://thinkvitamin.com/features/design/creating-sexy-stylesheets">Go here for the original article</a>&#8230;(by Jina Bolton)</p>
<p>&#8220;Lately, I have taken interest in discussing methods of creating sexy stylesheets. While CSS can be used to create sexy websites, writing CSS can actually be an artform by itself. The way in which CSS is created, structured, and maintained can be a thing of beauty.</p>
<p>So how does one create sexy stylesheets? What characteristics would your stylesheets have?<span id="more-412"></span></p>
<p>A few months ago, I had the opportunity to present on this very topic at <a href="http://webvisionsevent.com/">Web Visions</a> 2007 conference in Portland, Oregon. In preparing my presentation, I surveyed twelve people who work in web design and development. The results of this survey, combined with my own work experiences helped me to compile a list of essentials to remember when creating stylesheets.&#8221;</p>
<h3>01. Keep CSS out of the markup.</h3>
<p>Linking and/or importing stylesheets would seem to be a no-brainer to the intermediate or advanced CSS developer, but I want to stress why this is so important. I’ve seen many sites start out with clean, well-organized CSS files but then get littered as time goes by, with embedded or even inline styles (due to fast updates needed on short deadlines, or possibly sometimes even pure laziness).</p>
<p>Imagine that you are working on an extremely large-scale website with hundreds of ways content can appear. You have fast deadlines, so you opt for making “quick fixes” or updates by using embedded or inline CSS. Years go by, and this habit continues… Until one day you’re told the site is being completely redesigned (but all the content is to remain the same), and you only have a week to build it (including testing).</p>
<p>Normally, this would have been a fairly simple task of updating the stylesheet(s). Except you have years worth of “quick fixes” scattered throughout the site — and no way to remember where they all are. So now you have to either a) find a way to clean everything up and get everything styled for the redesign in one week (Good luck!), or b) find a new job.</p>
<p>Don’t make your job harder than it really has to be. Linking and/or importing your stylesheets is not optional. Create it clean, keep it clean, and you’ll be much happier.</p>
<p>NOTE: Be careful of adding too many linked and/or imported stylesheets in your markup. If you’re tempted to create a new stylesheet every time you make an update or add new content, you’re not doing yourself any favors. Excessive linking and/or importing can make bug-fixing difficult, and make your styles harder to maintain. It is understandable to want separate stylesheets for different sections or components for larger websites (I’ll go more into that later). Just be careful that you don’t go overboard.</p>
<p>It is worth mentioning that linking too many stylesheets requires additional HTTP requests, which can add up, and <a href="http://developer.yahoo.com/performance/rules.html#num_http">potentially hinder performance</a>. Also, <a href="http://www.juniper.net/security/auto/vulnerabilities/vuln3394.html">Microsoft Internet Explorer 6 has a limit</a> of 32 linked stylesheets.</p>
<h3>02. Semantics is not just a buzz word.</h3>
<p>You know I have to bring it up; semantics are your best friend. Beyond choosing the most appropriate, meaningful elements to describe your content, make sure also that you’re choosing <a href="http://www.stuffandnonsense.co.uk/archives/whats_in_a_name_pt2.html">semantic class and ID attribute values</a>. Besides being the “right thing to do,” it really does make your life easier (and it makes the lives of your fellow team members easier too– if you working as part of a team). Take a look at the following rule:</p>
<pre><code>.l13k { color: #369; }</code></pre>
<p>If you were new to the job, and you saw that in the CSS file, are you going to know right away what that class is for? Most likely not. This class name could be an abbreviation for something, but there’s no real way you can tell right off the bat. Alternatively, maybe you put it there, so you know what it means, right? Today. But will you know what it means three years from now?</p>
<p>Now, let’s take a look at this rule:</p>
<pre><code>.left-blue { color: #369; }</code></pre>
<p>You might immediately know what purpose this class selector serves as you know exactly where the left-side blue module appears. So it would appear that this works. Until along comes that redesign you have to build in a week, as I mentioned earlier. In the redesign, this module is now to be positioned on the right, and colored red. The class attribute values no longer makes any sense, so now you have to either change all your attribute values, or leave it as it is (which could lead to mass confusion).</p>
<p>It is always best to refrain from using colors (either the color name or its hex value) or width/height dimensions in your class attribute values. You should also avoid any attribute values that are presentational (such as “box”).Presentational attributes defeat the purpose of separating presentation from content.</p>
<p>Finally, let’s look at this more appropriately named rule:</p>
<pre><code>.product-description { color: #369; }</code></pre>
<p>Here you can see that the rule styles product descriptions, no matter how many times your design changes. Clarity is a beautiful, beautiful thing.</p>
<h3>03. Take advantage of commenting.</h3>
<p>Commenting your CSS files can be a great deal of help to you and others during development if you use comments in creative and meaningful ways. At the most basic level comments provide little reminders why a certain rule is used. But you can use comments to really help improve organization and efficiency.</p>
<p><strong>Reminders and notes</strong></p>
<p>The common approach for commenting, leaving reminders and notes for yourself and other developers can help avoid confusion later. Keep these brief and simple. For example:</p>
<pre><code>
/* Turn off borders for linked images */
img { border: 0; }
</code></pre>
<p><strong>Time stamp and signature</strong></p>
<p>Some designers and developers also note the date and time that the CSS file was last updated, along with their name or initials. This information can provide a quick indicator of who to contact, as well as how up-to-date the file is.</p>
<pre><code>
/* Sushimonster Typography Styles
   Updated: Thu 10.18.07 @ 5:15 p.m.
   Author:     Jina Bolton
   ----------------------------------------------------*/
</code></pre>
<p>Depending on the project, this can be a good idea, particularly if you are working on a team. Keep in mind that some organizations require leaving this type of information out (some companies prefer to keep names and dates out of files), so it is best to find out if there is a mandate on this sort of thing.</p>
<p><strong>Organization</strong></p>
<p>It’s a good idea to use comments to indicate the different sections within a CSS file. For example, if all header styles are grouped together, you can use a comment to section these styles off from the next section’s styles:</p>
<pre><code>
/* HEADER
   ----------------------------------------------------*/
</code></pre>
<p>I’ll go more into this a little later, when discussing “Separating style types.”</p>
<p><strong>Comment flagging</strong></p>
<p>If you have your CSS file organized into sections as I described above, comment flagging can also be useful to make it easier using FIND to skip down or up to the parts of the file you want to see. You can use a character (such as an equal sign [=]), along with a keyword (typically the name of the section, such as “HEADER”) to provide “anchors” in your CSS file:</p>
<pre><code>
/* =HEADER
   ----------------------------------------------------*/
</code></pre>
<p>This is particularly useful in long and complex stylesheets. <a href="http://www.stopdesign.com/log/2005/05/03/css-tip-flags.html">You can read more about this at Stop Design</a>.</p>
<p><strong>Reference</strong></p>
<p>A less common, but nonetheless useful approach is to use comments as reference guide. One example of this might be to include a color guide as you can see in <a href="http://orderedlist.com/">Steve Smith’s</a> CSS file:</p>
<pre><code>
/* COLORS
   Body Background:       #2F2C22
   Main Text:             #B3A576
   Links:                 #9C6D25
   Dark Brown Border:     #222019
   Green Headline:        #958944
*/
</code></pre>
<p>You should place this guide at the top of your CSS file to help you remember what color values you use throughout your site. Another example is of an index-like approach. Here you can define different sections so that you can jump down to them (perhaps by using comment flagging). Here’s one example:</p>
<pre><code>
/* GENERIC
   HEADER
   SIDEBAR
   FORMS
   TABLES
   FOOTER
*/

/* =GENERIC
   ----------------------------------------------------*/
</code></pre>
<h3>04. Know when to use conditional comments or hacks.</h3>
<p>There are many articles regarding the <a href="http://tantek.com/log/2005/11.html">problem with hacks</a>, and why <a href="http://www.456bereastreet.com/archive/200510/stop_using_css_hacks_now/">Conditional Comments are a better way</a> to handle Internet Explorer issues. Then there are <a href="http://meiert.com/en/blog/20070201/why-conditional-comments-are-bad-repeat-bad/">articles that say otherwise</a>. While I agree that Conditional Comments can be a much better solution than littering your CSS file with hacks, only recently have I come to realize there are instances where they are actually not the most appropriate solution.</p>
<p>Imagine that you want to set a minimum height for an element. The IE6 developers did not implement min-height, so you know that you can use height, which will be treated the same way. Does it make sense to create a whole new stylesheet, and inject it by way of Conditional Comments in your markup, when all you need is this one rule? Would it make better sense to keep the min-height and height rules together, and opt for a small “hack” within the same CSS file? In this case, I would consider it less efficient to use Conditional Comments.</p>
<p>Another thing to consider: if you have multiple places that your styles are located, using multiple CSS files and Conditional Comments can make your debugging process more difficult. Also, if you need to alter something (perhaps the min-height value in the above-mentioned scenario), you have to open more than one file to make this change. In many cases, this may not be such a big deal for you, but imagine if you have something defined in your main CSS file, and then redefined in 3 different IE stylesheets. That could turn out to be a hassle later down the road, especially if another developer making the edit doesn’t realize that these overrides exist.</p>
<p>If you do use Conditional Comments, I recommend leaving a comment in your main stylesheet letting you or a fellow developer know that an IE-specific rule exists. That way when you have to edit a height or something of that nature, you know that you have more than one file to open.</p>
<p>As always, if you do use hack, remember that browser updates can change what works later down the road, and the hack you use now may not work later versions.</p>
<h3>05. Organizing selectors and declarations</h3>
<p>Always, always keep your CSS clean and organized. I prefer organizing my selectors by style groups:</p>
<ul>
<li>reset styles</li>
<li>typography styles</li>
<li>layout styles (header, content, footer, etc.)</li>
<li>module or widget styles</li>
<li>etc.</li>
</ul>
<p>Then, within each of those groups, I organize selectors by DOM hierarchy (working down the page, from the outside in):</p>
<ul>
<li>any parent styles (containing elements, working outside-in)</li>
<li>block-level element styles (paragraphs, lists, etc.)</li>
<li>inline element styles (links, abbreviations, etc.)</li>
<li>etc.</li>
</ul>
<p>Then within those, I work by element types:</p>
<ul>
<li>paragraphs</li>
<li>blockquotes</li>
<li>addresses</li>
<li>lists</li>
<li>forms</li>
<li>tables</li>
<li>etc.</li>
</ul>
<p>Finally, I prefer to organize my CSS declarations by style type:</p>
<ul>
<li>positioning (with coordinates) styles</li>
<li>float/clear styles</li>
<li>display/visibility styles</li>
<li>spacing (margin, padding, border) styles</li>
<li>dimensions (width, height) styles</li>
<li>typography-related (line-height, color, etc.) styles</li>
<li>miscellaneous (list-style, cursors, etc.) styles</li>
</ul>
<p>Some people like to organize declarations alphabetically. It doesn’t make sense to me, but it might make perfect sense to you. Whichever method you choose, stick with it, and be consistent.</p>
<h3>06. Creating a framework</h3>
<p>When it comes to developing CSS, If you find yourself doing the same things repeatedly, it is a good idea to consider <a href="http://www.alistapart.com/articles/frameworksfordesigners">creating a library or framework</a>. A framework can be made up of a group of stylesheets that act as a foundation for your site, and help speed up your development time. Typical stylesheets you may find in your framework might include:</p>
<ul>
<li>screen.css &#8211; A screen CSS file can either have all your styles you want to be used for on screen, and/or can import additional styles, such as the following:
<ul>
<li>reset.css &#8211; A reset CSS file can be used to “reset” all the default browser styling, which can help make it easier to achieve cross-browser compatibility.</li>
<li>typography.css &#8211; A typography CSS file can define your typefaces, sizes, leading, kerning, and possibly even color.</li>
<li>grid.css &#8211; A grid CSS file can have your layout structure (and act as the wireframe of your site, by defining the basic header, footer, and column set up).</li>
</ul>
</li>
<li>print.css &#8211; A print CSS file would include your styles you want to be used when the page is printed.</li>
</ul>
<p>One example of a framework is the <a href="http://code.google.com/p/blueprintcss/">Blueprint framework</a> put together by <a href="http://bjorkoy.com/">Olav Bjørkøy</a> (which based itself off of work developed by authors including <a href="http://jeffcroft.com/">Jeff Croft</a> and <a href="http://meyerweb.com/">Eric Meyer</a>). Another popular framework can be found at the <a href="http://developer.yahoo.com/yui/">Yahoo! User Interface Library</a>. Many developers do feel that these pre-built frameworks contain markup and CSS that are a bit “bloated” and also that they contain presentational class attribute names.</p>
<p>NOTE: As I was writing this article in its draft stages, Jeff Croft released the post <a href="http://www2.jeffcroft.com/blog/2007/nov/17/whats-not-love-about-css-frameworks/">What’s not to love about CSS frameworks?</a>, in which <a href="http://www2.jeffcroft.com/blog/2007/nov/17/whats-not-love-about-css-frameworks/#c24117">he mentions in the comments</a> he was told that people think I am strongly against frameworks. I’m not sure where this came from, but as <a href="http://www2.jeffcroft.com/blog/2007/nov/17/whats-not-love-about-css-frameworks/#c24064">I stated in my response</a>, I am not against CSS frameworks, and am very much for them.</p>
<p>For the best results, I recommend that you create your own framework that works best for you or your organization.</p>
<h3>07. Balance readability and optimization.</h3>
<p>Styles in formatting vary from developer to developer. Some developers use formatting styles that offer great readability, and then optimize the files (removing comments, spaces, tabs, carriage returns, etc.) before pushing the file live. This is a great technique and one I would recommend (done carefully). However, if you are somehow in a situation where you can’t really go through those steps, try to find a style that balances readability and optimization. <a href="http://orderedlist.com/articles/single-line-css">Steve Smith has a great suggestion</a> that offers a little bit of both.</p>
<p>Also, consider using hyphens instead of underscores. <a href="http://microformats.org/">Microformats</a> use hyphens as a standard separator, and certain older browsers have a hard time with them. You can read more about this at <a href="http://developer.mozilla.org/en/docs/Underscores_in_class_and_ID_Names">Underscores in class and ID Names</a>.</p>
<h3>08. Master your text editor.</h3>
<p>Just as an artist has proper tools they know well, it’s important for a designer/developer to know the tools they use well. For CSS, that would be the editor you are using.</p>
<p>There are many text editors to choose from: TextMate, Coda, BB Edit, TextPad, DreamWeaver, etc. I’m not here to tell you which one to pick; they all have their pros and cons, and the right editor for you is up for you to decide. However, once you have decided on a text editor, make sure you learn everything you can about it. Find out what the shortcuts are, and learn all the tips and tricks you can.</p>
<p>Mastering your text editor is the best way to speed up your development time, and help you be more much more efficient when creating sexy stylesheets.</p>
<h3>09. Use version control.</h3>
<p>Smoother maintainability is also an important part of creating sexy stylesheets. This is where <a href="http://en.wikipedia.org/wiki/Revision_control">version control</a> can be your best friend. It’s not only helpful for teams, but it can be a lifesaver even for the sole designer/developer.</p>
<p>Some applications have built-in mechanisms for source control. DreamWeaver uses a check-in/check-out system (that can help make sure that a developer doesn’t edit a file that is already currently being edited), as well as synching capabilities (which lets you sync and merge your local files with your remote files, or vice versa). This can be very handy, but are somewhat limited.</p>
<p>Subversion (SVN) or Concurrent Versions System (CVS) are great tools to use for more robust management, with additional options, like being able to revert, view changes (which is extremely helpful for teams — you can track who added/edited/removed code and when they did it), and resolving conflicts. There’s a <a href="http://snook.ca/archives/servers/hosted_subversion/">great article by Jonathan Snook, called “Hosted Subversion”</a> you can read for more information on how to set this up quickly and easily.</p>
<h3>10. Create and maintain a style guide.</h3>
<p>While in some cases, a style guide is an author’s guide with grammar rules and writing standards, it can also be used to outline standards for design, development, and content. A style guide is a great way to have a reference manual that can clarify rules on typography, grid, color, image sizes, etc.</p>
<p>When creating a style guide, it is a great idea to provide reference for the markup and CSS. This reference can be used as a handbook for the development team and future developers. It can include defined layouts, in which you can list the different layouts that can be used, and provide the associated markup and styles.</p>
<p>Finally, you can also leave steps for quality assurance for developers, (such as checking validation and accessibility) to ensure the highest quality.</p>
<h3>Conclusion</h3>
<p>Being an expert in CSS is so much more than having advanced CSS skills (i.e.: fully understanding the cascade, the box model, and how browsers work). I encourage you to think about ways you can constantly and consistently improve maintainability and efficiency. Think beyond what is designed in the comp, even if that is all that you have been provided. Make the CSS intelligent and plan for the future. Overall elegance in workflow is essential to master.</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Fsexy-stylesheets%2F', 'Sexy+Stylesheets')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusred.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/sexy-stylesheets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Consummate PHP Function List</title>
		<link>http://www.matsays.com/misc/tricks/consummate-php-function-list/</link>
		<comments>http://www.matsays.com/misc/tricks/consummate-php-function-list/#comments</comments>
		<pubDate>Sat, 21 Jun 2008 06:26:42 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[IMD402 Server Side Scripting]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/?p=387</guid>
		<description><![CDATA[This is a previously published post at the request of some of my prior students.  I am republishing it in the hopes that some of you on break might actually pick it up but I may have to make some amendments shortly.  In any case, it is my consummate list of 63 PHP functions that [...]]]></description>
			<content:encoded><![CDATA[<p>This is a previously published post at the request of some of my prior students.  I am republishing it in the hopes that some of you on break might actually pick it up but I may have to make some amendments shortly.  In any case, it is my consummate list of 63 PHP functions that your should know (excluding some basic gdlib stuff) to survive as a web developer.  And I mean inside and out.<span id="more-387"></span></p>
<table border="0">
<tbody>
<tr>
<td width="33%" valign="top"><strong>STRING FUNCTIONS</strong><br />
crypt<br />
echo<br />
explode<br />
implode<br />
join<br />
trim<br />
number_format<br />
print<br />
printf<br />
str_replace<br />
strip_tags<br />
stripos<br />
strlen<br />
strstr<br />
strtolower<br />
strtoupper<br />
substr<br />
ucfirst<br />
ucwords</p>
<p><strong>DATE/TIME FUNCTIONS</strong><br />
date<br />
localtime<br />
mktime<br />
strtotime<br />
time</td>
<td width="33%" valign="top"><strong>ARRAY FUNCTIONS</strong><br />
array_pop<br />
array_push<br />
array_search<br />
array_splice<br />
array<br />
asort<br />
count<br />
each<br />
key<br />
krsort<br />
ksort<br />
rsort<br />
sizeof<br />
sort<br />
usort</p>
<p><strong>MYSQL FUNCTIONS</strong><br />
mysql_connect<br />
mysql_close<br />
mysql_error<br />
mysql_fetch_array<br />
mysql_query<br />
mysql_select_db</td>
<td width="33%" valign="top"><strong>MATH FUNCTIONS</strong><br />
floor<br />
is_nan<br />
max<br />
min<br />
mt_rand<br />
pow<br />
rand</p>
<p><strong>REGEX FUNCTIONS</strong><br />
ereg_replace<br />
ereg<br />
eregi_replace<br />
eregi<br />
split<br />
spliti</p>
<p><strong>MISCELLANEOUS FUNCTIONS</strong><br />
constant<br />
define<br />
die<br />
exit<br />
phpinfo</td>
</tr>
</tbody>
</table>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Fconsummate-php-function-list%2F', 'Consummate+PHP+Function+List')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusred.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/consummate-php-function-list/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EOQ</title>
		<link>http://www.matsays.com/soapbox/eoq/</link>
		<comments>http://www.matsays.com/soapbox/eoq/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 07:01:17 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Soapbox]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[learn]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/?p=401</guid>
		<description><![CDATA[The end of the quarter is once again upon us &#8211; a nice long one for once - and once again I hear the resolution of &#8220;planning to hit the books&#8221;.  Frankly, it would be fantastic if it actually happens but for the most part I rarely ever see it.  So a couple of suggestions for [...]]]></description>
			<content:encoded><![CDATA[<p>The end of the quarter is once again upon us &#8211; a nice long one for once - and once again I hear the resolution of &#8220;planning to hit the books&#8221;.  Frankly, it would be fantastic if it actually happens but for the most part I rarely ever see it.  So a couple of suggestions for the currently motivated to get a step ahead in this 28-day holiday&#8230;<span id="more-401"></span></p>
<p><a href="http://www.mobimeet.com/wp-content/uploads/2008/06/linux.png"><img class="alignnone size-medium wp-image-402 alignright" style="float: right;" title="linux" src="http://www.mobimeet.com/wp-content/uploads/2008/06/linux.png" alt="" width="128" height="128" /></a><strong>1. Pick one book.</strong> Concentrate on one thing and one thing only.  If you try and spread yourself too thin you&#8217;ll get frustrated, learn very little or both.  Instead, pick one topic.  Go to the bookstore, sit down and read 2-3 pages from each book on the topic, and pick the one that suits you.  Get that book.  If you can&#8217;t read it, you won&#8217;t get far.</p>
<p><strong>2. A little a day.</strong> Pick a specific time each day and force yourself to do 30 minutes to 60 minutes every single day during that time to work a bit farther&#8230;make it a routine and reward yourself when you complete each day&#8217;s work.  Less than 30 minutes is too short, more than 60 will just cause too much confusion.</p>
<p><strong>3. Pick another book.</strong> And I mean a non-technical book.  Read 15-30 minutes a day of some literary classic, a self-help guide, some biographical &#8230; anything not related to what you are working on but pick something that will expand your mind.  Some ideas:  &#8220;<a title="We the Living by Ayn Rand" href="http://www.amazon.com/We-Living-Ayn-Rand/dp/0451187849/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1213599013&amp;sr=8-1">We the Living</a>&#8221; by Ayn Rand, &#8220;Day <a title="Day in the Life of Ivan Denisovich" href="http://www.amazon.com/One-Day-Life-Ivan-Denisovich/dp/0374529523/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1213599107&amp;sr=8-1">in the Life of Ivan Denisovich</a>&#8221; by Solzhenitsyn, &#8220;<a title="Hottest State" href="http://www.amazon.com/Hottest-State-Ethan-Hawke/dp/0006550479/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1213599174&amp;sr=1-1">The Hottest State</a>&#8221; by Ethan Hawke or anything by Roald Dahl (for fun) or Orwell (if you need some futuristic ponderings).</p>
<p><strong>4. Enjoy the Day.</strong> Like myself, I am sure most of you have to work and I&#8217;m sure you got a lot going on but take some time to enjoy yourself.  If you can&#8217;t learn to enjoy the free time in your life, why bother living it?</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fsoapbox%2Feoq%2F', 'EOQ')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusred.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/soapbox/eoq/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CSS selectors slow load times</title>
		<link>http://www.matsays.com/misc/tricks/css-selectors-slow-load-times/</link>
		<comments>http://www.matsays.com/misc/tricks/css-selectors-slow-load-times/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 15:45:55 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[IMD213 Int. Scripting]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[browser render]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/?p=399</guid>
		<description><![CDATA[Most Web designers make liberal use of CSS selectors, but that spec&#8217;s sibling, descendant and child selectors can cause what designer/developer Shaun Innman calls a &#8220;significant, negative impact on page rendering.&#8221; This is confirmed in tests done by UI Specialist Jon Sykes that are published on his blog.
Fortunately for most designers, the performance impact is [...]]]></description>
			<content:encoded><![CDATA[<p>Most Web designers make liberal use of CSS selectors, but that spec&#8217;s sibling, descendant and child selectors can cause what designer/developer Shaun Innman calls a &#8220;significant, negative impact on page rendering.&#8221; This is confirmed in tests done by UI Specialist Jon Sykes that are published on his blog.<span id="more-399"></span></p>
<p>Fortunately for most designers, the performance impact is only in extreme situations. But it&#8217;s definitely something to be aware of when writing CSS.</p>
<p>For the Web designer n00bs reading this: CSS selectors are names given to styles &#8212; font-size, color, background-color, etc &#8212; in internal and external style sheets that dictate a Web page&#8217;s design. By using <a href="http://www.w3.org/TR/REC-CSS2/selector.html#adjacent-selectors">sibling</a>, <a href="http://www.w3.org/TR/REC-CSS2/selector.html#descendant-selectors">descendant</a> (two or more selectors) and <a href="http://www.w3.org/TR/REC-CSS2/selector.html#child-selectors">child selectors</a> (a selector that&#8217;s a &#8220;child&#8221; of another selector), designers can apply greater control over the CSS for their pages.</p>
<p>Sykes&#8217; test uses a 20,000-item loop in an HTML document. Within that document, he uses three levels of nested &#8220;div&#8221; tags, the lowest containing a &#8220;paragraph&#8221; tag that also contains an &#8220;anchor&#8221; tag. The anchor tag is targeted and styled using the CSS.</p>
<p><img src="http://www.blogsmithmedia.com/www.downloadsquad.com/media/2008/06/results_graph.jpg" border="1" alt="" hspace="4" vspace="4" align="right" /></p>
<p>The test also consists of three parts: class (each anchor tag gets a unique class name), descendant selectors and child selectors. The results &#8212; listed by the browsers with the largest performance hit &#8212; were as follows:</p>
<p><em><a href="http://jpsykes.com/archive/uploads/2008/05/all.png">See Sykes&#8217; graph of his results</a></em></p>
<p><strong>Class</strong></p>
<ol>
<li>Firefox 3 (OSX)</li>
<li>Firefox 2 (OSX)</li>
<li>IE 7</li>
<li>IE6 and Safari (aprox. tie)</li>
</ol>
<p><strong>Descender selector</strong></p>
<ol>
<li>Firefox 3 (OSX) and Firefox 2 (OSX) tie</li>
<li>Safari</li>
<li>IE 7</li>
<li>IE 6</li>
</ol>
<p><strong>Child selector</strong></p>
<ol>
<li>Safari and Firefox 3 (OSX) tie</li>
<li>IE 6</li>
<li>Firefox 2 (OSX)</li>
<li>IE 7</li>
</ol>
<p>Note that Opera 9 (OSX) was excluded because it couldn&#8217;t render the test page for Sykes.</p>
<p>Sykes does point out that this test measures the performance under extreme circumstances &#8212; there aren&#8217;t many Web pages with this amount of markup or styling. But he does caution that descender and child selectors can cause at least a slight drop in browser performance.</p>
<p>You can <a href="http://test.jpsykes.com/cssParsing/css_test_3.zip">download Sykes&#8217; tests in ZIP format</a>.</p>
<p>[via <a title="Tests confirm CSS selectors slow load times" href="http://www.downloadsquad.com/2008/06/11/tests-confirm-css-selectors-slow-load-times/">DownloadSquad</a> via <a href="http://shauninman.com/archive/2008/05/05/css_qualified_selectors#comment_3942">comment by Dave Hyatt</a> via <a title="http://shauninman.com/archive/2008/05/05/css_qualified_selectors" href="http://shauninman.com/archive/2008/05/05/css_qualified_selectors">ShaunInman.com</a>]</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Fcss-selectors-slow-load-times%2F', 'CSS+selectors+slow+load+times')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusred.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/css-selectors-slow-load-times/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>8 fonts you probably don’t use in css, but should</title>
		<link>http://www.matsays.com/misc/tricks/8-fonts-you-probably-don%e2%80%99t-use-in-css-but-should/</link>
		<comments>http://www.matsays.com/misc/tricks/8-fonts-you-probably-don%e2%80%99t-use-in-css-but-should/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 15:52:57 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[IMD213 Int. Scripting]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[typography]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/?p=396</guid>
		<description><![CDATA[CSS has brought us many capabilities in terms of typography and the web, but we always seem to be limited to the same 4-5 typefaces over and over again. There is an inherant problem, if the font you specify isn’t on the viewers computer it won’t render in that font. So as designers and developers [...]]]></description>
			<content:encoded><![CDATA[<p>CSS has brought us many capabilities in terms of typography and the web, but we always seem to be limited to the same 4-5 typefaces over and over again. There is an inherant problem, if the font you specify isn’t on the viewers computer it won’t render in that font. So as designers and developers we end up selecting the ones that we can safely assume is available on most computers today. So most pages use Arial, Helvetica, or Georgia as their typefaces… and the world of the web remains slightly more bland.<span id="more-396"></span></p>
<p>But there are quite a few high quality typefaces that are available on most new computer systems and you can always fall back on the common ones. Of course there are options like creating images, dynamic headlines, and siFR… but all of these techniques increase load time and development time. There are plenty of good reasons to be strategic in the font choices rather than using additional technology. I am shocked at how rarely I see anyone taking advantage of these type options, so here is a quick and dirty list of fonts you should and could use in your desgns and stylesheets.</p>
<div style="font-family: 'palatino linotype' , palatino;font-size:200%;">1. Palatino Linotype / Palatino</div>
<p><strong>WINDOWS 97.09% / MAC 78.86%</strong></p>
<p>This is a nice serif font that his pretty good support for both Mac and Windows based machines (97.09% of all windows machines have it, and 78.86% of mac’s). Yet very few people use it and instead default to georgia or times. As you can see it makes for great headlines, and I have used it with success as copy type as well. Worse case you can always default back to georgia, times, etc.</p>
<p><!--more--></p>
<div style="font-family: Tahoma;font-size:200%;">2. Tahoma</div>
<p><strong>WINDOWS 96.09% / MAC 72.02%</strong></p>
<p>I admit this is not one of my favorite fonts, but it does have many instances where it could be used effectively. It doesn’t seem to get used very often despite the fact that it could be an excellent copy font. Again there is always Arial or Helvetica if the machine doesn’t have Tahoma installed.</p>
<div style="font-family: impact;font-size:200%;">3. Impact</div>
<p><strong>WINDOWS 95.85% / MAC 88.08%</strong></p>
<p>Admittedly this font probably is overused in non-web related design. Since it is one of the “cooler” default fonts on most machines it tends to get a lot of use. Despite this fact there are plenty of good places to use it, and it works great for well… “impactfull” headlines.</p>
<div style="font-family: 'century gothic';font-size:200%;">4. Century Gothic</div>
<p><strong>WINDOWS 85.44% / MAC 42.50%</strong></p>
<p>This is a nice elegant font that was overused by graphic designers some time ago, but it has been locked away and shunned for some time now. It may almost be time to pull it back out of the tool chest. Not a huge percent of Mac systems come with it preinstalled, but most new ones do. Depending on your target audience this could be the perfect font to use. If you are worried about the low mac support you could always opt for Futura as well (which has very high mac support).</p>
<div style="font-family: 'Arial Black';font-size:200%;">5. Arial Black</div>
<p><strong>WINDOWS 97.73% / MAC 96.18%</strong></p>
<p>Yup you don’t just have to use plain old Arial. Arial black is a nice bold font that could be perfect for headings, impacting headlines, and hell even a replacement for the Impact font mentioned above. I don’t know that I would use it for body text, but it is an option that should be realized in web typography.</p>
<div style="font-family: 'arial narrow';font-size:200%;">6. Arial Narrow</div>
<p><strong>WINDOWS 87.08% / MAC 91.01%</strong></p>
<p>Arial again! We are not done yet, oh no. Much like arial black, arial narrow is a great font for headlines. Instead of the big bold in your face style of headlines you can use this typeface for more elegant subtle headlines. A nice change from the traditional arial, and can be used much like you would a condensed font.</p>
<div style="font-family: Copperplate, 'Copperplate Gothic Light';font-size:200%;">7. Copperplate / Copperplate Gothic Light</div>
<p><strong>WINDOWS 58.13% / MAC 85.85%</strong></p>
<p>I will admit I hate this font, mostly because it is misused (and people will probably argue that it is not the fonts fault, but the designers). But there are times when it can be used effectively, and it has pretty good support on newer windows computers and most mac based computers. Most likely it will again be for headlines, larger headlines, as it is not terribly legible at small fonts especially when it isn’t properly aliased.</p>
<div style="font-family: 'Gill Sans' , 'Gill Sans MT';font-size:200%;">8. Gill Sans / Gill Sans MT</div>
<p><strong>WINDOWS 43.09% / MAC 90.82%</strong></p>
<p>No surprise I like this font. I think it works both in copy and in headlines, and it has fair support in both platforms. Anytime you use a font that has about 50% support rate you want to think about the next logical font to serve, but there are enough options specific to windows that would let you achieve the same typographic message with only subtle differences.</p>
<p>[Excellent article from <strong>3.7CREA.TV</strong> - <a title="8 fonts you probably don’t use in css, but should" href="http://www.3point7designs.com/blog/2008/05/08/8-fonts-you-probably-dont-use-in-css-but-should/" target="_blank">click here for original article</a>]</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2F8-fonts-you-probably-don%25e2%2580%2599t-use-in-css-but-should%2F', '8+fonts+you+probably+don%E2%80%99t+use+in+css%2C+but+should')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusred.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/8-fonts-you-probably-don%e2%80%99t-use-in-css-but-should/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Applying Divine Proportion to your Web Design</title>
		<link>http://www.matsays.com/misc/tricks/applying-divine-proportion-to-your-web-design/</link>
		<comments>http://www.matsays.com/misc/tricks/applying-divine-proportion-to-your-web-design/#comments</comments>
		<pubDate>Fri, 30 May 2008 23:13:08 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[divine proportion]]></category>
		<category><![CDATA[golden rule]]></category>
		<category><![CDATA[phi]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/?p=390</guid>
		<description><![CDATA[Effective web design doesn’t have to be pretty and colorful — it has to be clear and intuitive; in fact, we have analyzed the principles of effective design in our previous posts. However, how can you achieve a clear and intuitive design solution? Well, there are a number of options — for instance, you can [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><strong>Effective web design</strong> doesn’t have to be pretty and colorful — it has to be clear and intuitive; in fact, we have analyzed the principles of effective design in our <a href="http://www.smashingmagazine.com/2008/01/31/10-principles-of-effective-web-design/">previous</a> <a href="http://www.smashingmagazine.com/2008/04/24/5-more-principles-of-effective-web-design/">posts</a>. However, how can you achieve a clear and intuitive design solution? Well, there are a number of options — for instance, you can use grids, you can prefer the simplest solutions or you can focus on usability. However, in each of these cases you need to make sure your visitors have some natural sense of order, harmony, balance and comfort. And this is exactly where the so-called <em>Divine proportion</em> becomes important.<span id="more-390"></span></p>
<p style="text-align: center;"><img class="size-medium wp-image-391 aligncenter" title="divine" src="http://www.mobimeet.com/wp-content/uploads/2008/05/divine-300x291.gif" alt="" width="300" height="291" /></p>
<p>This article <strong>explains what is the Divine proportion and what is the Rule of Thirds</strong> and describes how you can apply both of them effectively to your designs. Of course, there are many possibilities. Hopefully, this post will help you to find your way to more effective and beautiful web designs or at least provide some good starting points you can build upon or develop further.</p>
<p>[<a href="http://www.smashingmagazine.com/2008/05/29/applying-divine-proportion-to-web-design/">Read the rest - via Smashing Magazine</a>]</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Fapplying-divine-proportion-to-your-web-design%2F', 'Applying+Divine+Proportion+to+your+Web+Design')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusred.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/applying-divine-proportion-to-your-web-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tapping the collective group mind</title>
		<link>http://www.matsays.com/misc/tricks/tapping-the-collective-group-mind/</link>
		<comments>http://www.matsays.com/misc/tricks/tapping-the-collective-group-mind/#comments</comments>
		<pubDate>Thu, 01 May 2008 18:45:54 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[IMD335 UCD II]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[mindmap]]></category>
		<category><![CDATA[solving problems]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/?p=380</guid>
		<description><![CDATA[One way to generate more excitement and brainstorm when working on group or collaborative projects is to approach it a bit differently than you may have in the past.  Regularly at my job managing research &#38; development at iStreamPlanet, we spend hours investigating different paths of development, exploring ideas and experiences, thinking way beyond the [...]]]></description>
			<content:encoded><![CDATA[<p>One way to generate more excitement and brainstorm when working on group or collaborative projects is to approach it a bit differently than you may have in the past.  Regularly at my job managing research &amp; development at iStreamPlanet, we spend hours investigating different paths of development, exploring ideas and experiences, thinking way beyond the confines of normal programmatic or visual design practices&#8230;it has become a hallmark of how we are able to create efficiently and quickly produced solutions to technological problems.<span id="more-380"></span></p>
<p><span style="float:left;margin:0px 8px 8px 0px;padding:5px;"><a href="http://www.mobimeet.com/wp-content/uploads/2008/05/2441541719_3b0f4e2b90.jpg"><img class="alignnone size-medium wp-image-381" title="2441541719_3b0f4e2b90" src="http://www.mobimeet.com/wp-content/uploads/2008/05/2441541719_3b0f4e2b90-300x225.jpg" alt="" width="300" height="225" /></a><br />
<small>Image: Adaptive Path</small></span>I was also recently at Mix08 where it was apparent that there was an huge interest in more collaborative approaches to problem solving and with the advent of socializing technologies, you should broaden your means of getting ideas generated.</p>
<p>I was prompted to think about this after reading a blog post on Adaptive Path about this very topic <a href="http://www.adaptivepath.com/blog/2008/04/30/tapping-into-conference-participants-brilliance/">here</a> and after watching one of my own UCD groups use overhead projections and whiteboarding.  But this is only a slice of the puzzle.  Be proactive, and be open-minded when searching for solutions.  Use colors, use technologies, use visuals and be big.  The answer is always out there, but it may be buried in a mound of ideas, so give it a reason to pop out.</p>
<p>[read "<a title="Permanent Link: Tapping Into Conference Participants’ Brilliance" rel="bookmark" href="http://www.adaptivepath.com/blog/2008/04/30/tapping-into-conference-participants-brilliance/">Tapping Into Conference Participants’ Brilliance</a>"]</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Ftapping-the-collective-group-mind%2F', 'Tapping+the+collective+group+mind')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusred.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/tapping-the-collective-group-mind/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ramen: College Cuisine</title>
		<link>http://www.matsays.com/misc/tricks/ramen-college-cuisine/</link>
		<comments>http://www.matsays.com/misc/tricks/ramen-college-cuisine/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 05:55:30 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[ramen]]></category>
		<category><![CDATA[recession]]></category>
		<category><![CDATA[saving]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/misc/tricks/ramen-college-cuisine</guid>
		<description><![CDATA[


Photo credit: Martin Hospach/Getty Images


So I saw this post on Treehugger and it brought me back to my own college experience (yes, back in the Dark Ages), also known as &#8220;three years of malnutrition.&#8221;  Like most of you, money was never easy to come by and for some unknown reason, one of the bare necessities [...]]]></description>
			<content:encoded><![CDATA[<table align="center">
<tr>
<td style="text-align: center; border: #444 1px dotted; padding: 5px"><img width="468" src="http://www.mobimeet.com/wp-content/uploads/2008/03/2008-03-27_092622-make-your-own-top-ramen-noodles.jpg" height="260" style="width: 468px; height: 260px" /><br />
<small>Photo credit: Martin Hospach/Getty Images</small></td>
</tr>
</table>
<p>So I saw <a href="http://planetgreen.discovery.com/food-health/make-your-own-top-ramen-noodle.php" title="Make Your Own Top Ramen Noodles">this post on Treehugger</a> and it brought me back to my own college experience (yes, back in the Dark Ages), also known as &#8220;three years of malnutrition.&#8221;  Like most of you, money was never easy to come by and for some unknown reason, one of the bare necessities in life that we always seemed to scrimp on was food (mind you I was in culinary school).  In any case, I did in fact test it out once and discovered that (in 1987 dollars), I could eat for a week on less than $10 (I had actually written a small journal in one of my notebooks).  My week&#8217;s groceries consisted of 35 packs of ramen (then 8¢ a pack &#8211; and yes, that meant 5 a day), some broccoli, a bunch of carrots, a small oil, a spaghetti sauce and a pack of ham.  Steal a few soy sauce packets from the Chinese takeout and you have at least 5 varietal dishes.  Any stories of your own?</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Framen-college-cuisine%2F', 'Ramen%3A+College+Cuisine')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusred.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/ramen-college-cuisine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Podcasting from your phone</title>
		<link>http://www.matsays.com/misc/tricks/podcasting-from-your-phone/</link>
		<comments>http://www.matsays.com/misc/tricks/podcasting-from-your-phone/#comments</comments>
		<pubDate>Sat, 23 Feb 2008 00:26:57 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[IMD302 Net Broadcasting]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[blogtalkradio]]></category>
		<category><![CDATA[cinch]]></category>
		<category><![CDATA[feedburner]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[podcasting]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/tricks/podcasting-from-your-phone</guid>
		<description><![CDATA[While I&#8217;m not an huge podcast subscriber (note &#8211; I mean I don&#8217;t use them much but I think the technology is fantastic) this I thought was pretty interesting&#8230;

Want to start a podcast, but don&#8217;t know the first thing about audio engineering, web hosting, or RSS feeds? Blogtalkradio&#8217;s newest service makes podcasting a cinch, which [...]]]></description>
			<content:encoded><![CDATA[<p>While I&#8217;m not an huge podcast subscriber (note &#8211; I mean I don&#8217;t use them much but I think the technology is fantastic) this I thought was pretty interesting&#8230;</p>
<p style="text-align: center"><img src="http://www.mobimeet.com/wp-content/uploads/2008/02/blogtalkradio-cinch.jpg" alt="BlogTalkRadio - Cinch" /></p>
<p>Want to start a podcast, but don&#8217;t know the first thing about audio engineering, web hosting, or RSS feeds? <a href="http://www.blogtalkradio.com/"><font color="#73ac11">Blogtalkradio</font></a>&#8217;s newest service makes podcasting a cinch, which is probably why they call the service <a href="http://cinch.blogtalkradio.com/"><font color="#73ac11">Cinch</font></a>.</p>
<p>All you have to do is a call 646-200-0000 from any phone and start talking. Cinch will record your conversation and create a feed with your call as an MP3 enclosure. You never even need to visit the Cinch web page or sign up for the service. So how do you find your feed? Simple, just add your phone number to the end of the Cinch URL. For example, if your phone number is 555-253-4756, your feed would be published at http://cinch.blogtalkradio.com/5552534756.</p>
<p>Now, the audio quality isn&#8217;t going to be amazing. We&#8217;re talking about recording telephone calls here, after all. If you&#8217;re serious about podcasting, you&#8217;re going to want to get a decent microphone, some audio editing software, and so forth. But if you just want to record short interviews on the go and you don&#8217;t have any other equipment handy, Cinch could be a lifesaver.</p>
<p>And if you&#8217;re worried about sharing your phone number with the general public through the URL, you can always use <a href="http://www.feedburner.com/"><font color="#73ac11">FeedBurner</font></a> to republish your feed with a different URL.</p>
<p>[via <a href="http://www.scripting.com/stories/2008/02/18/theSimplestPodcastApiEver.html"><font color="#73ac11">Scripting News</font></a>]</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Fpodcasting-from-your-phone%2F', 'Podcasting+from+your+phone')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusred.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/podcasting-from-your-phone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The New Iteration</title>
		<link>http://www.matsays.com/soapbox/the-new-iteration/</link>
		<comments>http://www.matsays.com/soapbox/the-new-iteration/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 16:48:06 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[IMD302 Net Broadcasting]]></category>
		<category><![CDATA[IMD325 UCD I]]></category>
		<category><![CDATA[IMD345 UCD III]]></category>
		<category><![CDATA[Soapbox]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[application development]]></category>
		<category><![CDATA[new iteration]]></category>
		<category><![CDATA[ria]]></category>
		<category><![CDATA[silverlight]]></category>
		<category><![CDATA[wpf]]></category>
		<category><![CDATA[xaml]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/soapbox/the-new-iteration</guid>
		<description><![CDATA[Those of you in my Net Broadcasting class and other classes know that I&#8217;ve been extolling the advent of Microsoft Silverlight largely because it approaches RIA (Rich Internet Application) development from a different perspective from presumed competitors such as Flash.  For a more in-depth explanation of why this is, why WPF creates a new workflow [...]]]></description>
			<content:encoded><![CDATA[<p><img width="185" src="http://www.mobimeet.com/wp-content/uploads/2008/02/the-new-iteration-cover.jpg" alt="The New Iteration" height="240" style="padding-left: 5px; float: right" />Those of you in my Net Broadcasting class and other classes know that I&#8217;ve been extolling the advent of Microsoft Silverlight largely because it approaches RIA (Rich Internet Application) development from a different perspective from presumed competitors such as Flash.  For a more in-depth explanation of why this is, why WPF creates a new workflow process for application development, and why XAML is not just a new way of thinking or a textual representation of visual elements but a binding agent for collaboration, see these articles:</p>
<p><a href="http://windowsclient.net/wpf/white-papers/thenewiteration.aspx" title="The New Iteration explanation"><strong><em>The New Iteration: How XAML Transforms the Collaboration Between Developers and Designers in Windows Presentation Foundation (WPF)</em></strong></a> by Karsten Januszewski and Jaime Rodriguez</p>
<p><a href="http://blogs.msdn.com/tims/archive/2007/12/07/the-new-iteration-a-whitepaper-on-the-xaml-revolution.aspx" title="The New Iteration: A Whitepaper on the XAML Revolution">Blog post</a> by Client Platform Technical Evangelist Tim Sneath</p>
<p>Download the <a href="http://www.rhizohm.net/papers/the_new_iteration.pdf" title="Download the New Iteration Whitepaper">Whitepaper</a></p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fsoapbox%2Fthe-new-iteration%2F', 'The+New+Iteration')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusred.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/soapbox/the-new-iteration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EasyPHP &#8211; Found It</title>
		<link>http://www.matsays.com/misc/tricks/easyphp-found-it/</link>
		<comments>http://www.matsays.com/misc/tricks/easyphp-found-it/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 19:04:41 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[IMD322 Dynamic Design]]></category>
		<category><![CDATA[IMD402 Server Side Scripting]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[emulator]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/tricks/easyphp-found-it</guid>
		<description><![CDATA[Earlier in the quarter I mentioned finding a PHP emulator so you would not have to send your files to a server for testing and I finally found it (again).  Go to easyphp.org and download the Windows version.  This will install a local version of Apache (web server), PHP and MySQL onto your computer.  You [...]]]></description>
			<content:encoded><![CDATA[<p><img border="0" align="left" width="226" src="http://www.easyphp.org/images_easyphp/top_title.gif" alt="EasyPHP" height="40" style="margin: 0px 5px 5px 0px" />Earlier in the quarter I mentioned finding a PHP emulator so you would not have to send your files to a server for testing and I finally found it (again).  Go to <a href="http://www.easyphp.org/" title="EasyPHP">easyphp.org</a> and download the Windows version.  This will install a local version of Apache (web server), PHP and MySQL onto your computer.  You may have to modify the configuration (my recommendation is that if you are running IIS locally to change IIS to port 81 and leave EasyPHP as 80).</p>
<p>Please note that this is a beta build and not intended for production use.</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Feasyphp-found-it%2F', 'EasyPHP+%26%238211%3B+Found+It')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusblue.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/easyphp-found-it/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Gearing up for Winter 2008 Quarter</title>
		<link>http://www.matsays.com/misc/tricks/gearing-up-for-winter-2008-quarter/</link>
		<comments>http://www.matsays.com/misc/tricks/gearing-up-for-winter-2008-quarter/#comments</comments>
		<pubDate>Fri, 28 Dec 2007 07:01:32 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[IMD302 Net Broadcasting]]></category>
		<category><![CDATA[IMD325 UCD I]]></category>
		<category><![CDATA[IMD402 Server Side Scripting]]></category>
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/tricks/gearing-up-for-winter-2008-quarter</guid>
		<description><![CDATA[Well, classes are only 11 days away so I hope you&#8217;re all getting in your rest &#8211; we got a lot to do this quarter.
First, lots going on with iStreamPlanet, our Silverlight development and other technology advancements.  For those of you who are able to, head on out to CES &#8211; it looks like this [...]]]></description>
			<content:encoded><![CDATA[<p>Well, classes are only 11 days away so I hope you&#8217;re all getting in your rest &#8211; we got a <span style="text-decoration: underline;">lot</span> to do this quarter.</p>
<p>First, lots going on with iStreamPlanet, our Silverlight development and other technology advancements.  For those of you who are able to, head on out to CES &#8211; it looks like this will be a pretty good show this year.  And if you have a chance to head to Mix08 &#8211; there will be some really cool things to see there too.  In any case, the contractors didn&#8217;t finish our new office build-out so me and the team are stuck in temporary office space &#8211; no thanks to Wynn practically pushing us out the door from the office I&#8217;ve been residing in the last 5 years.</p>
<p>Second, I know a lot of you use and have gotten comfortable with Firebug.  <a title="Web Developer Firefox plugin" href="http://chrispederick.com/work/web-developer/">Here&#8217;s a similar plugin</a> I found that you should also get.  It allows you to do a lot of those user variations that you might not otherwise account for &#8211; exact screen resolutions, Javascript on/off, etc.</p>
<p>Finally, I admit, I use cheat sheets.  It&#8217;s bad enough trying to remember markups, commands, syntax, functions, and methods for 1 or 2 languages, what about 5 or more languages that a web developer typically has to know (and if you have no idea what I&#8217;m talking about, see below)?  UK-based Internet dude Dave Child, who writes good, poignant articles and blogs about a ton of topics, has a great set of free (yes, FREE &#8211; and if you use them you should send him a note and thank him for saving you a few bucks after all the tuition you&#8217;ve paid) cheat sheets in PDF format for download.  I recommend grabbing them (at least the list below) as soon as you can &#8211; with the Web, you never know when something&#8217;s going to disappear.  <a title="Cheat Sheets by Dave Child" href="http://www.ilovejackdaniels.com/cheat-sheets/">Check out the list and links here</a>.</p>
<p>And as far as the list of languages you should know as a web developer (and this rant is aimed directly at my students) &#8230;</p>
<ol>
<li>HTML/XHTML (<em>and you should know the difference</em>)</li>
<li>CSS (<em>and be current and know the hacks</em>)</li>
<li>Javascript &amp; Javascript prototyping</li>
<li>ASP Classic (<em>sorry guys, I still think it&#8217;s a good fundamental language</em>)</li>
<li>SQL (<em>for MySQL</em>)</li>
<li>PHP (<em>both functional and object based</em>)</li>
<li>XML (<em>and variants of it, plus XSL</em>)</li>
<li>ActionScripting</li>
<li><em>And if you really want to get ahead, you need to learn at least one of the following to stay ahead of the curve in the next few years:</em> ASP.NET, JSP, Ruby on Rails, or C#</li>
</ol>
<p>And no, AJAX is <span style="text-decoration: underline;">not</span> a language as many of you still think &#8211; if you thought it was&#8230;GO LOOK IT UP!</p>
<p><strong><em>See you in class &#8230; don&#8217;t be late!</em></strong></p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Fgearing-up-for-winter-2008-quarter%2F', 'Gearing+up+for+Winter+2008+Quarter')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusblue.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/gearing-up-for-winter-2008-quarter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to Block Google Analytics</title>
		<link>http://www.matsays.com/misc/how-to-block-google-analytics/</link>
		<comments>http://www.matsays.com/misc/how-to-block-google-analytics/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 00:57:20 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Toolbox]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/misc/how-to-block-google-analytics</guid>
		<description><![CDATA[We as web developers generally want to capture the analytics but in fact you can block it as well.  Of course we can exclude specific IPs but if you&#8217;re like me and you move around through the WiFi networks a lot, you may need to exclude your specific machine (or maybe you just want to [...]]]></description>
			<content:encoded><![CDATA[<p>We as web developers generally <u>want</u> to capture the analytics but in fact you can block it as well.  Of course we can exclude specific IPs but if you&#8217;re like me and you move around through the WiFi networks a lot, you may need to exclude your specific machine (or maybe you just want to be really anonymous though I&#8217;m not quite sure what you&#8217;re really losing by sending the data).</p>
<p>All you have to do is (in MSIE) go to Internet Options, click over to the security tab and add these locations to the Block list:</p>
<p>127.0.0.1 <a href="http://www.google-analytics.com/">www.google-analytics.com</a><br />
127.0.0.1 google-analytics.com<br />
127.0.0.1 ssl.google-analytics.com<br />
127.0.0.1 *.google-analytics.com</p>
<p>As to my question above, <a href="http://www.blogboing.com/index.php/2007/12/14/google-gonna-find-out-whos-been-naughty-or-nice/" title="Google gonna find out who’s been naughty or nice">here&#8217;s a pretty interesting post</a> on Google&#8217;s reach&#8230;</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Fhow-to-block-google-analytics%2F', 'How+to+Block+Google+Analytics')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusblue.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/how-to-block-google-analytics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Performing the Luhn-10</title>
		<link>http://www.matsays.com/misc/tricks/performing-the-luhn-10/</link>
		<comments>http://www.matsays.com/misc/tricks/performing-the-luhn-10/#comments</comments>
		<pubDate>Sat, 01 Dec 2007 17:08:51 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[IMD345 UCD III]]></category>
		<category><![CDATA[IMD402 Server Side Scripting]]></category>
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/tricks/performing-the-luhn-10</guid>
		<description><![CDATA[The Luhn-10 algorithm is widely known formula for generating accepted credit card numbers. This doesn’t mean that EVERY generated number will exist, it is simply a system of being able to check if a number is even accurate or not.
The reason we do a “Luhn-10 check” on an entered credit card is to verify that [...]]]></description>
			<content:encoded><![CDATA[<p>The Luhn-10 algorithm is widely known formula for generating accepted credit card numbers. This doesn’t mean that EVERY generated number will exist, it is simply a system of being able to check if a number is even accurate or not.</p>
<p>The reason we do a “Luhn-10 check” on an entered credit card is to verify that the user did not enter invalid information before it gets sent to the credit card processor. Why? Because a transaction request, whether it’s valid or not, costs the site owner money! Every request is charged a base transaction fee (and this varies depending on the size of the company, the volume of transactions and many other factors; my company for example, has a transaction fee of 12 cents*). So in other words, we want to make sure that if we’re about to get charged that fee, we’d better make sure ourselves that we have as accurate a number as possible.</p>
<p align="center"><img src="http://www.mobimeet.com/wp-content/uploads/2007/12/logo_ccamex.gif" alt="logo_ccamex.gif" /><img src="http://www.mobimeet.com/wp-content/uploads/2007/12/logo_ccdiscover.gif" alt="logo_ccdiscover.gif" /><img src="http://www.mobimeet.com/wp-content/uploads/2007/12/logo_ccmc.gif" alt="logo_ccmc.gif" /><img src="http://www.mobimeet.com/wp-content/uploads/2007/12/logo_ccvisa.gif" alt="logo_ccvisa.gif" /></p>
<p><span id="more-260"></span>Luhn-10 (which used to be known as Mod10) was developed by an engineer at IBM in the 1960’s. The basic premise is that a homogenous formula, when applied to a string of numbers, will always yield the same result. In the case of Luhn-10, the result is 0. For this example, use the Visa card:</p>
<p align="center"><span style="font-size: 16pt">4563 9601 2200 1999 </span></p>
<p><strong>Step 1:</strong> Reverse the number. Beginning with the (new) first number of the whole sequence, multiple every odd digit by 1 and every even digit by 2:</p>
<table border="0" cellPadding="0" cellSpacing="0" style="border-collapse: collapse" class="MsoTableGrid">
<tr>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">9</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">9</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">9</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">1</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">0</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">0</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">2</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">2</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">1</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">0</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">6</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">9</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">3</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">6</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">5</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">4</p>
</td>
</tr>
<tr>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">x1</span></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">x2</span></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">x1</span></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">x2</span></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">x1</span></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">x2</span></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">x1</span></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">X2</span></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">x1</span></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">x2</span></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">x1</span></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">x2</span></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">x1</span></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">x2</span></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">x1</span></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">x2</span></p>
</td>
</tr>
<tr>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong>9</strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong>18</strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong>9</strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong>2</strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong>0</strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong>0</strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong>2</strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong>4</strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong>1</strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong>0</strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong>6</strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong>18</strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong>3</strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong>12</strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong>5</strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong>8</strong></p>
</td>
</tr>
</table>
<p><strong>Step 2:</strong> For all of the results that are greater than 9, add the two digits in the result:</p>
<table border="0" cellPadding="0" cellSpacing="0" style="border-collapse: collapse" class="MsoTableGrid">
<tr>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">9</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">18</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">9</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">2</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">0</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">0</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">2</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">4</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">1</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">0</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">6</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">18</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">3</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">12</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">5</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">8</p>
</td>
</tr>
<tr>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">9</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">1+8</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">9</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">2</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">0</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">0</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">2</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">4</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">1</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">0</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">6</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">1+8</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">3</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">1+2</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">5</p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center">8</p>
</td>
</tr>
<tr>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">9</span></strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">9</span></strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">9</span></strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">2</span></strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">0</span></strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">0</span></strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">2</span></strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.65pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">4</span></strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">1</span></strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">0</span></strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">6</span></strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">9</span></strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">3</span></strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">3</span></strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">5</span></strong></p>
</td>
<td width="37" vAlign="top" style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0in; width: 27.7pt; padding-top: 0in; background-color: transparent; border: #ece9d8">
<p align="center"><strong><span style="font-size: 10pt; color: red; font-family: 'Trebuchet MS'">8</span></strong></p>
</td>
</tr>
</table>
<p><strong>Step 3:</strong> Sum those numbers:</p>
<p align="center">9+9+9+2+0+0+2+4+1+0+6+9+3+3+5+8 = <strong>70</strong></p>
<p><strong>Step 4:</strong> Modulus the sum (this is why it used to be called Mod10). In arithmetic, the modulus is the remainder after a number is divided by a specified number:</p>
<p align="center"><strong>70 = 0 mod 10</strong></p>
<p>All major credit card providers use the Luhn-10 system (Visa, Mastercard, American Express, Discover, Diner’s Club, Carte Blanche and JCB). There is currently an alternate system that uses a 1 instead of a 0 as the modulus but they are not widely accepted cards. Note that there are several card numbers that are widely accepted as test card numbers and are always overlooked. The most common one is 4111111111111111 (and is therefore never considered to be a real credit car number). Also note that credit card numbers can have 13, 15, or 16 digits</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Fperforming-the-luhn-10%2F', 'Performing+the+Luhn-10')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusblue.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/performing-the-luhn-10/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Screen Resolutions and Better User Experience</title>
		<link>http://www.matsays.com/misc/tricks/screen-resolutions-and-better-user-experience/</link>
		<comments>http://www.matsays.com/misc/tricks/screen-resolutions-and-better-user-experience/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 17:22:48 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[IMD325 UCD I]]></category>
		<category><![CDATA[IMD335 UCD II]]></category>
		<category><![CDATA[IMD345 UCD III]]></category>
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/tricks/screen-resolutions-and-better-user-experience</guid>
		<description><![CDATA[In order to work well, designs have to be optimized for simplicity, transparency and, consequently, optimal user experience. The user experience itself is, however, in many cases just an elegant term employed with false intentions and wrong approaches.Optimal user experience is rarely achieved by visual design elements, although some stakeholders are strongly convinced that it [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: 'Calibri','sans-serif'"><font size="3">In order to work well, designs have to be optimized for simplicity, transparency and, consequently, optimal user experience. The user experience itself is, however, in many cases just an elegant term employed with false intentions and wrong approaches.</font></span><span style="font-family: 'Calibri','sans-serif'"><font size="3">Optimal user experience is rarely achieved by visual design elements, although some stakeholders are strongly convinced that it actually is the case. What actually matters is the fact that <strong><span style="font-family: 'Calibri','sans-serif'">the content is accessible and legible</span></strong> — and although visual design can support the content and help to communicate with your target audience in a more effective way, it is not a solid foundation to build a successful web-site upon. (In fact, to compromise stakeholders’ understanding of design solutions is your primary task if you strive to be a professional web-developer.)<span id="more-251"></span></font></span><span style="font-family: 'Calibri','sans-serif'"><font size="3">Whatever stages you are going through in your design process, to perform well you need to make sure that your design works for most visitors, whatever screen resolution they use. It’s not about the graphics visitors see; as stated above, it’s about the content they are looking for.</font></span><span style="font-family: 'Calibri','sans-serif'"><font size="3">To present the content in an optimal way it’s necessary to consider layout width as well as line height and line length — for instance, <strong><span style="font-family: 'Calibri','sans-serif'">an optimal legibility is achieved with approximately 60-80 characters per line</span></strong>. This metric should remain constant across different browsers and screen resolutions.</font></span><span style="font-family: 'Calibri','sans-serif'"><font size="3">For which screen resolution should you optimize a web-site? And should you optimize in the first place? The growing number of screen resolutions doesn’t help to solve this almost historic problem for which there are still no universal solutions or common heuristics.</font></span></p>
<p><span style="font-family: 'Calibri','sans-serif'"></p>
<h3 style="margin: auto 0in"><span style="font-family: 'Calibri','sans-serif'">Screen Resolution ≠ Browser Window Resolution</span></h3>
<p><span style="font-family: 'Calibri','sans-serif'"><font size="3">As the screen resolution increases with high resolution monitors, users generally tend to avoid browsing in the full screen mode. Besides, in many cases sidebar is floating left or right on the desk while browser extensions are placed within the browser window.</font></span><span style="font-family: 'Calibri','sans-serif'"><font size="3">Therefore it’s important to understand that in most cases the <strong><span style="font-family: 'Calibri','sans-serif'">browser window resolution is much smaller than screen resolution</span></strong>. Although some dependencies might exist, it’s hard to estimate what screen resolution is actually used.</font></span></p>
<h3 style="margin: auto 0in"><span style="font-family: 'Calibri','sans-serif'">Target Your Audience: Find An Average Profile</span></h3>
<p><span style="font-family: 'Calibri','sans-serif'"><font size="3">In order to gain a better understanding of your average user profile it’s a common practice to use the data provided by modern analytics tools such as Google Analytics. Most of them not only track an average screen resolution of your visitors, but also users’ behaviour and their preferences.</font></span><span style="font-family: 'Calibri','sans-serif'"><font size="3">Thus you can determine which users stay longer on your web-site and improve the user experience by fine-tuning of your design. Once you know the average profile of your visitors, you might motivate your design decisions by expected values. You can find some of the heuristics derived from recent studies in one of our recent articles </font><a href="http://www.smashingmagazine.com/2007/10/03/who-is-your-visitor-an-average-profile/"><font size="3">Who Is Your Visitor: An Average Profile</font></a><font size="3">.</font></span></p>
<h3 style="margin: auto 0in"><span style="font-family: 'Calibri','sans-serif'">Common Screen Resolutions</span></h3>
<p><span style="font-family: 'Calibri','sans-serif'"><font size="3">Eoghan Mccabe, the project manager of </font><a href="http://www.foldspy.com/"><font size="3">FoldSpy</font></a><font size="3">, has provided Smashing Magazine with exclusive data about the screen resolution which users tend to browse with on large web-sites. Foldspy measures browser screens for advertising purposes.</font></span><span style="font-family: 'Calibri','sans-serif'"><font size="3">Over 18,000,000 browser screenshots above the fold have been analyzed which makes a quite impressive data set one can rely on. Here are the results of the survey. According to the data, you can be sure that your visitors will be able to see the content placed within the 500px-800px screen height. <strong><span style="font-family: 'Calibri','sans-serif'">Over 80% will be served well with 1000px screen width</span></strong>, 28% of the users tend to browser with 1250px screen width. You can click on the image to get a a live chart.</font></span><span style="font-family: 'Calibri','sans-serif'"><a href="http://www.foldspy.com/graphs/height.html"><span style="text-decoration: none; text-underline: none"><font size="3"><img border="0" width="428" src="http://www.smashingmagazine.com/images/browser-height.gif" alt="Chart Screenshot" height="386" id="_x0000_i1025" /></font></span></a></span><span style="font-family: 'Calibri','sans-serif'"><a href="http://www.foldspy.com/graphs/width.html"><span style="text-decoration: none; text-underline: none"><font size="3"><img border="0" width="430" src="http://www.smashingmagazine.com/images/browser-width.gif" alt="Chart Screenshot" height="392" id="_x0000_i1026" /></font></span></a></span><span style="font-family: 'Calibri','sans-serif'"><font size="3">You can find a further survey related to the widely used screen resolution in the article by </font><a href="http://www.baekdal.com/reports/actual-browser-sizes/"><font size="3">Thomas Baekdal</font></a><font size="3"> which was published last year.</font></span></p>
<h3 style="margin: auto 0in"><span style="font-family: 'Calibri','sans-serif'">So what do we do?</span></h3>
<p><span style="font-family: 'Calibri','sans-serif'"><font size="3">Don’t optimize your web designs for your personal convenience. Don’t guess blindly; instead try to estimate the profile of your visitors and leverage your design accordingly. In most cases you can improve the user experience by keeping the width of your layout at 1000px. <strong><span style="font-family: 'Calibri','sans-serif'">Design for your visitors</span></strong>, even if it means that your design looks terrible on your high-resolution wide-screen laptop.</font></span></p>
<p><span style="font-family: 'Calibri','sans-serif'"><font size="3"><a href="http://www.smashingmagazine.com/2007/11/23/screen-resolutions-and-better-user-experience/" title="Screen Resolutions and Better User Experience">Original article</a> by Vitaly Friedman and Sven Lennartz posted on Smashing Magazine.</font></span><!-- google_ad_section_end --></span></p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Fscreen-resolutions-and-better-user-experience%2F', 'Screen+Resolutions+and+Better+User+Experience')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusblue.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/screen-resolutions-and-better-user-experience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>20 pro tips</title>
		<link>http://www.matsays.com/misc/tricks/20-pro-tips/</link>
		<comments>http://www.matsays.com/misc/tricks/20-pro-tips/#comments</comments>
		<pubDate>Tue, 06 Nov 2007 06:28:08 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/tricks/20-pro-tips</guid>
		<description><![CDATA[The difference between a good web designer and a great one is the ability to know how to take short cuts and save time without compromising the quality of work. Pixelsurgeon’s Jason Arber has put together 20 top tips and tricks you should be using to give your work that all-important professional edge. [This is [...]]]></description>
			<content:encoded><![CDATA[<p><strong>The difference between a good web designer and a great one is the ability to know how to take short cuts and save time without compromising the quality of work. Pixelsurgeon’s Jason Arber has put together 20 top tips and tricks you should be using to give your work that all-important professional edge. [This is excerpted from an article in .NET magazine].</strong></p>
<p style="text-align: center"><a href="http://www.netmag.co.uk/zine/design-tutorials/20-pro-tips" title="20 pro tips"><img src="http://www.mobimeet.com/wp-content/uploads/2007/11/151tips549.jpg" alt="20 pro tips" /></a></p>
<p><strong><span id="more-226"></span>1. Planning</strong></p>
<p>When you’re itching to get started, it’s easy to overlook the most obvious step: planning. Whether it’s drawing wireframes and site diagrams in OmniGraffle or Visio, or even on a scrap of paper, you’ll save time by having an overview of your design at the site and page level before you start building. Obvious errors can be detected and solved before it’s too late to go back and it makes explaining your ideas to clients and colleagues a lot simpler than waving your hands in the air.</p>
<p><em style="color: #bb0000">Hmmmm &#8230; smell of five planes!</em></p>
<p><strong>2. Do it by hand</strong></p>
<p>Although there are some excellent tools around for building web sites, such as Adobe GoLive and Adobe (formerly Macromedia) Dreamweaver, professional code monkeys prefer to code by hand. Are they crazy masochists? Quite possibly.</p>
<p><strong>There’s only one way to learn HTML, and that’s to <u>roll up your sleeves and get your hands dirty with some actual code</u></strong>. But fear not: HTML has one of the easiest learning curves you’ll ever come across and you can create a basic web page with only a couple of lines. Writing code by hand also ensures that you write the leanest code possible, which is the ultimate aim of all HTML geeks.</p>
<p>Don’t throw out that copy of GoLive or Dreamweaver just yet. Both applications have excellent code writing environments, and have useful features, such as collapsable blocks of code and split views so you can code and see the results at the same time. If you want to try the code-only route, then any text editor that can save in the basic .txt format should do, but Mac users might want to check out Bare Bones Software’s BBEdit, and Windows users should give the freeware AceHTML editor from Visicome Media a whirl.</p>
<p><em style="color: #bb0000">Oh yea baby - except I think you should throw out the Dreamweaver &#8211; learn it with NOTEPAD!</em></p>
<p><strong>3. Stylesheets: importing vs linking</strong></p>
<p>There are two ways to attach an external stylesheet to your HTML page, and not all browsers understand both methods. This can be used to your advantage to feed one stylesheet to modern browsers and another to Netscape 4.x, which would otherwise choke on more complex CSS.</p>
<p>Cascading stylesheets are designed to flow over each other. The secret is to create a simple stylesheet that works in Netscape 4, with more complex CSS relegated to an additional stylesheet that’s attached using @import, which Netscape 4.x will ignore:</p>
<p>&lt;link rel=”stylesheet” href=”simple. css” type=”text/css” media=”screen”&gt;<br />
&lt;style type=”text/css” media=”screen”&gt; @import url(simple.css); &lt;/style&gt;</p>
<p><strong>4. Smarter gradient backgrounds</strong></p>
<p>CSS gives you a lot of control and flexibility over the tiling of background images. And the great thing is that tiled images are not limited to the Body background but can also be applied to any DIV, block level or inline element.</p>
<p>Images that tile conventionally or just along the x or y axis can be set to scroll with the page or remain fixed while the rest of the page scrolls over it. Backgrounds can also be offset. This means that it’s easy to create a vertically graduated background that never repeats no matter how long the page is, using graphics that are only a few kilobytes in size.</p>
<p>Using the following code, the background.png file need only be as tall as the gradient and one pixel wide. This example assumes that the gradient fades into white, but the backgroundcolor attribute could be any value.</p>
<p>body { background-color: white; background-image: url(background.png); background-repeat: repeat-x; }</p>
<p><em style="color: #bb0000">Be a bit careful with this one.  Remember that MSIE6 does not support transparent PNGs&#8230;see #11.</em></p>
<p><strong>5. Commenting</strong></p>
<p>When you come back to a site that you designed months ago, there’s nothing worse than trying to figure out what you did and attempting to untangle a spaghetti of code. Do yourself (and anyone else who wants to check out your code) a favour by putting comments in your HTML. Comments might add anything from a few bytes to a kilobyte or two to your page, but the time savings are invaluable.</p>
<p>Commenting also encourages you to keep your code tidy by breaking it into logical chunks. Some coders even use comments to create a table of contents for the page, which is only visible in code view.</p>
<p>Be aware that HTML and CSS use two different kinds of commenting, so you may want to learn the difference.</p>
<p>&lt;!&#8211; HTML commenting looks like this and is enclosed within angle brackets and two dashes. The opening tag includes an exclamation mark. &#8211;&gt; /* CSS comments are enclosed by a forward slash and an asterisk. */</p>
<p><em style="color: #bb0000">Thank you, thank you!</em></p>
<p><strong>6. Use simple PHP to build sites</strong></p>
<p>There’s no need to become a PHP expert to start using it in your site. If your server supports PHP, you can quickly and easily use server side includes to build a library of commonly used elements, inserting them into your web page with a simple link. This is great for elements like menus, which can exist as a single instance, and means that if you add a new menu item or change the design, you just need to change the include file, which will then update the whole site.</p>
<p>Includes are simply snippets of HTML code such as a table or unordered list. The page calling the includes should end .php and the includes are inserted using the following simple code:</p>
<p>&lt;?php include(“filename.html”); ?&gt;</p>
<p><em style="color: #bb0000">Coming soon, as in <u>this week</u> &#8211; scripting for consistency!</em></p>
<p><strong>7. Set fonts using ems</strong></p>
<p>Designers love specifying type sizes in pixels because it corresponds easily and naturally with what they do in Photoshop. But as a type size specification for the web, pixels have one major disadvantage: they can’t be resized in Internet Explorer. As monitor resolutions increase, it’s not only the visually impaired who may want to increase the font size in your design, so what’s the solution?</p>
<p>The answer is to specify type in ems. If you’re unfamiliar with the unit, an em is roughly the width of a lowercase em in a font, and using a browser’s default internal stylesheet, an em is roughly equivalent to 16 pixels. Set the font size attribute in the body tag to 62.5 per cent like this:</p>
<p>body { font-size: 62.5% }</p>
<p>This makes one em roughly ten pixels (16 x 62.5% = 10). Now you can equate pixel sizes to ems. For example, type that is set in 12 pixels could be expressed as 1.2em; 9 pixels becomes 0.9em and so on. What’s more, both the designer and user are happy.</p>
<p><strong>8. IE Box Model Hack</strong></p>
<p>Sooner or later you’ll come across an important bug in Internet Explorer that incorrectly calculates the width and height of block level items by including padding values within the box’s dimensions, rather than adding it outside the box. This can wreck layouts. The solution is known as the Box Model Hack, which uses another bug in IE to force it to use tags that other browsers ignore. If you have a div validly specified like this:</p>
<p>div {_ width: 100px;_ padding: 5px;_ border: 5px solid #fff;_ }</p>
<p>You’ll end up with a box that’s 120 pixels wide in most browsers, but only 100 pixels wide in IE. The easiest solutions is the box-within-a-box method, which places one div inside another:</p>
<p>div {_ width: 100px;_ }<br />
div .hack {_ padding: 5px;_ border: 5px solid #fff;_ }</p>
<p>This is applied in the following way:<br />
&lt;div&gt;<br />
&lt;div class=”hack”&gt;<br />
Your content goes here<br />
&lt;/div&gt;<br />
&lt;/div&gt;</p>
<p><strong>9. Space saver</strong></p>
<p>Nobody likes building forms in HTML, especially as browsers insist on adding padding around them for no reason. Simply add the following CSS to your stylesheet:</p>
<p>&lt;form style=”margin-top: 0; margin-bottom: 0;”&gt;</p>
<p><em style="color: #bb0000">&#8220;Whitespace doesn&#8217;t matter in HTML&#8221; is a fallacy &#8211; it does &#8211; refer back to #2 and learn it by hand &#8211; that&#8217;s the only way you&#8217;ll ever find out when they happen so you can learn how to fix it.</em></p>
<p><strong>10. Test, test and test again</strong></p>
<p>While Internet Explorer still dominates the browser market by a huge percentage, its lead is being gradually eroded by other browsers such as Firefox and Opera. There are also plenty of people out there still using archaic browsers like pre-Mozilla versions of Netscape.</p>
<p>It’s virtually impossible to design great-looking web sites that work in all browser versions, so it’s best to decide which browsers you’ll support. Mozilla-based browsers, WebKit-based browsers (such as Apple’s Safari), KHTML-based browsers (such as Konqueror), Opera and Internet Explorer versions four and higher are generally considered a safe benchmark. However, you should still be a good net citizen by ensuring that your code degrades gracefully, so that even unsupported browsers can experience your site – even in a limited form (see tip 14).</p>
<p><strong>11. Format fundamentals</strong></p>
<p>In the old days it used to be simple. If the image contained flat colours like a logo, use a GIF. If it was photographic, use a JPEG. There’s also an overlooked third format, PNG (pronounced ‘ping’) that comes in two flavours: an 8-bit version containing 256 colours, like GIFs, and a 24-bit version with alpha channel support allowing for variable transparency.</p>
<p>The bad news is that Internet Explorer doesn’t support PNG’s alpha channels without resorting to a complex hack. However, 8-bit PNGs generally compress much smaller than the equivalent GIF version. Unless you need animation, which PNGs can’t do, PNGs can replace GIFs in most situations, resulting in an overall file size saving.</p>
<p>JPEGs usually create smaller files than 24-bit PNGs, so unless you’re taking advantage of PNG’s alpha channel transparency using the hack (<a href="http://www.alistapart.com/stories/pngopacity/">www.alistapart.com/stories/pngopacity/</a>), then JPEGs are still the best format for continuous tone images.</p>
<p><strong>12. The ‘title’ and ‘alt’ attributes</strong></p>
<p>Ensure that all your images make use of the alt and title tags so that screen readers for the visually impaired can correctly parse your page:</p>
<p>&lt;img src=”logo.gif” alt=”logo” title=”logo/” /&gt;</p>
<p><em style="color: #bb0000">Not to mention SEARCH ENGINES.</em></p>
<p><strong>13. The correct format for pseudo classes</strong></p>
<p>For text rollover effects, it’s important that the pseudo classes are in the right order, or they won’t work correctly in all browsers. The correct order is:</p>
<p>a:link { color: blue; }<br />
a:visited { color: purple; }<br />
a:hover { color: purple; }<br />
a:active { color: red; }</p>
<p><strong>14. Use semantic mark-up</strong></p>
<p>The idea behind semantic mark-up is to separate the content of your web site from its appearance so that it degrades gracefully. Ideally, if you were to remove the stylesheets, your web site should still work. It might not look pretty, but it means that users with older browsers, will still be able to get meaningful content from your site.</p>
<p>The positioning, styling and a certain amount of interactivity can then be added with stylesheets and CSS-P.</p>
<p><strong>15. Favicons</strong></p>
<p>Favicons are the little 16&#215;16 pixel icons that appear in your favourites lists and the title bars of web sites. They’re quick and easy to add: save a graphic in .ico format (Mac users may want to consider using Graphic Converter as Photoshop doesn’t support this format) and put it in your site’s root folder. It’s as simple as that.</p>
<p><strong>16. Change capitalisation using CSS</strong></p>
<p>If you need something written in capitals, such as a headline, rather than rewriting the copy, let CSS do the donkey work. The following code will transform all text with an h1 attribute into all capitals, regardless of format.</p>
<p>h1 { text-transform: uppercase; }</p>
<p><strong>17. Wrapping text around images</strong></p>
<p>For a quick and dirty way of wrapping text around images, use the image’s align attribute to push it to the left or right. Rather than jump below the image, text should now flow along the edge.</p>
<p>&lt;img src=”image.jpg” align=”left”&gt;</p>
<p><strong>18. Universal character sets</strong></p>
<p>Character sets are an important part of a web page’s definition, but they’re probably the least understood component. Character sets, which are defined in a web page’s invisible head section, tell the browser what method is being used to encode the characters. A charset ISO Latin 1 (also known as ISO 8859-1) will render the code it finds using a basic Western alphabet, but a charset of Shift JIS will attempt to render any characters it finds as Japanese.</p>
<p>With so many competing character sets, problems can occur, especially when using the MS Windows character set (which contains certain characters that may be replaced by a blank space on other operating systems) or when several languages need to appear on a single page.</p>
<p>The answer is to use a single universal character set that’s able to cover most eventualities. Luckily one exists: UTF-8, which is based on Unicode. Unicode is an industry standard that’s designed to enable text and symbols from all languages to be consistently represented and manipulated by computers. UTF- 8 is rapidly becoming the charset definition of choice, and should be included in your web page’s head like this:</p>
<p>&lt;meta http-equiv=”content-type” content=”text/ html;charset=utf-8” /&gt;</p>
<p><strong>19. Print styles</strong></p>
<p>When people print web pages, often they’re not interested in your flashy graphics: they just want a simplified version of the page. Using CSS it’s possible to create a separate stylesheet that only affects printed versions of your site, rather than having to create a new HTML page or adapt an existing one. You add a print stylesheet in exactly the same way that you would add a regular stylesheet to your page:</p>
<p>&lt;link rel=”stylesheet” type”text/css” href=”print.css” media=”print”&gt;</p>
<p>or</p>
<p>&lt;style type=”text/css” media=”print”&gt; @import url(print.css); &lt;/style&gt;</p>
<p>This ensures that the CSS will only apply to printed output and not affect how the page looks on screen. With your new printed stylesheet you can ensure you have solid black text on a white background and remove extraneous features to maximise readability.</p>
<p><strong>20. Learn from others</strong></p>
<p>Finally, a quick and simple tip: learn from great sites built by others. Any site’s HTML is easily accessible by viewing a page’s source code. See how others have done things and apply their methods to your own work.</p>
<p>Source: <a href="http://www.netmag.co.uk/zine/design-tutorials/20-pro-tips" title="20 pro tips">20 pro tips</a> by Jason Arber in .NET Magazine</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2F20-pro-tips%2F', '20+pro+tips')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusblue.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/20-pro-tips/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Gravatars &amp; Microformats</title>
		<link>http://www.matsays.com/misc/gravatars-microformats/</link>
		<comments>http://www.matsays.com/misc/gravatars-microformats/#comments</comments>
		<pubDate>Fri, 19 Oct 2007 04:46:00 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[IMD325 UCD I]]></category>
		<category><![CDATA[IMD345 UCD III]]></category>
		<category><![CDATA[Internet News]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Toolbox]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/misc/gravatars-microformats</guid>
		<description><![CDATA[On the one hand, I&#8217;m not the biggest proponent of social networking (even including blogs), but every once in a while I see some pretty neat and useful things come along.  Two of these are microformats and gravatars.
Microformats have actually been around for over 2 years but are starting to become more and more prominent.  They are [...]]]></description>
			<content:encoded><![CDATA[<p>On the one hand, I&#8217;m not the biggest proponent of social networking (even including blogs), but every once in a while I see some pretty neat and useful things come along.  Two of these are microformats and gravatars.</p>
<p><a href="http://microformats.org"><img align="left" src="http://www.mobimeet.com/wp-content/uploads/2007/10/microformatslogo.gif" alt="Microformats logo" style="padding-right: 5px; padding-bottom: 5px; background-color: #fff" /></a>Microformats have actually been around for over 2 years but are starting to become more and more prominent.  They are defined as &#8220;a set of simple, open data formats built upon existing and widely adopted standards.&#8221;  In layman terms, they are extensions to tag markups that provide bits of information (based on the microformat used) in a comprehensive format that can be used to network with other bits of information.  Some of the better known ones are hCard, hCalendar and rel-tag.  You can read more about <a href="http://www.microformats.org" title="Microformats">microformats here</a>.  And if you happen to be in a bookstore that has a fairly good computer section, check out &#8220;<a href="http://microformats.org/blog/2007/04/19/microformats-the-book/" title="Microformats: the book">Microformats</a>&#8221; by <a href="http://microformatique.com/book/" title="John Allsopp's page">John Allsopp</a>.  I actually found a copy at <a href="http://www.bn.com" title="Barnes &amp; Noble">B&amp;N</a> the other day and read half over a cup of (puke) <a href="http://www.starbucks.com" title="Starbucks">Starbucks</a>. For an example of microformat code I use, look at the source of the page.  Notice two meta tags:</p>
<p><tt>&lt;meta name="ICBM" content="36.02674, -115.08997"&gt;<br />
&lt;meta name="DC.title" content="Mobimeet:Art Institute of Las Vegas"&gt; </tt></p>
<p>The first one defines my lat/long coordinates (more specifically, those of the Art Institute of Las Vegas), which associates me with other users near and around me &#8211; basically maps out social-to-web providers.  The second one is an unratified format that provides for better compatibility across meta tagging systems.</p>
<p><a href="http://site.gravatar.com" title="Gravatar"><img align="left" src="http://www.mobimeet.com/wp-content/uploads/2007/10/gravatarlogo.gif" alt="Gravatar logo" style="padding-right: 5px; padding-bottom: 5px" /></a>Gravatars are also not new but grew up pretty quickly, and word on the street today is that <a href="http://www.downloadsquad.com/2007/10/18/automattic-acquires-gravatar-to-help-with-scaling/" title="Automattic acquires Gravatar">Gravatar just got bought</a> (oh, sorry, <u>acquired</u>) by <a href="http://automattic.com/" title="Automattic">Automattic</a>, the company headed by Matt Mullenweg that owns <a href="http://wordpress.org" title="WordPress">WordPress</a>.  Gravatar stands for <strong><u>g</u></strong>lobally <strong><u>r</u></strong>ecognized <strong><u>avatar</u></strong> and conceptually its pretty simply but the implementation is much more defined.  You can create your own gravatar(s) and upload them on the <a href="http://site.gravatar.com/" title="Gravatar web site">main gravatar web site</a>.  So long as you continue to use a primary email address in your blog (or other social network) registrations, the back-end system will automatically insert your gravatar in place of your avatar &#8211; basically it keeps you from having to upload a new one each time you register in a new site and keeps your identity consistent.  I&#8217;ve <a href="http://www.mobimeet.com/misc/gravatars-microformats#comments" title="Comment of this article">posted a comment </a>under this article so you could see an example.</p>
<p>Goes to show you, some of the simplest ideas &#8211; as both microformats and gravatars are &#8211; can sometimes be the most powerful despite the impetus or platform.</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Fgravatars-microformats%2F', 'Gravatars+%26%23038%3B+Microformats')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusblue.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/gravatars-microformats/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>30 Usability Issues To Be Aware Of</title>
		<link>http://www.matsays.com/misc/30-usability-issues-to-be-aware-of/</link>
		<comments>http://www.matsays.com/misc/30-usability-issues-to-be-aware-of/#comments</comments>
		<pubDate>Mon, 08 Oct 2007 20:34:22 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[IMD325 UCD I]]></category>
		<category><![CDATA[IMD335 UCD II]]></category>
		<category><![CDATA[IMD345 UCD III]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Toolbox]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/misc/30-usability-issues-to-be-aware-of</guid>
		<description><![CDATA[[Another great article from Smashing Magazine]
For all my students, read this &#8211; this is a great article full of information to keep in mind as we move through the quarter.

Pay particular attention to:

2-Second Rule
3-Click Rule
Inverted Pyramid
Satisficing (Krug is big on this one)
User-Centered Design (please read this definition &#8211; excellent point about one of the major [...]]]></description>
			<content:encoded><![CDATA[<p>[<a target="_blank" href="http://www.smashingmagazine.com/2007/10/09/30-usability-issues-to-be-aware-of/" title="30 Usability Issues To Be Aware Of">Another great article from Smashing Magazine</a>]</p>
<p>For all my students, read this &#8211; this is a great article full of information to keep in mind as we move through the quarter.</p>
<p style="text-align: center"><a href="http://www.smashingmagazine.com/2007/10/09/30-usability-issues-to-be-aware-of/" title="30 Usability Issues To Be Aware Of from Smashing Magazine"><img src="http://www.mobimeet.com/wp-content/uploads/2007/10/30-usability-issues.jpg" alt="30 Usability Issues To Be Aware Of" /></a></p>
<p>Pay particular attention to:</p>
<ul>
<li>2-Second Rule</li>
<li>3-Click Rule</li>
<li>Inverted Pyramid</li>
<li>Satisficing (<em>Krug is big on this one</em>)</li>
<li>User-Centered Design (please read this definition &#8211; excellent point about one of the major differences between regular web design and Web 2.0 in that with Web 2.0 content &#8211; it is user-<u><strong><em>need</em></strong></u> driven)</li>
</ul>
<p>And be sure to follow the links and resources - good stuff.  If you haven&#8217;t noticed the recent flurry of UX related postings in both blogs and magazine articles, you must not be reading enough.  In 2007 and going into 2008, UX is quickly becoming one of the most important aspects of web design since it was so long disregarded.  It&#8217;s not enough to make a cool design &#8211; your users have to be able to use AND learn from AND remember it to make it a <u>good</u> design.</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2F30-usability-issues-to-be-aware-of%2F', '30+Usability+Issues+To+Be+Aware+Of')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusblue.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/30-usability-issues-to-be-aware-of/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>TOTD: Microsoft&#8217;s Silverlight</title>
		<link>http://www.matsays.com/misc/totd-microsofts-silverlight/</link>
		<comments>http://www.matsays.com/misc/totd-microsofts-silverlight/#comments</comments>
		<pubDate>Sat, 06 Oct 2007 13:02:40 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[Internet News]]></category>
		<category><![CDATA[Soapbox]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Toolbox]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/misc/totd-microsofts-silverlight</guid>
		<description><![CDATA[It&#8217;s no surprise how far Flash has gone these days.  Having been in this industry for as long as I have, I&#8217;ve seen Flash develop from what was originally some very basic animation into full fledged application deployments with extensive back-end systems and video.
However, Flash does have some drawbacks (which I won&#8217;t bother to enumerate [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.silverlight.net" title="Silverlight Web Site"><img align="right" src="http://www.mobimeet.com/wp-content/uploads/2007/10/silverlightlogo.png" alt="Silverlight" style="padding-left: 10px; padding-bottom: 5px" /></a>It&#8217;s no surprise how far Flash has gone these days.  Having been in this industry for as long as I have, I&#8217;ve seen Flash develop from what was originally some very basic animation into full fledged application deployments with extensive back-end systems and video.</p>
<p>However, Flash does have some drawbacks (which I won&#8217;t bother to enumerate here).  Enter Microsoft Silverlight.  For those of you who haven&#8217;t caught the buzz, Silverlight was officially released by Microsoft last month though it&#8217;s been under beta development and deployment for most of the year.  At iStreamPlanet, we&#8217;ve jumped on it quickly &#8211; largely because of its ability to integrate directly into .NET based applications, its support for Windows Media streaming, and because of the flexibility in creating full-fledged applications without requiring re-compilation.</p>
<p><span id="more-172"></span></p>
<p>In many ways, Silverlight is very similar to Flash.  One of the primary reasons we&#8217;ve elected to use it over Flash (as I mentioned) is the ability to create applications quickly without recompiling it and without (pricey) authoring tools &#8211; Silverlight &#8220;applications&#8221; can be written in Notepad or any other text-editor.  In the past where we&#8217;ve used embedded Windows Media Player, we are now deploying Silverlight media players because we can construct modular, branded interfaces, but still using the same CDN repositories for the media.  A recent example is the deployment of a player for the Phoenix Suns fan community <a href="http://suns.planetorange.net" title="Phoenix Suns community web site Planet Orange">Planet Orange</a> (site was authored by one of your AILV classmates).  While Silverlight does require a download and installation, it does work cross-platform (Windows and Mac) and across major browsers (MSIE, Forefox, Safari).</p>
<p>It&#8217;s simplicity comes from the fact that the interface is written in plain text using an XML-based file system called XAML.  A XAML document looks pretty much like any XML with a definitive set of tags and attributes.  The XAML can also control the animations in the same manner that tweening or ActionScript would in Flash.  Events and methods can be scripted in Javascript, which makes debugging and modification very simple and very flexible.</p>
<p>Example of XAML Canvas:</p>
<table style="width: 90%; background-color: #eeeeff">
<tr>
<td style="font-size: 0.9em; color: #000000"><tt><font size="1" color="#0000ff">&lt;<font size="1" color="#800000">Canvas</font><font size="1" color="#0000ff"> </font><font size="1" color="#ff0000">xmlns</font><font size="1" color="#0000ff">=</font><font size="1">"</font><font size="1" color="#0000ff">http://schemas.microsoft.com/client/2007</font><font size="1">"</font><font size="1" color="#0000ff"> </font><font size="1" color="#ff0000">xmlns:x</font><font size="1" color="#0000ff">=</font><font size="1">"</font><font size="1" color="#0000ff">http://schemas.microsoft.com/winfx/2006/xaml</font><font size="1">"</font><font size="1" color="#0000ff"> </font><font size="1" color="#ff0000">Width</font><font size="1" color="#0000ff">=</font><font size="1">"</font><font size="1" color="#0000ff">420</font><font size="1">"</font><font size="1" color="#0000ff"> </font><font size="1" color="#ff0000">Height</font><font size="1" color="#0000ff">=</font><font size="1">"</font><font size="1" color="#0000ff">338</font><font size="1">"</font><font size="1" color="#0000ff"> </font><font size="1" color="#ff0000">x:Name</font><font size="1" color="#0000ff">=</font><font size="1">"</font><font size="1" color="#0000ff">mediaObject</font><font size="1">"</font><font size="1" color="#0000ff"> </font><font size="1" color="#ff0000">Loaded</font><font size="1" color="#0000ff">=</font><font size="1">"</font><font size="1" color="#0000ff">onLoaded</font><font size="1">"</font><font size="1" color="#0000ff">&gt;<br />
<font size="1" color="#0000ff">&lt;</font><font size="1" color="#800000">MediaElement</font><font size="1" color="#0000ff"> </font><font size="1" color="#ff0000">Source</font><font size="1" color="#0000ff">=</font><font size="1" color="#000000">""</font><font size="1" color="#0000ff"> </font><font size="1" color="#ff0000">AutoPlay</font><font size="1" color="#0000ff">=</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff">true</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff"> </font><font size="1" color="#ff0000">x:Name</font><font size="1" color="#0000ff">=</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff">mediaPlayer</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff"> </font><font size="1" color="#ff0000">Canvas.Left</font><font size="1" color="#0000ff">=</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff">0</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff"> </font><font size="1" color="#ff0000">Canvas.Top</font><font size="1" color="#0000ff">=</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff">0</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff"> </font><font size="1" color="#ff0000">Width</font><font size="1" color="#0000ff">=</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff">420</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff"> </font><font size="1" color="#ff0000">Height</font><font size="1" color="#0000ff">=</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff">315</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff"> </font><font size="1" color="#ff0000">Stretch</font><font size="1" color="#0000ff">=</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff">Fill</font><font size="1"><font color="#000000">" </font></font><font size="1" color="#ff0000">CurrentStateChanged</font><font size="1" color="#0000ff">=</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff">checkTime</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff"> </font><font size="1" color="#ff0000">MediaOpened</font><font size="1" color="#0000ff">=</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff">startTimer</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff"> </font><font size="1" color="#ff0000">MediaEnded</font><font size="1" color="#0000ff">=</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff">showPrompt</font><font size="1" color="#000000">"</font><font size="1" color="#0000ff">/&gt;<br />
&lt;/Canvas&gt;</font></font></font></tt></td>
</tr>
</table>
<p>Example of HTML Document (fragment):</p>
<table style="width: 90%; background-color: #eeeeff">
<tr>
<td style="font-size: 0.9em; color: #000000"><tt><font size="1" color="#0000ff">&lt;!<font size="1" color="#800000">DOCTYPE</font><font size="1"> </font><font size="1" color="#ff0000">html</font><font size="1"> </font><font size="1" color="#ff0000">PUBLIC</font><font size="1"> </font><font size="1" color="#0000ff">"-//W3C//DTD XHTML 1.0 Transitional//EN"</font><font size="1"> </font><font size="1" color="#0000ff">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;<br />
&lt;</font><font size="1" color="#800000">html</font><font size="1"> </font><font size="1" color="#ff0000">xmlns</font><font size="1" color="#0000ff">="http://www.w3.org/1999/xhtml"</font><font size="1"> </font><font size="1" color="#0000ff">&gt;<br />
  &lt;</font><font size="1" color="#800000">head</font><font size="1" color="#0000ff">&gt;<br />
</font><font size="1" color="#0000ff">   &lt;</font><font size="1" color="#800000">title</font><font size="1" color="#0000ff">&gt;</font><font size="1">Silverlight Example</font><font size="1" color="#0000ff">&lt;/</font><font size="1" color="#800000">title</font><font size="1" color="#0000ff">&gt;<br />
</font><font size="1" color="#0000ff">    &lt;</font><font size="1" color="#800000">script</font><font size="1"> </font><font size="1" color="#ff0000">type</font><font size="1" color="#0000ff">="text/javascript"</font><font size="1"> </font><font size="1" color="#ff0000">src</font><font size="1" color="#0000ff">="Silverlight.js"&gt;&lt;/</font><font size="1" color="#800000">script</font><font size="1" color="#0000ff">&gt;<br />
</font><font size="1" color="#0000ff">    &lt;</font><font size="1" color="#800000">script</font><font size="1"> </font><font size="1" color="#ff0000">type</font><font size="1" color="#0000ff">="text/javascript"</font><font size="1"> </font><font size="1" color="#ff0000">src</font><font size="1" color="#0000ff">="MediaPlayer.js"&gt;&lt;/</font><font size="1" color="#800000">script</font><font size="1" color="#0000ff">&gt;<br />
</font><font size="1" color="#0000ff">    &lt;</font><font size="1" color="#800000">script</font><font size="1"> </font><font size="1" color="#ff0000">type</font><font size="1" color="#0000ff">="text/javascript"</font><font size="1"> </font><font size="1" color="#ff0000">src</font><font size="1" color="#0000ff">="SilverlightEventHandlers.js"&gt;&lt;/</font><font size="1" color="#800000">script</font><font size="1" color="#0000ff">&gt;<br />
</font><font size="1" color="#0000ff">    &lt;</font><font size="1" color="#800000">script</font><font size="1"> </font><font size="1" color="#ff0000">type</font><font size="1" color="#0000ff">="text/javascript"</font><font size="1"> </font><font size="1" color="#ff0000">src</font><font size="1" color="#0000ff">="MicrosoftAjax.js"&gt;&lt;/</font><font size="1" color="#800000">script</font><font size="1" color="#0000ff">&gt;<br />
</font><font size="1" color="#0000ff">    &lt;</font><font size="1" color="#800000">style</font><font size="1" color="#0000ff">&gt;<br />
</font><font size="1" color="#800000">    body</font><font size="1"> {<br />
</font><font size="1" color="#ff0000">    margin</font><font size="1">: </font><font size="1" color="#0000ff">0px</font><font size="1">;<br />
</font><font size="1" color="#ff0000">    background-color</font><font size="1">: </font><font size="1" color="#0000ff">#000000</font><font size="1">;<br />
</font><font size="1" color="#ff0000">    background-image</font><font size="1">:</font><font size="1" color="#0000ff">url(pagebg.jpg)</font><font size="1">;<br />
</font><font size="1" color="#ff0000">    font</font><font size="1">: </font><font size="1" color="#0000ff">2px</font><font size="1"> </font><font size="1" color="#0000ff">verdana</font><font size="1">;<br />
    }<br />
</font><font size="1" color="#800000">    h2</font><font size="1"> { </font><font size="1" color="#ff0000">font</font><font size="1">:</font><font size="1" color="#0000ff">2px</font><font size="1"> </font><font size="1" color="#0000ff">verdana</font><font size="1">; }<br />
</font><font size="1" color="#0000ff">    &lt;/</font><font size="1" color="#800000">style</font><font size="1" color="#0000ff">&gt;<br />
  &lt;/</font><font size="1" color="#800000">head</font><font size="1" color="#0000ff">&gt;<br />
&lt;</font><font size="1" color="#800000">body</font><font size="1" color="#0000ff">&gt;<br />
</font><font size="1" color="#0000ff">  &lt;</font><font size="1" color="#800000">div</font><font size="1"> </font><font size="1" color="#ff0000">id</font><font size="1" color="#0000ff">="outer"</font><font size="1"> </font><font size="1" color="#ff0000">align</font><font size="1" color="#0000ff">="center"&gt;<br />
</font><font size="1" color="#0000ff">    &lt;</font><font size="1" color="#800000">div</font><font size="1"> </font><font size="1" color="#ff0000">id</font><font size="1" color="#0000ff">="silverlightControlHost"&gt;&lt;/</font><font size="1" color="#800000">div</font><font size="1" color="#0000ff">&gt;<br />
</font><font size="1" color="#0000ff">    &lt;</font><font size="1" color="#800000">script</font><font size="1"> </font><font size="1" color="#ff0000">type</font><font size="1" color="#0000ff">="text/javascript"&gt;<br />
</font><font size="1">    createSilverlight();<br />
</font><font size="1" color="#0000ff">    &lt;/</font><font size="1" color="#800000">script</font><font size="1" color="#0000ff">&gt;<br />
</font><font size="1" color="#0000ff">  &lt;/</font><font size="1" color="#800000">div</font><font size="1" color="#0000ff">&gt;<br />
&lt;/</font><font size="1" color="#800000">body</font><font size="1" color="#0000ff">&gt;<br />
&lt;/</font><font size="1" color="#800000">html</font><font size="1" color="#0000ff">&gt;</font></font></tt></td>
</tr>
</table>
<p>Example of Javascript handlers:</p>
<table style="width: 90%; background-color: #eeeeff">
<tr>
<td style="font-size: 0.9em; color: #000000"><tt><font size="1" color="#0000ff">var<font size="1"> isMouseDown = </font><font size="1" color="#0000ff">false</font><font size="1">;<br />
<font size="1" color="#0000ff">function</font><font size="1"> onLoaded(sender,args) {<br />
  sender.findName("mediaPlayer").Source = 'path_to_a_media_file';<br />
  sender.findName("mediaPlayer").play();<br />
}<br />
<font color="#0000ff">function</font><font size="1"> checkTime(sender,args) {<br />
  //scripting to display time played<br />
}<br />
<font color="#0000ff">function</font><font size="1"> startTime(sender,args) {<br />
  //begin checkTime event handler function<br />
}<br />
<font color="#0000ff">function</font><font size="1"> showPrompt(sender,args) {<br />
  alert('Your video is done playing');<br />
}</font></font></font></font></font></font></tt></td>
</tr>
</table>
<p>Several early adopters have written applications.  I urge you to visit the official <a href="http://www.silverlight.net" title="Silverlight Web Site">Silverlight web site</a> (<a href="http://www.silverlight.net" title="Silverlight Web Site">www.silverlight.net</a>) and check out some of them.</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftotd-microsofts-silverlight%2F', 'TOTD%3A+Microsoft%26%238217%3Bs+Silverlight')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusblue.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/totd-microsofts-silverlight/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Click Here for crappy Google rankings</title>
		<link>http://www.matsays.com/misc/click-here-for-crappy-google-rankings/</link>
		<comments>http://www.matsays.com/misc/click-here-for-crappy-google-rankings/#comments</comments>
		<pubDate>Fri, 05 Oct 2007 06:42:22 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[IMD322 Dynamic Design]]></category>
		<category><![CDATA[IMD345 UCD III]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Toolbox]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/misc/click-here-for-crappy-google-rankings</guid>
		<description><![CDATA[This is a good article on the importance of careful coding and attribute markup.  Something so simple as changing a link from &#60;a href="some_url" mce_href="some_url"&#62;click here&#60;/a&#62; to &#60;a href="some_url" mce_href="some_url" title="Article on the importance of using title attributes in links"&#62;Title attributes in link tags&#60;/a&#62; can dramatically change the effect on your search engine placement as well as [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is a good article on the importance of careful coding and attribute markup.  Something so simple as changing a link from</em> <tt>&lt;a href="some_url" mce_href="some_url"&gt;click here&lt;/a&gt;</tt> <em>to</em> <tt>&lt;a href="some_url" mce_href="some_url" <strong color="#AA0000;">title="Article on the importance of using title attributes in links"</strong>&gt;Title attributes in link tags&lt;/a&gt;</tt> <em>can dramatically change the effect on your search engine placement as well as your third-party advertiser rotation and prioritization.</em> </p>
<p>[by Stephan Spencer for CNet]</p>
<p>Links are the fundamental vehicle that gets us from here to there on the web. Without them, we&#8217;d have no where to go, or at least a much harder time getting there. Links are, of course, deeply important to search engines as well. In fact, links and PageRank are at the very core of Google.</p>
<p>Spend a little time on just about any website and it won&#8217;t be long before you come across a &#8220;click here,&#8221; &#8220;click this,&#8221; or &#8220;more&#8221; link. You probably wouldn&#8217;t trade a $20 bill for $5, yet that is exactly what is happening when you use completely generic, non-descriptive anchor text with your links.</p>
<p>Search engines place even greater weight on links as another signal of what the destination page and site is about. While this is one of the basics of SEO, there seems to be no shortage of suboptimal links in the world. Links, whether internal or external, are too valuable to waste.</p>
<p>[<a target="_blank" href="http://blogs.cnet.com/8301-13530_1-9783467-28.html?tag=head" title="Click Here for crappy Google rankings">read more</a>]</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Fclick-here-for-crappy-google-rankings%2F', 'Click+Here+for+crappy+Google+rankings')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusblue.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/click-here-for-crappy-google-rankings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usability Nightmares</title>
		<link>http://www.matsays.com/misc/usability-nightmares/</link>
		<comments>http://www.matsays.com/misc/usability-nightmares/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 22:44:46 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[IMD325 UCD I]]></category>
		<category><![CDATA[IMD335 UCD II]]></category>
		<category><![CDATA[IMD345 UCD III]]></category>
		<category><![CDATA[Soapbox]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Toolbox]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/misc/usability-nightmares</guid>
		<description><![CDATA[[Can you tell that today was my reading day?]
From an article in smashingmagazine.com, this post was so appropriate and pertinent that I am posting the entire article verbatim here. Here&#8217;s the original article just in case&#8230;10 Usability Nightmares You Should Be Aware Of.
Sometimes you just want to get the information you’re after, save it and [...]]]></description>
			<content:encoded><![CDATA[<p><em><a href="http://www.smashingmagazine.com" title="Smashing Magazine"><img src="http://www.mobimeet.com/wp-content/uploads/2007/10/smashingmagazine.png" alt="Smashing Magazine [logo]" align="right" style="padding-left:5px;padding-bottom:5px;"/></a>[Can you tell that today was my reading day?]</em></p>
<p><strong>From an article in smashingmagazine.com, this post was so appropriate and pertinent that I am posting the entire article verbatim here. Here&#8217;s the original article just in case&#8230;</strong><a rel="bookmark" href="http://www.smashingmagazine.com/2007/09/27/10-usability-nightmares-you-should-be-aware-of/" title="10 Usability Nightmares You Should Be Aware Of"><strong>10 Usability Nightmares You Should Be Aware Of</strong></a><strong>.</strong></p>
<hr SIZE="1" />Sometimes you just want to get the information you’re after, save it and move along. And you can’t. Usability nightmares — which are rather the daily routine than an exception — appear every now and again; usually almost every time you type your search keywords in Google. In his article “Why award-winning websites are so awful” Gerry McGovern points out that “the shiny surface wins awards, real substance wins customers” and that is absolutely true. Nevermind what design you have, and nevermind which functionality you have to offer — if your visitors don’t understand how they can get from point A to point B they won’t use your site.In almost every professional design (except from special design showcases such as, e.g., portfolios) you need to offer your visitors</p>
<ul>
<li>a clear, self-explanatory navigation,</li>
<li>precise text-presentation,</li>
<li>search functionality and</li>
<li>visible and thought-out site structure.</li>
</ul>
<p>And that means that you simply have to folow the basic rules of usability and common sense. You want to communicate with your visitors, don’t drive them away, right?</p>
<p><span id="more-171"></span></p>
<p>In this article we take a look at some of the usability nightmares you should avoid designing functional and usable web-sites. At the end of the article you’ll also find 8 usability check-points you should probably be aware of.</p>
<p><strong><u>1. Hidden log-in link.</u></strong><br />
<a target="_blank" href="http://www.backpackit.com/">Backpack</a>, 37signal’s one of the most usable organizational and project management tools out there, explains exactly what the tool can be used for, how one can use it and which features it has to offer. However, once you’ve signed up, you might <strong>need few minutes to find out what you should do to actually start using the tool</strong>.</p>
<p align="center" style="width: 98%"><img src="http://www.mobimeet.com/wp-content/uploads/2007/09/1backpack.png" /></p>
<p>The “Log in”-link (hint: in the yellow box) should have a greater font-size — also icons would do the job.</p>
<p><strong><u>2. Pop-ups for content presentation.</u></strong><br />
Almost every modern web browser uses a popup-blocker to prevent pop-ups, ad blocks and further site content recognized as advertisement. Firefox, Safari, Opera and Internet Explorer make use of it — therefore the idea to <strong>use pop-ups to present the main content</strong> isn’t probably the most reasonable idea web-designer might come up with.</p>
<p align="center" style="width: 98%"><img src="http://www.mobimeet.com/wp-content/uploads/2007/09/2adidas.png" /></p>
<p>However, Adidas developers team seem to consider <strong>pop-ups as a creative approach for their target audience</strong>. It’s not clear what <a target="_blank" href="http://ImpossibleStory.com">ImpossibleStory.com</a> is actually about — most users will never find out; even we were too lazy to deactivate our popup-blocker.</p>
<p><strong><u>3. Dragging instead of vertical navigation.</u></strong><br />
Actually, this technique — not a real nightmare, but very unusual — might become a new trend in the future. Dragging, as used from .pdf-documents, can also be adapted to web-sites. <a target="_blank" href="http://fichey.com/">Fichey</a> offers a Flash-based solution. Interesting approach, however <strong>you can’t bookmark specific parts of the site</strong> &#8211; a typical problem for Flash-based designs.</p>
<p align="center" style="width: 98%"><img src="http://www.mobimeet.com/wp-content/uploads/2007/09/3fichey.png" /></p>
<p>An introductory info box on the start page of the site informs its visitors about the new way of navigation. The tool shows sites which are currently popular in social media. By the way, the displayed links don’t work &#8211; apparently, the tool shows the screenshots which are saved and embedded as images.</p>
<p><strong><u>4. Invisible links.</u></strong><br />
Visitors have to know where they are, where they’ve been and where they can go next. If designers don’t present this information in an appropriate way, visitors can have serious problems with site navigation. <a target="_blank" href="http://www.realplayer.com/">Real Player</a> <a target="_blank" href="http://www.sitepoint.com/article/usability-blunders-big-players">had been using a bunch of invisible links</a> for a while. Take a look at the picture and the labels below (originally created by Trenton Moss) — can you spot the links?</p>
<p align="center" style="width: 98%"><img src="http://www.mobimeet.com/wp-content/uploads/2007/09/4realplayer.png" /></p>
<p>1, 3, 4, 6, 7 and 11 are links, and 2, 5, 8, 9 and 10 aren’t.</p>
<p><strong><u>5. Visual noise.</u></strong><br />
Often less is more. Visual noise is probably one of the most typical problems large web-sites’ designers have to cope with. And it’s extremely easy to get it wrong. As <a target="_blank" href="http://www.overstock.com/Jewelry-Watches/Mens-Watches/136/dept.html">Overstock</a> does.</p>
<p align="center" style="width: 98%"><img src="http://www.mobimeet.com/wp-content/uploads/2007/09/5overstock.png" /></p>
<p>Bonus: It’s also not quite clear what is a link and what’s not. Overstock also uses a number of different link presentations and hover effects. Link or not a link? You might have a lot of fun finding out.</p>
<p><strong><u>6. Dead end.</u></strong><br />
You can use different approaches to introduce your new web-service to your visitors. <a target="_blank" href="http://www.scriblink.com/">Scriblink</a> <strong>welcomes its visitors with a pop-up and a Java-applet</strong>. Visitors have to provide some input to start browsing through the site.</p>
<p align="center" style="width: 98%"><img src="http://www.mobimeet.com/wp-content/uploads/2007/09/6scriblink.png" /></p>
<p>Nothing helps:</p>
<ul>
<li>clicking on “cancel” doesn’t help,</li>
<li>OK doesn’t help,</li>
<li>full-screen mode doesn’t help,</li>
<li>clicking somewhere else doesn’t help,</li>
<li>closing the browser window doesn’t work,</li>
<li>clicking on the question mark for help doesn’t work.</li>
</ul>
<p>Unfair, really. We just wanted to see what the tool does…</p>
<p><strong><u>7. Content blocks layering upon each other.</u></strong><br />
A typical problem which always appears if large Flash-movies are used on large web-sites. The <strong>site navigation is hidden</strong>; whatever users might be willing to browse to — they have no chance.</p>
<p align="center" style="width: 98%"><img src="http://www.mobimeet.com/wp-content/uploads/2007/09/7photoimpact.png" /></p>
<p>The same problem on <a target="_blank" href="http://Yahoo.com">Yahoo.com</a>:</p>
<p align="center" style="width: 98%"><img src="http://www.mobimeet.com/wp-content/uploads/2007/09/7yahoo.png" /></p>
<p><strong><u>8. Dynamic navigation.</u></strong><br />
What looks like a usable site navigation, shows itself soon enough from its worst side. Nevermind where you point your mouse pointer to — supporting images slide down and up and <strong>change the focus of the link you’ve clicked on</strong>. On the image below the link “history” was clicked &#8211; it moves away; and no, the sliding images aren’t linked to the page you’d like to browse to.</p>
<p align="center" style="width: 98%"><img src="http://www.mobimeet.com/wp-content/uploads/2007/09/8brownuni.png" /></p>
<p>The effect appears in both left- and right-side navigation menus. Visitors might need some time to find out what is happening. However, once the idea is understood, the navigation isn’t that hard to deal with.</p>
<p align="center" style="width: 98%"><img src="http://www.mobimeet.com/wp-content/uploads/2007/09/8kabe243.png" /></p>
<p>The same idea on <a target="_blank" href="http://www.kabe243.com/stage.html">Kabe243</a>. Bonus: visual noise at its best.</p>
<p><strong><u>9. Drop-Down Menus.</u></strong><br />
Drop-Down menus are useful for web-developers and almost always get on users’ nerves. If you — as a designer — hide navigation items in a drop-down menu you can save yourself a large amount of vertical space; however <strong>users have to focus the mouse precisely to get to the section they’d like to visit</strong>. It’s not usable.</p>
<p>However, it can be even worse. If the <strong>distance between different levels of navigation is too large</strong> (for instance because some navigation items have more text) users have to move the mouse horizontally. If the mouse focus changes its vertical position, users have to start from the beginning.</p>
<p><a target="_blank" href="http://www.2advanced.com/">2Advanced</a> and <a target="_blank" href="http://Brita.net">Brita.net </a>are excellent examples for these usability nightmares.</p>
<p align="center" style="width: 98%"><img src="http://www.mobimeet.com/wp-content/uploads/2007/09/92advanced.png" /></p>
<p align="center" style="width: 98%"><img src="http://www.mobimeet.com/wp-content/uploads/2007/09/9brita.png" /></p>
<p>Notice: it took us a dozen of attempts to actually make these screenshots.</p>
<p><strong><u>10. Blinking images.<br />
</u></strong>Sometimes you just want to read the content of a web-site you are visiting. And you can’t. To fight against the banner blindness advertisers make use of animated ads — usually animated .gif-images or Flash-movies. In both cases it might become extremely hard to focus on reading if such images are blinking all around the content.</p>
<p align="center" style="width: 98%"><img src="http://www.mobimeet.com/wp-content/uploads/2007/09/10digital-web.png" /></p>
<p><a target="_blank" href="http://www.digital-web.com/articles/interview_sidebar_creative/">Digital Web Magazine</a>, an excellent online magazine we read on a regular basis, has a disturbing animated ad on the left side of every article.</p>
<p><strong><u>Future Nightmare? Pointing the mouse instead of clicking.</u></strong><br />
<a target="_blank" href="http://www.dontclick.it/">Dontclick.it</a> explores a clickfree environment. It wants to explore how and what changes for the user and the interface once you can’t rely on the habit of clicking.</p>
<p align="center" style="width: 98%"><img src="http://www.mobimeet.com/wp-content/uploads/2007/09/11dontclickit.png" /></p>
<p>Within this interface you won’t find any buttons. Instead you navigate the contents in a different way — by pointing the mouse to the areas of the site you are interested in.</p>
<p><strong><u>8 Usability Check-Points You Should Be Aware Of</u></strong></p>
<ol>
<li><strong>You don’t use pop-ups.</strong><br />
Pop-ups interrupt the browsing session of the visitors and require an instant feedback. Respect your visitors.</li>
<li><strong>You don’t change users’ window size.</strong><br />
The same argument as the one against pop-ups holds. Some browsers, e.g. Internet Explorer, saves the browser dimensions and uses them for further browser sessions.</li>
<li><strong>You don’t use too small font sizes.<br />
</strong>Long passages are harder to read, and to read brief sentences readers need more time. It holds also for links, buttons, forms, search boxes and other elements. Good news — in Web 2.0 the opposite is the case.</li>
<li><strong>You don’t have unclear link text.</strong><br />
Links have to be precise and lead to the destination they describe. Ambiguous link descriptions should be avoided.</li>
<li><strong>You don’t have dead links.<br />
</strong>There are too many of them anyway; why would you want to point your visitors to a dead end?</li>
<li><strong>You have at most one animation per page.</strong><br />
If blinking images are wide-spread through the site, it’s extremely hard to focus on one single site element. Give your visitors an opportunity to perceive your content. Using animated ads, don’t place them right along your articles.</li>
<li><strong>You make it easy to contact you.</strong><br />
Maybe because you just don’t want to be contacted, but If visitors do want to get in touch with you, but can’t find any contact information, you lose their interest and trust. Disastrous for online-shopping, a missed opportunity for the rest.</li>
<li><strong>Your links open in the same window.<br />
</strong>Visitors want to have control over everything what happens in their browser. If they’d like to open a link in a new window they will. If they don’t want to, they won’t. If your links open in a new window you make the decision which is not your decision to make.</li>
</ol>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Fusability-nightmares%2F', 'Usability+Nightmares')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusblue.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/usability-nightmares/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running multiple MSIE versions</title>
		<link>http://www.matsays.com/misc/running-multiple-msie-versions/</link>
		<comments>http://www.matsays.com/misc/running-multiple-msie-versions/#comments</comments>
		<pubDate>Sun, 23 Sep 2007 00:30:29 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Toolbox]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/misc/running-multiple-msie-versions</guid>
		<description><![CDATA[For a long time this has always been a problem for web developers with Microsoft&#8217;s lack of consistency in presentational methods (CSS, etc) so kudos to this guy who created an installer that will run several older versions at once.  If you are like me and always having trouble with this, I urge you to check it [...]]]></description>
			<content:encoded><![CDATA[<p>For a long time this has always been a problem for web developers with Microsoft&#8217;s lack of consistency in presentational methods (CSS, etc) so kudos to this guy who created an installer that will run several older versions at once.  If you are like me and always having trouble with this, I urge you to check it out (ok, it&#8217;s not perfect but in reality it&#8217;s a hack so give it a little leeway).  PS &#8211; read the instructions carefully and make sure you take a copy of the page just in case you run into problems.</p>
<p><a target="_blank" href="http://tredosoft.com/Multiple_IE" title="Install multiple versions of IE on your PC">Install multiple versions of IE on your PC</a></p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Frunning-multiple-msie-versions%2F', 'Running+multiple+MSIE+versions')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusblue.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/running-multiple-msie-versions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>For those of you in IMD401 e-Learning</title>
		<link>http://www.matsays.com/misc/for-thos-of-you-in-imd401-e-learning/</link>
		<comments>http://www.matsays.com/misc/for-thos-of-you-in-imd401-e-learning/#comments</comments>
		<pubDate>Sat, 08 Sep 2007 17:39:20 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[Soapbox]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Toolbox]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/misc/for-thos-of-you-in-imd401-e-learning</guid>
		<description><![CDATA[Index of Learning Styles
The Index of Learning Styles is an on-line instrument used to assess preferences on four dimensions (active/reflective, sensing/intuitive, visual/verbal, and sequential/global) of a learning style model formulated by Richard M. Felder and Linda K. Silverman. The instrument was developed by Richard M. Felder and Barbara A. Soloman of North Carolina State University.
http://www.engr.ncsu.edu/learningstyles/ilsweb.html
http://www4.ncsu.edu/unity/lockers/users/f/felder/public/ILSdir/styles.htm
ADDIE [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Index of Learning Styles<br />
</strong>The Index of Learning Styles is an on-line instrument used to assess preferences on four dimensions (active/reflective, sensing/intuitive, visual/verbal, and sequential/global) of a learning style model formulated by Richard M. Felder and Linda K. Silverman. The instrument was developed by Richard M. Felder and Barbara A. Soloman of North Carolina State University.</p>
<p><a href="http://www.engr.ncsu.edu/learningstyles/ilsweb.html">http://www.engr.ncsu.edu/learningstyles/ilsweb.html</a><br />
<a href="http://www4.ncsu.edu/unity/lockers/users/f/felder/public/ILSdir/styles.htm">http://www4.ncsu.edu/unity/lockers/users/f/felder/public/ILSdir/styles.htm</a></p>
<p><strong>ADDIE Approach<br />
</strong>The ADDIE model is a generic and simplified instructional systems design (ISD) model. ADDIE is short for Analyze, Design, Develop, Implement, and Evaluate.</p>
<p><span style="font-size: 9pt; font-family: Georgia"><a href="http://ed.isu.edu/addie/">http://ed.isu.edu/addie/</a></span></p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ffor-thos-of-you-in-imd401-e-learning%2F', 'For+those+of+you+in+IMD401+e-Learning')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusblue.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/for-thos-of-you-in-imd401-e-learning/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>10 Steps To Top 10 Rankings In Google</title>
		<link>http://www.matsays.com/misc/10-steps-to-top-10-rankings-in-google/</link>
		<comments>http://www.matsays.com/misc/10-steps-to-top-10-rankings-in-google/#comments</comments>
		<pubDate>Fri, 13 Jul 2007 17:00:55 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[IMD223 Advanced Scripting]]></category>
		<category><![CDATA[IMD325 UCD I]]></category>
		<category><![CDATA[IMD335 UCD II]]></category>
		<category><![CDATA[IMD412 Sr. Project Defense]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Toolbox]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/misc/10-steps-to-top-10-rankings-in-google</guid>
		<description><![CDATA[By Titus Hoskins (c) 2007
Original Article at SiteProNews
Most webmasters go totally &#8220;gaga&#8221; for top 10 rankings in Google. And for good reason, Google is the most dominant search engine on the net and will deliver the largest amount of traffíc.
More importantly, those same webmasters will also inform you, getting top 10 rankings in Google often [...]]]></description>
			<content:encoded><![CDATA[<p>By Titus Hoskins (c) 2007<br />
<a href="http://www.sitepronews.com/archives/2007/jul/13prt.html" title="10 Steps To Top 10 Rankings In Google">Original Article at SiteProNews</a></p>
<p>Most webmasters go totally &#8220;gaga&#8221; for top 10 rankings in Google. And for good reason, Google is the most dominant search engine on the net and will deliver the largest amount of traffíc.</p>
<p>More importantly, those same webmasters will also inform you, getting top 10 rankings in Google often means your site will prove profitable. Mainly because obtaining targeted traffíc is usually your first obstacle in creating a viable online business. In other words, if you get top ten listings in Google for good searchable keywords, it is almost impossible not to earn money.<span id="more-129"></span></p>
<p><strong><u>How To Proceed?</u></strong></p>
<p>First, you must know the rudimentary basics of how keywords work. Keywords and keyword phrases are the exact words someone types into a search engine to find what they&#8217;re looking for online. If you have a site on &#8220;dog training&#8221; then your goal is to get a top 10 ranking for the keywords &#8220;dog training&#8221;.</p>
<p>Now if no one searches for &#8220;dog training&#8221; it would be a useless keyword, you would get no traffíc no matter how perfectly your site is optimized for that keyword.</p>
<p><strong><u>How Do You Know If A Keyword Is Good?</u></strong></p>
<p>To find out, you have to do some keyword research on your particular keywords. Many professional online marketers use keyword research software like Brad Callen&#8217;s Keyword Elite. However, you can also use the keyword suggestion tools supplied by Google Adwords or Overture. Try here: <a href="http://www.digitalpoint.com/tools/suggestion/">http://www.digitalpoint.com/tools/suggestion/</a></p>
<p>Now if you chëck &#8220;dog training&#8221;, you will find it receives around 4,469 searches each day. That&#8217;s a lot of traffíc but you must realize that it may be too good, or rather too competitive for your purposes, especially if you have a new site.</p>
<p><strong><u>Biggest Mistake When Choosing Keywords</u></strong></p>
<p>The most common mistake most novice webmasters make is targeting keywords which are too competitive. You simply will not be able to compete or place for extremely competitive keywords. Well established sites and businesses with very deep pockets have the resources to completely dominate those keywords.</p>
<p>While it is not entirely futile nor a waste of time to concentrate your efforts on highly competitive keywords, you will have better success if you target low to medium competitive keywords.</p>
<p><strong><u>Long Tail Keyword Marketing</u></strong></p>
<p>Besides online marketers have discovered that longer keyword phrases are usually the most lucrative. These phrases deliver traffíc which is better targeted and more likely to convert into a sale. &#8220;Dog hunting training&#8221; which gets around 100 searches a day will be more targeted than the general term &#8220;dog training&#8221; and if you have a site devoted to training hunting dogs then this keyword phrase may convert better for you.</p>
<p>Always keep this &#8220;Long Tail&#8221; keyword strategy in the back of your mind as you implement the following steps to achieve your own Top 10 Rankings in Google.</p>
<p><strong>1. Make A Master Keyword Líst<br />
</strong>Your first step is to make a master líst of the keywords you wish to target. Obviously these should be closely related to the theme of your site. Chëck the keyword competition by seeing how many sites are listed in Google for that keyword. Webmasters should also chëck the Google PageRank of the sites that hold the top 10 positions. If all those sites are PR6 and above it may be hard to get ranked high for your keywords.</p>
<p><strong>2. Choose Related Keywords<br />
</strong>Once you have your master líst of keywords, find long tail related keywords to target. Again, chëck out the competition and daily searches made for each chosen keyword.</p>
<p><strong>3. Use Quality Content For Your Keywords<br />
</strong>Creating quality content should always be your main goal. Write for actual visitors who will see and read your content. First and foremost you must have good useful content that your visitors will use themselves and recommend to their friends or colleagues. Tie this quality content in with your chosen keywords. Use one keyword phrase per page.</p>
<p><strong>4. Keyword In Domain Name, Title and URLs<br />
</strong>Having your keyword in your domain name will score big points from search engines. Plus, each page of content should contain your keywords in the title &amp; meta tags for that page. Most experts also suggest you have your keyword in the URL and use hyphens to separate your keywords. Although the author has gotten good results by using an underscore and htm in URLs.<br />
Example: <a href="http://www.yoursite.com/your_keyword.htm">www.yoursite.com/your_keyword.htm</a></p>
<p><strong>5. Do On Page Optimization<br />
</strong>Keyword ratio is a much discussed topic by SEO experts and many suggest you should have your keyword in the H1 or headline title of your page. Sprinkle your keyword and variations of it throughout your page. Don&#8217;t over do it but make sure the robot/spiders will clearly discover what your page is about. Many webmasters make sure they include their main keyword in the first and last 25 words on their pages.</p>
<p><strong>6. Use Traffíc Modules<br />
</strong>One technique that works extremely well in Google is clustering a closely related topic or subject into a distinct separate section on your site. For example, if you have a marketing site, you could create a whole section on article marketing where you would have 50 to 100 keyworded pages all relating to your subject. Writing articles, formatting articles, submitting articles, article software&#8230; place a keyword linked menu on each page to connect all your pages together.</p>
<p>Keep in mind, your main objective is to supply quality information to your visitors. One reason Google may favor this type of structure is because they want quality content returned in their SERPs.</p>
<p><strong>7. Try Article Marketing<br />
</strong><span style="float:right;width:200px;border:solid 1px #999;background-color:#EEF;margin-left:10px;margin-bottom:10px;padding:8px;"><em><strong>Side Note</strong></em>: iStreamPlanet uses this tactic widely &#8211; the last article I posted (my shameless promotion) was a reprint of a press release that was released July 10th (2007).  As of July 13th, the search term &#8220;istreamplanet silverlight&#8221; in Google yields 173 returns which pushed several pages past the PR6 mark into the elusive PR7 realm.</span>Article marketing is writing short informative articles on keyword topics related to your sites. You then submit these helpful keyworded articles to ezine directories on the web. When your articles are picked up by related sites, you receive quality One-Way links. The higher the quality of your article, the more links you will receive.</p>
<p>Another ranking tactic to use: If you&#8217;re just starting out your site will probably have a low PR rank and you will find it hard to rank for even modest keywords. That&#8217;s why it&#8217;s useful to take advantage of the higher PageRank of the major ezine directories. Your keyworded articles on these high PR sites will get picked up by Google and displayed in the top 10 rankings. Now the displayed URL will be the article directory site but the links in the resource box will be pointing back to your site. Over time this article marketing technique will raise your own site&#8217;s rankings for those keywords. Simple but effective.</p>
<p><strong>8. Anchor Text And One Way Links<br />
</strong>Off page optimization is important in obtaining high rankings in Google. Getting quality One-Way links is very important. Anchor Text simply refers to &#8220;the underlined clicked on words&#8221; in your links. Most webmasters include their keywords in their anchor text as this tells the search engines exactly what the links are about.</p>
<p><strong>9. Tags, Blogging And Web 2.0<br />
</strong>Take advantage of Web 2.0 by using blogs, RSS feeds and the social bookmarking sites like Reddit and Digg. Try AddThis.com for a simple social bookmarking system. At the very least your site should have a blog and RSS feed attached to it as this is an effective way of boosting your keyword rankings.</p>
<p>Tags have become very important for getting higher rankings. Keep in mind, in free blogging software such as WordPress, categories will automatically be seen as tags. Blogger, which is owned by Google, now has a form where you put your keywords (tags) for each post you make.</p>
<p><strong>10. PPC vs Organic Search<br />
</strong>Of course, one of the fastest ways to get your links displayed on Google is to pay for them by using Google Adwords. Your ad and links will sit side by side with the organic link results. In Pay Per Clíck advertising you bid or pay so much per clíck for your keywords and you only pay when someone clicks your links. But smart marketers also know since you&#8217;re getting millíons of impressions advertising your products, acquiring name recognition and branding through PPC advertising can be a major side-benefit.</p>
<p>However, most webmasters would say that organic links (SERPS) will return better traffíc than paid links or advertising. In most cases, this may be true because Google&#8217;s organic rankings are becoming more respected and more trusted by users. They simply carry more weíght with surfers.</p>
<p>This makes it even more beneficial to obtain top 10 rankings for your keywords in Google. Depending on the competitiveness of your chosen keywords reaching the first page listing or even the favored number one spot is well within any webmaster&#8217;s reach. Just go for it. The rewards are well worth your efforts.</p>
<p><small><strong><u>About The Author<br />
</u></strong>The author is a full-time online marketer who contributes his high rankings in Google as the major source of his online income. For the latest web marketing tools try: <a href="http://www.MarketingToolGuide.com" title="MarketingToolGuide">MarketingToolGuide.com</a>. For the latest Internet Marketing Strategies go to: <a href="http://www.BizwareMagic.com" title="BizwareMagic">BizwareMagic.com</a> . Titus Hoskins. [This article may be freely distributed if this resource box stays attached.]</small></p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2F10-steps-to-top-10-rankings-in-google%2F', '10+Steps+To+Top+10+Rankings+In+Google')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusblue.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/10-steps-to-top-10-rankings-in-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Everything you need to know about codecs</title>
		<link>http://www.matsays.com/misc/tricks/everything-you-need-to-know-about-codecs/</link>
		<comments>http://www.matsays.com/misc/tricks/everything-you-need-to-know-about-codecs/#comments</comments>
		<pubDate>Thu, 21 Jun 2007 15:19:00 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[IMD302 Net Broadcasting]]></category>
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/tricks/everything-you-need-to-know-about-codecs</guid>
		<description><![CDATA[Good article on codecs &#8211; what they are and what they do to your video.

addthis_pub = 'mobimeet';

]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.atomicmpc.com.au/article.asp?CIID=82898" title=" Everything you ever wanted to know about video codecs.">Good article on codecs &#8211; what they are and what they do to your video</a>.</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Feverything-you-need-to-know-about-codecs%2F', 'Everything+you+need+to+know+about+codecs')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusblue.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/everything-you-need-to-know-about-codecs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#8217;s the Story on PageRank?</title>
		<link>http://www.matsays.com/misc/whats-the-story-on-pagerank/</link>
		<comments>http://www.matsays.com/misc/whats-the-story-on-pagerank/#comments</comments>
		<pubDate>Wed, 20 Jun 2007 16:58:24 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[IMD325 UCD I]]></category>
		<category><![CDATA[IMD335 UCD II]]></category>
		<category><![CDATA[IMD345 UCD III]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Toolbox]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/misc/whats-the-story-on-pagerank</guid>
		<description><![CDATA[By Donald Nelson (c) 2007
from http://www.sitepronews.com/archives/2007/jun/20.html
A lot of website owners are upset or puzzled when their website&#8217;s Google PageRank goes down or does not rise. Is it worth losing any sleep over changes in that green line and number that appear in a Google tool bar at the top of your browser? I think that [...]]]></description>
			<content:encoded><![CDATA[<p><em>By Donald Nelson (c) 2007</em><br />
from <a href="http://www.sitepronews.com/archives/2007/jun/20.html" title="What's the Story on PageRank?">http://www.sitepronews.com/archives/2007/jun/20.html</a></p>
<p><img border="0" align="right" src="http://www.mobimeet.com/wp-content/uploads/2007/06/pagerank-byfml.gif" hspace="5" alt="Page Rank" />A lot of website owners are upset or puzzled when their website&#8217;s Google PageRank goes down or does not rise. Is it worth losing any sleep over changes in that green line and number that appear in a Google tool bar at the top of your browser? I think that excessive worry or thought about PageRank is not constructive, and it is better to put it all in perspective by taking a rational look at what PageRank is and what it is not.</p>
<p>First of all the concept behind PageRank is indeed at the heart of Google&#8217;s ranking process. The Google founders came from academia and they noticed that in many academic documents some sources were continually cited. They reasoned that if a particular document such as a book or research paper was mentioned in many places then it must be important. They applied this to the web and assumed that if one website links to another it is in fact, giving a &#8220;vote&#8221; for that site. A website that has many incoming links must have a certain degree of importance. In the current Google algorithm the quantity and quality of incoming links is certainly a factor in deciding the ranking of a particular website for any given search-query.</p>
<p><span id="more-119"></span></p>
<p>Think about it. In the early days of the web people would build websites and then they would tell their visitors to check out other &#8220;cool&#8221; sites and they would link to these sites. This is the process of natural linking and it still goes on. If you really have good content, people will link to you without letting you know. Similarly, if your name is Bob Dylan and your website is www.bobdylan.com, thousands of people will link to you without you having to send a cheesy email begging for a link.</p>
<p>Various government agencies, educational institutions, established companies and anyone else who is &#8220;big&#8221; in the &#8220;real world&#8221; is likely to also be big on the Internet simply by virtue of their previous fame and accomplishment. Google&#8217;s ranking system took this into consideration and this is one of the reasons why Google is currently the number one search engine. It gives better results and that is why people use it.</p>
<p>But, does that mean that only the big players can be seen on the net? Far from it. While there is a difference between one guy working in his house with one computer and a corporate giant with a whole staff, and this is indeed reflected in rankings, the Internet provides a much leveler playing field than in yesteryear. Prior to 1995, it would have been very hard for someone to spread their news and views far and wide as bloggers do today. It costs millions of dollars to publish a daily newspaper or to print and circulate a magazine, but it costs far less to publish a website or a blog, and lots of &#8220;little guys&#8221; have taken advantage of the power of the Internet.</p>
<p><a target="_blank" href="http://en.wikipedia.org/wiki/Image:Linkstruct2.svg" title="From Wikipedia - the pagerank algorithm depicted visually"><img border="0" align="left" src="http://www.mobimeet.com/wp-content/uploads/2007/06/pagerankalgorithm.gif" hspace="5" alt="Visual depiction of the PageRank Algorithm" /></a>But what about PageRank, how much of it do I really need to get my site noticed? For those who are not familiar with the PageRank system. Google supplies a tool bar which you can download and install on your browser. If you make a complete installation with all the advanced features, then every time you open a new website you will see a green and white bar with the label PageRank. Put your mouse on the bar and you will see a number from 0 to 10. If a website is not indexed by Google or banned by Google, the bar may be grey or all white.</p>
<p>But what do the numbers mean? I had a client who was worried about his number 3 PageRank figure and based on my observation I answered him with my unofficial view on the rankings. Here is how I currently see it:</p>
<p><strong>PageRank 0-2</strong> shows that a site does not have many links and needs work, However, and this a big &#8220;however,&#8221; it may not really affect your search engine rankings. I have a client with a page rank of 2 and his site ranks well, even number one, for several search terms in a fairly competitive industrial category. So PageRank is not everything; it may have an impact on your rankings and traffic, but in some cases it may not matter. In any case if you have a PageRank of 0-2, you can work on it through proper link building activity which I will explain at the end of the article.</p>
<p><strong>PageRank 3</strong> can be OK in some cases but in highly competitive industries you should work to improve it.</p>
<p><strong>PageRank 4</strong> is quite a normal number and indicates that you have enough links in either quantity or quality to make your site competitive.</p>
<p><strong>PageRank 5</strong> indicates that a site has many links or links from authoritative sites, and that Google has good &#8220;trust&#8221; in the site. It is a respectable and attainable PageRank.</p>
<p><strong>PageRank 6</strong> is very difficult to attain. This rank indicates that the site has many links and links from respected places. Remember the example of www.bobdylan.com, which I mentioned above; it has a PageRank 6, so you can get an idea of the difficulty involved.</p>
<p><strong>PageRank 7-10</strong> is usually earned by large and established institutions or websites which have tremendous authority, due to the quantity and quality of the incoming links. It is extremely difficult to attain this ranking. You really have to be special to get it.</p>
<p>So, don&#8217;t worry excessively about PageRank. First look at your traffic, then look at your sales and finally at your bottom line. They are the important numbers to watch. If you want to increase your traffic and also PageRank, then here are a few steps that you can take:</p>
<ol>
<li>Add content to your website. Make your website so good and so useful that people will link to you without you asking for a link.</li>
<li>Write articles and get them published on other websites and blogs with a link back to your site.</li>
<li>Distribute online press releases</li>
<li>Judiciously exchange links, or even better, exchange content (containing links back to your site) with other websites.</li>
<li>Get your site listed in online directories.</li>
</ol>
<p>These efforts will certainly help you to build targeted traffic, and they most probably will also help you to increase your PageRank as well.</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Fwhats-the-story-on-pagerank%2F', 'What%26%238217%3Bs+the+Story+on+PageRank%3F')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusorange.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/whats-the-story-on-pagerank/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sorting XML-based Multi-Dimensional Data in ActionScript</title>
		<link>http://www.matsays.com/misc/tricks/sorting-multi-dimensional-data-in-actionscript/</link>
		<comments>http://www.matsays.com/misc/tricks/sorting-multi-dimensional-data-in-actionscript/#comments</comments>
		<pubDate>Fri, 01 Jun 2007 16:30:46 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[IMD223 Advanced Scripting]]></category>
		<category><![CDATA[IMD402 Server Side Scripting]]></category>
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/tricks/sorting-multi-dimensional-data-in-actionscript</guid>
		<description><![CDATA[A question came up today about sorting matrices of data in ActionScript.  The resolution was rather simple but I&#8217;ve heard through the grapevine that [students] might have some utility for this, so here it is.  And since we&#8217;re at it, let&#8217;s also add in the idea that the data is being fed from an external [...]]]></description>
			<content:encoded><![CDATA[<p>A question came up today about sorting matrices of data in ActionScript.  The resolution was rather simple but I&#8217;ve heard through the grapevine that [students] might have some utility for this, so here it is.  And since we&#8217;re at it, let&#8217;s also add in the idea that the data is being fed from an external XML document.</p>
<p>Here&#8217;s the scenario that we faced.  iStreamPlanet produces a software application that is run during live poker tournaments which places an overlay on top of the encoded video similar to poker tournaments you might see on TV.  The actual system uses an interface built in C++ that writes an XML file as it is updated, which in turn is read by a Flash component layer and then drawn into the video card (the result is something that looks like the image below).</p>
<p style="text-align: center"><img src="http://www.mobimeet.com/wp-content/uploads/2007/06/wsopcaesers.jpg" alt="WSOP Tournament at Caesar’s Palace broadcast live by iStreamPlanet" /></p>
<p><span id="more-101"></span>For those of you who have been through any of the scripting classes, by now you should recognize that this needs a multi-dimensional array to work best.  Don&#8217;t be scared off by multi-dimensional arrays &#8211; think of them as just Excel spreadsheets.  So if you have a spreadsheet that looks something like this:</p>
<table>
<tr bgColor="#cccccc">
<td style="text-align: center; border: #777 1px solid">&nbsp;</td>
<td style="text-align: center; border: #777 1px solid"><strong>A</strong></td>
<td style="text-align: center; border: #777 1px solid"><strong>B</strong></td>
<td style="text-align: center; border: #777 1px solid"><strong>C</strong></td>
<td style="text-align: center; border: #777 1px solid"><strong>D</strong></td>
</tr>
<tr>
<td style="background-color: #ccc; text-align: center; border: #777 1px solid"><strong>1</strong></td>
<td style="text-align: center; border: #777 1px solid">Hat</td>
<td style="text-align: center; border: #777 1px solid">Cat</td>
<td style="text-align: center; border: #777 1px solid">Rat</td>
<td style="text-align: center; border: #777 1px solid">Sat</td>
</tr>
<tr>
<td style="background-color: #ccc; text-align: center; border: #777 1px solid"><strong>2</strong></td>
<td style="text-align: center; border: #777 1px solid">Bar</td>
<td style="text-align: center; border: #777 1px solid">Car</td>
<td style="text-align: center; border: #777 1px solid">War</td>
<td style="text-align: center; border: #777 1px solid">Par</td>
</tr>
</table>
<p>Then the your array would have been written as:</p>
<table>
<tr bgColor="#cccccc">
<td style="border: #777 1px solid; padding: 10px"><tt>var myArray = new Array();<br />
myArray[0][0] = "Hat";<br />
myArray[0][1] = "Cat";<br />
myArray[0][2] = "Rat";<br />
myArray[0][3] = "Sat";<br />
myArray[1][0] = "Bar";<br />
myArray[1][1] = "Car";<br />
myArray[1][2] = "War";<br />
myArray[1][3] = "Par";</tt></td>
</tr>
</table>
<p>Download the materials here: <a href="http://www.mobimeet.com/wp-content/uploads/2007/06/mdarraysortfromxml.zip" title="Multi-Dimensional Array Sorting from XML Data in ActionScript (ZIP)">Multi-Dimensional Array Sorting from XML Data in ActionScript (ZIP)</a></p>
<p>In the course of adding components to the application, we needed to output the current chip counts of each player and present them in order of most to least chips.  Of course, our XML ordering was based on the C# output which was not sorted and also contained string data where we needed to sort numerically.</p>
<table>
<tr bgColor="#cccccc">
<td style="border: #777 1px solid; padding: 10px"><tt>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;<br />
&lt;PlayersData&gt;<br />
  &lt;Title&gt;President Poker&lt;/Title&gt;<br />
  &lt;GameOver&gt;FALSE&lt;/GameOver&gt;<br />
  &lt;DisplayMode&gt;0&lt;/DisplayMode&gt;<br />
  &lt;PlayersChipCount&gt;<br />
    &lt;Player ID="1" Name="George Bush"&gt;$454&lt;/Player&gt;<br />
    &lt;Player ID="2" Name="George Washington"&gt;$545,445&lt;/Player&gt;<br />
    &lt;Player ID="3" Name="Ronald Reagan"&gt;$454,545&lt;/Player&gt;<br />
    &lt;Player ID="4" Name="Bill Clinton"&gt;$54,545&lt;/Player&gt;<br />
    &lt;Player ID="5" Name="John F. Kennedy"&gt;$787&lt;/Player&gt;<br />
    &lt;Player ID="6" Name="Richard Nixon"&gt;$4,554&lt;/Player&gt;<br />
    &lt;Player ID="7" Name="Theodore Roosevelt"&gt;$15,616&lt;/Player&gt;<br />
    &lt;Player ID="8" Name="Abraham Lincoln"&gt;$564,564&lt;/Player&gt;<br />
    &lt;Player ID="9" Name="James Madison"&gt;$5,451&lt;/Player&gt;<br />
  &lt;/PlayersChipCount&gt;<br />
  &lt;!-- data removed here --&gt;</tt><tt><br />
&lt;PlayersData&gt;</tt></td>
</tr>
</table>
<p>First, we read the XML.  To do this you&#8217;ll need to open a socket:</p>
<table>
<tr bgColor="#eeeeff">
<td style="border: #777 1px solid; padding: 10px"><tt>xmlData = new XML();<br />
xmlData.ignoreWhite = true;<br />
xmlData.load("Data.xml");</tt></td>
</tr>
</table>
<p>Next, we created a function that broke up the data and put it into the array.</p>
<table>
<tr bgColor="#eeeeff">
<td style="border: #777 1px solid; padding: 10px"><tt>xmlData.onLoad = readCart;<br />
</tt><tt><br />
function readCart(success){<br />
  if (!success){<br />
    trace("Error: CANNOT LOAD XML DATA");<br />
    break;<br />
  }else{<br />
    trace("XML read successfully");<br />
    for (i = 0; i &lt; this.childNodes.length; i++){<br />
      if (this.childNodes[i].nodeValue == null &amp;&amp; this.childNodes[i].nodeName == "PlayersData"){<br />
        topLevel = this.childNodes[i];<br />
      }<br />
    }<br />
  }//function continues below</tt></td>
</tr>
</table>
<p>At this point we need to consider how to sort the data.  Remember that our original spec required that the output be sorted in descending chip count order.  But notice that the XML data that has symbols in it.  If you know a bit about programming, you&#8217;ll know that sorting is done based on the operating system preference.  In this case using a normal sort() function, Player 7 (Roosevelt) with $15,616 chips would be first&#8230;</p>
<table align="center" width="90%">
<tr bgColor="#cccccc">
<td colSpan="2" style="text-align: center; border: #777 1px solid"><strong>Unparsed Sort</strong></td>
<td colSpan="2" style="text-align: center; border: #777 1px solid"><strong>Correct Sort</strong></td>
</tr>
<tr>
<td style="text-align: center; border: #777 1px solid">Roosevelt</td>
<td style="text-align: center; border: #777 1px solid">$15,616</td>
<td style="text-align: center; border: #777 1px solid">Lincoln</td>
<td style="text-align: center; border: #777 1px solid">$564,564</td>
</tr>
<tr>
<td style="text-align: center; border: #777 1px solid">Bush</td>
<td style="text-align: center; border: #777 1px solid">$454</td>
<td style="text-align: center; border: #777 1px solid">Washington</td>
<td style="text-align: center; border: #777 1px solid">$545,445</td>
</tr>
<tr>
<td style="text-align: center; border: #777 1px solid">Reagan</td>
<td style="text-align: center; border: #777 1px solid">$454,545</td>
<td style="text-align: center; border: #777 1px solid">Reagan</td>
<td style="text-align: center; border: #777 1px solid">$454,545</td>
</tr>
<tr>
<td style="text-align: center; border: #777 1px solid">Nixon</td>
<td style="text-align: center; border: #777 1px solid">$4,554</td>
<td style="text-align: center; border: #777 1px solid">Clinton</td>
<td style="text-align: center; border: #777 1px solid">$54,545</td>
</tr>
<tr>
<td style="text-align: center; border: #777 1px solid">Madison</td>
<td style="text-align: center; border: #777 1px solid">$5,451</td>
<td style="text-align: center; border: #777 1px solid">Roosevelt</td>
<td style="text-align: center; border: #777 1px solid">$15,616</td>
</tr>
<tr>
<td style="text-align: center; border: #777 1px solid">Washington</td>
<td style="text-align: center; border: #777 1px solid">$545,445</td>
<td style="text-align: center; border: #777 1px solid">Madison</td>
<td style="text-align: center; border: #777 1px solid">$5,451</td>
</tr>
<tr>
<td style="text-align: center; border: #777 1px solid">Clinton</td>
<td style="text-align: center; border: #777 1px solid">$54,545</td>
<td style="text-align: center; border: #777 1px solid">Nixon</td>
<td style="text-align: center; border: #777 1px solid">$4,554</td>
</tr>
<tr>
<td style="text-align: center; border: #777 1px solid">Lincoln</td>
<td style="text-align: center; border: #777 1px solid">$564,564</td>
<td style="text-align: center; border: #777 1px solid">Kennedy</td>
<td style="text-align: center; border: #777 1px solid">$787</td>
</tr>
<tr>
<td style="text-align: center; border: #777 1px solid">Kennedy</td>
<td style="text-align: center; border: #777 1px solid">$787</td>
<td style="text-align: center; border: #777 1px solid">Bush</td>
<td style="text-align: center; border: #777 1px solid">$454</td>
</tr>
</table>
<p>While ActionScript does have conversion capabilities, the problem in this scenario is that the symbols will not allow conversion to a numeric.  So let&#8217;s create a function that will &#8220;convert&#8221; the formatted field into a number.</p>
<table>
<tr bgColor="#eeffee">
<td style="border: #777 1px solid; padding: 10px"><tt>function replace(origStr,searchStr) {<br />
  var tempStr = "";<br />
  var startIndex = 0;<br />
  for (c = 0;c &lt; origStr.length;c++) {<br />
    thischar = origStr.substr(c,1);<br />
    if ( thischar != searchStr ) {<br />
      tempStr += thischar;<br />
    }<br />
  }<br />
  return tempStr;<br />
}</tt></td>
</tr>
</table>
<p>Using the conversion function (and note, you can use this function &#8211; albeit very simplistic &#8211; to do pretty much any type of string replacement), now we can finish off the original function.</p>
<table>
<tr bgColor="#eeeeff">
<td style="border: #777 1px solid; padding: 10px"><tt>  //create empty array container<br />
  var dat:Array = Array();  //loop through array data<br />
  for (i = 0; i &lt;= 4; i++){<br />
    //create empty array for internal data<br />
    var dat2:Array = Array();<br />
    //extract node data<br />
    var playID   = topLevel.childNodes[3].childNodes[i].attributes.ID;<br />
    var playName  = topLevel.childNodes[3].childNodes[i].attributes.Name;<br />
    var playChip  = topLevel.childNodes[3].childNodes[i].childNodes[0];<br />
</tt><tt><br />
    //set data into internal array<br />
    //not sequence of functions (inside out):<br />
    // 1. set playChip to a string - node data is being held as an object<br />
    // 2. replace $ with a blank (see function)<br />
    // 3. replace , with a blank (see function)<br />
    // 4. set value as a numeric<br />
    dat2[0]   = Number(replace(replace(playChip.toString(),"$"),","));<br />
    dat2[1]   = playID;<br />
    dat2[2]   = playName;<br />
    dat2[3]   = playChip;<br />
</tt><tt><br />
    //set internal array into external array<br />
    //this creates a multi-dimensional array<br />
    dat[i] = dat2;<br />
  }</tt><tt>  //sort on index 0 with Numeric descending<br />
  dat.sortOn([0],2|16);//trace output<br />
  for (i = 0; i &lt;= 4; i++) {<br />
    trace(i+". "+dat[i][3]+" "+dat[i][2]+" at "+dat[i][4]+" each");<br />
  }<br />
}</tt></td>
</tr>
</table>
<p>Now test the movie (Ctrl+Enter) and check out the chip counts.</p>
<p>Incidentally, if you&#8217;re a poker buff, check out how this actually looks on screen by watching the World Series of Poker at <a href="http://www.worldseriesofpoker.com/">http://www.worldseriesofpoker.com/</a></p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Fsorting-multi-dimensional-data-in-actionscript%2F', 'Sorting+XML-based+Multi-Dimensional+Data+in+ActionScript')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusorange.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/sorting-multi-dimensional-data-in-actionscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some interesting reads&#8230;</title>
		<link>http://www.matsays.com/misc/tricks/some-interesting-reads/</link>
		<comments>http://www.matsays.com/misc/tricks/some-interesting-reads/#comments</comments>
		<pubDate>Mon, 30 Apr 2007 17:48:19 +0000</pubDate>
		<dc:creator>Mat</dc:creator>
				<category><![CDATA[Good Resources]]></category>
		<category><![CDATA[IMD325 UCD I]]></category>
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.mobimeet.com/tricks/some-interesting-reads</guid>
		<description><![CDATA[Matt Cutts on Google Optimization
Use hyphens (-) instead of underscores (_) in your URI&#8217;s because Google interprets this as a space instead of a character, which means both terms will be read in the optimization meta.
Is Google Killing SEO?
The empasis of paid search listings is killing the organic search algorithm because of the &#8220;link reward&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.lesjones.com/posts/004249.shtml" title="Matt Cutts on Google Optimzation">Matt Cutts on Google Optimization</a><br />
Use hyphens (-) instead of underscores (_) in your URI&#8217;s because Google interprets this as a space instead of a character, which means both terms will be read in the optimization meta.</p>
<p><a href="http://www.imediaconnection.com/content/14606.asp" title="Is Google Killing SEO?">Is Google Killing SEO?</a><br />
The empasis of paid search listings is killing the organic search algorithm because of the &#8220;link reward&#8221; system used by Google&#8217;s relevancy system.</p>
<p><a href="http://www.marketingpilgrim.com/2007/04/as-social-networking-rises-tv-watching-decreases.html" title="As Social Networking Rises, TV Watching Decreases">As Social Networking Rises, TV Watching Decreases</a><br />
Uh&#8230;duh. Why watch unidirectional broadcasting when it can be interactive?  It didn&#8217;t take a genius to figure out that this was bound to happen.</p>
<p><a href="http://www.searchenginejournal.com/how-google-yahoo-askcom-treat-the-no-follow-link-attribute/4801/" title="How Google, Yahoo &amp; Ask.com Treat the No Follow Link Attribute">How Google, Yahoo &amp; Ask.com Treat the No Follow Link Attribute</a><br />
&#8220;There seems to be a common misconception in the webmaster and search engine marketing field that inbound links which use the ‘no follow’ attribute have no value to the site which they point towards.&#8221;</p>
<p><a href="http://www.sitepronews.com/archives/2007/apr/20prt.html" title="Use Robots.txt, Save the World">Use Robots.txt, Save the World<br />
</a>I&#8217;ve been asked time and time again about the use of the robots.txt file &#8211; what does it mean, what does it do, how do I use it.  Read this article for good, layman term information.</p>
<script type="text/javascript">
addthis_pub = 'mobimeet';
</script><a href="http://www.addthis.com/bookmark.php" onMouseOver="return addthis_open(this, '', 'http%3A%2F%2Fwww.matsays.com%2Fmisc%2Ftricks%2Fsome-interesting-reads%2F', 'Some+interesting+reads%26%238230%3B')" onMouseOut="addthis_close()" onClick="return addthis_sendto()"><img src="http://www.matsays.com/images/addthis-plusorange.png" width="28" height="16" border="0" alt="Share this post on digg, del.icio.us, facebook, blah blah blah" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
]]></content:encoded>
			<wfw:commentRss>http://www.matsays.com/misc/tricks/some-interesting-reads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
