PhidgetSBC2 Interactive C# Shell

One cool package for playing around with your phidget(s) is mono-csharp-shell which gives you an interactive C# shell (with tab completion).

apt-get install -y mono-csharp-shell

Once the package is installed, you can open it with csharp but just like with gmcs we have to include the reference to the Phidget library.

csharp -r:Phidget21.NET.dll

Missing Namespaces on PhidgetSBC2’s Mono

Since we cannot install mono-complete on the PhidgetSBC2 currently, we are missing some of the C# namespaces. If you are trying to use any of the following namespaces and gmcs cannot find it, you will have to install the respective package.

Namespace Package
Mono.Data libmono-data2.0-cil
System.Data libmono-system-data2.0-cil
System.Data.Linq libmono-system-data-linq2.0-cil
System.DirectoryServices libmono-system-ldap2.0-cil
System.Messaging libmono-system-messaging2.0-cil
System.Runtime libmono-system-runtime2.0-cil
System.Web libmono-system-web2.0-cil
System.Web.Mvc libmono-system-web-mvc2.0-cil

Using Mono on the PhidgetSBC2

So this Monday my PhidgetSBC2 arrived and I was super excited to get started playing around with the short-term goal of being able to open my door lock remotely.

I really wanted to write the code in C# because it's simply better than Java and it's lot easier to implement a server in C# than in C. While the manual for the SBC2 says you can get Mono working if you install the correct packages, I couldn't find any information on the Phidget website on how to do it, so I had to figure it out myself.


Simple Rails Multi-Tenancy

With some recent commits to rails comes the ability to have a default_scope with a lambda that gets evaluated at query time. Combine that with a multi-tenant column scoped database structure (wow, quite the mouthful) and you've got an quick and painless way to partition your tenant data without scattering code everywhere.


Playing with FormBuilder

The methods that come with the standard ActionPack::Helpers::FormBuilder cover most cases of what you need to do but if you need to do something it doesn't have a method for, things can get a little ugly.

In my case I wanted to create a helper for autocompleted fields that all had the same attributes but different arguments (the urls).

So let's say you have an Unobtrusive JavaScript file that looks for an attribute called data-autocomplete, normally when you wanted to have the field autocompleted, you would pass in the attribute to the form helper text_field.

f.text_field :username, :'data-autocomplete' => users_path(:json)

While there is nothing bad about doing this, you end with a bunch of :'data-autocomplete' scattered about in your views which makes it harder to change down the road if you were to switch your JS implementation.

A nicer way is to have your own form builder method called autocomplete_field which requires two arguments (method and url) that adds the :'data-autocomplete' option (which is now in one place and easily changed) for you. Best part is this can be done with only one helper file.

Computers Gaming

Time for a new computer

With my current gaming rig nearing its 4th birthday, it's time to look at a new one. With a nice amount saved up, I'm going for very good rig.


Hello World

Every blog needs a first post and I can't think of an exiting topic to make it about so I'll just say: hi.