Design Patterns at a glance!
Posted by sureshkrishna on December 8, 2009
Posted in Technology, software | Tagged: Design Patterns, Precise, Simple | Leave a Comment »
Does your Boss see you as his competitor ?
Posted by sureshkrishna on November 27, 2009
The title may sound strange, but it’s true in many cases. If you have considerable experience and worked with many bosses, you may have encountered this situation at least once. There are very few bosses who possess real Leadership skills. By this, i really mean that your Boss knows his boundaries, makes sure you know your boundaries, stands as an exemplary character and knows how to push your career in the right direction. Many Bosses i see are raising from the Juniors levels in the respective industry. That means they are struggling to juggle their core expertise and the desire to exhibit management skills and get recognized as a “Manager”.
While everyone agrees that healthy competition within and outside the organization is good for everyone, there are mixed feelings as to whether your Boss should see you as his competitor. Some of the managers are very paranoid about their own position or sometime they don’t understand the value of growth.
Growth Satisfaction : This is the most dangerous reason that would make the team frustrated about the work and the company. This sort of Boss thinks that he achieved a lot in his life and basically he is content with his position. He sees everyone working under him also as achievers. If one shows enthusiasm to do little extra, Boss thinks that it’s not necessary to do any thing other than their responsibility. He tries to shun the growth of the team-member by not letting this Ideas and communication some out of this team-member directly.
Boss does not even understand the fact that the team-member needs recognition and wants to grow up in the ladder. The mere satisfaction of Boss could make him ignorant of others enthusiasm to grow. Unless the situation is too bad, very few people would like to work with this kind of Boss. Or in the extreme case, the entire team is content with what they do.
Paranoid : Some situations, circumstances and timely decisions make this guy as Boss. May not be a perfect fit for the job but will do. This Boss never imagined he would get this position and he would like to keep it whatever happens. He starts suspecting his team, even if they go to a Coffee shop. Every suggestion that comes from the team undergoes a high scrutiny.
In most cases, these kind of Bosses may not possess great decision powers. So, working for them is like working for “Free”. No promotion, No reward, No bonus and No appreciation. Even if the team-member is capable, his Boss does not think so. Every effort that team-member makes to grow in and out of team becomes useless with the lack of the support by Boss. After all, everyone wants to respect his/her Boss and not By-pass. Even if one by passes his Boss, this can not continue for a long time as the Super-Boss wants to hear it from the Boss too.
Athlete : This is the name given by me and it is not a Management term. Your Boss is like an Athlete. He is highly skilled, fast paced and does not care about the others. He wants to be the first one to do anything. If the team-member wants to join him in the race, he will allow him to join the race as long as team-member is behind the Boss. This Boss is interested in only his growth and does not care whats happening to his team.
This kind of Boss is moving ahead is a fast pace. So, team-member will hopefully get a manager who understands them in future.
Guru : This kind of Boss is the one anyone would remember for their life time. This Boss teaches you, inspires you and recognizes the talent in you. He acts as a channel for your talent and you will be known to everyone inside and outside the team. He does not consider you as his competition, rather he thinks this as an opportunity for BOTH of you to grow. he works on a simple principle, “If YOU grow, I grow”.
In the end, it is not about, Good, Bad, Ugly. But, it is about how you take the situation and turn it into opportunity. Consciously knowing the nature of you Boss makes you better prepared for the situations. I am sure many of you would have had various experiences. Would like to hear your experiences too.
Posted in management | Tagged: boss, Competition, team member | Leave a Comment »
PGP Plugin for Thunderbird (instructions)
Posted by sureshkrishna on November 25, 2009
Recently, I had to use the PGP for the first time when one of my colleague wanted to send some documents securely. Over all, this is an easy process and works quite well. I use Windows XP, Thunderbird and gnupg for this to work. Following are some instruction to do this…
You download the software from http://www.gnupg.org if you’re using Windows. If you have Linux, you most likely already have GnuPG.
Enigmail is the plug-in for Thunderbird. You can get it from https://addons.mozilla.org. Alternately, on GNOME-based Linux, check out Seahorse. You can use GnuPG with Outlook, but it isn’t pretty. I would recommend Thunderbird any day.
The software will generate a key pair for you.
Unlike traditional S/MIME, where you use an X.509 certificate signed by a trusted CA, PGP / GnuPG is based on a more general model. You determine if a key is “valid” if it has been signed by someone you “trust”. So, let’s say, you trust that I will not sign any key without verifying that it actually belongs to who it says it belongs to. Then, you can be assured that any key you get that is signed by me is valid.
For distribution, you can upload your public key to a few key servers at PGP and MIT. Keep your private key, well, private.
Signing a message is easy. You just click a button in Thunderbird that says, “Sign message”.
Encryption requires that you have the public key of the person you’re sending the message to. Either he can give it to you, or you can download it from a key server that you trust and that he’s uploaded it to. Once the public key is downloaded, it is stored in your “keyring”. When you send a message to a person whose public key you have, you can click the “Encrypt” button, and it will work.
Posted in software | Tagged: email, Encryption, PGP, Security, Thunderbird | Leave a Comment »
Commercial and OpenSource OCR Softwares
Posted by sureshkrishna on November 4, 2009
After testing the FineReader, OmniPage, ReadIRIS, and SimpleOCR, Aspire, Tesseract….it is evident that ABBYY FineReader 9 is the best overall value, while ReadIRIS is the best OCR software for under $150.
The main features that differentiate OCR software are:
- Character recognition accuracy
- Page layout reconstruction accuracy
- Support for languages
- Support for searchable PDF output
- Speed
- User interface
- API / SDK
- Support / Consulting
- Stability of the engine when processing large documents
FineReader Professional is a highly accurate and easy to use OCR software that includes host of features including digital camera OCR, intelligent document layouts, image enhancement, barcode recognition and command line integration. FineReader 9 is our pick for OCR software because its document layout retention will save you much time in reformatting documents you convert for editing
Affordable OCR software for business and home users. ReadIRIS Pro provides a extremely accurate OCR recognition rate at a low cost, but still has some of the advanced features that higher priced professional OCR software includes.
OmniPage is widely considered the fastest, most accurate and fully featured OCR software. OmniPage 17 Professional has a unique new feature that lets you convert any type of document to searchable PDF or Word. OmniPage does not have a downloadable demo. Nuance also does not provide free technical support after the first call. For these reasons we recommend the ABBYY and IRIS products instead.
OmniPage is an Optical character recognition application available from Nuance Communications. Nuance Communications was acquired by ScanSoft, which also took over its name in October 2005.OmniPage converts images such as scanned paper documents, and PDF files, into file formats used by computer applications such as Microsoft Word, Excel, Adobe Acrobat, or HTML files.OmniPage is in competition with ExperVision (TypeReader), Readiris and ABBYY Fine Reader as well as free software such as GOCR and Tesseract.
http://code.google.com/p/tesseract-ocr
In computer software, Tesseract is a free optical character recognition engine. It was originally developed as proprietary software at Hewlett-Packard between 1985 until 1995. After ten years without any development taking place, Hewlett Packard and UNLV released it as open source in 2005. Tesseract is currently developed by Google and released under the Apache License, Version 2.0.
http://jmagick.wiki.sourceforge.net
JMagick is an open source Java interface of ImageMagick. It is implemented in the form of Java Native Interface (JNI) into the ImageMagick API. JMagick does not attempt to make the ImageMagick API object-oriented. It is merely a thin interface layer into the ImageMagick API. JMagick currently only implements a subset of ImageMagick APIs. Should you require unimplemented features in JMagick, please join the mailing list and make a request. JMagick has a LGPL (Lesser GNU Public License) license.
http://www.expervision.com
The award-winning TypeReader converts scanned documents into electronic files at speed of 8,000 pages per hour with maximum reliability. Desktop 7.0 offers added flexibility to handle color and grayscale images, with duplex scanning support to process documents in English, French, German, Italian, Portuguese, Spanish, Dutch, Danish, Swedish, Norwegian, Finnish, Polish, Hungarian and Polynesian. It employs an unparalleled recognition technology to support 2618 fonts. Users can choose to output to various formats including PDF, MS Word, Excel, Lotus 1-2-3, HTML, etc.
http://www.edocfile.com
Tiff to Text is designed to perform Optical Character Recognition (OCR) in a batch process. The program utilizes the OCR engine from Nuance (Owners of OMNI Page – formally ScanSoft) that is included with Microsoft Office Document Imaging (MODI).
http://www.simpleocr.com/OCR_Software_Guide.asp
Posted in Technology, software | Tagged: commercial, OCR, open source, software | 2 Comments »
What not to do as a Boss !
Posted by sureshkrishna on November 3, 2009
Some of my random observations and rants about BAD managers and bosses…
Motivation : Manager thinks that every employee has the motivation and he need not do anything. This is a typical problem i see in the managers who grow up the ladder from the technical streams. These manager’s seldom believe that employees need to be motivated to do their best and not all “jobs” are interesting.
Don’t assume that employees have Motivation because you are paying for their work.
Right Job : At the time of recruiting, you have a set of job responsibilities and tasks that you want an employee to fulfill. Things change in time and so are the responsibilities. As a manager, it’s your JOB to assign the right Task/Job to your employee. Are you wondering why your team-mate is not able to succeed or he is not performing to his level you imagined ?
Choose and Assign the right job for your team. If you ask them to do an ODD job, then apologize to them and explain the situation.
Information Sharing : Information spreads fast. Very Fast! If something is happening with your team, project or customer. Inform the team with the right information AS SOON AS POSSIBLE – ASAP. Holding back the information or maintaining the secrecy has a negative impact on the employees. They loose trust on you. Be informed that your employees always have contacts to get the information.
Understand that Information Sharing is CRITICAL. Never share an information that is stale and known to everyone except you.
All-In-One Responsibility : Some managers have the concept of “All-In-One/ Open Responsibilities”. This means, everyone in the team should be able to do everything. You know what, this is the Disaster Recipe. When we call set of individuals as team, we are talking about individuals who are specialized in an area and able to collate different strengths for a common goal. The side effects of this theory is that the individual employees are completely demoralized as they don’t work on any specialized task anymore. They are not experts in any area as they switch the context of the tasks very frequently. e.g. today they work on Java issue, tomorrow they work on Perl problem and day after they work on Install Shield. The important side-effect that i see is that none of the tasks will be “Complete” or “Perfect” or “Designed to Last”, because no one owns it.
Assign the Ownership of tasks and define the Responsibilities to Individuals.
Appreciation of Efforts : Individuals like to hear their appreciation in group and criticism in private. Unfortunately, some managers do other way round and this really sucks. Even if you slog for months and months, this manager does not appreciate you and he does not even look at you. He probably has an attitude of “You are working and I am working. You are getting pain and i am getting paid”.
If you need a stable team, be a God Father to your team in every respect.
I will keep on adding more and more to this list with my experience. I strongly feel that everyone knows what to do but very few know “What NOT to do”
Did you experience similar things at your work place ? Do you have more points to add to this list ? Please do share your experiences…
Posted in Entrepreneurship, Startups, Technology, communication | Tagged: boss, corporations, employee, what not to do | 2 Comments »
Why Few Executives Are Skillful Managers
Posted by sureshkrishna on August 19, 2009
Cross posting from HarvardBusiness Blog. Very interesting problems with Senior executives…
1. Delegation
It is your job to delegate as much as you possibly can: your ultimate goal should be to delegate everything, find a successor and move on to a bigger job. If you are having trouble letting go or trusting others, try to remember how it felt when you were given the first big challenge of your career. Did you relish the challenge? How did you approach it? Did you succeed? What did you learn about the job and yourself? How did it help you to move forward in your career?
Remember that however talented you are, your career is likely to have stalled had your boss not trusted you with a challenging piece of work. He took the risk and delegated: now it’s your turn to do the same. No excuses, just follow the rules.
2. Managing distance
One of the biggest mistakes you can make as a manager is to spend too much time either in your team or away from it. If you are too close, you risk becoming a micromanager, you can lose perspective on the business, you can become too friendly and lose authority within the team, and your team can become over-dependent on you. Being too distant, on the other hand, can result in a directionless team, potential crises, lack of control, and you being perceived as too remote or political. Also, maintaining social distance is an important discipline for managers that should not be overlooked.
3. Visibility
Visibility and personal profile are important for your career as well as your team, so make sure you are being seen and heard in the right places. If you don’t manage your reputation and profile, someone else will do it for you — and they may not have your best interests at heart. Take time to network, share your successes, and ask to be included on steering committees or cross-functional initiatives to create opportunities to showcase your talents and your team’s achievements.
4. Work-life balance
It’s incredible that this point still needs to be reinforced. Remember that you are a human being, not a machine. You may pride yourself on being able to work long hours, never taking a holiday and putting your company before your own health and well-being (and that of your family). But be very clear that you cannot do this forever. Sooner or later your health will give up and you will no longer be in control. Burnout is a one-way ticket, so be sensible. It’s smart to look after yourself. Work reasonable hours, keep the weekends sacred, leave early one evening a week and build in an exercise schedule. Not only will this help you keep effective, it will make you easier to be around and probably prolong your career.
5. Continuous learning and reflection
Adaptability and being able to flex your style as your company or situation changes are critical. Seeking feedback, identifying your development needs, and monitoring your own progress are all vital if you are to develop as a leader and a person. Lasting behavioural change requires time, patience, dedication, and support, so don’t expect it to happen overnight. One of the best things you can do to support yourself is to give yourself time and space to reflect: try to schedule a meeting with yourself for an hour each week for reflection.
Posted in Business Manager | Tagged: senior executives, skillful managers | Leave a Comment »
See the unseen
Posted by sureshkrishna on August 18, 2009
Few points from a post i read somewhere on a blog…
- Employees are afraid to speak up: “People are very deferential to those at senior levels and they’re afraid to be the bearers of bad news”. Also, if playing the blame game happens a lot within the work environment, employees might hesitate to mention their own mistakes for fear of repercussions.
- Gatekeepers block information: These are the employees who help senior executives manage the flow of information. While these staff members are invaluable for helping senior managers streamline their work, “gatekeepers can often filter out and be an impediment to key news about problems getting to senior executives”.
- Isolation: “Many executives don’t get out to the front lines and see what’s authentically going on. They may have a townhall meeting type thing, but often those are fairly staged events, and they aren’t truly finding out what’s happening out there on the ground.”
- Managers don’t want to hear problems, only solutions: Many managers essentially instruct their employees, “don’t tell me about the flood, build me an arc.” While it’s good when lower level employees can provide possible solutions, this is still the wrong message to send. “What if your employees see something very serious, but don’t have the expertise to solve it? Are they supposed to stay quiet?”.
- Data Corruption : Due to the fear of Bosses and Fear of Failures many middle level and senior level managers manipulate the data to be pretty. When they see issues cooking in future, they try to cover it temporarily and just wait for the big explosion. This is the time that they have a big blame-game.
- Employee Responsibilities : Some organizations typically feel that everyone should do everything. This sounds simple but very frustrating and pathetic at the work and implementation. A job should define the set of Responsibilities and Accountability for certain tasks. When there is no owner of a task, a person who is doing it always looks to complete the task as soon as possible and take the next task. And very often there is no interest in a task as that’s not your’s. In such teams people get frustrated very soon and before anyone knows the team is no more.
- Unplanned Manager : This sounds like a paradox. It is assumed belief that the managers are good planners. But not all of them. Some really suck at planning and they make their team members to run on toes 24/7. Professionals understand that often they need to work extra to meet deadlines and work on weekends. But if it continues for a long time, everyone’s personal and professional life gets effected. An unplanned manager can make your life hell.
Posted in Business Manager, communication | Tagged: communication, management, see, unseen | Leave a Comment »
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…



Posted in Technology | Tagged: college, Eclipse, training | 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: context switching, programming, software | 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…
- http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html
- http://mashable.com/2009/07/07/google-chrome-operating-system
- http://www.techcrunch.com/2008/09/01/meet-chrome-googles-windows-killer
- http://www.cnn.com/2009/TECH/07/08/google.chrome.os/index.html
- http://www.wired.com/gadgetlab/2009/07/five-things-googles-chrome-os-will-do-for-your-netbook
Posted in Technology | Tagged: chrome, google, microsoft, os, windows | 5 Comments »
