Thursday, December 03, 2009

Any, Nothing, Scala and Java

The type verification engine in Scala outdoes the one in Java.

To enable this relative strength, Scala has defined, among other features, a closed type system, with the inclusion of "Any" and "Nothing".

"Any" is the super-type of all types. This is nothing new. Java has this, too, essentially speaking.

"Nothing" is the subtype of all types. When it comes to classic and modern type theory, there's nothing new about "Nothing" either. However, "Nothing"-ness is revolutionary new when thinking of how Java has treated types.

Java designers -- perhaps for the sake of the love of trees (I mean "trees" as a graph concept) and the love of "simplicity" of type system that characterizes OS and language designers wish to serve common programmers in general -- did not stipulate "Nothing". Had they done so, we would have had a completely different language in its characteristics from what became Java.

"Nothing" is a simple change but the consequences on the type system and language features are widespread.

Thursday, November 26, 2009

Hadoop Tutorial in a virtual machine

Cloudera virtual machine can be used to play with Hive and HDFS environment. See here.

Monday, November 16, 2009

Configuring Java and JDK on Snow-Leopard

You can find the best explanations and backward configurations at http://wiki.oneswarm.org/index.php/OS_X_10.6_Snow_Leopard

Saturday, November 14, 2009

Who says Java is slow?

"Slowness of Java" proved to be a myth even back in 1996-1997, when Java ORBs kept beating C++ orbs in various RPC benchmarks.

Consider also, that in July 2008, Hadoop won the Terabyte Sort Benchmark: One of Yahoo's Hadoop clusters sorted 1 terabyte of data in 209 seconds. This beat the previous record of 297 seconds in the annual general purpose (Daytona) terabyte sort benchmark.

It was the first time that either a Java or an open source program had ever won.

Thursday, May 28, 2009

Using SVN to find diffs on repositories

Try something like the following :

svn diff -r779768:779000

which will produce file names and diffs between those two revision numbers of a code repository under svn control.

Saturday, May 16, 2009

SOA . . . Is that All ?

I originally wrote this entry on October 5, 2004, and published it on blogs.sun.com.


So, do I really get to cook SOA with these 10 ingredients? On ingredient number 6 (Governance), at least, I'd recommend another look.




Monday, May 11, 2009

Production or Maintenance & Support


In The Cathedral & The Bazaar, Eric S. Raymond estimates that 75% to 90% of software business *effort* is not spent on the production of "products" but on support and maintenance of software products and systems. The sources of Raymond's claim are interesting in themselves ...

Sunday, May 10, 2009

Bugs Lead to Existential Questions


I originally wrote this entry on September 30, 2004, and published it on blogs.sun.com.


There are some who believe that we only switch from our "being" mode to our "thinking" mode of existence when something breaks down.


Let me give an example to make things clear.


Say, you're walking in Central Park in New York City towards a bench to sit for a moment.


As you do this, you're not constantly thinking: "Oh, this is a bench; now I'm 10 yards from it; it has 4 legs; it is painted green ; now I'm 4 hards from it; it is made of wooden planks and the legs are steel, etc. . . ." (Are Central Park benches green and made of wooden planks and steel? Or are they coming in concrete these days?)


If we thought in this fashion and of all these details, we'll go mad very quickly. Instead, we simply go and sit on the bench and enjoy the fresh air. That's what I like to call the "being" mode of existence.


Now, if the bench breaks beneath you as you sit, it will probably lead you to fall.


At that point, you will start going over everything that is supposed to make it a bench and wonder what went wrong, what "broke," what was not as it was to be. That's what I like to call the "thinking" mode of existence. A mode that deals with bugs in the existential environment.


So, it should be no wonder that the best way to start learning and thinking about existing, complex code and the process around its production, is to start by debugging it. Once the code is known and navigable, we become comfortable and at home, returning to the "being" mode. We become the code and know it as us.


Which mode is prior to the other? For which mode are we best tuned? Which is a "better" mode? Is code a place to be or a place to think? Is code even a place?


I don't know the answers to these questions.


What I do know is that every software engineer (or urban professional for that matter) needs to get out some times to see the world, take a bicycle ride (1, 2) or go on a simple stroll in the park, to sit on a bench, preferably made of wooden planks that won't break.


Friday, May 08, 2009

Open Source Society

I originally wrote this entry on September 19, 2004 and published it on blogs.sun.com.


We (and this does not include just the U.S.) are already an open-source society to a very large extent. Information is widely available for those who care to find out and some have proven it possible to do so by their own example.


However, open dialogue matters well above and beyond open source.


Mixing, on the importance of which to innovation Lawerence Lessig has built a whole case, is simply an instance of open dialogue.


Open-source (widely available) information might be a pre-requisite for substantive dialogue but it neither replaces or guarantees it nor leads to it.


Finally, there're those who believe that what matters most is not cyber-dialogue but committed, emboddied dialogue and responsible action, as Hubert Dreyfus has noted in his analysis of the Internet.




Open Dialogue Code

I originally wrote this entry on September 19, 2004 and published it on blogs.sun.com.


It's funny how certain corporate strategists pay more detailed attention to the press than to their own corporate purpose. (Some may even believe that all their problems stem from bad press.)


So, now we read in the reports (Reuters and the WSJ) that Microsoft has decided to open source its Office software to certain governments and under certain conditions. The same reports say that Microsoft has apparently done this to combat the advances of Linux, its "open-source" desk-top OS rival.



Under the program, Microsoft doesn't completely lift the veil. Governments are able to see 90% of the source code. The bulk of the rest is code where a third party owns the copyright, according to Microsoft. The company also holds back from exposing code that relates to antipiracy technology.
(The WSJ, Sept. 20, 2004)



Even if source code is to be shared with more governments and under much less strict conditions, the strategic threat that Microsoft faces will persist. The problem is not an inability to see the code but an inability to participate in the dialog that ends up in it.


As I've said earlier, what matters is not openness of the source (whatever that means) but the openness of the dialogue about the source code, its use and evolution.



And here is another question worth thinking about. Would government regulations around the world ask for "open-source" code or "open-dialog" code? Most probably, it would be the former because "open-source" is a property more measurable.

Friday, April 17, 2009

A Real Student Bargain for JavaOne 2009

09J1_300x250_v2-1.gif


This year, JavaOne let's students get in free!

Plus, they can sign up for CommunityOne at the same time.
Both passes are full conference passes with access to everything!
Educators can also get in free when they bring 10 students with them to the conference.
If they aren't able to do this, they still get a fantastic deal of $895 for a full conference pass.



What is a Full Pass?


All the benefits of a FULL conference attendee, which includes: JavaOne general and technical sessions, panel discussions, HOLs (Hands-on-labs), BOFs (Birds-of-a-feather), the Pavilion and the After Dark Bash / Networking Mixer! Not to mention a "hang space" (which includes video games, movies & more!), plus you will be able to check email any time at one of our many hacker stations.


PLUS


Admission to the CommunityOne Deep-Dives. What does this mean? FREE training by our very own SLS on some really great topics, plus hugely discounted certification (vouchers will be handed out at the event)- certification can even be done on-site! There will also be numerous parties and chances for you to network with the best and brightest in the industry, from community leaders to "Rockstars" and everyone in between.

Tuesday, March 31, 2009

Ideas from MySQL for Google Summer of Code 2009


Check out the ideas from MySQL for Google Summer of Code 2009!

Thursday, March 26, 2009

The Evolutionary Advantage of Open Source Software


I originally wrote this entry on September 17, 2004, and published it on blogs.sun.com.


The evolutionary advantage of open source software rests not on the openness of the source code but on the openness of dialog it engenders, an openness which is often too hard to create without available, open source code.


Within the context of open dialog, learning occurs naturally, and ideas progress with minimal transaction costs.


Digital Rights Management, Where is the Big Question

I originally wrote this entry on September 7, 2004, and published it on blogs.sun.com.








Digital

Rights Management (DRM) is one of the big technology questions web engineers have to deal with today. [For some introductory material, see this Australian Government guide to DRM. Also, ACM has held some workshops on DRM.]





In my view, a workable DRM system should allow some reasonable amount of content sharing. [See my notes on content sharing: To Share or Not to Share, That's the Question and To Share or Not to Share (II).]




Digital content distribution services continue to grow.


RealNetworks, for example, reports that its content business has grown more than 50% (at $99 million) while its enterprise software business has fallen by 14% (at $26 million). This shift in revenues goes back to 2000, the WSJ reports.



Many companies see their content services as a cash cow they need to protect at any cost. They are developing propriety systems that could be perceived as closed off to other content distribution systems. On the other hand, some may argue that distribution systems need to be protected to ensure their healthy evolution.



Looking to bridge that gap, RealNetworks recently introduced Harmony, a technology that lets consumers purchase songs on its RealPlayer Music Store site and transfer them to iPods or dozens of other players. Apple has threatened to sue RealNetworks and alter its technology to block such transfers.


(Marcelo Prince, The WSJ, Sept. 1, 2004.)





Is it in the interest of content owners for there to exist incompatible systems of content distribution and digital rights management?


This is a hard question to answer. On the one hand, more incompatibiltiy means greater barriers to wanton content sharing. On the other hand, more incompatibility may mean greater reluctance to join the digital music market as a buyer.


Finally, as I've said earlier, the most important question to ask in designing a DRM system, besides those very important questions related to limited-term copyright issues, is whether the system will allow some reasonable amount of content sharing.



Tuesday, March 17, 2009

Copyright extension

I wrote this entry, originally, on June 30, 2004.



In Chapter 13 of his most recent book, Free Culture, the acclaimed Stanford Law Professor Lawrence Lessig has presented a critical evaluation of Sonny Bono Copyright Term Extension Act (CTEA) passed by the 105th Congress.


Lessig first provides a constitutional analysis of the copyright protection, emphasizing the part of the "Progress Clause" that stipulates a limited term for exclusive rights assigned to authors:



Congress has the power to promote the Progress of Science . . .
by securing for limited Times to Authors . . . exclusive Right
to their . . . Writings . . .
(Section 8, Clause 8 of the U.S. Constitution)




Lessig's basic point is that one cannot keep extending copyright protection and still remain faithful to the Progress Clause.


Lessig then notes that if we limit ourselves to the first 25 years of the works affected by CTEA, we see that only 2 percent of that work has any commercial value. (Lessig, p. 221)

Lessig describes how copyright term extensions can lead to disappearance of pieces of our culture which are of great significance but which may not be commercially active. He describes the high cost of obtaining copyright information regarding commercially inactive works and the legal risks of publishing them without clear findings on their copyright status. Those costs and risks, along the copyright extensions given by congress seem poised to lead to the disappearance of large chunks of American culture.



Of all creative work produced by humans anywhere, a tiny fraction
has continuing commercial value. For that tiny fraction, the copyright
is a crucially important legal device. For that tiny fraction, the
copyright creates incentives to produce and distribute the creative
work. For that tiny fraction, the copyright acts as an "engine of
free expression."


But even for that tiny fraction, the actual time during which the
creative work has a commercial life is extremely short . . . [M]ost
books go out of print within one year. The same is true of music and
film. Commerical culture is sharklike. It must keep moving. And when
a creative work falls out of favor with the commercial distributors,
the commercial life ends.


Yet that doesn't mean the life of the creative work ends. We don't
keep libraries of books in order to compete with Barnes & Noble,
and we don't have archives of films because we expect people to
choose between spending Friday night watching new movies and
spending Friday night watching a 1930 news documentary . . . To
understand who we are, and where we came from, and how we have made
mistakes that we have, we need to have access to this history.



Wednesday, February 04, 2009

MySQL Conference and Expo

Just got this from a friend:
Registration for the 2009 MySQL Conference & Expo is now open! - April
20-23, 2009, Santa Clara, California. - Register by February 16, 2009, and
save $200!
www.mysqlconf.com

Sunday, October 21, 2007

Sony Ericsson P1i support for Java

Sony Ericsson covers some very good Java ground:

Both CDC and CLDC environments supported:
CLDC 1.1 JARs supported:
* JTWI 1.0 (JSR 185) consisting of Connected Limited Device
* Configuration (CLDC) 1.1 HI (JSR 139), MIDP 2.0 (JSR 118), WMA 1.1 (JSR 120)
* PDA Optional Packages (JSR 75)
* Bluetooth™ (JSR 82)
* Wireless Messaging API 2.0 (JSR 205)
* Web Services (JSR 172)
* Mobile Media API (JSR 135) Mobile 3D Graphics (JSR 184) with hardware acceleration
* Scalable 2D Vector Graphics API for J2ME (JSR 226)
* Nokia UI API 1.1
CDC 1.0 JARs supported:
* Foundation Profile 1.0 (JSR 46)
* Personal Profile 1.0 (JSR 62)
* PDA Optional Packages (JSR 75)

Monday, May 28, 2007

Mac OS-X Locking of Files

I recently upgraded my iMac w/ iLife 06, which caused my iPhoto to have trouble loading the photo library. The reason was that some files in one of the photo library folders had been locked.

You can individually unlock files using the "GetInfo" command in Finder. There's a little box that needs to be unchecked in the "GetInfo" dialog box.

The fastest way to unlock file contents of a folder was the following script from the command terminal:
 sudo chflags -R nouchg .
The "." refers to the current folder in which the above command is being executed.

The sudo command is similar to a command with which Ubuntu users are also familiar.

Tuesday, May 15, 2007

Maintenance vs. Development

For a colleague (Arun Gupta) who's looking into Ruby-on-Rails, I posted the following comment and question:

You might find APRESS' "Begining Ruby on Rails E-Commerce" useful. It covers quite a bit of ground while remaining focused on a full e-commerce application, containing all that is required in such applications, except perhaps, fancy user interfaces.

The question that arose in my mind as I read this book and played with the ideas contained in it was whether Ruby-on-Rails programs were any easier to maintain, and in general, what was the cost involved in maintaining them. Are we losing flexibility for maintenance as we gain speed of development?

I should have noted that the above book focus on using Ruby-on-Rails with MySQL. PostgreSQL also supports a relatively live and active Ruby-on-Rails community, particularly in Japan, I hear. Focusing on a particular DB supports that DB community. Note that the imposition of many relational constraints often require db-specific SQL. These DB specific SQL files can easily creep onto a Ruby-on-Rails project, defeating at least some aspect of its claim to DB independence.

Software & Economics

It is good to see someone who has a relatively good understanding of Transaction Cost Economics write about the topic of open source software or software in general:

There was a time when a single determined individual could write the core of a single operating system for a primitive computer. But given the demands of computer applications and the capabilities of hardware technology at present, that is no longer conceivable. The task needs to be divided somehow. This immediately raises a ... core political economy question, about coordination of a division of labor within a centralized, hierarchical structure--that is, a firm. Within the firm an authority can make decisions about the division of labor and set up systems that transfer needed information back and forth between the individuals or teams that are working on particular chunks of the project. The boundaries of the firm are determined by make-or-buy decisions that follow from the logic of transaction cost economics. The system manages complexity through formal organization and explicit authority to make decisions within the firm as well as price coordination within markets between firms.

That's from Steven Weber's The Success of Open Source.