<?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"
	>

<channel>
	<title>OS\Zen</title>
	<atom:link href="http://os-zen.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://oszen.net</link>
	<description>Mac, Linux, Windows</description>
	<pubDate>Fri, 15 Aug 2008 14:54:43 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<item>
		<title>Passwords and Security</title>
		<link>http://oszen.net/2008/08/passwords-and-security/</link>
		<comments>http://oszen.net/2008/08/passwords-and-security/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 19:46:23 +0000</pubDate>
		<dc:creator>Jon Buys</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[macs]]></category>

		<category><![CDATA[macuser]]></category>

		<category><![CDATA[passwords]]></category>

		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://oszen.net/2008/08/passwords-and-security/</guid>
		<description><![CDATA[Someone change the password on my luggage - MacUser
Scott McNulty gets his MacUser career off to a good start with an article about using passwords, which links to a New York Times article.
There have been several attempts to move past the username and password combination.  In reality, there are only three things that can [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.macuser.com/security/someone_change_the_password_on.php?lsrc=murss">Someone change the password on my luggage - MacUser</a></p>
<p>Scott McNulty gets his MacUser career off to a good start with an article about using passwords, which links to a New York Times article.</p>
<p>There have been several attempts to move past the username and password combination.  In reality, there are only three things that can authenticate that you are who you say you are.  Something you have, something you know, or something you are.  The username/password combo is an example of something you know, but the combination of items makes the authentication mechanisim much stronger.  For example, swiping an ATM card (as the NYT article also references) is a combination of something you have and something you know.  Using a finger print reader is an example of something you are.  The best security combines these three , although it&#8217;s cumbersome to do over the web.</p>
]]></content:encoded>
			<wfw:commentRss>http://oszen.net/2008/08/passwords-and-security/feed/</wfw:commentRss>
		</item>
		<item>
		<title>¤ How to Fix Linux</title>
		<link>http://oszen.net/2008/08/%c2%a4-how-to-fix-linux/</link>
		<comments>http://oszen.net/2008/08/%c2%a4-how-to-fix-linux/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 03:15:16 +0000</pubDate>
		<dc:creator>Jon Buys</dc:creator>
		
		<category><![CDATA[Feature]]></category>

		<category><![CDATA[gnome]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[macs]]></category>

		<category><![CDATA[Usability]]></category>

		<category><![CDATA[xrandr]]></category>

		<guid isPermaLink="false">http://oszen.net/?p=50</guid>
		<description><![CDATA[It&#8217;s been nine years since I first installed Linux on a computer of mine. It didn&#8217;t last long back then, since I actually wanted to use the computer for surfing the web, sending email, and playing games. Linux has come a long way since then, and now it&#8217;s a reliable desktop system at work. However, [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been nine years since I first installed Linux on a computer of mine. It didn&#8217;t last long back then, since I actually wanted to use the computer for surfing the web, sending email, and playing games. Linux has come a long way since then, and now it&#8217;s a reliable desktop system at work. However, my system is reliable (and enjoyable) because I am a geek, and I know exactly what it needs to make it run smooth.</p>
<p>For example, I use a dual screen set up with <a href="http://www.x.org/wiki/Projects/XRandR">Xrandr</a>, and it works well, especially with the new compositing ability in <a href="http://www.gnome.org/">Gnome 2.22</a>. Getting xrandr to work properly required me to edit a few lines in the xorg.conf file to allow for a large maximum desktop size. Compare this with how Windows deals with dual monitors. You plug it in, turn it on, enable it in the preferences, and there you go. Now compare that with how Macs handle dual monitors. You plug in another monitor and it works&#8230; bottom line.</p>
<p>I realize that there are a lot of valid reasons for this. Proprietary hardware, lack of documentation, legacy code, etc, etc, etc&#8230;</p>
<p>I also realize that 99% of people who use a computer <em>do not care</em>.</p>
<p>Computers should be like appliances&#8230; plug them in, turn them on, and start using them. I like the toaster analogy. I don&#8217;t care how my toaster works. I just want it to make my toast in the morning. I don&#8217;t care if I have the &#8220;freedom&#8221; to take the toaster apart and study the timing mechanisem and re-create it in yet another toaster. I just want toast. I use Linux at work because it is an amazing server. I&#8217;ve seen Linux servers keep on trucking through some environments that would kill another OS. I use Linux on my laptop at work becuase it integrates in with my workflow and scripting perfectly. I don&#8217;t use it for the freedom, I use it because it works well for my environment. My environment however, is very different from the average home user.</p>
<p>If Linux is ever going to take hold it needs to learn a few things from Apple. Here are a few points that will bring Linux onto Mom and Dad&#8217;s desk.</p>
<p>1. Own the hardware. Apple controls all aspects of its hardware/software relationship. I&#8217;m not saying that a particular Linux distro would <em>only</em> be able to be installed on whatever vendors hardware, but I&#8217;m saying that a hardware vendor should adopt Linux and fully develop the OS in house to support its hardware.</p>
<p>2. Maniacally control the distro. The open source nature of Linux makes this very difficult, but it also makes Linux feel&#8230; disjointed. This goes hand in hand with point 1, develop the hardware and software in tandem to support each other. Release the code as GPL, sure&#8230; give it back to the community, but control what goes into the distro and develop it in-house. Linux has a bad habit of adding features because it can. Compiz has hundreds of options for rediculous visual features that no one needs (and a few that everyone does need!), and which really distract from using the computer. Another example: Do you think KDE 4.0 would have made it past the desk of Steve Jobs? Can you imagine what that conversation would have been like?</p>
<blockquote><p>Underling: &#8220;Yea, we know the visual features are incomplete, and there&#8217;s several things that don&#8217;t work, but we&#8217;d like to ship it anyway.&#8221;</p>
<p>SJ: Shoots underling.</p></blockquote>
<p>Which leads me to my next point:</p>
<p>3. Appoint someone Grand High Poomba. Someone needs to be there to say &#8220;No&#8221;. Someone who will say, yea, that&#8217;s a great idea, but we are not going to do that in <em>this</em> distro. At times I think that Mark Shuttleworth is that guy&#8230; and then there are other times when he decides to ship every six months if Ubuntu is ready or not. Shuttleworth could be that guy.</p>
<p>4. Provide the end to end user experience.  When I pop open the lid of my laptop, I expect to be able to start using it within seconds.  When I close the lid, I expect the laptop to go to sleep and wait for me to need it again.  When the hardware is fused with the software, and features are controlled and perfected, the result is a very fluid, intuitive experience that brings the users back.</p>
<p>The last item I&#8217;d love to see from Linux is to stop adding new features.  Seriously, stop adding new, untested, beta quality code and spend some time perfecting what is already there.  <em>Fix what you have first.</em> Then, and only then start adding new features.</p>
<p>Linux, we&#8217;ve come a long ways, but we&#8217;ve still got a long ways to go.</p>
]]></content:encoded>
			<wfw:commentRss>http://oszen.net/2008/08/%c2%a4-how-to-fix-linux/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Linux Box and Upgrading Java</title>
		<link>http://oszen.net/2008/07/the-linux-box-and-upgrading-java/</link>
		<comments>http://oszen.net/2008/07/the-linux-box-and-upgrading-java/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 16:27:34 +0000</pubDate>
		<dc:creator>Jon Buys</dc:creator>
		
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://oszen.net/?p=45</guid>
		<description><![CDATA[As a general rule, I really don&#8217;t like to go outside of the box when it comes to Linux. And by that, I mean that I don&#8217;t like going outside of what is provided by what ever distribution you are using, be that SLES, Red Hat, or Ubuntu. A lot of people put a lot [...]]]></description>
			<content:encoded><![CDATA[<p>As a general rule, I really don&#8217;t like to go outside of the box when it comes to Linux. And by that, I mean that I don&#8217;t like going outside of what is provided by what ever distribution you are using, be that SLES, Red Hat, or Ubuntu. A lot of people put a lot of work into making sure that the packages that are available for the distribution actually work in the distribution and do not interfere with any other apps. Linux will let you do what ever you want, but just because you <em>can</em> do something, doesn&#8217;t mean that you <em>should</em>.</p>
<p>Going outside the box can have disastrous results with Linux. Back in early 2000 and 2001 when I was installing SuSE and Mandrake on my old IBM box, I wound up in dependency hell more than once. If you&#8217;ve never been there, it goes something like this:</p>
<p>OK, I want to upgrade my music player to the latest version, so I&#8217;ll download the latest RPM. Wait, that failed, because it depends on a newer version of some library file that I don&#8217;t have, so I&#8217;ll go search the Internet and try to find that. OK, found it, downloaded the rpm, and it failed to install because it depends on a newer version of some other library file that I don&#8217;t have. Looks like there&#8217;s no RPM for that library, so I&#8217;ll download the source code and compile it. OK, ./configure; make; make install; Nope, that failed because of a gigantic list of dependencies that are not available! At this point, you have to make a decision: Do you go ahead and find the dependencies, or do you give up and have a drink instead. If you choose to go ahead, you download the source to a dozen different packages and install them, then compile your library, then compile your other library, then go to install the rpm to find that it fails because one of the applications you upgraded along the way is, get this, too new to support your music player, and the install still fails. Oh, and by the way, half of your other apps that used to work, don&#8217;t work any more.</p>
<p>This was a very real problem a few years ago, that&#8217;s why there is such a focus on package managers, and why I recommend staying in the box. That&#8217;s why when I&#8217;m asked to go outside the box, I always tend to meet such requests with scruteny. Do you <strong>really</strong> need that? How badly do you need that?</p>
<p>Java however, is not so bad. It&#8217;s one of the few apps that is self contained in it&#8217;s own directory. You download the executable bin file from Sun, run the installer, and put the extracted directory wherever you choose. I normally put it in /usr/local/ Then, I do a which java, and move the original java to java.bak. Next, I create a symbolic link to the new java in /usr/local. Run java -version, and verify that we are using the new and improved java.</p>
]]></content:encoded>
			<wfw:commentRss>http://oszen.net/2008/07/the-linux-box-and-upgrading-java/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Learning to Fly</title>
		<link>http://oszen.net/2008/06/learning-to-fly/</link>
		<comments>http://oszen.net/2008/06/learning-to-fly/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 00:53:07 +0000</pubDate>
		<dc:creator>Jon Buys</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[cocoa]]></category>

		<category><![CDATA[macs]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://os-zen.com/?p=44</guid>
		<description><![CDATA[Or, learning Cocoa in Mac OS X.  I&#8217;m pouring all of my time into a new project.  Hopefully I&#8217;ll have a mock up here soon, but right now, I need to concentrate on the task at hand.
I&#8217;ll be back :)
]]></description>
			<content:encoded><![CDATA[<p>Or, learning Cocoa in Mac OS X.  I&#8217;m pouring all of my time into a new project.  Hopefully I&#8217;ll have a mock up here soon, but right now, I need to concentrate on the task at hand.</p>
<p>I&#8217;ll be back :)</p>
]]></content:encoded>
			<wfw:commentRss>http://oszen.net/2008/06/learning-to-fly/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Open Formats</title>
		<link>http://oszen.net/2008/05/open-formats/</link>
		<comments>http://oszen.net/2008/05/open-formats/#comments</comments>
		<pubDate>Sat, 31 May 2008 06:27:08 +0000</pubDate>
		<dc:creator>Jon Buys</dc:creator>
		
		<category><![CDATA[Feature]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[macs]]></category>

		<category><![CDATA[open formats]]></category>

		<category><![CDATA[oss]]></category>

		<guid isPermaLink="false">http://os-zen.com/?p=43</guid>
		<description><![CDATA[Here is another old article I found while digging around looking for something else.  I thought I&#8217;d post it here.
Using sustainable formats on OSX, or&#8230; The Best of Both Worlds!
Remember the early days of networking&#8230; before TCP/IP became the standard protocol?  Well, neither do I, but I&#8217;ve read about it.  That&#8217;s years [...]]]></description>
			<content:encoded><![CDATA[<p>Here is another old article I found while digging around looking for something else.  I thought I&#8217;d post it here.</p>
<p>Using sustainable formats on OSX, or&#8230; The Best of Both Worlds!</p>
<p>Remember the early days of networking&#8230; before TCP/IP became the standard protocol?  Well, neither do I, but I&#8217;ve read about it.  That&#8217;s years ago now, but back then, each computer manufacturer developed their own method of networking their machines together, and each method, or protocol, was incompatible with the other.  Apple had AppleTalk, Novell had IPX/SPX, Xerox had XNS, and on and on it went.  TCP/IP was born out of the desire to create a vendor independent network, which became known as ARPAnet, and later, the Internet.</p>
<p>This little history lesson is meant to illustrate the tremendous advantages there are to open standards.  Would the Internet exist if it belonged to a single corporation?  Not as it is today, no.  These same ideas can be applied to several other forms of data on the computer; images, documents, music, etc&#8230;  We now have the capability to keep almost all of our data in a format that is guaranteed to provide greater flexibility, so why isn&#8217;t Apple taking advantage of it?</p>
<p>For example, Mail, the venerable email client that comes with the Mac, provides suitable email functionality for most Mac users.  Now that I&#8217;ve got several years of email stored on my Mac, I&#8217;d like to be able to keep those files in a format that is not subject to any corporation&#8217;s whims.  I&#8217;d also like to be able to drop my mail folder on another platform and be able to open it up in a different client&#8230; interoperability.  Another example is iPhoto, one of my favorites.  Would it really be that difficult for Apple to design iPhoto so it stores its database in a reliable, documented format that is readable (and writable) outside the application?</p>
<p>This goes back to a central belief I have about  data, and applications.  While the application may belong to its author, the data it processes belongs to me, and it should be available to me in a well documented, open format.  Open formats make sharing files easier, as they are capable of being supported on more platforms</p>
<p>How about giving Quicktime the ability to natively export to Ogg-Theora?  Or allowing iTunes to use Ogg-Vorbis as its default media format? (DRM not considered here&#8230;)  Pages?  Keynote?  How about some Open Document Format support?  I really don&#8217;t think the move to open formats would be that big of a leap.  Apple already includes several open source applications inside its server offering, and has built its core data framework around XML and SQLite, so why not open the rest of it up?</p>
<p>The other note worth mentioning is the high profile “switch to linux” news that has been making the rounds lately.  With several long time Mac supporters moving to Linux citing problems with formats and a lack of openness from Apple, it seems to me that this is a problem that could be easily fixed.  I&#8217;m not calling on Apple to open source OS X, I&#8217;m not even implying that, although open sourcing a few of the bundled apps might be a good thing in the long term</p>
<p>The world is becoming more aware, and times they are a changin.  The world is knocking, dear Apple, its time to open up.</p>
]]></content:encoded>
			<wfw:commentRss>http://oszen.net/2008/05/open-formats/feed/</wfw:commentRss>
		</item>
		<item>
		<title>AutoYast</title>
		<link>http://oszen.net/2008/05/autoyast/</link>
		<comments>http://oszen.net/2008/05/autoyast/#comments</comments>
		<pubDate>Tue, 20 May 2008 15:08:29 +0000</pubDate>
		<dc:creator>Jon Buys</dc:creator>
		
		<category><![CDATA[Feature]]></category>

		<category><![CDATA[linus]]></category>

		<category><![CDATA[sles]]></category>

		<category><![CDATA[suse]]></category>

		<category><![CDATA[yast]]></category>

		<guid isPermaLink="false">http://os-zen.com/?p=42</guid>
		<description><![CDATA[I wrote this last year and never posted it.  I&#8217;m glad I found it and can post it now.
One of the projects I&#8217;ve been working on in the past week has been a rapid deployment server for SLES 9.  I would have liked to deploy SLES 10, but we are constrained by our application requirements.  [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote this last year and never posted it.  I&#8217;m glad I found it and can post it now.</p>
<p>One of the projects I&#8217;ve been working on in the past week has been a rapid deployment server for SLES 9.  I would have liked to deploy SLES 10, but we are constrained by our application requirements.  Novell has done a great job at making it easy to deploy SLES or SLED using their Autoinstall and Installation Server options available through YaST.  Using Autoinstall, YaST steps you through the options required to generate an xml file, this xml file is read by YaST during system install and automates the process.  To build a network installation source, the contents of the CDs or DVD need to be copied to the hard drive, preserving symbolic links.  YaSTs Installation Server makes this easy, and also makes &#8220;slipstreaming&#8221; (to borrow a Windows term) a service pack into the install source automatic.  I&#8217;ve built the network install source both ways, and I prefer using YaST to do it for me.</p>
<p>Even with all this being said, YaST (in SLES 9) is still missing some features that require me to edit the xml file directly.  The most important feature it&#8217;s missing, which they included in SLES 10, is the ability to create LVM volumes during partitioning.  Not to say that it&#8217;s not possible, it just requires editing the xml source file.  Using a little trail and error, I was able to partition the drive with a 200MB /boot (too big, I know), a 2GB swap, and then partition the rest of the drive as LVM, and then mount /, /var, /opt, /usr, /tmp, /home, and /work inside the lvm.  Works like a charm.  If you need a working autoinst.xml file, you can download mine <a href="http://os-zen.com/download/autoinst.xml">here</a>.</p>
<p>This setup is great, but it required me to boot off of the CD, and then enter a long install=nfs://bla bla bla/bla bla autoyast=nfs://blalbalba line at boot time.  To really make the system work, I needed network booting for full automation.  I found a great walk through in this <a href="http://www.theopenstandard.com/blogs/chapeaurouge/files/PXE-GRub-AutoYast-HTTP.pdf">pdf</a>, which surprisingly enough, worked for me the first time.  I had to install tftp, syslinux, and dhcp-server rpms, then edit a couple of files, move a couple of things, really no big deal.</p>
<p>Now, I&#8217;m ready.  When we get 100+ servers in, which I&#8217;m told I&#8217;ll have 7 days to install, I&#8217;ll be able to say &#8220;what would you like me to do with the rest of the time?&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://oszen.net/2008/05/autoyast/feed/</wfw:commentRss>
		</item>
		<item>
		<title>wsu &#8212; gksu for Windows</title>
		<link>http://oszen.net/2008/05/winsu-gksu-for-windows/</link>
		<comments>http://oszen.net/2008/05/winsu-gksu-for-windows/#comments</comments>
		<pubDate>Sun, 18 May 2008 14:30:00 +0000</pubDate>
		<dc:creator>Jon Buys</dc:creator>
		
		<category><![CDATA[Feature]]></category>

		<guid isPermaLink="false">http://os-zen.com/?p=40</guid>
		<description><![CDATA[wsu is a simple little utility that let&#8217;s you run another application with elevated privileges on Windows, much like sudo on Linux, and its GUI wrapper gksu.  My good friend, Matt Paulauskas is letting me distribute it here on OS\Zen, and he is releasing it as open source under a BSD license.  The [...]]]></description>
			<content:encoded><![CDATA[<p>wsu is a simple little utility that let&#8217;s you run another application with elevated privileges on Windows, much like sudo on Linux, and its GUI wrapper <a href="http://www.nongnu.org/gksu/">gksu</a>.  My good friend, Matt Paulauskas is letting me distribute it here on OS\Zen, and he is releasing it as open source under a BSD license.  The terms of the license are pretty simple, as he explains it “Basically it&#8217;s a &#8216;give me credit, but don&#8217;t use my name to endorse your version without my permission&#8217; kinda thing”.</p>
<p>You can download the utility here:  <a href="http://os-zen.com/download/winsu-1.7z">WSU</a></p>
<p>Yes, we are well aware of the built in runas utility, but we just think this is easier.</p>
<p>Matt&#8217;s also got a beta with some interesting features. wsu now accepts -p argument for changing cpu priority.</p>
<p>ex. wsu regedit -p 4</p>
<p>1 Below Normal<br />
2 Normal<br />
3 Above Normal<br />
4 High<br />
5 Realtime</p>
<p>You can download the beta here: <a href="http://os-zen.com/download/winsu-beta2.2.7z">wsu2 Beta</a></p>
<p>Screenshots:  Because you know you love them.</p>
<div style="text-align:center;"><img src="http://os-zen.com/wp-content/uploads/2008/05/winsu-run.png" border="0" alt="winsu_run.PNG" width="347" height="179" /></div>
<div style="text-align:center;"><img src="http://os-zen.com/wp-content/uploads/2008/05/winsu-prompt.png" border="0" alt="winsu_prompt.PNG" width="380" height="244" /></div>
<div style="text-align:center;"><img src="http://os-zen.com/wp-content/uploads/2008/05/winsurc2-prompt-failed-logon.png" border="0" alt="winsuRC2_prompt_failed-logon.PNG" width="380" height="244" /></div>
<p>If you are interested, wsu is written in Visual Basic.  The executable is very small, here&#8217;s the source code:</p>
<pre>Imports System.Security
Imports System.IO
Imports System.Diagnostics
Public Class frmWinSu
    Function ConvertToSecureString(ByVal str As String)
        'converts string to secure string
        Dim password As New SecureString
        For Each c As Char In str.ToCharArray
            password.AppendChar(c)
        Next
        'Returns new secure string
        Return password
    End Function
    Public args() As String
    Public adminAcct As String

    Private Sub frmWinSu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'if no arg is passed, exit winsu
        args = Environment.GetCommandLineArgs
        If args Is Nothing Or args.Length &lt;&gt; 2 Then End
        Try
            'Gets admin acct from configuration file
            Dim file As New FileStream("C:\winsu.conf", FileMode.Open, FileAccess.Read)
            Dim fileReader As New StreamReader(file)
            adminAcct = fileReader.ReadLine
            'If the file is blank, do nothing
            If adminAcct = "" Then End
            'Closes filestream and streamreader
            fileReader.Close()
            file.Close()
            lblAcct.Text = "Enter the password for " &amp; adminAcct &amp; " to perform administrative tasks"
        Catch
            End
        End Try
    End Sub

    Sub StartProc()
        Try
            'instantiates new process from the path read from config file
            'Process is started as user adminAcct with password from txtPasswd
            Dim proc As New Process
            proc.StartInfo.FileName = args(1)
            proc.StartInfo.UseShellExecute = False
            proc.StartInfo.UserName = adminAcct
            proc.StartInfo.Password = ConvertToSecureString(txtPasswd.Text)
            proc.Start()
        Catch ex As Exception
            ' displays message if an error occurs
            MsgBox(ex.Message)
            'if error is from incorrect logon info, then start over
            If Err.Number = 5 Then txtPasswd.Text = "" : Exit Sub
        End Try
        End
    End Sub

    Private Sub cmdOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdOK.Click
        'Executes StartProc() routine
        StartProc()
    End Sub

    Private Sub txtPasswd_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtPasswd.KeyPress
        'Executes StartProc() routine if enter key (chr(13)) is pressed
        If e.KeyChar = Chr(13) Then
            'e.Handled stops the proram from making the really annoying _
            'error alert noise when you press the enter key on a single _
            'line textbox
            e.Handled = True
            StartProc()
        End If
    End Sub

    Private Sub cmdCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCancel.Click
        End
    End Sub
End Class</pre>
<p>We hope you like it, if there are any questions or suggestions, drop them here in the comments.</p>
<p>NOTE:  We just discovered that WinSU is already taken as a name, so Matt asked to have it changed to wsu.</p>
]]></content:encoded>
			<wfw:commentRss>http://oszen.net/2008/05/winsu-gksu-for-windows/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Master Craftsman</title>
		<link>http://oszen.net/2008/05/the-master-craftsman/</link>
		<comments>http://oszen.net/2008/05/the-master-craftsman/#comments</comments>
		<pubDate>Thu, 15 May 2008 02:45:00 +0000</pubDate>
		<dc:creator>Jon Buys</dc:creator>
		
		<category><![CDATA[Feature]]></category>

		<category><![CDATA[idea]]></category>

		<category><![CDATA[philosophy]]></category>

		<guid isPermaLink="false">http://os-zen.com/?p=36</guid>
		<description><![CDATA[The Master Craftsman works methodically, not slowly, not hurriedly.  He has mastered the basics, and knows the essence of his craft.  He has moved to a point where he can define his own methods, and doesn&#8217;t need to explain them to anyone, unless someone is wise enough to ask.  The Master Craftsman [...]]]></description>
			<content:encoded><![CDATA[<p>The Master Craftsman works methodically, not slowly, not hurriedly.  He has mastered the basics, and knows the essence of his craft.  He has moved to a point where he can define his own methods, and doesn&#8217;t need to explain them to anyone, unless someone is wise enough to ask.  The Master Craftsman enjoys the hardest, most complicated problems, and enjoys unravelling them piece by piece.  He enjoys the challenge to his skill, and proves his worth again and again as he overcomes each obstacle.</p>
<p>The Master Craftsman has an intimate relationship with his tools.  He knows not only what they do, but much more importantly, how they do it.  His choice of tools for a certain task is based on years of experience, research, and hands on use.  He can debate intelligently on the merits and problems with his tools, as compared with other tools that he has tried and discarded over time.  His choice of tools explains something about him.</p>
<p>The Master Craftsman enjoys his work, and is comfortable with his place in the world.  He is an expert, and he knows it.</p>
<p>I&#8217;ve had an abstract idea for this post for a couple of months now.  The Master Craftsman is the embodiment of my professional goals.  I&#8217;m not one to speak of gurus or wizards, since I come from very down to Earth country in Montana, but a craftsman, or a woodworker is an image that I can grab on to.  I&#8217;m not a Master yet, but I&#8217;m working towards it.  My tools are not jigsaws and planers, but vi and zsh, but the basic principles still apply.  I think the idea of a craftsman is less about impressing others and more about perfecting his skill.</p>
]]></content:encoded>
			<wfw:commentRss>http://oszen.net/2008/05/the-master-craftsman/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ars Technica reviews Ubuntu 8.04</title>
		<link>http://oszen.net/2008/05/ars-technica-reviews-ubuntu-804/</link>
		<comments>http://oszen.net/2008/05/ars-technica-reviews-ubuntu-804/#comments</comments>
		<pubDate>Thu, 08 May 2008 10:48:18 +0000</pubDate>
		<dc:creator>Jon Buys</dc:creator>
		
		<category><![CDATA[Performance]]></category>

		<category><![CDATA[beagle]]></category>

		<category><![CDATA[desktop]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[macs]]></category>

		<category><![CDATA[search]]></category>

		<category><![CDATA[spotlight]]></category>

		<category><![CDATA[tracker]]></category>

		<guid isPermaLink="false">http://os-zen.com/?p=33</guid>
		<description><![CDATA[Ars Technica delivers another great operating system review, this time on everyone’s (myself included) favorite desktop Linux.
The heron has landed: a review of Ubuntu 8.04: Page 1: “”
Evidently the new built in search app Tracker is slow and returns lots of files that are irrelevant to the search.  Ars says that Beagle is better, [...]]]></description>
			<content:encoded><![CDATA[<p>Ars Technica delivers another great operating system review, this time on everyone’s (myself included) favorite desktop Linux.</p>
<p><a href="http://arstechnica.com/reviews/os/hardy-heron-review.ars/1">The heron has landed: a review of Ubuntu 8.04: Page 1</a>: “”</p>
<p>Evidently the new built in search app <a title="Tracker" href="http://www.gnome.org/projects/tracker/">Tracker</a> is slow and returns lots of files that are irrelevant to the search.  Ars says that Beagle is better, and is supported by more apps, but I’m thinking that Linux needs a more drastic change when it comes to built in search.  Something along the lines of the Mac OS X <a title="fsevents" href="http://arstechnica.com/reviews/os/mac-os-x-10-5.ars/7">fsevents</a>.  fsevents is kernel based, and tracks the changes to every file in the operating system.  This makes spotlight very efficient, and very current… there’s never a need to re-index your system.</p>
<p>A built in search function like this would be great in Linux on the desktop, but I think it would be even more impressive on the server.  Without doubt there would be a public api, one that could be used to collect the index from all servers on the network and offer one place to search through all files on all servers.  This would be amazing for corporate file servers, although permissions would have to be worked out.  I think its doable.</p>
]]></content:encoded>
			<wfw:commentRss>http://oszen.net/2008/05/ars-technica-reviews-ubuntu-804/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Creative Uses for Wordpress</title>
		<link>http://oszen.net/2008/05/creative-uses-for-wordpress/</link>
		<comments>http://oszen.net/2008/05/creative-uses-for-wordpress/#comments</comments>
		<pubDate>Thu, 08 May 2008 04:03:46 +0000</pubDate>
		<dc:creator>Jon Buys</dc:creator>
		
		<category><![CDATA[Feature]]></category>

		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://os-zen.com/?p=32</guid>
		<description><![CDATA[Where I spend my days ($WORK), we have multiple monitoring systems for just about every service on every server that we have.  Many of these are Nagios, some are built in, and others are SiteScope.  All of the systems generate email alerts that either go to our pagers, our email, or both.  [...]]]></description>
			<content:encoded><![CDATA[<p>Where I spend my days ($WORK), we have multiple monitoring systems for just about every service on every server that we have.  Many of these are <a href="http://www.nagios.org/">Nagios</a>, some are built in, and others are <a href="https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&amp;cp=1-11-15-25%5E849_4000_100__">SiteScope</a>.  All of the systems generate email alerts that either go to our pagers, our email, or both.  From time to time, management would ask a question like “How many pages do you get in a week on average?”, which up till a couple of months ago, our answer was always “It just depends…”</p>
<p>Not a great answer, so I decided to start tracking the email alerts with a centralized database.  Now, at this point, I could have whipped up my own home-brew frankenstein creation, but since everything I wanted was already built into Wordpress, I really didn’t need to.  Wordpress has the option of posting blogs via email.  So, all I needed to do was set up a special email account on our mail server and make sure the pop3 server was running.  Then, add the server and login information into Wordpress, setup a cron job to trigger the mail check every five minutes, and <span style="text-decoration: line-through;">(whala</span>) boom!  Instant logging of all pages that are sent out in a searchable, easy to read, web format.  Now, when management gets it in their mind to start asking questions, we can easily say “Let me reference my report.”  They really like hearing things like that.</p>
<p>Building on the success of the alert log, I thought it might be good to also log all of our changes to the system.  This idea is completely different from traditional “Change Management” systems which require you to log ahead of time what you want to accomplish in some ridiculous form or application.  Instead, I find it much more useful and relevant to build in the change logging where we spend most of our time, the command line.</p>
<p>I’ve added an alias for “exit” in the shell like so:</p>
<pre><code>alias exit="exec /scripts/ch_log"
</code></pre>
<p>Here is the ch_log script:</p>
<pre><code>#!/bin/sh
# ch_log - Prompt the user to log system changes on
# exit from the root shell.
#
# jonbuys@os-zen.com - Wed Apr  2 15:32:43 CDT 2008
#
############################################################ 

HOST=`hostname`
DATE=`date +%m-%d-%y`
echo $DATE
echo "Did you make any changes to the system? (y/n)"
read answer

if [ $answer == n ] ; then
   echo "OK, Thanks!"
   exit 0
else
   echo "Cool, please enter your name, and then describe the changes in the form."
   echo "Name:"
   read NAME

    cat /scripts/log_template | sed s/NNN/$NAME/g | sed s/DDD/$DATE/g | sed s/SSS/$HOST/g &gt;  /tmp/$$.answer
    vi /tmp/$$.answer
    mail change_log@mail.mydomain.com -s "Change Notification for $HOST"&lt; /tmp/$$.answer
    echo "OK, thanks!"
fi
exit 0

############################################################
# EOF: ch_log
</code></pre>
<p>Basically, when we exit our shell we now have to make a choice… do we log what we did with this quick and easy script, or do we ignore it and risk the consequences.  I’ve found that for the most part, I choose to log my work.  The email that is sent off to the change_log@mail.mydomain.com address is picked up by a second Wordpress install, and posted to the blog.  Now we have a historical record of what we’ve done incase something breaks, or (more importantly) when annual review time comes around and we are asked “what have you been up to?”</p>
<p>There is one other change that I had to make to get this to work right.  By default, Wordpress holds all posts it recieves via email for approval before posting it to the main page.  This is good security, but not really needed on an internal LAN, and it breaks the system I’ve laid out above.  So, to fix it, I’ve made a slight change to the wp-mail.php file:</p>
<pre><code>     // Set $post_status based on $author_found and on author's publish_posts capability
     if ($author_found) {
             $user = new WP_User($post_author);
             if ($user-&gt;has_cap('publish_posts'))
                     $post_status = 'publish';
             else
                     $post_status = 'publish';
     } else {
             // Author not found in DB, set status to pending.  Author already set to admin.
             $post_status = 'publish';
     }
</code></pre>
<p>Above, I’ve changed the “pending” post_status to “publish” for unidentified users, which is everything that it receives via email.  This is a very bad idea to do outside of the LAN, but I don’t see any harm in it internally.  Undoubtedly there are those who would disagree, but this works well for us.</p>
<p>This is how we are using Wordpress internally on our corporate LAN right now, I’d be interested to hear how some others are using Wordpress or other blogging software.</p>
]]></content:encoded>
			<wfw:commentRss>http://oszen.net/2008/05/creative-uses-for-wordpress/feed/</wfw:commentRss>
		</item>
	
	<script type="text/javascript">
	(function() {
		var links = document.getElementsByTagName('a');
		var query = '?';
		for(var i = 0; i < links.length; i++) {
			if(links[i].href.indexOf('#disqus_thread') >= 0) {
				links[i].innerHTML = 'View Comments';
				query += 'url' + i + '=' + encodeURIComponent(links[i].href) + '&';
			}
		}
		document.write('<script type="text/javascript" src="http://disqus.com/forums/oszen/get_num_replies.js' + query + '"><' + '/script>');
	})();
	</script>

	</channel>
</rss>
