<?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:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-17598274</id><updated>2010-04-26T11:48:56.904+10:00</updated><title type='text'>The Jason Salas Experience</title><subtitle type='html'>Guam's Mr. Media - making people think, making people laugh, pissing people off</subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default?start-index=26&amp;max-results=25'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.jasonsalas.com/blog/atom.xml'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1044</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-17598274.post-451240985456203867</id><published>2010-04-26T11:48:00.001+10:00</published><updated>2010-04-26T11:48:57.070+10:00</updated><title type='text'>Build a better browser</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;div&gt;When it comes to matters of global affairs, I&amp;#39;m generally apolitical and let (wo)men smarter than me handle it.  But when it comes to solving technological problems born largely of common sense, the huge step forward and giant leap backwards irks me to no end. &lt;/div&gt; &lt;p /&gt;&lt;div&gt;My good friend &lt;a href="http://twitter.com/wondroushippo"&gt;Carter&lt;/a&gt; has &lt;a href="http://wondroushippo.com/on-native-app-stores-web-apps-and-the-user-ex"&gt;an interesting take&lt;/a&gt; on a escalating issue, largely favoring the iTunes App Store&amp;#39;s model for building/distributing apps. &lt;/div&gt; &lt;p /&gt;&lt;div&gt;I&amp;#39;m all about the best possible experience for everyone, which includes the developers building the apps and users who enjoy them.  We really started to make some headway in software with the uptake in mid-2000s Web 2.0 space, with AJAX and other JavaScript-based abilities emulating a lot of UI enhancements that were previously only thought to be exclusive to Flash or other esoteric disciplines that everyone doesn&amp;#39;t always play nicely with (yes, Apple, I&amp;#39;m talking to you).&lt;/div&gt; &lt;p /&gt;&lt;div&gt;My thing isn&amp;#39;t denouncing on the existence of apps for native mobile operating systems - it&amp;#39;s the setback they create, which at the macro level damages how we all stay connected.  A mammoth service like Pandora works great because it&amp;#39;s supported across as many as 9 major mobile OSes, each with its own idiosyncratic nuances that are par for the support course for companies at that scale, but hell on earth for smaller shops.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;Garage operations simply can&amp;#39;t afford to engineer and maintain that many versions of the same core service.  And from the user standpoint, it bleeds into the ever-deadly vendor lock-in (which of course organizations like Apple, Google and RIM secretly pray for)...imagine digging Chad Ochocinco&amp;#39;s app so much, but one day hating your iPhone. You couldn&amp;#39;t switch over to a different phone because it&amp;#39;s only on that platform.  &lt;/div&gt; &lt;p /&gt;&lt;div&gt;Coupling is something we started to move positively away from with web development with the turn of the new century...only to come back to it when third-party software developers started writing platform-specific apps.  &lt;/div&gt; &lt;p /&gt;&lt;div&gt;So the solution I most favor: keep the innovation on the Web. You build a single service with open, standardized technologies (e.g., HTML(5), JavaScript, CSS, XML, et al.).  Deployment is a snap, as is pushing updates and making bug fixes. Access is both mobile (via multiple connected devices) and portable (from any computer).  But that means the vendors need to build better web browsers, and that&amp;#39;s coming.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;My $0.02 on the matter. &lt;/div&gt;&lt;p /&gt;&lt;div&gt;You?  :-)&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://jasonsalas.posterous.com/build-a-better-browser"&gt;jasonsalas's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-451240985456203867?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/451240985456203867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2010/04/build-better-browser.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/451240985456203867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/451240985456203867'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2010/04/build-better-browser.html' title='Build a better browser'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-4570825655614354592</id><published>2010-03-13T11:28:00.001+10:00</published><updated>2010-03-13T11:28:50.522+10:00</updated><title type='text'>me, as Jigsaw, appealing to Facebook</title><content type='html'>&lt;div class='posterous_autopost'&gt;[ in my best Jigsaw voice ]: &amp;quot;hello, &amp;lt;YOURNAMEHERE&amp;gt;. i want to play a game. for the last year, you&amp;#39;ve wasted your - and what is infinitely more important, MY time - with senseless, regurgitated Facebook posts. you are now challenged to show me evidence of original thought. you don&amp;#39;t have to cure a disease or split the atom...just show me there&amp;#39;s more to you than just quizzes about your favorite color, what celeb you think you look like, FarmVille updates ad nauseum, or (mis)quoting song lyrics. you have 90 seconds, lest i bounce you from my social network. in or out...make your choice.&amp;quot; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://jasonsalas.posterous.com/me-as-jigsaw-appealing-to-facebook"&gt;jasonsalas's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-4570825655614354592?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/4570825655614354592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2010/03/me-as-jigsaw-appealing-to-facebook.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/4570825655614354592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/4570825655614354592'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2010/03/me-as-jigsaw-appealing-to-facebook.html' title='me, as Jigsaw, appealing to Facebook'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-9216007248689553317</id><published>2010-02-26T11:27:00.001+10:00</published><updated>2010-02-26T11:27:09.554+10:00</updated><title type='text'>Well this is unfortunate...</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;div&gt;From &lt;a href="http://blog.notdot.net/2010/02/Consuming-RSS-feeds-with-PubSubHubbub"&gt;Nick Johnson&amp;#39;s excellent blog&lt;/a&gt;: &lt;i&gt;&amp;quot;Fortunately, the PubSubHubbub protocol provides for the possibility of hubs doing polling on feeds that do not support PubSubHubbub themselves. The public hub on &lt;/i&gt;&lt;a href="http://pubsubhubbub.appspot.com"&gt;&lt;i&gt;http://pubsubhubbub.appspot.com&lt;/i&gt;&lt;/a&gt;&lt;i&gt; doesn&amp;#39;t currently have this enabled, but there are plenty of alternatives.&amp;quot;&lt;/i&gt;&lt;/div&gt; &lt;p /&gt;&lt;div&gt;Bummer.&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://jasonsalas.posterous.com/well-this-is-unfortunate"&gt;jasonsalas's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-9216007248689553317?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/9216007248689553317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2010/02/well-this-is-unfortunate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/9216007248689553317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/9216007248689553317'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2010/02/well-this-is-unfortunate.html' title='Well this is unfortunate...'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-8297407014726541457</id><published>2010-02-15T08:19:00.001+10:00</published><updated>2010-02-15T08:19:54.923+10:00</updated><title type='text'>7 Questions for Superfeedr</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;p&gt;&lt;span style="font-family: Arial; font-size: 15px;"&gt;&lt;a href="http://superfeedr.com/"&gt;Superfeedr&lt;/a&gt; is the brainchild of French developer &lt;a href="http://twitter.com/julien51"&gt;Julien Genestoux&lt;/a&gt;, a leading authority on the emerging crop of applications and systems based on delivering data with extremely low-latency.&lt;span style=""&gt;  &lt;/span&gt;The project is the evolution of Notifixious (&lt;a href="http://jasonsalas.com/2009/02/7-questions-for-notifixious.html"&gt;which I&amp;#39;ve previous profiled&lt;/a&gt;), which sought to help content creators by making the distribution of RSS- and Atom-based feeds currently in use more expedient.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;Julien benefited from some very generous and impressive external investment, allowing him to expand his platform to be a service using a variety of real-time technologies including XMPP, PubSubHubbub and SUP to harvest distant-end feeds.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;Here&amp;#39;s 7 Questions for Julien about Superfeedr:&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b style=""&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;1. Superfeedr was the driving force (your custom feed-fetching/parsing technology) behind Notifixious, and it&amp;#39;s now become the brand of your service.  The service&amp;#39;s major notable form of growth is notifications via &lt;a href="http://code.google.com/p/pubsubhubbub/"&gt;PubSubHubbub&lt;/a&gt;, alongside pure &lt;a href="http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol"&gt;XMPP&lt;/a&gt;.  What&amp;#39;s the reaction been to expanding your supported real-time protocols?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;We love XMPP and we think it&amp;#39;s the most powerful technology for real-time web. Yet, with a little pragmatism, it&amp;#39;s obvious that this protocol scares a lot of people. HTTP is something quite well-known by many people: how to scale it, cache, etc.; it&amp;#39;s pretty much a required computer science skill. Adopting PubSubHubbub brought us a lot of attention from people who would have never otherwise looked into our direction.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;On top of that, PubSubHubbub is a very well thought protocol and covers the publish/subscribe mechanism in a much clearer and precise (albeit not as rich in terms of features than &lt;a href="http://xmpp.org/tech/pubsub.shtml"&gt;XMPP PubSub&lt;/a&gt;): they both belong to the real-time web world.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b style=""&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;2. You&amp;#39;re perhaps only the second major instance of a deployed PubSubHubbub hub, aside from the initial instance the Google engineers who developed it put out there.  Have you seen a rise in interest in using such a technology stack for enabling web-based pubsub systems?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;Yes, definitely. The pubsub pattern was known for years. Yet as I said previously, this implementation of it is very elegant and the massive use of &lt;a href="http://webhooks.pbworks.com/"&gt;WebHooks&lt;/a&gt; makes it very attractive. The emergence at the same time of the real-time web interest was also a major traction factor.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b style=""&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;3. Superfeedr is based on &lt;a href="http://superfeedr.com/cost"&gt;a very clever business plan&lt;/a&gt;.  Describe it.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;i style=""&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;For subscribers&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;: stop polling, we&amp;#39;ll do that for you. Tell us how much it costs you, we&amp;#39;ll match that anyway. The assumption is that we fetch the same data for several people. We&amp;#39;re selling the same thing several times, when the cost of the &lt;i&gt;n&lt;/i&gt; entries is the same as one entry.&lt;span style=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;i style=""&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;For publishers&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;: we&amp;#39;ll make your feeds real-time for free (and we benefit from that for the subscribers, too). If you want cool features (analytics, customization, etc.) then we&amp;#39;ll charge you, based on the volume of data which transits through us on your behalf.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b style=""&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;b style=""&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;4. You&amp;#39;ve received investment from some pretty well-known sources - Mark Cuban among them.  What has the capital infusion allowed you to do in terms of your technology and supporting infrastructure?  And explain the composition of your backend - specific languages, servers and technologies.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;This was a small seed round. I&amp;#39;m no &amp;quot;Internet superstar&amp;quot; and I don&amp;#39;t host parties. Yet, this investment was made for us to invest in servers (we basically tripled our number of servers since then), as well as - more importantly - key hires. Speed is our only competitive advantage, staying small is important to stay fast, but this money also helped us get a few great engineers who are helping us with new features to be announced!&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;Our architecture is quite simple: almost like a distributed BotNet. We have many parsers who receive feed URLs from dispatchers and then return the parsed content to it. The dispatchers send the feeds based on a pre-determined &amp;#39;next-fetch&amp;#39; time. And that&amp;#39;s pretty much it. &lt;span style=""&gt; &lt;/span&gt;Everybody is connected via XMPP, which brings stuff like presence, querying and XML - convenient when dealing with feeds!&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b style=""&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;5. I see that some of your more notable clients include &lt;a href="http://posterous.com/"&gt;Posterous&lt;/a&gt;, &lt;a href="http://www.tumblr.com/"&gt;Tumblr&lt;/a&gt; and &lt;a href="http://twitterfeed.com/"&gt;twitterfeed&lt;/a&gt;.  In what ways have they leveraged low-latency push notifications and with which technologies?  And you&amp;#39;ve also got &lt;a href="http://friendfeed.com/"&gt;FriendFeed&lt;/a&gt; as a client, which uses SUP (its own protocol).  How is Superfeedr being used for that platform?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;We host PubSubHubbub hubs for them. We believe publishers should focus on publishing, and we can help them improve their deliverability, by providing them with a hosted solution where the only things they have to do is (1) add some discovery inside their XML feeds, and (2) ping us whenever they update these. We will deal with the subscription and notification processes. Most of them have some kind of ping mechanism in place; we just make sure we translate these pings into an universal protocol, which is PubSubHubbub.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;As for FriendFeed, we also use their &lt;a href="http://code.google.com/p/simpleupdateprotocol/"&gt;Simple Update Protocol (SUP)&lt;/a&gt;, on the subscriber side to know when a feed has been updated. It&amp;#39;s not a ping protocol per se, but we consider it as similar - if a publisher already uses SUP, they can very easily turn on a hub at Superfeedr.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b style=""&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;6. The service works great for relatively low-volume RSS/Atom feeds.  But as we move away from that format towards update-intensive stream-based data, how does your system scale under periods of heavy duress with feeds like Digg&amp;#39;s &amp;#39;Popular Stories&amp;#39; or firehoses?&lt;span style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;Well, there&amp;#39;s heavy and then there&amp;#39;s &lt;i&gt;heavy&lt;/i&gt;. I think we could pretty much handle &lt;a href="http://digg.com/"&gt;Digg&amp;#39;s&lt;/a&gt; &amp;quot;Popular Stories&amp;quot; feed, but we couldn&amp;#39;t handle &lt;a href="http://twitter.com/"&gt;Twitter&amp;#39;s&lt;/a&gt; firehose.&lt;span style=""&gt;  &lt;/span&gt;PubSubHubbub, given the fact that it&amp;#39;s build on HTTP, can&amp;#39;t go seriously and reliably under a few seconds of latency. So feeds like the Twitter firehose couldn&amp;#39;t really work (at more than 1 entry/sec, it&amp;#39;s not reasonable to expect anything just yet). However, all feeds can be seen as an aggregate of many other feeds. The Twitter feed is nothing more than the sum of all the user feeds, and, expect maybe for &lt;a href="http://scobleizer.com/"&gt;Robert Scoble&lt;/a&gt; (kidding!), a user wouldn&amp;#39;t update &lt;a href="http://twitter.com/scobleizer"&gt;his Twitter feed&lt;/a&gt; more often than once every few seconds.&lt;span style=""&gt;  &lt;/span&gt;And then, we&amp;#39;re good to go!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;b style=""&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;7. Superfeedr now promises to provide notifications to feeds &amp;quot;within 15 minutes, or it&amp;#39;s free&amp;quot;.  What continue to be some of the challenges of trying to deliver instantaneous alerts about content updates?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;This &lt;a href="http://superfeedr.com/documentation"&gt;15-minute guarantee&lt;/a&gt; comes from the fact that we still have to do some polling in the worst-case scenario, and if we have to do polling, going much less than that is hard to do. So our approach is to decrease the average detection time rather than the maximum. If for 95% of our feeds we can guarantee 1 minute, then who cares about the 5% that are guaranteed to be below 15 minutes?&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;As long as they&amp;#39;re will still be content that isn&amp;#39;t pushed anywhere, we will have no way to get it without polling.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;Thanks Julien, and congratulations, again! Good luck in all your work! &lt;span style=""&gt; &lt;/span&gt;:-)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 11.0pt; font-family: Arial; color: black;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul type="disc"&gt; &lt;li style="color: blue;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10.0pt; font-family: Century Gothic;"&gt;&lt;a href="http://jasonsalas.com/2010/01/7-questions-for-collecta.html"&gt;7 Questions for Collecta&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt; &lt;li style="color: blue;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10.0pt; font-family: Century Gothic;"&gt;&lt;a href="http://jasonsalas.com/2009/11/7-questions-for-tweetbookz.html"&gt;&lt;span style=""&gt;7 Questions for Tweetbookz&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt; &lt;li style="color: blue;"&gt;&lt;b&gt;&lt;span style="font-size: 10.0pt; font-family: Century Gothic;"&gt;&lt;a href="http://jasonsalas.com/2009/03/7-questions-for-tourneytopia.html"&gt;7 Questions for Tourneytopia&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size: 10.0pt; font-family: Century Gothic;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt; &lt;li style="color: blue;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10.0pt; font-family: Century Gothic;"&gt;&lt;a href="http://jasonsalas.com/2009/02/7-questions-for-jeff-lindsay-of.html"&gt;&lt;span style=""&gt;7 Questions for Jeff Lindsay on Web Hooks&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt; &lt;li style="color: blue;"&gt;&lt;b&gt;&lt;span style="font-size: 10.0pt; font-family: Century Gothic;"&gt;&lt;a href="http://jasonsalas.com/2009/02/7-questions-for-notifixious.html"&gt;7 Questions for Notifixiou&lt;/a&gt;&lt;a href="http://jasonsalas.com/2009/02/7-questions-for-notifixious.html"&gt;s&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size: 10.0pt; font-family: Century Gothic;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://jasonsalas.posterous.com/7-questions-for-superfeedr"&gt;jasonsalas's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-8297407014726541457?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/8297407014726541457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2010/02/7-questions-for-superfeedr.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/8297407014726541457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/8297407014726541457'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2010/02/7-questions-for-superfeedr.html' title='7 Questions for Superfeedr'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-941007172525979862</id><published>2010-02-14T20:35:00.001+10:00</published><updated>2010-02-14T20:35:39.416+10:00</updated><title type='text'>Breaking into The Worldwide Leader - my ESPN interview</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;div&gt;You need only to spend five minutes with me to pick up on my affinity for sports, and a few more moments will inevitably lead to my fancy with ESPN.  As a lifelong sports fan, athlete, broadcaster, writer and trivia buff, it&amp;#39;s literally the ultimate gig for people in my line of work.  Recently, the TV sports network considered me for a position; while the process didn&amp;#39;t work out in my favor, I&amp;#39;m motivated to document my courting (pun most certainly intended).&lt;/div&gt; &lt;p /&gt;&lt;div&gt;While I won&amp;#39;t divulge the particularities of the interviewing process, I will use this space to give aspiring and prospective staffers of the self-proclaimed &amp;quot;Worldwide Leader in Sports&amp;quot; an abstract view of what to expect when interviewing.  Hey, I&amp;#39;m not working there and I signed no non-disclosure agreements, so all&amp;#39;s fair in love and human resources, right?  :-)&lt;/div&gt; &lt;p /&gt;&lt;div&gt;So last week I get an e-mail from an HR staffer letting me know I&amp;#39;m being considered for the organization&amp;#39;s vaunted Stats &amp;amp; Information Group.  The process, I was quickly told, involved me securing a timeslot in a published schedule for a quick oral exam over the phone on general sports knowledge.  I booked such an appointment, which wound up being the next morning.  The exam was administered by the HR staffer himself, taking 7 minutes and consisting of 5 questions.  You really can&amp;#39;t prepare for the grilling - by the company&amp;#39;s own admission, it&amp;#39;s trivia. You either know the material or you don&amp;#39;t.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;I assume the questions change from time to time and candidate to candidate, so I&amp;#39;ll say only that the inquiries probed my acumen of baseball stats (dissecting the mathematical formulas for statistics), college and pro football (significant events, all-time leaders), golf and the NBA.  While I flubbed the baseball section, which in my case was the first question, I rebounded well and apparently did well enough to allow me to advance to the second phase - the written assessment.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;The next stage was administered the very next day, and was a &amp;quot;speed drill exam&amp;quot; - a series of categorical questions on sports math, assuring accuracy in data from wire reports, general knowledge of players&amp;#39; collegiate associations, player names, terminology and esoteric rules.  The exam is long, and you only get 45 minutes to complete as much of it as you can and then return it to your proctor within the time limit.  It&amp;#39;s open book/web, but the more time you spend looking up stuff the less time you&amp;#39;re working on the exam.  &lt;/div&gt; &lt;p /&gt;&lt;div&gt;I drew from my SAT days and skipped an entire section I was spending a little too much time on to get to stuff I could breeze through faster.  I was tons of fun, and very draining.&lt;/div&gt;&lt;p /&gt; &lt;div&gt;I was informed two days later that the conclusion based on my scores was that I wouldn&amp;#39;t be proceeding to the next phase, which is actual phone time with a hiring manager.  I was down, but still grateful for the opportunity, and hopeful another might pop-up in the near future.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;To their credit, the gentleman helping me was incredibly gracious and patient; he answered all my questions honestly and responded quickly.  When it was determined that I didn&amp;#39;t have what it took to proceed any further along the interview trail, I was informed right away.  This was actually the second time I&amp;#39;d interviewed for a spot - the first wasn&amp;#39;t as enjoyable, being run by a junior staffer for a JavaScript developer position in 2005 who wasn&amp;#39;t into sports at all.  Needless to say, this time I had much more fun and encourage anyone interested in a career in sports at that scale and scope to give it a shot.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;If you&amp;#39;re up for a challenge, the testing alone is worth the price of admission.  So to speak.&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://jasonsalas.posterous.com/breaking-into-the-worldwide-leader-my-espn-in"&gt;jasonsalas's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-941007172525979862?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/941007172525979862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2010/02/breaking-into-worldwide-leader-my-espn.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/941007172525979862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/941007172525979862'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2010/02/breaking-into-worldwide-leader-my-espn.html' title='Breaking into The Worldwide Leader - my ESPN interview'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-1862060276466322364</id><published>2010-02-14T09:10:00.001+10:00</published><updated>2010-02-14T09:10:20.542+10:00</updated><title type='text'>Book review: Professional XMPP</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;div&gt;Book review: &lt;a href="http://professionalxmpp.com/"&gt;Professional XMPP Programming with JavaScript and jQuery&lt;/a&gt;&lt;/div&gt;&lt;p /&gt;&lt;div&gt;Since the Jabber project officially became XMPP, this book is the second official tome of knowledge on the subject, and the first to specifically concentrate on XMPP development within the vein of leveraging the protocol to power low-latency web-based applications.  Author Jack Moffitt does a tremendous job of introducing, working with, and building systems based on the often-confusing but critically important topic of creating online experiences based on real-time. &lt;/div&gt; &lt;p /&gt;&lt;div&gt;The book focuses on using Bidirectional streams Over Synchronous HTTP (BOSH) for empowering real-time communications over the web.  The basic layout of an infrastructure to support such systems over current web technologies is dissected, and in so doing being one of the better discussions on the topic.  This is helpful given the pushback many web devs typically have expressed in embracing a new technology stack.  &lt;/div&gt; &lt;p /&gt;&lt;div&gt;After well-written overviews of XMPP, its lifecycle and requirements, the book is all about using BOSH to build practical, real-world demos.  The examples are based on Strophe, a JavaScript library written by Moffitt, using a surprisingly simple and consistent pattern even beginning developers can pick up and be productive with in their own projects.  It&amp;#39;s code you can easily understand and use for your own work.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;The book is divided into 14 chapters that won&amp;#39;t take you all day to read and follow along with.  Each chapter is about 20-30 pages, intelligently written, logically organized and appropriately enhanced with URLs, illustrations, screengrabs and syntactical explanations to support the subject.  Moffitt&amp;#39;s voice is very friendly, and the chapters are long enough to give attention to the topic at-hand, but not drawn out to be boring.  You can tackle each demo at a single sitting, run the code, and then expand upon it.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;The appendices are also extremely helpful, focusing on introduction to the jQuery framework, and working with BOSH connection managers.  Both are very concise and helpful (although I would have appreciated an additional appendix that gets more in-depth on working with Strophe).  &lt;/div&gt; &lt;p /&gt;&lt;div&gt;As far as the book&amp;#39;s physical qualities, the Wrox binding is sturdy with thick paper, so it&amp;#39;ll survive the process of violently flipping back and forth and forcing the book to lie flat as you work through the examples.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;In short, Professional XMPP explores just a corner of the full range of services you can create with XMPP within the browser - not just merely IM for the web.  That serves to be the underlying theme and key message for this book: you can create great, powerful, push-based apps with the universally familiar toolset of HTML, CSS and JavaScript.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;It&amp;#39;s a great read for anyone wanting to get up and running with XMPP for the web, and will make a very welcome addition to any developmental library.&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://jasonsalas.posterous.com/book-review-professional-xmpp"&gt;jasonsalas's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-1862060276466322364?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/1862060276466322364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2010/02/book-review-professional-xmpp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/1862060276466322364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/1862060276466322364'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2010/02/book-review-professional-xmpp.html' title='Book review: Professional XMPP'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-6925402857275664208</id><published>2010-01-23T08:08:00.002+10:00</published><updated>2010-01-23T08:10:25.289+10:00</updated><title type='text'>mea culpa (well, not really)</title><content type='html'>my apologies to all of you who've had to endure the sequential and obviously annoying posts over the past 12 hours or so.  i'm testing &lt;a href="http://superfeedr.com"&gt;Superfeedr's&lt;/a&gt; responsiveness, which lives up to its billing. sorry for the excessive noise.  still love me?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;besides, people, it was only a few posts.  7 to be exact.  :p&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-6925402857275664208?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/6925402857275664208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2010/01/mea-culpa-well-not-really.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/6925402857275664208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/6925402857275664208'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2010/01/mea-culpa-well-not-really.html' title='mea culpa (well, not really)'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-1003742469197003134</id><published>2010-01-10T09:00:00.001+10:00</published><updated>2010-01-10T09:00:57.359+10:00</updated><title type='text'>Inadvertently gaming real-time search services</title><content type='html'>&lt;div class='posterous_autopost'&gt;&lt;div&gt;One duly noted facet is the critical importance of relevance in a real-time search query&amp;#39;s resultset.  And within that, a criterion with serious weight towards determining such relevance is frequency - if a post is being re-posted by other members of the community and across other platforms.  It&amp;#39;s the latter that draws my ire this morning.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;Traditional search systems succeed based on their ability to leverage indexing of resources based on the direct correlation of time - the longer a document exists online, the better its ability to appear in a search engine due to other resources referencing it, and the more it&amp;#39;s discussed/retweeted/copied/indexed by other services/etc.  Obviously, when displaying content that&amp;#39;s just been created mere seconds ago, this isn&amp;#39;t the case.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;A recurring concern for those in developing real-time search applications is unscrupulous spamming of such systems - those people (or &amp;#39;bots, usually) jumping on the popular trends of the moment to draw attention to their own devices.  But how about good-natured, well-meaning folks that simply just want to publish their data across multiple platforms?  Does multi-service publishing inadvertently influence relevancy algorithms?  &lt;/div&gt; &lt;p /&gt;&lt;div&gt;For instance, suppose I author a thought on Twitter having to do with a certain topic - say, I post &lt;i&gt;&amp;quot;I really dig the new CD by Iron Maiden&amp;quot;&lt;/i&gt; - and use a service like Ping.fm replicate my post across other social platforms like Facebook, &lt;a href="http://del.icio.us"&gt;del.icio.us&lt;/a&gt;, LinkedIn, Friendster, MySpace, Identi.ca, FriendFeed, Posterous, Blogger and Jaiku?  In the case, I&amp;#39;d be creating the same data at 11 different endpoints on the Internet, each with its own unique URL.  &lt;/div&gt; &lt;p /&gt;&lt;div&gt;Real-time services harvesting real-time feeds would pickup the fact that Iron Maiden-related posts would suddenly spike, and if continuing to do so within a given time period, create a trend.  Therefore, could those systems that assign relevance to topics based on the number of times a post is referenced be gamed by me just trying to get my stuff out over the maximum number of platforms?&lt;/div&gt; &lt;p /&gt;&lt;div&gt;At a macro level, would this affect the chance that I could personally influence an entire trend?  Or at the micro level, could I escalate my own thoughts higher within search results?  At the very least, the result from a user experience perspective would be that I&amp;#39;d just be inadvertently making results pages a whole lot noisier by diluting search subsets with the same stuff.  Whether I did so deliberately or accidentally, none are optimal.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;Fortunately, such apocalypse hasn&amp;#39;t befallen us just yet.  Only a few social services publish public firehoses at the moment, Twitter being the canonical example, and several other services have been setup by real-time providers in order to pulse-track them.  MySpace and Facebook are both coming online very soon, and the growing popularity within the development community of XMPP will make it easier for publishers to do make their data payloads accessible with low-latency.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;But such gaming might be something to think about going forward.  Thoughts?&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://jasonsalas.posterous.com/inadvertently-gaming-real-time-search-service"&gt;jasonsalas's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-1003742469197003134?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/1003742469197003134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2010/01/inadvertently-gaming-real-time-search.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/1003742469197003134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/1003742469197003134'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2010/01/inadvertently-gaming-real-time-search.html' title='Inadvertently gaming real-time search services'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-3688492484732449098</id><published>2010-01-09T08:54:00.001+10:00</published><updated>2010-01-09T08:54:44.234+10:00</updated><title type='text'>7 Questions for Collecta</title><content type='html'>&lt;div&gt;&lt;a href="http://collecta.com"&gt;Collecta&lt;/a&gt; is the latest creation from &lt;a href="http://twitter.com/metajack"&gt;Jack Moffitt&lt;/a&gt;, a pioneering Albuquerque-based open source developer who has spearheaded the migration of real-time experiences on the Web with &lt;a href="http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol"&gt;XMPP&lt;/a&gt;.  The service has etched out a place for &amp;quot;curated search&amp;quot;, harvesting items across the Internet, displaying them mere moments after they&amp;#39;re published online - without latency.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;He&amp;#39;s also authored the new book &lt;a href="http://professionalxmpp.com/"&gt;&amp;quot;Professional XMPP Programming with JavaScript and jQuery&amp;quot;&lt;/a&gt;, and has given &lt;a href="http://www.ustream.tv/recorded/2840996"&gt;numerous talks&lt;/a&gt; about some of the opportunities and challenges inherent to managing real-time search.  Here&amp;#39;s 7 Questions with Jack.&lt;/div&gt; &lt;p /&gt;&lt;p /&gt;&lt;div&gt;&lt;b&gt;1. One of the most impressive features of Collecta is its ability to harness updates not only from the usual suspect microblogging platforms like Twitter and Identi.ca, but also from news sources and blog posts/comments, as well as through Flickr for images and video.  Describe how your back-end works. &lt;/b&gt;&lt;/div&gt; &lt;p /&gt;&lt;div&gt;The main difference between the back-end at Collecta and the ones of most other search systems is that Collecta is almost entirely push-based. For example, instead of a crawler (which visits web pages on a periodic basis), a publisher notifies us about content at the same time that they publish it to their own sites.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;When Reuters sends a new story out to their own sites, they also send it directly to us, and that content shows up immediately to any matching searches.&lt;/div&gt;&lt;p /&gt;&lt;div&gt;Of course, not all publishers are ready for push notifications, but we have also built specialized polling systems that bootstrap those data sources. We&amp;#39;ve also worked with the number of publishers to develop and deploy their push systems. For example, we helped Wordpress.com develop their XMPP infrastructure, which makes all Wordpress.com-hosted blogs and blog comments available as a publish/subscribe stream.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;The primary advantage of this design is that the latency between the time someone publishes content and the time we see it is very nearly zero. We typically measure latencies of a third of a second or less on push sources.&lt;/div&gt; &lt;p /&gt;&lt;p /&gt;&lt;div&gt;&lt;b&gt;2. What have some of the challenges been in managing so much inbound data?&lt;/b&gt;&lt;/div&gt;&lt;p /&gt;&lt;div&gt;The biggest challenge is getting access to the data. Since few publishers have working push systems today, we must work with them to develop such systems. Generally they are quite eager to do so, as they know that they need to provide their data ever faster in today&amp;#39;s world. We may be the first to be knocking on these doors, but it is easy to see that there will be a lot of others after us wanting this data.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;The next challenge is processing the data as fast as possible. In traditional search, relevancy is improved over time. For example, it may take several weeks for a new Wikipedia article to get enough incoming links to start showing up as very relevant. In real-time search, we can&amp;#39;t afford to measure relevancy this way. One side-effect of this is that all the algorithms involved must be well tuned so that they don&amp;#39;t introduce any delays. There is no buffer zone for processing.&lt;/div&gt; &lt;p /&gt;&lt;p /&gt;&lt;div&gt;&lt;b&gt;3. I see Collecta being valuable to people in three distinct types of situations: for scheduled events with global importance that people can anticipate and plan for (i.e., Christmas, the Super Bowl, the Emmy Awards); for breaking/developing items that people can&amp;#39;t predict or didn&amp;#39;t expect (i.e., celebrity deaths, national tragedies, etc.); and also for the general entertainment value in seeing things pop-up as they happen.  How have people told you they&amp;#39;ve used your system?&lt;/b&gt;&lt;/div&gt; &lt;p /&gt;&lt;div&gt;These categories match-up well to several use cases we&amp;#39;ve heard about. Here are some examples:&lt;/div&gt;&lt;p /&gt;&lt;div&gt;One of our developers used Collecta to find information on local road conditions that was unavailable through other means. This got his wife to her destination on time by alerting her to closed roads and flooded areas.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;We&amp;#39;ve heard stories of people researching items they were thinking of purchasing and finding deals and coupon information that made their purchase cheaper. Imagine that you&amp;#39;re thinking about buying my book, and you search for it on Collecta. Someone may have just been talking about how they just bought it at some specialty site for a discount. You can then take advantage of the same deal.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;My in-laws are farmers in rural Minnesota. They used Collecta to find out about issues affecting the grain markets that wasn&amp;#39;t available in their traditional news sources for several days. This allowed them to structure their financial transactions to accommodate this. You could imagine similar stories playing out for any market trader.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;One of our internal use cases is watching how people respond to our own announcements and features. When we launched Collecta we were all glued to it, and there was no other way to watch how people reacted to our product. Before we launched, we used Collecta to monitor President Barack Obama&amp;#39;s inauguration, and the photo stream in particular was stunning and much more interesting than what you could get from TV.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;I think you&amp;#39;ve left out one big category, though: &lt;b&gt;discovery&lt;/b&gt;. We call this thing real-time search, but the name is really inadequate. It&amp;#39;s the closest analogy we could that would give potential users some idea of what to expect. Once you&amp;#39;ve aggregated&lt;/div&gt; &lt;div&gt;all the data, you have some real possibilities that aren&amp;#39;t really search-related in the traditional sense. For example, when you visit Collecta.com lately, the page is filled with current, trending topics, all with the most relevant articles attached.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;This category is more like the function of newspapers and nightly news. It gives you an overview of what is going on in the world, even if you aren&amp;#39;t sure what you&amp;#39;re looking for.&lt;/div&gt;&lt;p /&gt;&lt;div&gt;We also plan to expand this to determine trending information and relevant summaries within any search you do.&lt;/div&gt;&lt;p /&gt;&lt;p /&gt;&lt;div&gt;&lt;b&gt;4. One concern constantly popping up about real-time systems in regards to current events is the need to group data based on the authoritativeness, a la Google News, wherein more credible resources are assigned a greater weight based on the assumption that they&amp;#39;re more accurate. Seeing as how reporting results as they happen is naturally linear, what are your thoughts?&lt;/b&gt;&lt;/div&gt; &lt;p /&gt;&lt;div&gt;In general, I think authority is a tricky subject. Most of the authority based relevance systems are pretty bad; they often apply authority over a broad range of topics when a source may only be authoritative for a small set. This is not a limitation of technology,&lt;/div&gt; &lt;div&gt;though. The same situation happens in the real world. Who is the authoritative source for information on healthcare reform in the U.S.? I think you&amp;#39;ll find many people can&amp;#39;t agree on this.&lt;/div&gt;&lt;p /&gt; &lt;div&gt;The way this is dealt with is by applying time. Eventually some source or set of sources will be deemed authoritative and this becomes the history we read about. The time scale here is quite large though, easily decades in some cases.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;I don&amp;#39;t think you can do a great job on authority alone, and I don&amp;#39;t think it applies as broadly as people think. Finally, I don&amp;#39;t see how you can resolve authority issues in a fraction of a second, when the only method I know of requires significant amounts of time.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;The case may be different for a particular knowledge domain, but I still think even in these cases, authority is relative to a worldview.&lt;/div&gt;&lt;p /&gt;&lt;p /&gt;&lt;div&gt;&lt;b&gt;5. Seeing as how we&amp;#39;re in the embryonic stage of working with real-time information at a consumer level, many of the first-generation services are based on search and filtering of large data sets.  What other types of apps do you predict being popular as this model continues to evolve?&lt;/b&gt;&lt;/div&gt; &lt;p /&gt;&lt;div&gt;We&amp;#39;re very interested in the idea of participation. Once you can inject your own content into the real-time flow, the world becomes a conversation, not a search. An example I often use is that the television network ABC would have a tough time getting all the people in the world to a single place to chat about its show Lost (not to mention getting them there at the same time). However, the Collecta search engine can aggregate every conversation about Lost in a single place. If you imagine a chat room interface where the other participants are made of up incoming search results, you can see where I&amp;#39;m going. You now have an Internet-wide chat room on any topic whatsoever, filtered and customized however you want. &lt;/div&gt; &lt;p /&gt;&lt;div&gt;Data aggregation is not easy, and I think it will enable a host of applications that depend upon access to large amounts of data. For example, currently TweetDeck and Brizzly and the other social media clients all implement the Twitter API, the Facebook API, etc to get data to their users. You can see this clearly in their UIs as well; each service is boxed by itself. Imagine how easy it might be to make an integrated social media client when access to the data is uniform. This is just a simple example, but there are more complex situations that data aggregation can enable.&lt;/div&gt; &lt;p /&gt;&lt;p /&gt;&lt;div&gt;&lt;b&gt;6. Like any emerging technology, some enterprising folks will develop frameworks to abstract/automate a lot of the tedious minutiae of working with XMPP over HTTP - you&amp;#39;ve released &lt;a href="http://code.stanziq.com/strophe/"&gt;Strophe&lt;/a&gt; both as a C and JavaScript library.  How do you see this maturing in the near future?&lt;/b&gt;&lt;/div&gt; &lt;p /&gt;&lt;div&gt;Eventually we will reach a point where web browsers don&amp;#39;t need long polling and other similar hacks to do push-based or two-way communication. I don&amp;#39;t know if this will be realized in the form of XMPP support in browsers or whether it will be in the form of the&lt;/div&gt; &lt;div&gt;HTML 5 WebSockets protocol or something entirely different.  On the client side, libraries like Strophe already make a lot of the tedium of the process invisible.&lt;/div&gt;&lt;p /&gt;&lt;div&gt;The server-side is just as important though. XMPP and WebSockets require more than just a simple web server. I think we will see growing sophistication in that space to match what we&amp;#39;ve seen with web application servers like Django, Ruby on Rails, and others.  Soon we will have XMPP application servers and WebSocket application servers, and the frameworks like Rails and Django will seem as quaint as server-side includes and CGI scripts.&lt;/div&gt; &lt;p /&gt;&lt;p /&gt;&lt;div&gt;&lt;b&gt;7. It would seem logical that you&amp;#39;re going to get a lot of requests for custom app development based on the real-time paradigm for industries like media, politics and sports.  Have you, to this point?  (At the TV news station I work for, I&amp;#39;m planning to have Collecta running non-stop in our lobby on a large plasma HDTV as eye candy for visitors, with posts relative to the local current events scene.)&lt;/b&gt;&lt;/div&gt; &lt;p /&gt;&lt;div&gt;Yes. As I said earlier, we talk to many of these publishers about getting them set up to push content instead of just making it available via pull methods. It doesn&amp;#39;t take long for these publishers to turn the questions around and start asking us how they can leverage real-time in their own properties.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;Sometimes they want easy, aggregated access to their own content, and sometimes they are intrigued by the possibility of integrating a view on everything else on the web.&lt;/div&gt;&lt;p /&gt;&lt;div&gt;We&amp;#39;re developing several products that will make this easy for these publishers and for anyone else to build what they want. The first such products we launched were the &lt;a href="http://developer.collecta.com/XmppApi/"&gt;XMPP API&lt;/a&gt; and &lt;a href="http://developer.collecta.com/Transports/HttpApi/"&gt;HTTP API&lt;/a&gt; for &lt;a href="http://developer.collecta.com/APIindex/"&gt;Collecta search results&lt;/a&gt;. I can&amp;#39;t name any names, but we give out API keys to well-known publishers all the time.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;One of the common requests is for &amp;quot;curated search&amp;quot; products. The publishers want to control the queries that happen and just provide an updating view, or they want to restrict the input sources to a specific knowledge domain. You can imagine a sports version of Collecta where both the queries and the data sources were restricted or augmented to facilitate a focused experience. This is pretty much everyone&amp;#39;s first application idea with our technology, and it&amp;#39;s one we are really excited about facilitating.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;You can see one of our early prototypes in this area, which we designed for &lt;a href="http://obama.collecta.com"&gt;the Obama inauguration&lt;/a&gt;. Our recent launch of &lt;a href="http://myspace.collecta.com"&gt;MySpace site search&lt;/a&gt; is another example. The former is limited to a specific query on the full data set, and the latter is scoped to a specific data set but allows arbitrary queries.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;There is a lot of unexplored ground here, which is what makes the work extremely fun.&lt;/div&gt;&lt;p /&gt;&lt;div&gt;&lt;i&gt;Thanks Jack!  Great feedback and good luck with your work in the real-time search space! :)&lt;/i&gt;&lt;/div&gt; &lt;p /&gt;&lt;div&gt;&lt;b&gt;ARCHIVE&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span style="font-family: Lucida Grande, MS Sans Serif, Lucida Sans Unicode, Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif; font-style: normal; font-size: 16px; color: rgb(17, 17, 17);"&gt;&lt;/span&gt;&lt;/i&gt;&lt;ul&gt; &lt;li&gt;&lt;a href="http://jasonsalas.com/2009/11/7-questions-for-tweetbookz.html"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;7 Questions for Tweetbookz&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;b&gt;&lt;a href="http://jasonsalas.com/2009/03/7-questions-for-tourneytopia.html"&gt;&lt;span style="font-size: small;"&gt;7 Questions for Tourneytopia&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://jasonsalas.com/2009/02/7-questions-for-jeff-lindsay-of.html"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;7 Questions for Jeff Lindsay on Web Hooks&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&lt;a href="http://jasonsalas.com/2009/02/7-questions-for-notifixious.html"&gt;7 Questions for Notifixiou&lt;/a&gt;&lt;a href="http://jasonsalas.com/2009/02/7-questions-for-notifixious.html"&gt;s&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://jasonsalas.posterous.com/7-questions-for-collecta"&gt;jasonsalas's posterous&lt;/a&gt; &lt;/p&gt;   &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-3688492484732449098?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/3688492484732449098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2010/01/7-questions-for-collecta.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/3688492484732449098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/3688492484732449098'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2010/01/7-questions-for-collecta.html' title='7 Questions for Collecta'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-2538630128562508416</id><published>2010-01-04T08:59:00.001+10:00</published><updated>2010-01-04T08:59:31.467+10:00</updated><title type='text'>Design decisions: real-time apps on mobiles &amp; data lossiness</title><content type='html'>&lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;One of my favorite words in graphic design and networking parlance is &amp;quot;lossiness&amp;quot;. For those distinct disciplines, the term cleverly denotes the amount of degradation in quality an image can sustain, and how packets may be dropped while routed across a network as a means of faster delivery, respectively.&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;Either way, lossiness infers efficiency as a performance driver towards accomplishing a goal.&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;I used my New Year&amp;#39;s Weekend to really apply some serious thought to the multidimensional problem space of real-time search applications for the web. &lt;span class="apple-converted-space"&gt; &lt;/span&gt;I wanted to attack the issue from two specific angles - focusing on the feasibility of low-to-no latency systems for mobiles, and the rate of lost items in a real-time resultset.&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="color: black;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;b&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt;Method&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;Since I was using a late Saturday afternoon to conduct my experiment, I had several available devices and the full bandwidth of my company&amp;#39;s Internet connection at my disposal. &lt;span class="apple-converted-space"&gt; &lt;/span&gt;My LAN doesn&amp;#39;t proxy access, so each device&amp;#39;s responses were autonomous. Additionally, the iPhone and netbook got online via WiFi; all other devices were all hard-lined to a hub.&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul type="disc" style="margin-top: 0in;"&gt; &lt;li style="color: black; background: white;"&gt;&lt;b&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1;"&gt;Server box (Windows 2000, 4GB RAM, quad 2.8GHz processors) running IE 6&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10.0pt;"&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="color: black; background: white;"&gt;&lt;b&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1;"&gt;Server box (Windows XP Pro, 2GB RAM, quad 2.6GHz processors) running Firefox&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10.0pt;"&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="color: black; background: white;"&gt;&lt;b&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1;"&gt;iMac (OS X Snow Leopard, 4GB RAM, quad 3.06GHz processor) running Safari&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10.0pt;"&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="color: black; background: white;"&gt;&lt;b&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1;"&gt;Desktop workstation (Windows XP Pro, 2GB RAM, 1.8GHz processor) running Google Chrome&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10.0pt;"&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="color: black; background: white;"&gt;&lt;b&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1;"&gt;Laptop on AC power (Windows XP Pro, 2GB RAM, 1.6GHz processor) running Safari&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10.0pt;"&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="color: black; background: white;"&gt;&lt;b&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1;"&gt;Netbook on battery power (Windows XP Home, 1GB RAM, 1.6GHz processor) running Firefox&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10.0pt;"&gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="color: black; background: white;"&gt;&lt;b&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1;"&gt;iPhone 3GS running Safari&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10.0pt;"&gt;&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; color: black;"&gt;On all devices I launched Collecta at the same time, &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;a href="http://www.collecta.com/#q="&gt;&lt;span style="font-size: 10.0pt;"&gt;querying “New Years OR NYE”&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; color: black;"&gt;. &lt;/span&gt;&lt;span class="apple-converted-space"&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;I find that Collecta&amp;#39;s vertically-scrolling collection of asynchronous items is the most logical interface for this type of experience. If items are going to be found as they&amp;#39;re being published online, it stands to reason that they would be displayed that way without repetitive user-initiated page refreshing.  It&amp;#39;s also one of the more comprehensive real-time search platforms, listing tweets, Flickr images, videos, news articles, and blog posts/comments. &lt;span class="apple-converted-space"&gt; &lt;/span&gt;Collecta&amp;#39;s also a great practical use of Bidirectional-streams Over Synchronous HTTP (BOSH), the XMPP extension that facilitates real-time push for web apps.&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;I&amp;#39;ve always wondered about the reliability of real-time services on wireless devices, not only because of the lack of proper JavaScript support in mobile browsers to handle the repetitive XMLHttpRequest transactions, but also due to the bandwidth requirements for so many inbound payloads. &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="color: black;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt;Results&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;While Collecta held up beautifully (rendering seamlessly on the iPhone), the results for each digital device were noteworthy, indicating that the better the specs on the machine, the more voluminous the subset of found items. &lt;span class="apple-converted-space"&gt; &lt;/span&gt;Specifically, in a span of the first 11 minutes after accessing the endpoint, my servers reported a resultset containing more than 390 matched items. &lt;span class="apple-converted-space"&gt; &lt;/span&gt;My desktop tower had slightly fewer, my laptop a little less than that, and my netbook a little less, with the iPhone only getting about half of the server&amp;#39;s matches - all from running the same URL. It didn&amp;#39;t appear as if the lagging devices had some sort of queue to catch up to the larger load - missing posts/images/status updates simply disappeared into the ether.&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;So that brought to light the question of whether processing power, memory, bandwidth, and/or browser vendor/version makes a difference in the droppage factor - how many items get passed up due to constraints or limitations imposed by those criteria. &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;i&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;(Notable other discoveries: after running a hugely popular Collecta trend pulse “christmas” for 9 straight hours on a Windows computer, Firefox occupied more than 1.3GB of RAM and eventually crashed.  Collecta also uses&lt;span class="apple-converted-space"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black;"&gt;&lt;a href="http://www.twitvid.com/7B865"&gt;&lt;i&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;a large amount of HTTP conversations&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;, as compared to Google&amp;#39;s real-time search product.)&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt;  &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;b&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;Conclusions&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;The data gathered implies that the loss rate of real-time search items in apps like Collecta may be directly proportional to the capabilities of the requesting device.  This makes perfect sense - the increased client-side processing cycles necessary for rendering rich, dynamic UIs delivering rapidly changing data streams may impact the ability of a system to reflect the true pulse of messages being filtered down from its source(s).  Thus, devices with reduced memory, computational power and network connectivity may be subject to higher rates of dropped items than machines of greater ability. &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;Specifically, mobile devices attempting to run real-time search apps may incur significant performance hits due to the increased processing.  The additional computations from heavy AJAX-based functionality should be considered in applications where data is reported as it happens.&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;Simply stated: a faster computer means faster results, which means more results, which means a more accurate picture of the Real-Time Web. &lt;span class="apple-converted-space"&gt; &lt;/span&gt;But all is not lost - there&amp;#39;s a method to this madness.&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;It seems clear that XMPP over HTTP might not store undelivered messages for future delivery.  This is logical, seeing as how an escalating loss rate over time could create massive queues that would backlog a user&amp;#39;s entire experience and be counterproductive to the real-time nature (showing content from hours ago while catching-up).  While not optimal, being lossy is actually safer. &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;This may be savvy and deliberate preventative engineering due to the fact that such a large load of messages coming in will, at some point, clog the system; messages unable to make it into the UI are simply ignored to avoid such backlogs.  As a loose analogy, think of the difference between UDP and TCP in terms of managed lossiness.&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;I&amp;#39;m still torn on exactly how bandwidth on mobile devices affects real-time apps.  With proper buffering, modern wireless devices are capable of streaming full-motion video from YouTube; conversely, real-time apps based on XMPP are systems pushing bits of hypertext from server to client.  So the assumption would be that mobiles should be able to sufficiently handle such inbound traffic.&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;The counterargument, especially for apps tracking an infinite number of trends with a variable amount of popularity at that moment, comes under duress: imagine trying to push 35 IMs per second to a smartphone for an entire minute. &lt;span class="apple-converted-space"&gt; &lt;/span&gt;That&amp;#39;s 2,100 instant messages.  And most hot topics are a lot noisier for a lot longer.  For most commercial forms of connectivity, something&amp;#39;s got to give.  Message overflows could be conveniently discarded, making room for fresher items being harvested from across the Web to get their chance at being displayed, keeping the UI &amp;quot;inconsistently consistent&amp;quot; to the true general pulse of the community&amp;#39;s response to some event, if not accounting for every single &lt;span class="apple-converted-space"&gt; &lt;/span&gt;atomic level response thought, image, comment or video.&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;More discussion is clearly needed in this arena.&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;Keep in mind that mine was a trivial experiment.  For simple searches, the loss of information in this regard is of no great consequence; but scaled up and for more mission-critical applications with sensitive data, the network effects could be significantly more damaging.&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; color: black; background: white;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0in; margin-right: 4.5pt; margin-bottom: 0in; margin-left: 4.5pt; background: white;"&gt;&lt;span style="font-size: 10.0pt; font-family: Times New Roman1; color: black; background: white;"&gt;So it might be the case with systems like Collecta that lossiness for resultsets is merely a happy little accident. &lt;span class="apple-converted-space"&gt; &lt;/span&gt;Regardless, take this as an object lesson in how to do things the right way.  The analogy of the patient dying but the operation being a smashing success applies - intelligently manage throughput to keep pace with the community overall.&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://jasonsalas.posterous.com/design-decisions-real-time-apps-on-mobiles-an"&gt;jasonsalas's posterous&lt;/a&gt; &lt;/p&gt;   &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-2538630128562508416?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/2538630128562508416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2010/01/design-decisions-real-time-apps-on.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/2538630128562508416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/2538630128562508416'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2010/01/design-decisions-real-time-apps-on.html' title='Design decisions: real-time apps on mobiles &amp;amp; data lossiness'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-2282185714324938182</id><published>2009-12-30T09:55:00.001+10:00</published><updated>2009-12-30T09:55:38.914+10:00</updated><title type='text'>Only half the real-time web equation has been solved</title><content type='html'>&lt;div&gt;Typically with any new technology platform, bark outweighs bite.  So often a new shift in thinking gets the online community so jazzed just based on raw potential, everyone buzzes about how cool, efficient and profitable the new paradigm could be.  All we need is a sound case study to reinforce our suspicions and support our theories.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;It&amp;#39;s apropos that I used the holiday break to track the emergence of Real-Time Web applications.  The relevance came in the form of me being able to track the pulse of &amp;quot;Christmas&amp;quot; as a searchable topic, seeing as how that specific keyword involved a scheduled event of global importance, and had enough intro/outro traffic for a couple of days before and after the actual holiday that it made the pace of updates in services like Collecta and Google reflecting real-time publishing incredibly entertaining to watch.  (Not to mention the breakneck pace of posts on the holiday itself.)&lt;/div&gt; &lt;p /&gt;&lt;div&gt;There were literally hundreds of thousands of tweets, Flickr images, news stories and open microblogging platform updates all having to do with the events surrounding December 25 all over the planet.  &lt;/div&gt; &lt;p /&gt;&lt;div&gt;The real-time search services performed beautifully, living up to their hype, facility to mammoth amount of work and delivering a user experience that carried high entertainment value, if not some sort of usefulness.  That&amp;#39;s significant, because Christmas is naturally something we collectively knew about and could predict.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;But that was only half of the equation.  Given its annual nature, everyone saw Christmas coming and mentally prepared to post all sorts of media to the Internet ad infinitum.  What we now need as the second half of the litmus test is for real-time search services to properly handle a major breaking story.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;Twitter gained international credibility (and notoriety), by allowing its users to interact with the events unfolding in regards to the plane crash in the Hudson River, with the political strife in Iran, and with the untimely passing of Michael Jackson. If the new generation of real-time search tools can effectively harvest and report coverage of a news event of similar magnitude, with the publishing load imposed by the worldwide social networking community at an unprecedented scale, we&amp;#39;ll have completed the cycle.  I believe they will.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;And thus, will have achieved our case study.&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://jasonsalas.posterous.com/only-half-the-real-time-web-equation-has-been"&gt;jasonsalas's posterous&lt;/a&gt; &lt;/p&gt;   &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-2282185714324938182?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/2282185714324938182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2009/12/only-half-real-time-web-equation-has.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/2282185714324938182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/2282185714324938182'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2009/12/only-half-real-time-web-equation-has.html' title='Only half the real-time web equation has been solved'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-7930426315727827056</id><published>2009-12-23T09:09:00.001+10:00</published><updated>2009-12-23T09:09:09.615+10:00</updated><title type='text'>The Realtime Paradigm &amp; media shrinkage</title><content type='html'>&lt;a href='http://posterous.com/getfile/files.posterous.com/jasonsalas/ii2WlA3KwueLZknq5vqanQMZ1GVSvcx6lCnxq6BoGcMIvUpbl011KJLekvwq/socxnet_1.jpg'&gt;&lt;img src="http://posterous.com/getfile/files.posterous.com/jasonsalas/xUHzwBrHHbxOhG2GWwAlkCaSXiHrvKpyW1OkSdzpE0Hbypu29MXHXY4odLYE/socxnet_1.jpg.scaled.500.jpg" width="500" height="170"/&gt;&lt;/a&gt; &lt;p&gt;&lt;/p&gt;&lt;div&gt;Much these days is being written, (re)tweeted, posted and discussed about the crop of new services that make the first iteration of what&amp;#39;s being called the Realtime Web possible.  Dealing primarily with search, a crop of enterprising platforms spearheaded by Collecta, Taptu and Google rapidly deliver a user experience that is unique: being able to see information literally within seconds of it being published online.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;So while as a developer I salivate at the prospect of being able to harness new emerging platforms and the forthcoming generation of abstract frameworks that will empower me to write me own systems centering on an instantaneous feedback loop, the marketer in me wonders how I can exploit such technologies into valuable commodities.  But those concerns are trumped, perhaps more importantly, by the journalist side of my persona as I question the future of media as we know it.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;I&amp;#39;m dubbing this balance The Realtime Paradigm&amp;quot;: the symmetry between those who generate content and those who receive it.&lt;/div&gt;&lt;p /&gt;&lt;div&gt;The predication central to making a Web that includes discovery of new information, sans latency, is brevity.  The delicate synergy between content creator and content consumer relies on the pace of the former&amp;#39;s ability to generate data and the latter&amp;#39;s ability to take it in.  Obviously with the overwhelmingly exponential expansion of the &amp;#39;Net&amp;#39;s major social networks, the demand for knowledge is insatiable.  &lt;/div&gt; &lt;p /&gt;&lt;div&gt;It&amp;#39;s unfathomable to think that even infinitely resourceful organizations like the mighty CNN would be able to crank out multiple 900-word essays and articles fast enough to satisfy the online audience&amp;#39;s appetite.  Likewise, most people don&amp;#39;t have neither the time nor desire to read a collection of aggregated feature-length compositions. It&amp;#39;s too much work.  This also technologically enables more mobile adoption of platforms, working within the confines of screen and bandwidth limitations for handsets and smartphones.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;So the next step becomes the impact on traditional media products - a regressive extension, if you will.  How will print media (already in the final stages of its own death throes), radio, television and even existing online platforms adopt this hyperaccelerated production cycle?  But before skipping merrily down that path, consider the shifts towards more condensed packaging that mass media has already seen.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;You almost never see a double-feature movie anymore.  Several of Cartoon Network&amp;#39;s shows in its Adult Swim programming block are only 11 minutes long.  The FX network features 3-minute recaps of that week&amp;#39;s episode of its drama series after they&amp;#39;ve aired.  Songs on the Top 40 chart are getting shorter.  The average story in a newscast isn&amp;#39;t as long as it used to be. Talk radio programs aren&amp;#39;t as long as they used to be. Magazines have become more terse with their offerings.  &lt;/div&gt; &lt;p /&gt;&lt;div&gt;Clearly, consumer behavior has driven us into the Age of the Short Attention Span; those tasked with developing the information they rely on have to react accordingly if they are to leverage The Realtime Paradigm.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;From a content creation standpoint, Twitter has been pretty revolutionary in (de)volving the way we&amp;#39;ve become accustomed to communicating.  I&amp;#39;ve said many times over the last year that as a professional broadcaster, anything I write now longer than the canonical 140 characters seems like an epic.  And this is, and will be, key to how realtime systems flourish.  We can keep our stuff of high quality, but in so doing make our material shorter and punchier, delivered in tasty bite-size morsels.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;Media&amp;#39;s not going flaccid by getting more condensed. It&amp;#39;s getting more valuable.  Consider this: it took me 20 minutes to write and post this piece, where I could have generated 10 tweets.  You&amp;#39;ve made it this far, but Which would you have preferred?&lt;/div&gt; &lt;p /&gt;&lt;div&gt;So keep this in mind as we head in 2010 and the Realtime Web continues to take off.  The popular &amp;#39;Net-lexical acronym &amp;quot;KISS&amp;quot; may be in need of revision, from hereon to be understood as &amp;quot;keep it short, stupid&amp;quot;.  ;)&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://jasonsalas.posterous.com/the-realtime-paradigm-and-media-shrinkage"&gt;jasonsalas's posterous&lt;/a&gt; &lt;/p&gt;   &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-7930426315727827056?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/7930426315727827056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2009/12/realtime-paradigm-media-shrinkage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/7930426315727827056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/7930426315727827056'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2009/12/realtime-paradigm-media-shrinkage.html' title='The Realtime Paradigm &amp;amp; media shrinkage'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-5064506841298450179</id><published>2009-12-21T09:51:00.001+10:00</published><updated>2009-12-21T09:51:24.044+10:00</updated><title type='text'>Treatise on social graph utility</title><content type='html'>&lt;div&gt;&lt;i&gt;&amp;quot;Ugh. Sorry I was late - I&amp;#39;ve been catching up with Facebook.&amp;quot;&lt;/i&gt;&lt;/div&gt;&lt;p /&gt;&lt;div&gt;I&amp;#39;ve given up trying to keep track of the number of times I&amp;#39;ve heard friends, family and colleagues utter this all-too familiar sentiment in recent history.  It&amp;#39;s evidently become an acceptable burden that society bears of weeding through what can be miles upon miles of posts from users within one&amp;#39;s social network. &lt;/div&gt; &lt;p /&gt;&lt;div&gt;In my own foray with the Social Web, I&amp;#39;ve deliberately kept my friend/follower lists small.  For me, the true value of my social graph is its brevity - quality content over inundation.  Don&amp;#39;t get me wrong, I like discovering new people and what they have to say, but I&amp;#39;ll eventually drop someone from my roster if their stuff isn&amp;#39;t doing it for me.  Drowning in empty chatter is just pointless to me.  And that&amp;#39;s a skewed indictment on how the way we interact with each other has (d)evolved.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;The Web is no longer an interconnected network of hypertext-based documents and media files; it&amp;#39;s become a subsystem of the digital projections of human beings.  The somewhat spurious utility a user obtains from their social graph - the collection of users within their social network and the connections between them - led me to question a theory I developed earlier this year.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;&lt;a href="http://jasonsalas.com/2008/11/revising-metcalfe.html"&gt;I proposed an extension&lt;/a&gt; to &lt;a href="http://en.wikipedia.org/wiki/Metcalfe's_law"&gt;Metcalfe&amp;#39;s Law&lt;/a&gt; - the fundamental principle defining the value of all networks - to incorporate the added utility generated in a social application.  (&lt;i&gt;Do I know how to party or what?&lt;/i&gt;)  Essentially, I concluded, the personal value of your social network increases even further not just with the nodes added (your friends/followers), but also with the extension in the outward users that, by association, you become connected to.  This overall value can be quantified by applying a coefficient to the initial formula n(n-1)/2.  &lt;/div&gt; &lt;p /&gt;&lt;div&gt;(&lt;i&gt;That is, if you&amp;#39;re into that kind of thing.&lt;/i&gt;)&lt;/div&gt;&lt;p /&gt;&lt;div&gt;So a thought hit me while paging through friend requests on various apps: for me, the aggregate value of my social network actually decays were I to add each and every person that solicits my connectivity.  I don&amp;#39;t stay logged in all day reading posts, so I choose to experience my friends&amp;#39; activity in short info-bursts.  Were I to allow everyone, I&amp;#39;d be diluting my lifestream, degrading the overall experience and taking away what little of a life I have now.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;As I see it, there are three major classifications of social network user on the Internet at the time of this writing:&lt;/div&gt;&lt;p /&gt;&lt;div&gt;1 - &lt;b&gt;The Serial Friend-Adder&lt;/b&gt;: someone who prowls the safari that is cyberspace, actively hunting for any and all connections, happily rapidly extending her social graph outwards; she derives primary value from the sheer number of friends/followers she&amp;#39;s amassed.  Her main source of pride is being able to say &amp;quot;I have [X]-thousands of friends!&amp;quot;, caring less about the quality of the content generated thereby.  Her bragging rights are determined by volume.&lt;/div&gt; &lt;div&gt;2 - &lt;b&gt;The Audience Expander&lt;/b&gt;: someone who meticulously increases their friendlist, but only as a means of imposing their own will on the world.  What gets this type of user off isn&amp;#39;t so much the volume of users, but the quality of those that will receive their stuff and pass it onto others.  Think of this as the crass capitalist or dictator.&lt;/div&gt; &lt;div&gt;3 - &lt;b&gt;The Pragmatic Pessimist&lt;/b&gt;: a reserved, happily sheltered, introverted online user, who cautiously rejects more friend requests than she accepts.  Her major utility is extracted from the efficiency resulting from a reduced number of posts through which to filter, &lt;/div&gt; &lt;p /&gt;&lt;div&gt;In case you haven&amp;#39;t figured it out, I fall into the third classification.  My philosophy is that if you&amp;#39;re not generating any information that motivates, educates, entertains, inspires, angers, titillates or otherwise makes my life better, you&amp;#39;re wasting my damn time.  And to me, this is significant.  But not all social networks are the same.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;Let&amp;#39;s look at the mothership for the modern social network: Facebook.  The mighty platform/internet within the Internet/online community/online operating system uses a bidirectional model that requires a user allowing a requester to be his friend access to that person&amp;#39;s stuff, too.  So for every nth user added, you potentially affect your personal system&amp;#39;s value by a factor of 2 (either increasing/decreasing it).&lt;/div&gt; &lt;p /&gt;&lt;div&gt;Now consider the model employed by Twitter.  The microblogging platform doesn&amp;#39;t require a user to follow those who follow her.  So you have a fragmented system of interconnectedness, wherein a celebrity with 2.5 million devout followers hanging on their every word may realistically only follow 35 people - and not necessarily from that subset.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;But of course, interacting with a social network, inline with society in the real world, is completely subjective.  The signal-to-noise ratio of social applications is something everyone determines for themselves.  I know people who are absolutely delighted to sit and read pages upon pages of posts, just for the entertainment value, albeit petty.  Cool.  Whatever floats your boat.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;And of course, the converse applies.  Expanding your followerbase logically increases the chance that you can discover some really cool inbound things, or be able to pass on neat things to others.  So it&amp;#39;s a sticky wicket to manage.  Go with what model works best for you.&lt;/div&gt; &lt;p /&gt;&lt;div&gt;And realistically...who thinks about quantifying the utility of their social graph?  Shut up and read.  ;)&lt;/div&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://jasonsalas.posterous.com/treatise-on-social-graph-utility"&gt;jasonsalas's posterous&lt;/a&gt; &lt;/p&gt;   &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-5064506841298450179?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/5064506841298450179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2009/12/treatise-on-social-graph-utility.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/5064506841298450179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/5064506841298450179'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2009/12/treatise-on-social-graph-utility.html' title='Treatise on social graph utility'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-2522620056308335629</id><published>2009-11-28T14:24:00.002+10:00</published><updated>2009-11-28T14:32:11.582+10:00</updated><title type='text'>7 Questions for TweetBookz</title><content type='html'>&lt;p class="MsoNormal"&gt;On the day before Thanksgiving, I was using Twitter's web interface (which, coincidentally, I rarely use these days), when I discovered a curious link to &lt;a href="http://www.tweetbookz.com/"&gt;TweetBookz&lt;/a&gt; in the vaunted right column.&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;Investigating, I found an online service that cleverly archives a user's microblogging history, assembles the data in a printed form and prepares it as a personalized book, suitable as a gift.&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;I instantly found it to be intuitively clever and full of potential, if not overtly innovative.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Showing it off to several friends in the past couple of days IRL and via numerous tweets I've authored, I've found it to be quite polarizing.&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;People either fall head-over-heels for it, or don't get it at all.  But people are talking about it.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Here's 7 Questions with Tweetbookz co-founder &lt;a href="http://twitter.com/TBookz"&gt;Jacob Shwirtz&lt;/a&gt;:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;br /&gt;1. Describe how Tweetbookz came to be and what gave rise to this service.&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;We spend a lot of time thinking about and being active within social media on behalf of our clients, such as Zagat Survey (check out &lt;a href="http://twitter.com/zagatbuzz"&gt;@ZagatBuzz&lt;/a&gt;). As a result, we started imagining what it would be like if Twitter were an “offline” thing and what it would be like to treat Twitter as a book. From there the idea evolved into something more like a book of poetry or inspiration quotes, as opposed to a full archive. We thought it would be very fun to have your favorite tweets in a beautiful book on your coffee table, so that’s the idea we ran with.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;2. What's your sales pitch and what counterargument would you lob at someone who says "this is just for people too lazy to print"?&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;People seldom think about their history on Twitter and go back to see the things they wrote a week, month or year ago. Our books are a fun and nostalgic way to reminisce about those things. It's less about narcissism, as some may think, and more about nostalgia. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;We’re giving permanence to something so ephemeral and from that comes a cool, unique and unexpected product.&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;3. What logistical setup are you using to take orders, bind and ship books to users?&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;We partnered with a world-class on-demand book binding house in &lt;st1:state st="on"&gt;&lt;st1:place st="on"&gt;New York&lt;/st1:place&gt;&lt;/st1:state&gt; and they fulfill all our orders. Like this we focus on our specialty of building and marketing excellent web sites and they focus on their specialty of printing, binding and shipping.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;4. Obviously, the operation is very lean, using the Twitter API.&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;Are you planning on similar services with other social networks?&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The beauty of Twitter is its 140-character limit. Because of that, we were able to invest in beautifully designed books that have templates which we know will never be exceeded. Obviously there are several additional concerns when printing something like blogs, because the length can vary so wildly. This has to do with our desire to create great-looking, specific products, as opposed to full archives that would look like encyclopedias or “white pages.”&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;5. The natural primary buying audience seems to be active Twitterers, with people not on that platform being the natural recipients.&lt;span style="mso-spacerun:yes"&gt;  &lt;/span&gt;Have you found this to be so?&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Actually, our initial vision was about 50/50 split between two groups. One group was gift-givers (whether or not they themselves are on Twitter) - people who buy gift certificates for active Twitter users in their lives. The other group was people buying the books as keepsakes for themselves. We envision people thinking more about what they tweet now because they know they’ll be able to get it in a book.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;For example, imagine tweeting the process of your wife’s pregnancy and then printing a book that reports on that wonderful life-moment. It's really too early to tell exactly what people will do but we’re really curious to see!&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;6. Can we get books assembled only of original tweets, exclusive of replies?&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Right now we will populate the book with a user’s last 200 tweets. Using a basic “delete” feature, users can remove any tweets they don’t want printed. When they delete a tweet we will loads additional ones from Twitter in order to maximize the 200 pages of the book. In this way people can completely curate the content of the book. In the near future we plan to unveil other, more advanced, editing tools and filters, such as automatically removing all tweets with hashtags, links, and/or replies.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;7. What are some immediate and future plans for Tweetbookz?&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;We are working hard on additional editing tools to let people create their perfect books. Also, we hope to let users upload their own custom cover designs and maybe some more personalization options around the books.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;Thanks Jacob, and best of luck!&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', 'MS Sans Serif', 'Lucida Sans Unicode', Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif; color: rgb(17, 17, 17); "&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;Past interviews:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://jasonsalas.com/2009/03/7-questions-for-tourneytopia.html"&gt;&lt;b&gt;7 Questions for Tourneytopia&lt;/b&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;a href="http://jasonsalas.com/2009/02/7-questions-for-jeff-lindsay-of.html" style="color: rgb(180, 68, 92); "&gt;7 Questions for Jeff Lindsay on Web Hooks&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://jasonsalas.com/2009/02/7-questions-for-notifixious.html" style="color: rgb(180, 68, 92); "&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;7 Questions for Notifixious&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-2522620056308335629?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/2522620056308335629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2009/11/7-questions-for-tweetbookz.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/2522620056308335629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/2522620056308335629'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2009/11/7-questions-for-tweetbookz.html' title='7 Questions for TweetBookz'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-9173811929687987501</id><published>2009-11-01T10:37:00.000+10:00</published><updated>2009-11-01T10:38:58.589+10:00</updated><title type='text'>The (d)evolution of the American sportswriter</title><content type='html'>&lt;div&gt;For any professional communicator, apathy is a fate worse than death.  Throughout history, but no more evident than in today's media market, having the ability to evoke some sort of emotion from an audience - in any format and across any topic - is key to survival.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Literacy was always big in the Salas household.  I grew up reading Sports Illustrated, and I consider myself privileged to have considered great works by tons of acclaimed people you've likely never heard of.  I'd read everything from recollections of the Super Bowl experience, to comments about cricket, to essays on the emerging interest in some new concoction known as free agency.  Even before my time, I'd obtain older pieces from columnists as far back as the 1940's, spinning tales of the golden ages of baseball and boxing.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Their words flowed slowly and gracefully, like honey off a wooden spoon.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The styles of the older sportswriters were generally akin, all being engaging, respectful and informative - everything they were taught to be as journalists.  Leveraging humor (God forbid) was always tenuous, because with not everyone having that ability, if mismanaged it might depreciate their work.  So they played it safe by playing it straight.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fast forward to today: it's the age of reality television, an overabundance of pornography, and a culture not only completely happy with, but in constant demand of, replete voyeurism.  This is spurned on by affordable consumer technology empowering practically anyone with near-realtime multiplatform immediacy and an equally simple ability to become an active reporter themselves.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The profession has morphed, but the demands on a writer to serve in ways that forces people to react to their creations remains as strong as ever.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sportswriters of years past were scribes, true and distinct.  They were gentleman scholars.  Expert storytellers both of events taking place on the field or court of play, as well as the unseen drama unfolding off it. They were masters of the craft of creating poetry through their retelling multiple angles stories of athletics.  It's a role that I considered a venerated art form, a modern-day sophist.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Today, sportswriters are largely only as good as their last punchline.  It's all about how well you can smacktalk, namedrop, be referential to pop culture, and how many one-liners you can fit into an 800-word contribution.  Today's sportswriter functions as more stand-up comedian than reporter.  The older generation that's still around and clinging to their time-honored axiology are seen as old hat and irrelevant by today's audiences.  Hence, no response.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My favorite writers today all have a signature edginess about their writing that lets them standout from their peers: Bill Simmons.  Rick Reilly.  Tom Rinaldi.  Jim Rome.  Christine Brennan.  Max Kellerman.  Keith Olbermann.  Edwin Pope.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Even the great Tony Kornheiser, of whom I'm a huge fan, has massaged his natural wit to be punchier through biting and topical sarcasm, to stay relevant to a readerbase that expects and demands controversy - if not from the subject matter at hand, then by the people relaying it.  Art just reflects society's expectations, because inline with the decline of Western civilization, kids today just don't know any better.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's the direct result of the death of the newspaper industry and the rise in integrated TV and new media formats and applications.  There simply are too many sources now to consider; to be distinct and secure eyeballs on a daily basis, sportswriters have to take an angle as being funny, daring or downright rude that'll lock you into consuming their stuff and formulating an opinion one way or the other that gets you to come back.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And let's not neglect the ESPN Influence, wherein everything the network does is considered the gold standard of sports journalism.  Their every move heavily drives what is seen as acceptable for the masses; the ubiquitous catch phrases, clever references and gimmicky running gags pressure their print counterparts to follow suit in that format.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lest they be cast into the purgatory that is reader indifference.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-9173811929687987501?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/9173811929687987501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2009/11/devolution-of-american-sportswriter.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/9173811929687987501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/9173811929687987501'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2009/11/devolution-of-american-sportswriter.html' title='The (d)evolution of the American sportswriter'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-3518062532755715496</id><published>2009-10-09T07:53:00.001+10:00</published><updated>2009-10-09T07:55:11.883+10:00</updated><title type='text'>Book review: Murach's JavaScript and DOM Scripting</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "&gt;&lt;p class="MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;a href="http://www.amazon.com/Murachs-JavaScript-DOM-Scripting-Murach/dp/1890774553/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1255038875&amp;amp;sr=8-1"&gt;&lt;b&gt;Murach's JavaScript and DOM Scripting&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;I've read a ton of books on JavaScript, and Ray Harris' wonderful tome is perhaps THE best modern titles you'll find on the topic. &lt;span&gt; &lt;/span&gt;The book is intelligently organized, and written in a concise fashion, with practical examples, delivered with a friendly voice that makes what can often be convoluted or confusing concepts easy to grasp for beginners.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;On that note, the book serves as a valuable refresher for the experienced web developer wanting to get up to speed on current-day concepts or the advanced dev needing best practices in her coding.&lt;span&gt;  &lt;/span&gt;And like all Murach titles, the book doesn't inundate the reader with useless chapters of the history of the at-hand topic, it just tells you what JavaScript can do for your web applications and shows you the best, most efficient ways to do it.&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;In particular, I found Harris' work to have exceptional contributions of several topics: there is excellent coverage of debugging tools &amp;amp; techniques, featuring the latest browsers, plugins, and GUIs.&lt;span&gt;  &lt;/span&gt;The book has a wonderful discussion of how to use client-side regular expressions. &lt;span&gt; &lt;/span&gt;And the chapters on object-oriented programming and DOM scripting are some of the best you'll find.&lt;span&gt;  &lt;/span&gt;Likewise appreciated are the discussions on JavaScript libraries such as jQuery and Dojo. &lt;span&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;span&gt;It's truly a holistic look at client-side development.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;So Get out and buy this book…whatever your level, it'll be a welcome addition to your technical library!&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-3518062532755715496?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/3518062532755715496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2009/10/book-review-murachs-javascript-and-dom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/3518062532755715496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/3518062532755715496'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2009/10/book-review-murachs-javascript-and-dom.html' title='Book review: Murach&apos;s JavaScript and DOM Scripting'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-2705256075283769349</id><published>2009-06-09T08:52:00.003+10:00</published><updated>2009-06-09T09:21:46.064+10:00</updated><title type='text'>My graduation speech for my alma mater</title><content type='html'>&lt;div&gt;Over the weekend, I put together a draft of the graduation speech I'm giving to my alma mater next monday, 20 years after I started high school.   It took me three sittings to bang this out...I can write 3,000 words about sports in a hearbeat, churn out a business plan in a flash or whip together a lengthy anecdotal blog post so fast it'll make your head spin - but being emotionally neutral, the more sappy stuff take a lot out of me.  so i took my time and let this evolve.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I did it as a series of vignettes that can be modularly added/removed for time purposes.  I've been told I have 5 minutes to fill, but I plugged the speech into our teleprompter and it comes out to about 6:12.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let me know what you think...criticism welcome!  And if you're one of my classmates from SSHS '92, then print this out or share it with our classmates.  It's as much for you as it is for the kids.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;(You can also see &lt;/i&gt;&lt;a href="http://jasonsalas.com/2009/06/my-commencement-speech-intro-aka-old.html"&gt;&lt;i&gt;the intro here&lt;/i&gt;&lt;/a&gt;&lt;i&gt;.)&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;hr /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Appreciating Who You Are&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hello, Hafa Adai and good evening...my fellow Sharks.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is truly an honor for me stand before you AND beside you, on this, your proudest moment.  It doesn't matter that I'm twice your age, because tonight, and for all time, we now stand as equals.  In a very short time, you'll officially be able to call yourselves "alumni of Simon Sanchez High School", a wonderful achievement to be sure.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'd like to talk to you tonight not about where you're going, not the unique paths you've all certainly come from that got you here, but who you all have become.  Many of you probably may not realize the truth that's been hiding in plain sight for the past four years, since you first set foot at Sanchez High.  That you are - and will always be - Sharks.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When I was asked to speak to the Class of '09, I was incredibly moved.  I was humbled at being given the chance to not only honor my alma mater and bring some laughter and inspiration to the great young minds of tomorrow...but to also be able to represent MY classmates; and pass down our experience, our knowledge and our motivations to you.  You see...that's truly what it means to be a Shark.   Let me explain.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In a competitive context, the personification of our school spirit is naturally often characterized as being predatory, aggressive, keenly-sensed, and second-to-none in our ability to dominate our environment.  That certainly works for sports and extra-curricular activities, because as anyone clearly knows, it's quite frankly a completely moronic argument to challenge that Sanchez has hands-down THE BEST MASCOT ON GUAM!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But there's another, more critical dimension about these majestic creatures that perfectly describes how we take care of business in the classroom and how we conduct ourselves in society - Sharks survive.  Sharks adapt.  Sharks are highly respected.  Sharks finish what they start.  Sharks stand their ground.  Sharks are among the most highly-intelligent members of the animal kingdom.  Sharks are everywhere.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And that is how we, your predecessors, carry ourselves everyday as members of the prestigious fraternity you're all about to join.  It's a legacy we're proud to uphold - and this is the legacy I'm now extremely honored, on behalf of my fellow alumni, to pass onto you. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And make no mistake, my Sharks: your ability to earn the right to sit here before your friends, family and the community is proof positive that you can do anything in this world.  And no one, ever, can take this moment away from you.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style=" font-weight: bold; font-size:18px;"&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The burden of an alumnus is the unspoken promise that you'll be the best member of the community you possibly can.  Demonstrate good character.  Always put others before yourself.  Be confident, but humble.  Don't back down from any challenge, no matter how daunting.  Honor your family and your faith.  Respect those who came before you and appreciate the lessons they have to teach.  Help the next generation.  Give back to Guam, and always do your very best to make the island the very best it can be.  That's the mark of a Sanchez graduate.  It's not easy, and it's a commitment that's lifelong.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But it's a true honor...and this is the honor that you've worked for all your life.  And tonight, that honor is finally yours.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style=" font-weight: bold; font-size:18px;"&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I represent a graduating class that two decades ago this fall started out our high school journey, both collectively and individually.  The Mighty Class of 1992.  17 years ago, my classmates and I, some 202 strong (which at the time was a Sanchez record), sat in our caps and gowns as you do now - some anxious, some nervous, some relieved, some fidgety, some hungry, some bored, some unable to wait for it to be over, some scared out of our minds.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But like true Sharks, we all persevered.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now, I won't gloss over the truth.  While most of my classmates have happily raised families, found success in business, defend our nation's liberties on the battlefield, serve in government, keep our streets safe, and fight to rid the world of disease...some forgot who they were and lost their way.  Some right now are sitting in jail, tormented by regret.  Some are in deep battles with drug and alcohol addictions.  Some lie in mainland medical facilities enduring indescribable pain.  And some are no longer with us at all.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That's the brutal reality of life, my friends.  And that's how society seeks to categorize each and every one of us: not as a Shark, but merely a number.  A statistic.  A figure.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I challenge you tonight and for the rest of your time on Earth to rise above such expectations.  Realize who you have become AND the responsibility you now carry.  Be the best always, and in everything you do.  Walk tall.  Be a strong Guamanian.  Be a Shark.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style=" font-weight: bold; font-size:18px;"&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So even though you've most assuredly got plans with friends and family, I would humbly ask you, my fellow Sharks, to do something tonight.  Do this one simple thing, not for your families, ot for your classmates, not for the alumni...do this exclusively for yourselves: before you embark on your celebrations tonight, go somewhere quiet and alone.  Spend a few moments in silence and just look at your diploma.  Reflect on the last four years of you life, recognizing all the dedication, sacrifice, commitment, self-discipline and devotion to your education and the hard work you've put in.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Think about your first steps on the Yigo campus, remember how big the buildings seemed, how lost you were, how you only knew a few people.  And then think about the class activities you got involved in, the friendships you've forged, the teachers that mentored you, how underclassmen went to you for your expertise, how you knew everyone in your class and everyone knew you.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I ask that you do this because I did this the night I graduated, and it made all the difference in the world.  It helped remind me that my school years may have ended, but more importantly that a new chapter in my life was just beginning.  And it galvanized who I had become.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And I believe it'll have the same effect for you.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style=" font-weight: bold; font-size:18px;"&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So while a very demanding, very competitive and at times very cruel world lay ahead, let me leave you with this: don't ever stop believing in yourselves.  By completing your high school education, you've now proven to the entire world - but most importantly, to yourselves - that you're capable of doing anything.  Don't stop learning, working, or questioning.  Be not nobody.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Go into whatever walk of life you take interest in and do it with pride.  Wear your school colors proudly, and never forget who you are.  You are a graduate of Simon Sanchez High.  You are a Shark.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So on behalf of the thousands of Sharks throughout the world, I say welcome to our ranks.  We're extremely proud of you, we celebrate your achievement, we love you, we stand ready to help you as fellow graduates of this wonderful school, and we expect you to do the same for future Sanchez High classes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So congratulations, my friends!  This night is yours.  And always, always conduct yourselves as Sharks.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thank you.&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/17598274-2705256075283769349?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/2705256075283769349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2009/06/my-graduation-speech-for-my-alma-mater.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/2705256075283769349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/2705256075283769349'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2009/06/my-graduation-speech-for-my-alma-mater.html' title='My graduation speech for my alma mater'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-1688378033593649130</id><published>2009-06-01T11:34:00.009+10:00</published><updated>2009-06-01T13:38:21.908+10:00</updated><title type='text'>My commencement speech intro (aka, The Old Testament)</title><content type='html'>I mentioned on Twitter several weeks ago how I was hoping to involve crowdsourcing feedback into the commencement speech I've been asked to give at my alma mater's graduation ceremony on the 15th.  I've since been asked to whittle it down to five minutes, but to also do a lengthy intro (that's public school for you).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Have at it...comments/criticism welcome.  Rather than be stuffy, I'd prefer to do something to make the kids laugh.&lt;/div&gt;&lt;div&gt;&lt;hr /&gt;&lt;div&gt;Delivering tonight's keynote address is a proud alumnus of Sanchez High, Mr. Jason Salas.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Jason is best known in the Guam community for his work at KUAM, where he works as interactive media manager, overseeing all aspects of the company's digital content delivery efforts.  Over the last decade he's co-anchored the nightly 6pm news with Sabrina Salas Matanane, done play-by-play for local sports broadcasts, and hosted numerous shows and programs on television, on the radio and online.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;He also continues his life's work of helping Guamanians improve their lives through technology, having launched several spinoff projects to this end.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Having grown up in Dededo in Ypaopao Estates as the eldest child of two educators, Jason graduated from the Home of the Sharks in 1992.  He was a four-year cadet in the Shark JROTC battalion, serving as color guard commander and battalion commander his senior year.  He played middle blocker for our boys volleyball team (although a broken wrist kept him from seeing any on-court action his last season).  He was heavily involved in class activities, extra-curricular events, and was an avid high school sports fan.  He even came back after graduating to help coach the volleyball teams.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Jason was an honors student and graduated near the top of his class of 202 students, excelling at math and English; despite this, he was absolutely horrendous at science and often fell asleep in government class.  He was voted duke of his senior prom, and his yearbook lists his senior superlative as "Worst Jokes", a well-deserved moniker he remains proud of to this day.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;He wore his letterman's jacket to school as often as he could.  He also doesn't hesitate to give Sanchez High a shameless on-air plug whenever he calls a game.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After high school, he earned a marketing degree from the University of Guam and also studied music theory.  He later put himself through graduate school and holds an MBA with emphasis in technology management.  He's a self-taught software developer and a passionate part-time musician.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Despite the various paths his career has taken him, he always remained true to his alma mater.  He credits the tightness and camaraderie between his classmates as a major driving factor towards his success, and he and his fellow alumni remain lifelong friends.  He kept his graduation tassel hanging from his car's rear-view mirror for three years, even after Guam's searing heat faded its proud silver &amp;amp; black colors.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;He very happily returns to his alma mater to speak to tonight's graduates on the topic of "Appreciating Where You Came From".  Ladies and gentlemen, please join me in welcoming Class of '92 graduate...Jason Salas.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;(...and the crowd, assuming they're still awake by this point, goes wild.)&lt;/i&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/17598274-1688378033593649130?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/1688378033593649130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2009/06/my-commencement-speech-intro-aka-old.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/1688378033593649130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/1688378033593649130'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2009/06/my-commencement-speech-intro-aka-old.html' title='My commencement speech intro (aka, The Old Testament)'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-6889698564131234801</id><published>2009-05-22T09:25:00.003+10:00</published><updated>2009-05-22T11:33:07.430+10:00</updated><title type='text'>Hacking @guamtweetbot: writing a Twitter Search service</title><content type='html'>&lt;div&gt;While sitting at home last night I had an idea about creating a localized service that archives all posts on Twitter having to do &lt;a href="http://search.twitter.com/search?q=guam"&gt;with Guam&lt;/a&gt;.  Like most other markets, Twitter's really taken off on Guam, and the number of posts about our little island, from locals and other people alike, is surging tremendously.  So the need existed to perpetuate the thoughts of those taking an interest in my hometown, and give the micromessages a little more press and some extra time in the limelight.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I set out to achieve four main goals, building-out a little autonomous service that would:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Troll for new tweets having to do with Guam&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Harvest and retweet all found posts &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Set this to run at a scheduled interval so to mirror the posts as they're appearing in the statusphere in near-realtime&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Follow the user that posted a new entry&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;So last night, inspired after a pretty healthy hot fudge sundae, I wrote a bot in PHP that makes calls against the &lt;a href="http://apiwiki.twitter.com/Twitter-Search-API-Method:-search"&gt;Twitter Search API&lt;/a&gt;, extracting tweets containing the string "&lt;span class="Apple-style-span" style="font-style: italic;"&gt;guam&lt;/span&gt;" and re-posting them to the &lt;a href="http://twitter.com/guamtweetbot"&gt;@guamtweetbot&lt;/a&gt; timeline.  A variation of the RESTful URL called &lt;a href="http://search.twitter.com/search.atom?q=guam+-from%3Aguamtweetbot&amp;amp;show_user=true"&gt;is here&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I setup the process to run as a CRON job on my Ubuntu Linux server, using wget to execute the script (since PHP's compiled for Apache, not as a CGI module):&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;*/20 * * * * wget -O /dev/null &lt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;path to PHP script&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is actually a prototype for a much larger platform I'm building for KUAM, which we're going to use with our news broadcasts.  But it certainly has &lt;a href="http://twitter.com/Bashville/status/1875287300"&gt;generated&lt;/a&gt; &lt;a href="http://twitter.com/Joe_Wallace/status/1870902047"&gt;some&lt;/a&gt; &lt;a href="http://twitter.com/sciencegoddess/status/1876008552"&gt;nice&lt;/a&gt; &lt;a href="http://twitter.com/wymesei/status/1875469989"&gt;feedback&lt;/a&gt; from the community.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Plan your code, code your plan.  Creating value for others - not a bad way to spend a Thursday evening, huh?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-6889698564131234801?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/6889698564131234801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2009/05/hacking-guamtweetbot-writing-twitter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/6889698564131234801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/6889698564131234801'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2009/05/hacking-guamtweetbot-writing-twitter.html' title='Hacking @guamtweetbot: writing a Twitter Search service'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-6118556588813880988</id><published>2009-04-21T10:04:00.003+10:00</published><updated>2009-04-21T10:16:39.680+10:00</updated><title type='text'>TwitterNeni's a go!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://twitterneni.com/beta"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 42px;" src="http://www.jasonsalas.com/uploaded_images/twitterneni_logo-778144.jpg" alt="" border="0" /&gt;&lt;/a&gt;Hey Guammies!  I'm very pleased to report that &lt;a href="http://ymesei.com/"&gt;Will&lt;/a&gt; and I got our new SMS gateway up and online so local Twitter users can post tweets via text messaging.  We're currently in beta testing, so give it a spin and see if it works for you.&lt;br /&gt;&lt;br /&gt;This is a perfect way for Guamanians that still have 2G non-smartphones to get with the social networking revolution.  It's completely free, so &lt;a href="mailto:help@twitterneni.com?subject=Feedback"&gt;let us know what you think.&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://twitterneni.com/beta"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Check it out&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;!&lt;/span&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/17598274-6118556588813880988?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/6118556588813880988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2009/04/twitternenis-go.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/6118556588813880988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/6118556588813880988'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2009/04/twitternenis-go.html' title='TwitterNeni&apos;s a go!'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-1842939875162706408</id><published>2009-04-14T22:54:00.004+10:00</published><updated>2009-04-14T23:18:35.863+10:00</updated><title type='text'>One-night gig: set-list</title><content type='html'>My friend &lt;a href="http://www.amguam.com/"&gt;Andy&lt;/a&gt; was &lt;a href="http://www.jasonsalas.com/2009/04/one-night-gig-my-birthday-playlist.html#comments"&gt;nice enough&lt;/a&gt; to offer to let me sit-in with one of the many bands he plays bass with for &lt;a href="http://www.jasonsalas.com/2009/04/one-night-gig-my-birthday-playlist.html"&gt;a birthday wish I had&lt;/a&gt; to play lead one more (and probably last) time.  I'm looking over the set list he sent me, and while it's decidely more 90's than the 80's cheese I was shooting for, there are several pieces I know and could probably pull off without giving myself &lt;a href="http://en.wikipedia.org/wiki/Carpal_tunnel_syndrome"&gt;CTS&lt;/a&gt; in the process.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In my naive quest to reclaim my youth and do the Fretboard Olympics, I'm reminded that there's nothing wrong with some 3-chord singalongs.  Can't go wrong with RHCP or 311...it'll be fun no matter what.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What do you think?&lt;/div&gt;&lt;div&gt;&lt;hr /&gt;&lt;div&gt;3 DOORS DOWN – KRYPTONITE&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;3 DOORS DOWN – LOSER&lt;/div&gt;&lt;div&gt;3 DOORS DOWN – WHEN I’M GONE&lt;/div&gt;&lt;div&gt;311 – ALL MIXED UP&lt;/div&gt;&lt;div&gt;311 – AMBER&lt;/div&gt;&lt;div&gt;311 – BEAUTIFUL DISASTER&lt;/div&gt;&lt;div&gt;311 – COME ORIGINAL&lt;/div&gt;&lt;div&gt;311 – DOWN&lt;/div&gt;&lt;div&gt;311 – FIRST STRAW&lt;/div&gt;&lt;div&gt;311 – FLOWING&lt;/div&gt;&lt;div&gt;311 – I’LL BE HERE A WHILE&lt;/div&gt;&lt;div&gt;311 – PRISONER&lt;/div&gt;&lt;div&gt;311 – PURPOSE&lt;/div&gt;&lt;div&gt;311 – YWB&lt;/div&gt;&lt;div&gt;311/THE CURE – LOVE SONG&lt;/div&gt;&lt;div&gt;AUDIOSLAVE – LIKE A STONE&lt;/div&gt;&lt;div&gt;BLINK 182 – ALL THE SMALL THINGS&lt;/div&gt;&lt;div&gt;BLINK 182 – MUTT&lt;/div&gt;&lt;div&gt;BLINK 182 – WHATS MY AGE AGAIN&lt;/div&gt;&lt;div&gt;BUSH – COME DOWN&lt;/div&gt;&lt;div&gt;BUSH – MACHINEHEAD&lt;/div&gt;&lt;div&gt;CAKE – I WILL SURVIVE&lt;/div&gt;&lt;div&gt;CREED – ARMS WIDE OPEN&lt;/div&gt;&lt;div&gt;CREED – MY SACRIFICE&lt;/div&gt;&lt;div&gt;CUSTOM – HEY MISTER&lt;/div&gt;&lt;div&gt;DAVE MATHEWS – SATELLITE&lt;/div&gt;&lt;div&gt;FOO FIGHTERS – EVERLONG&lt;/div&gt;&lt;div&gt;FOO FIGHTERS – HERO&lt;/div&gt;&lt;div&gt;FOO FIGHTERS – LEARN TO FLY&lt;/div&gt;&lt;div&gt;FUEL – BAD DAY&lt;/div&gt;&lt;div&gt;GODSMACK – WHATEVER&lt;/div&gt;&lt;div&gt;GREEN DAY – BASKET CASE&lt;/div&gt;&lt;div&gt;GREEN DAY – LONGVIEW&lt;/div&gt;&lt;div&gt;GREEN DAY – SHE&lt;/div&gt;&lt;div&gt;GREEN DAY – WELCOME TO PARADISE&lt;/div&gt;&lt;div&gt;HOMEGROWN – SURFER GIRL&lt;/div&gt;&lt;div&gt;HOUSE OF PAIN – JUMP AROUND&lt;/div&gt;&lt;div&gt;INCUBUS – DRIVE&lt;/div&gt;&lt;div&gt;INCUBUS – NICE TO KNOW YOU&lt;/div&gt;&lt;div&gt;INCUBUS – TALK SHOW ON MUTE&lt;/div&gt;&lt;div&gt;JIMMY EAT WORLD – THE MIDDLE&lt;/div&gt;&lt;div&gt;JIMMYS CHICKEN SHACK – DO RIGHT&lt;/div&gt;&lt;div&gt;LIFEHOUSE – HANGIN BY A MOMENT&lt;/div&gt;&lt;div&gt;LIMP BIZ – BREAK STUFF&lt;/div&gt;&lt;div&gt;LIMP BIZ – FAITH&lt;/div&gt;&lt;div&gt;LIMP BIZ – ROLLIN&lt;/div&gt;&lt;div&gt;LIT – MISERABLE&lt;/div&gt;&lt;div&gt;MARCY PLAYGROUND – SEX &amp;amp; CANDY&lt;/div&gt;&lt;div&gt;MODERN ENGLISH – ILL STOP THE WORLD&lt;/div&gt;&lt;div&gt;MODEST MOUSE – FLOAT ON&lt;/div&gt;&lt;div&gt;NIRVANA – IN BLOOM&lt;/div&gt;&lt;div&gt;OASIS – CHAMPAGNE SUPERNOVA&lt;/div&gt;&lt;div&gt;OASIS – WONDERWALL&lt;/div&gt;&lt;div&gt;PEARL JAM – ALIVE&lt;/div&gt;&lt;div&gt;PEARL JAM – BETTERMAN&lt;/div&gt;&lt;div&gt;PEARL JAM – BLACK&lt;/div&gt;&lt;div&gt;PEARL JAM – YELLOW LEDBETTER&lt;/div&gt;&lt;div&gt;POISON – EVERY ROSE&lt;/div&gt;&lt;div&gt;PRES OF US – LUMP&lt;/div&gt;&lt;div&gt;PUDDLE OF MUD – SHE HATES ME&lt;/div&gt;&lt;div&gt;RADIOHEAD – CREEP&lt;/div&gt;&lt;div&gt;RAGE – KILLING&lt;/div&gt;&lt;div&gt;RAMONES – SEDATED&lt;/div&gt;&lt;div&gt;RANCID – RUBY SOHO&lt;/div&gt;&lt;div&gt;RANCID – TIME BOMB&lt;/div&gt;&lt;div&gt;RHCP – AROUND THE WORLD&lt;/div&gt;&lt;div&gt;RHCP – BY THE WAY&lt;/div&gt;&lt;div&gt;RHCP – CAN’T STOP&lt;/div&gt;&lt;div&gt;RHCP – OTHERSIDE&lt;/div&gt;&lt;div&gt;RHCP – ROLLING SLY STONE&lt;/div&gt;&lt;div&gt;RHCP – SOUL 2 SQUEEZE&lt;/div&gt;&lt;div&gt;RHCP – UNDER THE BRIDGE&lt;/div&gt;&lt;div&gt;RHCP – ZEPHYR SONG&lt;/div&gt;&lt;div&gt;SEVEN MARY THREE – CUMBERSOME&lt;/div&gt;&lt;div&gt;SIFL &amp;amp; OLLY – WHATEVA&lt;/div&gt;&lt;div&gt;SOAD – AERIALS&lt;/div&gt;&lt;div&gt;STAIND – FOR YOU&lt;/div&gt;&lt;div&gt;STAIND – IT’S BEEN A WHILE&lt;/div&gt;&lt;div&gt;STAIND – OUTSIDE&lt;/div&gt;&lt;div&gt;STP – INTERSTATE LOVE SONG&lt;/div&gt;&lt;div&gt;STP – PLUSH&lt;/div&gt;&lt;div&gt;STROKE 9 – LITTLE BLACK BACKPACK&lt;/div&gt;&lt;div&gt;SUBLIME – BADFISH&lt;/div&gt;&lt;div&gt;SUBLIME – CARESS ME DOWN&lt;/div&gt;&lt;div&gt;SUBLIME – SANTERIA&lt;/div&gt;&lt;div&gt;SUBLIME – SMOKE 2 JOINTS&lt;/div&gt;&lt;div&gt;SUBLIME – WHAT I GOT&lt;/div&gt;&lt;div&gt;SUBLIME – WRONG WAY&lt;/div&gt;&lt;div&gt;THE CALLING – WHEREVER YOU WILL GO&lt;/div&gt;&lt;div&gt;THE CURE – JUST LIKE HEAVEN&lt;/div&gt;&lt;div&gt;THE FLYS – GOT YOU&lt;/div&gt;&lt;div&gt;THE STROKES – LAST NIGHT&lt;/div&gt;&lt;div&gt;THIRD EYE BLINE – SEMICHARMED&lt;/div&gt;&lt;div&gt;UNWRITTEN LAW – SEEIN RED&lt;/div&gt;&lt;div&gt;VIOLENT FEMMES – BLISTER&lt;/div&gt;&lt;div&gt;WEEZER – BEVERLY HILLS&lt;/div&gt;&lt;div&gt;WEEZER – ISLAND IN THE SUN&lt;/div&gt;&lt;div&gt;WEEZER – PERFECT SITUATION&lt;/div&gt;&lt;div&gt;WEEZER – SAY IT AIN’T SO&lt;/div&gt;&lt;div&gt;WEEZER – SWEATER&lt;/div&gt;&lt;div&gt;WHITE STRIPES – 7 NATION ARMY&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/17598274-1842939875162706408?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/1842939875162706408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2009/04/one-night-gig-set-list.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/1842939875162706408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/1842939875162706408'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2009/04/one-night-gig-set-list.html' title='One-night gig: set-list'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-7397204938210506466</id><published>2009-04-01T11:06:00.004+10:00</published><updated>2009-04-01T14:45:58.623+10:00</updated><title type='text'>One night gig - my birthday playlist</title><content type='html'>&lt;div&gt;So I've got a birthday coming up at the end of the month.  And while I'm not normally all about celebrating the occasion personally (I've always found it odd how my parents do things for me instead of the other way around, considering they gave me life), I'm hoping to ring in my 35th year of existence by gigging with someone.  Anyone.  As long as they can play.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So while I dust off my dexterity and try to get my chops back up to their proper shredding form, here's my tentative working setlist of what I'd like to perform:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Rush - Tom Sawyer&lt;/li&gt;&lt;li&gt;Metallica - Master of Puppets&lt;/li&gt;&lt;li&gt;Still Got the Blues for You - Gary Moore&lt;/li&gt;&lt;li&gt;Ozzy Osbourne - Bark at the Moon&lt;/li&gt;&lt;li&gt;Dokken - In My Dreams&lt;/li&gt;&lt;li&gt;Kiss - Hide Your Heart&lt;/li&gt;&lt;li&gt;Kajagoogoo - Too Shy Shy&lt;/li&gt;&lt;li&gt;Asia - Heat of the Moment&lt;/li&gt;&lt;li&gt;Nelson - Only Time Will Tell&lt;/li&gt;&lt;li&gt;Queensryche - Eyes of A Stranger&lt;/li&gt;&lt;li&gt;Yngwie Malmsteen - You Don't Remember, I'll Never Forget&lt;/li&gt;&lt;li&gt;Lynryd Skynyrd - Gimme Three Steps&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;I'm still fortunate to have a few cats in the music scene who call me friend, so we'll see about who's daring enough to give me a shot.  I'd consider it a great birthday gift to just share the stage with talented players who enjoy this stuff as much as I do.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you can make it out that night, do try - I may rock, I may fall flat on my face.  But it'll be fun...for all of us.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-7397204938210506466?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/7397204938210506466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2009/04/one-night-gig-my-birthday-playlist.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/7397204938210506466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/7397204938210506466'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2009/04/one-night-gig-my-birthday-playlist.html' title='One night gig - my birthday playlist'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-1383398517936784896</id><published>2009-03-14T10:42:00.006+10:00</published><updated>2009-03-16T09:35:49.324+10:00</updated><title type='text'>Introducing...Twitter Tactics!</title><content type='html'>I had a conversation recently with a local friend on Guam who's a fairweather 'netizen, and as such a modest user of social apps.  She's happily on Facebook, so when I asked her why I couldn't find her on Twitter, "Oh, I can't do that one...it's way too hard!" was her shocking reply.  This galvanized my motivation to start work on a tiered series of services for locals to use the platform.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I want to interactively show people how to REALLY use Twitter.  Like in ways you've probably never heard of.  Like in ways that would blow your mind.  Like in ways that can streamline your operations.  Like in ways that can make you money.  (Yes, Twitter.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So &lt;a href="http://www.wymesei.com/"&gt;Will&lt;/a&gt; and I have cobbled together and refined a framework of ideas that we're collectively calling &lt;a href="http://jasonsalas.com/twittertactics/overview.pdf"&gt;Twitter Tactics&lt;/a&gt;.  The capstone is an interactive 1-day workshop with distinct tracks for beginners and advanced users, showing you how to get the most out of micromessaging.  Here's the premise of our objectives:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Make Twitter-via-texting work for Guam users&lt;/span&gt;.  Because Guam's SMS infrastructure and carrier interoperability with web-based services nearly never work as designed (Twitter included), we've taken it upon ourselves to develop a custom gateway to facilitate users posting tweets to their account via text messaging.  This would work exactly the same as other international users.&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Offer a downloadable topic track bot for BlackBerry&lt;/span&gt;.  Because of legal limitations, the iPhone hasn't officially dropped on Guam yet.  So with RIM's BlackBerry being the dominant smartphone locally, we're going to hack a mobile service that watches Twitter's stream of messages on your behalf and tracking topics you specify.  When matching messages are posted by any other Twitter user - even those you're not following - you get the tweet pushed to your handset...in real-time!  It's a really cool way to stay informed of the things that interest you, discover new people and make friends based on shared interests.  And because we're open source advocates, the app's free to download with the source code being totally extensible.  And despite the fact that these high-end mobile phones are admittedly in pretty small deployment (several hundred at the moment, at best), users with iPod Touches, Internet-aware applicances and/or legacy cellular devices can still interact via SMS, as noted above.&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Host a two-phase workshop&lt;/span&gt;.  Why would anyone want to attend a training session in informing people of their status?  That's precisely the point: the Twitter ecosystem goes way deeper than just telling people what you're doind, and we want to show you.  The Beginning Course deals with all activities from signup-to-signin, customizing the UI, Twitter etiquette, growing your followerbase and more.  The Advanced Course is for power users who want to take their game to the next level, integrate platforms, build custom micromessaging clients, and really explore the platform.  We'll also show businesses, government and organizations how to use micromessaging productively for their operations.  The whole session will be 100% interactive, with the facility having totally free Wi-Fi and liveblogging, shooting/streaming video, sharing, texting and crowdsourcing all highly encouraged throughout the event.  Because again, that's the nature of social networking.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;So that's it.  My muse saw fit to slap me upside the head with this gem earlier in the week, and it all came together in about an hour over McNuggets.  Building the whole thing out's going to be fun...but not as fun as helping connect people with technology and seeing how they use it for themselves.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We'll both be posting our progress through the phases of the project.  Here we go!&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;a href="http://jasonsalas.com/twittertactics/overview.pdf"&gt;Read/comment on the overview of Twitter Tactics&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&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/17598274-1383398517936784896?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/1383398517936784896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2009/03/introducingtwitter-tactics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/1383398517936784896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/1383398517936784896'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2009/03/introducingtwitter-tactics.html' title='Introducing...Twitter Tactics!'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-7330942608394824649</id><published>2009-03-04T23:28:00.005+10:00</published><updated>2009-03-05T23:06:56.349+10:00</updated><title type='text'>The curious case of the Real-Time Web</title><content type='html'>&lt;a href="http://econsultancy.com/blog/3364-why-the-real-time-web-isn-t-really-important"&gt;eConsultancy's got&lt;/a&gt; a really intriguing article denouncing the need for a real-time web.&lt;span&gt;  &lt;/span&gt;I very much enjoyed it and the author's stance is certainly valid, undoubtedly &lt;a href="http://vanelsas.wordpress.com/2009/03/03/why-the-real-time-web-isnt-important/"&gt;shared by many&lt;/a&gt;.&lt;span&gt;  &lt;/span&gt;It's led to several &lt;a href="http://ourdoings.com/ourdoings-startup/2009-03-03"&gt;passionate responses&lt;/a&gt; within the blogosphere.&lt;span&gt;  &lt;/span&gt;&lt;p&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Ever the contrarian, I'd like to speak in defense of real-time online experiences (to be understood as those involving the Web, desktop applications, mobile devices, e-mail, RIAs, texting, instant messaging, Internet-aware appliances and otherwise), shedding light on why the direction we all know the delivery of content and information is inevitably heading is so critical.&lt;span&gt;  &lt;/span&gt;I'm speaking specifically from the perspective of the broadcast news industry, as ours is a perfect case study to prove the worth of such systems such that other lines of work might follow suit with their own respective implementations.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;u style="text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Very necessary&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;I'm highly in support of ushering-in push-based methods of delivering content to user at a near-real-time pulse.&lt;span style=""&gt;  &lt;/span&gt;I'll admit my selfishness: working in a multiplatform/multimedia/multidevice business that's more and more these days predicated on responsiveness over authoritativeness, credibility has taken a backseat to time-to-market.&lt;span style=""&gt;  &lt;/span&gt;So if someone else out there has stuff to tell people - a direct rival news source, a citizen journalist with a devout following, or simply a (micro)blogger - they're taking away eyeballs that I could have.&lt;span style=""&gt;  &lt;/span&gt;They're cutting into my attentionspace.&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;If I've got content to distribute, it's not enough anymore for me to update my site and expect people to manually browse to it, or to send out news alerts and only after people check their messaging accounts expect them to flock, or wait for their feedreaders to modify their subscriptions.&lt;span&gt;  &lt;/span&gt;I've got stuff and I need to let you know as quickly as I can, lest you find out from someone else.&lt;span&gt;  &lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Such is the sense of urgency with which we in the news game have to operate, because it's better for competition, better for the user and better for the technological landscape overall.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;u style="text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Why the lag?&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;To date there's always been an acceptable disconnect in communicating online, so much so that such latency has sadly become accepted as the norm.&lt;span style=""&gt;  &lt;/span&gt;This was largely because of a lack of supporting infrastructure over which to send/receive data - available bandwidth, affordable consumer technology, meager public awareness, and the Internet being a medium confined to desktop-only access - in addition to the event-dependent request/response nature of HTTP.&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Even the traditional mechanism of "evolving platforms" like notifications via SMS and e-mail are still subject to a lag that the unwashed masses tolerate.&lt;span&gt;  &lt;/span&gt;Think about the Answering Machine Analogy: how inconvenient and difficult would it be if every phone conversation you engaged in saw you and your distant-end party exchange messages exclusively over voicemail?&lt;span&gt;  &lt;/span&gt;The staggered nature of such communications is ridiculous, and yet we're happy with doing just that via e-mail.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Today we're getting close - very close - to mirroring the experience of actual human conversation.&lt;span&gt;  &lt;/span&gt;And this needs to be seen by society as (1) an augmenting option to the static retrieval process of information we're used to, and (2) a good and positive thing.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;u style="text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;The game's a-changin'&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;As a user, if I can be informed about a developing event the source matters less to me than in years past.&lt;span style=""&gt;  &lt;/span&gt;I don't put so much value anymore on whether whoever authored a report or posted a thought that's 140 characters or less has won an Emmy or Pulitzer Prize.&lt;span style=""&gt;  &lt;/span&gt;It's the nature of being informed that I'm after.&lt;span style=""&gt;  &lt;/span&gt;If I want the full details about a report, &lt;a href="http://jasonsalas.com/2009/01/you-and-us-collaboratively-reporting.html"&gt;&lt;span class="Apple-style-span" style="text-decoration: none;"&gt;I'll seek out the offering&lt;/span&gt;&lt;/a&gt; from an established leader.&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;CNN no longer holds a monopoly on controlling what people know about the world.&lt;span&gt;  &lt;/span&gt;And more importantly, when they know it.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;To the ad hominem challenge of user-generated content: there's always going to be a market for well-produced information products...assuming the mainstream media gets its act together and stays proactive to compete with grassroots applications while leveraging the quality composition and credibility its known for.&lt;span&gt;  &lt;/span&gt;To date, that's not largely been the case.&lt;span&gt;  &lt;/span&gt;Corporate media powerhouses, newspapers in particular, have traditionally displayed a hubris towards emerging technologies that's let them fall several lengths behind the rest of the field.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;u style="text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;! GEEK ALERT !&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;Asynchronously pushing content to subscribed users, an evolved method of the traditional interval-based polling technique used across online properties, is THE pattern developers are salivating over these days.&lt;span style=""&gt;  &lt;/span&gt;&lt;a href="http://jasonsalas.com/2009/02/web-hooks-xmpp-right-tool-for-right-job.html"&gt;&lt;span class="Apple-style-span" style="text-decoration: none;"&gt;XMPP is a well-defined&lt;/span&gt;&lt;/a&gt;, established, flexible technology stack that avoids the inefficiencies of making unnecessary repeat system roundtrips that are at best highly wasteful of network resources and at worst an emulated DDoS attack.&lt;span style=""&gt;  &lt;/span&gt;Expect a lot of mainstream traction in this space.&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Granted, filtering posts through the Twitter Search API via a client-side track bot is a technical process that's not exactly easy for the layman to grasp, much less setup.&lt;span&gt;  &lt;/span&gt;So there's much work ahead in terms of making the tools easy to use to achieve this experience.&lt;span&gt;  &lt;/span&gt;We faced the same challenges five years ago when podcasting really took off in the technical substrate, with a solution needed &lt;a href="http://jasonsalas.com/2005/12/in-memoriam-podcast-specification.html"&gt;to make single-click subscription to RSS feeds&lt;/a&gt; a reality to open up the platform to the greater worldwide community.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;But the groundwork's been laid and the technology exists to make it possible.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;I also see people retrofitting real-time delivery models within existing platforms beyond the World Wide Web.&lt;span&gt;  &lt;/span&gt;The perfect candidate for such migration is e-mail, that tried-and-true killer app.&lt;span&gt;  &lt;/span&gt;Once you've drank from the real-time well, waiting around for messages to be aggregated and downloaded is a nuisance, as you're now cognizant of the fact that you're not truly reading notes as they're being sent to you.&lt;span&gt;  &lt;/span&gt;I've spoken to a developer who's planning to embed the open source Jabber engine within a custom SMTP transport for delivery of electronic mail, sans delay.&lt;span&gt;  &lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;The demand for real-time mail clients, in addition to a call for &lt;a href="http://www.defuze.org/archives/163-is-xmpp-for-the-web-ready.html"&gt;XMPP support within browsers&lt;/a&gt;, is going to thrive.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;u style="text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;How about the Mothership?&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;Another perspective to consider is that of Google, the bastion of all things Internet-related.&lt;span style=""&gt;  &lt;/span&gt;Their main search index has been chastised for &lt;a href="http://www.readwriteweb.com/archives/sorry_google_you_missed_the_real_time_web.php"&gt;not being "real-time friendly"&lt;/a&gt;, only listing stored documents in the historical Web.&lt;span style=""&gt;  &lt;/span&gt;But consider what the company did years ago when launching Google News.&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;The pilot project crawled a distinct subset of networks, affiliates and news services so rapidly it was able to provide results mere minutes after its network of publishers updated their sites with new content.&lt;span&gt;  &lt;/span&gt;The trend we're now seeing is that the company is starting to leverage that innovation towards the Web at-large, timestamping new pages it crawls not too long after they've been added online.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Google could also conceivably incorporate real-time notifications into Gmail, building out an XMPP architecture supporting pushed alerts triggered by the presence of newly-arrived messages. And &lt;a href="http://mt-hacks.com/20090302-realtime-twitter-search-results-on-google.html"&gt;a new Firefox add-on&lt;/a&gt; is all the rage at the moment, displaying tweets related to Google search queries in quasi-real-time.&lt;span&gt;  &lt;/span&gt;So the demand for real-time information is certainly there.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Each of these concepts, applied at Google's scale, has huge implications.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;&lt;u style="text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;And my point is...?&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;In short, the Web is becoming what it's never been before - a helluva lot faster.&lt;span style=""&gt;  &lt;/span&gt;This is meaningful because it could be the first major form of media to achieve multi-format interactivity at a near-synchronized rate.&lt;span style=""&gt;  &lt;/span&gt;This is a larger achievement than most realize and are willing to accept.&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;So here's the long and the short of it all: if real-time experiences aren't your cup of tea, that's fine.&lt;span&gt;  &lt;/span&gt;Such will function as a valuable extension of the current method of disseminating information.&lt;span&gt;  &lt;/span&gt;There's work ahead that we in the development community have cut out for ourselves in building tools to filter data coming across the wire so that people can only get what they want, or people not interested in such processes at all won't be bothered.&lt;span&gt;  &lt;/span&gt;The World Wide Web will continue to exist as society's largest repository of historical data, replete with tools to search, filter, discover and create content.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;The Web's IP-based cousins will continue to support their own methods of managing the data you crave so desperately, with IM getting a particular share of the limelight.&lt;span&gt;  &lt;/span&gt;It's nabbing items coming down the pike and doing neat things with them that's the impetus of so much interest here.&lt;span&gt;  &lt;/span&gt;Moving towards delivering content in near-real-time is a natural evolution of the Web as we know it.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;We all knew it was heading this way.&lt;span&gt;  &lt;/span&gt;So integrate it, love it, oppose it, ignore it, or fall head over heels for it - just don't deny it a place at the table.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;**UPDATE**&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Just mere hours after posting this article, &lt;a href="http://money.cnn.com/news/newsfeeds/gigaom/big-tech/2009_03_04_twitter_vs_facebook_real_time_web.html"&gt;Facebook announced&lt;/a&gt; their low-latency web updates capabilities, and big revelations were made &lt;a href="http://www.archive.org/details/DrupalconDc2009-DrupalWithXmppIntegration"&gt;at DrupalCon&lt;/a&gt; in regards to XMPP support.  Now with major players behind them, more people will hopefully be exposed to the benefits of instantaneous data, and begin to get it.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-7330942608394824649?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/7330942608394824649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2009/03/curious-case-of-real-time-web.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/7330942608394824649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/7330942608394824649'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2009/03/curious-case-of-real-time-web.html' title='The curious case of the Real-Time Web'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17598274.post-8457416486088926937</id><published>2009-03-04T21:34:00.000+10:00</published><updated>2009-03-04T21:36:02.538+10:00</updated><title type='text'>7 Questions for Tourneytopia</title><content type='html'>&lt;div&gt;&lt;a href="http://www.tourneytopia.com/"&gt;Tourneytopia&lt;/a&gt;, a company out of Grand Rapids, Michigan, produces an ASP.NET control and a hosted application that manages and provides alerts for sports tournaments and other types of bracket-based data. The service is incredibly flexible and customizable, providing numerous options in letting developers and users track their teams in applications like the NCAA College Basketball March Madness tournament, poker, battles of the bands, Wimbledon, and more.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lead developer &lt;a href="http://www.rosscode.com/blog/index.php"&gt;Joel Ross&lt;/a&gt; talked with me about how his idea has progressed over the years.&lt;/div&gt;&lt;hr /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;1. &lt;a href="http://www.tourneylogic.com/"&gt;Early versions&lt;/a&gt; of your custom server control leveraged a ton of JavaScript to manage the progression of teams advancing or eliminated from a tournament. What steps have you made to ease the top-heavy payload on the client, or is this even an issue? &lt;/span&gt;&lt;/div&gt;&lt;div&gt;We've had exactly 0 complaints about the heavy usage of Javascript with the &lt;a href="http://www.tourneylogic.com/Products/BracketControl/default.aspx"&gt;Tourney Bracket Control&lt;/a&gt;. The biggest complaint we got early on was that it was slow. We alleviated a lot of that when we moved to a div-based layout in Version 2. The Javascript was also moved to an external resource, so it gets cached now. Surprisingly, the Javascript hasn't had a significant change since we first wrote it. We've considered revamping it with jQuery, but it's tough to justify a huge change like that when the current method works so well. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;2. From personal experience, mapping out an abstract programmatic framework for sports applications is tough, given the variations in rules, formats, scoring, etc. How did you take a generic approach to developing a control that's applicable in so many different venues? Can Tourneytopia tackle the headaches of double-round-robin formats?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Our biggest task early on with the Tourney Bracket Control was to figure out how brackets can be built based solely from the number of teams involved. Building in that flexibility was time-consuming and painful, but doing it right up-front has paid dividends - without it, we would never have been able to handle the tournaments that The Tennis Channel runs - they have brackets with 48, 64, 96, and 128 players. So far, we haven't ventured away from bracket-based contests, so the round robin formats are out right now. There hasn't been a lot of demand for us to deviate, so we haven't. That's not to say we're against branching out - a confidence pool is something we're strongly considering adding over the summer.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;3. One of your first high-profile clients was Playboy.com. What did the exposure do for your business, and what's been the most-requested feature from customers and users to this point?&lt;/span&gt; &lt;/div&gt;&lt;div&gt;Actually, Playboy.com was our very first paying customer. Being able to prominently highlight them on our website immediately established us as a reputable company. Regardless of your thoughts about what Playboy produces, they are a well-known brand and if they're willing to put their name on something, it gives people confidence in that service. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;4. What version of the .NET Framework is Tourneytopia running as its codebase now, and what were the most dramatic and/or challenging aspects of migrating through the various phases of Microsoft's platforms?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Tourneytopia runs on .NET 3.5 with a SQL Server 2005 back-end. It actually started as a classic ASP application written to manage the office pool where &lt;a href="http://tourneylogic.com/Blogs/brian/"&gt;Brian&lt;/a&gt;, my business partner, and I both worked. Before launching Tourney Logic, we ported it to ASP.NET. At one point, it was a redistributable application that anyone could install on their own servers. Publishing a software package turned out to be a major challenge, and after a couple of years, we turned it into a hosted service. Switching from a system that was meant to run a single pool to one that could handle thousands of pools was a pretty big change for us. We learned a lot about scaling applications - we're still learning, actually!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;5. Conventional logic (or just blind assumption) leads me to believe that you're heading towards implementing Web 2.0 principles and make your service applicable to mobile users with a serious social slant. Your thoughts?&lt;/span&gt; &lt;/div&gt;&lt;div&gt;Thanks to &lt;a href="http://jasonsalas.com/2009/02/web-hooks-xmpp-right-tool-for-right-job.html"&gt;you pointing out&lt;/a&gt; &lt;a href="http://webhooks.org"&gt;Web Hooks&lt;/a&gt; to us, we're looking at what it will take to let our users use our services in their own applications. We've eyed a Facebook application for Tourneytopia for a while, and adding a mobile interface has been on our roadmap for a long time. For both Brian and I, this is an evening and weekend gig, so our biggest issue is finding the time and prioritizing what we want to get done.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;6. Aside from the primary target audience, have your customers retrofitted your control in other industries or applications, like political events, family trees, etc.?&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal; "&gt;We actually were contacted this week about using Tourneytopia for a gubenatorial election contest, and we've had a few radio stations run "Battle of the Bands" contests. Someone used myPlayoffs.com to run a "Best Movie" bracket, as well. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;7. With the UI being historically rendered HTML, have you considered evolving the UI for Tourneytopia to be a richer client, say, one based on Silverlight or Flash? &lt;/span&gt;&lt;/div&gt;&lt;div&gt;Given that we're both primarily .NET developers, Silverlight would be the natural progression for us. I'd love to see a much more interactive bracket with a Silverlight UI, but at this point, the penetration is a bit low, and again, time is our enemy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks Joel, and good luck!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Past interviews:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://jasonsalas.com/2009/02/7-questions-for-jeff-lindsay-of.html"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;7 Questions for Jeff Lindsay on Web Hooks&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://jasonsalas.com/2009/02/7-questions-for-notifixious.html"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;7 Questions for Notifixious&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17598274-8457416486088926937?l=www.jasonsalas.com%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/8457416486088926937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.jasonsalas.com/2009/03/7-questions-for-tourneytopia.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/8457416486088926937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17598274/posts/default/8457416486088926937'/><link rel='alternate' type='text/html' href='http://www.jasonsalas.com/2009/03/7-questions-for-tourneytopia.html' title='7 Questions for Tourneytopia'/><author><name>Jason Salas</name><uri>http://www.blogger.com/profile/05528741938889827742</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17899332214438342141'/></author><thr:total>0</thr:total></entry></feed>