<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.2" -->
<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/"
	>

<channel>
	<title>rkgblog &#187; Code</title>
	<link>http://www.rimmkaufman.com/rkgblog</link>
	<description>observations on web marketing, paid search, and website effectiveness.</description>
	<pubDate>Wed, 27 Aug 2008 00:43:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.2</generator>
	<language>en</language>
			<item>
		<title>Search Engines From The Engineering Perspective: Notes on MSN&#8217;s migration from API v4 to v 5.1</title>
		<link>http://www.rimmkaufman.com/rkgblog/2008/07/16/msn-api-v51-upgrade/</link>
		<comments>http://www.rimmkaufman.com/rkgblog/2008/07/16/msn-api-v51-upgrade/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 20:34:10 +0000</pubDate>
		<dc:creator>Alan Rimm-Kaufman</dc:creator>
		
	<dc:subject>Code</dc:subject>
	<dc:subject>Microsoft</dc:subject>
	<dc:subject>SEM</dc:subject>
	<dc:subject>Google</dc:subject><dc:subject>code</dc:subject><dc:subject>google</dc:subject><dc:subject>microsoft</dc:subject><dc:subject>SEM</dc:subject>
		<guid isPermaLink="false">http://www.rimmkaufman.com/rkgblog/2008/07/16/msn-api-v51-upgrade/</guid>
		<description><![CDATA[<p>Our thanks to the MSN engineers for the many calls and emails clarifying the V5.1 API docs.  These are places we hit snags.</p>]]></description>
			<content:encoded><![CDATA[<p>I noticed our engineering team was taking an unusually long time to upgrade our MSN systems from MSN API version 4 to version 5.1, so I asked about it. </p>
<p>&#8220;Everything changed,&#8221; our project lead replied, &#8220;and the documentation is pretty poor.&#8221; </p>
<p>In general, one of the characteristics of a good API is stability. Once published, partners in the outside world build code which depend intimately on the API spec.  Well-designed APIs evolve slowly, adding and removing features gracefully so partners can adjust their apps to the improvements.   </p>
<p>MSN jerked the rudder hard in a new direction going to v 5.1.  Below is a list of pitfalls our engineers encountered.  Hopefully this list will help others struggling with MSN&#8217;s docs. </p>
<p>Beyond <a href="http://www.rimmkaufman.com/rkgblog/2008/07/07/ppc-share-june-2008/">MSN&#8217;s business challenges competing again Google and Yahoo</a>, this list demonstrates some of the technical challenges MSN is facing with their codebase.  To their credit, the MSN API team has responded quickly and knowledgeably to our requests.  For that we are grateful.  We appreciate the technical help we receive from MSN, and we hope their API stabilizes relatively quickly. </p>
<p>If any MSN folks are reading this, if it would be helpful, our project lead on this recent API upgrade  would be glad to share his experiences with you folks on how in the future this could go more smoothly for both sides.</p>
<p>For contrast, about the same time period, our engineers upgraded our platform from Google API v11 to v12. </p>
<p>The Google API upgrade took 20 minutes.</p>
<p>To be fair, Google v11 to v12  was an extremely small and gradual API tweak, a handful of type changes and other little details.  Comparing the Google 20 minutes to MSN&#8217;s many developer-days of effort is comparing apples to oranges.  I would say, though, that Google&#8217;s API advances more gradually and more thoughtfully, making Google an easier technical partner than the other engines.</p>
<p>Again, our thanks to the MSN engineers for fielding so many of calls and emails to clarify the docs.  The following email snippet indicates some of the places our engineers hit snags.</p>
<blockquote>
<p>There there were more of these, but here is a brief list.   In overall they changed the external interface, including names, enumerations and methods.  This was more like a full rewrite than an upgrade.  My biggest negative on the list is the <u>documentation</u>, as this was the cause of much of our frustrations. </p>
<p>And to give credit - MSN responded quickly and knowledgeably to our requests.</p>
<ul>
<li>
<div>.Net2/asmx (Administration, CustomerManagement, NotificationManagement interfaces) .Net3 (or 3.5?)/wcf  (CampaignManagement, Reporting interfaces)</div>
<ul>
<li>
<div>changed xml structure (authentication, etc)</div>
</li>
<li>
<div>enforced xml sequence</div>
</li>
<li>
<div>appears to be that the upgrade is not full, likely an internal deadline was not met</div>
</li>
</ul>
</li>
<li>
<div>Renamed many fields and classes to comply with industry standards</div>
<ul>
<li>
<div>API is for machine communication, so the name only matters to developers, who has to redo the code now</div>
</li>
</ul>
</li>
<li>
<div>Changed method enumerations</div>
<ul>
<li>
<div>most of these are 1-to-1 renaming enums, what is the point?</div>
</li>
<li>
<div>eg. removing underscores from EasternTime_US_Canada</div>
</li>
</ul>
</li>
<li>
<div>Xml arrays for NegativeKeywords (yes, no longer notkeywords)</div>
<ul>
<li>
<div>fine, although web-interface uses comma separated list</div>
</li>
</ul>
</li>
<li>
<div>Date type of fields</div>
<ul>
<li>
<div>communicate as 3 xml tags: year, month, day</div>
</li>
<li>
<div><a href="http://adcentercommunity.com/blogs/api/archive/2008/06/19/how-to-set-no-end-date-for-an-ad-group.aspx">link to docs</a></div>
<ul>
<li>
<div>looks like a bug workaround, as field supposed to be nullable!</div>
</li>
</ul>
</li>
</ul>
</li>
<li>
<div>Inherited classes (eg: Ad to TextAd and MobileAd)</div>
<ul>
<li>
<div>readonly &#8220;Type&#8221; field is set by derived class type</div>
</li>
<li>
<div><a href="http://msdn.microsoft.com/en-us/library/bb671952.aspx">http://msdn.microsoft.com/en-us/library/bb671952.aspx</a></div>
</li>
<li>
<div>creating ads as Ad xml tag with xml attribute of TextAd, but eliminate Type field during soap operations, as it is readonly&#8230;</div>
</li>
</ul>
</li>
<li>
<div>API DOCUMENTATION</div>
<ul>
<li>
<div>bad navigation (needs to click through many pages to get to the right page, unless you know what you need, and use the sidebar then)</div>
</li>
<li>
<div>INCORRECT information</div>
<ul>
<li>
<div>Campaign BudgetLimitType field for a while listed v4 enumerations! - incorrect hyperlink (simple MSN internal curl could discover these after removing the old docs from their internal website, like what we do with our website :-))</div>
</li>
<li>
<div>Parameter substitution in some Ad fields were listed without substituion (appears to be fixed by now)</div>
</li>
</ul>
</li>
<li>
<div>offline version for windows framework only</div>
</li>
<li>
<div>xml code snippets are limited and started to appear in June (middle of the upgrade process)</div>
</li>
</ul>
</li>
<li>
<div>Why to have fields, which are reserved for future use? (like v4 had APIFlags, which never made to production, and now is eliminated)</div>
<ul>
<li>
<div>Nice to see the ideas, where MSN might go</div>
</li>
<li>
<div>But has no value for an API, and makes documentation readability worse as it litters the information with useless stuff</div>
</li>
</ul>
</li>
<li>
<div>V5 was retired ~2 months before deadline, and 5.1 took its place (5.1 had some new reserved for future use fields, AND expanding int to long fields)</div>
<ul>
<li>
<div>not a big deal, but what is the point to publish deadlines?</div>
</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
</p>
</blockquote>
<p align="center"><img height="209" alt="corn" src="http://www.rimmkaufman.com/rkgblog/../content/corn.jpg" width="298" /></p>
<p>&nbsp;</p>
<a href="http://www.rimmkaufman.com/rkgblog/tag/code" rel="tag">code</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/google" rel="tag">google</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/microsoft" rel="tag">microsoft</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/sem" rel="tag">SEM</a><p class="akst_link"><div class="sharethisdiv">
<a href="http://www.rimmkaufman.com/rkgblog/?p=931&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_931" class="akst_share_link" rel="noindex nofollow">Share this post</a> (via email, Digg, Delicious, etc)
</div>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.rimmkaufman.com/rkgblog/2008/07/16/msn-api-v51-upgrade/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Video: Save Time On Your PPC Projects Using RKGDuck</title>
		<link>http://www.rimmkaufman.com/rkgblog/2008/06/23/save-time-with-rkgduck/</link>
		<comments>http://www.rimmkaufman.com/rkgblog/2008/06/23/save-time-with-rkgduck/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 06:41:48 +0000</pubDate>
		<dc:creator>Alan Rimm-Kaufman</dc:creator>
		
	<dc:subject>RKG </dc:subject>
	<dc:subject>Code</dc:subject>
	<dc:subject>Web Marketing</dc:subject>
	<dc:subject>SEM</dc:subject><dc:subject>code</dc:subject><dc:subject>RKG </dc:subject><dc:subject>SEM</dc:subject>
		<guid isPermaLink="false">http://www.rimmkaufman.com/rkgblog/2008/06/23/save-time-with-rkgduck/</guid>
		<description><![CDATA[Here's a new RKGDuck video showing how in a couple minutes you can write a powerful filter  to  assist with cleaning up keyword lists.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.rimmkaufman.com/duck">RKGDuck </a>is a handy free  tool that can save you considerable time on small SEM projects.  </p>
<p>RKGDuck slides a snippet of perl (or a big honking mass of perl, should you so need) into the Windows cut-and-paste clipboard buffer.  This lets you do powerful text transformations within and between all Windows apps, using the familiar Control-C (copy) and Control-V (paste) mechanism.</p>
<p>After cajoling your local perl geek to write a tiny filter for your task, you can share that functionality easily with less-technical users, and you don&#8217;t have to install perl on the end-user machines.</p>
<p>Here&#8217;s a new RKGDuck video showing how in a couple minutes you can write a powerful filter to help clean up keyword lists.</p>
<p><object width="425" height="344">
<param name="movie" value="http://www.youtube.com/v/h98i_nWBJc8&#038;hl=en"></param><embed src="http://www.youtube.com/v/h98i_nWBJc8&#038;hl=en" type="application/x-shockwave-flash" width="425" height="344"></embed></object></p>
<p>You can watch other how-to videos and download the app itself on the <a href="http://www.rimmkaufman.com/duck">RkGDuck homepage</a>.</p>
<p>RKG provides RKGDuck free to the community under <a href="http://www.gnu.org/licenses/">GNU General Public License</a>.  RKGDuck us  distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantibility or fitness for a particular purpose.  </p>
<p>If you&#8217;ve found RKGDuck helpful and can share your experience, or if you&#8217;ve hit any snags, do comment below.  </p>
<p>Quack!</p>
<a href="http://www.rimmkaufman.com/rkgblog/tag/code" rel="tag">code</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/rkg-" rel="tag">RKG </a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/sem" rel="tag">SEM</a><p class="akst_link"><div class="sharethisdiv">
<a href="http://www.rimmkaufman.com/rkgblog/?p=907&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_907" class="akst_share_link" rel="noindex nofollow">Share this post</a> (via email, Digg, Delicious, etc)
</div>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.rimmkaufman.com/rkgblog/2008/06/23/save-time-with-rkgduck/feed/</wfw:commentRss>
		</item>
		<item>
		<title>YAPC 2008</title>
		<link>http://www.rimmkaufman.com/rkgblog/2008/06/22/yapc-na-2008/</link>
		<comments>http://www.rimmkaufman.com/rkgblog/2008/06/22/yapc-na-2008/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 13:04:33 +0000</pubDate>
		<dc:creator>Alan Rimm-Kaufman</dc:creator>
		
	<dc:subject>RKG </dc:subject>
	<dc:subject>Code</dc:subject><dc:subject>code</dc:subject><dc:subject>RKG </dc:subject>
		<guid isPermaLink="false">http://www.rimmkaufman.com/rkgblog/2008/06/22/yapc-na-2008/</guid>
		<description><![CDATA[For the third year, we're proud to have  sponsored   the annual North American Perl conference, a great geek conference which occurred last week in Chicago.]]></description>
			<content:encoded><![CDATA[<p>For the third year running, we at RKG are proud to have  sponsored the annual <a href="http://conferences.mongueurs.net/yn2008/index.html">   North American Perl conference</a>. </p>
<p>YAPC::NA 2008 was a wonderful geek conference which occurred last week in Chicago.  RKG strongly supports the  open-source movement, and we do our best to give something back to the community  through sponsorships and code.</p>
<p>Kudos to the other fine organizations who chipped in: </p>
<p><a href="http://www.google.com">Google</a>, <a href="http://www.oreilly.com">O&#8217;Reilly</a>, <a href="http://www.itasoftware.com">ITA Software</a>, <a href="http://www.summersault.com">Summersault</a>, <a href="http://www.grantstreet.com">Grant Street Group</a>, <a href="http://deutsche-boerse.com/dbag/dispatch/de/kir/gdb_navigation/home">Deutsche Börse Group</a>, <a href="http://www.cheetahmail.com/corp/">CheetahMail</a>, <a href="http://www.rakudoconsulting.com/main.html">Rakudo</a>, <a href="http://www.openmakesoftware.com/">OpenMake</a>, <a href="http://www.rimmkaufman.com">Rimm-Kaufman Group</a>, <a href="http://www.activestate.com">Active State</a>, <a href="http://www.knowmad.com/">Knowmad</a>, <a href="http://www.whitepages.com/">WhitePages</a>, <a href="http://www.apress.com">Apress  </a>, <a href="http://www.packtpub.com/">PackT Publishing</a>, <a href="http://www.pragmaticprogrammer.com/bookshelf">Pragmatic Bookshelf</a>, <a href="http://nostarch.com">No Starch Press</a>, <a href="http://www.plainblack.com/">PlainBlack</a>, <a href="http://www.carspot.com/">CarSpot</a>, <a href="http://www.where2getit.com/">Where2GetIt</a>, <a href="http://www.virtualmin.com/">VirtualMin</a>, <a href="http://www.allantgroup.com/">Allant</a>, <a href="http://cbs.sportsline.com/">CBS Sports</a>, <a href="http://drwholdings.com/">DRW Trading</a>,  <a href="http://www.freesoftwaremagazine.com/">Free Software Magazine</a> </p>
<p><br /></p>
<p align="center"><a href="http://conferences.mongueurs.net/yn2008/index.html"><img src='http://conferences.mongueurs.net/yn2008/banners/yapcna_2008_23x60.jpg' alt='YAPC::NA'   /></a></p>
<a href="http://www.rimmkaufman.com/rkgblog/tag/code" rel="tag">code</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/rkg-" rel="tag">RKG </a><p class="akst_link"><div class="sharethisdiv">
<a href="http://www.rimmkaufman.com/rkgblog/?p=908&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_908" class="akst_share_link" rel="noindex nofollow">Share this post</a> (via email, Digg, Delicious, etc)
</div>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.rimmkaufman.com/rkgblog/2008/06/22/yapc-na-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What 37Signals &#8220;Getting Real&#8221; Can Teach Online Retailers</title>
		<link>http://www.rimmkaufman.com/rkgblog/2008/05/30/getting-real/</link>
		<comments>http://www.rimmkaufman.com/rkgblog/2008/05/30/getting-real/#comments</comments>
		<pubDate>Fri, 30 May 2008 09:23:14 +0000</pubDate>
		<dc:creator>Alan Rimm-Kaufman</dc:creator>
		
	<dc:subject>Code</dc:subject>
	<dc:subject>Business</dc:subject><dc:subject>Business</dc:subject><dc:subject>code</dc:subject>
		<guid isPermaLink="false">http://www.rimmkaufman.com/rkgblog/2008/05/30/getting-real/</guid>
		<description><![CDATA[Online retailers seeking more agility in their web development should give "Getting Real" by 37Signals a thoughtful read.]]></description>
			<content:encoded><![CDATA[<p><a href="http://gettingreal.37signals.com/"><img height="228" alt="getting-real" src="http://www.rimmkaufman.com/rkgblog/../content/getting-real.jpg" width="222" align="right" /></a>Dear Reader, the odds are you work in marketing for an established online retailer. </p>
<p>The odds are much lower that you&#8217;re toiling in a three-person web 2.0 startup.</p>
<p>Nonetheless, there&#8217;s considerable wisdom to be gained from 37Signals <a href="http://gettingreal.37signals.com/toc.php">Getting Real</a> book.  This series of essays focuses on what makes <a href="http://www.37signals.com/">37Signals</a> successful. </p>
<p>With some translation, many of their points are relevant to online retailers. Yes, in Marketing, you probably have limited control over your developers, and yes, as a complex retailer, simplicity went out the window several years back.  Regardless. </p>
<p>Still.  I recommend checking out <a href="http://gettingreal.37signals.com/">Getting Real</a>, and seeing which of their suggestions could help make your company more nimble.</p>
<p>Assorted quotes I bookmarked:</p>
<blockquote>
<p>Constraints are often advantages in disguise.</p></blockquote>
<blockquote>
<p>Most of the time you spend is wasted on things that just don&#8217;t matter. If you can cut out the work and thinking that just don&#8217;t matter, you&#8217;ll achieve productivity you&#8217;ve never imagined.</p></blockquote>
<blockquote><p>
Estimates that stretch into weeks or months are fantasies. The truth is you just don&#8217;t know what&#8217;s going to happen that far in advance. So shrink your time. Keep breaking down timeframes into smaller chunks. Instead of a 12 week project, think of it as 12 weeklong projects.</p></blockquote>
<blockquote><p>Set up a rule at work: Make half the day alone time. From 10am-2pm, no one can talk to one another (except during lunch). Or make the first or the last half of the day the alone time period. Just make sure this period is contiguous in order to avoid productivity-killing interruptions.
</p></blockquote>
<blockquote><p>
Do you really need a meeting? Meetings usually arise when a concept isn&#8217;t clear enough. Instead of resorting to a meeting, try to simplify the concept so you can discuss it quickly via email or im or Campfire. The goal is to avoid meetings. Every minute you avoid spending in a meeting is a minute you can get real work done instead.
</p></blockquote>
<blockquote><p>
If you are trying to decide between a few people to fill a position, always hire the better writer. It doesn&#8217;t matter if that person is a designer, programmer, marketer, salesperson, or whatever, the writing skills will pay off. Effective, concise writing and editing leads to effective, concise code, design, emails, instant messages, and more.
</p></blockquote>
<blockquote><p>Epicenter design focuses on the true essence of the page — the epicenter — and then builds outward. This means that, at the start, you ignore the extremities: the navigation/tabs, footer, colors, sidebar, logo, etc. Instead, you start at the epicenter and design the most important piece of content first.</p></blockquote>
<blockquote><p>That&#8217;s why context is more important than consistency. It&#8217;s ok to be inconsistent if your design makes more sense that way. Give people just what matters. Give them what they need when they need it and get rid of what they don&#8217;t. It&#8217;s better to be right than to be consistent.</p>
</blockquote>
<blockquote>
<p>Your code can guide you to fixes that are cheap and light. Pay attention when an easy path emerges. Sure, the feature that&#8217;s easy to make might not be exactly the same as the feature you originally had in mind but so what? If it works well enough and gives you more time to work on something else, it&#8217;s a keeper.</p></blockquote>
<blockquote><p>Build, don&#8217;t write. If you need to explain something, try mocking it up and prototyping it rather than writing a longwinded document. An actual interface or prototype is on its way to becoming a real product. A piece of paper, on the other hand, is only on its way to the garbage can.</p></blockquote>
<blockquote><p>Lorem ipsum changes the way copy is viewed. It reduces text-based content to a visual design element — a shape of text — instead of what it should be: valuable information someone is going to have to enter and/or read. Dummy text means you won&#8217;t see the inevitable variations that show up once real information is entered. It means you won&#8217;t know what it&#8217;s like to fill out forms on your site. Dummy text is a veil between you and reality.</p>
</blockquote>
<p>Link: <a href="http://gettingreal.37signals.com/">Getting Real</a>, 37Signals</p>
<a href="http://www.rimmkaufman.com/rkgblog/tag/business" rel="tag">Business</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/code" rel="tag">code</a><p class="akst_link"><div class="sharethisdiv">
<a href="http://www.rimmkaufman.com/rkgblog/?p=876&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_876" class="akst_share_link" rel="noindex nofollow">Share this post</a> (via email, Digg, Delicious, etc)
</div>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.rimmkaufman.com/rkgblog/2008/05/30/getting-real/feed/</wfw:commentRss>
		</item>
		<item>
		<title>AJAX for Keeping Online Retail SKU Pages Fresh IntraDay</title>
		<link>http://www.rimmkaufman.com/rkgblog/2008/04/22/ajax-for-online-retail-ecommerce/</link>
		<comments>http://www.rimmkaufman.com/rkgblog/2008/04/22/ajax-for-online-retail-ecommerce/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 12:38:53 +0000</pubDate>
		<dc:creator>Alan Rimm-Kaufman</dc:creator>
		
	<dc:subject>Code</dc:subject><dc:subject>ajax</dc:subject><dc:subject>code</dc:subject><dc:subject>online retail</dc:subject>
		<guid isPermaLink="false">http://www.rimmkaufman.com/rkgblog/2008/04/22/ajax-for-keeping-online-retail-sku-pages-fresh-intraday/</guid>
		<description><![CDATA[Crazy idea for a e-comm architecture: render the whole site in static HTML each evening, with prices and quantities accurate as of when written.  Then use tiny fast AJAX calls throughout the day to update only those few bytes on each page that really change. ]]></description>
			<content:encoded><![CDATA[<p>A few years back, we watched an IR200 client migrate off an antiquated static home-brew HTML store onto a modern robust e-commerce platform.  </p>
<p>The cart was dynamic on the old site, of course, but their huge number of SKU pages weren&#8217;t.   SKU pages were static HTML, generated by scripts each night.  </p>
<p>This meant big headaches for their merchants.  Think mid-day price changes (disallowed!) and mid-day stock-outs (site kept selling sold-out SKUs!)</p>
<p>So they switched onto a (then) modern e-comm platform.  </p>
<p>The new site solved the mid-day merch change issues, but came with some downsides: ugly SEO unfriendly URLs with sessionids, a much slower site, increased  hardware costs, increased platform costs.  And they didn&#8217;t remap the old URLs properly, so they lost a great deal of SEO-driven revenue. Ouch.</p>
<p>This experience got me thinking about how little on a e-comm site is truly dynamic intra-day.  </p>
<p>Prices and quantities, yes.   In-stock and  out-of-stock, absolutely.   Perhaps user reviews and ratings, but those don&#8217;t need to be true real-time.</p>
<p>(Completely different from a news or sports site, where everything must be up-to-the-minute fresh.)</p>
<p>So, here&#8217;s a crazy idea for a e-comm architecture: </p>
<p>Render the whole site in static HTML each evening, with prices and quantities accurate as of when written.  Then use tiny fast AJAX calls throughout the day to update only those few bytes on each page that actually change.</p>
<p>Just a thought.</p>
<a href="http://www.rimmkaufman.com/rkgblog/tag/ajax" rel="tag">ajax</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/code" rel="tag">code</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/online-retail" rel="tag">online retail</a><p class="akst_link"><div class="sharethisdiv">
<a href="http://www.rimmkaufman.com/rkgblog/?p=814&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_814" class="akst_share_link" rel="noindex nofollow">Share this post</a> (via email, Digg, Delicious, etc)
</div>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.rimmkaufman.com/rkgblog/2008/04/22/ajax-for-online-retail-ecommerce/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Why Small Businesses Should Support Open Source</title>
		<link>http://www.rimmkaufman.com/rkgblog/2008/04/21/why-small-businesses-should-support-open-source/</link>
		<comments>http://www.rimmkaufman.com/rkgblog/2008/04/21/why-small-businesses-should-support-open-source/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 16:54:38 +0000</pubDate>
		<dc:creator>Alan Rimm-Kaufman</dc:creator>
		
	<dc:subject>RKG </dc:subject>
	<dc:subject>Code</dc:subject><dc:subject>code</dc:subject><dc:subject>RKG </dc:subject>
		<guid isPermaLink="false">http://www.rimmkaufman.com/rkgblog/2008/04/21/why-small-businesses-should-support-open-source/</guid>
		<description><![CDATA[If you're benefiting from the Open Source Movement, give something back. ]]></description>
			<content:encoded><![CDATA[<p>Many startups and small businesses rely on open source software.    Many big businesses rely on open source, too, but that&#8217;s a different article. </p>
<p>Open source code is typically high-quality, lets you avoid licensing fees, and most important, you can lift the hood and fix any bits that come loose.</p>
<p>RKG is among the many many companies that owe a large debt of thanks to the open source movement.  </p>
<p>But, of the many small businesses using open source, only a small fraction give back to the community.  </p>
<p><a href="http://www.perlfoundation.org/"><img src='http://www.rimmkaufman.com/content/perlonion.png' alt='yet another perl confernence, YAPC::NA 2008' class="imgR"/></a></p>
<p>One way to support open source is donate to the organizations and conferences.</p>
<p>Again this year,  RKG is making a  donation to help the good folks at <a href="http://conferences.mongueurs.net/yn2008/">YAPC::NA2008</a>, and urge others using perl to do the same.</p>
<p>Another way is to contribute   code.</p>
<p>Bug fixes. New features.  New applications.   What have you.  </p>
<p>If your company uses open source, and you  improve   the code, seriously consider  sharing it back.</p>
<p>While we don&#8217;t release the proprietary code which provides RKG and our clients with unique technological and/or business advantages, we do share back &#8220;housekeeping&#8221; code.</p>
<p><a href="http://www.maatkit.org"><img src='http://www.rimmkaufman.com/content/maatkit.PNG' alt='maatkit.org'  class="imgR"/></a> </p>
<p>For example, for both RKG and for the  community, <a href="http://www.xaprb.com/blog/">Baron Schwartz</a> developed  table archiving nibblers,  table synchronization helpers, server monitoring scripts, and other useful mysql tools.   He  bundled these apps as <a href="http://www.maatkit.org/tools.html">MaatKit</a> and released them under the   <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>.</p>
<p>What a honor for Baron that <a href="http://www.xaprb.com/blog/2008/04/15/mysql-community-member-of-the-year/">last week</a> at the <a href="http://en.oreilly.com/mysql2008/public/content/home">MySql conference</a>   he was given a  &#8220;MySql Community Member Of The Year&#8221; award.  Kudos, Baron!</p>
<p>It doesn&#8217;t matter if your donation is large or small.   It doesn&#8217;t matter if you give money or code.</p>
<p>What does matter is this:   if you&#8217;re benefiting from the Open Source Movement, try to give something back.  </p>
<p>It makes good business sense.  And it  is the right thing to do.</p>
<a href="http://www.rimmkaufman.com/rkgblog/tag/code" rel="tag">code</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/rkg-" rel="tag">RKG </a><p class="akst_link"><div class="sharethisdiv">
<a href="http://www.rimmkaufman.com/rkgblog/?p=813&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_813" class="akst_share_link" rel="noindex nofollow">Share this post</a> (via email, Digg, Delicious, etc)
</div>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.rimmkaufman.com/rkgblog/2008/04/21/why-small-businesses-should-support-open-source/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google App Engine</title>
		<link>http://www.rimmkaufman.com/rkgblog/2008/04/16/google-app-engine/</link>
		<comments>http://www.rimmkaufman.com/rkgblog/2008/04/16/google-app-engine/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 12:12:12 +0000</pubDate>
		<dc:creator>Alan Rimm-Kaufman</dc:creator>
		
	<dc:subject>Code</dc:subject>
	<dc:subject>Google</dc:subject><dc:subject>code</dc:subject><dc:subject>google</dc:subject>
		<guid isPermaLink="false">http://www.rimmkaufman.com/rkgblog/2008/04/16/google-app-engine/</guid>
		<description><![CDATA[I'm fascinated by Google's recent announcement of  Google App Engine.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m fascinated by Google&#8217;s recent <a href="http://googleappengine.blogspot.com/2008/04/introducing-google-app-engine-our-new.html">announcement</a> of <a href="http://appengine.google.com">Google App Engine</a>.</p>
<p>Quoting Google, </p>
<blockquote><p>Google App Engine enables developers to build web applications on the same scalable systems that power our own applications.<br />
<a href="http://code.google.com/appengine/"><img src='http://www.rimmkaufman.com/content/appengine_lowres.jpg' alt='google app engine' class="imgR"/></a><br />
<strong>No assembly required:</strong> Google App Engine exposes a fully-integrated development environment.</p>
<p><strong>It&#8217;s easy to scale:</strong> Google App Engine makes it easy to design scalable applications that grow from one to millions of users without infrastructure headaches.</p>
<p><strong>It&#8217;s free to get started:</strong> Every Google App Engine application will have enough CPU, bandwidth, and storage to serve around 5 million monthly pageviews.
 </p></blockquote>
<p>Right now the only dev language is Python (<a href="http://en.wikipedia.org/wiki/Snakes_on_a_Plane">snakes on a plane!</a>), but others are promised.  </p>
<p>The API currently provides storage (vs <a href="http://labs.google.com/papers/bigtable.html">BigTable</a>), authentication (via Google Accounts), templating (via <a href="http://www.djangoproject.com/documentation/templates/">Django</a>), emailing, form handling, and URL fetching.  Everything runs in the cloud, sandboxed, no writing to local files.</p>
<p>Here&#8217;s Google&#8217;s Brett Slakin demoing a guestbook in 10 minutes.</p>
<p><object width="425" height="355">
<param name="movie" value="http://www.youtube.com/v/bfgO-LXGpTM&#038;hl=en"></param>
<param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/bfgO-LXGpTM&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<p>And here&#8217;s the resulting guestbook app: <a href="http://shoutout.appspot.com/">http://shoutout.appspot.com/</a>.    </p>
<p>Relevance to online retailers?</p>
<p>I don&#8217;t think AppEngine is going to change or revolutionize online commerce as a platform. </p>
<p> The hard problem in e-commerce isn&#8217;t scaling the technology, the hard problem is <em>marketing</em>, getting the customers.   </p>
<p>But I do think AppEngine (and <a href="http://www.amazon.com/gp/browse.html?node=201590011">EC2</a>, etc) <em> could revolutionize the speed which new Web 2.0 communication apps are built.  </em></p>
<p>In the next year or so, that may have implications for how online marketers  communicate with customers and prospects.  </p>
<p>My  thoughts after reading the AppEngine docs was:</p>
<blockquote><p>&#8220;Wow.  With this tool, a smart small agile development team of three people could beta something like Twitter in a few days, or maybe Meebo in a few weeks, and release it, and if the world liked it, they could scale their app up to the planet, GoogleSizing it, with zero capex, zero sysadmin and zero hardware hassles, and simply pay for cycles/bandwidth/storage as it scaled, as it proved itself viable via revenue or pageviews or buzz or whatever.  You&#8217;d build a layer between the code and the API to facilitate moving the app later to dedicated servers as needed if concerned about autonomy, but AppEngine slashes the VC needs of a startup even more &#8212; now the costs are really just people, no machines &#8212; and handles the scaling problem pretty far along the way.&#8221;</p></blockquote>
<p>(I also thought, <em>&#8220;Dang &#8212; I wish I had more depth in Python!&#8221;</em>)</p>
<p>The <a href="http://appgallery.appspot.com/">apps available now</a> are demos and toys, but more will come.</p>
<p>I guess the entrepreneur / developer considering AppEngine need to answer the &#8220;how much do I trust Google to park my app on it&#8221;, but I think that&#8217;s less of an issue for the freshly minted startup.</p>
<p>My prediction:  cloud app platforms will increase the velocity of experimentation and deployment of new crazy marketing and communication ideas. </p>
<p>Overheard  at Shop.orgSocialMedia2010: </p>
<p><em> What, you&#8217;re not advertising to teens via  <a href="http://TwitzaZooMeeBling.com">TwitzaZooMeeBling</a> yet?!? You&#8217;re so far behind the times.   They&#8217;re 90 days old but they&#8217;ve already hit 12 million registered users!  And the only hardware they own are the founder&#8217;s laptops!</em></p>
<a href="http://www.rimmkaufman.com/rkgblog/tag/code" rel="tag">code</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/google" rel="tag">google</a><p class="akst_link"><div class="sharethisdiv">
<a href="http://www.rimmkaufman.com/rkgblog/?p=804&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_804" class="akst_share_link" rel="noindex nofollow">Share this post</a> (via email, Digg, Delicious, etc)
</div>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.rimmkaufman.com/rkgblog/2008/04/16/google-app-engine/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MIT &#8220;Operations Research and the Internet&#8221; Talk 30 May 2008</title>
		<link>http://www.rimmkaufman.com/rkgblog/2008/04/16/mit-orc/</link>
		<comments>http://www.rimmkaufman.com/rkgblog/2008/04/16/mit-orc/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 11:39:22 +0000</pubDate>
		<dc:creator>Alan Rimm-Kaufman</dc:creator>
		
	<dc:subject>Code</dc:subject>
	<dc:subject>Business</dc:subject>
	<dc:subject>SEM</dc:subject>
	<dc:subject>Google</dc:subject><dc:subject>Business</dc:subject><dc:subject>code</dc:subject><dc:subject>google</dc:subject><dc:subject>SEM</dc:subject>
		<guid isPermaLink="false">http://www.rimmkaufman.com/rkgblog/2008/04/16/mit-orc/</guid>
		<description><![CDATA[I'm honored to be invited back to MIT to speak on "The Business And Mathematics of Pay-Per-Click Bidding" May 30, 2008, at MIT's Tang Center.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mit.edu/"><img src='http://www.rimmkaufman.com/content/MITDome.jpg' alt='massachusetts institute of technology' class="imgR"/></a></p>
<p>If anyone is interested in the theoretical side of online advertising, check out MIT&#8217;s <a href="http://www.mit.edu/~orc/conferences/Conference08/conference.html">&#8220;Operations Research and the Internet&#8221;</a> conference May 29 –30 at the Tang Center at MIT, Cambridge, Massachusetts.</p>
<p>Schedule still coming together, but speakers  include  Meredith Goldsmith of  Google, Prof. David Williamson of Cornell, Prof. Ramesh Johari of  Stanford, Prof. Balaji Prabhakar of  Stanford, and Prof. Devavrat Shah of MIT.  </p>
<p>I&#8217;m honored to be invited back to speak on &#8220;The Business And Mathematics of Pay-Per-Click Bidding.&#8221;</p>
<p>If you&#8217;re in Boston on May 30th and enjoy equations, <a href="http://www.mit.edu/~orc/conferences/Conference08/conference.html">do come on by</a>.</p>
<a href="http://www.rimmkaufman.com/rkgblog/tag/business" rel="tag">Business</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/code" rel="tag">code</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/google" rel="tag">google</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/sem" rel="tag">SEM</a><p class="akst_link"><div class="sharethisdiv">
<a href="http://www.rimmkaufman.com/rkgblog/?p=803&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_803" class="akst_share_link" rel="noindex nofollow">Share this post</a> (via email, Digg, Delicious, etc)
</div>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.rimmkaufman.com/rkgblog/2008/04/16/mit-orc/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Steve Souder Speed Up Your Site Google Tech Talk Video</title>
		<link>http://www.rimmkaufman.com/rkgblog/2008/03/31/steve-souder-speed-up-your-site-google-tech-talk-video/</link>
		<comments>http://www.rimmkaufman.com/rkgblog/2008/03/31/steve-souder-speed-up-your-site-google-tech-talk-video/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 02:35:38 +0000</pubDate>
		<dc:creator>Alan Rimm-Kaufman</dc:creator>
		
	<dc:subject>Code</dc:subject>
	<dc:subject>Yahoo</dc:subject>
	<dc:subject>Google</dc:subject><dc:subject>browser load time</dc:subject><dc:subject>code</dc:subject><dc:subject>css sprites</dc:subject><dc:subject>google</dc:subject><dc:subject>optimization</dc:subject><dc:subject>steve souder</dc:subject><dc:subject>yahoo</dc:subject>
		<guid isPermaLink="false">http://www.rimmkaufman.com/rkgblog/2008/03/31/steve-souder-speed-up-your-site-google-tech-talk-video/</guid>
		<description><![CDATA[Here's a video from Steve Souder speaking about site speed at Google in November.]]></description>
			<content:encoded><![CDATA[
<p>I&#8217;ve <a href="http://www.rimmkaufman.com/rkgblog/2008/01/05/souder-site-speed/">previously recommended</a> Steve Souder&#8217;s <a href="http://www.oreilly.com/catalog/9780596529307/">book</a> on speeding up your site.</p>
<p>Here&#8217;s a video from Steve speaking at Google in November (he was at Yahoo then, hadn&#8217;t yet joined Google). Audio is poor, but content is amazing.  Buy your  engineers pizza and have them watch this over lunch tomorrow.</p>
<p><object width="425" height="355">
<param name="movie" value="http://www.youtube.com/v/BTHvs3V8DBA&#038;hl=en"></param>
<param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/BTHvs3V8DBA&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<blockquote><p>The performance golden rule: 80% to 90% of the time the user spends waiting is spent <em>after </em> HTML reaches the browser. &#8212; Steve Souder</p></blockquote>
<a href="http://www.rimmkaufman.com/rkgblog/tag/browser-load-time" rel="tag">browser load time</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/code" rel="tag">code</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/css-sprites" rel="tag">css sprites</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/google" rel="tag">google</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/optimization" rel="tag">optimization</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/steve-souder" rel="tag">steve souder</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/yahoo" rel="tag">yahoo</a><p class="akst_link"><div class="sharethisdiv">
<a href="http://www.rimmkaufman.com/rkgblog/?p=779&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_779" class="akst_share_link" rel="noindex nofollow">Share this post</a> (via email, Digg, Delicious, etc)
</div>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.rimmkaufman.com/rkgblog/2008/03/31/steve-souder-speed-up-your-site-google-tech-talk-video/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Viewing On-Deck Google PR Releases</title>
		<link>http://www.rimmkaufman.com/rkgblog/2008/03/30/google-pr-cracked/</link>
		<comments>http://www.rimmkaufman.com/rkgblog/2008/03/30/google-pr-cracked/#comments</comments>
		<pubDate>Sun, 30 Mar 2008 06:00:17 +0000</pubDate>
		<dc:creator>Engineering</dc:creator>
		
	<dc:subject>Fun</dc:subject>
	<dc:subject>Code</dc:subject>
	<dc:subject>Google</dc:subject><dc:subject>1600 Amphitheatre Parkway</dc:subject><dc:subject>android</dc:subject><dc:subject>april fools</dc:subject><dc:subject>code</dc:subject><dc:subject>Fun</dc:subject><dc:subject>google</dc:subject><dc:subject>hack</dc:subject><dc:subject>mad libs</dc:subject><dc:subject>open social</dc:subject><dc:subject>security hole</dc:subject><dc:subject>sitemap</dc:subject><dc:subject>war games</dc:subject>
		<guid isPermaLink="false">http://www.rimmkaufman.com/rkgblog/2008/03/30/viewing-on-deck-google-pr-releases/</guid>
		<description><![CDATA[Shhhh... RKG engineers crack Google's PR server.]]></description>
			<content:encoded><![CDATA[<p> <a href="http://code.google.com/android/">Android</a> establishes an open  platform for mobile devices.   </p>
<p> <a href="http://code.google.com/apis/opensocial/">OpenSocial</a> does the same for social networks. </p>
<p> <a href="http://www.sitemaps.org/">Sitemaps</a> does the same for web  page listings. </p>
<p>See a pattern? </p>
<p>As engineers, we were intrigued.  We attempted to <a href="http://www.youtube.com/watch?v=tAcEzhQ7oqA">crack</a> the security on Google&#8217;s press release server. We succeeded.  This link <a href="http://www.rimmkaufman.com/content/google-open.html"><strong>/cgi/private/crack.rb</strong></a> shows press releases  coming out of 1600 Amphitheatre Parkway for the next few weeks.    If there are multiple in queue, you can page them  using the red &#8220;Next Press Release&#8221; button.</p>
<p>Bottom line: the future  is  about establishing standards.  </p>
<p>These upcoming announcements show Google gets it.</p>
<p>Please keep this  quiet so Google doesn&#8217;t patch the security hole.</p>
<p>Link:<a href="http://www.rimmkaufman.com/content/google-open.html"><strong>/cgi/private/crack.rb</strong></a> </p>
<p>(post  4/1/08)</p>
<a href="http://www.rimmkaufman.com/rkgblog/tag/1600-amphitheatre-parkway" rel="tag">1600 Amphitheatre Parkway</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/android" rel="tag">android</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/april-fools" rel="tag">april fools</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/code" rel="tag">code</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/fun" rel="tag">Fun</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/google" rel="tag">google</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/hack" rel="tag">hack</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/mad-libs" rel="tag">mad libs</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/open-social" rel="tag">open social</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/security-hole" rel="tag">security hole</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/sitemap" rel="tag">sitemap</a>, <a href="http://www.rimmkaufman.com/rkgblog/tag/war-games" rel="tag">war games</a><p class="akst_link"><div class="sharethisdiv">
<a href="http://www.rimmkaufman.com/rkgblog/?p=776&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_776" class="akst_share_link" rel="noindex nofollow">Share this post</a> (via email, Digg, Delicious, etc)
</div>
</p>]]></content:encoded>
			<wfw:commentRss>http://www.rimmkaufman.com/rkgblog/2008/03/30/google-pr-cracked/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
