Category Archives: Cool Stuff

Kinect used for interactive public space advertising

Quite a while ago I wrote about a young aspiring company named Rarebyte. The guys at Rarebyte have a bunch of very innovative ideas  ,… one of them is a new operational area for the Microsoft Kinect platform.

Their idea is to use the Kinect platform with associated middle-ware to create a new way for interactive public space advertising.

The System is installed at the subway station  Stephansplatz in Vienna as part of the (re)branding marketing campaign of A1.

Visitors of the subway station at the Stephansplatz can see themselves with speech and thought bubbles above their heads that contain entertaining and product specific slogans as well as different A1 logos.

But see for yourself 🙂

[youtube GItvRqmuUME]

[youtube fiS_z7sD5sg]

articel at Der Standart -> link

wi-GO a cool Kinect usage to make someone’s life easier

The guys from the University of Beira Interior (Department of Informatics) came up with a wonderful idea how to use the Kinect to  improved quality of life for disabled persons.

The wi-GO project is a robot system based on sensor technology Kinect that enables disabled persons, elderly and pregnant women, .. to carry objects without difficulty, comfortably and safely.

The following video shows the difficulties a person in a wheelchair faces when navigating a shopping cart into a store.

But see for your self 🙂

[vimeo 24542706]

AnatOnMe an Microsoft reseach project for improving patient-doctor communication

I just stumbled over an interesting project done by some Microsoft researchers. AnatOnMe is a projection-enabled mobile device which should help to improve patient-doctor communication in medical contexts.

For example if a patient has a bone injury in his upper thigh, the device will project the image of the bone and surrounding tissue on the the patients skin. This will give the patient an idea of how the injury actually looks,….. cool 🙂

[youtube Zg8RvXe2qTE]

Honeycomb for Tegra 2 based (POV, Vega,….) Tablets

Why….. because we can 🙂 The guys from TeamNewCo and TeamVillain made the first running Honeycomb (VegaComb) port for the Tegra 250 based tablets.

The last evening I reflashed my POV with the VegaComb ROM,… and it works almost flawlessly. If you are interested you can download the stuff from the tabletrons forum.

Just in case you have any trouble installing the ROM.

I started from a fresh 1.09 firmware rev from myadventvega, then installed the recover apk mentioned here, rebooted and recovered from the zipped ROM. .. e volà.. 🙂

And remember if you like it consider to support them with a donation!! 🙂

12.07.2011 – Update….. the newest VegaComb seems to be version beta 1.7 link

have fun! 🙂

POV Mobii Tegra Tablet and how to pimp it

A few days ago I got a shiny new Point of View Mobii Tegra 2 drive tablet.

The POV Mobii is equipped with :

  • Dual core Cortex A9 – 1 GHz
  • NVIDIA Tegra 250
  • Memory 512 MB DDR2 + 512 MB NAND
  • LCD display 10.1″ 1024×600 Capacitive touch screen
  • Operating system Android 2.2
  • WiFi 802.11 b/g
  • Graphics output HDMI
  • Audio ports Headphone out
  • Speakers 2x 1 W
  • Webcam 1.3M Pixel
  • USB Ports 1x USB 2.0 host

– So far so good.

But…, there is no android market installed, … for now 🙂 and the USB host mode is set to master.

So what can you do…..

After googling around and with the help of some hardware debugging I found out that the used hardware seems to more or less the reference design for the Tegra hardware which is also used in some other products.

One of this is Products is the Vega ADVENT Tablet. The OS used with this tablet supports USB host slave mode .

The first thing you have to do is to download the image for the Vega and flash you Mobii. (I’m using versoin 1.08).

After bootup you will have a MobiiVega-hybrid :-). You will also notice that the Vega OS is a bit faster then the POV version.

The next step is to upload a special ROM addon called the MoDaCo ROM addon. You can download it from here. If you have problems installing the addon on your 1.08 image you can also download the 1.06.05

Upload the addon is a bit more tricky. In the downloaded addon archive you will find an android debugging  bridge driver ADB . This driver must be installed for your MobiiVega-hybrid.

I used WIN7 for that process and encountered some problems where the tablet with activated USB debugging was not recognized by the OS.

If you also run into this problem you can fix it like doing the following:

Got to your device manager and open the USB-Controller section. There you will find a USB-Composite Device. Remove this device with its drivers and trigger a search for new hardware. Now you will get a new device ADB device for which you can install the ADB drivers.

After extracting the downloaded archive execute the install scripts and … here you go with android market, and a lot of other goodies 🙂

If you interested in some more details you may also have a look here. There are also some modified kernels around read here.

Ahhh and yes…. It goes without saying that any modification you do on your tablet and which eventually may fail are not in my responsibility :-).

have fun

Last login patch for Trac UserManager plugin

I just have added a visit motivation feature to the Trac Usermanager plugin. With the included patch set you will get an additional column Last Login in the “UserProfilesList” macro.

This patch applies to UserManager plugin rev 5520  🙂

--- macros.py	(revision 300)
+++ macros.py	(revision 301)
@@ -10,6 +10,8 @@
 from trac.wiki.macros import WikiMacroBase
 from trac.wiki.formatter import wiki_to_html
 from trac.web.chrome import Chrome, add_stylesheet, add_script
-from trac.util.datefmt import format_datetime
+from trac.util.datefmt import format_datetime, to_datetime
+from datetime import datetime

 from tracusermanager.api import UserManager, User
 from tracusermanager.profile.api import UserProfileManager, IUserProfilesListMacroCellContributor
@@ -72,9 +73,29 @@
             data['user_profiles'] = UserManager(self.env).search_users(user_profile_templates)
         else:
             data['user_profiles'] = UserManager(self.env).get_active_users()
-
+
+        db = self.env.get_db_cnx()
+        cursor = db.cursor()
+        cursor.execute("SELECT sid,last_visit FROM session WHERE authenticated=1")
+        last_visits={}
+        for username, last_visit in cursor:
+          for user in  data['user_profiles']:
+              date_diff = datetime.now().date()  - datetime.date(to_datetime(last_visit))
+              if date_diff.days > 1:
+                user['last_visit'] = "%d days ago" % date_diff.days
+              elif date_diff.days == 1:
+                  user['last_visit'] = "%d day ago" % date_diff.days
+              else:
+                  user['last_visit'] = "today"
+
+              #user['last_visit'] = format_datetime(last_visit,"%b %d.%m.%Y %H:%M:%S")
+
+
         data['cells']=list(self._get_cells(data['user_profiles']))
-
+
         # add stylesheet&script
         add_stylesheet(formatter.req,'tracusermanager/css/macros_um_profile.css')
         add_script(formatter.req,'tracusermanager/js/macros_um_profile.js')
@@ -102,8 +113,9 @@
         yield ('name', _('Name'),0)
         yield ('email', _('Email'),1)
         yield ('role', _('Role'),2)
+        yield ('last_visit', _('Last login'),3)
     def render_userlistmacro_cell(self, cell_name, user):
-        """Should render user cell"""
+        """Should render user cell"""
         return user[cell_name]

 class TeamRosterMacro(UserProfilesListMacro):

have fun