<?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-32355325</id><updated>2011-11-27T15:16:52.451-08:00</updated><category term='iMax OS-X Files Photos iLife'/><category term='GCD OS-X BSD'/><category term='Rails Ruby Programming Development E-Commerce DB Constraints Entities'/><category term='Any Nothing Scala Type Computers Languages Java Reasoning Verification'/><category term='Combiner Hadoop Map-Reduce Programming Development'/><category term='Dialog'/><category term='Philosophy'/><category term='map-reduce code programming big-table hadoop Java'/><category term='Distributed Computing Amazon S3 Design Parallel Concurrncy Development Architecture'/><category term='AWS GAE'/><category term='Software Ruby-on-Rails Development Maintenance'/><category term='Cloud Computing Berkeley UC Economics Technology Adoption Growth'/><category term='Mac OS-X Dylib Architecture'/><category term='Open-Source'/><category term='ideas code Google Summer GSoC MySQL Database Programming Software Technology'/><category term='Utility Cloud-Computing SaaS PaaS Cloud'/><category term='JavaDB Apache Derby'/><category term='Java Mac Ports Versions JDK OS-X Leopard'/><category term='Cognition'/><category term='Closures Lambda Calculus Closure Logic Languages Programming'/><category term='code repository'/><category term='Java JavaOne Programming Educators Students Code Development'/><category term='Stuxnet Work Security Network Systems'/><category term='Bugs'/><category term='Digital Applications Shopping Mall Mobile'/><category term='Distributed Computing Design Parallel Concurrency Development Architecture Algorithms Databases Storage'/><category term='Hadoop Hive Video'/><category term='Tools'/><category term='Software'/><category term='Apache Cassandra AWS EBS EC2 Cloud Computing'/><category term='Java Sony-Ericsson Mobile Devices'/><category term='Rails Ruby Programming Development E-Commerce'/><category term='PostgreSQL Source Windows Build'/><category term='GCD Scala Concurrency'/><category term='Software Economics'/><category term='Scala Java'/><category term='Rails Testing Programming Logs'/><category term='Language GCD'/><category term='Software Economics Business Support Services Production'/><category term='Hive Advertising Data-Mining AWS Hadoop'/><category term='MySQL Conference Databases Open-Source'/><title type='text'>Code Signs</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>48</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-32355325.post-5663677449856322283</id><published>2010-10-27T11:42:00.000-07:00</published><updated>2010-10-27T11:44:11.177-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hive Advertising Data-Mining AWS Hadoop'/><title type='text'>AWS EMR Case Study with Hive</title><content type='html'>To look into a great case study of using Hive on top of AWS' EMR, see &lt;a href="http://aws.amazon.com/articles/2855"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-5663677449856322283?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/5663677449856322283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=5663677449856322283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/5663677449856322283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/5663677449856322283'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2010/10/aws-emr-case-study-with-hive.html' title='AWS EMR Case Study with Hive'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-3031965730363044654</id><published>2010-10-19T22:52:00.000-07:00</published><updated>2010-10-19T22:53:14.829-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS-X Dylib Architecture'/><title type='text'>Dylib Architecture / Mac OS-X</title><content type='html'>&gt; file /usr/local/lib/libprotobuf.dylib&lt;br /&gt;&gt; /usr/local/lib/libprotobuf.dylib: Mach-O 64-bit dynamically linked shared library x86_64&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-3031965730363044654?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/3031965730363044654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=3031965730363044654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/3031965730363044654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/3031965730363044654'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2010/10/dylib-architecture-mac-os-x.html' title='Dylib Architecture / Mac OS-X'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-1290050354530332480</id><published>2010-10-12T13:30:00.000-07:00</published><updated>2010-10-12T13:32:00.567-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Digital Applications Shopping Mall Mobile'/><title type='text'>Huawei Launches Digital Shopping Mall</title><content type='html'>Huawei has launched its &lt;a href="http://store.huawei.com/appstore/index.php"&gt;Digital Shopping Mall&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-1290050354530332480?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/1290050354530332480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=1290050354530332480' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/1290050354530332480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/1290050354530332480'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2010/10/huawei-launches-digital-shopping-mall.html' title='Huawei Launches Digital Shopping Mall'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-4739095068811578636</id><published>2010-10-05T14:47:00.000-07:00</published><updated>2010-10-05T14:53:00.134-07:00</updated><title type='text'>Deepwater Horizon, Siemens PLC and Stuxnet</title><content type='html'>Stuxnet &lt;a href="http://www.computerworld.com/s/article/9189140/Why_did_Stuxnet_worm_spread_"&gt;may have missed its target&lt;/a&gt; and may have caused other damage. Read &lt;a href="http://www.f-secure.com/weblog/archives/00002040.html"&gt;F-Secure's Q&amp;A&lt;/a&gt; regarding use of Siemens PLC in Deepwater Horizon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-4739095068811578636?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/4739095068811578636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=4739095068811578636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/4739095068811578636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/4739095068811578636'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2010/10/deepwater-horizon-siemens-plc-and.html' title='Deepwater Horizon, Siemens PLC and Stuxnet'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-9073021995250946862</id><published>2010-10-05T08:34:00.001-07:00</published><updated>2010-10-05T08:51:26.668-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GCD OS-X BSD'/><title type='text'>Simple "Hello World" Using Grand Central Dispatch ( BSD , OS-X )</title><content type='html'>&lt;p&gt;&lt;br /&gt;Simple piece of &lt;a href="http://en.wikipedia.org/wiki/Grand_Central_Dispatch"&gt;GCD&lt;/a&gt; code:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#include "stdio.h"&lt;br /&gt;#include &amp;lt;dispatch/dispatch.h&amp;gt;&lt;br /&gt;#include &amp;lt;Block.h&amp;gt;&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;   dispatch_queue_t dq;&lt;br /&gt;&lt;br /&gt;   dq = dispatch_queue_create("HelloWorld", NULL);&lt;br /&gt;&lt;br /&gt;   dispatch_block_t block = ^{printf("===========Hello world.\n");};&lt;br /&gt;&lt;br /&gt;   dispatch_async(dq,block);&lt;br /&gt;&lt;br /&gt;   dispatch_main();&lt;br /&gt;&lt;br /&gt;   return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/block.h&gt;&lt;/dispatch&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-9073021995250946862?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/9073021995250946862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=9073021995250946862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/9073021995250946862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/9073021995250946862'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2010/10/simple-hello-world-using-grand-central.html' title='Simple &quot;Hello World&quot; Using Grand Central Dispatch ( BSD , OS-X )'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-6114292301044153950</id><published>2010-10-01T16:17:00.000-07:00</published><updated>2010-10-04T08:24:04.099-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Stuxnet Work Security Network Systems'/><title type='text'>Shtting Down Stuxnet in Infected Systems</title><content type='html'>A possible approach to remove Stuxnet is to create an &lt;a href="http://en.wikipedia.org/wiki/Antibody"&gt;anti-body&lt;/a&gt; superior in its "resilience" in comparison to the Stuxnet malware itself.&lt;br /&gt;&lt;br /&gt;The anti-body should be just as "infective" if not more, i.e. it must be possible to have it installed in all relevant systems on the network, in a manner similar to Stuxnet itself.&lt;br /&gt;&lt;br /&gt;Spreading like a manner similar to Stuxnet itself, and possiblly in a more viral manner, the anti-bodies will disable Stuxnet for garbage collection.&lt;br /&gt;&lt;br /&gt;This seems like the best approach to me when it comes to super-infections. At least that's how it happens in our bodies.&lt;br /&gt;&lt;br /&gt;Iran has made some interesting advances in drug invention and production.&lt;br /&gt;&lt;br /&gt;I will not be surprised to see Iran become a leader or a leading partner in the production of cyber anti-bodies that work against malware from cyber criminals.&lt;br /&gt;&lt;br /&gt;By the way, my conjecture is that those who created the Stuxnet -- whose operations are essentially akin to biological warfare -- have most probably also created some anti-bodies.&lt;br /&gt;&lt;br /&gt;Of course, there's an art in creating anti-bodies and in immunology.&lt;br /&gt;&lt;br /&gt;That same art needs to be applied here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-6114292301044153950?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/6114292301044153950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=6114292301044153950' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/6114292301044153950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/6114292301044153950'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2010/10/best-way-to-disinfect-stuxnet.html' title='Shtting Down Stuxnet in Infected Systems'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-6214100653637831639</id><published>2010-09-02T14:53:00.001-07:00</published><updated>2010-09-02T14:54:53.702-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Closures Lambda Calculus Closure Logic Languages Programming'/><title type='text'>Project Lambda and JDK 1.7</title><content type='html'>&lt;a href="http://cr.openjdk.java.net/~mr/lambda/straw-man/"&gt;Project lambda&lt;/a&gt; is very cool, and developers cannot wait to see it released as part of the JDK.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-6214100653637831639?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/6214100653637831639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=6214100653637831639' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/6214100653637831639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/6214100653637831639'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2010/09/project-lambda-and-jdk-17.html' title='Project Lambda and JDK 1.7'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-6142646596263107651</id><published>2010-06-01T00:05:00.000-07:00</published><updated>2010-06-01T00:07:07.227-07:00</updated><title type='text'>Lucandra and HBasene</title><content type='html'>&lt;a href="http://github.com/akkumar/hbasene"&gt;HBasene&lt;/a&gt; . . . Lucene with HBase Backend for the Distributed Index . . .&lt;br /&gt;&lt;br /&gt;&lt;a href="http://github.com/tjake/Lucandra"&gt;Lucandra&lt;/a&gt; . . . Lucene with Cassandra Backend for Distributed Index . . .&lt;br /&gt;&lt;br /&gt;Lucandra should give the best deal when it comes to ease of administration and operation. In the long-run it should also give very good performance, with some extra partitioning plug-in work as needed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-6142646596263107651?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/6142646596263107651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=6142646596263107651' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/6142646596263107651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/6142646596263107651'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2010/06/lucandra-and-hbasene.html' title='Lucandra and HBasene'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-5021468342132072524</id><published>2010-05-31T14:26:00.000-07:00</published><updated>2010-05-31T14:29:41.095-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Language GCD'/><title type='text'>Rough Java Implementation of GCD</title><content type='html'>Produced a rough Java implementation of &lt;a href="http://www.apple.com/macosx/technology/#grandcentral"&gt;Grand Central Dispatch&lt;/a&gt; APIs -- at this point, only the "classic" API forms, not the ones that rely on code block (or "closure") concept.  JDK 6 doesn't support closures.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-5021468342132072524?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/5021468342132072524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=5021468342132072524' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/5021468342132072524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/5021468342132072524'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2010/05/rough-java-implementation-of-gcd.html' title='Rough Java Implementation of GCD'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-6810697595278865778</id><published>2010-05-31T14:22:00.000-07:00</published><updated>2010-05-31T14:31:23.701-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apache Cassandra AWS EBS EC2 Cloud Computing'/><title type='text'>Lots of Tests with Casssandra</title><content type='html'>I have been doing some tests comparing the speed of EC2 "local" file manipulation vs.  speed of EC2 EBS volume file manipulation. The difference is significant. I have also been doing lots of tests with Cassandra, including some with Cassandra deployed on EC2 and on EC2 with EBS, all at AWS. Interesting results. Cassandra delivers most everything it promises as far as replication, partitioning and recovery are concerned. Pluggability of partitioning and replica placement strategies are a definite plus. It would be good to have some more pluggability in data file format and composition. This will be harder but worthwhile to accomplish.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-6810697595278865778?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/6810697595278865778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=6810697595278865778' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/6810697595278865778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/6810697595278865778'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2010/05/lots-of-tests-with-casssandra.html' title='Lots of Tests with Casssandra'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-2321219886515763249</id><published>2010-02-19T15:31:00.000-08:00</published><updated>2010-02-19T15:37:19.236-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Distributed Computing Design Parallel Concurrency Development Architecture Algorithms Databases Storage'/><title type='text'>Cassandra &amp; Distributed File System</title><content type='html'>Unlike &lt;a href="http://hadoop.apache.org/hbase/"&gt;HBase&lt;/a&gt;, &lt;a href="http://incubator.apache.org/cassandra/"&gt;Cassandra&lt;/a&gt; has no dependencies on a distributed file system. However, in a sense it implements a partitioned strategy that effectively replaces any (otherwise) required hard dependence on distributed file system capabilities.&lt;br /&gt;&lt;br /&gt;This statement should not be taken as an endorsement of one or the other. Instead, it is simply an important architectural observation that directly impacts the overall system architecture.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-2321219886515763249?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/2321219886515763249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=2321219886515763249' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/2321219886515763249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/2321219886515763249'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2010/02/cassandra-distributed-file-system.html' title='Cassandra &amp; Distributed File System'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-367003558556723259</id><published>2010-02-01T14:16:00.000-08:00</published><updated>2010-02-01T14:18:18.946-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Combiner Hadoop Map-Reduce Programming Development'/><title type='text'>Hadoop Combiners and Map-Reduce</title><content type='html'>According to the Hadoop documentation, a Hadoop Combiner can be used to speedup Hadoop Map-Reduce if the Reduce function is both commutative and associative. It would be interesting to write a program that introspects a Hadoop Reduce function to draw a conclusion regarding the validity of this constraint for the use of Hadoop Combiner but it will not be trivial.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-367003558556723259?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/367003558556723259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=367003558556723259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/367003558556723259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/367003558556723259'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2010/02/hadoop-combiners-and-map-reduce.html' title='Hadoop Combiners and Map-Reduce'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-1978374781152615177</id><published>2010-01-19T12:55:00.000-08:00</published><updated>2010-01-19T12:58:54.927-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing Berkeley UC Economics Technology Adoption Growth'/><title type='text'>Cloud Computing--No Single Point of Failure</title><content type='html'>A UC Berkeley &lt;a href="http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.html"&gt;technical report on cloud computing&lt;/a&gt; observes:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Just as large Internet service providers use multiple network providers so that failure by a single company will not take them off the air, we believe the only plausible solution to very high availability is multiple Cloud Computing providers. The high-availability computing community has long followed the mantra “no single source of failure,” yet the management of a Cloud Computing service by a single company is in fact a single point of failure. Even if the company has multiple datacenters in different geographic regions using different network providers, it may have common software infrastructure and accounting systems, or the company may even go out of business. Large customers will be reluctant to migrate to Cloud Computing without a business-continuity strategy for such situations. We believe the best chance for independent software stacks is for them to be provided by different companies, as it has been difficult for one company to justify creating and maintain two stacks in the name of software dependability&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;Read more of the report for other astute observations.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-1978374781152615177?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/1978374781152615177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=1978374781152615177' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/1978374781152615177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/1978374781152615177'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2010/01/cloud-computing-no-single-point-of.html' title='Cloud Computing--No Single Point of Failure'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-4404103763945911705</id><published>2010-01-18T18:42:00.001-08:00</published><updated>2010-01-18T18:44:54.065-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Distributed Computing Amazon S3 Design Parallel Concurrncy Development Architecture'/><title type='text'>Design Principles for Modern Distributed Systems</title><content type='html'>The design principles used for Amazon's S3 are generally applicable to modern distributed systems design. Quoting&lt;a href="http://aws.amazon.com/s3/#principles"&gt; the S3 design principles&lt;/a&gt;:&lt;br /&gt;&lt;h1&gt;Amazon S3 Design Principles&lt;/h1&gt;         &lt;p&gt;The following principles of distributed system design were used to meet Amazon S3 requirements:&lt;/p&gt;    &lt;ul&gt;&lt;li&gt;&lt;strong&gt;Decentralization:&lt;/strong&gt; Use fully decentralized techniques to remove scaling bottlenecks and single points of failure.&lt;/li&gt;&lt;/ul&gt;    &lt;ul&gt;&lt;li&gt;&lt;strong&gt;Asynchrony:&lt;/strong&gt; The system makes progress under all circumstances.&lt;/li&gt;&lt;/ul&gt;    &lt;ul&gt;&lt;li&gt;&lt;strong&gt;Autonomy:&lt;/strong&gt; The system is designed such that individual components can make decisions based on local information.&lt;/li&gt;&lt;/ul&gt;    &lt;ul&gt;&lt;li&gt;&lt;strong&gt;Local responsibility:&lt;/strong&gt; Each individual component is responsible for achieving its consistency; this is never the burden of its peers.&lt;/li&gt;&lt;/ul&gt;    &lt;ul&gt;&lt;li&gt;&lt;strong&gt;Controlled concurrency:&lt;/strong&gt; Operations are designed such that no or limited concurrency control is required.&lt;/li&gt;&lt;/ul&gt;    &lt;ul&gt;&lt;li&gt;&lt;strong&gt;Failure tolerant:&lt;/strong&gt; The system considers the failure of components to be a normal mode of operation, and continues operation with no or minimal interruption.&lt;/li&gt;&lt;/ul&gt;    &lt;ul&gt;&lt;li&gt;&lt;strong&gt;Controlled parallelism:&lt;/strong&gt; Abstractions used in the system are of such granularity that parallelism can be used to improve performance and robustness of recovery or the introduction of new nodes.&lt;/li&gt;&lt;/ul&gt;    &lt;ul&gt;&lt;li&gt;&lt;strong&gt;Decompose into small well-understood building blocks:&lt;/strong&gt; Do not try to provide a single service that does everything for everyone, but instead build small components that can be used as building blocks for other services.&lt;/li&gt;&lt;/ul&gt;    &lt;ul&gt;&lt;li&gt;&lt;strong&gt;Symmetry:&lt;/strong&gt; Nodes in the system are identical in terms of functionality, and require no or minimal node-specific configuration to function.&lt;/li&gt;&lt;/ul&gt;    &lt;ul&gt;&lt;li&gt;&lt;strong&gt;Simplicity:&lt;/strong&gt; The system should be made as simple as possible (but no simpler).&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-4404103763945911705?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/4404103763945911705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=4404103763945911705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/4404103763945911705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/4404103763945911705'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2010/01/design-principles-for-modern.html' title='Design Principles for Modern Distributed Systems'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-2368870341292941148</id><published>2010-01-17T21:29:00.000-08:00</published><updated>2010-01-18T00:49:52.400-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Utility Cloud-Computing SaaS PaaS Cloud'/><title type='text'>Elasticity in Cloud Computing</title><content type='html'>As Berkeley computer scientists have noted in &lt;a href="http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.html"&gt;a recent technical report&lt;/a&gt;, cloud computing (as utility) providers bring an economics where "using 1000 servers for one hour costs no more than using one server for 1000 hours."  Economically, this translates into an elasticity of resources" without paying a premium for large scale ... unprecedented in the history of IT."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-2368870341292941148?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/2368870341292941148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=2368870341292941148' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/2368870341292941148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/2368870341292941148'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2010/01/elasticity-in-cloud-computing.html' title='Elasticity in Cloud Computing'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-1542497840495921586</id><published>2010-01-17T21:22:00.000-08:00</published><updated>2010-01-17T21:23:27.739-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AWS GAE'/><title type='text'>Interactive GAE / AWS application</title><content type='html'>Out of pure curiosity, it would be interesting to build applications with applications parts interacting with both GAE and AWS at the same time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-1542497840495921586?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/1542497840495921586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=1542497840495921586' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/1542497840495921586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/1542497840495921586'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2010/01/interactive-gae-aws-application.html' title='Interactive GAE / AWS application'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-8781022601744507352</id><published>2010-01-04T08:08:00.001-08:00</published><updated>2010-01-04T08:14:38.276-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL Source Windows Build'/><title type='text'>Building PostgreSQL on Windows</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.postgresql.org/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 230px; height: 80px;" src="http://4.bp.blogspot.com/_52ysiS4RTp0/S0ITxZqeuLI/AAAAAAAAAJE/9dQd8BDed80/s320/hdr_left.png" alt="" id="BLOGGER_PHOTO_ID_5422918640731076786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;img src="file:///C:/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/moz-screenshot.png" alt="" /&gt;&lt;img src="file:///C:/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/moz-screenshot-1.png" alt="" /&gt;If you want to get and build PostgreSQL on Windows, try using the "git" repositories &lt;a href="http://www.postgresql.org/docs/current/static/cvs.htm"&gt;here&lt;/a&gt;. The repository that works with the anonymous cvs is apparently the root repository and the "git" ones are "mirrors" but it turns out that the root cvs repository has some Windows end-of-line characters that cause the build to fail. The repository you can access through "git" seems to be missing these and the build goes through. You need to ensure your cygwin installation includes readline, bison and flex.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-8781022601744507352?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/8781022601744507352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=8781022601744507352' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/8781022601744507352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/8781022601744507352'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2010/01/building-postgresql-on-windows.html' title='Building PostgreSQL on Windows'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_52ysiS4RTp0/S0ITxZqeuLI/AAAAAAAAAJE/9dQd8BDed80/s72-c/hdr_left.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-4329894555474535781</id><published>2009-12-10T10:15:00.000-08:00</published><updated>2009-12-10T10:58:50.575-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GCD Scala Concurrency'/><title type='text'>A Brief Comparision of Concurrency in Grand Central Dispatch (GCD) and in Scala</title><content type='html'>This is a first, brief note on the general similarities and differences in how concurrency constructs in Apple's GCD (Grand Central Dispatch) compare with similar constructs in Scala.&lt;br /&gt;&lt;br /&gt;Both Scala and GCD require &lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;Closures / Code Blocks&lt;/span&gt; &lt;/span&gt;as well as &lt;span style="font-style: italic; font-weight: bold;"&gt;Mutability / Immutability&lt;/span&gt; as the language-level foundation for their concurrency models.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Scala has supported closures (or code blocks) and mutability declarations as basic primitives in its more general functional extension to Java.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Apple has proposed the addition of elements to the C language that would bring support for code blocks and mutability to the standard C language. Apple has also modified the GCC 4.2 (C compiler) to accommodate the addition of these elements. Apple has made these modifications available under the MIT license. Apple has used these extensions in OS-X 10.6.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Both Scala and GCD support an &lt;span style="font-weight: bold;"&gt;event driven&lt;/span&gt; concurrency model.&lt;br /&gt;&lt;br /&gt;Both Scala and GCD support "&lt;span style="font-weight: bold;"&gt;segmented programming&lt;/span&gt;". The segmented programming model is very popular and the accepted norm in GUI programming, where the developer implements, essentially, a series of call-backs that are called in response to various GUI events. Segmented programming model is an excellent model when we wish to support concurrent execution, as is often the case with GUI development. (For more on segmented programming model, see presentation Ulf Lange and I gave in Java One 2002.)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The major difference&lt;/span&gt; between GCD and Scala concurrency model is that GCD relies on &lt;span style="font-style: italic; font-weight: bold;"&gt;dispatch/queue&lt;/span&gt; paradigm while Scala relies on &lt;span style="font-style: italic; font-weight: bold;"&gt;message/actor&lt;/span&gt; paradigm.&lt;br /&gt;&lt;br /&gt;I believe &lt;span style="font-weight: bold;"&gt;any complexity&lt;/span&gt; in using either GCD or Scala has to do primarily with learning the proper  use of closures and immutability.&lt;br /&gt;&lt;br /&gt;There are&lt;span style="font-weight: bold;"&gt; a few other things&lt;/span&gt; that separate GCD and Scala.&lt;br /&gt;&lt;br /&gt;Scala is &lt;span style="font-weight: bold;"&gt;a natural evolution of Java&lt;/span&gt; as Java was a natural evolution of C or C++. For this reason, Scala provides familiar grounds to the Java programmer. It will be very familiar to Java programmers who are willing to learn about functional features as well as more complete static typing in Scala which helps with program conciseness.  (As a Java programmer, I could not put down the first Scala book I picked up. All enhancements, modifications and changes that Scala has brought with respect to Java make sense, and the resulting conciseness in Scala proves to be a blessing when it comes to development work.)&lt;br /&gt;&lt;br /&gt;GCD relies not only on the &lt;span style="font-weight: bold;"&gt;C language extension&lt;/span&gt; Apple has proposed (and the C compiler changes it has made available under a very permissive licensing model) but also on the specific APIs for GCD. These APIs are particular suited to the Objective-C and Mac OS-X environment. However, the major part of GCD API can be implemented in all environments and all of it will make sense in any Unix/Linux based system.&lt;br /&gt;&lt;br /&gt;It would be good to see Apple's proposed changes to the C language adopted by the standards committee that looks over C.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-4329894555474535781?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/4329894555474535781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=4329894555474535781' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/4329894555474535781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/4329894555474535781'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2009/12/brief-comparision-of-concurrency-in.html' title='A Brief Comparision of Concurrency in Grand Central Dispatch (GCD) and in Scala'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-6917630411864983167</id><published>2009-12-08T21:53:00.000-08:00</published><updated>2009-12-08T21:54:12.942-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scala Java'/><title type='text'>Natural Evolution ...</title><content type='html'>C--&gt;C++--&gt;Java--&gt;Scala&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-6917630411864983167?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/6917630411864983167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=6917630411864983167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/6917630411864983167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/6917630411864983167'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2009/12/natural-evolution.html' title='Natural Evolution ...'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-3348689435982719899</id><published>2009-12-03T08:52:00.001-08:00</published><updated>2009-12-03T09:00:23.910-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Any Nothing Scala Type Computers Languages Java Reasoning Verification'/><title type='text'>Any, Nothing, Scala and Java</title><content type='html'>The type verification engine in Scala outdoes the one in Java.&lt;br /&gt;&lt;br /&gt;To enable this relative strength, Scala has defined, among other features, a &lt;span style="font-style:italic;"&gt;closed&lt;/span&gt; type system, with the inclusion of "&lt;span style="font-weight:bold;"&gt;Any&lt;/span&gt;" and "&lt;span style="font-weight:bold;"&gt;Nothing&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;"Any" is the super-type of all types. This is nothing new. Java has this, too, essentially speaking. &lt;br /&gt;&lt;br /&gt;"Nothing" is the subtype of all types. When it comes to classic and modern type theory, there's nothing new about "Nothing" either. However, "Nothing"-ness is revolutionary new when thinking of how Java has treated types.  &lt;br /&gt;&lt;br /&gt;Java designers -- perhaps for the sake of the love of trees (I mean "trees" as a graph concept) and the love of "simplicity" of type system that characterizes OS and language designers wish to serve common programmers in general -- did not stipulate "Nothing". Had they done so, we would have had a completely different language in its characteristics from what became Java. &lt;br /&gt;&lt;br /&gt;"Nothing" is a simple change but the consequences on the type system and language features are widespread.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-3348689435982719899?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/3348689435982719899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=3348689435982719899' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/3348689435982719899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/3348689435982719899'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2009/12/any-nothing-scala-and-java.html' title='Any, Nothing, Scala and Java'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-4398967785805733352</id><published>2009-11-26T17:13:00.000-08:00</published><updated>2009-11-26T17:27:31.773-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hadoop Hive Video'/><title type='text'>Hadoop Tutorial in a virtual machine</title><content type='html'>Cloudera virtual machine can be used to play with Hive and HDFS environment. See &lt;a href="http://vimeo.com/3598672"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-4398967785805733352?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/4398967785805733352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=4398967785805733352' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/4398967785805733352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/4398967785805733352'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2009/11/hadoop-tutorial-in-virtual-machine.html' title='Hadoop Tutorial in a virtual machine'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-3422615272733381940</id><published>2009-11-16T23:04:00.000-08:00</published><updated>2009-11-16T23:06:03.459-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java Mac Ports Versions JDK OS-X Leopard'/><title type='text'>Configuring Java and JDK on Snow-Leopard</title><content type='html'>You can find the best explanations and backward configurations at &lt;a href="http://wiki.oneswarm.org/index.php/OS_X_10.6_Snow_Leopard"&gt;http://wiki.oneswarm.org/index.php/OS_X_10.6_Snow_Leopard&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-3422615272733381940?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/3422615272733381940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=3422615272733381940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/3422615272733381940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/3422615272733381940'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2009/11/configuring-java-and-jdk-on-snow.html' title='Configuring Java and JDK on Snow-Leopard'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-4462842798816806223</id><published>2009-11-14T23:54:00.001-08:00</published><updated>2009-11-14T23:56:47.557-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='map-reduce code programming big-table hadoop Java'/><title type='text'>Who says Java is slow?</title><content type='html'>"Slowness of Java" proved to be a myth even back in 1996-1997, when Java ORBs kept beating C++ orbs in various RPC benchmarks.&lt;br /&gt;&lt;br /&gt;Consider also, that in July 2008, Hadoop won the Terabyte Sort Benchmark: One of Yahoo's Hadoop clusters sorted 1 terabyte of data in 209 seconds. This beat the previous record of 297 seconds in the annual general purpose (Daytona) terabyte sort benchmark. &lt;br /&gt;&lt;br /&gt;It was the first time that either a Java or an open source program had ever won.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-4462842798816806223?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/4462842798816806223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=4462842798816806223' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/4462842798816806223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/4462842798816806223'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2009/11/who-says-java-is-slow.html' title='Who says Java is slow?'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-1881381462412849832</id><published>2009-05-28T14:44:00.001-07:00</published><updated>2009-05-28T14:45:46.716-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code repository'/><title type='text'>Using SVN to find diffs on repositories</title><content type='html'>Try something like the following :&lt;br /&gt;&lt;br /&gt;       svn diff -r779768:779000&lt;br /&gt;&lt;br /&gt;which will produce file names and diffs between those two revision numbers of a code repository under svn control.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-1881381462412849832?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/1881381462412849832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=1881381462412849832' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/1881381462412849832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/1881381462412849832'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2009/05/using-svn-to-find-diffs-on-repositories.html' title='Using SVN to find diffs on repositories'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-7592093966548070506</id><published>2009-05-16T16:47:00.001-07:00</published><updated>2009-05-16T16:47:23.863-07:00</updated><title type='text'>SOA . . . Is that All ?</title><content type='html'>&lt;b&gt; I originally wrote this entry on October 5, 2004, and published it on blogs.sun.com.&lt;br /&gt;&lt;/b&gt;&lt;p&gt;&lt;br /&gt;So, do I really get to cook &lt;a href="http://webservices.xml.com/pub/a/ws/2003/09/30/soa.html" target="_blank"&gt;SOA&lt;/a&gt; with these &lt;a href="http://www.fawcette.com/weblogicpro/2004_09/magazine/features/akadiyala/" target="_blank"&gt;10 ingredients&lt;/a&gt;? On ingredient number 6 (Governance), at least, I'd recommend &lt;a href="http://www.oup.com/us/catalog/general/subject/Economics/Industrial/?view=usa&amp;ci=0195132602" target="_blank"&gt;another look&lt;/a&gt;.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-7592093966548070506?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/7592093966548070506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=7592093966548070506' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/7592093966548070506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/7592093966548070506'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2009/05/soa-is-that-all.html' title='SOA . . . Is that All ?'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-5016539090527926542</id><published>2009-05-11T10:15:00.000-07:00</published><updated>2009-05-11T10:21:40.090-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Economics Business Support Services Production'/><title type='text'>Production or Maintenance &amp; Support</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://oreilly.com/catalog/9780596001087/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 111px; height: 173px;" src="http://covers.oreilly.com/images/9780596001087/cat.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;In &lt;a href="http://oreilly.com/catalog/9780596001087/"&gt;&lt;span style="font-style: italic;"&gt;The Cathedral &amp;amp; The Bazaar&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://www.catb.org/%7Eesr/"&gt;Eric S. Raymond&lt;/a&gt; estimates that 75% to 90% of software business *effort* is not spent on the production of "products" but on support and maintenance of software products and systems. The sources of Raymond's claim are interesting in themselves ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-5016539090527926542?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/5016539090527926542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=5016539090527926542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/5016539090527926542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/5016539090527926542'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2009/05/production-or-maintenance-support.html' title='Production or Maintenance &amp; Support'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-8686737461840201874</id><published>2009-05-10T16:16:00.001-07:00</published><updated>2009-05-11T10:23:27.432-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Cognition'/><category scheme='http://www.blogger.com/atom/ns#' term='Bugs'/><title type='text'>Bugs Lead to Existential Questions</title><content type='html'>&lt;b&gt;&lt;br /&gt;I originally wrote this entry on September 30, 2004, and published it on blogs.sun.com.&lt;/b&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;There are &lt;a href="http://mitpress.mit.edu/catalog/item/default.asp?tid=4595&amp;amp;ttype=2" target="_blank"&gt;some&lt;/a&gt; who believe that we only switch from our "being" mode to our "thinking" mode of existence when something breaks down.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Let me give an example to make things clear.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Say, you're walking in  &lt;a href="http://www.centralpark.org/"&gt;Central Park&lt;/a&gt; in New York City towards a bench to sit for a moment.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;As you do this, you're not constantly thinking: "Oh, this is a bench; now I'm 10 yards from it; it has 4 legs; it is painted green ; now I'm 4 hards from it; it is made of wooden planks and the legs are steel, etc. . . ." (Are Central Park benches green and made of wooden planks and steel? Or are they coming in concrete these days?)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;If we thought in this fashion and of all these details, we'll go mad very quickly. Instead, we simply go and sit on the bench and enjoy the fresh air. That's what I like to call the "being" mode of existence.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Now, if the bench breaks beneath you as you sit, it will probably lead you to fall.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;At that point, you will start going over everything that is supposed to make it a bench and wonder what went wrong, what "broke," what was not as it &lt;i&gt;was&lt;/i&gt; to be. That's what I like to call the "thinking" mode of existence. A mode that deals with &lt;i&gt;bugs&lt;/i&gt; in the existential environment.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;So, it should be no wonder that the best way to start learning and thinking about existing, complex code and the process around its production, is to start by debugging it. Once the code is known and navigable, we become comfortable and at &lt;i&gt;home&lt;/i&gt;, returning to the "being" mode. We become the code and know it as us.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Which mode is prior to the other? For which mode are we best tuned? Which is a "better" mode? Is code a place to &lt;i&gt;be&lt;/i&gt; or a place to &lt;i&gt;think&lt;/i&gt;? Is code even a &lt;i&gt;place&lt;/i&gt;?&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;I don't know the answers to these questions.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;What I do know is that every software engineer (or urban professional for that matter) needs to get out some times to see the world, take a bicycle ride (&lt;a href="http://blogs.sun.com/roller/page/MortazaviBlog/20040924#325_miles_a_week_for" target="_blank"&gt;1&lt;/a&gt;, &lt;a href="http://blogs.sun.com/roller/page/chrisg/20040925#well_that_put_me_in" target="_blank"&gt;2&lt;/a&gt;) or go on a simple stroll in the park, to sit on a bench, preferably made of wooden planks that won't break.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-8686737461840201874?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/8686737461840201874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=8686737461840201874' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/8686737461840201874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/8686737461840201874'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2009/05/bugs-lead-to-existential-questions.html' title='Bugs Lead to Existential Questions'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-8622434251602159268</id><published>2009-05-08T00:36:00.001-07:00</published><updated>2009-05-08T00:36:59.003-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dialog'/><title type='text'>Open Source Society</title><content type='html'>&lt;b&gt;I originally wrote this entry on September 19, 2004 and published it on blogs.sun.com.&lt;/b&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;We (and this does not include just the U.S.) are already an open-source society to a very large extent. &lt;i&gt;Information&lt;/i&gt; is widely available for those who care to find out and &lt;a href="http://web.mit.edu/linguistics/www/chomsky.home.html"&gt;some&lt;/a&gt; have proven it possible to do so by their own example.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;However, open &lt;a href="http://blogs.sun.com/roller/page/MortazaviBlog/20040917#plato_on_writing_to_forget"&gt;dialogue&lt;/a&gt; matters well above and beyond open source.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://www.lessig.org/blog/archives/002166.shtml"&gt;Mixing&lt;/a&gt;, on the importance of which to innovation Lawerence Lessig has built &lt;a href="http://www.free-culture.cc/"&gt;a whole case&lt;/a&gt;, is simply an instance of open dialogue.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Open-source (widely available) information might be a pre-requisite for substantive dialogue but it neither replaces or guarantees it nor leads to it.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Finally, there're those who believe that what matters most is not cyber-dialogue but committed, emboddied dialogue and responsible action, as &lt;a href="http://blogs.sun.com/roller/search/MortazaviBlog?q=Hubert+Dreyfus"&gt;Hubert Dreyfus&lt;/a&gt; has noted in his analysis of the Internet.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-8622434251602159268?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/8622434251602159268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=8622434251602159268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/8622434251602159268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/8622434251602159268'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2009/05/open-source-society.html' title='Open Source Society'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-8045383703697484973</id><published>2009-05-08T00:34:00.001-07:00</published><updated>2009-05-08T00:34:26.241-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open-Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Dialog'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Economics'/><title type='text'>Open Dialogue Code</title><content type='html'>&lt;b&gt;I originally wrote this entry on September 19, 2004 and published it on blogs.sun.com.&lt;/b&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;It's funny how certain corporate strategists pay more detailed attention to the press than to their own corporate purpose. (Some may even believe that all their problems stem from bad press.)&lt;br /&gt;&lt;p&gt;&lt;br /&gt;So, now we read in the reports (&lt;a href="http://www.reuters.com/newsArticle.jhtml?type=technologyNews&amp;storyID=6273912&amp;src=rss/technologyNews&amp;section=news"&gt;Reuters&lt;/a&gt; and the &lt;a href="http://online.wsj.com/article/0,,SB109563132729521759,00.html?mod=home_whats_news_us"&gt;WSJ&lt;/a&gt;) that Microsoft has decided to open source its Office software to certain governments and under certain conditions. The same reports say that Microsoft has apparently done this to combat the advances of Linux, its "open-source" desk-top OS rival.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;font color="blue"&gt;&lt;br /&gt;Under the program, Microsoft doesn't completely lift the veil. Governments are able to see 90% of the source code. The bulk of the rest is code where a third party owns the copyright, according to Microsoft. The company also holds back from exposing code that relates to antipiracy technology. &lt;/font&gt; (&lt;a href="http://online.wsj.com/article/0,,SB109563132729521759,00.html?mod=home_whats_news_us"&gt;The WSJ, Sept. 20, 2004&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Even if source code is to be shared with more governments and under much less strict conditions, the strategic threat that Microsoft faces will persist. The problem is not an inability to see the code but an inability to participate in the dialog that ends up in it.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;As I've said &lt;a href="http://blogs.sun.com/roller/page/MortazaviBlog/20040917#the_evolutionary_advantage_of_open"&gt;earlier&lt;/a&gt;, what matters is not openness of the source (whatever that means) but the openness of the dialogue about the source code, its use and evolution. &lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;And here is another question worth thinking about. Would government regulations around the world ask for "open-source" code or "open-dialog" code? Most probably, it would be the former because "open-source" is a property more measurable.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-8045383703697484973?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/8045383703697484973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=8045383703697484973' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/8045383703697484973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/8045383703697484973'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2009/05/open-dialogue-code.html' title='Open Dialogue Code'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-6806491963962571227</id><published>2009-04-17T01:40:00.000-07:00</published><updated>2009-04-17T01:42:16.319-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java JavaOne Programming Educators Students Code Development'/><title type='text'>A Real Student Bargain for JavaOne 2009</title><content type='html'>&lt;a href="http://java.sun.com/javaone/2009/students_and_educators/index.jsp"&gt;&lt;img alt="09J1_300x250_v2-1.gif" src="http://weblogs.java.net/blog/mortazavi/archive/09J1_300x250_v2-1.gif" width="300" height="250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/javaone/2009/students_and_educators/index.jsp"&gt;This year, JavaOne let's students get in free!&lt;/a&gt;  &lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Plus, they can sign up for CommunityOne at the same time.  &lt;br /&gt;Both passes are full conference passes with access to everything!  &lt;br /&gt;Educators can also get in free when they bring 10 students with them to the conference.  &lt;br /&gt;If they aren't able to do this, they still get a fantastic deal of $895 for a full conference pass.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;What is a Full Pass? &lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;All the benefits of a FULL conference attendee, which includes: JavaOne general and technical sessions, panel discussions, HOLs (Hands-on-labs), BOFs (Birds-of-a-feather), the Pavilion and the After Dark Bash / Networking Mixer!  Not to mention a "hang space" (which includes video games, movies &amp; more!), plus you will be able to check email any time at one of our many hacker stations.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;PLUS&lt;/b&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Admission to the CommunityOne Deep-Dives.  What does this mean?  FREE training by our very own SLS on some really great topics, plus hugely discounted certification (vouchers will be handed out at the event)- certification can even be done on-site!  There will also be numerous parties and chances for you to network with the best and brightest in the industry, from community leaders to "Rockstars" and everyone in between.&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-6806491963962571227?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/6806491963962571227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=6806491963962571227' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/6806491963962571227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/6806491963962571227'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2009/04/real-student-bargain-for-javaone-2009.html' title='A Real Student Bargain for JavaOne 2009'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-7769640620014184806</id><published>2009-03-31T11:23:00.001-07:00</published><updated>2009-03-31T11:26:11.557-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ideas code Google Summer GSoC MySQL Database Programming Software Technology'/><title type='text'>Ideas from MySQL for Google Summer of Code 2009</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://forge.mysql.com/wiki/SummerOfCode2009Ideas"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 151px; height: 126px;" src="http://forge.mysql.com/w/images/8/8e/Sakila_Beach_256x213-2009.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Check out the &lt;a href="http://forge.mysql.com/wiki/SummerOfCode2009Ideas"&gt;ideas from MySQL for Google Summer of Code 2009&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-7769640620014184806?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/7769640620014184806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=7769640620014184806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/7769640620014184806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/7769640620014184806'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2009/03/ideas-from-mysql-for-google-summer-of.html' title='Ideas from MySQL for Google Summer of Code 2009'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-8801516962158519054</id><published>2009-03-26T23:25:00.001-07:00</published><updated>2009-03-26T23:25:17.111-07:00</updated><title type='text'>The Evolutionary Advantage of Open Source Software</title><content type='html'>&lt;b&gt;&lt;br /&gt;I originally wrote this entry on September 17, 2004, and published it on blogs.sun.com.&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;The evolutionary advantage of open source software rests not on the openness of the source code but on the openness of dialog it engenders, an openness which is often too hard to create without available, open source code.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Within the context of open &lt;a href="http://blogs.sun.com/roller/page/MortazaviBlog/?anchor=leading_thoughts_vs_leading_dialogues"&gt;dialog&lt;/a&gt;, learning occurs naturally, and ideas progress with minimal transaction costs.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-8801516962158519054?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/8801516962158519054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=8801516962158519054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/8801516962158519054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/8801516962158519054'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2009/03/evolutionary-advantage-of-open-source.html' title='The Evolutionary Advantage of Open Source Software'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-7255866829083526841</id><published>2009-03-26T22:39:00.001-07:00</published><updated>2009-03-26T22:39:17.604-07:00</updated><title type='text'>Digital Rights Management, Where is the Big Question</title><content type='html'>&lt;b&gt;I originally wrote this entry on September 7, 2004, and published it on blogs.sun.com.&lt;/b&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;font size="100" color="blue"&gt;Digital &lt;/font&gt;&lt;br /&gt;&lt;/td&gt; &lt;br /&gt;&lt;td&gt;&lt;br /&gt;Rights Management (DRM) is one of the big technology questions web engineers have to deal with today. [For some introductory material, see this &lt;a href="http://www.dcita.gov.au/drm/"&gt;Australian Government guide to DRM&lt;/a&gt;. Also, ACM has held &lt;a href="http://crypto.stanford.edu/DRM2002/"&gt;some workshops on DRM&lt;/a&gt;.]&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;In my view, a workable DRM system should allow some reasonable amount of content sharing. [&lt;a name="sharing"&gt;See my notes on content sharing&lt;/a&gt;: &lt;a href="http://blogs.sun.com/roller/page/MortazaviBlog/20040826#to_share_or_not_to"&gt;To Share or Not to Share, That's the Question&lt;/a&gt; and &lt;a href="http://blogs.sun.com/roller/page/MortazaviBlog/20040827#to_share_or_not_to2"&gt;To Share or Not to Share (II)&lt;/a&gt;.]&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Digital content distribution services continue to grow. &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;RealNetworks, for example, reports that its content business has grown more than 50% (at $99 million) while its enterprise software business has fallen by 14% (at $26 million). This shift in revenues goes back to 2000, &lt;a href="http://online.wsj.com/article/0,,SB109398548440706097,00.html?mod=COMPANY"&gt;the WSJ reports&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Many companies see their content services as a cash cow they need to protect at any cost. They are developing propriety systems that could be perceived as closed off to other content distribution systems. On the other hand, some may argue that distribution systems need to be protected to ensure their healthy evolution.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;font color="blue"&gt;&lt;br /&gt;Looking to bridge that gap, RealNetworks recently introduced Harmony, a technology that lets consumers purchase songs on its RealPlayer Music Store site and transfer them to iPods or dozens of other players. Apple has threatened to sue RealNetworks and alter its technology to block such transfers. &lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;(&lt;a href="http://online.wsj.com/article/0,,SB109398548440706097,00.html?mod=COMPANY"&gt;Marcelo Prince, The WSJ, Sept. 1, 2004&lt;/a&gt;.)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Is it in the interest of content owners for there to exist incompatible systems of content distribution and digital rights management? &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;This is a hard question to answer. On the one hand, more incompatibiltiy means greater barriers to wanton content sharing. On the other hand, more incompatibility may mean greater reluctance to join the digital music market as a buyer. &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Finally, as I've said &lt;a href="#sharing"&gt;earlier&lt;/a&gt;, the most important question to ask in designing a DRM system, besides &lt;a href="http://www.free-culture.cc/"&gt;those very important questions related to &lt;i&gt;limited&lt;/i&gt;-term copyright issues&lt;/a&gt;, is whether the system will allow some reasonable amount of content &lt;i&gt;sharing&lt;/i&gt;. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-7255866829083526841?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/7255866829083526841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=7255866829083526841' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/7255866829083526841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/7255866829083526841'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2009/03/digital-rights-management-where-is-big.html' title='Digital Rights Management, Where is the Big Question'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-2243614548632893189</id><published>2009-03-17T21:57:00.001-07:00</published><updated>2009-03-17T21:57:01.925-07:00</updated><title type='text'>Copyright extension</title><content type='html'>&lt;b&gt;I wrote this entry, originally, on June 30, 2004.&lt;/b&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;In Chapter 13 of his most recent book, &lt;a href="http://blogs.sun.com/roller/page/MortazaviBlog/20040623#once_again_for_lessig"&gt;&lt;i&gt;Free Culture&lt;/i&gt;&lt;/a&gt;, the acclaimed &lt;a href="http://www.law.stanford.edu/"&gt;Stanford Law&lt;/a&gt; Professor &lt;a href="http://www.lessig.org/blog/"&gt;Lawrence Lessig&lt;/a&gt; has presented a critical evaluation of &lt;a href="http://en.wikipedia.org/wiki/Sonny_Bono_Copyright_Term_Extension_Act"&gt;Sonny Bono Copyright Term Extension Act&lt;/a&gt; (&lt;a href="http://www.copyright.gov/legislation/s505.pdf"&gt;CTEA&lt;/a&gt;) passed by the 105th Congress. &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Lessig first provides a constitutional analysis of the copyright protection, emphasizing the part of the "Progress Clause" that stipulates a limited term for exclusive rights assigned to authors:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Congress has the power to promote the Progress of Science . . . &lt;br /&gt;by securing for limited Times to Authors . . . exclusive Right &lt;br /&gt;to their  . . . Writings . . . &lt;br /&gt;(Section 8, Clause 8 of the &lt;a href="http://www.house.gov/Constitution/Constitution.html"&gt;U.S. Constitution&lt;/a&gt;)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Lessig's basic point is that one cannot keep extending copyright protection and still remain faithful to the Progress Clause.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Lessig then notes that if we limit ourselves to the first 25 years of the works affected by &lt;a href="http://www.copyright.gov/legislation/s505.pdf"&gt;CTEA&lt;/a&gt;, we see that only 2 percent of that work has any commercial value. (Lessig, p. 221)&lt;br /&gt;&lt;br /&gt;Lessig describes how copyright term extensions can lead to disappearance of pieces of our culture which are of great significance but which may not be commercially active. He describes the high cost of obtaining copyright information regarding commercially inactive works and the legal risks of publishing them without clear findings on their copyright status. Those costs and risks, along the copyright extensions given by congress seem poised to lead to the disappearance of large chunks of American culture.  &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Of all creative work produced by humans anywhere, a tiny fraction &lt;br /&gt;has continuing commercial value. For that tiny fraction, the copyright &lt;br /&gt;is a crucially important legal device. For that tiny fraction, the &lt;br /&gt;copyright creates incentives to produce and distribute the creative &lt;br /&gt;work. For that tiny fraction, the copyright acts as an "engine of &lt;br /&gt;free expression."&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;But even for that tiny fraction, the actual time during which the &lt;br /&gt;creative work has a commercial life is extremely short . . . [M]ost &lt;br /&gt;books go out of print within one year. The same is true of music and &lt;br /&gt;film. Commerical culture is sharklike. It must keep moving. And when &lt;br /&gt;a creative work falls out of favor with the commercial distributors, &lt;br /&gt;the commercial life ends.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Yet that doesn't mean the life of the creative work ends. We don't &lt;br /&gt;keep libraries of books in order to compete with Barnes &amp; Noble, &lt;br /&gt;and we don't have archives of films because we expect people to &lt;br /&gt;choose between spending Friday night watching new movies and &lt;br /&gt;spending Friday night watching a 1930 news documentary . . . To &lt;br /&gt;understand who we are, and where we came from, and how we have made &lt;br /&gt;mistakes that we have, we need to have access to this history.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-2243614548632893189?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/2243614548632893189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=2243614548632893189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/2243614548632893189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/2243614548632893189'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2009/03/copyright-extension.html' title='Copyright extension'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-258456390293072165</id><published>2009-02-04T22:20:00.000-08:00</published><updated>2009-02-04T22:22:11.259-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL Conference Databases Open-Source'/><title type='text'>MySQL Conference and Expo</title><content type='html'>Just got this from a friend:&lt;br /&gt;&lt;blockquote&gt;Registration for the 2009 MySQL Conference &amp;amp; Expo is now open!  - April&lt;br /&gt;20-23, 2009, Santa Clara, California. - Register by February 16, 2009, and&lt;br /&gt;save $200! &lt;/blockquote&gt;&lt;a href="http://www.mysqlconf.com/"&gt;www.mysqlconf.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-258456390293072165?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/258456390293072165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=258456390293072165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/258456390293072165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/258456390293072165'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2009/02/mysql-conference-and-expo.html' title='MySQL Conference and Expo'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-8113751894707410482</id><published>2007-10-21T20:51:00.000-07:00</published><updated>2007-10-21T20:53:35.823-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java Sony-Ericsson Mobile Devices'/><title type='text'>Sony Ericsson P1i support for Java</title><content type='html'>Sony Ericsson covers some very good Java ground:&lt;br /&gt;&lt;br /&gt;Both CDC and CLDC environments supported:&lt;br /&gt;CLDC 1.1 JARs supported:&lt;br /&gt;    * JTWI 1.0 (JSR 185) consisting of Connected Limited Device&lt;br /&gt;    * Configuration (CLDC) 1.1 HI (JSR 139), MIDP 2.0 (JSR 118), WMA 1.1 (JSR 120)&lt;br /&gt;    * PDA Optional Packages (JSR 75)&lt;br /&gt;    * Bluetooth™ (JSR 82)&lt;br /&gt;    * Wireless Messaging API 2.0 (JSR 205)&lt;br /&gt;    * Web Services (JSR 172)&lt;br /&gt;    * Mobile Media API (JSR 135) Mobile 3D Graphics (JSR 184) with hardware acceleration&lt;br /&gt;    * Scalable 2D Vector Graphics API for J2ME (JSR 226)&lt;br /&gt;    * Nokia UI API 1.1&lt;br /&gt;CDC 1.0 JARs supported:&lt;br /&gt;    * Foundation Profile 1.0 (JSR 46)&lt;br /&gt;    * Personal Profile 1.0 (JSR 62)&lt;br /&gt;    * PDA Optional Packages (JSR 75)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-8113751894707410482?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/8113751894707410482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=8113751894707410482' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/8113751894707410482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/8113751894707410482'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2007/10/sony-ericsson-p1i-support-for-java.html' title='Sony Ericsson P1i support for Java'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-6811982063003059184</id><published>2007-05-28T14:27:00.000-07:00</published><updated>2007-05-28T14:32:03.969-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iMax OS-X Files Photos iLife'/><title type='text'>Mac OS-X Locking of Files</title><content type='html'>I recently upgraded my iMac w/ iLife 06, which caused my iPhoto to have trouble loading the photo library. The reason was that some files in one of the photo library folders had been locked.&lt;br /&gt;&lt;br /&gt;You can individually unlock files using the "GetInfo" command in Finder. There's a little box that needs to be unchecked in the "GetInfo" dialog box.&lt;br /&gt;&lt;br /&gt;The fastest way to unlock file contents of a folder was the following script from the command terminal:&lt;br /&gt;&lt;pre&gt;&lt;code&gt; sudo chflags -R nouchg .&lt;/code&gt;&lt;/pre&gt;The "." refers to the current folder in which the above command is being executed.&lt;br /&gt;&lt;br /&gt;The sudo command is similar to a command with which Ubuntu users are also familiar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-6811982063003059184?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/6811982063003059184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=6811982063003059184' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/6811982063003059184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/6811982063003059184'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2007/05/mac-os-x-locking-of-files.html' title='Mac OS-X Locking of Files'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-5745877161845597742</id><published>2007-05-15T22:44:00.001-07:00</published><updated>2007-05-15T22:44:34.132-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Ruby-on-Rails Development Maintenance'/><title type='text'>Maintenance vs. Development</title><content type='html'>&lt;p&gt;For a colleague (Arun Gupta) who's looking into &lt;a href="http://blogs.sun.com/arungupta/entry/getting_started_with_ruby_on" target="_blank"&gt;Ruby-on-Rails&lt;/a&gt;, I posted the following comment and question: &lt;/p&gt;&lt;blockquote&gt;&lt;p&gt; You might find APRESS' "&lt;a rel="nofollow" href="http://www.apress.com/book/bookDisplay.html?bID=10178"&gt;Begining Ruby on Rails E-Commerce&lt;/a&gt;" useful. It covers quite a bit of ground while remaining focused on a full e-commerce application, containing all that is required in such applications, except perhaps, fancy user interfaces. &lt;/p&gt;&lt;p&gt; The question that arose in my mind as I read this book and played with the ideas contained in it was whether Ruby-on-Rails programs were any easier to maintain, and in general, what was the cost involved in maintaining them. Are we losing flexibility for maintenance as we gain speed of development? &lt;/p&gt;&lt;/blockquote&gt;I should have noted that the above book focus on using Ruby-on-Rails with MySQL. PostgreSQL also supports a relatively live and active Ruby-on-Rails community, particularly in Japan, I hear. Focusing on a particular DB supports that DB community. Note that the imposition of many relational constraints often require db-specific SQL. These DB specific SQL files can easily creep onto a Ruby-on-Rails project, defeating at least some aspect of its claim to DB independence.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-5745877161845597742?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/5745877161845597742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=5745877161845597742' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/5745877161845597742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/5745877161845597742'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2007/05/maintenance-vs-development.html' title='Maintenance vs. Development'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-8736792846055650861</id><published>2007-05-15T22:42:00.000-07:00</published><updated>2007-05-15T22:43:11.452-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Economics'/><title type='text'>Software &amp; Economics</title><content type='html'>&lt;p&gt;It is good to see someone who has a relatively good understanding of Transaction Cost Economics write about the topic of open source software or software in general:&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;There was a time when a single determined individual could write the core of a single operating system for a primitive computer. But given the demands of computer applications and the capabilities of hardware technology at present, that is no longer conceivable. The task needs to be divided somehow. This immediately raises a ... core political economy question, about coordination of a division of labor within a centralized, hierarchical structure--that is, a firm. Within the firm an authority can make decisions about the division of labor and set up systems that transfer needed information back and forth between the individuals or teams that are working on particular chunks of the project. The boundaries of the firm are determined by make-or-buy decisions that follow from the logic of transaction cost economics. The system manages complexity through formal organization and explicit authority to make decisions within the firm as well as price coordination within markets between firms.&lt;/p&gt;&lt;/blockquote&gt;That's from Steven Weber's &lt;a href="http://www.hup.harvard.edu/catalog/WEBSUC.html" target="_blank"&gt;&lt;i&gt;The Success of Open Source&lt;/i&gt;&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-8736792846055650861?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/8736792846055650861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=8736792846055650861' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/8736792846055650861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/8736792846055650861'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2007/05/software-economics.html' title='Software &amp; Economics'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-4987403945018170813</id><published>2007-02-04T22:36:00.000-08:00</published><updated>2007-02-04T22:49:01.174-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rails Ruby Programming Development E-Commerce DB Constraints Entities'/><title type='text'>Foreign Keys and Views!</title><content type='html'>In their &lt;a href="http://codesigns.blogspot.com/2007/02/about-rails.html"&gt;&lt;span style="font-style: italic;"&gt;Beginning Ruby on Rails E-Commerce&lt;/span&gt;&lt;/a&gt;, Christian Hellsten and Jarkko Laine use MySQL-specific SQL code to add foreign key constraints with cascading deletes to some of the tables defined using the ActiveRecord concepts. Having done so, and in order to enforce these constraints, they resort to incorporating code, in the "view" components of their application for adding objects to the tables. These additions to the already generated views ensure that the new objects posted to the database do not violate the foreign key constraints. I'm really not sure if there are other ways to define such constraints within Rails  so that one does not need to use DB-specific SQL which obviously cannot be digested by ActiveRecord database &lt;span style="font-style: italic;"&gt;migration&lt;/span&gt; tools. If there's no such alternative, I could be tempted to conclude that ActiveRecord has features that are mis-matched to some of the assumptions behind normalization principles of relational algebra. However, I should not be this judgmental yet. I've just begun to learn about Rails.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-4987403945018170813?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/4987403945018170813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=4987403945018170813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/4987403945018170813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/4987403945018170813'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2007/02/foreign-keys-and-views.html' title='Foreign Keys and Views!'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-6080221849022550884</id><published>2007-02-04T21:21:00.000-08:00</published><updated>2007-02-04T21:22:57.785-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rails Testing Programming Logs'/><title type='text'>Tailing a log</title><content type='html'>To tail a log file during tests of a Rails application, you can try "tail -f logs/test.log". If you do a "rake" of your project, this will show the beginning and rollback of various transactions against the test database.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-6080221849022550884?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/6080221849022550884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=6080221849022550884' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/6080221849022550884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/6080221849022550884'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2007/02/tailing-log.html' title='Tailing a log'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-1632071245001084967</id><published>2007-02-04T21:11:00.000-08:00</published><updated>2007-02-04T21:15:55.452-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rails Ruby Programming Development E-Commerce'/><title type='text'>About Rails</title><content type='html'>&lt;a href="http://www.apress.com/book/bookDisplay.html?bID=10178"&gt;&lt;span style="font-style: italic;"&gt;Beginning Ruby on Rails E-Commerce&lt;/span&gt;&lt;/a&gt;, published by &lt;a href="http://www.apress.com/"&gt;APRESS,&lt;/a&gt; provides a decent, practical introduction to Rails programming model, with a very useful example than runs through the book.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-1632071245001084967?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/1632071245001084967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=1632071245001084967' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/1632071245001084967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/1632071245001084967'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2007/02/about-rails.html' title='About Rails'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-779203460311663229</id><published>2007-01-31T23:28:00.000-08:00</published><updated>2007-01-31T23:30:16.671-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaDB Apache Derby'/><title type='text'>Apache / Derby and Java DB</title><content type='html'>&lt;a href="http://wiki.apache.org/db-derby/UsesOfDerby"&gt;All the current uses of Apache / Derby&lt;/a&gt; (shipped as Java DB with the JDK, beginning with JDK 6) are truly astounding.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-779203460311663229?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/779203460311663229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=779203460311663229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/779203460311663229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/779203460311663229'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2007/01/apache-derby-and-java-db.html' title='Apache / Derby and Java DB'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-3530012979225106976</id><published>2007-01-30T23:32:00.000-08:00</published><updated>2007-01-30T23:33:08.696-08:00</updated><title type='text'>Development, The Agile Way</title><content type='html'>Scrum is a light-weight agile software development process composed of &lt;i&gt;Sprints&lt;/i&gt;, during which the next release of a system is being developed. To read about Scrum see &lt;a target="_blank" href="http://www.controlchaos.com/"&gt;ControlChaos&lt;/a&gt; and &lt;a target="_blank" href="http://www.mountaingoatsoftware.com/scrum"&gt;MountainGoatSoftware&lt;/a&gt;. (MountainGoatSoftware's Scrum page summarizes things quite nicely in the first paragraph on the top.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-3530012979225106976?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/3530012979225106976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=3530012979225106976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/3530012979225106976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/3530012979225106976'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2007/01/development-agile-way.html' title='Development, The Agile Way'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-116345261521196624</id><published>2006-11-13T13:14:00.000-08:00</published><updated>2006-11-13T13:16:55.220-08:00</updated><title type='text'>Sun Microsystems Inc. Opens Java</title><content type='html'>See my posts &lt;a href="http://blogs.sun.com/MortazaviBlog/entry/watch_it"&gt;here&lt;/a&gt; and &lt;a href="http://sun.com/javanews"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-116345261521196624?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/116345261521196624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=116345261521196624' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/116345261521196624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/116345261521196624'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2006/11/sun-microsystems-inc-opens-java.html' title='Sun Microsystems Inc. Opens Java'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-115778308737819368</id><published>2006-09-08T23:23:00.000-07:00</published><updated>2006-09-08T23:24:47.386-07:00</updated><title type='text'>On Web 2.0</title><content type='html'>Here is what &lt;a href="http://www.ft.com/cms/s/5997bcda-3f47-11db-a37c-0000779e2340,dwp_uuid=d8e9ac2a-30dc-11da-ac1b-00000e2511c8.html"&gt;a recent &lt;span style="font-style: italic;"&gt;Financial Times&lt;/span&gt; article&lt;/a&gt; says about Web 2.0 technologies:&lt;br /&gt;&lt;blockquote&gt;   &lt;p&gt;The principle behind Web 2.0 is that millions of internet users come together in cyberspace to be part of online communities. This is driven by the ubiquity of the internet – a billion people are now online and many have access to relatively cheap high-speed internet.&lt;/p&gt; There has also been a generational shift. Young people have grown up with the web and are willing to socialise and share personal information online. &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-115778308737819368?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/115778308737819368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=115778308737819368' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/115778308737819368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/115778308737819368'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2006/09/on-web-20.html' title='On Web 2.0'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-115742826077022773</id><published>2006-09-04T20:44:00.000-07:00</published><updated>2006-09-04T20:51:00.780-07:00</updated><title type='text'>Brevity and Ruby</title><content type='html'>Code brevity can be a saving grace.&lt;br /&gt;&lt;blockquote&gt;Containers, blocks, and iterators are core concepts in Ruby. The more you write in Ruby, the more you'll find yourself moving away from conventional looping constructs. Instead, you'll write classes that support iteration over their contents. And you'll find that this code is compact, easy to read, and a joy to maintain.&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;blockquote&gt;Dave Thomas, &lt;a href="http://www.pragmaticprogrammer.com/titles/ruby/index.html"&gt;&lt;span style="font-style: italic;"&gt;Programming Ruby: The Pragmatic Programmers' Guide, 2nd Edition&lt;/span&gt;&lt;/a&gt;, 2005 (page 57)&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-115742826077022773?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/115742826077022773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=115742826077022773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/115742826077022773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/115742826077022773'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2006/09/brevity-and-ruby.html' title='Brevity and Ruby'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32355325.post-115498547776769509</id><published>2006-08-07T14:13:00.000-07:00</published><updated>2006-08-07T14:19:18.790-07:00</updated><title type='text'>Learning to Program -- Code Sample</title><content type='html'>Here's the Ruby code for the second exercise in "&lt;a href="http://pine.fm/LearnToProgram/?Chapter=04"&gt;Mixing it Up&lt;/a&gt;" chapter of Chris Pine's &lt;a href="http://pine.fm/LearnToProgram/"&gt;Learn to Program&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt; puts '=====Your favorite number======='&lt;br /&gt;puts 'What\'s your favorite number?'&lt;br /&gt;fnum=gets.chomp&lt;br /&gt;puts 'Have you considered changing your favoriate number to '+x=(fnum.to_i+1).to_s&lt;br /&gt;puts  'Why not choose the number  '+x+' which is not only bigger but also better!'&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32355325-115498547776769509?l=codesigns.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://codesigns.blogspot.com/feeds/115498547776769509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32355325&amp;postID=115498547776769509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/115498547776769509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32355325/posts/default/115498547776769509'/><link rel='alternate' type='text/html' href='http://codesigns.blogspot.com/2006/08/learning-to-program-code-sample.html' title='Learning to Program -- Code Sample'/><author><name>Masood Mortazavi</name><uri>http://www.blogger.com/profile/08360285774352781059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://farm1.static.flickr.com/148/375252015_9f07ff733f_m.jpg'/></author><thr:total>0</thr:total></entry></feed>
