<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-23399435</id><updated>2011-04-21T13:43:48.365-07:00</updated><category term='apache'/><category term='ruby'/><category term='jsf'/><category term='REST'/><category term='mule'/><category term='ajax'/><category term='esb'/><category term='efficiency'/><category term='soa'/><category term='inflation'/><category term='web services'/><category term='mvc'/><category term='garbage collector'/><category term='economics'/><category term='GC.start'/><category term='struts'/><category term='rails'/><category term='mongrel'/><category term='GC'/><category term='https'/><category term='marketing'/><category term='imagemagick'/><category term='rmagick'/><category term='peak oil'/><category term='wsajax'/><category term='memory leak'/><title type='text'>Brian Cochran's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://briancochran.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://briancochran.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Brian</name><uri>http://www.blogger.com/profile/09677438923530482718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-23399435.post-946389647615107710</id><published>2008-09-25T13:26:00.000-07:00</published><updated>2008-09-25T13:59:21.099-07:00</updated><title type='text'>VC Magnet</title><content type='html'>I own a small business that enables people to &lt;a href="http://createmycookbook.com/home"&gt;create and publish their own cookbook&lt;/a&gt;. Getting ready for the holiday season, I have been working hard on getting everybody to eliminate operational bottlenecks and introduce some new products. Some of those efforts have been stalled by various fulfillment companies who are unable to get credit to purchase the equipment needed. These are successful companies, not startups, with solid growth and a long history of cashflow who normally would have no problems getting a loan for this sort of thing.&lt;br /&gt;&lt;br /&gt;However, major banks have practically frozen lending to small businesses. In some cases, they are even advising these companies put their capital expenses on &lt;a href="http://money.cnn.com/2008/09/24/smallbusiness/small_biz_credit_freeze.smb/index.htm?postversion=2008092515  "&gt;credit cards&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As a VC I might see this as a golden opportunity. Solid risks are unable to get credit because of halt in interbank lending. Even if you are a successful business owner that has cringed at the idea of taking VC money in the past, you might just be willing to give up some equity rather than deal with some insane interest rates and panicked loan officer.&lt;br /&gt;&lt;br /&gt;Bad news for those of us in the startup world. This could flood the market with very attractive deals from solid risks and keep the VCs yawning whenever they see the caller-id from that early stage entrepreneur.&lt;br /&gt;&lt;br /&gt;But, I'm not a VC. What do you think.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23399435-946389647615107710?l=briancochran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://briancochran.blogspot.com/feeds/946389647615107710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23399435&amp;postID=946389647615107710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/946389647615107710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/946389647615107710'/><link rel='alternate' type='text/html' href='http://briancochran.blogspot.com/2008/09/vc-magnet.html' title='VC Magnet'/><author><name>Brian</name><uri>http://www.blogger.com/profile/09677438923530482718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23399435.post-3754628250222273812</id><published>2008-06-30T14:10:00.000-07:00</published><updated>2008-06-30T14:12:06.802-07:00</updated><title type='text'>Blackberry Curve</title><content type='html'>&lt;div style='text-align:center;margin:0px auto 10px;'&gt;&lt;a href='http://1.bp.blogspot.com/_QKHA7-f-V3w/SGlL1WU4rdI/AAAAAAAAAFQ/kidjgwOWjoA/s1600-h/IMG_0460.jpg'&gt;&lt;img src='http://1.bp.blogspot.com/_QKHA7-f-V3w/SGlL1WU4rdI/AAAAAAAAAFQ/kidjgwOWjoA/s320/IMG_0460.jpg' border='0' alt='' /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I recently purchased a BlackBerry curve, and I have to say I am impressed. As a skeptic migratingn from a Treo 700p, my assumptions about the lack of expandiblity and capabilities of the BlackBerry family of products have been blown away.&lt;br /&gt;&lt;br /&gt;I finally have a push email service with gmail (though unfortunatly not with the blackberry gmail client). &lt;br /&gt;&lt;br /&gt;The best part - the one day Verizon sale put the Curve in my pocket for $49.95 and dropped my data plan from $44.95 to $29.95 a month.&lt;div style='clear:both; text-align:CENTER'&gt;&lt;a href='http://picasa.google.com/blogger/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbp.gif' alt='Posted by Picasa' style='border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;' align='middle' border='0' /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23399435-3754628250222273812?l=briancochran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://briancochran.blogspot.com/feeds/3754628250222273812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23399435&amp;postID=3754628250222273812' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/3754628250222273812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/3754628250222273812'/><link rel='alternate' type='text/html' href='http://briancochran.blogspot.com/2008/06/blackberry-curve.html' title='Blackberry Curve'/><author><name>Brian</name><uri>http://www.blogger.com/profile/09677438923530482718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_QKHA7-f-V3w/SGlL1WU4rdI/AAAAAAAAAFQ/kidjgwOWjoA/s72-c/IMG_0460.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23399435.post-650337123892816186</id><published>2008-06-06T18:47:00.000-07:00</published><updated>2008-06-06T19:20:34.620-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='GC'/><category scheme='http://www.blogger.com/atom/ns#' term='memory leak'/><category scheme='http://www.blogger.com/atom/ns#' term='garbage collector'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='GC.start'/><category scheme='http://www.blogger.com/atom/ns#' term='imagemagick'/><category scheme='http://www.blogger.com/atom/ns#' term='rmagick'/><title type='text'>RAM, RMagick, and You</title><content type='html'>Two days before the release, I am looking at top and trying to figure out why my mongrel instances are growing wildly in RAM. Playing with &lt;code&gt;GC.start&lt;/code&gt; makes things a little better, but I just have some itch in me that tells me that might not be the best thing in the world to do. &lt;br /&gt;&lt;br /&gt;After isolating the problem to something having to do with ImageMagick I discover what appears to be the problem. RMagick is not releasing the memory allocated with &lt;code&gt;RMagick::ImageList.new&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;Apparently what happens is RMagick holds a little tiny reference to some great big chunk of ImageMagick's memory. Well the GC only recognizes a the reference (which is very small). &lt;br /&gt;&lt;br /&gt;Then I saw this very valuable &lt;a href="http://rubyforge.org/forum/forum.php?thread_id=1374&amp;forum_id=1618"&gt;post on RMagick&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;Turns out they have 'fixed' this by providing you the method &lt;code&gt;.destroy!&lt;/code&gt;. That did the trick and life is back to mostly normal. Just thought I'd write this up quickly as memory leaks are not fun to find, especially in ruby.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23399435-650337123892816186?l=briancochran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://briancochran.blogspot.com/feeds/650337123892816186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23399435&amp;postID=650337123892816186' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/650337123892816186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/650337123892816186'/><link rel='alternate' type='text/html' href='http://briancochran.blogspot.com/2008/06/ram-rmagick-and-you.html' title='RAM, RMagick, and You'/><author><name>Brian</name><uri>http://www.blogger.com/profile/09677438923530482718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23399435.post-3470384669282979706</id><published>2008-05-30T14:51:00.000-07:00</published><updated>2008-05-30T14:59:27.949-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='mongrel'/><category scheme='http://www.blogger.com/atom/ns#' term='https'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><title type='text'>HTTPS with Mongrel and Apache</title><content type='html'>Recently I was trying to configure my &lt;a href="http://railsmachine.com/"&gt;Railsmachine&lt;/a&gt; server for conditional http access. I was using something similar to &lt;a href="http://svn.rubyonrails.org/rails/plugins/ssl_requirement/"&gt;ssl_requirement&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;In this plugin there is the following call&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt; request.ssl?&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Of course behind apache this is returning false, even when the browser is using https. This happens because of mod_proxy.&lt;br /&gt;&lt;br /&gt;The solution is to set the X_FORWARDED_PROTO 'https' env=HTTPS&lt;br /&gt;&lt;br /&gt;HTTPS is an environment variable set in Apache (which versions I don't know)&lt;br /&gt;&lt;br /&gt;X_FORWARDED_PROTO makes rails understand the original protocol and &lt;em&gt;request.ssl?&lt;/em&gt; returns true where appropriate.&lt;br /&gt;&lt;br /&gt;In short, add the following to your httpd.conf&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;RequestHeader set X_FORWARDED_PROTO 'https' env=HTTPS&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23399435-3470384669282979706?l=briancochran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://briancochran.blogspot.com/feeds/3470384669282979706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23399435&amp;postID=3470384669282979706' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/3470384669282979706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/3470384669282979706'/><link rel='alternate' type='text/html' href='http://briancochran.blogspot.com/2008/05/https-with-mongrel-and-apache.html' title='HTTPS with Mongrel and Apache'/><author><name>Brian</name><uri>http://www.blogger.com/profile/09677438923530482718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23399435.post-4709978547225358927</id><published>2008-01-31T18:30:00.001-08:00</published><updated>2008-01-31T18:30:48.672-08:00</updated><title type='text'>Negative Political Bumper Sticker Contest</title><content type='html'>Candidates are about to start dropping like flies. Let's help them on their way. Create and share bumper stickers that slam US presidential candidates. Ceehive will get them made for you.&lt;br/&gt;&lt;br/&gt;&lt;a href='http://www.ceehive.com/contest/detail/87'&gt;read more&lt;/a&gt; | &lt;a href='http://digg.com/political_opinion/Negative_Political_Bumper_Sticker_Contest'&gt;digg story&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23399435-4709978547225358927?l=briancochran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://briancochran.blogspot.com/feeds/4709978547225358927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23399435&amp;postID=4709978547225358927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/4709978547225358927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/4709978547225358927'/><link rel='alternate' type='text/html' href='http://briancochran.blogspot.com/2008/01/negative-political-bumper-sticker.html' title='Negative Political Bumper Sticker Contest'/><author><name>Brian</name><uri>http://www.blogger.com/profile/09677438923530482718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23399435.post-725135106602462239</id><published>2007-12-01T23:42:00.000-08:00</published><updated>2007-12-01T23:43:00.509-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='peak oil'/><title type='text'>A Stupid Response to Peak Oil</title><content type='html'>Interesting article supporting your earlier claim.&lt;br /&gt;http://www.lifeaftertheoilcrash.net/&lt;br /&gt;&lt;br /&gt;I have not read the article in its entirety, but I must say that as I read it I got both scared and, at the same time, incredibly motivated by an expanding opportunity that may be heading our way.&lt;br /&gt;&lt;br /&gt;Can you imagine the amount of resources that would become available for alternative energy sources if people could no longer run their automobiles or data centers due to an energy crisis. I believe a crisis of this sort may very well bring economic hardship, but at the same time, a massive re-allocation of capital. Capital investment can fuel huge economic growth.&lt;br /&gt;&lt;br /&gt;You mentioned Black Tuesday in our conversation the other day in a comparison of what would happen with an oil peak. This historical crisis was the product of mass speculation and irresponsible lending to individuals investing in the stock market (most of which is now illegal). At least in the tech sector, I would say, that the market is far less speculative than it was during the .com's. Prices are based more on earnings than in most times of economic prosperity in the field. In a comparison with the Great Depression, an energy crisis might very well become a World War II.&lt;br /&gt;&lt;br /&gt;The area where I see some of the most speculative pricing is in the oil industry itself. Prices are high in  anticipation of a shortage to come; not one that is already here.&lt;br /&gt;&lt;br /&gt;The one area I am more fearful than any other is real estate.  The irresponsible lending of banks does echo something of a 1929 crash.  Mortgage brokers have been preying on the  irresponsible  lending  tendencies of  those wanting to  keep up with the Jones, and the banks have been playing along. That has already started to fall apart, as is evident with the write down's of huge amounts of loans. These incidents have lead to the recent firings of several CEOs (Citigroup for one, who's CEO lost 8 billion dollars within a year.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'm going to post this on my blog at the risk of looking like an idiot so I get some other perspectives. Kanda is my economic advisor and can tear me apart - which I encourage him to do. You hear that kanda. Move this conversation to http://briancochran.blogspot.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23399435-725135106602462239?l=briancochran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://briancochran.blogspot.com/feeds/725135106602462239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23399435&amp;postID=725135106602462239' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/725135106602462239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/725135106602462239'/><link rel='alternate' type='text/html' href='http://briancochran.blogspot.com/2007/12/stupid-response-to-peak-oil.html' title='A Stupid Response to Peak Oil'/><author><name>Brian</name><uri>http://www.blogger.com/profile/09677438923530482718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23399435.post-8971371229584463258</id><published>2007-10-17T07:40:00.000-07:00</published><updated>2007-10-17T08:28:52.643-07:00</updated><title type='text'>Contests: Pop Culture Contests vs. Creative</title><content type='html'>As of yesterday, Ceehive is now in the top 5 search results returned for creative competitions. Right behind worth. It appears that we are starting to get a little traffic from this source as well. Incidently, tapatap.com and votigo.com unique visitors are down but attention is getting better. Worth1000.com and ourstage.com appear to be growing wildly. You have to ask yourself, is it better to be a creative competition site today, or a pop culture hot or not. I think you know how I would answer that question :)&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Creative Competitions&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href="http://siteanalytics.compete.com/worth1000.com+ourstage.com?metric=uv"&gt;&lt;img src="http://home.compete.com.edgesuite.net/worth1000.com+ourstage.com_uv_310.png" /&gt;&lt;/a&gt;&lt;a href="http://siteanalytics.compete.com/worth1000.com+ourstage.com?metric=avgStay"&gt;&lt;img src="http://home.compete.com.edgesuite.net/worth1000.com+ourstage.com_avgStay_310.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pop Culture Contests&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;a href="http://siteanalytics.compete.com/tapatap.com+votigo.com?metric=uv"&gt;&lt;img src="http://home.compete.com.edgesuite.net/tapatap.com+votigo.com_uv_310.png" /&gt;&lt;/a&gt;&lt;a href="http://siteanalytics.compete.com/tapatap.com+votigo.com?metric=avgStay"&gt;&lt;img src="http://home.compete.com.edgesuite.net/tapatap.com+votigo.com_avgStay_310.png" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23399435-8971371229584463258?l=briancochran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://briancochran.blogspot.com/feeds/8971371229584463258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23399435&amp;postID=8971371229584463258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/8971371229584463258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/8971371229584463258'/><link rel='alternate' type='text/html' href='http://briancochran.blogspot.com/2007/10/contests-pop-culture-contests-vs.html' title='Contests: Pop Culture Contests vs. Creative'/><author><name>Brian</name><uri>http://www.blogger.com/profile/09677438923530482718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23399435.post-2864435019880559013</id><published>2007-10-16T09:40:00.000-07:00</published><updated>2007-10-16T09:50:46.439-07:00</updated><title type='text'>Virtual Hosting Options</title><content type='html'>Let me preface this with the statement that I am not a hosting guy. I am a software architect who runs a couple of software centric companies. So take this all with a grain of salt.&lt;br /&gt;&lt;br /&gt;As I understand there are basically three ways you can obtain "virtual hosting"&lt;br /&gt;&lt;br /&gt;1. Virtual Server - I would stay away from this for all but the smallest apps. It is shared kernel.&lt;br /&gt;&lt;br /&gt;2. Virtual Private Server - This actually is more like a high grade version of VMWare (Xen) and it works really well. Everything is dedicated from you point of view and you can do some great management tricks like install a new node in about 5 minutes with zero downtime. Your application may reside on a box with other clients, but they will guarantee you a minimum amount of CPU. The machines on which they do this are all paralleled out like crazy with dual quad cores at least. It actually works out well. Getting a couple of VPS's on different boxes can be a very solid setup. You have instance fail over with the ability to scale up or out quickly.&lt;br /&gt;&lt;br /&gt;3. Clustered Slice - I don't know if you will get this one for J2EE. We looked at www.engineyard.com. The idea is that you want a database machine hooked up to a SAN, a web server configured with failover redirectors and up front caching, and app servers with lots of cpu and memory. However, a configuration like this is really expensive for a simple site. The idea is to buy shares or slices of the cluster. This type of configuration requires that the hosting company know the technologies really well.&lt;br /&gt;&lt;br /&gt;Of course you can always go dedicated, and you guys will have to decide whether it makes sense. I personally like being virtual because we can add nodes so quickly (slashdot insurance). You need to make sure you have a good hosting provider to go with this option. You may not need that degree of flexibility as your load is probably more steady. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Providers&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight:bold;"&gt;eApps&lt;/span&gt; - These guys have really become a very highly respected hosting provider. I continually hear them mentioned favorably by satisfied customers at ISIA and AJUG meetings and I know of several fortune 100s using them. Ultimately, I think these guys are running at a Sungard Data facility (local to Atlanta, which is nice) and providing support around those cabinets.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Engine Yard/Rails Machine&lt;/span&gt; -  I am a satisfied Rails Machine customer. They are reasonably priced, performance has been good, and they have been responsive and knowledgable.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Rackspace&lt;/span&gt; - I recently heard that these were the guys to beat as far as hosting. They are a little more expensive and are completely dedicated. If you go with them, work to get the price down.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Amazon S3 &lt;/span&gt;- I know a ton of organizations who now store all their static content and backups on Amazon's S3 grid. It's very inexpensive and you have availability that it is hard for anybody to match (I think they are at five 9). There are now several tools available to synchronize this with your deployment processes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23399435-2864435019880559013?l=briancochran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://briancochran.blogspot.com/feeds/2864435019880559013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23399435&amp;postID=2864435019880559013' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/2864435019880559013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/2864435019880559013'/><link rel='alternate' type='text/html' href='http://briancochran.blogspot.com/2007/10/virtual-hosting-options.html' title='Virtual Hosting Options'/><author><name>Brian</name><uri>http://www.blogger.com/profile/09677438923530482718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23399435.post-6766655984407431433</id><published>2007-09-10T06:41:00.000-07:00</published><updated>2007-09-10T06:44:27.251-07:00</updated><title type='text'>Ceehive Entries</title><content type='html'>Been working on Ceehive a lot lately. Here are some of my entries. Hope you enjoy. You can sign up at http://www.ceehive.com/brian if you like.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="width:370px;"&gt; &lt;embed style="width:320px; height:240px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://www.ceehive.com/embed/CeehiveEntryViewer.swf?v=2&amp;type=entry&amp;id=431&amp;host=www.ceehive.com" &gt;&lt;/embed&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23399435-6766655984407431433?l=briancochran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://briancochran.blogspot.com/feeds/6766655984407431433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23399435&amp;postID=6766655984407431433' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/6766655984407431433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/6766655984407431433'/><link rel='alternate' type='text/html' href='http://briancochran.blogspot.com/2007/09/ceehive-entries.html' title='Ceehive Entries'/><author><name>Brian</name><uri>http://www.blogger.com/profile/09677438923530482718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23399435.post-2464097959762574453</id><published>2007-08-08T15:30:00.000-07:00</published><updated>2007-08-08T15:35:35.935-07:00</updated><title type='text'>Take it all in</title><content type='html'>&lt;a href="http://www.ceehive.com/hive/detail?user=2"&gt;brian&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;              &lt;br /&gt;        &lt;a  rel="hive_pictures" href="http://www.ceehive.com/picture/file/506/large/DSCF1744.jpg?width=800&amp;height=500" class="thickbox"&gt;&lt;img alt="Dscf1744" class="border" src="http://www.ceehive.com/picture/file/506/main/DSCF1744.jpg?1184565767" /&gt;&lt;/a&gt;&lt;br /&gt;        &lt;br /&gt;  &lt;p&gt;A cup will not help.&lt;/p&gt;&lt;p&gt;I&amp;#39;m drinking from a firehose.&lt;/p&gt;&lt;p&gt;&amp;nbsp;I think I&amp;#39;ve found it.  &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23399435-2464097959762574453?l=briancochran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://briancochran.blogspot.com/feeds/2464097959762574453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23399435&amp;postID=2464097959762574453' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/2464097959762574453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/2464097959762574453'/><link rel='alternate' type='text/html' href='http://briancochran.blogspot.com/2007/08/take-it-all-in.html' title='Take it all in'/><author><name>Brian</name><uri>http://www.blogger.com/profile/09677438923530482718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23399435.post-5529334544689475818</id><published>2007-05-10T08:28:00.000-07:00</published><updated>2007-05-10T08:32:38.043-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='economics'/><category scheme='http://www.blogger.com/atom/ns#' term='marketing'/><category scheme='http://www.blogger.com/atom/ns#' term='efficiency'/><category scheme='http://www.blogger.com/atom/ns#' term='inflation'/><title type='text'>Rising Costs, Oligoploies, and Promotional Marketing</title><content type='html'>A few things have been bothering me lately about the relationship between marketing budgets and hard-to-enter markets, and I finally figured out the source of my frustrations. &lt;br /&gt;&lt;br /&gt;First, let me say, I am not an economist. In fact I have  no education in the field beyond my 101 course in college, so I am sure my terms and assumptions are rather half-baked.&lt;br /&gt;&lt;br /&gt;The premise is this. The price of goods inflates when a market that lacks competition spends large amounts of money on  promotional marketing. Companies that have little competition will decrease their focus on reducing their unit costs or increasing their offering through innovation and increase their focus on effectively promoting their offering. In fact companies can establish oligopolies by increasing promotional marketing spending to the point that they substantially reduce the cost to acquire a  new customer. At this point, the barrier to entry for a new competitor increases substantially.&lt;br /&gt;&lt;br /&gt;Of course this is very natural when new industry is emerging or when innovation in an industry increases the competitive offering of one company over the others in the industry.  More alarming, though, is when this phenomenon occurs without major innovation in existing and well established industries.&lt;br /&gt;&lt;br /&gt;As gas companies de-regulated many markets saw the emergence of gas marketing oligopolies where no real competition was introduced surrounding the product transmission or distribution, but rather with the administrative and marketing segments of the industry scrambling to scale quickly enough to reduce customer acquisition costs to the point that an oligopoly was formed. Without control over innovation in the product or distribution mechanisms, these firms sole business became acquiring customers via massive promotional marketing efforts.&lt;br /&gt;&lt;br /&gt;Marketing contributes more to the cost of pharmaceuticals than does research. When a drug hits the market it usually has between five to twelve years to make money before its patent expires and the drug can be made as a generic. During this period, the drug company often has a micro-monopoly in the form of its patent. The most effective way to recover the drug costs is to reduce the cost of acquiring new customers as much as possible by pursuing as aggressive marketing campaign as possible.&lt;br /&gt;&lt;br /&gt;Whether the barrier to entry be excessive capital requirements, network externalities, patent, or other government regulation, it is interesting to observe the correlation between rising costs, promotional marketing, and lack of competition in an industry.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23399435-5529334544689475818?l=briancochran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://briancochran.blogspot.com/feeds/5529334544689475818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23399435&amp;postID=5529334544689475818' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/5529334544689475818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/5529334544689475818'/><link rel='alternate' type='text/html' href='http://briancochran.blogspot.com/2007/05/rising-costs-oligoploies-and.html' title='Rising Costs, Oligoploies, and Promotional Marketing'/><author><name>Brian</name><uri>http://www.blogger.com/profile/09677438923530482718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23399435.post-114844960285388285</id><published>2006-05-23T22:46:00.000-07:00</published><updated>2006-05-23T22:46:42.926-07:00</updated><title type='text'>Atlanta CS Bios</title><content type='html'>Brian Cochran and Eric Stevens own and operate Atlanta CS, a software consulting firm specializing in ESB technology. They have spent the last year and a half defining and deploying ESBs in grid computing environments. Their ESB deployments have fulfilled very high transaction volumes and the integration of 100's of disparate technologies ranging from various legacy enterprise systems to millions of embedded devices.&lt;br /&gt;&lt;br /&gt;Prior to founding Atlanta CS, Brian's experience as a Lead Architect found him creating high volume transactional systems and analytics products now deployed at several fortune 100 companies in the insurance and financial services industry. Brian holds a BS in computer science from Georgia Tech with Highest Honors.&lt;br /&gt;&lt;br /&gt;Eric Stevens has extensive experience in software architecture and software products in the financial services and insurance industries. Mr. Stevens has led numerous projects involving frameworks, scheduling systems, analytical systems, and site management systems. Mr. Stevens is an Honors graduate of the Georgia Institute of Technology.   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://www.atlantacs.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23399435-114844960285388285?l=briancochran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://briancochran.blogspot.com/feeds/114844960285388285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23399435&amp;postID=114844960285388285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/114844960285388285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/114844960285388285'/><link rel='alternate' type='text/html' href='http://briancochran.blogspot.com/2006/05/atlanta-cs-bios.html' title='Atlanta CS Bios'/><author><name>Brian</name><uri>http://www.blogger.com/profile/09677438923530482718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23399435.post-114844891776727758</id><published>2006-05-23T22:34:00.000-07:00</published><updated>2007-05-10T08:38:26.204-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='esb'/><category scheme='http://www.blogger.com/atom/ns#' term='web services'/><category scheme='http://www.blogger.com/atom/ns#' term='mule'/><category scheme='http://www.blogger.com/atom/ns#' term='soa'/><title type='text'>Developing in an Enterprise Service Bus</title><content type='html'>There is a lot of buzz about SOA and ESB these days, but what does it mean to actually implement on one? We will answer questions like&lt;br /&gt;&lt;br /&gt;What is an ESB?&lt;br /&gt;Where and why would someone use one?&lt;br /&gt;What tools are available for working with an ESB?&lt;br /&gt;How to use and implement various core ESB concepts such as routers, transformers, and messaging connectors?&lt;br /&gt;&lt;br /&gt;ESB's vendors are promising easy integration and reuse by providing frameworks for implementing Service Oriented Architectures. But many vendors have clouded the principals and patterns needed by the actual developer with a lot of buzzwords and fluff.&lt;br /&gt;&lt;br /&gt;That said, SOA does seem to be gaining traction. IT organizations are looking for more reuse of their applications and better agility in responding to changing business needs. If adopted, the applications we build may be required to plug in to the corporate ESB. As developers we need to know how to partition our applications into functional services that can be used and reused by external applications. We also need to know how to find and reuse existing services so we can deliver more quickly.&lt;br /&gt;&lt;br /&gt;There are many patterns and tools found in ESB frameworks which can make a developer's life much easier. These frameworks provide the tools to handle many common problems such as message routing and message transformation. It is often the case that a standard POJO can be exposed to over a dozen different messaging technologies ranging from Web Services to email to flat file simply by making configuration changes within the ESB. For existing applications, developers can use the frameworks to expose existing components such as EJBs as services in the ESB using simple configuration.&lt;br /&gt;&lt;br /&gt;Although popular, application integration is not the only application of ESBs. These services based frameworks are also being applied in the areas of grid computing, networking, and as simple messing layer abstractions inside applications.&lt;br /&gt;&lt;br /&gt;ESBs have their challenges. Services often have asynchronous interfaces and this mode of development can sometimes be confusing. It is also difficult to manage the configuration in an ESB that covers many different applications. It is not uncommon for entire applications (or versions of the applications) to come and go as services participating in the ESB.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23399435-114844891776727758?l=briancochran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://briancochran.blogspot.com/feeds/114844891776727758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23399435&amp;postID=114844891776727758' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/114844891776727758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/114844891776727758'/><link rel='alternate' type='text/html' href='http://briancochran.blogspot.com/2006/05/developing-in-enterprise-service-bus.html' title='Developing in an Enterprise Service Bus'/><author><name>Brian</name><uri>http://www.blogger.com/profile/09677438923530482718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23399435.post-114146008024642929</id><published>2006-03-03T23:22:00.000-08:00</published><updated>2007-05-10T08:38:50.950-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='wsajax'/><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='esb'/><category scheme='http://www.blogger.com/atom/ns#' term='mvc'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='struts'/><category scheme='http://www.blogger.com/atom/ns#' term='mule'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='soa'/><title type='text'>AJAX, SOA, and the end of the Model 2 MVC</title><content type='html'>It appears that AJAX introduces the opportunity to deprecate many of the MVC (Model 2) frameworks that exist today in place of direct communication from the Web Browser to the ESB. I confirmed many of these assumptions recently when I integrated an AJAX enabled Ruby on Rails web application with an ESB backend based on &lt;a href="http://mule.codehaus.org/"&gt;Mule&lt;/a&gt;. While integrating these apps it appeared that much of the development seemed as logically implemented on the Web Browser client as the server. What lies ahead for Web Application frameworks? Is the quest for JSP 2.0, and the next JSF with AJAX support misguided?&lt;br /&gt;&lt;br /&gt;Consider the following.&lt;br /&gt;&lt;br /&gt;Asynchronous behavior is desirable on a user interface. In fact, traditional web interfaces have suffered from the lack of asynchronous behavior in the form of weak usability when compared with thick clients.&lt;br /&gt;&lt;br /&gt;Anyone who has implemented a system based on an ESB discovers quickly that there is a philosophical difference between developing a synchronous application versus an asynchronous service. Moreover, the "problems" that immediately arise  with integrating an asynchronous service with the web user interface, seem to evaporate when AJAX enters. Programs are often written with many synchronous assumptions. In fact, synchronous behavior in the physical world is not nearly as common as one might think. People rely on context when they communicate, not correlation id's. Such context can often be modeled with workflow engine contextes instead of relying on correlation at the thread level. Workflow engine's such as jBPM, OSWorkflow, and others make use of the application's ability to establish context.&lt;br /&gt;&lt;br /&gt;So what does all this mean? SOA architects model documents asynchronously flowing from one service to another. AJAX models the asynchronous exchange of XML content (documents) to and from the web browser. One might deduce that standards such as REST, RDF, and AJAX (indeed most of Web 2.0) suggest that the web browser's interaction with the server is merely another component participating in the SOA.&lt;br /&gt;&lt;br /&gt;If this philosophy is adopted, what does it mean for our beloved MVC container architecture? Most Java MVC frameworks are fairly synchronous by nature. In addition, some of the most valuable features of these frameworks are their validation and layout frameworks. I enjoy struts tiles. I enjoy struts validator. But when combined with AJAX, I find them less useful. The "tiles" like behavior is delegated to the client using div's, AJAX, and javascript.  And the validation framework seems as if it can be fairly easily implemented on the client. Not to mention that any web services developer has fairly rich validation frameworks available with XML Schemas. Admittedly this area may be a little short though I might not be as up to speed with the Web Services, Web Client validation integration mechanisms as I should be.&lt;br /&gt;&lt;br /&gt;Ultimately, is the answer to the ultimate server web framework to not have one at all? Time will tell.&lt;br /&gt;&lt;br /&gt;In the mean time there are a few efforts I am keeping my eyes on in tracking these concepts.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www-128.ibm.com/developerworks/web/library/ws-wsajax/"&gt;ws-wsajax&lt;/a&gt; is an IBM project that seems to be an Javascript AJAX SOAP client.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.xfront.com/REST-Web-Services.html"&gt;REST&lt;/a&gt; provides an interesting possibility toward simplifying the Browser, Web Services Mechanisms.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://mule.codehaus.org/"&gt;Mule&lt;/a&gt; provides a popular and very interoperable ESB implementation.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I am anxious to hear what others think.&lt;br /&gt;&lt;br /&gt;Humbly,&lt;br /&gt;Brian Cochran&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23399435-114146008024642929?l=briancochran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://briancochran.blogspot.com/feeds/114146008024642929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23399435&amp;postID=114146008024642929' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/114146008024642929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23399435/posts/default/114146008024642929'/><link rel='alternate' type='text/html' href='http://briancochran.blogspot.com/2006/03/ajax-soa-and-end-of-model-2-mvc.html' title='AJAX, SOA, and the end of the Model 2 MVC'/><author><name>Brian</name><uri>http://www.blogger.com/profile/09677438923530482718</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
