Linux: Diff between two folders
To find the files which are in one and not in the other:
$ diff -r folder1/ folder2/
To find the file content differences:
$ diff -r -N folder1/ folder2/
Google’s brand new language: Go
Google’s OpenSource blog announces a brand new language: Go. No, it is not a language running in the JVM. Reading the installation doc, it is understood that Go compilers support two OSes: Linux and Mac. By the way, did I mention the blog post announcing the language has signatures including Rob Pike and Ken Thompson?
SUN’s Zembly closing down!
This is the mail I received:
We regret to inform you that on November 30th, 2009 we will be suspending the zembly service. More than three years ago, we started this project with the goal of making it easy to create next-generation Web apps. Our original tagline was "Build the web, using the web," and the ideas we were incubating around platform-mediated Web applications, Web API mashups, and social programming were brand new. We learned a lot along the way. Your confidence and enthusiasm helped us improve the project and do amazing things that we never imagined when we began this journey. Thank you to everyone who's been with us through the ups and downs. It's heartening to see that many of the best ideas pioneered in zembly have started to appear elsewhere. With your support, we're proud to have contributed to the DNA of the Web. For more information about the zembly suspension, please refer to the FAQ section at http://zembly.com Finally, if you have questions, please contact us at zembly-support@sun.com All the best, -- The zembly team Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054
I liked Zembly when SUN first started it. It was damn easy to create mashups. But unfortunately, like SUN’s other products and services, I knew Zembly was sucking SUN’s money with no business model.
Google Cache View Bookmarklet
Diomede Cloud Storage
I use Amazon S3 for delivering content and as backup. Today I was introduced to an improvisation to the cloud storage model (offered by DiomedeStorage): demarcating the storage into different types:
- Online: The content is available immediately on request.
- Nearline: The content is made available within 5 minutes of request.
- Offline: The content is made available within 4 hours of request.
Advantage?
When you are storing content primarly for backup, you don’t need the backup system to be online. Files such as these can be moved to a disk which is later powered off: this benefits huge cost saving and is a greener approach.
Due to this innovative model, DiomedeStorage is able to offer services which are fraction of the cost of S3. Beautiful innovation
OpenSource Collaborative Text Editor
I was reading the book Beautiful Teams. There is an essay by Cory Doctorow titled The Copyfighters Take Mordor. In this essay Doctorow recounts how a set of sparsely-funded freedom-loving individuals fight the might of Corporate funded copyright groups from passing a new international law to curb freedom in the UN. If freedom-fighters had not succeeded, the present world would have been different. Even distribution and editing of Creative Common licensed media work would be controlled by the broadcaster (even if the author of the digital work gave permission otherwise). Thankfully the freedom-fighters won!
The hightlight of this fight is a tool. The tool is a collaborative text editor for the Mac called SubEthaEdit. During the boring and tedious meetings in the UN where the Corporates were selling their idea, our own set of free-individuals recorded the transcript, collaboratively-edited (using SubEthaEdit) and posted the information for the world to see in various blogs. This had caught the attention of the world, and now, the world is a better place.
SubEthaEdit interested me. I wanted to try it. Unfortunately, SubEthaEdit is available only for Mac. I was disappointed. Then I searched for OpenSource alternatives. This lead me to Gobby. Gobby is a GTK+ application which can run in Linux, Mac and Windows. For example, in Ubuntu I installed it thus:
$ sudo apt-get install gobby
Gobby is cool. Checkout some of the screenshots I took. Gobby could prove to be a powerful tool for code-review and collaborative document editing/review.
The Alchemist review by Nubbytwiglet
The Alchemistby Paulo Coelho is one of my favorite books of all time. Today I dropped by a blog which I consider has the most beautiful review of the book. This particular blogger, Nubby, is also one of the finest designer and blogger in the blogsphere.
IntelliJ IDEA OpenSourced :-)
IntelliJ IDEA 9.0 will be OpenSourced under Apache 1.0 License. There will be a fully-loaded commercial edition also available. Check out the feature differences between the Community Edition and Ultimate Edition.
Guava Libraries from Google
Discovered from a blog post Apache Commons-like Java library from Google: Guava Libraries. Check out their presentation which briefs the functionality.
New releases in Java space
There have been some prominent releases in the past few weeks:
- Apache POI 3.5-FINAL: For reading/writing Microsoft Office format files from Java.
- Jetty 7.0: A servlet container akin to Tomcat. Easily embeddable and ideal for use in testing.
- XOM 1.2.3: New version of the XML parser written by Elliotte Rusty Harold.
Processes over People
There is an amazing Dilbert cartoon which beautifully describe the pettiness of some bosses. These type of people believe more in processes and policies than on their people.
Reduce Java boiler-plate code using Lombok
We all hate the verbocity of Java. We all hate getters and setters and toString and hashCode and equals. We also hate the lack of closure support for proper resource handling. Now you can still love your favorite language without doing these manual chores!
There is a fine OpenSource project, oddly named as Project Lombok which fixes the boiler plate code writing (or generation) using annotations. Beautifully designed, this is some thing which could save you lot of time. Checkout their video (available in the home page).
My favorite UML tool… renamed.
My favorite UML tool, Jude UML (I use the free community edition) will be renamed to astah* UML. I don’t know why this difficult-to-remember and difficult-to-pronounce change in name for an established brand. The name change is scheduled on Oct. 19th.
Post Chrome Frame, fear seen in Mozilla!
It is interesting to see how people behave in a period of change. Some people embrace it, some go hysterical blabbering nonsense. Post release of Chrome Frame, one of the Mozilla’s top brass, Mitchell Baker, has taken the second route. Excerpting from her blog entry:
For many people Chrome Frame will make the web even more unknowable and confusing. Image you download Chrome Frame. You go to a website. What rendering engine do you end up using? That depends on the website now, not on you.
I don’t care! What I want is my page to render properly.
She continues:
And if you end up at a website that makes use of the Chrome Frame, the treatment of your passwords, security settings, personalization all the other things one sets in a browser is suddenly unknown.
The aim of Chrome Frame is just to change the rendering engine. Not replace IE’s personalization tools.
And the blabber continues to new hysterical levels:
Google is not the only website developer that would find this idea useful. Google is providing the set of features it believes are helpful for making powerful websites. Other websites will have browser features they would find useful for their applications. Imagine having the Google browser-within-a-browser for some sites, the Facebook browser-within-a-browser for Facebook Connect sites, the Apple variant for iTunes, the mobile-carrier variant for your mobile sites — all injected into a single piece of software the user thinks of as his or her “browser”. Each browser-within-a-browser variant will have its own feature set, its own quirks, and its own security problems.
Wow! I don’t understand what she is saying!!
And the classic case of fear: blabber about the architectural flaws:
For those not familiar with the ins-and-outs of browser architecture, you can think of a browser as having two essential parts. One part we humans don’t see — it’s the part that “speaks” computer languages and talks with web servers. This is often called the “platform” or the “rendering engine”. The other part is the set of things that human beings see and interact with, which is often called the “front-end” or the “application layer.”
She continues:
Chrome Frame breaks this connection by inserting a separate rendering engine into your browser, and allowing websites to determine which rendering engine you end up using. If you download Chrome Frame you see the basic front end of your previous browser, but websites cause your browser to toggle back and forth between the rendering engine of Chrome and the rendering engine of the browser you selected. The application layer of your browser and the platform part of your browser are no longer connected.
What if they are not connected? Why talk theory in a place where usability matters?
So guys, what does this mean? Fear! Of course!! Fear of (quoting Mitchell again):
Mozilla Firefox has reached some 300 million people, but hundreds of millions more continue to use the browser that came on the machine they bought, sometimes years ago. Google began offering its own browser — “Chrome” — a year or so ago, but this has yet to gain significant traction.
Fear of Google Chrome (and Chrome Frame) surpassing Firefox in usage. And fear of Google severing the financial lifeline of Mozilla Foundation (Google is the only big donor to the foundation).
On my part, I have removed Mitchell Baker from my feed. I thought her to be a inspirational person. But she turned out to be just another emotionally fluctuating person.
Long live Mozilla!
Google Chrome Frame
Google has pulled the rug out of Microsoft’s feet! In a totally fascinating move, Google released Google Chrome Frame, a IE plugin which brings in WebKit rendering inside IE. When using this IE plugin, the page rendering is done by WebKit and Google’s fast JavaScript parser V8. But the Cookies, Browser History and Stored Passwords are still managed by IE. This allows for seamless shifting between sites.
The best part is, from a Web Developer perspective, we have to just add the following inside the <head> section:
<meta http-equiv="X-UA-Compatible" content="chrome=1">
If Chrome Frame is installed in the browser rendering this page, then it is used by default. Cool!
Check out the Wikipedia IE8 page to understand more about X-UA-Compatible.
Amazing work Google