Running Ubuntu 16.04 LTS on Windows 10 desktop

Intrigued to discover that the Windows Store has an Ubuntu app and decided to try it out and see how functional it is. Very, it turns out. Took a while to get started as I had to set up the PC for Insider Preview Fast Ring to get the required Windows build level. Once that was done, it was all pretty straightforward.

The app is a command line Ubuntu version. I tried installing ubuntu-desktop but that didn’t really work. However, lots of other things did work including network servers (that need to listen on ports for connections) and things like that. The Windows 10 desktop’s drives are visible at /mnt/x where x is the Windows drive letter. The app runs .bashrc and .profile scripts at startup so it is easy to get things to run automatically. As you can see from the screen capture, it has access to all of the CPU resources unlike a virtual machine where you can partition the cores (and RAM for that matter) – I was able to get all 12 cores running compilations simultaneously. However, in most cases the apparent inability to control the number of cores used by the Ubuntu app is probably unimportant (I didn’t find any way of changing settings).

The Ubuntu app appears on the same host adaptor as the Windows desktop so they share an IP address and port space. I was unable to ssh into the app for example. However, I was able to run webservers on non-standard ports and that worked just fine.

There is no /dev directory and therefore no way to access USB devices such as webcams. USB flash drives do not appear either – only the internal drives are visible to the Ubuntu app as far as I can tell.

All in all there are some caveats but it is essentially a very useful app for situations where it is important to be able to run Linux programs on a Windows machine without the overhead of running a virtual machine.


The trouble with temperature sensors

Working with the Bosch XDK reminded me that temperature sensing seems like such an obvious concept but it is actually very tough to do and get correct results. The prototype above was something I tried to do in a startup a few years ago, back when this kind of thing was all the rage. It combined motion sensing, the usual environmental sensors including air quality and could have a webcam attached if you wanted video coverage of the space also.

In this photo of the interior you can see my attempt at getting reasonable results from the temperature sensor by keeping the power and ground planes away from the sensor – the small black chip on the right of the photo. Trouble is, the pcb’s FR-4 still conducts heat, as do the remaining copper traces to the chip. Various other attempts followed included cutting a slot through the FR-4 and isolating the air above the rest of the circuit board from the sensor. This is an example:SensorBoard1.jpegAnd this is a thermistor design (with some additional wireless hardware):


In the end, the only solution was to use a thermistor attached by wires that could be kept some distance from the main circuitry. Or, just having all the very low power sensors completely removed from the processor.

The Raspberry Pi Sense HAT suffers from this problem as it is right above the Pi’s processor, as does the Bosch XDK itself. Actually I am not aware of any other really good solution apart from the one where a cable is used to separate the sensor board completely from the processor controlling it (which might work for the Sense HAT although I have not tried that.

Wide field of view holographic displays

Absolutely fascinating paper here from Microsoft Research describing the design of a holographic display technology that can achieve 80 degrees field of view or more. I remember sitting in a bar in London circa 1980 with a colleague discussing how to produce custom wavefronts for CGI applications. We went down a black hole fast but this kind of tech is exactly what we would have needed.