Sciology = Science + Technology

Pragmatic Programming

Archive for July, 2009

Eclipse Guest (Web) Lecture at Rajagiri College @ India

Posted by sureshkrishna on July 27, 2009

One of my close friend is a professor in Rajagiri Engineering College for Computer Science and got me introduced to the head of the Department. This engineering college conducts guest lectures from variety of technology verticals and they requested me to have a Eclipse lecture session. After a lot of initial planning we finally started a 5 hour series of lectures on Eclipse (Eclipse course).Eclipse Guest Lecture Series

In the first session i Introduced the basic idea of an IDE (Integrated Development Environment) and it’s win over the conventional text editors. We then moved on with different text editors like Notepad, Textpad, EditPlus, vi and then talked about the Eclipse, Visual Studio, NetBeans, JDeveloper as an introduction. Typically in the Engineering colleges there will be budget constraints and they seldom has access to expensive IDEs. The faculty and students are very excited to know about the IDEs and the role it plays in their day-to-day development life.

Here are some pictures…

DSC00384

DSC00387

DSC00386

Posted in Technology | Tagged: , , | 2 Comments »

Can you do effective Context Switching ?

Posted by sureshkrishna on July 23, 2009

Everyone in Software and IT industry are exposed to the what i call as “Context Switching” problem. Bosses are so adept in giving different kinds of tasks to the “makers”, they often dont realize whats involved in the context switching. Before i move on, i was reading a very interesting article from Paul Graham on the “Maker’s Schedule; Manager’s Schedule“. Indeed, he was right on to the point of where the programmers (aks Makers) and managers spend their time and what does “meetings” mean to each of them.

We very well assume that most of the programmer’s have 8 hours of work time in a day and schedule all the work according to it. What we very often forget to take in to account are the obvious and non-obvious tasks. As Paul says, programmers one piece of work/task is normally in the 1 day chunk  (for some at least, it’s in 1/2 day chunks) and any disturbance in that 4-8 hours of time proves to be very costly. We all want to concentrate and make sure that the entire program is in our head till the time we are done with it. This phenomenon is very well explained by Paul in his article “Holding a program in one’s head“.

When you start your brand new day at office thinking over a problem or a algorithm, your boss calls up and asks you for a status update because his boss asked for a team update. Well, that is the request you need to honor without a question.  Usually the calls will not be 5-10 minutes but goes for minimum of 30 minutes to 1 hour, because we are trying to solve a problem over the phone or in the meeting room.

  • Meetings,
  • Weekend vacation talk,
  • Extended Lunch and coffee time,
  • Status reports to manager,
  • Status report to customer,
  • Helping the Sales and Marketing Team,
  • Attending the personal calls
  • etc… (i am sure there are 100s of such things)

The tasks, your manager thinks of as 10 minutes actually takes 1hour and after sending the sweet report or tools comparison to him, you again head down to start writing your program and after 1hour you get a call to say that the report format should be changed so that he can submit it right away to his boss. Phewww…. you did that one too. Now the time is almost, 2.00pm and you really want to concentrate and do the REAL work. All in all, When i analyze the average programmer probably gets around 5 hours of quality time out of 8 hours in the day time. No wonder, we often end up working late nights just before the delivery. Many programmers has the similar habit of working in the dark/late hours. Yes, that works perfectly. No one to call you or ask for reports or for help. The only thing that you really think of is the problem before you.

I work on a project which has a very tight dependency with the environment(installed software on the machine) . Every thing installed on a machine matters and a lot of legacy code is maintained from past 15 years or so. The environment is so critical that if one installed the required software in anyway other than the prescribed order, you may need to burn the mid-night lamp to find some non-obvious, strange and scary system behavior. Of course, initially i was under the impression that the software system MUST not depend on the environment, but as i got into the system, i believe that some times the dependency just exists (due to several legacy apps and unimagined integrations of different products).

Context Switching is one project impedement that Agile Methododlogy and Scrum claims to remove. Scrum recommends the values where the team has a specified time for meetings and tries to decrease the buerocracy in th project against the traditional adhoc meetings  and untimely calls for context switching. Of course one can say they are following Scrum and still do the traditional way, but i have seen this working in my experience.

Did any of you have such problems of Contect Switching ? What do you do to come over it ?

Posted in Technology | Tagged: , , | Leave a Comment »

Google Chrome OS : The Next Wave

Posted by sureshkrishna on July 8, 2009

I was happy to see the news that Google announced the Chrome based OS. Soon after a week of my recent blog on Google and the way it transformed every ones life, i was pretty excited to see this announcement. I am particularly happy that Google is entering into the Operating System market and i believe that they will do justification to what they claim.

For many the announcement has been generating mixed feelings. Many technology enthusiasts (and pro-googlers) feel that this is a great step ahead and some are skeptic about the success of this project.

Simplicity : Google has been leading in the simple, usable and intuitive UI. I hope it continues to do so with the Chrome OS. When i see a simple Google Search and Microsoft’s Bing, that the major difference i see (that Bing has a distraction and Google not).

Open Source : Apache and Eclipse have redefined the view of an open-source software. The common concept of “Collaborate on Platform and Compete on Products” is a great idea. Google Chrome’s source code becoming open source, will open up all the channels to improve, contribute and extend the OS.

Competition to Microsoft ? : I don’t think so.  Google has been redefining the way people think of Internet and World Wide Web. Microsoft is the PC Operating System and Corporate IT infrastructure giant. There are lot of articles and blogs about the Google and Microsoft comparison on the Chrome OS and that’s all absurd for me. Comparing Chrome OS and Windows is like comparing apples and apricots. Does it makes sense. ??? Google is the company (in my opinion) trying to make web as a platform and building all it’s applications on web. So, i would see the Chrome OS only as an alternative for the heavy weight Internet users.

Would it be the next Linux ? : (No offense to Linux lovers please) During 1998-2000 time frame i was very excited to know about Linux as an alternative to the existing operating systems. When one compares the time to install a Windows box and Linux box with the same capabilities for a home user, Linux lacked the ease of installation and application support. As a technologist, i took hours to install the Linux and at the end i would abandon it as i don’t find the applications that i want or incompatible drivers. I still remember that installing the CD drivers is a big deal and took hours to find a compatible one. I guess, the story changed a little after the arrival of Redhat, Fedora and Ubuntu distributions. It is still a nightmare for the advanced home users to install and configure a Linux distribution. I really really hope that Chrome OS designers would take care of this issue.

More space on Internet : If Google wants to make the web as the platform, then it may need to increase the email, docs and picture sharing space on the web. Why? It is for the natural reason that if you want to use the web for everything, i don’t want to be restricted by the space in my account. Compared to the 120 to 250 GB of hard disk now-a-days, we are only talking about few gigs of memory on line.

Security and Personalization : As such Google is having problem to fight against the privacy laws regarding the google mail and advertisements. Would it become more controversial with the Chrome OS. If web is the platform and i would use Chrome OS, would my documents be secure ? Would Chrome install/suggest applications/plugins depending on the email, documents or photo content. These are some of the questions that Google for sure has to think about.

ChromeWave : Yes, i think and imagine that the architecture of Chrome OS has the Wave built in. That would be such an awesome thing for the home users and corporates. I could talk, video conference, share documents and pictures with my parents and friends in India seamlessly from the Chrome OS with the Wave capabilities. Corporates can make sure of  the ChromeWave to video conferencing, decision making, pair-programming (?), real time collaboration and others. (Note: ChromeWave is my own creation to combine the Chrome and Wave’s capabilities)

So… It is too early to conclude anything about the success or failure of the Chrome OS. Perhaps once the source code is released and the Architecture is known,  only can one have valid comments. One thing for sure is that Google is gearing up to take on other areas of the computer and Internet industry. Its the time for everyone to be alert and more innovative in terms of the technology, usability and the perceived benefit they give to the corporate and home user.

Some Interesting Reading…

Posted in Technology | Tagged: , , , , | 5 Comments »