<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Versatile Monkey Blog &#187; Uncategorized</title>
	<atom:link href="http://www.versatilemonkey.com/blog/index.php/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.versatilemonkey.com/blog</link>
	<description>Random Stuff About Software Development</description>
	<lastBuildDate>Fri, 25 Mar 2011 20:11:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Anatomy of a slashdotting</title>
		<link>http://www.versatilemonkey.com/blog/index.php/2009/07/03/anatomy-of-a-slashdotting/</link>
		<comments>http://www.versatilemonkey.com/blog/index.php/2009/07/03/anatomy-of-a-slashdotting/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 22:43:59 +0000</pubDate>
		<dc:creator>marwatk</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.versatilemonkey.com/blog/?p=9</guid>
		<description><![CDATA[Well, it&#8217;s been a little under two weeks since I made the front page of slashdot. What did the traffic look like? Well, here&#8217;s the week before:
Around 300 hits per day on average. Here&#8217;s the slashdotting:
10,000 hits the half day it hit, and about 18,000 the day after. About 60 times my normal traffic. But, [...]]]></description>
			<content:encoded><![CDATA[<p>Well, it&#8217;s been a little under two weeks since I made the front page of slashdot. What did the traffic look like? Well, here&#8217;s the week before:</p>
<div class="wp-caption alignnone" style="width: 698px"><img title="Visits pre-slashdot" src="http://www.versatilemonkey.com/graphs/visits1.png" alt="Visits pre-slashdot" width="688" height="161" /><p class="wp-caption-text">Visits pre-slashdot</p></div>
<p>Around 300 hits per day on average. Here&#8217;s the slashdotting:</p>
<div class="wp-caption alignnone" style="width: 700px"><img title="Visits post-slashdot" src="http://www.versatilemonkey.com/graphs/visits2.png" alt="Visits post-slashdot" width="690" height="171" /><p class="wp-caption-text">Visits post-slashdot</p></div>
<p>10,000 hits the half day it hit, and about 18,000 the day after. About 60 times my normal traffic. But, what did people visit?</p>
<div class="wp-caption alignnone" style="width: 745px"><img title="Slashdotting Content" src="http://www.versatilemonkey.com/graphs/content.png" alt="Slashdotting Content" width="735" height="865" /><p class="wp-caption-text">Slashdotting Content</p></div>
<p>The vast majority just read the story, as I expected. But, traffic on other pages was up as much as 200%. The OTA traffic, though, where people would actually download PodTrapper only saw a 32% increase, even with all that traffic. The new trial users looked like this:</p>
<div class="wp-caption alignnone" style="width: 784px"><img title="Slashdot Impact on Trial User Count" src="http://www.versatilemonkey.com/graphs/slashdot_trial.png" alt="Slashdot Impact on Trial User Count" width="774" height="399" /><p class="wp-caption-text">Slashdot Impact on Trial User Count</p></div>
<p>So while slashdot drove a lot of traffic, it had near zero immediate impact on trial user counts.  Interesting.</p>
<p>I haven&#8217;t had a chance to do any thorough analysis, mostly because I&#8217;m not sure what kind of analysis would have value. If there are any numbers you&#8217;d like to see let me know in the <a href="http://www.versatilemonkey.com/forums/">forums.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.versatilemonkey.com/blog/index.php/2009/07/03/anatomy-of-a-slashdotting/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Networking Helper Class</title>
		<link>http://www.versatilemonkey.com/blog/index.php/2009/06/24/networking-helper-class/</link>
		<comments>http://www.versatilemonkey.com/blog/index.php/2009/06/24/networking-helper-class/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 01:20:05 +0000</pubDate>
		<dc:creator>marwatk</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.versatilemonkey.com/blog/?p=3</guid>
		<description><![CDATA[Enough users asked for help with networking after reading PodTrapper&#8217;s story that I decided to put something together to help with it.
This is the result. (This is the content of the class level javadoc, see the source for more information).
HttpConnectionFactory.java
This class aims to simply HTTP requests on the BlackBerry platform. Use of this class will [...]]]></description>
			<content:encoded><![CDATA[<p>Enough users asked for help with networking after reading <a href="http://www.versatilemonkey.com/story.html">PodTrapper&#8217;s story</a> that I decided to put something together to help with it.</p>
<p>This is the result. (This is the content of the class level javadoc, see <a href="http://www.versatilemonkey.com/HttpConnectionFactory.java">the source</a> for more information).</p>
<p><a href="http://www.versatilemonkey.com/HttpConnectionFactory.java">HttpConnectionFactory.java</a></p>
<p>This class aims to simply HTTP requests on the BlackBerry platform. Use of this class will require signing your application using RIM supplied signing keys.</p>
<p>The BlackBerry platform provides a multitude of different transports for network access. These include WiFi, BES, BIS, WAP2 and Direct TCP.</p>
<p>Not all transports are available on all devices, carriers or service plans. Ordinarily an application must determine on its own which transports are available for a given device, and attempt to connect via them in order. Sample use:</p>
<pre><code> HttpConnectionFactory factory = new HttpConnectionFactory(
    "http://www.versatilemonkey.com/test.txt",
    HttpConnectionFactory.TRANSPORT_WIFI | HttpConnectionFactory.TRANSPORT_BES );
 while( true ) {
    try {
       HttpConnection connection = factory.getNextConnection();
       try {
          connection.setRequestMethod( "POST" );
          connection.setRequestProperty(
                 "Content-type",
                 "application/x-www-form-urlencoded" );
          OutputStream os = connection.openOutputStream( );
          os.write( "foo=bar&amp;var2=val2".getBytes() );
          os.close();
          InputStream is = connection.openInputStream();
          //do something with the input stream
          if( whatever we did worked ) {
             break;
          }
       }
       catch( IOException ) {
          //Log the error or store it for displaying to
          //the end user if no transports succeed
       }
    }
    catch( NoMoreTransportsException e ) {
       //There are no more transports to attempt
       Dialog.alert( "Unable to perform request" ); //Note you should never
                              //attempt network activity on the event thread
       break;
    }
 }
 </code></pre>
<p>It is possible that an HttpConnection returned by getNextConnection will fail in a method undetectable before attemping the request.</p>
<p>Notes about the various transports from my experience:</p>
<p><strong>Wifi:</strong></p>
<p>Wifi is the least cost to the user and is also the fasted by orders of magnitude</p>
<p><strong>BES/BIS:</strong></p>
<p>- These are largely the same, except BES goes through the user&#8217;s corporate network and may be subject to corporate firewalls</p>
<p>- BES/BIS are generally offered as unlimited use to anyone with a BlackBerry specific data plan</p>
<p>- There is usually a limit imposed on the size of files that can be retrieved (usually 5mb, but can be as low as 100kb)</p>
<p><strong>Direct TCP and WAP2:</strong></p>
<p>- These transports use carrier data plans which are sometimes billed at the same rate as BES/BIS, but sometimes are billed  separately. It is possible for users to be on unlimited data plans via BES/BIS but be charged per MB for TCP and WAP2. I  have never seen the reverse, however.</p>
<p>- Some carriers do not have limits on the file size, others will timeout if you request a file over their limit (instead of a 413 error or similar)</p>
<p>- Some carriers have intermediary proxies that will alter the content of returned files (wrapping them in carrier specific content, for example)</p>
<p>Good luck, I hope this makes networking on BlackBerry easier for you.</p>
<p><a href="http://www.versatilemonkey.com/HttpConnectionFactory.java">Download the source</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.versatilemonkey.com/blog/index.php/2009/06/24/networking-helper-class/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
	</channel>
</rss>
