<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Time for Everything Weblog</title>
	<atom:link href="http://time4everything.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://time4everything.wordpress.com</link>
	<description>Musing of a Software Developer</description>
	<lastBuildDate>Wed, 04 Mar 2009 07:18:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='time4everything.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Time for Everything Weblog</title>
		<link>http://time4everything.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://time4everything.wordpress.com/osd.xml" title="Time for Everything Weblog" />
	<atom:link rel='hub' href='http://time4everything.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Eliminate Exceptions</title>
		<link>http://time4everything.wordpress.com/2009/03/04/eliminate-exceptions/</link>
		<comments>http://time4everything.wordpress.com/2009/03/04/eliminate-exceptions/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 07:16:17 +0000</pubDate>
		<dc:creator>time4everything</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://time4everything.wordpress.com/?p=14</guid>
		<description><![CDATA[English is hard to spell. One troublesome sequence of letters is an adjacent &#8220;i&#8221; and &#8220;e.&#8221; Sometimes the &#8220;i&#8221; comes first and sometimes the &#8220;e&#8221;. American school children are taught,  “ ‘I’ before ‘E’ except after ‘C’.” But even this rule has exceptions. It would be easier if the English language would have fewer exceptions. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=time4everything.wordpress.com&amp;blog=3512343&amp;post=14&amp;subd=time4everything&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><!--[if gte mso 9]&gt;  Normal 0     false false false  EN-US X-NONE X-NONE              MicrosoftInternetExplorer4              &lt;![endif]--><!--[if gte mso 9]&gt;                                                                                                                                            &lt;![endif]--><!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --><!--[if gte mso 10]&gt; &lt;!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} --> <!--[endif]-->English is hard to spell. One troublesome sequence of letters is an adjacent &#8220;i&#8221; and &#8220;e.&#8221; Sometimes the &#8220;i&#8221; comes first and sometimes the &#8220;e&#8221;. American school children are taught,  “ ‘I’ before ‘E’ except after ‘C’.” But even this rule has exceptions. It would be easier if the English language would have fewer exceptions.</p>
<p class="MsoNormal">Programming is actually like that, too. The fewer exceptions, the easier things are and the fewer bugs. Even writing documentation and testing notes are easier when there are fewer exceptions.</p>
<p><!--[if gte mso 9]&gt;  Normal 0     false false false  EN-US X-NONE X-NONE              MicrosoftInternetExplorer4              &lt;![endif]--><!--[if gte mso 9]&gt;                                                                                                                                            &lt;![endif]--><!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:.5in; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:.5in; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:1503274258; 	mso-list-type:hybrid; 	mso-list-template-ids:-67186494 1049669394 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l0:level1 	{mso-level-start-at:0; 	mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:Symbol; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --></p>
<p><!--[if gte mso 10]&gt; &lt;!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} --> <!--[endif]--></p>
<p class="MsoNormal">Example: Suppose you have a print menu with 5 options for 5 reports. Each of the 5 menu options creates a two-dimensional array of cells and calls a common function, PrintTable, that formats the table and sends it to the printer.</p>
<p class="MsoNormal">Suppose a client reports, “When the ‘forgiven debts’ report prints, the header is centered aligned. It would look much better if it would be justified.”</p>
<p class="MsoNormal">When you code this, you can decide whether to do the minimum requested and only change one report or do it consistently for all reports. If you do more than the minimum requested and make all the reports consistent then:</p>
<ul>
<li><!--[if !supportLists]--><span style="font-family:Symbol;"><span></span></span><!--[endif]-->You are more likely to find bugs sooner. Since the report is only used 5% as often as other reports, it&#8217;s unlikely that bugs in its title formatting will be found. However, if all reports would use the new justification, you’ll be more likely to find the bugs sooner.</li>
<li><span style="font-family:Symbol;"></span>The code is easier to read. You&#8217;ll avoid adding one more parameter, shouldJustifyTitle, to the PrintTable function. That is certainly a favor to the mainenance programmer, since he will not need to research and understand one more parameter.</li>
<li>Documentation is easier. Which is easier to write: &#8220;The title on all reports should be justified&#8221; or &#8220;The title on the &#8216;forgiven debts&#8217; report should be justified, but the title on all other reports should be left aligned&#8221;?</li>
<li>You&#8217;ll even avoid needing to mark bug reports as &#8220;no action needed.&#8221; If there are exceptions, even if intentional, the testing team may not know what those exceptions are and may report them as bugs.</li>
</ul>
<p><strong>Words to Live By:</strong></p>
<p>If I can make two features work alike, that will save time.</p>
<p>If I can eliminate an if statement, that will reduce bugs.</p>
<p>If I can avoid adding a parameter, I am preparing the way for the maintenance programmer.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/time4everything.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/time4everything.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/time4everything.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/time4everything.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/time4everything.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/time4everything.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/time4everything.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/time4everything.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/time4everything.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/time4everything.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/time4everything.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/time4everything.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/time4everything.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/time4everything.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=time4everything.wordpress.com&amp;blog=3512343&amp;post=14&amp;subd=time4everything&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://time4everything.wordpress.com/2009/03/04/eliminate-exceptions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b1c95ace73e06022ee04b722303e58f2?s=96&#38;d=identicon" medium="image">
			<media:title type="html">time4everything</media:title>
		</media:content>
	</item>
		<item>
		<title>Safe text delimiters</title>
		<link>http://time4everything.wordpress.com/2009/02/23/safe-text-delimiters/</link>
		<comments>http://time4everything.wordpress.com/2009/02/23/safe-text-delimiters/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 22:02:08 +0000</pubDate>
		<dc:creator>time4everything</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://time4everything.wordpress.com/?p=7</guid>
		<description><![CDATA[Developers frequently code bugs when joining multiple strings and splitting them later. Writing safe code is simple. All it takes is following the Delimiter Guideline: If you combine two pieces of text (A and B) and separate them later, you need to make sure that the delimiter (D) can never be in A nor B. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=time4everything.wordpress.com&amp;blog=3512343&amp;post=7&amp;subd=time4everything&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">Developers frequently code bugs when joining multiple strings and splitting them later. Writing safe code is simple. All it takes is following the Delimiter Guideline:</p>
<p class="MsoNormal" style="margin-left:.5in;">If you combine two pieces of text (A and B) and separate them later, you need to make sure that the delimiter (D) can never be in A nor B. Or if it can be, you need to generate a scheme to encode D where it appears in A and B.</p>
<p class="MsoNormal"><strong>Example bug #1</strong>: An GUI creates a sample commandline to allow a task to be automated. The command-line is the following:</p>
<p class="MsoNormal"><span> </span>Batch.exe ‘Report Name’<span> </span></p>
<p class="MsoNormal">Because the commandline contains multiple pieces of information (a program name and a report name), the Guideline applies here. The above commandline will work until a user creates a report named “Bob’s Sales Reports”.</p>
<p class="MsoNormal"><strong>Example bug #2</strong>: A database has a “contacts” table with two fields: a contact name and an e-mail address. This is displayed in a web application in a dropdown list in the format “Person (name@example.com)”. <span> </span>When the form is posted, this combined name gets sent to the server. The server removes the trailing “)” and then splits the string at the first &#8221; (&#8220;. This works fine most of time. Until someone adds a contact named “Hillary (Rodman) Clinton”. <span> </span>According the Guideline, using “ (“ as a delimiter is not safe since the contact name can contain that delimiter.</p>
<p class="MsoNormal"><strong>Example bug #3</strong>: An accounting program has a set of accounts. One or more accounts can be selected at a time. When the program shuts down, the list of selected accounts is stored in the registry as a single string separated by commas. According to the Guideline, this works only if the account name cannot have a comma. Chances are the GUI validates against commas, but the batch &#8220;Create Accounts&#8221; tool does not.</p>
<p class="MsoNormal"><strong>Conclusion</strong>: In my experience, these sorts of bugs are often missed in testing. Even once the software is deployed, they are not caught right away. They sometimes show up 5 years later. But more often than not, they do show up. It’s worth coding it right.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/time4everything.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/time4everything.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/time4everything.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/time4everything.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/time4everything.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/time4everything.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/time4everything.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/time4everything.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/time4everything.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/time4everything.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/time4everything.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/time4everything.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/time4everything.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/time4everything.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=time4everything.wordpress.com&amp;blog=3512343&amp;post=7&amp;subd=time4everything&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://time4everything.wordpress.com/2009/02/23/safe-text-delimiters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b1c95ace73e06022ee04b722303e58f2?s=96&#38;d=identicon" medium="image">
			<media:title type="html">time4everything</media:title>
		</media:content>
	</item>
		<item>
		<title>Web sites need to be fast</title>
		<link>http://time4everything.wordpress.com/2008/06/18/web-sites-need-to-be-fast/</link>
		<comments>http://time4everything.wordpress.com/2008/06/18/web-sites-need-to-be-fast/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 19:05:43 +0000</pubDate>
		<dc:creator>time4everything</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://time4everything.wordpress.com/?p=6</guid>
		<description><![CDATA[It goes without saying, but web sites that are fast are more likely to be used, as Google discovered. Web developers should make an effort to make their pages really fast. I personally find myself favoring fast web sites. I have long been recommending Bank of America over HSBC mostly because Bank of America has [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=time4everything.wordpress.com&amp;blog=3512343&amp;post=6&amp;subd=time4everything&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It goes without saying, but web sites that are fast are more likely to be used, as <a href="http://news.cnet.com/8301-10784_3-9954972-7.html?tag=nefd.lede">Google discovered</a>. Web developers should make an effort to make their pages really fast.</p>
<p>I personally find myself favoring fast web sites. I have long been recommending Bank of America over HSBC mostly because Bank of America has snappy online banking.</p>
<p>For an excellent book on this topic, see <a href="http://www.amazon.com/High-Performance-Web-Sites-Essential/dp/0596529309/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1213815823&amp;sr=8-1">High Performance Web Sites </a>by Steve Souders. It has a lot of practical advice and is an easy read.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/time4everything.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/time4everything.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/time4everything.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/time4everything.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/time4everything.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/time4everything.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/time4everything.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/time4everything.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/time4everything.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/time4everything.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/time4everything.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/time4everything.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/time4everything.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/time4everything.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/time4everything.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/time4everything.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=time4everything.wordpress.com&amp;blog=3512343&amp;post=6&amp;subd=time4everything&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://time4everything.wordpress.com/2008/06/18/web-sites-need-to-be-fast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b1c95ace73e06022ee04b722303e58f2?s=96&#38;d=identicon" medium="image">
			<media:title type="html">time4everything</media:title>
		</media:content>
	</item>
		<item>
		<title>Synchronization</title>
		<link>http://time4everything.wordpress.com/2008/04/26/synchronization/</link>
		<comments>http://time4everything.wordpress.com/2008/04/26/synchronization/#comments</comments>
		<pubDate>Sat, 26 Apr 2008 20:53:48 +0000</pubDate>
		<dc:creator>time4everything</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://time4everything.wordpress.com/?p=4</guid>
		<description><![CDATA[Microsoft recently announced Live Mesh. This technology will use synchronization to seamlessly share data between one&#8217;s laptop, work computer, and even mobile phone. It looks promising. Data synchronization should work well for this solution. One should not assume, though, that it is the best approach for all applications. Synchronization has definite advantages: Data is available [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=time4everything.wordpress.com&amp;blog=3512343&amp;post=4&amp;subd=time4everything&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Microsoft recently announced <a href="http://www.mesh.com">Live Mesh.</a> This technology will use synchronization to seamlessly share data between one&#8217;s laptop, work computer, and even mobile phone. It looks promising. Data synchronization should work well for this solution. One should not assume, though, that it is the best approach for all applications.</p>
<p>Synchronization has definite advantages:</p>
<ol>
<li>Data is available offline. This allows accessing information when the Internet connection is down, at the coffee shop that still doesn&#8217;t have Internet access, and on the plane.</li>
<li>Existing desktop tools can be used to edit and view the information. Most desktop applications still do not know how to load/view/edit data in the cloud.</li>
</ol>
<p>However, synchronization also introduces several problems:</p>
<ol>
<li>Freshness of data. Data must be kept fresh enough. How fresh is fresh enough? That depends on software. For photo sharing software, two-day-old photo tags are fine. For CRM software, however, twenty minutes old can be stale enough to cause misinformed decisions.</li>
<li>Conflicts. If data is synchronized, conflicts will occur. These need to be handled well. The user who caused the conflict should be notified in a timely manner. Because he or she can resolve the issue more quickly than anyone else, he should be the one who resolves it. The document should merely not be duplicated, since that makes it hard for others to know which copy to use.</li>
</ol>
<p>Synchronization is inherently harder than a simple database server. Sometimes, however, the benefits are worth the challenges.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/time4everything.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/time4everything.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/time4everything.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/time4everything.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/time4everything.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/time4everything.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/time4everything.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/time4everything.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/time4everything.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/time4everything.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/time4everything.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/time4everything.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/time4everything.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/time4everything.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/time4everything.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/time4everything.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=time4everything.wordpress.com&amp;blog=3512343&amp;post=4&amp;subd=time4everything&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://time4everything.wordpress.com/2008/04/26/synchronization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b1c95ace73e06022ee04b722303e58f2?s=96&#38;d=identicon" medium="image">
			<media:title type="html">time4everything</media:title>
		</media:content>
	</item>
		<item>
		<title>Transactional NTFS: Helpful for Custom Databases?</title>
		<link>http://time4everything.wordpress.com/2008/04/18/transactional-ntfs-helpful-for-custom-databases/</link>
		<comments>http://time4everything.wordpress.com/2008/04/18/transactional-ntfs-helpful-for-custom-databases/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 00:31:21 +0000</pubDate>
		<dc:creator>time4everything</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://time4everything.wordpress.com/?p=3</guid>
		<description><![CDATA[Transactional NTFS, available in Windows Vista and Windows Server 2008, allows making changes to multiple files and rolling back all changes in the event of an error, leaving the files in a consistent state. This technology could potentially be used by custom databases as a fast and easy way to abort a transaction. However, its [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=time4everything.wordpress.com&amp;blog=3512343&amp;post=3&amp;subd=time4everything&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://msdn2.microsoft.com/en-us/library/aa964885(VS.85).aspx">Transactional NTFS</a>, available in Windows Vista and Windows Server 2008, allows making changes to multiple files and rolling back all changes in the event of an error, leaving the files in a consistent state. This technology could potentially be used by custom databases as a fast and easy way to abort a transaction.</p>
<p>However, its usefulness is limited for several reasons. For one, the new operating systems are not widely used. For another, many corporations use network attached storage, which does not necessarily support transactional NFTS.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/time4everything.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/time4everything.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/time4everything.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/time4everything.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/time4everything.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/time4everything.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/time4everything.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/time4everything.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/time4everything.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/time4everything.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/time4everything.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/time4everything.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/time4everything.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/time4everything.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/time4everything.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/time4everything.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=time4everything.wordpress.com&amp;blog=3512343&amp;post=3&amp;subd=time4everything&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://time4everything.wordpress.com/2008/04/18/transactional-ntfs-helpful-for-custom-databases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b1c95ace73e06022ee04b722303e58f2?s=96&#38;d=identicon" medium="image">
			<media:title type="html">time4everything</media:title>
		</media:content>
	</item>
	</channel>
</rss>
