Saturday, June 07, 2008

I had a couple submissions for ideas to use in today's application, but decided I would use one of my own. Friday night and all: girlfriends like to go out on Friday evenings, we need to go shopping, and later we want to watch a little TV together, so I didn't feel tonight was the best night for a big project.

My idea is a simple yet very useful application for generating random passwords.

image

Pocket PasswordGen

Nothing too fancy here. It's a good looking application, but it didn't take much to make it so. Just clean layout and simple design. I did add a horizontal ruler line between the inputs and the outputs. It is actually two panels set to 1 pixel high each with ones back color set to light blue and the other pure white. The form's background is just a little off-white to add some warmth, but it is hard to tell directly.

The application engine is also clean and simple. There is a password class that has properties for each of the options, and there are two methods: Generate, and ConvertToPhonetic.

I have four character groups:

     static string  lowerCase = @"abcdefghijklmnopqrstuvwyxz";
     static string upperCase = @"ABCDEFGHIJKLMNOPQRSTUVWYXZ";
     static string numbers = @"0123456789";
     static string punctuation = @"~!@#$%^&*()-+='"",.?";

Based on options the user chooses a character list is created with all possible characters for the user's password.

Next I Generate PasswordLength worth's of characters for the password.

This is very important. I use RNGCryptoServiceProvider to generate a random seed number for the random number generator. We want real random numbers, not wishy-washy random numbers. This is a good source for how to use Crypto providers to make a password generator.

Pretty cool code, so check it out if you haven't ever generated random numbers before.

I pulled the Phonetic Alphabet off Wikipedia and made it into a generic dictionary object.

Lastly, I added a menu item that allow users to copy the password to their clipboard. I had to write some code to copy text into the clipboard. This is the best code I could find for doing so.

BTW, there is a bug in the above screenshot. Fixed in the current release. Can you see it? It's subtle. It has to do with the handle the last character. Good luck finding it.

Download executable: passwordGen.cab

Download Source Code: passwordGen.zip

Feedback

Nothing but positive feedback so far. I really appreciate. It seems we are off to a good start. Still I have another 24 days left, and only a handful of ideas I really like. So don't keep that good idea to yourself. One comment on the blog and you might have yourself your first Windows Mobile custom application.


Saturday, June 07, 2008 01:35:45 (Eastern Standard Time, UTC-05:00)  #    Comments [5]  |  Trackback
Friday, June 06, 2008

Today was a day I get to pick what I was going to write. One thing I've been doing a lot of lately is taking screenshot captures of either my emulator or my device. I don't know if there is a perfect solution for this, but I figured this would be a great "pain" to try to overcome.

Also, I just think this is a great utility to learn from and to use.

image

Mobile Capture

As always, let's look at how the application looks. Noticed I had more controls than I could put on one screen. Or if I could put all the controls on one screen it was going to look like a train wreck. I really try to make it so that if the user has to do something "tedious" like data entry, especially on a mobile device, that there is some sort of "cool" factor for the user to "experience".

In this case, I decided to make 3 sections to the form and have each fill the screen in response to the user clicking either the light blue "Capture", "Activation", or "Option" buttons. Notice how I disguised the buttons to look like section headers.

With a little effort each section could expand open as a visual effect, I choose to have the section just instantly pop to their minimized or maximized states. This would be a great feature enhancement for an enterprising reader to tackle. Just a matter of fine tuning it.

As far as features go, we have a lot happening there as well. Full Screen mode, Area mode, Hardware Key support, Time support, and the ability to take multiple pictures in a row.

That's a lot of application to take on in one day, and really only a couple of hours, but that's how we do it around here.

One issue I ran into was I managed to confuse myself. I though when I called Form.Hide() that is wasn't hiding the form's menu bar in time before the screenshot was taken. So I went and found the following blog article: Christian Helle's Blog: Programmatically Minimize an Application in .NET CF 2.0. Work's fine, but so does Form.Hide() just didn't figure it out for a while. Figured I'd leave imageChristian's code in for while since it is more interesting, P/Invoke and everything.

I wasn't quite sure the best way to take a screenshot anymore in .NET Compact Framework, so I looked that up to find a better way. I found this: Alex Yakhnin - Creating a screen snapshot in CF v2. And I decided it would do lovely, and it has so far. I haven't had the first problem with it.

Does anyone recognize where the feature set of this application is based on? It is a very famous Windows graphics program that was really popular a few years back now. Give it a guess.

The .NET Compact Framework HardwareButton device component made working with the device's hardware buttons a snap.

The way the application figures out what it needs to do between on the various combinations, and there are a lot of them, is pretty cool to check. Notices I didn't say clean and slick, just pretty cool. It could use some clean up.

I'm really happy with the UI; it was a simple trick to pull off the effect but I think it works great. Try it out see what you think! Alright well I think that wraps up day 05, I hope you like the

application.

 image

 

 

 

Download executable: mobileCapture.cab

Download Source Code: mobileCapture.zip

 

Feedback

I'm looking forward to seeing where we go next. I hope you are too. There hasn't been a lot of comments yet but I know word hasn't really gotten out yet either. But feel free to post your comments and ideas.


Friday, June 06, 2008 02:46:56 (Eastern Standard Time, UTC-05:00)  #    Comments [3]  |  Trackback
Thursday, June 05, 2008

I wasn't sure what to do for day four. I knew I wouldn't have a ton of time to work on it so it needed to be something short and sweet. That's when one of my closest friends, Chris Reeder, paid me a visit and told me to take a look at a comment he left for me on my blog. Chris runs a Web site you may know, StupidProgrammer.com. If not you should check it out.

I would like to recommend a mileage tracking application using a SQL CE database (had to get SQL into the app).

I decided this would be a great application for today. Unfortunately I multiple sets of unexpected visits from friends and family tonight and just about didn't have any time to sit down and knock this one out. But once I cut some features: SQL CE, metric support, stats graph, and the ability to compare MPG (etc) over time, it wasn't so hard. :D

image

Mileage Tracker

I think tomorrow I'll do an application of my own choosing, you guys can't have all the fun. But I'm glad for the participation. Thanks!

First thing to discuss is the design. There is some eye-candy but it is really minimum. Just a pretty background. Actually it is a background based on Windows Live Messenger's default theme. Just enough color to not be sterile.

First issue I ran into with this was transparent labels. The .NET Compact Framework for some reason does not support these. You can set it to transparent it just isn't implement and it doesn't do anything. The way I got around this was to following this guide: Alex Yakhnin - Transparent labels. (There's a minor typo: the Graphics grx object that is passed into the method is called gxOff inside the method. Just correct that and everything works great.) Very nice work-around Alex.

Not to the technical design: I had to decide what calculations I was going to support. I decided I wanted to do the following:

  1. Miles Per Gallon: required I know total distance and total fuel used. (standard mpg value)

Gallons Per 100 Miles: no new information needed. (How many gallons does it take to make it 100 miles.)

Cost Per 100 Miles: I would have to also get price per gallon. (How much does it cost to travel 100 miles.)

Maximum Range: I would need the user to provide total gallons tank can hold. (How far could I travel on a full tank of gas.)

The menu has Clear, About, and Exit menu items that are all basically self explanatory.

I decided to break out the fields and calculations into a separate class called Mileage.

I almost forgot to make a custom icon for this application. I would have hated that. I really dislike the default icon and try to always replace it.

Once again we take advantage of the custom string formatter in the .NET Compact Framework. By using .ToString("0.00") we always get numbers to two decimal places, versus huge unwieldy and unsightly values.

Like I said, "short and sweet". I hope you like it.

Download executable: mileageTracker.cab

Download Source Code: milesageTracker.zip

Feedback

So I think we are off to a great start. Today request is for reader to help spread the word and let others know about this resource. These are meant to be great resources for training and proof of the rapid application development power of .NET Compact Framework and Windows Mobile. So if you are enjoying this series and know someone else who might maybe you should let them know about us?


Thursday, June 05, 2008 01:02:29 (Eastern Standard Time, UTC-05:00)  #    Comments [4]  |  Trackback
Wednesday, June 04, 2008

image Just caught sight of a really good post by Robert McLaws: Windows Vista Edition : Windows SideShow for Windows Mobile Beta – FINALLY!

Awesome. This is really good news.

What is Windows SideShow?

Windows SideShow is a new technology in Windows Vista. With Windows SideShow, developers can write gadgets to send data from a computer to devices connected to that computer.

The beta requires you to have a device with either Windows Mobile 5.0 or  Windows Mobile 6  Professional or Standard Edition. You will also need a Bluetooth-enabled Vista PC.

Even though Robert warns that the Beta is "version 0.01", I didn't have the first problem. It just worked. :D

 

The ScreenShot Tour

 

NoGadgetsAvailable NoGadgetsAreTurnedOn Options

No gadgets available

No gadgets are turned on

Options

 

Things are pretty dull when you first set up Windows SideShow for Windows Mobile.

 

VistaSideShow

Let's enable some gadgets for our Device. The HTC-8900 you see above is my AT&T Tilt phone. "Inbox - Windows Mail", and "Windows Media Player" gadgets are installed by default in Vista. And I think the "Office Outlook 2007 Calendar" find its way into your machine if you have Office 2007. I download the "Countdown" gadget, and the "Office PowerPoint Remote" from the SideShow Gadget Gallery.

 

WindowsMediaPlayerStopped2 Albums BrowseMediaLibrary Genres

[ Stopped ]

Albums

Browse Media Library

Genres

PlayNow WindowsMediaPlayerPlaying NowPlaying WindowsMediaPlayerStopped3

Play now

[ Playing ]

Let's Get It Started

[ Stopped ]

 

Great background. It's just eye-candy, but it really adds a lot of polish and class to the application. Nice feature set for this Windows Media Player gadget. And since it is so simple, it is fast. You can get to Albums, Artists, Playlists, and Genres very easily and get to your media quickly. You can see album art for the currently playing song, but it is very small. I think this should be updated. Notice, I added a second gadget, "Office Outlook 2007 Calendar, between the first screenshot and the last one.

 

WindowsMediaPlayerPlaying2 OfficeOutlook2007Calendar InboxWindowsMail

[ Playing ]

No information available

Inbox - Windows Mail

 

You can see the SideShow gadget from the desktop which is a really good idea. And I've included a couple of screen shots of the calendar and mail gadgets. Not a lot to see here but it is mostly because I don't have good data to see it shine on this machine.

 

PowerPointSideShow

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Hmm, I couldn't resist I had to try the Microsoft Office PowerPoint Remote for Windows SideShow.

 

NoPresentationsOpen Session5MobileData CurrentSlideMobilityMetro OfficePowerPointRemote

Office PowerPoint Remote

Session 5 Mobile Data.pptx

Next Slide

Presenting: Session 5

 

Wow, this gadget is just awesome. People pay really good money for PowerPoint remote and how many can show the PowerPoint deck on the screen. It even works from the Today screen, and you can just use the hardware buttons to control the presentation. This is going to be really popular.

Feedback Wanted:

If you decide to give Windows SideShow for Windows Mobile a try, please consider posting what you think, or maybe even do a Screenshot Tour of your favorite SideShow gadget.


Wednesday, June 04, 2008 04:20:53 (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback

For day three, I  had already decided to write a GPS Compass application, short and sweet. It just so happens I received a comment from Paul Diston today (see below) asking for that very thing. It's a small world.

Hi,
I may have an idea that you might be interested in. I have a GPS receiver in my device and use the GPS Sample as provided with the Windows Mobile 5 SDK. I would be interested in a 'snail trail' kind of application which would draw your current location and keep track of your movements, a simple line showing your movements would be great. Also maybe a compass type application which would calculate your bearing.
I have had some success with these ideas however I just don't get the time to explore them further.
Thanks
Paul Diston

image

GPS Compass

Again we have another 30 Days of .NET application that was at least in part due to a reader's request. So keep them coming gang.

I'm not a graphics designer, but as I've mentioned before I believe it is important for a program to have some eye candy. It needs to look good and professional. Now beauty is in the eye of the beholder and you may be thinking GPS Compass is ugly, but the point is I tried, and IMHO I think it looks decent.

Now did I draw the compass rose you see to the right? No. I went to Wikipedia and found one in the public domain here. But that's my point it is important to make best use of all the resources you have at hand. Notice I didn't spend hours trying to do it myself only to end up with a nonprofessional looking graphic.

Once I had the base I need for the aesthetic design of GPS Compass, it was time to decide how to design the GPS engine. I narrowed the possibilities down to the following: access the GPS as a serial device, use the OpenNETCF GPS Library, or use the GPS Intermediate Driver.

I decided to use the GPS Intermediate Driver since it is fairly new, and it as the documentation says, "It is useful because it provides an intermediate layer that abstracts the actual GPS device from developers and manufacturers."

One thing about hardware nobody builds anything the same way. There are always like quirks and variations. If somebody else volunteers to let that be there problem you'd be wise to take them up on the offer.

Next I needed a way to test the application. I have an AT&T Tilt, that I love, and it does have built-in GPS but it isn't going to work from almost the dead center of my house. Fortunately Microsoft loves their developers and have included a Fake GPS utility for this very purpose. "FakeGPS uses text files containing GPS data to simulate the functionality of a GPS receiver." I really like this tool it just works.

I read through the GPS Intermediate Driver reference material and found the object I was interested in: GPS_POSITION. For this simple application all I really needed was access to flHeading: Heading, in degrees. A heading of zero is true north.

At this point I discovered that the Windows Mobile 6 SDK included a GPS Application in the samples folder, C:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS.

I checked it out and realized it would be a snap for me to take the sample and convert it over to what I needed. Sure I could have duplicated the effort, but everything I needed was right there waiting for me to take advantage of it. Again, always remember to make the best use of all the resources you have available.

The GPS Application has a nice status screen which I moved to a menu item option. I mean the main event here is obviously the sexy screen you see above. A few nips here, and a few tucks there, and I was done.

One thing to be aware of is the sample, and the GPS Application it stands on top of are great base applications to build almost any GPS application you can think of.

There is nothing stopping any of you from taking this and creating your own .NET Application of the Day. And if you do let me know and I'll mention your application.

Download executable: gpsCompass.cab

Download Source Code: gpsCompass.zip

Feedback

We only have 27 days left for you to submit your idea, or even your .NET [Windows Mobile] Application of the day.


Wednesday, June 04, 2008 00:06:44 (Eastern Standard Time, UTC-05:00)  #    Comments [6]  |  Trackback
Tuesday, June 03, 2008

image Lou Vega, leader of the Charleston, SC .NET User's Group, asked me if he could be the VB .NET Editor for 30 Days of .NET. Again my goal is to make this as much of an open forum as possible. Since its hard to do that with one person, and Lou totally rocks, I said of course, thank you!

Basically Lou is going to take up the task of converting each of the applications to VB .NET. This is a huge boon for the community. If you are a VB .NET programmer and you want to do Windows Mobile development you will quickly discover that only something like 1 in 10 examples are done in VB .NET, if that many. And outside of Microsoft almost all content is done in C#.

I understand the decision Microsoft made. Basically most Windows Mobile developers, at least in the early days, had a background in C++ and usually Win32 programming. Microsoft wanted to cater to these developers, and win them over for the success of the platform. Also, with a new platform guidance is very important. If there was a budget for 10 tutorials that year, then if they were split between C# and VB .NET, there would only be about half as many such examples.

The choice was made to make more examples that could help beginner developers all the way to advance developers, versus having to cut out a lot of material. And trust me in the early days you needed as much help as possible because if you were doing any out of the norm it could be just a little rough. Today things are so much better, if you want to do something it is usually simple and direct.

So with that out of the way let me officially welcome Lou Vega into his new position, and offer him my sincerest thanks. Great idea Lou!


Tuesday, June 03, 2008 03:00:47 (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback

Today, Page Brooks was telling to me about a limitation with his Windows Mobile device. His device's battery isn't powerful enough for him to be able to leave his Bluetooth radio on all day. But he really wants to be able to use his Bluetooth headset while he is driving to work in the morning, and on the way back home in the afternoon. One requirement he has is he doesn't want to have to look at the screen to accomplish this.

It would have been real easy to create a Bluetooth Toggle application that simply takes the current state of the Bluetooth radio and toggles it from on to off, and vice versa. Instead, I've decided to build a simple Bluetooth Manager application that will provide our readers with the code needed to create the Bluetooth Toggle application. My hope is that someone from the community will take this code and help Page out.

Technically I make some special "modifications" to the application that should help Page get by for the time being. When the application first starts, it toggles the Bluetooth radio mode. And I added a timer that will begin an auto shutdown after the program has been running for 1 minute. All Page needs to do is assign the application to a spare hardware key and then when he press that key it will toggle the Bluetooth radio on and off, and after 1 minute it will auto shutdown.

So according to Minutes to Midnight I have 2 hours, 21 minutes, and 6 seconds left to make today's application. So let's get on with the show.

 

image

Bluetooth Manager

This application came about due to a reader's request. So be sure to submit your ideas for applications. I strongly favor working on user submitted ideas over my own.

I always like an application to have a little eye candy, and that explains the interactive Bluetooth logo at the top of the screen. It is in color when the Bluetooth is enabled, and grayscale when Bluetooth is off. Clicking the Bluetooth logo toggles the Bluetooth radio from on to off.

I added a multiline textbox so users could see a history of Bluetooth radio state changes. There are buttons to allow users to directly turn the Bluetooth radio on and off.

One caveat is that this uses P/Invoke to access the Microsoft Bluetooth stack dlls.

Here are the calls:

   [DllImport("BthUtil.dll")]
   private static extern int BthGetMode(out RadioMode dwMode);

   [DllImport("BthUtil.dll")]
   private static extern int BthSetMode(RadioMode dwMode);

Also, we had to take advantage of State and Notification Broker API. Here's why: if the state of the Bluetooth radio were to change due to an action outside of our program we wouldn't know about it. That's where SNB API comes in. It allows us to subscribe to notifications for almost any event that we are interested in. The code is below.

   SystemState bluetoothStatePowerOn = new SystemState(SystemProperty.BluetoothStatePowerOn);
   bluetoothStatePowerOn.Changed += new ChangeEventHandler(bluetoothStatePowerOn_Changed);

   void bluetoothStatePowerOn_Changed(object sender, ChangeEventArgs args)
   {
       UpdateScreen();
   }

 

The last thing to check out is the auto shutdown code: it's simple but works great. There is a timer that waits for 1 minute to pass, and then there is a loop for the count of ten, which uses a Thread.Sleep(1000) to pause the application for 1 second each iteration of the loop. This creates a great effect that keeps the user from thinking the application has crashed.

Download executable: bluetoothManager.cab

Download Source Code: bluetoothManager.zip

[Be sure to check out the C++ Edition of 30 Days of Windows Mobile Applications]

Feedback

28 days left to go, and so far we had one idea submitted for an application. Keep them coming. So what do you guys think? Is the format working for you? Any ideas on what we can improve?

 


Tuesday, June 03, 2008 01:01:13 (Eastern Standard Time, UTC-05:00)  #    Comments [6]  |  Trackback
Monday, June 02, 2008

One goal I have for the "30 Days of .NET" series is that I write each application on the day I publish it. That really doesn't leave me any room to spare. I'm not sure I can do it, but that's part of the fun and challenge. I do have a life. And between family, friends, career, hobbies, and dreams, there isn't as much time in day as I would like sometimes. One thing that would be useful for me is to know how much time left I have in day to complete that day's application.

“When you can measure what you are speaking about, and express it in numbers, you know something about it; but when you cannot express it in numbers, your knowledge is of a meager and unsatisfactory kind; it may be the beginning of knowledge, but you have scarcely in your thoughts advanced to the state of science.“
- Lord Kelvin (William Thomson)

 

image

Minutes to Midnight 

Simple, simple application, but I would say it is useful. At first I just had it say 2 hours, 45 minutes, and 38 seconds remaining. But I decided that was too simple. I decided to use progress bars, because it adds a visual element that gives the application a little, let's call it, "weight".

Then I looked at the application and felt it looked a little sterile, aka dull, dull, dull. I decided the answer was to add some color. I did this by going to http://www.colourlovers.com/ and browsing their color palettes. I was even able to search color palettes by using the color of the progress bar, which I got by doing a screen capture and getting the hex color from Paint .NET.

I didn't take me long to notice I had an issue. From my point of view, it's subjective, the progress bar wasn't right. progressBarHours.Value = timeSpan.Hours; needed to be progressBarHours.Value = 24 - timeSpan.Hours;. Once I did this it was working like I wanted it to.

I wasn't thrilled with the top progress bar. It was meant to show the total remaining time left in the day, but I didn't have room for another label. But there is a saying, "The perfect is the enemy of the good." I think of this as, if you follow the road to Perfect forever, you may never get to Good. If Another reason to use the color scheme to help break the form into logical sections: yes, there is method to my madness, well, at least sometimes.

The only other thing I had to handle was total minutes left. Depending on the math, it would sometimes display "X.666666666 of 1440 total minutes left". Fortunately, there is an easy fix for this, custom numeric format strings: timeSpan.TotalMinutes.ToString("#.0").

Download Executable: minutes2Midnight.cab

Download Source Code: minuates2Midnight.zip

[Be sure to check out the C++ Edition of 30 Days of Windows Mobile Applications]

 

 

 

Feedback

Ok guys, I really need everyone's help here. I need some ideas for applications to write for the next 29 days. I have some, but I could use more. Also I'd love to hear your thoughts on how we make this series even better. I always open to ideas, and suggestions so please feel free to let me know what you think, because if I think it is a good idea I will do it.


Monday, June 02, 2008 00:48:15 (Eastern Standard Time, UTC-05:00)  #    Comments [3]  |  Trackback
Sunday, June 01, 2008

image Over the years, I have given many presentations on developing Windows Mobile applications. One thing that I have heard time and time again is that people have a hard time writing their first mobile application. I think sometimes people have a hard time taking those first steps. It is easy to think that it will take too much time, and that it will be too hard. But that is simply not the case.

But instead of telling people, I'm going to show them how easy it really is. The key here is simple: "Taking baby steps is better than taking no steps at all!"

I plan on writing 30 mobile applications in the next 30 days. I will publish both the executable and the source code for each application.

My goal is for each of these applications to be useful, interesting, and straight-forward. Someone considering writing their first Windows Mobile application should be able to look at these applications and "get it".

If you search, you can find tons of simple code to do specific tasks, like playing a message beep. You can even search and find code for fully developed applications, but these are too advanced for many developers, first starting out. What you'll have a harder time finding are simple applications, with source code, that can be the building blocks for new developer's understanding of mobile development. It's my hope that in the next 30 days I can do something to help with that.

Feedback

Please consider this entire series an open forum. I'd love to hear what you think, and what you want. Do you think this will help new mobile developers? Are you a new to mobile development? If so, what would most help you "get it"?


Sunday, June 01, 2008 03:00:35 (Eastern Standard Time, UTC-05:00)  #    Comments [7]  |  Trackback
Wednesday, May 21, 2008

image

http://www.tcspromo.com/developercontest/

You could WIN $25,000 and a Mobile Game Developer Contract.

The AT&T Developer Program, devCentral, has partnered with Windows Mobile, HTC and mobile game distributor, I-play, to bring you the AT&T Game Development Contest for Windows Mobile. Show us what you've got and have the chance to win $25,000 cash and a distribution contract. Other prizes include $5,000 cash for runners-up.

Key Dates

  • Deadline for submission: July 31st, 2008, 12 am (EST)
  • Winner announcement at CTIA in San Francisco: September 10-12, 2008

 

PRIZES:
ONE (1) GRAND PRIZE: The Grand Prize Winner will receive:
a. the opportunity for a mobile game distribution contract with I-play on I-play's standard terms (subject to the game meeting I-play's quality assurance requirements; any distribution is subject to the conclusion of a standard publishing and distribution agreement between I-play and grand prize winner);
b. the opportunity for placement (as determined by Sponsor) of game on the games portal on AT&T Media Mall, subject to Sponsor's determination of appropriateness in its discretion;
c. $25,000 (US);
d. a trip for winner and guest to the CTIA conference in San Francisco (September 10-12, 2008);
e. the announcement and recognition of Grand Prize Winner at the CTIA conference;
f. passes for winner and guest to PDC;
g. security and certification signing waivers;
h. an HTC Mobile Phone
The total approximate retail value ("ARV") of Grand Prize is $30,000, depending on location of winner's residence, departure times and any airfare fluctuations.
TWO (2) FINALIST PRIZES: The remaining two (2) finalists will each receive:
a. $5,000 (US);
b. a trip for runner-up and guest to the CTIA in San Francisco (September 10-12, 2008);
c. passes for runner-up and guest to PDC;
d. security and certification signing waivers;
e. an HTC Mobile Phone
The ARV of each Finalist Prize is $10,000, depending on location of winner's residence, departure times and any airfare fluctuations.
Trip for Grand Prize Winner and each Finalist Prize consists of: round-trip, economy-class air transportation for two (2) between the major airport with regularly scheduled flights closest to the winner's permanent residence (as determined by Sponsor in its sole discretion) and San Francisco, CA; (b) two (2) nights standard hotel accommodations (one double occupancy room and room tax only) in San Francisco area; (c) ground transportation to/from hotel and airport. Ground transportation may be provided in lieu of air travel if winner resides within 100 miles of San Francisco, CA. If winner is a resident of a jurisdiction that deems him/her to be a minor, parent/legal guardian must travel as the allotted guest. If guest is a resident of a jurisdiction that deems him/her to be a minor, he/she must be accompanied by his/her parent/legal guardian, and such person must pay his/her own expenses unless he or she is the winner. Winner and guest must travel on same itinerary on dates to be designated by Sponsor. All incidental expenses and taxes not specified herein will be the sole responsibility of the winner and his/her travel companion, including without limitation other ground transportation, food, and beverages. Winner and guest will be responsible for all applicable travel and other insurance, all applicable airport charges including without limitation, any excess baggage charges, airport taxes, and tickets are not transferable, refundable or redeemable. Sponsor will not replace any lost or stolen tickets, travel vouchers or certificates. Once booked, no change, extension, or substitution of trip dates is permitted, except by Sponsor at its sole discretion. If the CTIA conference is postponed or canceled, remainder of prize will be awarded as total prize.
Ten (10) SEMI-FINALIST PRIZES:
a. Entry into Microsoft WM Beta Developer Program;
b. WM Certification Waivers
The ARV of each Semi-Finalist Prize is $500.

Wednesday, May 21, 2008 03:00:52 (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback

Theme design by Jelle Druyts

Pick a theme: