<?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"
	>

<channel>
	<title>Cafe Silencio</title>
	<atom:link href="http://www.cafesilencio.net/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.cafesilencio.net/blog</link>
	<description>Adventures In Developing Rich Internet Applications</description>
	<pubDate>Thu, 05 May 2011 20:59:08 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Adventures in Marketing my Android Application</title>
		<link>http://www.cafesilencio.net/blog/adventures-in-marketing-my-android-application</link>
		<comments>http://www.cafesilencio.net/blog/adventures-in-marketing-my-android-application#comments</comments>
		<pubDate>Thu, 05 May 2011 20:59:08 +0000</pubDate>
		<dc:creator>seth</dc:creator>
		
		<category><![CDATA[stuff i learned]]></category>

		<category><![CDATA[android app.]]></category>

		<category><![CDATA[database]]></category>

		<category><![CDATA[mobile database]]></category>

		<category><![CDATA[mobile marketing]]></category>

		<category><![CDATA[mobile organizer]]></category>

		<guid isPermaLink="false">http://www.cafesilencio.net/blog/?p=331</guid>
		<description><![CDATA[A few days I finished the initial version of my first Android application Cigano (a personal mobile database). I submitted the application to the Android Market and also to Amazon.com&#8217;s app. store.  I&#8217;m waiting for approval from Amazon.com as I write this.  While I was excited to finish my second mobile app., my [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0in;">A few days I finished the initial version of my first <a title="Cigano personal mobile organizer for Android" href="http://www.cafesilencio.net/cigano" target="_blank">Android application Cigano (a personal mobile database)</a>. I submitted the application to the <a title="Link to mobile organizer in Android Market" href="https://market.android.com/details?id=net.cafesilencio.cigano.lite" target="_blank">Android Market</a> and also to Amazon.com&#8217;s app. store.  I&#8217;m waiting for approval from Amazon.com as I write this.  While I was excited to finish my second mobile app., my first was a todo list app. for the Iphone, now I&#8217;m faced with the daunting task of marketing my application.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">Like most software developers marketing isn&#8217;t my strong suit.  Marketing is after all a profession that stands on its own.  Since I&#8217;ve been neglecting my blog I thought I&#8217;d spend the next few weeks chronicling my marketing efforts and the results.  Perhaps my successes and mistakes will help other software developers.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">I&#8217;ve started by researching various options for marketing my Android application.  I&#8217;m not a wealthy software company that can spend a lot of money on PR campaigns so I&#8217;ve been seeking free or inexpensive marketing opportunities at least in the short term.  If my app. brings in a reasonable amount of revenue then I&#8217;ll explore paid alternatives in an effort to expand my product&#8217;s reach.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">My first approach has been to offer a paid and free version of my mobile application.  The free version displays ads on two screens and is fully functional except the app. is restricted to creating one database.  I prefer to try software before buying it especially if it&#8217;s a mobile phone application.  Even though Android and Iphone apps. are generally only a couple of dollars it&#8217;s still money and I want to make sure an app. works according to my expectations be fore buying.  I&#8217;m curious to see if the strategy will be successful for me.  I&#8217;m going on the premise that the ad supported version may bring in some revenue while at the same time giving users the opportunity to experience the full application and hopefully will then be compelled to purchase the paid version.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">As I mentioned I submitted the app. to both the Android Market and to Amazon.com&#8217;s app. store.  I  also submitted my Android app. to an Android app. portal. Although at the moment I can&#8217;t seem to remember which one and I apparently didn&#8217;t write it down.  This is obviously mistake number one.  I need to keep track of these kinds of things.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">I got a coupon code from Google for a $100.00 credit for ad words which arrived at just the right time.  I&#8217;m using that credit for a month long ad words campaign to market my Android application.  I&#8217;m curious to see how effective this will be.  I&#8217;ve gotten several clicks over the past few days and I&#8217;m watching the effectiveness of my keyword choices and making adjustments.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">So far I&#8217;ve had a few downloads and since the release was less than a week ago I feel encouraged.  I&#8217;m sure even the massively popular Angry Birds started out with just a few downloads in the beginning.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">Future marketing plans:</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">I&#8217;m going to continue looking for Android app. portals that I can submit my mobile application to in an effort to get somebody to write a review.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">I will continue to monitor the results of  my adwords campaign.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">A few years back I knew a couple people that worked for news.com.  Unfortunately they have moved on so I can&#8217;t beg for some media attention from them.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">Of course I&#8217;m going to continue enhancing my Android application.  Mainly I&#8217;m going to enhance it because it&#8217;s something I use on a daily basis.  So even if I don&#8217;t collect a lot of revenue from this project I&#8217;ve created something that is useful for me.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">I&#8217;ll be posting over the coming weeks on the progress of my marketing efforts and sharing the results.  If anybody has any marketing suggestions to share with the readers here please leave a comment.  Also feel free to <a href="https://market.android.com/details?id=net.cafesilencio.cigano.lite">download my Android application</a> ( start with the lite version ).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cafesilencio.net/blog/adventures-in-marketing-my-android-application/feed</wfw:commentRss>
		</item>
		<item>
		<title>Cigano Personal Mobile Database</title>
		<link>http://www.cafesilencio.net/blog/cigano-personal-mobile-database</link>
		<comments>http://www.cafesilencio.net/blog/cigano-personal-mobile-database#comments</comments>
		<pubDate>Sun, 01 May 2011 04:14:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[database design]]></category>

		<category><![CDATA[database management software]]></category>

		<category><![CDATA[database management software solutions]]></category>

		<category><![CDATA[database software]]></category>

		<category><![CDATA[mobile database]]></category>

		<category><![CDATA[organizer software]]></category>

		<category><![CDATA[personal database]]></category>

		<category><![CDATA[personal mobile database]]></category>

		<guid isPermaLink="false">http://www.cafesilencio.net/blog/?p=328</guid>
		<description><![CDATA[I’m very proud to announce the completion of my latest project Cigano.   Cigano is a personal database application for Android smart phones.   I’ve been needing a program like this for quite some time and since I  couldn’t find what I needed already available I did it myself.  I  [...]]]></description>
			<content:encoded><![CDATA[<p>I’m very proud to announce the completion of my latest project Cigano.   Cigano is a personal database application for Android smart phones.   I’ve been needing a program like this for quite some time and since I  couldn’t find what I needed already available I did it myself.  I  created the application with both myself and the average user in mind.  I  attempted to make the program easy to use and useful.  I have many  ideas for enhancements that I will be adding in the near future.  In the  meantime this first release meets my needs and I hope others will find  it useful also.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cafesilencio.net/blog/cigano-personal-mobile-database/feed</wfw:commentRss>
		</item>
		<item>
		<title>Actionscript utility to get the mime type of a file</title>
		<link>http://www.cafesilencio.net/blog/actionscript-utility-to-get-the-mime-type-of-a-file</link>
		<comments>http://www.cafesilencio.net/blog/actionscript-utility-to-get-the-mime-type-of-a-file#comments</comments>
		<pubDate>Wed, 02 Sep 2009 18:49:06 +0000</pubDate>
		<dc:creator>seth</dc:creator>
		
		<category><![CDATA[actionscript]]></category>

		<category><![CDATA[code snippets]]></category>

		<category><![CDATA[mime type]]></category>

		<guid isPermaLink="false">http://www.cafesilencio.net/blog/?p=312</guid>
		<description><![CDATA[On more than one occasion during my Flex development I&#8217;ve found myself needing to get the mime type of a file and I have never been able to find a utility to generate it for me.  So I wrote the method below that very simply returns the mime type based on the file extension. [...]]]></description>
			<content:encoded><![CDATA[<p>On more than one occasion during my Flex development I&#8217;ve found myself needing to get the mime type of a file and I have never been able to find a utility to generate it for me.  So I wrote the method below that very simply returns the mime type based on the file extension.  It doesn&#8217;t contain every mime type known but it&#8217;s a pretty good list and a good starting point that ought to save others a lot of typing.  Just paste the method below into your class and use/modify as you wish.</p>
<pre class="prettyprint">
		public static function getMimeTypeFromExtension(ext:String):String
		{
			var mimeType:String = "";
			switch(ext.toLocaleLowerCase())
			{
				case "stl":
					mimeType = "application/SLA";
				break;
				case "stp":
					mimeType = "application/STEP";
				break;
				case "step":
					mimeType = "application/STEP";
				break;
				case "dwg":
					mimeType = "application/acad";
				break;
				case "ez":
					mimeType = "application/andrew-inset";
				break;
				case "ccad":
					mimeType = "application/clariscad";
				break;
				case "drw":
					mimeType = "application/drafting";
				break;
				case "tsp":
					mimeType = "application/dsptype";
				break;
				case "dxf":
					mimeType = "application/dxf";
				break;
				case "xls":
					mimeType = "application/excel";
				break;
				case "unv":
					mimeType = "application/i-deas";
				break;
				case "jar":
					mimeType = "application/java-archive";
				break;
				case "hqx":
					mimeType = "application/mac-binhex40";
				break;
				case "cpt":
					mimeType = "application/mac-compactpro";
				break;
				case "pot":
					mimeType = "application/vnd.ms-powerpoint";
				break;
				case "pps":
					mimeType = "application/vnd.ms-powerpoint";
				break;
				case "ppt":
					mimeType = "application/vnd.ms-powerpoint";
				break;
				case "ppz":
					mimeType = "application/vnd.ms-powerpoint";
				break;
				case "doc":
					mimeType = "application/msword";
				break;
				case "bin":
					mimeType = "application/octet-stream";
				break;
				case "class":
					mimeType = "application/octet-stream";
				break;
				case "dms":
					mimeType = "application/octet-stream";
				break;
				case "exe":
					mimeType = "application/octet-stream";
				break;
				case "lha":
					mimeType = "application/octet-stream";
				break;
				case "lzh":
					mimeType = "application/octet-stream";
				break;
				case "oda":
					mimeType = "application/oda";
				break;
				case "ogg":
					mimeType = "application/ogg";
				break;
				case "ogm":
					mimeType = "application/ogg";
				break;
				case "pdf":
					mimeType = "application/pdf";
				break;
				case "pgp":
					mimeType = "application/pgp";
				break;
				case "ai":
					mimeType = "application/postscript";
				break;
				case "eps":
					mimeType = "application/postscript";
				break;
				case "ps":
					mimeType = "application/postscript";
				break;
				case "prt":
					mimeType = "application/pro_eng";
				break;
				case "rtf":
					mimeType = "application/rtf";
				break;
				case "set":
					mimeType = "application/set";
				break;
				case "smi":
					mimeType = "application/smil";
				break;
				case "smil":
					mimeType = "application/smil";
				break;
				case "sol":
					mimeType = "application/solids";
				break;
				case "vda":
					mimeType = "application/vda";
				break;
				case "mif":
					mimeType = "application/vnd.mif";
				break;
				case "xlc":
					mimeType = "application/vnd.ms-excel";
				break;
				case "xll":
					mimeType = "application/vnd.ms-excel";
				break;
				case "xlm":
					mimeType = "application/vnd.ms-excel";
				break;
				case "xls":
					mimeType = "application/vnd.ms-excel";
				break;
				case "xlw":
					mimeType = "application/vnd.ms-excel";
				break;
				case "cod":
					mimeType = "application/vnd.rim.cod";
				break;
				case "arj":
					mimeType = "application/x-arj-compressed";
				break;
				case "bcpio":
					mimeType = "application/x-bcpio";
				break;
				case "vcd":
					mimeType = "application/x-cdlink";
				break;
				case "pgn":
					mimeType = "application/x-chess-pgn";
				break;
				case "cpio":
					mimeType = "application/x-cpio";
				break;
				case "csh":
					mimeType = "application/x-csh";
				break;
				case "deb":
					mimeType = "application/x-debian-package";
				break;
				case "dcr":
					mimeType = "application/x-director";
				break;
				case "dir":
					mimeType = "application/x-director";
				break;
				case "dxr":
					mimeType = "application/x-director";
				break;
				case "dvi":
					mimeType = "application/x-dvi";
				break;
				case "pre":
					mimeType = "application/x-freelance";
				break;
				case "spl":
					mimeType = "application/x-futuresplash";
				break;
				case "gtar":
					mimeType = "application/x-gtar";
				break;
				case "gz":
					mimeType = "application/x-gzip";
				break;
				case "hdf":
					mimeType = "application/x-hdf";
				break;
				case "ipx":
					mimeType = "application/x-ipix";
				break;
				case "ips":
					mimeType = "application/x-ipscript";
				break;
				case "js":
					mimeType = "application/x-javascript";
				break;
				case "skd":
					mimeType = "application/x-koan";
				break;
				case "skm":
					mimeType = "application/x-koan";
				break;
				case "skp":
					mimeType = "application/x-koan";
				break;
				case "skt":
					mimeType = "application/x-koan";
				break;
				case "latex":
					mimeType = "application/x-latex";
				break;
				case "lsp":
					mimeType = "application/x-lisp";
				break;
				case "scm":
					mimeType = "application/x-lotusscreencam";
				break;
				case "mif":
					mimeType = "application/x-mif";
				break;
				case "bat":
					mimeType = "application/x-msdos-program";
				break;
				case "com":
					mimeType = "application/x-msdos-program";
				break;
				case "exe":
					mimeType = "application/x-msdos-program";
				break;
				case "cdf":
					mimeType = "application/x-netcdf";
				break;
				case "nc":
					mimeType = "application/x-netcdf";
				break;
				case "pl":
					mimeType = "application/x-perl";
				break;
				case "pm":
					mimeType = "application/x-perl";
				break;
				case "rar":
					mimeType = "application/x-rar-compressed";
				break;
				case "sh":
					mimeType = "application/x-sh";
				break;
				case "shar":
					mimeType = "application/x-shar";
				break;
				case "swf":
					mimeType = "application/x-shockwave-flash";
				break;
				case "sit":
					mimeType = "application/x-stuffit";
				break;
				case "sv4cpio":
					mimeType = "application/x-sv4cpio";
				break;
				case "sv4crc":
					mimeType = "application/x-sv4crc";
				break;
				case "tar.gz":
					mimeType = "application/x-tar-gz";
				break;
				case "tgz":
					mimeType = "application/x-tar-gz";
				break;
				case "tar":
					mimeType = "application/x-tar";
				break;
				case "tcl":
					mimeType = "application/x-tcl";
				break;
				case "tex":
					mimeType = "application/x-tex";
				break;
				case "texi":
					mimeType = "application/x-texinfo";
				break;
				case "texinfo":
					mimeType = "application/x-texinfo";
				break;
				case "man":
					mimeType = "application/x-troff-man";
				break;
				case "me":
					mimeType = "application/x-troff-me";
				break;
				case "ms":
					mimeType = "application/x-troff-ms";
				break;
				case "roff":
					mimeType = "application/x-troff";
				break;
				case "t":
					mimeType = "application/x-troff";
				break;
				case "tr":
					mimeType = "application/x-troff";
				break;
				case "ustar":
					mimeType = "application/x-ustar";
				break;
				case "src":
					mimeType = "application/x-wais-source";
				break;
				case "zip":
					mimeType = "application/x-zip-compressed";
				break;
				case "zip":
					mimeType = "application/zip";
				break;
				case "tsi":
					mimeType = "audio/TSP-audio";
				break;
				case "au":
					mimeType = "audio/basic";
				break;
				case "snd":
					mimeType = "audio/basic";
				break;
				case "kar":
					mimeType = "audio/midi";
				break;
				case "mid":
					mimeType = "audio/midi";
				break;
				case "midi":
					mimeType = "audio/midi";
				break;
				case "mp2":
					mimeType = "audio/mpeg";
				break;
				case "mp3":
					mimeType = "audio/mpeg";
				break;
				case "mpga":
					mimeType = "audio/mpeg";
				break;
				case "au":
					mimeType = "audio/ulaw";
				break;
				case "aif":
					mimeType = "audio/x-aiff";
				break;
				case "aifc":
					mimeType = "audio/x-aiff";
				break;
				case "aiff":
					mimeType = "audio/x-aiff";
				break;
				case "m3u":
					mimeType = "audio/x-mpegurl";
				break;
				case "wax":
					mimeType = "audio/x-ms-wax";
				break;
				case "wma":
					mimeType = "audio/x-ms-wma";
				break;
				case "rpm":
					mimeType = "audio/x-pn-realaudio-plugin";
				break;
				case "ram":
					mimeType = "audio/x-pn-realaudio";
				break;
				case "rm":
					mimeType = "audio/x-pn-realaudio";
				break;
				case "ra":
					mimeType = "audio/x-realaudio";
				break;
				case "wav":
					mimeType = "audio/x-wav";
				break;
				case "pdb":
					mimeType = "chemical/x-pdb";
				break;
				case "xyz":
					mimeType = "chemical/x-pdb";
				break;
				case "ras":
					mimeType = "image/cmu-raster";
				break;
				case "gif":
					mimeType = "image/gif";
				break;
				case "ief":
					mimeType = "image/ief";
				break;
				case "jpe":
					mimeType = "image/jpeg";
				break;
				case "jpeg":
					mimeType = "image/jpeg";
				break;
				case "jpg":
					mimeType = "image/jpeg";
				break;
				case "png":
					mimeType = "image/png";
				break;
				case "tif":
					mimeType = "image/tiff";
				break;
				case "tiff":
					mimeType = "image/tiff";
				break;
				case "ras":
					mimeType = "image/x-cmu-raster";
				break;
				case "pnm":
					mimeType = "image/x-portable-anymap";
				break;
				case "pbm":
					mimeType = "image/x-portable-bitmap";
				break;
				case "pgm":
					mimeType = "image/x-portable-graymap";
				break;
				case "ppm":
					mimeType = "image/x-portable-pixmap";
				break;
				case "rgb":
					mimeType = "image/x-rgb";
				break;
				case "xbm":
					mimeType = "image/x-xbitmap";
				break;
				case "xpm":
					mimeType = "image/x-xpixmap";
				break;
				case "xwd":
					mimeType = "image/x-xwindowdump";
				break;
				case "iges":
					mimeType = "model/iges";
				break;
				case "igs":
					mimeType = "model/iges";
				break;
				case "mesh":
					mimeType = "model/mesh";
				break;
				case "":
					mimeType = "";
				break;
				case "msh":
					mimeType = "model/mesh";
				break;
				case "silo":
					mimeType = "model/mesh";
				break;
				case "vrml":
					mimeType = "model/vrml";
				break;
				case "wrl":
					mimeType = "model/vrml";
				break;
				case "css":
					mimeType = "text/css";
				break;
				case "htm":
					mimeType = "text/html";
				break;
				case "html":
					mimeType = "text/html";
				break;
				case "asc":
					mimeType = "text/plain";
				break;
				case "c":
					mimeType = "text/plain";
				break;
				case "cc":
					mimeType = "text/plain";
				break;
				case "f90":
					mimeType = "text/plain";
				break;
				case "f":
					mimeType = "text/plain";
				break;
				case "h":
					mimeType = "text/plain";
				break;
				case "hh":
					mimeType = "text/plain";
				break;
				case "m":
					mimeType = "text/plain";
				break;
				case "txt":
					mimeType = "text/plain";
				break;
				case "rtx":
					mimeType = "text/richtext";
				break;
				case "rtf":
					mimeType = "text/rtf";
				break;
				case "sgm":
					mimeType = "text/sgml";
				break;
				case "sgml":
					mimeType = "text/sgml";
				break;
				case "tsv":
					mimeType = "text/tab-separated-values";
				break;
				case "jad":
					mimeType = "text/vnd.sun.j2me.app-descriptor";
				break;
				case "etx":
					mimeType = "text/x-setext";
				break;
				case "xml":
					mimeType = "text/xml";
				break;
				case "dl":
					mimeType = "video/dl";
				break;
				case "fli":
					mimeType = "video/fli";
				break;
				case "flv":
					mimeType = "video/flv";
				break;
				case "gl":
					mimeType = "video/gl";
				break;
				case "mp2":
					mimeType = "video/mpeg";
				break;
				case "mp4":
					mimeType = "video/mp4";
				break;
				case "mpe":
					mimeType = "video/mpeg";
				break;
				case "mpeg":
					mimeType = "video/mpeg";
				break;
				case "mpg":
					mimeType = "video/mpeg";
				break;
				case "mov":
					mimeType = "video/quicktime";
				break;
				case "qt":
					mimeType = "video/quicktime";
				break;
				case "viv":
					mimeType = "video/vnd.vivo";
				break;
				case "vivo":
					mimeType = "video/vnd.vivo";
				break;
				case "fli":
					mimeType = "video/x-fli";
				break;
				case "asf":
					mimeType = "video/x-ms-asf";
				break;
				case "asx":
					mimeType = "video/x-ms-asx";
				break;
				case "wmv":
					mimeType = "video/x-ms-wmv";
				break;
				case "wmx":
					mimeType = "video/x-ms-wmx";
				break;
				case "wvx":
					mimeType = "video/x-ms-wvx";
				break;
				case "avi":
					mimeType = "video/x-msvideo";
				break;
				case "movie":
					mimeType = "video/x-sgi-movie";
				break;
				case "mime":
					mimeType = "www/mime";
				break;
				case "ice":
					mimeType = "x-conference/x-cooltalk";
				break;
				case "vrm":
					mimeType = "x-world/x-vrml";
				break;
				case "vrml":
					mimeType = "x-world/x-vrml";
				break;
				case "spx":
					mimeType = "audio/ogg";
				break;
			    default:
			    	mimeType = "application/unknown";
			    break;
			}
			return mimeType;
		}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.cafesilencio.net/blog/actionscript-utility-to-get-the-mime-type-of-a-file/feed</wfw:commentRss>
		</item>
		<item>
		<title>Exciting updates to SimpleDB Tool Bolso</title>
		<link>http://www.cafesilencio.net/blog/exciting-updates-to-simpledb-tool-bolso</link>
		<comments>http://www.cafesilencio.net/blog/exciting-updates-to-simpledb-tool-bolso#comments</comments>
		<pubDate>Sat, 21 Mar 2009 18:15:25 +0000</pubDate>
		<dc:creator>seth</dc:creator>
		
		<category><![CDATA[Adobe AIR]]></category>

		<category><![CDATA[Amazon SimpleDB]]></category>

		<category><![CDATA[Bolso]]></category>

		<category><![CDATA[Amazon]]></category>

		<category><![CDATA[explore]]></category>

		<category><![CDATA[simpleDB]]></category>

		<guid isPermaLink="false">http://www.cafesilencio.net/blog/?p=301</guid>
		<description><![CDATA[Version 1.3 of my SimpleDB tool Bolso has been released today and it has some great new features.  Firstly there is support for queries using SQL syntax which SimpleDB has recently begun supporting.  The original query method is still supported in Boslo and Amazon.com says they&#8217;ll continue to support but not enhance the [...]]]></description>
			<content:encoded><![CDATA[<p>Version 1.3 of my <a href="http://www.cafesilencio.net/bolso">SimpleDB tool Bolso</a> has been released today and it has some great new features.  Firstly there is support for queries using SQL syntax which SimpleDB has recently begun supporting.  The original query method is still supported in Boslo and Amazon.com says they&#8217;ll continue to support but not enhance the original query method for about 15 months.</p>
<p>The most interesting feature to ver. 1.3 is an enhanced data grid.  One of the aspects of a standard data grid I never liked as it related to SimpleDB was that there could be more than one attribute with the same name but different values.  For example an item could have an attribute name of &#8216;color&#8217; with a value of &#8216;blue&#8217; and also an attribute named &#8216;color with a value of &#8216;red&#8217;.  Typically data grids expect each row/column cell to have one value.  So in a standard data grid what to do?  This is one of the reasons I created a <a href="http://www.cafesilencio.net/bolso/treeview-user-interface-for-simpleDB.html">tree view for viewing SimpleDB data in Bolso</a>. So that it offered a different way of viewing the data that in some cases I think is more intuitive and easier to use.  In this release I added an enhanced data grid that can better accommodate  the SimpleDB feature of the same attribute name with multiple values.  Now for each row and column all of the attribute values for a given attribute name will be displayed without additional columns.</p>
<p>The enhanced data grid also has in-place edit fields so that each attribute value can be modified simply by clicking the field and then saving the item attributes.  This makes for quick editing of values especially if there&#8217;s a simple spelling error. </p>
<p>If you haven&#8217;t already tried using Bolso as an aid in exploring your SimpleDB contents then I suggest you give it a try.  There&#8217;s also a <a href="http://www.cafesilencio.net/bolso/bolso-simple-tutorial.html">tutorial page</a> illustrating the usage of the various features.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cafesilencio.net/blog/exciting-updates-to-simpledb-tool-bolso/feed</wfw:commentRss>
		</item>
		<item>
		<title>AWS Tools Cloudberry for S3</title>
		<link>http://www.cafesilencio.net/blog/aws-tools-cloudberry-for-s3</link>
		<comments>http://www.cafesilencio.net/blog/aws-tools-cloudberry-for-s3#comments</comments>
		<pubDate>Mon, 09 Mar 2009 21:44:43 +0000</pubDate>
		<dc:creator>seth</dc:creator>
		
		<category><![CDATA[stuff i learned]]></category>

		<guid isPermaLink="false">http://www.cafesilencio.net/blog/?p=289</guid>
		<description><![CDATA[While working on some enhancements for my SimpleDB explorer tool Bolso I started wondering what other Amazon Web Service tools were out there.  When I first came across S3 I considered writing a FTP-like tool for using it.  My schedule at the time was pretty full and I thought that FTP vendors would [...]]]></description>
			<content:encoded><![CDATA[<p>While working on some enhancements for my <a href="http://www.cafesilencio.net/bolso">SimpleDB explorer tool Bolso</a> I started wondering what other Amazon Web Service tools were out there.  When I first came across S3 I considered writing a FTP-like tool for using it.  My schedule at the time was pretty full and I thought that FTP vendors would be integrating S3 functionality into their existing applications so I decided not to pursue the project.</p>
<p>I spent some time recently searching out the S3 tools that have been developed.  I was curious what kind of functionality was available and if there was something available that was better than what I was already using.</p>
<p>One of the <a href="http://www.cloudberrylab.com/">S3 tools I found which is worth mentioning is CloudBerry explorer</a> for S3.  CloudBerry has some valuable functionality that goes beyond simple file transferring between the localhost computer and S3.  One of the features I really liked is that files can be transferred between buckets within S3, and at no cost.  This is really useful.  I often find myself having to make these kinds of transfers when I initially put files into the wrong bucket.  </p>
<p>It&#8217;s often the little features that make an application stand out among its rivals.  Another noteworthy feature in CloudBerry is the &#8216;weburl&#8217; function accessible by right-clicking on a file in S3.  While I&#8217;ve seen similar S3 programs offer the same basic feature there are two added features that are included that I think are really useful.  One is the CNAME text box with modifies the URL if I type in a domain name alias.  I use domain name aliases a lot when making S3 content available to websites.  Usually I&#8217;ll create a sub-domain called &#8216;images&#8217; for example and I&#8217;ll alias it with a CNAME pointing to S3.  This way the urls to the images look like http://images.mydomain.com but the files are actually stored in S3.  Offering that CNAME text box means I don&#8217;t have to modify the url after pasting into my browser ( or anywhere else ).  It&#8217;s a nice little feature that saves me a few seconds every time I use it.</p>
<p>Another sub-feature I like is that CloudBerry will generate a link to the file that has an expiration date.  This isn&#8217;t a process that can be done by hand since the expiration date has to be signed as part of the request.  I think the inclusion of something like this really shows the application designer(s) really thought about how their tool would be used and how they could make life easier for people.</p>
<p>Recently they added support in CloudBerry for their <a href="http://www.streamincloud.com">streamincloud FLV encoding service</a>.  Oh how I wish this would have been available to me a few months ago.  I had a project for a client that required video uploads and FLV encoding.  I had to do everything by hand with PHP and FFMPEG.  I could have saved so much time with a feature like this.  In fact as I write this I am thinking that I could use this service with another one of my clients soon.  They have been talking about adding video to their website.  So anyway, big things from CloudBerry Lab, keep an eye on them and check out their wares.</p>
<p>I only have one gripe about CloudBerry for S3, where&#8217;s the mac version?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cafesilencio.net/blog/aws-tools-cloudberry-for-s3/feed</wfw:commentRss>
		</item>
		<item>
		<title>Update to Actionscript SimpleDB Library for Adobe AIR</title>
		<link>http://www.cafesilencio.net/blog/update-to-actionscript-simpledb-library-for-adobe-air</link>
		<comments>http://www.cafesilencio.net/blog/update-to-actionscript-simpledb-library-for-adobe-air#comments</comments>
		<pubDate>Sun, 08 Mar 2009 14:35:36 +0000</pubDate>
		<dc:creator>seth</dc:creator>
		
		<category><![CDATA[Adobe AIR]]></category>

		<category><![CDATA[Amazon SimpleDB]]></category>

		<category><![CDATA[actionscript]]></category>

		<category><![CDATA[AIR]]></category>

		<category><![CDATA[Amazon]]></category>

		<category><![CDATA[api]]></category>

		<category><![CDATA[library]]></category>

		<category><![CDATA[simpleDB]]></category>

		<guid isPermaLink="false">http://www.cafesilencio.net/blog/?p=282</guid>
		<description><![CDATA[I&#8217;ve finally had a little time to update the opensource Actionscript library for SimpleDB I wrote some time back.  It now has support for the SQL syntax query method available in Amazon.com&#8217;s SimpleDB.  There&#8217;s also a bug fix for a defect in the library in which a query with multiple &#8216;!=&#8217; would generate [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finally had a little time to update the <a href="http://www.cafesilencio.net/blog/simpledb-library-for-adobe-air-actionscript">opensource Actionscript library for SimpleDB</a> I wrote some time back.  It now has support for the SQL syntax query method available in Amazon.com&#8217;s SimpleDB.  There&#8217;s also a bug fix for a defect in the library in which a query with multiple &#8216;!=&#8217; would generate an incorrect signature.</p>
<p>Although I think it&#8217;s great that Amazon has added support for SQL syntax in queries, they&#8217;ve announced that the <a href="http://developer.amazonwebservices.com/connect/ann.jspa?annID=409">previous query method will be deprecated</a>.  This is a real bummer because everybody who has created applications using the original query method now has to go back and retrofit their code so support the SQL syntax method.  Granted we have 15 months to do it but for those of us who have done work for clients we now have to go back rewrite a lot of code which not only takes time that often can&#8217;t be billed for, it leaves open the possibility of introducing bug in what might already be stable code.  If Amazon decided not to enhance the original query method but leave it in place I think that would be a much better decision.</p>
<p><a href="http://cafesilencio.s3.amazonaws.com/cafeSilencioSimpleDBLib.zip"><del datetime="2009-04-16T18:40:30+00:00">The SimpleDB Actionscript library can be downloaded here</del></a>.<br />
<a href="http://www.cafesilencio.net/blog/simple-tutorial-for-using-simpledb-actionscript-library">There is a tutorial illustrating the SimpleDB Actionscript library usage here</a>.</p>
<p>***UPDATE: <a href="http://code.google.com/p/actionscript-simpledb-library/">The latest source code for this SimpleDB Actionscript library can now be accessed  via google code</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cafesilencio.net/blog/update-to-actionscript-simpledb-library-for-adobe-air/feed</wfw:commentRss>
		</item>
		<item>
		<title>SimpleDB library for Adobe Air / Actionscript</title>
		<link>http://www.cafesilencio.net/blog/simpledb-library-for-adobe-air-actionscript</link>
		<comments>http://www.cafesilencio.net/blog/simpledb-library-for-adobe-air-actionscript#comments</comments>
		<pubDate>Sun, 18 Jan 2009 13:33:43 +0000</pubDate>
		<dc:creator>seth</dc:creator>
		
		<category><![CDATA[Adobe AIR]]></category>

		<category><![CDATA[Amazon SimpleDB]]></category>

		<category><![CDATA[actionscript]]></category>

		<category><![CDATA[AIR]]></category>

		<category><![CDATA[Amazon]]></category>

		<category><![CDATA[Bolso]]></category>

		<category><![CDATA[database]]></category>

		<category><![CDATA[explore]]></category>

		<category><![CDATA[flex]]></category>

		<category><![CDATA[simpleDB]]></category>

		<guid isPermaLink="false">http://www.cafesilencio.net/blog/?p=202</guid>
		<description><![CDATA[I&#8217;ve been working with Amazon.com&#8217;s SimpleDB webservice for some time now, developing a database exploration utility called Bolso using the Adobe AIR platform.  I haven&#8217;t had to make any modifications to my actionscript library for a while now so it&#8217;s feeling stable enough to release to the public.  So I&#8217;ve decided to make [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working with <a href="http://aws.amazon.com/simpledb/">Amazon.com&#8217;s SimpleDB</a> webservice for some time now, developing a database exploration utility called <a href="http://www.cafesilencio.net/bolso">Bolso</a> using the Adobe AIR platform.  I haven&#8217;t had to make any modifications to my actionscript library for a while now so it&#8217;s feeling stable enough to release to the public.  So I&#8217;ve decided to make the source code for accessing SimpleDB via actionscript available to other developers out there.  Hopefully others will find it useful and easy to use.  The source is available as well as a binary swc both are available under the Apache 2.0 license.  </p>
<p>I think the applications created on the Adobe AIR platform utilizing SimpleDB as the database layer make for an effective combination in many (but not all) situations.  From my observations a lot of the Flex/AIR developers out there are coming from Flash and are unfamiliar with working on the server side with php or ruby and mysql.  This SimpleDB library for actionscript makes it easy to incorporate a server side shared database into an Adobe AIR application without having to know a lot about server side development and maintenance.  If you haven&#8217;t yet checked out SimpleDB take a look at the Amazon website.  </p>
<p>As of this writing the actionscript library I&#8217;m making available has the following functionality:</p>
<ul>
<li>support for signature version 2</li>
<li>listing/creating/deleting domains</li>
<li>creation/deletion of items</li>
<li>creation/deletion of attributes</li>
<li>queries</li>
<li>support for <a href="http://www.mgateway.com/mdb.html">M/DB from M/Gateway</a></li>
</ul>
<p>I&#8217;ve also created a helpful <a href="http://www.cafesilencio.net/bolso">development tool called Bolso</a> which allows you to view the contents of your SimpleDB and test queries.  </p>
<p>NOTE: at this time the library does NOT work in a Flex application because SimpleDB doesn&#8217;t have a crossdomain.xml</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_donations">
<input type="hidden" name="business" value="488ULP5JSTMHN">
<input type="hidden" name="lc" value="US">
<input type="hidden" name="item_name" value="SimpleDB actionsript library from CafeSilencio">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="no_shipping" value="1">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHosted">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"><br />
</form>
<h2><a href="http://cafesilencio.s3.amazonaws.com/cafeSilencioSimpleDBLib.zip"><del datetime="2009-04-16T18:42:03+00:00">Download actionscript library for accessing SimpleDB via Adobe AIR</del></a></h2>
<p>***UPDATE: <a href="http://code.google.com/p/actionscript-simpledb-library/">The latest source code for this SimpleDB Actionscript library can now be accessed  via google code</a>.</p>
<p>The SimpleDB library requires the excellent <a href="http://code.google.com/p/as3crypto/">AS3 Crypto library.</a></p>
<p><a href="http://www.cafesilencio.net/blog/simple-tutorial-for-using-simpledb-actionscript-library">There are some code snippets illustrating the usage of the SimpleDB library available.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cafesilencio.net/blog/simpledb-library-for-adobe-air-actionscript/feed</wfw:commentRss>
		</item>
		<item>
		<title>Bolso updates</title>
		<link>http://www.cafesilencio.net/blog/bolso-updates</link>
		<comments>http://www.cafesilencio.net/blog/bolso-updates#comments</comments>
		<pubDate>Sat, 10 Jan 2009 13:45:24 +0000</pubDate>
		<dc:creator>seth</dc:creator>
		
		<category><![CDATA[Amazon SimpleDB]]></category>

		<category><![CDATA[Bolso]]></category>

		<category><![CDATA[m/db]]></category>

		<category><![CDATA[simpleDB]]></category>

		<guid isPermaLink="false">http://www.cafesilencio.net/blog/?p=194</guid>
		<description><![CDATA[Although I&#8217;m a little behind schedule, Bolso is developing well.  I added some features over the holidays which I think people will find useful.  I added a tree view of the SimpleDB data that I think in some situations can be more useful then viewing the items and attributes in a grid.  [...]]]></description>
			<content:encoded><![CDATA[<p>Although I&#8217;m a little behind schedule, Bolso is developing well.  I added some features over the holidays which I think people will find useful.  I added a <a href="http://www.cafesilencio.net/bolso/treeview-user-interface-for-simpleDB.html">tree view of the SimpleDB data</a> that I think in some situations can be more useful then viewing the items and attributes in a grid.  Given that the items in a given SimpleDB domain don&#8217;t have to be identical, that is they don&#8217;t all have to have the same attributes I think the tree view of the data makes it easier to navigate and view the data in some cases.  There are a couple minor issues I have to iron out as of this writing but so far I&#8217;ve found the tree view a useful way of navigating the data inside my SimpleDB domains.  </p>
<p>In addition I added support for <a href="http://gradvs1.mgateway.com/main/index.html?path=mdb">M/DB</a> ver. 1.6+ from M/Gateway.  M/DB is SimpleDB compatible system that runs inside a VM either on one&#8217;s local computer or on an Internet server.  The command syntax for M/DB is exactly the same as getting/putting item/attribute data with SimpleDB.  Best of all it&#8217;s free!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cafesilencio.net/blog/bolso-updates/feed</wfw:commentRss>
		</item>
		<item>
		<title>photo slide component for Flex AIR</title>
		<link>http://www.cafesilencio.net/blog/photo-slide-component-for-flex-air</link>
		<comments>http://www.cafesilencio.net/blog/photo-slide-component-for-flex-air#comments</comments>
		<pubDate>Fri, 09 Jan 2009 20:17:47 +0000</pubDate>
		<dc:creator>seth</dc:creator>
		
		<category><![CDATA[actionscript]]></category>

		<category><![CDATA[code snippets]]></category>

		<category><![CDATA[AIR]]></category>

		<category><![CDATA[flex]]></category>

		<category><![CDATA[flex component]]></category>

		<category><![CDATA[photo slide]]></category>

		<category><![CDATA[source code]]></category>

		<guid isPermaLink="false">http://www.cafesilencio.net/blog/?p=265</guid>
		<description><![CDATA[For a project I recently worked on I needed to display images on the screen looking like (old fashioned) photo slides.  It wasn&#8217;t that difficult especially since degrafa is so easy to use.  I thought I&#8217;d go ahead and make the component available to other Flex/AIR developers to save some time.  The [...]]]></description>
			<content:encoded><![CDATA[<p>For a project I recently worked on I needed to display images on the screen looking like (old fashioned) photo slides.  It wasn&#8217;t that difficult especially since degrafa is so easy to use.  I thought I&#8217;d go ahead and make the component available to other Flex/AIR developers to save some time.  The component is easy to use and will re-size the image after it has loaded in order to save memory.  </p>
<p><object type="application/x-shockwave-flash" width="290" height="290">
<param name="movie" value="http://cafesilencio.s3.amazonaws.com/PhotoSlideDemo.swf" />
<embed type="application/x-shockwave-flash" width="290" height="290" src="http://cafesilencio.s3.amazonaws.com/PhotoSlideDemo.swf" >
</object>
</p>
<p>After adding the <a href="http://cafesilencio.s3.amazonaws.com/photoSlideComponent.zip">source code</a> to your project just add the component to a container and specify the URL to the image in the &#8216;imageSourceURL&#8217; variable.</p>
<p>You&#8217;ll need the <a href="http://www.degrafa.org/">degrafa library</a> in order for this to work.  The example above uses Degrafa_Beta3_Flex3.swc.</p>
<p>The component also uses a <a href="http://grakl.com/wordpress/?p=5">spinner class which came from here</a>.</p>
<p>In addition the image resizing utility class uses code from the <a href="http://clevrlib.riaforge.org/">clevr lib</a>.</p>
<p>The image resizing routine could use some optimization but I&#8217;ll leave that as a fun exercise for <em>you</em>. <img src='http://www.cafesilencio.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  My code is licensed under the Creative Commons ver. 3.  Refer to the other libraries for their licensing terms.<br />
Please link to this post if you use the component. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cafesilencio.net/blog/photo-slide-component-for-flex-air/feed</wfw:commentRss>
		</item>
		<item>
		<title>Explore your Amazon SimpleDB with Bolso</title>
		<link>http://www.cafesilencio.net/blog/explore-your-amazon-simpledb-with-bolso</link>
		<comments>http://www.cafesilencio.net/blog/explore-your-amazon-simpledb-with-bolso#comments</comments>
		<pubDate>Tue, 25 Nov 2008 20:29:29 +0000</pubDate>
		<dc:creator>seth</dc:creator>
		
		<category><![CDATA[Adobe AIR]]></category>

		<category><![CDATA[Amazon SimpleDB]]></category>

		<category><![CDATA[Bolso]]></category>

		<category><![CDATA[actionscript]]></category>

		<category><![CDATA[AIR]]></category>

		<category><![CDATA[cloud computing]]></category>

		<category><![CDATA[database]]></category>

		<category><![CDATA[explore]]></category>

		<guid isPermaLink="false">http://www.cafesilencio.net/blog/?p=163</guid>
		<description><![CDATA[I&#8221;m proud to announce the availability of Bolso, a utility I created to explore the Amazon SimpleDB.
Although Amazon.com&#8217;s SimpleDB is still in limited beta testing it looks to garner wide usage as an alternative to more traditional SQL databases.  Of course it&#8217;s not a one size fits all solution, for certain applications it can [...]]]></description>
			<content:encoded><![CDATA[<h2>I&#8221;m proud to announce the availability of <a href="http://www.cafesilencio.net/bolso">Bolso, a utility I created to explore the Amazon SimpleDB</a>.</h2>
<p>Although <a href="http://aws.amazon.com/simpledb/" target="_blank">Amazon.com&#8217;s SimpleDB</a> is still in limited beta testing it looks to garner wide usage as an alternative to more traditional SQL databases.  Of course it&#8217;s not a one size fits all solution, for certain applications it can dramatically reduce development time as well as eliminate the maintenance costs in managing and maintaining a SQL database.  </p>
<p>When I started looking into its features and working with it, the Amazon SimpleDB reminded me a lot of object databases I&#8217;ve worked with in the past.  It&#8217;s always been more intuitive for me to think of my objects as objects rather than rows and tables.  Of course for a person with a strong SQL background rows and tables are second natrue, but I come from an object oriented programming background.  </p>
<p>In case you&#8217;re unfamiliar with the Amazon SimpleDB service, it&#8217;s true to its name.  It&#8217;s a simple database service from Amazon.com.  Objects are organized into &#8216;domains&#8217; which are analogous to a table in the SQL world.  Each domain contains some number of items which are analogous to rows.  Each item is made up of attribute-value pairs of data.  Each attribute name would be like a column.  </p>
<p>Although switching one&#8217;s thought process away from rows and tables to objects of attribute-value pairs might at first be a little difficult.  One quickly becomes accustomed to thinking of their objects as objects floating around in a giant cloud repository.  </p>
<p>The Amazon SimpleDB service makes it easy to store a lot of small objects that are easy to get and put.  There is even a query API to retrieve objects according to certain criteria.  In addition, the items in a given domain need not have the same format so you could put objects representing sweaters and Amazon SimpleDB was designed to offer fast response times so it&#8217;s meant to store lots of small objects rather than large amounts of data.  Large amounts of data are better stored in <a href="http://aws.amazon.com/s3/" target="_blank">Amazon.com&#8217;s S3</a> service.  The Amazon SimpleDB makes a great compliment to Amazon&#8217;s S3 service because it can store meta data which can be queried and can point to larger data files stored in Amazon.com&#8217;s S3 service.</p>
<p>One difficulty with object databases that I&#8217;ve worked with is the ability to visualize the data I&#8217;ve inserted and/or see it to make sure it&#8217;s really there.  So I began work on a utility called <a href="http://www.cafesilencio.net/bolso">Bolso to see the contents of Amazon SimpleDB</a>. As of this writing it has only basic functionality: adding/removing/editing domains,items, and item attributes.  However I have in mind several other features that I think will be very useful.  </p>
<p>I created Bolso using the Adobe AIR framework so I&#8217;m attempting to offer a utility with a rich user interface.  I think the AIR platform will allow for some very interesting and useful features which I will add as time goes on.  I&#8217;m eager to continue development on this project and I hope others out there will find the utility useful in exploring their Amazon SimpleDB repositories while they work on their own applications utilizing Amazon.com&#8217;s very cool SimpleDB service.</p>
<p>Head over to the <a href="http://www.cafesilencio.net/bolso">Bolso website</a> and give it a spin.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cafesilencio.net/blog/explore-your-amazon-simpledb-with-bolso/feed</wfw:commentRss>
		</item>
	</channel>
</rss>

