Fork me on GitHub

Category: Projects

OpenTN3270

OpenTN3270 is a free terminal emulator for connecting to mainframes that support IBM 3270 terminals. Major features include basic colors, adjustable screen and font sizes, and SSL support.

The emulator is a CLR library used by a front-end GUI. Source code for both is released under the GNU GPL.

More information (including source code and binary downloads) will come soon. This page is here to remind me.

FUSE Extension for PHP

Well, it’s official… I’m a geek. A few weeks ago I started writing an extension for the PHP runtime that provides bindings to libfuse. Back up a few months— I wrote a PHP script to screen-scrape the Trac web interface and allow me to grab source code to a project I’m working on.

My solution worked but it was pretty ugly. So I wondered if it would be better to implement a FUSE file system to do the same task. Unfortunately PHP didn’t have bindings for libfuse at the time. After several failed attempts at using SWIG to automagically generate an extension, I came to the harsh realization that if I wanted FUSE bindings I’d have to do it myself. I mean… how hard could it be?

It actually wasn’t too bad. I read a bunch of non-existent documentation on the Zend API and went to work on a prototype. It took me about a week, but I now have a working PHP extension. I’ve also since implemented TracFS to replace my ugly script.

Continue reading »

TracFS

TracFS is a mountable POSIX virtual file system that allows you to read a Subversion repository through the Trac web interface. Why is this useful? It’s not… unless you can’t access the repository directly, but can see the files in the source browser. Using rsync (or a similar tool), you can maintain a local copy of the repository contents.

TracFS uses FUSE for VFS operations and is written in PHP. It also supports authenticating with a Shibboleth SSO gateway. Other authentication mechanisms can be easily added in the future.

Continue reading »

CLAWS Lives!

Well I finally did it. Last summer I set out to build and run CLAWS in my own environment. I was able to get parts of it running, but there were a few problems I was stuck on. I haven’t had much time to work on it since then, but over spring break I managed to get everything built and installed.

My goal was to get CLAWS running the way RIT uses it, and then write patches to the main codebase. If certain people in high places liked the changes I made, they could take the patches and apply them upstream. Even if that doesn’t happen, I could always fork the project and continue development on my own. For political reasons, I’d have to wait to do this until after I graduate.

The OpenCLAWS Project is aimed at taking what is now a very RIT-centric software system and transforming it into something the general public can use. Much to the chagrin of some un-named information security officials, CLAWS is open source and so I can (at very least) develop from the r2977 snapshot.

In the coming few months I plan to have my documentation finished for building and installing CLAWS. I should have a lighter schedule this summer, so I’m hoping to get most of my development work done then.

RIT Grows Some CLAWS

Managing thousands of user accounts in a heterogeneous computing environment can be a nightmare. Then throw in the need to manage user identities and network access to over forty-thousand network devices. What is a systems administrator to do? Enter CLAWS, RIT’s new open-source enterprise account, identity, and computer management tool.

The CLAWS central server manages communications between the various clients and back-end systems. A self-help tool allows students to activate an account and edit identity and mail preferences. The Help Desk client provides account management functions for staff that streamlines account creation and maintenance across the multiple systems.

Right now, CLAWS is used in production by both students and Help Desk staff. We are presently working to integrate IPEdit functionality into CLAWS. Visit the project homepage for more information.