Posts

Linux over the last 20 years

Linux has come a long way in the last 20 years. Surprisingly Linux usage at home seems to be shrinking, but growing in the enterprise. I think 5 years back the only serious alternative to Windows at home was Linux. But with the popularity of Apples iMac and Macbook, the usage of Linux is declining at home. See the following infographic on how Linux and the Internet  has changed over the last 20 years

Math Graphing Startup

A Math Graphing Startup, that should help with big data analysis. http://techcrunch.com/2011/06/24/desmos-graphing-calculator/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Techcrunch+%28TechCrunch%29

Creating Oracle table with XMLTYPE column

If you create a table with an XMLTYPE column create table test (name varchar2(60), xml_col xmltype) ; You get the following error message Error starting at line 22 in command: create table test (name varchar2(60), xml_col xmltype)  Error at Command Line:22 Column:0 Error report: SQL Error: ORA-43853: SECUREFILE lobs cannot be used in non-ASSM tablespace "TBS_3" To work around this problem all you need to do is define the Column storage for the XMLTYPE column to b a clob. SQL> create table test (name varchar2(60), xml_col xmltype not null) xmltype column xml_col store as clob SQL> insert into test values ('abc', xmltype(' World ')); SQL> select name, extractvalue(xml_col, '/hello') value from test3 Name        Value ----------------- Hello       World

Java Annotations Example

When I design and implement a new API, I always like to make the API easy to use. I was implementing a set of classes for usage in a Tree and a TreeTable. The only thing I wanted the user to implement is a class that defines the Node Data. For the Tree Table case I also needed information on getting the column count and whether the column was editable. My first implementation was to make it part of an interface public interface ColumnData { public void setData(int index, Object value); public Object getData(int index); public String[] getColumn(int index); public boolean isEditable(int index); } The column list and whether it was editable was really static information for the class but I wanted to keep ColumnData as an interface instead of a class, so I created an annotation for defining the column information as show below @Retention(RetentionPolicy.RUNTIME) public @interface ColumnAttributes { public String name(); public boolean editable() default false; } Be...

Scala

Blog on Scala , which is a functional programming language that runs on the JVM

R Programming Language

The R Programming Language is used for Statistics. See Introduction to R for programmers coming for other languages

Good tutorial on Oracle SQL Model

The Oracle SQL Model allows you to do a lot more things in SQL that you would normally have done in PL/SQL. You can find a good tutorial here

Richard Feynman lecture on Physics video

Bill Gates has posted lecture on Physics by Richard Feynman at the Microsoft Research website. You need IE to view these lectures

10 Promsing Web Platforms

10 Promising Web Platforms , this is a list off platforms outside of the popular ones like Facebook and Myspace that could become popular.

Linus Trovalds approach to Software Management

Interesting post on how Linus Trovalds manages the Linux Kernel development process . Some of his opinions would also apply to large closed source development where the team members are geographically distributed.

Poor usability in open source software

Going through the list of 15 suggessions to improving usability in open source software the main problem is that too many cooks spoil the broth, A good user interface requires as much thought as does the software architecture. There have been cases where a requirement for a better user interface has required significant changes in the code across the stack because usability was not thought about upfront.

25 Internet Startups that bombed!

Having survived a badly run startup, which raised a huge amount of money and then went under because they spent the money they raised as if there was no tomorrow. There are many ways to fail, running a startup but few ways to succeed. 25 Internet startups that bombed

Google Web Crawling

The web has grown in 10 years from 26 million unique URLs to 1 trillion unique URLs. This makes it a very challenging task for Google to crawl all the pages. The amazing part is that they do this a couple of times a day to keep their search engine uptodate. See the blog posting for more details http://googleblog.blogspot.com/2008/07/we-knew-web-was-big.html

SQL Developer User Defined Extensions

SQL Developer 1.5 allows you to create user defined extensions using XML and SQL to add a tab for an existing object e.g the Table Node and add context menu to the navigator. See the OBE for details on how to do this.

How to design an API by Joshua Bloch

How to design an API by Joshua Bloch

Syntax Editor in Swing

JSyntaxPane for Creating Syntax Speicific Editors in Swing

Wikipedia Computer Science Links

Computer Science Degree using Wikipedia

Great Programming quotes

21 laws of Computer Programming . 101 great Programming quotes 101 more greate Programming quotes

Logitech MX Revloution wireless mouse

I was experiencing some discomfort while using the standard wired optical mouse that shipped with my PC, so I recently purchased the Logitech MX Revolution wireless mouse. The mouse includes a Li-on battery so that you don't have to change batteries every 6 months. The mouse felt very comfortable in my hand since it is a little wider than a standard mouse. One interesting feature that anybody who multi-tasks a lot of software on their PC would appreciate is a scroll button on the left hand of the mouse that can be used to quickly switch between applications. I highly recommend this mouse!

HP Touchsmart

HP has release a new Touchsmart computer that is an all in one like the iMac, one of the interesting feature is that it ships with 64 bit version of Windows Vista. With 4GB memory becoming quite cheap we may start seeing more PCs ship as 64 bit with more than 4GB memory.