Karachi   ->   Sweden   ->   Karachi, again   ->   Dubai   ->   Bahrain   ->   Karachi, once more   ->   London and Leeds
Showing posts with label tools. Show all posts
Showing posts with label tools. Show all posts

Wednesday, January 04, 2012

How to clean C++ projects in VS 2010

If you archive/ zip your C++ project, there are good chances that it will take a lot of time to send it via email; reason being the huge temporary files that are created with VS 2010. These temporary files shouldn't be committed to your configuration management systems (CVS, SVN and similar tools). Not only adding these temporaries to your versioning system increases the storage requirements, it also adds communication overhead whenever you checkin and checkout.

VS 2010 C++ Temporary Project Files
So, how do you get rid of these huge files? The first step is to know what these files are. Below is applicable to C++ projects created with VS 2010. Similarities as well as differences exist if you are working with other languages/ versions of VS.

Solution 
Your project solution folder contains the following temporary files:
  1. .suo: Contains "Solution User Options" --- user dependent information such as user tasks
  2. .sdf: Your code browsing database in SQL Server Compact Edition format; this file is recreated as soon as you load a project into Visual Studio
  3. .opensdf: Temporary file created as soon as you load a project into Visual Studio; usually deleted when you close the IDE
Solution\Debug 
You might like to keep the .exe (executable) but the rest are temporary files such as
  1. .ilk: Increment Like file
  2. .pdb: Program debug database file is used by the debugger
Solution\ipch
All files are temporary and can be safely deleted; in fact, the entire folder can be deleted.

Solution\Project 
Typically your project exists in a project inside your solution folder. All files in Debug folder inside "Solution\Project\Debug" are temporary and regenerated when a build command is invoked.

The Easy Way to Delete These Files
An easy way to delete a lot of these files is to "Clean Solution" from within VS 2010. Select "Build" from the menu and choose "Clean Solution." This takes care of a lot of temporary files mentioned above, and significantly reduces your project size. This, however, deletes your .exe file as well, which you might or might not want to happen. And finally, it leaves the .sdf file, which can be significantly large, and should be deleted.

Saturday, December 10, 2011

Free SMS Reminders for You!

Would you like Google Calendar to SMS you for events and appointments? If you live in the UK or the UAE, and you don't make use of this free service, you might be missing on something important. In fact, there is an entire list of supported countries and carriers here. In the UAE, only Etisalat is supported---bad luck du guys! Unfortunately, this feature is not available to users in Pakistan.

So, how does it work?

Assuming that you are already logged into Google Calendar, you can reach Calendar Settings by first clicking on the little arrow next to you calendar name as highlighted in the screenshot below:



The resulting screen will allow you to change various settings such as calendar name, etc. Yes, you can have more than one active calendar! However, what we are interested in right now is the Notifications link as highlighted below:


The notifications screen lets you specify Email or SMS alert preferences. There is a link on that screen to set up your mobile phone:


You choose your country and enter your mobile phone number. Google will send you a verification code via SMS which you have to enter back on the same page. When done, you can select the checkboxes shown above to get SMS alerts for your appointments and events!


If you live in the US, you can even ask about your next day appointments via texting "nday" to 48368 (GVENT). Unfortunately, this pull service is only available to the folks in the US.

Monday, August 08, 2011

The StackExchange Network of Sites

If you have ever googled for a programming question, you must be familiar with Stack Overflow---the ultimate points based programming Q&A site. But do you know that there are sister Q&A sites in the Stack Exchange network, specific to other domains? Some of the ones I visit often are

The complete list of sites within the Stack Exchange network is worth going through. Some of the sites are in beta---which means that they are a few months in testing, after which they may get removed if they don't get significant activity.

All ideas for Stack Exchange sites go through a staging zone, known as Area 51. All proposals for new sites go through a "define", "commit" and "beta" cycle. There are 504 proposals on Area 51 as of today. Several of them are worth visiting and supporting.

The format, visibility and performance of questions on these sites are much better than other non-Stack-Exchange Q&A sites. I hope and wish they gradually replace sites like Yahoo! answers and forums like Parenting.com as they did with Experts Exchange.

The more you browse through the Stack Exchange network of Q&A sites, the more you start believing in the power of crowdsourcing.

Friday, June 10, 2011

Most Useful UK Websites

Once you land into this country, you realize that Internet is not just for keeping in touch with friends/ family, it's an indispensable part of life. A lot of real work gets done online.

Some of the most useful sites that I have come to know are as follows. Anyone who has spent more than a couple of months would definitely be knowing these websites. The following is meant for new comers as well as others to make recommendations:

Money Saving Sites

Money Saving Expert - Comparisons between products/ services and various money saving tips
Money Super Market - Same as above but much more famous; less advice and more comparison
Quidco - Gives you charge back on online purchases; if you are buying online, don't forget to get a charge back!
Price Runner - Price comparison portal

Trading Sites

Gixen - eBay Auction Sniper
Auto Trader - Everything cars!
Abe Books - for used books

Accommodation and Settling In

Right Move - Find a place to rent
Argos - Buy it, argos it!

Tech Startups, News and Misc.

Techcrunch Europe - Techcrunch targeted at European news
Do It - Volunteers and opportunities


The list doesn't include some travel related sites like WY Metro and London Journey Planner, which are location specific. It doesn't include sites like Groupon which I think have extremely appalling offers in the UK.

Saturday, April 17, 2010

Search Engine Optimization (SEO) Shortcomings of Blogger

So, you have a blog on Blogger and you think that the since Blogger/ Blogspot is owned by Google, it will automatically be optimized for Google search ranking? Wrong! Blogger sucks at Search Engine Optimization. There are many workarounds to overcome Bloggers weak SEO handling but why its so complicated is beyond me.

For example, their is certain weightage of the <meta> tags, specially the description meta tag written as follows:

<meta type="description" content="Shortcomings of Blogger when compared to Wordpress and Typepad"/>

While you can add such a tag for your Blog (by editing HTML of the template you are using) but don't you need a separate description for each post? Does the Google owned blogging service allow that? Yes, but its not scalable at all. You can use conditional tags which compare the page URL with the post title and then write a description for that post; something like the following:

<b:if cond='data:blog.url == "http://blog.thejaywalker.net/2009/05/going-to-sweden-for-studies.html"'>
<meta content='A must read if you are going to Sweden for higher education' name='description' />
</b:if>

<b:if cond='data:blog.url == "http://blog.thejaywalker.net/2005/09/pakistani-students-in-sweden.html"'>
<meta content='A general profile of Pakistan students in Sweden' name='description' />
</b:if>

But so many-ifs are not only hard to maintain they are plain ugly. Why not just provide a Description field when you are editing your post so that you can write the right meta description tag with your post?

More information on adding meta tags to blogger is the next step for the eager soul. Also, Meta Tag Generation "tool" might be useful for some.

More on other shortcomings in some later post...

Wednesday, April 07, 2010

How to test a website on Safari when you have a Windows PC

If you have done web development, chances are that you have come across a customer who demands the site to work flawlessly on a variety of browsers; this mainly includes IE and Firefox but sometimes Opera and Safari also make it to the list.

Browsershots is an interesting website that shows you how your webpage looks on several different browsers across all popular operating systems. However, the wait time associated with browsershots is huge. A typical submission to check a website on 3 different browsers took 30 minutes! Of course, one cannot do trial-and-error kind of CSS fixing using this site.

Another option is Browsrcamp which boasts that it can provide instant Mac Safari rendering. However, when I tried it said that Mac services were down.

Other noteworthy mentions could be
But even after going through all the sites I have yet to find a free, fast way of testing your site on a Mac Safari without owning one. One close shot is to just use Safari for Windows. There are very strong chances that if a page is not rendering properly on Safari for Mac OS, it won't work on Safari for Windows either.

Friday, February 12, 2010

Backupify!

Today, so much of your data resides online---your blog, the photos you uploaded, your emails, etc. Have you ever thought of taking a backup of these?

Register for a free account at Backupify before 15th February 2010! The site is extremely well integrated. I'll give it a 5 out of 5 on usability.

Monday, January 11, 2010

Outlook Attachment Sniffer

Sometimes you wish working with attachments in Outlook was easier! I specially desist the situation where somebody sends me an email with lots of emails as .msg attachments, each one in turn containing further attachments; I have to open up and save each message separately!

I have tried but have never given enough time to automate MS Office but I could tell that somebody else would have faced similar problems, and created a solution. Some time spent on Google resulted in discovery of a 30-days trial version of Outlook Attachment Sniffer, developed by a German company. It's a real gem!

Thursday, October 01, 2009

MS Project Tip: Linking Tasks Durations

A task in a project schedule might have its duration dependent on another task. While dependencies like Finish-to-Finish (FF) or Start-to-Start (SS) allow you to link the finish or start dates of two tasks, they do do not have any impact on the duration of the dependent task.

The need to have duration of a task linked with another may arise for activities like "code review" whose duration is directly related to start and finish dates of "development." MS Project 2007 (not sure about older versions) allows you to use "copy and paste-special" to link duration of tasks.



Suppose, as shown in the above illustration, you need to link the finish date of "Review" with the finish date of "Task 2." First, copy the finish date of "Task 2" and then right click the finish date of "Review" and choose "Paste Special." Finally, choose "Paste Link" in the final screen. Bingo!

MS Project Tip: Task Drivers

If you are using MS Project 2007, chances are that you are unfamiliar with a nicely added feature to this version of the product. Task Drivers let you find what is causing the task to start and stop at the shown dates; the delays include calendar constraints, resource leveling, etc. See the following screenshot to find the icon for enabling "task drivers" view pane. Very handy!

Tuesday, September 01, 2009

Pipes!

Sometimes, even RSS is not enough. Being an avid Google Reader user for some time, I frequently thought of having a way to sift through the blog posts/ news items coming in my reading list.

And this is a problem in general, not just limited to RSS: information explosion is eating us out. It takes more time to visit, login, sift through information on a website than to really read/ understand what matters to us. RSS though easy to use, doesn't provide you a means to filter your feed.

So, last night, Yahoo! Pipes flashed in my mind. I had seen the tool, and played with it a while ago but I couldn't think of any application for personal use until recently.

An easy to comprehend example for freelance programmers is given below: You can get a feed from rentacoder.com for new projects available for bidding. You need to login to Yahoo! Pipes and use "Fetch Field" and "Filter" tools to create Pipe output as shown below:



This will give you a list of newly added projects on Rent A Coder with the keyword "PHP" in their description. The nice thing is that you can add the output of this pipe (as another RSS feed) in your Google Reader list. Here is a live running example of the same.

Happy plumbing!

Wednesday, July 22, 2009

Personal Information Management

Computers are meant to store, process and organize information. Yet, many people don't use computers to store day-to-day information. In fact, organizing day to day information is a pain area in the modern life---thanks to information overload we are suffering from.

Yet, deep down, software developers believe that there is efficient, easy to use way of storing things-to-do, appointments, contact numbers, and other important pieces of information such as recipes, web clippings, etc. Several attempts have been made, the earliest traces going back as far as 1992, to create the killer app for personal information management but almost all failed miserably. The most astonishing effort is Chandler (from Mitch Kapoor, Lotus 123 fame), which I have reviewed here.

All is not bleak; several nice tools do exist; some promoting the ideas behind "Getting Things Done" while others just helping you in brainstorming, consider Free Mind and Mind Meister (both having excellent usability features).

But when it comes to comparison, the Five Best Note Taking Tools at LifeHacker.com tells us that plain-old "pen and paper" wins hands-down. Why is that? Why can't we use software for the simple purpose of taking notes and storing day-to-day information?


Usability
Perhaps, one of the reasons is usability. If it takes several mouse clicks just to write down a phone number, I might not bother at all. With time, software is improving in usability. OneNote 2007 from MS, for example, has some very nice features:
  • Instead of providing a tree like structure to arrange notes, OneNote gets its inspiration of notes-taking from regular notebooks---there are "sections" within one notebook, each having a different color and having a collection of pages inside it.
  • Again, like a piece of paper, it lets you write anywhere you want on the screen.
  • It even provides handwriting recognition---something not for me but who knows.
  • There are some pretty good shortcuts: e.g., while typing if you press "TAB" key, it puts the information in a table and creates a new column for you to write more---it doesn't require you to first think about how many rows and columns you need---the software adjusts the page as you go.


In 1992, Mitch Kapoor proposed "Lotus Agenda" to the world. It's ground breaking features included support for mentioning dates in the form of now, today and sunday, next year, etc. In fact, this feature is available in MS Outlook 2003 and later versions as well. Next time you are scheduling an appoint, try writing "tomorrow" in the date box.


Ubiquitous Computing
The other one is the time it takes to load the app---if I have to "start my PC" just to write things to do (or even if I have to start an app for this purpose), I might lose interest. Remember the Milk (for things-to-do) and Ever Note (for note-taking) are web 2.0 apps which handle this aspect to some extent by providing a web based and a hand-held interface simultaneously.

But I still believe we need to more in this area. Something that we can carry with ourselves, and is easy to use, is very important. Something on the lines of Pattie Maes demo of the Sixth Sense is required here.


So, the killer app will have to have a mobile phone based interface/ client as well, which can synch itself with the main application as and when required. The killer app also has lots and lots of usability; in short, Don't Make Me Think. When can we have that killer app? Who knows. For now, I am settling with OneNote 2007; it's the most suitable for me. Too bad that there is no opensource competitor.

Monday, June 08, 2009

Outlook: Forgot to attach the document?

Sometime back, I discussed how you can get notified while sending emails without a subject in Outlook. Below is an improvement which checks for missing attachments when there is a keyword "attach" found in the body of the message before a "From: " string is found.

1Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
2 If (Not Item.Class = olMail) Then Exit Sub
3
4 Dim mailItem As mailItem
5 Set mailItem = Item
6 If (mailItem.Subject = "") Then
7 answer = MsgBox("Do you want to send the message without entering a subject?",
8 vbYesNo + vbSystemModal)
9 If (answer = vbNo) Then
10 Cancel = True
11 End If
12 End If
13
14 msgBody = mailItem.Body
15 posAttach = InStr(1, msgBody, "attach", 1)
16 posFrom = InStr(1, msgBody, "From:", 1)
17 If (posAttach <> 0) Then
18 ' word "attached" found
19 wordInOldEmail = False
20 If (posFrom <> 0) Then
21
22 ' word "from: " found
23 If (posAttach > posFrom) Then
24 wordInOldEmail = True
25 End If
26 End If
27
28 If (Not wordInOldEmail And mailItem.Attachments.Count < 1) Then
29 answer = MsgBox("Do you really want to send the message without attachment?",
30 vbYesNo + vbSystemModal)
31 If (answer = vbNo) Then
32 Cancel = True
33 End If
34 End If
35 End If
36End Sub
37


As in the past, this is not a COM add-in. I have tested it with Outlook 2003 only in the VBScript Macro editor.

Sunday, May 17, 2009

WolframAlpha Launched

Though the much awaited knowledge computational engine has been launched, it's experienceing performance issues. Google Operating System has done a nice review of Wolfram Alpha here. A must read!

Wednesday, May 13, 2009

Yubnub: Command Line for the World Wide Web

If you are a fan of SlickRun, I have a goodie to share with you today. And in case, you don't know what SlickRun is, you are wasting lots of your time in finding programs to execute, opening documents, and doing redundant things on your Windows PC.

The goodie is Yubnub. Possible uses are only limited to the number of websites over the web. I, for one, frequently use xe.com to convert money from one currency to another. However, the whole activity is quite cumbersome when you have to surf from one page to another just to get the required currency. With Yubnub as your default page, you no more need to do that. Just type "xe -amount 1 -from AED -to PKR" in the search box and you can easily the converted amount!

A list of useful commands (aka Golden Eggs) is also available. The world is not short of useful ideas!

Monday, May 04, 2009

Making Some Hard Drive Space

Unfortunately, MSIZAP can safely be used only to clean up "orphaned installations." All other uses of MSIZAP can be catastrophic, unless you know what you are doing. So, one of the easy ways to save another 450 MB (approximately) of diskspace in your Windows folder is to remove Windows XP SP2 uninstall files. Most people don't need to uninstall service packs; if you installed SP2 or SP3 on top of your Windows XP installation, the article linked above tells you a safe of removing the uninstall files for the service packs.

Wednesday, April 15, 2009

Getting Unread Gmail Messages

The trick is simple: just search for "is:unread" in your Gmail account and you'll get all the unread messages.

An alternate is to search for "label:unread" which means that "unread" is a special system label which is not visible to you but exists nevertheless.

Monday, January 19, 2009

MSIZAP and the Case of Ever Shrinking Hard Disk Space

I keep installing patches and removing programs on my Windows XP machine from time to time. I recently noticed that my hard disk kept shrinking after installing (and using) Google Chrome.

So, I fired up WinDirStat (a nice tool which gives you summary of folders and the disk space they are taking) and found out that Google Chrome caching was using 406 MB on my machine (folder: C:\Documents and Settings\<myUserId>\Local Settings\Application Data\Google\Chrome). More shocking was the fact that 7 GB of data was residing inside c:\windows\Installer (which is not related to Google Chrome)!

A quick search on the net revealed a tool called MSIZAP from Microsoft which can be used to remove orphaned patches and installation files. Surprisingly, I already had the tool located in C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\MsiZap.Exe; thanks to locate32 (another must have utility to get blazingly fast searches for your files).

You run the tool with G! switch to remove orphaned installation packages, as shown below:

MSIZAP G!

This freed up some 5GB space on my machine with apparently no problems since yesterday.

Warning: MSIZAP is dangerous if you don't know what you are doing!

Sunday, January 04, 2009

Ultimate Boot CD and the Case of Missing NTLDR

Trying to find a purpose to live beyond the ordinary, I have resolved to help my relatives with PC problems. Now this is a very boring job when you know that "just formatting the hard disk" or "buying more expensive equipment" will solve the problem; I try not to suggest such extreme measures as this just eases your job and sheds cloak of gloom over the face of the person facing the problem.

By the way, I am not into PC troubleshooting as my day job (and I am not much knowledgeable with OS problems either). However, I do learn a little from time to time.

So, I got a call for help where somebody close was getting an "NTLDR is missing" error on booting his Windows XP machine. Fortunately, I had downloaded (and used) Ultimate Boot CD some time earlier. I knew this would be indispensable.

When you boot with UBCD, it provides you with lots and lots of tools. Knowing the right tool for the job takes some time.

A quick search on the Internet revealed that the three files required in the first partition for booting up a Windows XP machine include
  • boot.ini

  • ntdetect.com

  • ntldr
I used Volkov Commander (included with the CD) and enabled NTFS support; I found out that all these files were missing from the Win XP paritition. A rather peculiar thing with UBCD is that it messed up with the drive letters (it could be due to the fact that some partitions were FAT 32 and some others with NTFS). Moreover, enabling NTFS support just makes NTFS partitions readable (more on that below).

With some effort, I found out "Avira NTFS4DOS Personal" in UBCD allows you to write to NTFS. I put in a Windows XP setup CD and copied ntdetect.com and ntldr from i386 folder of the setup CD to the root of the NTFS partition. I had to manually create boot.ini (contents copied below):

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /noexecute=optin


And it worked! Thanks to UBCD!

Note to self: considering that almost everyone in Pakistan uses Windows as their OS, I should give UBCD for Windows a try.

Sunday, December 07, 2008

Host and Guest Communication on Sun xVM VirtualBox

I recently installed Ubuntu 8.10 on a Sun xVM VirtualBox VM (running on Windows XP). Unlike VMWare Server, there is no direct/ default way of communication between the guest and the host. The solution, which I found after spending a few hours, is to establish port forwarding from the host to the guest. Please enlighten me if somebody knows a better way.

Sun xVM comes up with a command line tool vboxmanage. On my Windows host, it's located in C:\Program Files\Sun\xVM VirtualBox. You need to run the following three commands to establish port forwarding:

vboxmanage setextradata "Ubuntu" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestFTP/Protocol" TCP
vboxmanage setextradata "Ubuntu" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestFTP/GuestPort" 21
vboxmanage setextradata "Ubuntu" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestFTP/HostPort" 1121


Here, Ubuntu is the name of my VM. I have chosen guestFTP as the name of the service which will be forwarded --- you can replace this part with something of your choice. Essentially, the commands set three parameters: protocol, guest port and host port.