Sunday, April 06, 2008

InstallShield Error: 5004 : 0x80070005


While Installing driver for my Sonix PC camera, I was welcomed with the followng error. I was trying to run setup.exe. It was a setup program created with the InstallShield setup creator.

Error Details

The details of the error were as below:

Error Code:    -5004 : 0x80070005
Error Information:
>SetupDLL\SetupDLL.cpp (1924)
pAPP:USB2.0 PC Camera-268
@Windows XP Service Pack 2 (2600) IE




After some Googling, I got a very unusual tip from Gonarth. I have tried other tips but they simply didn't work. I as little bit tired, but finally I decided to check this out. The tip was very simple but strange. I tried it and wow! it worked. Beloow is the step by step description of what I did:

1. Opem command window. Start -> Run -> Type cmd and press enter.

2. At Command window, type following command

at time /interactive cmd.exe

Replace time with the actual time. For example, its 00:38 AM at my computer. So I should type time as 00:40.  Press enter.

3. Close the command window.

4. Wait upto the time you entered in step 2. At this time, copmmand window will automatically appear on your screen.

5. Run the setup program from command window. For example, I was running setup from CD ROM so I typed "G:\setup.exe".

6. The installshield will load and run the setup without giving the 5004: 0x80070005 error.

7. Complete the installation as usual or as instructed in your installation guide.

What Happened

The problem with the installshield program seems to be with the permissions. When you opened the command window using the at command, it is opened with some extra permissions. You run setup program with these extra permissions, and it works fine.

Thursday, April 03, 2008

Top 20 Programming Books

1. Code Complete  by Steve McConnell - Darn near a bible of software development goodness, Code Complete reminds us of our priorities. It's essential and everyone who writes code should read this book.

2. The Pragmatic Programmer by  Andrew Hunt and Dave Thomas - I like to read this book at least every six months or so. It's clean, clever, clear and full of concrete tips you can use to be a better, simpler, pragmatic programmer. A new classic.

3. Programming Pearls by Jon Bentley - This may feel initially like a C book, but it's really an algorithms book at its heart. It's old school with techniques and thought problems that can be applied today, even in language like Ruby and C#.

4. Refactoring: Improving the Design of Existing Code -by Fowler, Beck, Brant, Opdyke, Roberts  Although the language used is Java, the concepts are universal. This is a very linear, easy to read, learn by example book. If you think you know how to refactor, but you haven't read this book, pick it up and refresh yourself. You'll find names for Refactorings you've used for years and you'll definitely not only pick up new ones, but be better able to spot opportunities to use them.

5. Design of the UNIX Operating System by Maurice J. Bach So few programmers today can answer questions like "explain how virtual memory is managed" or "how are Unix processes different from Windows." How did we get here. Know your history.

6. Design Patterns by Gamma, Helm, Johnson, Vlissides - One of the comments on Amazon says it best, "It is expected that any professional developer has read this book front-to-back. Buy it, read it, then put it in your bathroom and read it when convenient. Also, when you're done, spend some time at the Portland Pattern Repository.

7. Working Effectively with Legacy Code by Michael Feathers - The book is highly entertaining and comes across as a conversation with a really sharp, really patient guru developer. Often, it's a chore to slog through code-heavy books. But Feathers manages to keep my attention with interesting stories, loads of examples, and well-written text.

8 .The Cuckoo's Egg by Cliff stoll - A sentimental favorite, The Cuckoo's Egg seems to have inspired a whole category of books exploring the quest to capture computer criminals. Still, even several years after its initial publication and after much imitation, the book remains a good read with an engaging story line and a critical outlook, as Clifford Stoll becomes, almost unwillingly, a one-man security force trying to track down faceless criminals who've invaded the university computer lab he stewards. What first appears as a 75-cent accounting error in a computer log is eventually revealed to be a ring of industrial espionage, primarily thanks to Stoll's persistence and intellectual tenacity. --This text refers to an out of print or unavailable edition of this title.

9. Head First Design Patterns by Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra - I just started reading it yesterday and it is a really well written (lots of pictures and examples) and is put in terms even I understand. Even so early on I would recommend it to anyone wanting an introduction into design patterns.You may not want to include it is all the examples are in Java although if you know c# you should understand it and even the VB / C++ shouldn't have to jump to far.

10. From Coder to Developer: Tools and Strategies for Delivering Your Software by Gunderloy and Sybex - started very interesting. For someone new to the business it gives a nice overview of what the whole software development process entails and made things a lot clearly for a new graduate like me.

11. Code Reading by Spinellis - is a good read for learning how to quickly and efficiently get to grips with an existing codebase. I'm fortunate enough to have worked on greenfield stuff my last couple of projects, but this is gold when starting at a new company and needing to get up to speed. Also great if you're looking to join an open source project. (

12. Writing Secure Code 2 by Michael Howard - This book provides a great overview of what techniques are important when writing secure applications, and what pitfalls to avoid. The book does a good job at making a point through examples and by explaining possible exploits.

13. The Mythical Man Month by  Brooks - This is a touchstone book, where by merely mentioning the name, you instantly communicate a body of knowledge on software engineering insight. It's full of truths about Software Engineering that are still relevant. 30 years later.

14. Patterns of Enterprise Application Architecture by Martin Fowler - Noted software engineering expert, Martin Fowler, turns his attention to enterprise application development. He helps professionals understand the complex--yet critical--aspects of architecture. Enables the reader to make proper choices when faced with a difficult design decision.

15. TCP/IP Illustrated Volume 1 by  W. Tichard Stevens - Even though this book was published in 1994, it still serves as a useful reference and learning tool for the TCP/IP protocol. There are of course changes and additions that have been made to TCP/IP over the last 7 years such as IPv6, but one can still refer to this book as a good source of information about the dynamics of TCP/IP. There are exercises at the end of each chapter, so it can, and has been used as an effective textbook.

16. Don't Make Me Think: A Common Sense Approach to Web Usability, 2nd Edition by Steve Krug - A practical Web design usability guide, "Don't Make Me Think!" is based on empirical observation not exhaustive statistics. Steve Krug's five years of usability consulting and testing are distilled down to this thin yet gem-filled how-to. Krug observed how people actually use the Web rather than how we *think* they use it, gleaning key usability guidelines.

17. The Inmates are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity by Alan Cooper - It's worth reading this book -- even despite the painful tone he often takes -- just to pick up on the ideas of creating concrete personas and how you use them to develop your product. We do that today at Microsoft (at least in Developer Tools), and it's a highly successful way of not only building a good product, but also in helping hundreds of developers understand why a feature is 'in' or 'out', no matter how much they might like it personally.

18. Mastering Reguler Expressions by Jeffrey E. F. Friedl - Regular expressions, a powerful tool for manipulating text and data, are found in scripting languages, editors, programming environments, and specialized tools. In this book, author Jeffrey Friedl leads you through the steps of crafting a regular expression that gets the job done. He examines a variety of tools and uses them in an extensive array of examples, with a major focus on Perl.

19. Test Driven Development by Kent Beck - The book teaches the concepts of TDD by working through two complete sample projects. Along the way, Beck gives the reader valuable insight into the thought process and techniques behind successful test-driven development. When the reader has finished working through these sample projects, he should know enough about TDD to get started working on a TDD project.

20. Head Rush Ajax by Brett McLaughlin - The Head First Labs crew has done it again in this excellent into to Ajax. The book really gives a great overview of Ajax for both programmers and non-programmers alike. You don't need to be a rocket scientist to pick this up. Although the book covers more PHP than I care for, and not enough of XML as I would like to see, it does an excellent job of covering their bases in a way that's easy to understand. I highly recommend this book to anyone with little to no understanding of Ajax. Let's pretty up the web, people!

Birthday ... or April Fool

What is the relation between birthday and april fool?

Well, you may call people at a food junction telling them that today (1st of Aptil) is your birthday. Most will believe you and wait for you at the food junctions. but some will be smart enough to figure out that it's the Fool's Day.

But what if somebody actually born on Fool's Day? My boss, Kiran, is one of those rare persons. He was born on the first day of April. There was a great party at our office cafetria (to make us believe!). We brought a very beautiful chocolaty cake for him.

Kiran told us the same story. He used to call people for his b'day and people thought that he would be fooling them. He used to keep waiting at the cake table and nobody turns up. He then had to call them many times and turn all the stones to make them believe that it was a real party.

Kiran will give us an unoffical party on Friday .............................................not to be disclosed.

I have one more friend who has a very unique thing about his b'day. This year he celebrated his 11th birthday. And his daughter is doing Post Graduation at the university (believe me!). I will discuss that later on.

Money Manager EX - The Personal Money Manager

Since long time, I was wondering where my money goes. I always run out of budget at the end of every month. And I could not track where all my money goes. So I decided to use a personal money manager. After some Googling, I found a wonderful software called Money Manager Ex. This is a lightweight personal money manager software which is available free of cost.


Money Manager provides some nice features. Below is the summary of the features, I like.

Multiple Bank Account: You can manage multiple bank accounts. It supports two type of accounts - saving/checking and investment. Your investment accounts automatically becomes stock accounts. But it would be nice if I could get third account type - credit account, for my credit cards. However, you can manage credit cards by pretending them to be saving account and entering the opening balance (i.e. outstanding amount) in negative.

Transactions: With Monery Manager Ex, you can enter tentative transactions. I enterd tentative transactions for the month in advance. Then you can categorize the transactions as reconciled, void or follow up.

Repeated Transactions: You can enter repeated transactions and set the frequency, date etc. This saves lots of data entry time.

Transaction Splitting: This is a very useful feature of Money Manager. You can split a transaction in multiple transactions. I enter a lum sump amount at the beginning of the month for home needs. Later on I can split this transaction into different categories. This helps me to manage my budget and always provides me a birds eye view of my finance.

Budgeting: This software allows you to enter budget for a year. Later on you can compare budget with the actual expenses.

Reports: Money Manager Ex provides a handful of useful reports. Some of the reports, I use are:

Where The Money Goes
To Whom The Money Goes
Where The Money Comes From
Budget Performance
Income vs Expenses

Custom Reports: If you are not satisfied with the reports provided with the software, you can use custome SQL reports. This allows you to write SQL statement to generate the report. This is a very noice feature for a developer like me.

Database: Money Manager uses SQLlite database. You can do anything with the database using any SQlite tool like SQLite2008 Pro Enterprise Manager or SQLite 3 Explorer.

Carry Your Money Manager With You

The best feature of the Money Manager is that you can carry it with you. The software is very carefully designed not to use any windows dependency like windows registry or any thing else. You don't need to install the software on your machine. Keep the software in a pen drive and use it any where, at home or on your office laptop or in a cyber cafe etc.

Related Posts:
Money Manager Ex - SQL Query: to create category-wise expense report.

Need any help on using money manager? Put a comment and I will be happy to help you out.

Related Posts