Thursday, December 03, 2009
Any, Nothing, Scala and 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
Monday, November 16, 2009
Configuring Java and JDK on Snow-Leopard
Saturday, November 14, 2009
Who says Java is slow?
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
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 ?
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
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
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
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
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
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
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
Registration for the 2009 MySQL Conference & Expo is now open! - Aprilwww.mysqlconf.com
20-23, 2009, Santa Clara, California. - Register by February 16, 2009, and
save $200!
Sunday, October 21, 2007
Sony Ericsson P1i support for Java
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
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:
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.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?
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:
That's from Steven Weber's The Success of Open Source.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.