Files
hpr-knowledge-base/hpr_transcripts/hpr2609.txt
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

244 lines
22 KiB
Plaintext

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