Files
Lee Hanken 7c8efd2228 Initial commit: HPR Knowledge Base MCP Server
- MCP server with stdio transport for local use
- Search episodes, transcripts, hosts, and series
- 4,511 episodes with metadata and transcripts
- Data loader with in-memory JSON storage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 10:54:13 +00:00

554 lines
30 KiB
Plaintext

Episode: 46
Title: HPR0046: Yahoo Pipes
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr0046/hpr0046.mp3
Transcribed: 2025-10-07 10:44:07
---
Music
Welcome to Hacker Public Radio.
Hey everybody, this is Peter from the Fresh Ubuntu podcast and I just wanted to record
this little intro.
For this episode, I reunited with my old podcasting co-host partner in crime, Scott Willsey.
We had a lot of fun, although the episode was pretty much off the cuff.
We spent a lot of time fiddling around with Yahoo Pipes and we learned a couple of things
as we did it.
So apologies in advance for the casual nature of the show.
I think the audio quality is just fine and there are some really good tidbits, especially
towards the end of the podcast where I compete with Flash Gordon and save the universe.
So if you want to see how that happened or listen to how that happened, just keep listening.
Also note that we're putting some links in the show notes and Scott did a companion
screencast for this.
So you can actually follow along.
We've got the links up to YouTube where we put the files and we hope you enjoy.
Thanks.
Bye-bye.
And welcome to Hacker Public Radio for Tuesday, March 4th, 2008.
This is Peter from the Fresh Ubuntu podcast and I am joined with my former co-host from
the Mac new podcast, Scott Willsey.
How you doing, Scott?
Hi.
You're a hard man to get a hold of peace.
Yeah, yeah, you say that every time, but I don't believe you.
Peter, it's the hardest man to get a hold of in the world, only after you, only after
you.
There's people that...
But anyway, friends that live in other countries that I know that I can get a hold of
easier.
Well, the other countries have better internet connectivity than Vermont.
That's why people, before we digress way too far, you know, we want to talk today about,
what are we talking about, Scott?
You told me to look at Yahoo Pipes, so I'm hoping that sounds great.
So overview, what is Yahoo Pipes exactly?
How would you describe it?
I mean, the website describes it as a powerful composition tool to aggregate, manipulate,
and mash up content from around the web, but that sounds like marketing speak to me.
What do you think it is?
I call it RSS routing.
I like that.
I like that.
I was thinking RSS feed manipulation, but routing sounds good.
It actually needs a lot more than routing.
Well, I call it that because basically you can take all kinds of different RSS feeds
and route them into different inputs and merge them together and filter them.
So it really is more manipulation.
You're actually more correct when you say that, but RSS routing just kind of rolls off
the tongue.
But yeah, there's a whole lot of capability in here that is manipulation and processing
and filtering, and so yeah, I'd say that your definition is probably better.
Anyway, let's start talking about Pipes a little bit and give an example of how one might
use it, shall we?
Okay.
Okay, first thing you need to do is you need to have a Pipes account.
And if you have a Yahoo account already, they're pretty much the same thing.
So once you've got that set up, what I would do is head on over to pipes.yahoo.com.
And once you're on there, you get greeted by the homepage.
And one of the options is to create a pipe.
So I'm going to go ahead over there and click on create a pipe.
And it's going to ask me for my login again, which only takes a second, boom.
And I'm logged in.
So now I'm at the Pipes editing screen.
And this is kind of cool.
It's all Ajax graphical drag and drop kind of stuff, which is pretty impressive.
If you look on the left side, the first thing that you see are your sources.
And you can fetch all sorts of things, CSV files, RSS feeds, web pages, flicker images,
Google based data, Yahoo searches, all kinds of stuff.
For purposes of my demo, I'm just going to grab an RSS feed.
So I'm going to take up the little button that says fetch feed.
I'm going to drag it and drop it into the workspace on the right side.
Okay.
Now Peter, just one interjection.
I'm doing a screencast of this as you're talking.
So I'm going to be doing your example that you're giving right now.
Oh, excellent.
So I'll stop typing then and I'll just dictate and watch you follow my direction.
Okay.
Or you can do it.
Go ahead and do it so you can see what's going on.
So I know what the hell I'm talking about.
Exactly.
Excellent.
Okay.
So when I drag and drop the fetch feed example onto the workspace on the right, it asked
me for a URL.
And I can just go ahead and paste in a URL.
So now in another window, I'm going to just grab an RSS feed that I already know, but
I'll just dictate it.
I'm going to grab a short one.
How about Molly Woods blog?
So what I'm going to do is I'm going to go grab her RSS feed.
And again, I could copy and paste this or I can just type it in.
Her RSS feed for her blog is HTTP colon slash slash the Molly THMOLY.com slash blog slash
question mark feed equals RSS to.
So I'm just going to type that into a little fetch feed URL.
Now at the bottom of the fetch feed little object that we dragged in, there's a little
ball.
And what you can do is you can drag that at ball, click on it and drag it to the pipe output
object at the bottom of the window.
And you see there's a little ball at the top of the pipe output object.
So if you drag those two and connect them, what you do is you make a little pipe, get
it?
And you basically are telling it to pipe the data from that fetch feed, that feed URL
into the output.
So this is a rather boring example because all I have done right now is taken Molly Woods
RSS feed and made quite another RSS feed.
I'm just duplicating it, reading from one to another.
Peter, you've created a perfectly, perfectly working RSS feed.
Congratulations.
The only thing is whereas her feed was like 20 or 25 characters to start, the Yahoo pipes
output is going to be like 500 characters long and stuff.
So all I've done is added more overhead, so that's kind of dumb.
All right, so here's another thing we could do though.
Let's say we're big fans of Molly Wood and we want to take all instances of Molly Wood
that we can have and just have a single feed.
Well, if you look back up in that fetch feed window, there's a little plus sign.
And it says plus URL.
So I happen to know that, let's see, well buzz out loud, there's a, you know, an RSS feed
for buzz out loud.
Now that's a really long one, so I'm not going to read it to you.
But I'm going to go into my RSS reader or go to the buzz out loud website or whatnot.
And I'm going to get a hold of that URL.
And I'm going to just paste that into the, I'm going to go paste that into the fetch
feed window.
Okay.
Okay.
It's going to paste that in there.
And that's for a podcast.
And that's for a podcast.
That's for a podcast.
That's right.
There you go.
So I think I got it here.
Paces that over to you so you can paste that in there.
Okay, so this is interesting.
You've got this really huge long link.
And when I look at the buzz out loud page to subscribe to this podcast, it's a really short
link.
It's cnet.com slash i slash pod slash cnet underscore buzz dot XML.
Oh, well, you've got a better one then.
Let's use yours.
Okay.
So we're going to punch that in.
Now what we've done is we have made basically this is like a, the, the Molly wood feed is what
we're making here.
Now, if we wanted to subscribe to some other stuff, we can just keep on adding URLs.
All that's going to do is basically tells Yahoo Pipes to mash all of these different feeds
into one big feed.
So the advantage is then in our RSS reader or program or whatever it is that we use to
access these, we can just grab all of these things and have them piped into one single feed.
So that's the, like one of the simplest things that you could use Yahoo Pipes for.
So again, when we're done, all we need to do is drag the ball from the bottom of the fetch
feed object to the top, sorry, to the ball on the top of the pipe output object.
And when we're finished, we click on the save button in the upper right corner of the screen.
And it asks for a pipe name.
So I'm going to call this Molly wood feeds.
All right, which is not the same as Molly woods feed.
That's different.
I'm going to save that.
It says saving.
And when it's finished, we can go back to my pipes boom, boom, boom.
And oh, I'm sorry, we should go to run pipe.
When we're finished, we can go to run pipe.
And what happens is it runs the pipe.
And it gives you the pipes web address.
So in this case, it's, you know, it's a long convoluted thing.
It's, you know, pipes dot Yahoo dot com slash pipe slash pipe dot info slash blah, blah, blah, blah, blah, blah,
mangled stuff.
So what you could do is you copy and paste this URL into your own RSS reader.
And now you've got Molly woods blog plus buzz out loud in one single feed.
And you could do this with all of Molly woods stuff if you wanted to.
So that's a simple example of how to aggregate two RSS feeds into one.
Okay, now here's something that I found.
That's actually pretty good.
Now I tried to what I was doing this.
I was trying to take your blog and the fresh Ubuntu podcasts blog.
And I was trying to do something very similar.
But in the output, it was only showing me one at a time when I was testing it here in the editor.
Okay.
And so as I was doing some searching, I think, yeah, I don't remember which one of these fetch feed ones I was using.
Site feed.
But anyway, it told me that I wanted to use a, is it an operator?
It told me that I wanted to use a loop to grab stuff from multiple.
And then I got really confused.
So some of the examples on this site were a little confusing to me the way they were doing things.
And specifically grabbing multiple RSS feeds was one of them.
This works perfectly.
I'm not sure why they led me through the thing that I went through.
Yeah, I don't know about a loop.
Another way to do it, if you have problems with it, one thing you can do is use the union operator.
If on the left side, again, under operators.
If you expand that out towards the bottom, there's one called union.
And that's actually another way that may work better.
I'm not exactly sure what the difference would be to just putting one on the other.
But that may do a better job of merging them.
Okay, so yeah, go ahead.
I was just going to say one thing about all these little modules is when you drag them over here.
And here's how I kind of got led down the wrong trail initially.
There's a question mark there.
And if you click on the question mark down in the lower left hand side of your browser window underneath,
the sources pane, you're going to see another little pane that explains the module that you clicked to the help for.
So here it's telling me union merges up to five sources together.
And then they have examples using and learn more about this module.
Now I think it was the fetch feed that I got confused on because I just clicked on the fetch feed help.
And if you click on learn more about this module, it takes you to a page where it says feed auto discovery.
Let's use one or more website URLs in the module.
It examines those pages for information.
Oh, that's what it was.
It was the feed auto discovery module I was having problems with.
And then it says if more than one feed is found, the multiple items are returned because more than one feed can be returned.
The output from this module is often fed into a loop module with a fetch feed sub module.
That's where I started getting confused.
And I did the wrong thing because in your case, all I needed to do is use the fetch feed, put in both URLs.
And I would have gotten what I wanted without having to the loop.
But I was trying to do the auto discovery thing.
Okay.
So it can't be a little bit complex.
It can. It can definitely get a little complex.
But what's also interesting is that you can use these.
Now I haven't done this for a while.
I've got to dig into my pipes.
Excuse me.
But I had a pipe that I created some time last summer.
And what I did is I made an aggregator for, I think it was digs technology feed and also tech meme.
And I think something like a tech crunch or something.
And basically what I did is I filtered them out so that if the source for, or like feed one,
actually came from feed two that it would not publish it.
So the idea was that if, for instance, a tech meme article got dug.
Or for instance, let's say a, a scobilizer article showed up on tech meme.
And I already subscribed to scobilizer that I would not see the tech meme article.
And so basically, you know, the idea is it keep out duplicates because there's nothing more annoying than, you know, scrolling through, you know,
a couple hundred RS tests entries and having to like, you know, skip pass the same article again and again and again.
Or reading the same article again and again and again.
Yeah, and here's one thing that I noticed looking at ours example, which works really well.
But if you go run the thing, I'm sure you want to navigate away from this pages because I made some changes that I didn't save.
But if you run this, for me, it comes up with all the buzz out loud stuff on top.
And you have to scroll 30 feet to finally get to some mollywood blog stuff.
I think that that's, that would start out that way.
But over time, you know, as, because we added one first.
But I think over time, it's going to take them in the order that they appear.
Right. So she does a blog post that'll show up.
Then if she does a podcast that'll show up.
And then if she does three blog posts, those will show up. Yeah.
So yeah, it just went out and grabbed each feed right now saying, I don't know, I have nothing.
So it went out and grabbed everything you could find off those feeds for the moment.
So yeah, that's what I did a whole whole feed at a time.
Right.
So let me give a quick example then on how I did that that merger so that I wouldn't be, you know,
seeing too many duplicates.
The first thing I did is I went out and I grabbed the RSS feed for dig technology,
their technology subset.
And if you go to dig.com, you can probably find that pretty easily.
So go to dig, I click on technology.
And then in the, in my Firefox browser bar, I see the RSS link right there.
dig.com slash RSS slash container technology.xml.
Perfect.
And I'll go back here and I'm creating this as we go.
So I'm going to paste that into a fetch feed control or module.
Okay.
Exactly. There we go.
Yep.
So then where do we want to go next?
How about, well, let's go to, you know, tech meme.
So T-E-C-H-M-E-M-E.com.
And again, right at the top, there's an RSS link right there.
Is there?
Yep.
Oh, sorry, it's in the, in the browser bar for me for my Firefox.
Oh, yeah, I see it.
Okay.
Yep.
So now what I'm going to do is I'm going to go back up to the operators.
And I'm going to grab a filter.
And I'm going to drag that under my dig feed.
And then what I'm going to do is add a new rule.
So under the filter action, I'm going to choose block.
And I'm going to block any, sorry, items that match any of the following.
And I'm going to click the plus sign under rules to add a new rule.
And the rule I'm going to add is that if item.link,
which would be the items URL, contains.
And I'm going to punch in HTTP colon slash slash www.techmeam.com.
Because techmeam.com is my other feed.
So right now, I've got my fetch feed object.
And then under that, I have a filter under dig, which says basically,
don't allow any techmeam articles.
Okay.
I think I'm wearing this wrong.
I need to wire that from the one URL just from the dig URL to this filter.
Right.
Ah, okay.
Got you.
Otherwise, that would be doing something really wrong.
How do you do that?
Basically, I have the, the starting on the left side, I have two columns.
I have a fetch feed on the upper left, and then a fetch feed on the upper right.
And I have a filter under each one.
Okay, okay.
I'm sorry.
I have one fetch feed grabbing both those URLs.
Let me.
Ah, no, no.
We need two feeds.
Okay.
Because we're going to run them into two separate filters.
I got you.
Okay.
So let me do Command-A, Command-X.
We really sound like we spend a lot of time propping for this, don't we?
Yeah.
Well, that's okay.
Okay, okay.
So now you're going to have two separate filter.
One filter for each of those.
I got you.
Exactly.
The new filter under TechMeme, what we're going to do is make another block rule.
And we're basically going to block anything that comes from dig.com.
So under the item link there, we're just going to block dig.com.
And I can probably just type dig.com.
I don't need all the other stuff.
Exactly.
Okay.
Yeah.
Okay, cool.
So I've got the fetch feed for TechMeme wired to the filter that blocks anything from dig.com in item.link.
And I've got the fetch feed for dig.com container technology to a filter that says block.
Any items that match any of the following item.link contains TechMeme.com.
Okay.
Perfect.
Okay, good.
All right.
So, you know, you could do a bunch of things with this.
Like, you know, you could say if you read Scobilizer, and you know, Robert Scobil's posts have a tendency to show up on TechMeme,
you could also just add a new rule and say if the item.link contains Scobilizer, then block that as well.
Okay. Now, I think in order to get these to the output, I need that union control.
That is correct.
So underneath both of those two filters, you're going to need a union operator.
And what you're going to do is drag the pipe, you know, from the filter on the left and the drag pipe from the filter on the right down into the union.
Right.
And then you're going to drag the output of the union to your pipe output.
Okay, cool.
Now, another thing you can do is a sort operator.
And this actually probably would have cleaned up the mollywood problem when it did all of the buzz out louds and then all of the mollywood stuff.
We can drag a sort operator.
So if you go back over to operators on the left column, sorry, and drag a sort in between the union and the pipe output.
If you choose to sort by item.pubdate, the publication date.
And then you can choose to sort them in ascending or descending order, if whether you choose to see newest first or oldest first.
And then drag that to the pipe output.
Now, one thing I want to mention, when Peter's talking about, you know, item.pubdate, item.link, all these things that are showing up in these modules, you wire.
You know, whatever you wire the two modules together first and it'll update with.
So when I took the union and I wired it to the sort, then I could see the different fields that I could use as my criteria.
It updated it with whatever's coming in.
Here's all the things that are coming in, which one do you want to use as your operator?
Exactly.
So it's showing you all of the XML elements of those RSS feeds.
Right.
Because as we know, RSS is just, you know, it's just an XML with a specific format to it.
Yes.
So that's how you could make yourself a Yahoo pipes field or a feed, sorry, a pipe, and you know, reduce some of the clutter.
So once you know that this is working to your satisfaction, what you could then do is, you know, you could go ahead and you can basically unsubscribe from dig.com
technology feed and unsubscribe from tech memes feed.
And instead subscribe to this podcast, sorry, this podcast, instead subscribe to this pipe.
And that will you get them both without the duplicates.
You have another example you want to run over or want to try to figure something out?
No, I don't think so.
Basically all I did was I came in here, I started messing with it, and I took your feed and the Fresh Ubuntu podcast.
And the RSS auto discovery thing, it was the loops where I really started getting messed up on.
There were a couple of examples where they did some looping through RSS auto discovery or they were looping through something.
That was one thing I couldn't find specific examples for the case that I was trying to do, but I was trying to do the auto discovery.
And then the auto discovery is nice because if you ever use Google Reader, it works that way.
You just put in a URL and it figures out what RSS feeds are available and then it comes up with one, which is really nice.
So I would imagine if I could figure out the auto discovery thing and maybe put it through the loop and figure out how to get the feed that I want.
If there's multiple feeds, that would be a really cool feature that way you don't have to go out.
You can just plug in a website, you don't have to necessarily go out.
Now, the nice thing where that would come in handy is you have user inputs and I'm guessing that you could use the user inputs to prompt people.
So somebody could come here and I could prompt them to, yeah, you could say you are ill input.
And they could put in a URL, maybe they don't know the exact feed on dig.com that they want or whatever, but they could plug in dig.com and it would go out and it would find those using the feed auto discovery.
And then maybe there would be some way to let them choose something or something.
I don't know.
Or something.
Well, one of the reasons that we don't have everything totally memorized here and stuff is because there are just so many options.
I mean, you can go, like I said, through all sorts of different sources, there are different user inputs like you said.
So you can ask a person to put something in and then you could use those in your operators.
You've got counts, filters, loops, you've got regular expression support, you can sort things, you can split feeds.
A lot of your standard text manipulation program operators that you would normally find in a scripting language like Pearl or Python or something like that, you can do here.
And that's pretty slick.
I think it's got a lot of power based on a very, you know, it's actually fairly intuitive once you start playing with it.
The best thing to do is start just fiddling around with, make some pipes and throw them into your RSS reader, whether it's Google Reader or whatnot, and just see what the output is.
And then if you don't get what you expect, go back and tweak it a little bit and see what happens.
And yeah, and I was going to say that's actually one of the more powerful things about this is you're sitting here looking at this interface, you're making these things.
But what you may not realize for the casual observers, that's exactly what this is.
You're creating a new RSS feed that you can then use in whatever reader you happen to use. For me, it's Google Reader.
But, you know, whatever. And it is very powerful. I like pretty much everything about this.
I even like the name pipes, which is kind of a Unix thing where you're piping one thing to another, taking the output of one thing and using it as the input something else.
And that's exactly what they're doing here. So I don't know, I'm impressed.
You know, Yahoo really hasn't come up with anything cool in a while.
And of course, there's the whole Microsoft maybe buying Yahoo thing and all this nonsense that's been going on with Yahoo.
But when I saw this, I thought, now this is slicker than anything I've seen from Google in a while personally.
Yeah, it's very well run and it feels polished. You know, it feels finished.
This doesn't feel like even though it says Yahoo pipes beta, you know, it doesn't feel like a beta application in any way.
It feels pretty good. And I've been running it like I said since I think July or so.
And as far as I know, I've never really had a problem.
Yeah, I haven't been messing with this as long as you have, but certainly when I was playing around with it, I didn't come across any bugs.
Anything I tried to do worked in the manner that it was intended to as far as I could tell.
If there were any problems, it was me trying to understand how does this work and what I do with this knot.
Operator error. Yeah, it was operator or wealth.
Maybe not just error, but maybe just not yet rocking exactly how some of these things work.
Like I said, the loop thing, I would need to work with a little bit to figure out exactly how that could be used in such a way that actually.
Another thing you could do, for example, is you could use this as a social networking status aggregator.
For example, I've blogged in the past and gone over on the podcast how I have all of my, you know, Facebook, JaiKu, Twitter, you know, all this kind of stuff merging into one place.
Well, if you wanted to simplify things, you could, for instance, have all of your Facebook friends, status updates, all of your Twitter updates, your JaiKu updates, etc.
You could subscribe to all of those right here and then make a single pipe.
And then that way, whenever you go to like move to a new RSS reader or something, you can just have one URL that you use.
And, you know, you could further shorten it by making a tiny URL or use some other URL redirecter to point to your pipe.
So that way you could make yourself a memorable, short, easy to use URL for, you know, like something that collects all of your stuff.
Now, obviously you could just subscribe to multiple feeds within your RSS reader, you know, which would accomplish pretty much the same thing.
But this gives you the ability to filter them and things like that.
So you could say, you know, don't publish the same thing twice if, you know, or whatnot, you can filter them out like we did in the last example.
Peter, forget Flash Gordon, you just saved the universe.
I mean, you know, one of the banes of Web 2.0 existence, first of all, I could rant for weeks about Web 2.0 and the whole social networking event.
But that's a separate podcast.
Okay, we'll do that separately sometime.
But, yeah, one of the banes of that existence is, you know, a lot of people like myself have tried Twitter, we've tried some of the others I can't even think of right now.
But, you know, I've got accounts on several of these things and the only one I use right now is Twitter.
There was just too much.
And, you know, this is one of the things where, you know, Apple does well that sometimes other people don't.
They understand that simple sometimes really is better.
And that's why I use Twitter.
Simple is better.
Yeah, Twitter has its problems.
And, you know, I've made jokes about Twitter being an example of how Rails can't scale and, you know, et cetera, et cetera.
But, some Rails people right now are pulling their hair out and exposing their buttocks to me.
But, you know, hey, so, but the fact of the matter is it's very simple.
You don't have to learn a lot of features. You just use it and you're done.
And, I don't use any of those others because of that.
But, yeah, this would be one way where you could make use of some of those others.
And then easily only have one thing to search.
Now, of course, when it comes time to update things, you'd have to go to individual places or use an application that can connect to them.
But, as far as just following stuff, this would be perfect for that kind of thing.
Yeah, it's an app, you know, you could consider this an alternative to the flock browser.
If you're a little bit of a do-it-yourselfer.
See, I like to consider myself.
I'm somewhat of a do-it-yourselfer.
But, you know, I don't know.
Given the amount of time I have available, it's probably too much work for me to sit down and write a purl script to parse all of these RSS feeds.
I know I can do it.
I've done it in the past.
But, it's a hell of a lot easier for me to just, you know, fire up Yahoo Pipes, drag and drop a few objects around.
Boom. Done.
Works.
Unless I face it, it's a lot more fun.
It is.
It is.
I mean, you know, if you really, if you're a decent programmer, you could do a, you know, some kind of widget interface and write your own.
But, why?
They've done it for you.
Well, see, here's the thing.
When you're at a party and you're the geek, and there's some semi-geeks roaming around, or people who really don't rock it, but they think they like geeks.
And you whip out your laptop and you're doing this.
Anybody can sit there and type a bunch of lines of code.
And their eyes are going to glaze over and they're going to go stuff their head in the Heineken barrel.
But, if you start doing this,
Hey, this thing might actually get.
That's right.
They're going to say, ooh, shiny objects, they are kind of shiny.
Have you noticed that?
A little bit of a glossy finish.
I think they're pretty cool.
Well, that's about all I have on Yahoo Pipes.
Unless you think you have anything else.
I think we can wrap this up and call it a show.
I think we can wrap it up and call it a show.
And Peter, I don't know what method of making links available are for this podcast.
We can do a post them in.
It's going to show up like a standard blog post.
We can put all sorts of links right into the show and you're going to do a screencast on this
and we can put this up on YouTube too, right?
Yeah, we can put it up on YouTube and I'll probably also post it in my blog.
Awesome.
And then you can post it in your own blog as well.
We can post it all over the place and then we can make a pipe to aggregate it.
We can basically make a pipe to have all the feeds for this episode if we wanted to.
It's going to be recursive.
It's going to be the greatest example of recursiveness that Peter and I can come up with,
which is not very great, but hey.
Well, you know, we're good minds.
I don't know if we're great minds.
It's the virtual equivalent of for a good time call.
Awesome.
Great.
Well, until the next episode of Hacker Public Radio.
I'm Peter DeColitis from the Fresh Ubuntu podcast.
You can track me at freshubuntu.com or on my own blog at pn72.com.
Scott, where can people follow you?
I'm Scott from nowhere.
Nothing, but I do have a blog.
I blog Scott.wordpress.com.
You can go check out and it's mainly Mac related, but check it out.
Yeah, but every now and then you, you know, you rage against the machine and, you know, whatever.
And so they're pretty funny.
And then it refreshes me and then I have to stop raging for a while.
Well, you stop raging and then monolith 2000 rears it's ugly had again, but, you know,
that's just the way of things.
It's the way of life.
Alright, thanks for listening, everybody.
And if you've made it this far, you might want to count your eyes out.
Thank you for listening to Hacker Public Radio.
HBR is sponsored by Carol.net.
She'll head on over to C-A-R-O-D-E-T for all of her dreams.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.
Oh.