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>
This commit is contained in:
461
hpr_transcripts/hpr3376.txt
Normal file
461
hpr_transcripts/hpr3376.txt
Normal file
@@ -0,0 +1,461 @@
|
||||
Episode: 3376
|
||||
Title: HPR3376: Making books with Linux - part 2
|
||||
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr3376/hpr3376.mp3
|
||||
Transcribed: 2025-10-24 22:23:15
|
||||
|
||||
---
|
||||
|
||||
This is Hacker Public Radio Episode 3376 for Monday, 12th of July 2021.
|
||||
Tid's show is entitled, Making Books with Linux, Part 2.
|
||||
It is hosted by Dave Morris and is about 49 minutes long and carries an explicit flag.
|
||||
The summary is, Part 2 of a discussion about how 2HPR hosts create books.
|
||||
This episode of HPR is brought to you by an honesthost.com.
|
||||
Get 15% discount on all shared hosting with the offer code HPR15.
|
||||
That's HPR15.
|
||||
Better web hosting that's honest and fair at An Honesthost.com.
|
||||
Hello and welcome to another episode of Hacker Public Radio.
|
||||
I am Andrew, also known as McNalloo, and I'm joined today by Dave.
|
||||
How are you doing?
|
||||
I am great, thanks.
|
||||
It's a lovely day in Edinburgh and I believe it's a very nice day in Glasgow as well.
|
||||
Yes, I'm sitting here in the dark looking out at the bright sunshine.
|
||||
I should also mention that if you listen carefully we will have other guests.
|
||||
Mainly a great tip to which is outside.
|
||||
If you listen carefully you might hear him chopping your wee.
|
||||
The bird sound is not so bad here because I've shut the door.
|
||||
But if I were to leave the door open, the back door open,
|
||||
you would hear lots of sparrows and starlings and everything.
|
||||
I think it's good.
|
||||
I like the ambient qualities of the background noises and stuff,
|
||||
but sometimes it's not appropriate.
|
||||
No, not I think it's great pleasant today and it's not fake.
|
||||
It is real birds or what you might hear in the background,
|
||||
but knowing them they probably all shut up now we started recording.
|
||||
So what we're going to talk about today is, well this is sort of loosely connected to a show
|
||||
that we recorded a week ago.
|
||||
I don't know how far apart they'll be separated when they're released.
|
||||
But last time when Dave and I talked he was quizzing me and I was talking about some document
|
||||
creation scripts and methods that I had used and so we're now switching roles.
|
||||
You're going to hear less from me and more from Dave on some interesting ideas and scripts
|
||||
that he has been developing for, well I guess cataloging,
|
||||
and HPR making notes and HPR episodes would that be a fair?
|
||||
Yes, yes, it's my, the principle behind this is that I have developed a mindset that says,
|
||||
I'm never a good at remembering things and things are done in order and stuff like that so
|
||||
I like to write either recipes, bit of paper that says, do this, do this, do this, in this order
|
||||
or I write, write bits of code to do it and that's what I've done in the HPR case,
|
||||
you know, so I don't suddenly forget, oh no, I've got to put tags on that show.
|
||||
Oh no, it's terrible and that sort of thing, I'll try and make them up on the fly and stuff.
|
||||
So I have scripts which do a lot of, a lot of what I need to do to make an HPR show,
|
||||
which I also use when a similar, I've got a similar set that I use when people send
|
||||
shows into HPR and particularly when people send in shows with pictures, which I encourage,
|
||||
pictures and, you know, bits of code or whatever that is this and again, much to be encouraged,
|
||||
but it takes a bit of management when it comes in as a text file with possibly not even
|
||||
intending it to be marked down. So it needs to be turned into marked down and the pictures
|
||||
all stitched into it or whatever and I've written scripts to do that as well. So as you do, you know?
|
||||
Yes indeed. In fact, I've, you know, sought your advice and how best to do that as a contributor
|
||||
as well, I have a call and yes, I can't remember whether I got it right or not. You're a
|
||||
two plate to see, I think. I try to minimize your luck. We haven't yet made a definitive
|
||||
document of any sort. I mean, the process of putting one together that says, if you're sending in
|
||||
what I call assets with you, just because I wanted to work. And that seemed like an appropriate
|
||||
one. With your show, then could you please do it in this sort of way and then my scripts and
|
||||
stuff can easily sorted out and then I can do a bit of automation of sticking the
|
||||
sticking the links and so forth into the into the show. And actually, before we go into the details
|
||||
your scripts, is it worth maybe just briefly describing the format of show notes with images
|
||||
that you would perform? And how would you if some show notes arrived and they're all neatly done
|
||||
mark down and somebody has included an image in the show notes and uploaded an image when they
|
||||
with their show. What structure would you like to see in the mark down? Ideally, you go, oh good,
|
||||
this is no work for me. Well, it's fairly simple actually. If all those things that you just said
|
||||
are true, because mark down has the capability of referencing an image, it can be really
|
||||
relatively straightforward to simply, you just need to know the URL of where your picture will go.
|
||||
And we do, it's pretty obscure, but it is in the documentation. What we do is we have a
|
||||
directory where all the shows go, all the audio goes, the actual notes are in a database.
|
||||
So if we have assets, if you don't mind me using that term, then we create a sub directory,
|
||||
which is named HPR1234, whatever your show number is. And in it, we put the various extras
|
||||
and stuff. Ideally, we want you to put an index in that directory because the way that the
|
||||
web server set up on the HPR machine that server is, but if you have a directory and you don't want
|
||||
people to browse it, you need to put an index.hml file in there. So yeah, it's not that simple, it's
|
||||
in our website, but given that you know that your picture is going to be, you know, the HPR
|
||||
site slash blah, blah, blah slash HPR, so and so, and so, then the name of your picture.jpeg
|
||||
or .png or whatever it is, then you could put that all together and I make it. So however,
|
||||
most people have don't send in that level of markdown. There are some people who do brilliant job,
|
||||
some people who send in what we originally asked for, which is HTML, but you know, get again,
|
||||
the links right in that can be can be quite daunting. So what people tend to do, and this is
|
||||
something that sort of evolved really, is that they say they write their text, not in markdown,
|
||||
we're just in plain text, but plain text in markdown, the base level are pretty, pretty similar,
|
||||
aren't they? The way people lay out text, you know, with a you might put a header in as a separate
|
||||
line and you might put a make a list by putting a hyphen at the start of each line and so forth.
|
||||
So if they send it in with some sort of meta thing in it that says picture one here please,
|
||||
or something like that, Dave, could I picture one in this place or something, something like that?
|
||||
What always be me, but you know what I'm saying, that something that makes it plain that here
|
||||
is where picture one is to go, then I can actually turn that into a thing which I can turn into
|
||||
to markdown with the links in and I can compute where they're going to be and get the order from
|
||||
your order and so forth. So that's that's where we are at the moment, does that make sense?
|
||||
Yes, yes, that does, that does make sense, yeah, that's fine. So anyway, so that was a bit of a
|
||||
inauguration I threw in there. So what is it specifically that you'd like to talk about
|
||||
with the work that you've been doing? Well, it's two things really, there's the whole infrastructure of
|
||||
how to how I found it useful to put together notes for HBR and there's also what I'm trying to
|
||||
do in terms of a book, call it book is a bit of high-faluting really, it's a consolidated
|
||||
number of of show notes in a more readable form. That's why we started from really when we
|
||||
were talking about this, but we've sort of gone into the area of HBR show notes a little bit,
|
||||
which is I think quite relevant and interesting hopefully anyway. So if I mention what I do with
|
||||
show notes in a general sense, I have found that it makes life a lot easier for me if I
|
||||
interspers my notes with a sort of another markup thing. For years and years and years I've been
|
||||
using a pearl tool and there's a equivalent called template toolkit. It's what do you call
|
||||
these things? It's a templating system I suppose what you call it. They exist for all sorts of
|
||||
languages and independently of languages I think as well. The principle of it is that you put
|
||||
a tagged item into your text, which is seen by something that pre-processes it. So the pre-processing
|
||||
would go through the file and say, oh look here's one of my tags, what am I to do? And in some cases
|
||||
it's merely a variable being created or could be code being created. There's all manner of
|
||||
capabilities that exist in there. What I often do is to make these template variables to contain
|
||||
long convoluted URLs and I put them all at the top of the document and then when I come to make
|
||||
a link to that URL or this in marked area tends to be two cases where you want to make links. One is
|
||||
if you are just making a list of links to the things. The URL part is where you put your URL but
|
||||
there's also a thing where you might want to put things which are multiple references I think they
|
||||
are where you say you know in document ABC and then you put in square brackets a number after it
|
||||
this is in marked down and then what happens is the word gets highlighted and a link is made to
|
||||
an item that you put at the end of your marked down document tagged with that number or anything
|
||||
actually but in there you have to have the URL so because I know I would screw up the
|
||||
writing the URL at first time and then the second time and so I make template variables to hold it
|
||||
and then I can just put the template language to allow the item to be inserted.
|
||||
Yes that makes sense. I've used something, I haven't used it but there's something similar going on
|
||||
behind Pelican which is written in Python. I forget what it's called now but yes and I know
|
||||
that the Ruby for equivalent of Pelican uses something similar. What's the one that you're using?
|
||||
Did you see that? Maybe I missed the name. It's called template toolkit. It's usually referred
|
||||
to as TT2 and there's also a Python version of it now that it came from Perl originally and it's
|
||||
was originally used to enable you to make generic HTML so you'd write a piece of HTML that said
|
||||
put the footer here, put the header here, the footer here, put the body here and then those
|
||||
things would be references to other files which just got pasted in at the time that the process
|
||||
are processed. It would work for static pages as well but it could be used for dynamic pages as
|
||||
you sort of fit. That's where that sort of stuff came from and loads of other people that are
|
||||
there. It's in PHP, it's in all sorts of languages, that stuff, style of idea.
|
||||
Yes, I think it's either called pigments or ginger or ginger to the Python one.
|
||||
Yeah, Python 10 one. I've never used it but I just noticed it as a dependency when I was
|
||||
comparing pelican ones. I used to use it at work quite a lot because we serviced the mailing list
|
||||
feature we run mailman eventually. So we offered a mailing list feature that
|
||||
there were mailing list that sent messages to all students and all staff and that sort of thing
|
||||
but there were also the capability of people who remember the staff at the university to request
|
||||
a mailing list to go to their research group or whatever and we created a form that they needed
|
||||
to fill in on the web which sent a standardized request in and then I wrote things that took those
|
||||
forms and did the necessary and also sent back or the plate mail reply. Sometimes it was said,
|
||||
you know, I just made it simple so you could just say send boilerplate or something.
|
||||
You're not authorized to have a mailing list or the boilerplate which so yeah, I've done it.
|
||||
This is all done with just sort of command line scripts that you take a mail message,
|
||||
chop it up into pieces, rebuild it through the template with boilerplate stuff and so forth.
|
||||
So I found that template toolkit was fantastic for that sort of thing because you could make
|
||||
umpteen different, you just have one script and then you just told the script, use this template
|
||||
and that caused it to do one thing and this template made it do another thing. So it's
|
||||
remarkably useful for all sorts of things like that. All right, yes. I didn't realize this seems
|
||||
to be the ancestor of the things I come across and it really went quite so far back as well.
|
||||
Yeah, it's, I think I was probably playing with this in the early 2000s, that sort of timescale
|
||||
when Perville really was the language that you did all this sort of stuff in. But yeah, it's
|
||||
it's very convenient. I find myself writing scripts of a general nature these days where
|
||||
I put a template capability into it. So if I want to report out of it or something,
|
||||
then I can just say run against this template and it just throws whatever data structure it's
|
||||
got and that comes a form which might be HTML or CSV or anything you like. Depending on how you've
|
||||
written the template, the work is done in the template, but you're just throwing it a bunch of
|
||||
data. I mean, yeah, I'm sure you're well aware of how this sort of stuff works, but just in case
|
||||
people are not fully up to speed with this type of stuff. It's a it's a fun way of doing things.
|
||||
Yeah, no, it's definitely worthwhile explaining that because actually I'm not that familiar with it
|
||||
for starters. Secondly, sometimes you know, we're listening to HPR shows, some dimension,
|
||||
something as if everyone's going to understand it, but that sounds interesting. I don't understand it.
|
||||
Of course, we know that Ken would be there. Do it show, do it show.
|
||||
Yes, yes. These templating systems are quite good. The template toolkit that I know the best
|
||||
has got the ability to, loads and loads of plugins, for example, so you can, if you wish, put
|
||||
a database plugin into it. So within your template, you can do database queries and you can
|
||||
then format those queries into markdown in a document, which then gets printed in a pretty form,
|
||||
or it's pretty as you can do with markdown, which has a few limitations in that sort of area.
|
||||
But it's just really convenient to be able to do that sort of stuff. I developed my
|
||||
show note creation stuff, where I often do shows about how to do things in bash or whatever,
|
||||
and then I do some example scripts, bascripts. And what I do is to have the bascript available to
|
||||
the infrastructure that creates the notes. And I can put a reference in the template that says
|
||||
at this point, run the script or show the script, maybe as part of the text, and then run the script
|
||||
and show the output from the script. So that's a couple of template calls. There's a macro type
|
||||
facility, which will actually make external calls and that type of thing. So that has been
|
||||
amazing and useful, because if you're ever doing things where you're running a script and showing
|
||||
the output, the tendency to tweak that script, forget to put the tweak into the notes, and then put
|
||||
the output. And then you look at it and think, how on earth did that script ever produce that
|
||||
output? Well, I do, anyway. And if it was the script itself that made the output, then it's a lot
|
||||
easier. I mean, my son's doing this MSc and computer science, and they use Jupyter Notebooks.
|
||||
So Jupyter Notebooks, yeah, quite a lot, which has that principle in it, but you can put your,
|
||||
I think they have to submit their work sometimes with their program that they've written in the
|
||||
Notebook with the output, which I think the reader can just run and see what it does. So, you know,
|
||||
what I've done is very basic and comparison to the way the world has moved to do these types of
|
||||
things, but it's just a fun thing. Yes, yeah. Yeah, it's, I certainly have a pandemic introduced me
|
||||
to the Jupyter Notebook stuff. I wish the Python thing, isn't it? Yes, I believe so.
|
||||
Yes, and I was like, just check out and remembering the right thing. And I was quick and
|
||||
traced with that and the models he was building. It was all really easy for me to inspect and for
|
||||
the learn with. Yeah, yeah. I think so. I think I went to a talk given by the Edinburgh Linux,
|
||||
who's a group a couple of years ago now. Wow, times for the learners. But the guy who was managing
|
||||
the Edinburgh University, Jupyter Notebook's engine for Edinburgh and a whole bunch of other
|
||||
universities, I think, as a service was there talking about, you know, the sort of things he was
|
||||
being asked to do. So you can build notebooks for different languages and this type of thing
|
||||
is incredibly impressive indeed. Yes. So, so when a, what is your hoping to have produced
|
||||
when you get to the end of us, if you're or is it just a sort of long, ongoing task?
|
||||
The production of HBR show notes has been through a long, long development where the goal was
|
||||
simply to make something that I could use and was was free from, fairly free from, fairly resilient to
|
||||
the Draftlady, you know, running it wrongly. And so me being the Draftlady, which had more or less
|
||||
achieved actually. So I do things like I start writing some notes and I, in the majority of shows
|
||||
that I produce, I make a long set of notes, which is pages and pages sometimes and separate that
|
||||
from the notes you see when you actually bring up the show on HBR that the, you just get an overview
|
||||
in the short form of it. So I start writing the long thing and because the way I've built the
|
||||
template, it auto-generates the short stuff as it goes, you know, so there's a, as long as you type
|
||||
your overview in a pre-assigned block. Sorry, my chair is very creaky today.
|
||||
That's okay. It's better than the birds. No, no, no, prefer the birds actually.
|
||||
So long as you put the overview in the right place and or you put your links in the right place,
|
||||
then you're not with an overview and links in the short notes and you have to do anything to it.
|
||||
In fact, if I do do something to it, then I'll break it probably. So things like that I do.
|
||||
And I also determine what, what files are going to be associated with the thing and that's a sort
|
||||
of incrementing process. So that I've decided I'm going to have a script here which demonstrates
|
||||
that feature I've been talking about. And then, and it's some examples that run and produce
|
||||
output dish to prove that it does what it's going to do. So I would put those together and put
|
||||
them in a, in a place where the software can find it. Each of my shows has its own directory
|
||||
associated with it. And then I make a sort of parts list manifest whatever you like to call it,
|
||||
which just link it just has the paths to the various files. And then I've written a pre-process
|
||||
of that goes through all of this stuff and feeds the template. The template then generates
|
||||
markdown and the markdown is given to Pandock. And now comes HTML with all of this stuff
|
||||
hopefully stitched into it. So when incidentally you were saying about monitoring the development
|
||||
of the program of a text, I mean, you're using ENTR. How are they supposed to pronounce that?
|
||||
Yes, that's right. So you told me about that years ago actually. And yeah, sorry, I interrupt you do.
|
||||
Well, I was just going to say that you've recently suggested a better alternative. Because I
|
||||
would do it because you could instruct me to page refresh which you couldn't do with Chrome and
|
||||
Firefox and other browsers that I could interact with them at command line. And then I could
|
||||
cause use ENTR to trigger the page. We do need to do page refresh. So I could literally type
|
||||
in the markdown file. As soon as I saved it, ENTR would pick that up and tell me do they to
|
||||
to fire a page refresh. So I would, you know, every time I saved it, I would get an instant preview.
|
||||
But was it the fault in browser you said can do this with those together?
|
||||
Falcon doesn't need to be told. It seems to monitor. And whether it's only files, I don't know,
|
||||
because, you know, in my case, I would have created a file in my file system that contains the
|
||||
the HTML that I'm going to send to HVR. And Falcon just says, oh, it's changed, right? And then it
|
||||
just refreshes it as it changes. So it's doing something like what ENTR is doing all by itself,
|
||||
which is I don't know whether you can turn it on or off, but it's on by default with me. It's
|
||||
really good. Yeah, and Falcon, it's built with a key. And the clue being that it's a, I think,
|
||||
when we in Tuxtam would have viewed chaos. And then that's when you prompted you to mention
|
||||
Falcon, because this Falcon was included with chaos. So the key is an indication that it's part of
|
||||
key to E. Yeah, I think so. I think so. It's, I'm not sure what it derives from.
|
||||
One of the well-known browsers, I think. I think it offers, I think it offers sort of tab better
|
||||
tab management. You remember how I think Chrome and Firefox had really fancy capabilities that let
|
||||
you have lots and lots of tabs that you could go and group together and go back and fish or anger
|
||||
them. Then they took all that out, which I missed enormously, because managing tabs was a great
|
||||
thing for, as far as I was concerned, I think Falcon's got some of that in it. So, you know, it's
|
||||
relatively easy to manage the things that you're working with through Falcon, which is good.
|
||||
Yeah. Well, I'm just looking because I assumed that, I mean, the browser, I assumed that Falcon
|
||||
replaced Conqueror, which is the, the browser that KDE has not used for that long as I've used KDE,
|
||||
so KDE 3.0 and something like that. But in my new Slackware, which has KDE with Plasma 5,
|
||||
it has, I still have Conqueror, but that may be because I haven't actually installed, I haven't
|
||||
removed old packages, so, but Falcon is there. I hadn't noticed the Falcon must have appeared
|
||||
when Plasma 5 came into Slackware, and it says that it's a QT web browser, previously known as
|
||||
Copzilla QUP,zilla, or QT web engine for rendering. So, it's distinct then from both Chrome and
|
||||
Firefox, it's separate to that, man. Yes, I'd forgotten that. I'm confused because I've got so many
|
||||
browsers, I fiddle around with, yeah, yeah, yeah, and it doesn't have quite the powerful features of
|
||||
tab grouping that some do, but, you know, that's by the buyer, really. Yes, and, well, I mean,
|
||||
the fact that I've already got it installed means the future I'll be using Falcon to do this
|
||||
job because it replaces both Enter and majority, neither of which, I believe, come with Slackware, I had
|
||||
compiled myself, which wasn't both very easy, to be honest. But if I've already got Falcon to do
|
||||
the job, I might as well just use that from now on. Yeah, see how you get on with it. It might not
|
||||
contain all the browser features that you want. I'd mainly use it to point at HTML files that I'm
|
||||
developing, but it seems to be great for that. It's very responsive and it's got pretty much
|
||||
everything I want, hopefully the same with you. Yeah, or actually, now I see that I still have to use
|
||||
Enter, because the other thing Enter will do is fire the script that turns the background to HTML,
|
||||
so Falcon can't do that, but it's got something of clever hook in it. I don't know. I'll go and read
|
||||
because if it can do, yeah, you'll have it all. Yeah, yeah. I think I said last time we spoke that
|
||||
I use make to do that, so make spots that there is work to do. I run make out of them, so I do
|
||||
something like make all and it just goes and says, oh, you've updated your notes. I will just go
|
||||
and those notes as well, the usual stuff and it's got rules for doing all the pan docking and
|
||||
putting through template engines and all that sort of stuff. So yeah, yeah, so that's
|
||||
that's quite, I actually made it, I haven't quite got to the point where it uploads the show yet,
|
||||
but that would be my ultimate goal. I think it can be too, please, if I did that.
|
||||
My original bash script, which I was going to share with the world, did do that because
|
||||
it could use FTP to upload stuff, but now we've got a form. I could obviously write to the form
|
||||
with curl or something, but I have never got around to developing it because you can't really
|
||||
poke around to somebody's form to develop your automation behind the scenes without causing
|
||||
a spare amount of grief, I would have thought. Yeah, so I suppose one thing that could be done
|
||||
as, rather than using curl, the way you described it, the way to do it is create some kind of
|
||||
rudimentary API on the HPR website so people, because the community is a kind of community that
|
||||
would like, so I'm sure many, I would do it. I would like to submit my shows through an API,
|
||||
that would work for you. Yeah, it has been discussed actually. It has been discussed. I'm not
|
||||
sure how far we've got with it. I think we suffer from failing to develop in the way
|
||||
the way that you'd like, because everybody's so busy doing their own lives and doing their own
|
||||
jobs and stuff like that. It's proved to be really difficult to get a huge lot of development
|
||||
on HPR done. I tend to be hacking around on things myself, but just a fairly small level,
|
||||
not the big redesign of API level. Yeah, so I mean, it comes up to ideas as relatively easy,
|
||||
actually implementing as a team consuming. Yes, and certainly, I mean, HPR is quite a loose group,
|
||||
and more formal groups, like a lot of trustee's and company boards, not even that formal, but
|
||||
you know, people have to come together and get something done and have legal responsibilities.
|
||||
I'll always make a big fan of, if you're going to suggest something, don't just expect
|
||||
somebody else to do it, you know, suggest it with some idea of how it might be done, and
|
||||
possibly with the idea that if you think it's a really good idea and nobody else is going to do it,
|
||||
then perhaps you should do it. The downside of that is that inhibits people proposing ideas,
|
||||
if they think they have to execute with an idea they've got, but on the other side, it stops people
|
||||
coming up with great ideas, which require a finished amount of time to implement.
|
||||
Yes, yes, having worked in schemes where there's a project manager who says,
|
||||
oh, what we really need is this, and walks off thinking that that somehow has magically made
|
||||
that piece of software come to exist. Without really any other thought about resources or
|
||||
people or anything, then yeah, I think I was working in an environment that wasn't really well
|
||||
well set up for that sort of thing. Being a university, universities are not all that brilliant
|
||||
than that sort of thing. Anyway, yeah. Yeah, I've just given you to mean a website,
|
||||
has a big button on it, and you press it, and it says, create world peace, you know,
|
||||
it's easy to implement in that website. Yes, it's a little bit more difficult to get into
|
||||
doing anything. Yes, the thing that's happening behind it is something's been written to a file,
|
||||
had a world peace request on this date at this time, right? That's why I've sorted then.
|
||||
It's world peaceful, equals true. So yeah, so yeah, really my message regarding documentation
|
||||
and stuff is that I've come up with the thing that lets me make HPR show notes relatively
|
||||
easily, of the type that I tend to do, which is long and long-winded and detailed, and it's
|
||||
it handles shortened and punchy as well, but it's not the thing that I originally visited,
|
||||
which was something I could hand over to the world and say there you go, it's just it's just
|
||||
been personalized to the empty degree and it's weird, and you know, people go, what is this
|
||||
nonsense? Who would you ever do that and stuff? So yeah, it's still worth hearing it, I think,
|
||||
because even if somebody's reaction is that, you know, what I've done, I mean, this has happened
|
||||
to me before. I mean, I'm not really a software developer, as such, you're not professional,
|
||||
one am I do, obviously, right software, and I have made money from doing it over the years,
|
||||
but I don't regard myself as a professional software developer, just as somebody who
|
||||
plays cricket this Saturday isn't a professional cricketer, but there wasn't an occasion where
|
||||
I'd written this thing, and I think it was, you know, I used MediaWorkie, which is what, you know,
|
||||
Wikipedia was based on, and there was a phase where like every other website had set up with MediaWorkie
|
||||
and was doing something, and I was just, I was written PHP, I think, and there was a little hooks
|
||||
you could put into it, so I don't know these clever things with the PHP, but it quickly, you know,
|
||||
to extract numbers from a database and display them in tables and do some elementary processing,
|
||||
to make it more interactive than a usual wiki would be, what we're doing this project is not
|
||||
so important. Anyway, it quickly became a nightmare, you know, it sounded like a very good idea,
|
||||
but because I was just cobbling it together myself in my spare time sort of thing, it quickly turned
|
||||
into a nightmare to maintain, and then this guy came into the company, and the first thing he looked
|
||||
at was this, I asked him to look at it, anyway, oh my god, this is awful, how would I have to maintain
|
||||
this, and I went, actually, I don't really know how to anymore, so he immediately said, well,
|
||||
this is how you should do it and then went in and did it much better than I did, you know, so I think
|
||||
that, you know, that can happen, can't it, if you share your stuff, show somebody else, and then
|
||||
they realize, with benefit of hindsight, your work is then valuable because it can show somebody else,
|
||||
and how they think, oh well, that's what you want done, I see what you want done, I see how you do
|
||||
it, but now I'm going to go at it from my way, you know, I can be good. Yeah, yeah, no, you have a
|
||||
point there, you have a point, I spent a lot of my working life creating things to solve
|
||||
immediate problems, and often they were conkey things that worked, but were not, it was hard to
|
||||
expand and whatever, when I started working at the university, there was no automation, that
|
||||
let students get accounts on the central machines, it was a guy who sat in his office all day long,
|
||||
and students came and knocked at the door and said, can I have an account on the machine, please,
|
||||
and he said, yeah, and he'd sit there and type stuff into some bits of stuff, and that would
|
||||
come a bit of paper that said, there you go, there's your account, off you go, but we were dealing
|
||||
with, you know, thousands of people and remote people and stuff like that, so I ended up writing a
|
||||
whole, there's a name for these things, but it's an account management system that created all these
|
||||
things, but it was done to my way of doing it, you know, it was a case, oh, we need this right,
|
||||
quick, quick, quick, you've got a day to fix it, right, it's fixed, and you look back and
|
||||
eat it, oh my god, what happens if that bit of string breaks and it all falls to the floor,
|
||||
and I handed that over when I retired, I spent months explaining how this stuff worked,
|
||||
and handing this stuff over, none of which they were going to run, they were going to
|
||||
re-implement it in Oracle thingies, Oracle offers a similar product that lets you hook
|
||||
into your student database and create accounts and give people resources and roles and control
|
||||
and stuff, so you know, it's a big booming area these days, so yeah, so there was big handover
|
||||
of knowledge, not of software, it was the knowledge handover that was the useful thing,
|
||||
did you listen to everything, I said, but they did listen to 90% of it, so that was good,
|
||||
well that is good, because one thing I was, I mean I had my university education at Glasgow
|
||||
and worked there for one and all over the years, and I was quite shocked, and away when I left
|
||||
in the 90s, in the late 90s, everything was done in Linux, Unix systems, and lots of clever
|
||||
people that you get in universities, new, new about computer, especially in the physics department
|
||||
and some other departments, to including computer science, and the computing service itself,
|
||||
I came up with like homebrew solutions, and these homebrew solutions were used throughout
|
||||
different universities, certainly around the UK, some internationally, and I thought, you know,
|
||||
that really was really good, but when I came back, I didn't work for Glasgow University again,
|
||||
until maybe 10 years later, when I came back, it was all Microsoft, you know, all this
|
||||
sort of, all the stuff that they developed for themselves had gone, and the university had bought
|
||||
into some, I don't know what it was, teams or something, whatever, you know, exchange, mail servers,
|
||||
and all the rest of it, and I was really quite shocked, you know, to be honest, that, you know, and
|
||||
of course there were all complaining that they couldn't update things, and things weren't working
|
||||
quite the way they wanted it, and they couldn't change it, and the university was paying lots of
|
||||
money, so there's all the grumbles, and I think maybe I've got rose tinted spectacle, but I don't
|
||||
remember seeing that, you know, because the people that developed a lot of these systems, like you
|
||||
developed your system, were there at the university, and you could go and talk to them, you could go
|
||||
and ask them, and you know, and you ended up with something that's much more bespoke to how that
|
||||
university worked, so, and yeah, so I was a bit disappointed, but I don't really know enough
|
||||
about to see how bad or good a thing it was, but it wasn't, it wasn't a good thing, it was, it was a
|
||||
bad thing. Well, having been in a university while that process was happening, there was a,
|
||||
the way that universities were funded changed a lot over my time work in there, it used to be
|
||||
the central, central funding for certain, particularly computers, I mean, when I
|
||||
started work there in 1981, then all of the central computing facilities were paid for by
|
||||
government through a, through a body set up specifically to do that, and that I think
|
||||
was shut down in the early 90s that sort of time, I don't remember precisely, they were called
|
||||
the computer board, they had, you know, sort of a fair amount of money, we got a million pounds
|
||||
in 1987 to buy a replacement system, which was due to last but a seven years before getting more
|
||||
funding, so it must have still kept going beyond those seven years, so it wasn't sort of mid-90s,
|
||||
maybe the thing pitted out, and of course universities at that point were on their own, you know,
|
||||
use your own budget to buy your computing fees, and nobody, at least in my experience,
|
||||
who were managing these places, knew what the hell to do, you know, they were,
|
||||
the first reaction was, we'll bring in consultants, and the consultants came in, rubbing their
|
||||
hands of Glee because they had this wonderful bunch of people who knew nothing about what they
|
||||
did know a lot about in the, in the main anyway, at least at the management level, and you know,
|
||||
they bulldozed all sorts of nonsense into, into the way things were, were set up, because the
|
||||
the answer had to be that you bought stuff from the big boys, you don't, you don't go, there was,
|
||||
there was a thing, you know Simon Fips, he was, he was working for Sun, when Sun went for much more
|
||||
open source with their, with their stuff, and then Sun got bought out by Oracle, Oracle wasn't it,
|
||||
and he left around about that time, and he went to work for a company called ForgeRock. ForgeRock
|
||||
was a company that was making the sorts of student, well, account management, things like I was
|
||||
describing, so, you know, you had to have a source of who the people were from your HR system,
|
||||
or from your student record system, whatever it was, and you fed the data into the system when
|
||||
it spat out, whatever you told it to, through filters, so to make accounts and give people access
|
||||
rights and all of that sort of stuff. And we looked, there was, there was a strong recommendation,
|
||||
but we look at ForgeRock as the way to do things in the university, but the management
|
||||
would not touch it, because, you know, here's this small company making this product, whether it's
|
||||
good or bad, we don't care, but how they still going to be here next year, you know, five years time,
|
||||
Oracle, on the other hand, we know we'll be there forever and ever and ever, you never get rid of them,
|
||||
you know. So, yes, yeah, you've got your, yeah, it's like the, you know, people wanting security,
|
||||
well, being in prison is pretty secure environment, I would do it, that would do it.
|
||||
Oh, we've maybe vatured off into the subject of a feature, HPR episode there, that's actually
|
||||
quite interesting. I don't know if it's one, you know, talk about one, I certainly have my, you know,
|
||||
my contact with it too, from a different capacity to yours. Well, yes, I, um, the whole business of how
|
||||
UK universities functioned, really just from my limited experience of it. So, um, I was in a managerial
|
||||
role at that time, and I was not happy with what the way things were going, so I was quite keen
|
||||
to take the early retirement offered me in 2009 to get out, but one of the things, and his, his,
|
||||
I've never, I've always hesitated to mention this, but I'm going to mention it now,
|
||||
when you get a deal, but on universities who created this, they say, okay, we've got all these
|
||||
people, all of these an old guy, I was in my 50s at that point, so, oh, and he's only in fair
|
||||
bit, uh, right, let's offer him the offer he can't refuse to get out, right, get your pensions
|
||||
starting up early and off you go, and so I come to, to, to say this, and they really do put the
|
||||
pressure on, and, um, they say, but before you get your, uh, leaving bundle, whatever,
|
||||
your, your free stapler and stuff, um, that wasn't right, but, uh, um, then you have to sign this
|
||||
non-disclosure agreement that will prevent you from saying anything nasty about us into the
|
||||
future, so I had to sign this, and that, to me, was a strong indication that things were well
|
||||
off the rails in that organization, I was very pleased to get out of it, so, uh, so here's me going
|
||||
against this non-disclosure agreement, but, but you don't know what the university has to do, so
|
||||
that's fine. Yes, that's true. Yes, we haven't mentioned that. No, indeed not. Well, I do think
|
||||
that, because I have, not personally, but I have friends and did my, my own parents, who, uh,
|
||||
some older than you actually went through something very similar, and a lot of the things that you
|
||||
described are familiar stories, uh, that they told me, and so, uh, yeah, so I may, that may be an
|
||||
interesting thing. Well, yeah, it would be, it would be an interesting thing to, to talk about,
|
||||
and the whole, the whole subject of, if you have a, a number of employees,
|
||||
the, which, a very large proportion are, very skilled, highly motivated. What's your best approach
|
||||
as a manager to keeping them doing what they do? Well, do you tell them that they're all
|
||||
bunch of idiots, and not to be trusted, and you're going to build this infrastructure that says,
|
||||
okay, every week you come and report what you did, and we, we score it, and then if you get a low
|
||||
score, then you're very, very naughty, and you have to do much better than following week.
|
||||
You build that sort of a structure for that sort of group of people. Then, do you get a good result?
|
||||
This is, this is a very interesting question. I'm sure there are many people who farm or
|
||||
skilled in this subject, and I am just being a victim of it, but you know, it's a, it's a,
|
||||
an interest, and it happens all over the place. I mean, the demotivation of skilled and
|
||||
trust, potentially trustworthy people by failing to trust them and treating them like, you know,
|
||||
cogs in a machine is well known to be a destructive force in the world of work these days.
|
||||
Indeed, yes, and I mean, the way I viewed it as, that could have practiced that you just describe,
|
||||
perhaps, like, target-driven culture of management, it was imported from the commercial role,
|
||||
or from what academics like to call industry, or the academic school. Yeah.
|
||||
Everything that's not actually made industry. So commercial companies tried this, and it failed,
|
||||
and weirdly, the consultants who are peddling it went into universities, I guess, because,
|
||||
and sold it to them too, as you described. But anyway, I am going to have to go.
|
||||
Yeah, yeah, yeah. So, but I do think I'd like to talk more about that in some future episodes.
|
||||
Yes, yes. Well, it would be an interesting subject. I guess how there would be a few people
|
||||
listening who might be, might be interested, might have their own experiences to share as well.
|
||||
As regards the making of books and stuff like that, I think, I don't know, is there any more mileage
|
||||
in this subject? We've covered, in general, quite a lot of stuff here, so we could just leave it
|
||||
at that point. I don't know if we want to get into any more detail, do we? No, no, I think I've
|
||||
said something. I said all that I would see in the last episode, and I was enjoying hearing what
|
||||
you described too. So, yeah, no, I think, for the thing being that said, but you know, I might go
|
||||
off and get some ideas to try and, you know, those templates are not something I consider using
|
||||
myself, but I think maybe I might. Well, it would be interesting maybe to revisit this subject
|
||||
months down the road, just to say, you know, we've both taken a different look at the problems
|
||||
that we were kicking around and come up with some different approaches, so let's have a little
|
||||
chat about those, that might be some mileage in that. Yes, yes, definitely. So, I guess all
|
||||
that really remained, unless it's any of the else you would see Davis just to say goodbye, and thanks
|
||||
to everyone in HPR for listening. Yep, that's me. I've finished 12 goodbye to everybody, and
|
||||
thanks Andrew. It's been been fun having these chats. You've been listening to Hacker Public
|
||||
Radio at HackerPublicRadio.org. We are a community podcast network that releases shows every
|
||||
weekday Monday through Friday. Today's show, like all our shows, was contributed by an HPR
|
||||
listener like yourself. If you ever thought of recording a podcast, then click on our contributing
|
||||
to find out how easy it really is. Hacker Public Radio was founded by the digital dog pound and
|
||||
the infonomicon computer club, and it's part of the binary revolution at binrev.com. If you have
|
||||
comments on today's show, please email the host directly, leave a comment on the website or
|
||||
record a follow-up episode yourself. Unless otherwise status, today's show is released on the
|
||||
creative comments, attribution, share a live, 3.0 license.
|
||||
Reference in New Issue
Block a user