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:
243
hpr_transcripts/hpr2609.txt
Normal file
243
hpr_transcripts/hpr2609.txt
Normal file
@@ -0,0 +1,243 @@
|
||||
Episode: 2609
|
||||
Title: HPR2609: SparkleShare
|
||||
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr2609/hpr2609.mp3
|
||||
Transcribed: 2025-10-19 06:31:11
|
||||
|
||||
---
|
||||
|
||||
This is HPR Episode 2600 and I'm titled Partial Share and in part of the series Introduction to Git.
|
||||
It is hosted by Klaatu and in about 24 minutes long and Karima Clean Flag.
|
||||
The summary is Klaatu Demonstrates Partial Share.
|
||||
This episode of HPR is brought to you by archive.org.
|
||||
Support universal access to all knowledge by heading over to archive.org forward slash donate.
|
||||
Hi everyone this is Klaatu you're listening to Hacker Public Radio.
|
||||
Back in episode 2542 listener and host Klaake told us how he set up a website with his father
|
||||
using something called Sparkle Share and then I later learned from the community news episode
|
||||
that Ken and David so valiantly do every month sometimes on their own sometimes with an additional
|
||||
person but I always mean to be on there and then I'm never on there and I feel guilty.
|
||||
But anyway on that show they said what Sparkle Share and I thought oh my gosh people don't
|
||||
know what Sparkle Share is that's that is a travesty because Sparkle Share is cool.
|
||||
I'm not going to say it's amazing because it's not it's one of those things that you really
|
||||
can't yeah I can't I can't see using for every thing and and I guess arguably one could even say
|
||||
I wouldn't use it for anything because well I don't however that's not to say that I haven't
|
||||
used it before I've used it before for I guess what its main selling point is it's a drop box like
|
||||
a thing that uses get on the back end and and probably automatically you're thinking that sounds
|
||||
like a bad idea because on one hand it's a great idea things get sunk over over this magical
|
||||
synchronized folder but on the other hand you what if you want to sink a 33 gigabyte file
|
||||
surely you wouldn't want to do that through get and yes that is true you would not want to do
|
||||
that through get so it is both a good and a bad idea for certain use cases such as claques
|
||||
father where where it's just building a website that's meant to be viewed online so so it's
|
||||
it's it's it's reasonable to assume that the files are well well small enough to be transferred
|
||||
over TCP right I mean it's that's the idea so for some things it is great it's a nice little
|
||||
file sync directory that you can have like drop box or next cloud on your desktop that you know
|
||||
you put a file into that directory and it gets synced up to a server somewhere so that it is now
|
||||
automatically backed up and you just have to use your own sort of common sense about what you would
|
||||
want to put into that directory you would not want to put your 33 gigabyte 3d model into with
|
||||
all the textures into into that directory that's just not what you would want to do but but if you
|
||||
know that you got some code stuff and you got some dots files maybe you've got some a book that
|
||||
you're writing on or some some web graphics little things like that go for it and and once it gets
|
||||
sunk to that server then on your other computer at home or at work or or in the lounge instead of
|
||||
at your bedroom then then that folder in return also gets gets a copy of that file so it's it's useful
|
||||
it's a funky little one because it's useful in some ways and then use less in others you know it's
|
||||
very useful for what it does but then it's got that weird limitation of like you have to use
|
||||
common sense here this this is get so don't abuse it which seems kind of weird but at the same time
|
||||
if you know what your use case is it may be perfect and in fact it was perfect for me at an old job
|
||||
I instituted a sparkle share because there was no sort of upper management approved file share
|
||||
system and some teams needed to work together and that was just the smartest way to let people who
|
||||
were in different departments so not necessarily familiar with get we could still enable them to
|
||||
collaborate and share files because get we had it was just we needed really just a user friendly
|
||||
front end that doesn't bother you so much about commits and adding and staging and stuff like that
|
||||
so that's what sparkle share is it's a neat project if nothing else if you go to sparkle share.org
|
||||
it gives you a rundown of what it is pretty much what I just told you it tells you what it's good for
|
||||
frequently changing project files like text office documents and images tracking and syncing files
|
||||
edited by multiple people reverting a file to any point in its history preventing spying on your
|
||||
files on the server using encryption not so great for full computer backups wouldn't wouldn't do that
|
||||
and large binary files that change often like video editing projects okay so there you go that's
|
||||
that's its own that's its own mission statement for downloads you've got your macOS and your windows
|
||||
downloads on the website that's good because even though you might not use either of those platforms
|
||||
or you might at work or or whatever or in your real life I don't know you then you can download
|
||||
this thing sparkle share yay so it's it's cross-platforms what I'm trying to say so and that's obviously
|
||||
a huge huge deal when it comes to file sharing so it's a it's significant that it's cross-platform you
|
||||
want that for Linux if you're running Linux why wouldn't you be you can do flat pack flat pack is
|
||||
kind of a new packaging format which I'm actually really excited about I'm hoping that this is it
|
||||
the universal packaging system for Linux I'm not saying I don't like app image I still like
|
||||
app image for I very much like app image for external developers as I like to think of them you
|
||||
know people who are not sort of in the Linux ecosystem but still want to deliver to Linux well
|
||||
they don't have to learn packaging for that they can just do app image and and build things locally
|
||||
and send it off but flat pack I think is great for internal developers you know people who are
|
||||
sort of Linux friendly and just want to roll their RPMs or dot Debs or whatever roll a flat pack
|
||||
instead and everyone can run them what do you mean everyone yeah even me I'm on Slackware and
|
||||
I'm running flat pack and it's working brilliantly so there you go so the commands are provided on
|
||||
sparkle share.org and that is well first you have to install flat pack so you would want to do
|
||||
that through whatever means you have to install programs on your Linux distribution so flat pack
|
||||
once installed is actually a little bit like Git you just do a flat pack remote dash add flat hub
|
||||
HTTPS colon slash slash flat hub dot org slash repo slash flat hubs dot flat pack repo nipples in
|
||||
the the main flat pack repository and once once that's coordinated I mean it doesn't take long it
|
||||
just kind of pings that remote and make sure that it's the server that it thinks it is then you do
|
||||
the install command so flat pack install flat hub I should say flat pack space install space flat hub
|
||||
space so that's we're installing from flat hub org dot sparkle share dot sparkle share and again
|
||||
that command is is available right there on the sparkle share front page now what what once that's
|
||||
finished you can run sparkle share for the first time and we're going to do it together so that you
|
||||
can see how easy this thing is to set up so how do you run a flat pack well it kind of depends I'll
|
||||
be honest with you it sort of depends on where you got this flat pack from and how nice it is and
|
||||
how they've developed it but the the technical way to do it like the exec line that you will see in a
|
||||
dot desktop file that that may or may not come along with a flat pack is flat pack space run
|
||||
space and then the string that you installed in the first place so that in this case would be org dot
|
||||
sparkle share dot sparkle with the capital S and share with the capital S and that would launch
|
||||
sparkle share now it just so happens that it that this flat pack installs a dot desktop
|
||||
file for you so if you just type in or however you launch your menu if you go to your application
|
||||
menu and look for sparkle share and then launch it that that works it the exec line is doing what I
|
||||
just what I just described so when you first launch it might take a little bit longer than the normal
|
||||
because it has to you know create sort of the infrastructure that it's going to use for it's
|
||||
for it's a config files and stuff and the the first screen is kind of a first launch screen it says
|
||||
first off what's your name and your email so that would be clatu and then clatu at hacker
|
||||
public radio dot org or member dot fs f dot org and I'll continue and now it gives me a second screen
|
||||
which is I should have taken a screenshot of that here hold on I'll take a screenshot of this
|
||||
so that I can insert them into the show notes I assume that's how it works I don't really know how
|
||||
to do screenshots and show notes there we go so second screen is a list of potential hosts and
|
||||
this is really neat because it gives you a couple of it gives you I think quite a good variety
|
||||
of options here so the first first option is your own server everything under your control you can
|
||||
just use pretty much any get host that you want or any any host that you want with get capabilities
|
||||
to host a a what would what would we what will become a sparkle share repository it's just it's
|
||||
get it's just free normal old get you can also use a bit bucket get hub get lab and plan i oh
|
||||
never heard of plan i oh but it's apparently online project management okay so I'm just going
|
||||
to do my own server and I'm going to do 10 dot 1 dot 1 dot 10 and then the then it tells me to put
|
||||
in the oh it tells me to put in the port and the username okay so I need to put in my username
|
||||
and the port is actually the standard port so I don't need to change that and yeah that should be
|
||||
everything now this is still going to fail and I'll tell you why it's because it could not so it
|
||||
says please check the following blah is the address we've compiled does this look right so it kind
|
||||
of gives you the full the full name of of what it thinks it should be looking for and it's in it
|
||||
asks is this computer's client id known by the host and then it says here's the raw error message error
|
||||
could not fetch host key so I'm going to click the retry button which deceptively does not just
|
||||
automatically retry it actually brings you back to this sort of setup so what needs to happen here
|
||||
is that I need to configure I need to make sure that sparkle share has permission to get into
|
||||
the the host with just a public key now I do have permission to do that but it's it is using a key
|
||||
currently that is password protected so it needs manual intervention in order to work a couple of
|
||||
different ways I could manage this I could either go into my SSH config and use a different key
|
||||
or whatever but there is a there's a specific way that sparkle share allows for this to happen
|
||||
and that is it provides you an SSH key under the sparkle share menu so if you look in your system
|
||||
tray there's an orange folder that represents sparkle share if you right click on that orange folder
|
||||
you'll see sparkle share sync remote project which is actually the screen run now and then quit
|
||||
so under sparkle share there's history which is empty right now computer id and about sparkle share
|
||||
so if you roll over computer id you see an SSH-rsa and then a key so I'm going to copy that to clipboard
|
||||
that's a selection right there and then I'm going to go in a terminal I'm just going to quickly
|
||||
SSH over onto my server type in my manual password and then I'm going to go into ssh slash what do I
|
||||
want to hear known hosts no not known hosts authorized keys and I'm going to paste what I've just
|
||||
copied to my clipboard into the into the authorized keys selection and so it gives me an SSH key
|
||||
so a really long one and it ends in parentheses sparkle share close parentheses so we know why that
|
||||
key exists so now one more time back to sparkle share I'm going to if if the screen if that setup
|
||||
screen has closed you can you can get back there quite easily by just right clicking on the sparkle
|
||||
share thing the folder in your system tray go down to sync remote project and click on that
|
||||
that brings up that sort of setup screen again so we'll go back to the my own server selection
|
||||
and add the details so clattu at ten dot eleven dot or ten dot one dot one dot ten and then the
|
||||
path is slash home slash clattu slash sparkle dot get and then I a one more thing I need to do
|
||||
actually and this is specific to my setup but I'm going to mention it because it could be specific
|
||||
to yours that I need to go into my ssh config so that's till this slash dot ssh config and reset
|
||||
where what identity file this server uses so if you don't know what I'm talking about go listen to
|
||||
my episode on ssh config files that's episode 1856 in case you're looking for it and that that
|
||||
explains everything but but what I'm doing here is because I had a had a I had a configuration
|
||||
option already set so that if I if I go to this specific server then it it uses this user and
|
||||
this identity file and I need to reset that so ssa sparkle share rather keeps its ssh files in
|
||||
your home directory in dot config and then slash org dot sparkle share dot sparkle share with
|
||||
camel case on that last sparkle share and in there you'll see a ssh configuration or a
|
||||
ssh key called the dates 2018 oh 101 or whatever you know whenever you installed this thing and then
|
||||
the time the hour and the minute that you that that it created this key dot key and there's
|
||||
another one right next to it called dot key dot pub so the thing that you want to use in order
|
||||
to get into your into your server is the dot key file so do a read link dash f on that key file
|
||||
so I'm just doing read link dash f 2018 dash 07 dash 12 underscore 14 h 51 dot key and that
|
||||
returns the full path of where that key lives on your computer I'll select that and then go but
|
||||
down to my ssh config file and in my home directory and under identity file I will paste that
|
||||
full path and then I will save that and quit emax and if you are looking to learn emax you can
|
||||
listen to my hacker public radio series on emax episodes 852 856 and 861 okay so that's done
|
||||
so now we can continue our setup and click continue or add and it pings the server it tries to
|
||||
log on it it finds the key and the key is in the authenticated it authorized hosts files so it
|
||||
lets it in so we're good to go it says what type of storage would you like to use plain storage
|
||||
nothing fancy maximum compatibility or encrypted storage trade off efficiency for privacy
|
||||
in crypt files before storing them on the host well I'm not going to do that right now but I could
|
||||
at some point do that if I wanted to and then it says you can find the files in your sparkle share
|
||||
folder and I can either click show files or I can just finish with the setup and I think I'll
|
||||
just close it I don't need it to open a directory for me I can do that and I don't know I don't
|
||||
know what file what what file manager it would try to use anyway so I'm going I mean it's kind of
|
||||
a gnomish application so I have suspicions so somewhere in here in my in my home folder there
|
||||
should be a sparkle share directory and sure enough here it is sparkle share and in that sparkle share
|
||||
directory there is a listing of the different hosts that sparkle share is looking it is managing
|
||||
so here's one for 10.1.1.10 which I know is my is my home server so I'll click in there and there's
|
||||
my sparkle directory it's not called sparkle.git is just sparkle I don't know why they do that
|
||||
and waiting for me inside the folder is a little default file that they've committed for me
|
||||
and it says congratulations you've successfully created a sparkle share repository any files you add
|
||||
or change in this folder will automatically be synced to and then it gives me the address and
|
||||
everyone connected to it and that's important it it it it has gethooks set up so that when you
|
||||
commit a file when you drag a file into this folder it commits it to the the folder and pushes out
|
||||
you know and everyone else on all the other anyone else syncing to the same folder gets that file
|
||||
it's all magic gethook stuff now this setup has been a little bit over complex because because
|
||||
I've been stepping through it to do it this all on my own server so let's do one more really quick
|
||||
and we'll just we'll look at what it's like on a get lab instance and the reason I want to do
|
||||
this again is because what we've just done together is more like that's what the the admin would
|
||||
probably do that's if you are introducing sparkle share to your team at work for instance or to
|
||||
your your fellow collaborators on some cool art project or something then then you would probably
|
||||
do all the setup that we just did you know making sure that the server has the bare repository and
|
||||
has all the SSH keys on it and all that other stuff for the everyday user who's just kind of
|
||||
bumping around trying new things out and stumbles across sparkle share this is what they would do
|
||||
so they would presumably have a repository on get lab already or on some hosting
|
||||
service that they can that they can hook into with sparkle share so I click on the get lab
|
||||
well okay so to start first we would right click on the sparkle share folder in the system tray
|
||||
and click sync remote project so right there the the the oh you can actually left click on it too
|
||||
it's the same folder same menu but the the the verbiage there is sync remote project and so it
|
||||
kind of assumes that you have a remote project to sync so that's that's significantly written
|
||||
I think so I'm going to click in this setup screen I'm going to click on this get lab selection
|
||||
and the address is auto filled for me because all all server or all all commits and checkouts and
|
||||
clones from get lab go to the same place SSH colon slash slash get at get lab calm slash and then
|
||||
the remote path so that in this case would be not clad to slash food dot get and will pretend like
|
||||
food I get actually exists on get lab so I'm going to click add that and of course it's going to
|
||||
fail again and you should by now know why and it's kind of telling me hey is this the right path
|
||||
yes it is hey is this computer's client ID known by the host no of course it's not so if I click
|
||||
on the sparkle share folder again I go to that computer ID thing I copy that to my clipboard
|
||||
and then I go into get lab and it's all it this is pretty this is pretty much for any kind of online
|
||||
get hosting service that you can that you can find it's the some of the menus may be different
|
||||
but the the concept is the same so you go to your you know your little user profile you go to
|
||||
and then somewhere in your settings there's something about SSH keys or adding a key or
|
||||
or something like that and so you click on the SSH key selection whatever it may be and there's
|
||||
some option to add an SSH key of course all you have to do is paste your SSH key into that text
|
||||
entry field give it some kind of title which this it's actually parsed it successfully for me
|
||||
already it looks at the end of the key and and takes the string so it says parentheses sparkle share
|
||||
parentheses and now I'll add that key once that is added I can do a retry over here in sparkle share
|
||||
everything's the same okay I know that I've just added my SSH key it's told me that it's successful
|
||||
it's shown me a fingerprint so I'm going to add and now this time sure enough it's fetching the files
|
||||
and downloading all that remote stuff to my to my computer and if I look in my sparkle share folder
|
||||
once it's finished here it's actually a fairly large project apparently there we go now it's
|
||||
telling me you can find it in your sparkle share folder so I'm going to finish and then I'll do
|
||||
another search in my home folder for sparkle share there it is and here's getlab.com there's my
|
||||
food.get directory and there's all the files inside of it so to sum up to for for a normal user
|
||||
it is a it is a matter of them going into their publicly hosted get account if that's how they're
|
||||
doing it adding and the the client ID quote unquote client ID of their sparkle share so that's their
|
||||
SSH key for sparkle share adding that to their their their publicly hosted repository and then
|
||||
pointing sparkle share to that repository and that's it that's all that's all they need to do
|
||||
and they can keep adding sort of sub repositories as it were in sparkle share by clicking on
|
||||
the sparkle share and sync remote project and they you can just add as many repositories as you
|
||||
want so it's a very very easy friendly way to manage a get project I mean there's not a whole lot
|
||||
to go into what happens after that like once it's set up that's it now treat it like you would a
|
||||
drop box folder if if you've ever had drop box or if you've ever interacted with drop box at all
|
||||
just you know if you if you have something you want to to to to live in that directory then
|
||||
drag it over and it will get copied up to that repository it really is that simple now the the
|
||||
the kind of the cool thing for for a get geek I guess is that you can cd into till the slash
|
||||
sparkle share and then into let's do the get lab dot com one because I know there's actually
|
||||
activity there slash food I get or food and now if I do a get status for instance or get log I
|
||||
guess is more interesting it shows you the the history of of all these of all the of all the
|
||||
things that you've done in sparkle share so far now right now it's it's not a whole lot there's
|
||||
just a sparkle share commit just acknowledging that sparkle share is there but if I were to drag
|
||||
a folder or a a file rather into that folder and then have it commit up to up to that repository
|
||||
which I'll do I'll just add a license here no actually I won't I'll do the this one this license
|
||||
okay so I'm copying a little text file over to my repository and waiting for the icon in the
|
||||
system trade to sort of clear out and it does so there's activity and now it's done now if I do
|
||||
a get log yeah I've got a July 12 13 15 28 commit that just happened dragging the oglv1.0a.txt
|
||||
into the folder and it got committed up just automatically that's it that's sparkle share it's a
|
||||
really sort of friendly no-brainer kind of way to interact with get so check it out thanks for
|
||||
listening talk to you later you've been listening to hecka public radio at hecka public radio.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 hbr listener like yourself
|
||||
if you ever thought of recording a podcast then click on our contributing to find out how easy
|
||||
it really is hecka public radio was founded by the digital dog pound and the infonomicon computer club
|
||||
and it's part of the binary revolution at binwreff.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
|
||||
at live 3 dot oh life
|
||||
Reference in New Issue
Block a user