<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<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/"
	>

<channel>
	<title>Stefan's Kugel</title>
	<link>http://deusch.org/blog</link>
	<description>my understanding of technology</description>
	<pubDate>Sat, 18 Jun 2011 17:49:18 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>[Java] Faster with -XX:+UseCompressedOops or upgrade to jdk1.6.0_23</title>
		<link>http://deusch.org/blog/?p=20</link>
		<comments>http://deusch.org/blog/?p=20#comments</comments>
		<pubDate>Sat, 18 Jun 2011 16:47:01 +0000</pubDate>
		<dc:creator>root</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://deusch.org/blog/?p=20</guid>
		<description><![CDATA[I recently heard  somebody talking about Solr performance and he warmly recommended using the JVM option -XX:+UseCompressedOops for higher performance.  That option roughly tells the HotSpot JVM to use 32 bit pointers on a 64 bit platform like ours, while it is still able to address 32GB memory instead of the old 4GB limit, through [...]]]></description>
			<content:encoded><![CDATA[<p>I recently heard  somebody talking about Solr performance and he warmly recommended using the JVM option -XX:+UseCompressedOops for higher performance.  That option roughly tells the HotSpot JVM to use 32 bit pointers on a 64 bit platform like ours, while it is still able to address 32GB memory instead of the old 4GB limit, through some optimizations. There are plenty of good post with the details, e.g. <a href="http://blog.juma.me.uk/2008/10/14/32-bit-or-64-bit-jvm-how-about-a-hybrid/" title="http://blog.juma.me.uk/2008/10/14/32-bit-or-64-bit-jvm-how-about-a-hybrid/">http://blog.juma.me.uk/2008/10/14/32-bit-or-64-bit-jvm-how-about-a-hybrid/</a>.<br />
Java 1.6.0_22 is the last version which has this option disabled by default. Since 1.6.0_23 it is always on. So you might consider upgrading your Java6 to update 23 or adding -XX:+UseCompressedOops (between update 14 and 22)  This is especially true for very large JVMs, where GC almost freezes the process so the application becomes unresponsive. I have seen GC pauses of 30 to 60 seconds with a JVM size of 10 GB and higher.</p>
<p>I did a &#8220;Hello World&#8221; program which got me a verification: sorting 100 million random integer on a 15 GB JVM.  The version with –XX:+CompressedOops ran 181 sec, over 205 sec without, i.e. 12 % faster.<br />
In summary, I think it is a good idea to have compressed object pointers always on by default, if you need less than 32 GB.</p>
]]></content:encoded>
			<wfw:commentRss>http://deusch.org/blog/?feed=rss2&amp;p=20</wfw:commentRss>
		</item>
		<item>
		<title>My Favorite Java Concurrency Feature</title>
		<link>http://deusch.org/blog/?p=19</link>
		<comments>http://deusch.org/blog/?p=19#comments</comments>
		<pubDate>Thu, 16 Dec 2010 07:40:48 +0000</pubDate>
		<dc:creator>root</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://deusch.org/blog/?p=19</guid>
		<description><![CDATA[For some it may be the obvious, but for most (measured by the small number of interviewees who know anything about Java concurrency) the following feature of the java.util.concurrency is my favorite:
ExecutorService in combination with BlockingQueue, see the JavaDocs for instance.
The idea is to decouple the invoker thread from the worker thread. The invoker dumps [...]]]></description>
			<content:encoded><![CDATA[<p>For some it may be the obvious, but for most (measured by the small number of interviewees who know anything about Java concurrency) the following feature of the<strong> java.util.concurrency</strong> is my favorite:</p>
<p><strong>ExecutorService in combination with BlockingQueue</strong>, see the <a href="http://download.oracle.com/javase/6/docs/api/java/util/concurrent/package-summary.html">JavaDocs</a> for instance.</p>
<p>The idea is to decouple the invoker thread from the worker thread. The invoker dumps a task onto a blocking queue and returns immediately. Any available worker thread picks a task off the queue and does its thing. This sort of decoupling makes for a great user experience in the UI layer and minimal chance for thread contention in a multi-threaded environment. This is how I would  implement log4j, if it isn&#8217;t already doing this, or asynchronous JMS messaging.</p>
<p>There is even a <strong>DelayQueue</strong> since Java 6 which allows to poll objects of a minimum age. This can be used as a lightweight solution for aggregation in memory (no ESB, JMS, DB, etc. necessary) if all the data fits into one JVM.</p>
<p>Also on a side note, prefer using an ExecutorCompletionService over a simple InvocationService. The latter runs only as fast as it&#8217;s slowest running task, while the first one runs tasks continously off a queue with never a thread in the pool idle.</p>
<p>Lastly, the book <a href="http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601"><em>Java Concurrency in Practice</em></a> by Brian Goetz is a must for Java Developers. What a great book!</p>
]]></content:encoded>
			<wfw:commentRss>http://deusch.org/blog/?feed=rss2&amp;p=19</wfw:commentRss>
		</item>
		<item>
		<title>Deadzone in the Attic</title>
		<link>http://deusch.org/blog/?p=18</link>
		<comments>http://deusch.org/blog/?p=18#comments</comments>
		<pubDate>Fri, 02 Apr 2010 11:45:20 +0000</pubDate>
		<dc:creator>root</dc:creator>
		
		<category><![CDATA[Enterprise IT]]></category>

		<category><![CDATA[Management]]></category>

		<category><![CDATA[Software Design]]></category>

		<guid isPermaLink="false">http://deusch.org/blog/?p=18</guid>
		<description><![CDATA[Recently I had to climb up into the attic of my house to repair something. The single-family homes in Southern California of the sixties are wood frame constructions on concrete slab. My attic, reachable through a narrow manhole from the garage, is a floor filled with dusty thermal insulation material with wood planks in between. [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I had to climb up into the attic of my house to repair something. The single-family homes in Southern California of the sixties are wood frame constructions on concrete slab. My attic, reachable through a narrow manhole from the garage, is a floor filled with dusty thermal insulation material with wood planks in between. Burried in between the insulation and the wood frame are copper pipes of water lines, electric and TV cables, and the air ducts of the A/C system. It is a dry dusty place that can reach 120 F on a  hot SoCal day, probably life threatening if you fall and lose consciousness. It is also a place littered with trash like packaging materials, foam pieces, cut wires, duct tape, etc. Trash left behind by contractors. All that trash looms above my head all the time, day and night. It was most definitely left behind by contractors over the years.</p>
<p>This is where I had the idea for this following metaphor: Contractors in Software Engineering do the same sometimes, i.e. they leave behind a mess. They get in, do something and get out. From a pure survival point of view I understand this. But what about the mess over our head? When does an asset become a liability? When does the rot harm vital functions of the house?</p>
<p>Those starting a new house (project) from scratch should pause now and think about it. It is always easier to keep the attic clean and organized from the beginning.</p>
<p>Returning to my metaphor, my advice is to not allow for a deadzone in a project. Everything in a project should be exposed to the fullest to disallow deadzones. CM tools like Maven, unit test coverage reports (Cobertura), Hudson automated builds and visualizations with Sonar, all help to make a project transparent and detect outliers early. I think the first week for anybody new on a project should include training in the quality standards of the organization. Those need to be kept alive, updated, revised and evolved by a few select veterans with interest and passion in SWE. So anyone  on a SWE project, regardless if the employment status is permanent or contractor, is to be held accountable by the common standards. If somebody says his code is done, but it does not pass the internal quality standards, he or she is not done by definition.</p>
]]></content:encoded>
			<wfw:commentRss>http://deusch.org/blog/?feed=rss2&amp;p=18</wfw:commentRss>
		</item>
		<item>
		<title>101 Ways to Praise an Employee</title>
		<link>http://deusch.org/blog/?p=17</link>
		<comments>http://deusch.org/blog/?p=17#comments</comments>
		<pubDate>Tue, 09 Jun 2009 09:49:20 +0000</pubDate>
		<dc:creator>root</dc:creator>
		
		<category><![CDATA[Management]]></category>

		<category><![CDATA[Work Efficiency]]></category>

		<guid isPermaLink="false">http://deusch.org/blog/?p=17</guid>
		<description><![CDATA[Even though we live in a world where people work for money - thanks to division of labor and specialization - I hold it as a basic tenet of civility to praise work that has been done in your interests. Good work needs praise, or you&#8217;ll lose the people doing it. Great people need appreciation!
They [...]]]></description>
			<content:encoded><![CDATA[<p>Even though we live in a world where people work for money - thanks to division of labor and specialization - I hold it as a basic tenet of civility to praise work that has been done in your interests. Good work needs praise, or you&#8217;ll lose the people doing it. Great people need appreciation!</p>
<p>They say <em>praise in public, criticize in private. </em>However, let me add a warning to this. Praising in public may become a boomerang if (i) the person praised does not want to be in the spotlight, and (ii) the others feel as if they are criticized at the same time.</p>
<p>Back to the technique of praising as far as words are concerned. Don&#8217;t use <strong>Great Job!</strong> all the time. It wears off fast and after a while it sounds like you say <strong>Good Dog!</strong> To be more genuine use different phrases. My wife showed me a great website named <strong>101 Ways to Praise</strong>, see <a href="http://www.gesd40.org/mainsite/parent/pghtm/101ways.htm" title="http://www.gesd40.org/mainsite/parent/pghtm/101ways.htm">http://www.gesd40.org/mainsite/parent/pghtm/101ways.htm</a>. It is geared toward child education, and a few quotes may be inappropriate at work. However, most of them fit perfectly. I keep a color printout of this page in my drawer. The quotes are funny and creative, and really helpful for effective communication.</p>
]]></content:encoded>
			<wfw:commentRss>http://deusch.org/blog/?feed=rss2&amp;p=17</wfw:commentRss>
		</item>
		<item>
		<title>Adding new semantic to basic Java types with JSR-303 Bean Validation</title>
		<link>http://deusch.org/blog/?p=16</link>
		<comments>http://deusch.org/blog/?p=16#comments</comments>
		<pubDate>Thu, 09 Apr 2009 08:45:20 +0000</pubDate>
		<dc:creator>root</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Software Design]]></category>

		<guid isPermaLink="false">http://deusch.org/blog/?p=16</guid>
		<description><![CDATA[ Do you need to validate your data in Java? Wouldn&#8217;t it be nice to have qualifiers like notnull, varchar(max), or check constraints such as we have in SQL?Previously, a good library to check data programmatically was the Apache Commons Validator API, http://commons.apache.org/validator/. It is still great and definitely good to know.
But since Java 5 [...]]]></description>
			<content:encoded><![CDATA[<p> Do you need to validate your data in Java? Wouldn&#8217;t it be nice to have qualifiers like <i>notnull, varchar(max)</i>, or check constraints such as we have in SQL?Previously, a good library to check data programmatically was the Apache Commons Validator API, <a href="http://commons.apache.org/validator/" mce_href="http://commons.apache.org/validator/">http://commons.apache.org/validator/.</a> It is still great and definitely good to know.</p>
<p>But since Java 5 annotations, there is also <b>JSR-303 Bean Validation API</b>, which may make it into Java 7. For an intro e.g. see <a href="http://musingsofaprogrammingaddict.blogspot.com/2009/02/getting-started-with-jsr-303-bean.html" mce_href="http://musingsofaprogrammingaddict.blogspot.com/2009/02/getting-started-with-jsr-303-bean.html">http://musingsofaprogrammingaddict.blogspot.com/2009/02/getting-started-with-jsr-303-bean.html</a></p>
<p>For example a declaration of this member variable</p>
<pre><i>&nbsp;   <font color="#0000ff"><b>@NotNull</b></font></i></pre>
<pre><i><font color="#0000ff"><b>&nbsp;   @Size(min = 2, max = 14)</b></font></i></pre>
<pre><i><font color="#0000ff"><b>&nbsp;   @UpperCase</b></font></i></pre>
<pre><font color="#0000ff"><b>&nbsp;   private String licensePlate;</b></font></pre>
<p>requires an instance of licensePlate to be not null, between 2 and1 4 chars long and all uppercase. Isn&#8217;t that awesome? Countless examples come to mind where this would have been helpful? Application data usually ends up in a database or on a UI screen and always needs to be limited in some or another way. Think of the example of US social security numbers, or an Oracle varchar(4000) as the largest data type for a String. JSR-303 covers a really basic need that has been missing in Java since the beginning, IMO.</p>
<p>So don&#8217;t implement your own, use the Hibernate reference implementation for instance, see http://hibernate.org/subprojects/validator, which is not only for the database tier. They specifically say that it can be used for the web tier or Swing UI, etc, wherever you have a data validation need.</p>
]]></content:encoded>
			<wfw:commentRss>http://deusch.org/blog/?feed=rss2&amp;p=16</wfw:commentRss>
		</item>
		<item>
		<title>Basic Thoughts on Cloud Computing</title>
		<link>http://deusch.org/blog/?p=15</link>
		<comments>http://deusch.org/blog/?p=15#comments</comments>
		<pubDate>Sun, 01 Mar 2009 00:30:10 +0000</pubDate>
		<dc:creator>root</dc:creator>
		
		<category><![CDATA[CM]]></category>

		<category><![CDATA[Enterprise IT]]></category>

		<category><![CDATA[Work Efficiency]]></category>

		<guid isPermaLink="false">http://deusch.org/blog/?p=15</guid>
		<description><![CDATA[It&#8217;s coming. Software in the cloud is by far not only marketing buzz, it is already here and here to stay. Cloud computing then must be the next evolutionary step of enterprise computing.  Here are my notes to self about the benefits and risks of this new exiting technology:
Pros

fast (instant) allocation of computing resources.
fast prototyping, [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s coming. Software in the cloud is by far not only marketing buzz, it is already here and here to stay. Cloud computing then must be the next evolutionary step of enterprise computing.  Here are my notes to self about the benefits and risks of this new exiting technology:</p>
<p><em><strong>Pros</strong></em></p>
<ul>
<li>fast (instant) allocation of computing resources.</li>
<li>fast prototyping, fast product development.</li>
<li>shortened business cycle, shortened time to market.</li>
<li>scalable: no lead time in building out data center.</li>
<li>reduced cost of hardware and staff.</li>
<li>reliability, high uptimes and SLAs, or else the cloud providers risk their reputation</li>
<li>new business models perhaps. E.g. when the volume and bandwidth of data and its geographic distribution creates a new opportunity that could not be served out of a single data center.</li>
<li>global applications can be distributed closer to end users, application latency is smaller, users are happier.</li>
</ul>
<p><em><strong>Cons</strong></em></p>
<ul>
<li>additional hard dependency on outside party, the cloud provider.</li>
<li>even the best clouds have outages, see <a href="http://status.aws.amazon.com/s3-20080720.html" title="AWS 07-20-2008 Outage. " target="_blank">http://status.aws.amazon.com/s3-20080720.html</a>, i.e. you probably shouldn&#8217;t build a life support or an air traffic control system in the cloud.</li>
<li>it removes a company capability that may have been essential to the company in the past.</li>
<li>once the people are gone, training new people, building up IT capacity takes years.</li>
<li>on the other hand, like any new technology, cloud computing requires young-in-mind technologist.</li>
<li> privacy concerns for sensitive data: is financial or patient data safe? Is it even legal?</li>
<li>the new bottleneck becomes the network.</li>
<li>the WAN is not really reliable, the software to push data to for instance S3 endpoints needs to be a lot more resilient than the code written for local networks (retries, timeouts, throttling, encryption,&#8230;).</li>
<li>depending on the distribution of data and application hosting, additional network latencies may <em>cloud</em>  the end-user experience.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://deusch.org/blog/?feed=rss2&amp;p=15</wfw:commentRss>
		</item>
		<item>
		<title>A Look Ahead to 2009</title>
		<link>http://deusch.org/blog/?p=14</link>
		<comments>http://deusch.org/blog/?p=14#comments</comments>
		<pubDate>Thu, 01 Jan 2009 05:48:59 +0000</pubDate>
		<dc:creator>root</dc:creator>
		
		<category><![CDATA[Enterprise IT]]></category>

		<category><![CDATA[Software Design]]></category>

		<category><![CDATA[Work Efficiency]]></category>

		<guid isPermaLink="false">http://deusch.org/blog/?p=14</guid>
		<description><![CDATA[ Time to make a few bold predictions for next years. All chiefs of states already said that 2009 will be a challenge for the economy, unemployment, and certain conflicts.  Let me add my 2 cents to this from the perspective of an enterprise IT person:

The job market for certain IT people will become [...]]]></description>
			<content:encoded><![CDATA[<p> Time to make a few bold predictions for next years. All chiefs of states already said that 2009 will be a challenge for the economy, unemployment, and certain conflicts.  Let me add my 2 cents to this from the perspective of an enterprise IT person:</p>
<ol>
<li>The job market for certain IT people will become tighter, kind of like it was in 2002. Businesses will shed more people. They are concerned to stretch their assets as much as possible through the economic downturn.</li>
<li>The agile ways of delivering software will be the main stream paradigm. SCRUM, XP, you name it, are now household names in IT.</li>
<li>Continuous build systems are ubiquitous, every new keystroke of code triggers a new build in the background.</li>
<li>SOA is continuing to grow, but only as much as it is simplified. E.g. REST will be the dominant architecture for web services, mainly because the big ones, Google, Y!, Amazon, offer more and more services in REST. SOAP will persist but shrink in significance because too complicated with too many standards.</li>
<li>Opensource frameworks will be a standard part of enterprise IT, it only grows in market share, not because it is free, but because it is leight weight, well tested and cared for by large communities of enthusiastic people. I mean those projects that are successful.</li>
<li>On the ESB side Mule and ServiceMix will make the ESB paradigm very successful, not only becausae of all the benefits of an ESB, but also because the community behind it is growing.</li>
<li>The purity of relational data models will become less important as more and more processes need to perform really fast on large data sets. The trends is toward simplification of data storage, think of flat files or web services in the cloud.</li>
<li>Similarly, network attached memory for JVM clusters (check out Terracotta) is cheaper, faster, and simpler than a large clustered Oracle data warehouse, to process large stateful data sets.</li>
<li>Java EE remains the dominant enterprise platform. Tools like Eclipse will deploy code changes automatically and instantly to applications servers in real time (as some plugins already do). Java development will be as convenient as working with scripting languages like Perl or Ruby.</li>
<li>Solid-state disks will become the choice for fast computation, magnetic hard disks are the new tape for permanent storage and backups</li>
</ol>
<p>There would be a few other things like multi-threading and parallelization in enterprise computation, but I am running out of time now.</p>
<p>Let&#8217;s see next year how much of that became reality.</p>
<p>Happy New Year everybody!</p>
]]></content:encoded>
			<wfw:commentRss>http://deusch.org/blog/?feed=rss2&amp;p=14</wfw:commentRss>
		</item>
		<item>
		<title>Software Rot</title>
		<link>http://deusch.org/blog/?p=11</link>
		<comments>http://deusch.org/blog/?p=11#comments</comments>
		<pubDate>Sat, 13 Dec 2008 07:31:11 +0000</pubDate>
		<dc:creator>root</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Software Design]]></category>

		<guid isPermaLink="false">http://deusch.org/blog/?p=11</guid>
		<description><![CDATA[Last June a wall in my home was filling with water from a rotten pipe. It caused a major headache and drama. A plumber came and cut open the wall to find the &#8220;leak&#8221;.

Okay, the thing was possibly +40 years old and served the kitchen sink drain. A layer of black stinky crap narrowed the [...]]]></description>
			<content:encoded><![CDATA[<p>Last June a wall in my home was filling with water from a rotten pipe. It caused a major headache and drama. A plumber came and cut open the wall to find the &#8220;leak&#8221;.</p>
<p><a href="http://deusch.org/blog/wp-content/uploads/2008/12/rotten_pipe.jpg" title="Rotten Pipe"><img src="http://deusch.org/blog/wp-content/uploads/2008/12/rotten_pipe.jpg" alt="Rotten Pipe" /></a></p>
<p>Okay, the thing was possibly +40 years old and served the kitchen sink drain. A layer of black stinky crap narrowed the section of free flow to the innermost center while corroding away the metal on the outer side. My point here is that software rots too. Not in a physical sense; software is virtual and the 1&#8217;s and 0&#8217;s don&#8217;t change. But the analogy is figurative: software rots because the environment changes, requirements change, people come and go, the demands of reality on a system can change substantially: for instance a higher load, a different use than it was designed for, a third-party changes its rules, the list is endless. In such a situation, a software system can behave like this broken pipe. It cannot do it&#8217;s job anymore. There is a philosophical/economical debate as to what is better in that case: the minimal fix until the next crash, or a rewrite from scratch. I don&#8217;t want to elaborate on this now. My point is that this photo made me think of software as a fragile ecosystem that degrades constantly because its surroundings (we and our businesses) change constantly.</p>
]]></content:encoded>
			<wfw:commentRss>http://deusch.org/blog/?feed=rss2&amp;p=11</wfw:commentRss>
		</item>
		<item>
		<title>Memory Leak in Java</title>
		<link>http://deusch.org/blog/?p=9</link>
		<comments>http://deusch.org/blog/?p=9#comments</comments>
		<pubDate>Sat, 13 Dec 2008 06:51:20 +0000</pubDate>
		<dc:creator>root</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[JMX]]></category>

		<category><![CDATA[leak]]></category>

		<category><![CDATA[memory]]></category>

		<guid isPermaLink="false">http://deusch.org/blog/?p=9</guid>
		<description><![CDATA[Java has by definition no memory leaks [think automatic garbage collection]. What leaks memory is running software, especially long running enterprise software, such as that on a web application server.
The picture below shows a memory leak of a Tomcat web application that reads from ActiveMQ messaging system and does a bulk insert into a database. [...]]]></description>
			<content:encoded><![CDATA[<p>Java has by definition no memory leaks [think automatic garbage collection]. What leaks memory is running software, especially long running enterprise software, such as that on a web application server.</p>
<p>The picture below shows a memory leak of a Tomcat web application that reads from ActiveMQ messaging system and does a bulk insert into a database. The memory graph, snapshot from the JMX console, rises over 9 hours close to 800 MB before it throws periodic OutOfHeapSpace exceptions. The Tomcat instance was run with -Xmx1024m. Tomcat uses the rest for itself. This measurement was taken under the conditions of a stress test; it levels out at 800 MB after 9 hours. In production, where JMX is turned off, the OutOfHeapSpace error took a week or so to show up.</p>
<p><a href="http://deusch.org/blog/wp-content/uploads/2008/12/memoryleak.jpg" title="Memory Profile of a web application in JMX"><img src="http://deusch.org/blog/wp-content/uploads/2008/12/memoryleak.jpg" alt="Memory Profile of a web application in JMX" /></a><br />
<strong>How to diagnose a memory leak</strong></p>
<li>Turn on JMX</li>
<li>Run it under stress conditions</li>
<li>Try to force garbage collection, see the &#8220;Perform GC&#8221; button on JMX console: if the graph doesn&#8217;t go down, it&#8217;s a leak!</li>
<p><strong>How to find the root of the leak</strong></p>
<li>Here&#8217;s a good writeup of what to do: <a href="http://blog.emptyway.com/2007/04/02/finding-memory-leaks-in-java-apps/">http://blog.emptyway.com/2007/04/02/finding-memory-leaks-in-java-apps/</a></li>
<li>Java 6 SE has all tools necessary: JMX, hprof agent, jmap, jhat</li>
<li>Taking a memory dump at different times [sorry the language] should result in one type of object growing in number</li>
<li> The most frequent object [except for chars in Strings probably] in jhat is a likely candidate for the leak.</li>
<p>In my case, the leak was caused by a JDBC database driver, JConn v6, for reasons I don&#8217;t really bother to know. Replacing that JDBC driver with the open-source jDTS driver for Sybase and SQLServer brought down memory consumption to 20MB and made it run faster. A nagging problem was solved.</p>
]]></content:encoded>
			<wfw:commentRss>http://deusch.org/blog/?feed=rss2&amp;p=9</wfw:commentRss>
		</item>
		<item>
		<title>Economy downturn hitting startups &#8230;</title>
		<link>http://deusch.org/blog/?p=8</link>
		<comments>http://deusch.org/blog/?p=8#comments</comments>
		<pubDate>Sun, 02 Nov 2008 02:16:23 +0000</pubDate>
		<dc:creator>root</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://deusch.org/blog/?p=8</guid>
		<description><![CDATA[http://www.nytimes.com/2008/10/27/technology/companies/27dotbomb.html
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nytimes.com/2008/10/27/technology/companies/27dotbomb.html" target="_blank"><span class="yshortcuts" id="lw_1225591983_2">http://www.nytimes.com/2008/10/27/technology/companies/27dotbomb.html</span></a></p>
]]></content:encoded>
			<wfw:commentRss>http://deusch.org/blog/?feed=rss2&amp;p=8</wfw:commentRss>
		</item>
	</channel>
</rss>

