This gives quick access to all the administrative tools and pretty much all the things you can do to customize windows 7. To get to this mode create a new folder on desktop and name it as “GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}” or open Windows Explorer and enter GodMode in the tool bar.
August 10, 2011
August 8, 2011
Book on modern meetings
Meetings are one of the expenses for an organization. Since time is money, unproductive meetings are waste of time and in turn waste of money. People call for meeting for various reasons and often times people attend them with out knowing its purpose. Some meetings are convenience meetings which could have been avoided by sending a email or writing a document, some are formal meetings like meetings called by managers for status updates or to disseminate some information and some are just social meetings. Often times meetings are called to make a decision or to distribute effort between people and organization’s.
Meetings do provide a value but sometimes they do not justify the cost of interruption and loss of productivity. Some of the problems with traditional meetings is that it creates a culture of compromise and they kill our sense of urgency. People would avoid making a decision and leave it for the people attending the meeting, or people would avoid taking up a responsibility and leave it to the people attending the meeting.
More often people call for meetings with out any preparation or proper agenda. They would often invite people with out understanding the value they would bring to the table. Also not having a proper agenda will bring attendees unprepared.
In the book “Read This Before Our Next Meeting” author Al Pittampalli lays out some ground rules for modern meetings. Following are the ground rules for a meeting
1) Modern meetings supports a decision that has already been taken.
A decision should not be left for a meeting. A tentative decision should have already been made by consulting people if required. A meeting should be held to ratify the decision or to make amendments to the decision. This will result in having a meeting with clear purpose and clear outcome.
2) Modern meetings moves fast and ends on schedule.
As the rule says meetings should be kept on track and on the purpose.
3) Modern meetings limits the number of attendees.
This is very important. Invite people who are absolutely necessary. If required one can convey the outcome of a meeting for rest of the people in a formal email. If more people are invoked it creates uncertainty in the decision.
4) Modern meetings rejects the unprepared.
As the rule says no attendee can come to meeting with out understanding his / her role in the meeting. Everyone should come prepared to the meeting. For ex. modern meeting is not a place to bring people up to speed.
5) Modern meetings produces committed action plan.
Every meeting should have a outcome and committed action plan.
6) Modern meetings refuses to be informal. reading memos is important.
This means people should take meetings quite seriously. They should read all the memos / documents that are sent regarding the meeting. Meetings should be very formal and should not be a place for personal conversation.
7) Modern meetings works only alongside a culture of brainstorming.
New ideas should come out of the meetings.
For detailed explanation I would recommend reading this book. As a promotion Kindle version is available free for limited time.
July 11, 2011
Finally Java 7 is out
Finally after almost 5 years, new version of Java i.e. Java7 is out for developer preview. Unfortunately many of the promised features were left out in this release, features like Lambda, Jigsaw and some part of Coin initiative are moved to Java 8 release which is expected sometime year end of 2012.
Of course with every new release comes new features, better performance, new syntax etc. Some of the noteworthy features
1) One of the biggest feature is invokeDynamic. This makes interactions between Java and other dynamic languages like JRuby, Jython, Groovy and other 200 languages that are on JVM seamless. Now JVM can optimize the bytecode produced by these languages. We can choose to write code in any language that best solves the problem and compile it against JVM to get all the JVM capabilities like optimization, garbage collection etc
2) Second big feature is language enhancements. Biggest complaint about java is that its verbose / or has lot of ceremony in writing code. With project “coin” in Java7 we will see some language enhancements. For ex
Improved type inference for generic instance creation
//In Java 6 Map<String, List<String>> mapoflists = new HashMap<String, List<String>>(); //In Java 7 Map<String, List<String>> mapoflists = new HashMap<>();
Similarly Multi Catch blocks
try {
//Do Something;
catch(Exp1 | Exp2 |Exp3) {
//Do something
}
more enhancements like strings in switch statements, Binary Integral literals and underscore literals, try with resource statements etc
3) We are in an age where servers with multiple cores are very common. Having language features that enables us to use all these processing power is very helpful. Java7 has enhancements for Concurrent and Collections API that enable us to write applications to use multiple processors.
4) Enhanced NIO
For more features and information follow these links
February 25, 2011
Android tutorials
If you are new to Android development watch this tutorial.
Learn how to develop for Android, Beyond HelloWorld
Want to learn some best practices. Title of the video is wrong, its actually not a ‘Beginners guide to Android’. Presenter changes the talk after 5 minutes into it.
December 24, 2010
Keep Flash player full screen while working on dual monitors.
Sometimes I like to watch videos on my second monitor while working on another monitor. But when ever I click on my working screen the Flash player closes the full screen mode which is very annoying. There is a patch that one can apply on Flash to alleviate this problem. Its called IgnoFlash patch.
http://deve.loping.net/projects/ignoflash/
It’s was very easy to apply the patch and now I can play my videos in full screen while working. Thank you very much Mr. Alex Gembe.
December 7, 2010
Resolving conflicts
Heard a very interesting story in one of the TED talks.
A man left his three children with 17 camels. According to the will first son gets half of the camels, second son gets third of the camels and the youngest gets ninth of the camels. Three sons got into negotiations, realizing they cannot split without killing the camels they started to argue and finally in desperation they consulted a wise old women.
Wise old women thought about their problem for long time and finally she came back and said, I don’t know if I can help, but at least if you want you can have my camel.
So now they had 18 camels….
First son took his half, half of 18 is 9; Second son took his third, third of 18 is 6; finally youngest took his ninth, ninth of 18 is 2 and yet the total was only 17 and there was one camel left over which they gave it back to old wise women.
The moral of the story is every problem or conflict can be resolved with a fresh look. Every conflict has two sides but it’s the third side ‘us’ who should participate in resolving the conflict.
August 19, 2010
Managing Google Spreadsheets using Documents List API and Spreadsheet API – Part 1
This tutorial is first part in a series of tutorials for managing and writing into Google spreadsheet. Each post is a problem and a way to solve it. Example code in these tutorials are for single client JavaScript applications. Once concepts are understood, it’s very easy to implement the same in any language and for any application type. Comments or feedback are very much appreciated.
Google provides API to manage any documents on Google docs and different API to manage spreadsheets. API’s are in the form of restful services where in client application’s can manage documents by making HTTP requests to Google.
Google Documents List API: This API provides functionalities for managing documents. This includes searching, retrieving, uploading, updating, copying, downloading and deleting of documents, creating and moving folders, modifying folder and document permissions, managing document revisions and finally some special features like document translation and Optical character recognition.
Google Spreadsheet API: This API is specifically for managing data inside a spreadsheet. Clients can use this API to manage worksheets, tables, records and cells inside a spreadsheet. This API does not provide functionality to create and delete a spreadsheet, but this can be easily done by using documents list API.
To interact with these API’s one has to have a Google account and client needs to pass in an authorization key with every request. Before a client can start using the API it has to authenticate the user by passing in username and password along with the service name for which it needs authorization key for. An authorization key obtained for one service cannot be used for other service. Click for complete list of API’s and their respective service names.
Google provides couple of different ways to authenticate a client application. One is by using ClientLogin specifically for single user client applications and other is by using AuthSub proxy authentication for multi user web applications. Either way the idea is to acquire an authorization key or token that has to be passed for every client interaction with the API.
Every request a client makes to Google docs, it has to specify the GData-Version in the headers of the request. Current version is 3.0. Every document created or uploaded to Google docs is given a unique document ID. Clients has to use this ID to perform any further actions on the document.
Problem 1:
(more…)
MySql sorting fields in a certain order.
MySql provides nice functionality to sort fields in certain order. This is very useful in scenarios where we have an enum Field represented as varchar and the values that it can hold are fairly static.
CHANNELS
——————————–
| ID | NAME | TYPE |
——————————–
TYPE field is a varchar that can take only SD, HD and 3D.
PROBLEM:
To get a list of channels sorted by TYPE in an order of SD, HD and 3D. This can be done in couple of different ways:
-- Using by FIELD SELECT * FROM CHANNELS ORDER BY FIELD(TYPE, 'SD', 'HD', '3D'); -- Using by FIND_IN_SET SELECT * FROM CHANNELS ORDER BY FIND_IN_SET(TYPE, 'SD,HD,3D');
If you know any other way please leave a comment
August 16, 2010
DbUnit and setting up changing data.
DbUnit is used to set up test data for integration tests that rely on a database. One way of importing and exporting database data in DbUnit is by XML data-sets. Assuming we have a table like this…
CUSTOMER
—————————————————————————–
| ID | FirstName | LastName | LicenceExpiryDate |
—————————————————————————–
We are testing a method called isLicenceExpired(id). To unit test this method we can setup some dummy data using DbUnits.
<?xml version='1.0' encoding='UTF-8'?> <dataset> <CUSTOMER ID="1" FIRSTNAME="FirstName1" LASTNAME="LastName1" LICENCEEXPIRTDATE="2010-08-25" <CUSTOMER ID="2" FIRSTNAME="FirstName2" LASTNAME="LastName2" LICENCEEXPIRTDATE="2010-09-15" <CUSTOMER ID="3" FIRSTNAME="FirstName3" LASTNAME="LastName3" LICENCEEXPIRTDATE="2011-01-01" </dataset>
Problem with above setup is test-cases would eventually fail because of ‘LicenceExpiryDate’. We need to setup this date such that it’s relative to current date. This is where ReplacementDataSet comes into picture. This class decorates FlatXmlDataSet class to provide replacement functionality. Now we can define your data set as
(more…)
June 29, 2010
Programming Language Wars
Programming language wars are very interesting. Some take their programming language very religiously and vehemently argue how cool it is. This is what I would say; of course my own opinions and I have every right to have them.
Language is just a tool: Many times people forget that programming language is just a tool to solve problems. In the end it boils down to problem and a right solution. A problem can be solved in any language, but certain problem’s can be best solved by using certain languages while others are best suited for other problems. It depends upon using right programming language for solving a particular problem.
(more…)