Check out Toddler Keys, a nice little software that can protect your computer from young children.
Last week my wife uploaded some pictures taken from her camera to her online flickr account. Soon the account got filled up to its free 100 MB per month limit. She could have uploaded many more pictures if they had been re-sized before uploading. In my search for a simple and inexpensive tool, I found a Microsoft Power Toy called ImageResizer which can resize multiple files in one operation. You can download it from here.
This tool is incredibly simple. Just explore to the folder on your desktop where the images are. Select all files that you want to resize, right-click and click Resize Pictures menu item. In the Resize Pictures screen, select the size to which you want to resize the pictures to. Thats it.
How it helped
In my tests an original 1.2 MB jpg file was resized into a 800×600 image of 60 kb. Wow..now 20 times more pics can be uploaded with same 100 MB per month limit.
Last week I spent some time understanding how Application Verifier works. For those who have never used Application Verifier, its a great free tool from Microsoft, that can detect memory leaks (heap/handle or resource leaks) in native Windows CE/Mobile applications. It not very hard to use, especially once you have the proper setup. You will need the following along with your regular application development environment:
1. Windows CE 5.0 Test Kit : Check this out here http://go.microsoft.com/fwlink/?LinkId=71619
2. Application Verifier Tool for Windows Mobile 5.0 : Check this out here http://go.microsoft.com/fwlink/?LinkId=71622
Although the Window CE 5.0 Test Kit contains the Application Verifier Tool, its binaries are not compatible with Windows Mobile 5.0 or later. For this reason you may need to replace the Application Verifier binaries in the Test Kit with the Application Verifier for WM 5.0 (in point 2 above).
And about the usage of this tool, there is a great Virtual Lab and an offline article.
Offline Article: http://msdn.microsoft.com/en-us/library/bb278113.aspx
Memory leaks or corruption in programs occur mainly due to following reasons:
1. Inadequate knowledge about Memory Management:
This is true for most people when they start programming. With experience they learn how memory management works in general and overtime they become “responsible” developers who understand how precious memory is.
2. Inadequate knowledge of specific System APIs or tools
A Programmer starting to work with a new language or platform might not be aware of how stuff works inside that system. e.g. A newbie Windows programmer may not know that CreateCompatibleDC() call must have a corresponding DeleteDC() call and GetDC() call must have a corresponding ReleaseDC() call. Again experience helps here.
3. Unreviewed Code
Not spending enough time in reviewing code. We are always in a hurry and don’t bother to implement code to handle exceptions. Doing Self or Peer code review can eliminate most of these traps. Note that its very costly (in time and money) when problems surface later in the field. It easy to fix bugs when they are caught on the development machine.
4. Using Free Code
So much code is available on the web these days that software development has now become some sort of software integration activity. Well… reusing code is not bad, but not knowing how it works is. Quality of free code must be questioned at all times. Sample code is not always ready to be used for production purposes.
5. Not using memory detection tools
Your program might leak memory even if you take care of above five conditions. Its a good habit to use tools that can help in detecting memory leaks which would otherwise go undetected.
My next post will be about Application Verifier tool which is a great tool for detecting memory leaks in native embedded applications for Windows CE and Windows Mobile.
CEditView class provides functionality of a Windows edit control to MFC applications. If ES_MULTILINE style is set, the edit control shows as many lines as possible to display the embedded text. Otherwise the whole text string is shown on the first line and if required, horizontal scrollbar is also shown.
ES_MULTILINE is one of those edit control styles which can not be changed if an instance of the class is already created. Basically there is no easy way to turn this style on and off once the object has been created. If your class is derived from CEditView and you want to turn on this style, override the PreCreateWindow method of the base class and modify the style field to set ES_MULTILINE.
BOOL CPreView::PreCreateWindow(CREATESTRUCT& cs)
// TODO: Add your specialized code here and/or call the base class
cs.style |= ES_MULTILINE | ES_AUTOVSCROLL;
Since derived class implementation is called before the base class implementation, the style is set before the object is created. This method can be used to set other styles also.