Wednesday, June 23, 2010

Embedded Spark Contest news

Finally Embedded Sparks 2010 Summer Challenge first round winners have been announced yesterday night: I was very happy to discover that my eMMEC idea is one of them again! Stay tuned for updates on prototype development progress during next weeks (this time, I hope I will have enough free-time this period in order to come up to the end of Round 2).

Saturday, June 12, 2010

New contest: embeddedSPARK 2010 SUMMER Challenge

For the first year a new challenge unfolds over the summer, starts when the original embeddedSPARK Challenge ends (Microsoft announced the embeddedSPARK SUMMER Challenge at the end of April, during the ESC Silicon-Valley event), and concludes with the finalists presenting live on stage at ESC Boston, in September.

For those of you that don’t know Microsoft EmbeddedSpark initiative, it is a collection of Windows Embedded software for hobbyists which consists of full versions of Microsoft development tools and a SPARK-selected board from one of Microsoft’s hardware partners. Usually, participating to the program means that you get the software and the hardware for the price of the board.

Among many initiatives (blogs, documentation, classrooms, community forum, etc.) Microsoft organizes also a contest for embedded hobbyists and gives an EmbeddedSpark kit for free to those who pass the first round selection in the contest.

The contest is a skill-based and chance plays no part in the determination of the winner(s). The object of the contest is to provide a forum for Windows Embedded enthusiasts to showcase their skills, help build the Windows Embedded community and drive awareness of the embeddedSpark program.

This brand new summer challenge is based on Windows Embedded Standard 7, whereas the original embeddedSPARK Challenge (now renamed to embeddedSPARK WINTER Challenge) is based on Windows Embedded CE. 

Not being able to continue the winter challenge edition, early this year, I decided to try participating to the summer contest wieMMEC logoth a new proposal. Based on the new Microsoft Embedded platform, the contest represents the optimal workbench to consolidate my knowledge and learn new things  in view of the Microsoft Certification Exam.

The theme for the first edition is "Media Explosion". My proposed idea is an evolution of my last year embedded device, which tries to surpass many of the limitations and usability problems I found while developing the prototype for my master degree thesis. For further information and details, check official submission entry page: eMMEC.

Within ten days, the first round winners will be announced…

Friday, June 11, 2010

New embedded community

The primary objective for the embeddedSPARK program is to provide an environment for developers from different region, with different backgrounds, to engage, learn and ultimately be able to take on Windows Embedded opportunities. I’d like to share with you the www.embedded101.com website, I found this morning while reading some posts on the official embeddedSPARK forum. The site is established to be an online community for Windows Embedded, to provide a place for developer to share knowledge, learn and evolve as a group. www.embedded101.com is completely independent from Microsoft, and is organized to be a technical online community to help developers, new to Windows Embedded, to learn and engage in Windows Embedded development. Currently, this site is setup with the following section:

  • Blogs
  • Forums
  • Articles
  • Projects

If interested, I suggest you to contribute and to invite other people to became member of the community, with the purpose of sharing knowledge and learning together Windows Embedded technologies.

Thursday, April 29, 2010

Congratulations, Marco!

I’m pleased to announce that yesterday my friend and colleague Marco has been awarded the first prize in Microsoft Embedded Sparks 2010 contest. His proposed solution, submitted in January to Microsoft, should represent what the dream of every guitarist is: the chance to try all available sound effects, typically built into footswitches that cost 100-200$ apiece, at an affordable price. His "Guitar Multi Effect" project is designed to emulate all effects digitally, saving money and giving a musician less to carry from gig to gig. Marco’s proposal also offers a karaoke mode that accompanies a guitarist with previously recorded audio tracks. When fitted with an optional touch screen it also enables playback of video lessons and allows to download new effects from the web.

Find out more on the contest web site, on Marco’s blog or watch the official video:

Sunday, March 21, 2010

Embedded contest update and Microsoft certification exams

Some weeks ago I announced that I would have written some posts about my work for Microsoft Embedded Sparks 2010 contest. Sadly and unfortunately, due to little free time in the last period and to some hardware/software issues while preparing the contest prototype, I had to stop the development. Maybe I will retry next year…

Meanwhile, I also studied to take two Microsoft Certification exams. I took the first one in mid-December: it was the beta version of Windows Mobile 6.5 - Application Developer exam. I received the communication that I passed it just ten days ago. On last Wednesday, then, I took and passed the Windows Embedded CE 6.0 - Development exam. Now I’m a Microsoft Certified Technology Specialist in embedded field… but that’s just the beginning: I already started to study for a new Embedded exam, Windows Embedded Standard 7 for Developers (previously known as Windows Embedded Standard 2011), which I’ll take as soon as it become available (maybe in mid-June).

Sunday, February 14, 2010

Single-workstation virtualized development environment

At work and at home I have just one development machine and I usually need to use different versions of development environments and tools. For example, to build Windows CE 6.0 images, one needs Visual Studio 2005, Windows CE 6.0 Platform Builder, their service packs, Windows Vista/Windows 7 compatibility updates (if you don’t use Windows XP), Windows CE monthly updates. If you have a clean development machine with just the previous listed software, there should be no problems. Everything should work fine, debugging on remote devices works, builds should complete successfully (apart from normal building errors and bad configurations, but nothing depending on operating system configurations or installed software).

But what if you also need to develop .NET Compact Framework 3.5 applications for Windows Phones? On your development machine you have to install Visual Studio 2008 and Windows Mobile SDKs/tools. Of course, you would like that all the previous installed software still continue to work as before: that’s the problem. It’s not that easy reaching this goal. Visual Studio 2008 updates some system components that are used by Visual Studio 2005 and Platform Builder for Windows CE development, and that can cause compatibility issues when debugging Windows Mobile/Windows CE devices. It’s not impossible installing and working side-by-side with the two systems, but it is necessary to pay great attention with applications installation order, tools installation order, updates installation order. As time goes by, something will break and, for example, it will not be possible anymore to build Windows CE images or remotly debug a device.

If you also need to use SQL Server databases, some 2005 version and some 2008 version, you have to install both on your machine. I know that the problem wouldn’t exist if 2005 databases could be updated to 2008 version (but some customers don’t allow this) or if I had other machines/development servers to install them separately. Searching on the web, in forums and blogs, many people say that the two versions can work together without any problems. I tried and for my work needs (Management Studio, query analyzer, database backups, remote database access) it works. Nevertheless, many people reported problems with Management Studio, Integration Services and Analysis services, but I cannot say more about that, because I have no experience.

Upset with these (and many others) compatibility issues in everyday development tasks, during Christmas holiday I started to experiment a virtualized development environment on my home workstation. After one month of everyday usage, I decided to adopt the same development configuration at work.

In a number of next posts I’ll give you an overview of my virtualization experiments, with problems I had and solutions I found.

For those who doesn’t know what virtualization is, there’s a brief introduction. For more information, start having a look at Wikipedia entries (http://en.wikipedia.org/wiki/virtualization).

 

What is virtualization?

The term "virtualization" was coined in the 1960s, to refer to a virtual machine: in general an abstraction of a computer resource. This includes making a single physical resource appear to work as multiple logical resources (such as a server, an operating system, an application, a device) or it can include making multiple physical resources (such as servers or storage devices) appear as a single logical resource. The creation and management of virtual machines has been called platform virtualization, or server virtualization, more recently.

Platform virtualization is performed on a given hardware platform by a control program (host software), which creates a simulated computer environment, a virtual machine, for its guest software. The guest software is not limited to user applications; many hosts allow the execution of complete operating systems. The guest software executes as if it were running directly on the physical hardware, but with some limitations. Access to physical system resources (network access, display, keyboard, disk storage, USB devices, etc.) is generally managed at a more restrictive level than the processor and system-memory. Guests are often restricted from accessing specific peripheral devices, or may be limited to a subset of the device's native capabilities, depending on the hardware access policies implemented by the virtualization host.

Many commercial, freeware (and some even open-source) virtualization software exist for many operating systems. Just to cite some of them, without any particular order:

  • VMWare Workstation
  • Microsoft VirtualPC
  • VMWare Server
  • Sun VirtualBox
  • Microsoft Hyper-V
  • QEMU
  • Microsoft Virtual Server
  • Parallels for Desktop
  • Parallels Workstation
  • …

For other software and further information: http://en.wikipedia.org/wiki/Comparison_of_platform_virtual_machines

 

Virtualization Uses

Virtualization can be used in various context and modes. Mainly it can be useful for:

  • Server consolidation (consolidating low-usage systems onto one physical server; consolidating systems using old or outdated operating systems)
  • Software testing (QA testing; portability validation; new operating systems)
  • Safe web navigation (dangerous sites; research; downloads; automated scripts; validation; security testing; etc.)
  • Tech support (customer OS/software in VMs; re-create client’s environments in virtual ones)
  • Software evaluation (features and compatibility tests; scalability simulation; screen capture; snapshots of deployed VM for future replay)
  • Training (no configuration issues from trainers and students; practice machines)
  • Demos (fresh VM for every demo provides repeatable experience)
  • Load balancing (clusters of VMs rather than of hardware nodes)
  • Grids (Cloud computing)
  • Software development (developers use a hosted VM with all resources on local systems)

In the last few years virtualization started to take greater and greater place in IT deployment strategies and usage. Some of the previous scenarios are currently used, while other are just entering the virtualization world. Sure is that virtualization in IT will grow in the future,  because its benefits are compelling.

The last point is the previous list represents the starting point of my experiments. In one of the next posts, we’ll see how I interpreted this use of virtualization.

Thursday, February 4, 2010

Windows Embedded Standard 2011

Windows Embedded Standard 2011 is the next version of Windows Embedded Standard 2009 and it will be based on Windows 7. Standard-2011 Release Candidate will be available soon: to begin discovering the new platform, thanks to an agreement with Microsoft Windows Embedded Team, Beppe Platania (Beps Engineering CEO), started to post on his blog an Italian translation of the Windows Embedded Blog articles regarding the product.

Articles will be posted on weekly basis and the first one has just been posted some days ago. If you’re interested, stay tuned on Beppe’s blog!