Subscribe to our RSS Feeds
Showing posts with label misc. Show all posts
Showing posts with label misc. Show all posts

The Windows Marketplace for Mobile Client and your Setup code

0 Comments »


The Windows Marketplace for Mobile client provides users a streamlined experience to purchase and install applications on their Windows Mobile 6.5 devices (coming soon for 6.1, and 6.0).

Markplace Client: Install in progress

As you will notice when installing applications, the user interface is different from the typical CAB file installation (see below) perhaps you are used to.

No Marketplace Client

It is very important that the Marketplace install experience be uniform and streamlined. To keep it this way, no custom UI (errors, prompts, informational messages, etc.) should be displayed during installation or uninstallation.

If you absolutely must display custom UI, there are some things you should know about the Marketplace client.

The Marketplace client achieves a streamlined experience by suppressing the normal user interface, displaying a client specific progress bar and providing feedback when the installation has completed. This can cause problems for applications that have custom prompts implemented in the setup dll. For example, you may want to prompt the user to start your application after installation has completed. This is easily done by adding the appropriate MessageBox prompt to the Install_Init export of your setup dll. However, there can be problems with this.

The foreground display of your MessageBox or other custom UI, depends on knowing the window handle of the calling process. When your application is installed with the Marketplace client, no window handle is passed to your setup DLLs exported functions. This can cause your custom UI to not be displayed in the foreground. This causes confusion for the user since it looks like the installation is still running, but there is no UI feedback. The only recourse for the user is to use task manager to locate the prompt window and select it to bring it to the foreground. This is a very poor user experience.

You can resolve this by using the MB_TOPMOST | MB_SETFOREGROUND flags when calling MessageBox or WS_EX_TOPMOST when creating a window for custom UI.

Have you tried the Marketplace client yet? No? Dont have a 6.5 ROM update or device yet? No problem. Download the Windows Mobile 6.5 standalone emulator images here. These come with a fully functional Marketplace client you can download and install apps with.

Hope this helps.

Mike

12:04 PM

The New Efficiency

0 Comments »


We are all experiencing the results of the economic reset. Companies and consumers are scaling back spending to lower levels despite modest signs of growth. However, we are all recognizing that you cannot simply save your way to success. Costs savings are critical but not enough. In response to this, businesses are emphasizing efficiency which includes trimming costs but also involves increasing productivity and innovation for sustained growth. Microsoft is calling this the New Efficiency.

As mentioned last week by Stephen Rose, Microsoft is hosting a special VIP Business Leadership Roundtable event on September 29, 2009 in San Francisco from 9 to 10:30am Pacific to discuss the New Efficiency and other relevant trends.

Attendees are encouraged to join in on the conversation with our CEO Steve Ballmer and co-host Robert Youngjohns as they discuss major trends in the workplace and the role of technology in driving growth and competitive advantage during this economic reset. Steve and Robert will be joined by a panel of early adopter customers representing key industries like automotive, hospitality, transportation and IT. Attendees will get a close look at how real companies are justifying IT investments across the desktop, server, and network and beyond. The event will be broadcast live over the web and listeners will be able to submit questions to Steve Ballmer and the rest of the panel.

Add the event to your calendar and watch it live here at www.TheNewEfficiency.com.

Things are heating up as we ramp up for Windows 7s launch on October 22nd!

12:50 PM

Widget Anatomy Performance and Battery Life

0 Comments »


This is part three of my Widget Anatomy series which which will explain the ins and outs of the Widget Framework that is shipping as part of Windows Mobile 6.5. In this installment I will discuss how to squeeze the last drop of performance out of the Widget framework to ensure all our Widgets are interactive, alive and fun to use while being good mobile citizens and not draining the users battery dry in the process.

All good things

JavaScript is a cool language. Its simple to learn, use, and understand but it really can get us into a lot of trouble if not used wisely. this is true on all platforms but we must pay special attention to its implications while developing for a mobile platform.

So, just because we are among friends here Ill share a little secret that showcases the biggest challenge to creating responsive Widgets. Here it goes are you ready? On Windows Mobile 6.5, JavaScript execution blocks the UI. This means that, whenever there is a script running nothing else can be processed in the widget which includes menu commands and keyboard or touch input processing. Also note that, during script execution the Widget cant redraw in other words, any screen updates done during the execution of the script will not be reflected on the screen until after the script finishes its execution.

I know that this sounds like a big obstacle to overcome but it is really not that bad.

One Small Step

On very interesting aspect of performance is that, in most cases, perception is reality. In a mobile application world, this means that for every user action there is a immediate response from the application that assures the user that their input was acknowledged and is being processed.

The best way to accomplish this on widgets is to minimize the amount of code that is executed on the event handler and defer all actions that are not related to updating the UI to give feedback to the user after a small timeout.

   1: function onCoolActionClick() {
   2:     document.getElementById('waitCursorLayer').style.display = "block";
   3:     window.setTimeout("doCoolStuff()", 50);
   4: }
   5:  
   6: function doCoolStuff() {
   7:     countToAMillion();
   8:     document.getElementById('waitCursorLayer').style.display = "none";
   9: }

The same technique can be applied to break out expensive operations to allow processing of the always important user events.

   1: function countToAMillion(currentCount) {
   2:     // Count to a million in 10 incremets to ensure the UI events can be processed
   3:     var countBlockStarts = currentCount;
   4:     var countBlockEnds   = countBlockStarts + 10;
   5:     
   6:     for(var i = countBlockStarts; i < countBlockEnds; i++) {
   7:         
   8:         // Check to see if we are done
   9:         if(i >= 1000000) {
  10:             return;
  11:         }
  12:         
  13:         // Write the current count
  14:         document.getElementById("currentValue").innerHTML = i;
  15:     }
  16:  
  17:     // schedule the next few elements
  18:     window.setTimeout("countToAMillion(" + countBlockEnds + ")", 50);
  19: }

Another trick that will come handy for most Widgets since they are generally full of dynamic content is that using innerHTML is significantly faster than creating the DOM elements individually and then appending them to the document. You should never append them to the document one by one, as this will completely destroy your performance since it will force the Widget to re-layout multiple times -- and this is really slow!. I know that this might not be possible in all cases but it is a nice tool to have in case your widget is having performance issues creating dynamic content.

Awakening

Now lets focus our attention to the flip side of performance which is, without a doubt, battery life. It is a fact of life that our Widgets, since they are executing code on the device, will have an impact on battery life. The goal is to minimize its effects to ensure happy users.

Thankfully the road to user happiness is not as rough as it might seem, there are a few principals that, if we keep them in mind while writing our Widget code, then we will know for sure that we are only using the power that is necessary to complete our task.

  • Only consume network resources when your widget is active.
  • Minimize animations when the widget is idle.
  • Cache data locally as aggressively as possible, use the widget persistent storage as a repository since it will be preserved across runs (and even upgrades).
  • Be aware of the current battery level and minimize network operations when the battery is running low.
  • Always (and by that I really mean always!!) use asynchronous network requests.

Example:

   1: function onShow() {
   2:     // The widget was activated and is running in the foreground
   3:     // refresh the widget data
   4:     refreshWidgetData();
   5: }
   6:  
   7: function onHide() {
   8:     // Stop al recurring timers to be a good Widget citizen
   9:     stopAllTimers();
  10: }
  11:  
  12: function onLoad() {
  13:     var systemState = widget.createObject("SystemState");
  14:     var batteryStrength = systemState.PowerBatteryStrength;
  15:  
  16:     batteryStrength.addEventListener("changed", optimizeNetworkUsage);
  17:     
  18:     widget.onshow = onShow;
  19:     widget.onhide = onHide;
  20: }

Thats it for now, but before I completely forget, one set of tools that will be your friend tracking performance issues on your widgets (and web applications as well) is the IE8 amazing developer tools (to start them, just press F12) which include a script profiler and it works great for widgets!

Next post: Widget Anatomy Security

12:45 PM

Windows Home Server, Windows 7, Xbox 360 and Windows Media Center make an appearance at Cedia 2009!

0 Comments »


You may have the technology but are you using it? Maybe youve heard the Better Together story but you have not had a chance to really fully experience it. That is exactly what we wanted to show you at Cedia 2009. Cedia is the largest event of the year for custom installers to come and learn about new technology emerging in their industry. Think of Cedia as the CES for custom installers.

Windows Home Server teamed up with Windows Media Center, Windows 7 and Xbox to demonstrate how Microsoft technologies come together in the home. The booth was designed to be a replica of your home, your home office and your office away from home. This was done in an effort to emulate real working home scenarios. The picture below illustrates the booths layout:

image

The Office:

image

This networking nerve center demonstrated how users can access their content in various ways in their office, away from home or away from their living room. Attendees were shown such features as centralized storage, access to content on the go, Home Group, copying TV content from one Media Center to another and remote streaming. This is also where the Windows Home Server HP MediaSmart powered the entire booth, which included 9 extended Xboxs & 6 tuners connected to the N9 Niveus high-end Media Center PC with the new AEP 2.0 technology (which allows for an increase from 5 extenders to 10 & 4 tuners to 8), with photos, videos and music content. The Niveus N9 was located in the theater room.

The Bedroom:

image

Your personal get away spot in your home should enable you access to all your content at whim. The bedroom revealed a portable Windows 7 Media Center on a Sony VAIO laptop and an Xbox 360 extender connected to a large display. Giving you the ability to watch your content, listen to a little music and even record TV without leaving the comfort of your own bed; maybe you just wanted to obtain the score of your favorite team. The Windows 7 Media Center laptop demonstrated the new Netflix tile in Windows Media Center.

Family Room:

image

With only an Xbox 360 connected to your large screen TV, you have gaming and entertainment from one device. The family room is the central place to come together and watch TV, stream movies, view photos and even play some music. With the Xbox 360, you can play a few video games while streaming music from the home server. With the recent Xbox 360 update, Netflix enables you to stream movies and TV shows from the internet!

Theater Room:

image

The theater room is probably the most impressive part of the home, aside from the Windows Home Server being in the office serving all of the music, videos and photos content. Enjoy the luxury of your surround sound while playing Blu-ray movies, enjoying television, home movies or blaring music until your ears hurt. Be amazed as 8 different tuners record content at the same time and store it on the HP MediaSmart Server powered by Windows Home Server. Travel to any of the 9 different Xbox 360s in extender mode and watch the recently recorded TV or change the channel to a more enjoyable show.

Cedia Announcements:

Lets talk about the announcements and some of the technology making this all possible.

Windows Home Server:

Power Pack 3 was a big part of the show. This enables the use of libraries in Windows 7, automatic archive of TV content (which is very important with 8 tuners capturing content constantly) and single file restore in Windows 7. The Zune and Windows Phone compression feature allowed TV content to be played on your mobile devices. It was very exciting to see attendees reactions to these new features!

S1Digital announced a new Digital Entertainment Platform, which provides centralized archiving, storage and distribution of HD movies, live and recorded HD television, videos, music, photos and more. This is all based on the Windows Home Server platform.

Windows Media Center:

Probably one of the biggest announcements at the show was the ability to add your own Digital Cable Tuners to your PC. Before, you needed to purchase a computer with a special BIOS to be able to record digital TV.

CETON showed off their new single card that has 4 tuners with-in the S1 Media Center running the theater room and an extender. This single card could record 4 channels at once. They also have a 6 channel version here.

Here are a few other show announcements from Windows Media Center. To read more please visit here.

  • Switched Digital Video (SDV) support added to Windows Media Center.
  • End Customers Can Now Add Digital Cable Tuners With CableCARD to Their PCs
  • Digital Cable customers can now enjoy more TV portability in Windows Media Center
  • New Firmware for ATI TV Wonder Digital Cable Tuners
  • Windows Media Center Features in Windows 7 highlighted
, 9:18 PM

How to Find the Right Hosting Service in the Jungle of Deferent Types of Web Hosting Services

0 Comments »




Any webmaster would be able to tell you that the hardest aspect of creating and maintaining a website is actually choosing the right web host. There is a jungle of web hosting providers on the internet. Many are fakes and many are legitimate web hosting companies.

There are different types of web hosting services available in the market but many people fail to recognize that and end up in to big confusion. With various options like dedicated hosting, shared hosting, reseller hosting, video hosting and VPS hosting it is normal for you to get puzzled. So, we are going to explain some of the terms, proposed some good hosting review site and there you can find the most popular and cheap web hosting services and their reviews.

Dedicated server hosting works well for large business websites. It provides businesses with highly secure, powerful websites without the cost of having an in-house solution. Businesses can use customized software and applications meeting the specific needs of their business. However, they can do this at a much lower cost than owning and maintaining their own server. By utilizing dedicated server hosting rather than owning a server they also will not need to operate and maintain and data center.

A hosting customer does not typically need a dedicated server for a basic website. If the website does not use a great deal of bandwidth or disk space, shared hosting services work quite well and at a lower cost. If a website does not require customized hardware and applications, shared hosting rather than dedicated server hosting is typically the best choice.

Because dedicated hosting is costly and the small business owners do not want to take the risk initially and that is why shared hosting was the best option available for them. But then, reseller hosting came to the market. What is it? When one account owner allows somebody else to access the space for their website, then it is known as reseller hosting. So, you are the second level user here and accessing someone else's space and paying them for that. Obviously, the price becomes cheaper. This is reselling of the server. You can access the control panel and manage the database. Not only that, you will get the bandwidth reserved for that user. This is just like shared server but buying from an existing user.

The other type of hosting is Virtual private servers. VPS is a web services infrastructure that slices a single physical web server into multiple "virtual" web servers. Virtual private servers take virtualization to the next level- by splitting the existing server space and creating virtual servers out of every partition. Despite sharing server hardware, each VPS is fully isolated with its own file system, processes, users, applications, and resource allocations. Thus you are allowed to do all the alterations in your rented office space and the neighbors are completely shielded out.

You may wonder why VPS hosting and why not dedicated hosting. Well, the cost is really very high and unaffordable for the small businessmen. In a VPS server you can actually get the benefit of both shared server and dedicated server bit in a cheaper rate.

Its not easy to decide which one you should go for. The apparent Advantages of VPS are as follows:
  • Cost effectiveness: VPS allows you to hire only the space that you want. While having a physical server shall involve a huge investment and you shall not want the entire space that comes with it.
  • Control: One of the biggest advantages of a VPS is the fact that you get "root" level access to your server. This allows you to install or delete any software you want, including the OS, create any accounts you want, set permissions the way you want - effectively all the same things you can do on a dedicated server, only at a lower cost.
  • Enhanced security: A VPS is also more secure than shared hosting. This is because on a shared server, all the websites are running within the same operating system. If the server gets hacked, all the sites will be vulnerable.
And, its disadvantages:
The only apparent disadvantage with the VPS is indeed just an out come of the facilities it provide. The fact that it allows root level access to the server means that you have to be proficient in system management for there is always a chance of wiping out system files or causing some other system malfunction. Thus, if you are not proficient in using the systems you will be better off with a hired professional taking care of your system.

So, if you are webmaster who look for a good hosting site - Webhostinggeeks.com offer independent reviews of the best web hosting providers. This web hosting reviews site has been made to help you escape the jungle of web hosting provider. They have reviewed only the top web hosting companies.

After you go through this review and get necessary knowledge you are ready to go to Webhostinggeeks.com website and you should have hopefully escaped from the jungle and have found the perfect host for your website. We hope the web hosting reviews on this site will be useful to you. If you are still confused send us an email or just comment this post with your question.
10:00 PM

Widget Anatomy The Keys for a Great User Experience

0 Comments »


Previous post: Widget Anatomy The Manifest

This is part two of my Widget Anatomy series which will explain the ins and outs of the Widget Framework that is shipping as part of Windows Mobile 6.5. In this Article we will discuss the major challenges of creating a great user experience that not only looks great, but it integrates nicely with the phone and its snappy and fun to use.

The dark side of choice dealing with screen DPIness

One of the coolest things about the Windows Mobile ecosystem is that there are many different devices with all shapes and forms for me to pick up the one that matches my lifestyle best. All those choices do have a dark side though, there is a variety of screen resolution/sizes we need to make sure our Widgets work and look great on.

The table bellow shows all the supported Resolution/DPIs Windows Mobile 6.5 supports and as you can see it is a big table.

bb264320.wm6_2(en-us,MSDN.10)[1]

Thankfully for widget writing, there really are only two options, one that we will call HiDPI (for 192) and then LoDPI for the rest. The reason is that, in practice, a document designed for 96 DPI (Internet Explorer on the desktop at 100%) will look fine on 96 DPI, 131 DPI and 128 DPI but it will look way too small on a 192 DPI screen.

Now that we have reduced the supported DPIs to only two, then the best (and easiest) way to handle this in your widget is as follows:

1) Generate two CSS Style Sheets for your widget. You can call them something like HiDPI.css and LoDPI.css, and the basic rule is, for HiDPI, things should be about twice as big to look the same way as they do on the desktop.

2) Detect the screen resolution at runtime to determine which CSS to load. Here is an example:

   1: function applyCSSStyle() {
   2:     var width = document.documentElement.clientWidth;    
   3:     var cssFile = "css/LoDPI.css";    
   4:     if (width >= 480) {        
   5:         // The document is wider than 480 pixels        
   6:         // it must be a High DPI device       
   7:         cssFile = "css/HiDPI.css";   
   8:     }
   9:     
  10:     // Add the correct CSS style sheet to the document    
  11:     var headID = document.getElementsByTagName("head")[0];    
  12:     var cssNode = document.createElement('link');    
  13:     cssNode.type = 'text/css';    
  14:     cssNode.rel = 'stylesheet';    
  15:     cssNode.href = cssFile;    
  16:     cssNode.media = 'screen';    
  17:     headID.appendChild(cssNode);
  18: }
  19:  
  20: function onLoad() {    
  21:     applyCSSStyle();
  22: }

How to best utilize those SoftKeys

The Widget API gives you full control over the soft key menu bar, but since we want our widgets to behave as native applications do there are a few guidelines we should try follow:

1. The left soft key should always represent the default action and it should be context sensitive to what the user is supposed to do at that particular step in the User Scenario.

2. The right soft key can be either a menu or a button, when there only are two possible actions you should save the user one click and make it a button that said, if you do this there should be a way for the user to exit the widget somewhere on your UI.

Just as a quick reminder, calling widget.menu.append(menuItem) Adds a menu item to the right SoftKey, if it was a button it will turn into a menu with the non configurable label Menu, also, the Exit menu item is added automatically and cant be renamed nor removed. calling widget.menu.setSoftKey(menuItem, widget.menu.rightSoftKeyIndex) removes all menu items from the right SoftKey and turns it into a button.

Best practices

The following are some of the best practices we have found really help greatly widgets be the best they can be:

  1. When possible, integrate with the phone skin by using theme able colors like highlight (details)

  2. Use art assets that match the screen DPINess, or, just provide a high resolution set (shrinking is always better than expanding)

  3. Minimize scrolling, vertical scrolling is ok on some cases, horizontal scrolling in almost all cases is a general NO NO

  4. Handle the screen rotation event, remember that this must be fast

  5. Load fast, generate all dynamic content after the widget is loaded.

  6. Give visual feedback to all user actions.

Next post: Widget Anatomy - Performance the final frontier

, 10:03 AM

Introducing The Windows Outreach Team and #WinWin7 on Twitter

0 Comments »


If you happened to be searching for pizza on Twitter Search yesterday or are following the @mswindows Twitter account, chances are you witnessed the kickoff of #WinWin7. The Windows Outreach Team kicked off 7 weeks of Windows 7 by sending 7 piping-hot pizzas to 7 lucky Twitter followers.

And it wont stop there.

Throughout the next 7 weeks, @mswindows will be giving away prizes all based on the number 7 (for Windows 7). Winners must take part in the challenges and are encouraged to invite friends to join in on the fun which all culminates on launch day - October 22nd.

Make sure youre following @mswindows and tell them Brandon sent you. Oh and watch for the official #WinWin7 hash tag too.

Speaking of the Windows Outreach Team, how about meeting the supporting cast? You may have seen them on some of your favorite blogs and forums and didnt really know who they were. Lets change that.

Jeff D, Cody G and Ron S, are a savvy team tasked with reaching out to users and creating a real resource within the communities on the Web.

Along with Josh T on the @mswindows account, these team members bring a wealth of knowledge (both consumer and even a bit on the techy side) to the table. Anywhere from gaming to watching your media across your home network, these guys have been there and tried out the fixes and know what works and what doesnt. You can bet on them to offer advice and an open ear, not a sales pitch and a bottom line oddly enough, none of them wanted to be a snake oil salesman growing up.

So, keep a lookout for the team on some of your favorite blogs and forums and feel free to say hi or just ask a question. Theyll be sure to help get you on the track to whatever it is you need.

If you have any questions for the Windows Outreach Team, just send a tweet to @mswindows. Or leave a comment here too of course.

NOTE: The Windows Outreach Team also runs the Windows Live Twitter account @windowslive too.


, 9:26 PM

What is Windows Home Server?

0 Comments »


Since Windows Home Server is a new addition to The Windows Blog, we thought it would be a good idea to give everyone a refresh on what exactly Windows Home Server is and what it can do for you.

Windows Home Server was designed for households and home-based offices that have more than one personal computer. It was created to help you simplify your digital life, and provide an easy way to access your media and files from any computer, inside or outside your home. The leading benefits of Windows Home Server will help you Share, Protect, Organize, and Grow all of your digital content on up to 10 PCs through three basic services. These include automatic PC back-up, restoration ; document and file sharing ; and remote access capabilities. Windows Home Server software will typically be sold with new server hardware from companies like Acer and HP.

image

The great news about this product is that you dont have to be computer savvy to set it up or to use it. To get your home server up and running, it only takes three easy steps: plug in the power, connect an Ethernet cord, and install the Windows Home Server connector software.

Starting to sound pretty cool? Lets take a closer look at each of these features.

Organize:

Lets pretend that you just got back from an amazing vacation and uploaded all of your new photos to one of your home PCs. Now, your family is over and wanting to see them, but you forgot which computer and folder you put them on. Instead of spending the time it takes to search through multiple locations, you could be using Windows Home Server and enjoying your picture slideshow. Windows Home Server provides an effortless way to organize and manage all of your media including the vacation pictures. After installation, a pre-defined set of shared folders will be shown: Photos, Music, and Videos. Windows Home Server will organize your familys files and media, by storing them in one of the shared locations. Since all of these files will be stored in a central place, they can easily be found and accessed from any computer on your home or office network. Therefore, it doesnt really matter which computer you put your pictures on since you can see them on any computer that is connected to your Home Server. Furthermore, if you enable user access, everyone on your network will have the ability to add and view media that is located in the Shared Folders.

image

Protect:

image I think we have all experienced the feeling of losing important files or pictures we love, and it is absolutely devastating. Everyone is aware that you should regularly back-up your computer in order to prevent loss of these valuable things. However, how often do you really find yourself doing it? With Windows Home Server, you will no longer need to run around your house with USB hard drives doing manual backups. Instead, Windows Home Server enables you to rest easy knowing that all of your irreplaceable videos and pictures are safe with Windows Home Servers daily, automatic image based back-up and restoration feature.

The ability to restore individual files or even your entire computer is what makes backing up significant. Restoration can include accidentally deleted files (documents, music, pictures, videos), or complete computers. If your vacation pictures or crucial financial information accidentally get deleted, they will not be lost forever since you can restore to a previous point in time. You can also increase protection of certain files with Windows Home Server with since you have the ability to duplicate your shared folders. When you have more than one hard drive in your Home Server, your memories and files can then be stored and copied across multiple hard drives.

Share:

Windows Home Server helps families and small offices centralize and connect their digital experiences. It provides an easy and reliable way to store, access, and share whatever is most important through remote access. Like other features of Windows Home Server, remote access is fast and simple to use!

Remote%20Access%20-%20thumbnails_2

**Windows Home Server screen shot of uploading and sharing pictures remotely

When using remote access, Windows Home Server lets you stay connected with friends and family. Once installed, your Home Server will automatically assign you an uncomplicated web address such as yourname.homeserver.net. You will then be able to share pictures, music, and documents through the password protected web address. From this site, you can upload media to the Shared Folders on your Home Server when using PCs that are not on your home network. This will give your friends and family the ability to log in through the personalized web address and download any pictures or files that you may have there. It is also simple to locate, view files, and even run applications from your home PC just as if you were sitting in front of that computer.

Grow:

image

**Windows Home Server screen shot of adding a new hard drive and total storage space

With Windows Home Server, storage space grows as your digital life grows. The ability to increase the number of drives in your Home Server is one of the biggest innovations for Windows Home Server. You can very easily add internal or external hard drives of any size so that you will have an unlimited amount of storage for your collection of files, photos, and videos. Once you have two or more drives plugged in, the server will see this additional storage as one large drive instead of many individual drives. This will result in a much easier process when locating and storing files since you will only be searching through one virtual drive.

image

**Acer Easy Store

Your Home Server is also fully expandable meaning you have the option to download extra features to help customize your Home Server. The development community has created add-ins for Windows Home Server that extends its capabilities in fun, exciting, and useful ways. There are currently over 100 add-ins available for download including Whiist for photo sharing, and Lights Out for power conservation.

For more detailed information about Windows Home Server, check out the product guide at http://www.microsoft.com/windows/products/winfamily/windowshomeserver/support.mspx.

To purchase and learn more about Windows Home Server, please visit www.microsoft.com/windowshomeserver.

-Nicole

, 9:26 PM

Pay pal with hidden fees

0 Comments »



Original article is on www.i4u.com. Ars Technica reports on some new PayPal policy changes that could end up costing you where you least expect it.

When they updated their policy in June, PayPal changed the way they handle certain transactions. It used to be that if you were using a personal account, you could make payments or transfers to other people for free. If you needed to send somebody some money, PayPal wouldn't charge you for the transfer. Things only worked this way for personal accounts, however, and business or premium account holders couldn't make 'personal' transfers to friends and family without paying.

Now that has changed, which is very nice. Premium and business users can send money for personal reasons without paying. Unfortunately, PayPal made another change to their policy that they weren't very transparent about. Now any transfer that has to do with goods or services has to pay the 3 cent+2.9% fee. This includes personal payments, and payments made any time someone sends you a request for money.

So, if somebody send request for payment, the transaction will be charged. You can get around this by claiming the money as a gift, but that doesn't work if there is an invoice or purchase order involved. Most transactions people make on Paypal are in this category, but people have just started to realize it.

Once again, PayPal has managed to provoke a great deal of ire without actually doing anything legally wrong. They altered their terms of use and stuck some small-text warnings in the on the login page. That's all they were required to do, but customers usually appreciate getting some large, formal warning from a company before a major shift like this. This won't do anything to help PayPal's image, but who cares about image when you have huge stacks of money?

8:33 AM

Microsoft Mobile Security Receives Global Recognition

0 Comments »


In case you havent heard the news from Sydney Australia, here is the latest scoop.

The Windows Mobile 6.1 operating system, System Centre Mobile Device Manager 2008 and System Centre Mobile Device Manager 2008 Service Pack 1 (SP1) have obtained Common Criteria Evaluation Assurance Level 4 (EAL4). This news follows successful completion of the Defence Signals Directorate (DSD) Australasian Information Security Evaluation Program. The DSD is the Australian Governments national authority for information security.

By meeting the security criteria for EAL4, Windows Mobile 6.1, System Centre Mobile Device Manager 2008 and System Centre Mobile Device Manager 2008 SP1 are accepted under the Common Criteria Recognition Arrangement (CCRA) by Australia and 25 other countries worldwide including the United Kingdom and the United States.

The CCRA ensures that evaluations of IT products are performed to high and globally consistent standards. Thus, this certification provides government and enterprise customers with definitive information about the security features in Windows Mobile 6.1, and assurance that mobile workers can securely access sensitive data on information networks.

Windows Mobile 6.1, combined with System Centre Mobile Device Manager 2008, extends mobile security for government and enterprise customers with on-device file encryption and remote device wipe, in the event of theft or loss. Users can access corporate data and intranets with mobile VPN and manage mobile fleets similar to the way IT departments manage PCs.

Commenting on this certification milestone, Don Kerr, product marketing manager for Windows Mobile, said, We are extremely proud of this successful Common Criteria evaluation as it offers widely recognised assurance that Windows Mobile delivers a very high level of security and protection of information networks.

Microsoft is committed to globally recognised evaluations and certification processes as a way of building trust in computing and providing customers in the public and private sectors with a more secure and reliable platform, said Mr Kerr.

Mike Burgess, first assistant secretary, Information Security, Defence Signals Directorate, said, We have worked very closely with Microsoft throughout this assessment process to ensure that Windows Mobile 6.1 meets the security needs for government and enterprise networks.

Our evaluation of emerging technology is rigorous, but ensures secure use in government systems. Government organisations and enterprises can be assured that Microsofts successfully evaluated products can be used to securely enable remote working. DSD looks forward to vendor interest in evaluating a hardware handset that will take advantage of Windows Mobile 6.1 to provide government with another secure option, said Mr Burgess.

The 26 members included under the Common Criteria Recognition Arrangement (CCRA) are: Australia and New Zealand, Austria, Canada, Czech Republic, Denmark, Finland, France, Germany, Greece, Hungary, India, Israel, Italy, Japan, Republic of Korea, Malaysia, Netherlands, Norway, Pakistan, Singapore, Spain, Sweden, Turkey, United Kingdom and United States.

8:27 AM

How to Use iPhone and X10 for Home Remote Control

0 Comments »

With today’s technology it is becoming easier and easier to remain connected to our home computers. But what if we want to extend our reach from beyond the computer to actual control of our homes? Well, that, too, is becoming easier all the time, and here I will give a few tips on how to do exactly that.

As a matter of fact, we will focus on controlling your home from the comfort of your iPhone while you are out and about.

The purpose of the article is to show a way of accomplishing this, and I want to make it as simple as possible. For that reason we will focus on easy to obtain and economical hardware, and perhaps nothing in the home control market is more well known than the X10 family of controllers.

To start with, we will have a requirement - there must be a home computer left on 24 hours a day that will serve as our control point and link to the outside world.

This computer does need its local monitor to stay on when unattended - so set the screen saver and/or power settings to auto power it off after an extended period time.

This will save a little on the power bill and prolong the lifetime of the monitor. The computer itself needs only to be a standard computer… but it does need to have an available USB connector (as well as an internet connection, naturally).

To make the link from the control computer to your house power circuit you will need a USB control interface.

A quick check online shows that the X10 CM15A USB interface is available at a very reasonable price, and this will fit our needs quite well. As a matter of fact, we found the interface, controlling software, and more for under $50.

To set up the interface, you would install the included home control software and connect the CM15A to an available USB port with the provided cable after plugging it into a nearby outlet.

Once you have the interface, it is now a question of asking yourself, “What is it you want to control?”

There are separate control modules in the X10 family for a variety of situations, ranging from appliance and lamp controls to dimming wall switch replacements and HVAC controls. Of course, there are also “professional” modules that are more durable if the situation calls for it, but most homeowners will find that the standard units work okay for their needs.

Now, after you make a basic list of what items you want to control, shop online for a package deal that gives you the modules needed. By looking around for a package deal (check x10.com or ebay) you will be able to buy the modules at a very substantial savings.

Once you have the desired modules installed, it is a simple matter to set a common house code and unit ID for them.

Then you can add the modules to the home control software through its simple graphical interface, and if desired you can even set up virtual rooms for easier control. The overall control setup can be as simple or complex as you wish, but I would caution that you should start slow to see if it works for you as expected.

A nice thing about the system is that it makes life easier for you not only for the sake of remote control, but it also works great when you are at home thanks to readily available X10 remote controls and software that can schedule events automatically or event driven (such as turning on the lights throughout the house when you pull into the driveway - with the addition of an economical sensor).

Now that we have our home control system in place (at least conceptually), we need to talk about how we are going to control it via our iPhone.

This is where I feel that the simple approach really shines. I have used such systems with other mobile devices in the past (Windows Mobile, for example).

Unfortunately, Murphy’s Law loves to tinker with anything cool, and remote home control is not impervious. Instead of custom (and/or expensive) software, using a remote PC software such as LogMeIn Ignition on the iPhone allows you to not use the installed control software on the home computer, it will also show any warnings or issues that may be of immediate interest.

Plus it gives you access to said home computer for any files or email, and provides for a single point of access when you need to check on things back at the ranch.

By using generic remote software you can also stop and restart any misbehaving control programs from the iPhone, and if needed reboot the control PC to correct a communications problem with the power interface (rare, but it happens).

Now that you have everything in place, you should be able to whip out the iPhone and turn on the porch lights and dim the living room lights.

While you’re at it, you can set up a schedule to kick on tomorrow night (when you will be hiking on the trails out of tower reach). Or even check on the pics from the web cam, noting that all looks as you expect.

It’s the next best thing to being there.

, 1:30 PM

Using Custom Icons in Windows Mobile 6.5

0 Comments »


Update: As of August 10, 2009, the requirement for the PNG Start Screen icons has changed from requiring three to one (90x90) PNG icon. This post has been updated to reflect this change. You can satisfy this requirement via the static setup described below.

If youve seen the any of the plethora of Windows Mobile 6.5 screen shots, likely youd agree that it looks much better than previous versions. A component of this face lift, is support for PNG files in the Window Mobile 6.5 Start screen. Including a nicely rendered PNG file as your application icon is important to ensure the highest quality user experience across different devices.

If you plan to distribute your application via Windows Marketplace for Mobile (and I dont know why you wouldnt) the requirements document requires that you use a 90 x 90 Start screen icon for your application. This post will cover how to use PNG files as icons in the Windows Mobile 6.5 Professional Start screen. For information on creating PNG icons, see my previous post on Creating Custom Icons for Windows Mobile 6.5. The sample code I will be referring to in this post can be found here.

Contents:

Start Screen: Resolution / DPI and Icon Size
Registry Keys
Setup: Static or Dynamic
Cached Icons

Start Screen: Resolution / DPI and Icon Size

The Start Screen is one of the huge improvements in Windows Mobile 6.5 Professional. This replaces the Start Menu in previous versions. The improvements include: enhanced touch screen navigation (tap, tap and hold, pan, and flick) and more options for organizing and presenting Start menu items. image

If you are an experienced Windows Mobile developer, you know that depending on the DPI and resolution of the device, the shell extracts the appropriately sized icon from the EXE for display in the Start screen. Windows Mobile 6.5 still supports this; however now it also supports the display of PNG file icons. The shell does not automatically select the size of the PNG icon based on the device DPI. This dynamic selection of the icon is done in a setup dll. (See dynamic setup below.) However, if you do not want to provide a separate PNG file for each DPI, you can provide one (90x90) and the shell will scale down the icon as necessary, depending on the DPI of the device. (In fact, this is the Marketplace requirement.) The table below illustrates the DPI / resolution and icon size relationship.

Windows Mobile Platform Resolution DPI Orientation Small Icon Large Icon Start Menu PNG Icon (6.5)
6.x Professional 240x240 96 Square 16x16 32x32 45x45
6.x Professional 240x320 96 Portrait & Landscape 16x16 32x32 45x45
6.x Professional 240x400 96 Portrait & Landscape 16x16 32x32 45x45
6.x Professional 320x320 128 Square 21x21 43x43 60x60
6.x Professional 480x480 192 Square 32x32 64x64 90x90
6.x Professional 480x640 192 Portrait & Landscape 32x32 64x64 90x90
6.x Professional 480x800 192 Portrait & Landscape 32x32 64x64 90x90
6.x Professional 480x864 192 Portrait & Landscape 32x32 64x64 90x90
6.x Standard 176x220 96 Portrait 16x16 32x32 N/A
6.x Standard 240x320 131 Portrait & Landscape 22x22 44x44 N/A
6.x Standard 240x240 131 Square 22x22 44x44 N/A
6.x Standard 240x400 131 Portrait & Landscape 22x22 44x44 N/A
6.x Standard 440x240 131 Landscape 22x22 44x44 N/A

Registry Keys

To have the Start screen use a PNG file instead of an icon embedded in the EXE, you need to provide the following registry entries:

[HKEY_LOCAL_MACHINE\Security\Shell\StartInfo\Start\Phone.lnk]
"Icon"="\Application Data\My App\newphoneicon.png"

Here are the definitions of the value pair settings:

Name Type Description
Name REG_SZ Specifies the display name of the item. If the value is not specified, the file name will be displayed without the extension.
Group REG_DWORD Specifies whether the item is a folder. The value can be set to TRUE or FALSE. Set the value to TRUE to indicate that the item is a folder. If the value is not specified, the system will determine the Group value by verifying whether the registry key has any subkeys.
Icon REG_SZ Specifies the path and file name where the icon is located. The icon can consist of a PNG file or an embedded icon resource module. If this value is not specified, the default icon of the shell will be used.
Rank REG_DWORD Specifies the rank of the item. An item that specifies a larger value for Rank will be displayed before items that specify a lower value. If this item is not specified, the Rank will be set to 0.
Security note: This requires creating a registry key underneath HKLM\Security. This is a protected registry location. To write to a protected registry key, the CAB file needs to be signed. This will not be a problem for Marketplace applications, since by definition they are signed. As mentioned, this article only applies to Windows Mobile Professional devices. However, if your use the same CAB for a Standard device installation, you will need to make sure your application is signed privileged, otherwise setup will fail.

Setup

In the next two sections, Ill walk through two deployment scenarios, static and dynamic.

Static Setup:

You can specify the registry key as part of your CAB file configuration. Per the Marketplace requirements, I will use a 90 x 90 PNG file as the Start screen icon. In my Smart Device CAB project, I have added the following registry key:

image_thumb7

Note: This registry key supports CE strings and .INF file strings. Above %InstallDir% maps to the \Program Files\SMS Intercept directory.

My CAB file also includes the (90x90) AppIcon.png and a shortcut of the same name as the registry key above (SMS Intercept.lnk). See below:

image_thumb2

Dynamic Setup:

Detecting DPI:

Another way to configure the Start screen icon is dynamically: copying the appropriately sized PNG file based on the DPI of the device. We will use a setup dll to detect the DPI, and copy the appropriate PNG. You may know that WCELOAD (the EXE that process the CAB file) or a DLL that is loaded into its process, will return the same DPI (96) no matter the actual DPI of the device. To workaround this, we launch a very small helper EXE that quickly exits, without UI, and returns the DPI. The SDK sample ResDLL uses this technique as well as demonstrates how to install DPI specific resource DLLs. Here is the code used to detect the DPI:

int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
HDC hdc = ::GetDC(NULL);
INT ans = ::GetDeviceCaps(hdc, LOGPIXELSX);
::ReleaseDC(NULL, hdc);
return ans;
}
Copy DPI specific files:

Our dynamic CAB file contains four png files:
45.png
60.png
90.png
AppIcon.png

Based on the DPI detected, we copy the appropriate PNG file to the filename AppIcon.png. AppIcon.png is included in the CAB as a fallback in case our DPI detect logic fails. The unused icons and the DPI detect EXE are deleted.

Here is a code snippet from the sample setup dll (SetupDPI) implementing this:

wsprintf(szFile,_T("%s\\%s"), pszInstallDir, _T("\\GetRealDPI.EXE"));
// Launch DPI Detector
::CreateProcess(szFile, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, &pi);
::WaitForSingleObject(pi.hProcess, 10000);
// DPI is returned in exit code of detector app
::GetExitCodeProcess(pi.hProcess, &nSystemDPI);
::CloseHandle(pi.hProcess);
::DeleteFile(szFile);

// Based on DPI, copy xx.png to AppIcon.png and delete unused files
wsprintf(szOutFile,_T("%s\\%s"), pszInstallDir, szTargetFilename);
for (INT i=0;i<ARRAYSIZE(DPI_Icon);i++) {
wsprintf(szFile,_T("%s\\%s"), pszInstallDir, DPI_Icon[i].lpstrIconSize);
if (DPI_Icon[i].DPI==nSystemDPI) {
::CopyFile(szFile, szOutFile, FALSE);
}
::DeleteFile(szFile);
}

Create Shortcut:

As mentioned, we do the post-processing of the files after the CAB is installed (in the Install_Exit function). That is, because the icon image in the Start screen is created when the shortcut is created (see the cached icons section below), we need to create the shortcut in the setup dll instead of in the CAB file as was done in the static CAB sample. Otherwise, the Start screen will use an icon extracted from the EXE instead of the PNG file. Here is the language independent code that creates the shortcut:

// Build lnk filename
PTCHAR pAppDir = wcsrchr(pszInstallDir, '\\');
TCHAR szShortcutPath[MAX_PATH];
// CSIDL_PROGRAMS == \Windows\Start Menu\Programs
SHGetSpecialFolderPath(hwndParent, szShortcutPath, CSIDL_PROGRAMS , false);
wsprintf(szFile,_T("%s%s%s"), szShortcutPath, pAppDir, _T(".lnk"));

// Build exe filename
// CSIDL_PROGRAM_FILES == \Program Files
SHGetSpecialFolderPath(hwndParent, szShortcutPath, CSIDL_PROGRAM_FILES , false);
wsprintf(szOutFile,_T("\"%s%s%s%s\""),
szShortcutPath, pAppDir, pAppDir, _T(".exe"));

SHCreateShortcut(szFile, szOutFile);
Note that the dynamic CAB sample does not not contain the file system declaration that creates a shortcut as the static sample CAB does.

Cached Icons

During development, you will likely want to change the PNG file as you experiment will different artwork. You will notice that if you overwrite the PNG file, the Start screen will not use the new image. This is because when the Start screen shortcut is created, the icon image is cached by the shell. Thereafter for better performance, the shell retrieves the image from the cache. The cache is rebuilt a boot time. Here is one possible workaround:

  1. Delete the shortcut
  2. Rename (or copy) target EXE name. For example, rename hello.exe to hello1.exe
  3. Recreate shortcut pointing to new EXE name.

Here is provisioning XML that does this. You can run this using RapiConfig.exe:

<wap-provisioningdoc>
<characteristic type="FileOperation">
<!-- Delete Shortcut -->
<characteristic type="%CE11%\SMS Intercept.lnk" translation="install">
<characteristic type="Delete">
<parm name="ForceDelete"/>
</characteristic>
</characteristic>

<!-- Copy EXE name to new EXE -->
<characteristic type="%CE1%\sms Intercept\sms Intercept1.exe"
translation="install">
<characteristic type="Copy">
<parm name="Source" value="%CE1%\sms Intercept\sms Intercept.exe"
translation="install"/>
</characteristic>
</characteristic>

<!-- Create new shortcut pointing to new EXE name -->
<characteristic type="%CE11%" translation="install">
<characteristic type="MakeDir" />
<characteristic type="SMS Intercept.lnk" translation="install">
<characteristic type="Shortcut">
<parm name="Source" value="%CE1%\sms Intercept\sms Intercept1.exe"
translation="install" />
</characteristic>
</characteristic>
</characteristic>
</characteristic>
</wap-provisioningdoc>

Conclusion

You should now understand how to configure your CAB file projects to include PNG files as icons in the Windows Mobile 6.5 Start screen.

For a list of frequently asked questions on this topic see here: Start Screen PNG Icon FAQ

Share this post :

, 6:24 PM

XP Mode vs. Med-V

0 Comments »


With the release of the XP Mode Release Candidate, there has been a lot of talk and confusion around when XP Mode is a ideal solution and when you should look at Med-V as a solution . I thought I would take a few minutes to clear up any confusion.

Well, let me start with actually talking a bit about [Windows] XP Mode.

We introduced Windows Virtual PC in Windows 7 with new capabilities, such as support for USB (Universal Serial Bus) devices, and seamlessly integrating the Virtual PC applications into the Windows 7 desktop and making them available for the users from the start menu. Windows XP Mode is just a preconfigured Windows XP virtual image and it is available for any user that has Windows 7 Pro [Professional] and above. The whole Windows XP Mode is specifically designed to help small business users run Windows XP application on Windows 7 in case that the application would not run on a Windows 7 operating system.

However, you ask why people need something beyond that, then with [Windows] XP Mode, users are required to setup their Windows XP applications themselves. I mean each physical PC has its own virtual Windows XP environment and is controlled and managed by the end-user. It is not designed for IT environments or centrally managed deployments. And this is exactly where you need MED-V. MED-V adds everything that is required to support the larger deployments of [Windows] XP Mode. It includes the provisioning of an IT configured virtual machine, customizing the specific XP environments on the end-devices to connect to the [Microsoft] Active Directory domain and to adjust the settings of the

Virtual PC to the specific parameters of the device. So it adjusts them according to the network setting of the device, according to the amount of memory available, and other settings on the PC. Finally, MED-V will also offer monitoring and troubleshooting for all those Virtual PC deployed in the environment.

So here are some breakdowns to answer common questions

What is Windows XP Mode, Windows Virtual PC and MED-V?

  • Windows Virtual PC is a type II hypervisor in Windows 7 i.e. it enables users to run multiple instances of Windows on a single device.
  • Windows XP Mode leverages Windows Virtual PC and a preconfigured Windows XP image to create a virtual Windows XP environment
  • MED-V is the management layer for IT professionals on top of Virtual PC.
  • Windows XP Mode does not replace MED-V.

The breakdown

Windows XP Mode is specifically designed to help small businesses users to run their Windows XP applications on their Windows 7 desktop.

  • Windows XP Mode is available as part of Windows 7 Professional , Ultimate and Enterprise.
  • Windows Virtual PC will enable users to launch many older applications seamlessly in a virtual Windows XP environment from the Windows 7 start menu
  • Windows Virtual PC includes support for USB devices and is based on a new core that includes multi-threading support
  • Windows XP Mode is best experienced on new PCs from OEMs but will also be available for customers as a separate download.

Microsoft Enterprise Desktop Virtualization (MED-V) is designed for IT Professionals.

  • MED-V enables Virtual PC deployment in larger organizations
  • MED-V provides important centralized management, policy-based provisioning and virtual image delivery to reduce the cost of Virtual PC deployment.
  • MED-V is part of the Microsoft Desktop Optimization Pack (MDOP)
  • MED-V v1 builds on Microsoft Virtual PC 2007 to help enterprises with their upgrade to Windows Vista when applications are not yet compatible.
  • MED-V v2 will add support for Windows 7 and Windows Virtual PC.
  • MED-V v2 beta will be available within 90 days of Windows 7 GA.

Which customers should use Windows XP Mode?

Windows XP Mode is suitable for small and medium business users, who are able to set their XP applications themselves or with the help of an IT professional.

Each device has its own virtual Windows XP environment, that is controlled and managed by the end user.

Windows XP Mode is not designed for large, centrally managed deployments, and is not suitable for organizations that have widely deployed business applications that require Windows XP.

How does MED-V adds management to Windows Virtual PC?

To provide a managed, scalable solution for running virtual Windows XP applications, MED-V addresses many of the IT challenges around deployment and management including:

  • Deployment deliver virtual Windows images and customize per user and device settings
    • Automate first-time virtual PC setup based on an IT customized script including assignment of a unique computer name, joining to AD domain
      (for instance: assign the virtual PC a name that is derived from the physical device name or the username to simplify identification and management)
    • Adjust virtual PC memory allocation based on available RAM on host, so that the virtual PC does not take significant resources from the user
  • Provisioning define which applications and websites are available to different users
    • Assign virtual PC images according to users and groups
    • Define which Windows XP applications will be available to the user through the start menu
    • Define which websites (e.g. internal sites that requires a previous version of Internet Explorer) are redirected automatically to Windows XP
  • Control assign and expire usage permissions and Virtual PC settings
    • Control the network settings of the Virtual PC (e.g. whether it connects through NAT or DHCP, whether its DNS is synchronized with host)
    • Authenticate user before granting access to the Virtual PC
    • Set expiration date, after which the Virtual PC is not accessible to the end user
  • Maintenance and Support - update images, monitor users and remotely troubleshoot
    • Update images using TrimTransfer network image delivery update a master Virtual PC image, and MED-V will automatically distribute and apply the changes to all endpoints
    • Centralized database aggregates events from all users, and provides troubleshooting information on malfunctioning virtual PCs
    • Administrator diagnostics mode allows faster resolution of Virtual PC issues
    • Run on multiple platforms MED-V will work on both Windows 7 and Windows Vista, and will not require processor-based virtualization support

How do I purchase MED-V?

MED-V is licensed as part of MDOP subscription that is available for purchase for Software Assurance customers.

What are the key features of new version of Windows Virtual PC?

Easy setup of Windows XP Mode Once both the Windows Virtual PC and the virtual Windows XP environment are installed, Windows Virtual PC provides a simple wizard to setup the Windows XP Mode with just a few clicks.

USB Support - Users can access USB devices attached to Windows 7 directly from Windows Virtual PC. These devices include Printers and Scanners, Flash Memory/Sticks and External Hard Disks, Digital Cameras and more.

Seamless Applications Publish and Launch applications installed on Windows Virtual PC directly from the Windows 7 desktop, as if they were installed on the Windows 7 itself.

Folder Integration between Windows 7 and Windows Virtual PC Access your Windows 7 Known Folders: My documents, Pictures, Desktop, Music, Video, from inside the virtual windows environment, such as Windows XP Mode

Clipboard Sharing Cut and paste between your Windows 7 and Windows Virtual PC.

Printer Redirection Print directly to your attached printer from your Windows Virtual PC applications either in application mode or desktop mode.

SPECIAL THANKS TO Ran Oelgiesser and Fei Lu for their help with this post.

9:27 PM