<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3536453974343824805</id><updated>2012-02-17T04:45:52.629+11:00</updated><category term='Twitter Clients'/><category term='ThumbWhere.com'/><title type='text'>ThumbWhere</title><subtitle type='html'>ThumbWhere is a social media membership and video transcoding API. We run a public free service as well as leasing our API for a fee.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.thumbwhere.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default'/><link rel='alternate' type='text/html' href='http://blog.thumbwhere.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>ThumbWhere</name><uri>http://www.blogger.com/profile/14192367410319867902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3536453974343824805.post-7220170683596580832</id><published>2011-12-02T20:11:00.018+11:00</published><updated>2011-12-02T21:39:41.436+11:00</updated><title type='text'>ql.io is interesting.</title><content type='html'>&lt;div&gt;&lt;a href="http://ql.io/"&gt;ql.io&lt;/a&gt; provides the same function as the ThumbWhere web service composition layer and was written to solve the same problem with the same philosophy of putting more control in the hands of developers. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Where it differs is that like &lt;a href="http://developer.yahoo.com/yql/"&gt;YQL &lt;/a&gt;it is read-only so you can't compose everything.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;What is a Web Service Composition Layer?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The aim is to push the back-and-forth traffic closer to the services and to avoid the return trip latency. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As developers one big constraint is the speed of light. To send a request, get the result, send another request based on the result, all this back and forth can add many seconds to the start up time of an application.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;We can't make light go any faster, but we can make the total trip shorter.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you need to make 6 calls to different systems to complete authentication, catalogue, entitlements and analytics, you are adding a lot to your client applications start up time.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-mXYc327dJHQ/Ttiaw2o4NJI/AAAAAAAAACw/XJCq_C57BY0/s1600/image001.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://2.bp.blogspot.com/-mXYc327dJHQ/Ttiaw2o4NJI/AAAAAAAAACw/XJCq_C57BY0/s400/image001.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5681461094019249298" style="cursor: pointer; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Another aim to make sure that developers are not overly constrained by workflows imposed by services. You can be more granular with your services and know that the client can compose the workflow that suits the application or platform they are using. eg. PC vs Mobile can have radically different workflows for the same services.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;As a service designer, you don't need to second guess every case that developers may come up with.&lt;/li&gt;&lt;li&gt;As a developer and service consumer, you can construct a perfect single web service call, every time.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://ql.io/"&gt;ql.io&lt;/a&gt; combines JSON and SQL&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/-_qlh4Ln6t9A/TtibzD8OjxI/AAAAAAAAADI/MYpIRS9uep4/s1600/image002.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://1.bp.blogspot.com/-_qlh4Ln6t9A/TtibzD8OjxI/AAAAAAAAADI/MYpIRS9uep4/s400/image002.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5681462231461433106" style="cursor: pointer; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I can appreciate that it is compact, but i'm concerned that it's hard to make existing web services look like tables in a database, and that for many front end developers SQL would be a new skill they would have to acquire,.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ThumbWhere's implementaion combines JavaScript and XPATH. This was carefully chosen to take advantage of the native XPATH engines that are available on the server side and in modern web browsers,  XML/XPATH is at least a familiar technology to most front end developers. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the environment where ThumbWhere was developed JavaScript and XSLT/XPATH  was and is still a heavily used language for client side development, this was a consideration of the design.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(Here is the Composition layer being called from JavaScript).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-7aABT0TC7xo/TticLm66m2I/AAAAAAAAADU/W-_5jx3nVgU/s1600/image003.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://3.bp.blogspot.com/-7aABT0TC7xo/TticLm66m2I/AAAAAAAAADU/W-_5jx3nVgU/s400/image003.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5681462653168032610" style="cursor: pointer; width: 400px; height: 343px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here it is being called from C#&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-F0V4QUHSbRI/TticaS9O8AI/AAAAAAAAADg/qwHiKO4nlp0/s1600/image004.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://2.bp.blogspot.com/-F0V4QUHSbRI/TticaS9O8AI/AAAAAAAAADg/qwHiKO4nlp0/s400/image004.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5681462905507082242" style="cursor: pointer; width: 400px; height: 102px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/-8TRdxuMMBYY/TticpVNMJ-I/AAAAAAAAADs/iqxnovfPYQI/s1600/image006.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://4.bp.blogspot.com/-8TRdxuMMBYY/TticpVNMJ-I/AAAAAAAAADs/iqxnovfPYQI/s400/image006.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5681463163808917474" style="cursor: pointer; width: 400px; height: 220px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some features in ThumbWhere has that it's not obvious are in ql.io (site is down at the time of writing this article).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Asynchronous call backs&lt;/b&gt;: As the result streamed back from the server multiple call-backs can be triggered.&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Generic feed integration&lt;/b&gt; (you can pull in any XML feed or existing REST web service call and manipulate it, use content as parameters for other calls in the composition).&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Flow control&lt;/b&gt; (if/while) that allows a call to for example make decisions based on the return values of other.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Response Mutation&lt;/b&gt;: ThumbWhere lets you move, rename and delete elements of the feed or &lt;/div&gt;&lt;div&gt;API responses before they are sent back to the client.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;Request Parallelisation&lt;/b&gt;: ThumbWhere can detect or lets you mark requests that can be run &lt;/div&gt;&lt;div&gt;in parallel.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;Write &amp;amp; Execute&lt;/b&gt;: ql.io only has has a &lt;i&gt;select &lt;/i&gt;statement (at this point).  It's read only. Thumbwhere allows you to compose read and write operations.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What &lt;a href="http://ql.io/"&gt;ql.io&lt;/a&gt; does provide is a wonderful join syntax and ability to perform complex reductions based on relations - which can be done using XPATH in ThumbWhere - but is not as nice as JOIN :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If anything this is vindication for our approach.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Its a bit hard to try and induce a new way of thinking so I'm really glad that ql.io has put a stake in the ground for saner web services. With ql.io and YQL out there now, my elevator pitch will get less blank looks :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm going to strongly consider rolling this into our notification/feed/edge stack as it's such a close fit with what we already have.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3536453974343824805-7220170683596580832?l=blog.thumbwhere.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.thumbwhere.com/feeds/7220170683596580832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.thumbwhere.com/2011/12/qlio-is-interesting.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/7220170683596580832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/7220170683596580832'/><link rel='alternate' type='text/html' href='http://blog.thumbwhere.com/2011/12/qlio-is-interesting.html' title='ql.io is interesting.'/><author><name>ThumbWhere</name><uri>http://www.blogger.com/profile/14192367410319867902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-mXYc327dJHQ/Ttiaw2o4NJI/AAAAAAAAACw/XJCq_C57BY0/s72-c/image001.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3536453974343824805.post-7680748359235266260</id><published>2011-11-23T12:07:00.022+11:00</published><updated>2011-11-25T16:06:52.329+11:00</updated><title type='text'>First release of 1.1 is Live!</title><content type='html'>&lt;div style="text-align: left;"&gt;Greetings ThumbWhere  clients and spectators.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Over the last 2 weeks we have rolled out some new services as well as a whole new API layer to support one of our longest running trial members.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;The old public facing API Twitter integration demo site has been switched off.  It was using the legacy (v0.0) API and it needs to be rewritten to use our latest JavaScript Service library. For now it redirects to this blog. Of note I believe it was the first tool ever that let you upload audio, images and video to Twitter from your mobile phone. Fun times :)&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We will eventually replace it with our newly planned service sign-up/administration portal.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;That's right folks, we are slowly on the way to going public and allowing anyone to sign up and start using our services.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-rAoxz9-A_f0/TsxP15T9J9I/AAAAAAAAACg/EmmWr_So00s/s1600/23-11-2011%2B12-42-24%2BPM.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://3.bp.blogspot.com/-rAoxz9-A_f0/TsxP15T9J9I/AAAAAAAAACg/EmmWr_So00s/s400/23-11-2011%2B12-42-24%2BPM.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5678001017543534546" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 215px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;Over the last 4 years we have run 8 campaigns with 6 different organisations to validate and test our product.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Just these word of mouth campaigns and other &lt;a href="http://blog.metawrap.com/2011/05/09/my-life-in-iptv/"&gt;IPTV &lt;/a&gt;development has been keeping us busy for the last year - but we have continued to plod on with our ThumbWhere product development.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This most recent update (v1.1) represents a lot of the learnings and results of R&amp;amp;D from the last year.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Notable changes:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;The v0.0 and v1.0 API's were versioned, the v1.1 API is versioned and modular using SOA principles.&lt;/li&gt;&lt;li&gt;FTPS and FTPES are now supported for first line storage as well as with CDN storage with Amazon S3 and more to come.&lt;/li&gt;&lt;li&gt;Campaign members can now email media and have it ingested into ThumbWhere with their own email address or a pre-generated ThumbWhere specific email address.&lt;/li&gt;&lt;li&gt;We have changes under the hood to improve the reporting of ingestion and transcoding workflow exceptions and new operations in the primary distributed workflow engine.&lt;/li&gt;&lt;li&gt;Auto-generated Web Service interface libraries for .NET and JavaScript. PHP and Java are on the way.&lt;/li&gt;&lt;li&gt;Auto-generated windows tools . PowerShell 'Snap-ins' for each of the new services to allow easy scripting and tool writing. Windows workflow 'Activities' are on the way.&lt;/li&gt;&lt;li&gt;Media can be FTPd directly to ThumbWhere on a per member or campaign basis.&lt;/li&gt;&lt;li&gt;A lot of work has gone into making our internal development process more agile with a lot more code generation. Now we can design, generate and stand-up a new SOA service and supporting repositories in a matter of hours.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Over the next month expect to see a lot more news about the latest v1.1 Content and Social APIs&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cheers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3536453974343824805-7680748359235266260?l=blog.thumbwhere.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.thumbwhere.com/feeds/7680748359235266260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.thumbwhere.com/2011/11/first-release-of-11-is-live.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/7680748359235266260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/7680748359235266260'/><link rel='alternate' type='text/html' href='http://blog.thumbwhere.com/2011/11/first-release-of-11-is-live.html' title='First release of 1.1 is Live!'/><author><name>ThumbWhere</name><uri>http://www.blogger.com/profile/14192367410319867902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-rAoxz9-A_f0/TsxP15T9J9I/AAAAAAAAACg/EmmWr_So00s/s72-c/23-11-2011%2B12-42-24%2BPM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3536453974343824805.post-1805701159869371652</id><published>2010-08-22T07:55:00.002+10:00</published><updated>2010-08-22T07:58:38.358+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ThumbWhere.com'/><title type='text'>SFTP Added To ThumbWhere Storage</title><content type='html'>&lt;p&gt;Checked in SFTP support.&lt;/p&gt;  &lt;p&gt;We need to test with more SFTP servers than we have in the development environment, but this is all ready for testing.&lt;/p&gt;  &lt;p&gt;Now for FTPS and plain old FTP.&lt;/p&gt;  &lt;p&gt;One side effect of the AmazonS3 Storage integration is that now every time we run automated my integration tests it costs us a few fractions of a cent. :)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_K22gcP4j9bY/THBLX-Je5CI/AAAAAAAAACE/cXxot45MHak/s1600-h/22-08-2010%207-45-48%20AM%5B4%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="22-08-2010 7-45-48 AM" border="0" alt="22-08-2010 7-45-48 AM" src="http://lh5.ggpht.com/_K22gcP4j9bY/THBLZF4sCyI/AAAAAAAAACI/qOgf8orJpG4/22-08-2010%207-45-48%20AM_thumb%5B2%5D.png?imgmax=800" width="592" height="180" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;But it is well worth it :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3536453974343824805-1805701159869371652?l=blog.thumbwhere.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.thumbwhere.com/feeds/1805701159869371652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.thumbwhere.com/2010/08/sftp-added-to-thumbwhere-storage_22.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/1805701159869371652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/1805701159869371652'/><link rel='alternate' type='text/html' href='http://blog.thumbwhere.com/2010/08/sftp-added-to-thumbwhere-storage_22.html' title='SFTP Added To ThumbWhere Storage'/><author><name>ThumbWhere</name><uri>http://www.blogger.com/profile/14192367410319867902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_K22gcP4j9bY/THBLZF4sCyI/AAAAAAAAACI/qOgf8orJpG4/s72-c/22-08-2010%207-45-48%20AM_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3536453974343824805.post-6579789146825505627</id><published>2010-07-04T17:55:00.003+10:00</published><updated>2010-07-04T20:55:02.715+10:00</updated><title type='text'>ThumbWhere AmazonS3 Support</title><content type='html'>&lt;p&gt;I just checked in the test candidate for external storage which supports Amazon S3 and FTP.&lt;/p&gt;  &lt;p&gt;When this is deployed, API licensees can provide one or more Amazon S3 or FTP accounts and ThumbWhere will use that to store your media. &lt;/p&gt;  &lt;p&gt;You specify an account and then a number of selectors which are used to select media for inclusion (or exclusion) with respect to a designated storage provider.&lt;/p&gt;  &lt;p&gt;For example. You might want your videos stored in one S3 account and your thumbnails in another. In fact you might want to deploy certain thumbnails to a different type of storage altogether.&lt;/p&gt;  &lt;p&gt;So by configuration of selectors and storage endpoints you can obtain a high degree of control over where your content is actually stored.&lt;/p&gt;  &lt;p&gt;The system is architected to support generic storage providers via a plug-in model so I’m now investigating what others I can support in the first release. If I don’t see any easy wins then S3 and FTP will be the only ones in the first release.&lt;/p&gt;  &lt;p&gt;I spent a good portion of Sunday writing automated tests to ensure that the core flow processor was able to handle the cases of first time deploy, revocation and update with the minimum amount of API calls and traffic. If multiple deploy instructions for the same media gets into the queue the engine is able to avoid double handling. If some of the media is modified and re-transcoded but all the media is marked for redeployment, only the media that has actually changed will be deployed. &lt;/p&gt;  &lt;p&gt;You put a bit more thought into these things when you get a running bill from Amazon per API call and byte shipped. This weekends efforts added up to 3c :)&lt;/p&gt;  &lt;p&gt;I’m also considering personalised storage, so actual end users of the system (members of each social network) could in theory provide their own S3 account info and have their own media shipped off to their own storage.&lt;/p&gt;  &lt;p&gt;The media in external storage is represented by extra URL elements in the raw feed XML. The default XSLT for the account specific feeds will make this transparent by selecting a single URL and favouring external storage over files hosted on internal ThumbWhere storage.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_K22gcP4j9bY/TDA-Uzz24eI/AAAAAAAAABw/nMFLlrvuXIw/s1600-h/SNAGHTML3246c319%5B3%5D.png"&gt;&lt;img style="border: 0px none; display: inline;" title="SNAGHTML3246c319" alt="SNAGHTML3246c319" src="http://lh3.ggpht.com/_K22gcP4j9bY/TDA-V5hnOJI/AAAAAAAAAB0/BOG5ymr6cDU/SNAGHTML3246c319_thumb%5B1%5D.png?imgmax=800" border="0" width="409" height="224" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We will start to factor this into our pricing model but the immediate effect is that this will allow you to ship most of your media traffic to cheaper storage and it will allow us to control our own storage costs.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3536453974343824805-6579789146825505627?l=blog.thumbwhere.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.thumbwhere.com/feeds/6579789146825505627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.thumbwhere.com/2010/07/thumbwhere-amazons3-support.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/6579789146825505627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/6579789146825505627'/><link rel='alternate' type='text/html' href='http://blog.thumbwhere.com/2010/07/thumbwhere-amazons3-support.html' title='ThumbWhere AmazonS3 Support'/><author><name>ThumbWhere</name><uri>http://www.blogger.com/profile/14192367410319867902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_K22gcP4j9bY/TDA-V5hnOJI/AAAAAAAAAB0/BOG5ymr6cDU/s72-c/SNAGHTML3246c319_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3536453974343824805.post-4282074847580046125</id><published>2010-07-02T12:19:00.004+10:00</published><updated>2010-07-02T12:50:13.392+10:00</updated><title type='text'>Update</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;We've been rather busy for the last year and a half working in the emerging interactive television market so unfortunately there has been no time or resources to devote to the public API as I've spent most of my time either head down coding or out of the country working with some amazing organisations.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The workload has recently started to get reasonable so I'm now looking again at deploying updates to the white site social networking site to take advantage of the last year or so of work in the commercial API.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This means that finally some of the features requested in &lt;a href="http://feedback.thumbwhere.com/"&gt;http://feedback.thumbwhere.com&lt;/a&gt; that have already been implemented in the API will start to see the light of day.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Also we are taking on some pro-bono clients who have expressed an interest in using the API to make the world a batter and more interesting place. These will act as example implementations for integrating with the API. At the moment as we have been doing all of the integration, public facing documentation is a little sparse. This exercise is an attempt to do some good and get some good example code. The long term aim is to start opening up the API to a general developer community.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's amazing to see what people have been building with the API.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 249px;" src="http://2.bp.blogspot.com/_K22gcP4j9bY/TC1PW4zHN8I/AAAAAAAAABY/gp46BqJirSA/s320/optus-ssf.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5489130775456987074" /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;&lt;img src="http://1.bp.blogspot.com/_K22gcP4j9bY/TC1TowyyIBI/AAAAAAAAABg/8iJsvYFYm6Y/s320/hilf2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5489135480592277522" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 173px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks everyone for your ongoing support and encouragement.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3536453974343824805-4282074847580046125?l=blog.thumbwhere.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.thumbwhere.com/feeds/4282074847580046125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.thumbwhere.com/2010/07/update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/4282074847580046125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/4282074847580046125'/><link rel='alternate' type='text/html' href='http://blog.thumbwhere.com/2010/07/update.html' title='Update'/><author><name>ThumbWhere</name><uri>http://www.blogger.com/profile/14192367410319867902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_K22gcP4j9bY/TC1PW4zHN8I/AAAAAAAAABY/gp46BqJirSA/s72-c/optus-ssf.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3536453974343824805.post-6726575483463539788</id><published>2009-09-06T10:45:00.001+10:00</published><updated>2009-09-06T10:45:30.064+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Twitter Clients'/><title type='text'>ThumbWhere Image upload now supported by MahTweets</title><content type='html'>&lt;p&gt;“MahTweets is a rich, awesome, twitter client, feature inline media, filtering, tracking (saved searches) and much more”&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_K22gcP4j9bY/SqMGKB9k3nI/AAAAAAAAABM/3fJsBgZSR8I/image%5B11%5D.png?imgmax=800" width="311" height="352" /&gt; &lt;/p&gt;  &lt;p&gt;MahTweets can be downloaded from &lt;a href="http://theleagueofpaul.com/mahtweets/"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;http://theleagueofpaul.com/mahtweets/&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The ThumbWhere plugin was developed by &lt;a href="http://twitter.com/WillHughes" target="_blank"&gt;@WillHughes&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It supports Image uploading and uses ThumbWhere’s URL shrinking service ( &lt;a href="http://tny.tw"&gt;tny.tw&lt;/a&gt; ).&lt;/p&gt;  &lt;p&gt;You can get a ThumbWhere account at &lt;a href="http://thumbwhere.com"&gt;http://thumbwhere.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Also you don’t have an account you can always MMS images, video and audio to &lt;strong&gt;+61-447-100-293&lt;/strong&gt; and ThumbWhere will publish it anonymously to the public feed.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3536453974343824805-6726575483463539788?l=blog.thumbwhere.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.thumbwhere.com/feeds/6726575483463539788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.thumbwhere.com/2009/09/thumbwhere-image-upload-now-supported.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/6726575483463539788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/6726575483463539788'/><link rel='alternate' type='text/html' href='http://blog.thumbwhere.com/2009/09/thumbwhere-image-upload-now-supported.html' title='ThumbWhere Image upload now supported by MahTweets'/><author><name>ThumbWhere</name><uri>http://www.blogger.com/profile/14192367410319867902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_K22gcP4j9bY/SqMGKB9k3nI/AAAAAAAAABM/3fJsBgZSR8I/s72-c/image%5B11%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3536453974343824805.post-5791395377045420810</id><published>2009-04-29T12:30:00.002+10:00</published><updated>2009-04-29T12:32:49.305+10:00</updated><title type='text'>ThumbWhere Launched</title><content type='html'>For some reason blogger had a massive password fail with my google account linked to this blog. That now seems to have been resolved.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ThumbWhere launched last month - 1 day early :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Getting heaps of submissions and suggestions in &lt;a href="http://feedback.thumbwhere.com"&gt;http://feedback.thumbwhere.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First update will be submission via email to allow all the iPhone users to use ThumbWhere.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3536453974343824805-5791395377045420810?l=blog.thumbwhere.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.thumbwhere.com/feeds/5791395377045420810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.thumbwhere.com/2009/04/thumbwhere-launched.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/5791395377045420810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/5791395377045420810'/><link rel='alternate' type='text/html' href='http://blog.thumbwhere.com/2009/04/thumbwhere-launched.html' title='ThumbWhere Launched'/><author><name>ThumbWhere</name><uri>http://www.blogger.com/profile/14192367410319867902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3536453974343824805.post-4339800495349997939</id><published>2009-03-14T02:04:00.003+11:00</published><updated>2009-03-14T02:40:29.223+11:00</updated><title type='text'>ThumbWhere Is On Twitter</title><content type='html'>Almost there. There are no pending bugs.&lt;br /&gt;&lt;br /&gt;The 'official' soft launch is in 11 days - but the site will be operational well before then.&lt;br /&gt;&lt;br /&gt;The site is a 'white site' / &lt;a href="http://en.wikipedia.org/wiki/Website_wireframe"&gt;'wire-frame'&lt;/a&gt; so its ugly - but very very functional.&lt;br /&gt;&lt;br /&gt;At the moment its only integrating with Twitter - but new services will be added very quickly. I have &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;plugins&lt;/span&gt; for a few other social networks (not naming any names yet) already written. If there is one you want to prioritise - click on&lt;span style="font-size:100%;"&gt;   &lt;a href="http://feedback.thumbwhere.com/"&gt;Vote For Features&lt;/a&gt;&lt;/span&gt; and request it.&lt;br /&gt;&lt;br /&gt;I'm targeting older &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;MMS&lt;/span&gt; based phones for the first month so users with non &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;MMS&lt;/span&gt; phones that require email will need to wait a little longer.&lt;br /&gt;&lt;br /&gt;If you have recently joined Twitter and your phone is a plain old mobile phone that can &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;MMS&lt;/span&gt; then &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;ThumbWhere&lt;/span&gt; is ideal for you if you want to send photos, videos or sound recordings when you are on the go.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Did I just see a flurry of activity on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;ThumbWhere&lt;/span&gt; Twitter account?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3536453974343824805-4339800495349997939?l=blog.thumbwhere.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.thumbwhere.com/feeds/4339800495349997939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.thumbwhere.com/2009/03/thumbwhere-is-on-twitter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/4339800495349997939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/4339800495349997939'/><link rel='alternate' type='text/html' href='http://blog.thumbwhere.com/2009/03/thumbwhere-is-on-twitter.html' title='ThumbWhere Is On Twitter'/><author><name>ThumbWhere</name><uri>http://www.blogger.com/profile/14192367410319867902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3536453974343824805.post-63438375374807727</id><published>2009-03-02T21:36:00.002+11:00</published><updated>2009-03-02T21:37:18.915+11:00</updated><title type='text'>Testing Continues</title><content type='html'>The bugs continue to be found and squashed.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Also making some minor enhancements and planning for some new features.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3536453974343824805-63438375374807727?l=blog.thumbwhere.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.thumbwhere.com/feeds/63438375374807727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.thumbwhere.com/2009/03/testing-continues.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/63438375374807727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/63438375374807727'/><link rel='alternate' type='text/html' href='http://blog.thumbwhere.com/2009/03/testing-continues.html' title='Testing Continues'/><author><name>ThumbWhere</name><uri>http://www.blogger.com/profile/14192367410319867902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3536453974343824805.post-5073850026969710669</id><published>2009-02-26T22:57:00.003+11:00</published><updated>2009-02-26T23:11:12.545+11:00</updated><title type='text'>First Posts Through ThumbWhere Public Front End</title><content type='html'>The public front end transitioned from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;development&lt;/span&gt; to staging server today. First tests all good with only a few configuration issues to deal with.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sent an MMS and SMS to Twitter with no issues.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Will start handing out the test URL tomorrow to a select few.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3536453974343824805-5073850026969710669?l=blog.thumbwhere.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.thumbwhere.com/feeds/5073850026969710669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.thumbwhere.com/2009/02/first-posts-through-thumbwhere.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/5073850026969710669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/5073850026969710669'/><link rel='alternate' type='text/html' href='http://blog.thumbwhere.com/2009/02/first-posts-through-thumbwhere.html' title='First Posts Through ThumbWhere Public Front End'/><author><name>ThumbWhere</name><uri>http://www.blogger.com/profile/14192367410319867902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3536453974343824805.post-86792853037016535</id><published>2009-02-12T09:41:00.006+11:00</published><updated>2009-02-12T10:58:27.634+11:00</updated><title type='text'>Testing 1 2 3...</title><content type='html'>Completed first end-to-end test with the new front-end driven by my &lt;a href="http://blog.metawrap.com/blog/PracticalApplicationsOfFiniteStateMachinesInWebDevelopment.aspx"&gt;state-machine library&lt;/a&gt; by posting a pic to the @ThumbWhereDEV Twitter account.&lt;br /&gt;&lt;br /&gt;I had the core ThumbWhere engine up and running late 2007, and its taken a long time to get the funds and the time together to complete the system. This has been a case of 'launching real soon now' for the last 12 months.&lt;br /&gt;&lt;br /&gt;ThumbWhere's core business is leasing out its social media API to other companies. The good side is that excluding my time, ThumbWhere's has been self-funding for the 6 last months and has another 6 months covered and more clients lining up. So many in fact, this is one of the reasons the public facing site has been such a long time coming.  I've been loathe to risk downtime just to support a public free version of the services. I have a suite of unit tests and an automated upgrade and rollback process, still I'm loath to potentially disrupt customers.&lt;br /&gt;&lt;br /&gt;Call me, cautious.&lt;br /&gt;&lt;br /&gt;The major usage of the service has been the Competition API. This allows anyone to create an online competition (&lt;a href="http://www.ilovefootball.com.au/"&gt;example&lt;/a&gt;) of multiple rounds where media can be uploaded, rated, tagged, commented on and voted on. Customers make API calls and pull XML feeds back. ThumbWhere provides a simple mechanism to customise and produce your own feeds.&lt;br /&gt;&lt;br /&gt;This period of profitable abstention has given me time to make improvements and develop my own AJAX state machine MVC like framework. This was a large initial investment in time, but now allows me to very rapidly prototype and add features.&lt;br /&gt;&lt;br /&gt;Luckily at the end of Feb I have a window of a few weeks between major client campaigns which will allow me to deploy the latest enhancements.&lt;br /&gt;&lt;br /&gt;This will mean there will be a public service based on the API that will allow you to SMS/MMS or upload text, images, video and audio and have it posted to the social network of your choice. I'm starting with Twitter and other social network's will follow as I configure them in.&lt;br /&gt;&lt;br /&gt;Considering adding either TwitPic, BrightKite or FaceBook as the next.&lt;br /&gt;&lt;br /&gt;TwitPic would be an interesting choice because the Twitter App effectively replicates the same features of TwitPic and then some. It would allow people to post video to TwitPic if I include the a link to the media on ThumbWhere. Considering.&lt;br /&gt;&lt;br /&gt;I'm now pairing the app back to basic unstyled HTML and will launch with that. Planning to add my skinning moduleover the top to control the presentation. In effect this will be a demo/proof of concept for some advanced technologies I've been working on for the last year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3536453974343824805-86792853037016535?l=blog.thumbwhere.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.thumbwhere.com/feeds/86792853037016535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.thumbwhere.com/2009/02/testing-1-2-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/86792853037016535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/86792853037016535'/><link rel='alternate' type='text/html' href='http://blog.thumbwhere.com/2009/02/testing-1-2-3.html' title='Testing 1 2 3...'/><author><name>ThumbWhere</name><uri>http://www.blogger.com/profile/14192367410319867902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3536453974343824805.post-1329889321283189058</id><published>2009-02-06T11:39:00.000+11:00</published><updated>2009-02-06T11:40:05.070+11:00</updated><title type='text'>ThumbWhere Has A Blog</title><content type='html'>Now all I need to do is launch the site :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3536453974343824805-1329889321283189058?l=blog.thumbwhere.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.thumbwhere.com/feeds/1329889321283189058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.thumbwhere.com/2009/02/thumbwhere-has-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/1329889321283189058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/1329889321283189058'/><link rel='alternate' type='text/html' href='http://blog.thumbwhere.com/2009/02/thumbwhere-has-blog.html' title='ThumbWhere Has A Blog'/><author><name>ThumbWhere</name><uri>http://www.blogger.com/profile/14192367410319867902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3536453974343824805.post-2220987130911143418</id><published>2008-07-04T14:56:00.002+10:00</published><updated>2009-02-28T15:01:07.528+11:00</updated><title type='text'>QR Code support</title><content type='html'>&lt;span class="Apple-style-span"  style=" ;font-family:'Times New Roman';"&gt;&lt;h2&gt;&lt;span class="Apple-style-span" style="font-size: 16px; font-weight: normal; "&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;I have put this up from the old HTML media item pages to make things a bit cleaner.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;All media submitted to ThumbWhere has an associated QR Code. If you scan the barcode using QR Code reading software on your mobile phone, a version of the media compatible with your phone will be loaded onto your phone.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Read about &lt;a href="http://en.wikipedia.org/wiki/QR_Code" alt="Wikipedia Entry for QR Code"&gt;QR Codes&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;If you need QR code reader for your phone, here are two I have tested already.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;h4&gt;&lt;a href="http://www.quickmark.com.tw/En/basic/download.asp"&gt;QuickMark&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;This requires registration but they support a large number of phones. You will need to install from your PC.&lt;/p&gt;&lt;p&gt;Scanning style is &lt;i&gt;Frame, Hope and Click&lt;/i&gt; - so its not automatic and can take a few goes.&lt;/p&gt;&lt;p&gt;Tested fine on my WM6 JasJam.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;h4&gt;&lt;a href="http://www.i-nigma.com/"&gt;I-Nigma&lt;/a&gt;&lt;/h4&gt;&lt;p&gt;Enter &lt;a href="http://i-nigma.mobi/"&gt;http://i-nigma.mobi&lt;/a&gt; into your mobile phone's web browser.&lt;/p&gt;&lt;p&gt;This tracks scanned QR codes via a redirect. So whatever URL you scan in, i-nigma will know about it.&lt;/p&gt;&lt;p&gt;Scanning style is &lt;i&gt;Automatic&lt;/i&gt; where the phone security model allows for it - as soon as it recognises the QR code, it will decode it.&lt;/p&gt;&lt;p&gt;It &lt;a href="http://rss.thumbwhere.com/items/6/4/644.html"&gt;works well on my WM6 JasJam&lt;/a&gt; (Automatic), but completely crashes my Nokia 6280 (Manual).&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3536453974343824805-2220987130911143418?l=blog.thumbwhere.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.thumbwhere.com/feeds/2220987130911143418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.thumbwhere.com/2008/07/qr-code-support.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/2220987130911143418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/2220987130911143418'/><link rel='alternate' type='text/html' href='http://blog.thumbwhere.com/2008/07/qr-code-support.html' title='QR Code support'/><author><name>ThumbWhere</name><uri>http://www.blogger.com/profile/14192367410319867902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3536453974343824805.post-7761136523885134455</id><published>2008-02-05T14:58:00.000+11:00</published><updated>2009-02-28T14:59:07.800+11:00</updated><title type='text'>Tips And Trcks</title><content type='html'>&lt;span class="Apple-style-span"  style=" ;font-family:'Times New Roman';"&gt;&lt;h2&gt;&lt;span class="Apple-style-span"  style=" ;font-size:19px;"&gt;Save the ThumbWhere MMS Number&lt;/span&gt;&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;When you see something you want to share with your friends, don't fumble with your phone - be prepared. Save 61-447-100-293 in your phone contacts under "AAA ThumbWhere" so you can quickly send photos, video and audio to ThumbWhere when an opportunity presents itself.&lt;/p&gt;&lt;h3&gt;Send a Description&lt;/h3&gt;&lt;p&gt;When you send to ThumbWhere, put the title in the message subject or body. Pictures with text descriptions are automatically tagged and are more easily found.&lt;/p&gt;&lt;p&gt;If you send in a blank subject and put text in the body, the body will be treated as the subject.&lt;/p&gt;&lt;h3&gt;Rotate Your Pictures&lt;/h3&gt;&lt;p&gt;You can add special commands to the start of the subject to rotate your photos. This is useful if your phone's camera functions don't autmatically rotate an image before sending it via MMS&lt;/p&gt;&lt;p&gt;&lt;&gt;&lt;/p&gt;&lt;p&gt;&gt; Will rotate the photo right (clockwise)&lt;/p&gt;&lt;p&gt;So if you sent in the following subject&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&gt;I Love My Kitty!&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Your picture will be rotated to the right and given the subject of "I Love My Kitty."&lt;/p&gt;&lt;h3&gt;Caption Your Photos LOLcat Style!&lt;/h3&gt;&lt;p&gt;&lt;a href="http://tinyurl.com/5gj96h"&gt;This blog post&lt;/a&gt; has a more in depth discussion of the codes used to generate captions.&lt;/p&gt;&lt;p&gt;Any text you put at the start of the subject in square brackets&lt;/p&gt;&lt;pre&gt;[Like This]&lt;/pre&gt;will be turned into a caption. The remainder of the subject will be left as is, so if you send&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;[Fear Me Human]Why is my kitty growling?&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;It will caption the image with "Fear Me Human" and the subect will be "Why is my kitty growling?"&lt;/p&gt;&lt;p&gt;A Caption can be positioned in three rows on your photo, [Top/Middle/Bottom]. The / character is used to switch to the next row.&lt;/p&gt;&lt;p&gt;A more complicated example is&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;[I have a human/It feeds me/I may let it live]My Kitty Loves Her Food!&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;which will caption the image on three lines "I Have A Human" will be at the top, "It Feeds Me" will be in the middle and "I May Let It Live" will be at the top. The Subject of the message will be "My Kitty Loves Her Food!"&lt;/p&gt;&lt;p&gt;You can of couse leave the first two rows blank if you want your caption at the bottom as in this next example,&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;[//Die Human!]Why does my Kitty Have Glowing Eyes?&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;which will caption the image at the bottom with "Die Human!". The Subject of the message will be "Why does my Kitty Have Glowing Eyes?"&lt;/p&gt;&lt;p&gt;Putting a &lt;&gt; in your caption will allign the text to the left or the right.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;[&lt;tastes&gt;Chicken!]&lt;/tastes&gt;&lt;/pre&gt;will put a caption at the top, left justified and at the bottom right justified.&lt;p&gt;&lt;/p&gt;&lt;p&gt;All captions are automatically capitalised, they just seem to look better that way.&lt;/p&gt;&lt;p&gt;You don't have to end your caption instruction with a ] if you are not going put some text after it, such that&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;[nom nom nom&lt;/pre&gt;will still work as a top caption even though the caption command is missing its final ]&lt;p&gt;&lt;/p&gt;&lt;p&gt;If you run out of room in the Subject, keep the Subject blank and use the message body. If the Subject is blank, the Body will be treated as the subject and image commands such as caption and rotation will come from the body.&lt;/p&gt;&lt;p&gt;If you think these instruction can be made better - please &lt;a href="mailto:thumbwhere@thumbwhere.com?subject=Suggestions%20for%20ThumbWhere%20Tips%20And%20Tricks&amp;amp;body=Oh%20you%20are%20so%20wise%20and%20strong%20and%20handsome,%20but%20your%20English%20leaves%20a%20lot%20to%20be%20desired%20and%20your%20spelling...%20don't%20get%20me%20started.....%20Here%20is%20a%20suggestion..."&gt;send me an email&lt;/a&gt;.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3536453974343824805-7761136523885134455?l=blog.thumbwhere.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.thumbwhere.com/feeds/7761136523885134455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.thumbwhere.com/2009/02/tips-and-trcks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/7761136523885134455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/7761136523885134455'/><link rel='alternate' type='text/html' href='http://blog.thumbwhere.com/2009/02/tips-and-trcks.html' title='Tips And Trcks'/><author><name>ThumbWhere</name><uri>http://www.blogger.com/profile/14192367410319867902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3536453974343824805.post-8698407342921172869</id><published>2007-11-20T13:00:00.002+11:00</published><updated>2011-11-25T16:07:47.989+11:00</updated><title type='text'>First Light</title><content type='html'>The ThumbWhere API is being used over XMAS by a few people to record their holiday snaps and add them to Twitter and Facebook.&lt;br /&gt;&lt;br /&gt;Fun times!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3536453974343824805-8698407342921172869?l=blog.thumbwhere.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.thumbwhere.com/feeds/8698407342921172869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.thumbwhere.com/2009/03/first-light.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/8698407342921172869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3536453974343824805/posts/default/8698407342921172869'/><link rel='alternate' type='text/html' href='http://blog.thumbwhere.com/2009/03/first-light.html' title='First Light'/><author><name>ThumbWhere</name><uri>http://www.blogger.com/profile/14192367410319867902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
