<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!-- generator="wordpress/2.0.9" --><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Tecnotertulia</title>
	<link>http://www.tecnotertulia.com</link>
	<description>Observations at the Humanities and Technology Crossroads</description>
	<pubDate>Sun, 28 Feb 2010 11:06:59 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.9</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/tecnotertulia" /><feedburner:info uri="tecnotertulia" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Roof Repair in the Canary Islands</title>
		<link>http://feedproxy.google.com/~r/tecnotertulia/~3/WOcOwusRuGU/181</link>
		<comments>http://www.tecnotertulia.com/life-on-gran-canaria/roof-repair-in-the-canary-islands/181#comments</comments>
		<pubDate>Sat, 27 Feb 2010 22:24:44 +0000</pubDate>
		<dc:creator>Gustave Stresen-Reuter</dc:creator>
		
		<category>Life on Gran Canaria</category>

		<guid isPermaLink="false">http://www.tecnotertulia.com/life-on-gran-canaria/roof-repair-in-the-canary-islands/181</guid>
		<description><![CDATA[While living here I&#8217;ve had several opportunities to do home repair or participate in minor constructions jobs. The most recent task was repairing a trough that had developed on the roof of our building and that appeared to be allowing water to collect and filter through to my upstairs neighbor&#8217;s ceiling.

My neighbor was going to [...]]]></description>
			<content:encoded><![CDATA[<p>While living here I&#8217;ve had several opportunities to do home repair or participate in minor constructions jobs. The most recent task was repairing a trough that had developed on the roof of our building and that appeared to be allowing water to collect and filter through to my upstairs neighbor&#8217;s ceiling.</p>

<p>My neighbor was going to pour some cement into the trough (a depression in the roof about 2 meters in diameter) and paint over it, but I suggested that maybe we should go a little further. I hate doing things twice. My father was here visiting and what better way to spend your vacation than helping your son repair his roof?</p>

<p><a class="imagelink" href="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4397.jpg" title="Removing Old Paint"><img id="image170" src="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4397.thumbnail.jpg" alt="Removing Old Paint" align="right" /></a>We started by cleaning the affected area, removing the old paint and vacuming out the dust and other junk that had accumulated between the tiles over the years.</p>

<p><a class="imagelink" href="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4401.jpg" title="Applying Resin"><img id="image171" src="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4401.thumbnail.jpg" alt="Applying Resin" align="right" /></a>We then applied a &#8220;resin&#8221; (not sure of the chemical makeup) to help the cement stick and minimize leaking. When the resin dries, it leaves behind a sticky substance not unlike the glue on the back of some price tags (that is impossible to remove).</p>

<div>
<div style="width:150px; float: right;"><a class="imagelink" href="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4415.jpg" title="Depth of Depression"><img id="image172" src="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4415.thumbnail.jpg" alt="Depth of Depression" align="right" style="display: block;" /></a><a class="imagelink" href="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4416.jpg" title="Measuring depth of depression"><img id="image173" src="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4416.thumbnail.jpg" alt="Measuring depth of depression" align="right" style="display: block;" /></a></div>
<p>The hole we were trying to fill was about 1.5cm deep (about half an inch). Note that we only measured one dimension. More on why later&#8230;</p>
</div>

<p><br style="clear:both" /></p>

<div>
<div style="width:150px; float: right;"><a class="imagelink" href="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4417.jpg" title="Filling with mortar"><img id="image174" src="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4417.thumbnail.jpg" alt="Filling with mortar" align="right" /></a><a class="imagelink" href="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4418.jpg" title="Leveling mortar to fill trough"><img id="image175" src="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4418.thumbnail.jpg" alt="Leveling mortar to fill trough" align="right" /></a><a class="imagelink" href="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4419.jpg" title="Applying trowel to flatten"><img id="image176" src="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4419.thumbnail.jpg" alt="Applying trowel to flatten" align="right" /></a><a class="imagelink" href="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4420.jpg" title="Depression with mortar prior to painting"><img id="image177" src="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4420.thumbnail.jpg" alt="Depression with mortar prior to painting" align="right" /></a><a class="imagelink" href="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4438.jpg" title="Dried mortar"><img id="image178" src="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4438.thumbnail.jpg" alt="Dried mortar" align="right" /></a></div>
<p>I had never poured cement before but my father had, so with his help, we managed to pour a fairly nice patch filling the hole. We used an entire 20 kilo bag of cement (well, 85% of the bag) and were very careful not to let the cement get too wet. The cement dried in a few hours (it was hot and sunny) but we dampened it to keep it from cracking and by the next day, it was ready to be painted.</p>
</div>

<p><br style="clear:both" /></p>

<p><a class="imagelink" href="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4440.jpg" title="Starting paint job"><img id="image179" src="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4440.thumbnail.jpg" alt="Starting paint job" align="right" /></a>The paint, known as sealent here, seemed to be a &#8220;rubberized&#8221; acrylic paint with some insulating properties. It is a bit disturbing to think that this is the ONLY thing keeping water from penetrating the tiles, mortar, and cement below. Shouldn&#8217;t there be some sort of rubberized layer (at least 1/4 inch thick) glued to the surface with some petroleum based product? Apparently, this paint-only approach is standard here in the islands.</p>

<p><a class="imagelink" href="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4442.jpg" title="Finished Product"><img id="image180" src="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4442.thumbnail.jpg" alt="Finished Product" align="right" /></a>Two coats (and 24 hours) later, the job was done, and just in time too. It started to rain about 8 hours later. Unfortunately, for all of my good intentions, it looks like this work was mostly for naught. As I stated above, we only measured the depth to fill by one dimension. This is because the neighbor was convinced the water was leaking through where it was accumulating. <a class="imagelink" href="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4446.jpg" title="Failed repair"><img id="image182" src="http://www.tecnotertulia.com/wp-content/uploads/2010/02/img_4446.thumbnail.jpg" alt="Failed repair" align="right" /></a>I, however, suspected that filling that one hole would simply push the water to other parts of the greater depression, which is in fact what happened. Thus, to really fix the problem, we&#8217;re probably going to have to fill nearly the entire roof with about 2cm of mortar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecnotertulia.com/life-on-gran-canaria/roof-repair-in-the-canary-islands/181/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tecnotertulia.com/life-on-gran-canaria/roof-repair-in-the-canary-islands/181</feedburner:origLink></item>
		<item>
		<title>In Memory of My Mom</title>
		<link>http://feedproxy.google.com/~r/tecnotertulia/~3/NBwHBKrcEXc/168</link>
		<comments>http://www.tecnotertulia.com/life-on-gran-canaria/in-memory-of-my-mom/168#comments</comments>
		<pubDate>Sun, 22 Nov 2009 22:36:30 +0000</pubDate>
		<dc:creator>Gustave Stresen-Reuter</dc:creator>
		
		<category>Life on Gran Canaria</category>

		<guid isPermaLink="false">http://www.tecnotertulia.com/life-on-gran-canaria/in-memory-of-my-mom/168</guid>
		<description><![CDATA[
Gustave Stresen-Reuter is a fan ofTraveling Wee HorseCreate your Fan Badge
]]></description>
			<content:encoded><![CDATA[<p>
<!-- Facebook Fan Badge START --><div style="width: 100%;"><div style="background: #3B5998;padding: 5px;"><img src="http://www.facebook.com/images/fb_logo_small.png" alt="Facebook"/><img src="http://badge.facebook.com/badge/223135049744.720414587.1799730001.png" alt="" width="0" height="0"/></div><div style="background: #EDEFF4;display: block;border-right: 1px solid #D8DFEA;border-bottom: 1px solid #D8DFEA;border-left: 1px solid #D8DFEA;margin: 0px;padding: 0px 0px 5px 0px;"><div style="background: #EDEFF4;display: block;padding: 5px;"><table cellspacing="0" cellpadding="0" border="0"><tr><td valign="top"><img src="http://www.facebook.com/images/icons/fbpage.gif" alt=""/></td><td valign="top"><p style="color: #808080;font-family: verdana;font-size: 11px;margin: 0px 0px 0px 0px;padding: 0px 8px 0px 8px;"><a href="http://www.facebook.com/tedmasterweb" title="Gustave Stresen-Reuter" target="_TOP" style="color: #3B5998;font-family: verdana;font-size: 11px;font-weight: normal;margin: 0px;padding: 0px 0px 0px 0px;text-decoration: none;">Gustave Stresen-Reuter</a> is a fan of</p></td></tr></table></div><div style="background: #FFFFFF;clear: both;display: block;margin: 0px;overflow: hidden;padding: 5px;"><table cellspacing="0" cellpadding="0" border="0"><tr><td valign="middle"><a href="http://www.facebook.com/pages/Traveling-Wee-Horse/223135049744" title="Traveling Wee Horse" target="_TOP" style="border: 0px;color: #3B5998;font-family: verdana;font-size: 12px;font-weight: bold;margin: 0px;padding: 0px;text-decoration: none;"><img src="http://www.facebook.com/profile/pic.php?oid=AAAAAQAQn8C3gb6xHjZflKhNHSGaHgAAAAySoIBjkCzytxReRTurUkvp&#038;size=square" style="border: 0px;margin: 0px;padding: 0px;" alt="Traveling Wee Horse"/></a></td><td valign="middle" style="padding: 0px 8px 0px 8px;"><a href="http://www.facebook.com/pages/Traveling-Wee-Horse/223135049744" title="Traveling Wee Horse" target="_TOP" style="border: 0px;color: #3B5998;font-family: verdana;font-size: 12px;font-weight: bold;margin: 0px;padding: 0px;text-decoration: none;">Traveling Wee Horse</a></td></tr></table></div></div><div style="display: block;float: right;margin: 0px;padding: 4px 0px 0px 0px;"><a href="http://www.facebook.com/facebook-widgets/fanbadges.php" title="Create your Fan Badge" target="_TOP" style="color: #3B5998;font-family: verdana;font-size: 11px;font-weight: none;margin: 0px;padding: 0px;text-decoration: none;">Create your Fan Badge</a></div></div><!-- Facebook Fan Badge END --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecnotertulia.com/life-on-gran-canaria/in-memory-of-my-mom/168/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tecnotertulia.com/life-on-gran-canaria/in-memory-of-my-mom/168</feedburner:origLink></item>
		<item>
		<title>Libros y hardware gratis</title>
		<link>http://feedproxy.google.com/~r/tecnotertulia/~3/WmuGTtBZCh4/167</link>
		<comments>http://www.tecnotertulia.com/meine-firma/libros-y-hardware-gratis/167#comments</comments>
		<pubDate>Mon, 10 Aug 2009 12:02:45 +0000</pubDate>
		<dc:creator>Gustave Stresen-Reuter</dc:creator>
		
		<category>Meine Firma (My Company)</category>

		<guid isPermaLink="false">http://www.tecnotertulia.com/meine-firma/libros-y-hardware-gratis/167</guid>
		<description><![CDATA[Estoy regalando unos libros y unos componentes de hardware al primero que pase por mi casa a recogerlo (no el primero que llame, ni el primero que conteste por correo, etc&#8230;). Las únicas condiciones son las siguientes:


Si quieres un libro, te tienes que llevar todos
Si quieres un componente de hardware, te tienes que llevar todos [...]]]></description>
			<content:encoded><![CDATA[<p>Estoy regalando <a href="http://tedmasterweb.com/free-books/">unos libros</a> y unos componentes de hardware al primero que pase por mi casa a recogerlo (no el primero que llame, ni el primero que conteste por correo, etc&#8230;). Las únicas condiciones son las siguientes:</p>

<ol>
<li>Si quieres un libro, te tienes que llevar todos</li>
<li>Si quieres un componente de hardware, te tienes que llevar todos Y me tienes que sacar el disco duro del ordenador (te dejaré el disco original, que está averiado)</li>
<li>No puedes ser alguien con quien ya tengo una relación  pero SÍ tienes que tener una relación con alguien que tiene relación conmigo (sí, quiero ampliar mi red de contactos)</li>
</ol>

<ul>
<li><a href="http://tedmasterweb.com/free-books/">La lista de libros</a></li>
<li>Componentes de hardware incluyen:

<ul>
<li>iBook G4 (800 Mhz, white, incluye todos los discos de instalación etc., pero que no arranca ya)</li>
<li>FireWire CD Burner</li>
<li>Wireless mouse (but not bluetooth)</li>
<li>M-Audio GrooveLap Transit headset (digital headphones and microphone)</li>
</ul></li>
</ul>

<p>Estimo que estoy regalando $1.600,00 en mercancia&#8230; Por favor, pasen la palabra!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecnotertulia.com/meine-firma/libros-y-hardware-gratis/167/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tecnotertulia.com/meine-firma/libros-y-hardware-gratis/167</feedburner:origLink></item>
		<item>
		<title>PHP BBEdit Clipping Set Updated</title>
		<link>http://feedproxy.google.com/~r/tecnotertulia/~3/5NG8qYgXFYg/166</link>
		<comments>http://www.tecnotertulia.com/development/php-bbedit-clipping-set-updated/166#comments</comments>
		<pubDate>Wed, 01 Jul 2009 08:27:12 +0000</pubDate>
		<dc:creator>Gustave Stresen-Reuter</dc:creator>
		
		<category>Development</category>

		<guid isPermaLink="false">http://www.tecnotertulia.com/uncategorized/php-bbedit-clipping-set-updated/166</guid>
		<description><![CDATA[A new version of the PHP BBEdit Clipping Set is available for download (for free) immediately:

http://tedmasterweb.com/php-bbedit-clipping-set/

HIGHLIGHT: The new set contains more than 9,200 clippings (that&#8217;s about 3,000 more than the previous version).

Changes in this version


all clippings (optionally) conform as closely as possible to the Zend/PEAR style guides
removed hundreds of duplicate clippings (mostly constants)
removed &#8220;cruft&#8221; (primarily [...]]]></description>
			<content:encoded><![CDATA[<p>A new version of the PHP BBEdit Clipping Set is available for download (for free) immediately:</p>

<p><a href="http://tedmasterweb.com/php-bbedit-clipping-set/">http://tedmasterweb.com/php-bbedit-clipping-set/</a></p>

<p>HIGHLIGHT: The new set contains more than 9,200 clippings (that&#8217;s about 3,000 more than the previous version).</p>

<h1>Changes in this version</h1>

<ul>
<li><p>all clippings (optionally) conform as closely as possible to the Zend/PEAR style guides</p></li>
<li><p>removed hundreds of duplicate clippings (mostly constants)</p></li>
<li><p>removed &#8220;cruft&#8221; (primarily from Snippets and Control Structures)</p></li>
<li><p>reorganized clippings into more logical folder structures</p></li>
<li><p>based this set on a very recent version of the manual</p></li>
<li><p>the set now includes more than 9,200 functions, constants, methods, properties, snippets, control structures and more</p></li>
<li><p>added additional &#8220;interactive&#8221; functionality to some date functions (I could never remember exactly which switches to use when formatting dates)</p></li>
<li><p>the set now includes class methods and properties</p></li>
<li><p>renamed the clipping set to just &#8220;PHP.php&#8221; (except for the &#8220;Loose&#8221; version, see page for details)</p></li>
</ul>

<p>+++</p>

<p>I hope you enjoy and be sure to let me know if you find any bugs or have any requests for improvement!</p>

<p>Sincerely,</p>

<p>Ted Stresen-Reuter
http://tedmasterweb.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecnotertulia.com/development/php-bbedit-clipping-set-updated/166/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tecnotertulia.com/development/php-bbedit-clipping-set-updated/166</feedburner:origLink></item>
		<item>
		<title>AdSense Arbitrage Experiment</title>
		<link>http://feedproxy.google.com/~r/tecnotertulia/~3/Ao1mJOCTfO8/165</link>
		<comments>http://www.tecnotertulia.com/development/adsense-arbitrage-experiment/165#comments</comments>
		<pubDate>Wed, 10 Jun 2009 16:54:56 +0000</pubDate>
		<dc:creator>Gustave Stresen-Reuter</dc:creator>
		
		<category>Development</category>

		<guid isPermaLink="false">http://www.tecnotertulia.com/development/adsense-arbitrage-experiment/165</guid>
		<description><![CDATA[I&#8217;ve heard many stories about people making lots of money via Google&#8217;s AdWords and AdSense programs. Most people make this income via AdSense Arbitrage: buying AdWords for less than the income generated by the AdSense ads appearing on your site. You pocket the difference.

I don&#8217;t believe 1% of what I hear so I decided to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve heard many stories about people <a href="http://www.wolf-howl.com/sem/adsense-arbitrage-tips-tricks-secrets/">making lots of money via Google&#8217;s AdWords and AdSense</a> programs. Most people make this income via <a href="http://webmasterseoblog.blogspot.com/2009/03/adsense-arbitrage-is-dead.html">AdSense Arbitrage</a>: buying AdWords for less than the income generated by the AdSense ads appearing on your site. You pocket the difference.</p>

<p>I don&#8217;t believe 1% of what I hear so I decided to research these claims. While researching I stumbled on <a href="http://www.spyfu.com/">Spyfu</a> which offers a list of the <a href="http://www.spyfu.com/TopList.aspx?listId=3">most expensive keywords</a> being used in AdWords. The astute reader familiar with Google&#8217;s AdWords and AdSense programs will immediately recognize the arbitrage opportunity.</p>

<p>Living in a vacation paradise, having a large selection of potential &#8220;stock&#8221; photos, knowing something about SEO, and having just received a gift certificate for 50€ in AdWords, I decided to try a little experiment. According to Spyfu.com, &#8220;hotels&#8221;, &#8220;travel&#8221;, &#8220;flights&#8221;, &#8220;rental&#8221;, &#8220;vacations&#8221;, &#8220;holidays&#8221; are among the higher paying keywords that one would associate with my collection of stock photos.</p>

<p>The goal is/was to spend (invest) the 50€ on AdWords at rates lower than what other advertisers are paying to have their ads appear on my site, and then hope that users either buy a license for my photographs or click on an advertisement. This is classic &#8220;arbitrage&#8221; but avoids breaking Google&#8217;s AdSense guidelines because the primary goal is to sell licenses and give users some pretty pictures to look at.</p>

<p>I set up a &#8220;<a href="http://tedmasterweb.com/stock-photography/">stock photography</a>&#8221; subsite on tedmasterweb.com with lots of pictures of landscapes here in the islands, in other parts of Europe and one of my dad&#8217;s farm outside Chicago. Nothing complicated, but fine tuned for SEO, ease of use, and directed at potential stock photo buyers or anyone who likes to look at pretty pictures of places they are going to visit.</p>

<p>At first the ads appearing on the site were all for financial-related things (like masters degrees and stock trading systems). I changed the subdirectory from &#8220;stock&#8221; to &#8220;stock-photography&#8221; and the ads, thankfully, changed to reflect more travel and graphic arts related offers. I also added a AdSense placement on the landing page (rather than just on the enlargement pages). These two changes improved my &#8220;conversions&#8221;. In just a couple of days I had 3 clicks on ads (whereas prior to the 50€ I went months without a single click!). This great article on another <a href="http://www.memwg.com/keyword-elite-adsense-arbitrage-experiment-part-7/">AdSense Arbitrage Experiment</a> corroborates my findings (money can be made, but you&#8217;re likely going to lose at first).</p>

<p>In the end, as you might have guessed if you have any experience at all in this field, the experiment proved what any reasonable person would assume: My ROI on this so far is a loss of 48€ (plus the several hours I put in to setting everything up, which I could have billed at 70€/hour for any of my clients).</p>

<p>The next step, of course, will be to improve the quality of the textual content on each page so that it targets holiday travelers more directly and gets them to link to these pictures (and ultimately click on the ads too) and to target my keywords better (so that only very interested people click on my site). I&#8217;ll post an update at some point so stay tuned!</p>

<p>But before I go&#8230;</p>

<p>I also signed up for Google&#8217;s AdSense for domains since I had several domains I&#8217;d purchased as part of this same experiment (but a more developed version of it). We&#8217;ll see if this provides any additional income. Here are the domains in case you&#8217;re curious:</p>

<ol>
<li><a href="http://stock-holiday-pictures.com">Stock holiday pictures</a> (<a href="http://stockholidaypictures.com">without hyphens</a>)</li>
<li><a href="http://stockholidayphotographs.com">Stock holiday photographs</a></li>
<li><a href="http://stock-photography-royalty-free.com">Stock photography royalty free</a></li>
<li><a href="http://stock-vacation-pictures.com">Stock vacation pictures</a> (<a href="http://stockvacationpictures.com">without hyphens</a>)</li>
<li><a href="http://stockvacationphotographs.com">Stock vacation photographs</a></li>
</ol>

<p>We&#8217;ll see how all this turns out, but the next time someone tells you they&#8217;re bringing in 4,000€/month in AdSense income, tell them you want to see their AdSense account before you&#8217;ll believe it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecnotertulia.com/development/adsense-arbitrage-experiment/165/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tecnotertulia.com/development/adsense-arbitrage-experiment/165</feedburner:origLink></item>
		<item>
		<title>ASP.NET for PHP Fusebox Developers</title>
		<link>http://feedproxy.google.com/~r/tecnotertulia/~3/auYj_9uaeMI/158</link>
		<comments>http://www.tecnotertulia.com/development/aspnet-for-php-fusebox-developers/158#comments</comments>
		<pubDate>Thu, 30 Apr 2009 17:20:35 +0000</pubDate>
		<dc:creator>Gustave Stresen-Reuter</dc:creator>
		
		<category>Development</category>

		<guid isPermaLink="false">http://www.tecnotertulia.com/development/aspnet-for-php-fusebox-developers/158</guid>
		<description><![CDATA[I recently implemented a newsletter subscription
form in ASP.NET (2.0) for the CGIAR
Secretariat on behalf of CGNET. This is
the second project I&#8217;ve done in ASP.NET for CGIAR. I&#8217;ve never considered myself
a skilled ASP developer and like many, picked up my ASP skills based on code
I&#8217;d seen on the
intertubes and via transfer from related
languages. In other words, [...]]]></description>
			<content:encoded><![CDATA[<p>I recently implemented a <a href="http://www.cgiar.org/newsroom/subscription/">newsletter subscription
form</a> in <a href="http://www.asp.net/">ASP.NET</a> (2.0) for the <a href="http://www.cgiar.org/"
title="The Consultative Group on International Agricultural Research - One of the principal members of the group is the World Bank">CGIAR
Secretariat</a> on behalf of <a href="http://www.cgnet.com/">CGNET</a>. This is
the second project I&#8217;ve done in ASP.NET for CGIAR. I&#8217;ve never considered myself
a skilled ASP developer and like many, picked up my ASP skills based on code
I&#8217;d seen on <a href="http://vodpod.com/watch/679727-ted-stevens-the-internet-is-a-series-of-tubes-daily-show">the
intertubes</a> and via <a href="http://en.wikipedia.org/wiki/Language_transfer">transfer from related
languages</a>. In other words, prior to this project, I was a somewhat capable
ASP <a href="http://en.wikipedia.org/wiki/Spagetti_code">spaghetti
coder</a>.</p>

<p>Tired of producing mediocre code and eager to learn what this whole .Net
thing was all about, I decided to invest some time learning how to write better
ASP and take advantage of as many features of .Net as I could. Armed with two
really good books on the subject (<a href="http://www.wrox.com/WileyCDA/WroxTitle/Beginning-ASP-NET-3-5-In-C-and-VB.productCd-047018759X.html">Beginning
ASP.NET 3.5 in C# and VB</a> and <a href="http://oreilly.com/catalog/9780596529567/">Programming ASP.NET 3.5, 4th
Edition</a>), I learned a lot about the .Net revolution and in the end I
significantly improved the quality of my code.</p>

<p>.Net borrows heavily from <a href="http://struts.apache.org/">other</a> <a href="http://fusebox.org/">MVC-like</a> <a href="http://www.mustap.com/phpzone_post_73_top-10-php-mvc-frameworks">frameworks</a>.
I was surprised by <strong>the number of similarities between the ASP.NET-way
of doing things and the <a href="http://fusebox.org/go/getting-started/what-is-fusebox"
title="I'm referring mostly to Fusebox 3, which was first released October 2001, more than 4 years before the first official release of ASP.NET!">Fusebox-way</a>
of doing things</strong>. The rest of this post examines some of these
similarities and other aspects of working with ASP.NET. This is mostly an
examination of ASP.NET from a (PHP) Fusebox developers point of view.</p>

<h3>The Project</h3>

<p>The CGIAR Secretariat is responsible for <a href="http://www.cgiar.org">www.cgiar.org</a>. The <a href="http://www.cgiar.org/newsroom/">CGIAR Newsroom</a> is one of the primary
sections of their web site. It includes an <a href="http://www.cgiar.org/newsroom/releases/">aggregate RSS news feed</a> of
all news items coming out of many of the <a href="http://www.cgiar.org/centers/">CGIAR centers</a>. Since many people still
are unaware of the advantages of RSS, the CGIAR Secretariat asked if we could
set up a system that would allow people to <a href="http://www.cgiar.org/newsroom/subscriptions/">subscribe to the feed via
email</a>. Specifically, the system we set up allows people to subscribe and/or
unsubscribe via cgiar.org which then automatically sends periodic emails of
recently added news items (as they&#8217;re added, of course).</p>

<h3 id="the_bottom_line">The Bottom Line</h3>

<p>As an &#8220;experienced&#8221; web application developer I very much appreciated the
ASP.NET-way of doing things. There was nothing in this project that ASP.NET
wasn&#8217;t able to handle elegantly and more or less efficiently. The project
consisted of implementing the following features: </p>

<ul>
  <li>A public <a href="http://www.cgiar.org/newsroom/subscriptions/">subscribe
    and unsubscribe form</a> with CAPTCHA</li>
  <li>A nightly script that produces a notification email, with alternate views
    (plain text and html), consisting of news items that had not been sent in
    prior emails (which implies keeping track of what&#8217;s been sent and what
    hasn&#8217;t)</li>
  <li><del>A password protected administration interface</del></li>
</ul>

<p>The entire project was completed in about 80 hours (including an initial
version of the administration interface which was later tabled).</p>

<p>If given the choice of doing the same project in PHP Fusebox, assuming I had
the same knowledge and experience with PHP that I had with ASP when I started,
<strong>would I have chosen PHP Fusebox over ASP.NET?</strong> Maybe&#8230;</p>

<h3 id="master-files">Master Pages</h3>

<p>One of the goals of any application framework is to maximize code reuse (and
conversely, minimize code duplication). Functions (methods) are one example of
how this is accomplished, but when it comes to the presentation level,
developers often find they need a more powerful programming model. Both ASP.NET
and Fusebox (and many other web application frameworks) provide tools
<em>capable</em> of complete solutions. In ASP.NET, <a href="http://msdn.microsoft.com/en-us/library/wtxbf3hh.aspx">a Master Page</a>
is a template for all the pages of a site although its functionality goes
beyond a simple templating engine. Master Pages also let you define &#8220;behaviors&#8221;
common to all pages, similar, somewhat, to the Fusebox 3 <i>fbx_Settings</i>
file or the Fusebox 4 <i>fusebox.init</i> file. </p>

<p>A powerful templating engine will frequently go beyond &#8220;one layer&#8221; and allow
the developer to subdivide sections of the Master to be handled by other parts
of the application. ASP.NET offers this functionality directly and at least <a href="https://saywire.com">one project I&#8217;ve worked on in Fusebox</a> had the
same functionality. I found a few opportunities to use this feature on this
project.</p>

<p>Fusebox does not offer a templating engine out of the box, but you can
easily create much of this capability in Fusebox 4 (and to some degree in
Fusebox 3) using Content Variables and a &#8220;layout&#8221; circuit. Most projects I work
on offer some such circuit.</p>

<p>In the end I got a lot of milage out of Master Pages for this project and
hope to be able to use them in future projects for <a href="http://www.cgiar.org">CGIAR</a>.</p>

<h3 id="postback">Postback</h3>

<p>By default, every ASP.NET page contains a form that executes on the server. The
value of the &#8220;action&#8221; attribute for the form is the current file. Microsoft has
termed this approach &#8220;postback&#8221; because you post the form back to the same
document that created it. In some respects this is similar to the Fusebox
implementation of the <a href="http://en.wikipedia.org/wiki/Front_controller">Front Controller design
pattern</a>, where every request is for the same server-side script (e.g.:
<i>/index.php</i>) followed by a Query String containing directions on what
files, functions, and procedures to execute. </p>

<p>ASP.NET offers the developer server-side elements knows as <a href="http://www.w3schools.com/ASPNET/control_panel.asp">panels</a>. Panels are
&#8220;controls&#8221; (elements?) that contain other controls. By setting the visible
property of a panel you can control whether or not its contents are visible on
the page. For the CGIAR project mentioned above, I used this technique to
display either the subscription form or the &#8220;thank you&#8221; message following a
successful subscription. I suppose that, if each ASP.NET page is the equivalent
of a Fusebox circuit, that each panel <em>could be</em> the equivalent of a
Fuseaction. You would simply set the display for all for all of them to false
(except the default fuseaction ;-) ) and then display them as needed. Coming
from Fusebox, I found the concept very easy to grasp.</p>

<h3 id="code_behind">Code-behind</h3>

<p>Microsoft made an attempt to separate application logic from presentation with
.Net. In my opinion, they succeeded. </p>

<p>In order to minimize the amount of raw code found in HTML, .Net provides
something known as &#8220;code-behind&#8221; pages, which are essentially includes with the
same name as the file they are attached to. The idea is that your application
code goes in the code-behind page and if you need to modify the presentation
(the HTML) from within the application code, you do so by referencing elements
in your HTML page via their ID attribute (this is an oversimplification but
summarizes the approach).</p>

<p>Fusebox, on the other hand, tries to separate code by prefixing file names
with one of <i>dsp_</i>, <i>qry_</i>, <i>act_</i> (and sometimes <i>lyt_</i>).
<i></i></p>

<ul>
  <li><i>qry_</i> files contain datasource queries and (usually) return some
    sort of object or array echoed to the browser by a <i>dsp_</i> file. </li>
  <li><i>act_</i> files are for those instances in which you need process data
    prior to executing a query or echoing to the browser.</li>
  <li><em>lyt_</em> files are, in essence, the same as Master Pages in
  ASP.NET.</li>
</ul>

<p>In ASP.NET the &#8220;HTML&#8221; files contain a LOT of .Net namespaced elements. This
means the files can be completely valid XHTML (with the single, notable
exception of the Processing Instructions found at the top of each page). The
benefit is that these files are suddenly very portable and can be consumed by
any system capable of reading XML.</p>

<p>If you wanted to reproduce this ASP.NET functionality in Fusebox, you would
need to write a plug-in that parses the <i>dsp_</i> files looking for &lt;fbx:
elements and responds accordingly. You could put all of your code in
<i>act_</i> files which would essentially turn them into code-behind files. Now
<em>there&#8217;s</em> potential open source time sucker!</p>

<h3>Data Controls</h3>

<p>As one would expect, the <a href="http://www.eggheadcafe.com/tutorials/aspnet/0af43149-8fa7-4ab8-8d08-e885090f1a8d/aspnet-data-control-seri.aspx">data
controls</a> are very complete, but figuring out how to do something like
nesting GridViews was not obvious and were it not for a <a href="http://msdn.microsoft.com/en-us/library/aa992038(VS.80).aspx">Nested
GridView walk-through article</a> on MSDN, I never would have been able to
figure out how to do it. Furthermore, I&#8217;m not convinced executing sql on EVERY
ROW of a record set is really a good idea (the authors of the walk-through
admit this is not the best approach, but only as it concerns caching&#8230;). </p>

<p>Much of the <a href="http://www.cgiar.org/newsroom/">CGIAR Newsroom</a>
revolves around their RSS feed (which is a compilation of feeds from all of the
CGIAR Centers). ASP.NET 2.0 and above include controls for using XML as a data
source and thus facilitating the display of XML data in a web page. </p>

<p>Unfortunately, in version 2.0 of .Net (and possibly higher), using XML as a
data source only allows you to <em>display</em> the data. It does
<strong>not</strong> allow you to use the built-in INSERT, UPDATE, and DELETE
features of the GridView control. There are <a href="http://forums.asp.net/p/945423/1273232.aspx">work-arounds for
implementing this missing functionality</a> but I have to wonder if you save
any time hacking in the functionality vs. building the entire administration
interface the &#8220;old&#8221; way (which can be done pretty quickly using XSLT). By my
estimates, it&#8217;s a draw, at best.</p>

<h3 id="aspdotnet_advantages">ASP.NET Advantages</h3>

<p>For my needs, web controls, validation in particular, significantly reduce
web application development time. I simply cannot express how much I like the
validation controls and WISH PHP had something similar! </p>

<p><a href="http://en.wikipedia.org/wiki/IntelliSense">IntelliSense</a> greatly
speeds up coding - Microsoft offers several <a href="http://www.microsoft.com/Express/"
title="WARNING: the page requires the Silverlight plugin - idiots">free (web)
application development tools</a> that work quite well and are more than
adequate for the projects I usually work on and many include IntelliSense.</p>

<p>I don&#8217;t think I could have completed this project as quickly without
IntelliSense.</p>

<h3 id="aspdotnet_ambiguities">ASP.NET Ambiguities and Disadvantages</h3>

<p>Since no language is free of sin, here is my list of things that got the
best of me while working on this project:</p>

<ul>
  <li>web.config cannot be part of code repository since it is machine
    dependent. If application configuration options are so different between
    deployment environments, then maybe the author of the application should
    consider using a different development environment. I would prefer to have
    the application configuration code right in the application tucked into
    code that &#8220;sniffs&#8221; the environment and configures accordingly. This makes
    for MUCH more portable code.</li>
  <li>.Net developers frequently publish their source code, but it usually
    needs to be compiled so unless you&#8217;re into that or have the time to learn
    how to do it (and do it right), you won&#8217;t find the same kind of huge Open
    Source community of code that exists for PHP</li>
  <li>ASP.NET 2.0 includes some Authentication and Authorization controls, but
    like most stuff like this, you have to do things the ASP.NET-way or you
    can&#8217;t use these controls. In other words, there is no (apparent) way to
    retrofit these controls onto existing authentication mechanisms. In the end
    this is probably a good thing since most existing authentication methods
    are not very secure, but in the real world most clients simply are not
    willing to put money into changing existing systems unless you can clearly
    demonstrate they are broken.</li>
  <li>One of the main complaints of Fusebox 4 was the XML files. Rather than
    being used simply for configuration, you could easily add business logic to
    them. More than one programmer has asked herself: &#8220;Why bother with XML to
    represent classes? Why not just use classes directly?&#8221; I must say, when
    programming in ASP.NET, I often feel like I&#8217;m simply setting application
    configuration parameters which, for anything but the most basic
    interactions, makes programming harder (and possibly more time-consuming)
    rather than easier (and faster) since you have to have a clear
    understanding of what state the application is in at the exact point where
    your code appears. This can be harder than it seems.</li>
</ul>

<p>In the end, if I had to do it all over again (and had the choice), I would
probably stick with PHP Fusebox but I&#8217;m grateful I had the opportunity to
improve my knowledge ASP.NET and I wish the CGIAR Secretariat the best with
their new system. </p>

<h3>Additional Reading and Links</h3>

<p><a href="http://www.packtpub.com/article/mixing-asp.net-webforms-and-asp.net-mvc">Convert
ASP.NET applications into real MVC frameworks</a></p>

<p><a href="http://www.adobe.com/devnet/coldfusion/articles/fusebox_basics.html">Fusebox
Basics</a></p>

<p><a href="http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks">Comparison
of Web Application Frameworks</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecnotertulia.com/development/aspnet-for-php-fusebox-developers/158/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tecnotertulia.com/development/aspnet-for-php-fusebox-developers/158</feedburner:origLink></item>
		<item>
		<title>Chicago - mejor ciudad del mundo</title>
		<link>http://feedproxy.google.com/~r/tecnotertulia/~3/eO6gHz5tx5w/164</link>
		<comments>http://www.tecnotertulia.com/life-on-gran-canaria/chicago-mejor-ciudad-del-mundo/164#comments</comments>
		<pubDate>Thu, 23 Apr 2009 08:17:18 +0000</pubDate>
		<dc:creator>Gustave Stresen-Reuter</dc:creator>
		
		<category>Life on Gran Canaria</category>

		<guid isPermaLink="false">http://www.tecnotertulia.com/life-on-gran-canaria/chicago-mejor-ciudad-del-mundo/164</guid>
		<description><![CDATA[No sé si es la mejor ciudad del mundo (de hecho tiene bastante en su contra) pero desde luego siempre he pensado que Chicago, mi ciudad natal, tiene muchísimo que ofrecer a cualquiera que la visite. Ahora parece que no soy el único que piensa así&#8230;

A través de un boricua viviendo en canarias, aprendí que [...]]]></description>
			<content:encoded><![CDATA[<p>No sé si es la mejor ciudad del mundo (de hecho <a href="http://chicago.everyblock.com/crime/by-primary-type/homicide/">tiene bastante en su contra</a>) pero desde luego siempre he pensado que Chicago, mi ciudad natal, tiene muchísimo que ofrecer a cualquiera que la visite. Ahora parece que no soy el único que piensa así&#8230;</p>

<p>A través de un <a href="http://boricuaencanarias.blogspot.com/">boricua viviendo en canarias</a>, aprendí que <a href="http://www.askmen.com/specials/2009_top_29/chicago.html">Chicago encabeza una lista de ciudades donde los hombres prefieren vivir</a> y hace poco, unos amigos nuestros que fueron a EE.UU. en semana santa pasaron unos días en Chicago y les sorprendió, que no esperaban que fuera tan grande, bonita, e interesante (¡cómo me gusta que alaben Chicago!). Si están planificando un viaje a EE.UU., pasen unos días en &#8220;Chi-town&#8221;. No se arrepentirán.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecnotertulia.com/life-on-gran-canaria/chicago-mejor-ciudad-del-mundo/164/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tecnotertulia.com/life-on-gran-canaria/chicago-mejor-ciudad-del-mundo/164</feedburner:origLink></item>
		<item>
		<title>Curiosa semejanza</title>
		<link>http://feedproxy.google.com/~r/tecnotertulia/~3/c4bj56YVS54/162</link>
		<comments>http://www.tecnotertulia.com/life-on-gran-canaria/curiosa-semejanza/162#comments</comments>
		<pubDate>Sat, 04 Apr 2009 11:51:40 +0000</pubDate>
		<dc:creator>Gustave Stresen-Reuter</dc:creator>
		
		<category>Life on Gran Canaria</category>

		<guid isPermaLink="false">http://www.tecnotertulia.com/life-on-gran-canaria/curiosa-semejanza/162</guid>
		<description><![CDATA[
Koyaanisqatsi - película completa (1983) 


CANARIAS TIMELAPSE from luis garcia de armas on Vimeo.

Las imágenes de Canarias Timelapse son realmente espectaculares. Tengo ganas de ver la película entera. Me pregunto si tiene trama o si son simplemente imágenes con música.
]]></description>
			<content:encoded><![CDATA[<p><object width="445" height="364"><param name="movie" value="http://www.youtube.com/v/PirH8PADDgQ&amp;hl=en&amp;fs=1&amp;border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/PirH8PADDgQ&amp;hl=en&amp;fs=1&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"></embed></object>
<br /><a href="http://video.google.com/videoplay?docid=5539613947839465921">Koyaanisqatsi - película completa (1983)</a> 
<br />
<br />
<object width="400" height="225"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=3846698&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=3846698&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object><br /><a href="http://vimeo.com/3846698">CANARIAS TIMELAPSE</a> from <a href="http://vimeo.com/user1459483">luis garcia de armas</a> on <a href="http://vimeo.com">Vimeo</a>.</p>

<p>Las imágenes de Canarias Timelapse son realmente espectaculares. Tengo ganas de ver la película entera. Me pregunto si tiene trama o si son simplemente imágenes con música.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecnotertulia.com/life-on-gran-canaria/curiosa-semejanza/162/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tecnotertulia.com/life-on-gran-canaria/curiosa-semejanza/162</feedburner:origLink></item>
		<item>
		<title>Círculo de Emprendedores Canarios</title>
		<link>http://feedproxy.google.com/~r/tecnotertulia/~3/Cs_87iCsCik/161</link>
		<comments>http://www.tecnotertulia.com/meine-firma/circulo-de-emprendedores-canarios/161#comments</comments>
		<pubDate>Fri, 03 Apr 2009 11:19:40 +0000</pubDate>
		<dc:creator>Gustave Stresen-Reuter</dc:creator>
		
		<category>Meine Firma (My Company)</category>

		<guid isPermaLink="false">http://www.tecnotertulia.com/meine-firma/circulo-de-emprendedores-canarios/161</guid>
		<description><![CDATA[For the past 2+ years I&#8217;ve been a member of the Círculo de Emprendedores Canarios. They&#8217;re a great group of young, motivated, entrepreneurs and I&#8217;m proud to be a founding member of the group. At present, there is little more than a listing of the businesses in the group but as time goes by we [...]]]></description>
			<content:encoded><![CDATA[<p>For the past 2+ years I&#8217;ve been a member of the <a href="http://www.circuloemprendedores.org" title="Home page of the Círculo de Emprendedores Canarios">Círculo de Emprendedores Canarios</a>. They&#8217;re a great group of young, motivated, entrepreneurs and I&#8217;m proud to be a founding member of the group. At present, there is little more than a listing of the businesses in the group but as time goes by we hope to add a variety of content. Most of the action, however, takes place at our monthly meetings and on our listserv (email list) where we share information on government subsidies, courses for entrepreneurs, and other resources available in our community. Membership in the group is by invitation only.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecnotertulia.com/meine-firma/circulo-de-emprendedores-canarios/161/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tecnotertulia.com/meine-firma/circulo-de-emprendedores-canarios/161</feedburner:origLink></item>
		<item>
		<title>I’m on Twitter</title>
		<link>http://feedproxy.google.com/~r/tecnotertulia/~3/yh1hNUvOKlY/160</link>
		<comments>http://www.tecnotertulia.com/uncategorized/im-on-twitter/160#comments</comments>
		<pubDate>Tue, 24 Mar 2009 10:37:39 +0000</pubDate>
		<dc:creator>Gustave Stresen-Reuter</dc:creator>
		
		<category>Uncategorized</category>

		<guid isPermaLink="false">http://www.tecnotertulia.com/uncategorized/im-on-twitter/160</guid>
		<description><![CDATA[After reading Yolanda&#8217;s most recent post about the uses of Twitter, and then Rands In Repose&#8217;s post about Twitter (especially about how to Twit), I bit the bullet and am taking the plunge. As one would expect, my Twitter name is tedmasterweb in case you&#8217;re interested in following my every footstep&#8230;

http://twitter.com/tedmasterweb
]]></description>
			<content:encoded><![CDATA[<p>After reading <a href="http://virtualb.com/blogs/yolanda/2009/03/16/este-dia-se-merece-un-post-sobre-las-redes-20-y-las-salidas-profesionales/">Yolanda&#8217;s most recent post about the uses of Twitter</a>, and then <a href="http://www.randsinrepose.com/archives/2009/03/02/the_art_of_the_tweet.html">Rands In Repose&#8217;s post about Twitter</a> (especially about how to Twit), I bit the bullet and am taking the plunge. As one would expect, my Twitter name is tedmasterweb in case you&#8217;re interested in following my every footstep&#8230;</p>

<p><a href="http://twitter.com/tedmasterweb">http://twitter.com/tedmasterweb</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecnotertulia.com/uncategorized/im-on-twitter/160/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tecnotertulia.com/uncategorized/im-on-twitter/160</feedburner:origLink></item>
	</channel>
</rss>
