<?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-5646001216162754640</id><updated>2012-02-02T19:52:27.458-08:00</updated><category term='fission'/><category term='facebook'/><category term='heytell'/><category term='viral'/><category term='mechanicalturk'/><category term='mturk'/><category term='web'/><category term='development'/><category term='startup'/><category term='twilio ivr google-app-engine google-spreadsheet charity'/><category term='iphone development'/><category term='mturk automation'/><category term='mobility'/><category term='senate'/><category term='requirements programming design'/><category term='birthdays'/><category term='android'/><category term='iphone'/><category term='ios'/><category term='metrics'/><category term='uptime'/><category term='healthcare'/><category term='micro_isv'/><category term='marketing'/><category term='link'/><category term='network'/><category term='coica blacklist government'/><category term='statistics'/><category term='health'/><category term='data'/><category term='hardware'/><category term='legislation'/><title type='text'>Voxilating</title><subtitle type='html'>&lt;p align="right"&gt;News and information about mobile devices, voice, telephony, and crowd-sourcing.&lt;/p&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://voxilate.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://voxilate.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Steven Hugg</name><uri>http://www.blogger.com/profile/14823444707744542977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_sgNin5G9Nz0/S0vHt1SmHKI/AAAAAAAAF-8/ldpvZuERtHk/s1600-R/stevepool_bigger.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5646001216162754640.post-4483608671740574411</id><published>2011-11-08T11:39:00.000-08:00</published><updated>2011-11-08T12:18:41.369-08:00</updated><title type='text'>New ways to connect to friends - using URLs and Siri!</title><content type='html'>You can now provide friends with direct-connection URLs in HeyTell! When they open the web page from their phone, they can connect to you automatically, as long as your privacy is set to Low or you've connected before!&lt;p&gt;In addition, if you're using Siri, you can set up a contact to open HeyTell and select a friend to talk to!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;To build a direct-connect URL for HeyTell:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;1. On iOS, Open the Profile page, tap Change, then select the contact you've set as yourself. On Android, tap Menu &amp;gt; Profile. Ensure that the string you want friends to use to contact you is set inside your email or phone number fields. &lt;/p&gt;&lt;p&gt;&lt;b&gt;IMPORTANT!&lt;/b&gt; If you don't want to share your email address or phone number with the world, we recommend adding a contact here that you do not mind sharing publicly - for example, a long, unique string in the phone number field, a throwaway email address, or a Twitter handle to protect your privacy. Check out the &lt;a href="http://heytell.com/privacy" target="new"&gt;Voxilate Privacy Policy&lt;/a&gt; for more information.&lt;/p&gt;&lt;p&gt;2. After changing your "This is Me!" contact, set your privacy to Low.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;3. Build your URL! If you provided an email entry, your URL will look like:&lt;/p&gt;&lt;p style="font-family: courier new;"&gt;http://heytell.com/user/?email=username@userdomain.com&lt;/p&gt;&lt;p&gt;where &lt;span style="font-family:courier new;"&gt;support@heytell.com&lt;/span&gt; is the data you added in your email field.&lt;/p&gt;If you provided a phone number entry, your URL will look like:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;http://heytell.com/user/?tel=13015555555&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(don't forget your country code!)&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Launching HeyTell from Siri&lt;/h2&gt;&lt;p&gt;If you're using Siri, you can create a new contact, for example, we created a contact called "HeyTell Support" with a home page set to &lt;span style="font-family:courier new;"&gt;heytell://contact/email:myusername@mydomain.com&lt;/span&gt;. You can also annotate a current contact - just add a home page entry with &lt;span style="font-family:courier new;"&gt;heytell://contact/email:username@userdomain.com&lt;/span&gt; or &lt;span style="font-family:courier new;"&gt;heytell://contact/tel:13015555555&lt;/span&gt; where their email address or phone number (including country code) is included in the URL.&lt;/p&gt;&lt;a href="http://4.bp.blogspot.com/-FxVPXZ2CfTE/TrmMKB8Q72I/AAAAAAAACsY/Wy1U2hgIxfY/s1600/HeyTellSupportContact.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 267px; height: 400px;" src="http://4.bp.blogspot.com/-FxVPXZ2CfTE/TrmMKB8Q72I/AAAAAAAACsY/Wy1U2hgIxfY/s400/HeyTellSupportContact.png" alt="" id="BLOGGER_PHOTO_ID_5672719309597634402" border="0" /&gt;&lt;/a&gt;&lt;p&gt;Then, we asked Siri to "Contact HeyTell Support."&lt;/p&gt;&lt;p&gt;&lt;a href="http://3.bp.blogspot.com/-D3jF7AzF2lU/TrmMjQf-eRI/AAAAAAAACsk/DrArY7pc1ao/s1600/photo-1.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 267px; height: 400px;" src="http://3.bp.blogspot.com/-D3jF7AzF2lU/TrmMjQf-eRI/AAAAAAAACsk/DrArY7pc1ao/s400/photo-1.PNG" alt="" id="BLOGGER_PHOTO_ID_5672719743002245394" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;When she finds the contact, tap "home page" and HeyTell will open--if the user you selected matches, their name will appear in the To: field and you can HeyTell them right away! If more than one user matches the contact information, you'll be presented with a list to select from!&lt;/p&gt;&lt;p&gt;A few caveats: When adding a new contact, sometimes it takes Siri a bit of time to recognize it, but eventually, she'll figure it out!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;As always, if you run into any issues or have questions, drop us a line at support@heytell.com, android@heytell.com, pop onto the Facebook page at &lt;a href="https://facebook.com/heytell"&gt;https://facebook.com/heytell&lt;/a&gt;, drop us a tweet on Twitter at &lt;a href="https://twitter.com/heytell"&gt;https://twitter.com/heytell&lt;/a&gt;, or join us at Google + at &lt;a href="http://heytell.com/+"&gt;http://heytell.com/+&lt;/a&gt;!&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5646001216162754640-4483608671740574411?l=voxilate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxilate.blogspot.com/feeds/4483608671740574411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://voxilate.blogspot.com/2011/11/new-ways-to-connect-to-friends-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/4483608671740574411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/4483608671740574411'/><link rel='alternate' type='text/html' href='http://voxilate.blogspot.com/2011/11/new-ways-to-connect-to-friends-using.html' title='New ways to connect to friends - using URLs and Siri!'/><author><name>jen_h</name><uri>http://www.blogger.com/profile/14104474828895296944</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://4.bp.blogspot.com/-FxVPXZ2CfTE/TrmMKB8Q72I/AAAAAAAACsY/Wy1U2hgIxfY/s72-c/HeyTellSupportContact.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5646001216162754640.post-4628540370988856899</id><published>2011-07-30T08:18:00.000-07:00</published><updated>2011-07-30T08:19:18.937-07:00</updated><title type='text'>A few notes on HeyTell 2.3 for iOS!</title><content type='html'>&lt;p&gt;We've got a few fun changes for HeyTell 2.3, so we thought we'd write a little bit more about 'em!&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Alert Tones:&lt;/strong&gt;  We added a new extra that plays alert tones. You can set a global tone  for all incoming messages, and can also set unique tones for friends and  groups. You can also configure it to play the alert tone when a message  comes in while the app is open. While there are a bunch of ring tones  to choose from, we encourage you to check out the Dog Whistle ringtone -  50% of our team can hear it, and 50% can't - can you? &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;A new Voice Changer option:&lt;/strong&gt;  Alien voice allows you to speed up or slow down your voice - sound like  a chipmunk, munchkin, or slow yourself down. If you've already got the  Voice Changer extra, the option will automatically appear for you after  upgrade.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Export messages to Twitter:&lt;/strong&gt;  We've had a lot of requests for this - you can now, in addition to  posting to Facebook and email, you can post messages you sent to  Twitter, SMS, or export a link. Note that messages you export this way  are publicly viewable for anyone who has access to the link. To export  this way, tap the blue arrow next to the conversation, select the  message you want to export, then tap the Actions button and select the  type of Online Sharing you want to perform.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;New translations: &lt;/strong&gt;We've  added Portuguese, Norwegian, and Italian translations - many, many  thanks go out to John André Netland for contributing the Norwegian  translation and to Gabriele Ravanetti for assistance on the Italian  version!&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Bug fixes: &lt;/strong&gt;You may find a few  other bugs resolved - note that we continue to recommend using released  and supported operating systems only, but if you do run into issues,  definitely drop us an email - and a big thanks to everyone who's  contacted us so far, we do appreciate the issue reports!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5646001216162754640-4628540370988856899?l=voxilate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxilate.blogspot.com/feeds/4628540370988856899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://voxilate.blogspot.com/2011/07/few-notes-on-heytell-23-for-ios.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/4628540370988856899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/4628540370988856899'/><link rel='alternate' type='text/html' href='http://voxilate.blogspot.com/2011/07/few-notes-on-heytell-23-for-ios.html' title='A few notes on HeyTell 2.3 for iOS!'/><author><name>jen_h</name><uri>http://www.blogger.com/profile/14104474828895296944</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5646001216162754640.post-7248224919048878321</id><published>2011-04-03T20:57:00.000-07:00</published><updated>2011-04-03T22:05:41.747-07:00</updated><title type='text'>April Fool Public Relay Weekend!</title><content type='html'>Thanks for trying out the public relay - what a great time! We had over 150 people join the relay over the weekend - some participating, some just listening in. Topics of discussion included mobile technology, accessibility, snake breeding, and oh-so-many things. Messages sometimes flew so furiously that our phones couldn't keep up!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We got a lot of good feedback, and we're going to go back and figure out how to make group chat even better. We've learned a lot and discovered a lot of issues -- and we think we have good ideas on how to improve them while keeping the spontaneous nature of public chat alive. It's too much fun not to!&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;But if you need your HeyTell group chat fix, there's hope on the horizon. In the next month or so we're going to allow users (iOS &amp;amp; Android!) who have the Groups extra to create Shared Groups, which allow group members to "Reply All." Stay tuned!&lt;/div&gt;&lt;/div&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/5646001216162754640-7248224919048878321?l=voxilate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxilate.blogspot.com/feeds/7248224919048878321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://voxilate.blogspot.com/2011/04/april-fool-public-relay-weekend.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/7248224919048878321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/7248224919048878321'/><link rel='alternate' type='text/html' href='http://voxilate.blogspot.com/2011/04/april-fool-public-relay-weekend.html' title='April Fool Public Relay Weekend!'/><author><name>Steven Hugg</name><uri>http://www.blogger.com/profile/14823444707744542977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_sgNin5G9Nz0/S0vHt1SmHKI/AAAAAAAAF-8/ldpvZuERtHk/s1600-R/stevepool_bigger.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5646001216162754640.post-480790784745921873</id><published>2011-03-05T08:02:00.000-08:00</published><updated>2011-03-06T18:29:06.877-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='link'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='heytell'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Make a Tap-To-Talk Link for HeyTell on iPhone</title><content type='html'>Did you know that you can create a link that lets others connect to you on HeyTell? You'll need an iOS device and a Facebook account and can put this link in web pages, emails, Twitter...wherever you want others to chat with you - iOS and Android users can connect to you by tapping this link on their mobile devices.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here are the steps:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Go to the &lt;b&gt;Profile&lt;/b&gt; tab on HeyTell and connect to your Facebook account.&lt;/li&gt;&lt;li&gt;Find your Facebook ID. This is the tricky part, and you'll have to log into the Facebook web page to do this. Go to your profile and mouse-over your profile picture, then look at the status bar for a URL with a number at the end. The format should be something like "id=123456789". We are interested in just the digits; this is your Facebook UID. (&lt;a href="http://socialmediaseo.net/2010/02/20/how-to-find-facebook-id/"&gt;More detailed instructions here&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Your tap-to-talk link will have the format:&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;b&gt;http://heytell.com/user/?fb=#####&lt;number&gt;&lt;/number&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Replace ##### &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;number&gt;&lt;/number&gt;&lt;/span&gt;with your numeric Facebook UID. (EDIT: You can also view the link by going to the &lt;a href="http://apps.facebook.com/heytell/"&gt;HeyTell Application&lt;/a&gt; on Facebook)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can paste this link wherever you want, and as long as you have your Privacy Level set to &lt;b&gt;Low&lt;/b&gt;, others can chat with you just by tapping the link on their mobile device!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is an experimental feature, so please let us know how it works out! We'll be adding more (and easier, and for Android!) ways to connect in the future!&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/5646001216162754640-480790784745921873?l=voxilate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxilate.blogspot.com/feeds/480790784745921873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://voxilate.blogspot.com/2011/03/make-click-to-talk-link-for-heytell-on.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/480790784745921873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/480790784745921873'/><link rel='alternate' type='text/html' href='http://voxilate.blogspot.com/2011/03/make-click-to-talk-link-for-heytell-on.html' title='Make a Tap-To-Talk Link for HeyTell on iPhone'/><author><name>Steven Hugg</name><uri>http://www.blogger.com/profile/14823444707744542977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_sgNin5G9Nz0/S0vHt1SmHKI/AAAAAAAAF-8/ldpvZuERtHk/s1600-R/stevepool_bigger.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5646001216162754640.post-6797385842664651095</id><published>2011-02-19T17:42:00.001-08:00</published><updated>2011-02-19T17:47:38.607-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='uptime'/><category scheme='http://www.blogger.com/atom/ns#' term='statistics'/><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='heytell'/><title type='text'>More HeyTell Server Upgrades</title><content type='html'>&lt;div&gt;We've been working hard upgrading our servers to handle all of our new users -- and the majority of the work is complete. We think the new system is a lot snappier and more reliable, and we're going to post the following graphs to keep ourselves honest:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://share.pingdom.com/banners/3752fc01" /&gt;&lt;img src="http://share.pingdom.com/banners/1735e3e5" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is the uptime for the main HeyTell service, and as you can see there were a few outages over the last few weeks as we worked through a few issues with the upgrade. The high number of outages reported (162) are due to some transient network problems that were reported as multiple outages, and our daily two-minute maintenance period (which is no longer needed).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can come back here any time and view the graph, which is updated daily.&lt;/div&gt;&lt;div&gt;Please report any problems you encounter to support@heytell.com!&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/5646001216162754640-6797385842664651095?l=voxilate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxilate.blogspot.com/feeds/6797385842664651095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://voxilate.blogspot.com/2011/02/more-heytell-server-upgrades_19.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/6797385842664651095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/6797385842664651095'/><link rel='alternate' type='text/html' href='http://voxilate.blogspot.com/2011/02/more-heytell-server-upgrades_19.html' title='More HeyTell Server Upgrades'/><author><name>Steven Hugg</name><uri>http://www.blogger.com/profile/14823444707744542977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_sgNin5G9Nz0/S0vHt1SmHKI/AAAAAAAAF-8/ldpvZuERtHk/s1600-R/stevepool_bigger.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5646001216162754640.post-3310820588993928166</id><published>2011-02-11T10:15:00.000-08:00</published><updated>2011-02-15T08:41:17.502-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='birthdays'/><category scheme='http://www.blogger.com/atom/ns#' term='metrics'/><category scheme='http://www.blogger.com/atom/ns#' term='heytell'/><title type='text'>Happy 1st Birthday, HeyTell!</title><content type='html'>&lt;p&gt;HeyTell just hit its first birthday, and what an incredible first year it's been! On February 10, 2010, fresh off the adrenalin of the Saints' Super Bowl victory in New Orleans, HeyTell was publicly launched with very little fanfare. 33 intrepid users downloaded HeyTell its first day in the App Store.&lt;/p&gt;&lt;p&gt;One year later, with HeyTell exceeding 3.5 million downloads, HeyTell users are proving that there's a place in their hearts (and their work days, and their nights out) for quick, personal push-to-talk style voice messaging.&lt;/p&gt;&lt;p&gt;And for this, we thank you, each and every amazing HeyTell user — you are truly what has propelled HeyTell's growth and acceptance as a vital communication tool for daily use. Your passionate sharing of the app with friends, family, and co-workers makes inroads each and every day in pushing forward the idea of quick voice messaging as a highly effective and personal mode of communication...not to mention minimizing the number of sore fingers and misunderstood text messages out there!&lt;/p&gt;&lt;p&gt;We're also really happy to report that it's possible to bootstrap a product and have millions of people use it in just a year. It's surely not easy; we absolutely owe a debt of gratitude to our family, friends, and advisors, ubiquitous Internet and mobile broadband, cloud-based hosting like Amazon Web Services, and distribution channels like the App Store and Android Market. We believe this entire endeavor would have been nearly impossible to pull off just a few years ago.&lt;/p&gt;&lt;p&gt;So what have we been up to lately? We recently released a brand new backend architecture that should scale to handle our anticipated growth through and beyond the next year and are hard at work on improved clients for iOS and Android. We're also looking towards additional platform support and expanded localization support as part of our efforts to grow internationally. In addition, we hope to have some fun announcements for you in the coming weeks!&lt;/p&gt;&lt;p&gt;And, because no 1st birthday should pass without a 'baby book' of sorts, we give you HeyTell's 12 month usage statistics:&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-UZcDuUSFWZE/TVV7eT8OVVI/AAAAAAAABnw/eIuWXTQH4FU/s1600/RegisteredUsers.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 245px;" src="http://3.bp.blogspot.com/-UZcDuUSFWZE/TVV7eT8OVVI/AAAAAAAABnw/eIuWXTQH4FU/s400/RegisteredUsers.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5572495874620020050" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;HeyTell reached over 10,000 people by the end of February 2010. HeyTell hit the 1 million user mark in October, 2 million by early December, and 3 million in mid-January. Our biggest download day of 2010 was December 25.&lt;/p&gt;&lt;p&gt;December 25 was also a big day for the iPod 4G - we saw 5 times the number of new iPod registrations on December 25 than any other day of the month!&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-624xbDZ9SUc/TVV7eGVMN9I/AAAAAAAABng/8DK7a6LFS1s/s1600/ActiveUsers.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 363px;" src="http://4.bp.blogspot.com/-624xbDZ9SUc/TVV7eGVMN9I/AAAAAAAABng/8DK7a6LFS1s/s400/ActiveUsers.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5572495870966642642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Registrations don't mean much, though, if people don't keep coming back. Around 450,000 people check in with HeyTell each day now. Each week, 1 million check in. Every month, we see around 2 million users sending, receiving, or checking their HeyTells.&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-S6jb6dxDgQk/TVV7eP-qFKI/AAAAAAAABno/_f0lW_3vqVI/s1600/UserMessages.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 333px; height: 400px;" src="http://2.bp.blogspot.com/-S6jb6dxDgQk/TVV7eP-qFKI/AAAAAAAABno/_f0lW_3vqVI/s400/UserMessages.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5572495873556485282" /&gt;&lt;/a&gt;&lt;p&gt;So why do HeyTell users keep coming back? We believe it's because their friends and family keep coming back. Over 1.7 million messages are sent a day in 2011, and, over HeyTell's year of service, over 215 million messages have been sent:&lt;/p&gt;&lt;p&gt;If it were possible to play all audio transmitted via HeyTell end-to-end, it would take &lt;b&gt;44 years&lt;/b&gt; to play it all back!&lt;/p&gt;&lt;p&gt;So who's using what? Our figures show that roughly 25% of our users run Android operating systems, and 75% run iOS.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-oiPcgpI6zNM/TVV7GEQ_C1I/AAAAAAAABnY/76eS5vVFQf0/s1600/platforms.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 302px; height: 302px;" src="http://3.bp.blogspot.com/-oiPcgpI6zNM/TVV7GEQ_C1I/AAAAAAAABnY/76eS5vVFQf0/s400/platforms.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5572495458095270738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The Android audience is very diverse, there are 1114 different combinations of Android device and OS, compared to 35 iOS variations. The most popular Android phone among HeyTell users appears to be the HTC Evo; however, the most popular since December 2010 is the Samsung Galaxy S.&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-04-pGiHvTs0/TVV6uoMwTXI/AAAAAAAABnQ/E0dOmamOu04/s1600/ModelOS.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 234px;" src="http://2.bp.blogspot.com/-04-pGiHvTs0/TVV6uoMwTXI/AAAAAAAABnQ/E0dOmamOu04/s400/ModelOS.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5572495055424343410" /&gt;&lt;/a&gt;&lt;p&gt;So, that's the HeyTell year in review—thanks to everyone who participated in HeyTell's Year One—we couldn't have done it without you! We hope you stick around and we look forward to another fantastic year ahead!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5646001216162754640-3310820588993928166?l=voxilate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxilate.blogspot.com/feeds/3310820588993928166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://voxilate.blogspot.com/2011/02/happy-1st-birthday-heytell.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/3310820588993928166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/3310820588993928166'/><link rel='alternate' type='text/html' href='http://voxilate.blogspot.com/2011/02/happy-1st-birthday-heytell.html' title='Happy 1st Birthday, HeyTell!'/><author><name>jen_h</name><uri>http://www.blogger.com/profile/14104474828895296944</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/-UZcDuUSFWZE/TVV7eT8OVVI/AAAAAAAABnw/eIuWXTQH4FU/s72-c/RegisteredUsers.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5646001216162754640.post-4229014308395793346</id><published>2010-11-29T08:31:00.001-08:00</published><updated>2010-11-29T17:51:08.403-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='ios'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>iOS and Android: The Odd Development Couple</title><content type='html'>&lt;div&gt;We recently ported our app &lt;a href="http://heytell.com/"&gt;HeyTell&lt;/a&gt; from iPhone to Android, and found that we gained a little perspective in the process. Because it uses a large number of system features (native widgets, location, database, audio, network services), porting the app really required a deep understanding of each platform.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;A great way to get an understanding of the strengths and weaknesses of any software platform is to port software from one platform to another. For example, in the early days of my programming life, I'd write a simple "Missile Command" game to get a feel for a specific platform.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here are some of the various perspectives of the iOS and Android platforms, and how we view them differently after the port:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;User Interface&lt;/b&gt; - iOS has the benefit of being based on a mature UI framework (Cocoa) and Android has had to play catch-up with features (like animated views). iOS has the edge here with some features -- table/list views in particular are much more full-featured, if a bit difficult at times. Interface Builder also is much more slick than anything available on Android (I just edit the XML files directly on Android), so I'd say iOS wins this one.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Application Framework&lt;/b&gt; - Android and iPhone have very different ways of looking at the world. Android tries to model an app as a loosely-coupled set of Services, Activities, and Content Providers, while iOS sandboxes each app like a traditional OS. I understand the rationale behind Android's design, but I think it confuses more than it delivers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Performance&lt;/b&gt; - We've never had serious problems with performance, although iOS seems to have a snappier UI in general and do a better job with compositing and animation. Both platforms allow native code (Android via the NDK) for CPU-intensive code.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Language&lt;/b&gt; - Objective C does seem to have a steep learning curve and a lot of new concepts compared with Java - especially regarding memory management. However, if you look under the surface, Android has many of the same issues (look up "android memory leaks weak references"). But if you're experienced in Java, you'll have a lot fewer hurdles with things like threading on Android.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Third-Party Libraries&lt;/b&gt; - There are roughly equal numbers of iOS and Android libraries on GitHub, for instance. On iOS, you have easy access to any C/C++ library (without going through JNI), while on Android, you have easy access to the thousands of native Java libs. I'd say this one is a tie.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Development Tools &lt;/b&gt;- Eclipse is a great environment and is perfectly optimized for Java programming. XCode isn't bad either, and the experience is a bit more polished. I do really appreciate the command-line tools like adb you get on Android, however. My partner is a big fan of the Dalvik Debug Monitor Server (DDMS).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Documentation&lt;/b&gt; - Apple has great documentation, and you can find pretty much anything you want to know there or in its example code. The Android docs are not quite as comprehensive, IMHO. We do use Google Code Search to search the Android code base ourselves, which is very helpful at times. But you're going to spend a lot of time on Stack Overflow, no matter what you pick. :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Market&lt;/b&gt; - One feature of the Android Market is that you can push an update at any time without review. This is really comforting from a developer's standpoint (maybe not so much from a user's, but we're happy about it). Android also lets users comment on their stack traces, which is really neat. Okay, sometimes the comments are not so nice, but often they add steps to reproduce - this is really helpful, especially when it seems like we see a new piece of handset hardware appear in our matrix every day and testing across all devices/OSes/firmware revisions/carriers/whizzbang modded ROMs on Android is unfortunately really tricky for a small, bootstrapped team.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Monetization - &lt;/b&gt;Because HeyTell is free, we don't have any perspective on pay vs. non-pay apps on either platform, but Apple's In App Purchase capability has served us well. In App purchases are really important for us, because not all users want or need all features, and we don't want to charge users for features they don't want or need. Our fingers are crossed that Google adds an IAP capability soon. In addition, on the advertising side, there really isn't anything on Android quite as turn-key as Apple's iAd. All points go to iOS here, at least for now.&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/5646001216162754640-4229014308395793346?l=voxilate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxilate.blogspot.com/feeds/4229014308395793346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://voxilate.blogspot.com/2010/11/ios-and-android-odd-development-couple.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/4229014308395793346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/4229014308395793346'/><link rel='alternate' type='text/html' href='http://voxilate.blogspot.com/2010/11/ios-and-android-odd-development-couple.html' title='iOS and Android: The Odd Development Couple'/><author><name>Steven Hugg</name><uri>http://www.blogger.com/profile/14823444707744542977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_sgNin5G9Nz0/S0vHt1SmHKI/AAAAAAAAF-8/ldpvZuERtHk/s1600-R/stevepool_bigger.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5646001216162754640.post-4416385103554541812</id><published>2010-11-13T08:05:00.000-08:00</published><updated>2010-11-13T13:23:35.884-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coica blacklist government'/><title type='text'>Ban the Internet Blacklist</title><content type='html'>&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;We at Voxilate oppose internet censorship and internet blacklisting. We do not think S.3804 (Combating Online Infringement and Counterfeits Act) represents the independent software development community.&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;For more information on the bill, click &lt;a href="http://www.publicknowledge.org/blog/new-copyright-bill-bears-problems-concerns-s3"&gt;here&lt;/a&gt; or &lt;a href="https://www.eff.org/deeplinks/2010/09/censorship-internet-takes-center-stage-online"&gt;here&lt;/a&gt;. For a list of supporters click &lt;a href="http://www.theglobalipcenter.com/pages/who-supports-coica"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;To contact your Senator or sign a petition against the bill visit &lt;a href="http://demandprogress.org/"&gt;Demand Progress&lt;/a&gt;.&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;The following is the text of the letter we sent to Senator Ben Cardin of Maryland:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;i&gt;Dear Senator,&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;i&gt;I have communicated with you in the past about technology initiatives in Congress. I'd like to call your attention to another bill, S.3804, or the "internet blacklist" bill.&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;i&gt;As an entrepreneur whose business depends solely on the Internet, this bill greatly concerns me. It is an unreasonably heavy-handed approach to a problem which already has many solutions such as the DMCA which are backed in legal theory.&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;i&gt;The bill will not be effective at stopping copyright violation or unauthorized distribution of any kind. Those who wish to share content will easily find a workaround -- they always have. We in the software industry begrudgingly accept a certain amount of piracy as a way of life, and I do not believe this bill represents our interests.&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;i&gt;S.3804 would only serve to create an environment of uncertainty which would disrupt commerce and encourage other countries to avoid or bypass US infrastructure. Larger businesses would continue to operate in legally grey areas and lobby to avoid the blacklist, while emerging small businesses would be destroyed.&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;i&gt;It is unsettling that just months after the President signed the Daniel Pearl Freedom of the Press Act, we are proposing a bill which would censor American internet sites and blacklist American companies. More policing is not the stimulus our country needs right now.&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;i&gt;Please vote no on S.3804.&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;span class="Apple-style-span"  style="font-size:-webkit-xxx-large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5646001216162754640-4416385103554541812?l=voxilate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxilate.blogspot.com/feeds/4416385103554541812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://voxilate.blogspot.com/2010/11/coica-open-letter-to-your-senator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/4416385103554541812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/4416385103554541812'/><link rel='alternate' type='text/html' href='http://voxilate.blogspot.com/2010/11/coica-open-letter-to-your-senator.html' title='Ban the Internet Blacklist'/><author><name>Steven Hugg</name><uri>http://www.blogger.com/profile/14823444707744542977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_sgNin5G9Nz0/S0vHt1SmHKI/AAAAAAAAF-8/ldpvZuERtHk/s1600-R/stevepool_bigger.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5646001216162754640.post-6431719822003095030</id><published>2010-11-09T09:25:00.000-08:00</published><updated>2010-11-09T10:05:22.505-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fission'/><category scheme='http://www.blogger.com/atom/ns#' term='data'/><category scheme='http://www.blogger.com/atom/ns#' term='marketing'/><category scheme='http://www.blogger.com/atom/ns#' term='heytell'/><category scheme='http://www.blogger.com/atom/ns#' term='viral'/><title type='text'>Viral Marketing for Nerds and Data Junkies</title><content type='html'>Thanks for everyone who attended my Viral Marketing at 360iDev in Austin! Big thanks to John and Nicole for having us as speakers.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For everyone who asked, slides are below :)&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div style="width:425px" id="__ss_5715798"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/Voxilate/viral-marketing-by-the-numbers" title="Viral marketing by the numbers"&gt;Viral marketing by the numbers&lt;/a&gt;&lt;/strong&gt;&lt;object id="__sse5715798" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=viralmarketingbythenumbers-101109092420-phpapp01&amp;amp;stripped_title=viral-marketing-by-the-numbers&amp;amp;userName=Voxilate"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed name="__sse5715798" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=viralmarketingbythenumbers-101109092420-phpapp01&amp;amp;stripped_title=viral-marketing-by-the-numbers&amp;amp;userName=Voxilate" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/Voxilate"&gt;Voxilate&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;script src="http://b.scorecardresearch.com/beacon.js?c1=7&amp;amp;c2=7400849&amp;amp;c3=1&amp;amp;c4=&amp;amp;c5=&amp;amp;c6="&gt;&lt;/script&gt;&lt;/div&gt;&lt;script src="http://b.scorecardresearch.com/beacon.js?c1=7&amp;amp;c2=7400849&amp;amp;c3=1&amp;amp;c4=&amp;amp;c5=&amp;amp;c6="&gt;&lt;/script&gt;&lt;/div&gt;&lt;script src="http://b.scorecardresearch.com/beacon.js?c1=7&amp;amp;c2=7400849&amp;amp;c3=1&amp;amp;c4=&amp;amp;c5=&amp;amp;c6="&gt;&lt;/script&gt;&lt;/div&gt;&lt;script src="http://b.scorecardresearch.com/beacon.js?c1=7&amp;amp;c2=7400849&amp;amp;c3=1&amp;amp;c4=&amp;amp;c5=&amp;amp;c6="&gt;&lt;/script&gt;&lt;/div&gt;&lt;script src="http://b.scorecardresearch.com/beacon.js?c1=7&amp;amp;c2=7400849&amp;amp;c3=1&amp;amp;c4=&amp;amp;c5=&amp;amp;c6="&gt;&lt;/script&gt;&lt;script src="http://b.scorecardresearch.com/beacon.js?c1=7&amp;amp;c2=7400849&amp;amp;c3=1&amp;amp;c4=&amp;amp;c5=&amp;amp;c6="&gt;&lt;/script&gt;&lt;script src="http://b.scorecardresearch.com/beacon.js?c1=7&amp;amp;c2=7400849&amp;amp;c3=1&amp;amp;c4=&amp;amp;c5=&amp;amp;c6="&gt;&lt;/script&gt;&lt;script src="http://b.scorecardresearch.com/beacon.js?c1=7&amp;amp;c2=7400849&amp;amp;c3=1&amp;amp;c4=&amp;amp;c5=&amp;amp;c6="&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5646001216162754640-6431719822003095030?l=voxilate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxilate.blogspot.com/feeds/6431719822003095030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://voxilate.blogspot.com/2010/11/thanks-for-everyone-who-attended-my.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/6431719822003095030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/6431719822003095030'/><link rel='alternate' type='text/html' href='http://voxilate.blogspot.com/2010/11/thanks-for-everyone-who-attended-my.html' title='Viral Marketing for Nerds and Data Junkies'/><author><name>Steven Hugg</name><uri>http://www.blogger.com/profile/14823444707744542977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_sgNin5G9Nz0/S0vHt1SmHKI/AAAAAAAAF-8/ldpvZuERtHk/s1600-R/stevepool_bigger.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5646001216162754640.post-6047786368416153108</id><published>2010-08-26T07:24:00.000-07:00</published><updated>2010-08-26T08:27:08.023-07:00</updated><title type='text'>Steve &amp; Jen Speaking at 360|iDev Austin in November</title><content type='html'>We attended &lt;a href="http://www.360idev.com" target="new"&gt;360|iDev&lt;/a&gt; San Jose in Spring of 2010 and had a great time &amp;mdash; learned a lot, met a lot of really cool people, and got a chance to connect with fellow travelers on the indie iPhone developer scene. Great fun and a tremendous learning experience! &lt;br /&gt;&lt;br /&gt;We enjoyed it so much, that when we heard "November in Austin," we knew we'd be there for sure. It seemed like a good idea to give back and share some of the things we've learned from the release of HeyTell Voice Messenger, so we both submitted talks &amp;mdash; and both were accepted!&lt;br /&gt;&lt;br /&gt;Steve will be presenting &lt;b&gt;Viral Marketing by the Numbers&lt;/b&gt; where he'll bring a developer's perspective to marketing the freemium iPhone app HeyTell Voice Messenger and how it gained 100,000 users using a purely viral marketing model without paid ads or employing conventional PR. &lt;br /&gt;&lt;br /&gt;He'll talk about the features and performance of viral vectors by the numbers, predicted vs. actual growth, and will draw some parallels between viral propagation of an app and nuclear reactions. The audience will hopefully take away additional ideas and strategies for successfully incorporating viral elements into their applications.&lt;br /&gt;&lt;br /&gt;Jen's going to dig into &lt;b&gt;The Reluctant SysAdmin: Managing the Server-side of a Client/Server iPhone App&lt;/b&gt;, where she'll talk about all the fun and not-so-fun things about managing the server-side of a client-server app with an emphasis on security, reliability, and survival (and sleep!) when you're small &amp; indie. &lt;br /&gt;&lt;br /&gt;She'll hit on some of the fantastic things about maintaining a server component (metrics, Push Notifications, App Store receipt handling, did we mention metrics?) as well as the not-quite-as-fantastic (24x7 system monitoring, data security, and attacker-thwarting, rolling upgrades for services that can't go down, the occasional sleepless night) and will then focus on processes, products and technologies that make this all easier for a small team to implement, including continuous integration strategies, use &amp; abuse of Amazon Web Services (EC2), and open source solutions for security &amp; monitoring.&lt;br /&gt;&lt;br /&gt;As you can see, we're really excited about &lt;a href="http://www.360idev.com" target="new"&gt;360|iDev in Austin&lt;/a&gt; - if you're coming, can't wait to see you. If you're considering, hurry up and book it! If you're not, reconsider and book it anyway!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5646001216162754640-6047786368416153108?l=voxilate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxilate.blogspot.com/feeds/6047786368416153108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://voxilate.blogspot.com/2010/08/steve-jen-speaking-at-360idev-austin-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/6047786368416153108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/6047786368416153108'/><link rel='alternate' type='text/html' href='http://voxilate.blogspot.com/2010/08/steve-jen-speaking-at-360idev-austin-in.html' title='Steve &amp; Jen Speaking at 360|iDev Austin in November'/><author><name>jen_h</name><uri>http://www.blogger.com/profile/14104474828895296944</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-5646001216162754640.post-8715122348727136491</id><published>2010-08-24T09:12:00.000-07:00</published><updated>2010-08-24T09:38:12.390-07:00</updated><title type='text'>Gauging User Sentiment with Word Clouds</title><content type='html'>We just released the HeyTell Android Beta and, in the calm before the storm, wanted to take a little break and do something a little frivolous. Perfect time for word cloud creation! Why not take a look at frequency of the words users use to describe HeyTell for iPhone 2.0.3 when reviewing the app on the App Store?&lt;br /&gt;&lt;br /&gt;So I popped over to iTunes connect, expanded user comments and saved as HTML. A little command line fu, like such:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;grep "review-text" DownloadedComments.html |awk -F '\"&gt;|\&lt;\/P' '{print $2}'&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Copy and paste the output to &lt;a href="http://wordle.net/" target="new"&gt;http://wordle.net&lt;/a&gt;, et voila, user sentiment made pretty:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kWmA3kJ21EA/THPywU4sNCI/AAAAAAAABmc/NTW6bozojzQ/s1600/heytellcommentcloud.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 190px;" src="http://3.bp.blogspot.com/_kWmA3kJ21EA/THPywU4sNCI/AAAAAAAABmc/NTW6bozojzQ/s320/heytellcommentcloud.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5509013681258378274" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5646001216162754640-8715122348727136491?l=voxilate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxilate.blogspot.com/feeds/8715122348727136491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://voxilate.blogspot.com/2010/08/gauging-user-sentiment-with-word-clouds.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/8715122348727136491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/8715122348727136491'/><link rel='alternate' type='text/html' href='http://voxilate.blogspot.com/2010/08/gauging-user-sentiment-with-word-clouds.html' title='Gauging User Sentiment with Word Clouds'/><author><name>jen_h</name><uri>http://www.blogger.com/profile/14104474828895296944</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/_kWmA3kJ21EA/THPywU4sNCI/AAAAAAAABmc/NTW6bozojzQ/s72-c/heytellcommentcloud.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5646001216162754640.post-6638610226725183215</id><published>2010-07-26T19:23:00.000-07:00</published><updated>2010-07-26T19:52:22.765-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='requirements programming design'/><title type='text'>Requirements Tracking For Total Slobs</title><content type='html'>I'm now working on an iPhone/mobile startup with just a handful of people, and we typically get things done via shouts, IMs, and emails. This works for us, but I used to work at a company which did things *much* more formally. We will refer to this way of doing things as (drumroll) &lt;b&gt;The Process&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;The Process goes as follows: &lt;span class="Apple-style-span" style="font-size: small;"&gt;Product Managers generate Functional Requirements which go to the Engineers which turn these into Design Requirements which go to the Developers which develop The Product which goes to QA who uses the Design Requirements to create a Test Plan which then gets sent to Integration Teams which use the Documentation generated from the Design Requirements to make the Installation Guide which then results in the Customer getting&lt;/span&gt; ... well, something.&lt;br /&gt;&lt;br /&gt;This is a little heavyweight for the standard indie dev shop, but there's a good practice hidden here, which is the generation of Requirements. Why would you want to make actual Requirements when &lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;DESIGN.TXT&lt;/span&gt; in your home directory will do just fine? There are several reasons:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;They encourage you to record design decisions, and act as high-level code documentation.&lt;/li&gt;&lt;li&gt;They give you a way to generate test plans - each requirement should be a testable feature of the product.&lt;/li&gt;&lt;li&gt;When doing a port to another platform, they let you know when you're done (when all the requirements are checked off)&lt;/li&gt;&lt;li&gt;They let the test team know when they're done (when all the requirements are checked off)&lt;/li&gt;&lt;/ul&gt;These all boil down to "scoping" your product. Any external party can look at the requirements of your application and get the gist of what's going on without looking at code, and if you do it right, they can test/document/port/translate/regress/whatever and know that they haven't missed anything.&lt;br /&gt;&lt;br /&gt;Of course, no one is really going to go through much extra effort generating documentation when they could be making apps and making money. That's foolish. That's why I'm going to show you my bone-simple Requirements Generation Technique. Watch closely!&lt;br /&gt;&lt;br /&gt;1.&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;A requirement is defined in a source file (.c, .cpp, .m, .java etc) with a code comment. Here is an example:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   // Requirement: When a Butterball is hit with a bullet, split it into two Niblets.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;2.&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Generating a design document is done as follows:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;   % find . -name '*.[cm]' -print0 | xargs -0 grep Requirement: &gt; design.txt&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;3. Doing a "Gap Analysis" (comparing two design docs) is done as follows:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;   % sdiff design1.txt design2.txt&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;With a little effort, you can pipe requirements to CSV files and upload to Google Docs so other team members can review, make test plans, etc.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Congratulations!&lt;/b&gt; You've just replaced thousands of dollars of expensive requirements-tracking tools and at least three middle managers! You've also taken a step to better documenting your code and your product so others can more easily play in your sandbox. You don't need an overweight version of The Process like our example bureaucratic organization, but it helps to have a little organization in whatever you do.&lt;div&gt;&lt;div&gt;&lt;br /&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/5646001216162754640-6638610226725183215?l=voxilate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxilate.blogspot.com/feeds/6638610226725183215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://voxilate.blogspot.com/2010/07/requirements-tracking-for-total-slobs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/6638610226725183215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/6638610226725183215'/><link rel='alternate' type='text/html' href='http://voxilate.blogspot.com/2010/07/requirements-tracking-for-total-slobs.html' title='Requirements Tracking For Total Slobs'/><author><name>Steven Hugg</name><uri>http://www.blogger.com/profile/14823444707744542977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_sgNin5G9Nz0/S0vHt1SmHKI/AAAAAAAAF-8/ldpvZuERtHk/s1600-R/stevepool_bigger.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5646001216162754640.post-2441003327346834138</id><published>2010-04-05T20:44:00.001-07:00</published><updated>2010-04-05T22:33:25.310-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone development'/><title type='text'>Top 10 Bolt-On Cocoa Touch Libraries</title><content type='html'>In the last few months of iPhone dev on apps such as &lt;a href="http://heytell.com/"&gt;HeyTell&lt;/a&gt;, we've learned a lot about how to save time and add features by taking advantage of third-party libraries. In no particular order, here are some of the easiest to integrate (thus "bolt-on"):&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://www.raddonline.com/blogs/geek-journal/iphone-sdk-testing-network-reachability/"&gt;Reachability&lt;/a&gt; - Every iPhone developer should know about this. It's the Apple-approved way to check to see if network connectivity is available from your app. It helps to wrap this with your own code for generating helpful Alerts when the network bounces up and down.&lt;br /&gt;&lt;br /&gt;2. &lt;a href="http://github.com/ldandersen/scifihifi-iphone/tree/master/security/"&gt;SFHFKeychainUtils&lt;/a&gt; - The Keychain API may look scary, but it's useful too. How else will you store encrypted, backed-up key-value pairs that persist across uninstalls of your app? This wrapper API has just a handful of easy-to-understand methods.&lt;br /&gt;&lt;br /&gt;3. Plug in an analytics API like the &lt;a href="http://www.medialets.com/publishers/sdks.php"&gt;Medialets SDKs&lt;/a&gt; to capture information about your app at runtime. In just a few minutes you can be capturing app installs and start/stop events, a little more time gives you custom app events and lets you integrate ads into your app.&lt;br /&gt;&lt;br /&gt;4. &lt;a href="http://github.com/notnoop/java-apns"&gt;java-apns&lt;/a&gt; - Ashwin Phatak's Java library for push notification. Requires a bit of integration work (and a server component) but much better than rolling your own. (ok, so it's not a Cocoa Touch library per se - but it's essential if you're doing APNS in Java)&lt;br /&gt;&lt;br /&gt;5. Combine your native code with HTML by using &lt;a href="http://phonegap.com/"&gt;PhoneGap&lt;/a&gt; and &lt;a href="http://code.google.com/p/iui/"&gt;iUI&lt;/a&gt; to make look-alike user interfaces in HTML, JavaScript, and CSS.&lt;br /&gt;&lt;br /&gt;6. If you're a game developer you must have heard of &lt;a href="http://www.openfeint.com/"&gt;OpenFeint&lt;/a&gt;, so there's no need to explain this popular social-media-enabling bolt-on library.&lt;br /&gt;&lt;br /&gt;7. &lt;a href="http://arashpayan.com/blog/index.php/2009/09/07/presenting-appirater/"&gt;Appirater&lt;/a&gt; helps you get feedback on your app by requesting a review after a configurable amount of time or number of app runs. Just a few minutes to integrate.&lt;br /&gt;&lt;br /&gt;8. The default HTTP client libraries sometimes don't cut it, especially when streaming or multi-threading. Try &lt;a href="http://allseeing-i.com/ASIHTTPRequest/"&gt;ASIHTTPRequest&lt;/a&gt; and get a wealth of features above and beyond what the standard NSURLRequest provides.&lt;br /&gt;&lt;br /&gt;9. When building apps that parse XML from REST queries, you may want to try &lt;a href="http://code.google.com/p/touchcode/wiki/TouchXML"&gt;TouchXML&lt;/a&gt; which provides an easy-to-navigate DOM tree object from your XML documents. Don't like XML? Try Google's &lt;a href="http://code.google.com/p/protobuf/"&gt;Protocol Buffers&lt;/a&gt; or &lt;a href="http://incubator.apache.org/thrift/"&gt;Apache Thrift&lt;/a&gt; for more efficient and robust network protocol structures.&lt;br /&gt;&lt;br /&gt;10. And when your project is ready to ship, give &lt;a href="https://hudson.dev.java.net/"&gt;Hudson&lt;/a&gt; a try to automate your builds. The new Xcode 3.2 provides features that may help in archiving built products, but I think there's still value in doing a clean checkout and build from the repository (instructions for iPhone &lt;a href="http://nachbaur.com/blog/how-to-automate-your-iphone-app-builds-with-hudson"&gt;here&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;We hope these give you some ideas on how to save precious mental CPU cycles on your next iPhone/iPod/iPad project!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5646001216162754640-2441003327346834138?l=voxilate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxilate.blogspot.com/feeds/2441003327346834138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://voxilate.blogspot.com/2010/04/top-10-bolt-on-cocoa-touch-libraries.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/2441003327346834138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/2441003327346834138'/><link rel='alternate' type='text/html' href='http://voxilate.blogspot.com/2010/04/top-10-bolt-on-cocoa-touch-libraries.html' title='Top 10 Bolt-On Cocoa Touch Libraries'/><author><name>Steven Hugg</name><uri>http://www.blogger.com/profile/14823444707744542977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_sgNin5G9Nz0/S0vHt1SmHKI/AAAAAAAAF-8/ldpvZuERtHk/s1600-R/stevepool_bigger.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5646001216162754640.post-5901026840064123782</id><published>2010-01-07T08:34:00.000-08:00</published><updated>2010-06-01T08:05:34.879-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='startup'/><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='micro_isv'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='mobility'/><title type='text'>Reduce your micro-startup burn rate...and see the world, too!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kWmA3kJ21EA/S0ZQ8NAoUAI/AAAAAAAABj4/80Aurwt5ptw/s1600-h/ocean.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 260px; height: 320px;" src="http://1.bp.blogspot.com/_kWmA3kJ21EA/S0ZQ8NAoUAI/AAAAAAAABj4/80Aurwt5ptw/s320/ocean.jpg" alt="" id="BLOGGER_PHOTO_ID_5424111796429017090" border="0"&gt;&lt;/a&gt;&lt;br /&gt;At Voxilate, we've taken a novel approach to reducing capital expenditures while maximizing productivity and creativity: we're taking the show on the road and are putting our money where our mouths are--creating voice-activated applications for mobile devices while being mobile ourselves!&lt;br /&gt;&lt;br /&gt;This is a bit easier to do as a micro-startup (also known as "&lt;a href="http://en.wikipedia.org/wiki/Micro_ISV" target="new"&gt;Micro ISV&lt;/a&gt;"), given highly-available mobile broadband and ubiquitous wireless Internet connectivity, competitive hosting and "cloud" solutions, and the myriad online, hosted services at our beck and call these days.&lt;br /&gt;&lt;br /&gt;Here's a quick rundown of tips we've found vital to our mobility so far (we will expand on these in later posts):&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Mobile broadband:&lt;/b&gt; Don't leave home without it. We purchased a wireless broadband plan and wireless card that's plug-and-play with our mobile broadband-enabled &lt;a href="http://www.shareasale.com/r.cfm?b=187137&amp;amp;u=401249&amp;amp;m=23553&amp;amp;urllink=&amp;amp;afftrack=" target="new"&gt;CradlePoint MBR900 router&lt;/a&gt;. We also have a &lt;a href="http://3gstore.com/affiliates/jrox.php?id=1139&amp;amp;jxURL=http://3gstore.com/index.php?main_page=product_info%26cPath=28_334_343%26products_id=1813" target="new"&gt;PepWave Surf personal wi-fi receiver&lt;/a&gt; that can harness available wi-fi and make it available to more than one team member or computer. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Network redundancy:&lt;/b&gt; Make sure you're bound to more than one network and/or cell provider. You want to always be able to call out, check email, and connect to remote systems with at least one of your team's phones or netbooks using wireless broadband cards or cell-phone tethering. We often switch between AT&amp;T and Verizon services. Would be better to switch between three or four - but we're talking about belt-tightening, here!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Hardware:&lt;/b&gt; In addition to your mobile broadband card and portable routers, a good mix of laptops, external hard drives, and small form-factor systems like the Mac Mini will serve you well. You'll also want cigarette-lighter power adapters to power and charge your stuff - and, if there are more than one of you not driving while on the road, use the router in the car with the broadband card. Also remember to bring power strips, outlet expanders, Ethernet cables, thumb drives, extra chargers, connectors, and so on.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Internal Systems:&lt;/b&gt; You should have a source control system, build system, and bug system for development. What you choose to administer locally or remotely is up to you, but do make sure that everyone's got a copy of the source repository checked out and if you're self-hosting build &amp;amp; source control, ensure that you can swap build and source control systems from one laptop or mini-server to another in case of catastrophe. If you're going to be someplace for a day or two, make sure you check in your code. During this 'period of stability,' remember to also rsync (or some other replication method) to back up your critical systems to your hard drives as well as a secure off-site backup provider that you trust and uses encryption.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Hosting redundancy:&lt;/b&gt; Choose hosting providers you trust and who have good reputations - don't always go for the cheapest (although price doesn't always mean quality, either!). Look for hosting providers that provide data center geographic diversity. Augment with other providers - you want the ability to quickly bring your systems up in case of a hosting provider's catastrophic failure. Amazon's web services are excellent for this purpose--encrypt and backup your data to S3, build your backup systems with EC2 &amp;amp; EBS--and pay only when you need to bring them up or test (and you can bring them up in minutes, with simple shell scripts). Great for staging/development/pre-production servers, too.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;System monitoring &amp;amp; Maintenance:&lt;/b&gt; You'll want to set up something to quickly alert you via email or SMS when remote systems go down - use a service like Pingdom and supplement with self-monitoring on your hosts. Sign up for system status and downtime alerts (if you're not added by default) for all of your providers. Follow their Twitter feeds and check your email. Do what you feel you need to do to keep peace of mind and security; script it, add it to crontab, and have it email you its results. For example, scan your web logs for unexpected traffic that doesn't 404. Monitor &lt;a href="http://nvd.nist.gov/download/nvd-rss.xml" target="new"&gt;vulnerability alert RSS feeds&lt;/a&gt; for software you use (both locally and &lt;i&gt;especially&lt;/i&gt; on your externally hosted systems). Use &lt;a href="http://www.snort.org" target="new"&gt;Snort&lt;/a&gt; and &lt;a href="http://www.ossec.net" target="new"&gt;OSSEC&lt;/a&gt;. Use whatever tool(s) you love. I love elementary shell scripts. Lots of people love &lt;a target="new" href="http://www.nagios.org/"&gt;Nagios&lt;/a&gt;. Many adore &lt;a target="new" href="http://www.splunk.com/"&gt;splunk&lt;/a&gt;. Mix and match for great justice.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Delegation:&lt;/b&gt; Use services to do your bidding and spend your time doing what you do best. Take advantage of great services like Amazon's &lt;a href="http://www.mturk.com/" target="new"&gt;Mechanical Turk&lt;/a&gt; for quick, repetitive, or data entry type tasks and &lt;a href="http://www.99designs.com/" target="new"&gt;99designs.com&lt;/a&gt; for graphic design expertise. Get a good accountant that can meet via phone or email. Use online fax and voice services to stay connected wherever you happen to be.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Mail:&lt;/b&gt; We use trusted family members and a mail receiving/scanning service, &lt;a href="http://www.shareasale.com/r.cfm?b=92816&amp;amp;u=401249&amp;amp;m=13778&amp;amp;urllink=www.earthclassmail.com&amp;amp;afftrack=" target="new"&gt;Earth Class Mail&lt;/a&gt;. You can view your mail online and have it scanned and/or snail mailed to you wherever you happen to be, singly or in batches. They even have an auto-deposit option for checks you receive. Also try to configure anything you can to send you bills and notices online--scanning costs can add up.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Digital and Physical Security:&lt;/b&gt; This is a biggie! When you're carrying your tech like a turtle on your back and depending on the wireless of others, an awareness of both physical and network security are vital. Don't connect to wireless networks you don't trust. Don't check your bank balance using hotel wireless, for example, and always check certificates (although that isn't any guarantee these days, unfortunately). Be careful what you download. Bring your own routers to ensure that you can connect to your local resources without going over the public Internet.&lt;br /&gt;&lt;br /&gt;As far as the real world goes: Assume everything you have will be stolen and plan for the occasion. Make copies of all important documents and store with someone you trust. Categorize the importance of what you're lugging, then lock up the most valuable things and keep them on your person when you leave your vehicle for the night. Get into a routine, and make everyone crosscheck each other so you don't leave anything behind.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Short-term locations:&lt;/b&gt; Go beautiful, go off-season. Use sites like &lt;a href="http://www.homeaway.com/" target="new"&gt;HomeAway.com&lt;/a&gt;. Check out executive long-term stay spots as well - if you plan ahead, you can often get a really nice condo in a great location for much less than you'd pay for a standard hotel room.&lt;br /&gt;&lt;br /&gt;Make sure they've got broadband, and come prepared with all the things described above. Plan your stays around your work schedule - stay awhile if you're in deep development. You don't want to be on the road (well, with the tips above, you can be if you want to be!) when you've got a lot of coding or testing to do!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Trust, but verify:&lt;/b&gt; Verify your setup before you embark long-term. Use your network setup where you're currently at, then take it with you on the road. Try staying somewhere local for a week or more, near friends/family/business acquaintances so that you can easily offload equipment you find you don't really need.&lt;br /&gt;&lt;br /&gt;These are just a few of the things we've done to reduce our micro-startup 'burn' while enjoying a spectacular view.&lt;br /&gt;&lt;br /&gt;&lt;font color="#ffffff"&gt;EN576M6GTHWF&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5646001216162754640-5901026840064123782?l=voxilate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxilate.blogspot.com/feeds/5901026840064123782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://voxilate.blogspot.com/2010/01/reduce-your-micro-startup-burn-rateand.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/5901026840064123782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/5901026840064123782'/><link rel='alternate' type='text/html' href='http://voxilate.blogspot.com/2010/01/reduce-your-micro-startup-burn-rateand.html' title='Reduce your micro-startup burn rate...and see the world, too!'/><author><name>jen_h</name><uri>http://www.blogger.com/profile/14104474828895296944</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://1.bp.blogspot.com/_kWmA3kJ21EA/S0ZQ8NAoUAI/AAAAAAAABj4/80Aurwt5ptw/s72-c/ocean.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5646001216162754640.post-3109787028496624166</id><published>2009-11-20T19:31:00.000-08:00</published><updated>2009-11-20T21:56:59.503-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mturk automation'/><category scheme='http://www.blogger.com/atom/ns#' term='mturk'/><category scheme='http://www.blogger.com/atom/ns#' term='legislation'/><category scheme='http://www.blogger.com/atom/ns#' term='healthcare'/><category scheme='http://www.blogger.com/atom/ns#' term='health'/><category scheme='http://www.blogger.com/atom/ns#' term='senate'/><category scheme='http://www.blogger.com/atom/ns#' term='mechanicalturk'/><title type='text'>Turking the Healthcare Bill</title><content type='html'>As some of you have no doubt heard, the 2,000+ page healthcare bill is making its way through the U.S. Senate and is due for a preliminary vote on Saturday evening. There's a big challenge ahead for legislators trying to make sense of this complex and lengthy legislation.&lt;br /&gt;&lt;br /&gt;We'd hate to pass up the opportunity to perform a public service, so we took a few minutes to use our technology to ask Internet denizens (via Amazon's &lt;a href="http://aws.amazon.com/mturk/"&gt;Mechanical Turk&lt;/a&gt;) to collectively read the bill in a lot less time than the &lt;a href="http://www.washingtontimes.com/news/2009/nov/19/health-bill-could-get-34-hour-reading-senate/"&gt;36 hours&lt;/a&gt; it would take to read it on the Senate floor.&lt;br /&gt;&lt;br /&gt;We know that the eyes of the average citizen tend to glaze over looking at the bill, so we opted out of asking turkers for a deep analysis of each page -- they wouldn't have context of neighboring pages, for instance. We instead asked for a visceral response; we asked each &lt;a href="http://behind-the-enemy-lines.blogspot.com/2008/03/mechanical-turk-demographics.html"&gt;turker&lt;/a&gt; to type in their &lt;span style="font-weight: bold;"&gt;most favorite&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;least favorite&lt;/span&gt; words (from their point of view, of course) that they could find in their particular page of legislation.&lt;br /&gt;&lt;br /&gt;First we converted each page of the extremely-long PDF into individual bitmaps -- each one looking something like this (though larger):&lt;table align="center"&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://voxilate.com/gfx/test-1001.png"&gt;&lt;img src="http://voxilate.com/gfx/test-1001.png" width="162" height="209" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://voxilate.com/gfx/test-1001.png"&gt;&lt;img src="http://voxilate.com/gfx/test-1004.png" width="162" height="209" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://voxilate.com/gfx/test-1001.png"&gt;&lt;img src="http://voxilate.com/gfx/test-1009.png" width="162" height="209" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Then we used our &lt;a href="http://voxilate.blogspot.com/2009/10/batching-mechanical-turk-jobs-at.html"&gt;command-line client&lt;/a&gt; (discussed previously) to submit each page individually to Mechanical Turk.&lt;br /&gt;&lt;br /&gt;The best (most preferred) words can be visualized in the following &lt;a href="http://charliefoxtrotblog.blogspot.com/2009/10/house-obamacare-bill-word-cloud.html"&gt;word cloud&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;img align="center" src="http://voxilate.com/gfx/best-cloud.png" /&gt;&lt;br /&gt;&lt;br /&gt;The worst (least preferred) words are here:&lt;br /&gt;&lt;br /&gt;&lt;img align="center" src="http://voxilate.com/gfx/worst-cloud.png" /&gt;&lt;br /&gt;&lt;br /&gt;So what does this all mean? Well, if you read the images literally, citizens want quality affordable health benefits, information, and respect. They are fearful of abuse and fiscal limitations . They also loathe the bill's document structure ("subparagraphs" and "subsections") and legal mumbo-jumbo ("striking" and "amended").&lt;br /&gt;&lt;br /&gt;The final costs were as follows:&lt;br /&gt;&lt;blockquote&gt;Mechanical Turk fees: &lt;span style="font-weight:bold;"&gt;$20&lt;/span&gt;&lt;br /&gt;Time until entire bill was read: &lt;span style="font-weight:bold;"&gt;8 hours&lt;/span&gt;&lt;/blockquote&gt;The $20 fee results from each worker's payout of 1 cent for their analysis of a single page. Certainly you'd have to pay a well-heeled K-Street analysis firm a bit more for a similar result. ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5646001216162754640-3109787028496624166?l=voxilate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxilate.blogspot.com/feeds/3109787028496624166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://voxilate.blogspot.com/2009/11/turking-healthcare-bill.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/3109787028496624166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/3109787028496624166'/><link rel='alternate' type='text/html' href='http://voxilate.blogspot.com/2009/11/turking-healthcare-bill.html' title='Turking the Healthcare Bill'/><author><name>Steven Hugg</name><uri>http://www.blogger.com/profile/14823444707744542977</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_sgNin5G9Nz0/S0vHt1SmHKI/AAAAAAAAF-8/ldpvZuERtHk/s1600-R/stevepool_bigger.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5646001216162754640.post-5700197361187925422</id><published>2009-10-09T09:13:00.001-07:00</published><updated>2009-10-22T14:02:45.767-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mturk automation'/><title type='text'>Batching Mechanical Turk Jobs at the Command Line</title><content type='html'>Here at Voxilate, we use &lt;a href="http://www.mturk.com/" target="new"&gt;Amazon Mechanical Turk&lt;/a&gt; for a lot of things - from crowdsourcing translations to gathering market research to deciding where to go for lunch! Some of the jobs are one-time deals that we don't want to spend a lot of time on.&lt;br /&gt;&lt;br /&gt;Typically, you can submit, monitor, and approve Mechanical Turk jobs (HITs) using the API or the web interface. The web interface requires a lot of mouse-clicking and .csv file generation and it really doesn't allow for full control. The API is complex and doesn't lend itself to quick experimentation. There are also a set of command-line tools provided by Amazon, but these just wrap the API and can be a little clunky.&lt;br /&gt;&lt;br /&gt;Wouldn't it be nice if you could just type a single line and watch Workers' responses come back in real-time like this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% mturk -j 3 -t "What is your favorite color?"&lt;br /&gt;blue&lt;br /&gt;blue&lt;br /&gt;red&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Or this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% mturk -t "Who is in this picture?" albert.jpg bea.jpg&lt;br /&gt;Albert Einstein&lt;br /&gt;Bea Arthur&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;We thought it would be pretty cool, so we created a quick script using Python and the &lt;a href="http://code.google.com/p/boto/" target="new"&gt;boto&lt;/a&gt; library.&lt;br /&gt;&lt;h2&gt;How does it work?&lt;/h2&gt;Given a command like:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;./mturk.py -p .50 -j 10 -t "Is there text in this graphic?" -D "If you see text in this graphic, type \"text.\" If not, type \"no text.\"" -w 300 -A IsThereText01.jpg IsThereText02.jpg&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;We'd create two distinct HITs - one for each file (JPEGs, in this case). The -j parameter controls the number of assignments we submit for each HIT; in this case, we'd run 10 iterations of each HIT, for a total of 20 assignments. Each assignment would pay out 50 cents (specified by -p .50), and because we used -A for auto-approval, you'd be out $10 if workers accepted and completed all of your hits!&lt;br /&gt;&lt;br /&gt;By default, the script uses the Mechanical Turk sandbox so that you ensure that your usage is correct before spending real money. The -w option ensures that the script waits the specified number of seconds for HIT results to print to standard out, then exits.&lt;br /&gt;&lt;br /&gt;In our example, we used JPEG files, but the input files themselves can be:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Blank&lt;/b&gt; - You don't want to pass any data, you just want to ask a question with a single answer.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Image, Audio, Video&lt;/b&gt; - show the user a picture, video, or sound and have them return a response.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;HTML&lt;/b&gt; - This allows you to have full control over the HIT. Whatever &amp;lt;form&amp;gt; tags you use in the HTML file now posts results to Mechanical Turk. They are hosted on Amazon S3 as an "external question" and appear in the IFRAME of the HIT. (More on this in a future blog post.)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;We've found this really kind of useful - for instance, we've used this script as part of a Makefile to implement a complicated workflow. Let's run through an example.&lt;br /&gt;&lt;br /&gt;First, let's check our status:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ ./mturk.py&lt;br /&gt;You are in test mode.&lt;br /&gt;Funds remaining: [$10,000.00]&lt;br /&gt;There are 0 jobs active.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Note that we see $10,000 because we're using the sandbox. If you had active jobs, you'd see the jobs listed by HIT ID and filename. Running mturk.py in live mode (./mturk.py -l) will show you how much money you really have:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ ./mturk.py -l&lt;br /&gt;You are in LIVE MODE.&lt;br /&gt;Funds remaining: [$41.38]&lt;br /&gt;There are 0 jobs active.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Next, let's submit a job. In this batch, we're using the sandbox (no -l!), and "paying" 4 cents for each assignment, with two iterations of two graphics for tagging. We should auto-approve submissions 360 seconds after completion and wait 400 seconds before exiting the script.&lt;br /&gt;&lt;br /&gt;Here's what we run and see on the command line:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$  &lt;span style="font-weight: bold;"&gt;./mturk.py -p .04 -j 2 -t "Tag this graphic" -D "Type keywords, separated by spaces, that you think best describe the image. Please enter at least 2 and no more than 5 keywords." -k "voxilate tagging" -d 120 -e 300 -a 360 -w 400 Namazu.jpg SydneyOperaHouse.jpg&lt;/span&gt;&lt;br /&gt;You are in test mode.&lt;br /&gt;Uploaded to http://com.voxilate.mturk.s3.amazonaws.com/home/jen/Turkpipe/Namazu.jpg&lt;br /&gt;/home/jen/Turkpipe/Namazu.jpg: Created HIT 936MY1Y9KY4ZTJH4ZXTZ.&lt;br /&gt;Uploaded to http://com.voxilate.mturk.s3.amazonaws.com/home/jen/Turkpipe/SydneyOperaHouse.jpg&lt;br /&gt;/home/jen/Turkpipe/SydneyOperaHouse.jpg: Created HIT M1N2Y04MX34RW21CGY6Z.&lt;br /&gt;/home/jen/Turkpipe/Namazu.jpg: 0/2 assignments completed.&lt;br /&gt;/home/jen/Turkpipe/SydneyOperaHouse.jpg: 0/2 assignments completed.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And here's what we see in the Mechanical Turk Sandbox:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kWmA3kJ21EA/Ss9626pG-CI/AAAAAAAABgk/0PNUen6R58A/s1600-h/SandboxHit.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 242px;" src="http://3.bp.blogspot.com/_kWmA3kJ21EA/Ss9626pG-CI/AAAAAAAABgk/0PNUen6R58A/s320/SandboxHit.jpg" alt="" id="BLOGGER_PHOTO_ID_5390662362858977314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next, we'll play worker and grab some of these HITs:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kWmA3kJ21EA/Ss97WofmXSI/AAAAAAAABgs/-h36Cw3Jkwg/s1600-h/HitInProgress.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 274px;" src="http://2.bp.blogspot.com/_kWmA3kJ21EA/Ss97WofmXSI/AAAAAAAABgs/-h36Cw3Jkwg/s320/HitInProgress.jpg" alt="" id="BLOGGER_PHOTO_ID_5390662907743067426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And the other:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kWmA3kJ21EA/Ss97diuKdSI/AAAAAAAABg0/cSqh8ucbo-E/s1600-h/HitInProgressSydney.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 274px;" src="http://2.bp.blogspot.com/_kWmA3kJ21EA/Ss97diuKdSI/AAAAAAAABg0/cSqh8ucbo-E/s320/HitInProgressSydney.jpg" alt="" id="BLOGGER_PHOTO_ID_5390663026452624674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We'll then see changes at the console, as it polls for completion:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;/home/jen/Turkpipe/Namazu.jpg: 1/2 assignments completed.&lt;br /&gt;/home/jen/Turkpipe/SydneyOperaHouse.jpg: 1/2 assignments completed.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Because we submitted two iterations, the Turk won't let me do *all* of the tasks myself, so we wait for other workers to jump in to complete them (on the Sandbox, bug a friend or use another account). When complete, the script exits, dumping the following to the console:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;/home/jen/workspace/Turkpipe/Namazu.jpg: 2/2 assignments completed.&lt;br /&gt;/home/jen/workspace/Turkpipe/SydneyOperaHouse.jpg: 2/2 assignments completed.&lt;br /&gt;catfish japanese art&lt;br /&gt;japanese catfish painting&lt;br /&gt;sydney australia opera house&lt;br /&gt;Sydney opera hall Australia water&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;And that's it - Turking at the command line successful! Add a -l to the command (and an -o output_file to save results to file) and you're ready to go live!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5646001216162754640-5700197361187925422?l=voxilate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxilate.blogspot.com/feeds/5700197361187925422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://voxilate.blogspot.com/2009/10/batching-mechanical-turk-jobs-at.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/5700197361187925422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/5700197361187925422'/><link rel='alternate' type='text/html' href='http://voxilate.blogspot.com/2009/10/batching-mechanical-turk-jobs-at.html' title='Batching Mechanical Turk Jobs at the Command Line'/><author><name>jen_h</name><uri>http://www.blogger.com/profile/14104474828895296944</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/_kWmA3kJ21EA/Ss9626pG-CI/AAAAAAAABgk/0PNUen6R58A/s72-c/SandboxHit.jpg' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5646001216162754640.post-3467099117787965697</id><published>2009-09-03T21:02:00.000-07:00</published><updated>2009-09-23T09:36:31.674-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='twilio ivr google-app-engine google-spreadsheet charity'/><title type='text'>Mobile-Enabled Silent Auction</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_sgNin5G9Nz0/SrmX0wV1ySI/AAAAAAAAF7k/Qy2CWSeuvb4/s1600-h/Picture+5.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 110px;" src="http://4.bp.blogspot.com/_sgNin5G9Nz0/SrmX0wV1ySI/AAAAAAAAF7k/Qy2CWSeuvb4/s320/Picture+5.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5384501762083637538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;We've been recently playing with &lt;a href="http://www.twilio.com/" target="new"&gt;Twilio&lt;/a&gt;, and looking for other niche IVR applications to build. The perfect opportunity arose as we were involved with helping out a &lt;a href="http://macsteam.org/"&gt;local charity event&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;During the event, there's a &lt;a href="http://www.ehow.com/how_2741_bid-silent-auction.html"&gt;silent auction&lt;/a&gt;. Attendees bid by entering their name and the amount of their bid on a bid sheet next to the item, and at the end of the event the winners collect their bid sheets and pay for their item.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cash and check are obvious -- but using a credit card requires the winner to transfer his information to a volunteer who manually enters it into a payment system. There are always more people looking to check out than volunteers to take their payment, so this process is ripe for automation.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Here's a quick walk-through of how it works:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;All bid items are listed in a Google spreadsheet&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Users at the silent auction enter their name, bid amount, and phone number on the auction sheets.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;When the auction completes, on-site staff enter the winners into the Google Spreadsheet.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Bidders dial the Twilio-provided number and enter their phone number as a PIN (automatic if they send Caller ID). They are told whether they have won, and if so, what their total is (important for those who bid on multiple items!). They are then instructed to say their names, addresses, and other pertinent information and are of course thanked for participating.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;This information is then transcribed and posted into the Google Spreadsheet (this is fun to watch in real-time!) The Twilio link to audio is also included in case the information needs to be double-checked.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;On-site staff can then complete the checkout at their leisure.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;We're using &lt;a href="http://code.google.com/appengine/"&gt;Google App Engine&lt;/a&gt; for serving the TwiML responses to Twilio, and the &lt;a href="http://code.google.com/apis/gdata/"&gt;Google Data APIs&lt;/a&gt; for connecting to Google Spreadsheet.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are a couple of issues right now, like that of credit card numbers traveling throughout the cloud -- even though all communciation is encrypted between Twilio &lt;-&gt; Google, some of us have a security background and we like to be extra careful ;) We're also looking @ payment integration to pre-authorize cards, for instance, and a SMS back to the winner to tell them their payment has been verified.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The ultimate addition would be to have the entire bidding process phone-enabled, and a demo of such a system is what we've demonstrated with our &lt;a href="http://www.twilio.com/"&gt;Twilio&lt;/a&gt; contest entry! &lt;/b&gt;You can call &lt;a href="tel:1-877-277-9839"&gt;(877) 277-9839&lt;/a&gt; to try it from your cell phone. Click &lt;a href="http://voxilateauction.appspot.com/"&gt;here&lt;/a&gt; beforehand to see the auction items. (Don't worry, it's only a demo .. bid away!)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But this does show how a mashup that takes just a few hours to build might save a ton of headaches and help out a good cause!&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/5646001216162754640-3467099117787965697?l=voxilate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxilate.blogspot.com/feeds/3467099117787965697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://voxilate.blogspot.com/2009/09/voxilate.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/3467099117787965697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5646001216162754640/posts/default/3467099117787965697'/><link rel='alternate' type='text/html' href='http://voxilate.blogspot.com/2009/09/voxilate.html' title='Mobile-Enabled Silent Auction'/><author><name>jen_h</name><uri>http://www.blogger.com/profile/14104474828895296944</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://4.bp.blogspot.com/_sgNin5G9Nz0/SrmX0wV1ySI/AAAAAAAAF7k/Qy2CWSeuvb4/s72-c/Picture+5.png' height='72' width='72'/><thr:total>3</thr:total></entry></feed>
