<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Ming's Embedded Blog</title><subtitle type="html" /><id>http://blogs.msdn.com/mingwang/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mingwang/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/mingwang/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2008-10-08T09:58:00Z</updated><entry><title>DevHealth and DevHealthViewer</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mingwang/archive/2009/03/04/devhealth-and-devhealthviewer.aspx" /><id>http://blogs.msdn.com/mingwang/archive/2009/03/04/devhealth-and-devhealthviewer.aspx</id><published>2009-03-05T01:16:00Z</published><updated>2009-03-05T01:16:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%; mso-bidi-font-family: Arial"&gt;&lt;FONT face=Calibri&gt;As many of you know, MemoRX should not be used for Windows Mobile 6.1 development, instead we recommend developers to use DevHealth &amp;amp; DevHealthViewer. The DevHealthViewer tool replaces MemoRX and displays much more information than what MemRX did. Typically you will run DevHealth to capture a snapshot of your virtual memory usage (the log file is called mem_X.txt), run the tests, and then run DevHealth again to capture the virtual memory snapshot after the test. By using DevHealthViewer, you can visually compare the two memory snapshots and see which process is leaking memory during your test. Though DevHealth &amp;amp; DevHealthViewer do not tell you which function or module leaks the memory, it will point the process you should focus on. From here, you can use other tools such as Application Verifier to shim the module and gather the callstack for memory leaks!&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; LINE-HEIGHT: 115%"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9458993" width="1" height="1"&gt;</content><author><name>mingwa</name><uri>http://blogs.msdn.com/members/mingwa.aspx</uri></author><category term="DevHealth" scheme="http://blogs.msdn.com/mingwang/archive/tags/DevHealth/default.aspx" /><category term="memory leaks" scheme="http://blogs.msdn.com/mingwang/archive/tags/memory+leaks/default.aspx" /></entry><entry><title>Automating DevHealth runs</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mingwang/archive/2009/01/12/automating-devhealth-runs.aspx" /><id>http://blogs.msdn.com/mingwang/archive/2009/01/12/automating-devhealth-runs.aspx</id><published>2009-01-13T00:16:00Z</published><updated>2009-01-13T00:16:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Hope everyone had a good New Year. I was doing some Hopper runs on a partner device and gathering DevHealth logs to see memory usage over time. It was rather painful to manually collect the DevHealth logs since Hopper was interrupting me (did not have KITL so could not launch DevHealth from the Target Control Window) and I also wanted to run DevHealth at specific intervals, say every 60 minutes. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;I decided to write a quick application to help me do this and now am sharing my experiences with you. The application I created as a no-frills command-line app. The pseudo-code for the application follows:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;FOR i = 1 TO X&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Create DevHeath Process&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Wait until DevHealth Process has finished&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;IF I == X -1 THEN&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in; LINE-HEIGHT: normal"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Exit loop&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Sleep for Y seconds&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;END FOR&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Where X is the number of times you want to launch DevHealth to collect samples (for me this value was set to 25) and Y is the time between collecting the DevHealth logs (I set this at 3600 seconds). Some implementation notes is that you can use CreateProcess to create the DevHealth process and do a WaitForSingleObject on the process handle (returned via struct from CreateProcess) to wait until the process is finished. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Some improvements:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Ensure only 1 instance of this application is running (i.e. make sure if Hopper tries to start another processing using this executable, don’t allow it). I’d probably use the Toolhelp API to enumerate the active processes and perform the check based on process name.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;-&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Enable basic data logging. Creation of a small log file to mark the when DevHealth started collecting data, and when it stopped collecting data.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Hope this will give you guys some ideas and save you time on collecting those DevHealth logs.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9310288" width="1" height="1"&gt;</content><author><name>mingwa</name><uri>http://blogs.msdn.com/members/mingwa.aspx</uri></author><category term="DevHealth" scheme="http://blogs.msdn.com/mingwang/archive/tags/DevHealth/default.aspx" /></entry><entry><title>Windows Embedded MCTS &amp; Books</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mingwang/archive/2008/12/23/windows-embedded-mcts-books.aspx" /><id>http://blogs.msdn.com/mingwang/archive/2008/12/23/windows-embedded-mcts-books.aspx</id><published>2008-12-23T20:10:00Z</published><updated>2008-12-23T20:10:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Recently Microsoft has created an MCTS (Microsoft Certified Technology Specialist) program for Windows Embedded CE 6.0. Along with the certification test, Microsoft and its Gold Partner, Adeneo, have created the Windows Embedded CE 6.0 Preparation Kit. Incidently my former project manager, mentor, and good friend Nicolas Besson (Windows CE MVP) was a co-author of this&amp;nbsp;book!&amp;nbsp;It is recommended that you have about one year of experience in Windows CE before looking into this certification. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;In addition to the creation of the certification program and the prep kit, there have been some great books that have been published lately about Windows CE! Douglas Boling has released the 4&lt;SUP&gt;th&lt;/SUP&gt; edition of &lt;U&gt;Programming with Windows Embedded CE 6.0 Developer Reference&lt;/U&gt;. There are also been two other books that have been published in the second half of 2008. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;U&gt;Windows Embedded CE 6.0 Fundamentals&lt;/U&gt; from Microsoft Press is a great primer for learning about CE. I read a few chapters of this book and it was a fairly easy read &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;&lt;SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;J&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;. You can order a printed copy of this book or download it for free (link to the soft copy of the book can be found in the link below). The focus of this book is more on the lower levels such as the Board Support Package and Build System. Lastly, there is another book that was published in November 2008. This book is published by Wrox and called &lt;U&gt;Professional Microsoft Windows Embedded CE 6.0&lt;/U&gt;. A pre-draft version of the book can be found at the link below.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;In order to access the resources I have discussed above, please go to&amp;nbsp;&lt;A href="http://msdn.microsoft.com/en-us/embedded/cc294468.aspx" mce_href="http://msdn.microsoft.com/en-us/embedded/cc294468.aspx"&gt;&lt;FONT face=Calibri size=3&gt;http://msdn.microsoft.com/en-us/embedded/cc294468.aspx&lt;/FONT&gt;&lt;/A&gt;.&lt;/FONT&gt;&lt;FONT face=Calibri size=3&gt; &lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9250440" width="1" height="1"&gt;</content><author><name>mingwa</name><uri>http://blogs.msdn.com/members/mingwa.aspx</uri></author><category term="MCTS" scheme="http://blogs.msdn.com/mingwang/archive/tags/MCTS/default.aspx" /><category term="Windows Embedded Books" scheme="http://blogs.msdn.com/mingwang/archive/tags/Windows+Embedded+Books/default.aspx" /></entry><entry><title>Embedded Application Architecture</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mingwang/archive/2008/10/13/embedded-application-architecture.aspx" /><id>http://blogs.msdn.com/mingwang/archive/2008/10/13/embedded-application-architecture.aspx</id><published>2008-10-14T08:07:00Z</published><updated>2008-10-14T08:07:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Lately I've been reviewing some of the projects&amp;nbsp;I have done in the past&amp;nbsp;and wondered how we could have improved application compatibility/portability between different operating system versions and across different devices (CE devices often have custom SDKs). So I came up with the following architecture:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: center" align=center&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&lt;IMG style="WIDTH: 510px; HEIGHT: 498px" height=498 src="http://i462.photobucket.com/albums/qq348/ming_wang/MSDN%20Blog/ApplicationArchitecture.jpg" width=510 mce_src="http://i462.photobucket.com/albums/qq348/ming_wang/MSDN%20Blog/ApplicationArchitecture.jpg"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt; TEXT-ALIGN: center" align=center&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Figure 1&lt;/B&gt; – Application Architecture&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Let’s go over this architecture one layer at a time. I called the lowest level the OS/BSP Abstraction layer, this layer interfaces with the operating system (kernel and drivers); this level is used to isolate the rest of the application from any OS API changes and any device driver design changes. Device driver changes can involve a change in struct layout or change of IOCTL codes. So in its simplest form, this layer is comprised of wrapper functions that simply route a call from the application to a corresponding kernel API or driver call (think of it as a proxy pattern). In addition to simple routing, this layer can also perform some checks to make sure that the input/output parameters are valid and handle exceptions as needed. There is a performance impact by having this layer route function calls to the OS, however, the hit in performance is negligible and are outweighed by the benefits of having this layer. The advantage of having this layer is whenever there is a change in the BSP or OS, the change will only impact the OS/BSP Abstraction Layer.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The next level is the Document layer, this layer is essentially all the business logic of the application. It has hooks into the OS/BSP Abstraction layer and calls the wrapper functions to gain access to the OS and drivers. In addition, it also sends events to the View layer and handles the View’s request for data or change in state. The last layer is the View and its responsibility is to display the results from the Document layer and to handle user inputs (key presses or touchscreen taps). &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Many of you may recognize the similarities between MVC (Model-View-Controller from the Smalltalk days) and the Document-View architecture. Essentially the Model component of MVC is replaced by the Document Layer and the View and Controller components are condensed into just the View Layer. Both architectures allow for the developer to swap out the user interface without making any changes to the business logic, MVC allows for some more flexibility in that you can swap out the input devices, however, it makes the architecture more complex and since the input modes for Windows Mobile/CE is standardized, I think that the View Layer can take over the responsibilities of both displaying results and taking in user input.&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=Calibri size=3&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;So by having layers we can avoid major changes to the application when the following occurs:&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Update of SDK (BSP has been modified, driver IOCTL codes or structs have been altered)&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Request for UI redesign&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Update of OS Version&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri"&gt;&lt;SPAN style="mso-list: Ignore"&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Migrating application onto a new device&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;Hope this helps!&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8999064" width="1" height="1"&gt;</content><author><name>mingwa</name><uri>http://blogs.msdn.com/members/mingwa.aspx</uri></author><category term="design" scheme="http://blogs.msdn.com/mingwang/archive/tags/design/default.aspx" /><category term="embedded application architecture" scheme="http://blogs.msdn.com/mingwang/archive/tags/embedded+application+architecture/default.aspx" /></entry><entry><title>Introductions</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mingwang/archive/2008/10/09/introductions.aspx" /><id>http://blogs.msdn.com/mingwang/archive/2008/10/09/introductions.aspx</id><published>2008-10-09T19:42:00Z</published><updated>2008-10-09T19:42:00Z</updated><content type="html">&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Welcome to Ming Wang’s Embedded blog. I would like to introduce myself. I graduated from the University of Washington with both my BSEE and MSEE in Electrical Engineering. Also, I am a MCTS (Microsoft Technology Specialist) in Windows Embedded CE 6 and a MCT (Microsoft Certified Trainer) in Embedded CE. My specialization is in Board Support Package (BSP) development as well as some applicative development on Windows CE. I have recently joined the OEM Mobility Consultant Team and am eager to assist OEMs on their projects. I believe this is a very exciting time in the embedded ecosystem and there is a bright future for both Windows Mobile and CE &lt;/FONT&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;&lt;SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;J&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8993014" width="1" height="1"&gt;</content><author><name>mingwa</name><uri>http://blogs.msdn.com/members/mingwa.aspx</uri></author></entry><entry><title>Disclaimer Post</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mingwang/archive/2008/10/08/disclaimer-post.aspx" /><id>http://blogs.msdn.com/mingwang/archive/2008/10/08/disclaimer-post.aspx</id><published>2008-10-08T19:58:00Z</published><updated>2008-10-08T19:58:00Z</updated><content type="html">&lt;P&gt;Welcome to my blog!&amp;nbsp;As this is my first blog, be gentle ;-).This post is&amp;nbsp;just a disclaimer post&amp;nbsp;so that all the legal stuff is out of the way.&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Disclaimer:&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Postings here are provided "AS IS" with no warranties, and confers no rights.&lt;BR&gt;The content of this site consists&amp;nbsp;personal opinions and do not officially represent&amp;nbsp;my employer's view in anyway.&lt;BR&gt;The thoughts and opinions of&amp;nbsp;the author&amp;nbsp;often change.You should not consider out of date posts to reflect the author's current thoughts and opinions. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8991690" width="1" height="1"&gt;</content><author><name>mingwa</name><uri>http://blogs.msdn.com/members/mingwa.aspx</uri></author></entry></feed>