Wiimote Whiteboard fun

by Daniel 28. May 2008 01:27

In meinem letzten Blog Eintrag schrieb ich über die spannende Reise das "Wiimote Whiteboard" auf Windows Vista x64 zum laufen zu bringen. Nachdem nun alles funktioniert, konnte die "Testphase" beginnen. Wie wir gelernt habe, testem wir am besten nicht selbst, sondern lassen testen. Schaut selbst, was dabei heraus gekommen ist:

Neben seriösen Anwendungen, haben wir auch "Montagsmaler 2008" gespielt ;-)

Hat jemand eine Idee, welcher Begriff hier gemalt wurde?

 

Tags: ,

Wiimote Whiteboard in Windows Vista

by Daniel 27. May 2008 05:59

Recently I watched this YouTube Video and was very impressed about what I saw. As I often make presentations and training, I thought to me this would be a really catchy solution for my next presentation. A low-cost solution for a touch Whiteboard simply by utilizing the Nintendo WII Controller :-) That's it!

I investigated my old hardware box, found an old remote, captured the infrared LED from the old remote, soldered the infrared LED to a battery and a switch, assembled it into an old marker.

That's it - I built my own electronic touch whiteboard pen:

That was the fun part. Now I wanted to test it with my Windows Vista Laptop (DELL Precision M65). I fetched my WII Controller, started the Bluetooth detection and - after some tries - I got it into my Vista as a Human Interface Device (HID). Some strange thing happened: When I wanted to connect the WII remote again, I had to remove it from the Bluetooth device list. Only then was it recognized as a "connected" device. So - if you have problems connecting the WII remote to you PC, try removing it completely from the Bluetooth device list first!

Now came the relly exciting part! I downloaded the Wiimote Whiteboard from here and ran the tool. The calibration of my monitor with my newly assembled "electronic touch whiteboard pen" was no problem at all - it simply worked as expected. Mark the top/left edge, top/right edge, bottom/left edge and the bottom/right edge - fine...

But then - nothing... no Mouse cursor movement... ...no clicks... ...nada... did I do something wrong? Was the "Wiimote Whiteboard" program not compatible to Vista? I instantly tried it on my old Windows XP Desktop (EPOX BT-DG02 USB-Bluetooth Dongle) - and it worked!!!

The next day I could not stop thinking about it - as I do not want to install Windows XP on my Laptop for my presentations. Luckily the Author of "Wiimote Whiteboard" provided the Source Code and more luckily - it was written in .NET!!!

So I could load it into my Visual Studio (I converted it to a VS2008 Project) and tried to find out where the problem with Vista could be. The C# code seemed really simple to me - the mouse cursor was positioned by using "SendInput" of the Wine32 API via P/Invoke. Hmm - this is not working under Vista? And yes - after googleing around - it seemed the most likely issue. In the MSDN API Documentation of SendInput there is a talk about "UIPI" - the User Interface Privilege Isolation. What's that? Never heard about it... Besides - here is a PDF with deep technical information about Vista UIPI that I found while looking for the problem. And it's really a fact - Vista prevents certain Windows Messages, depending on the so called "Integrity Level" of the program.

You can use Process Explorer to watch the current "Integrity Level" of a process:

As you can see, the "WiimoteWhiteboard v0.2.exe" process is at Integrity Level "High". Maybe "Hight" is not high enough? There is only one higher Level called "System". So I tried to change the assembly manifest to claim for "System" Integrity Level . But as I did not succeed in about 5 minutes, I tried another thing first. Often there are compatibility issues with 64-Bit Windows Versions with .NET Programs as they can run on x86 and x64 in native mode by default. So I forced the program to compile in x86 mode. And that was the fast solution :-) - Wiimote Whiteboard now runs on Windows Vista X64 without a problem. There are other versions in the Wiimote Whiteboard Forum on the Homepage, but I never got other versions to work correctly on my Vista X64.

Tags: , ,

Arcor DSL vs. Kabel Deutschland Internet

by Daniel 24. May 2008 21:40

Seit ca. einem halben Jahr haben ich zwei Provider um von zu Hause aus ins Internet zu komnen. Anfangs dachte ich mir zunächst nicht viel dabei, ausser dass wenn mal eine Leitung ausfällt, könnte ich problemlos auf die andere zurückgreifen. Seit langem habe ich Arcor DSL 2000 und bin bis auf seltene Ausfälle relativ zufrieden damit. Dann kamm das Angebot "Flat Deluxe" von Kabel Deutschlang heraus, welches 26.000 Kbit's versprach. Da ich das Internet ständig auch beruflich nutze und sehr viel mit RDP arbeite - siehe letzten Blog Eintrag ;-), bestellte ich mir Flat Deluxe zusätzlich zu meiner Arcor DSL Leitung.

Natürlich machte ich gleich Geschwindigkeitstests und wurde relativ nüchtern überrascht. Die Bandbreite, die theoretisch eben bei 26.000 Kbit/s liegen sollte, erreichte bis heute - wie gesagt ein halbes Jahr - maximal die 16000 Kbit/s. Gemessen zu verschiedensten Uhrzeiten, mit verschiedenen Tools. Nun ja, die Bandbreite ist ja nur für downloads relevant. Ich persönlich benötige aber eher kurze Ping Zeiten. Aber auch hier versagte die Kabel Leitung leider. Hier ein direkter Vergleich:

Arcor DSL 2000 Ping Zeiten:

Kabel Deutschland "Flat Deluxe" (26000) Ping Zeiten:

Zu erklären ist dieses Desaster sicherlich durch die unterschiedliche Technik bzw. das Backbone.
Ein Trace-Root offenbart es:

 Tracing route to www.albamond.de [62.146.19.250] over a maximum of 30 hops:

  1     5 ms     7 ms     6 ms  91-64-252-170-dynip.superkabel.de [91.64.252.170]
  2     7 ms     7 ms     7 ms  91-64-255-46-dynip.superkabel.de [91.64.255.46]
  3     7 ms     7 ms     7 ms  83-169-183-86-isp.superkabel.de [83.169.183.86]
  4    18 ms    15 ms    15 ms  83-169-128-14-isp.superkabel.de [83.169.128.14]
  5    31 ms    31 ms    43 ms  83-169-128-9-isp.superkabel.de [83.169.128.9]
  6   186 ms   203 ms   205 ms  83-169-128-129-isp.superkabel.de [83.169.128.129]
  7    23 ms    23 ms    24 ms  Tenge2-3.cr3.FRA3.content-core.net [80.81.193.32]
  8    34 ms    35 ms    36 ms  Tenge1-2-57.cr1.NBG1.content-core.net [212.123.123.193]
  9    27 ms    27 ms    26 ms  ge1-1-951.rtr2.colo1.NBG1.content-colo.net [212.123.127.117]
 10    34 ms    35 ms    34 ms  62.146.19.250

Trace complete.

Das meiste der Latenzzeit wird schon innerhalb des Kabel Deutschland Netzes "verbraten". Sehr schade!
Aber als Kunde unteressiert mich die Technik eigentlich recht wenig - ich erwarte schlicht eine schnelle Leitung.

Leider war das noch nicht alles zum Vergleich zwischen DSL und Kabel. Als nächster Punkt spielen die Ausfallzeiten eine wichtige Rolle. Niemand kann erwarten, dass man eine 100% verfügbare Internet Leitung bekommt. OK. Meine Erfahrung bei Arcor waren Ausfälle max. ca. 1 mal im Monat unter einer Stunde. Leider toppt das Kabel Deutchland mit Stundenlangen Ausfällen mindestens 1 mal in der Woche. Manchmal liegt es direkt an Kabel Deutschland, manchmal am Kabel-Modem, welches man durch einen Reset wieder zum arbeiten bewegen kann. Aber das Modem kommt von Kabel-Deutschland, daher geht das für mich auf's gleiche Konto, da ich als Kunde den Dienstleister dafür in die Pflicht nehme mir die richtige Hardware zu verkaufen bzw. bereitzustellen...

Tags:

What's your development hardware?

by Daniel 22. May 2008 04:18

A developer's machine can never be fast enough. That's a basic truth, as software is generally known to become more slowly in time than hardware gets faster ;-)

Currently I have the following hardware & operating system that runs my Visual Studio 2008:
- 2 Physical Quad Core Xeon 3,2GHz processors
- 16GB of RAM
- 6x 10.000 rpm HD in RAID 10
- Windows Server 2003 x64

You might think I am a little bit of a dissipater when using such a powerful machine just for my own development. Yes, you are right - it's not my personal machine at all - I share this machine with my colleagues. Using such a machine under my desk would be physically possible indeed, but not very bearable because of the heat and noise. So we surely use terminal clients to access our development machine. This works okay if your network latency is constantly below 50msec; I noticed perfect working with less then 20msec.

So, what's the conclusion of this information?

I personally love development on remote and really fast machines in a team for over 1 year now as is bears a great set of benefits:

  • Everyone can and has to use the intended development environment (no more plugging around trying to get supplied components to run)
  • Share Data in a msec with colleagues
  • Attach to the desktop of a colleague a work in a shared environment in seconds (e.g. for instant developer support)
  • Get new developers into your team and let them start to work in minutes
  • Access your Source Code Repository via 1GB LAN on a machine nearby
  • No more different versions on different machines (Desktop/Laptop)
  • Work from everywhere in your famillar environment
  • Have your checked out code backed up and physically redundant automatically
  • Fast access to developer DB's as they probably stand nearby the development server
  • ...

Of course I still have other Visual Studio's installed on my Laptop or on dedicated virtual machines for offtopic development and beta tests. But that's a completely different use case.

If you like this idea or if you have similar approaches feel free to contact me to share the ideas :-)

Tags:

Release of XamlWebControls

by Daniel 20. May 2008 01:07

I am very happy to announce the first release of XamlWebControls!

XamlWebContrals is an ASP.NET control suite from Albamond that allows you to add XAML renderings to every day used UI elements like buttons, panels and images. The XamlWebControls are an alternative to Silverlight as all rendering takes place on the server. There is not need for any client installation.

The great advantage of using XAML in a web site is to let developers use and manipulate any graphic element directly in Visual Studio and take advantage of Microsoft's powerful WPF:

  • Full alpha channel transparency support
  • Great visual effects like blur, shadow, color gradient, ...
  • Scale, rotate or skew graphics
  • Vector based drawing of any geometrical figure
  • ...

For more information visit the XamlWebControls homepage:

http://www.albamond.de/XamlWebControls

 

Tags:

Hello Everybody

by Daniel 15. May 2008 06:25

Today I'll start with my new Blog "Writing about everyday concerns in a Microsoft .NET developer's universe". As you might sense I earn my money by streching Microsofts .NET Framework within the realm of its possibilities. Besides training and consulting other developer teams in .NET technology, I also write code in my own projects - preferably in C#. This blog will be about common .NET development topics, the projects I am working on - the ones for the public only ;-) - and some general IT topics. This Blog will be in English and probably sometimes in German for topics making sense for German people only.

 

Tags:

Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen

About the author

Daniel
MCSD, MCTS
Microsoft Certified Trainer
CTO, Albamond GmbH
E-mail me Send mail