<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Unified Diff &#187; Projects</title>
	<atom:link href="http://www.unifieddiff.com/category/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.unifieddiff.com</link>
	<description>crazy hacks with a side of shouting</description>
	<lastBuildDate>Sun, 05 Feb 2012 02:47:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>OpenTN3270</title>
		<link>http://www.unifieddiff.com/2008/12/27/opentn3270/</link>
		<comments>http://www.unifieddiff.com/2008/12/27/opentn3270/#comments</comments>
		<pubDate>Sat, 27 Dec 2008 09:17:10 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C++/CLI]]></category>
		<category><![CDATA[IBM Mainframe]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[TN3270]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.unifieddiff.com/?p=540</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>The emulator is a CLR library used by a front-end GUI. Source code for both is released under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU GPL</a>.</p>
<p>More information (including source code and binary downloads) will come soon. This page is here to remind me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unifieddiff.com/2008/12/27/opentn3270/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FUSE Extension for PHP</title>
		<link>http://www.unifieddiff.com/2008/12/15/fuse-extension-for-php/</link>
		<comments>http://www.unifieddiff.com/2008/12/15/fuse-extension-for-php/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 01:24:03 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Fuse]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.unifieddiff.com/?p=122</guid>
		<description><![CDATA[Well, it&#8217;s official&#8230; I&#8217;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&#8212; I wrote a PHP script to screen-scrape the Trac web interface and allow me to grab source code to a project I&#8217;m working on. My solution [...]]]></description>
			<content:encoded><![CDATA[<p>Well, it&#8217;s official&#8230; I&#8217;m a geek. A few weeks ago I started writing an extension for the PHP runtime that provides bindings to <a href="http://fuse.sourceforge.net/">libfuse</a>. Back up a few months&mdash; I wrote a PHP script to screen-scrape the <a href="http://trac.edgewall.org/">Trac</a> web interface and allow me to grab source code to a project I&#8217;m working on.</p>
<p>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&#8217;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&#8217;d have to do it myself. I mean&#8230; how hard could it be?</p>
<p>It actually wasn&#8217;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&#8217;ve also since implemented <a href="/projects/tracfs">TracFS</a> to replace my ugly script.</p>
<p><span id="more-122"></span></p>
<p>I&#8217;m almost finished with writing the documentation for the PHP website. To build the extension, you have to check out the sources from CVS.</p>
<pre>
$ svn co http://svn.php.net/repository/pecl/fuse/trunk/ php_fuse
$ cd php_fuse &amp;&amp; phpize
$ ./configure
$ make &amp;&amp; sudo make install
</pre>
<p>You&#8217;ll need to install PHP and FUSE (or <a href="http://code.google.com/p/macfuse/">MacFUSE</a>) before you can build the extension. Once everything is installed, you can test php_fuse with the scripts in pecl/fuse/examples. For now, the extension does not support writing files, only reading. Sometime in the near future I will implement the rest of the VFS callbacks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unifieddiff.com/2008/12/15/fuse-extension-for-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TracFS</title>
		<link>http://www.unifieddiff.com/2008/12/15/tracfs/</link>
		<comments>http://www.unifieddiff.com/2008/12/15/tracfs/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 03:16:19 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Fuse]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Shibboleth]]></category>

		<guid isPermaLink="false">http://www.unifieddiff.com/?p=534</guid>
		<description><![CDATA[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&#8217;s not&#8230; unless you can&#8217;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 [...]]]></description>
			<content:encoded><![CDATA[<p>TracFS is a mountable POSIX virtual file system that allows you to read a <a href="http://subversion.tigris.org/">Subversion</a> repository through the <a href="http://trac.edgewall.org/">Trac</a> web interface. Why is this useful? It&#8217;s not&#8230; unless you can&#8217;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.</p>
<p>TracFS uses <a href="http://fuse.sourceforge.net/">FUSE</a> for VFS operations and is written in PHP. It also supports authenticating with a <a href="http://shibboleth.internet2.edu/">Shibboleth</a> SSO gateway. Other authentication mechanisms can be easily added in the future.</p>
<p><span id="more-534"></span></p>
<h2>Install</h2>
<ul>
<li><strong>Install FUSE</strong> &mdash; You can use your distro&#8217;s package manager or visit the project site for manual installation instructions.
<ul>
<li><strong>Linux/BSD</strong> &mdash; <a href="http://fuse.sourceforge.net/">http://fuse.sourceforge.net/</a></li>
<li><strong>OS X</strong> &mdash; <a href="http://code.google.com/p/macfuse/">http://code.google.com/p/macfuse/</a></li>
</ul>
</li>
<li><strong>Install PHP</strong> &mdash; Consult the <a href="http://us.php.net/manual/en/install.general.php">PHP manual</a> for your platform.</li>
<li><strong>Install php_fuse</strong> &mdash; Follow the build instructions <a href="/2008/12/15/fuse-extension-for-php/">here</a>.</li>
<li><strong>Check out TracFS</strong> &mdash; Using a git client, check out <a href="http://github.com/rcarz/tracfs">http://github.com/rcarz/tracfs</a>.</li>
</ul>
<p>TracFS is licensed under the <a href="http://www.gnu.org/copyleft/gpl.html">GNU GPL</a>.</p>
<h2>How to Use</h2>
<p>Mounting a file system is very simple. Suppose you want to mount Trac&#8217;s source tree to /Volume/trac, you would execute:</p>
<pre>
$ mkdir /Volumes/trac
$ php ~/Desktop/tracfs/tracfs.php http://trac.edgewall.org/ /Volumes/trac
</pre>
<p>Tada! The Trac sources appear as regular files in your file manager.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unifieddiff.com/2008/12/15/tracfs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CLAWS Lives!</title>
		<link>http://www.unifieddiff.com/2008/03/29/claws-lives/</link>
		<comments>http://www.unifieddiff.com/2008/03/29/claws-lives/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 18:13:01 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[CLAWS]]></category>
		<category><![CDATA[Identity Management]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[RIT]]></category>

		<guid isPermaLink="false">http://www.robertjcarroll.com/2008/03/29/claws-lives/</guid>
		<description><![CDATA[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&#8217;t had much time to work on it since then, but over spring break I managed [...]]]></description>
			<content:encoded><![CDATA[<p>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&#8217;t had much time to work on it since then, but over spring break I managed to get everything built and installed.</p>
<p>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&#8217;t happen, I could always fork the project and continue development on my own. For political reasons, I&#8217;d have to wait to do this until after I graduate.</p>
<p>The <a href="http://www.openclaws.com/">OpenCLAWS Project</a> 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.</p>
<p>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&#8217;m hoping to get most of my development work done then.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unifieddiff.com/2008/03/29/claws-lives/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RIT Grows Some CLAWS</title>
		<link>http://www.unifieddiff.com/2006/10/05/claws/</link>
		<comments>http://www.unifieddiff.com/2006/10/05/claws/#comments</comments>
		<pubDate>Fri, 06 Oct 2006 02:12:52 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[CLAWS]]></category>
		<category><![CDATA[Identity Management]]></category>
		<category><![CDATA[IPEdit]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[RIT]]></category>

		<guid isPermaLink="false">http://www.robertjcarroll.com/2006/10/05/claws/</guid>
		<description><![CDATA[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&#8217;s new open-source enterprise account, identity, and computer management tool. The CLAWS central server manages [...]]]></description>
			<content:encoded><![CDATA[<p>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&#8217;s new open-source enterprise account, identity, and computer management tool.</p>
<p>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.</p>
<p>Right now, CLAWS is used in production by both students and Help Desk staff. We are presently working to integrate <a href="/projects/ipedit/">IPEdit</a> functionality into CLAWS. Visit the <a href="http://claws.rit.edu/">project homepage</a> for more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unifieddiff.com/2006/10/05/claws/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPEdit DHCP Service</title>
		<link>http://www.unifieddiff.com/2006/06/17/ipedit/</link>
		<comments>http://www.unifieddiff.com/2006/06/17/ipedit/#comments</comments>
		<pubDate>Sat, 17 Jun 2006 09:13:36 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[DHCP]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[IPEdit]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[RIT]]></category>

		<guid isPermaLink="false">http://www.unifieddiff.com/?p=543</guid>
		<description><![CDATA[Description IPEdit is a web-based tool for configuring DHCP, DNS, and firewall filters for a local area network. Based on Matt Campbell&#8217;s project, this implementation is written entirely in PHP and stores its data in a MySQL database. Running as a service, it is capable of configuring the ISC DHCP server, a DNS masquerade server, [...]]]></description>
			<content:encoded><![CDATA[<h2>Description</h2>
<p>IPEdit is a web-based tool for configuring DHCP, DNS, and firewall filters for a local area network. Based on <a href="http://www.rit.edu/~mrcsys/dhcp/index.html">Matt Campbell&#8217;s project</a>, this implementation is written entirely in PHP and stores its data in a MySQL database. Running as a service, it is capable of configuring the ISC DHCP server, a DNS masquerade server, and Shorewall (iptables). Authentication can be handled through either Active Directory or MySQL.</p>
<p><span id="more-543"></span></p>
<h2>How It Works</h2>
<p>This really depends on the setup you choose, so I&#8217;ll use my network setup as an example. I built a machine with two network cards and installed Gentoo Linux, ISC DHCP server, MyDNS, Dnsmasq, iptables, Shorewall, Apache, PHP, MySQL, and IPEdit. From a second computer, I logged into IPEdit and added a subnet and then registered my computer on that subnet.</p>
<p>Once DHCP was setup, I was ready to configure netfilter. I created two subnets for each physical segment: registered and temporary. &#8220;Registered&#8221; is MAC-filtered but allowed access to other subnets, while &#8220;temporary&#8221; is not filtered but only allowed to talk to the gateway machine. This made it possible to isolate unregistered machines.</p>
<p>At this point, unregistered machines could plug-in and go to http://ipedit.local to register. Since RIT (my inspiration for this project) redirects users to a &#8220;start&#8221; page, I wanted to do the same. So I created a virtual Ethernet adapter on the gateway box and bound an instance of Dnsmasq to it. This instance is configured to lie on all DNS requests, always returning the IP address of the gateway. I went back to the DHCP configuration and assigned IP&#8217;s in the temporary range to use this special DNS server.</p>
<p>Now, when users plug-in, no matter where they try to go&#8230; they are always redirected to the start page. Once registered, users are able to gain full network access.</p>
<h2>Caveats</h2>
<p>As with any software project, this one has its flaws. IPEdit does not validate all fields, so it is important to make sure data is entered correctly. Failing to do so could cause the DHCP server to fail. Unlike RIT&#8217;s network, it is not possible to steal IP addresses. However, it <u>is</u> possible to spoof your MAC and impersonate another client.</p>
<h2>Screenshots</h2>
<p><a href="/images/ipe_auto.png"><img src="/images/ipe_autot.png"></a>&nbsp;&nbsp;&nbsp;<a href="/images/ipe_detailed.png"><img src="/images/ipe_detailedt.png"></a><br />
<a href="/images/ipe_dhcp.png"><img src="/images/ipe_dhcpt.png"></a>&nbsp;&nbsp;&nbsp;<a href="/images/ipe_subnet.png"><img src="/images/ipe_subnett.png"></a><br />
<a href="/images/ipe_domain.png"><img src="/images/ipe_domaint.png"></a>&nbsp;&nbsp;&nbsp;<a href="/images/ipe_dns.png"><img src="/images/ipe_dnst.png"></a><br />
<a href="/images/ipe_priv.png"><img src="/images/ipe_privt.png"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.unifieddiff.com/2006/06/17/ipedit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

