<?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>Falling Dominos &#187; web design</title>
	<atom:link href="http://codepress.net/b/category/web-design/feed/" rel="self" type="application/rss+xml" />
	<link>http://codepress.net/b</link>
	<description>Let&#039;s keep Lotus Notes development relevant</description>
	<lastBuildDate>Fri, 19 Feb 2010 02:36:23 +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>jsCrypto</title>
		<link>http://codepress.net/b/2009/12/17/jscrypto/</link>
		<comments>http://codepress.net/b/2009/12/17/jscrypto/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 16:43:19 +0000</pubDate>
		<dc:creator>Tom ONeil</dc:creator>
				<category><![CDATA[lotus]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://codepress.net/b/?p=490</guid>
		<description><![CDATA[I&#8217;m a sucker for encryption tools and I found a new one through del.icio.us called jsCrypto. It&#8217;s a JavaScript encryption library that claims to be at least 4x faster than any other JavaScript encryption routine out there.
A description from the jsCrypto site:
We offer a fast, small symmetric encryption library written in Javascript. Though several such [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a sucker for encryption tools and I found a new one through del.icio.us called <a href="http://crypto.stanford.edu/sjcl/">jsCrypto</a>. It&#8217;s a JavaScript encryption library that claims to be at least 4x faster than any other JavaScript encryption routine out there.</p>
<p>A description from the jsCrypto site:</p>
<blockquote><p>We offer a fast, small symmetric encryption library written in Javascript. Though several such libraries exist, jsCrypto offers several advantages.<br/></p>
<ul>
<li>A clean, simple interface to basic AES encryption/decryption, as well as OCB and CCM modes for authenticated encryption</li>
<li>A cryptographic random number generator that collects randomness from user mouse movements, among other sources</li>
<li>jsCrypto is at least four times faster in all browsers and about 12% smaller than the best previously existing implementation</li>
<li>In Internet Explorer, jsCrypto is 11 times faster than the fastest previous existing implementation</li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://codepress.net/b/2009/12/17/jscrypto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cheatsheets for Front-End Web Developers</title>
		<link>http://codepress.net/b/2008/07/07/cheatsheets-for-front-end-web-developers/</link>
		<comments>http://codepress.net/b/2008/07/07/cheatsheets-for-front-end-web-developers/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 03:23:14 +0000</pubDate>
		<dc:creator>Tom ONeil</dc:creator>
				<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://codepress.net/b/?p=187</guid>
		<description><![CDATA[A handy list of cheat sheets (HTML, CSS, Javascript, etc&#8230;).
I still live and die by my VisiBone Browser Book but some of the jQuery cheatsheets will be handy.
(via del.icio.us)
]]></description>
			<content:encoded><![CDATA[<p>A handy <a href="http://sixrevisions.com/resources/cheat_sheets_web_developer/">list</a> of cheat sheets (HTML, CSS, Javascript, etc&#8230;).</p>
<p>I still live and die by my <a href="http://www.visibone.com/products/browserbook.html">VisiBone Browser Book</a> but some of the jQuery cheatsheets will be handy.</p>
<p>(via <a href="http://del.icio.us">del.icio.us</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://codepress.net/b/2008/07/07/cheatsheets-for-front-end-web-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Page O&#039; Connection Strings</title>
		<link>http://codepress.net/b/2008/06/23/page-o-connection-strings/</link>
		<comments>http://codepress.net/b/2008/06/23/page-o-connection-strings/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 19:10:37 +0000</pubDate>
		<dc:creator>Tom ONeil</dc:creator>
				<category><![CDATA[lotus]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://codepress.net/b/?p=184</guid>
		<description><![CDATA[My brain is like a sieve. I can&#8217;t remember simple things like how to write a &#8220;for loop.&#8221; Hence the reason I am a Lotus Notes developer&#8230; the on-line help is great.
A great find for developers like me is a table of connection strings for all types of data sources.
]]></description>
			<content:encoded><![CDATA[<p>My brain is like a sieve. I can&#8217;t remember simple things like how to write a &#8220;for loop.&#8221; Hence the reason I am a Lotus Notes developer&#8230; the on-line help is great.</p>
<p>A great find for developers like me is a <a href="http://www.devlist.com/ConnectionStringsPage.aspx">table of connection strings</a> for all types of data sources.</p>
]]></content:encoded>
			<wfw:commentRss>http://codepress.net/b/2008/06/23/page-o-connection-strings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Small R8 bug (enhancement?) with Rendering HTML</title>
		<link>http://codepress.net/b/2008/06/20/small-r8-bug-enhancement-with-rendering-html/</link>
		<comments>http://codepress.net/b/2008/06/20/small-r8-bug-enhancement-with-rendering-html/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 14:40:51 +0000</pubDate>
		<dc:creator>Tom ONeil</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[lotus]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://codepress.net/b/?p=183</guid>
		<description><![CDATA[A couple of disclaimers&#8230; 1) We&#8217;re in the middle of upgrading to R8. Some of our mail servers have been upgraded but none of our production application servers have the new version yet. 2) This is an old (2001) application that was written for the web. I had no part of the initial development.
I discovered [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of disclaimers&#8230; 1) We&#8217;re in the middle of upgrading to R8. Some of our mail servers have been upgraded but none of our production application servers have the new version yet. 2) This is an old (2001) application that was written for the web. I had no part of the initial development.</p>
<p>I discovered a small bug in the rendering of HTML in R8. It was discovered when a user was opening forms sent to a shared mailbox on an R8 server.</p>
<p><strong>The Problem</strong><br />
Lotus Notes R8 was overlapping fields when rendering a table in the browser.</p>
<p><em>Here is what the user saw on an R8 server:</em><br />
<img src="http://codepress.net/b/wp-content/uploads/2008/bg_1.gif" alt="R8.1"/><br />
<em>Here is what it looks like in R6:</em><br />
<img src="http://codepress.net/b/wp-content/uploads/2008/bg_2.gif" alt="R8.2"/></p>
<p><strong>The Cause</strong><br />
Spanned table cells/rows. In R8 (or possibly R7) Lotus decided it would help us out by rendering empty table rows (TR tags) with a style of &#8220;display:none.&#8221; Unfortunately, this affects rows that are being used by the ROWSPAN tag.</p>
<p><em>Here are the merged cells in the Notes Designer:</em><br />
<img src="http://codepress.net/b/wp-content/uploads/2008/bg_3.gif" alt="R8.3"/></p>
<p><em>Here are the split cells:</em><br />
<img src="http://codepress.net/b/wp-content/uploads/2008/bg_4.gif" alt="R8.4"/></p>
<p>In the browser (both versions) Notes tries to render the tables with a series of COLSPAN and ROWSPAN tags to render the table exactly the way it is displayed in the designer.</p>
<p><em>Here is the HTML from the R6 version:</em></p>
<pre><code>
<tr valign="top">
<td width="50%" rowspan="4" colspan="2"><b>2.</b><b><font color="#FF0000"> Company #: (3 digits)</font></b><b> </b> <font color="#0000ff">
<input name="CompanyNumber" value="" size=5></font></td>
<td width="50%" rowspan="4" colspan="2"><b><font color="#FF0000">Cost Center #: (7 digits)</font></b><font color="#0000ff">
<input name="CenterNumber" value="" size=10></font></td>
</tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr valign="top">
<td width="25%"><img src="/icons/ecblank.gif" border="0" height="1" width="1" alt=""></td>
<td width="75%" colspan="3">
<div align="right"><b><font color="#FF0000">Phone Number:</font></b><b>(</b><font color="#0000ff">
<input name="PhoneArea" value="" size=3 maxlength=3></font> <b>)</b> <font color="#0000ff">
<input name="PhonePrefix" value="" size=3 maxlength=3></font> -<font color="#0000ff">
<input name="PhoneSuffix" value="" size=4 maxlength=4></font></div>
</td>
</tr>
<tr valign="top">
<td width="25%"><img src="/icons/ecblank.gif" border="0" height="1" width="1" alt=""></td>
<td width="75%" colspan="3">
<div align="right"><b><font color="#FF0000">Fax Number:</font></b><b>(</b><font color="#0000ff">
<input name="FaxArea" value="" size=3 maxlength=3></font><b> )</b> <font color="#0000ff">
<input name="FaxPrefix" value="" size=3 maxlength=3></font><b> -</b><font color="#0000ff">
<input name="FaxSuffix" value="" size=4 maxlength=4></font></div>
</td>
</tr>

</code></pre>
<p>Here is the HTML from the R8 version:</p>
<pre><code>
<tr valign="top">
<td width="50%" rowspan="4" colspan="2"><b>2.</b><b><font color="#FF0000"> Company #: (3 digits)</font></b><b> </b> <font color="#0000ff">
<input name="CompanyNumber" value="" size=5></font></td>
<td width="50%" rowspan="4" colspan="2"><b><font color="#FF0000">Cost Center #: (7 digits)</font></b><font color="#0000ff">
<input name="CenterNumber" value="" size=10></font></td>
</tr>
<tr style="display: none"></tr>
<tr style="display: none"></tr>
<tr style="display: none"></tr>
<tr valign="top">
<td width="25%"><img width="1" height="1" src="/icons/ecblank.gif" border="0" alt=""></td>
<td width="75%" colspan="3">
<div align="right"><b><font color="#FF0000">Phone Number:</font></b><b>(</b><font color="#0000ff">
<input name="PhoneArea" value="" size=3 maxlength=3></font> <b>)</b> <font color="#0000ff">
<input name="PhonePrefix" value="" size=3 maxlength=3></font> -<font color="#0000ff">
<input name="PhoneSuffix" value="" size=4 maxlength=4></font></div>
</td>
</tr>
<tr valign="top">
<td width="25%"><img width="1" height="1" src="/icons/ecblank.gif" border="0" alt=""></td>
<td width="75%" colspan="3">
<div align="right"><b><font color="#FF0000">Fax Number:</font></b><b>(</b><font color="#0000ff">
<input name="FaxArea" value="" size=3 maxlength=3></font><b> )</b> <font color="#0000ff">
<input name="FaxPrefix" value="" size=3 maxlength=3></font><b> -</b><font color="#0000ff">
<input name="FaxSuffix" value="" size=4 maxlength=4></font></div>
</td>
</tr>

</code></pre>
<p>Notice the <code><br />
<tr style="display: none"></tr>
<p></code> tags? I am no HTML expert but it seems to cause issues with the ROWSPAN for cost center.</p>
<p><strong>The Solution</strong><br />
We&#8217;re screwed. Seriously. Only testing will discover these strange renderings. I fixed the problem above by deleting the three unnecessarily merged rows. Hopefully, this was a freak occurance but be aware of how R8 is rendering your HTML.</p>
]]></content:encoded>
			<wfw:commentRss>http://codepress.net/b/2008/06/20/small-r8-bug-enhancement-with-rendering-html/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Lotus Domino 8.5 Suggestion</title>
		<link>http://codepress.net/b/2008/05/25/lotus-domino-85-suggestion/</link>
		<comments>http://codepress.net/b/2008/05/25/lotus-domino-85-suggestion/#comments</comments>
		<pubDate>Mon, 26 May 2008 01:03:53 +0000</pubDate>
		<dc:creator>Tom ONeil</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[lotus]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://codepress.net/b/?p=176</guid>
		<description><![CDATA[I believe Mary Beth Raven was asking for suggestions for the 8.5 version of Lotus Domino. My suggestion is easy&#8230;
Make this (beware&#8230; it&#8217;s a Microsoft Link) the standard web view control for ASPX/Domino pages. It might be overkill but it has every feature you would want in a web table. Sorting AND filtering. Try the [...]]]></description>
			<content:encoded><![CDATA[<p>I believe <a href="http://www.ibm.com/developerworks/blogs/page/marybeth" target="_blank">Mary Beth Raven</a> was asking for suggestions for the 8.5 version of Lotus Domino. My suggestion is easy&#8230;</p>
<p>Make <a href="http://demos.devexpress.com/ASPxGridViewDemos/Filtering/HeaderFilter.aspx" target="_blank">this</a> (beware&#8230; it&#8217;s a Microsoft Link) the standard web view control for ASPX/Domino pages. It might be overkill but it has every feature you would want in a web table. Sorting AND filtering. Try the filter&#8230; it&#8217;s pretty sweet.</p>
]]></content:encoded>
			<wfw:commentRss>http://codepress.net/b/2008/05/25/lotus-domino-85-suggestion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enterprise RSS Day of Action</title>
		<link>http://codepress.net/b/2008/04/24/enterprise-rss-day-of-action/</link>
		<comments>http://codepress.net/b/2008/04/24/enterprise-rss-day-of-action/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 12:37:30 +0000</pubDate>
		<dc:creator>Tom ONeil</dc:creator>
				<category><![CDATA[lotus]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://codepress.net/b/?p=163</guid>
		<description><![CDATA[Ed Brill mentioned that today has been designated the &#8220;Enterprise RSS Day of Action&#8220;.
The goal of this day of action is to raise awareness of the benefits of RSS within your organization.
The only way to get your organization (users) to use RSS is to provide great content. I consulted at an organization that was on [...]]]></description>
			<content:encoded><![CDATA[<p>Ed Brill <a href="http://edbrill.com/ebrill/edbrill.nsf/dx/enterprise-rss-day-of-action">mentioned</a> that today has been designated the &#8220;<a href="http://enterpriserssdayofaction.wikispaces.com/">Enterprise RSS Day of Action</a>&#8220;.</p>
<p>The goal of this day of action is to raise awareness of the benefits of RSS within your organization.</p>
<p>The only way to get your organization (users) to use RSS is to provide great content. I consulted at an organization that was on the bleeding edge of Web 2.0 (they have been mentioned in Forrester twice). We wrote the RSS Portal (the 7.0.2 RSS template that Brill mentioned was buggy) that allowed their intranet news to be converted into RSS feeds.</p>
<p>During one of the demonstrations of the RSS portal I mentioned that I also created feeds for their IS job postings and internal &#8220;craigslist&#8221; site. I mentioned that &#8220;content is king&#8221; and if they wanted their users to adopt RSS they had to provide valuable feeds. I was told to turn off two extra feeds and concentrate on the news sites. This move essentially guaranteed a low adoption rate for their RSS feeds.</p>
<p>RSS in a corporation is only as valuable as its content. Even though you (CIO&#8217;s, communication teams, etc&#8230; ) think that your information is important and necessary to be placed into RSS feeds. Your users will want information that is valuable to them.</p>
<p>Examples:</p>
<ul>
<li>New Employee Hires
<li>
<li>HR Information</li>
<li>Cafeteria Menus</li>
<li>Job Postings</li>
<li>Employee Classified Ads</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://codepress.net/b/2008/04/24/enterprise-rss-day-of-action/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prevent Excel from Manipulating Exported Numbers</title>
		<link>http://codepress.net/b/2008/03/14/prevent-excel-from-manipulating-exported-numbers/</link>
		<comments>http://codepress.net/b/2008/03/14/prevent-excel-from-manipulating-exported-numbers/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 12:47:46 +0000</pubDate>
		<dc:creator>Tom ONeil</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://codepress.net/b/2008/03/14/prevent-excel-from-manipulating-exported-numbers/</guid>
		<description><![CDATA[I ran into a small frustration exporting number data to Microsoft Excel using HTML. My Account Numbers were being translated into exponential numbers. I needed these numbers to show as text (without formatting).
This site gave a great tip on how to format those numbers to show correctly. In my instance&#8230; I set the style of [...]]]></description>
			<content:encoded><![CDATA[<p>I ran into a small frustration exporting number data to Microsoft Excel using HTML. My Account Numbers were being translated into exponential numbers. I needed these numbers to show as text (without formatting).</p>
<p>This <a href="http://agoric.com/sources/software/htmltoExcel">site</a> gave a great tip on how to format those numbers to show correctly. In my instance&#8230; I set the style of my cell to <em>mso-number-format:\@.<br />
</em></p>
<blockquote><p>But, we&#8217;ll make a bit a bit of exception in this case, to adopt a Microsoft-specific style attribute. Actually, the output is still HTML 4.0 compliant; it just isn&#8217;t standard CSS. No problem; doesn&#8217;t mess up other browsers, and it&#8217;s just a hint for the Internet Explorer &#8220;Export to Excel&#8221; option anyway. At least Microsoft chose to do this the &#8220;right&#8221; way &#8212; formatting hints are declared as style sheet directives, thus cleanly separating data from formatting. Nice.</p>
<p>The solution? The mso-number-format style attribute, to be put on table cells (
<td>). Several number formats are available. These are some of the more common:</p>
<ul>
<li>mso-number-format:\@
<ul>
<li>text</li>
</ul>
</li>
<li>mso-number-format:&#8221;0\.000&#8243;
<ul>
<li>3 decimals</li>
</ul>
</li>
<li>mso-number-format:\#\,\#\#0\.000
<ul>
<li>comma separators (and 3 decimals) </li>
</ul>
</li>
<li>mso-number-format:&#8221;mm\/dd\/yy&#8221;
<ul>
<li>Date format</li>
</ul>
</li>
<li> mso-number-format:&#8221;d\\-mmm\\-yyyy&#8221;
<ul>
<li>another date format</li>
</ul>
</li>
<li> mso-number-format:Percent
<ul>
<li>percent</li>
</ul>
</li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://codepress.net/b/2008/03/14/prevent-excel-from-manipulating-exported-numbers/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>I Protest!: Why (almost) every Web site needs an RDBMS</title>
		<link>http://codepress.net/b/2008/01/30/i-protest-why-almost-every-web-site-needs-an-rdbms/</link>
		<comments>http://codepress.net/b/2008/01/30/i-protest-why-almost-every-web-site-needs-an-rdbms/#comments</comments>
		<pubDate>Wed, 30 Jan 2008 12:28:52 +0000</pubDate>
		<dc:creator>Tom ONeil</dc:creator>
				<category><![CDATA[lotus]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://codepress.net/b/2008/01/30/i-protest-why-almost-every-web-site-needs-an-rdbms/</guid>
		<description><![CDATA[Leave it to IBM to publish an article that totally disregards one of their own products.
Nobody is going to argue with the author (David Mertz) about the necessity of a database for content management of a Web site. My argument is that while Lotus Notes is not an relational database&#8230; it has powered many (in [...]]]></description>
			<content:encoded><![CDATA[<p>Leave it to IBM to publish an <a target="_blank" href="http://www.ibm.com/developerworks/web/library/wa-rdbms/index.html?ca=drs-">article</a> that totally disregards one of their own products.</p>
<p>Nobody is going to argue with the author (David Mertz) about the necessity of a database for content management of a Web site. My argument is that while Lotus Notes is not an relational database&#8230; it has powered many (in my lifetime I have probably seen 1,000+ applications) web sites with ease. It&#8217;s unfair to leave this essential non-relational database out of the article.</p>
<p>I also have one more issue. I can&#8217;t quite figure out who the intended audience is. If it is written for developers who regularly read articles at developerWorks, I think the issue is almost moot. Are there really developers out there who don&#8217;t value a database backend for web sites? We&#8217;re the guys blogging with MySQL and Lotus Notes backends.</p>
<p>If the database is written for the users out there with non-RDBMS web sites, then the article is far too technical. The acronym ACID (Atomicity, Consistency, Isolation, Durability) would never be used to help sell a database backend to a user.</p>
<p>Here&#8217;s why I think a database is an important piece for web sites:</p>
<ul>
<li>Ease of Maintenance &#8211; You can build admin tools to maintain a sites contents, links, and styles</li>
<li>Security &#8211; Users and roles can be maintained to prevent unwanted changes to your site</li>
<li>Portablity &#8211; Need to change your front end system from PHP to Ruby? No problem. All of your content is safe.</li>
<li>Data Transformation &#8211; Need RSS? No Problem&#8230; we&#8217;ll dump your data into RSS XML files. Need your site to be viewed by mobile phones? No problem. (I actually worked at a site that claimed it was high tech but their vast intranet wasn&#8217;t a Content Management System. It was a mess.)</li>
</ul>
<p>A database backend is important&#8230; just don&#8217;t forget Lotus Notes!</p>
]]></content:encoded>
			<wfw:commentRss>http://codepress.net/b/2008/01/30/i-protest-why-almost-every-web-site-needs-an-rdbms/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pro CSS and HTML Design Patterns</title>
		<link>http://codepress.net/b/2008/01/29/pro-css-and-html-design-patterns/</link>
		<comments>http://codepress.net/b/2008/01/29/pro-css-and-html-design-patterns/#comments</comments>
		<pubDate>Wed, 30 Jan 2008 04:00:34 +0000</pubDate>
		<dc:creator>Tom ONeil</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://codepress.net/b/2008/01/29/pro-css-and-html-design-patterns/</guid>
		<description><![CDATA[I stumbled upon Jonathan Snook&#8217;s review of Pro CSS and HTML Design Patterns by Michael Bowers. From Jonathan&#8217;s review (and the 5 stars from Amazon) it looks like it would be a great book to help make better Domino web sites.
My favorite tool for web design is the Visibone (laminated) reference book I bought a [...]]]></description>
			<content:encoded><![CDATA[<p>I stumbled upon Jonathan Snook&#8217;s <a href="http://snook.ca/archives/snooks_book_nook/review_pro_html_css_design_patterns/">review</a> of <strong>Pro CSS and HTML Design Patterns</strong> by Michael Bowers. From Jonathan&#8217;s review (and the 5 stars from Amazon) it looks like it would be a great book to help make better Domino web sites.</p>
<p>My favorite tool for web design is the Visibone (laminated) <a href="http://www.visibone.com/products/cardcollection.html">reference book</a> I bought a couple of years ago but I think Michael Bower&#8217;s book will be a great compliment and I can&#8217;t wait for it to arrive.</p>
]]></content:encoded>
			<wfw:commentRss>http://codepress.net/b/2008/01/29/pro-css-and-html-design-patterns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#039;ve got Buckets!</title>
		<link>http://codepress.net/b/2008/01/08/ive-got-buckets/</link>
		<comments>http://codepress.net/b/2008/01/08/ive-got-buckets/#comments</comments>
		<pubDate>Wed, 09 Jan 2008 05:07:35 +0000</pubDate>
		<dc:creator>Tom ONeil</dc:creator>
				<category><![CDATA[lotus]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://codepress.net/b/2008/01/08/ive-got-buckets/</guid>
		<description><![CDATA[I have finished the &#8220;Hello World!&#8221; of connecting to Amazon S3 with LotusScript. I have basically completed a &#8220;ListAllMyBuckets&#8221; call.
I wish I could post all of my code but I&#8217;m still waiting to hear back from Julian Robichaux. I can always try and find him at Lotusphere.
The ListMyBuckets Agent:

Function FormatDateToISO8601(aDate As NotesDateTime) As String
	' Thanks [...]]]></description>
			<content:encoded><![CDATA[<p>I have finished the &#8220;Hello World!&#8221; of connecting to Amazon S3 with LotusScript. I have basically completed a &#8220;ListAllMyBuckets&#8221; call.</p>
<p>I wish I could post all of my code but I&#8217;m still waiting to hear back from <a href="http://www.nsftools.com" target="_blank">Julian Robichaux.</a> I can always try and find him at Lotusphere.</p>
<p>The ListMyBuckets Agent:</p>
<pre><code>
Function FormatDateToISO8601(aDate As NotesDateTime) As String
	' Thanks to Joel Litton http://www.joelitton.net/A559B2/home.nsf/d6plinks/JLIN-5UU4B2
	Dim dtLocal As NotesDateTime
	Dim dtGMT As NotesDateTime
	Set dtGMT = New NotesDateTime( Left$(aDate.GMTTime, 22) )
	FormatDateToISO8601= Format$(dtGMT.LSLocalTime, "yyyy-mm-ddThh:nn:ss.000Z")
End Function

Sub Initialize

	Const mysecretkey = PUT YOUR SECRET KEY HERE
	Const myAccessKey = PUT YOUR ACCESS KEY HERE
	Dim myS3 As New AmazonS3_n3()
	Dim mydate As New XSD_DATETIME
	Dim mykey As New XSD_STRING
	Dim mysig As New XSD_STRING

	Dim dateTime As New NotesDateTime( "" )
	Dim hmacbuilder As String
	Dim formattedDate As String
	Call dateTime.SetNow

	Dim mybuckets As ListAllMyBucketsResult_n3
	formattedDate = FormatDateToISO8601(dateTime)
	Call mydate.setValueFromString(formattedDate)
	Call mykey.setValueFromString(myaccesskey)
	HMACBuilder = "AmazonS3ListAllMyBuckets" + formattedDate
	Call mysig.setValueFromString(HMAC_SHA1_B64(mysecretkey,HMACBuilder))
	Set mybuckets =  myS3.ListAllMyBuckets(mykey,mydate,mysig)

End Sub

</code></pre>
<p>You basically send Amazon three things in the web service. Your Access Key, the date, and then a signature which is a HMAC_SHA1 encoded concatenation of &#8220;AmazonS3&#8243; + the function you&#8217;re running + the date.<br />
I had to tweak Joel Litton&#8217;s <a href="http://www.joelitton.net/A559B2/home.nsf/d6plinks/JLIN-5UU4B2" target="_blank">ISO8601 date</a> a bit to add extra zeros for precision.</p>
<p>The hardest code part was the HMAC_SHA1 encoding. I found HMAC code and I found SHA1 but combining the two seemed to be harder than I thought. Paul Johnston&#8217;s Javascript code made the most sense to me so I ported a lot of his code to LotusScript. I used a fair chunk of Julian Robichaux&#8217;s SHA1 script also (hence the need to get Julian&#8217;s permission to post). I spent a lot of time shifting bits and worrying about signed and unsigned operations.</p>
<p>In the end&#8230; Amazon likes my scripts because it actually returns something. I am slightly worried about these Web Services in Domino 8. When my scripts were wrong and a fault was returned. I expected the fault codes to populate correctly in the object and they were not. I&#8217;m not sure who&#8217;s fault that is. We&#8217;ll keep experimenting.</p>
<p>What&#8217;s next? I want to use Amazon to store files straight from Domino and I would love to load files (images?) from S3 on the fly.</p>
]]></content:encoded>
			<wfw:commentRss>http://codepress.net/b/2008/01/08/ive-got-buckets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
