Sunday, October 14, 2007

Video Streaming in Windows Mobile

I have just finished the prototype of a video streaming server and client applications that allow video images captured by a webcam to be transmitted real-time to a Windows Mobile device.

All you need is a computer with a webcam connected and a Windows Mobile 5.0/6 device with network connectivity. If you want to learn how to build this application, come join us in the upcoming Windows Mobile 6 Standard course on 5th Dec 2007.

Saturday, October 13, 2007

Tip: Emulating GPRS connection on Windows Mobile emulator

In my previous post I talked about how to get Internet connectivity using ActiveSync. However, there is one more option you can take besides using ActiveSync. That is, you can get connected via a GPRS connection. This is done via the Cellular Emulator available in the Windows Mobile 6 SDK.

1. In the Windows Mobile emulator, go to Start -> Settings -> Connections.

2. Tap on the Add a new modem connection link under My Work Network.

3. Give a name for this connection and select "Cellular Line (GPRS)" as the modem.

4. Tap Next two times (leave the fields empty) and click Finish.

5. In the Advanced tab, tap the Select Networks button.

6. Make sure My Work Network is selected in the first drop down list and tap OK.

* Make sure you configure your emulator to work correctly with the Cellular Emulator. See my earlier post on this topic.

Tip: Getting connected to the Internet using the Windows Mobile Emulator

Sometimes when you test your Windows Mobile application on the Windows Mobile emulator, you need Internet connectivity. However, by default the emulator does not have network connectivity. Hence, you need to do some work in order for you to get connected to the outside world.

The key to getting this work is using ActiveSync. In Visual Studio 2005, go to Tools Device Emulator Manager and right-click on "Windows Mobile 6 Professional Emulator" (assuming you are using this emulator) and select Connect. Whent the emulator is launched, in the Device Emulator Manager, right-click on the same emulator and select Cradle.

To confirm the Internet connectivity, use Pocket Internet Explorer and see if you can connected to the outside world. If not, you will see a connection error message. Tap on the Settings link and in the Settings window, tap the Advanced tab and tap the Select Networks button. Select My Work Network (see picture above). You should now be able to get connected!
* In ActiveSync, go to File -> Connection Settings... and check DMA under the "Allow connections to one of the following".





Are you looking for legal forms online? With a quick search you will probably find lots of small business forms or state tax forms available on the web. Obtaining public documents has never been easier.

Wednesday, October 10, 2007

Tip: Using the Cellular Emulator in the Windows Mobile 6 SDK

One of the very cool tools available in the Windows Mobile 6 SDK is the Cellular Emulator. The Cellular Emulator allows you to use the Windows Mobile Emulator to emulate making and receiving phone calls, as well as sending and receiving of SMS messages. However, getting it to work with your emulator is not so straight-forward. Follow the steps outlined below:

1. Launch Cellular Emulator from Start -> Programs -> Windows Mobile 6 SDK -> Tools -> Cellular Emulator.

2. Observe the COM port number used by the Cellular Emulator. For my example, it is COM3. You may see something similar or different (like COM4).

3. Launch the Windows Mobile 6 Professional Emulator (make sure it is not the Classic emulator) from within Visual Studio 2005. You can do so from Tools -> Device Emulator Manager and right-click on Windows Mobile 6 Professional Emulator and select Connect.

4. In the Windows Mobile 6 Professional Emulator, select File -> Configure... and click the Peripherals tab.

5. Under Serial port 0: enter the COM port number used by the Cellular Emulator. For my example, I enter COM3. Note that you have to manually enter the COM port; it is not listed in the dropdown list.

6. Finally, reset the Windows Mobile 6 Professional Emulator by selecting File -> Reset -> Soft. This step is essential!

You should now be able to get the Cellular Emulator to "talk" to the Windows Mobile 6 Professional Emulator.

Some common problems

1. From experience, you are likely to encounter problems with the Cellular Emulator if you install the Windows Mobile 6 SDK on a notebook. You are likely to see an error that says "COM17 is used, please verify" (or something similar). There is no official way to resolve this, but it seems like some folks managed to solve this by first uninstalling the Windows Mobile 6 SDK, then disable the Bluetooth services, followed by installing the Windows Mobile 6 SDK again.

2. If you find that the Windows Mobile emulator is not receiving SMS messages/phone calls made from the Cellular Emulator, the first place to check is the COM port settings in the Emulator Properties page. I encountered instances of this problem when the emulator started to lose the COM port settings after a while of use.






A call center service can help you with your telephone needs if you run a growing business. A good phone answering service can provide plenty of help; some companies wouldn't work without an external answering service to take calls.

Tip - Windows Mobile 6 Standard / Windows Mobile 5.0 Smartphone

In Windows Mobile 6/Windows Mobile 5.0 Smartphone, the Start menu is always shown in GridView. However, you can also switch it to ListView, but this is not easily performed by the end user. If you are a developer, you can use the Remote Registry Editor (shipped as part of Visual Studio 2005) to modify the following registry key:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Shell\StartMenu

Set the GridView DWORD Value = 1 for GridView and 0 for ListView.

Thursday, October 04, 2007

Getting Started with the Google Maps API

In the Oct '07 issue of ASP.NET PRO Magazine, I demonstrated how to build an ASP.NET Web application that allows users to upload photos and geo-tag them using Google Maps. View the PDF of the Oct issue here.

Friday, September 14, 2007

Registration Closed - 20-21 Sep 2007 Windows Mobile 5.0 Programming Course

Due to overwhelming response, the registration for the 20-21 Sep run of the Windows Mobile 5.0 Programming course is now closed. The next run for this course would be in Dec 2007. Details as follows:

5th Dec 2007 (Wed) - Windows Mobile 6 Standard (Smartphone) Programming
6th and 7th Dec 2007 (Thurs, Fri) - Windows Mobile 5.0 Programming using the .NET Compact Framework 2.0

For more details about the two courses, download the brochures and application forms here. As usual, please register early in order to enjoy the early-bird discount!

Creating a Windows Mobile Wireless Remote PowerPoint Clicker

Imagine giving a presentation from your cellphone! Learn how to write a PowerPoint clicker application for your Bluetooth-enabled Windows Mobile device.

Friday, September 07, 2007

Course - Developing Rich Interactive Applications (RIA) using Microsoft Silverlight

Want to learn Silverlight but are confused by all the various tools and technologies available? In this 2-day course, learn how the various tools and technologies like XAML, Visual Studio 2008, Expression Blend 2, Silverlight runtime, etc, work together. Packed with intensive hands-on labs, you will be on your way to developing cool Silverlight applications for your web site upon completing the course. Download the registration form here.

Course Date: 13-14 Dec 2007
Fee: S$598 (Early-Bird). S$798 (Usual).

Thursday, September 06, 2007

Get Started with Silverlight Using Visual Studio 2008 and Expression Blend 2

The Microsoft Silverlight browser plug-in enables developers to host Rich Internet Applications (RIAs), which feature animation, vector graphics, and video playback. Find out how to get started with Silverlight, and get a feel for how this new type of development works.

Wednesday, September 05, 2007

Developing a File Explorer for the Smartphone Using the .NET Compact Framework

This was an article I wrote for Pocket PC Magazine's (now known as Smartphone and Pocket PC Magazine) January 2005 issue. At that time, the version of Smartphone was 2003 and it did not come with a File Explorer. My article aimed to fill that void by showing readers how to build one themselves. And now that the latest version of Windows Mobile 6 Standard (aka Smartphone) comes with File Explorer, that article seems a bit redundant. Nevertheless, if you want to build a Windows-style Explorer, you can still gain something from my article. Additionally, this article is also useful for those of you wanting to know how to use the Treeview control to display hierarchical data.

Here is the synopsis of that article:

"Unlike the Pocket PC, the Smartphone 2003 platform does not come with a File Explorer for users to view the folders (and files) on the phone. This is perhaps due to the fact that Microsoft does not see the need for users to do this. However, it is often useful for developers to be able to view the directory structure of a Smartphone so that they can decide on which folders to use to store their applications and files. In this article, I will demonstrate how you can build a File Explorer for your Smartphone using the .NET Compact Framework. You will need to have Microsoft Visual Studio .NET 2003 and the Smartphone 2003 SDK to do this. "

Wednesday, August 29, 2007

NEW Course - Windows Mobile 6 Smartphone Programming

Synopsis
This course will introduce to participants the various techniques to program their Windows Mobile 6 Standard phones (previously known as Microsoft Smartphone). This feature-packed course will show you the challenges in developing non-touch screen user interfaces as well as the various techniques to develop line-of-business applications.

Includes coverage of what is new in the .NET Compact Framework 3.5 using Visual Studio 2008 Beta 2

What you will learn
* Introduction to Windows Mobile 6 Standard Programming
* Programming using the .NET Compact Framework 2.0
* User Interface Design for Smartphone
* Storage and File I/O
* Device Synchronization
* SMS Messaging and Email
* Localization
* Database
* Signing your application
* Project 1 – Building a RSS Reader
* Project 2 – Building a SMS Chat Manager
* What is new in .NET Compact Framework 3.5

Date
* Time: 9am to 5pm
* 5th Dec 2007 (Wed)
* Closing date for registration: 5th Nov 2007.

Course Fees
* S$399
* To qualify for Early Bird Discount, register before 5th Oct and receive a $100 discount (S$299 after discount)
* Inclusive of 1 lunch and 2 tea breaks

Venue
Motorola Enterprise Mobility Business
230 Victoria Street #12-06/10
Bugis Junction Office Tower
Singapore 188024

Important Note
You will be required to bring your own notebook computer for the course. The required software will be sent to you one week before the commencement of the course. Please ensure that the required software is installed before attending the course.

Infrared Programming Using the .NET Compact Framework

If you've ever used a TV remote control, you've experienced the convenience of using infrared communications. See how to use infrared to communicate between a Windows Mobile device and a PC.

Monday, August 27, 2007

Want to build your own phone applications?

Have you ever used SMS messages for voting, say, in a singing competition? Or perhaps you have recently sent SMS messages to donate to a charity show? If you wonder how all these SMS voting systems work, be sure to join us in the upcoming Windows Mobile 5.0 Programming course.

In this two-day workshop, you will build a SMS Manager application that allows you to use SMS message for voting purposes. This application is useful in scenarios where you need to collect feedback from users realtime, and is very useful in places like lecture threatres where you want to encourage students' participations.

In addition, you will also build a Call Manager application. The Call Manager allows you to disable your phone calls when you are driving or in a meeting and automatically sends a message to inform the caller that you are unable to take the call (if it is your boss calling, send him/her a message that you are now very busy with work to take his/her call!).

If you have a Windows Mobile 5.0 phone edition device and want to know what are the things you can do to make it more useful (well, build the applications yourself!), join us this Sep 20th and 21st. For more information, contact me at weimenglee@learn2develop.net.

Register now and get a free 2GB USB flash drive!




Trying to find an international phone? Getting global phones can be difficult, especially when you are traveling around the world. Next time you want a satellite phone rental looking on the Internet could help.

Saturday, August 18, 2007

Preorder the new PSP from Amazon.com!

Amazon.com is now taking orders for the new slimmer PSP that is scheduled to be launched in Sep. At the price of US$169.99, it seems like a good deal! I am no particular fan of games, but I am buying one for podcasts and RSS feeds. Click here to pre-order yours today. ;-)

Thursday, August 02, 2007

Try out the MC35 at the Windows Mobile 5.0 course

I am delighted to announce that Symbol (Motorola) has kindly agreed to loan a couple of MC35 to me. ;-) That means that if you have already signed up for the 16, 17th Aug run of the Windows Mobile 5.0 programming course, you would have a chance to try out first hand how well your application performs on it. If you have not signed up for the course, there is still time for the 20, 21 Sep run of the course. Download the application forms here.

* Symbol has traditionally been a leader in the enterprise mobility market, but with the launch of the MC35, they are sure looking at the pro-sumers market (e.g. managers and professionals). The MC35 has a slim footprint and comes with a built-in camera that changes into a barcode reader with the flick of a switch.

Friday, July 20, 2007

Course - Windows Mobile 5.0 Pocket PC Programming using the .NET Compact Framework 2.0

Synopsis
This course will introduce to participants the various techniques to program their Windows Mobile 5.0 Pocket PC devices. Far from being an introductory course, this feature-packed course will show you how to interface with external devices, communicate wirelessly with other devices, as well as access the data of built-in applications (such as Contacts, Outlook Mobile, and Calendar) from within your own.

Day 1 (Fundamentals)
· Introduction to Windows Mobile 6 development (NEW)
· Building Screen Orientation and Resolution Aware Applications
· File I/O
· Integrating with Contacts and Outlook Mobile
· Integrating with Calendar
· Integrating Telephony Functions
· Using Web Services
· Transferring Binary Data using Web Services
· Database Access using SQL Server Mobile Edition
· Remote Data Access using SQL Server Mobile Edition

Day 2 (Advanced)
· Using the Built-in Camera
· Intercepting Incoming SMS Messages
· Capturing Signature on the Pocket PC
· Location-Aware Using GPS (Serial Port)
· RFID
· Imaging (Using the Symbol SDK)
· Barcode Scanning (Using the Symbol SDK)
· Barcode Scanning (Using the Built-in Camera)
· Infrared Programming
· Monitoring System States and Sockets Communications
· Bluetooth Printing
· Deploying Pocket PC Applications
· Using the Magnetic Card Reader

Date
· Time: 9am to 5pm daily
· 20th (Thur) and 21st (Fri) Sep 2007
· Closing date for registration: 7th Sep 2007.

Course Fees
· $798
· To qualify for Early Bird Discount, register before 16h Aug and receive a $200 discount ($598 after discount)
· Inclusive of 1 lunch and 2 tea breaks for each day

Venue
Motorola Enterprise Mobility Business
230 Victoria Street #12-06/10
Bugis Junction Office Tower
Singapore 188024

Course - Developing Rich Interactive Applications (RIA) using Microsoft Silverlight

Course Synopsis
One of the latest buzzwords you often hear nowadays is RIA, or Rich Internet Applications. Rich Internet applications (RIA) are Web applications that have the features and functionality of traditional desktop applications. To Microsoft, RIA stands for Rich Interactive Applications, which is really their main focus when they recently announced the latest product known as Silverlight.


Microsoft® Silverlight is a cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web. Silverlight offers a flexible programming model that supports AJAX, VB, C#, Python, and Ruby, and integrates with existing Web applications. Silverlight supports fast, cost-effective delivery of high-quality video to all major browsers running on Mac OS X or Windows.

In this 2-day jumpstart course, participants will learn the basics of Silverlight and get jumpstarted on developing compelling RIA applications using Silverlight 1.0 and 1.1.

Day 1 (Silverlight 1.0)
* Understanding XAML
* Using the Canvas object
* Drawing and Painting
* Graphics programming
* Manipulating images
* Manipulating text
* Manipulating media
* Animations

Day 2 (Silverlight 1.1)
* Building Dynamic UI with Silverlight
* Networking in Silverlight
* Interacting with HTML Programmatically
* XML Programming
* Persisting Data

Date
* Time: 9am to 5pm daily
* 1st (Mon) – 2nd (Tue) Oct 2007
* Closing date for registration: 7st Sep 2007

Course Fees
* $798
* To qualify for Early Bird Discount, register before 16h Aug and receive a $200 discount ($598 after discount)Inclusive of 1 lunch and 2 tea breaks for each day

Venue
HDB Learning Center
HDB Hub
480 Lorong 6, Toa Payoh
Singapore 310480

Friday, July 06, 2007

Incorporating Help into Your Windows Applications

How much effort do you put into ensuring that your users get all the help they need? You probably strive to design a user-friendly user interface, but do you provide any avenue for your users to get help when they are stuck? This article will show you how!

Spice Up Your SMS Chat on the Pocket PC

Did you know you can change the way your device represents your SMS messages? Learn how to program your messages to appear visually, complete with photos of the participants.

Saturday, June 23, 2007

Adding Smart Tags to Windows Forms Controls

One new features in Visual Studio 2005 is the support for smart tags. A smart tag is a panel that displays next to a control and contains a list of commonly used properties. Check out this new article!

Write Your Own Windows Services

If you're using Windows, you're no stranger to Windows services, but do you know how to write one of your own? In this article, you'll learn not only how to build your own Windows service, but how to build a client with which to control it.

Saturday, June 16, 2007

GPS data logger

Finally, a GPS receiver that doubles up as a GPS data logger. QStarz has just introduced the "Double 32® Bluetooth GPS Travel Recorder" GPS receiver that can log the coordinates and then offload to a PC. This is the idea that I was talking about in my MEDC presentation and would be very useful for fleet management as well as geo-tagging applications. Best of all, it is set to cost about US$119. Time to buy a new GPS receiver!

Sunday, June 10, 2007

Some Frequently Asked Questions (FAQ) About My Courses

I received quite a number of questions pertaining to the Windows Mobile 5.0 Programming course this Aug (16th and 17th). I have reproduced them here for your convenience just in case you have the same questions in mind:

Do I need to bring my own Pocket PC device for the course?
No, Pocket PCs will be provided (you have to share them though). Symbol will be providing 10 units of the MC70 for testing purpose, as well as other accessories such as RFID snap-ons, GPS receiver, as well as Zebra Bluetooth Printers. However, please feel free to bring your own device if you want to see how the sample apps run on your own device.

I have a older Windows Mobile 2003 PPC. Is this course applicable?
While this course is focused on Windows Mobile 5.0, there are some examples that will work on older PPCs. For example, the SerialPort class is new in .NET CF 2.0 and hence it is not tied to the Windows Mobile 5.0 platform, and therefore will work on older PPCs.

How is your course different from others?
If you have attended my course before, you would know that I am a great believer of learning-by-doing. And hence my course is focused extensively on hands-ons. I don't believe in spending lots of time on slides, explaining all the details of a class/methods. For that, you can really read a book or documentation.

I believe that the best way to learn programming is to actually type in the code, debug it, fix it and then seeing the end result yourself. In fact, I encourage my students to make as much mistakes as possible so that the concepts really sink in into their heads (this is actually how I learn new technologies; and in fact the best way to learn a new technology is to write a book! :-)).

And of course, the key ingredient to a good course is the course materials/workbook. For all my courses, I use materials that I develop myself. Each lab exercises contains simple and practical demos that you can modify and use for your own projects. I do not believe in huge and complicated examples/case studies that require you to start in Day 1 and complete in Day 5. As far as possible, each lab exercise is stand-alone so that students who did not manage to follow earlier labs (either they are late or the topics are just not relevant to them) can follow the rest of the course without feeling lost. In fact, I eat my own dog-food - I always refer to my own course materials when I am working on projects and needed to quickly locate a code-snippet to accomplish some functions, such as how to serialize a class, encrypt some text strings, access database, etc.

That said, do send in your questions if you have any. Cheers!

Friday, June 08, 2007

MEDC 2007 Singapore Slides Uploaded

You can now download my slide decks for the two sessions I presented at MEDC 2007 Singapore on 8th June 2007. Enjoy! Download all decks here.

[Updates] You can find the source code for the two presentations at here (SideShow) and here (Windows Mobile). These two are temporary locations until I find a permanent home for them. :-)

In addition, the application forms for the MCTS Prep Classes and the Windows Mobile 5.0 Programming Course can be downloaded here.

Managing Printing in Your .NET Application

The .NET Framework makes it easy to support printing. In this article, Wei-Meng Lee shows you the basics of printing in .NET 2.0, including how to configure page setup, print multiple pages, preview a document before it is printed, as well as let users select a printer to which to print. May. 15, 2007

Using the Cryptography APIs in .NET

The .NET framework contains a number of cryptography services that allow you to incorporate security services into your .NET applications. In this article, Wei-Meng Lee shows you how to use some of the common security APIs to make your .NET applications more secure. May. 22, 2007

Cool New Tools in Windows Mobile 6

While it may be some time before you can get your hands on a Windows Mobile 6 device, this early look at the Windows Mobile 6 SDK reveals some of the new tools and utilities you'll be using soon.

Personalization with Application Settings in Visual Basic

Application Settings is a new feature in Windows Forms 2.0 that allows you to maintain both user- and application-specific data (known as settings). Find out how to use it to improve your application's usability with personalization--this time in Visual Basic.

Wednesday, June 06, 2007

See you at MEDC Singapore 2007 this Fri (8th June)

Come and join us at MEDC 2007 this Fri (8th June) at Suntec City (http://www.microsoft.com/singapore/events/medc/default.mspx). I will be presenting two sessions - one on Windows Mobile 5.0 Network Programming and another one on Programming Vista SideShow Gadgets. If you are there, please come up and say hi!

I will be posting my slides up in my blog after the event. Hence, watch this space for the latest updates.