José Roberto's profileJosé Roberto SiqueiraPhotosBlogListsMore Tools Help

Blog


    September 26

    Problem creating data-bound DataGrid in Device Project

    Fonte: http://www.pluralsight.com/community/blogs/jimw/archive/2008/04/08/50683.aspx

    The other day while working in Visual Studio 2008, I encountered an unexpected error while attempting to create a DataGrid by dragging a table from the Data Sources pane onto a form (something we've all done many times).

    At first Visual Studio appeared to be creating the DataGrid and associated components (BindingSource, TableAdapter, etc.) correctly but then Visual Studio threw an error:

    An error occurred while performing the drop:
    Length cannot be less than zero.
    Parameter name: length

    The error message might have been useful if I had access to the Visual Studio source code – but I was just using Visual Studio, not building it. Needless to say, the error message was of little help. J So I did what we all do in such situations, used trial-and-error.

    The project calls a WCF service through a proxy generated by NetCfSvcUtil.exe; as an experiment, I decided to remove the WCF proxy from the project (and any calls to the proxy) to see what happened.

    … VOILA …

    Visual Studio was then able to create the DataGrid with no problem.

    To verify what I had observed, I added the WCF proxy (and any associated calls) back into the project and deleted the DataGrid. Just as before, when I tried to create the DataGrid, Visual Studio threw the same error – so now I know where to start looking for the problem.

    When I checked out the source file for the WCF proxy I realized that there was no namespace declaration. As you may know, if you run the NetCFSvcUtil without specifying the "/namespace" option then the types are not placed within a namespace….

    So as an attempt at a solution, I created the WCF proxy so that the contained types were in a namespace (and added the appropriate using statement to the form class) – I then deleted the DataGrid from the form. Now when I dragged the table from the DataSource pane to the form, the DataGrid was created without any trouble - putting the types in a namespace completely resolved the problem. The program also compiles and runs as expected.

    Now things are working – My assumption at this point was that there must have been a type name conflict (or something similar) between the WCF proxy types and the DataGrid-related types; seemed a reasonable assumption.

    … BUT… here's the thing …

    To confirm my assumption about the name conflict, I created the WCF proxy so that the contained types were not in a namespace (and of course removed the associated using statements) but left the generated DataGrid place. If there were a type name conflict between the DataGrid-related types and the WCF proxy the compiler should report the error

    … BUT … get this …

    The code compiles and runs perfectly --- the namespace was required for Visual Studio to create the DataGrid (and/or associated components) but the namespace is not required for the code to compile and run -- what?!?!

    So what does this all mean? … At this point my guess is that Visual Studio and the DataGrid creation process have a type name sensitivity that may not be consistent with the .NET CF language requirements. If that is the case it would appear to indicate a possible bug but can't be 100% certain until the problem is narrowed down specifically.

    I haven't had a chance to narrow down things further quite yet but I hopefully will shortly. As soon as I have the answer I'll post it here.

    One thing to keep in mind, if you do run into the error I describe above, look for any possible name conflicts or classes outside of a namespace. It seems that there's a good chance that that's the source of the problem.

    I hope to have more to report soon.

    Using LINQ to Access SQL Server Compact Directly – A follow up

    Fonte: http://www.pluralsight.com/community/blogs/jimw/archive/2008/04/18/50753.aspx

    You may recall my webcast from about 6/7 weeks ago where I talked about how to use custom extension methods to allow your mobile device applications to efficiently query a SQL Server Compact (SSC) databases directly.

    I received a question today regarding the webcast. The question relates to the verbosity of returning anonymous types when using the technique discussed in the webcast. For example…

    var records = from order in resultSet
    where (string)order["Ship Country"] == "UK"
    select new
    {
    ShipName = (string)order["Ship Name"],
    ShipAddress = (string)order["Ship Address"],
    ShipCity = (string)order["Ship City"],
    ShipPostalCode = (string)order["Ship Postal Code"],
    ShipCountry = (string)order["Ship Country"],
    ShipVia = (int)order["Ship Via"]
    };

    The verbosity is necessary because "order" in the above LINQ statement is of type SqlCeUpdatableRecord. Although Visual Studio supports generating typed-wrappers for SqlCeResultSet, it doesn't generate wrappers for the SqlCeUpdatableRecord corresponding to the SqlCeResultSet. With that being the case, specifying the individual column values within the anonymous type declaration requires you to use either the indexer (or Getxxx functions).

    Ultimately there's nothing we can do about the way the column values are accessed (unless you write your own typed-wrapper generator for SqlCeUpdatableRecord). What we can do is move the code that creates the anonymous type into a separate function.

    private object ShippingColumns(SqlCeUpdatableRecord order)
    {
    return new
    {
    ShipName = (string)order["Ship Name"],
    ShipAddress = (string)order["Ship Address"],
    ShipCity = (string)order["Ship City"],
    ShipPostalCode = (string)order["Ship Postal Code"],
    ShipCountry = (string)order["Ship Country"],
    ShipVia = (int)order["Ship Via"]
    };
    }

    With that, the LINQ statement becomes very simple.

    var records = from order in resultSet
    where (string)order["Ship Country"] == "UK"
    select ShippingColumns(order);

    Once we move the anonymous type declaration to a separate function we can take things one step further and optimize the column access by caching the column ordinals and then retrieving the column values using the Getxxx functions.

    private object ShippingColumns(SqlCeUpdatableRecord order)
    {
    if (_nameIndex == -1)
    InitializeIndexes(order);
    return new
    {
    ShipName = order.GetString(_nameIndex),
    ShipAddress = order.GetString(_addressIndex),
    ShipCity = order.GetString(_cityIndex),
    ShipPostalCode = order.GetString(_postalCodeIndex),
    ShipCountry = order.GetString(_countryIndex),
    ShipVia = order.GetInt32(_viaIndex)
    };
    }
    private void InitializeIndexes(SqlCeUpdatableRecord record)
    {
    _nameIndex = record.GetOrdinal("Ship Name");
    _addressIndex = record.GetOrdinal("Ship Address");
    _cityIndex = record.GetOrdinal("Ship City");
    _postalCodeIndex = record.GetOrdinal("Ship Postal Code");
    _countryIndex = record.GetOrdinal("Ship Country");
    _viaIndex = record.GetOrdinal("Ship Via");
    }
    private int _nameIndex = -1;
    private int _addressIndex = -1;
    private int _cityIndex = -1;
    private int _postalCodeIndex = -1;
    private int _countryIndex = -1;
    private int _viaIndex = -1;

    Although not a huge performance increase, storing the column indices does eliminate the overhead of the indexer looking up the column name each time. More importantly, using the strongly-typed Getxxx functions eliminates the overhead of boxing any column values that are value-types. As you know, excessive boxing creates a lot of scrap objects which leads to increased memory and garbage collection overhead.

    Using regular class methods like those above work just fine; however, if you find that you use a common anonymous type throughout different parts of your application, you may want to use an extension method – extension methods are also nice just because of their class-member-like syntax.

    public static class ResultSetExtension
    {
    public static IEnumerable<SqlCeUpdatableRecord> Where(
    this SqlCeResultSet resultSet, Func<SqlCeUpdatableRecord, bool> theFunc)
    {
    return new PrepAwareEnumerableWrapper(resultSet, theFunc);
    }
    public static object ShippingColumns(this SqlCeUpdatableRecord order)
    {
    if (_nameIndex == -1)
    InitializeIndexes(order);
    return new
    {
    ShipName = order.GetString(_nameIndex),
    ShipAddress = order.GetString(_addressIndex),
    ShipCity = order.GetString(_cityIndex),
    ShipPostalCode = order.GetString(_postalCodeIndex),
    ShipCountry = order.GetString(_countryIndex),
    ShipVia = order.GetInt32(_viaIndex)
    };
    }
    private void InitializeIndexes(SqlCeUpdatableRecord record) { ... }

    With the extension method, the LINQ statement becomes…

    var records = from order in resultSet
    where (string)order["Ship Country"] == "UK"
    select order.ShippingColumns();

    A couple of notes before I finish up…

    One thing to keep in mind is that all of these functions that create the anonymous type have a return type of object. This means that the IEnumerable<T> collection that is created by the LINQ statement will be of type IEnumerable<object> rather than IEnumerable<compiler_generated_type>. In most cases this difference does not matter but it is something to be aware of.

    And for a final note, if you do find yourself returning the same anonymous type construct from a number of LINQ statements, you might want to consider defining an explicit type and then constructing instances of that type within the LINQ statement. In my experience, anytime I find myself using an anonymous type/function/etc. more than once or twice that I ultimately end up needing access to it in my code in a non-anonymous fashion.

    To return a specific type from a LINQ statement, simply define a type that has a constructor that accepts a SqlCeUpdatableRecord and assigns the desired columns to the corresponding type members – basically the constructor will look like the ShippingColumns methods shown above. Assuming that you've defined a class named ShipInfo with the appropriate constructor, your LINQ statement would look like the following…

    var records = from order in resultSet
    where (string)order["Ship Country"] == "UK"
    select new ShipInfo(order);

    I've updated one of the samples from the original webcast to include examples of what we've talked about in this post. If you'd like the updated sample, you can download it from here. The methods you'll want to look at in the download are menuRedefineType_Click, menuDynamicType_Click, menuDynamicTypeExtMethod_Click all of which are in the Form1.cs source file.

    Debugging device cellular connection code without ActiveSync interference

    Fonte: http://www.pluralsight.com/community/blogs/jimw/archive/2008/07/16/debugging-device-cellular-connection-code-without-activesync-interference.aspx

    I had a situation today where I needed to debug some code that used Connection Manager to establish a cellular connection. The challenge was that the connectivity problem was only observed on certain devices therefore I couldn't use the Device Emulator & Cellular Emulator to debug … I needed to debug on a real device.

    This all sounds simple enough until you start to try and do it… In order to debug application code using Visual Studio, I have to connect the device to my desktop using ActiveSync or WMDC.

    Now here's the problem…

    I want my application to establish a cellular connection but ActiveSync/WMDC provide the device with network connectivity … as a result any call to ConnMgrEstablishConnection or ConnMgrEstablishConnectionSync to establish the network connection returns with a successful connection but not a cellular connection because Connection Manager is recognizing that the current ActiveSync/WMDC connection meets the application's network connectivity requirements.

    I could modify my code to explicitly establish a cellular connection but I want to debug the application code as it will run in real life. In real life, I want Connection Manager to choose the appropriate connection … I just need to debug the cellular scenario right now.

    I have to say that I did stare at my screen for a minute or so wondering what kind of kludge I could come up with to get the device to not use ActiveSync/WMDC and then I realized … the answer is quite simple.

    Windows Mobile manages connections as connecting to Work Network or connecting to The Internet. Since I'm trying to create a cellular connection, I want an Internet connection. All I need to do is tell the device that ActiveSync/WMDC doesn't provide Internet connections.

    On the ActiveSync Connection Settings dialog there's a selection that reads "This computer is connected to:" with a default value of Automatic. Simply changing that setting from Automatic to Work Network solves all my problems.

    Now when I call connection manager requesting a connection that reaches a location on the Internet, Connection Manager looks at the ActiveSync/WMDC setting and determines that ActiveSync/WMDC connection cannot meet that requirement; therefore, Connection Manager looks for other choices which then initiates a new Cellular Connection just as it would in the field when not connected to ActiveSync.

    Viola … I can debug my cellular connectivity code J

    Like many of us, I've often found the whole Windows Mobile Work Network vs. The Internet connectivity handling to be a bit of a pain but in this case it did make my life easier. Of course what would be even better is to have a way to explicitly do what I really wanted to do… setup an application debugging scenario that let's one choose whether ActiveSync should be considered a viable connection route during application debugging.

    Mozilla confirms Firefox Mobile is coming in 2010

    Fonte: http://www.unwiredview.com/2008/09/19/mozilla-confirms-firefox-mobile-is-coming-in-2010/

    Mozilla is a lot like Google: they tirelessly innovate at what they do best. Or at least, that’s the public’s perception of them.

    So in view of giving users more flexibility when it comes to browsing the Internet on their mobile phones or other handheld devices, Mozilla plans to introduce a mobile version of the Firefox web browser by 2010.

    Granted, 2010 is still quite a long wait, but then again, creating a mobile version of one of the world’s most popular browsers isn’t exactly a piece of cake. And hopefully, Mozilla will use its time to make mobile Firefox hassle-free for users.

    The mobile version of Firefox would be pitted against the likes of Opera Mini, Internet Explorer, and Mobile Safari, and should adopt the same “desktop feel” as its desktop counterpart. Apart from what’s mentioned, no other details about mobile Firefox were provided. We guess it’s up to 2010 for us to wait, then.

    Via The Register

    Update: Well, there’s a piece of good news. Apparently there was some misunderstanding in the article TheRegister reported and you might see mobile Firefox much earlier. The alpha version for geeks might be even out by the end of this year. Here’s comment we received from Tristan Nitot from Mozilla Europe:

    Dear Unwiredview.com, I think there is a slight misunderstanding: I’ve never announced a shipping date for Firefox Mobile. Ever. The reason why is that I don’t know when it’s going to be released.

    However - and this is probably how you have got the information wrong - my colleague Mitchell Baker, has posted about our 2010 goals on her blog: http://blog.lizardwrangler.com/2008/09/11/proposed-2010-goals/ . It does mention Mobile.

    She explains in more details in a subsequent post:

    > I saw one press article wondering if including “have an effective product in the mobile space” in our 2010 goals means that we won’t ship something interesting until 2010.  That is not the case at all.  We will ship well before then.  The intent of this goal was to say: in 2010 when we look at where we are, it should be screamingly obvious that we’ve done this.   That means releasing a good product much sooner, seeing good results and acceptance, and seeing those results grow over time.

    Source: http://blog.lizardwrangler.com/2008/09/21/diving-deeper-into-the-proposed-2010-goal-for-mobile/

    I have discussed Firefox Mobile (codenamed Fennec) in the past saying that we should see an Alpha pre-version hopefully before the end of the year if it’s ready. I would appreciate if you could edit your article accordingly.

    –Tristan Nitot
    Mozilla.

    HTC Touch HD - first review in pictures

    Fonte: http://pockethacks.com/htc-touch-hd-first-review-in-pictures/

































    And another video review:

     

    small utility: cab batch install (a batch installer) with source

    Fonte: http://forum.xda-developers.com/showthread.php?t=407885

    Introdution:
    This small app will help you out when you have a bunch of cab files to install after flashing the new rom.

    How to use:
    1. Select or input a directory that contains a bunch of cab files.
    2. Generate the list file that is [INSERT SELECTED DIRECTORY]\batch-list.txt. You can manually edit this file to select which to install.
    3. Batch install. It will promot you if you really want to install that file.

    Problems:
    1. The small utility can not silently install cab files.

    Todo:
    1. More UI friendly to select the files.

    Note:
    I am rather new at windows mobile programming. I have learned it from scratch. The whole program uses pure C and winapi, no managed code, no MFC/ATL.

    Acknowledge:
    Thanks legedug for packaging the cab file.

    Copyleft:

    The source code is available, anyone can modify it and redistribute it. But you should contain at least a piece of my name in it and should distribute with full source code.

    Attached Files

    File Type: zip
    CabBatchInstall.zip (29.1 KB, 164 views)

    File Type: cab
    CabBatchInstall CabBatchInstall.cab (24.3 KB, 71 views)

    TCPMP new VS2008 builds for WM6.1 with FLV built in

    Fonte: http://pockethacks.com/tcpmp-new-vs2008-builds-for-wm61-with-flv-built-in/

    The image “http://tbn0.google.com/images?q=tbn:LazouxvzekaloM:http://www.hellomotoq.com/forums/downloads/tcpmp%255B1%255D_8uW.png” cannot be displayed, because it contains errors.

    These new builds have 2 main advantages over the original builds:

    1) They run on the latest Windows Mobile 6.1 ROMS where the original build crashes (crash.txt message).
    2) They support the FLV format straight out of the CAB.

    On the Kaiser you must use ‘GDI’ or ‘Raw FrameBuffer’ for decent performance, unless you have the latest WM6.1 roms which have Directdraw working at a reasonable pace.

    Changelog

    recomp-02

    Added MPEG4.PLG from source found in TCPMP 0.66
    FFMPEG updated

    recomp-03 - 27/5/08

    Installs and runs on WM2003 devices
    Detects Kaiser, allows ‘Direct’ video output
    Source zip now has ASM files
    Small optimizations

    Download

    How to format SD and SDHC memory cards

    Fonte: http://pockethacks.com/how-to-format-sd-and-sdhc-memory-cards/

    Panasonic SDFormatter - the universal format tool for SD and SDHC cards. This tool also supports the biggest SDHC cards (16 GB capacity or more) and format them correctly, with some options:

    Format type: Quick, Full Erase ON and OFF

    Format size: adjustment: ON/OFF

    format sdhc card

    Download

    Windows Mobile 7 deve atrasar um semestre

    Fonte: http://info.abril.com.br/aberto/infonews/092008/23092008-3.shl

    SÃO PAULO - Parceiros da Microsoft esperavam o Windows Mobile 7 para o início de 2009, mas estréia deve atrasar.

    Embora a Microsoft nunca tenha definido uma data exata para a estréia do Windows Mobile, fabricantes de celulares parceiros da companhia acreditavam contar com o sinal verde da Microsoft para oferecer dispositivos com a nova versão do Windows já no início de 2009.

    De acordo com a Cnet, a Microsoft entrou em contato com integradores de celulares para avisar que a estréia do novo sistema operacional móvel só deverá ser possível no segundo semestre do ano que vem.

    A notícia é um forte revés para os parceiros da Microsoft, que precisam competir com os novos recursos do iPhone 3G, novos modelos da RIM e com os celulares que rodarão Android, o sistema operacional promovido pelo Google. Nesta terça (23), a T-Mobile e a HTC vão exibir o primeiro smartphone com Android.

    Entre os recursos que a Microsoft desenvolve para o Windows 7 estão adaptar o sistema operacional para suportar os novos recursos do Internet Explorer desenvolvidos, originalmente, para desktops.

    Outras características são o reconhecimento de gestos via câmera do celular e aplicativo para reconhecimento de voz, que permitirá realizar operações no celular por gestos ou voz.

    September 23

    Oxios Memory 1.40

    Fonte: http://www.oxios.com/memory/

    Download Oxios Memory for free!

    Oxios Memory 1.40

    Release memory on your Windows Mobile (Freeware)
    Oxios Hibernate attempts to release as much memory as possible without damaging the internal state of the Windows Mobile device (Pocket PC or Smartphone).
    Oxios CloseApps closes down other applications by sending "Close" messages.

    Oxios Hibernate 1.40

    WM_HIBERNATE is a window message that is generated by the Windows operating system and sent to an application when system resources are running low. All applications should get the message and handle it by attempting to release as many resources as possible by unloading processes, destroying windows, or freeing up as much local storage as possible without damaging the internal state of the system.
    Oxios Hibernate sends WM_HIBERNATE to all applications.
    Oxios CloseApps 1.40
    Each process started on a Windows Mobile-based Smartphone allocates memory, which cannot be released but is automatically freed when the application process ends.
    Oxios CloseApps closes down all applications by sending WM_CLOSE messages.
    Info: There is no way to suppress the dialog box!
    Recommendation: Add a Speed Dial on it!
    It enables you to activate it using a single key-press or voice tag.

    Download Oxios Memory for free!
    53 KB

    System Requirements

    Smartphone or Pocket PC

  • WM 6 (All editions)
  • WM 5 (All editions)
  • Pocket PC 2003
  • Smartphone 2003
  • Pocket PC 2002
  • Smartphone 2002
    11 KB free storage space
    Read More...
  • Users' Comments

  • Try this Smartphone Application, works wonders!
  • It actually seems to reclaim better than SKTools, and MemMaid combine...
  • Much quicker than a soft-reset. Highly recommended!
  • Other Softwares

    Oxios ToDo List 6.1
    Manage your Outlook Tasks on your Windows Mobile Standard (aka Smartphone).!

    Oxios ToDo List (Tasks on Smartphone)

    Oxios Alarms 1.3
    The best tool to use your Smartphone as an alarm clock.

    Oxios Tasks Plugin 1.61
    Tasks on Smartphone Home Screen (Freeware)

    Other Screenshots

    Pocket PC
    Windows Mobile Pocket PC
    Smartphone Landscape
    Windows Mobile Smartphone Landscape

    September 20

    Usefull PocketPC Apps & Resources

    Fonte: http://james.manners.net.au/2006/11/28/pocketpc_apps/

    After buying my first Windows Mobile phone a O2 Atom, I was immediately disappointed.  Coming from a Nokia that did what it needed to do and did it well.  For a multi-function device it did lots of things, but only poorly.  Slowly, slowly I have found third party software that adds, what I believe, basic functionality to my phone that should have been there from the start.

    The first thing to do is ensure that your phone has the latest firmware.  Visit the
    web site of your phone’s manufacturer and get any updates.  Another good source of phone firmware originally manufactured by HTC is
    XDA-Developers.  Most HTC phones were sold with different names so if you’re not sure, head over and check out the pictures to see if your model is there.  If it is, there is a very active community working on (un)official firmware for their phones.

    Please feel free to leave your comments/suggestions for other programs/services at the bottom of the page.

    Software in Use

    This following is a list of programs that are currently installed on my Pocket PC.  These are the applications that I found when I was setting it up and have proved useful enough not to be uninstalled.

    • WinMobileApps Phone Profiles - This is a Phone Profiles manager that allows you to set the ring volume/tone, alert and wireless signal settings to a predefined profile.  It can then be changed quickly and easily from the “today screen”.  Free
    • WM5torage - This is a program that allows your phone to act like a USB memory stick and access the local file system or memory card directly from any PC without ActiveSync.  This is a free program that is not guaranteed to work with all Pocket PC’s.
    • SPB Pocket Plus - This is a powerful program with many features.  Amongst the many, Pocket Plus is a “today screen” plug-in allowing you to add shortcuts to programs and folders (as you would on the desktop of a PC) and meters for things like battery level, storage space on your “today screen”.  It is also able to integrate with other SPB products and some other programs (Media Player) through plug-ins available from the SPB website.  Paid Software
    • SPB Diary - Diary is a Personal Information Manager (PIM) that allows you to see upcoming appointments, tasks, contacts, notes, messages etc… from your “today screen”.  It can be run either as a standalone application or integrated with Pocket Plus.  It is a significant improvement over the standard Windows “today screen” plug-ins.  One simple and  huge advantage is that you can see upcoming birthdays and anniversaries from your contact details without having to sync your contacts to Outlook and have outlook create separate appointments.  Paid Software
    • Opera Mobile - With Pocket Internet Explorer so limited Opera Mobile is an excellent browser replacement.  Paid Software
    • Skype - Combined with Wi-Fi (and 3G data if you have a fixed price unlimited plan) Skype allows you to make free calls from your phone to another computer or significantly cheaper calls to landlines.  Combined with free hot spots (found occasionally in airports/hotels) makes a great way to stay in contact when on the road.  Free
    • XNView Pocket - XNView is a photo browser and editor that has more features and is more powerful than the standard image browser included with Windows Mobile.  Free
    • ShoZu - ShoZu (Don’t ask me how to pronounce it) is a program that allows you to upload content to a large number of destinations (Blogs, Flickr, YouTube etc…)  I use it as a tool to upload photos to our flickr account whilst we are away from a computer.  Free
    • Core Portable Media Player (TCPMP) - This is a media player capable of playing a significantly greater range of media files than Windows Media Player.  At the moment, the current stable release is not compatible with the O2 Atom, but the beta release is.  There is a free and paid for version.
    • Pocket Sudoku - A Sudoku program compatible with Windows Mobile. Free
    • Kevtris - Tetris for Pocket PC. Free
    • Time/Date Today Screen Plugin - This is a simple little today screen plugin that allows you to customise the time/date display on the today screen. Yo ucan increase the font size (I can read it first thing in the morning now :) ), choose to display on date or time, change format etc… Free

    Programs to Watch

    The following is a list of programs that aren’t installed on my phone for various reasons but are still programs that I want to keep track of.  They are either alternatives for programs included in the list above or are programs that aren’t yet available for my phone or for still in early stages of development.

    • PPCProfiles Pro - Alternative for Profiles, possibly more powerful and advanced.  Free
    • iLauncher - Alternative for SPB Pocket Plus.  Highly recommended on XDA Developers board and reportedly uses less resources (ie: faster) than Pocket Plus.  Paid Software
    • PocketBreeze - Replacement for SPB Diary, Integrated with iLauncher, possibly uses less resources than Pocket Plus/Diary.  Paid Software
    • Minimo - Lightweight version of Firefox for mobile devices (Mini MOzilla).  At the moment, it appears to be early on in development but is very promising.  With development could provide access to newer web sites that require javascript (not currently supported by either Pocket Internet Explorer or Opera). Free
    • CoolCamera - CoolCamera is a replacement for the inbuilt camera software with several advantages - Faster, Advanced Controls, Ability to use camera as remote WebCam for desktop chat software (Skype/MSN etc…).  At the moment it works only with a limited number of phones (see web site for details) but development is ongoing. Paid Software
    • XCPUScalar - This is a program that allows you to overclock your Phones processor for better performance (shorter battery life) or longer battery life (slower performance). Paid Software
    • Mobie Groupwise - Windows Mobile client for the brilliant (sic ;-p) Novell Grouwise email system

    Mobile Web Services

    The following is a list of web services that integrate with a Pocket PC and extend their functionality.

    • Mail2Web Live - Mail2Web provides a free hosted Exchange Server service.  This includes access to Exchange ActiveSync and Push Email.  These two services allow you to remotely synchronise your contacts/appointments/tasks/emails without the need for ActiveSync to be installed locally.  It can be integrated with a Mac to allow for a ActiveSync replacement.  See here.
    • Funambol - Funambol is a company that creates software for remote contact/appointment synchronisation.  It is broken into two halves, a server side and client side.  They make a Windows Mobile compatible client for synchronisation with their servers.  You can choose between their Hosted Portal or a service like ScheduleWorld.  An excellent write up on how to synchronise information between multiple sources is located here.  With a little further development, this could be an excellent alternative to Exchange Server and more flexible allowing for integration with a greater number of services.
    • Scanr - Scanr is an online tool that takes photos of documents, whiteboards, business cards cleans them up and emails you a PDF or vCard with the details.  The business card tool has great potential but requires a good camera to work properly.  The document tool is also useful if you need to fax or scan a document quickly for record keeping.

    Themes

    SPB Unithemes - Nicely integrated, complete themes

    Zombienexus Pocket PC Skins - Advanced themes, most require additional programs

    Install .Net Compact Framwork without Activesync

    Fonte: http://james.manners.net.au/2006/11/28/install-net-compact-framwork-without-activesync/

    The following is a summary on how to install .Net Compact Framework on a PocketPC without Activesync.

    1. Download .Net Compact Framework from Microsoft
    2. Using a Windows PC, extract all the files from the installer package by running the following command msiexec /a PackageName.msi from either the command line or the run dialog box. The /a ommand specifies to run it ass an adminstrative install that will extract the files to a specified location rather than install them as usual. Replace PackageName.msi with the name of the installer you downloaded in step 1.
      • For non-windows systems (linux/mac etc…) 7-Zip is supposedly (I haven’t tested it myself) able to extract files from .msi files. If you goto to the download page, at the bottom there is a list of unofficial packages for other systems.
    3. The installer program for .Net Compact Framework will now open. Follow the steps for the installer, you will be prompted for a location to extract the files.
    4. you will need to identify the correct CAB file from this list in the files extracted in step 3.
    5. Once you have located the correct file, transfer it to your PocketPC (for example, Memory Card, InfraRed, Bluetooth, Email…)
    6. Open the CAB file on your device. This will install .Net Compact Framework and you will be able to use any program that requires it.

    Export Contacts

    Fonte: http://www.wm-soft.com/products/export-contacts

    Windows Mobile 5 device to HTML or XML file.
    Everyting can happen, so it’s better to have several backups of your contacts, not only in PC outlook. Or may be you’re using Linux and can’t sycnronize your WM5 device with PC.

    This small freeware tool can export all contacts from your Export Contacts exports more than 50 properties, including photos and ringtones!

    Export ContactsExport Contacts

    I’m going to add importing feature in future version!

    This software requires Windows Mobile 5 device (Smartphone or PPC) and .NET Compact Framework 2 installed!

    Download Export Contacts

    Top 10 Applications – What’s on your device?

    Fonte: http://blogs.msdn.com/jasonlan/archive/2008/09/19/top-10-applications-what-s-on-your-device.aspx

    I haven’t posted a new version of this for a while and I just changed to a new Windows Mobile device so I thought I’d post a list of the Top 10 applications I install on my phone!  These aren’t in any particular order :)

    1) Guitar Hero III - a great game to play on your device - http://www.winplay.com/game/GuitarHeroMobile

    image

    2) Intelligolf - Excellent application for keeping track of your golf games - www.intelligolf.com

    image

    3) Sling player Mobile - A Slingplayer allows you to view your TV from your laptop or PC.  Sling player mobile allows you to do the same thing from your mobile device.  You can even control your home satellite or other source from your device! - http://www.slingmedia.com/go/spm-features

    image

    4) Live Search - this is a fabulous application actually written by Microsoft that allows you to connect to a wide variety of web services to get mapping information, local information such as restaurants and other services, gas prices, traffic and weather.  http://wls.live.com

    image

    5) SPB Insight - I've tried a wide variety of RSS readers but this is the one I always end up back using - http://www.spbsoftwarehouse.com/products/insight/?en

    image

    6) Suduko - I got hooked on Sudoku a long time ago.... http://www.astraware.com/ppc/featured/sudoku/?skucode=0047-000-0379

    image

    7) Communicator Mobile  - the secure IM client for Office Communications Server 2007 (OCS) - http://www.microsoft.com/downloads/details.aspx?FamilyId=2EEA3E24-F216-4887-92B0-F37D942E26E0&displaylang=en

    image

    8) Power SMS – A great SMS utility for AutoReply and GroupSMS - Power SMS

    200809081914.jpg

    9) TinyTwitter – I think this is the best client for Twitter on Windows Mobile right now! http://www.tinytwitter.com/

    image

    10) Windows Mobile WiFi Router – this allows you to turn your Windows Mobile device into a WiFi Access Point  - http://www.wmwifirouter.com/

    As always – feel free to comment on the applications you have on your device!

    Filed under: Windows Mobile, Applications

    System Center Mobile Device Manager 2008 Downloads

    Fonte: http://technet.microsoft.com/en-us/scmdm/bb986593.aspx

    Download updates, tools, and documentation to help you configure, deploy, and manage System Center Mobile Device Manager (MDM) 2008 and its components.

    Featured Downloads

    Download New Versions of MDM Resource Kit Tools
    Download New Versions of MDM Resource Kit Tools

    A variety of tools are available to help you configure, deploy, operate and maintain MDM and its components. Learn more about the latest release of these tools and where to download them.

    Evaluate System Center Mobile Device Manager 2008
    Evaluate System Center Mobile Device Manager 2008

    When combined with Windows Server platform services such as Group Policy and Windows Software Update Services, System Center Mobile Device Manager 2008 is a powerful solution for managing Windows Mobile powered devices in a scalable manner for your enterprise.

    Download Windows Mobile Line of Business Solution Accelerator 2008
    Download Windows Mobile Line of Business Solution Accelerator 2008

    The Windows Mobile Line of Business Solution Accelerator is a sample line-of-business application that showcases the latest design principles and technologies in the mobile space.

    Resource Kit Tools and Documentation Downloads
    • Resource Kit Tools

      Find tools designed to make deploying and administering MDM easier.

    • Documentation

      Download guides compiled from Technical Library content.

    Using WM 6.1 Images on the Device Emulator with MDM

    Fonte: http://technet.microsoft.com/en-us/library/cc461417.aspx

    The Microsoft Device Emulator uses the following two emulator images to simulate the use of a Windows Mobile 6.1 device:

    • The WM 6.1 Professional image simulates a Windows Mobile PDA.
    • The WM 6.1 Standard image simulates a Windows Mobile smartphone.

    Use the appropriate Device Emulator to simulate the use of a Windows Mobile 6.1 device on your System Center Mobile Device Manager (MDM) system. You will get both emulators in the Windows Mobile 6.1 Emulator Images download which is available on the Downloads page of the following Microsoft Web site: http://go.microsoft.com/fwlink/?LinkId=115896.

    Requirements

    Before you install and configure the Device Emulator, make sure that the computer hosting the Device Emulator meets the following requirements:

    • Is running a 32-bit version of the Microsoft Windows® operating system
    • Has Microsoft Virtual PC installed
    • Has a connection to the MDM Gateway Server.
    Host Computer

    Do not install the emulator software on a computer running a 64-bit version of Windows. Install the software on an x86-based computer that is running a 32-bit version of Windows.

    Microsoft Virtual PC

    To establish communications, the Device Emulator requires a virtual machine (VM) network driver that enables you to configure the emulator to use the physical network card. This VM network driver is available with Microsoft Virtual PC, which is a free download at this Microsoft Web site: http://go.microsoft.com/fwlink/?LinkId=46859

    Direct Internet Connection

    For MDM features to function, the Device Emulator must be running in an environment that has a direct connection to the Internet. If you are working in a lab environment and can connect directly to the MDM Gateway Server, you do not need an Internet connection.

    Process Overview

    To simulate devices running Windows Mobile 6.1 on your MDM system, you will perform these steps:

    1. Install the Device Emulator Software.
    2. Establish Network Connectivity on the Emulator.
    3. Validate Device Emulator Connectivity.
    4. Enroll the Simulated Device with MDM.
    5. Enable Logging on the Simulated Device.

    GUI CAB Signing Utility

    Fonte: http://tools.enterprisemobile.com/cabsign/

    CAB files are used for installing applications on Windows Mobile devices. When the installation and execution security policy is enabled on Windows Mobile devices, all CAB files must be signed prior to deployment onto a device. Microsoft provides a command line tool, cabsigntool.exe, to sign CAB files which requires the administrator to understand and configure a number of parameters making the process both time-consuming and cumbersome.

    Download CAB Signing Utility

    Features and Benefits

    • A GUI interface for signing CAB files minimizes the chance of errors while expediting the process.
    • Replace existing CAB file signatures with your own signature.
    • Sign multiple CAB files at once.

    System Requirements

    • Requires Microsoft Vista or Windows XP

    Windows Mobile 6.1 upgrades

    Fonte: http://blogs.msdn.com/jasonlan/archive/2008/09/19/windows-mobile-6-1-upgrades.aspx

    I’m often asked for a list of devices that now have Windows Mobile 6.1 upgrades.  I think this is the full list although if I’ve missed any upgrades please leave a comment and I’ll make sure to update it!

    Device
    Mobile Operator
    Download

    Motorola Q9c
    Verizon
    http://direct.motorola.com/hellomoto/motosupport/source/SoftwareUpdateSummary.asp?country=USA&language=ENS&web_page_name=SUPPORT&strCarrierId=Verizon%20Wireless&strPhone=MOTO%20Q9c&strCable=Mini%20USB%20Data%20Cable

    Samsung Blackjack 2
    http://ars.samsung.com/customer/usa/jsp/faqs/faqs_view.jsp?SITE_ID=22&PG_ID=557&PROD_SUB_ID=558&PROD_ID=957&AT_ID=132705%20

    Tilt
    AT&T
    http://www.htc.com/us/SupportDownload.aspx?p_id=67&cat=2&dl_id=94

    UT Starcom XV6800
    Verizon
    http://handsets.utstar.com/view_phone_details.aspx?mcode=XV6800&bID=89&sAct=0

    Motorola Q9h
    http://direct.motorola.com/hellomoto/motosupport/source/softwareupdatesummary.asp?country=USA&language=ENS&web_page_name=SUPPORT&strCarrierId=ATT&strPhone=MOTO%20Q9h&strCable=Mini%20USB%20Data%20Cable&chkwarranty=true&hdnShowPage=second

    TyTn 2
    HTC
    http://www.htc.com/europe/supportdownloadlist.aspx?p_id=13&cat=all

    TyTn 2
    Orange
    http://www1.orange.co.uk/download/htc/RUU_Kaiser_ORANGE_UK_3.28.61.0R_radio_sign_25.83.40.02_1.65.16.25_Ship.exe

    Mogul
    Sprint
    http://www.htc.com/us/FAQ_Detail.aspx?p_id=75&act=sd

    Samsung SCH-i760
    http://ars.samsung.com/customer/usa/jsp/faqs/faqs_view.jsp?SITE_ID=22&PG_ID=557&PROD_SUB_ID=561&PROD_ID=833&AT_ID=133263

    XDA Stellar
    O2
    http://www.my-xda.com/software_updates.jsp

    v1615
    Vodafone
    http://help.vodafone.co.uk/v1615upgrade.php

    XDA Orbit 2
    O2 Germany
    http://www.o2online.de/nw/support/downloads/software/xda/xdaorbit2/index.html

    Asus P527
    http://support.asus.com/download/download.aspx?model=P527&f_name=v4237_wwe_na_ext_v204.zip&SLanguage=en-us

    Telus S720
    Telus
    http://www.htc.com/us/SupportDownload.aspx?p_id=79&cat=2&dl_id=106

    September 19

    Profile your windows mobile application

    Fonte: http://jajahdevblog.com/tzah/?p=12

    This post is aimed to windows mobile developers looking for a profiler for their mobile application. I came across EQATEC profile. This tool is great! You can run it on all .NET apps including .NET CF 2.0 and 3.5.  The usage is quite simple:

    1. Compile your application as usual. If you wish, you can later add profiler-attribute later for fine tuning the profiler.
    2. Use the profiler to build a profiled version of your application. The profiled assemblies are typically 30% larger than the original and runs 30% slower. I believe that for most apps that is acceptable.


    profiler

    1. Deploy the profiled version and run it on your device. Your device doesn’t have to be connected via the ActiveSync for this step. After the application finished, find the report file. Usually, it will be be on ‘Temp’ folder or on SD card if you have one.
    2. Drag the report file to your desktop, and from there, to the profiler viewer.
    3. After a few minutes, people around you would probably find you mumbling “OMG, what the…?, I didn’t believe it takes so much time! And why the hell this method is called so many times”.

    I found the viewer useful for the following points:

    1. Find out your bottle-necks methods. This could be methods that takes long time to execute, or relativity fast methods that are called numerous times.
    2. Find out what happens inside your code. You might realize that you overlooked some calls to method that consumes most of the application time.
    3. Prioritize your work. The 80-20 rule will work here. You’ll find out that most of the delays are trackable and easy to resolve.

    For more information and understanding on how to use the profiler, go to the guide.

    BTW, EQATEC also have a tracer tool. However, it is an on-line tool that drastically reduces the performance of your application. For example, the bubbles example application rate was reduced from 54 frames/seconds to 3!

    profviewer

    How To Sync your mobile Contacts: Use Zyb

    Fonte: http://jajahdevblog.com/jasmine/?p=80

    When I was in the MWC (a.k.a 3GSM) in Barcelona, I encountered an interesting company by the same of ZYB (and also interesting name…:P )

    ZYB

    They introduced a mobile application, that is an addition to your address book/contacts and allows you to have extra features  that are related to your contacts and mobile devices do not support. the nice thing about the application is that you can access the features just by a click, and as you where browsing your regular contact list.  they had features such as sending an instant message and getting your friend’s location. They also do contact synchronization.  out of allot of companies that I saw in the WMC,  Zyb really stood out.

    When getting back to the office, I checked out Zyb. It seemed that the features they demonstrated in 3GSM where not published, so I used their contact synchronization service, and I was very much satisfied. their technology uses Sync ML and is very simple and user friendly.

    You go to the Zyb site, set up your phone, get a SMS with the SyncML settings and start syncing away!

    For me, their service is very good. I change mobile devices frequently, in order to test new devices, and also when going abroad. I also have 2 mobile devices, one in the car and one for every day usage. although I have a SIM card and most contacts are stored in the SIM, there are cases when not all contacts are saved on the SIM (if someone sends you a contact by SMS…).Its also very good to backup. You can also edit your contact easily on the web, with a regular keyboard, lazy  lazy me :)

    Selecting what device to Sync

    The nice thing abut ZYB is that you can setup a device once and then sync it, so if you setup several devices, all settings are saved and you can chose what device to sync. - very comfortable

    There is also an  option to re-set your device settings and resent a SMS with the SyncML settings. This was useful after breaking my SE Z610i. I got a new one and I wanted to sync my contacts, I just chose to sync that device, and set it up. a SMS was sent to my new device and I was ready to go! for some reason all my contacts where duplicated, but they had a solution for it!

    Cool feature - Merge duplicated contacts: funny enough, after getting duplicated contacts I found a solution , there was a "merge duplications" option. Using this option you get all the duplicated phone numbers, or any contacts that may be duplicated (also by contact name). You can choose to merge them, on the web site with a comfortable screen and keyboard. after doing that, I synced my device again and every thing was good.

    Cool feature - Internet calls: you can also make an Internet/Voip call directly from the web site, to any of your contacts using Skype, by a link. what about calling via JAJAH? well lets wait and see…also for now, the JAJAH Firefox Extension does not mark the contact number, allowing you to make a quick JAJAH Call

    Needless to say that they have a privacy policy and your data is safe. you can also create a social network in the site, but I didn’t check that out (yet…). I would like to have an option to sync my Facebook events with my mobile, using SyncML…

    To summarize: I recommend this service very much, very simple and user friendly. I have been using if for more than 6 month and I’m very satisfied,  and its free :)