At A Glance Main Projects Tutorials Resume


There currently is no messenger. Manually, you can contact me via:
AIM: TecGumbo

Google Talk: palen1c at

Twitter: @Technogumbo

Drupal 8 Unity3D REST Example

Thur, 2 Jun 2016 14:07:41 EST

Since around 2009 I've been utilizing Drupal as a content management system for many different large and small deployments. The power of Drupal when interfacing with non-standard custom content comes in the flexibility of its' content types coupled with the expansive module system. Yesterday I posted a working example on Github of interfacing Unity3D with Drupal 8 REST services using C#.

REST services in Drupal 8 are very promising in comparison to Drupal 7 services; which I encountered many bugs with. I have not yet started dealing with the CSRF token in Drupal 8; but so far I am very excited!

Using the class is very easy. In this example, connecting to a Drupal CMS at

DrupalInterface _drup = new DrupalInterface("","YourUsername","YourPassword");


Basic Javascript Keyboard

Sat, 13 Jun 2015 14:07:40 EST

Last year I worked on a project that needed an on screen Javascript keyboard. Many of the Javascript keyboards out there are overblown and have a lot of unnecessary cruft. I wanted a solution that did not have any external dependencies. Below you can try out the solution I created and download it for your own use.

Basic Usage

   var _keyboard = null;
   var _kbRef = document.getElementById("kbHolder");
   var _fieldRef = document.getElementById("kbdInput");
   if(_kbRef != null && _fieldRef != null) {
   _keyboard = new transcendingdigital.DynamicKeyboard();
   _keyboard.init( _kbRef, _fieldRef );

Download the script (Right Click save-as) DynamicKeyboard.js


A Methodology For Surround Sound Support in Kiosk Applications

Thur, 30 Oct 2014 14:07:39 EST

Every now and then a project comes along that requires special manipulation of sound. On a recent project I had to deploy a three screen, three station user experience. In order to keep the costs down and programming streamlined, I specified the experience run on one computer. The trick here was that we needed to create the illusion of three individual stations.

To turn one computer into three stations, I needed to create the illusion that each individual station had it's own sound effects and ambiance. In hardware, this entails using a 5.1 surround sound card to output to six individual channels. So for this experience we used the following configuration:

Front Left, Front Right – Station 1
Center, Sub – Station 2
Rear Left, Rear Right – Station 3

By placing six stereo pairs of speakers across the three stations, we can create the illusion of three individual stations by directing our sound effects to the appropriate speakers.

Programming this solution turned out to be way more difficult than anticipated. The kiosk software itself was built in Adobe AIR. AIR does not support more than stereo.

I turned to another favorite language, C# for help and came across the Naudio project. Although Naudio supports re-mapping the output of sound channels, (which is what I needed to do; direct my sound effects to specific speakers only) it does not support surround setups very well. I was unable to use naudio.

The final solution I ended up using was a windows presentation foundation console application that implemented a simple TCP socket server. This application uses at its core, the Windows Presentation Foundation MediaElement. MediaElement can play 5.1 or 7.1 specially crafted wav files.

In the end instead of directing stereo sound effects to different channels, I created individual 5.1 wav files using audacity for each sound effect in each set of speakers. This has proved to be a reliable way to utilize surround sound in kiosk applications written in any programming language that supports TCP socket connections.