My first little Unity 3D Virtual Reality project, inspired by my old friend the Nintendo Entertainment System. Please keep in mind the I have never used Unity 3D before, so this is my first sandbox application…
It’s not super useful in practice, but a nice little exercise that combines to cool C# features into a fun asynchronous “magic” trick.
privateconstint INFINITE = -1;
publicstaticasyncTask MutableWhenAll(thisObservableCollection<Task> collection)
await MutableWhenSomething(collection, Task.WhenAll);
publicstaticasyncTask MutableWhenAny(thisObservableCollection<Task> collection)
await MutableWhenSomething(collection, Task.WhenAny);
privatestaticasyncTask MutableWhenSomething(thisObservableCollection<Task> collection, Func<IEnumerable<Task>, Task> whenSomething)
Task waitAllTask = null;
Task helperTask = null;
bool isCollectionChanged = false;
//Cancellation on collection changed eventvar cts = newCancellationTokenSource();
var cancelActionHandler = (sender, arg) => cts.Cancel(false);
collection.CollectionChanged += cancelActionHandler;
waitAllTask = whenSomething(collection);
//Wait on current collection or collection changed eventtry
helperTask = Task.Delay(INFINITE, cts.Token);
isCollectionChanged = cts.IsCancellationRequested;
collection.CollectionChanged -= cancelActionHandler;
//Return the WaitAll on collection resultsawait waitAllTask;
A simple example application that demonstrates the MutableWhenAll extension on an observable collection of tasks. The longest running task is added to the observable collection after MutableWhenAll is called, but the MutableWhenAll will complete only when all tasks (included this longest running task) are completed.
SVG vector bases, touchscreen enabled, animated, and 3D.js driven front-end, running on an “embedded” Raspberry-Pi that is sampling 21 USB connected skin moisture sensors (each containing an array of 256×300 sample points).
The system is running battery power in a bag pack, carried by the human test subject. De system is hosting a live measurement data as a web service using a Wifi AP hosted by WiFi USB dongle connected to the Raspberry Pi, in connection with the 21 USB connected skin moisture sensors.
System status (including the external battery) can also be monitored through the same web interface (running fullscreen on a iPad).
A little “fun” Qt5 console application to create a directory (a.k.a. folder) ending with a space character (” “). This directory can not be removed with standard Windows tools, including most console applications.
The skin diagnostics suite bundled with the OBSERV 520. This iPad based skin diagnostics suite uses the Bluetooth 4.0 Low Energy (BLE) to communicate with the OBSERV 520 by Sylton, and uses the iPad camera in combination with GPU accelerated image filters to visualise a broad range of skin concerns.
Skin care consultation suite for Point-of-Sale applications using the AVEAL 210/220. An iPad based skin care consultation suite, that combines questioners and measurements (using a bluetooth connected MFi+iAP measurement device), to provide an end-user with a skin type description. The goal is to provide a smooth and fast interface, with intuitive data visualisations.
I build a simple Color Picker 1.1 application that samples the pixel color under the mouse cursor point (because I needed it). The application is a stand alone (static build) Qt5 application with some minor Win32 API stuff, to sample the color at the cursor position.
The application supports a number of RGB based color formats and formating formats. The application can run in the background, and used the CTRL+1, CTRL+2, and CTRL+3 hotkey combinations to sample a color in one of its three sample slots. The CTRL+SHIFT+1, CTRL+SHIFT+2, and CTRL+SHIFT+3 hotkey combinations can be used to copy the sample slot content to the clibboard. This enables easy copy and paste access to the sampled color values.
Your relationships with your colleagues is important! Provide some work delight by getting a round of coffee once in a while (or get some colleague to do it for you).
This application will help you to remember and transport the hot beverage of choice for up-to five colleagues (plus one additional beverage for your self). Make great use of the perfectly flat surface of your own (or the companies) iPad.
The current version provides a width range of hot beverages to choose from:
– Coffee black
– Coffee sugar
– Coffee creamer
– Coffee sugar & cream
– Bean coffee black
– Bean coffee sugar
– Cappuccino sugar
– Espresso sugar
– Chocolate sugar
– Tea sugar
– (Hot) Water
Start using the full office environment potential of your iPad today, and download this application!
Apples reason to not approve the application for the App Store: “We found your app encourages behavior that could result in damage to the user’s device, which is not in compliance with the App Store Review Guidelines.
Specifically, your App encourages the user to transport hot liquids on the device.”