Friday, May 08, 2009

image

What is this?
  • The Mobile Camp Atlanta 2009 is an (un)conference event with people interested in the Windows Mobile, Google Android, Palm Pre and Blackberry.

    On July 18th, this ad hoc event will be created organically by the participants in a BarCamp-style format. It will likely cover topics such as mobile app development, demos, game creation, strategies, technologies, techniques, mobile solutions, successes & failures and just about everything orbiting around the mobile universe.

image

 


Friday, May 08, 2009 12:00:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback

Facebook for your Windows Mobile 6 phone

Download Cab File

Easy to type mobile URL:

http://tinyurl.com/wmfbcab

New from Windows Mobile: a Facebook application for your phone! Download the new Facebook application for Windows Mobile and:

  • Send messages to any of the people in your Friends list.

  • Take pictures and videos on your phone, then upload them right to Facebook.

  • Send messages or call people in your Friends list.

  • Manage your profile and post anytime, anywhere.

Keep up with the latest news and posts with Facebook on your phone. Now your status updates can be up-to-the moment accounts of what you’re doing. Photos and videos are about as close to live-action as you can get. Show your friends what you’re up to, while you’re out and about.
Connecting and sharing on Facebook just got a lot livelier!

image image

image image


Thursday, May 07, 2009 11:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
Thursday, May 07, 2009

 

Peter Nowak has published a complete library on CodePlex for creating Managed Services for Windows Mobile.

Project Description

This lightweight library contains functionality for creating Windows like Services in managed code, as creating Windows Services in Windows Mobile/Windows CE isn't supported. The library is compatible with the .NET Compact Framework 2.0 and higher.

Details

The .NET Compact Framework doesn't offer any functionality for creating Windows Services in full managed code, as like on the .NET Framework. Therefore this library enables creating Service in managed code to be like Windows Services as near as possible.
This library bases on Pavel Bánský's blog post, on how to create Services in Windows Mobile in managed code.

Features

  • Easy to use library in managed code. No P/Invoke required.

Managed Services for Windows Mobile Managed Services for Windows Mobile


Thursday, May 07, 2009 3:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
Sunday, March 29, 2009

Here are the slide decks from my recent presentations. There were a few requests for theses so I wanted to make them available publically.

Learn how to program and sell Windows Mobile applications online. The first part of presentation will be an overview of Windows Mobile programming, focused on making developers aware of the capabilities of modern Windows Mobile devices and the latest version of the .NET Compact Framework to created advanced mobile user experiences. The second part of the presentation will be focused on different approaches to publish and distribute our creations online to the world.

Windows Mobile Marketplace

image

Creating Advanced Mobile User Experiences

image


Sunday, March 29, 2009 4:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
image

Many of us love programming innately. It’s almost in our DNA. Some of my first programming experiences were on a used Commodore 64 that we picked up at a local garage sale. It didn’t come with any software, so if I wanted it to do anything it was up to me to make that happen. It was a lot of work, but it really was a lot of fun for me too. Later I move to QuickBasic, then to Visual Basic, and on and on from there.

I was the only developer who got his start with the Commodore 64. I guess you could consider the Commodore 64 to have used a “Rapid Application Development” programming language, but really it was a “Fun Application Development” language, and I think that went a long way to winning me over.

Most modern programming languages today are about rapid application development, this might help to keep current developers productive, but what will bring in tomorrow’s developers? What is today’s “Fun Application Development” language?

I think Microsoft’s Small Basic is a great answer to that question.

image

Small Basic

Small Basic Blog

Small Basic is a simple and easy programming language with a friendly environment that provides a cool and fun way of learning programming. From making turtles animations to running a slide show on the desktop, Small Basic makes programming natural and effortless.

  • Small Basic derives its inspiration from the original BASIC programming language, and is based on the Microsoft .NET platform. It is really small with just 15 keywords and uses minimal concepts to keep the barrier to entry as low as possible.
  • The Small Basic development environment is simple, yet provides powerful modern environment features like Intellisense™ and instant context sensitive help.
  • Small Basic allows third-party libraries to be plugged in with ease, making it possible for the community to extend the experience in fun and interesting ways.

Sunday, March 29, 2009 3:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
Monday, March 09, 2009

What do you do when you have over 863 seriously advanced stored procedures you need to update as soon as possible?

I don’t know about you but here is what I would do. I would download Redgate’s SQL Refactor.

Working with legacy SQL code means untangling someone else's coding format and quickly interpreting the purpose of the script. SQL Refactor provides a range of one-click features that instantly make legacy code as easy to work with as your own, including Layout SQL, Summarize Script, Encapsulate as a New Stored Procedure, and many more.

image
  • Update all dependant objects when you rename tables, views, and procedures
  • Expand wildcards and qualifying object names to improve quality and performance
  • Summarize complex SQL scripts
  • 11 refactorings in total
  • Smart column rename for views and tables
  • Smart parameter rename for procedures and functions
  • Split Table, can also create referential integrity tables
  • Uppercase Keywords
  • Summarize Script
  • Expand Wildcards in SELECT statements
  • Qualify Object Names
  • Find Unused Variables and Parameters
  • Encapsulate As New Stored Procedure
  • Smart Rename, for objects

  • Monday, March 09, 2009 3:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Sunday, March 08, 2009

    Yesterday, I did a presentation at the Roanoke Code Camp 2009. As promised here is the PowerPoint file, and follow up material.

    Creating Advanced User Experiences for Windows Mobile (200)

    Description:
    Ready to take your mobile applications to the next level? Learn how to create exciting modern user experiences for Windows Mobile. First we'll review good, bad, and ugly of Windows Mobile user interfaces, and then we will explore different ways we can create mobile user interfaces that will thrill our users. This talk is for developers who are new to mobile development as well as programmers with some experience who want to learn new ways to make their apps shine.

    PowerPoint: Creating Advanced User Experiences for Windows Mobile.pptx

    Screenshots:

    Screenshot 01 - Title

    Screenshot 02 - Ribbon UI 

    Screenshot 03 - Windows Mobile UI

    We had a good turn out for the presentation, pretty much a full room. And we had a great open conversation about creating modern Windows Mobile user experiences.


    Sunday, March 08, 2009 3:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [3]  |  Trackback
    Friday, January 23, 2009

    Want a netbook? Have a Windows Mobile device? Check out Redfly.

    image image

    Redfly Mobile Companion

    Redfly Mobile Companion

    This Redfly Smartphone Terminal lets you use your smartphone like a laptop with its 8" screen and full keyboard. Redfly links to your smartphone via a USB cable or wireless Bluetooth connection and extends the Windows Mobile interface to a more convenient and capable environment. This Redfly Smartphone Terminal lets you use your smartphone like a laptop with its 7" screen and full keyboard. Redfly links to your smartphone via a USB cable or wireless Bluetooth connection and extends the Windows Mobile interface to a more convenient and capable environment.
    image image

    Redfly Smartphone Dock

    Redfly PC Software

    The Redfly Smartphone Dock will be a table-top adapter with VGA, mouse, and keyboard ports for smartphone applications. It will allow users to connect their Windows Mobile device to an external display, keyboard and mouse. The PC Software will function like a software version of this company's Smartphone Terminal. It will allow users to connect their Windows Mobile device to a laptop or netbook and access the smartphone's software and data with a large screen and regular keyboard.

    Friday, January 23, 2009 5:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [1]  |  Trackback
    Thursday, January 22, 2009
    image

    Here’s a great article on how to use Windows Media Center with Windows Mobile to do some really cool stuff.

    You end up with being able to sync recorded items off your Windows Media Center and watch them on your Windows Mobile phone!


    Thursday, January 22, 2009 5:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Wednesday, January 21, 2009

    Qik enables you to share moments of your life with your friends, family and the world - directly from your cell phone!

    Keep your world in the know, share a laugh, tell engaging stories. Just point your cell phone and stream video live to your friends on Twitter, Facebook, Blogs, etc. OR use your cell phone like a camcorder and stream hours and hours of video without worrying about storage on your cell phone.

    image

    Check to make sure your phone is supported.


    Wednesday, January 21, 2009 5:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Tuesday, January 20, 2009

    image It's a new era for radio. Personalized, mobile, and free.

    Pandora Radio is your own FREE personalized radio now available to stream music on your Windows Mobile handset. Just start with the name of one of your favorite artists, songs or classical composers and Pandora will create a "station" that plays their music and more music like it.

    Already a Pandora user? Even easier. Just sign in. Pandora on Windows Mobile is fully integrated with Pandora on the web. Enjoy all your existing stations - and create new ones right from your Windows Mobile handset.


    Tuesday, January 20, 2009 5:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback

    image

    Rob Tiffany has announced, the Mobile Application Architecture Guide – Patterns & Practices.

    The guide's chapters include:

    • Ch 01 > Mobile Application Architecture
    • Ch 02 > Architecture and Design Guidelines
    • Ch 03 > Presentation Layer Guidelines
    • Ch 04 > Business Layer Guidelines
    • Ch 05 > Data Access Layer Guidelines
    • Ch 06 > Service Layer Guidelines
    • Ch 07 > Communication Guidelines
    • Ch 08 > Deployment Patterns

    Our goal is to empower our Windows Mobile developer community as much as possible, and while this guide may seem like it's targeted exclusively to developers, I ensured that the IT Pro side of the house is accommodated as well.  Mobile infrastructure elements of this guide include System Center Mobile Device Manager (Deployment), SQL Server (Sync Services + Merge), IIS (Web Services + Sync + WCF), Exchange (WCF Store and Forward) and Active Directory (Auth).


    Tuesday, January 20, 2009 5:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Monday, January 19, 2009

    Microsoft Tag creates unlimited possibilities for making interactive communications an instant, entertaining part of life. They transform physical media (print advertising, billboards,product packages, information signs, in-store merchandising, or even video images)—into live links for accessing information and entertainment online.

    With the Microsoft Tag application, just aim your camera phone at a Tag and instantly access mobile content, videos, music, contact information, maps, social networks, promotions, and more. Nothing to type, no browsers to launch!

    image


    Monday, January 19, 2009 5:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Sunday, January 18, 2009

    Be sure to upgrade to the latest version of Live Search for Windows Mobile.

    • Enhanced Locate Me. The Live Search Home screen includes a Locate Me control that works both on GPS-enabled phones and without GPS.
    • Bird’s Eye View. This cool new map view shows a low-level, three-dimensional perspective of a location
    • Predictive text in the search control

    • Enhanced Locate Me.

    live_road_locateme

    • Bird’s Eye View

    live_bird_office

    • Predictive Text

    live_predict_hobby


    Sunday, January 18, 2009 5:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Saturday, January 17, 2009

    image

    It’s time to install the MVP Global Summit Countdown Sidebar Gadget.

    MVP Summit 2009

    Microsoft will host the 2009 MVP Global Summit March 1-4, 2009 at the Washington State Convention and Trade Center in Seattle, and at Microsoft headquarters in Redmond, Washington.

    MVP Award recipients are invited to attend the MVP Global Summit, one of the largest multiday Microsoft MVP events. At the MVP Global Summit, MVPs receive access to exclusive technical content, participate in direct feedback sessions, and meet with Microsoft executives, product teams, and their peers from around the world. Microsoft executives and employees welcome MVPs to the Global Summit at Microsoft headquarters in Redmond, Washington and in Seattle. The MVP Global Summit features more than 400 technical sessions in which MVPs can connect with other MVPs, build relationships with Microsoft experts, and provide real-world insights and feedback to Microsoft product teams.


    cool | MVP | personal
    Saturday, January 17, 2009 5:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Tuesday, January 13, 2009

    Date: Tuesday, January 13th, 2009

    Speaker: Chris Eargle

    Topic: The Future of Managed Code
    Tuesday, January 13th, 2009, is the next meeting of the Pee Dee Area .NET User Group.

    Newly minted C# MVP, Chris Eargle, will discuss the future of managed code.  How will your code look next year? This presentation is a demonstration of the new capabilities found in C# 4.0 and VB 10.0 using the Visual Studio 2010 CTP. Learn about the new features in each language, how they are converging, and what sets them apart.

    Chris Eargle
    Chris Eargle is a Microsoft Most Valuable Professional – Visual C# and an independent consultant in the Columbia, SC metro area.  He is currently working as a software architect on the South Carolina Integrated Tax System with Revenue Solutions, Inc. Chris is the president of the Columbia Enterprise Developers Guild and is a Microsoft Certified Technology Specialist in ASP.NET
    Web Site: www.kodefuguru.com

    Here is the tentative schedule:
    6:00 PM - 6:20 PM Socializing / Free Dinner
    6:20 PM - 6:30 PM Introduction, Sponsor Time, and News.
    6:30 PM - 8:00 PM Presentations


    Tuesday, January 13, 2009 5:43:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Monday, December 08, 2008

    Today, users expect advanced user interfaces, and powerful user experiences on mobile devices. In order to meet these expectations, we need to take advantage of advance graphics techniques. The most of common of which is alpha blending.

    Here is some information I have gathered on various ways to do alpha blending on Windows Mobile devices.

    Alpha Mobile Controls

    http://www.codeplex.com/alphamobilecontrols

    AlphaMobileControls is a .NET Compact Framework 2.0 API offering WinForm Controls for Windows Mobile 5 or 6 able to handle images with alpha channel and alpha blending.

    image     image

    Chris Lorton’s Blog

    http://blogs.msdn.com/chrislorton/default.aspx

    There are two ways to do alpha blending in WM5: the AlphaBlend() function and with the Image COM object in the Imaging API.

    Chris has a great post on how to take advantage of alpha blending in .NET Compact Framework.


    Monday, December 08, 2008 5:00:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [1]  |  Trackback
    Saturday, December 06, 2008

    As a mobile developer, I often find myself in the situation where I have an image that I want to use, but it is not the exact size, or even aspect I need it to be.

    Most of the time I can get by using Paint .NET to resize images. Paint.NET is a free image and photo editing program. If you don’t have it, download it. It rocks!

    image

     

     

     

     

     

     

     

     

     

     

     

     

     

    But sometimes it doesn’t matter what I do, I can’t get the image to the size I need. I have tried all of these resizing options:

    • Best Quality Resampling
    • Bicubic Resampling
    • Bilinear Resampling
    • Nearest Neighbor
    • Maintain Aspect Ration On and Off
    • Changing the Canvas Size manually to help things along

    But again, sometimes it doesn’t matter what I do. I understand “Garbage In, Garbage Out”. I just hate it when I have “Awesome In, Garbage Out”.

     

    Recently, I heard about Seam carving, or content aware image resizing as it is sometimes called. This is so smart, brilliant even.

    Seam carving is an image resizing algorithm developed by Shai Avidan and Ariel Shamir. This algorithm alters the dimensions of an image not by scaling or cropping, but rather by intelligently removing pixels from (or adding pixels to) the image that carry little importance.

    Now we know what the problem is, and we have learned about a great possible solution to this common problem, all that is left is to learn how to perform Seam Carving on our images. And that’s where SEAMonster comes in.

     

    image

     

     

     

     

     

     

     

    Download: Mike Swanson's Blog : SEAMonster: A .NET-Based Seam Carving Implementation

    image

     

     

     

     

     

     

     

     

     

    Here is a sample image that has been resized using both Bicubic and Seam Carve techniques. Notice how the Seam Carved version still has all the important “data”, and how Bicubic just squished everything equally?

    I saw where Photoshop CS4 was adding Seam Carving, and there is a online flash implementation here: http://rsizr.com/


    Saturday, December 06, 2008 10:40:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [1]  |  Trackback
    Wednesday, November 12, 2008

    image The Raleigh Code Camp is coming this weekend and you don’t want to miss out.

    Details:

    ECPI College of Technology
    4101 Doie Cope Rd.
    Raleigh, NC 27613-7387

    Directions:

    Http://maps.google.com/....

    Information Link:

    http://www.ecpi.edu/

    Location: ECPI

    image

    Here are just some of the great sessions you can see there:

    Session Titles

    • Ocean
    • Introduction to Entity Framework
    • Wildcard Searches in SharePoint
    • SSIS
    • Much Ado About the DLR
    • Essential Web Services
    • LINQ to SQL
    • Getting Down and Dirty with SharePoint Branding
    • Building Reports in SQL Server Reporting Services 2008
    • An Introduction to Castle ActiveRecord, or Stop Writing CRUD
    • Design Principles
    • Something Silverlight
    • Automation with MSBuild 3.5 and Team Build 2008
    • Spice Up User Experience With Silverlight 2.0
    • HttpRuntime.Cache Management and Thread Safety
    • Back to the Basics: Developing SharePoint Features
    • Care and Feeding of TempDB
    • Bending the Asp.Net MVC to do Your Bidding, the Virtues of Extensibility 
    • Creating Custom Templatable Controls in Silverlight
    • 0wn Your Phone
    • Integration SQL Server 2005 Reporting Services with SharePoint
    • Turning the Ship: Getting a Traditional Organization to Adopt Agile Practices
    • SOA: Building the Arch
    • Introduction to the Microsoft Synchronization Services for ADO.NET
    • Extending the mobile experience for your existing website
    • Integrating ASP.NET Dynamic Data into Existing Web Applications & Websites
    • Using WaTiN for GUI based testing in Visual Studio
    • Implementing Microsoft Virtual Earth in Your ASP.NET Applications
    • Mixing Static and Dynamic .NET Languages
    • XNA Game Studio 3.0
    • Microsoft and Ruby Sittin' In a Tree
    • Integrate ASP.NET 2.0 application (FBA Management) with SharePoint 2007

    Wednesday, November 12, 2008 2:50:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Tuesday, November 11, 2008

    msdnRoadshow MSDN Southern Fried Roadshow - December 2008 Edition

    The MSDN Southern Fried Roadshow is a free developer event with a southern flair, where you will learn about some of the latest developments in Microsoft technologies. For December, 2008 the Roadshow will be presented by Architect Evangelist Chad Brooks and Developer Evangelists Glen Gordon and Brian Hitney. Chad, Glen & Brian will be loading up a minivan with lots of goodies, and trying to hit 4 cities in North Carolina and South Carolina in 4 days.

    • Take a tour of Microsoft’s cloud computing platform and the services that make it easy to give your applications the most compelling experiences and features.  Explore the journey a developer takes, from writing a service to launching that service in the cloud. Learn about the cloud services that enable developers to easily create or extend their applications and services.
    • Microsoft Silverlight 2 provides a powerful platform for building the next generation of rich interactive applications on the Internet. In this session, we take a look at the programming model and tools that developers and designers can leverage to build these true next-generation experiences for consumers and business, and demonstrate building a rich interactive application (RIA) using Silverlight and Microsoft .NET.
    • ASP.NET is evolving a very rapid pace, come explore all the latest features of ASP.Net such as Dynamic Data, MVC, and even take a sneak peak at the upcoming features in ASP.NET 4.0!  We’ll look at some new features such as taking control of your Control IDs, using the DynamicImage control, and ViewState management options.   We’ll spend plenty of time talking about MVC and creating applications based on this framework, so if you’re wondering how to leverage MVC in your web applications, this talk is for you!

    We will also feature local speakers from each of our stops delivering short talks at the beginning of the Roadshow. These Homegrown Nuggets will sure be tasty!

    Every attendee will receive a free MS Press book on Silverlight 2 (while supplies last) as well as pointers to tons of resources for further learning. Register today using the links below.  Each day begins at 9 AM and goes until 3 PM. In keeping with our theme, a nice Southern fried lunch will be served.


    cool | PDANUG
    Tuesday, November 11, 2008 1:00:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Wednesday, August 13, 2008

    image_thumb204Live Search Mobile is like the Swiss Army knife of Windows Mobile apps. Or maybe it is more like having your own butler ready to take care of just about anything you need. About the only thing it won’t do for you is drive your car. Who knows, maybe the next version. Open-mouthed

     Local information and navigation

    • Find local businesses and restaurants, and click to call them
    • Get turn by turn driving directions
    • Explore interactive maps with satellite imagery
    • View current traffic information and find cheap gas1 stations
    • See movie show times by theaters

    image

    Web search from any phone with Internet access

    • Search the full Web
    • Find the latest news items
    • Search images and photos
    • Get instant answers for weather, stocks, maps, etc

    image

    Easy to use, and optimized for your phone

    • Choose the customized version that’s best for your phone
    • Speak your questions—no need to type
    • Browse business listings by categories
    image
    Wednesday, August 13, 2008 4:18:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Saturday, August 09, 2008

    image_thumb14

    I wanted to add an application I was working on to my Windows Vista’s System Tray. This is one of those things that is completely trivial once you already know how to do it. It’s actually easy enough that most people find their way thorough it on their own, eventually.

    Here’s a quick cheat sheet, if you will, that will show you everything you need to know so you can “knock em out da box”, Luke. Smile

    First, you’ll need to add a NotifyIcon to the form.

    image

    Here are the key parts of the NotifyIcon we will be concerned with:

    NotifyIcon.Text: Gets or sets the ToolTip text displayed when the mouse pointer rests on a notification area icon.

    NotifyIcon.Icon: Gets or sets the current icon.

    NotifyIcon.DoubleClick: Occurs when the user double-clicks the icon in the notification area of the taskbar.

    NotifyIcon.ContextMenu: Gets or sets the shortcut menu for the icon.

    The DoubleClick event is a good place to add logic to open a main form, and the ContextMenu allows the NotifyIcon to almost be an application on its own.

    Note:

    You can change the NotifyIcon’s Icon at runtime as a way to alert users to various things happening.

    It’s good to set any forms in the application to ShowInTaskbar = false. This helps keep clutter out of the user’s taskbar.


    Saturday, August 09, 2008 4:43:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Wednesday, August 06, 2008

    imageI’ve added UserVoice to my Web site. This is to allow all my readers an opportunity to engage with each other, and to help determine “Where we will go tomorrow”.

    What is UserVoice?

    image

     

     

     

     

     

    Here are some suggestions to get things started:

     

    But what about you? What do you really want? Where to you want to go tomorrow?

    Note: You don’t have to join or sign up for anything to add suggestions or vote on suggestions.

     

    image

    image

    image

    image

     

     

     

     

     

     

     

    UserVoice also has great RSS feeds:

    image

     

     

    I also added the feedback tab widget, see below, to allow easy access to the feedback feature:

    image


    Wednesday, August 06, 2008 4:12:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Saturday, August 02, 2008

     

    Superman don't need no seat belt. [Comment to flight attendant, who replied, 'Superman don't need no airplane, either.']

    - Muhammad Ali

    image

    I’m not sure exactly how long I’ve been on Twitter, but it is a decent bit. I know I am the 7943052 member to join, because that is my user id, and Twitter uses a simple auto-incrementing integer to assign member ids. You can find your user id, by checking the RSS link at the bottom of your Twitter home page. Here’s mine:

    http://twitter.com/statuses/friends_timeline/7943052.rss

    image

    Feel free to follow me on Twitter if you like:

    image http://twitter.com/CJCraft

     

    Not too long after joining, I decided I wanted to use a client application to access Twitter instead of the Web page. I decided to use Twhirl.

    image

    It’s a great little app, and it really does a great job of solving the “Accessing Twitter on the Desktop” problem. The only problem I have with it is for some reason after a certain amount of time passes the application disappears, and its tray icon disappears as well.

    This has been really bothering me for a couple months now, and I haven’t been able to find a great solution for it. Up until now my solution has been to open the Windows Task Manager, and kill the process and restart it manually myself. This always works but is a bit of a pain, and means I could miss messages since client Twitter applications can only pull messages so far back.

    I decided it was finally time to do something about this problem, or either find a new Twitter client.

    After a little research, here is what I learned:

    I learned on GetSatisfaction.com that this was a fairly common problem, and there wasn’t a great known solution for how to fix it, except on a Mac.

    Apparently this an issue with Adobe Air and not Twhirl directly.

    It amused me the solution was to right click the tray icon and select “Reset Windows”. Too bad I can’t see the tray icon on my system, lucky Mac users with your visible invisible icons.

    People must REALLY like Twhirl because one user rebooted their computer 20 times, and then reformatted their disk to get Twhirl again, and they were upset with Adobe for this.

    Here’s how to fix it

    I decided to try Process Explorer. I had a feeling it would have an option to help me make the invisible visible again.

    Process Explorer Official Overview

    “Ever wondered which program has a particular file or directory open? Now you can find out. Process Explorer shows you information about which handles and DLLs processes have opened or loaded.

    The unique capabilities of Process Explorer make it useful for tracking down DLL-version problems or handle leaks, and provide insight into the way Windows and applications work.”

    image

    Process Explorer is to Windows Task Manager what Superman is to Clark Kent. In other words, it's the bomb. It’s actually useful.

    All I had to do once I had Process Explorer installed and running was find and right click twhirl.exe, then click Window, and Bring to Front.

    If you click on the Process Explorer image it will open a larger full sized version.

     

     

     

     

     

    I hope this helps others in their fight to be able to use Twhirl once again. I only wished I had picked up my boxing gloves sooner. Hope to see you on Twitter soon!

     

    He who is not courageous enough to take risks will accomplish nothing in life.

    - Muhammad Ali


    cool | humor | personal | windows
    Saturday, August 02, 2008 5:18:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback

    imageYou’ve probably figured out by now that I’m a big fan of keyboard shortcuts. And you probably know that I present at a lot of user groups and code camp, sometimes I even present on keyboard shortcuts. Recently I learned about some PowerPoint keyboard shortcuts that I didn’t already know and I decided to share them with my readers, since many of you also use PowerPoint to do your presentations.

    Here are what I consider the “Top 10 PowerPoint Keyboard Shortcuts”:

    Action Shortcut
       
    Start Presentation from the Beginning F5
    Next Animation / Next Slide N or Enter or Spacebar
    Previous Slide P or Backspace
    End Slide Show Esc
    Go to First Slide Home
    Go to Last Slide End
    Jump to Specific Slide Enter slide number and press enter
    Go to Black Screen B
    Go to White Screen W
    Display Slide Show Cheat Sheet F1 (see below)

     

    Built-in PowerPoint Slide Show Cheat Sheet (Press F1 during Slide Show)

    image


    cool | INETA | miscellaneous | MVP | PDANUG | personal
    Saturday, August 02, 2008 4:54:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Friday, August 01, 2008

    I thought it would be useful if I did a recap of all of the 31 tips and tricks from the 31 Days of Visual Studio Tips & Tricks. I hope it helps. I’ll post a follow up with all the user submitted tips soon!

    Here’s the download link for the for the complete PowerPoint:

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx

     

    PowerPoint Slide

    Keyboard Shortcut

    image

    Day 1

     

    Show Shortcut Keys

    image

    Day 2

    Open Smart Tag

    Ctrl + .

    Open Smart Tag

    Ctrl + Shift + F10

    image

    Day 3

    Navigate Forwards

    Ctrl + –

    Navigate Backwards

    Ctrl + Shift + -

    image

    Day 4

     

    Tools, Options…, Display Line Numbers

    image

    Day 5

     

    Cycle Clipboard Ring

    Ctrl + Shift + V

    image

    Day 6

     

    Go to Definition

    F12

    image

    Day 7

     

    Go to Line

    Ctrl + G

    image

    Day 8

    Vertical Block Selection

    Alt + Mouse

    Shift + Alt + Right Arrow

    image

    Day 9

    View Properties Window

    F4

    View Properties Window

    Alt + Enter

    image

    Day 10

    Comment Selection

    Ctrl + K, Ctrl + C

    Uncomment Selection

    Ctrl + K, Ctrl + U

    image

    Day 11

     

    Toggle Code / Design Views

    F7

    image

    Day 12

    Make Lowercase

    Ctrl + U

    Make Uppercase

    Ctrl + Shift + U

    image

    Day 13

     

    Incremental Search

    Ctrl + I

    image

    Day 14

     

    Ctrl + Tab Navigator Window

    Ctrl + Tab

    image

    Day 15

     

    View Object Browser

    Ctrl + Alt + J

    image

    Day 16

     

    Delete Line

    Ctrl + L

    Shift + Delete

    image

    Day 17

     

    Add New Item to Project

    Ctrl + Shift + A

    image

    Day 18

     

    Close Current Document

    Ctrl + F4

    image

    Day 19

     

    Toggle Breakpoint

    F9

    image

    Day 20

     

    Find All References

    Shift + F12

    image

    Day 21

    Move Cursor One Word Right

    Ctrl + Right Arrow

    Move Cursor One Word Left

    Ctrl + Left Arrow

    image

    Day 22

     

    The Rename Refactor

    Ctrl + R, R

    image

    Day 23

     

    Find All References

    Shift + F12

    image

    Day 24

     

    Format Document

    Ctrl + K, Ctrl + D

    image

    Day 25

     

    View Task List

    Ctrl + \, Ctrl + T

    image

    Day 26

     

    Find in Files

    Ctrl + Shift + F

    image

    Day 27

     

    Toggle Outlining Expansion

    Ctrl + M, Ctrl + M

    image

    Day 28

     

    Close All Documents

    Alt + W, L

    image

    Day 29

     

    Save Any Output Window

    Ctrl + S

    image

    Day 30

     

    Build Solution

    Ctrl + Shift + B

    image

    Day 31

     

    Reset Window Layout

    Alt, W, R


    Friday, August 01, 2008 4:15:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback
    Thursday, July 31, 2008

    image

    image

     A place for everything, everything in its place.
    Benjamin Franklin

     

     

     

     

     

     

    Many times I find that throughout my word day I have move and resized many of the various elements in the Visual Studio IDE. I might have expanded my properties windows, in order to see more of the property name. And I might have end up needing to shrink my toolbox window so I could see more of my code on the screen at one time. But sometimes you just want to hit reset and have everything go back to where it belongs.

    Reset Window Layout

    Alt, W, R

    Note: The preceding image will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Thursday, July 31, 2008 4:25:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Wednesday, July 30, 2008
    image

    I came, I coded, I compiled. If only Julius Caesar had been a developer, maybe Duke Nukem Forever would be released by now. So you made a quick change and need to build the solution as fast as possible and get it to the QA department now. What is the fastest way to do this?

    Build Solution

    Ctrl + Shift + B

    Note: The preceding image will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Wednesday, July 30, 2008 4:48:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback

    image Pretty cool tip I learned about today on Digital Inspiration.

    Vista SP1 is a BIG update, and it does not remove any of the files it replaces. This is because Vista SP1 allows you to uninstall Vista SP1, and rollback to your previous version of Vista. Unless you are Chuck Norris, I have a feeling you aren’t going to even consider this. So why not reclaim this 800+ megabytes worth of hard drive space?

    Windows Vista SP1 Clean Up Tool

    Go to the command prompt, and simply enter the following: vsp1cln.exe. It is fast, and I’ve tried it on several machines so far.

    image

    Here’s the official Microsoft TechNet documentation

    Windows Vista SP1 File Removal tool (Vsp1cln.exe). Vsp1cln.exe is an optional tool that you can run after you install SP1. This tool removes older versions of components that have been updated in SP1, which are stored during the installation in case you need to uninstall SP1 later. Saving these older components increases the amount of disk space that is used. Typically, you should run Vsp1cln.exe if you want to reclaim this disk space after applying SP1 and if you will not need to uninstall SP1. Note, however, that you cannot uninstall SP1 after you run this tool. You can use this tool both online and offline, but you must have SP1 installed and you must use the correct version of the tool. If you are running this file on an offline image, you should use the Vsp1cln.exe included in the Windows OPK or AIK. However, if you are running this file online (on a computer that you are booted into), you should use the Vsp1cln.exe file located at %windir%\system32\vsp1cln.exe.

    Hope it helps!


    Wednesday, July 30, 2008 4:25:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback
    Tuesday, July 29, 2008

    image

    Output is pretty much the bread and butter of any application. Visual Studio has a whole window that is dedicated to dealing with various trace information. Sometime we would like to be able to save and view this information later or in another utility. But it is a real pain to do this process manually. There has to be an easier way…

    Save Any Output Window

    Ctrl + S

    Note: The preceding image will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Tuesday, July 29, 2008 4:16:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Monday, July 28, 2008

    imageSo you have all kinds of windows and documents open in Visual Studio, everything from form designers to XML editors. Now you want to close everything and start something else, and you’re in a big hurry. What do you do?

    Close All Documents

    Alt + W, L

    Note: The preceding image will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Monday, July 28, 2008 4:06:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Sunday, July 27, 2008

    One of the things I really like about working for ACS Technologies is we create software solutions for almost every OS platform out there. We are mostly a Microsoft shop, which is a perfect fit for me, but because we write solutions for churches and schools many of our products also work with other OS platforms. Really puts me in a great position to see the good and the bad for various solution platforms whether it is Windows Mobile, the iPhone, OS X, ASP .NET, and so on. I love it.

    I while back I could resist picking up a used Apple PowerBook off eBay for a deal. I’ve been playing with it off an on since then and it's not all bad. One thing I have been disappointed with is until recently I haven’t been able to figure out how to connect to my laptop remotely from one of my other PC’s. Today I decided I would solve this problem.

    Here’s the way I found to allow Remote Desktop Administration of an Apple from a PC:

    Apple PC

    Go to System Preferences, then open Sharing, in the Internet & Network section.

    image

    Enable Screen Sharing, and click Computer Settings…, make sure to enable “VNC viewers may control screen with password: ********”, and to assign a strong password. This is what will actually allow you to connect to your Apple PC.

    image

    Go to System Preferences, then open Network, in the Internet & Network section.

    image

    Locate your IP Address, probably want to either the Ethernet one or the AirPort one. You’ll use this to find your Apple PC.

    image

    Windows PC

    You’ll need to download a VNC client, I recommend TightVNC, it is free, proven, and I like how it works. After that just run your VNC client, use your Apple PC IP address from above, along with your password from above and your golden.

    image


    Sunday, July 27, 2008 4:11:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    image

    Visual Studio allows developers to collapse code into regions, and so on. Sometimes this is helpful, sometimes not so much. But with the power of Visual Studio keyboard shortcuts we can make it less troublesome to manage this feature.

    Here’s how:

    Toggle Outlining Expansion

    Ctrl + M, Ctrl + M

    Note: The preceding image will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Sunday, July 27, 2008 3:55:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Saturday, July 26, 2008

    imageIt does take long to have a ton of code on your hands, especially when you need to find something in a hurry. What can we do? Do we have a chance? How can we best find something in all of our solutions files?

    Here’s how:

    Find in Files

    Ctrl + Shift + F

    Note: The image above will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Saturday, July 26, 2008 4:36:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Friday, July 25, 2008

    image

    So, how long is your task list? Do you have a ton of TODO’s? Did you know you can use Visual Studio to track your TODO’s in a task list? All you have to do is mark each TODO as follows:

    // TODO: this is an example of something I really need to do

    If you do this you can see your TODO’s in Visual Studio Task List dialog, which you can always pull up with the following keyboard shortcut:

    View Task List

    Ctrl + \, Ctrl + T

    Note: The image above will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Friday, July 25, 2008 4:33:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback
    Thursday, July 24, 2008

    Have you ever gotten code from someone or somewhere and you were not “thrilled” with how it was formatted. Was it just formatted wrong? Then the “Format Document” keyboard shortcut is for you! It will take the file you have open and format all the code until it is valid. Personally I wish their was a “Format Document for Chris Craft” keyboard shortcut because Visual Studio is a lot more forgiving than I am. But that’s okay it is still a life saver and you will love it one day when it just make the code better, all in one simple keyboard shortcut.

    Format Document

    Ctrl + K, Ctrl + D

    Note: The image above will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)

    image


    Thursday, July 24, 2008 4:36:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Wednesday, July 23, 2008
    image

    Screen real estate is always in short demand. Give us more monitors, give us bigger monitors. What would you say if you could have more screen real estate for coding with a single keyboard shortcut? You can, it is easy. All you have to do is the following:

    Toggle Full Screen Mode

    Shift + Alt + Enter

    Note: The image above will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Wednesday, July 23, 2008 6:17:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback
    Tuesday, July 22, 2008
    image

    So is the event’s status Status.Cancelled or Status.Canceled? It is very possible one person will ask that it be changed to “Canceled” only to have another person ask to change it back to “Cancelled”. Instead of wrestling with the code or wearing our your “Find and Replace” feature, take advantage of one of Visual Studio’s features: The Rename Refactor. All you have to do is select an object and use its keyboard shortcut:

    The Rename Refactor

    Ctrl + R, R

    Note: The image above will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Tuesday, July 22, 2008 4:21:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Monday, July 21, 2008
    image

    How often do you want to move across one of your lines of code? Every day? Every hour? More? I’m sure it is often. And I hope you know and use this shortcut since it will save you lots of effort ever time you use it. Try it today, I bet you’ll love it.

    Move Cursor One Word Right

    Ctrl + Right Arrow

    Move Cursor One Word Left

    Ctrl + Left Arrow

    Note: The image above will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Monday, July 21, 2008 6:38:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Sunday, July 20, 2008

    image

    Let’s say you have a customer class. You know this class is used throughout your solution, but you aren’t sure exactly where it is being used. How can you quickly and easily find out this information?

    All you have to do is use “Find All References”, either use the right-click menu item or even better use this keyboard shortcut:

    Find All References

    Shift + F12

    Note: The image above will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Sunday, July 20, 2008 12:30:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Saturday, July 19, 2008

    image If you ever find yourself debugging a program by stepping through various classes, methods, and lines of code, the toggle breakpoint keyboard shortcut will be there to assist you. As you are stepping through the code and hit various breakpoints or potential breakpoints a simple single key press is all it takes to either add or remove that line of code from your list of breakpoints.

    Toggle Breakpoint

    F9

    Note: The image above will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Saturday, July 19, 2008 6:24:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Friday, July 18, 2008
    image

    Today’s tip is an interesting one. Do you know how to close an application window in Windows? Usually you can press Alt + F4. Visual Studio has similar feature, that comes in handy. The close current document keyboard shortcut works on most documents irregardless of whether they are in code view or design view. Quite useful and allows yours hands to spend more time on the keyboard and less time moving the mouse around everywhere.

    Close Current Document

    Ctrl + F4

    Note: The image above will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Friday, July 18, 2008 6:13:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Thursday, July 17, 2008
    image

    Solutions have more and more projects these days, and projects have more and more files. If you are working on a large enterprise level line of business application then you really might want to consider today’s Visual Studio keyboard shortcut. Admit it, you’ve probably added hundreds of file using the mouse and massaging various Visual Studio menus and toolbars. But after today you will probably have a new, better way of doing the same thing. How cool is that?

    Add New Item to Project

    Ctrl + Shift + A

    Note: The image above will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Thursday, July 17, 2008 6:46:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Wednesday, July 16, 2008
    image

    So everyday you possibly write hundreds, maybe thousands, of lines of code. Some of them are perfect, and will continue on to have a long productive life. Others however will be found wanting.

    It it for these inadequate lines of code that the delete line keyboard shortcut was designed to deal with. And deal with it does. Instead of having to select a line, or multiple lines, you can simple use the delete line shortcut and wipe away the current line, or the currently selected lines.

    Delete Line

    Ctrl + L

    Note: The image above will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Wednesday, July 16, 2008 3:46:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [4]  |  Trackback
    Tuesday, July 15, 2008

    image

    Visual Studio’s Object Browser is a powerful tool that can help developers to better “see” and understand their projects, and projects they may be working with.

    Here’s what Visual Studio’s help says about it:

    The Object Browser lets you select and examine the symbols available for use in projects. You can open the Object Browser from the View menu, or by clicking the Object Browser button on the main toolbar.

    There are three panes: an Objects pane on the left, a Members pane on the upper right, and a Description pane on the lower right. If you resize the Object Browser into a single column, the Objects pane moves to the top, the Members pane to the middle, and the Description pane to the bottom.

    View Object Browser

    Ctrl + Alt + J

    Note: The image above will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Tuesday, July 15, 2008 11:21:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Monday, July 14, 2008
    image

    A great feature of Windows is the Alt + Tab navigator window. It allows user to quickly toggle between running applications. And Visual Studio has it’s equivalent of this Windows feature. This allows you to see and to navigate Active Tool Windows and Active Files. And you can see a thumbnail of the selected item.

     

    Ctrl + Tab Navigator Window

    Ctrl + Tab

    Note: The image above will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Monday, July 14, 2008 6:48:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback
    Sunday, July 13, 2008

    image

    There is search, and then there is search. So in the beginning we had Quick Find: Ctrl + F. Quick Find worked fine, but wasn’t perfect. For one thing, Quick Find bring up a dialog that always automagically end up covering the most critical sections of your code, always. It has a LOT of options: where to look, match case, match whole word, search up, search hidden text, use regular expressions, and more. In other words, it is a bit unwieldy to use in simple day-to-day searches. I’m sure there are situations where people really need to have two-handed swords, but most of us are happy to make dinner with a simple kitchen knife.

    That’s where the keyboard shortcut for incremental search comes in. It is great. No massive dialogs to get in the way. If you have already used Firefox’s incremental search feature then you are familiar with how easy and powerful this method is. If not, fire up Visual Studio now and give it a try. You have a real treat in store for you.

    Incremental Search

    Ctrl + I

    Note: The image above will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Sunday, July 13, 2008 6:39:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback

    imageI noticed today that Twitter has been very stable lately. Actually, I really hadn’t noticed any downtime in almost a week. I decided to check http://status.twitter.com/ and find out if this is true. From what I saw, there has only been 104 minutes of unscheduled down time in the first 11 days of July. That’s less than 10 minutes of downtime a day. Good job, guys!

    Twitter really has a lot of potential to bring people together by making us more transparent to each other. For example, if you only know me from my blog, then there is a lot about me that you don’t know. Friend and family know me in some ways, and coworkers know me in some ways. Depending on what I decided to share on Twitter, my friends and family can learn a lot more about what I am working on at work, and my coworkers can learn a lot more about what is going on at home. All of this in easy to digest 140 maximum character messages.

    My Twitter URL: @CJCraft

    As much as I like what Twitter can do, it wasn’t long ago that I was become very irritated with the frequent “Twitter Blackouts” that were occurring on an almost daily basis. A lot of people were considering leaving Twitter, and the thought crossed my mind a couple times. I was really started to get frustrated with Twitter, and I wasn’t the only one:

    imageWithout Twitter many people had to resort to drastic measures to fill the void. One poor soul even had to the leave the side of his computer, and actually build a real life version of the Twitter Fail Whale.

    Others made online portals dedicated to the phenomena: http://failwhale.com/

    And to top it off, you can even follow the Fail Whale on Twitter: @FailWhale 

     

    Yeah, I “failed” for it too. I couldn’t resist, so I made a Twitter imagephoto mosaic that is composed from all the friends pictures of the top 100 most popular Twitter users. 

     

     

     

    Resources I used in creating: Too Many Tweets: A Twitter Photo Mosaic.


    cool | humor | personal
    Sunday, July 13, 2008 4:45:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback
    Saturday, July 12, 2008

    imageIt is kind of funny how a feature that is easily argued as unnecessary and  superfluous can be a feature you find yourself using over and over. That’s exactly the kind of feature the Make Lowercase and Make Uppercase keyboard shortcuts are for Visual Studio. It might not be a feature you even use every day, but when you do finally end up needing this one it is such an incredibly useful feature.

    Don’t believe me? How long would the following have taken to do by hand?

    it is kind of funny how a feature that is easily argued as unnecessary and  superfluous can be a feature you find yourself using over and over. that’s exactly the kind of feature the make lowercase and make uppercase keyboard shortcuts are for visual studio. it might not be a feature you even use every day, but when you do finally end up needing this one it is such an incredibly useful feature.

    IT IS KIND OF FUNNY HOW A FEATURE THAT IS EASILY ARGUED AS UNNECESSARY AND  SUPERFLUOUS CAN BE A FEATURE YOU FIND YOURSELF USING OVER AND OVER. THAT’S EXACTLY THE KIND OF FEATURE THE MAKE LOWERCASE AND MAKE UPPERCASE KEYBOARD SHORTCUTS ARE FOR VISUAL STUDIO. IT MIGHT NOT BE A FEATURE YOU EVEN USE EVERY DAY, BUT WHEN YOU DO FINALLY END UP NEEDING THIS ONE IT IS SUCH AN INCREDIBLY USEFUL FEATURE.

    That’s the power of a good shortcut. Quick, simple, and powerful!

    Make Lowercase

    Ctrl + U

    Make Uppercase

    Ctrl + Shift + U

    Note: The image above will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Saturday, July 12, 2008 4:19:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Friday, July 11, 2008

    image

    Here’s another powerful tip. Almost every application has a UI, and these days most applications have a rich UI. Its a lot easier to work with an advanced UI in an UI design editor. But it’s a lot easier to do something in a code editor. So what’s a developer to do?

    You can always tell a keyboard shortcut is powerful and important when it is given a single key.

    Toggle Code / Design Views

    F7

    Note: The image above will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Friday, July 11, 2008 4:28:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback

    image

    This one is huge. You really need to learn this one, if you don’t already know and use it. Anytime you are working with code you, you will need to comment parts of and uncomment parts of it. It is just a part of a developer’s life. The mechanic will get his hands dirty, the carpenter will get splinters, and the developer will comment and uncomment code.

    I guess the worst way you could comment and uncomment your code is to type it all by hand. Next worse would be to use the mouse and go to Edit menu, Advance menu item, then click Comment Selection or Uncomment Selection. Another option that is to use the Text Editor Toolbar (see below).

    image

     

     

    A little better I guess is to use the keyboard accelerator shortcut: Alt, then E, then V, then M for (Comment Selection), or E for (Uncomment Selection).

    That’s four okay ways of comment and uncommenting your code, but what is the best way?

    Comment Selection

    Ctrl + K, Ctrl + C

    Uncomment Selection

    Ctrl + K, Ctrl + U

    Note: The image above will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Friday, July 11, 2008 1:52:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Wednesday, July 09, 2008
    image

    This Visual Studio window is so import it has two keyboard shortcuts. Can you guess what window it is? That’s right: it’s the Visual Studio Properties window.

    So how many different ways can you come up with to open this window?

    View Properties Window

      • Use the mouse and show / hide the window
      • Use the keyboard accelerators: Alt, then V, then W
      • Use the Design View keyboard shortcut: Alt + Enter
      • Use the keyboard shortcut: F4

    Note: The image above will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Wednesday, July 09, 2008 7:20:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback

    imageMicrosoft Word has two “interesting” features. One feature is you can generate random text, for example, =rand(3) will generate three random paragraphs of text. The other feature is that Word allows you to make what I like to call “Vertical Block Selections”. See the following picture for an example of both.

    Pretty cool, huh? And did you know you can make vertical block selections in Visual Studio? Here’s how:

    Vertical Block Selection

    Alt + Mouse

    image

    Note: The images above and to the right will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Wednesday, July 09, 2008 12:34:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback
    Monday, July 07, 2008

    image So a couple days ago we covered how to display line numbers:

    31 Days of Visual Studio Tips & Tricks – Day 4: Display Line Numbers”.

    So now how can we take this one step further. How about an easy way to go to a specific line of code? Think about how often as a developer you need to find a line in a large file of code. Sometimes you find out there is an error on a certain line of code and instead of scrolling down to this line manually you could use a special keyboard shortcut.

    Go to Line

    Ctrl + G

    Definitely one of my favorite keyboard shortcuts for Visual Studio.

    Note: The image to the right will take you to a full size image if you want to see this in more detail.

    Feedback:

    If you have a favorite Visual Studio Tip or Trick be sure to share it in the comments. I’ll compile a list and post it for everyone once there are enough.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Monday, July 07, 2008 4:59:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Friday, July 04, 2008

    It is Independence Day today in the US, and we’re in Washington, D.C. imageto see us some awesome fireworks!

    Since today is July, 4th, and we are on Day 4 I figured it would be good to do a VSTT that dealt with numbers. The best one I know is how to display line numbers in Visual Studio:

    Display Line Numbers:

    Go to the Tools menu, then click on the Options… menu item. Find the Text Editor item in the list on the left. Then I recommend choosing All Languages. Next find and check the Line Numbers checkbox in the Display section on the right.

    The image to the right will take you to a full size image if you want to see this in more detail.

    Feedback:

    Alright, we’ve more reader submitted tips.  Thanks guys. Yeah, we are now tied. score: Me 4 / Readers 4.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Friday, July 04, 2008 10:18:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback
    Thursday, July 03, 2008

    imageOne of the best features most Internet browsers have is the ability to navigate backwards, and forwards, through your history of Web site pages you have visited. Don’t you wish you had this feature in Visual Studio? Well, you do. Here’s how you do it.

    One option is to go to Visual Studio’s View menu and choose either Navigate Forward or Navigate Backward. An even more handy method is to use the following keyboard shortcuts:

    Ctrl + – and Ctrl + Shift + –.

    One cool thing about the way Visual Studio does this is that it will navigate backwards through different parts of Visual Studio, everything from forms you’ve open to code you’ve worked, and more.

    Feedback:

    Alright, we’ve had one reader submitted tip.  Thanks D1eg0. So far I still have the lead. score: Me 3 / Readers 1.

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Thursday, July 03, 2008 3:34:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [4]  |  Trackback
    Tuesday, July 01, 2008

    image

    With most things there are two ways to learn them: the easy way, and the hard way. Visual Studio 2008 is know exception. One option, the hard way, is to spend all of your precious time learning and memorizing hundreds of Visual Studio shortcut key combinations.

    Quick, what is the shortcut to perform an incremental search, or to convert selected text to lower case, or to comment a selection of code? Everyone one of these has a handy shortcut key combination. Do you know them all? If not, did you know Visual Studio has a feature you can enable so that it will show you, or maybe I should say teach you, the shortcut keys for most commonly accessed menu and toolbar items?

    It is called “Show shortcut keys in Screen Tips”. You have to enable “Show Screen Tips on toolbars” for this feature to work. Both items are located on the same screen for easy access.

    Here’s what you need to do:

    • In Visual Studio go to Tools, and then Customize….
    • This will open the Customize dialog where you will now need to check both the “Show shortcut keys in Screen Tips” and “Show Screen Tips on toolbars” checkboxes.

    From now on when you use Visual Studio it will display shortcut key combinations on menus and toolbar tooltips whenever you use them.

    If you’ll click on the included image, you will see a larger more detailed screenshot of the areas discussed.

     

    Feedback:

    Do you have a favorite Visual Studio 2008 tip or trick? Then tell us all about it in the comments section. I’m keeping score: Me 1 / Readers 0. Don’t let your teammates down. :D

     

    PowerPoint: 31 Days of Visual Studio 2008 Tips & Tricks.pptx (Note: PowerPoint is updated daily to include new items.)


    Tuesday, July 01, 2008 10:42:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [1]  |  Trackback

    imageI’ve committed myself to taking the knowledge I have learned, over the years, and sharing it more with others. Last month I did 30 Days of .NET Windows Mobile Applications, and this month I intend to do 31 Days of Visual Studio 2008 Tips & Tricks.

    The material will come from a presentation I have given many times at different code camps and user groups. One of the goals of the series is to start a “conversation” with my readers. I want to share some of my best tips and tricks for Visual Studio, and in return I hope you’ll share some of yours with us as well.

    Another goal I have is for the information to be quick and easy to “digest” and as worthwhile as possible. Give me a few minutes every day this month, and I bet I’ll make a difference in how productive you are every day.

     

    Here’s the introduction from my Visual Studio 2008 Tips & Tricks presentation to set the stage:

    “Visual Studio .NET is filled with hundreds of features that make our lives as developers more efficient. The number of features that Visual Studio .NET contains is immense. The Visual Studio .NET Tips and Tricks presentation is a compilation of my favorite, and most popular, tips and tricks for this great IDE. Developers who are unaware of these timesaving features miss out on opportunities to increase their programming productivity and effectiveness. This Visual Studio .NET Tips and Tricks presentation is meant to explain how to use Visual Studio .NET more effectively.”


    Tuesday, July 01, 2008 10:40:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Monday, June 30, 2008

    image And there you have it: 30 .NET Windows Mobile Applications in 30 Days!

    I really liked yesterday’s application, Community Megaphone Reader. I think it was because it was a Windows Mobile mashup application. And we can look forward to many more of these types of applications to come our way.

     

    image

    Trippr

    You’ve probably already figured out what this application does. That’s right it takes your current GPS position and pulls back pictures that are geotagged for the area you are in. So while you are riding down the road you can flickrscan for photos taken near you, possibly as close as the block you are on.

    Really cool idea I think. I’ll probably hook this up to the dashboard of my car and just let it run while I drive around. It should be lots of fun to just see what I see.

    The UI is basic sterile white, but I wanted the photos to be the star of the show so I went with the one uber true neutral color.

    Control are very simple: Update, Menu, GPS, GPS Start, GPS Stop, About, and Exit. Update is the main feature. Any time it is pressed new photos are downloaded.

    Again for this project we looked to the GPS Intermediate Driver Reference, it has served us well these 30 days and I really highly recommend it. If you need to do a Windows Mobile GPS application use this and you are almost done.

    Another great API I found is the Flickr.Net API. If you need to connect to Flickr in .NET or .NET Compact Framework this is great. It does all the heavy lifting for you! I was up and running in minutes!

    “The Flickr.Net API is a .Net Library for accessing the Flickr API. Written entirely in C# it can be accessed from with any .Net language in .Net Framework 1.1, .Net Framework 2.0, .Net Compact Framework 2.0 and Mono.”

    Update Method

       1: if (gpsPosition == null || !gpsPosition.LatitudeValid || !gpsPosition.LongitudeValid)
       2:      return;
       3:  
       4:  double minimumLongitude = gpsPosition.Longitude - 1;
       5:  double minimumLatitude = gpsPosition.Latitude - 1;
       6:  double maximumLongitude = gpsPosition.Longitude + 1;
       7:  double maximumLatitude = gpsPosition.Latitude + 1;
       8:  
       9:  string apikey = "get_your_own_flickr_key";
      10:  Flickr flickr = new Flickr(apikey);
      11:  
      12:  PhotoSearchOptions options = new PhotoSearchOptions();
      13:  options.BoundaryBox = new BoundaryBox(minimumLongitude, minimumLatitude, maximumLongitude, maximumLatitude);
      14:  options.Extras |= PhotoSearchExtras.Geo;
      15:  options.PerPage = 10;
      16:  options.SortOrder = PhotoSearchSortOrder.InterestingnessAsc;
      17:  
      18:  Photos photos = flickr.PhotosSearch(options); 
      19:  StringBuilder stringBuilder = new StringBuilder();
      20:  
      21:  foreach(Photo photo in photos.PhotoCollection)
      22:      stringBuilder.AppendFormat(@"<img src=""{0}"" style=""border: 1px black solid; padding: 0px; margin: 1px"" />", photo.ThumbnailUrl);
      23:  
      24:  webBrowser.DocumentText = stringBuilder.ToString();

    Possibilities:

    Obviously this needs an auto-update feature and settings for those of use who will use it on the road. If I click on a picture I’d love to see a larger view of it as well. and a details listing telling me more about the photo would be great.

    Download executable: trippr.cab

    Download Source Code: trippr.zip

    Thank You:

    I appreciate everyone’s encouragement and feedback. This project would not have been a success without all of you. Keep an out there’s more to come in the future. Wink


    Monday, June 30, 2008 10:24:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback

    imageWe only have one more day left in our 30 days of .NET [Windows Mobile Applications]. Where do we go from here?

    I’m really happy with the 30 Days of .NET so I do think I will continue that in one format or another for some time. It’s been a blast. And everyone knows my passion for Windows Mobile programming so we keep finding way to work that in there as well.

    I haven’t quite decided what I’ll do for next month but I’m sure it’ll only get better as we move forward.

    There have been a lot of request for applications that haven’t made it on deck yet, and obviously they aren’t all going to get done tomorrow. But I think I’ll be able to throw in some Bonus Day of .NET or Return of Day of .NET and knock some of them out over time.

    My goal is to take all the existing content and clean it up some and make more through and detailed learning materials to really help beginners take off with Windows Mobile.

    Hope you’ll join me on the road ahead…


    Monday, June 30, 2008 1:10:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [1]  |  Trackback

    Wow, it’s hard to believe the month is almost over already. So far we have 29 applications done in 29 days! Thank you for all your encouragement.

    If you missed the week one recap here it is: 30 Days of .NET [Windows Mobile Applications] - Week One.

    If you missed the week two recap here it is: 30 Days of .NET [Windows Mobile Applications] - Week Two.

    If you missed the week three recap here it is: 30 Days of .NET [Windows Mobile Applications] - Week Three.

    What’s your favorite?

    image image  image image
    GPS Clock MobileInfo Mobile Flashlight SmartDial

    Let see we have a time utility, and device information, call blocker, and lots more!

    image image image image_thumb15[4]
    GeoCash Repeatr CallBlocker What will be next?

    Feedback:

    Got an idea? Got some feedback? Share it? Thanks!


    Monday, June 30, 2008 12:06:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [1]  |  Trackback

     imageA friend, a coworker, and an all-around great guy, Page Brooks, has created a contest for building controls for Silverlight.

    Here’s the highlights:

    "Welcome to the Silverlight Control Builder Contest! With this contest, we hope to incite the development of many open and free Silverlight Controls that all developers can use in their applications, and what better way to do this than through a friendly contest! This contest is your chance to demonstrate your control building skills to the Silverlight community and win some pretty cool prizes at the same time!"

    Check out the prizes:

    1st Place

    • 1-Year MSDN Premium Subscription (Not for Resale)
    • Your choice of one book from the entire O'Reilly catalog

    2nd Place

    • Microsoft Visual Studio 2008 Standard Edition
    • Your choice of one book from the entire O'Reilly catalog

    3rd Place

    • Essential Silverlight 2 Up-to-Date from O'Reilly
    • Your choice of one book from the entire O'Reilly catalog

    Great opportunity to build a little fame and win some great prizes. Find out more after the jump: http://gosilverlight.org/


    Sunday, June 29, 2008 11:52:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback

    Only One Day Left…

    Not too long ago Page Brooks and myself made the three and a half hour drive from Florence, SC to Greensboro, NC to attend the Ineta Carolina Community Leadership Summit '08. This was a great event and there we meet a lot of the local Ineta user group leaders. We also meet Andrew Duthie, aka DEvHammer. One issue that rose to the top of things we wanted to work on improving at the leadership summit was awareness of events that are occurring in the local regional area. That’s when Andrew told everyone about the project he has been working on: Community Megaphone.

    I love have information at my fingertips, so I decided to write a tie-in application:

    image

    image

    Community Megaphone Reader

    Basically, this application connects to the Community Megaphone RSS feed and pulls down event data. Then it takes your current GPS position and calculates your distance from each event. Finally, it takes all the events and sorts then so you can find the event that is the closest to you. This is a great application for the traveling .NET geek. Where ever you are you can find great .NET events to attend.

    The UI is paying homage to Andrew’s Community Megaphone site. I tried to match the basic colors to keep it familiar. The hyperlinks are active and will take you the event’s page on Community Megaphone. The menu only has a few options: Refresh, About, and Exit.

    An application like this is really exciting, because it is tying the world of mobile together with the world wide web.

    These types of mashup applications will contitue to take of for years.

    LoadRss Method

       1: public static DataSet LoadRss(string requestUriString)
       2: {
       3:     HttpWebRequest feed = HttpWebRequest.Create(requestUriString) as HttpWebRequest;
       4:     StreamReader streamReader = new StreamReader(feed.GetResponse().GetResponseStream());
       5:  
       6:     string rssXml = streamReader.ReadToEnd();
       7:     rssXml = rssXml.Replace(@"<?xml version=""1.0"" encoding=""utf-8""?>", string.Empty);
       8:  
       9:     StringReader stringReader = new StringReader(rssXml);
      10:  
      11:     DataSet dataSet = new DataSet();
      12:     dataSet.ReadXml(stringReader);
      13:  
      14:     return dataSet;
      15: }

     

    GetEvents Method

       1: public static List<Item> GetEvents(DataSet dataSet, GpsPosition gpsPosition)
       2: {
       3:     List<Item> items = new List<Item>();
       4:  
       5:     foreach (DataRow dataRow in dataSet.Tables["item"].Rows)
       6:     {
       7:         Item item = new Item();
       8:         item.Title = (string)dataRow["title"];
       9:         item.Description = (string)dataRow["description"];
      10:         item.Link = (string)dataRow["link"];
      11:         item.PublishDate = DateTime.Parse((string)dataRow["pubDate"]);
      12:         item.Latitude = Double.Parse((string)dataRow["lat"]);
      13:         item.Longitude = Double.Parse((string)dataRow["long"]);
      14:  
      15:         if(gpsPosition.LatitudeValid && gpsPosition.LongitudeValid)
      16:             item.Distance = GeoCodeCalc.CalcDistance(gpsPosition.Latitude, gpsPosition.Longitude, item.Latitude, item.Longitude);
      17:  
      18:         items.Add(item);
      19:     }
      20:  
      21:     items.Sort(delegate(Item item1, Item item2)
      22:     {
      23:         return item1.Distance.CompareTo(item2.Distance);
      24:     });
      25:  
      26:     return items;
      27: }

    Display Events Method

       1: public static string DisplayEvents(List<Item> events)
       2: {
       3:     StringBuilder stringBuilder = new StringBuilder();
       4:  
       5:     foreach (Item item in events)
       6:     {
       7:         stringBuilder.Append(@"<span style=""color: #FFFFFF;font-weight:bold;"">");
       8:         stringBuilder.AppendFormat(@"<a href=""{0}"" style=""color: #DBB94F;"">{1}</a><br/><br/>", item.Link, item.Title);
       9:         stringBuilder.AppendFormat(@"{0}<br/><br/>", item.Description);
      10:         stringBuilder.AppendFormat(@"<b>Distance: <span style=""color: #DBB94F;"">{0} miles</span></b><br/>", item.Distance.ToString("0.00"));
      11:         // stringBuilder.AppendFormat(@"<b>{0}</b><br/>", item.PublishDate);
      12:         // stringBuilder.AppendFormat(@"{0}<br/>", item.Latitude);
      13:         // stringBuilder.AppendFormat(@"{0}<br/>", item.Longitude);
      14:         stringBuilder.AppendFormat(@"<br/><br/>");
      15:         stringBuilder.Append(@"</span>");
      16:     }
      17:  
      18:     return stringBuilder.ToString();
      19: }

    Possibilities:

    Andrew recently added iCalendar file support to Community Megaphone. This would be a great feature to add to a Windows Mobile application, and it is totally doable. The HTML could be a little more fancy maybe even use a few 16x16 fonts for a little personality.

    Download executable: communityMegaphoneReader.cab

    Download Source Code: communityMegaphoneReader.zip

    Feedback:

    Want more? What else would you like to see? Time’s running out only one more day. Be sure to get your ideas in soon!


    Sunday, June 29, 2008 11:31:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Thursday, June 26, 2008

    5 Days Left…

    So when you are talking Windows Mobile Applications you are usually talking about a cell phone device. We have looked at text messages using SMS, but one thing we haven’t look at so far is programmatically making phone calls. Today we will take a look at creating our own phone dialer application. It’s easier than you think!

     

    image

    SmartDial

    I think the UI is pretty nice, not the best, but good overall. It is bright and clean. I found a web site that allowed me to create buttons in a snap and used it for the numbers. At the top of the screen, I added a label to display the number to dial. The menu only has a few options: Dial, Menu, Clear, About, and Exit.

    Since we only allow users to enter numbers using our custom buttons, we don’t have to worry about anyone entering invalid characters.

    So how much code did we as Windows Mobile application developers have to write to actually dial a number? See for yourself.

       1: private void Dial()
       2: {
       3:     new Phone().Talk(labelPhoneNumber.Text);
       4: }

    Possibilities:

    I think this has the potential to be an absolutely great application. One thing I think would be cool is if the application supported skinning. In a way it does, since I decided to leave the image resources as external files to the executable. So a user could edit any of the files themselves. Another great enhancement would be to have mousedown images for each button to give a nice “animated” touch to the application. What about quick soft sounds for when each button is pressed?

    Download executable: smartDial.cab

    Download Source Code: smartDial.zip

    Feedback:

    Want more? What else would you like to see? Time’s running out on submitting ideas. Be sure to get yours in soon!


    Wednesday, June 25, 2008 11:12:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [1]  |  Trackback
    Tuesday, June 24, 2008

    Today I am in Atlanta, GA with Brian Hitney and Glen Gordon. We are presenting Mobility Roadshow: Programming for Windows Mobile. We had a long drive last night, and will have another long drive back to Florence, SC tonight. So I choose not bite off anything too intense today.

    Many people today carry mini-flashlights on the end of their key chain. Apparently there is a need for this type of device because many stores sell them near the cash registers in the checkout lines. I wonder why these mini-flashlights are so popular when almost everyone has a mobile phone today. Maybe it is because the phone’s back light is not bright enough.

    Hmm, this got me thinking. Most Windows Mobile devices have large powerful screens, maybe there is a way we could reuse our device as both a mobile phone and a mini-flashlight.

    image

    imageMobile Flashlight

    The UI is simple but the task is simple. I considered using a watermark image for the background or add a gradient to the background. With a goal of having as much of the screen as bright as possible I think the simple solid color background was the choice to make.

    We only have a few menu options: Burn, Menu, Settings, About, and Exit. I decided to use the term “Burn” like you see on road sign saying “Motorcycles must burn lights”. We only have a few screens: Main, Settings, About. The settings screen you should see to the left, and the main screen should be to the right of this text.

    On the about screen we let the user choose the color they would like the screen to “burn” at. By default we have chosen white to maximize brightness.

    We used NumericUpDown controls to maximize usability, this allows user to choose the soft input panel or the control directly to set the color amounts.

    Save Color Values

       1: int red = (int) numericUpDownRed.Value;
       2: int green = (int) numericUpDownGreen.Value;
       3: int blue = (int) numericUpDownBlue.Value;

     

    Get Color Values

       1: numericUpDownRed.Value = (int) Global.Color.R;
       2: numericUpDownGreen.Value = (int) Global.Color.G;
       3: numericUpDownBlue.Value = (int) Global.Color.B;

    Possibilities:

    The biggest need this application has is a way for the user to save their color preference. Right now if the application is closed the color will go back to the default color of white. Another great feature would be to make the application to go full screen and hide both the title bar and the menu. One last addition would be code to maximize the screen brightness setting in Control Panel.

    Download executable: mobileFlashlight.cab

    Download Source Code: mobileFlashlight.zip

    Feedback:

    Want more? What else would you like to see? Time’s running out on submitting ideas. Be sure to get yours in soon!


    Tuesday, June 24, 2008 2:46:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback

    Information is power. And with the .NET Compact Framework we can have all the information we want. Windows Mobile has many ways to get details about the device our application is running on. Hands down my favorite is the State and Notification Broker. In a word it ROCKS! You can use it to find out any number of things and you can use it to notify us when information we care about change state.

    There are pieces of information that are so important in their own right, they could be used to create an application just to monitor and read that one detail. The first one that comes to mind is battery state.

    image

    MobileInfo

    I thought of a few ways I could make this application flashy, but decided that might get in the way of the facts. Sometimes a simple notepad like application is the most beautiful application. Form and function were meant to be together, but sometimes forms steals the show, and function is what everyone came to see.

    So instead we have a WebBrowser control with a simple text listing of the device’s most important details. I decided to use a WebBrowser control in case I ever did want to use more advanced text format.

    We stick to our guns about keeping control simple and intuitive. We have a great menu with only a few options: Refresh, About, and Exit.

    RefreshData Method

       1: private void RefreshData()
       2: {
       3:     StringBuilder sb = new StringBuilder();
       4:  
       5:     sb.Append("<b>Active Application:</b>").Append("<br/>");
       6:     sb.AppendFormat("'{0}'", SystemState.ActiveApplication).Append("<br/>").Append("<br/>").Append("<br/>");
       7:  
       8:     ...
       9: }

    Possibilities:

    You can never have too much of a good thing. We have twenty pieces of information here for users to enjoy. How about a hundred? Or how about a quick and easy search bar? And the UI needs to be simple but it could be better.

    Download executable: mobileInfo.cab

    Download Source Code: mobileInfo.zip

    Feedback:

    Want more? What else would you like to see? Time’s running out on submitting ideas. Be sure to get yours in soon!


    Tuesday, June 24, 2008 2:11:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Monday, June 23, 2008

    I have put together a calendar of applications for the 30 Days of .NET [Windows Mobile Applications]. Here you can get a quick feel for all the applications we’ve created so far, and will write in the coming days.

    30 Days of .NET Windows Mobile Applications

      image_thumb[37] image_thumb[38] image_thumb[39] image_thumb[40] image_thumb[41] image_thumb[42] image_thumb[43]
    image[141] image[134] image[135] image[136] image[137] image[138] image[139] image[140]
    image[150] image[142] image[143] image[144] image[145] image[146] image[147] image[149]
    image[151] image[152] image[153] image[154] image[155] image[156] image[157] image[158]
    image[166] image[159] image[160] image[161] image[162] image[163] image[164] image[165]
    image[167] image[168] image[169]          

     

    Day 1 Minutes to Midnight Countdown
       Countdown timer until midnight.
    Day 2 Bluetooth Manager
       Utility to programmatically control Bluetooth status.
    Day 3 GPS Compass
       GPS tools to read device’s heading from device GPS.
    Day 4 Mileage Tracker
       Application that will track vehicles mileage statistics.
    Day 5 Mobile Capture
       Screenshot utility that will programmatically take screenshots on device.
    Day 6 Pocket PasswordGen
       Program generates secure random passwords.
    Day 7 Mobile FX
       Fun application that allows user to play various “situation” sounds.
    Day 8 Rotate Me
       Utility to programmatically control the device’s orientation.
    Day 9

    Mobile Tipper

       Allows users to calculate tips quickly and easily.
    Day 10 What is My IP?
       Find out the IP addresses a device has in a snap.
    Day 11 Mobile Signature
       Program that will capture signature from people in the field.
    Day 12 Mobile Quiz
       Application that is designed to display created quizzes and polls to users.
    Day 13 Pocket Death Calculator
       Fun program that will calculate how long until a user has left to live.
    Day 14 Mobile SMS Contact
       Utility to allow sending of SMS text messages to groups.
    Day 15 Mobile SMS Remote
       SMS framework and application for sending SMS commands to devices.
    Day 16 SMS Logger
       Record and log all SMS text messages received by device.
    Day 17 Lunch-O-Matic
      Take the chore out of deciding where to eat lunch today.
    Day 18 Mobile Weather
       What will the weather be like today?
    Day 19 Mobile Speedometer
       GPS utility that will obtain current speed from the device’s GPS.
    Day 20 Mobile Altimeter
       GPS utility that will read the current altitude from GPS.
    Day 21 Mobile Sketcher
       Simple but powerful drawing application for Windows Mobile.
    Day 22 GPS Clock
      GPS application that can update the device’s time from GPS information.
    Day 23 MobileInfo
      Program that will read and display device related information
    Day 24 Mobile Flashlight
      In the dark? Mobile Flashlight is here to help.
    Day 25

    SmartDial

      Want to create your phone dialing interface? Start with SmartDial.
    Day 26 GeoCash
      This application will log and track where you spend all your money.
    Day 27 Repeatr
       Miss a phone call, text message, or email. This application will remind you.
    Day 28 CallBlocker
       Tired of that annoying automated marketing call? Let CallBlocker block it.
    Day 29 Community Megaphone Reader
       Wondering where the closest developer event is to you? CMR can tell you.
    Day 30 Trippr
       Let Tripper find geotagged photos from your location on Flickr.

    Monday, June 23, 2008 12:25:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Sunday, June 22, 2008

    Yeah, we have made it through week three of my 30 Days of .NET challenge. So far, we have 22 applications for 22 days. Thanks for your support!

    If you missed the week one recap here it is: 30 Days of .NET [Windows Mobile Applications] - Week One.

    If you missed the week two recap here it is: 30 Days of .NET [Windows Mobile Applications] - Week Two.

    What’s your favorite?

    image image image image
    Mobile SMS Remote SMS Logger Lunch-O-Matic Mobile Weather

    We get around, don’t we? SMS, RSS, GPS, Camera API, and more!

    image image image image
    Mobile Speedometer Mobile Altimeter Mobile Sketcher What will be next?

    Feedback:

    Got an idea? Got some feedback? Share it? Thanks!


    Sunday, June 22, 2008 6:31:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [1]  |  Trackback

    I couldn’t resist creating another GPS related mobile application. One of the neat pieces of data you get from your GPS device is time. This is great. It is like having one of the clocks that can update itself over the air by reading data transmitted from various atomic clocks throughout the world. Many phones today have the ability to update their time by connecting to the OEM’s time servers, but not all. And there are still lots of Windows Mobile classic devices in the world that do not have cellular capabilities.

    Vista has the ability to update its time by using a feature called Internet Time. Basically Vista connects to time.windows.com and reads a Network Time Protocol server.

     

    image

    GPS Clock

    Our user interface is simple and direct. We are using a nice graphic to adds some visual zing to the application. At the top of the screen we show the user their current device time and their current GPS time.

    This allows the user to tell at a glance if they need to update their device’s time using the Update menu option.

    On the menu we have added some simple settings features: GPS Start, GPS Stop, About, and Exit.

    This is one of those Web 2.0 ideas where an application does one thing but does it very well. Sometimes these are the best apps. In this case, our application provides a bride for GPS time data to become device time data.

    Somtimes that’s all it takes to make a user happy.

    UpdateData Method:

       1: void UpdateData(object sender, System.EventArgs args)
       2: {
       3:     if (gps.Opened)
       4:     {
       5:         if (position != null)
       6:         {
       7:             if (position.TimeValid)
       8:             {
       9:                 gpsTime = position.Time;
      10:  
      11:                 labelCurrentGpsDate.Text = gpsTime.ToLongDateString();
      12:                 labelCurrentGpsTime.Text = gpsTime.ToLongTimeString();
      13:             }
      14:         }
      15:     }
      16: }

     

    UpdateTime Method:

       1: private struct SYSTEMTIME
       2: {
       3:     public short Year;
       4:     public short Month;
       5:     public short DayOfWeek;
       6:     public short Day;
       7:     public short Hour;
       8:     public short Minute;
       9:     public short Second;
      10:     public short Milliseconds;
      11: }
      12:  
      13: [DllImport("coredll.dll")]
      14: private static extern bool SetSystemTime(ref SYSTEMTIME time);
      15:  
      16: private void UpdateTime()
      17: {
      18:     DateTime idag = gpsTime.ToUniversalTime();
      19:  
      20:     SYSTEMTIME s = new SYSTEMTIME();
      21:     s.Year = (short) idag.Year;
      22:     s.Month = (short) idag.Month;
      23:     s.DayOfWeek = (short) idag.DayOfWeek;
      24:     s.Day = (short) idag.Day;
      25:     s.Hour = (short) idag.Hour;
      26:     s.Minute = (short) idag.Minute;
      27:     s.Second = (short) idag.Second;
      28:     s.Milliseconds = (short) idag.Millisecond;
      29:  
      30:     SetSystemTime(ref s);
      31: }

    Possibilities:

    How about changing the color of the date and time if they are more than five minutes off? Simple feature to add but really helps the user. And that’s what matters.

    Download executable: gpsClock.cab

    Download Source Code: gpsClock.zip

    Feedback:

    Want more? What else would you like to see? Time’s running out on submitting ideas. Be sure to get yours in soon!


    Sunday, June 22, 2008 6:16:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback

    The main goal of 30 Days of .NET was to create a series of applications, any of which, a reader could take and use as a springboard to creating their first application. Well that, and to have some fun along the way and get more people excited about mobile development. A secondary goal of mine has been to show off various capabilities of mobile devices like GPS, Bluetooth, and multimedia features. One feature we haven’t covered so far is using a built-in camera.

    Today we will mark that item off our list…

    image

    Mobile Sketcher

    The goal is to create a basic drawing application, but add a mobile twist to it. On the menu, I have added a menu item for selecting a picture using the select picture dialog. The nice thing about the select picture dialog is it allows you to use your camera to take a picture and then select it as your picture.

    In a way this application is a lot like the mobile signature capture application we did a while back, but there are some important differences: picture selection support, camera support, save file dialog support, and more. The business case for this application is something like the following: an insurance agent arrives on the scene of an automotive accident, she takes a picture using Mobile Sketcher and then adds notes and sketches to the picture for claims processing.

    So users can select a picture from their device or take a picture and use it for their background. And then they can draw and edit the picture using Mobile Sketcher. At the bottom of the screen we allow user to select different colors for the pen’s ink: red, orange, yellow, green, blue, brown, white, and black. Well okay, white is really a light gray since white on white is hard to see.

    SelectPicture Method:

       1: private void SelectPicture()
       2: {
       3:     SelectPictureDialog selectPictureDialog = new SelectPictureDialog();
       4:     DialogResult dialogResult = selectPictureDialog.ShowDialog();
       5:  
       6:     if (dialogResult != DialogResult.OK)
       7:         return;
       8:  
       9:     pictureBox.Image = new Bitmap(selectPictureDialog.FileName);
      10: }

    Possibilities:

    There is lots of room for improvement with this application. Just think of all the features most drawing programs have and there’s your list for improvements.

    Download executable: mobileSketcher.cab

    Download Source Code: mobileSketcher.zip

    Feedback:

    Want more? What else would you like to see? The managed API for using a Window Mobile camera is a great feature that is very powerful and very easy. Use it in your next mobile application or your first.


    Sunday, June 22, 2008 1:17:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Saturday, June 21, 2008

    Yesterday, I had a really hard time between choosing to do a Mobile Speedometer or a Mobile Altimeter. But another day gives us another opportunity, and today we shall create the Mobile Altimeter.

    image

    Mobile Altimeter

    This will make the third application in the 30 Days of .NET series that has had targeted GPS capabilities. We have created a compass, a speedometer, and now a altimeter. And there are still dozens of applications we could create with the GPS capabilities of Windows Mobile.

    This time I decided to a little more with the UI. We have a background that symbolizes “altitude” which is appealing to end users. Plus it gives the program a lot of style and class. On the left side of the screen if you look carefully, you will notice we have an attitude ruler, which has a marker that rises one pixel for every foot higher the device travels up to 180 feet.

    This simple feature really takes our application up to the next level. :D (Yeah, I know: I’m terrible.)

    At the bottom of the screen we are allowing the user to read all the main stats off the GPS so the application is even more useful. We show altitude in a large bold font in the middle of the screen for impact.

    The main event: UpdateData

       1: void UpdateData(object sender, System.EventArgs args)
       2: {
       3:     if (gps.Opened)
       4:     {
       5:         if (position != null)
       6:         {
       7:             if (position.SeaLevelAltitudeValid)
       8:             {
       9:                 labelAltitude.Text = position.SeaLevelAltitude.ToString("0.00ft");
      10:                 if (position.SeaLevelAltitude >= 0 && position.SeaLevelAltitude <= 180)
      11:                     pictureBoxArrow.Top = 173 - (int) position.SeaLevelAltitude;
      12:                 else
      13:                     pictureBoxArrow.Top = 173;
      14:             }
      15:         }
      16:     }
      17: }

    Possibilities:

    I think a more realistic UI would be a great improvement. And the ability to switch from miles to kilometers would be good too. If the odometer would track miles traveled that would be an awesome enhancement.

    Download executable: mobileAltimeter.cab

    Download Source Code: mobileAltimeter.zip

    Feedback:

    Want more? What else would you like to see? There’s been a lot of demand for GPS related applications. Does that help?


    Saturday, June 21, 2008 2:07:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback
    Friday, June 20, 2008

    After the last GPS related application, GPS Compass, I’ve been wanting to do another GPS focused application. This time I figured we’d get in the driver’s seat with our friend: SPEED.

    Gentlemen, start your engines…

    image

    Mobile Speedometer

    The application is built off of  Windows Mobile 6 SDK included a GPS Application in the samples folder, C:\Program Files\Windows Mobile 6 SDK\Samples\PocketPC\CS\GPS.

    This uses the GPS Intermediate Driver. If you are writing a location aware application for Windows Mobile this is definitely the way to go. ;)

    The main UI is located at the top of the screen. We have a simple speedometer graphic in the background to add some flair to the application. On top of this we overlay the current speed based off of information returned from the GPS device. We can also use Fake GPS to simulate a GPS device.

    Below this we have a readout of various GPS statistics that are updated continuously.

    One thing to note is Speed may be return in knots which you will likely want to convert to either miles or kilometers.

     

     

     

     

    We just need to create a method something like UpdateData below.

       1: void UpdateData(object sender, System.EventArgs args)
       2: {
       3:     if (gps.Opened)
       4:     {
       5:         if (position != null)
       6:         {
       7:             if (position.SpeedValid)
       8:             {
       9:                 labelSpeed.Text = (position.Speed/1.15077945).ToString("0.00");
      10:             }
      11:          }
      12:      }
      13: }

    Possibilities:

    I think a more realistic UI would be a great improvement. And the ability to switch from miles to kilometers would be good too. If the odometer would track miles traveled that would be an awesome enhancement.

    Download executable: mobileSpeedometer.cab

    Download Source Code: mobileSpeedometer.zip

    Feedback:

    Want more? What else would you like to see?


    Friday, June 20, 2008 12:53:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback
    Thursday, June 19, 2008

    How'd we make it this far without a weather application? I must admit its hard to buy anything these days that doesn’t have a weather feature built in. But does everyone understand the basic of writing such an application? That’s what we will explore today.

     

    image

    Mobile Weather

    UI is a little plain. I really think a weather application needs to have a top notch exciting UI, but we’ll keep it simple this time. We have an input section at the top that takes the user’s ZIP Code, and we have an output section at the bottom.

    In the output section we have some basic factoids like current conditions and temperature. We also have a forecast for the next day showing date, description, with high and low temperature. And finally we have a graphic to add a little something to an otherwise drab application.

    How did we mine this information. Basically I connected to a public weather RSS feed that takes zip code as an URL parameter, using an HttpWebRespone object. I then parsed out the data I need using regular expressions.

    There are other ways of doing this type of thing, but I thought this would allow us to use a lot of neat Window Mobile technologies we haven’t explorer before.

    Our friend the HttpWebResponse:

       1: private void RefreshData()
       2: {
       3:     string lcUrl = "http://weather.yahooapis.com/forecastrss?p=" + textBoxZipCode.Text.TrimEnd();
       4:  
       5:     // *** Establish the request 
       6:     HttpWebRequest loHttp = (HttpWebRequest)WebRequest.Create(lcUrl);
       7:  
       8:     // *** Set properties
       9:     loHttp.Timeout = 10000;     // 10 secs
      10:  
      11:     // *** Retrieve request info headers
      12:     HttpWebResponse loWebResponse = (HttpWebResponse)loHttp.GetResponse();
      13:  
      14:     Encoding enc = Encoding.GetEncoding(1252);  // Windows default Code Page
      15:  
      16:     StreamReader loResponseStream = new StreamReader(loWebResponse.GetResponseStream(), enc);
      17:  
      18:     string lcHtml = loResponseStream.ReadToEnd();
      19:  
      20:     RefreshScreen(lcHtml);
      21:  
      22:     loWebResponse.Close();
      23:     loResponseStream.Close();
      24: }

     

    Last but not least the Regex object:

       1: string conditionsEx = @"<yweather:condition  text=""(?<desc>[^@]+)""  code=""(?<code>[^@]+)""  temp=""(?<temp>[^@]+)""  date=""(?<junk>[^@]+)"" ";
       2:  
       3: Regex regEx = new Regex(conditionsEx);
       4:  
       5: Match m = regEx.Match(input);
       6:  
       7: if(m.Success)
       8: {
       9:     desc = m.Groups["desc"].Value;
      10:     temp = m.Groups["temp"].Value;
      11: }

    Possibilities:

    The UI needs more polish, but it is useable. There is even more data in this RSS feed than I’m exposing so that is another way to expand on this project and make something awesome.

    Download executable: mobileWeather.cab

    Download Source Code: mobileWeather.zip

    Feedback:

    How could we make this application even better? Share your ideas with the community.


    Thursday, June 19, 2008 1:59:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Wednesday, June 18, 2008

    Being a geek, I have a lot of geek friends. Being friends, we tend to eat lunch together. The only problem is sometimes we have a hard time deciding where to go to eat lunch. This invariably leads to the “Where do you wanna eat?”, “I dunno, where do you wanna eat go?”, “It doesn’t matter to me, you decide.” Well here is a simple solution to this daily dilemma:

     

    image

    Lunch-O-Matic

    Our UI has just enough class to be exciting and interesting, yet simple enough not to cause us too much grief. Seek balance in all things. The concept: restaurant logos flash across the screen, eventually stopping on the chosen food establishment. The application is visual, which is appealing. The application is clear. The user can easily tell which restaurant is chosen by following the ginormous arrow. A light blue background give the app a little warm and the arrow adds character.

    We have a folder called LunchLogos. Any png file found is the folder is added to an generic image list at the start of the program. When the user clicks Spin, the logos are randomly displayed on the screen for a random number of times before stopping on a chosen eatery.

    If you don’t like a restaurant all you have to do is remove the logo from the folder. If you have a restaurant you like that isn’t in the list all you have to do is add the logo to the same folder, simple, simple.

    Again for this application we used the RNGCryptoServiceProvider class to generate a statistically sound random number.

       1: private int GetRandomNumber(int minValue, int maxValue)
       2: {
       3:     // Use a 4-byte array to fill it with random bytes and convert it then
       4:     // to an integer value.
       5:     byte[] randomBytes = new byte[4];
       6:  
       7:     // Generate 4 random bytes.
       8:     RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
       9:     rng.GetBytes(randomBytes);
      10:  
      11:     // Convert 4 bytes into a 32-bit integer value.
      12:     int seed = (randomBytes[0] & 0x7f) << 24 |
      13:                 randomBytes[1] << 16 |
      14:                 randomBytes[2] << 8 |
      15:                 randomBytes[3];
      16:  
      17:     // Now, this is real randomization.
      18:     Random random = new Random(seed);
      19:  
      20:     return random.Next(minValue, maxValue);
      21: }

    And we have created a simple randomize list function to mix things up a bit.

       1: public void RandomizeList(List<string> arrayList)
       2: {
       3:  
       4:     if (arrayList == null) { return; }
       5:     int count = arrayList.Count;
       6:     for (int i = 0; i < count; i++)
       7:     {
       8:         string tmp = arrayList[i];
       9:         arrayList.RemoveAt(i);
      10:         arrayList.Insert(GetRandomNumber(0, count), tmp);
      11:     }
      12: }

    Last but not least, we use the Mod function to make sure we can loop around the list when picking images.

       1: private void Spin()
       2: {
       3:     int index1 = GetRandomNumber(0, logos.Count);
       4:     int index2 = (index1 + 1) % logos.Count;
       5:     int index3 = (index2 + 1) % logos.Count;
       6:  
       7:     pictureBoxTop.Image = logos[index1];
       8:     pictureBox.Image = logos[index2];
       9:     pictureBoxBottom.Image = logos[index3];
      10: }

    Possibilities:

    Well, I think it would be cool if there was a background sound to go along with the spin. I also think a UI for adding and deleting logos would be great. It would be nice to be able to assign weights to each restaurant, and to favor new choices over previously selected places.

    Download executable: lunchomatic.cab

    Download Source Code: lunchomatic.zip

    Feedback:

    How could we make this application even better? Share your ideas with the community.


    Wednesday, June 18, 2008 12:11:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Monday, June 16, 2008

    I’ve had a lot of requests for SMS related applications. So today we will create a SMS logger application. This application will allow users to scroll through a listing of all the SMS / text messages they have received while the application has been running.

     

    image

    SMS Logger

    This is a great application for a beginner to create. It has a very simple UI, the main component is the WebBrowser. The way we can have nicely formatted text easily.

    The key piece of code here is the MessageRecieved event off of the SmsIntercepter object.

       1: private StringBuilder documentText = new StringBuilder();
       2: void SmsInterceptor_MessageReceived(object sender, MessageInterceptorEventArgs e)
       3: {
       4:     if (enableInterceptor == false)
       5:         return;
       6:  
       7:     // Cast to SmsMessage to access message body
       8:     // Not expecting to receive any non-SMS messages but use "as" to
       9:     // cast to be extra safe
      10:     SmsMessage newMessage = e.Message as SmsMessage;
      11:     if (newMessage != null)
      12:     {
      13:         documentText.AppendFormat(@"<b>Body:</b> {0}<br/>", newMessage.Body);
      14:         documentText.AppendFormat(@"<b>Name:</b> {0}<br/>", newMessage.From.Name);
      15:         documentText.AppendFormat(@"<b>Address:</b> {0}<br/>", newMessage.From.Address);
      16:         documentText.AppendFormat(@"<b>Last Modified:</b> {0}<br/>", newMessage.LastModified);
      17:         documentText.AppendFormat(@"<b>Received:</b> {0}<br/>", newMessage.Received);
      18:         documentText.Append(@"<br/>");
      19:  
      20:         webBrowser.DocumentText = documentText.ToString();
      21:     }
      22: }

    We have a few actions the user do: Start, Stop, Clear, About, and Exit.

    Possibilities:

    This application logs incoming SMS messages, but it doesn’t do several thing that were requested from our reader. It doesn’t log outgoing messages. It doesn’t save to a text file. And it doesn’t clear out data from Outlook Mobile when the users runs SMS Logger.

    I also think there is room to improve the UI. I think some small 16x16 pixel graphic files could really add some life to the application. Maybe one icon for incoming messages, and one for outgoing messages.

    So who’s up to it? Anyone want to take this application to the next level? Just let me know.

     

    Download executable: smsLogger.cab

    Download Source Code: smsLogger.zip

    Feedback:

    So what possibilities do you see for this type of application? for business? for entertainment?


    Monday, June 16, 2008 10:30:00 PM (Eastern Standard Time, UTC-05:00)  #    Comments [1]  |  Trackback

    Today, is day 15 of my 30 Days of .NET challenge. That marks the 50% point, and we have 15 applications for 15 days. Thanks for your support!

    And we have made it through another week. If you missed the week one recap here it is: 30 Days of .NET [Windows Mobile Applications] - Week One.

    What’s your favorite?

     

    image image image image
    Rotate Me Mobile Tipper What is My IP? Mobile Signature

    Lots of variety, everything from network utilities, to graphics, to humor, to SMS text messaging. Great ideas, guys!

     

    image image image image_thumb14
    Mobile Quiz Pocket Death Calculator Mobile SMS Contact What will be next?

     

    Feedback:

    Got an idea? Got some feedback? Share it? Thanks!


    Monday, June 16, 2008 2:48:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [7]  |  Trackback

    Today’s application is about possibilities. It’s a new area we will explore in our future applications. It’s important to learn how to development applications, but it is also important to learn what kind of applications you can develop. Your goal is always to reach just a little further, and grow from the experience.

     

    The important thing here isn’t what this application does with these ideas, but what you could do with these ideas.

     

    People can use SMS to send and receive information through text messages, but with the power of Windows Mobile it is easy for application to send and receive commands and data. There is a big movement for software to expose its features and functions to other programs. But image a world, that probably isn’t too far, where your mobile device has it’s own API that you and others can use to access its data and functions.

    Where could this be useful? Well many companies need the ability to send “Alerts” of some kind to their workers. It is easy to use the Windows Mobile SMS API to have a custom written application that check for specially “tagged” SMS messages.

     

    image

    Mobile SMS Remote

    SMS Remote is an application that could run on two or more Windows Mobile device and allow each of the phones run to support “commands” on the phones. For example, a user could get the date and time of another device running SMS Remote. Or the user could run a command to get the other phone’s current GPS location information. The possibilities are limitless. Both devices are both servers and both clients in other words a very simple peer-to-peer network using SMS technology. How cool is that?

    What if sometimes we don’t want others to be able to run commands on our device remotely? First of all we could always exit the application. The application must be running in other to execute remote commands. Be I have also added an “Allow Remote Commands” feature.

    How can we send SMS remote commands? Use the SMS command ComboBox and choose a command, and enter the remote device’s phone number. Then just click “Send”.

    How can we tell what commands have been remotely run on our device? There is a received commands listing at the bottom the screen. It shows the phone number of the device that send the command, the time the command arrive, and which command was requested.

    This is a rough prototype of an idea that has HUGE potential. Some point in the next ten years this concept will take off and become something along the lines of Mobile 2.0.

    The trick to this application is using the very cooly named Windows Mobile 6.0 SDK MessageInterceptor class. We can use it to have any SMS that begins with “30days:” fire an event in our application that we will then handle. This is very, very, very simple for something so powerful. Use it!

       1: MessageInterceptor _smsInterceptor = null;
       2: private void LoadSmsIntercepter()
       3: {
       4:     _smsInterceptor = new MessageInterceptor(InterceptionAction.NotifyAndDelete);
       5:  
       6:     _smsInterceptor.MessageCondition =
       7:         new MessageCondition(MessageProperty.Subject,
       8:         MessagePropertyComparisonType.StartsWith, "30days:", true);
       9:     _smsInterceptor.MessageReceived += SmsInterceptor_MessageReceived;
      10: }

    The rest is simple. Was the SMS a “command” or a “result”? If command we need to run and return a result. If result we need to act on or display to device user.

    Possibilities:

    I implemented the get date and time function, but not the GPS function. This would be a very useful addition to the application that I would love to say a reader did. Or how about a way to add Internet Explorer Mobile favorites? Or how about something more Web 2.0 like what song is currently playing.

    Download executable: mobileSMSRemote.cab

    Download Source Code: mobileSMSRemote.zip

    Feedback:

    So what possibilities do you see for this type of application? for business? for entertainment?


    Monday, June 16, 2008 1:58:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback
    Sunday, June 15, 2008

    Today one of my readers, Paul Diston, made the following request.

    Hi,
    I have another idea you might be interested in. I would like to be able to type in a single SMS message and then hit the send button which would then send the same message to all my contacts that have a mobile number specified.


    Thanks
    Paul Diston

    The thing that I really liked about Paul’s suggestion is that is cover two very important mobile development topics: one is working with contacts stored in Outlook Mobile, and the other is working with SMS messaging.

    image

    image Mobile SMS Contact

    I changed it a little bit from Paul’s original request. I decided to incorporate a filter into the application. This way you can send SMS messages to your personal contacts, or your business contacts. You could even create a custom category. I didn’t include an option to select contacts that do not have a category assigned to them. This would be a great modification for a reader to implement. Simply add a ‘<none>’ item to the list, and if that item is selected add any contact that doesn’t have a category.

    I added a ListView so that users could see the contacts they were about to text message. Another great enhancement, would be the ability to modify this listing. Just a remove option would be a great addition in functionality.

    One feature I added as a polishing touch, was the live character count feature. This feature lets users know how much more text they can send. And we have found another opportunity for improvement here. I limit the text to 160 characters, but if someone entered in more text we could send X number of text messages until the complete message was delivered.

    Next with have our SMS Message TextBox where we can type the message we will send. Nothing special here, but I didn’t set a MaxLength of 160 characters.

    At the bottom I exposed the RequestDeliveryReport property of the SmsMessage class. What ever the user picks here will be assigned to that property.

    One feature that I really love about Windows Mobile programming, that especially came in useful for this application was the Cellular Emulator.

    GetContacts Code:

       1: private List<Contact> GetContacts(string category)
       2: {
       3:     List<Contact> contacts = new List<Contact>();
       4:  
       5:     ContactCollection contactsCollection = outlookSession.Contacts.Items;
       6:  
       7:     foreach (Contact contact in contactsCollection)
       8:     {
       9:         if (contact.Categories.Contains(category))
      10:         {
      11:             contacts.Add(contact);
      12:         }
      13:     }
      14:  
      15:     return contacts;
      16: }

    SendSMS Code:

       1: private void SendSMS()
       2: {
       3:     List<Contact> contacts = GetContacts(comboBoxCategories.SelectedItem.ToString());
       4:  
       5:     SmsMessage smsMessage = new SmsMessage();
       6:     //Set the message body.
       7:     smsMessage.Body = textBoxSMSMessage.Text;
       8:  
       9:     foreach (Contact contact in contacts)
      10:     {
      11:         string name = string.Format("{0} {1}", contact.FirstName, contact.LastName).Trim();
      12:         string address = contact.MobileTelephoneNumber;
      13:  
      14:         if (address.Length == 0) break;
      15:  
      16:         //Add recipients.
      17:         smsMessage.Body = textBoxSMSMessage.Text;
      18:         if (name.Length == 0)
      19:             smsMessage.To.Add(new Recipient(address));
      20:         else
      21:             smsMessage.To.Add(new Recipient(name, address));
      22:         smsMessage.RequestDeliveryReport = checkBoxRequestDeliveryReport.Checked;
      23:     }
      24:  
      25:     if(smsMessage.To.Count == 0) return;
      26:  
      27:     //Send the SMS message.
      28:     smsMessage.Send();
      29: }

    Download executable: mobileSMSContact.cab

    Download Source Code: mobileSMSContact.zip

    Feedback

    One thing I decided not to do with this application is spend any time on the UI. I wanted readers to see one application that was plain Jane vanilla. Consider what you could do to this application to make it appealing to end users. Share your ideas, and maybe I’ll do them, or even better try taking the code and making the changes yourself. If you do this for the application or any other I will link to back to you so everyone can “see” and “learn” for your efforts.


    Sunday, June 15, 2008 2:10:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback
    Saturday, June 14, 2008

    Let’s have some fun today. And do an application that is just for kicks. I had a really hard time coming up with a Friday the 13th themed mobile application. I finally thought of one: The Pocket Death Calculator. Yeah, it’s a bit crazy, but it’s good not to take yourself too seriously. There are lots of these Death Clocks on the Internet, here’s a famous one: The Death Clock.

     

    image

    image

    Pocket Death Clock

    This application is about how many lines of code you can write. It shows how a simple idea in a good looking package can really charm a lot of people. Most people enjoy a surprise, or something unexpected, something to break the day from being ordinary and routine. Sure you can write the next great mobile financial planner package, or you could write a quick “fun” app to put a smile on someone you know’s face.

    The UI is really simple just a background image file, but it is a good looking background image file. And that is pretty much what is pulling off the application. I thought about putting glowing red eyes on a timer and having their visibility randomly change, but decided to leave it as an exercise for my readers. Try it you’ll be surprised how much it really sets off the application. And makes it stand out.

    The death calculation engine is straight forward: we take the user’s age and gender and modify the average human life span appropriately. Then we subtract the users present age from their expected life span. Next we calculate the number of seconds in a year. We use our cryptographically strong random function to pick a random second in that year for the user to “die” on. Now we have our death date. It’s a simple matter to calculate the number of seconds the user has left. We put everything on the screen and update on a timer.

    There you have it.

    Possibilties:

    Simple applications always have the best possibilities. We talked about adding glowing eyes. But you could also add random death quotes. You could also ask the user more questions and better guesstimate their death date. You could also “guesstimate” where and how they would die using data easily found on the Internet.

    Always good to know you have less than a million seconds before you are going to die from a shark attack in Quebec. Plenty of time to pick up some shark repellent.

     

     

     

     

    Download executable: pocketDeathClock.cab

    Download Source Code: pocketDeathClock.zip

    Feedback:

    I think this is our first humorous application, not counting Mobile FX, what did you think of it? Would you like to see more of these types of applications, that are creative idea based, or more of the technically focused applications? I like to keep a good bit of variety to show all the possibilities, so I hope that is working for everyone.

    If not, share your idea for tomorrows application.


    Saturday, June 14, 2008 12:14:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [5]  |  Trackback
    Friday, June 13, 2008

    Today we are going to look at another classic goal in Mobile development, data collection. You might need it for a line of business application, for example a field service application where workers need to inspection equipment and fill out a questionnaire. Or you might need it in a mobile poll taker application. You could even use it in a trivia game. There are few applications actually that couldn’t take advantage of a question and answer system like the Mobile Quiz.

     

    image

    imageMobile Quiz

    There is so much potential with this application. I hope you can see the concept and see the potential here. There are a world of possibilities here. Hopefully this application will help you get ever so slightly closer to realizing some of them.

    The UI is a straight-forward and clean design, which was easy to make but should appeal to users. Everything is meant to be intuitive and self explanatory. Users should simple be able to look at the screen and get it.

    The first screen is an quiz introduction form. All we have here is some eye candy, the name of the quiz, and some basic menu options: Start, About, and Exit.

    After this the user is presented with the questions screen. This is the main meat of the application.

    Questions are pulled from an XML file which could be retrieved from a remote server.

     

       1: <?xml version="1.0" encoding="utf-8" ?>
       2: <quiz name ="Family Guy Quiz">
       3:   <question>
       4:     <text>In what state do the Griffins live?</text>
       5:     <correct>2</correct>
       6:     <answer>Connecticuit</answer>
       7:     <answer>Rhode Island</answer>
       8:     <answer>Massachusetts</answer>
       9:     <answer>Deleware</answer>
      10:     <answer>South Carolina</answer>
      11:   </question>
      12:   <question>
      13:     <text>What television actor is the mayor of the town?</text>
      14:     <correct>1</correct>
      15:     <answer>Adam West</answer>
      16:     <answer>David Hasselhoff</answer>
      17:     <answer>Leonard Nimoy</answer>
      18:     <answer>William Shatner</answer>
      19:     <answer>Harrison Ford</answer>
      20:   </question>
      21:   <question>
      22:     <text>What is Cleveland's last name?</text>
      23:     <correct>1</correct>
      24:     <answer>Brown</answer>
      25:     <answer>Smith</answer>
      26:     <answer>Craft</answer>
      27:     <answer>Cub</answer>
      28:     <answer>Jones</answer>
      29:   </question>
      30:   <question>
      31:     <text>What is the name of Stewie's stuffed bear?</text>
      32:     <correct>3</correct>
      33:     <answer>Barry</answer>
      34:     <answer>Chris</answer>
      35:     <answer>Rubert</answer>
      36:     <answer>Edward</answer>
      37:     <answer>Paddy</answer>
      38:   </question>
      39:   <question>
      40:     <text>What is Quagmire's profession?</text>
      41:     <correct>4</correct>
      42:     <answer>Developer</answer>
      43:     <answer>Police Office</answer>
      44:     <answer>Barber</answer>
      45:     <answer>Pilot</answer>
      46:     <answer>Teacher</answer>
      47:   </question>
      48: </quiz>

     

    It’s a snap to open the XML file and read in all of our data.

       1: DataSet dataSet = new DataSet();
       2: // read quiz data file
       3: dataSet.ReadXml(@"\Program Files\MobileQuiz\quiz.xml");

    One thing that I decided was important was to avoid showing modal MessageBox dialogs often. Sick Instead I choose to use a label, place it at the top, set it’s background color to Info, and use it accordingly. This works out great and I think is a much better user experience. Data entry on a mobile device is a huge pain, and if you can take a dialog out of the equation that’s a good thing.

    Download executable: mobileQuiz.cab

    Download Source Code: mobileQuiz.zip

    Feedback

    There’s a lot here for a little effort, a couple hours, and there is a huge potential for this type of application. This would be a great project for someone to expand on and create something really special from. Consider it if you are looking for your first mobile project.


    Friday, June 13, 2008 2:49:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Thursday, June 12, 2008

    image

    You know sometime someone tells you about something, and you can tell there is a whole lot more to it than they are telling you about. Well, signature capture for Windows Mobile is one of those things. It’s really not bad today and you can do it in one sitting easily now. But there was a time, when if your life depending on it you might be able to get it right. At least we have managed code now. A few of us attempted to do this feat in embedded Visual Basic years ago and I’m surprised it didn’t cost us our sanity. Oh the humanity…

    You could do it you just had to copy each color pixel by pixel and save it into a bitmap, and that was a challenge too. And GetPixel() had to be the slowest function call ever. It took at least a second. No way, you were going to give someone a full screen to put there signature.

    That was then, this is now…

    image

    Mobile Signature

    Office 2007 might have 2007 features in it. And it works for Office 2007, well to a point. But with Windows Mobile applications less is more. Don’t get me wrong I really do think Mobile Signature would make a great feature in a more complete application. But as far as the feature of taking a signature on a mobile device this is a great approach.

    Also note that Mobile Signature could be easily adapted into a drawing application, and so on, especially for kids.

    Let’s talk about UI first. Notice how much space is dedicated to taking the user’s signature. This is important; I’ve seen almost the reverse before and that just isn’t very usable. I took a little extra time and care to make sure all control had a black border around them,expect the black color square. It has a gray border.

    One thing to note is a wanted the user to be able to tell what color they would be writing in without having to draw on the screen. This is accomplished by having the borders around the active color flash on and off. This is a great visual effect that was easy to implement with a timer. We track the currently active color in a form level variable, and on the timer tick event, which happens every 500 ms, we toggle the visibility of the border around the active color. Works great! Check it out!

    The menu is another area that is simple but you can learn from it. Save is very important to us, so it is prominent and has it own hardware button that can cause it to occur. On the menu we have an option for clearing the screen, showing the about form, and exiting the application. But we also have a menu option to change the size of the line we are drawing with. It can be set from any of the following: 1 pixel, 3 pixels, 5 pixels.

    The core of the application is the code that actually draws the lines on the screen. Here it is:

       1: private void pictureBox_MouseMove(object sender, MouseEventArgs e)
       2: {
       3:     if (pen.Color != signatureColor)
       4:         pen = new Pen(signatureColor);
       5:  
       6:     if (pen.Width != width)
       7:         pen.Width = width;
       8:  
       9:     x1 = x2;
      10:     y1 = y2;
      11:     x2 = e.X;
      12:     y2 = e.Y;
      13:  
      14:     if (x1 == -1 && y1 == -1)
      15:         return;
      16:  
      17:     pictureBoxSignature.CreateGraphics().DrawLine(pen, x1, y1, x2, y2);
      18: }

     

    One area of code that is worth checking out is the code to save the bitmap of the signature. It’s pretty advanced and powerful.

       1: // P/Invoke declaration
       2: [DllImport("coredll.dll")]
       3: public static extern int BitBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, uint dwRop);
       4:  
       5: const int SRCCOPY = 0x00CC0020;
       6:  
       7: private void Save(string filename, Graphics gx, Rectangle rect)
       8: {
       9:     Bitmap bmp = new Bitmap(rect.Width, rect.Height);
      10:     // Create compatible graphics
      11:     Graphics gxComp = Graphics.FromImage(bmp);
      12:     // Blit the image data
      13:     BitBlt(gxComp.GetHdc(), 0, 0, rect.Width, rect.Height, gx.GetHdc(), rect.Left, rect.Top, SRCCOPY);
      14:     bmp.Save(filename, System.Drawing.Imaging.ImageFormat.Bmp);
      15:     // Cleanup
      16:     bmp.Dispose();
      17:     gxComp.Dispose();
      18: }

    Everything else is pretty straight forward, but check it out and see what you think!

    Download executable: mobileSignature.cab

    Download Source Code: mobileSignature.zip

    Feedback

    So, how do you guys feel about line of business applications? Do you want more days that focus on line of business application topics? or less? Let me know! :D Tomorrow will be here before you know it.


    Thursday, June 12, 2008 2:48:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback
    Wednesday, June 11, 2008

    I mentioned to the group that I would post the Prize Picker application we wrote together on my blog as part of my 30 Days of .NET series. I think this was an awesome idea, and it looked like everyone really enjoyed themselves. Hopefully, a few of them will see this post and share their thoughts as well. It was very nice to have a hands on type presentation that everyone got to participate in together. And since only one person was “driving” we didn’t have to stop and fix a disconnected monitor. Ok, we did one time, but just one time. Open-mouthed 

    Big thanks to everyone that came out and participated! Page Brooks, Donny Craft, Benton Little, , Jamey McElveen , Shawn Morris, and Thad Smith. It was a lot of fun!

     

    PrizePicker

    Prize Picker

    There is probably someone out there who doesn’t think this is the best looking application ever. Well, you’re right! It’s not, but we didn’t really focus on that any until we had a fully functional application. At that point it was time to pick prizes for the lucky hopefuls that became winners at the event.

    The only big item we didn’t implement, was an item that came up right at the end, we wanted to show the last winner in the area down at the bottom of the screen in big blog letters. And we wanted to rotate through remaining hopefuls and then finally pick a winner moving them to the winners table.

    The application is a firm believer of the KISS principle. We did the entire application in about an hour and a half. And that is including some refactorings, and changes we made along the way. I’m pretty happy with the application, and will love it once we have the “Jackpot” style UI element added.

    We added validation as we needed it, and decided to keep the applications logic in the UI, as hard as it was for us to do, to in this case to follow our KISS guidelines.

    We have used RNGCryptoServiceProvider class already in the Pocket PasswordGen application on day six. This class makes sure that our random numbers are statistically random and not pretend watered down random.

       1: Byte[] randomBytes = new byte[4];
       2:  
       3: RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
       4: rng.GetBytes(randomBytes);
       5:  
       6: // Convert 4 bytes into a 32-bit integer value.
       7: int seed = (randomBytes[0] & 0x7f) << 24 |
       8:             randomBytes[1] << 16 |
       9:             randomBytes[2] << 8 |
      10:             randomBytes[3];
      11:  
      12: int pick = seed % listViewHopefuls.Items.Count;

     

    Download executable: prizePicker.cab

    Download Source Code: prizePicker.zip

    Feedback

    The cool thing is we used this application to actually pick the winners for the prizes, and everything went great. So our intention is to keep using it from now. We are also going to post it on CodePlex soon and allow others to work on it as well.


    Wednesday, June 11, 2008 2:55:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Tuesday, June 10, 2008

    Tuesday, June 10th, 2008image
    Chris Craft

    Topic: Windows Mobile Programming

    Tuesday, June 10th, 2008, is the next meeting of the Pee Dee Area .NET User Group.

    Chris Craft will be presenting at Microsoft Mobility Roadshow alongside Brian Hitney, Glen Gordon, and Lou Vega in Charlotte - June 18, 2008 and Atlanta (Alpharetta) - June 24, 2008. These are full day Windows Mobile device application development events.  PDANUG will be hosting our own special "Welcome to the World of Windows Mobile" event to keep in theme these two MSDN events.
    Focus will be Windows Mobile 6.x and using Visual Studio 2008 to developer mobile applications.
    Topics to be covered:

    •       Intro to Windows Mobile
    •       Data Guidance (some discussion of line of business applications)
    •       Whole New Level
    Speaker Bio
    Chris Craft
    Pee Dee Area .NET User Group
    Florence, SC      
    •    Microsoft Windows Mobile Device Application Development MVP
    •    Cofounder and regular speaker of Pee Dee Area .NET User Group.
    •    Frequent CodeProject.com article author.
    •    Expert's Exchange Windows Mobile Programming Master.
    Email: ccraft@pdanug.net
    Web: http://pdanug.net/
    Blog: http://cjcraft.com/blog/


    Here is the tentative schedule:
    6:00 PM - 6:20 PM Socializing / Free Dinner
    6:20 PM - 6:30 PM Introduction, Sponsor Time, and News.
    6:30 PM - 8:00 PM Presentations


    Tuesday, June 10, 2008 11:52:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback

    Microsoft has published a SKU Matrix for Windows Mobile 6.1, and there is also an older one for Windows Mobile 5.0.

    imageWindows Mobile 6.1 makes it easier to stay connected and manage your busy life—from just about anywhere. Windows Mobile 6.1 is full of enhancements, made with your needs in mind. Think about this: When you text with a friend, the messages thread together, just like instant messaging—no more confusion about what you’re talking about. Connecting to a Wi-Fi network is now simpler—no more scrolling through multiple pages; a single click and you’re connected. And Windows Mobile 6.1 runs on a growing variety of phones, including touch screen devices with slide-out keyboards, sleek full-keyboard smartphones, and compact flip phones.


    Tuesday, June 10, 2008 9:46:43 AM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback

    Today's application is meant to be a simple, yet useful, application for people to use out on the town. This is an application that a couple of my friends recommended as a good beginner's introduction application to programming for the .NET Compact Framework. One thing I really like about it is that there is nothing to get in the way of a new developer's understanding of what is going on in this application. Everything is direct and straight-forward.

    If you have ever eaten out with a large group of friends and wanted to split the tip, then you probably know how much of a challenge this can be. It seems trivial at first glance, but there is a decent set of variable inputs, and another good size set of outputs. All of which are interrelated. But that is the past, now you have Mobile Tipper to take care of the hard work for you.

     

    image

    Mobile Tipper

    There's not a whole lot going on with the UI. It is still clean and simple. I have colored the output fields in a light yellow color, and I have added an icon to the top right of the screen for decoration. Also, notice we are formatting our outputs, and allowing users to enter '%' and '$' characters in the inputs. This is a nice touch of polish that users appreciate. The icon in the top right is also the icon for the applications and the forms themselves. (I couldn't take it; I decided to give the application, a famous light blue color to give it a little life.)

     

    There's a lot of fields, and this is technically a mobile data entry application. So we want to enable our users to enter data as easily as possible. That's why we are using editable comboboxes, and allowing users to enter '%' and '&' characters. The comboboxes are pre-populated with a likely set of inputs users will want to use.

    imageOne thing I did also to help with data entry is I assign tab orders to all my input controls, and marked all my output controls TabStop properties as false so they would be skipped over.

    I implemented a Tip class that handles all the math calculations, and so on. And I created NumericTextBoxes and NumericComboBoxes that only allow numeric data to be entered. Again try to make end users lives easier.

    You might be wondering what my secret is to handling the character's '%' and '$', it is the trusty String.Replace() method. I replace both of those characters with String.Empty's. :D

         return Decimal.Parse(this.Text.Replace("$", string.Empty).Replace("%", string.Empty));

    I came close to skinning this application with some kind of butler them skin. Basically a white and black theme with a little bowtie band somewhere across the top, or middle with a watermarked jacket front in the application form's background. But decided it probably wouldn't end up looking like it does in my head.

     

     

     

     

    Download executable: mobileTipper.cab

    Download Source Code: mobileTipper.zip

    Feedback

    Tomorrow will be our tenth application, and mark us at 1/3 complete. So far I have managed to design, create, publish, and explain a new and different .NET Compact Framework application everyday. My goal is to do it everyday this month. Your support really makes a difference so keep it coming!


    Tuesday, June 10, 2008 12:18:51 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Monday, June 09, 2008

    Wow, time sure does fly when you're having fun. Since the beginning of the June, we have already knocked out over a half-a-dozen applications. It's hard for me to choose a favorite, as there is such variety, and many of you submitted great application ideas. If I had to pick a favorite, I think I would pick Mobile FX, since it is just fun.

    What's your favorite?

     

    image image image image
    Minutes to Midnight Countdown Bluetooth Manager GPS Compass Mileage Tracker

    Look at the variety: a countdown time, a Bluetooth control panel type application, a GPS application, and a work utility.

     

    image image image image
    Mobile Capture Pocket PasswordGen Mobile FX What will be next?

     

    Again, we get around as far as application topics: screen shot utility, password generator, a sound FX app, and who know's what we'll do next...

    Looking forward to this week's applications? Let's see where we'll go next.


    Monday, June 09, 2008 10:08:06 AM (Eastern Standard Time, UTC-05:00)  #    Comments [4]  |  Trackback

    image Wow, things are really moving around here. First Lou Vega offers to help with 30 Days of .NET as the VB .NET Editor. And now Christopher Fairbairn has offered to help as the C++ Editor.

    A little about Christopher:

    Christopher is the leader of the Christchurch .NET User Group. In case you didn't already know, Christchurch is in New Zealand. (Pretty cool reading about their climate, and I didn't realize they are know as the "Gateway to the Antarctic"). Christopher has a great blog mostly focused on Windows Mobile C++ development, which can be hard to find good information on when you are first starting out. Be sure to take a moment and read Christopher's "About Me" page. I think you'll agree that we are lucky to have him on the team, and that we are looking forward to seeing take on device application development for Windows Mobile.

     

    So far, Christopher is off to a great start having already reproduced two of the applications I have written. One of the thing I really enjoy is reading the blog post Christopher does for application he translates. He a great job of explaining the nuts and bolts of everything that he is doing. He is very detailed and very thorough, you can learn a lot simply following along with him

    Day 01 - 30 Days of .NET [Windows Mobile Applications]: Minutes to Midnight Countdown: C# Edition / C++ Edition

    Day 02 - 30 Days of .NET [Windows Mobile Applications]: Bluetooth Manager: C# Edition / C++ Edition


    Monday, June 09, 2008 2:44:39 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback

    We have discussed the ability to assign an Windows Mobile application we have created to a device's hardware button. Once with our day two application, Bluetooth Manager, and once again with our day eight application, Rotate Me.

    By default my device's buttons are configured as follows: "Button 1" starts "Internet Explorer", "Button 2" starts "Messaging", "Button 3" starts the "<Start Menu>", "Button 4" starts "<OK/Close>", and finally "Button 5" starts the "<Camera>". If you look at the screenshots below, you'll noticed I changed "Button 2" to start the "Rotate Me" application instead. This is the "as good as it gets" way to start an application; doesn't get better than one button press access.

    Just in case everyone isn't aware of the feature in Windows Mobile, I've posted the steps here:

    First click the "<Start Menu>", now click on "Settings" menu item, next click on the "Buttons" icon under the "Personal" tab, finally select a button and assign it a program. It's that easy.

    image image image image


    Monday, June 09, 2008 1:41:21 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback

    Yesterday, I read the following suggestion for the 30 Days of .NET series.

    "How about a program to manually rotate from portrait to landscape, the millions of new HTC Diamond owners would love that :-)"

    - Alex

    Lucky guy, the HTC Diamond is a gorgeous device. I mean really, really good looking device - if Scarlett Johansson were a phone good looking here.

    Don't take my word for it. See for yourself:

    image

    image

     

     

     

     

     

     

     

     

     

    image

    image On my HTC device there is an today plug-in named "HTC Home", that gives me an icon I can click on my today screen which will rotate my device's screen. See screen capture, I've converted everything else to grayscale.

    This is a great little app, that does everything it claims it will do. Only thing is I hate it. I hate it because it doesn't do what I want it to do. It rotates through all four combinations of screen directions: top (0 degrees), left (90 degrees), bottom (180 degrees), and right (270 degrees). See that's the rub, never want to see my device upside down.

    So basically, every time you click this icon the screen rotates 90 degrees, which means I have to go through what I consider two junk orientations, bleh.

    I think we can do better.

    This is probably going to be the easiest application we write. Thanks, Alex! ;D

    I considered a few approaches to this application. I thought about following the same model as HTC and placing the application somewhere on the Today screen. Basically there are three ways to accomplish this. One we could write a today screen plug-in, but this isn't straight-forward in an managed application. There is a way to do it however: Creating a Pocket PC Today Screen Plug-in with the .NET Compact Framework.

    Or we could create a task tray icon for our application. If you look right about the Contacts menu item in the bottom right of my screen, you can see three application task tray icons. Again, I felt this was more work than worth. But here how you could do it: Using the Microsoft .NET Compact Framework MessageWindow Class.

    Finally, I though we could add an icon to the notification area at the top-right of the screen. If you'll look at my screenshot again you'll see where I have 6, count them 6, notification icons on my device. Everyone is doing this lately, and it starting to get out of hand lately. But if you like here's the information you'll need to accomplish this: Programmatically create and display Notifications.

    So what was my solution? Well, I decided to leave well enough alone. This leaves the end user three choices, one assign the application to hardware button, to assign the application to a today screen plug-in that can launch other applications, and three to simply run the application manually. A lot of today screen plugs-ins have application launchers capabilities. Back to my screenshots, the today screen plug-in at the top of the screen allows for nine applications to be started from it. I've highlight the icon for Rotate Me, and made the rest the screen grayscale.

    So how hard is it to check the screen orientation and change it? You tell me.

    using Microsoft.WindowsCE.Forms;

    if (SystemSettings.ScreenOrientation == ScreenOrientation.Angle0)
        SystemSettings.ScreenOrientation = ScreenOrientation.Angle90;
    else
        SystemSettings.ScreenOrientation = ScreenOrientation.Angle0;

    Here's a link to a blog post I did on How To: Assign an Application to a Windows Mobile Device's Hardware Button in case you need it.

    Sometimes it is surprising just how much you can get for such little time and effort. That's the power of the .NET Compact Framework.

    Well, that does it for today. Here are the binaries. Hope you enjoy them.

    Download executable: rotateMe.cab

    Download Source Code: rotateMe.zip

    Feedback:

    Thanks guys, it's been fun. Keep the ideas coming. Don't wait until the last minute. I hope these applications are helping you realize the raw rapid application development power of the .NET Compact Framework.


    Sunday, June 08, 2008 11:00:25 PM (Eastern Standard Time, UTC-05:00)  #    Comments [4]  |  Trackback
    Sunday, June 08, 2008

    This is my favorite application so far. The concept is awesome. It takes the idea of a "sound effect keychain", and make it into a fully open and extensible mobile application.

    image

    Mobile FX

    So if you are following me, then you know that if you press the birds button you'll hear a birds sound effect, and if you press the bomb button your hear a bomb sound effect, and son on down the list.

    This application tries to be as much about form as it is function. All of the icon graphics are created with Axialis IconWorkshop. (Thanks for the heads up, Jamey!) It makes making really great icons a snap using its Image Object Packs. (See the image to the right for a small sample.)

    image

    What I really like about this application is there is the possibility of creating add-in sound packages. I'll discuss this more in a follow up blog posting to come soon. [If there is interest? Let me know.]

    The way the application works is it looks for an XML file that tells it where each of its possible icons are and where the sound files for each icon are located as well. If you want to change the order of the icons on the screen just change the order of the "buttons" in the XML configuration file.

    I haven't completed the extensibility point for others to add there own icons and sounds but that is a small enhancement which I'll do shortly.

     

     

     

     

     

     

     

     

    Download executable: mobileFX.cab

    Download Source Code: passwordGen.zip

    Feedback:

    How interested are you guys in the follow up article? Is this something you would enjoy? Would you like a second pack of sounds? Is this application something you would use? Would you create a sound pack of your own?


    Sunday, June 08, 2008 2:52:33 AM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback
    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 1:35:45 AM (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 2:46:56 AM (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 1:02:29 AM (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 4:20:53 AM (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 12:06:44 AM (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 3:00:47 AM (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 1:01:13 AM (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 12:48:15 AM (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 3:00:35 AM (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 3:00:52 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Tuesday, May 20, 2008

    imageRecently the Live Search Team released a new version of Live Search for Windows Mobile.

    Pros:

    • Great features: categories, maps, directions, traffic, movies, gas prices, collections, web, weather
    • GPS support
    • Search Near Here
    • Speech Recognition
    • Works for Windows Mobile, BlackBerry, and any mobile phone
    • Bluetooth headset support
    • Map a contact
    • And much more...

    Cons:

    • Wish we had access to the source code, controls, etc.
    • Great opportunity for guidance, documentation, and reference as model application

    Several of the MVP's and Developer Evangelists at the Charlotte Code Camp 2008 said they used and loved Live Search Mobile so that should give you a feel for just how good this product is. It is good stuff. If you haven't tried it yet, what are you waiting for?

    Download Live Search for Windows Mobile 3.0


    Tuesday, May 20, 2008 3:00:11 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Sunday, April 13, 2008

    imageI got to check out the city some today. I heard that it was supposed to be a nice warm sunny day, but I guess the sky had other plans for today, like rain, rain, and rain. :D

    Pretty cool hotel, I at the Renaissance, right down the street from the convention center. One weird thing is there is a light switch that controls the power to my desk lamp, AND the router for my Internet. There another "light" switch by that one, but I haven't figured out what it is for yet.

    I've been hoping for some big things to happen in Mobility and this year seems like a good year for some of them to take place. Hopefully, there will be some non-NDA announcements that I'll be able to share with everyone. If not, then there's always the weather ;)


    Sunday, April 13, 2008 6:00:46 AM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  |  Trackback
    Friday, April 11, 2008

    imageA while back Engadget announced that the iPhone was going to Exchange ActiveSync support.

    It just shows you how important enterprise email is, that people will suffer through ActiveSuck, I mean ActiveSync to get it.

    So what would be even more impressive than Microsoft getting ActiveSync on the iPhone? How about being able to run .NET Applications on the iPhone.

    Wait for it... wait for it... there it is...

    Someone has converted the Linux Mono Project for the iPhone. Wow, how cool is that? It is definitely in the early stages of life but it has some really cool possibilities for the future.

    [Sources: Dev102.com and Miguel de Icaza's Blog]


    Friday, April 11, 2008 3:00:37 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback

    [Source: Jason Langridge's WebLog]

    imageGuitar Hero is now available on Windows Mobile. Yeah, I already bought it too.

    My one compliant is that on the AT&T Tilt I wish I could configure the buttons for each guitar string. I have a hard time rockin' out using that rocker button.

    Guitar Hero III Mobile Screenshots:

    image imageimage  image

    Song List

    1. Santana - Black Magic Woman
    2. Wolfmother - Woman
    3. AFI - Miss Murder
    4. Red Hot Chili Peppers - Suck My Kiss
    5. Alice Cooper - School's Out
    6. Pat Benatar - Hit Me with Your Best Shot
    7. Van Halen - You Really Got Me
    8. KISS - Strutter
    9. Smashing Pumpkins - Cherub Rock
    10. Stone Temple Pilots - Trippin on A Hole
    11. Matchbook Romance - Monsters
    12. Motley Crue - Shout at the Devil
    13. Black Sabbath - Paranoid
    14. The Allman Brothers Band - Jessica
    15. Scorpions - Rock You Like A Hurricane

     


    Friday, April 11, 2008 1:53:23 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Thursday, April 10, 2008

    image

    Heroes Happen {Here}: Hands On Lab Manuals [Source: Paulo's Blog]
    Windows Server 2008
    Download All (zipped file: 7.32 MB)
    Visual Studio 2008
    Download All (zipped file: 13.2 MB)
    SQL Server 2008
    Download All (zipped file: 20.5 MB)

    Hands On Lab Manuals

    Windows Server 2008
    Download All (zipped file: 7.32 MB)
    Visual Studio 2008
    Download All (zipped file: 13.2 MB)
    SQL Server 2008
    Download All (zipped file: 20.5 MB)
    Thursday, April 10, 2008 3:00:25 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Wednesday, April 09, 2008

    imageIt's almost that time. What time is it you ask? Well, it's only 4 days, 02 hours, 20 minutes, and 22 seconds left until this year's Microsoft Most Valuable Professional Global Summit.

    And the best part, at least for me :D, is that'll I'll be going this year. I can't wait to meet all the other MVP's, and to get to hang out with some of my developer friends that I don't get to see nearly enough.

    This year's conference looks to be really exciting. I'm expecting some big news to come out of Redmond next week.

    And I was able to find a great "utility" to help me keep track of when the conference starts: :D

    Windows Vista "MVP Global Summit Countdown" Sidebar Gadget


    cool | INETA | miscellaneous | MVP | personal | windows
    Wednesday, April 09, 2008 4:49:28 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Tuesday, April 08, 2008

    imageAbout a dozen of us are getting up early tomorrow, leaving at 4:30am, to ride up to Charlotte, NC to attend the Windows Server 2008, Visual Studio 2008, and SQL Server 2008 launch event there.

    Not only do you get to attend a great event hosted by Microsoft for free. But you'll also get to take home a promotional kit with versions of all three products.

    You should definitely make a point of attending one of the launch events in your area!

    http://www.heroeshappenhere.com/

    I'll try and twitter updates from the event live tomorrow: http://twitter.com/CJCraft


    Tuesday, April 08, 2008 3:00:48 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Monday, April 07, 2008

    image Well, how cool is this, the Lower Alabama .NET User Group, or as I'd like to call them, the Mobile .NET User Group which of course is located in Mobile, Alabama.

    And I thought we were cool with the Pee Dee Area .NET User Group, or as I like to call us, the PDA .NET User Group.

     

    imagePeople like to ask, "What is a Pee Dee"? So, in case you been wondering, here's everything you ever wanted to know and more about what the Pee Dee is: Pee Dee - Wikipedia. Since we meet in Florence, SC a lot of people ask us what is Florence famous for? Without further delay: Florence, SC - Wikipedia.

    One thing Florence County has is "one of the few instances of a dropping of a nuclear device on a civilian community in the United States and the only site where a civilian structure was destroyed." [see Mars Bluff - Wikipedia]


    Monday, April 07, 2008 3:00:01 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Sunday, April 06, 2008
    image
    Sunday, April 06, 2008 3:00:17 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback
    Friday, April 04, 2008

    Growing up I always loved Mad Magazine, and one of my favorite parts were all the Mad Fold-Ins, in the back of the magazine, that Al Jaffee created.

    The New York Times has a special online article that has many interactive Mad Magazine Fold-Ins on topics ranging from Presidents, War and the Military, Pop Culture,  to Sports.

    Fold-Ins, Past and Present - The New York Times

    image

    image


    Friday, April 04, 2008 3:00:39 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback

    Microsoft has published a marketing site for Windows Mobile 6.1, and I'm glad they used Silverlight to create it.

    Check it out:

    Windows Mobile 6.1 – New Windows Mobile Software for Pocket PC and Smartphone

    • imageInstant messaging-like texting
    • Improved Internet browsing
    • Simpler e-mail and Bluetooth setup
    • New Home screen interface
    • New Getting Started Center
    • Security enhancements
    • Easier Wi-Fi connection
    • More personal choice

    [Source: DevHawk - Morning Coffee 160]


    Friday, April 04, 2008 3:00:32 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  |  Trackback

    imageDuring my "Welcome to the World of Windows Mobile" presentation at the Atlanta Code Camp 2008 I used Remote Display for Windows CE to allow the attendees to see my device, on my desktop, on the presentation screen. After my talk was over, a few people from the audience approached me, and asked me how I was able to run Remote Display on Vista, and connect with it to my Windows Mobile 6 device.

    They told me they had tried to do the same thing, but all they ever got was a "the OS or CPU of this device is unknown to this application" error. I explained that this wasn't due to Vista, but actually was caused by a missing file on most newer Windows Mobile devices.

    In order to use Remote Display the first thing you will need to do is download the Windows Mobile Developer Power Toys, and install the ActiveSync Remote Display application.

    Windows Mobile Developer Power Toys

    ActiveSync Remote Display - Display Pocket PC applications on your desktop or laptop without needing any device side configuration.

    Work Around:

    Copy the cerdisp2.exe file from the desktop's "\Windows Mobile Developer Power Toys\ActiveSync_Remote_Display\Devices\wce400\armv4\" folder, and paste it into the device's "\windows" folder of your Windows Mobile device.


    Friday, April 04, 2008 3:00:06 AM (Eastern Standard Time, UTC-05:00)  #    Comments [1]  |  Trackback
    Thursday, April 03, 2008

    By default, Outlook does not show holidays on the calendar. If you would like to have holidays show in Outlook 2007, you can do the following quick steps: