April 27, 2009

W7: Seven is a magical number

As the title says, seven (7) is a magical number. There are several ‘seven’ things in this world like seven colors in rainbow, seven days a week, seven musical notes in Indian music, seven wonders of the world and yes, we can’t fold a paper from corner-to-corner for more than seven times. Try it out with any kind of paper with different GSMs.

For many people, technology is a magic. Many things work behind the scene and looks like a magic. for example, for a new user, when he’s typing in word, spell check and grammar check can be a magic. For a novice developer ‘IntelliSense’ which shows methods, properties when he puts a dot after object name might seem like a magic. Just like that there are so many things which look like a magic, has happened with the new operating system which Microsoft is about to ship in this year. And the twist of fate is the name of this operating system –Windows 7 or Win7 or simply W7.

Win7 has copious new features which bolster productivity, makes life easy, secure data and ultimately gives rich end-use experience. Every minute thing which has been included in Win7 has a strong study behind it. For example, it has a new feature rich taskbar. This taskbar has been newly designed to support touch functionality. Icons are big enough making figure touch easy, these icons glow in a color which is specific OR highly used in that icon. Like, if user will hover the mouse pointer on Office PowerPoint 2007 icon – it glows in red while if the icon is of Office Word 2007, it glows in blue.

Apart from it, Win7 introduces a concept from Office 2007 called Ribbon User Interface. Microsoft has taken a gigantic step while introducing Ribbon in Microsoft Office 2007. What would have happened, if customers cast off the user interface? But Microsoft took this risk and added Ribbon UI. Now, this UI seems to be the easy and most productive user interface. And yes – many people like it. This Ribbon UI is a part of W7 operating system as Scenic Ribbon. You can see this Ribbon everywhere in WordPad, Paint etc…

Along with it, there is a new concept which replaces Folders called as Libraries. Libraries are the destinations where users can find and organize their data as collections of items that may span multiple locations across computers. Libraries take over from the functionality of folders (e.g. Documents, Pictures, Music) and replace them as a main “storage” destination. Many times, I put my music files on ‘E:\Music’ or ‘E:\Zune’ folder and create different folders for Hindi, Marathi, English songs. Now, I don’t need to do it. I just need to put all these files at any location and I can find those files from my Music Library folder. Yes, you can still do it in Vista, but these ‘Libraries’ in Win7 are more than just ‘Folders’ in Vista.

There are lot more features than these, which helps to make life much more easier. You can see a complete new list at: http://www.microsoft.com/windows/windows-7/whats-new.aspx

But what about developers? What developers are getting out of it? Well, as new products from MS comes out, it comes with new APIs and helps developers to build applications on top of it.

Most of the APIs which are shipped with Windows 7 SDK are COM based or can be used in C/C++. But Microsoft is working on managed wrappers and soon, there will be managed APIs to play with new operating system.

Through this blog (along with Windows Mobile development), I’ll share, how developers can exploit these APIs and build stunning applications for the new operating system.

However, before starting with development, you might want to install OR setup the development platform for Windows 7 development. So here are the tools that are required for it:

  1. Microsoft Windows 7 Beta (Build 7000 or later): You can download this build from here: http://www.microsoft.com/windows/windows-7/beta-download.aspx
  2. Microsoft Visual Studio 2008: Download OR order it from here: http://msdn.microsoft.com/en-gb/evalcenter/bb655862.aspx
  3. Microsoft Windows 7 Software Development Kit: The Windows SDK for Windows 7 and .NET Framework 3.5 SP1 BETA provides documentation, samples, header files, libraries, and tools designed to help you develop Windows applications using both native (Win32®) and managed (.NET Framework) technologies.
  4. http://tinyurl.com/dy5t6l

So, keep looking for articles and demos on building apps for new operating system.

Namaste :)

Mayur Tendulkar

P. S.: When this blog post was written, Microsoft has made an announcement about Windows 7 Release Candidate (RC) was about to ship on 5th May 2009 for public.

April 15, 2009

Revisiting - Device Development

Technology is amazing and has changed itself and our life - significantly. We’ve seen computers filling entire room and heating up like hell. In this day and age, we call them Personal Computers (PC), sometimes which can be carried anywhere in a form of Laptop, Personal Digital Assistant (PDA) or even a small embedded ‘smart-device’. These devices also include mobile phones, PDAs, ATM machines, Kiosks, Tablet PCs, Robots, Electronic toys, Music systems, digital cameras and what not. And these small devices are capable of doing lots of things and that too within a fraction of a second. You just need to wish (or should I say ‘program them’) and these devices will obey the command.

Programming these smart-devices is exigent task. Developers don’t have that luxury of GBs of RAM OR TBs of hard-drive space OR GHz of Processing power with 32 OR 64 bit addressing space from a desktop OR even millions of pixels and thousands of colors hogging up screen OR even 24x7x365 broadband connectivity.

When it comes to smart-device programming, developers need to mull over many scenarios. Most of the today’s smart-devices still have 100-200 MHz processing power or even less with small addressing space like 8-bits OR 16 bits. These devices don’t have hard-drive and by and large they depend upon flash memory of MBs and termed as ROM. These devices also have a constraint on RAM. Mostly these devices don’t have a display screen (called as headless device) or if they do have, then it might be in a size of 240x320 with only selected color scheme. Even these specifications change from device to device and according to the position in which device is held like horizontally OR vertically. Sometimes, these devices have limited connectivity like Wi-Fi, Infrared, Bluetooth, GPRS, Cellular network or sometimes no connectivity at all. And as a developer, we need to think about how the application will behave in these scenarios.

There are lots of technologies out there to help us command these devices and address these scenarios. Depending on the type of device, its working process model, environment conditions, cost and risks associated, development process, time to market these devices and last but not least - interest of manufacturer, developers can choose any technology which suits and interests them.

These devices can be powered by technologies like Microsoft Windows Embedded family, Linux, Symbian, iPhone, Android, etc. and can be programmed by C, C++ and Java. And nowadays developers can choose VB.NET or C# as well - whichever is perfect for them.

There is subtle difference between writing applications for desktop/web and these devices. Developers build apps for desktop OR web and just deploy it. But in case of smart-device, if the device is a brand new custom made device, perhaps developers would need to have their own operating system running on it e.g. Kiosks, ATM machines have a custom made OS. And then, developers will write an application which will run on top of it. After all this, what if developers don’t have access to a real device?

Does it look pretty complicated? Well, it’s easy once we get our hands dirty with some practical stuff.

In next few blog-posts, I’m planning to share my understanding of Windows Mobile, Windows Embedded, Symbian, Android and iPhone with you.

So, stay tuned and keep looking for further updates on technological world.

Namaste!

Mayur Tendulkar