<?xml version="1.0"?>
<rss version="2.0.">
  <channel>
    <title>Advogato blog for shawn</title>
    <link>http://www.advogato.org/person/shawn/</link>
    <description>Advogato blog for shawn</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Sat, 17 May 2008 10:05:06 GMT</pubDate>
    <item>
      <pubDate>Mon, 24 Mar 2003 06:15:53 GMT</pubDate>
      <title>24 Mar 2003</title>
      <link>http://www.advogato.org/person/shawn/diary.html?start=16</link>
      <guid>http://www.advogato.org/person/shawn/diary.html?start=16</guid>
      <description>&lt;P&gt;&lt;B&gt;Work&lt;/b&gt;
&lt;P&gt;
I am currently working for the Digital Technology Center at the U of
MN as a systems administrator.  Current projects at work include getting rid of all old Red Hat 7.x machines in favor of my automated Red Hat 8.0 install, which includes a lot of custom scripts to automate things such as file distribution (based on rsync) and installation.  My current favorite automation bit is an e-mail which I am sent if the machine needs to be rebooted and no one is logged in.  (Useful for kernel upgrades.)

&lt;P&gt;&lt;B&gt;Free Software&lt;/b&gt;
&lt;P&gt;
Have done some more hacking on Fabric, and even uploaded a new version up on the ftp site, but didn't bother to announce it since competition from Apache projects makes it unlikely for Fabric to gain any real popularity.  I could see this changing if we get some high-profile sites using Fabric, but otherwise there is a lack of good big-site example code, since all that James and I have written has been for commerical entities.

&lt;P&gt;&lt;B&gt;Photography&lt;/b&gt;
&lt;P&gt;
I bought a Canon S230.  It is awesome.  

&lt;P&gt;
&lt;P&gt;&lt;B&gt;Protest&lt;/b&gt;
&lt;P&gt;
I attended a &lt;A HREF="http://www.mppeace.org/events/march.htm"&gt;peace rally&lt;/a&gt; at Macalester College last Saturday.  I was amazed at the turnout... quite a bit larger than I would have expected.   My primary interest is to attempt to gain some proficiency at using a camera at such events.  I took about 69 photos and a few video clips, and wasn't happy with any of them.  But, I suspect there will be plenty of time to try again...
</description>
    </item>
    <item>
      <pubDate>Thu, 4 Jul 2002 19:14:27 GMT</pubDate>
      <title>4 Jul 2002</title>
      <link>http://www.advogato.org/person/shawn/diary.html?start=15</link>
      <guid>http://www.advogato.org/person/shawn/diary.html?start=15</guid>
      <description>&lt;B&gt;Work&lt;/b&gt;&lt;BR&gt;
&lt;P&gt;
My temporary job at the U of MN as a systems administrator is coming to an end, so again I'll be looking for work.  Of course, I'm still doing EventLoop stuff part-time, but it doesn't pay the bills currently.

&lt;BR&gt;&lt;BR&gt;
&lt;B&gt;Free Software&lt;/b&gt;&lt;BR&gt;
&lt;P&gt;
I'm preparing to do a new release of Fabric in the next few days.  It has been quite some time since the last release and there has been quite a bit of activity in our CVS since that time.

&lt;BR&gt;&lt;BR&gt;
&lt;B&gt;The Rats&lt;/b&gt;&lt;BR&gt;
&lt;P&gt;
Unfortunately, grep has passed away from a tumor.  Awk is doing fine, although a bit lonely.
</description>
    </item>
    <item>
      <pubDate>Fri, 27 Oct 2000 16:42:00 GMT</pubDate>
      <title>27 Oct 2000</title>
      <link>http://www.advogato.org/person/shawn/diary.html?start=14</link>
      <guid>http://www.advogato.org/person/shawn/diary.html?start=14</guid>
      <description>&lt;p&gt;
&lt;B&gt;Work&lt;/b&gt;

&lt;p&gt;
The week has been going pretty well. I've written quite a 
bit of our new business plan this week and will 
hopefully be finishing it up in the next few days.  
We are considering moving to a renovated warehouse 
place in downtown Minneapolis.

&lt;p&gt;
We are still &lt;b&gt;looking for a contract&lt;/b&gt;, but haven't 
done so very actively yet. We will start doing this in the 
next week or so.

&lt;p&gt;
&lt;B&gt;Life&lt;/b&gt;

&lt;p&gt;
My belief in people was a bit shattered to hell this week 
and strengthened at the same time. A girl I was seeing 
did some pretty cruel, stupid, and slut-like things.  
Someone else did remarkably admirable things.  In any 
case, an overall hard and stressful week.

&lt;p&gt;
&lt;B&gt;Gout&lt;/b&gt;

&lt;p&gt;
I tell you, having gout sucks ass. I have medicine now 
that is supposed to prevent it, and I've actually been 
taking it for like 3 weeks almost now. Well, it happens 
that when you start taking it actually gives you gout.  
Suck. Suck. Suck.

&lt;p&gt;
&lt;b&gt;Home&lt;/b&gt;

&lt;p&gt;
The rats are growing. 
</description>
    </item>
    <item>
      <pubDate>Mon, 16 Oct 2000 18:43:17 GMT</pubDate>
      <title>16 Oct 2000</title>
      <link>http://www.advogato.org/person/shawn/diary.html?start=13</link>
      <guid>http://www.advogato.org/person/shawn/diary.html?start=13</guid>
      <description>&lt;p&gt;
&lt;B&gt;Work&lt;/b&gt;

&lt;p&gt;
EventLoop is hiring another person, who starts in one week.
Expanding from two to three people is exciting!  This week
we are searching for new office space, since our current
space gets a little cold at night when then turn off the
heat.  This is fine for insane business owners, but on the
questionable side for building an actual staff of people.

&lt;p&gt;
We are looking for a contract right now doing Java, C, or
C++ coding.  It would be nice to work on something that is
open source and visible, but I suspect that is unlikely. 
With the hiring of our new staff member, we will be 
consulting out security and general UNIX administration
services as well.

&lt;p&gt;
Other things going on this week: ordering of new
workstation, perhaps server hardware even, and 
revamping of website.

&lt;p&gt;
&lt;B&gt;Home&lt;/b&gt;

&lt;p&gt;
I received a gift of rats.  Two of them, female.  I named
them 'grep' and 'awk'.  I know, I know.  But I have always
wanted a reason to yell "awk, sed, grep!" in my apartment.
Anyway, awk is the squeeky rat.  These two rats are lovers,
I'm sure of it.  They are very happy.  Grep is the dominate
female.  She steals the food and wakes up awk a lot, which
I think is why awk is always squeeking.

&lt;p&gt;
I've been having people over on Sundays and that is fairly
fun.  I feel almost social at times.  Maybe I should get
back to coding, eh?

&lt;p&gt;
&lt;B&gt;Dancing&lt;/b&gt;

&lt;p&gt;
My foot is sore, so I'm using that as an excuse to skip the
rest of ballroom dance club lessons.  This usually happens
when I join the BDC: I quit about three weeks into it.  I 
think I need to find someone who engages me, and will 
patiently practice with me so I'm prepared when I get the
chance to dance in public.  

</description>
    </item>
    <item>
      <pubDate>Wed, 29 Mar 2000 22:00:09 GMT</pubDate>
      <title>29 Mar 2000</title>
      <link>http://www.advogato.org/person/shawn/diary.html?start=12</link>
      <guid>http://www.advogato.org/person/shawn/diary.html?start=12</guid>
      <description>&lt;B&gt;BeOS&lt;/b&gt;

&lt;p&gt; I tried to get BeOS 5 Personal Addition working last night.
First, I tried to install it onto the machine I have BeOS
4.5 running on.  However, the installer is for Windows and
could not figure out how much disk space was available so
wouldn't install on that machine.

&lt;p&gt; Then I tried to install it on my iMac in Virtual PC.  If I
could get it working there, I could finish getting the GTK+
port integrated into mainstream at home.  However, my
experience was not so great.  It installed fine and boots,
but it is really slow and doesn't function very well at
all.  Ah well, it was a long shot. (It works better than 4.5
did though.)

&lt;p&gt; I'd really like to get BeOS working on a notebook. It seems
like the Sony VIAO's might be supported, but I only infer
that from support for the VIAO CDROM drive. A list of known
supported laptop models would be useful.

&lt;p&gt; I'm going to try and get it running on my oldish Toshiba
notebook. I would have tried last night but unfortunately I
need a floppy to boot and the floppy was, of course, at work
and not at home where the notebook and I were.  I do not
know if there will be enough room to even test BeOS on my
notebook, since it's a 1GB drive.

&lt;p&gt; The biggest problem with working on the GTK+ port for BeOS
right now is that the BeOS box is at work and I need to do
work when at work. So, it's been getting ignored. I've
considered taking that machine home so I can work on it
there.  

&lt;p&gt; Ideally though, I could work on it on a notebook so I could
do things requiring high-bandwidth connection at work and
then the real work off-line. Ah well.

&lt;p&gt; &lt;B&gt;LinuxPPC&lt;/b&gt;

&lt;p&gt; I have LinuxPPC installed on my iMac now. I don't know the
secret to using a one button mouse in X yet, so I can't
configure any of the GNOME stuff. I think I might have to
install a different X server, but I haven't even looked into
the options yet.

&lt;p&gt; Macs have the same firmware as Sun machines, which really
kicks ass.  I've set my iMac to stop at the firmware before
booting, once &lt;A HREF="/person/flaggz/"&gt;flaggz&lt;/a&gt; figured
out how to do that on his new powerbook.  

&lt;p&gt; GNOME on the iMac is incredibly slow. It could be partially
due to the speed of the framebuffer X server, but I think it
probably has more to do with one of the panel's applets
sniffing everything that happens in a very inefficient and
slow ass manner. To put it mildly, out of the box GNOME on
LinuxPPC sucks.  I had a similar performance issue on Intel
Debian as well before I got rid of the majority of the
applets. By default, it was also using Enlightenment and not
Sawmill - duh. And the default theme obscured the corners of
windows. Who's bright idea was it to make that default?

&lt;p&gt; Switching between text consoles and X when using the
framebuffer X is almost unbearably fast and cool. It's
freaky. You expect the normal slow video switch to happen
and instead it's there ready for you to type. It's really
very cool.

&lt;p&gt; Once I have GNOME configured to a minimum of crappiness (as
opposed to the default), and have correctly set up the
framebuffer or other X server on the iMac, and either get a
multibutton mouse or figure out the command keys to do a
click, I think I'll actually be able to do some programming
on that machine.  Cool.

&lt;p&gt; &lt;B&gt;Photo Exibits&lt;/b&gt;

&lt;p&gt; Now here is a cool thing.  Check out the &lt;A
HREF="http://www.xach.com/photo-exhibits/"&gt;Photo Exibit
System&lt;/a&gt;. It's done by &lt;A HREF="/person/xach/"&gt;Xach&lt;/a&gt; on
xach.com. Basically, it allows you to comment all those
photographs you have up on the web.  If I had any photos
online, I'd enter them (and not only because Xach would be
twisting my arm). I think &lt;B&gt;you&lt;/b&gt; should enter yours.

&lt;p&gt; Perhaps Advogato needs the ability to let a hacker upload a
photo, to display on his public page.

&lt;p&gt; &lt;B&gt;Crappy APIs&lt;/b&gt;

&lt;p&gt; At work, &lt;A HREF="/person/flaggz/"&gt;flaggz&lt;/a&gt; and I are
discovering just how poor APIs can get. We are working with
a vendor who is giving us Java APIs written by someone's
first chance to code with Java. These APIs are simply
horrible!  They now have new people coding on this stuff,
but we are stuck working with this crap.

&lt;p&gt; For example, it allows you to create an object. This object
has a phone number associated with it. The object has a
method getPhoneNumber() which returns a String. That method
is only valid right after you create the object for the
first time.  When you look it up again, it isn't valid to
use that function.  That's right, depending on state, it
isn't valid to use the function.  You heard me. Ok, maybe a
code sample (this isn't the real code, just illustrating
what I mean):

&lt;p&gt; &lt;UL&gt;
&lt;PRE&gt;
// Next line creates an object with a lot of non-working
// functions.
Foobar foobar = new Foobar(); 

&lt;p&gt; // Set some attributes of foobar here/
...

&lt;p&gt; // The next line takes the attributes we set and creates it
foobar.create();

&lt;p&gt; // this is the only time the next method is valid
phone_number = foobar.getPhoneNumber();


&lt;p&gt; // Then, if you look it up later:
FoobarParent parent = new FoobarParent();
Foobar foobar = parent.getFoobar();

&lt;p&gt; // The next line is an error, we can only do this after a
// create(). Stupid, eh?
phone_number = foobar.getPhoneNumber();
&lt;/pre&gt;
&lt;/ul&gt;

&lt;p&gt; This is just insanity.  It would be better if it were
something usable, like:
&lt;UL&gt;
&lt;PRE&gt;
// Create object in one step, never allow an object you
// can't use. This could just return an object Foobar too,
// depending the expense of creating the object.
int foobar_id = Foobar.create(...);

&lt;p&gt; // Look up given the ID, all functions are *always* valid.
Foobar foobar = Foobar.find(foobar_id);
String phone_number = foobar.getPhoneNumber();
&lt;/pre&gt;
&lt;/ul&gt;
Oh well. 

&lt;p&gt; Flaggz will be wrapping all of their API inside a sane one
as we wouldn't want to taint the rest of our code with this
API. Unfortunately, we will have to keep the phone number
information around in our own database since we can only get
it once.  What a great design decision on their part.

&lt;p&gt; &lt;B&gt;Hiring People&lt;/b&gt;

&lt;p&gt; Our company is trying to expand from 2 people to like 5 or
so.  I thought this would be fairly straight forward.
Apparently, it's more difficult than that. I'm now convinced
that people we want to hire are not only good at what they
do, but also intelligent enough to have already landed them
in a situation they find acceptable. So, the few friends we
wanted to come work for us don't want to leave their jobs. 
Of course, there is a lot of &lt;B&gt;risk&lt;/b&gt; involved in working
for a company this small, which I think has a lot to do with
it.

&lt;p&gt; If they wanted to leave their current job, they would have
done so
already. There seems to be a significant barrier to leaving
someplace that isn't that horrible. If nothing else, this
has proved interesting. Perhaps the good people end up with
jobs they like; that's kind of a nice
thought anyway. 

&lt;p&gt; The main disappointment here is that we really want to hire
on people we know, so that when we grow more that we have a
solid base of people that we can trust and that we know can
help us lead and manage the company in the correct manner.
Instead, we might end up just hiring people we don't know to
do Java coding and fill in our management later on.

&lt;p&gt; &lt;B&gt;Movies&lt;/b&gt;

&lt;p&gt; Ok, I've finally watched &lt;I&gt;Das Boot&lt;/i&gt;. This movie is 3.5
hours long. That's long enough to require you to flip of the
DVD part way through. It is an very good movie. Watched
&lt;i&gt;Wallace and Gromit&lt;/i&gt; as well... kick ass. Next in the
queue to watch are &lt;I&gt;Grey Owl&lt;/i&gt; and &lt;I&gt;Summer of Sam&lt;/i&gt;,
which are sitting on my speaker at home.

&lt;p&gt; I watched the new Jet Li movie in the theater, &lt;I&gt;Romeo Must
Die&lt;/i&gt;. It's not all that great. flaggz hated it. Jet Li is
pretty cool, but this movie's fight scenes were unrealistic
and the script could have been better.

</description>
    </item>
    <item>
      <pubDate>Thu, 16 Mar 2000 06:55:17 GMT</pubDate>
      <title>16 Mar 2000</title>
      <link>http://www.advogato.org/person/shawn/diary.html?start=11</link>
      <guid>http://www.advogato.org/person/shawn/diary.html?start=11</guid>
      <description>&lt;A HREF="/person/flaggz/"&gt;flaggz&lt;/a&gt; took a few days off of
work so things have been a bit hectic. The project we are
working on is now starting to be used and stress tested by
filling up the database with a large amount of information -
and yet, it's just a fraction of the goal.

&lt;p&gt; It will surely be a long night.</description>
    </item>
    <item>
      <pubDate>Fri, 10 Mar 2000 05:01:24 GMT</pubDate>
      <title>10 Mar 2000</title>
      <link>http://www.advogato.org/person/shawn/diary.html?start=10</link>
      <guid>http://www.advogato.org/person/shawn/diary.html?start=10</guid>
      <description>&lt;A HREF="/person/Adrian/"&gt;Adrian&lt;/a&gt; mentioned again that he
no longer wants to be webmaster for &lt;A
HREF="http://www.gimp.org/"&gt;www.gimp.org&lt;/a&gt;. This
underlines a problem I mentioned previously. The question
is, how does one go about finding a hard-core volunteer to
maintain a very popular free software website?

&lt;p&gt; Someone suggested putting up an advertisement for help on
www.gimp.org itself. I don't particularly like that idea.
Perhaps a posting on a mailing list. But I'm concerned that
we have already exploited our most hard-core people and now
anyone who wants to help will not stick around for very
long. In other words, I think we are just screwed.
</description>
    </item>
    <item>
      <pubDate>Thu, 9 Mar 2000 18:12:57 GMT</pubDate>
      <title>9 Mar 2000</title>
      <link>http://www.advogato.org/person/shawn/diary.html?start=9</link>
      <guid>http://www.advogato.org/person/shawn/diary.html?start=9</guid>
      <description>After some more pondering, I think we will need to add in a
tag to the XML files that simply causes HTML from another
file to be inserted.  This will clean up stuff a bit.
Something like:

&lt;p&gt; &amp;lt;insertfile name="foo.html"/&amp;gt;

&lt;p&gt; This however, will not allow substitution in the html file,
which gets us back to the point of using XML for templating.
This may not be a large issue at all, but then again...

&lt;p&gt; I'm also completely unhappy with the stuff I implemented two
days ago, as it won't really allow adding non-standard
modules to mod_virgule, which was kind of the point I
started out with. Basically, the system needs to allow
appending or prepending functions to handle XML tags.  This
will allow hooking things in from other .so files or
whatever. Then we can add in a modules/ directory into the
database and load in anything that is sitting there when
advogato initializes. The second attempt is always better.</description>
    </item>
    <item>
      <pubDate>Thu, 9 Mar 2000 01:05:44 GMT</pubDate>
      <title>9 Mar 2000</title>
      <link>http://www.advogato.org/person/shawn/diary.html?start=8</link>
      <guid>http://www.advogato.org/person/shawn/diary.html?start=8</guid>
      <description>Spent a lot of time last night hacking on a local version of
mod_virgule. I have two XML templates now and a more generic
methodology for rendering the XML into HTML.  This is
perhaps not as impressive as it may sound. Unfortunately,
these modifications are of little value without changing a
lot of other code as well to use the framework.

&lt;p&gt; Interesting quirks about coding on mod_virgule: XML files
must not begin with an empty line or it's a parse error. 
Parse errors are not handled well right now and looking at
the header files for gnome-xml, it's not apparent how to get
the parse error which occurred when a document is created.
I'm not sure what  a Pool is in the code, but I intend to
find out sometime. If your code sigsegvs, it sucks. Java
wins by a few orders of magnitude for actually giving you an
valuable exception upon these type of errors.</description>
    </item>
    <item>
      <pubDate>Mon, 6 Mar 2000 21:05:12 GMT</pubDate>
      <title>6 Mar 2000</title>
      <link>http://www.advogato.org/person/shawn/diary.html?start=7</link>
      <guid>http://www.advogato.org/person/shawn/diary.html?start=7</guid>
      <description>I looked at the mailbox I filter all gtk.org and gimp.org
webmaster/admin mail into... ugh. I can't keep up with it,
never have been able to. If only there was a request system
for such a thing, so we could make sure all things got
responded to.
We don't even really try to keep up with it anymore, 90% of
the stuff gets ignored completely. There has to be a
solution that doesn't take up a lot of time.

&lt;p&gt; It pains me that gimp.org's content is growing stale. 
Unfortunately, it's almost impossible to get anyone else to
work on it; even if they had 100% content control, etc., how
do you find that person who is willing to do the work? 
Unknown.

&lt;p&gt; www.gtk.org will get revamped again by myself soon. I really
want to switch to a model which allows other developers to
help update content on the site. Perhaps mod_virgule code
can be used for this; it's an interesting idea in any case.

&lt;p&gt; I wanted to redo content.gimp.org, because I think there is
a need for it's existance, but since I haven't gotton a
chance now I don't think it's going to happen. I'm kind of
losing interest in the idea.</description>
    </item>
  </channel>
</rss>
