revjim.net

May 5th, 2003:

stupid fuckin’ cable

I installed a new CD-RW drive this evening. It only took me 1.5 hours worth of trouble shooting to determine that, even though it looked perfectly fine and normal, the ribbon cable that came with the drive is bad.

I guess that just goes to show that, regardless of how absurd it sounds, you should never take anything for granted.

Pyrite BlogAuthor is good, MovableType still sucks, and I still can’t bitch

First of all, the reason that Pyrite BlogAuthor didn’t ping the trackbacks associated with the Categories had nothing to do with Pyrite BlogAuthor. It was MovableType’s fault.

After digging through MovableType code for an hour or so (and seriously considering scooping my eyes out with a spoon as an alternative) I found the problem. publishPost, the MovableType specific XMLRPC method, doesn’t ever request that the items to be pinged are pinged. Here’s how you can fix it. Open mt/lib/XMLRPCServer.pm. Find sub publishPost. Look for the line that starts with SOAP::Data_type. Just ABOVE it, add the following:

$mt->ping_and_save( Entry => $entry) or die _fault("Ping and Save failed: " . $mt->errstr);

That’s it. If you use any XMLRPC based blogging client (like w.bloggar and friends) you’ll find that this should fix your problems as well. Unfortunately, I don’t know what other horrible ramifcations this might have. It might send email to your mom and tell her that you masturbate for all I know. However, it seems to work for me.

Pyrite BlogAuthor is very nice. The only thing I don’t like about it is that, when specifying categories, one has to use the category ID as opposed to the category name. One might consider this to be the fault of MovableType and their poorly designed XMLRPC interface. However, at the expense of taking a little bit longer to post an entry, I managed to patch my copy to allow for specifying categories by name.

I don’t know Python, so I’m certain someone more seasoned than myself could do a better job. However, if anyone is interested, I’ll do a diff between my source and the CVS tree so you can implement the changes as well.

Addresses

All of the guests at our wedding, except one (thank you Amanda), didn’t include their address when they signed our guest book. If you attended the wedding, please email me (or Jess) your address.

Thank you.

Pyrite BlogAuthor: not perfect, but almost

While Pyrite BlogAuthor does indeed manage to Post to my MovableType powered weblog, it seems like it either doesn’t send Category pings, or adds the Categories AFTER it requests the entry pings to be sent. Therefore, category based TrackBack pings don’t occur unless you edit the item and then save again. This is not desireable.

Aside from that, a good product. I’ll suggest changing this to the author.

Pyrite BlogAuthor

This post is being written using Pyrite BlogAuthor, a full-featured python based weblog client supporting MovableType, Nucleus, Blogger v1, and others.

I currently use a custom built, GPG enabled mail to blog gateway when I want to post without using the MovableType web-based interface. If this application works properly, it’s flexibility and feature set would be greatly welcomed.

The trash man commeth no more

When I first moved into this apartment last July, I noticed most of
the people leaving their trash in front of their doors when I left for
work in the morning. I decided to see what happens to it so, the next
morning, I left my own bag of trash outside my door. When I came home
that afternoon, it was gone.

It was never stated directly to me that trash pickup service was
included, but, I didn’t mind not having to walk to the other side of my
building in order to drop it down the trash chute. Especially since, in
the summer months, while the rest of the apartment complex is covered in
those disgustingly ENORMOUS waterbugs, the trash room has even MORE of
them since that room is generally dark, and cool, and full of trash.

Last Thursday, Jess put some trash outside our door. Friday morning,
she noticed it was still there, but that other people’s trash was gone.
We wondered if maybe our apartment complex just decided they didn’t like
us any more. We added another bag to the pile to test this theory.

The trash doesn’t get picked up on the weekends, and no one picked it
up on Friday while we were in Longview. So Jess and I had pretty much
decided that, since the rest of the trash seemed to be taken out, the
just didn’t like us.

Jess just told me that one of the apartment office people banged on
our door this morning and asked her if she would please take our trash out.

Ha! Bastards.

I think tomorrow morning, I’m going to put my trash by someone else’s
door and see if it gets picked up.

Of all the ways…

According to href="http://revjim.net/archives//2003/05/02/c9501.php#c612">Jennelle,
doing a search for “Pot Smokers” in href="http://yahoo.com/">Yahoo returns me a result. More
specifically, my page on — yup, you guessed it — href="http://revjim.net/archives/2001/12/27/8727.php">pot
smokers.

Is it 4:20 yet?

PEAR::XML_RPC_Server errors

If you’re using PEAR’s XML_RPC_Server and are receiving errors with
your non-PHP client, there’s a reason why. There’s a bug in
XML_RPC_Server, that, many clients simply ignore. However, some clients,
in particular xmlrpc-c for C have
big issues with this. When using this particular client, the error “-503
Unclosed Token” is received.

It’s easy to fix. Open up pear/XML/RPC/Server.php. Search for the
text “Content-length” without the quotes, case sensitive. In my file
it’s on line 184. Replace that line and the line that follows it with
the following:

header('Content-Length: ' . strlen($payload));
header('Content-Type: text/xml');

I hope that keeps you from running into the same trouble that I
had.

InkLog: nodes explained

Phil Ringnalda posed, as always, an
interesting
question
in regard to Inklog and its nodes that warrants a detailed
response. Phil wrote:

It sounds to me like you are heading down the right path [with
InkLog]: I have very little interest in feeds, and an intense interest in
items. Non-Inklog, you would have a feeds table to keep track of channel info,
and an items table with items including their feed_id. Inklog nodes I don’t
quite get: how do they know about their relationship to other nodes? Does a
weblog post know that it’s in the Inklog category, or does a category node know
the node_id of every weblog post in that category?

The best way to explain a node is that it is like a file in a file system
with additional, arbitrary metadata available. Every file has a name, a date, a
directory that it lives in, and, of course, data. There are three tables
involved with each node: one to hold the node, one to hold the nodes metadata,
and one to hold the directory that the node lives in. InkLog has no real notion
of a “Category”. Instead, it leaves organization up to the user and the module
authors.

One could, for instance, place all the blog entries in the “/blog” path.
Then, for categorizing, use a “Category” metadata property. Also, a user could
use the paths as categories, placing the “Technical” blog entries in the
“/tech” path, and “Technical” entries about “Computers” in the “/tech/comp”
path. Obtaining a list of categories, in either case, would be a simple one
liner. None of this has been written yet, but I can make up an example that
would be similar to actual usage. If one were using paths as categories,
getting a list of categories in the “Technical” category might look like
this:

<il:getPaths from=/tech assign=cats />

Getting ALL the categories might look like this:

<il:getPaths from=/ assign=cats />

Getting the 10 most recent nodes from the “Technical” category might look
like this:

<il:getNodes from=/tech num=10 assign=nodes
/>

If one decided to use MetaData as a category specifier, one might use syntax
like the following:

<il:getUniqueMetadataValues mdName=Category From=/blog
assign=cats />

Or:

<il:getNodes from=/blog
mdInclude=Category:Technical num=10 assign=nodes />

If, for some reason, one didn’t like either of those methods, and couldn’t
come up with one that suited them using the existing framework, extending it is
as simple as writing a single PHP function that gathers the data, putting that
function in a file, and sticking that file in a directory. Most beginning PHP
programmers could do it.

Now to speak more directly to how the RSS reader in Inklog might work. This
isn’t set in stone. In fact, I’m making it up right now. However, it sounds
pretty good. You would first create a node of type “feed” in whatever “path”
you would like to see those RSS items in. “/reader” might be a good choice.
Additionally, one might choose “/reader/life” and “/reader/tech” and
“/reader/photo” depending on the content of the blog. The data for this node
would be two lines: the first being the URL of the feed, and the second being
the refresh time for that item. When a new RSS item is encountered in any feed,
a node of type “feeditem” will be created in the same “path” that the feed node
is in. A Metadata item with the name “FromFeed” will be added to the “feeditem”
node and it will be set to the ID number of the “feed” node =66rom which it
came. The feed reader itself would be executed by issuing a simple statement
like this:

<il:getNodes from=/reader itype=feeditem num=10 assign=nodes
/>

Additionally, the cron job portion of the RSS reader will also store channel
information in the Metadata for the feed node itself. If one would like to
create a blogroll showing all the feeds they read, it might be done like
this:

<il:getNodes from=/reader itype=feed assign=feeds
/>

Thanks for such a great question, Phil. I hope I’ve answered it.

worried

Recently my boss left our group for a lateral position in another
department. He didn’t really give us any indication that he was leaving,
until the day that he told us he was gone. About a week later, he and
his new boss offered me a position in their group.

It isn’t a dream job. Not by any means. In fact, I’m sure I’d like it
less than the job I have now. The work is fairly boring, the fruits of
my labor would be small in comparison to what I do now, and, most
importantly, I would no longer be working with a team.

This alone, was enough to make me think it might not be a good idea.
However, where I am now isn’t exactly a good spot to be in. I have a
boss who doesn’t know who I am, and doesn’t understand anything about
what I do. They work one floor above me, so I don’t see her very often
either.

Last Friday, my main work computer decided that it didn’t like
its harddrive any more and rejected it. I went to my new boss, who
wasn’t there so I spoke to her secretary, in order to secure a new
machine for my needs. I figured, if I’m going to have to reinstall my
entire harddrive, I may as well upgrade my machine and get one of the
new 2.4Ghz machines that have been offered to me a few times (I turned
them down because I didn’t have the time to move my stuff over). When I
asked them for a new machine they said, “sure, we can do that” and then
proceeded to tell me they would be giving me a 500Mhz P2. Ummmm… what?
I told them not to bother and scraped a new (to me) hard drive from
another machine that wasn’t in use.

Last week, when looking at my name in the company directory, it
showed me reporting directly to the VP of our organization. This is
common when they are shuffling people around as, sometimes, the people
responsible for such updates don’t know exactly where we belong when the
updates are being made. This morning, however, I find that, in the
directory, I am reporting to one of our VPs direct reports (as it should
be). However, the person I am marked as reporting to is NOT my boss.
This person does report to my VP, however.

The group that I am marked as reporting to is much more technical
than the group my boss leads. And this, normally, would be a good thing.
However, they are a, primarily, Windows based shop and the entire team,
save myself and the two employees that work with me, is in Florida. I’m
not afraid that they’ll try to get me to move to Florida (and really
wouldn’t mind if they did). However, I don’t like the fact that they are
there and I am here. I also don’t like the fact that no one bothered to
tell us anything.

Part of me would like to think that this is just a mistake, but it
doesn’t seem that way. I’m going to go talk to my boss (or… who I
think is my boss) this morning to find out what’s going on.

All of this is making me want to take the job in my old bosses group
even more. Coincidentally, the last day to apply for it, is today.