To Unity and Beyond

It’s been a while since I got to sit down and write some code. There’s one project that’s been on my mind for years, but it’s languished for some time. I decided to give it another go, this time using Unity instead of HTML5.

Since this project is probably going to take quite a while, and I’m not really expecting much from it in a return on investment point of view, I’m using the free Unity. Free Unity, as you probably know, lacks .Net sockets for mobile platforms. Since I’d really like to get it working on iOS, and don’t have $3000 to spend on Unity Pro and iOS Pro, I’m going to stick with the old GET/POST method I started with back when I was using HTML5.

To communicate with my server then, I’ve been using the WWW class in Unity.
WWW www = new WWW ("http://server/function.php", pData, headers);

However, because WWW runs as an Enumerator and requires
yield return www
I was having all sorts of trouble getting the result from the WWW GET.

What seems to be working for was to put the WWW command in its own Unity C# script, use evil global variables, and run it by using:

I’m still hoping to find a way to pass parameters to the added component, rather than using global variables, but I feels good to finally start passing some sanity checks!

Where did the time go!?

I can’t believe it’s been four years since my last update. While life and work have made progress on many of my projects take a back seat, there’s so many exciting areas of IT these days, I just couldn’t resist posting again. Hopefully more to come soon and regularly on Linux, Windows, Azure, Hyper-V, VMware, KVM, Java, Swift, iOS, C#, and who knows what else!

Mac: Without the Caffeine

We at Shernet have not missed the widely circulated news that Apple has deprecated Java in Mac OS and the upcoming Mac App Store. While missing out on the Mac App Store is kind of disappointing, the future of Java on the Mac platform is more than a little disconcerting.
For those that don’t know, we do most of our coding here in NetBeans, which makes us quite dependent on Java. If Mac OS is no longer a reliable development platform for Java, we’ll have to consider moving our systems from MacOS to Linux.
Here’s hoping that the people at Apple, Oracle, and the OpenJDK find a way keep Java alive on Macs without losing all of the Apple UI goodness that’s been crafted into it.
At Shernet we will carefully monitor the state of Java on Mac and make sure that CalypsoAdmin and all of our other utilities remain equally supported on Windows, Linux, and Mac OS, even that means some redundant coding on our part.


To differentiate between myself (Adam) and my work (Shernet, Calypso, etc), I’m happy to announce the purchase of My blog will stay here, but information regarding Shernet will be moved to Additionally, net.shernet.* code will be updated to com.shernet.*.

Encrypted, and it feels so good

Finally implemented SSL for CalypsoAdmin. Authentication was being handled by GSSAPI, so no passwords were being sent in the clear, but it’s nice have all of the LDAP data no longer in the clear.

The initial plan was to use TLS. TLS works fine under LdapContext, but that broke GSSAPI, which works fine under DirContext. For the time being, SSL seems to work fine with DirContext, so I’m putting it to rest until another day.

getRuntime().exec() and spaces in Windows

If you are attempting to run a process from Java in Windows, and would like to use a path with spaces, let me save you some time and Googling:

String[] cmd = { “c:\Program Files\mycommand.exe” };
Process p = Runtime.getRuntime().exec(cmd);

IMPORTANT the c in c: is lowercase. This will absolutely *not* work if it is upper case.

CalypsoClient for Windows

The CalypsoClient for Windows is complete. The Windows client will add the computer to LDAP, create the kerberos host/ principal, create a keytab for the princiapl, copy the kaytab over, and join the computer to the Samba domain. ::phew::

Next up: CalypsoControl, and putting that host keytab to good use.

Time for the Custom Stuff

Having received our OID from IANA, we are now ready start implementing custom object classes and attributes in LDAP. This will pave the way for computer management, email management, and Calypso Control. As of now: Users, Groups, and DNS  are up and running and manageable in CalypsoAdmin. This could be an exciting summer!

IT Solutions