Updated Windows Sudo

Recently I updated my Windows sudo program and added a command for Super Conduit, this is what I call some tweaks that you can make to a Windows Vista+ system. This allows someone to copy sudo.exe to a systems, system32 folder; then after running “sudo cmd” you can run “sudo /write” so add ls, ifconfig, and superc as a option in the command line.

Superc has options of enable, disable, and show. Making it easy to run. ūüôā

Newest build is always here

Windows Sudo

I am back at RPI, finishing up my degree. Recently I have been working on hour tracking software for several departments at RPI.

Recently I have run into a minor annoyance where I am in the command line in Windows and need to elevate a command or program so that I can do a administrative task. (Such as moving a file to the system32 folder), the normal solution is to right click command line short cut and “Run as Administrator”. While that works its not fast,¬†I’m¬†sure there are other solutions out there, but I wanted to quickly build on in .Net. I did this a while ago for Vista and called it elev, but never saved it and since I am trying to make the transition between Windows and Linux easier I called it sudo.

All you do is put this in your %windir%\system32\ folder, and then at the command line type “sudo cmd” or whatever¬†command¬†you want. Commands like “dir” are actually part of cmd not a¬†separate¬†file called so “sudo dir” wont show anything, it will output the .Net error.

Link to exe:

Link to project:

OpenAFS @RPI Client

Recently I was told ‚ÄúI can‚Äôt remember anyone getting OpenAFS to work on their own‚ÄĚ, by a staffer at my school. I took it on myself then to figure out how to get this working for students. And in the end I wrote an app that will automatically download and install the AFS client, then configure drives for you. This was an experiment in threading and using WPF instead of Windows Forms.

First the app goes and downloads the OpenAFS client, if it is a 64 bit machine it grabs the 32 bit tools first then the client. While downloading and installing these things it connects via SSH to a school server to get the location of the user’s home folder as well as verify the credentials given.

Once installation is complete the program runs ‚Äėklog‚Äô, this goes to the AFS server and requests tokens in the cluster using the credentials given earlier. Once we are past the installing point all these actions need to be run on the campus network. When the program starts it tries to ping a couple internal servers, if it can hit more than half of them in under 75 milliseconds then it considers itself on campus; if it thinks it‚Äôs off campus, then it notifies the user. One small problem with the first release is sometimes this system gets confused by vpn taking slightly longer.

Now that we have working token the system recommends drive letters that are not in use as well as AFS spaces to mount including the users folder and ‚Äėdept‚Äô to start. The configure button will activate these drives, they are not set to persistent at this time.

Below is the github link, as well as the direct exe link:




As IPv6 starts to roll out more and more, and Windows to update more and more, it may be time to turn IPv6 back on your computer. I wanted to put a reminder out that the IPv6 Cleaner also has a tool built in to change the IPv6 setting of the machine. After changing the setting reboot and Windows will take the new setting. IPv6 Activator is the same code that runs in the 6to4 Cleaner, just as a standalone app.

The following options are avaible:

  • Enable IPv6 – Windows Default
  • Disable IPv6 except critical components – Use if card problem persists
  • Disable native IPv6 interfaces
  • Disable all tunnel IPv6 interfaces
  • Disable all IPv6 interfaces except for the IPv6 loopback interface



Summer 2012

The blog has been silent for a little while. I have been working at Cisco developing training software. Unfortunately the software is for internal use and at this time I am limited what I can say about it. But 3 months later and around 10,000 lines of code later I handed off the project to my coworkers.
Now back to school to continue studies, I think it is time for the Jukebox project to start up again. I have been researching libraries to use to play music and at this early point it may be the Mono version of XMA to play audio files. If anyone has any ideas for a java/mono/any Linux working library for mp3s that is easy pass it my way.

HTML5 Practice

One project I had the idea for and played around with is a Time Manager. I wanted to be able to track events and how much time I spent on different things. The problem is that I have a thousand classes and have to finish up things for the semester, so I put a few hours into this and I am going to shelf it for now.

A cool aspect of this (along with hindrance) is the system uses Web SQL, this is a HTML5 system; instead of using a MySQL or other centralized SQL database, your local browser is the SQL server. There are limitations to this, including the spec is new and limited. Along with it only seems to work in Chrome, Safari, and Opera; I have a spot in the code so if it fails to connect to a local data store it can switch to a more traditional method but I never got to that. It also tracks modified items to eventually it could sync those items to a central server, but that never got completed so its not in the github. Everything loads on one page and uses Javascript heavily to modify that page. I put facebook login in the system, I wanted a login system that I didnt have to worry about and I have never used facebook login before.

You can check it out at along with all the code at

Jukebox Audio Player

I have been working on the Jukebox project while code for the Enstall project client is being worked on. I had to find a music playing library that would be fairly portable. While C# with mono can easily transport Windows, Linux, and Mac, I could not find a audio library that did that. I wanted to be able to decode mp3 files as well as other compressed audio formats.
One option I had was converting all the audio files to WAV files or OGG, but these files are significantly bigger; along with, going from a lossy format to those would be a waste of resources. After looking at around 6 audio solutions I went with the easiest. To the horrors of many, and the silent screams of some, I detect your OS, then unpack that OS version of VLC. Once unpacked it starts with only a Telnet interface; with this interface, another thread logs in and controls VLC. So I have a standardized communications language, and I don’t have to handling decoding, audio cards, audio channel selecting, ect.
If you have not used this before it is built for a program to control it, there are controls such as “get_playtime”. You get a nice computer readout from that. One downside is that there are slight differences from windows to Mac to Linux, but those are easily accounted for.
If anyone has another easier solution drop it in the comments but for cross compatibility this seems to be working well.

Enstall Project

I am working on a project called Enstall with a partner for RCOS @ RPI, it’s¬†available¬†at, the goal is to make a package management system. One may say “but Dan there are like 10¬†available¬†and one or two are already open source…” That is true but¬†most¬†of them are aimed at IT personel, and controlling all the computers in a¬†corporation, this is just for a student to¬†install¬†and get software from their school on their PERSONAL computer. That’s the dream.

6to4 Card Cleaner Github!

Here it is! The source code (all be it not great) for 6to4 card cleaner¬†up on github. This program has become less useful recently because my school recently implemented IPv6¬†across¬†the network, and that has seemed to fixed the problem, along with new images. Anyway have fun with it, build it out, add to it…

PHP/JS and C# Encryption

Here is some code from a project I have been working on and then shelved. A C# (mono) project creates a RSA public/private key pair, then gives the public side to a MySQL database. The private side is saved to the hard drive for later. Then PHP¬†dynamically¬†adds the currently active key public¬†portion¬†into javascript, which encrypts the users input, and saves it to MySQL. Then the C# application can get the keys it has saved in a good place, and decrypt the data in the database. Benefits of this include the web data is secured from the client to the server, and even if somehow someone steals your database off your webserver, they dont have the encryption keys to take it away. This system also has a way to¬†deactivate¬†a old key and move to a new one, if more code was put into it someone could revoke a old key and migrate all the data using it to a new key, but that¬†wasn’t¬†implemented. I thought this would be a cool project and I learned a lot about RSA public private keys, a lot of languages handle the keys differently; some take it in hex, some do it differently, some call the parts one thing, some call them other names. The javascript portion is based mostly off this library (link). JQuery is used for ease.

Feel free to give feed back or use this, open source fun.