Posts

Showing posts from 2008

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.

Developer Productivity

The fact that some developers can be 10x more productive is not a myth. Very few organizations understand this and know how to hire and manage the best. The successfull organizations like Google, Microsoft and Oracle understand this and their success is partly based on this. 10x Developer Productivity

Domain Driven Design

An excellent article on Domain Driven Design with a Java example, it emphasizes capturing your domain into POJO and not creating fat objects that mix implementation specific features such as caching with the domain code.

Oracle Job Scheduler example

Recently I helped somebody setup a Job to update some tables from a remote database. So I thought I would give some example here on how to create and track jobs using the Oracle Job Scheduler begin drop table test2; create table test2 (f1 varchar2(10)); dbms_scheduler.drop_job('JJ'); dbms_scheduler.create_job( job_name => 'JJ' ,job_type => 'PLSQL_BLOCK' ,job_action => 'begin insert into test2 values(''abc''); end; ' --,job_action => 'null;' ,start_date => systimestamp ,repeat_interval => 'FREQ=MINUTELY; INTERVAL=1' ,enabled => TRUE ,comments => 'Job.'); dbms_scheduler.set_attribute('JJ', 'logging_level', dbms_scheduler.logging_full); dbms_scheduler.set_attribute('JJ', 'job_priority', 1); end; -- Run Job nowbegin dbms_scheduler.run_job('JJ'); end; select * from user_scheduler_job_log where job_name = 'JJ'; -- Job History select * from user_sched...

Managing Open Source Projects

This is a very good artcile about how to manage a small open source project . A lof of the information also applies to a closed source project, such as documenting the features. In our division we have an internal wiki that I use extensively in documenting all the cool features of our software so that when I am asked about a feature I can just point them to the Wiki.

Java UI Framework

JSF and Struts are the most popular based on Google Search Trends . The article does not compare many other frameworks like PHP, GWT etc

iPhone 3G

The iPhone 3G has finally been announced . The most important new feature is 3G data access which works at Wifi speeds according to Apple. This is the start of a new smartphone era and is as significant an event as the release of the IBM PC. In another 5 years of time I expect there to to be over 100 million Apple like smart phones in use over the world. The most important attribute of the iPhone that most people don't understand is that most of its features get used. There are a lot of other smartphones in the market which claim to have most of the features that the Apple iPhone has, but most people are using only 10% of their features. The only serious competition I see for Apple is from Google Android as Google is also trying to build a touch based mobile OS based on Linux and Google has engineers who have a deep understanding of Linux. Apple devoted a third of times during the iPhone 3G presentation to third party apps. Apple also has reduced the price of the iPhone 3G to $199,...

Web based Desktop

Apples release of MobileMe led me to search Web based Desktops and found a list of 21 Web based Desktops

Access Windows Registry using Java

How to access the Windows Registry using only Java

Google Android Demo

A pretty impressive demo of Google Android on Youtube . It seems to have all the features that the Apple iPhone has. It is suprising to see that Google and not Microsoft seems to have been the first one to demo a viable alternative to Apples iPhone. The cell phone is turning into a more of a software platform like the PC, where people will be be more interested in what the software can do than the hardware.

JavaOne 2008 Techincal Sessions

Java One Technical Sessions 2008 are available now

find and xargs

The two Unix Utilities I cannot live without are find and xargs. find is a utility that will recursively find files and xargs will let you run a command for each line in the input e.g. 'find . grep java$ xargs wc -l ' will count the number of lines for all the java files in the current directory and all subdirectories.

Architects Dilemna

Most software development projects are under time pressure from day one so that you aren't late to the marked with your product. Below is a post which states that you should not do a Big Design Up Front but be more focussed on being Agile. I think that what is more important is wether you have smart designers and developers in your team who are willing to refactor a major piece of software to incorporate a change in design or requirements. Big Design Up Front vs You aren't gonna need it anyway

14 questions a new developer to a team should ask?

The first week of joining a new group can be quite intimidating especially if it does not document the development process on a Wiki. These are the list of questions that a new member joining a team should ask and a development group should be willing to provide answers for. The following process should be clear to a team member within the first two weeks of starting. Know all the members in your team and the role they play How to run the software Have some basic knowledge of the domain Which database is being used What are the languages being used for development What libraries and frameworks are used. What is the version of all the components used for development How to build the code How to run the code in a debugger How to use the version control system and make a simple change to the code How to test the code How to submit the code How to use the enhancement and bug tracking system How to connect remotely from home

Googles Open Source Usage

An interview with Googles Open Source Manager, reveals quite a bit of how Google functions. Googles Open Source Q&A

Enterprise Architecture and Patterns

Below is a good resource on Enterprise Architecture and Patterns. Microsoft Enterprise Architecture and Patterns

iPhone

For those considering purchasing a 3G iPhone you can check AT&Ts 3G coverage I think the iPhone and smartphones like the iPhone is the next PC, by which I mean that it will provide a PC class computing platform with network access to people all over the world who don't regularly use a PC. A new generation of users will be exposed to a new way of interacting with the Internet using the touch screen. This is where the next set of startups are going to find success.

Software Architecture

Reading this blog about interviewing for a software architect position got thinking that one of the most important taks of a software architect is to come up with right set of questions.

Classic Software Mistakes

As expected the most common mistake made in software development is unrealistic expectations. Classic Software Mistakes Survey Here is my list of software development mistakes in no particular order Mismanaged transition to new software architecture Hanging on to an old software architecture for to long Releasing software before it is ready Not allocating sufficient time to clean up code Overestimating simple software development tasks Not knowing who your smartest software developers are Not ensuring that your smartest software developers are completely engaged in the project QA focusing on quantity rather than quality of bugs

Functional Programming

I have spent a lot of time chasing bugs where there is a lot of code modifying the state of variable. Functional Programming avoids state and mutable data. Google use functional programming concepts of map and reduce to perform search in parallel over a large cluster of machines. Functional Programming 101 Function Programming Wikipedia

Java not popular amongst new developers

Java has been around for over 10 years now. An interesting post on the lack of interest in Java by new developers. http://www.clevegibbon.com/wordpress/archives/102

Never use a String

http://stephan.reposita.org/archives/2008/05/02/never-never-never-use-string-in-java-or-at-least-less-often/ An excellent post on why you should minimize using String, int and other Primitive Data Types.One advantage I personally see is in the Code Completion feature of Oracle JDeveloper where it will show me the data type for the methods but not the variable name. One should be careful of not overdoing this approach as it can make your code a lot more verbose.