
{"id":69,"date":"2005-01-11T21:09:00","date_gmt":"2005-01-11T21:09:00","guid":{"rendered":"http:\/\/www.starcoder.com\/wordpress\/?p=7"},"modified":"2021-10-30T20:05:59","modified_gmt":"2021-10-30T20:05:59","slug":"xrg-11-released","status":"publish","type":"post","link":"https:\/\/www.starcoder.com\/wordpress\/2005\/01\/xrg-11-released\/","title":{"rendered":"XRG 1.1 released"},"content":{"rendered":"<p><a href=\"http:\/\/www.gauchosoft.com\/xrg\/\">XRG 1.1<\/a> was released this morning. I thought I&#8217;d try out releasing the same day as the MacWorld keynote just to see how it goes. So far, it&#8217;s been going really well or horrible, depending on how you look at it.<\/p>\n<p>The good part is that about 1200 copies of XRG have been downloaded during the past 6 hours.  The bad part is that I severely under-estimated the amount of bandwidth required when doing a software release (hmm, 1200 * 1.2Mb\/copy = 1.44Gb + normal web traffic).  Since the beginning, I&#8217;ve hosted the XRG web site on my own machine, and offered the XRG downloads from a machine at Ephibian.  This was never a problem, and my web server (at the time on a 40K\/sec uplink) always had plenty of bandwidth to spare, so I thought that hosting both the site and the downloads in-house on a 90K\/sec uplink would work out well.  Oh was I ever wrong.  Within an hour of releasing, my connection was completely saturated and the server was handling over 90 connections concurrently.   The network connection remained pegged for about 4 hours after that, and has only now started to trickle down a bit.<\/p>\n<p>At first, I couldn&#8217;t think of any way to handle it and thought I was pretty much screwed, then I thought of a few things that helped out a bit.  The first thing I did was set up a download mirror back on the old web server with a 40K\/sec uplink.  This helped less than I thought it would because, unfortunately, not too many people choose to download from a mirror site.  The second thing I did was turn off my web log analyzer, not because it was taking too much CPU (actually, the server never broke a sweat really), but because I have the analyzer configured to do DNS lookups on the IPs that hit the server so I can see a pretty graph on where people are coming from throughout the world. \ud83d\ude42  Usually, the analyzer runs every 2 hours, but I figured it could wait for awhile.  This ended up helping more than I thought it would; I guess the number of DNS connections made would have been pretty high.  This probably benefited the web page traffic the most, since a reduced number of connections on the network would improve the speed of short-term network connections dramatically.<\/p>\n<p>So the lesson of the day is:  If you release a software application, make sure you store the download(s) with a good hosting provider.  I suppose the benefit of today&#8217;s events is that I&#8217;ll know this when releasing an application that I&#8217;ll actually be charging for. \ud83d\ude42  I&#8217;ll probably post a followup blog entry on the release in a few days.<\/p>\n<p>PS:  <a href=\"http:\/\/www.apple.com\/macmini\/\">MacMini<\/a>? Sweeeeet&#8230; If I would have had this choice a few months ago my computer purchase would have been a lot more difficult. A compile farm of about 5-6 of these things would probably work faster than my 2.5Ghz G5 could chug through compiling apps. And then there would have been the numerous possibilites&#8230; 2Ghz G5 + MiniMac, or 1.8Ghz G5 with 2 MiniMacs, etc. Maybe it&#8217;s better I did buy my computer before these came out. \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>XRG 1.1 was released this morning. I thought I&#8217;d try out releasing the same day as the MacWorld keynote just to see how it goes. So far, it&#8217;s been going really well or horrible, depending on how you look at it. The good part is that about 1200 copies of XRG have been downloaded during [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-69","post","type-post","status-publish","format-standard","hentry","category-uncategorized","post-preview"],"_links":{"self":[{"href":"https:\/\/www.starcoder.com\/wordpress\/wp-json\/wp\/v2\/posts\/69","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.starcoder.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.starcoder.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.starcoder.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.starcoder.com\/wordpress\/wp-json\/wp\/v2\/comments?post=69"}],"version-history":[{"count":1,"href":"https:\/\/www.starcoder.com\/wordpress\/wp-json\/wp\/v2\/posts\/69\/revisions"}],"predecessor-version":[{"id":721,"href":"https:\/\/www.starcoder.com\/wordpress\/wp-json\/wp\/v2\/posts\/69\/revisions\/721"}],"wp:attachment":[{"href":"https:\/\/www.starcoder.com\/wordpress\/wp-json\/wp\/v2\/media?parent=69"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.starcoder.com\/wordpress\/wp-json\/wp\/v2\/categories?post=69"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.starcoder.com\/wordpress\/wp-json\/wp\/v2\/tags?post=69"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}