Thursday, May 22, 2008

This is useful.    This is the url composition settings to draw maps using Maps.Live.Com

i.e

http://maps.live.com/default.aspx?cp=37.814692~-122.477339&style=o&lvl=1&tilt=-90&dir=0&alt=-1000&scene=1140291

 

Full reference of how to build the query strings is here -

http://help.live.com/help.aspx?mkt=en-us&project=wl_local&querytype=keyword&query=url

Thursday, May 22, 2008 2:37:48 PM UTC  #    Comments [0]  | 
Wednesday, May 21, 2008

After posting last week about the ability to email your current location, I have inundated with requests and improvement suggestions.

image

The top ask, has been the ability to send your location to not just an Exchange email account but to a POP account such as Gmail, Yahoo etc.

So your wish is my command you can download the new version HERE

Wednesday, May 21, 2008 5:04:29 PM UTC  #    Comments [0]  | 
Saturday, May 17, 2008

Let me start off saying,  this isn't an original idea...   

But now that we're getting more and more mobile devices with built in GPS's or ability to triangulate their location.

I'd like to be able to post a text message not just to a person but to a location.    i.e I'd like to post a restaurant menu in space outside the restaurant so that I can browse it on my device when I get near.

Similarly, I'd like to have my agenda arrive to me when I pass a certain part of the railway line on my way to work.

Imagine what would happen,  if you used this to alert all motorists to accidents this way (or would it cause lots ?).    Anyway,    surely this is a perfect little Windows Mobile app. to be written.    Time to write some code....

Saturday, May 17, 2008 7:07:22 PM UTC  #    Comments [0]  | 
Friday, May 16, 2008

Always in search of a good community activity.    This year,  I am running a balloon race for our village fate.    You know the type of thing lots of children buy a ticket.  Ticket gets attached to helium filled balloons and they are all launched.    The furthest found balloon results in a prize for both the ticket holder and the person who finds the balloon.

 

So,  how may you ask,  has this got anything todo with mobile line of business?       We’ll I’m going to use a Virtual Earth map on a website  to plot where all the balloons land.   Rather than the people that find the balloons posting their found ticket back   I’m going to have them register their find on the website also.   Anyway,   the website is up and running in test mode at the moment   with a launch date of the 5th July.    All proceeds are going to rebuilding the swimming pool at our children's school.    I'll let you know when the website is live so you can all go have a look.    Oh yes and the mobile bit.   All balloons are carrying a barcoded tag so we can spot check them at anytime using a Windows Mobile scanner.

Friday, May 16, 2008 10:46:18 PM UTC  #    Comments [0]  | 
Thursday, May 08, 2008

I've been working on this for a little while now.   Ever get asked when your out and about "where are you?".    We'll if you want to be truthful and really report back really where you are here's a little app that does just that.

image

 

With a GPS connected phone,   you've potentially got access to SAT Nav and all of that good stuff.   However its harder to notify someone of your exact location.   

Using the Windows Mobile GPS intermediate driver,   its a easy to build a mobile application that will talk to any Bluetooth, internal or SD card GPS receiver.

I've made the application so that you can store a number of your contacts email addresses from the Pocket Outlook address book, so its quick to find who you want to send your location to.     In addition  you can setup a number of Points Of Interest (POI's).    These POI's can be for locations such as 'Home', 'Work',  'Train Station' etc.

You can then send a message to one of your recipients with optionally the distance from one of your POI's.   i.e you can send your wife an email with your distance from home (and a live map).   Its limited at the moment to using Exchange as the email transport.

 

image

Finally the email that you get send out contains a link to a map with exactly where you are -

image

So if you like the idea of this little app.  You can download the Windows Mobile 5/6 Standard version (aka SmartPhone) version  HERE

You'll need the SQL Compact 3.5 runtime on your device,   which you can get HERE

If you haven't done it already on a Windows Mobile 5/6 phone to configure the GPS Intermediate driver you need the settings tool,  which I've put a link to HERE 

Its a good idea to click these 3 links on your phone,  to save you the bother of having to copy them over from your PC.

I make no claims for reliability, this is very much a work in progress, let me know what you think by sending me a mail (richard@binaryrefinery.com)  or adding a comment.

 

Technorati Tags: ,,
Thursday, May 08, 2008 12:49:22 PM UTC  #    Comments [2]  | 
Wednesday, May 07, 2008

Today's been interesting.   I've been deploying a mobile line of business solution to a customer who is deploying their application to a geographically dispersed (i.e all over the place) audience using both GPRS, WIFI, HSDPDA and Wired Lan.   

They are using a combination of devices ranging from Symbol scanners, to Windows Mobile phones with Bluetooth barcode scanners and mobile Zebra printers.    So here's my top ten tips to help you get through the pain of Compact Framework rollout like this.

1) Centralise

Centralise all of your device deployment - I use a single website to host of of the applications CAB Files.

2) Save your bacon

Implement a global exception handler so if your application does go POP,  you can call a web-service that will send you an email.    Know about problems before your boss does :-)

3) Remote Support

Having a tool like SOTI in your toolbox is invaluable.   I let end users see their IP address on an About window,  so you can quickly establish a SOTI Pocket controller connection to see what's going on, on the users screen.

4) Manage Version Updates

Things will go wrong/people will request changes.    Ensure you have a mechanism to automatically deploy revised versions of your software.    This will save you BIG time in the long run, not having to recall devices back.

5) Test Environment

Keep things easy for yourself have a separate test environment.  Also automate the procedure of rolling changes without intervention from test to live.   This is possibly a statement of the obvious, but in high pressure situation where an end user has encountered a problem you don't want to be hacking out changes into live.

6) One Version Of The Source

I hate maintaining separate source for different sceneries.   One size may not fit all, but it will save you a hell of a lot of time if you've got only one application to change.

7) Lock It Down

If your doing mobile line of business know your audience.   It may be ok if your deploying to power users on their Windows Mobile phones that's one thing.   However if your deploying to ruggedised devices that need to work around the clock hide start menus,  make your application start on device power up.   I also add password protection to settings screens to stop the casual 3am attempt to change stuff on the device.

8) URL's

You'll probably be working in different network environment some people on the network other people connection over the Internet.    Ensure a good policy to cope with resolving server names on devices.   I use the concept of profiles in a configuration file.   i.e a device can be set to be 'Working On LAN',  which will use an local IP address to resolve the server.   Whereas a profile of 'Internet', will use the external fully qualified Internet DNS name.

9) Clocks

This will let you down, time and time again.   You cannot rely on device time clocks to correctly write a timestamp onto a record.    Make sure if you have to write a timestamp in your .Net Compact Framework application you have synchronised the clock of your device to the server (search my blog on how to do this).   Better still always write your timestamp's in on the server side.

10) Configure By Data

Its way easier to have screens that are driven by data rather than coding in how things should operate.   Its way easier to put records in a database to determine what happens out on the device rather than having to change code.

 

Anyway my top 10 list works for me and I hope it helps you.

Wednesday, May 07, 2008 11:42:03 AM UTC  #    Comments [0]  | 
NOMINATE ME
Please
Nominate me in
Wireless and Mobile

 

Wednesday, May 07, 2008 10:56:47 AM UTC  #    Comments [0]  | 
Friday, May 02, 2008

I love this.   A couple of pinvokes to make two applications talk to each other.

To send messages to another application you need the following -

[DllImport("coredll.dll")]
  public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

  [DllImport("coredll.dll")]
  public static extern int SendMessage(IntPtr window, int message, int wparam, int lparam);

Which respectively allow one application to get the window handle on another,  then send a message.

One the receiver side,  its a snap just override the following -

protected override void WndProc(ref Message msg)
{

}

I'm not really filling in all the gaps here I know, but I'll let you explore it works really great.   

Friday, May 02, 2008 10:03:43 PM UTC  #    Comments [0]  | 
Tuesday, April 29, 2008

I've been using a Zebra QL240 Plus printer today to generate pallet labels.

This has saved me a tonne of time.   I've been creating my labels using Label Vista,   the bundled software that comes with Zebra printers.

Get the labels looking nice.   Test print them by hooking up a printer on your PC using USB.

Now here comes the time saving bit.    Save the label file in Label Vista.    Now add the resultant LBL file as content to your compact framework application's project file.    Then simply read the file in code and send it to the appropriate com port.

This way you get all the speed of a nice WYSIWYG environment, with all of the benefit of being able to then use these label format as is, in a mobile line of business solution.

I made a further refinement which searches and replaces any text field on my label to substitute in my own values.   so xxBARCODE becomes the barcode we want etc.

Tuesday, April 29, 2008 2:44:09 PM UTC  #    Comments [0]  | 

Theme design by Jelle Druyts

Pick a theme: