<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;Ak4HQ3c8fyp7ImA9WhRRFE4.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953</id><updated>2011-11-27T19:08:52.977-05:00</updated><title>notes on computing</title><subtitle type="html">function, design, form and value</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://jfzarama.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/NotesOnComputing" /><feedburner:info uri="notesoncomputing" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;A0AAQHc_fSp7ImA9WhdaE0o.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-1943804015861384500</id><published>2011-10-11T02:29:00.028-04:00</published><updated>2011-10-23T10:22:21.945-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-23T10:22:21.945-04:00</app:edited><title>the battle to control JavaScript</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://pragprog.com/book/tbcoffee/coffeescript" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://imagery.pragprog.com/products/219/tbcoffee_xlargecover.jpg?1304278335" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://jashkenas.github.com/coffee-script/"&gt;CoffeeScript&lt;/a&gt; is a relative new programming language. &lt;br /&gt;
&lt;br /&gt;
I was skeptical about exploring yet one more programming language and in this case one that compiles to another language, JavaScript.&lt;br /&gt;
&lt;br /&gt;
JavaScript is probably the most used programming language; it is the software technology used by every &lt;i&gt;web browser&lt;/i&gt; to render interactive information and applications.&lt;br /&gt;
&lt;br /&gt;
The number of devices depending on JavaScript include desktops, laptops and a great percentage of mobile devices and smartphones. The total number easily adds up to more than a billion devices and likely up to 2-billion have a JavaScript engine installed; so, why CoffeeScript?&lt;br /&gt;
&lt;br /&gt;
Each browser has a different interpreter software of JavaScript code, code that is not guaranteed to execute properly on all the tens if not hundreds of JavaScript implementations available today. This is a big problem given the vast dependency on JavaScript as the language of the &lt;i&gt;web&lt;/i&gt;; at least for the presentation and interactiveness of &lt;i&gt;web&lt;/i&gt;-based applications running on billions of devices.&lt;br /&gt;
&lt;br /&gt;
CoffeeScript makes it easier to write and produce &lt;i&gt;correct&lt;/i&gt; JavaScript; by correct it is meant code that follows identified best practices and that has greater probability of correct execution across different JavaScript implementations.&lt;br /&gt;
&lt;br /&gt;
The subject goes beyond producing good JavaScrit; it involves the need to simplify the programming labour, increase productivity and quality of the resultant code and streamlining the process by using the same language on the client device &lt;i&gt;and&lt;/i&gt; on the server.&lt;br /&gt;
&lt;br /&gt;
JavaScript is now the &lt;i&gt;de-facto&lt;/i&gt; standard to present information and applications on billions of devices.&lt;br /&gt;
&lt;br /&gt;
JavaScript is also being used outside client devices; it is now used on the server. See &lt;a href="http://nodejs.org/"&gt;node.js&lt;/a&gt; as an example of a JavaScript &lt;i&gt;server&lt;/i&gt; based technology. This direction to use JavaScript on the &lt;i&gt;server&lt;/i&gt; adds to the need for increased productivity and improved quality of generated JavaScript. No longer used as a &lt;i&gt;client&lt;/i&gt; component only but used to write much larger and complex computing tasks on the &lt;i&gt;server&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
Enter Google. &lt;a href="http://www.dartlang.org/"&gt;Google recently introduced a new programming language, Dart&lt;/a&gt;. Dart compiles also to JavaScript in addition to offering its own processing environment available now on the Dart site and soon to be available on Google's &lt;i&gt;browser&lt;/i&gt;, Chrome.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://googlecode.blogspot.com/2011/10/dart-language-for-structured-web.html"&gt;Google's blog introducing Dart&lt;/a&gt; outlines three main goals for the language:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt; Create a structured yet flexible language for web programming.&lt;/li&gt;
&lt;li&gt;Make Dart feel familiar and natural to programmers and thus easy to learn.&lt;/li&gt;
&lt;li&gt;Ensure that Dart delivers high performance on all modern web browsers and environments ranging from small handheld devices to server-side execution.&lt;/li&gt;
&lt;/ul&gt;Note the reference to 'server-side execution' meaning a language targeted to address the &lt;i&gt;server&lt;/i&gt; side as well as the &lt;i&gt;client&lt;/i&gt; side. &lt;br /&gt;
&lt;br /&gt;
Reading about Google's Dart, one may also conclude that Google may be seeking distance from Java and from Oracle's control over Java and accompanying &lt;a href="http://www.groklaw.net/"&gt;lawsuits&lt;/a&gt;; Google has &lt;a href="http://golang.org/"&gt;Go&lt;/a&gt; and now &lt;a href="http://www.dartlang.org/"&gt;Dart&lt;/a&gt; as recently introduced programming languages.&lt;br /&gt;
&lt;br /&gt;
Back to CoffeeScript. It is easy to like CoffeeScript; it is simple, easy to learn and it has a functional flavour to its syntax. It is an alternate and a better way to produce consistent and correct JavaScript, at least better than the one I can write for use on web-based applications, CouchDB, node.js and the ever growing list of JavaScript based tools. &lt;br /&gt;
&lt;br /&gt;
There are several articles and blogs detailing the strengths and weaknesses of CoffeeScript; &lt;a href="http://lepahc.com/five-reasons-you-should-use-coffeescript"&gt;this blog offers an outline of the good parts&lt;/a&gt;, namely:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;it is easy to learn&lt;/li&gt;
&lt;li&gt;it is easier to type than JavaScript&lt;/li&gt;
&lt;li&gt;it helps you better understand JavaScript&lt;/li&gt;
&lt;li&gt;it produces better JavaScript than you could by coding JavaScript directly&lt;/li&gt;
&lt;/ul&gt;&lt;a href="http://screencasts.org/episodes/introduction-to-coffeescript"&gt;I found this screen-cast&lt;/a&gt; and accompanying text samples very useful for understanding and learning CoffeeScript.&lt;br /&gt;
&lt;br /&gt;
Update&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Dart&lt;/b&gt;. I had a quick look at Google's Dart. There are many things to like about Dart including the Erlang-like message driven concurrency implementation. However, the syntax is, should I say it, conventional; looks like an updated Java or C-like syntax.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CoffeeScript&lt;/b&gt;. CoffeeScript has a functional syntax, simple and arguably easier to learn for someone unfamiliar with C-like languages.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Uninspiring isn’t always a bad thing.&lt;/b&gt; &lt;a href="http://runningwithrails.com/2011/10/uninspiring-isnt-always-a-bad-thing/"&gt;This blog&lt;/a&gt; offers a balanced assessment of Dart and its potential acceptance as a programming language.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Book. &lt;/b&gt;The Little Book on CoffeeScript offers a good &lt;a href="http://arcturo.github.com/library/coffeescript/index.html"&gt;introduction to the language&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4165955808390880953-1943804015861384500?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Jb3C0F1JLzaizVXsXsd5Tzv67Po/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Jb3C0F1JLzaizVXsXsd5Tzv67Po/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Jb3C0F1JLzaizVXsXsd5Tzv67Po/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Jb3C0F1JLzaizVXsXsd5Tzv67Po/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/JDxJE8r8odc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/1943804015861384500/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=1943804015861384500" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/1943804015861384500?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/1943804015861384500?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/JDxJE8r8odc/battle-to-controll-javascript.html" title="the battle to control JavaScript" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2011/10/battle-to-controll-javascript.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08CRXg7fSp7ImA9WhZVGU4.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-4567907369056041131</id><published>2011-05-14T01:40:00.061-04:00</published><updated>2011-06-01T09:44:24.605-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-01T09:44:24.605-04:00</app:edited><title>The challenge of scaling up and scaling out</title><content type="html">&lt;div class="separator" style="cursor: pointer; float: left; margin-bottom: 1em; margin-right: 1em; text-align: top;"&gt;&lt;a href="http://typesafe.com/"&gt;&lt;img border="0" height="98" src="http://2.bp.blogspot.com/-IRXKMbmToWk/Tc3WXUutKYI/AAAAAAAAAjM/Ot5ITrXJaWs/s200/ScalaAndAkka.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Additional computing capacity has been achieved by increasing the speed processors operate.&lt;br /&gt;
&lt;br /&gt;
However, the speed of light became a limiting factor for a single processing unit, a single CPU, to handle its internal electrical connections. Marginal improvements in speed certainly will be available but order of magnitude improvements from speed increases are unlikely to materialize. &lt;br /&gt;
&lt;br /&gt;
To increase computing capacity, hardware vendors began using additional processing units, CPUs, per chip by adding the equivalent of additional traffic lanes in a highway; same speed limit but offering more lanes and hence able to handle more traffic, more cars moving per unit of time.&lt;br /&gt;
&lt;br /&gt;
We have now &lt;b&gt;&lt;a href="http://en.wikipedia.org/wiki/Multi-core_processor"&gt;multi-CPU processing&lt;/a&gt;&lt;/b&gt; units of 2, 4, 8, 16, 32, 64 and more CPUs and soon likely will reach hundreds and probably in few years will count with thousands of CPUs in one computer unit.&lt;br /&gt;
&lt;br /&gt;
The software to tap such capacity has not evolved as fast as the hardware. It is a serious challenge to develop applications that can operate correctly while running concurrently on more than one processing unit and a challenge also to use same or similar methods to distribute work among a network of computing nodes.&lt;br /&gt;
&lt;br /&gt;
While there are proprietary and open source products to address software operation on clusters of computers, such as the widely used &lt;a href="http://en.wikipedia.org/wiki/Message_Passing_Interface"&gt;Message Passing Interface, MPI&lt;/a&gt;, in supercomputing applications, conventional programming languages lack tools and features to facilitate development of applications designed to operate correctly and efficiently by scaling within a computer unit, scaling up, and scaling out by distributing work among participating computing nodes. &lt;br /&gt;
&lt;br /&gt;
The programming languages listed below receive attention these days partly because of corresponding claims of design, features and functions related to operating on multiprocessor systems and related constructs for concurrency and scalability.&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;a href="http://www.scala-lang.org/"&gt;Scala&lt;/a&gt;&lt;/b&gt;. Excerpt from Scala's home page: "Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages, enabling Java and other programmers to be more productive."&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;a href="http://clojure.org/"&gt;Clojure&lt;/a&gt;&lt;/b&gt;. Excerpt from Clojure's home page: "Clojure is a dynamic programming language that targets the Java Virtual Machine (and the CLR ). It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multi-threaded programming."&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;a href="http://www.erlang.org/"&gt;Erlang&lt;/a&gt;&lt;/b&gt;. Excerpt from Erlang's home page: "Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability. Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang's run-time system has built-in support for concurrency, distribution and fault tolerance."&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;A recent development in the Scala community is the introduction of the &lt;b&gt;&lt;a href="http://akka.io/"&gt;Akka&lt;/a&gt;&lt;/b&gt; library that offers concurrency models and APIs for applications to operate correctly in a multi-CPU environment, but offers also APIs to go beyond one computing node and distribute work among participating nodes in a network. Akka's concurrency and distributed models and software constructs look and feel as it were a port of Erlang to Scala.&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;We believe that writing correct concurrent, fault-tolerant and scalable applications is too hard. Most of the time it's because we are using the wrong tools and the wrong level of abstraction. &lt;br /&gt;
&lt;br /&gt;
Akka is there to change that. Using the &lt;b&gt;&lt;a href="http://en.wikipedia.org/wiki/Actor_model"&gt;Actor Model&lt;/a&gt;&lt;/b&gt; together with Software Transactional Memory we raise the abstraction level and provide a better platform to build correct concurrent and scalable applications.&lt;br /&gt;
&lt;br /&gt;
Actors also provides the abstraction for transparent distribution and the basis for truly scalable and fault-tolerant applications. &lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;A further development just announced this week is the partnership of the creator of Scala, &lt;b&gt;&lt;a href="http://twitter.com/#%21/odersky"&gt;Martin Odersky&lt;/a&gt;&lt;/b&gt;, and the creator of Akka, &lt;b&gt;&lt;a href="http://twitter.com/#%21/jboner"&gt;Jonas Bonér&lt;/a&gt;&lt;/b&gt;, to form the company named &lt;b&gt;&lt;a href="http://typesafe.com/"&gt;Typesafe&lt;/a&gt;&lt;/b&gt; offering an open source integration of Scala and Akka.&lt;br /&gt;
&lt;br /&gt;
The software integration represented by Typesafe is good news to Scala and Java developers by offering an integrated set of tools, documentation, training and consulting in the area of applying concurrency constructs to build correct and efficient applications in muti-CPU and distributed computing environments.&lt;br /&gt;
&lt;br /&gt;
The Akka library offers the Scala and Java APIs. Using the library one is certainly pleased to see the strong influence of Erlang.&lt;br /&gt;
&lt;br /&gt;
Another Scala and Java library addressing the ability to scale up and out is &lt;b&gt;&lt;a href="http://www.gridgain.com/"&gt;GridGain&lt;/a&gt;&lt;/b&gt;. Here are excerpts re library from GridGain's home page.&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;GridGain 3.0 is the industry JVM-based &lt;b&gt;post-functional&lt;/b&gt; distributed middleware that combined traditional object-oriented programming approach with comprehensive functional programming support.&lt;br /&gt;
&lt;br /&gt;
GridGain is a High Performance Cloud Computing software that enables development of high performance Java and Scala applications that scale up on any grid or cloud infrastructure.&lt;br /&gt;
&lt;br /&gt;
GridGain provides state of the art implementations for compute grids, data grids, and zero deployment. You can develop with GridGain using Java or Scala programming languages - both of which are supported natively. &lt;br /&gt;
&lt;br /&gt;
The result - is a powerful, flexible and highly expressive APIs that are simple and productive to use.&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Also this week we saw the introduction of Google's &lt;a href="http://golang.org/"&gt;&lt;b&gt;Go programming language&lt;/b&gt;&lt;/a&gt; at Google's I/O conference in San Francisco.&lt;br /&gt;
&lt;br /&gt;
Google presents Go as designed specifically for concurrency and distribution and included as a third language alternative to Google's App Engine service: Python, Java and now, Go.&lt;br /&gt;
&lt;br /&gt;
It appears that the software world is gradually catching up to benefit from the availability of tens, hundreds and even thousands of parallel computing lanes in one node and scale out by distributing work among participating computing nodes in a network.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4165955808390880953-4567907369056041131?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/45Wt2x1uZ6bLJSHUR5HiDShOOPg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/45Wt2x1uZ6bLJSHUR5HiDShOOPg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/45Wt2x1uZ6bLJSHUR5HiDShOOPg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/45Wt2x1uZ6bLJSHUR5HiDShOOPg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/4_DzS5_aig0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/4567907369056041131/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=4567907369056041131" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/4567907369056041131?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/4567907369056041131?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/4_DzS5_aig0/challenge-of-scaling-up-and-scaling-out.html" title="The challenge of scaling up and scaling out" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-IRXKMbmToWk/Tc3WXUutKYI/AAAAAAAAAjM/Ot5ITrXJaWs/s72-c/ScalaAndAkka.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2011/05/challenge-of-scaling-up-and-scaling-out.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMMRH48fCp7ImA9WhZTGU0.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-1885402907406154470</id><published>2010-12-25T12:14:00.045-05:00</published><updated>2011-03-23T14:21:25.074-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-23T14:21:25.074-04:00</app:edited><title>Towards a paperless world: eBooks are here to stay</title><content type="html">&lt;a href="http://en.wikipedia.org/wiki/E-book" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5554669524578666850" src="http://4.bp.blogspot.com/_6m1GwPz8e34/TRYmgLEzCWI/AAAAAAAAAd0/jhFqZ92d5lQ/s200/eBook.png" style="cursor: pointer; float: left; height: 144px; margin: 0pt 10px 10px 0pt; width: 200px;" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span"&gt;Over the last few years I have purchased several electronic books in the form of PDF files. &lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;I find the PDF format quite useful and indeed better than printed books particularly when reading science, math, software and technology related documents since it allows me to Copy &amp;amp; Paste items for testing and prototyping while reading. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;This feature of Copy and Paste I find it very useful; it is an active and experimental learning experience unavailable using conventional paper format.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;eBooks change not only the reading experience but probably more importantly the authoring and review process of creating, editing, publishing and distributing books.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;For schools and universities, both for faculty and students, this interactiveness, validation and experimentation represent a unique way to author, learn, document and review, thereby enhancing, communicating and validating in realtime, activities possible today by using mobile phones, tablets, laptops and desktops in the classroom, lab, office, bus and at home.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;In fact the evolution of eBooks may morph with other electronic developments and media and possibly transform into a much more different experience than today's eBooks; much more interactive and likely resembling applications self-contained and optionally connected to external resources offering more than passive text rendering and including features and functions adding value, effectiveness and productivity in a number of disciplines such as in health, education, science, math, language, chemistry, and transportation to mention few areas of applicability.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Licensing is difficult. The PDF books I have indicate clearly they are licensed to me; a watermark and text along the bottom of each page say so; however, they can be copied and distributed; enforcing of the license is a problem for authors and publishers.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Browsing through amazon.com I found Stephen Hawking's latest book, &lt;a href="http://www.amazon.com/The-Grand-Design-ebook/dp/B003TXSF5C/"&gt;The Grand Design&lt;/a&gt;, for $9.74 unavailable in PDF format but available in Amazon's proprietary format: Kindle.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;I was not about to buy yet another electronic proprietary gadget to read a book; however, I found Amazon offers free &lt;a href="http://www.amazon.com/gp/help/customer/display.html/ref=sv_kinc_8?ie=UTF8&amp;amp;nodeId=200127470"&gt;Kindle readers for a variety of platforms including the Mac&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Few minutes later and $9.74 allowed me to commence reading Hawking's latest book using my MacBook Pro, a bright and very legible platform for reading electronic content.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Some lessons I learnt from this experience include the following points:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;I prefer PDF format for eBooks&lt;/b&gt;. Using a PDF I have a file that I can read using any of the technologies I use. It allows me to Copy and Paste content such as sample source code which is now the majority of the eBook content I read.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;Amazon's Kindle is subscription based&lt;/b&gt;. You purchase books housed in Amazon's cloud; you do not store nor own a file such as when obtaining a PDF or ePub book. The Kindle unit and readers for various platforms connect to the Amazon's cloud, download the book to be stored internally within the reader, and rendered using a Kindle or readers for various platforms. The Kindle reader in both the Mac and MS Windows are very good but read only Kindle books. The system is good but closed; I prefer an open format accepted by the industry to be used universally as we do for text files, Web pages, PDF documents among other formats. However, using a subscription model and using a proprietary format, Amazon is able to better control licensing and avoid copying books. Kindle does not support Copy &amp;amp; Paste.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;ePub&lt;/b&gt;. ePub is an open file standard for documents; files have the extension of .&lt;i&gt;epub&lt;/i&gt; and there are various utilities to convert from text, MS Word, PDF, etc. to ePub format. See the Wikipedia entries for &lt;a href="http://en.wikipedia.org/wiki/EPUB"&gt;ePub&lt;/a&gt; and for &lt;a href="http://en.wikipedia.org/wiki/International_Digital_Publishing_Forum"&gt;International Digital Publishing Forum&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Given my limited experience reading books using electronic media, I see a trend evolving towards &lt;i&gt;eBooks&lt;/i&gt; that may result in more new books appearing and distributed in electronic media than paper and some books may be produced only in electronic format for subjects such as textbooks, software, R&amp;amp;D and industry specific. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Mobile phones, laptops, tablets and other electronic appliances may influence the direction towards certain new books, magazines, etc. appearing only in electronic format as is the case for Internet based content. In that case, new information is already available only in electronic media thus contributing towards the desired but elusive paperless world for information exchange.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;I found a good summary and chronology for eBooks and related developments at &lt;a href="http://en.wikipedia.org/wiki/E-book"&gt;Wikipedia&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;Update&lt;/b&gt;. &lt;a href="http://www.guardian.co.uk/world/richard-adams-blog/2011/jan/28/amazon-kindle-ebook-paperback-sales"&gt;See reference&lt;/a&gt; to news that Amazon's &lt;i&gt;eBook&lt;/i&gt; sales surpass paperbacks for the first time. For each 100 conventional books, Amazon sells 115 &lt;i&gt;eBooks&lt;/i&gt;, should I say, &lt;a href="http://en.wikipedia.org/wiki/Amazon_Kindle"&gt;Kindle formatted&lt;/a&gt; books&lt;i&gt;.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span"&gt;&lt;b&gt;Update&lt;/b&gt;. Article re subject:&amp;nbsp;&lt;a href="http://gigaom.com/2011/03/23/marc-parrish-barnes-noble/"&gt;As E-book Sales Explode, Consumption Patterns Change&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4165955808390880953-1885402907406154470?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CrPJhuLzQjU0rVaCzgXg_Q8_aIc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CrPJhuLzQjU0rVaCzgXg_Q8_aIc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CrPJhuLzQjU0rVaCzgXg_Q8_aIc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CrPJhuLzQjU0rVaCzgXg_Q8_aIc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/6zV5AMxYBkA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/1885402907406154470/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=1885402907406154470" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/1885402907406154470?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/1885402907406154470?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/6zV5AMxYBkA/towards-paperless-world-ebooks-are-here.html" title="Towards a paperless world: eBooks are here to stay" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_6m1GwPz8e34/TRYmgLEzCWI/AAAAAAAAAd0/jhFqZ92d5lQ/s72-c/eBook.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2010/12/towards-paperless-world-ebooks-are-here.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQCQ3o8eSp7ImA9Wx5WE0s.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-428829071458721945</id><published>2010-09-20T21:25:00.013-04:00</published><updated>2010-09-24T17:39:22.471-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-24T17:39:22.471-04:00</app:edited><title>Clojure: a functional language</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.amazon.com/Programming-Clojure-Pragmatic-Programmers-Halloway/dp/1934356336"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 200px;" src="http://3.bp.blogspot.com/_6m1GwPz8e34/TJgLW8x15bI/AAAAAAAAAaU/W_2AV1zchO4/s200/programming-clojure.jpg" alt="" id="BLOGGER_PHOTO_ID_5519173832242750898" border="0" /&gt;&lt;/a&gt;Much is talked about emerging computer languages and lately I have spent time trying two of these tools, &lt;a href="http://www.scala-lang.org/"&gt;Scala&lt;/a&gt; and &lt;a href="http://clojure.org/"&gt;Clojure&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I find these two languages very useful for several applications and I like each for different reasons and attempt to keep current with related blogs and information items. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unfortunately, there are insufficient spare milliseconds in a day available for reading, exploring and applying these emerging computing utensils.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Among the promises of these new programming tools is a better way to express an algorithm and capabilities to tap computing concurrency on multi-CPU computing platforms.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A key property of Scala and Clojure is that they are called &lt;a href="http://en.wikipedia.org/wiki/Functional_programming"&gt;functional languages&lt;/a&gt;; a definition of functional I prefer for a programming language is this:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;a functional language makes programming centered around functions easy and natural&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;Should you be interested in Clojure, &lt;a href="http://www.ibm.com/developerworks/java/library/wa-clojure/index.html"&gt;&lt;span class="Apple-style-span"&gt;IBM's DeveloperWorks&lt;/span&gt;&lt;/a&gt; has a good and informative article on the concurrency features of Clojure; DeveloperWorks also includes this &lt;a href="http://www.ibm.com/developerworks/opensource/library/os-eclipse-clojure/"&gt;introduction to the language&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;As mentioned earlier, the most popular programming languages offer some very basic concurrency features: threads and locks. For example, Java 5 and 6 introduced numerous new utility APIs for concurrency, but most of these were either utilities built on threads and locks, such as thread pools and various types of locks; or they were data structures with better concurrency/performance characteristics. There was no change to the fundamentals of how to design concurrent programs. You still have to solve the same puzzles, and the solutions are just as brittle. You just have less boilerplate code to write.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Clojure is fundamentally different in all respects. It does not give you the usual primitives, threads and locks. Instead you get entirely different concurrent programming models that include no mention of threads or locks. Notice the use of the word models—plural. Clojure has four different concurrency models. Each one of these models can be considered an abstraction on top of threads and locks. Let's take a look at each of these concurrency models, starting with the simplest one: vars.&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4165955808390880953-428829071458721945?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ztcBlzSJ8rK94z8ortm5D5zM7sg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ztcBlzSJ8rK94z8ortm5D5zM7sg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ztcBlzSJ8rK94z8ortm5D5zM7sg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ztcBlzSJ8rK94z8ortm5D5zM7sg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/pLqUubAit8o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/428829071458721945/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=428829071458721945" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/428829071458721945?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/428829071458721945?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/pLqUubAit8o/clojure-functional-language.html" title="Clojure: a functional language" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_6m1GwPz8e34/TJgLW8x15bI/AAAAAAAAAaU/W_2AV1zchO4/s72-c/programming-clojure.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2010/09/clojure-functional-language.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8GQnw_cCp7ImA9WxFaFUw.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-2627191519321719915</id><published>2010-07-16T17:00:00.105-04:00</published><updated>2010-07-18T23:40:23.248-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-18T23:40:23.248-04:00</app:edited><title>Jaguar tops list of 500 supercomputers</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.nccs.gov/jaguar/"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 157px;" src="http://3.bp.blogspot.com/_6m1GwPz8e34/TEE_29YQnFI/AAAAAAAAAYE/OxPr1Kjjs-o/s200/jaguar.jpg" alt="" id="BLOGGER_PHOTO_ID_5494743233790516306" border="0" /&gt;&lt;/a&gt;The list of the top 500 supercomputers is published every 6-months by &lt;a href="http://www.top500.org/"&gt;top500.org&lt;/a&gt;.&lt;div&gt;&lt;p&gt;The update released on June 2010 is available &lt;a href="http://www.top500.org/lists/2010/06"&gt;here&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;The highlights for this update include the entry of China in the first 10 systems; summary points are:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Jaguar ranks first&lt;/b&gt;. &lt;a href="http://www.nccs.gov/jaguar/"&gt;Jaguar&lt;/a&gt; climbs to first place displacing Roadrunner which now occupies third place behind China's &lt;a href="http://www.zdnet.com/blog/btl/chinas-nebulae-duels-us-jaguar-on-supercomputer-top-500-list/35188"&gt;Nebulae&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;b&gt;China's Nebulae is second&lt;/b&gt;. China joins the first 10-systems in the list; Nebulae ranks second in the benchmark tests and it is first in peak performance clocked at 2.98 peta-flops/s, e.g. 2.98 x 10^15 floating-point instructions per second.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Linux on commodity hardware&lt;/b&gt;. Linux maintains first place as the dominant operating system a reversal of roles with Unix that dominated the field back in 2000; today, 91% of the top-500 supercomputers run on Linux as shown in the graphic below. The hardware is based on commodity &lt;a href="http://www.intel.com/?en_US_01"&gt;Intel&lt;/a&gt; and &lt;a href="http://www.amd.com/us/Pages/AMDHomePage.aspx"&gt;AMD&lt;/a&gt; processors, all use x86-64 64-bit technology not much different than that found on conventional new desktops and laptops. Today, 91% of the top-500 supercomputers run on thousands of interconnected conventional servers, pizza-box like computing units, each containing four or more Intel or AMD cores/processors; Jaguar uses 6-core AMD Opterons.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;&lt;img src="http://chart.apis.google.com/chart?chs=300x225&amp;cht=p&amp;chd=s:8DCB&amp;chdl=Linux%3A+++91%25|Unix%3A++++++5%25|Other%3A++++3%25|MS+Windows%3A+1%25&amp;chl=Linux&amp;chma=40&amp;chtt=Operating+Systems+Distribution&amp;chts=000000,11.5" width="300" height="225" alt="Operating Systems Distribution" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;p&gt;A distribution of the top-500 supercomputers across continents is shown  below. For the Americas, the count is 290 = 282 + 7 + 1 for USA + Canada + Brazil respectively representing 290 / 500 or 58%&lt;/p&gt;&lt;br /&gt;&lt;img src="http://chart.apis.google.com/chart?chs=300x225&amp;cht=p&amp;chd=s:jSHBA&amp;chdl=Americas%3A++++58%25|Europe%3A+++++++29%25|Asia%3A+++++++++++11%25|Oceania%3A+++++1.6%25|Africa%3A+++++++++0.2%25&amp;chl=Americas&amp;chma=60&amp;chtt=Supercomputers+across+Continents&amp;chts=000000,11.5" width="300" height="225" alt="Supercomputers across Continents" /&gt;&lt;br /&gt;&lt;p&gt;A distribution among system integrators, listed as vendors in the top500.org list, is included here. The site lists 32-vendors; the graphic below shows vendors with the most entries in the published list.&lt;/p&gt;&lt;br /&gt;&lt;img src="http://chart.apis.google.com/chart?chs=300x150&amp;cht=p&amp;chd=t:39,37,14,4,3,3&amp;chdl=IBM%3A+++++39%25|HP%3A+++++++37%25|Other%3A+++14%25|Cray%3A++++++4%25|SGI%3A++++++++3%25|Dell%3A++++++++3%25&amp;chl=IBM&amp;chtt=System+Integrators+-+Vendors&amp;chts=000000,11.5" width="300" height="150" alt="System Integrators - Vendors" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;The data values released on June 2010 for hardware, Operating System (OS) and distribution of the top-500 supercomputers across countries are shown below. These stats are derived from the detailed information found at top500.org. Note that the category shown as 'Intel and AMD' is the sum of the systems listed under Intel IA-64, Intel EM64T and AMD x86-64; 455 = 5 + 401 + 49 respectively.&lt;/div&gt;&lt;/div&gt;&lt;pre&gt;&lt;br /&gt;+------------------------------------------------+&lt;br /&gt;              Top 500 Supercomputers  &lt;br /&gt;--------------------------------------------------&lt;br /&gt;no  name                          count        %&lt;br /&gt;--------------------------------------------------&lt;br /&gt;    Processor Architecture &lt;br /&gt;&lt;br /&gt;1   Intel and AMD                   455       91&lt;br /&gt;2   IBM Power                        42        8&lt;br /&gt;3   Other                             3        1&lt;br /&gt;               &lt;br /&gt;    Operating Systems      &lt;br /&gt;&lt;br /&gt;1   Linux                           455       91&lt;br /&gt;2   Unix                             23        5&lt;br /&gt;3   Other - mixed                    17        3&lt;br /&gt;4   MS Windows                        5        1&lt;br /&gt;&lt;br /&gt;    Countries              &lt;br /&gt;&lt;br /&gt;1   USA                             282       56&lt;br /&gt;2   United Kingdom                   38        8&lt;br /&gt;3   France                           27        5&lt;br /&gt;4   Germany                          24        5&lt;br /&gt;5   China                            24        5&lt;br /&gt;6   Japan                            18        4&lt;br /&gt;7   Russia                           11        2&lt;br /&gt;8   Sweden                            8        2&lt;br /&gt;9   Canada                            7        1&lt;br /&gt;10  Italy                             7        1&lt;br /&gt;11  New Zealand                       7        1&lt;br /&gt;    Other Countries                  55       11&lt;br /&gt;+------------------------------------------------+&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4165955808390880953-2627191519321719915?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/es3CiqSd0oAitAJN7qYEi_iUvkE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/es3CiqSd0oAitAJN7qYEi_iUvkE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/es3CiqSd0oAitAJN7qYEi_iUvkE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/es3CiqSd0oAitAJN7qYEi_iUvkE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/hoDUfZQCqcA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/2627191519321719915/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=2627191519321719915" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/2627191519321719915?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/2627191519321719915?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/hoDUfZQCqcA/jaguar-tops-list-of-500-supercomputers.html" title="Jaguar tops list of 500 supercomputers" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_6m1GwPz8e34/TEE_29YQnFI/AAAAAAAAAYE/OxPr1Kjjs-o/s72-c/jaguar.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2010/07/jaguar-tops-list-of-500-supercomputers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQAQHsycSp7ImA9WxFRFEg.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-7258712494576847060</id><published>2010-04-09T22:46:00.066-04:00</published><updated>2010-04-28T08:39:01.599-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-28T08:39:01.599-04:00</app:edited><title>of iPad and other promises of a paperless world</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.economist.com/business-finance/displaystory.cfm?story_id=15391134"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 152px; height: 200px;" src="http://4.bp.blogspot.com/_6m1GwPz8e34/S8AHg92i_9I/AAAAAAAAAT4/jUfNO7xb-og/s200/jobsIPad.png" alt="" id="BLOGGER_PHOTO_ID_5458371011313598418" border="0" /&gt;&lt;/a&gt;Now that the &lt;a href="http://www.apple.com/ipad/"&gt;iPad&lt;/a&gt; has arrived and the subject of various reviews and opinions, I stopped by the local Apple store and had a quick look and experienced Apple's latest product.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After few minutes and an effective introduction to the unit by one of Apple's gurus, I came to the conclusion that it is an attractive and a well designed computing appliance; an excellent industrial design example as expected from Apple: simple, intuitive, elegant; however, it is not for me.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The design, ergonomics, look, touch &amp;amp; feel exhibit the Apple-&lt;i&gt;esque&lt;/i&gt; experience, the expected result of a contemporary product of Steve Jobs and his design and engineering teams. Working with the unit and asking myself whether it could replace my mobile computing and communications tool, an Apple product, a &lt;a href="http://www.apple.com/macbookpro/design.html"&gt;MacBookPro&lt;/a&gt;. The answer is no; certainly I do not need to carry yet another unit in addition to a phone and a laptop.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, the designed target for the iPad may include casual Internet browsing, e-mail, and media player for e-books,  e-newspapers, e-magazines, video, pictures, games, etc. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Other more serious use cases may find the iPad as the tool for applications where conventional laptops, smart phones and similar units are too big or too small and generally inadequate and the tablet format may be a good fit and indeed useful such as in manufacturing, health, labs, transportation, construction, education, science, police, customs, field work, mobile point-of-sale unit in retail and other industries, GPS-based and compass guiding tour unit at museums, theme parks, golf courses, factories, universities, cities, etc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;With the introduction of the iPad, Steve Jobs' list of industrial designs and computing contributions may include the reintroduction of the tablet as a computer form factor with design characteristics for it to be applicable in several areas including applications where paper is predominately used thus commencing the ever expected &lt;i&gt;en masse&lt;/i&gt; transition to electronic media and the volume use of tablets and iPad-like devices, such as &lt;a href="http://news.cnet.com/8301-30685_3-20000034-264.html"&gt;Google's expected Chrome-based tablet&lt;/a&gt;, may finally be effective, efficient and conventional computing appliance used where newspapers, books, magazines, maps, specifications, reference and training documents,  and paper forms are used today.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For this transition to materialize, the price must come down to less than half and towards $100 dollars, and the unit, applications and application development and licensing, improved and without requiring application registration and vendor approval, fostering an open and federated rather than a &lt;a href="http://brainstormtech.blogs.fortune.cnn.com/2010/04/11/has-steve-jobs-gone-mad/"&gt;closed and centralized application ecosystem&lt;/a&gt;, for tablets, laptops, smart phones and other communications and computing devices to find &lt;i&gt;en masse&lt;/i&gt; use as media and application players and significantly reducing the need for paper. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This article &lt;a href="http://www.wired.com/magazine/2010/03/ff_tablet_levy/"&gt;How the Tablet will Change the World&lt;/a&gt; is an interesting read.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is a quote from Google's CEO, Schmidt, that illustrates the need of very affordable and even disposable devices:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;Hopefully someone else will be making the devices, we do the software. What's important now is to get the mobile architecture right. Because mobility will be the way you will provision in the future. Fast forward 5-10 years. The answer should always be mobile first. You want to have the best app on mobile....The promise of Chrome and Chrome OS is that the devices you give to employees will have 2-second boot time, will be disposable, low price.&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4165955808390880953-7258712494576847060?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/F0ur4cDs-pkOfjVhHvSs3eZI7Bk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/F0ur4cDs-pkOfjVhHvSs3eZI7Bk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/F0ur4cDs-pkOfjVhHvSs3eZI7Bk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/F0ur4cDs-pkOfjVhHvSs3eZI7Bk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/x1g-vUBdztA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/7258712494576847060/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=7258712494576847060" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/7258712494576847060?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/7258712494576847060?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/x1g-vUBdztA/of-ipad-and-other-promises-of-paperless.html" title="of iPad and other promises of a paperless world" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_6m1GwPz8e34/S8AHg92i_9I/AAAAAAAAAT4/jUfNO7xb-og/s72-c/jobsIPad.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2010/04/of-ipad-and-other-promises-of-paperless.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4HR3s4eSp7ImA9WxFaFEo.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-2159549162478032917</id><published>2010-03-18T19:24:00.122-04:00</published><updated>2010-07-18T13:42:16.531-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-18T13:42:16.531-04:00</app:edited><title>Concurrency and Functional Programming Languages</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.youtube.com/watch?v=D5kIq5dyb6o&amp;amp;NR=1"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 150px; height: 146px;" src="http://4.bp.blogspot.com/_6m1GwPz8e34/S6LaIgiBs0I/AAAAAAAAASw/66RPdKfgnfo/s200/functionalProgramming.png" alt="" id="BLOGGER_PHOTO_ID_5450158338778182466" border="0" /&gt;&lt;/a&gt;There has been much talk recently about the applicability and use of &lt;i&gt;functional&lt;/i&gt; &lt;i&gt;programming&lt;/i&gt; languages particularly in reference to concurrency of operations benefiting from multi-CPU computing technologies.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I found that to better understand programming in a &lt;i&gt;functional&lt;/i&gt; manner I should start with &lt;a href="http://en.wikipedia.org/wiki/Haskell_%28programming_language%29"&gt;Haskell&lt;/a&gt;. Haskell is the most often mentioned reference, the &lt;i&gt;de facto&lt;/i&gt;&lt;i&gt; &lt;/i&gt;standard, the purist among &lt;i&gt;functional&lt;/i&gt; languages that implement, fully or partially, &lt;a href="http://en.wikipedia.org/wiki/Lambda_calculus"&gt;Lambda Calculus&lt;/a&gt;, a kind of computational algebra introduced by &lt;a href="http://en.wikipedia.org/wiki/Alonzo_Church"&gt;Alonzo Church&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Haskell_Curry"&gt;Haskell Curry&lt;/a&gt; and others back in the 1930s.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Included below are references to the material I found most helpful in my quest to understand and use functional programming languages.&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Functional Programming. &lt;/b&gt;A good place to start is the definition of &lt;i&gt;functional programming&lt;/i&gt; found in &lt;a href="http://en.wikipedia.org/wiki/Functional_programming"&gt;Wikipedia&lt;/a&gt;. Although this &lt;a href="http://www.youtube.com/watch?v=D5kIq5dyb6o&amp;amp;NR=1"&gt;video&lt;/a&gt; is about &lt;i&gt;Clojure&lt;/i&gt;, I find it a very good reference explaining what makes a language &lt;i&gt;functional&lt;/i&gt;.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Haskell&lt;/b&gt;. I used this &lt;a href="http://learnyouahaskell.com/introduction"&gt;tutorial&lt;/a&gt; to learn Haskell. I found it a valuable reference to learn the concepts behind &lt;i&gt;functional&lt;/i&gt; &lt;i&gt;programming&lt;/i&gt;.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Clojure&lt;/b&gt;. Clojure is a &lt;a href="http://en.wikipedia.org/wiki/Lisp_%28programming_language%29"&gt;Lisp-like&lt;/a&gt; language that uses the Java JVM for run-time.  The more I study it, the more I find it useful, simple, concise. The &lt;a href="http://clojure.org/"&gt;Clojure Home&lt;/a&gt; site and &lt;a href="http://www.youtube.com/watch?v=Aoeav_T1ARU&amp;amp;feature=related"&gt;these videos&lt;/a&gt;, ten in total, were a great help. Should you want more detail, this &lt;a href="http://www.parleys.com/#id=1518&amp;amp;sl=66&amp;amp;st=5"&gt;video&lt;/a&gt; and this &lt;a href="http://java.ociweb.com/mark/clojure/article.html"&gt;article&lt;/a&gt; are very useful in learning the language. This blog includes several useful &lt;a href="http://blog.fogus.me/2010/04/06/getting-started-with-clojure/"&gt;Clojure links.&lt;/a&gt; Also, Sean Devlin has several &lt;a href="http://vimeo.com/seandevlin"&gt;informative videos&lt;/a&gt; should you be captivated by the power and elegance of Clojure.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Scala&lt;/b&gt;. Scala is a mix of &lt;i&gt;functional&lt;/i&gt; and &lt;i&gt;&lt;a href="http://en.wikipedia.org/wiki/Object-oriented_programming"&gt;object-oriented&lt;/a&gt;&lt;/i&gt;, e.g. &lt;a href="http://en.wikipedia.org/wiki/C%2B%2B"&gt;C++&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Java_%28programming_language%29"&gt;Java&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Python_%28programming_language%29"&gt;Python&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29"&gt;Microsoft's C#&lt;/a&gt;. Like Clojure, Scala uses the Java JVM for run-time. Although I find Clojure's syntax cleaner, concise, should I say elegant, I feel much more at home when using Scala, at least for now and likely the byproduct of working with non-functional languages; Scala is both &lt;i&gt;functional&lt;/i&gt; and &lt;i&gt;object-oriented&lt;/i&gt;. The place to start is the &lt;a href="http://www.scala-lang.org/"&gt;Scala Home&lt;/a&gt; site and this set of Scala &lt;a href="http://scala.sygneca.com/"&gt;reference&lt;/a&gt; links. This &lt;a href="http://www.youtube.com/watch?v=J85F2C13r4Q&amp;amp;feature=PlayList&amp;amp;p=2A4461C01B49EB98&amp;amp;index=0&amp;amp;playnext=1"&gt;presentation&lt;/a&gt; by the creator of Scala, Martin Odersky, offers a good introduction to the language. Here is&lt;a href="http://www.youtube.com/watch?v=9Hen_0HS5Ic"&gt; part-2 of Martin's presentation&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Functional Languages and Concurrency&lt;/b&gt;. This short &lt;a href="http://www.youtube.com/watch?v=sFt_wo1UFZE"&gt;video&lt;/a&gt; offers an informal insight as to why functional programming implementations are needed to achieve scalability and concurrency.&lt;/li&gt;&lt;/ul&gt;There is a pressing need to simplify the labour involved in developing applications in general, even more so for applications that are &lt;a href="http://en.wikipedia.org/wiki/Scalability"&gt;scalable&lt;/a&gt; and support high volume &lt;a href="http://en.wikipedia.org/wiki/Concurrent_computing"&gt;concurrent&lt;/a&gt; operations in a defined, effective, efficient and mathematically proven way. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The next few years will show whether &lt;i&gt;functional programming&lt;/i&gt; languages address these needs, namely productivity, scalability and concurrency, and hence adopted in volume by business applications. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Note that Microsoft has a contribution to functional languages in the form of &lt;a href="http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/"&gt;F#&lt;/a&gt;. I had a look at F# and indeed looks interesting; I will look at it in more detail; here are some references I found useful:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;why F# is a contender in the &lt;i&gt;functional programming&lt;/i&gt; space; &lt;a href="http://lorgonblog.spaces.live.com/blog/"&gt;blog&lt;/a&gt;&lt;/li&gt;&lt;li&gt;an F# introduction; &lt;a href="http://www.blogger.com/post-edit.g?blogID=4165955808390880953&amp;amp;postID=2159549162478032917"&gt;blog&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;For a lighter look at functional programming, &lt;a href="http://www.amazon.com/Mock-Mockingbird-Other-Logic-Puzzles/dp/0192801422"&gt;To Mock a Mockingbird: And Other Logic Puzzles&lt;/a&gt; offers and excellent introduction to the subject.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4165955808390880953-2159549162478032917?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2JUowRrbGfhHEk8l87PDeGukRO0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2JUowRrbGfhHEk8l87PDeGukRO0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2JUowRrbGfhHEk8l87PDeGukRO0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2JUowRrbGfhHEk8l87PDeGukRO0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/Mic61YFSeZw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/2159549162478032917/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=2159549162478032917" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/2159549162478032917?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/2159549162478032917?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/Mic61YFSeZw/concurrency-and-functional-programming.html" title="Concurrency and Functional Programming Languages" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_6m1GwPz8e34/S6LaIgiBs0I/AAAAAAAAASw/66RPdKfgnfo/s72-c/functionalProgramming.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2010/03/concurrency-and-functional-programming.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MMSXYzeCp7ImA9WxJWGUo.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-2254207247756270194</id><published>2009-06-25T17:50:00.010-04:00</published><updated>2009-06-25T21:24:48.880-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-25T21:24:48.880-04:00</app:edited><title>Roadrunner supercomputer remains on top</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://en.wikipedia.org/wiki/Roadrunner"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 160px;" src="http://1.bp.blogspot.com/_6m1GwPz8e34/SkPxIQCS6UI/AAAAAAAAARc/K97r58dElEY/s200/roadrunner.jpg" alt="" id="BLOGGER_PHOTO_ID_5351385906292123970" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The list of the top 500 supercomputers was updated and released this week by &lt;a href="http://www.top500.org/"&gt;www.top500.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/IBM_Roadrunner"&gt;Roadrunner &lt;/a&gt;remains on top and Cray's Jaguar retained the number two spot.&lt;br /&gt;&lt;br /&gt;Both of these systems are powered by AMD Quad-Core Opteron processors.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Rodarunner is clocked at 1.105 and &lt;a href="http://www.top500.org/system/details/9708"&gt;Jaguar &lt;/a&gt;at 1.059 &lt;a href="http://en.wikipedia.org/wiki/FLOPS"&gt;petaflops&lt;/a&gt; or 10^15, floating-point-operations per second.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Some key statistics include the following:&lt;/span&gt;&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Processor Architecture&lt;/span&gt;. Intel and AMD account for 88% of the listed systems: 442 = 399 + 43 or 88%.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Operating System&lt;/span&gt;. Linux is at 443 systems or 89%, Unix at 4% and MS Windows at 1%&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Vendors&lt;/span&gt;. For the first time Hewlett Packard, HP, surpassed IBM in the number of installed systems. HP has 212 or 42% and IBM 188 or 38%.&lt;br /&gt;&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/4165955808390880953-2254207247756270194?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GqNmkTp0f6rhUnYf0BcFjaMcFIs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GqNmkTp0f6rhUnYf0BcFjaMcFIs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GqNmkTp0f6rhUnYf0BcFjaMcFIs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GqNmkTp0f6rhUnYf0BcFjaMcFIs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/PaAwJ_QweCk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/2254207247756270194/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=2254207247756270194" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/2254207247756270194?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/2254207247756270194?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/PaAwJ_QweCk/roadrunner-supercomputer-still-on-top.html" title="Roadrunner supercomputer remains on top" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_6m1GwPz8e34/SkPxIQCS6UI/AAAAAAAAARc/K97r58dElEY/s72-c/roadrunner.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2009/06/roadrunner-supercomputer-still-on-top.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMNR3s8cCp7ImA9WxRTFks.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-2973207052696815470</id><published>2008-09-02T14:31:00.039-04:00</published><updated>2008-09-05T21:28:16.578-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-05T21:28:16.578-04:00</app:edited><title>Does the Internet need another browser?</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.google.com/googlebooks/chrome/index.html"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_6m1GwPz8e34/SL2GjKsyrUI/AAAAAAAAAME/VRiH0MLjccc/s200/chrome02.png" alt="" id="BLOGGER_PHOTO_ID_5241493480054893890" border="0" /&gt;&lt;/a&gt;Do we need another browser?&lt;br /&gt;&lt;br /&gt;Yes; the Internet needs a well defined standard &lt;span style="font-style: italic;"&gt;and &lt;/span&gt;reference implementation adopted and contributed by all.&lt;br /&gt;&lt;br /&gt;The browser, possibly the most used software of all times, needs a standard to address the several and varied functions it evolved to from the early &lt;span style="font-style: italic;"&gt;html&lt;/span&gt;-rendering days.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Google is introducing today more than a software product; it is a proposed common platform, reference design and implementation to collectively work and evolve a modern &lt;span style="font-style: italic;"&gt;browser&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Key&lt;span style="color: rgb(0, 0, 0);"&gt; properties of Chrome include the following:&lt;/span&gt;&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;WebKit&lt;/span&gt;. It uses a well known and well tested web rendering engine, &lt;a href="http://en.wikipedia.org/wiki/WebKit"&gt;WebKit&lt;/a&gt;, used by Safari, Nokia, Google's Android and several others.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;New Javascipt engine, V8&lt;/span&gt;. This is a development on its own, a new JavaScript engine develop by Google's Denmark group. Reportedly, benchmarks show it at the fastest JavaScript engine so far along with the redesign features to enable multi-process and multi-thread processing for browser processes: tabs.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Task isolation&lt;/span&gt;. Tabs and Plug-ins run on assigned processes. One tends to have tens of tabs open; if one crashes it generally crashes the entire application. Security and process isolation are also welcome byproducts of this design.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Offline mode built-in&lt;/span&gt;. &lt;a href="http://en.wikipedia.org/wiki/Google_gears"&gt;Gears &lt;/a&gt;is built-in resulting in offline operation for applications that use this capability; Gmail, Docs, etc, are likely to be the first applications to use it.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Open sourced&lt;/span&gt;. Means that FireFox, Safari, Opera, and yes, IE, can incorporate some or all the technology proposed by Google; everyone wins; a standard is needed and one is available for test and development.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Whether Chrome's technology is used by other browsers or not, Google has the &lt;span class="Apple-style-span" style="font-style: italic;"&gt;cloud &lt;/span&gt;and now the &lt;span class="Apple-style-span" style="font-style: italic;"&gt;cloud's &lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;client &lt;/span&gt;resulting in a formidable software combination through which to deliver services independent of platform and form factors as Chrome shows up on MS Windows, Macs, Linux, Android, and other wired and increasingly wireless units.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One can easily conceive an upcoming Chrome net-book, named cbook, gbook, Android-book or any other name likely starting with g, running, you guessed it, Chrome, as the graphical user interface and &lt;a href="http://code.google.com/android/what-is-android.html"&gt;Android &lt;/a&gt;as the OS.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Google's blog entry re subject is found &lt;a href="http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Chrome's comic &lt;a href="http://www.google.com/googlebooks/chrome/index.html"&gt;doc&lt;/a&gt;-book.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Nicholas Carr has written a &lt;a href="http://www.roughtype.com/archives/2008/09/the_clouds_chro.php"&gt;blog-entry&lt;/a&gt; defining it as the Cloud's Chrome lining.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4165955808390880953-2973207052696815470?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_fo5ErPAg2LNc4XnPQmmdtWNeqU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_fo5ErPAg2LNc4XnPQmmdtWNeqU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_fo5ErPAg2LNc4XnPQmmdtWNeqU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_fo5ErPAg2LNc4XnPQmmdtWNeqU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/uMP56f6stmk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/2973207052696815470/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=2973207052696815470" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/2973207052696815470?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/2973207052696815470?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/uMP56f6stmk/does-internet-need-another-browser.html" title="Does the Internet need another browser?" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_6m1GwPz8e34/SL2GjKsyrUI/AAAAAAAAAME/VRiH0MLjccc/s72-c/chrome02.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2008/09/does-internet-need-another-browser.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUGQ3c_fCp7ImA9WxJbFEg.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-232179967879549216</id><published>2008-07-19T16:56:00.028-04:00</published><updated>2009-07-24T13:57:02.944-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-24T13:57:02.944-04:00</app:edited><title>parse-cmd: A simple command-line Java parser</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://en.wikipedia.org/wiki/Parsing"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_6m1GwPz8e34/SIJfvmMgV6I/AAAAAAAAAL0/_KzScxXiurE/s200/parse.JPG" alt="" id="BLOGGER_PHOTO_ID_5224843789014685602" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Wikipedia defines &lt;a href="http://en.wikipedia.org/wiki/Parsing"&gt;&lt;span style="font-style: italic;"&gt;parsing &lt;/span&gt;&lt;/a&gt;as follows:&lt;br /&gt;&lt;br /&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;In computer science and linguistics, &lt;span style="font-style: italic;"&gt;parsing&lt;/span&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; or, more formally, &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);"&gt;syntactic analysis&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, is the process of analyzing a sequence of tokens to determine grammatical structure with respect to a given (more or less) formal grammar.&lt;br /&gt;&lt;br /&gt;A &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);"&gt;parser &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;is thus one of the components in an interpreter or compiler, where it captures the implied hierarchy of the input text and transforms it into a form suitable for further processing (often some kind of parse tree, abstract syntax tree or other hierarchical structure) and normally checks for syntax errors at the same time.&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;br /&gt;&lt;br /&gt;When writing a Java console application, or an application responding to an input stream, without using a formal parser such as &lt;a href="http://en.wikipedia.org/wiki/Antlr"&gt;ANTLR &lt;/a&gt;- ANother Tool for Language Recognition, one ends up writing custom code each and every time; a generic approach to define and parse few application specific commands is needed.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;A quick search on Google shows several tools to handle command-line options but generally I found these solutions complex. Access to a generic and simple parser was the beginning of &lt;a href="http://code.google.com/p/parse-cmd/"&gt;parse-cmd&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Should you need a simple, less than formal, one-class Java command-line parser, take a look at  &lt;a href="http://code.google.com/p/parse-cmd/"&gt;parse-cmd&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;An equivalent implementation using Scala of a command-line parser is available &lt;a href="http://code.google.com/p/parse-cmd/wiki/AScalaParserClass"&gt;here&lt;/a&gt;.&lt;/span&gt;&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/4165955808390880953-232179967879549216?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-KTVD11Feyt60h2irUbE8X4fkGc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-KTVD11Feyt60h2irUbE8X4fkGc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-KTVD11Feyt60h2irUbE8X4fkGc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-KTVD11Feyt60h2irUbE8X4fkGc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/831SxqhHkiU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/232179967879549216/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=232179967879549216" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/232179967879549216?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/232179967879549216?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/831SxqhHkiU/parse-cmd-simple-command-line-java.html" title="parse-cmd: A simple command-line Java parser" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp2.blogger.com/_6m1GwPz8e34/SIJfvmMgV6I/AAAAAAAAAL0/_KzScxXiurE/s72-c/parse.JPG" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2008/07/parse-cmd-simple-command-line-java.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMBRns9eyp7ImA9WxdWE08.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-6768317198892935947</id><published>2008-07-03T16:39:00.033-04:00</published><updated>2008-07-06T01:00:57.563-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-06T01:00:57.563-04:00</app:edited><title>Roadrunner: a Linux-based petaflop computer</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://en.wikipedia.org/wiki/Greater_roadrunner"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_6m1GwPz8e34/SG05Gz7iEkI/AAAAAAAAALc/QHF1wsjoGPE/s200/roadrunner.JPG" alt="" id="BLOGGER_PHOTO_ID_5218890332374176322" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;On June 18 the updated list of the top &lt;a href="http://www.top500.org/"&gt;500-supercomputers&lt;/a&gt; was published.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;This time the list includes the first petaflop computer, 10 to the 15th floating point operations per second, one thousand teraflops, for a computer built by IBM for the US government.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The introduction of &lt;a href="http://en.wikipedia.org/wiki/IBM_Roadrunner"&gt;Roadrunner &lt;/a&gt;is one more example of the drive away from proprietary technologies towards use of thousands of commodity components clustered and managed by Linux.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;This architecture for supercomputer solutions is strikingly similar to that used by Google, Amazon, Yahoo et al to power their services.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Note that IBM did not use its processor technology, Power. Instead, it used the combination of AMD's &lt;a href="http://en.wikipedia.org/wiki/Opteron"&gt;Opteron &lt;/a&gt;and the &lt;a href="http://en.wikipedia.org/wiki/Cell_microprocessor"&gt;Cell &lt;/a&gt;technology, developed by IBM and Toshiba for Sony's PlayStation 3.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Comparing the updated list to that of June 2000, offers these points.&lt;/span&gt;&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Use of commodity components&lt;/span&gt;. Roadrunner uses the processor in Sony's Play Station 3 and AMD Opteron chips. Today 86% of the top 500 supercomputers use conventional Intel/AMD technologies with close to the remaining 14% using IBM's Power. This contrast to using close to 100% RISC-based hardware back in 2000 when there were 4 Intel-IA-32 based computers. The share of IBM's Power went from the top technology offering in 2000, with 143 computers, down to 23 in the current top-500 list.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Linux&lt;/span&gt;. Roadrunner and 92% of the top 500-supercomputers use Linux for OS compared to Unix at 90% back in 2000. Now, Unix is represented exclusively by AIX with 23 computers or 4.60%.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt;   +------------- Top-500 Supercomputers ----------+&lt;br /&gt;   +------------- Operating Systems ---------------+&lt;br /&gt;   Date       OS               Count     Share %&lt;br /&gt;&lt;br /&gt;   2008.June  Linux              460     92.00 %&lt;br /&gt;              AIX                 23      4.60 %&lt;br /&gt;              Mac OS               2      0.40 %&lt;br /&gt;              Windows              2      0.40 %&lt;br /&gt;              Other               13      2.60 %&lt;br /&gt;&lt;br /&gt;   2000.June  Unix               453     90.60 %&lt;br /&gt;              Linux               28      5.60 %&lt;br /&gt;              BSD Based           17      3.40 %&lt;br /&gt;              N/A                  2      0.40 %&lt;br /&gt;&lt;br /&gt;   +------------- Processor Family ----------------+&lt;br /&gt;   Date       Processor        Count     Share %&lt;br /&gt;&lt;br /&gt;   2008.June  Intel EM64T        356     71.20 %&lt;br /&gt;              AMD x86_64         107     21.40 %&lt;br /&gt;              Power               68     13.60 %&lt;br /&gt;              AMD x86_64          55     11.00 %&lt;br /&gt;              Intel IA-64         16      3.20 %&lt;br /&gt;              Intel IA-32          3      0.60 %&lt;br /&gt;              Cray                 1      0.20 %&lt;br /&gt;              NEC                  1      0.20 %&lt;br /&gt;              Intel+AMD          430     86.00 %&lt;br /&gt;&lt;br /&gt;   2000.June  Power              143     28.60 %&lt;br /&gt;              Sparc              122     24.40 %&lt;br /&gt;              MIPS                62     12.40 %&lt;br /&gt;              Alpha               56     11.20 %&lt;br /&gt;              PA-RISC             53     10.60 %&lt;br /&gt;              NEC                 25      5.00 %&lt;br /&gt;              Fujitsu             19      3.80 %&lt;br /&gt;              Hitachi SR8000      10      2.00 %&lt;br /&gt;              Cray                 6      1.20 %&lt;br /&gt;              Intel IA-32          3      0.60 %&lt;br /&gt;              Intel i860           1      0.20 %&lt;br /&gt;   +-----------------------------------------------+&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4165955808390880953-6768317198892935947?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4Btm2bvBq5u9uyNO5cDM6c6MzDI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4Btm2bvBq5u9uyNO5cDM6c6MzDI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4Btm2bvBq5u9uyNO5cDM6c6MzDI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4Btm2bvBq5u9uyNO5cDM6c6MzDI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/i4pSRvkR6-o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/6768317198892935947/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=6768317198892935947" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/6768317198892935947?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/6768317198892935947?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/i4pSRvkR6-o/roadrunner-linux-based-petaflop.html" title="Roadrunner: a Linux-based petaflop computer" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp0.blogger.com/_6m1GwPz8e34/SG05Gz7iEkI/AAAAAAAAALc/QHF1wsjoGPE/s72-c/roadrunner.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2008/07/roadrunner-linux-based-petaflop.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YDR3kyeCp7ImA9WxdXFEU.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-3956355798469957507</id><published>2008-04-25T12:04:00.155-04:00</published><updated>2008-06-26T10:06:16.790-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-26T10:06:16.790-04:00</app:edited><title>Scala:  functional programming for Java</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.artima.com/shop/forsale"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_6m1GwPz8e34/SBIE1hO7A3I/AAAAAAAAAKU/3JD4t6u1IIw/s200/scala.JPG" alt="" id="BLOGGER_PHOTO_ID_5193218637812138866" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Programming is a long and complex effort for projects of any size and consequently we are in a constant quest to find a language to improve productivity: deliver quality results using less time and effort.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I have no statistics about distribution of programming language usage. A thesis is that Java enjoys a lead among  languages in use today: Internet, Web Services, finance, telecoms, health, communications, aviation, military, automobile, oil, factory automation, appliances and consumer products, etc.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;The topic of alternate languages to Java often brings lively discussions of pros and cons among languages such as &lt;a href="http://www.ruby-lang.org/en/"&gt;Ruby&lt;/a&gt;, Groovy, &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt;, &lt;a href="http://www.erlang.org/about.html"&gt;Erlang&lt;/a&gt;, Scala, &lt;a href="http://research.microsoft.com/fsharp/fsharp.aspx"&gt;F#&lt;/a&gt;, C#, Lisp, &lt;a href="http://www.php.net/"&gt;PHP&lt;/a&gt;, C++, C and &lt;a href="http://javascript.crockford.com/survey.html"&gt;JavaScript&lt;/a&gt; among several others.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; After some reading and limited experimentation with these alternate languages, I come to the conclusion, thesis without proof, that Java is here to stay in the lead. However, Scala&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;profiles as a language that leverages and expands the Java experience, and JVM, and may contribute to an even greater use of Java through &lt;a href="http://www.scala-lang.org/index.html"&gt;Scala&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Scala is a relatively new language; some basic points about Scala include the following:&lt;/span&gt;&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Created&lt;/span&gt;. Created by &lt;a href="http://www.artima.com/weblogs/index.jsp?blogger=modersky"&gt;Martin Odersky&lt;/a&gt; at L'École Polytechnique Fédérale de Lausanne in 2001.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Platform&lt;/span&gt;. Runs on the Java Virtual Machine, JVM, and directly uses and produces Java classes, Java byte-code. An implementation for MS .NET is available but appears less developed.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Features&lt;/span&gt;. The main distinguishing factor of Scala is its support for both object &lt;span style="font-style: italic;"&gt;and &lt;/span&gt;functional programming models.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Object-oriented language&lt;/span&gt;. All entities are typed objects. Types are defined by &lt;span style="font-style: italic;"&gt;Classes &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;Traits&lt;/span&gt; constructs that offer flexibility in defining class hierarchies.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Functional-oriented language&lt;/span&gt;. Scala's object orientation mixes with a well defined pattern-based approach to declare &lt;span style="font-style: italic;"&gt;what &lt;/span&gt;is to be done rather than &lt;span style="font-style: italic;"&gt;how&lt;/span&gt;; &lt;span style="font-style: italic;"&gt;functional &lt;/span&gt;versus &lt;span style="font-style: italic;"&gt;imperative &lt;/span&gt;approach to define algorithms. &lt;a href="http://en.wikipedia.org/wiki/Erlang_%28programming_language%29"&gt;Erlang &lt;/a&gt;is the functional language often mentioned when describing Scala's functional features.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The following points summarize few days experimenting with Scala.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pros&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Java&lt;/span&gt;. Scala is a natural language progression for Java programmers. Existing libraries can be reused and classes developed with Scala can be incorporated and used in Java.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;JVM&lt;/span&gt;. Scala uses the well tested and cross platform Java Virtual Machine, JVM.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Object-oriented&lt;/span&gt;. &lt;span style="font-style: italic;"&gt;Classes &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;Traits &lt;/span&gt;are designed in a manner that allows flexibility in defining class structures.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Typed language&lt;/span&gt;. Scala infers type permitting concise expressions, typical of dynamically-typed languages, while type enforcement is done at compile time. Dynamically-typed languages do not require variables to be declared as a specific type; any variable can contain any value or object. Dynamically-typed languages offer great flexibility and concise statements at the expense of undetected potential errors. Scala offers expression conciseness of dynamically-typed languages while the compiler infers and strictly enforces type conformity.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Functional-oriented&lt;/span&gt;. Scala has an algebraic foundation that as one becomes familiar with it helps understand the less intuitive aspects of the language. Pattern matching and support for higher-order functions, methods accepting functions as parameters, are among the powerful functional features. Thread management under the &lt;a href="http://www.softwaresecretweapons.com/jspwiki/doug-lea-is-a-grandfather-of-all-scala-actors"&gt;Actors &lt;/a&gt;library appears as a native language feature to the end-user, the programmer.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Cons&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Scala is new&lt;/span&gt;. Although introduced in 2001, Scala has just recently received wider attention. Programmers, students and the rest of us will need much more time to learn, understand and use Scala.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;Acceptance&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;. Time will tell how Sun, Google, IBM, industry, the Internet and the IT communities accept Scala. A good sign of acceptance would be Google deploying a Scala API for the recently introduced &lt;a href="http://code.google.com/appengine/"&gt;Google Application Engine&lt;/a&gt;, which offers a Python only implementation now.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Included below is a &lt;span style="font-style: italic;"&gt;quick-sort&lt;/span&gt; method as shown in &lt;a href="http://www.scala-lang.org/docu/files/ScalaByExample.pdf"&gt;Scala by Example&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Application&lt;/span&gt;. Defines &lt;code&gt;SortTest&lt;/code&gt; as a console application.&lt;/li&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Method sort&lt;/span&gt;. Defines method &lt;span style="color: rgb(102, 102, 102);"&gt;sort &lt;/span&gt;that takes a list of integers, xs, and returns, results is what Scala calls it, in a list of integers&lt;span style="font-family:monospace;"&gt;,&lt;/span&gt;&lt;code&gt; def sort(xs: List[int]): List[int] = &lt;/code&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Check input list for length 1 or empty&lt;/span&gt;. The method results the input list, xs, should it be of length of 1 or less. &lt;code&gt;return&lt;/code&gt; statement can be used; it is often unneeded in Scala.&lt;br /&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Define pivot&lt;/span&gt;. Defines a val object assigned to the value of the element at position  &lt;code&gt;xs.length / 2&lt;/code&gt; of the input list, xs. Scala differentiates between 'val' and 'var' objects; var objects can be modified; val objects are unmodifiable. Also note that the compiler infers the type for pivot as integer and enforces it. The statement as written appears from a dynamically-typed language since no type is stated. Note how pivot is defined, &lt;code&gt;val pivot = xs(xs.length / 2);&lt;/code&gt; the inferenced statement is, &lt;code&gt;val pivot: int = xs(xs.length / 2)&lt;/code&gt;meaning a &lt;span style="font-style: italic;"&gt;val &lt;/span&gt;object of type &lt;span style="font-style: italic;"&gt;integer&lt;/span&gt;, ': int', assigned the integer value at &lt;code&gt;xs( xs.length / 2)&lt;/code&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Sort recursively&lt;/span&gt;. Defines three sub-lists, &lt;span style="font-style: italic;"&gt;less than&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;equal &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;greater than&lt;/span&gt; pivot, and catenates these lists using Scala's less than intuitive catenate operator ':::' The List object has a method, &lt;code&gt;filter()&lt;/code&gt;, that takes a function expression, as shown in, &lt;code&gt;xs.filter( x =&gt; x &amp;lt; pivot)&lt;/code&gt;, and applies that function, &lt;code&gt; x &amp;lt; pivot&lt;/code&gt; to all elements of the list, and results (returns) the elements that match the expression.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt;&lt;span class="syntax0"&gt;&lt;span class="syntax8"&gt;object&lt;/span&gt; SortTest &lt;span class="syntax8"&gt;extends&lt;/span&gt; &lt;span class="syntax10"&gt;Application&lt;/span&gt; &lt;span class="syntax18"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="syntax8"&gt;def&lt;/span&gt; &lt;span class="syntax6"&gt;sort&lt;/span&gt;(xs: &lt;span class="syntax10"&gt;List&lt;/span&gt;&lt;span class="syntax15"&gt;[int]&lt;/span&gt;): &lt;span class="syntax10"&gt;List&lt;/span&gt;&lt;span class="syntax15"&gt;[int]&lt;/span&gt; &lt;span class="syntax18"&gt;=&lt;/span&gt; &lt;span class="syntax18"&gt;{&lt;/span&gt;&lt;br /&gt;        &lt;span class="syntax8"&gt;if&lt;/span&gt;  (xs.length &lt;span class="syntax18"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="syntax5"&gt;1&lt;/span&gt;) xs&lt;br /&gt;        &lt;span class="syntax8"&gt;else&lt;/span&gt; &lt;span class="syntax18"&gt;{&lt;/span&gt;&lt;br /&gt;            &lt;span class="syntax8"&gt;val&lt;/span&gt; pivot &lt;span class="syntax18"&gt;=&lt;/span&gt; &lt;span class="syntax6"&gt;xs&lt;/span&gt;(xs.length &lt;span class="syntax18"&gt;/&lt;/span&gt; &lt;span class="syntax5"&gt;2&lt;/span&gt;)&lt;br /&gt;            &lt;span class="syntax6"&gt;sort&lt;/span&gt;(xs.&lt;span class="syntax6"&gt;filter&lt;/span&gt;(x &lt;span class="syntax18"&gt;=&lt;/span&gt;&lt;span class="syntax18"&gt;&amp;gt;&lt;/span&gt; x &lt;span class="syntax18"&gt;&amp;lt;&lt;/span&gt;  pivot))  :::&lt;br /&gt;                 xs.&lt;span class="syntax6"&gt;filter&lt;/span&gt;(x &lt;span class="syntax18"&gt;=&lt;/span&gt;&lt;span class="syntax18"&gt;&amp;gt;&lt;/span&gt; x &lt;span class="syntax18"&gt;=&lt;/span&gt;&lt;span class="syntax18"&gt;=&lt;/span&gt; pivot)   :::&lt;br /&gt;            &lt;span class="syntax6"&gt;sort&lt;/span&gt;(xs.&lt;span class="syntax6"&gt;filter&lt;/span&gt;(x &lt;span class="syntax18"&gt;=&lt;/span&gt;&lt;span class="syntax18"&gt;&amp;gt;&lt;/span&gt; x &lt;span class="syntax18"&gt;&amp;gt;&lt;/span&gt;  pivot))&lt;br /&gt;        &lt;span class="syntax18"&gt;}&lt;/span&gt;&lt;br /&gt;    &lt;span class="syntax18"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;    &lt;span class="syntax1"&gt;//&lt;/span&gt;&lt;span class="syntax1"&gt; &lt;/span&gt;&lt;span class="syntax1"&gt;now,&lt;/span&gt;&lt;span class="syntax1"&gt; &lt;/span&gt;&lt;span class="syntax1"&gt;define&lt;/span&gt;&lt;span class="syntax1"&gt; &lt;/span&gt;&lt;span class="syntax1"&gt;a&lt;/span&gt;&lt;span class="syntax1"&gt; &lt;/span&gt;&lt;span class="syntax1"&gt;List,&lt;/span&gt;&lt;span class="syntax1"&gt; &lt;/span&gt;&lt;span class="syntax1"&gt;Y,&lt;/span&gt;&lt;span class="syntax1"&gt; &lt;/span&gt;&lt;span class="syntax1"&gt;sort&lt;/span&gt;&lt;span class="syntax1"&gt; &lt;/span&gt;&lt;span class="syntax1"&gt;it&lt;/span&gt;&lt;span class="syntax1"&gt; &lt;/span&gt;&lt;span class="syntax1"&gt;and&lt;/span&gt;&lt;span class="syntax1"&gt; &lt;/span&gt;&lt;span class="syntax1"&gt;print&lt;/span&gt;&lt;br /&gt;    &lt;span class="syntax8"&gt;val&lt;/span&gt; Y &lt;span class="syntax18"&gt;=&lt;/span&gt; &lt;span class="syntax10"&gt;List&lt;/span&gt;(&lt;span class="syntax5"&gt;3&lt;/span&gt;, &lt;span class="syntax5"&gt;4&lt;/span&gt;, &lt;span class="syntax5"&gt;0&lt;/span&gt;, &lt;span class="syntax5"&gt;7&lt;/span&gt;, &lt;span class="syntax5"&gt;9&lt;/span&gt;, &lt;span class="syntax18"&gt;-&lt;/span&gt;&lt;span class="syntax5"&gt;8&lt;/span&gt;, &lt;span class="syntax5"&gt;8&lt;/span&gt;, &lt;span class="syntax18"&gt;-&lt;/span&gt;&lt;span class="syntax5"&gt;3&lt;/span&gt;, &lt;span class="syntax5"&gt;1&lt;/span&gt;)&lt;br /&gt;    &lt;span class="syntax11"&gt;Console&lt;/span&gt;.&lt;span class="syntax6"&gt;println&lt;/span&gt;( &lt;span class="syntax6"&gt;sort&lt;/span&gt;(Y) )&lt;br /&gt;&lt;span class="syntax18"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Compile and run as follows:&lt;code&gt;&lt;br /&gt;scalac SortTest.scala&lt;br /&gt;scala  SortTest&lt;br /&gt;List(-8, -3, 0, 1, 3, 4, 7, 8, 9)&lt;/code&gt;&lt;/pre&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;A second example serves also to show the power and conciseness of Scala. This example is found at the Scala site under the subject: &lt;a href="http://www.scala-lang.org/intro/targettyping.html"&gt;A Tour of Scala: Automatic Type-Dependent Closure Construction&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Here we define a method, &lt;code&gt;myWhileLoop&lt;/code&gt;, that takes two parameters, &lt;code&gt;cond&lt;/code&gt;, of type &lt;span style="font-style: italic; color: rgb(0, 0, 0);"&gt;function&lt;/span&gt; that results  Boolean, and &lt;code&gt;body&lt;/code&gt; also of type &lt;span style="font-style: italic; color: rgb(0, 0, 0);"&gt;function&lt;/span&gt; that results Unit, and the method results an object of type Unit. Unit returns no value, like void in Java, but it represents zero or more lines of code, it is a unit of code. Once defined, the method is used as if &lt;code&gt;myWhileLoop&lt;/code&gt; were native to the language or at least it looks so.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The combination of &lt;/span&gt;&lt;code style="color: rgb(0, 0, 0);"&gt;=&amp;gt;&lt;/code&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; refers not to equal and greater than characters, but used in Scala to designate a very useful object type, a function. A &lt;span style="font-style: italic; color: rgb(0, 0, 0);"&gt;function&lt;/span&gt; type is represented by what is called in Scala a &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);"&gt;right-arrow&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;; think of it as one symbol instead of two, possibly borrowed from math to denote a function: &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);"&gt;leads to&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);"&gt;becomes&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);"&gt;transforms &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;from one equation to another.&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="syntax0"&gt;&lt;span class="syntax8"&gt;object&lt;/span&gt; TargetTest1 &lt;span class="syntax8"&gt;extends&lt;/span&gt; &lt;span class="syntax10"&gt;Application&lt;/span&gt; &lt;span class="syntax18"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="syntax8"&gt;def&lt;/span&gt; &lt;span class="syntax6"&gt;myWhileLoop&lt;/span&gt;(cond: &lt;span class="syntax18"&gt;=&lt;/span&gt;&lt;span class="syntax18"&gt;&amp;gt;&lt;/span&gt; &lt;span class="syntax9"&gt;Boolean&lt;/span&gt;)&lt;br /&gt;                   (body: &lt;span class="syntax18"&gt;=&lt;/span&gt;&lt;span class="syntax18"&gt;&amp;gt;&lt;/span&gt; &lt;span class="syntax9"&gt;Unit&lt;/span&gt;   ): &lt;span class="syntax9"&gt;Unit&lt;/span&gt; &lt;span class="syntax18"&gt;=&lt;/span&gt; &lt;span class="syntax18"&gt;{&lt;/span&gt;&lt;br /&gt;        &lt;span class="syntax8"&gt;if&lt;/span&gt; (cond) &lt;span class="syntax18"&gt;{&lt;/span&gt;&lt;br /&gt;            body&lt;br /&gt;            &lt;span class="syntax6"&gt;myWhileLoop&lt;/span&gt;(cond)(body)&lt;br /&gt;        &lt;span class="syntax18"&gt;}&lt;/span&gt;&lt;br /&gt;    &lt;span class="syntax18"&gt;}&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span class="syntax1"&gt;//&lt;/span&gt;&lt;span class="syntax1"&gt; &lt;/span&gt;&lt;span class="syntax1"&gt;use&lt;/span&gt;&lt;span class="syntax1"&gt; &lt;/span&gt;&lt;span class="syntax1"&gt;'myWhileLoop'&lt;/span&gt;&lt;span class="syntax1"&gt; &lt;/span&gt;&lt;span class="syntax1"&gt;as&lt;/span&gt;&lt;span class="syntax1"&gt; &lt;/span&gt;&lt;span class="syntax1"&gt;if&lt;/span&gt;&lt;span class="syntax1"&gt; &lt;/span&gt;&lt;span class="syntax1"&gt;defined&lt;/span&gt;&lt;span class="syntax1"&gt; &lt;/span&gt;&lt;span class="syntax1"&gt;in&lt;/span&gt;&lt;span class="syntax1"&gt; &lt;/span&gt;&lt;span class="syntax1"&gt;the&lt;/span&gt;&lt;span class="syntax1"&gt; &lt;/span&gt;&lt;span class="syntax1"&gt;language&lt;/span&gt;&lt;br /&gt;    &lt;span class="syntax8"&gt;var&lt;/span&gt; i &lt;span class="syntax18"&gt;=&lt;/span&gt; &lt;span class="syntax5"&gt;0&lt;/span&gt;&lt;br /&gt;    myWhileLoop (i &lt;span class="syntax18"&gt;&amp;lt;&lt;/span&gt; &lt;span class="syntax5"&gt;5&lt;/span&gt;) &lt;span class="syntax18"&gt;{&lt;/span&gt;&lt;br /&gt;        &lt;span class="syntax6"&gt;println&lt;/span&gt;(i); i &lt;span class="syntax18"&gt;+&lt;/span&gt;&lt;span class="syntax18"&gt;=&lt;/span&gt; &lt;span class="syntax5"&gt;1&lt;/span&gt;&lt;br /&gt;    &lt;span class="syntax18"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="syntax18"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Compile and run as follows:&lt;code&gt;&lt;br /&gt;scalac  TargetTest1.scala&lt;br /&gt;scala   TargetTest1&lt;br /&gt;0&lt;br /&gt;1&lt;br /&gt;2&lt;br /&gt;3&lt;br /&gt;4&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Here is a third example extracted from the Scala site, &lt;a href="http://www.scala-lang.org/intro/mixin.html"&gt;A Tour of Scala: Mixin Class Composition&lt;/a&gt;. It shows the power of Scala to define class hierarchies via &lt;code&gt;class&lt;/code&gt;, &lt;code&gt;trait&lt;/code&gt;, &lt;code&gt;abstract&lt;/code&gt; and &lt;code&gt;with&lt;/code&gt; expressions.&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="syntax0"&gt;&lt;span class="syntax8"&gt;abstract&lt;/span&gt; &lt;span class="syntax8"&gt;class&lt;/span&gt; AbsIterator &lt;span class="syntax18"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="syntax8"&gt;type&lt;/span&gt; T&lt;br /&gt;  &lt;span class="syntax8"&gt;def&lt;/span&gt; hasNext: &lt;span class="syntax9"&gt;Boolean&lt;/span&gt;&lt;br /&gt;  &lt;span class="syntax8"&gt;def&lt;/span&gt; next: T&lt;br /&gt;&lt;span class="syntax18"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="syntax8"&gt;trait&lt;/span&gt; RichIterator &lt;span class="syntax8"&gt;extends&lt;/span&gt; AbsIterator &lt;span class="syntax18"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="syntax8"&gt;def&lt;/span&gt; &lt;span class="syntax6"&gt;foreach&lt;/span&gt;(f: T &lt;span class="syntax18"&gt;=&lt;/span&gt;&lt;span class="syntax18"&gt;&amp;gt;&lt;/span&gt; &lt;span class="syntax9"&gt;Unit&lt;/span&gt;) &lt;span class="syntax18"&gt;{&lt;/span&gt; &lt;span class="syntax8"&gt;while&lt;/span&gt; (hasNext) &lt;span class="syntax6"&gt;f&lt;/span&gt;(next) &lt;span class="syntax18"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="syntax18"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="syntax8"&gt;class&lt;/span&gt; &lt;span class="syntax6"&gt;StringIterator&lt;/span&gt;(s: &lt;span class="syntax10"&gt;String&lt;/span&gt;) &lt;span class="syntax8"&gt;extends&lt;/span&gt; AbsIterator &lt;span class="syntax18"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="syntax8"&gt;type&lt;/span&gt; T &lt;span class="syntax18"&gt;=&lt;/span&gt; &lt;span class="syntax9"&gt;Char&lt;/span&gt;&lt;br /&gt;  &lt;span class="syntax8"&gt;private&lt;/span&gt; &lt;span class="syntax8"&gt;var&lt;/span&gt; i &lt;span class="syntax18"&gt;=&lt;/span&gt; &lt;span class="syntax5"&gt;0&lt;/span&gt;&lt;br /&gt;  &lt;span class="syntax8"&gt;def&lt;/span&gt; hasNext &lt;span class="syntax18"&gt;=&lt;/span&gt; i &lt;span class="syntax18"&gt;&amp;lt;&lt;/span&gt; s.&lt;span class="syntax6"&gt;length&lt;/span&gt;()&lt;br /&gt;  &lt;span class="syntax8"&gt;def&lt;/span&gt; next &lt;span class="syntax18"&gt;=&lt;/span&gt; &lt;span class="syntax18"&gt;{&lt;/span&gt; &lt;span class="syntax8"&gt;val&lt;/span&gt; ch &lt;span class="syntax18"&gt;=&lt;/span&gt; s charAt i; i &lt;span class="syntax18"&gt;+&lt;/span&gt;&lt;span class="syntax18"&gt;=&lt;/span&gt; &lt;span class="syntax5"&gt;1&lt;/span&gt;; ch &lt;span class="syntax18"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="syntax18"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="syntax8"&gt;object&lt;/span&gt; StringIteratorTest &lt;span class="syntax18"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span class="syntax8"&gt;def&lt;/span&gt; &lt;span class="syntax6"&gt;main&lt;/span&gt;(args: &lt;span class="syntax10"&gt;Array&lt;/span&gt;&lt;span class="syntax15"&gt;[String]&lt;/span&gt;) &lt;span class="syntax18"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span class="syntax8"&gt;if&lt;/span&gt; ( args.length &lt;span class="syntax18"&gt;&amp;gt;&lt;/span&gt; &lt;span class="syntax5"&gt;0&lt;/span&gt; ) &lt;span class="syntax18"&gt;{&lt;/span&gt; &lt;br /&gt;      &lt;span class="syntax8"&gt;class&lt;/span&gt; Iter &lt;span class="syntax8"&gt;extends&lt;/span&gt; &lt;span class="syntax6"&gt;StringIterator&lt;/span&gt;(&lt;span class="syntax6"&gt;args&lt;/span&gt;(&lt;span class="syntax5"&gt;0&lt;/span&gt;)) &lt;br /&gt;                 &lt;span class="syntax8"&gt;with&lt;/span&gt; RichIterator&lt;br /&gt;      &lt;span class="syntax8"&gt;val&lt;/span&gt; iter &lt;span class="syntax18"&gt;=&lt;/span&gt; &lt;span class="syntax8"&gt;new&lt;/span&gt; Iter&lt;br /&gt;      iter.&lt;span class="syntax6"&gt;foreach&lt;/span&gt;(println)&lt;br /&gt;    &lt;span class="syntax18"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;span class="syntax18"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="syntax18"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Compile and run as follows:&lt;code&gt;&lt;br /&gt;fsc    StringIteratorTest.scala&lt;br /&gt;scala  StringIteratorTest abc123&lt;br /&gt;a&lt;br /&gt;b&lt;br /&gt;c&lt;br /&gt;1&lt;br /&gt;2&lt;br /&gt;3&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4165955808390880953-3956355798469957507?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xzEGLRfmZ_cWUuGpkM7hk3k5PDA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xzEGLRfmZ_cWUuGpkM7hk3k5PDA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xzEGLRfmZ_cWUuGpkM7hk3k5PDA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xzEGLRfmZ_cWUuGpkM7hk3k5PDA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/M4f4Fr8ZTCw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/3956355798469957507/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=3956355798469957507" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/3956355798469957507?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/3956355798469957507?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/M4f4Fr8ZTCw/scala-functional-programming-for-java.html" title="Scala:  functional programming for Java" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_6m1GwPz8e34/SBIE1hO7A3I/AAAAAAAAAKU/3JD4t6u1IIw/s72-c/scala.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2008/04/scala-functional-programming-for-java.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEINQnw9fip7ImA9WxZQGU0.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-7898959214342913662</id><published>2007-12-31T14:19:00.002-05:00</published><updated>2008-02-24T21:29:53.266-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-02-24T21:29:53.266-05:00</app:edited><title>iMac + Fusion: a great developer's workstation</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://en.wikipedia.org/wiki/IMac"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_6m1GwPz8e34/R3l61GrtCOI/AAAAAAAAAGw/I25zpD3A9yo/s200/iMac.jpg" alt="" id="BLOGGER_PHOTO_ID_5150282701620447458" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I've avoided Apple. Apple products are the ultimate proprietary systems; hardware, OS and applications are exclusive of the Apple club in direct contrast to an open source direction I prefer.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;It was a Java based project requiring interface to a C-module via Java Native Interface, JNI, that forced me to buy an Intel-based iMac; I had no choice; the project demanded application development and testing not only on Intel-based but also on PowerPC based Macs.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;It was a pleasant experience. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The minimalist design approach of Mac products grows on you. Even if the iMac does not work, it is a pleasure to look at it; from an ergonomics and mechanical design perspectives, it is an elegant, simple, functional unit. The aluminum-based &lt;a href="http://gizmodo.com/gadgets/unboxing/slim-apple-wireless-keyboard-ships-still-no-sign-of-the-apple-logo-299834.php"&gt;keyboard &lt;/a&gt;is a good example of excellent ergonomics, minimalist inspiration, Apple-like design.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;But it was &lt;span style="font-weight: bold;"&gt;VMware's Fusion&lt;/span&gt;, the virtualization application for the iMac that made the iMac my choice Java and Internet developing station replacing a Vista based laptop.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The combination of &lt;a href="http://www.vmware.com/products/fusion/"&gt;Fusion &lt;/a&gt;and Leopard's &lt;a href="http://www.macworld.com/article/52378/2006/08/leospaces.html"&gt;Spaces &lt;/a&gt;result in full-screen operating system instances available intuitively via control + arrow-keys. It all works well including instant sleep and restart, effective time synchronization, reliable network persistence, etc, instant on and off when needed quite a contrast to the experience with Vista + VMware's Workstation where 'sleep' and restart did not work or did not work well.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I have now an iMac configured with 4-gigabyte RAM supporting:&lt;/span&gt;&lt;br /&gt;&lt;ol style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Apple's Leopard&lt;/span&gt; operating as the host OS. I am unfamiliar with this OS. The console and Unix commands work well and was at home with its operation. Java 6 is not officially supported yet; it is in all guests I have installed. I do not use any of the Leopard tools such as iPhoto and iMovie. If editing pictures or movies I know I have the right environment and I'll try these tools later.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;MS Windows 2000 Pro&lt;/span&gt; as main &lt;span style="font-style: italic;"&gt;desktop development environment&lt;/span&gt;. Java 6, GCC, NetBeans 6, JEdit and Ant are the tools that work well in possibly the best OS from Microsoft. I did not have licenses for Vista or XP but I did have an unused Windows 2000 license that operates as a simple, functional and most responsive MS OS uncluttered from the obstructive security alerts and other confetti added to XP and later to Vista that get in the way of productivity.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Ubuntu 64-bit&lt;/span&gt;, 7.10, as main &lt;span style="font-style: italic;"&gt;Server &lt;/span&gt;and development environment. This is the main server environment hosting Java 6, Apache, PHP, Tomcat, MySql, hsqldb, PostgreSql, etc.  I could do this work on Leopard but I am familiar with Ubuntu and it works just as responsive and well, possibly better, under Fusion than in a dedicated environment.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Solaris Express Developer Edition&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;64-bit&lt;/span&gt; for general development of the C-module and Java application on a Solaris platform. &lt;a href="http://opensolaris.org/os/"&gt;OpenSolaris &lt;/a&gt;is work in progress with the objective to make Solaris easier to use by adopting a Linux-like operation and presentation; it profiles as a good development and server platform.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Each OS has 1-gigabyte RAM. They are all instantly available via control + arrow-keys as mapped by four Leopard Spaces running each OS in full-screen mode.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Each OS has &lt;a href="http://en.wikipedia.org/wiki/Subversion_%28software%29"&gt;Subversion &lt;/a&gt;client installed to access a Subversion server hosted on a dedicated Ubuntu 64-bit environment on the Internet. In this manner, the Subversion server fills the data and version control functions and allows check-out and check-in for projects under work using any of the OSes listed above or a workstation at a client or project office. It nicely separates the tools, e.g. operating systems, from the data, e.g. projects and personal files.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;This approach allows me to use one or more environments as workstation development at home or project offices while relying on Subversion for data and project repository. Effectively each OS has only the data for the project under work data which is deleted once project is checked-in.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;All is not perfect however. It is mostly a matter of getting used to a new environment rather than functional problems.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;Plus&lt;/span&gt;&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Ergonomics&lt;/span&gt;. The iMac is an all-in-one desktop computer, simple, elegant, functional.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;VMware's Fusion&lt;/span&gt;. This virtualization tool possibly  learned from VMware Workstation for MS Windows and had a fresh clean design and porting it to Leopard resulting in a great implementation hosting different OSes. 'Sleep' and restart works flawlessly including time synchronization with host at restart time. Matching screen resolution with host works well and contributes to the simple and effective transition among OSes via control + arrow-keys.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Connectivity&lt;/span&gt;. Network settings and overall connectivity, wire and wireless, work well including network printing from guests to defined printer on host OS, Leopard.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;Minus&lt;/span&gt;&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Keyboard&lt;/span&gt;. PC users will be searching for several keys unavailable on the minimalist wireless &lt;a href="http://gizmodo.com/gadgets/unboxing/slim-apple-wireless-keyboard-ships-still-no-sign-of-the-apple-logo-299834.php"&gt;keyboard &lt;/a&gt;that came with the iMac. The &lt;span style="font-style: italic;"&gt;delete &lt;/span&gt;key is effectively a &lt;span style="font-style: italic;"&gt;backspace &lt;/span&gt;key, &lt;span style="font-style: italic;"&gt;end&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;home&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;page-up&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;page-down&lt;/span&gt; keys are unavailable. There are key-combinations to simulate these; however it takes time to find them and more time getting used to using them productively. Also, some keys have one behaviour under the host OS, Leopard, and different one under Fusion guests. I am now used to these  keyboard differences and I am able to operate productively; it is the cleanest looking keyboard; it is functional and I am able, after some time with it, to use it productively in all four operating systems.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Mouse&lt;/span&gt;. The wireless mouse is the classical one button Mac mouse; I do miss the right-mouse click which is simulated by control + click.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;In summary, I will not have selected this environment should not have been for the project requirement to develop and test on an Apple platform. The discovery of &lt;span style="font-weight: bold;"&gt;Leopard + Fusion&lt;/span&gt; made the case for me to switch to this as my primary workstation where I can use any of the four top desktop operating systems as needed while all interacting with the same data and project repository under Subversion.&lt;br /&gt;&lt;br /&gt;The result is a proprietary system, &lt;span style="font-weight: bold;"&gt;iMac + Leopard + Fusion&lt;/span&gt;, used as the base platform to host Microsoft and open source OSes, and associated development tools, resulting in a productive, multi-OS self-contained workstation.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I suspect I'll be looking at Apple's &lt;a href="http://en.wikipedia.org/wiki/MacBook"&gt;MacBook &lt;/a&gt;to replicate a mobile equivalent of the configuration described above. The rumored announcement by Apple, on January 15th, of an ultra portable MacBook  may be the fully functional multi-OS compact laptop I'd like to use for presentations and for work while away from the office.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;N.B.1&lt;/span&gt; MackBook, MacBook Pro and respective successors, hosting Ubuntu via Fusion, profile as compelling alternatives to anyone considering a MS Windows laptop, Win2k, XP or Vista, and/or a Linux mobile unit such as a &lt;a href="http://www.dell.com/content/topics/segtopic.aspx/linux_3x?c=us&amp;amp;cs=19&amp;amp;l=en&amp;amp;s=dhs"&gt;Dell Ubuntu laptop&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;N.B.2&lt;/span&gt; There are at least 3-products that provide virtualization on the Mac: &lt;span style="font-style: italic;"&gt;Boot Camp&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Parallels &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;Fusion&lt;/span&gt;. This &lt;a href="http://www.mactech.com/articles/mactech/Vol.24/24.02/VirtualizationBenchmark/"&gt;reference &lt;/a&gt;offers a benchmark and comparison among these products.&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/4165955808390880953-7898959214342913662?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/U0YUw_0orjvM3fGGi2m0MO8k1Lc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/U0YUw_0orjvM3fGGi2m0MO8k1Lc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/U0YUw_0orjvM3fGGi2m0MO8k1Lc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/U0YUw_0orjvM3fGGi2m0MO8k1Lc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/rYkgRdLacis" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/7898959214342913662/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=7898959214342913662" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/7898959214342913662?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/7898959214342913662?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/rYkgRdLacis/imac-fusion-great-developers.html" title="iMac + Fusion: a great developer's workstation" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_6m1GwPz8e34/R3l61GrtCOI/AAAAAAAAAGw/I25zpD3A9yo/s72-c/iMac.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2007/12/imac-fusion-great-developers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MGRHw_fCp7ImA9WB9WEEs.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-6582924864656421080</id><published>2007-11-13T19:31:00.000-05:00</published><updated>2007-11-14T12:30:25.244-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-14T12:30:25.244-05:00</app:edited><title>Android: a story about the phone, Java, Linux and other wars</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://code.google.com/android/adc.html"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_6m1GwPz8e34/RzpCeiV6JaI/AAAAAAAAAFY/j6vnacHcIKc/s200/aPhone.jpg" alt="" id="BLOGGER_PHOTO_ID_5132487817724306850" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Google released the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;API&lt;/span&gt; for &lt;a href="http://code.google.com/android/adc.html"&gt;Android &lt;/a&gt;and several first impressions of its impact and contribution to the mobile phone platform are now available.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;There are good and not-so-good news.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Various blogs describe well the positive points of Android such as defining a common and relatively 'open' platform for volume development of related applications and services, bringing down the barriers of entry, offering competition on a common infrastructure. A good article describing Android is found &lt;a href="http://weblog.infoworld.com/techwatch/archives/014773.html"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;These are all good points, timely introduction and needed development to standardize what otherwise is a set of exclusionary and stove-piped technologies vertically aligned across the usual suspects, aka communications cartels.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I installed the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SDK&lt;/span&gt; first on my Ububtu.x86.64 environment. It did not work. I found that the initial distribution is for 32-bit only; the site should point this out on the download entry.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Under Vista, x86.32, it worked well using Eclipse and standalone via the Ant script generated by the included application generation utility, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;activityCreator&lt;/span&gt;.py.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;As I work with the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SDK&lt;/span&gt;, I like what I see, namely&lt;/span&gt;&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Java&lt;/span&gt;. The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;SDK&lt;/span&gt; is Java-based including an Eclipse plug-in.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;What concerns me includes:&lt;/span&gt;&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Java&lt;/span&gt;. Same language supporting a subset of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;JDK&lt;/span&gt;. The run-time &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;VM&lt;/span&gt; is a custom one, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Dalvik&lt;/span&gt;, perhaps needed to gain performance on target platforms. Java faces fragmentation and Android is a good example of it. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Google's&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;GWT&lt;/span&gt; uses a similar architecture and  supports also a subset of Java's &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;JDK&lt;/span&gt;, a different subset than Android. There is fragmentation for Java even within Google. Perhaps this is the cost of rapid development but certainly they can do better than this. A good article describing Android's Java gambit is found &lt;a href="http://blogoscoped.com/archive/2007-11-13-n83.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Sun's Jonathan Schwartz noted in a blog entry his dinner invitation, at his place, to Linus Torvalds. It appears now that Jonathan may need to include &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Sergey&lt;/span&gt; and Larry on such invitation, have a good supply of java to digest the vast amount of material accumulated since the initial invite, leave egos at the door and collectively endorse, support and join the &lt;a href="http://openjdk.java.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;OpenJDK&lt;/span&gt; &lt;/a&gt;community.&lt;br /&gt;&lt;br /&gt;A fragmented Java is not in the interest of developers and of the software industry. Unix offers a good example of the perils of fragmentation; it is a good idea avoiding same fate for Java.&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/4165955808390880953-6582924864656421080?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lAOFokz8ucObomWM4gKsZbLnuhU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lAOFokz8ucObomWM4gKsZbLnuhU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lAOFokz8ucObomWM4gKsZbLnuhU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lAOFokz8ucObomWM4gKsZbLnuhU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/W9vth1qSQLE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/6582924864656421080/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=6582924864656421080" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/6582924864656421080?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/6582924864656421080?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/W9vth1qSQLE/android-story-about-phone-java-linux.html" title="Android: a story about the phone, Java, Linux and other wars" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_6m1GwPz8e34/RzpCeiV6JaI/AAAAAAAAAFY/j6vnacHcIKc/s72-c/aPhone.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2007/11/android-story-about-phone-java-linux.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcMSHYzfSp7ImA9WB9XFEw.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-2196428141255093930</id><published>2007-11-06T00:24:00.000-05:00</published><updated>2007-11-07T00:41:29.885-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-07T00:41:29.885-05:00</app:edited><title>Android: an open platform for mobile communications</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.openhandsetalliance.com/developers.html"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_6m1GwPz8e34/Ry_7o1SgHCI/AAAAAAAAAFQ/wHVC4oqL48s/s200/gphone.jpg" alt="" id="BLOGGER_PHOTO_ID_5129595179516304418" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The announcement by Google of an open platform for mobile communications marks a milestone in the evolution of the Internet.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The conventional cell-phone is a wireless unit with some data processing capabilities, a phone plus a &lt;/span&gt;PDA&lt;span style="color: rgb(0, 0, 0);"&gt;, as exemplified by Palm's &lt;/span&gt;Treo&lt;span style="color: rgb(0, 0, 0);"&gt;, Apple's iPhone and &lt;/span&gt;RIM's&lt;span style="color: rgb(0, 0, 0);"&gt; Blackberry.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;In contrast, Google defines a Linux-based computing platform that can make phone calls.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The difference is significant an offers wide range of options and possible technology combinations by defining a device stack for mobile communications that includes a Linux-based OS, a defined &lt;/span&gt;API&lt;span style="color: rgb(0, 0, 0);"&gt; and associated development tools.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Not much is known since the &lt;/span&gt;API&lt;span style="color: rgb(0, 0, 0);"&gt; will be available on November 12th. What is known can be summarized as follows:&lt;/span&gt;&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Platform&lt;/span&gt;. Open source software communications platform named Android. The definition is a software-based API that allows any hardware technology to be able to develop and deploy mobile applications and services.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Alliance&lt;/span&gt;. Open Handset Alliance, OHA, which includes 34 registered &lt;a href="http://www.openhandsetalliance.com/oha_members.html"&gt;participants&lt;/a&gt;. Participants include T-Mobile, Sprint, China Mobile, Telefonica of Spain, Samsung, Motorola, LG, Intel and Texas Instruments.&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Not surprising is the absence from the alliance of names such as Microsoft, Verizon, AT&amp;amp;T and Apple.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;This move by Google offers also an alternative to proprietary development by proposing instead a common infrastructure for all to participate, use, enhance and compete by delivering value above a common foundation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The enthusiasm of seen an alliance for an open source communications platform is tempered by the fact that the &lt;/span&gt;API&lt;span style="color: rgb(0, 0, 0);"&gt; and associated development tools are unavailable now. Unclear also is the language, or languages, supported for development. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;However, first impressions are that Google has once more outfoxed the usual suspects and proposed an &lt;/span&gt;approach&lt;span style="color: rgb(0, 0, 0);"&gt; for the evolution of mobile communications in a &lt;/span&gt;manner and culture&lt;span style="color: rgb(0, 0, 0);"&gt; earlier responsible for the volume adoption of the Web, Apache, Linux and &lt;/span&gt;Firefox&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Google&lt;/span&gt;. &lt;a href="http://googleblog.blogspot.com/2007/11/wheres-my-gphone.html"&gt;Here &lt;/a&gt;is an entry in Google's blog re subject announcement.&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;BBC&lt;/span&gt;. &lt;a href="http://news.bbc.co.uk/2/hi/technology/7080758.stm"&gt;Q&amp;amp;A&lt;/a&gt; article re proposed mobile platform at BBC.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;API&lt;/span&gt;. Android's software development kit, SDK, is available &lt;a href="http://www.openhandsetalliance.com/developers.html"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Nokia&lt;/span&gt;. &lt;a href="http://www.reuters.com/article/internetNews/idUSL0617473720071106"&gt;Nokia &lt;/a&gt;does not rule out participating in the OHA alliance.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&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/4165955808390880953-2196428141255093930?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3X2coHObEYBQx0l4bp9507x5-ms/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3X2coHObEYBQx0l4bp9507x5-ms/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3X2coHObEYBQx0l4bp9507x5-ms/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3X2coHObEYBQx0l4bp9507x5-ms/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/ae6lRnWMu1U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/2196428141255093930/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=2196428141255093930" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/2196428141255093930?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/2196428141255093930?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/ae6lRnWMu1U/android-open-platform-for-mobile.html" title="Android: an open platform for mobile communications" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_6m1GwPz8e34/Ry_7o1SgHCI/AAAAAAAAAFQ/wHVC4oqL48s/s72-c/gphone.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2007/11/android-open-platform-for-mobile.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0IFSXg7fip7ImA9WB9SFk4.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-1492709087196747977</id><published>2007-09-29T11:53:00.002-04:00</published><updated>2007-10-05T20:45:18.606-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-10-05T20:45:18.606-04:00</app:edited><title>Opportunity for Apple to sell Leopard as a standalone OS</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.apple.com/macosx/leopard/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_6m1GwPz8e34/Rv7SuarqnnI/AAAAAAAAAEw/cbAtzfOhf-U/s200/MacOS10.5.jpg" alt="" id="BLOGGER_PHOTO_ID_5115757921617747570" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Leopard, the next version of Apple's operating system, is to be released in October.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The timing for such introduction highlights the opportunity for Apple to offer the &lt;span style="font-style: italic;"&gt;option &lt;/span&gt;of a standalone Leopard; e.g. the OS unbundled from Apple's hardware.&lt;br /&gt;&lt;br /&gt;Two reasons contribute to an excellent timing for Apple to offer an unbundled operating system.&lt;/span&gt;&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Vista's troubles. &lt;/span&gt;Vista's failure to deliver on the expectations created by Microsoft is such that end-users prefer Vista's predecessor, XP.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Increased use of virtualization&lt;/span&gt;. Virtualization has reached volume adoption and is now a needed function for software development and for other applications on the desktop and on the server. It is conceivable that a year from now consumers may buy computers able to run more than one operating system. In fact such computers may have no operating system other than a virtualization function as part of the hardware, bios or flash configuration.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; These developments, problems with Vista and availability, acceptance and use of virtualization, result in a great opportunity for Apple.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Should Apple sell &lt;a href="http://www.apple.com/macosx/leopard/"&gt;Leopard &lt;/a&gt;as a standalone operating system, for installation on a computer or under a virtual environment such as &lt;a href="http://www.vmware.com/vmworldnews/index.html"&gt;VMware&lt;/a&gt;, &lt;a href="http://www.swsoft.com/products/virtuozzo/"&gt;Virtuozzo&lt;/a&gt;, &lt;a href="http://www.parallels.com/"&gt;Parallels&lt;/a&gt;, &lt;a href="http://kvm.qumranet.com/kvmwiki"&gt;Linux-KVM&lt;/a&gt;, &lt;a href="http://www.xensource.com/Pages/default.aspx"&gt;XenSource&lt;/a&gt;, and Sun's &lt;a href="http://www.sun.com/featured-articles/2007-1005/feature/index.jsp?intcmp=hp2007oct05_xvm_learn"&gt;xVM&lt;/a&gt;, will benefit consumers and Apple.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Consumers&lt;/span&gt;. Consumers have an alternative to Microsoft even if a standalone Leopard license is supported by Apple for operation on a virtual environment only.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Apple&lt;/span&gt;. Apple benefits by expanding adoption of its operating system beyond the present niche and enabling agile 64-bit Leopard to run on dual and quad Intel &lt;span style="font-style: italic;"&gt;and &lt;/span&gt;AMD platforms directly or through virtualization.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Supporting vast combinations of  hardware configurations is indeed a problem for any OS. &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;However, offering unbundled Leopard for operation under a virtual environment is an attractive option. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;Licensing Leopard for operation under a virtual environment simplifies support significantly given that video, disk, network and other devices are &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);" id="misp_compose_2" class="hm"&gt;virtualized&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, defined by each &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);" id="misp_compose_3" class="hm"&gt;virtualization&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; tool,  thus avoiding support for vast number of devices, associated drivers, and contributing to stability.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;We need now to develop in more than one OS. It is not a nice-to-have function; it is needed for several areas including cross-platform development.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;I trust Apple will see the benefit of licensing Leopard standalone so I can install it on my mobile development environment: MS Vista,  VMware and Ubuntu-64 as guest. I was skeptical, but VMware Workstation, on Vista-32-bit, supports 64-bit guests; it performs well and it is stable.&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/4165955808390880953-1492709087196747977?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WD0xk1hP0Spsy43J5w8QBlqSa8c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WD0xk1hP0Spsy43J5w8QBlqSa8c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WD0xk1hP0Spsy43J5w8QBlqSa8c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WD0xk1hP0Spsy43J5w8QBlqSa8c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/7vcSXDOMZAI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/1492709087196747977/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=1492709087196747977" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/1492709087196747977?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/1492709087196747977?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/7vcSXDOMZAI/opportunity-for-apple-to-sell-leopard.html" title="Opportunity for Apple to sell Leopard as a standalone OS" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_6m1GwPz8e34/Rv7SuarqnnI/AAAAAAAAAEw/cbAtzfOhf-U/s72-c/MacOS10.5.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2007/09/opportunity-for-apple-to-sell-leopard.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMDRn48fSp7ImA9WB9QE0k.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-4553084877198123646</id><published>2007-09-01T17:32:00.000-04:00</published><updated>2007-10-25T16:17:57.075-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-10-25T16:17:57.075-04:00</app:edited><title>Of open source, open minds and open culture</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://en.wikipedia.org/wiki/Open_source"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_6m1GwPz8e34/Rtns8MB6iEI/AAAAAAAAADc/eAMK3eA9IrE/s200/opensource.png" alt="" id="BLOGGER_PHOTO_ID_5105372171366729794" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I came across the blog referenced below identifying 10-principles proposed by the author from experience in software work.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;It took more than software to evolve towards the Internet, Web, GPS, associated applications and services, the 'open' communications world of today and the results and culture of 'open source'.&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;Open source is about people, ideas, creativity, tools and technology, working with others through ongoing peer review to achieve results thought impossible in context of time, resources and conventional methods, processes, organizations and management.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;The result is communities of dedicated people, members of projects, tasks, applications, and recently corporations, formal and mostly informal, working together productively to define and resolve problems, deliver results, effectively and in a responsive manner.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Often it is not about cost. It is rather about the cost of not doing it, of not delivering results in a timely manner, of missing a window of opportunity, of failing to offer solutions, of failing to offer value, of becoming irrelevant.&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;Open source brings to mind the potential application of  same culture, communication and tools to define and address challenges in  fields other than computing where intellectual property, patents and copyrights represent serious obstacles to development.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Here is a definition of Open Source, from &lt;a href="http://opensource.org/"&gt;opensource.org&lt;/a&gt;, that may be applied to fields other than information technology:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);"&gt;Open source is a development method that harnesses the power of distributed peer review and transparency of process. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Areas that come to mind to apply open source methodology and culture include:&lt;/span&gt; &lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;Education&lt;/li&gt;&lt;li&gt;Health&lt;/li&gt;&lt;li&gt;The environment&lt;/li&gt;&lt;li&gt;Energy&lt;/li&gt;&lt;li&gt;Government&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I list below the 10-principles referenced in the subject &lt;a href="http://blogs.cnet.com/8301-13505_1-9766449-16.html"&gt;blog.&lt;/a&gt; &lt;/span&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;Adoption precedes monetization. &lt;/li&gt;&lt;li&gt;Lots of customers is a greater barrier to entry than lots of intellectual property (IP). &lt;/li&gt;&lt;li&gt;A business' brand is its greatest asset in driving sales. Not its IP. &lt;/li&gt;&lt;li&gt;Lower barriers to evaluating and using your product. &lt;/li&gt;&lt;li&gt;Sell customer value, not vendor value. &lt;/li&gt;&lt;li&gt;Product use should breed re-use and further sharing.&lt;/li&gt;&lt;li&gt;A collective product best serves a collective market. &lt;/li&gt;&lt;li&gt;Invest in service and your product, not sales. &lt;/li&gt;&lt;li&gt;Transparency breeds trust, and trust breeds revenue. &lt;/li&gt;&lt;li&gt;People make a business.&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Updates&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Here is a good summary of lessons learned from open suource - &lt;a href="http://blogs.sun.com/MartinHardee/entry/ten_things_i_learned_about"&gt;ten things I ...&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4165955808390880953-4553084877198123646?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CfY-KHoI6ro-IuGOJzGGyvwu61w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CfY-KHoI6ro-IuGOJzGGyvwu61w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CfY-KHoI6ro-IuGOJzGGyvwu61w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CfY-KHoI6ro-IuGOJzGGyvwu61w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/z3mu8qcmuwA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/4553084877198123646/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=4553084877198123646" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/4553084877198123646?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/4553084877198123646?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/z3mu8qcmuwA/of-open-source-open-minds-and-open.html" title="Of open source, open minds and open culture" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_6m1GwPz8e34/Rtns8MB6iEI/AAAAAAAAADc/eAMK3eA9IrE/s72-c/opensource.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2007/09/of-open-source-open-minds-and-open.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMAQnc6eyp7ImA9WB9TEk0.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-846349925625815109</id><published>2007-08-28T12:36:00.001-04:00</published><updated>2007-09-19T08:54:03.913-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-09-19T08:54:03.913-04:00</app:edited><title>GridGain: Grid computing for Java</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.gridgain.com/index.html"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_6m1GwPz8e34/RtRPN8B6iBI/AAAAAAAAADE/Fo7VsbJoHRE/s200/GridGain.PNG" alt="" id="BLOGGER_PHOTO_ID_5103791378588665874" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;a href="http://en.wikipedia.org/wiki/Grid_computing"&gt;Grid computing&lt;/a&gt; platforms are used more often than we think.&lt;br /&gt;&lt;br /&gt;Most &lt;a href="http://www.top500.org/lists/2007/06"&gt;supercomputer implementations&lt;/a&gt;, Google, Amazon, Yahoo, Microsoft, eBay, etc, are effectively computing nodes networked to operate under software control to schedule, dispatch and manage defined workloads.&lt;br /&gt;&lt;br /&gt;These are forms of networked, grid, computing solutions often based on proprietary software.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Among open source grid computing solutions, I came across &lt;a style="font-weight: bold;" href="http://www.gridgain.com/index.html"&gt;GridGain&lt;/a&gt;, a Java-based library that is simple to install, deploy and use.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;In minutes I was able to define few computing nodes and run the examples provided with the distribution.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Should you be looking at a grid computing implementation, have a look at GridGain; salient features include the following:&lt;/span&gt;&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;Implemented as an open source library under a LGPL license&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Java based&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Simplicity. Simplicity is a property reflected in the design and implementation of the Java library. GridGain is easy to  understand and to use. The simplicity theme is evident in the concept, design and documentation. A quote attributed to &lt;span style="font-style: italic;"&gt;Antoine de Saint-Exupéry &lt;/span&gt;is included in the product page: "A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away."&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Documentation. Documentation is clear and the product &lt;a href="http://www.gridgain.com/index.html"&gt;site &lt;/a&gt;includes associated information and examples; see product blog &lt;a href="http://www.jroller.com/nivanov/"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;GridGain represents also another example of a business model based on an open-source product. GridGain offers support, professional services, education,  analysis and development for companies interested in using GridGain.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;An emerging list of companies operating on a business model based on open-source products include:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;GridGain&lt;/span&gt;. GridGain is both the company and product offering grid computing solutions.&lt;br /&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;MySQL&lt;/span&gt;. &lt;a href="http://www.mysql.com/"&gt;MySQL AB&lt;/a&gt; develops, markets and offers services for MySQL.&lt;br /&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Interface21&lt;/span&gt;. &lt;a href="http://www.interface21.com/company/"&gt;Interface21 &lt;/a&gt;offers consulting services and training for the &lt;a href="http://www.springframework.org/"&gt;Spring &lt;/a&gt;framework.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Canonical&lt;/span&gt;. &lt;a href="http://www.canonical.com/"&gt;Canonical &lt;/a&gt;offers consulting and support services for &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt; the Linux distribution.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Alfresco&lt;/span&gt;. &lt;a href="http://www.alfresco.com/"&gt;Alfresco &lt;/a&gt;is a company offering solutions for Document Management, Collaboration, Records Management, Knowledge Management, Web Content Management and Imaging using their open source product, Alfresco.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Openbravo. &lt;/span&gt;&lt;a href="http://www.openbravo.com/"&gt;Openbravo &lt;/a&gt;is both the the company and open source product focusing on enterprise management systems, materials requirement planing, sales and customer relationship management often called ERP, MRP, CRM.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Liferay. &lt;/span&gt;&lt;a href="http://www.liferay.com/web/guest/home"&gt;Liferay &lt;/a&gt;offers Portal, Journal and Colaboration Suite as open source products. &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Sun&lt;/span&gt;. &lt;a href="http://www.sun.com/"&gt;Sun &lt;/a&gt;is a good example of a classic IT corporation redefining its business model largely through the use of an open source strategy, open culture and associated solutions. Examples of Sun's open source &lt;span style="font-style: italic;"&gt;direction &lt;/span&gt;include &lt;a href="http://www.opensolaris.org/os/"&gt;OpenSolaris&lt;/a&gt;, &lt;a href="https://openjfx.dev.java.net/"&gt;OpenJFX&lt;/a&gt;, &lt;a href="http://openjdk.java.net/"&gt;OpenJDK&lt;/a&gt;, &lt;a href="http://www.opensolaris.org/os/community/zfs/"&gt;ZFS&lt;/a&gt; File System, &lt;a href="http://www.opensolaris.org/os/project/dtrace-chime/"&gt;DTace&lt;/a&gt;, &lt;a href="http://community.java.net/netbeans/"&gt;NetBeans &lt;/a&gt;and &lt;a href="https://glassfish.dev.java.net/"&gt;GlassFish&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&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/4165955808390880953-846349925625815109?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6HI8A_Vmu27aR0_ofZc1yhr97ok/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6HI8A_Vmu27aR0_ofZc1yhr97ok/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6HI8A_Vmu27aR0_ofZc1yhr97ok/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6HI8A_Vmu27aR0_ofZc1yhr97ok/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/lmwJF6PKqjA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/846349925625815109/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=846349925625815109" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/846349925625815109?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/846349925625815109?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/lmwJF6PKqjA/gridgain-grid-computing-for-java.html" title="GridGain: Grid computing for Java" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_6m1GwPz8e34/RtRPN8B6iBI/AAAAAAAAADE/Fo7VsbJoHRE/s72-c/GridGain.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2007/08/gridgain-grid-computing-for-java.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUGRXo7eCp7ImA9WB5aGEQ.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-591138565082302925</id><published>2007-07-21T01:20:00.000-04:00</published><updated>2007-09-15T19:17:04.400-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-09-15T19:17:04.400-04:00</app:edited><title>700 Mhz spectrum: call for an open wireless network</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://gigaom.com/2007/03/14/700mhz-explained/"&gt;&lt;img id="BLOGGER_PHOTO_ID_5089544978975093698" style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" alt="" src="http://3.bp.blogspot.com/_6m1GwPz8e34/RqGyMVwu88I/AAAAAAAAAC8/oyuFxkHVNIY/s200/700Mhzspectrum.PNG" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The announcement by the US &lt;a href="http://www.fcc.gov/"&gt;FCC &lt;/a&gt;chairman, Kevin Martin, to call for an &lt;a href="http://www.engadget.com/2007/07/10/fcc-chairman-says-700-mhz-spectrum-must-be-open/"&gt;open broadband network&lt;/a&gt; represents an opportunity within the US &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-style: italic;"&gt;and &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;abroad to show support for a policy that benefits all.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Inevitably there are several interests, and well represented in Washington, lobbying for preserving a fragmented, exclusionary, proprietary and closed model as the subject spectrum is reallocated from frequencies currently used by analogue television channels 52-to-69.&lt;br /&gt;&lt;br /&gt;It is refreshing to read a call by the FCC advocating a policy contrary to the existing closed model and challenge industry towards offering an open, competitive and universal one.&lt;br /&gt;&lt;br /&gt;The existing closed model sees a franchise to the benefit of few selected companies, characterized by a fragmented, exclusionary and proprietary services where units, such as cell-phones, and applications work only within each offering, &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;country-club like.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;In contrast, an open model sees it as a needed common, competitive service to benefit the community for a function that is not a luxury. It is a needed service in todays interconnected world with the added property that devices, phone-sets and applications &lt;span style="font-style: italic;"&gt;should &lt;/span&gt;plug-and-play as required across competing offerings.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;By having industry, interest-groups and ordinary citizens support an open access where any device, any application and any network provider offers phone, gateway to the Internet among other functions, via this spectrum, will ensure competition and universal availability of a common service grandchild of the lessons and experience of the Internet.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;It is timely to have the support of Google for the service in the form of 4.6 billion dollars bid and challenge the industry to comply with the characteristics of an open model. From &lt;a href="http://googleblog.blogspot.com/2007/07/our-commitment-to-open-broadband.html"&gt;Google's blog&lt;/a&gt; re subject, we have the following:&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(0, 0, 0);"&gt;In the U.S., wireless spectrum for mobile phones and data is controlled by a small group of companies, leaving consumers with very few service providers from which to choose. With that in mind, last week, as the federal government prepares for what is arguably its most significant auction of wireless spectrum in history, we urged the Federal Communications Commission (FCC) to adopt rules to make sure that regardless of who wins the spectrum at auction, consumers' interests are the top priority. Specifically, we encouraged the FCC to require the adoption of four types of "open" platforms as part of the auction:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Open applications&lt;/span&gt;: consumers should be able to download and utilize any software applications, content, or services they desire;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Open devices&lt;/span&gt;: consumers should be able to utilize their handheld communications device with whatever wireless network they prefer;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Open services&lt;/span&gt;: third parties (resellers) should be able to acquire wireless services from a 700 MHz licensee on a wholesale basis, based on reasonably nondiscriminatory commercial terms;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Open networks&lt;/span&gt;: third parties (like Internet service providers) should be able to interconnect at any technically feasible point in a 700 MHz licensee's wireless network.&lt;/li&gt;&lt;/ol&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;It will be equally interesting to have IBM, Microsoft, AT&amp;amp;T, Verizon Wireless, Sprint, et al to support the call for an open common service by the US FCC.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;What will be even more important is that this call be an international one from Brazil, to Venezuela, Spain, France, Germany, Russia, India, China, Australia, Canada, etc, to join in a call supported by respective Governments, industry and citizen groups and request a service available everywhere common and universal as the Internet and GPS.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The availability of such a common connectivity spectrum will be of most benefit to inner-cities, displaced, rural and and remote communities. Content can be targeted&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;to these communities to bring education and certification, health services, and monitoring and employment opportunities for police, forests, water quality and levels, roads, weather and environmental sensors, should be of special interest to countries with vast remote areas such as Canada, Russia, China, Brazil.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;For Canada this service should be of special interest to the Federal Government to bring participation and presence to the north along with services to over 600 remote and native communities across the country. Contact &lt;a href="http://www.ic.gc.ca/"&gt;Industry Canada&lt;/a&gt; and the &lt;a href="http://www.crtc.gc.ca/eng/welcome.htm"&gt;CRTC &lt;/a&gt;and your local Provincial and Federal government representatives to solicit their view and support for an open common service as proposed in the US by the FCC - see related FCC upper 700 Mhz Band auction page &lt;a href="http://wireless.fcc.gov/auctions/default.htm?job=auction_summary&amp;amp;id=31"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;Updates&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.reuters.com/article/technology-media-telco-SP/idUSN1923223020070719"&gt;AT&amp;amp;T&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; endorses FCC's call for an open wireless service.&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Google bets on mobile market: &lt;a href="http://news.com.com/Google+bets+on+mobile+market/2100-1039_3-6199725.html?tag=st.num"&gt;CNet&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;FCC approves &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0); font-weight: bold;"&gt;some &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;open wireless requirements: &lt;a href="http://news.com.com/FCC+approves+some+open+wireless+requirements/2100-1039_3-6199990.html"&gt;CNet&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;FCC approves revised 700 MHz band plan and service rules: &lt;a href="http://hraunfoss.fcc.gov/edocs_public/attachmatch/DOC-275669A1.pdf"&gt;FCC&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Band plan chart: &lt;a href="http://www.fcc.gov/073107/700mhz_band_plan_chart_073107.pdf"&gt;FCC&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Kevin Martin's statement: &lt;a href="http://hraunfoss.fcc.gov/edocs_public/attachmatch/DOC-275669A2.pdf"&gt;FCC&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Why it matters; good comments re &lt;a href="http://www.mostlycommonsense.com/?p=92"&gt;subject&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The battle of models, open versus closed, is best exemplified by the running discord between Google and Verizon; have a look &lt;a href="http://www.news.com/8301-10784_3-9778508-7.html"&gt;here&lt;/a&gt; and &lt;a href="http://www.theregister.co.uk/2007/09/15/verizon_throws_us_appeals_court_at_google_wireless_plan/"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&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/4165955808390880953-591138565082302925?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qYHs409KNLIqCo-juvZhh2T8Eo4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qYHs409KNLIqCo-juvZhh2T8Eo4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qYHs409KNLIqCo-juvZhh2T8Eo4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qYHs409KNLIqCo-juvZhh2T8Eo4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/1dzS1K_6_-w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/591138565082302925/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=591138565082302925" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/591138565082302925?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/591138565082302925?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/1dzS1K_6_-w/700-mhz-spectrum-call-for-open-wireless.html" title="700 Mhz spectrum: call for an open wireless network" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_6m1GwPz8e34/RqGyMVwu88I/AAAAAAAAAC8/oyuFxkHVNIY/s72-c/700Mhzspectrum.PNG" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2007/07/700-mhz-spectrum-call-for-open-wireless.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYCQH4-cSp7ImA9WB5XF0s.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-3564538113350216329</id><published>2007-07-17T10:37:00.000-04:00</published><updated>2007-07-18T10:16:01.059-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-07-18T10:16:01.059-04:00</app:edited><title>iGoogle: a custom selection of Gadgets</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.google.com/ig?source=hapi"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_6m1GwPz8e34/RpzUZ_6c4BI/AAAAAAAAACc/5Al6yVqCeNU/s200/igoogle.PNG" alt="" id="BLOGGER_PHOTO_ID_5088175222140231698" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Browser &lt;span style="font-style: italic;"&gt;Bookmarks &lt;/span&gt;become indispensable Web-references; they are more than just nice-to-have information and knowledge pointers.&lt;br /&gt;&lt;br /&gt;However, when using different Browsers on same or different computers, likely using different Operating Systems, &lt;span&gt;the aggregate working set of &lt;span style="font-style: italic;"&gt;Bookmarks &lt;/span&gt;is &lt;/span&gt;unavailable and eventually fragmented, unused and lost.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I found &lt;span style="font-style: italic;"&gt;iGoogle &lt;/span&gt;a useful tool to define, catalogue and quickly access &lt;span style="font-style: italic;"&gt;Bookmarks &lt;/span&gt;from any Browser and from any computer at home, at project offices, at client locations and while on the road.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;iGoogle offers a way to configure your classical Google search page by using defined small utility panels, dubbed Gadgets, permitting custom configuration of your default Google search page by selecting a set of predefined Gadgets.&lt;br /&gt;&lt;br /&gt;One feature I like is the ability to switch instantly between the classical Google search page and iGoogle, back and forth, via a link located on the top right corner labelled 'Classic Home' and 'iGoogle'. There are times when I prefer the simple unadorned but useful classic search page and switch as needed to the portal view, custom view, of iGoogle.&lt;br /&gt;&lt;br /&gt;You can configure several Gadgets in your iGoogle page. The ones I use include:&lt;/span&gt;&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;Bookmarks&lt;/li&gt;&lt;li&gt;Calendar&lt;/li&gt;&lt;li&gt;Time and Date&lt;/li&gt;&lt;li&gt;Wheather&lt;/li&gt;&lt;li&gt;Gmail&lt;/li&gt;&lt;li&gt;Wikipedia&lt;/li&gt;&lt;li&gt;News&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;There are Gadgets for every interest, age and taste. There are jokes and cartoons of the day, games, stock portfolio, finance, sports, etc.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Gadgets work also on the Desktop. I do not use these since what I am looking for is a set of tools that I can access from anywhere independent of Operating System and Browser combination.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Beyond configuring Gadgets for personal use under iGoogle, Gadgets can be developed for use on web applications and pages for custom use or published for general availability.&lt;br /&gt;&lt;br /&gt;I had a quick look at the API,  xml-based, and I found it simple and a couple of applications came to mind which I'll explore shortly.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Google&lt;/span&gt;. Information in general for Google Gadgets  is found &lt;a href="http://www.google.com/webmasters/gadgets/"&gt;here&lt;/a&gt;, and the API for development of custom Gadgets is &lt;a href="http://www.google.com/apis/gadgets/"&gt;here&lt;/a&gt;. For iGoogle find general information &lt;a href="http://googleblog.blogspot.com/2007/04/youve-got-gadget-mail.html"&gt;here &lt;/a&gt;and also at &lt;a href="http://en.wikipedia.org/wiki/IGoogle"&gt;Wikipedia&lt;/a&gt;. And there is an API &lt;a href="http://www.google.com/apis/gadgets/docs-home.html"&gt;developers guide&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Microsoft&lt;/span&gt;. Microsoft has a Gadgets-based technology also. I have not worked with this API referenced at &lt;a href="http://microsoftgadgets.com/"&gt;microsoftgadgets.com&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&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/4165955808390880953-3564538113350216329?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jM45Vp2RPSvnvD6KHQiZ36floY8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jM45Vp2RPSvnvD6KHQiZ36floY8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jM45Vp2RPSvnvD6KHQiZ36floY8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jM45Vp2RPSvnvD6KHQiZ36floY8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/j4saoiqNLTw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/3564538113350216329/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=3564538113350216329" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/3564538113350216329?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/3564538113350216329?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/j4saoiqNLTw/igoogle-custom-selection-of-gadgets.html" title="iGoogle: a custom selection of Gadgets" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_6m1GwPz8e34/RpzUZ_6c4BI/AAAAAAAAACc/5Al6yVqCeNU/s72-c/igoogle.PNG" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2007/07/igoogle-custom-selection-of-gadgets.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8GQ38_eCp7ImA9WB5XF0o.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-8862111926750249687</id><published>2007-07-07T00:25:00.000-04:00</published><updated>2007-07-18T11:00:22.140-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-07-18T11:00:22.140-04:00</app:edited><title>Ubuntu: the power of free software</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://en.wikipedia.org/wiki/Ubuntu_%28Linux_distribution%29"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_6m1GwPz8e34/Ro9H_hCyt-I/AAAAAAAAACU/t8rPzxk-4LM/s200/ubuntuLogo.PNG" alt="" id="BLOGGER_PHOTO_ID_5084361660851992546" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;There are hundreds of Linux distributions from which  Red Hat and  SuSE are likely the most popular in corporate deployment; and there is &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Why is Ubuntu, a relatively recent entrant into the crowded Linux distribution space, so successful to be selected by &lt;a href="http://www.ubuntu.com/news/sunfire"&gt;Sun &lt;/a&gt;and by &lt;a href="http://news.bbc.co.uk/2/hi/business/6610901.stm"&gt;Dell &lt;/a&gt;as an alternate certified and supported Operating System (OS) for their respective products, and selected also by the French Government to power desktops for Parliament and &lt;a href="http://www.heise.de/english/newsticker/news/92296"&gt;servers &lt;/a&gt;for the Ministry of Agriculture?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Possible elements contributing to Ubuntu's success include the following.&lt;/span&gt;&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Mark Shuttleworth&lt;/span&gt;.  &lt;a href="http://en.wikipedia.org/wiki/Mark_Shuttleworth"&gt;Mark Shuttleworh&lt;/a&gt; articulated the free software commitment for Ubuntu and provided the funding for software development directly and through &lt;a href="http://www.canonical.com/"&gt;Canonical &lt;/a&gt;a UK based company focused on the promotion and support of free software projects.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Unique culture&lt;/span&gt;. Shuttleworth managed to attract talented personnel as well as define and promote a unique culture behind Ubuntu the product, the process for continued innovation and related support services.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Quality&lt;/span&gt;. Principle of least surprise is evident in Ubuntu. The user interface and  selected packaged  applications 'just work'. The OS is well integrated and tailored for use for  &lt;span style="font-style: italic;"&gt;desktop &lt;/span&gt;and &lt;span&gt;for &lt;/span&gt;&lt;span style="font-style: italic;"&gt;server &lt;/span&gt;functions.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Free software only&lt;/span&gt;. Products bundled with Ubuntu are those that are free of charge and free to distribute.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Multilingual support&lt;/span&gt;. This is the Ubuntu's statement re language support: "Ubuntu aims to be usable by as many people as possible, which is why we include the very best localization and accessibility infrastructure that the free software community has to offer."&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Commercial technical support&lt;/span&gt;. Via Canonical and associated partners, paid support and technical assistance is available. Canonical global support site is based in Montreal, Canada.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Partnership program&lt;/span&gt;. Through Canonical, and associated certification program, there are Ubuntu support organizations across the world. Also, several Ubuntu-based value-added distributions benefit from the relationship and partnership evident through distibutions such as &lt;a href="http://en.wikipedia.org/wiki/Kubuntu"&gt;Kubuntu &lt;/a&gt;among several others. There is always a need to customize a Linux distribution for a company, for a Government, for an application. Ubuntu facilitates such work, everyone wins and maintains the continuity and presence of Ubuntu's core distribution.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Collaboration with the open-source community&lt;/span&gt;. Tight collaboration and use of common tools permit open-source participants to work together productively with Ubuntu and partners.  This approach helps individual participants identify and schedule priority work, bug fixes and new development, efforts that contribute improve the quality of Ubuntu.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Free of patent agreements with Microsoft&lt;/span&gt;. While Novell's SuSE and few less known Linux distributions have signed patent/liability 'agreements' with Microsoft, Shuttleworth has &lt;a href="http://www.markshuttleworth.com/archives/118"&gt;stated &lt;/a&gt;the policy to maintain Ubuntu free of any such 'deals' that effectively compromise rather than contribute to keep software free for use and free for distribution.&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/4165955808390880953-8862111926750249687?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pi4bw82BU_dSWCcAljfchsOkXz0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pi4bw82BU_dSWCcAljfchsOkXz0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pi4bw82BU_dSWCcAljfchsOkXz0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pi4bw82BU_dSWCcAljfchsOkXz0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/F_YocCKMH0A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/8862111926750249687/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=8862111926750249687" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/8862111926750249687?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/8862111926750249687?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/F_YocCKMH0A/ubuntu-smart-secure-easy.html" title="Ubuntu: the power of free software" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_6m1GwPz8e34/Ro9H_hCyt-I/AAAAAAAAACU/t8rPzxk-4LM/s72-c/ubuntuLogo.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2007/07/ubuntu-smart-secure-easy.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YEQ3w_fSp7ImA9WB5WE0Q.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-4226595503298144104</id><published>2007-07-03T00:31:00.000-04:00</published><updated>2007-07-25T17:31:42.245-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-07-25T17:31:42.245-04:00</app:edited><title>OpenID: single sign-on for the Web</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://openid.net/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_6m1GwPz8e34/Rowf7hCytwI/AAAAAAAAAAk/-eYjimafTu0/s200/openID.PNG" alt="" id="BLOGGER_PHOTO_ID_5083473186737272578" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;OpenID &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;is a distributed, decentralized, identity management and authentication service that offers a simple way to sign-on to several sites using a unique ID.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;This is an old problem for which centralized solutions are available. What is interesting about OpenID is that it is distributed, it is simple in concept and in implementation, and it is an open-source project.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Offers single sign-on&lt;/span&gt;. OpenID offers a way to sign-on to different sites without creating separate &lt;span style="font-style: italic;"&gt;userName &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;password &lt;/span&gt;for each. The participating sites must support OpenID for the authentication service to work.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Uses a url as identifier&lt;/span&gt;. It uses an Internet Resource Locator, a url, such as &lt;span style="font-style: italic;"&gt;charlieBrown.peanuts.com&lt;/span&gt;, for identification. A user registers one or more urls with a site offering OpenID identity management services. Each url is claimed, owned, by a registered user.&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The OpenID specification includes the ability for any organization, individual user, company, government department, service provider etc, to offer the registration and authentication service.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&lt;br /&gt;How does it work&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;? When prompted for &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);"&gt;userName &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;and &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);"&gt;password&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, sites supporting OpenID offer it as an alternate way to sign-on.  The user enters the OpenID url in place of &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);"&gt;userName &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;and &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);"&gt;password&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;. The site redirects the authentication to the site managing OpenID identity, the OpenID site validates the identity and in turn it redirects back to the calling site indicating authentication success or failure.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;By using 2-and-3-factor authentication, OpenID can be used for transactions  were &lt;a style="font-weight: bold;" href="http://en.wikipedia.org/wiki/Strong_authentication"&gt;Strong Authentication&lt;/a&gt; is needed.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;Why is it needed&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;? Each user must manage separate online identities using same or separate &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);"&gt;userNames &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;and &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);"&gt;passwords&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;. OpenID addresses this proliferation of &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);"&gt;userNames &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;and &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);"&gt;passwords.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;What is needed for OpenID to succeed&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;? There have been several attempts to address this problem. For OpenID to be successful it needs universal adoption, enhancement and support as an &lt;span style="font-style: italic;"&gt;open standard&lt;/span&gt; by industry in general. What is needed is for Google, Amazon, Yahoo, Microsoft, phone companies, banks, credit cards, retailers, et al to adopt it,  and offer it as providers and consumers of the service.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;For information go to &lt;a style="font-weight: bold;" href="http://openid.net/"&gt;openID.net&lt;/a&gt;, and &lt;a style="font-weight: bold;" href="http://en.wikipedia.org/wiki/Openid"&gt;kiwipedia.org.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;a style="font-weight: bold;" href="http://news.bbc.co.uk/2/hi/technology/6339813.stm"&gt;BBC article&lt;/a&gt; re subject.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;a style="font-weight: bold;" href="http://thomashawk.com/2007/02/microsoft-to-support-openid-log-on.html"&gt;Microsoft &lt;/a&gt;may support OpenID.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;a style="font-weight: bold;" href="http://developers.sun.com/identity/"&gt;Sun Microsystems&lt;/a&gt; offers a service that guarantees anyone using an OpenID from this service is a Sun employee. Comments re adoption of OpenID by Sun are found &lt;a style="font-weight: bold;" href="http://janrain.com/blog/2007/05/08/sun-and-the-rise-of-the-authoritative-idp/"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Using OpenID; &lt;a href="http://www.theserverside.com/tt/articles/article.tss?l=OpenID"&gt;theServerSide.com&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&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/4165955808390880953-4226595503298144104?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TTJ7RiXDdTI-kyU0m2GTRFDVaZ0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TTJ7RiXDdTI-kyU0m2GTRFDVaZ0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TTJ7RiXDdTI-kyU0m2GTRFDVaZ0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TTJ7RiXDdTI-kyU0m2GTRFDVaZ0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/64btkinoRRQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/4226595503298144104/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=4226595503298144104" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/4226595503298144104?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/4226595503298144104?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/64btkinoRRQ/openid.html" title="OpenID: single sign-on for the Web" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_6m1GwPz8e34/Rowf7hCytwI/AAAAAAAAAAk/-eYjimafTu0/s72-c/openID.PNG" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2007/07/openid.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8FRXc6fip7ImA9WB5QFUQ.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-5112313835971591106</id><published>2007-06-28T19:04:00.000-04:00</published><updated>2007-07-04T19:46:54.916-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-07-04T19:46:54.916-04:00</app:edited><title>Supercomputers: interconnected servers  running Linux</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.top500.org/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_6m1GwPz8e34/RowhIhCytxI/AAAAAAAAAAs/a11Myzy4Dzo/s200/amdAndIntel.PNG" alt="" id="BLOGGER_PHOTO_ID_5083474509587199762" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The list of the top-500 Supercomputers was released today at &lt;a style="font-weight: bold;" href="http://www.top500.org/"&gt;top500.org&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The list shows a number of interesting statistics.  I am including some comments for changes observed from 2000 to 2007.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Operating Systems&lt;/span&gt;. The stats show a significant change in 7-years. Unix went from 90-to-12 percent while Linux went from 5.60-to-77.80 percent.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;Processor Family&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;. A significant change is apparent also where &lt;a href="http://en.wikipedia.org/wiki/RISC"&gt;RISC&lt;/a&gt;-based technologies, namely IBM's Power, Sun's SPARC, MIPS, Alpha and PA-RISC, lost to the combination of Intel and AMD processor technology. The combined Intel and AMD offerings went from 4.00-to-78.80 percent.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;These changes indicate that in contrast to earlier vector-based technologies, 80% of today's top-500 supercomputers are configured as thousands of garden-variety, conventional Intel and AMD microprocessors, e.g. scalar computers, running Linux and interconnected, clustered,  by several network technologies.&lt;br /&gt;&lt;br /&gt;The use of thousands of clustered Intel and AMD based servers for supercomputers may explain why tier-one vendors continue to devote much R&amp;D and marketing to this segment. It may be regarded as a niche but apparently today it represents 19% of the server market and growing at 9% per year.&lt;br /&gt;&lt;br /&gt;The industry seems to have found that there is much in common between the technology components needed for supercomputers and those needed by Google, Amazon, Yahoo, YouTube, Microsoft and others to power the growth in network-based services.&lt;br /&gt;&lt;br /&gt;A key component that often calls less attention than real estate, power, storage, servers, OS and application software is the technology used to interconnect, to cluster, servers.&lt;br /&gt;&lt;br /&gt;Core and leaf Switches and accompanying cables represent a huge expense, room, weight and computing capacity limiting factor.&lt;br /&gt;&lt;br /&gt;Sun announced &lt;a style="font-weight: bold;" href="http://www.sun.com/servers/hpc/SunConstellationPreview.jsp"&gt;Constellation &lt;/a&gt;a system offering the building blocks around a connectivity technology that promises to simplify configuring supercomputers, should I say web services, scaling from tera-to-peta-flops.&lt;br /&gt;&lt;br /&gt;The heart of Sun's &lt;a style="font-weight: bold;" href="http://www.sun.com/servers/hpc/SunConstellationPreview.jsp"&gt;Constellation &lt;/a&gt;is Magnum, a High-density 3456-port InfiniBand switch,  that contributes to simplify the configuration and logistics for interconnecting large numbers of servers.&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;pre&gt;+------------- Top-500 Supercomputers ----------+&lt;br /&gt;+------------- Number of Processors ------------+&lt;br /&gt;    Date       Processors       Count     Share %&lt;br /&gt;    &lt;br /&gt;    2007.June  1                    1      0.20 % &lt;br /&gt;               33-64                3      0.60 %  &lt;br /&gt;               65-128               5      1.00 %  &lt;br /&gt;               129-256              2      0.40 %  &lt;br /&gt;               257-512             81     16.20 %     &lt;br /&gt;               513-1024           126     25.20 %     &lt;br /&gt;               1025-2048          176     35.20 %     &lt;br /&gt;               2049-4096           53     10.60 %     &lt;br /&gt;               4k-8k               33      6.60 %  &lt;br /&gt;               8k-16k              14      2.80 %  &lt;br /&gt;               16k-32k              3      0.60 %  &lt;br /&gt;               32k-64k              2      0.40 %  &lt;br /&gt;               64k-128k             1      0.20 %&lt;br /&gt; &lt;br /&gt;+------------- Interconnection Technology ------+&lt;br /&gt;    Date       Technology      Count      Share %&lt;br /&gt;    &lt;br /&gt;    2007.June  Gigabit Ethernet  206      41.20 %&lt;br /&gt;               Infiniband        128      25.60 %&lt;br /&gt;               Myrinet            46       9.20 %&lt;br /&gt;               SP Switch          36       7.20 %&lt;br /&gt;               Proprietary        35       7.00 %&lt;br /&gt;               NUMAlink           15       3.00 %&lt;br /&gt;               Quadrics           11       2.20 %&lt;br /&gt;               Crossbar           10       2.00 %&lt;br /&gt;               Cray Interconnect   9       1.80 %   &lt;br /&gt;               Mixed               4       0.80 %&lt;br /&gt; &lt;br /&gt;+------------- Operating Systems ---------------+&lt;br /&gt;    Date       OS               Count     Share %&lt;br /&gt;    &lt;br /&gt;    2007.June  Linux              389     77.80 %&lt;br /&gt;               Unix                60     12.00 %&lt;br /&gt;               Mixed               42      8.40 %&lt;br /&gt;               BSD Based            4      0.80 %&lt;br /&gt;               Mac OS               3      0.60 %&lt;br /&gt;               Windows              2      0.40 %&lt;br /&gt; &lt;br /&gt;    2000.June  Unix               453     90.60 %&lt;br /&gt;               Linux               28      5.60 %&lt;br /&gt;               BSD Based           17      3.40 %&lt;br /&gt;               N/A                  2      0.40 %&lt;br /&gt;  &lt;br /&gt;+------------- Processor Family ----------------+&lt;br /&gt;    Date       Processor        Count     Share %&lt;br /&gt;    &lt;br /&gt;    2007.June  Intel EM64T        231     46.20 %&lt;br /&gt;               AMD x86_64         107     21.40 %&lt;br /&gt;               Power               85     17.00 %&lt;br /&gt;               Intel IA-32         28      5.60 %&lt;br /&gt;               Intel IA-64         28      5.60 %&lt;br /&gt;               PA-RISC             10      2.00 %&lt;br /&gt;               NEC                  4      0.80 %&lt;br /&gt;               Sparc                3      0.60 %&lt;br /&gt;               Alpha                2      0.40 %&lt;br /&gt;               Cray                 2      0.40 %&lt;br /&gt;               Intel + AMD        394     78.80 %&lt;br /&gt; &lt;br /&gt;    2000.June  Power              143     28.60 %&lt;br /&gt;               Sparc              122     24.40 %&lt;br /&gt;               MIPS                62     12.40 %&lt;br /&gt;               Alpha               56     11.20 %&lt;br /&gt;               PA-RISC             53     10.60 %&lt;br /&gt;               NEC                 25      5.00 %&lt;br /&gt;               Fujitsu             19      3.80 %&lt;br /&gt;               Hitachi SR8000      10      2.00 %&lt;br /&gt;               Cray                 6      1.20 %&lt;br /&gt;               Intel IA-32          3      0.60 %&lt;br /&gt;               Intel i860           1      0.20 %&lt;br /&gt;+-----------------------------------------------+&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4165955808390880953-5112313835971591106?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NzBDWQh7owxjCl3JdGwtYT4kYko/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NzBDWQh7owxjCl3JdGwtYT4kYko/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NzBDWQh7owxjCl3JdGwtYT4kYko/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NzBDWQh7owxjCl3JdGwtYT4kYko/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/SYgjba-Wvl4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/5112313835971591106/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=5112313835971591106" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/5112313835971591106?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/5112313835971591106?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/SYgjba-Wvl4/top-500-supercomputers.html" title="Supercomputers: interconnected servers  running Linux" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_6m1GwPz8e34/RowhIhCytxI/AAAAAAAAAAs/a11Myzy4Dzo/s72-c/amdAndIntel.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2007/06/top-500-supercomputers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUGRn44cCp7ImA9WB5VEE8.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-8684137066586585979</id><published>2007-06-28T00:31:00.001-04:00</published><updated>2007-08-02T00:17:07.038-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-08-02T00:17:07.038-04:00</app:edited><title>An open source content management solution</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.alfresco.com/products/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_6m1GwPz8e34/Rowk-hCytyI/AAAAAAAAAA0/iytGqUIen20/s200/alFresco.PNG" alt="" id="BLOGGER_PHOTO_ID_5083478735835019042" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;a style="font-weight: bold;" href="http://www.alfresco.com/"&gt;Alfresco &lt;/a&gt;is&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; a&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;n open source Enterprice Content Management (ECM) alternative to &lt;span style="font-style: italic;"&gt;closed &lt;/span&gt;products such a&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;s Documentum, IBM DB-2 Content Management, Filenet, Opentext, Interwoven,  Vignette and Microsoft's Sharepoint &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;among others.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Alfresco was develop&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ed using &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;exclusively Open Source components such as &lt;a style="font-weight: bold;" href="http://www.springframework.org/"&gt;Spring&lt;/a&gt;, &lt;a style="font-weight: bold;" href="http://www.hibernate.org/"&gt;Hibernate&lt;/a&gt;, &lt;a style="font-weight: bold;" href="http://lucene.apache.org/java/docs/"&gt;Lucene&lt;/a&gt;. It represents a standards-based alternative to expensive, &lt;span style="font-style: italic;"&gt;closed&lt;/span&gt;, commercial ECM products. Referenced standards include  &lt;a href="http://jcp.org/en/jsr/detail?id=168"&gt;JSR-168&lt;/a&gt;, &lt;a href="http://jcp.org/en/jsr/detail?id=170"&gt;JSR-170&lt;/a&gt; and &lt;a href="http://jcp.org/en/jsr/detail?id=283"&gt;JSR-283&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Alfresco represents a good example of a business based on open source components and &lt;span style="font-style: italic;"&gt;open &lt;/span&gt;development culture, &lt;a href="http://en.wikipedia.org/wiki/Cathedral_and_the_Bazaar"&gt;Bazaar model&lt;/a&gt;, resulting in a content management solution that can be tailored to small and large organizations. Alfresco is licensed under &lt;a style="font-weight: bold;" href="http://www.gnu.org/copyleft/gpl.html"&gt;GPL&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The list of &lt;a href="http://www.alfresco.com/customers/"&gt;customers &lt;/a&gt;using it for ECM, collaboration, workflow, document, web, records and image management is impressive for a relatively new product.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;It is worth mentioning that Alfresco produced a full functioning, scalable, open ECM alternative to conventional products in less than a year of development effort using the open source components listed below. It represents a very good example of a collaborative, open and successful business developed by reusing existing components.&lt;br /&gt;&lt;br /&gt;Alfresco's selection of open source components is a valuable reference, a list of chosen components among a large selection, as well as an excellent example of application development using existing well tested components free of proprietary licenses, royalties, patents and other demons.&lt;br /&gt;&lt;br /&gt;Most components with the exception of Spring, OpenOffice, Hybernate and Lucene, are small cleverly crafted software, prepackaged  unique functions, chosen by Alfresco to deliver the resulting functional integration in place of custom code.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://www.springframework.org/"&gt;Spring&lt;/a&gt;. Spring is an application framework for Java.&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://www.openoffice.org/"&gt;Open Office&lt;/a&gt;. OpenOffice.org is a multiplatform and multilingual office suite.&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://www.hibernate.org/"&gt;Hibernate&lt;/a&gt;. Hibernate is a high performance object/relational persistence and query Java library.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://lucene.apache.org/java/docs/"&gt;Lucene&lt;/a&gt;. Apache Lucene is a text search engine library written in Java.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://myfaces.apache.org/"&gt;MyFaces&lt;/a&gt;. Java Server Faces is a web application framework.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://freemarker.sourceforge.net/"&gt;FreeMarker. &lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;FreeMarker is a template engine to generate text output based on templates. &lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://www.mozilla.org/rhino/"&gt;Rhino&lt;/a&gt;. Rhino is an implementation of JavaScript written in Java typically embedded into Java applications to provide scripting to end users.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://ehcache.sourceforge.net/"&gt;EHCache&lt;/a&gt;. Ehcache is a java-based distributed cache for general purpose caching.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://www.acegisecurity.org/"&gt;ACEGI&lt;/a&gt;. Acegi Security provides applications with authentication, authorization and  access control.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://logging.apache.org/log4j/docs/index.html"&gt;Log4j&lt;/a&gt;. Offers logging behaviour to Java applications.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://www.jboss.com/products/jbpm"&gt;jBPM&lt;/a&gt;. Workflow and business processes library for Java applications.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://ws.apache.org/axis/"&gt;Axis&lt;/a&gt;. Apache Axis is an XML based Web service framework.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://poi.apache.org/"&gt;POI&lt;/a&gt;. Apache &lt;span style="color: rgb(0, 0, 0);"&gt;POI project consists of APIs for manipulating various Microsoft file formats using Java.&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://xfire.codehaus.org/"&gt;Xfire&lt;/a&gt;. XFire facilitates use of Web Services, via SOAP, for a Java application.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://www.opensymphony.com/quartz/"&gt;Quartz&lt;/a&gt;. Quartz is a &lt;span style="color: rgb(0, 0, 0);"&gt;job scheduling system for Java applications.&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://www.pdfbox.org/"&gt;PDFBox. &lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;PDFBox is an open source Java PDF library for working with PDF documents.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://tinymce.moxiecode.com/"&gt;TinyMCE&lt;/a&gt;. TinyMCE is a web based Javascript HTML WYSIWYG editor.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://jaxen.org/index.html"&gt;Jaxen&lt;/a&gt;. Jaxen is a Java to search and extract information from XML documents - an XPath Engine.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a style="font-weight: bold;" href="http://jackrabbit.apache.org/index.html"&gt;JCR RMI&lt;/a&gt;. Apache Jackrabbit JCR-RMI is a Remote Method Invocation (RMI) layer for the Content Repository for Java - Apache Jackrabbit implements &lt;a href="http://jcp.org/en/jsr/detail?id=283"&gt;JSR-283&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Other open source content management systems, include:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;a href="http://www.magnolia.info/en/magnolia.html"&gt;Magnolia &lt;/a&gt;a project with an insightful motto: "Simple is beautiful".&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;a href="http://demo.silverstripe.com/"&gt;Silverstripe &lt;/a&gt;from New Zealand.&lt;/span&gt;&lt;/span&gt;&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/4165955808390880953-8684137066586585979?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/srDhNy9AhEN_zC7iNOwyznunFiI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/srDhNy9AhEN_zC7iNOwyznunFiI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/srDhNy9AhEN_zC7iNOwyznunFiI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/srDhNy9AhEN_zC7iNOwyznunFiI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/3RlZEuRPlng" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/8684137066586585979/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=8684137066586585979" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/8684137066586585979?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/8684137066586585979?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/3RlZEuRPlng/alfresco-content-management-alternative.html" title="An open source content management solution" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_6m1GwPz8e34/Rowk-hCytyI/AAAAAAAAAA0/iytGqUIen20/s72-c/alFresco.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2007/06/alfresco-content-management-alternative.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYGRnk8fSp7ImA9WB5QFUQ.&quot;"><id>tag:blogger.com,1999:blog-4165955808390880953.post-7315136154486079699</id><published>2007-06-26T22:24:00.000-04:00</published><updated>2007-07-04T19:02:07.775-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-07-04T19:02:07.775-04:00</app:edited><title>Service Oriented Architecture - SOA</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.amazon.com/Service-Oriented-Architecture-Field-Integrating-Services/dp/0131428985"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_6m1GwPz8e34/RowmphCytzI/AAAAAAAAAA8/VL52rY_kAiY/s200/soa.PNG" alt="" id="BLOGGER_PHOTO_ID_5083480574081021746" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Service-Oriented Architecture - &lt;a style="font-weight: bold;" href="http://en.wikipedia.org/wiki/Service-oriented_architecture"&gt;SOA &lt;/a&gt;- is a key technology for developing network-based services. I was pleased to find a reference to a talk by Patrick Steger at the &lt;a style="font-weight: bold;" href="http://jazoon.com/en/conference/presentationdetails.html?type=sid&amp;detail=681"&gt;International Conference on Java Technology.&lt;/a&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Just reading the Abstract tells me that the subject is detailed and well structured accompanied by a working code sample. I'll post the video reference if available; please post it as a comment should you find it; thanks.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;On the subject of network-based services, here is a reference to the Economist's article: &lt;a style="font-weight: bold;" href="http://www.economist.com/finance/displaystory.cfm?story_id=9122582"&gt;A battle at the checkout&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;Abstract - &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://jazoon.com/en/conference/presentationdetails.html?type=sid&amp;detail=681"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Standards for an interoperable, secure and flexible SOA&lt;/span&gt;&lt;/a&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"SOA (Service-Oriented Architecture) is becoming the central strategy for more &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;and more companies and therefore getting business critical. An enduring SOA has &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;to provide very high grades of security and availability combined with good &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;interoperability and usability to protect both, the valuable assets and the &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;often tremendous investments of the company.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Based on &lt;a style="font-weight: bold;" href="http://en.wikipedia.org/wiki/WSIT"&gt;WSIT &lt;/a&gt;(Web Services Interoperability Technologies, SUN Microsystems) and &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;a style="font-weight: bold;" href="http://en.wikipedia.org/wiki/Windows_Communication_Foundation"&gt;WCF &lt;/a&gt;(Windows communication foundation, Microsoft) an interoperable, secure and &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;flexible SOA is feasible today. This talk will provide you with the theoretical &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;background of the standards you need to know when aiming for that target.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;During the talk we will create a simple yet secure and interoperable SOA system &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;centred on the well known Calculator service.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The SOA is built on a step by step basis and introduces the following major &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;security relevant WS-Standards:&lt;/span&gt;&lt;ul style="color: rgb(0, 0, 0);"&gt;&lt;li&gt;XML Encryption&lt;/li&gt;&lt;li&gt;XML Signature  &lt;/li&gt;&lt;li&gt;WS-Security&lt;/li&gt;&lt;li&gt;WS-MetadataExchange &lt;/li&gt;&lt;li&gt;WS Secure Exchange &lt;/li&gt;&lt;li&gt;WS-Trust&lt;/li&gt;&lt;li&gt;WS-SecureConversation&lt;/li&gt;&lt;li&gt;WS-SecurityPolicy  &lt;/li&gt;&lt;li&gt;Security Assertion Markup Language (&lt;a style="font-weight: bold;" href="http://en.wikipedia.org/wiki/Saml"&gt;SAML&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;eXtensible Access Control Markup Language (XACML)&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;For each Standard you will learn its purpose, status and relationship to the &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;other standards.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The final SOA system supports a scenario where a client application requests &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;metadata from a Calculator Service and uses that metadata to obtain the &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;SecurityPolicy of that service. In addition the location of the Authentication &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Service issuing the required SAML Token to access the Calculator Service is &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;retrieved from the metadata.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The client then authenticates with the central Authentication Service and &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;receives a SAML Token in return. &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Using the SAML Token the client calls the Calculator Service's add operation.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The Calculator Service validates the SAML Token and asks the central &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Authorization Service to check the authorization of the client to use the add &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;operation with the given parameters."&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4165955808390880953-7315136154486079699?l=jfzarama.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5SUCzRGAI8U3M30LYZrFR5ecHeI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5SUCzRGAI8U3M30LYZrFR5ecHeI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5SUCzRGAI8U3M30LYZrFR5ecHeI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5SUCzRGAI8U3M30LYZrFR5ecHeI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NotesOnComputing/~4/VpJAineeEWg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://jfzarama.blogspot.com/feeds/7315136154486079699/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=4165955808390880953&amp;postID=7315136154486079699" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/7315136154486079699?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4165955808390880953/posts/default/7315136154486079699?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NotesOnComputing/~3/VpJAineeEWg/service-oriented-architecture-soa.html" title="Service Oriented Architecture - SOA" /><author><name>J.F. Zarama</name><uri>http://www.blogger.com/profile/09513299651769017825</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="30" height="32" src="http://3.bp.blogspot.com/-7BFIbcKYopA/TWVSg5V0g-I/AAAAAAAAAf4/PEKPjXMsv5E/s220/jfz07.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_6m1GwPz8e34/RowmphCytzI/AAAAAAAAAA8/VL52rY_kAiY/s72-c/soa.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://jfzarama.blogspot.com/2007/06/service-oriented-architecture-soa.html</feedburner:origLink></entry></feed>

