Working Remotely on the Savannah

Working Remotely on the Savannah

Released Tuesday, 24th December 2024
Good episode? Give it some love!
Working Remotely on the Savannah

Working Remotely on the Savannah

Working Remotely on the Savannah

Working Remotely on the Savannah

Tuesday, 24th December 2024
Good episode? Give it some love!
Rate Episode

Episode Transcript

Transcripts are displayed as originally observed. Some content, including advertisements may have changed.

Use Ctrl + F to search

0:03

In my my self -hosting journeys

0:05

I have decided to self

0:07

-host a a links in bio page

0:09

on my website. think don't

0:12

think you have you? Have

0:14

I not? Because links in bio

0:16

is the link is in my The

0:18

link is in my biography

0:20

for this application world. you

0:22

I went, I am hosting my am hosting

0:24

my own, tree, my link is

0:26

what you're is what you're Is

0:28

that it? Okay. it? what what it

0:31

is, yeah. I'm just going off

0:33

those bright things on Instagram that

0:35

usually say link in say something in

0:37

bio or something clever on Instagram.

0:39

And I thought that's what I've

0:41

made. and I thought that's what I've do

0:43

feel a bit like I do feel a

0:45

bit like The application that I'm

0:48

using, I say application is not

0:50

an application. We'll get to

0:52

that in a moment, is a

0:54

link we'll get to that page, a basically.

0:56

like page basically is what it's all about. And

0:58

I created this because as I

1:00

explore my options, it occurred options, it occurred

1:02

to me that what I want

1:05

is I a page like this

1:07

where I can say, can all of

1:09

the places you can find me.

1:11

the Because some of the services

1:13

that I'm looking at using give you

1:15

give you one place to say, my

1:18

is my website or whatever. just

1:20

sending people to my blog doesn't

1:22

feel like the right place to

1:24

go. to go. So I thought one

1:26

of these these link tree type. services

1:29

be a good idea, but I

1:31

didn't want to use use a service

1:33

I wanted to do it myself,

1:35

so I found this project

1:37

called Link. So for the smart people like me

1:39

and you that know what and

1:41

you is it's is, single

1:43

page list of links that you can of

1:45

links to you can send people

1:47

to have a memorable domain. Have you

1:49

got a memorable URL to this

1:51

handy reference out and keep reference

1:54

guide to where you can find

1:56

Martin everywhere online? As if by

1:58

magic a new domain appears. And

2:00

it is Whimpees World.link.

2:02

Nice, nice. Yeah, so it's just

2:05

a quick just a

2:07

quick URL. it's And as you say,

2:09

it's a list of all of the

2:11

places that people can connect with

2:13

you online. So your social media accounts,

2:15

your your get-forage account video

2:17

platforms you're on. And

2:19

in my case, one of

2:21

the the I've made is

2:23

underneath all of my

2:25

personal links, I've made a

2:27

whole section about Linux about

2:29

Linux of the places you can

2:32

find Linux you can also matters to the

2:34

podcast because that is one of

2:36

the places where one of the the

2:38

two of you exist. you exist. So

2:40

this is... a web with some links

2:43

on on which... It's a a web ring. seen

2:45

this before So what what what

2:47

does little link actually do Is there

2:49

some sort of like like application

2:51

here where you put put you in

2:53

your icons and your and it makes

2:55

this page or what's little link

2:57

actually giving you actually as

2:59

opposed to just crafting this yourself

3:01

with HTML. this Little Link is

3:03

the simplest thing ever. is

3:06

It is a single It HTML

3:08

page HDML some CSS classes as

3:10

you that the you create the

3:12

links to, for example, one of

3:14

the one of the CSS

3:16

class examples is a Mastodon

3:19

branded button. create you create the

3:21

links to the different platforms

3:23

that you're on, on. each

3:25

of those buttons is branded

3:27

appropriately for those different sites.

3:30

So it all looks very

3:32

attractive. the the right icons and the

3:34

right colour schemes on each of the

3:36

buttons so it's very clear which which

3:38

place you're advertising. you are you are actually

3:40

just making an HTML page with a

3:43

list of links. links and then little is

3:45

making it look nice. You don't even

3:47

have to make it. make it. So Little

3:49

Link project, the way that it works

3:51

works simply fork the project. and

3:54

then the index-to-HML

3:56

file has every

3:58

possible. link in

4:00

there you you just uncomment the

4:02

ones you want to use and

4:04

replace the link to the place

4:06

you want to be. as it Now

4:08

as it happens there's also a

4:11

community project called called Extended which is

4:13

a bunch of additional CSS classes

4:15

for loads of other places and

4:17

I've added that to mine mine

4:19

that had things like mastered on

4:21

in it which obviously I care

4:23

about. about. But what's interesting about this

4:25

is whilst I'm self I'm and I'll

4:27

get to how I'm doing the deployment

4:29

in just a the deployment in just a project

4:31

the a couple of buttons

4:34

and you can just click of

4:36

buttons, with just click, deploy with with or

4:38

deploy with it bounces you through

4:40

this wizard that automatically forks

4:42

the project for you you

4:45

your own GitHub account. account, does the

4:47

ORoth and and connects you to the

4:49

free plan on both those services

4:51

and automatically hooks up instantaneous deployment

4:53

to those platforms. So if you if

4:55

you don't have your own web

4:57

hosting, it will automatically set up

4:59

free hosting to to automatically deploy this

5:01

as you change it. it And

5:03

presumably it could also deploy it

5:05

to hub pages it's just a static

5:07

page. page. It could also do that.

5:09

I don't remember if that's one

5:12

of the options. It may well

5:14

be. I remember that I think

5:16

I started with started it out and

5:18

then try it out it up going

5:20

to my own site. my own site. So even

5:22

for a CSS numpty like me,

5:24

it was really easy to add

5:26

the extra CSS file for little

5:28

Link which adds hundreds of

5:30

more branded sites. sites. if you

5:32

have somewhere you want to

5:34

link people, which isn't in there,

5:36

it's very trivial to just

5:38

go in and add a new

5:40

CSS class for your custom

5:42

stuff. So I've added one for

5:44

my added one for my example, which

5:46

is which is icon and all of

5:48

that sort of stuff. all of that I'm

5:50

self stuff. so I found a

5:52

project in the a project in the

5:55

which I think is worth highlighting as

5:57

well. It's called as well.

6:00

and I've used similar tools

6:02

in the past but

6:04

this is sort of

6:06

an is -one, one -stop one-stop

6:08

shop to how to provide your key

6:10

or SSH key as a key as

6:12

a secret in a GitHub action

6:14

automatically have the site deployed

6:17

to your own server using

6:19

our sync. and it's all in

6:21

one action and there's a

6:23

few configuration configuration it handles the

6:25

handles the made a change I'll

6:27

automatically deploy that to your

6:29

self to instance using rsync

6:32

and it's the best of

6:34

these types of tools that of

6:36

encountered recently. I should take

6:38

a look at that I should take a look at that

6:40

because I've my home a solution in a get

6:42

out of action for my .com/blog. some time ago get -up,

6:44

but it it works so it's it's fine but it's

6:46

a it's a little bit janky. I

6:48

wrote a blog post about it.

6:50

Maybe we'll put a link in the

6:52

show notes, in but this would be

6:54

this would be I just need to set

6:56

aside time to other things to other

6:58

that. do And I did actually start

7:00

with looking at your blog at your blog

7:02

what you'd done. you'd And I thought, was

7:04

there was a few extra steps

7:06

in there. And then I found this

7:08

thing thing of rolls of rolls it one into

7:10

one simple - bundle. bundle nice So yes, I I think

7:13

that this this is SSH deploy is a

7:15

really nice tool. So if you

7:17

are looking to, you know, advertise your

7:19

presence on that, their Fediverse and

7:21

other platforms, this is a a little

7:23

tool. It's really easy to get started.

7:25

started and it looks very attractive and

7:27

pretty, very simple to to

7:29

customize. I

7:32

have have been logging in remotely

7:34

2024 style. SSH? Getting your 18 year old son to go

7:36

and press a button for you. old son

7:38

to go and press a button

7:40

for you. Yelling across the house, the No?

7:42

Something else. Yelling across the

7:44

house. The commands I need typed

7:46

in. desk which is got this this

7:48

box under my desk, which

7:50

is like a headless desktop, which

7:52

was previously before I got a I

7:54

got a and now it And now

7:56

it primarily serves video encoding, which I

7:58

which I occasionally need. but the way that

8:00

I do way that I do that is a kick

8:02

to Give it a kick to turn it

8:05

on I log in in from a laptop remotely

8:07

in and either via SSH SSH or than

8:09

often than not the the desktop. to

8:11

to configure whatever job I need

8:14

and set it going and then

8:16

disconnect and leave it running until

8:18

it's finished. leave it in the past,

8:20

I managed all of this using

8:22

I managed all which is to Go which application

8:24

and desktop and desktop

8:27

graphical login thing. Yeah, Exetergo quite great.

8:29

And in fact, a little

8:31

known fact is the Xtgo is

8:33

the in Germany hack fest in Germany was

8:35

where a Bunto in earnest. in met

8:37

the Debian developers that sponsored

8:39

my work and what have

8:41

you. my work and what have you. I

8:44

just rewind slightly slightly as to, you

8:46

said said were very you were

8:48

very hand wavy about some

8:50

video and jobs and any normal

8:52

nerd would tell you on

8:54

into the peg, but I suspect I

8:56

suspect You're probably running, know,

8:58

I don't know, and handbreak and stuff, and

9:00

stuff, graphical desktop applications. Exactly, yes,

9:02

and I've I've also got my auto

9:05

handbreak which will display a GUI

9:07

if it's run on the

9:09

desktop. for doing like jobs and

9:11

stuff like that. So it can be

9:13

handy to have the desktop for

9:15

that. have the I can't hear batch jobs

9:17

without thinking of batch jobs the last

9:20

episode of Martin in the last So now I'm

9:22

thinking you've got now I'm thinking your desk

9:24

and that under your desk that's that is that is fact

9:26

now that's to all of this somewhere

9:28

and I'm trying to find my

9:30

way back to it. and I'm trying to

9:32

find my way to it. in So brave new

9:34

world of new world of Wayland ex to go doesn't

9:37

do the job so

9:39

well well anymore. there's a clue

9:41

in the name a isn't

9:43

there? the name there, isn't there? is

9:45

very reliant on reliant on their

9:47

X11 server model. model. has has

9:49

Exter gone. Yes. Oh no. Sorry. no. network

9:51

transparency, which transparency, which apparently we

9:53

told we don't actually

9:55

want want anymore. Okay. So I need I need

9:57

a new way of handling this

9:59

remote login. And I I just upgraded

10:01

the machine to Ubuntu 2404 LTS,

10:04

which LTS, thanks to which actually it's

10:06

to, I believe excellent new has

10:08

an excellent new remote login

10:10

solution. So if right. into you

10:12

go into the settings app

10:15

and go to now a there's

10:17

now a remote login option, which

10:20

gives you two options. It gives

10:22

you you sharing and remote Login. So

10:24

So desktop sharing will allow you

10:26

to give someone access to your

10:28

current desktop, either to view. either

10:31

to to or to control and the the remote

10:33

you set you set up a

10:35

user connect you connect via an

10:37

RDP client and it will actually

10:39

drop you remotely into. into GDM

10:41

where can log where you can any

10:43

as any user that doesn't currently have

10:45

an active session. Oh, wow. wow, that's

10:47

really quite smart. so you can you can either

10:49

connect as user user who has a session

10:51

running, or you can connect in as one

10:54

who isn't. who isn't can also, I think, I

10:56

think Log in as a user who's session

10:58

is already running and kick them off their

11:00

existing session, existing session, which is, yeah, I'm yeah, I'm

11:02

sure there's a use case for that, but

11:04

might be a bit might be a bit So,

11:06

based on your description there, am I

11:08

right in saying that this is quite

11:11

a tightly coupled solution tightly of integrated into

11:13

GNOME itself? I believe so.

11:15

So, I went looking in the I release

11:17

notes I didn't see this mentioned, but

11:19

then I went looking in the GNOME

11:21

release notes and I saw it mentioned

11:23

there. So, I think it is looking in the

11:25

feature. notes I have in the past there.

11:27

around doing this with with XRT, which can which

11:29

can do the same thing, you log you

11:31

that, to that... manager you get

11:33

is some you get is

11:35

some real Windows 95

11:37

And it's not an easy it's

11:39

not a... an easy configuration

11:41

experience and not a pretty experience,

11:43

whereas this is slick, very

11:45

easy to configure and looks beautiful. How

11:48

does it handle handle

11:51

resolutions? Because if Because on

11:53

my my... a bun to a sahi

11:55

13-inch Air, air Ubuntu, a bun

11:57

and I oh I I

11:59

don't. know remote into my think pad Z13 in

12:01

the office that's got an LG monster the office that's

12:03

got an LG going to happen monitor connected

12:06

to it. What's gonna happen there? clearly

12:08

does actually explain quite clearly tabs the

12:10

configuration in the two tabs. So

12:12

it does something different depending if you're

12:14

logging into an active session or

12:16

not. if So if you're logging into

12:18

an active session, you get the resolution

12:21

that that session is running at. is

12:23

running So if you're in a window

12:25

that's smaller than your than your your LG funny

12:27

shape shape monitor, you'll be scrolling around.

12:29

around. you're logging in to a new session, the

12:31

the resolution is set by your

12:33

window it in. This is running it in. I

12:35

is glorious. of plenty of think of

12:38

plenty of activities I would need

12:40

this for. Yes. creating like a separate a

12:42

separate user account which is your

12:44

remote account would be a smart

12:46

way to go here so you always

12:48

negotiate like a remote friendly resolution

12:51

as you connect. I I guess if

12:53

you're not logged in on the

12:55

machine, if the machine is just

12:57

for for remote gooey, you know, like like

12:59

a server kind of. thing. Yeah, so the way

13:01

that this that this machine up to run

13:03

is up to run as you boot

13:06

it in as the logs in as the steam in

13:08

big Steam in big and mode and then

13:10

that's there for me to connect via

13:12

Steam link or stream a game to

13:14

my steam whatever if I want to. I

13:16

But then there's another user which is

13:18

there which for doing things like video

13:20

encoding like video encoding don't know. know. whatever

13:23

I I want to do on a GPU. on a GPU.

13:25

This episode is sponsored by

13:27

This episode is sponsored by for that

13:29

skip but stop reaching for that

13:31

skip button. how I I'm going

13:33

to explain how I

13:35

use the plan to secure plan

13:37

to secure my home network

13:39

and why enthusiasts should

13:42

give it a whirl. effortlessly scale

13:44

effortlessly provides the benefits

13:46

of without the the hassle of

13:48

manually configuring it. it. Thanks

13:50

to Tailscale, I have

13:52

no open ports on our

13:54

router. I have even have even given

13:57

up my static IP addresses

13:59

with my my ISP. which saved me

14:01

some money, because tail scale and

14:03

DNS DNS I'm always connected

14:05

to all our servers, laptops

14:08

and other devices, wherever

14:10

I am. wherever I

14:12

clicks, our Apple TVs

14:14

now operate as operate

14:17

exit nodes, making our

14:19

home network network my VPN endpoint. When

14:21

I I travel abroad, this has

14:23

the added benefit of preventing

14:25

my online banking service from

14:27

erroneously triggering triggering

14:29

anti-fraud Many

14:31

of the of the late night hosts

14:34

are using are to make

14:36

complex make configurations easier than

14:38

melting butter with a melting

14:40

butter with a you could And

14:43

Tailscale's personal plan will always

14:45

be free. be free. To support

14:47

the show and become

14:49

a a Jedi, Jedi, Try tail for

14:51

free today. you'll get

14:54

up to to devices and

14:56

three users for free for no

14:58

credit card required card .com

15:01

scale.com/Linux matters.

15:05

Linux Matters is part of

15:07

the the Linux Linux If you

15:09

enjoy this show then please

15:11

consider supporting us and the

15:13

rest of the Late Night

15:15

Linux of the Late the PayPal

15:17

or Patreon links you can

15:19

find at patron .sh find at Linuxmatters.sh slash

15:22

a month on Patreon, you can

15:24

enjoy an can feed of our

15:26

show, our or for $10, get

15:29

access to all the late -night Linux

15:31

shows ad -free. to get love to

15:33

get your feedback via email,

15:35

email. show at at linuxmatters .sh, can or

15:37

you can chat with us

15:39

and other listeners in our

15:41

Telegram group. All the details are

15:44

available at linuxmatters .sh

15:46

slash slash contact. I've been learning

15:48

Jango by fire. It's the been

15:50

learning Django by fire. it the

15:52

only way. way. The apparently it is

15:54

the only way. getting you do this

15:57

is by getting somebody else's project

15:59

try and fathom. what on earth

16:01

is going on without reading

16:03

any documentation but just pressing

16:05

buttons and deleting and moving

16:07

things around and trying things

16:09

until you understand it. That's

16:11

my way. Anyway, so I've

16:13

been noodling with a piece

16:15

of software called Savannah. I

16:17

don't think I've mentioned it on

16:19

the show before. It's a community relationship

16:21

manager written in Python and Jango. It's

16:24

open source. there is a hosted version

16:26

that you can pay for in order

16:28

to help pay for development of the

16:30

thing and there's also the source code

16:32

on get up that you can clone

16:35

and deploy yourself or just run on

16:37

your workstation and it's like a CRM

16:39

system so I said community relationship manager

16:41

it's like a customer relationship manager so

16:43

it has some of the same terminology

16:46

but it's for tracking community contributions it's

16:48

not for tracking like sales leads and

16:50

targets for targets for sales of marketing

16:52

people, although there is a little bit

16:54

of that potentially in there. It's more

16:56

to do with keeping an eye on

16:59

your community health. So, you know, are

17:01

people's poor requests being attended to, are

17:03

questions being answered, are issues being resolved,

17:05

that kind of stuff, and how many

17:07

members are there in the community? And

17:10

what level are they through the life

17:12

cycle? Are they just someone who's filed

17:14

an issue or are they a core

17:16

contributor or somewhere in between that kind

17:18

of stuff? So that's... That's what the

17:21

core mechanic of this application is. It's

17:23

a website that you can deploy. It

17:25

was written over a period of time

17:27

by Michael Hall, M Hall 109. You

17:29

may remember him from canonical and Ubuntu

17:32

back in the day. He now works

17:34

at arm. And he started it as

17:36

a bunch of Python scripts that he

17:38

used at canonical to measure the activity

17:40

in the Ubuntu community. and then every

17:43

job he's had after canonical he's built

17:45

on it and built on it and

17:47

built on it and now it's a

17:49

big thing that is something that you

17:51

can either pay him to host and

17:53

use or deploy yourself somewhere and I

17:56

use it and I've started getting involved

17:58

in developing and maintaining it. So far

18:00

I haven't committed any patches. I've been

18:02

doing this all locally because it's a

18:04

bit of a new thing to me

18:07

and I'm a bit scared of doing

18:09

it wrong. But I gave a couple

18:11

of talks, I talked to Odd Camp

18:13

about it and I also gave a

18:15

talk last weekend at Bar Camp London,

18:18

the same talk effectively and it went

18:20

down quite well. People seemed quite keen

18:22

but I need to solve a few

18:24

problems. It's a bit sharp around the

18:26

edges. You were also good enough to

18:29

set up an instance for the Quick

18:31

Emmy project and in addition to some

18:33

of the things you've identified there, one

18:35

of the things that came out of

18:37

it for me is that it actually

18:39

identified hot issues that I wasn't aware

18:42

were actually hot issues within the community

18:44

because you can see how much conversation

18:46

there is. around either a particular issue

18:48

in get hub or in this case

18:50

a discussion in get hub discussions around

18:53

a particular support issue which was a

18:55

fadora support for the packaging and what

18:57

have you. So it's insightful in many

18:59

different ways as well as identifying like

19:01

who your standout contributors are. Yeah it's

19:04

got a lot in there. I'm not

19:06

even scratching the surface of what it

19:08

can do. It can connect to lots

19:10

of different services. The basic premise is

19:12

it has a bunch of sources as

19:15

in Savannah has plugins to connect to

19:17

other things like get hub, get lab,

19:19

discord, discourse. It can connect to RSS

19:21

feeds and there's also an API so

19:23

you can create your own plugins to

19:26

connect to other things and feed data

19:28

into it. And the kind of things

19:30

you're feeding into it are data about

19:32

contributions people are making to your project.

19:34

and conversations people are having about and

19:36

around your project. So those are the

19:39

two parts. It's conversations and contributions. And

19:41

I apologize to anyone who has seen

19:43

this on camp and bar camp. I'm

19:45

not going to redo the whole slide.

19:47

and everything here. But what I wanted

19:50

to talk about was my experience with

19:52

playing with this thing. And I kind

19:54

of went on a bumsteer initially because

19:56

I cloned the projects and I could

19:58

not get it running. And it turns

20:01

out that there's something I've learned and

20:03

I haven't internalised fully about people who

20:05

use get up. And that is some

20:07

people work on a branch that isn't

20:09

Maine. And so I cloned the main.

20:12

branch and I was like I couldn't

20:14

get this working and it turns out

20:16

I bumped into Michael out in rally

20:18

in North Carolina a few weeks ago

20:20

and I had a chat to him

20:23

about it and he said oh yeah

20:25

it does work I just deployed from

20:27

the production branch and I was like

20:29

oh oh right and that's the one

20:31

that's more up-to-date but even then I

20:33

couldn't get that working because there were

20:36

problems with Python dependencies problems with some

20:38

of the modules that are now orphaned

20:40

because Michael's deployed it. a while ago

20:42

and it's running and he kind of

20:44

left it alone and not touched it

20:47

because it is just still running and

20:49

it does run. He sometimes has to

20:51

poke a job or something here and

20:53

there to wake it up or get

20:55

rid of some log files or something,

20:58

but it mostly just works. And so

21:00

I have been doing things like updating

21:02

the Python requirements dotTXT to update all

21:04

the dependencies and I hope everyone is

21:06

sitting down right now and if you're

21:09

driving I would urge you to pull

21:11

over to the side of the side

21:13

of the road. I have made a

21:15

docor file. Who are you and what

21:17

have you done with that? I know,

21:20

right? I'm a changed man. I thought

21:22

this, I can do virtual Ems. I

21:24

use UV for doing virtual ends with

21:26

Python. I love UV. It's fantastic. But

21:28

I thought, you know what, this is

21:30

a candidate for making it easier in

21:33

a quick and easy way with the

21:35

docor container that people can just, you

21:37

know, docor build and they've got a

21:39

container that they can test on their

21:41

local machine or deploy somewhere somewhere or

21:44

deploy somewhere. made and prototypes and worked

21:46

on this in my spare time such

21:48

that you can either use sequel light

21:50

or you can configure it to use

21:52

Postgress or MySQL, Maria, DB and I've

21:55

put all the options in there with

21:57

all the environment set up and it's

21:59

it's all basic stuff that probably anyone

22:01

could do but it's not all there

22:03

already and so I just wanted to

22:06

add this to make the on ramp

22:08

to people contributing to or having a

22:10

play with it a little bit easier.

22:12

Now as we record this I haven't

22:14

finished all of this. But I have

22:17

deployed it a few times using this,

22:19

this docket build and it works fine.

22:21

There are a few nuances that I

22:23

need to iron out, but in order

22:25

to just run it on your workstation,

22:27

it is going to be possible once

22:30

I commit this and I'll put a

22:32

link in the show notes. So that

22:34

will give me a target to get

22:36

this done by the time this comes

22:38

out. And then you'll be able to

22:41

deploy it yourself and try it out.

22:43

All you need if you're going to

22:45

connect it to get a API key

22:47

there. there are other things you can

22:49

connect it to that don't need API

22:52

keys like RSS feeds and so on

22:54

but I found it super useful from

22:56

a user point of view of the

22:58

tool Savannah to see as Martin said

23:00

like what's going on in the community

23:03

and identifying new people or people whose

23:05

activities dropped off you know maybe they're

23:07

on holiday maybe they're sick of the

23:09

project who knows but also it gives

23:11

you little notifications when people come back

23:13

like So and so has been away

23:16

for three weeks and then it gives

23:18

you a notification. So and so is

23:20

back at the project. Build things like

23:22

that that you might not recognise like

23:24

in amongst all the other data that

23:27

is in get up. A lot of

23:29

this you could just get from get

23:31

up but the fact that this correlates

23:33

get up and discourse and discord altogether

23:35

gives you a real as it says

23:38

on the marketing blurb on the website

23:40

a holistic view of the community and

23:42

that's what I really like about it

23:44

and then from a developer point of

23:46

view. being able to noodle around with

23:49

it. The co-base is actually not that

23:51

hard for me to understand and I

23:53

am not an expert in this and

23:55

I can figure out a lot of

23:57

what's going on and I've even written

24:00

a patch that removes Twitter. because it

24:02

can use the Twitter API but it

24:04

can't anymore because Elon and so I've

24:06

made a patch whether Michael will accept

24:08

it or not I don't know but

24:10

I've made a patch that removes the

24:13

Twitter dependencies and that fixes part of

24:15

the build so yeah there's a there's

24:17

a whole bunch of little things some

24:19

of it is adding some of it's

24:21

removing as with all code changes and

24:24

I'm quite enjoying it's quite a fun

24:26

project to work on and I'm really

24:28

hoping I can spurs some more people

24:30

on to play with it. a lot

24:32

of stuff that this does which you're

24:35

finding useful. Is there anything that from

24:37

your sort of experience doing community management,

24:39

is there a feature it doesn't have,

24:41

which you're thinking, or I might like

24:43

to add that? I can give you

24:46

three examples. More plugins is one of

24:48

them. So for example, it doesn't have

24:50

a plug in for Masterdon, but I

24:52

wrote one for Masterdon. And so I

24:54

wrote the code that goes and gets,

24:57

access is your... mastered on instance server

24:59

and then pulls the data about who's

25:01

liking or who's resharing your tooth. Now

25:03

I know this is controversial and some

25:05

people on Mastodon don't like their data

25:07

leaving Mastodon so I haven't published this

25:10

and I haven't thought how I would

25:12

publish this and how you you know

25:14

how you articulate what you're doing here

25:16

because I know this is a very

25:18

delicate thing to do on Mastodon less

25:21

so on other platforms like Blue Sky.

25:23

But I found it actually surprisingly easy.

25:25

The API for stuffing data into Savannah

25:27

is not hard to understand at all.

25:29

There's very few API calls. It's just

25:32

basically, you're creating a new member of

25:34

the community, you're adding a contribution, or

25:36

you're adding a conversation, or you're adding

25:38

a conversation. That's basically the three API

25:40

calls you need. And creating a new

25:43

member is someone who's interacting with you,

25:45

creating a new contribution is, you know,

25:47

someone added or removed some code, and

25:49

adding a conversation, hard to grock how

25:51

it all fits together. Two other things

25:54

I'll briefly mention that are missing. Proper

25:56

sentiment analysis to determine how people are

25:58

feeling. It can look for keywords like

26:00

thanks and someone's grateful and stuff like

26:02

that. But detecting whether people are happy

26:04

or sad in the project, I don't

26:07

think it does that yet, particularly well.

26:09

And the other thing that someone asked

26:11

at bar camp was, can it compare

26:13

two projects? So the question someone asked

26:15

is, can I point this at my

26:18

competitors, Git repo? And the answer is

26:20

yes. So long as they're public, if

26:22

you're pointing at an open source project,

26:24

yes you can. But those are seen

26:26

as two separate communities, two separate communities.

26:29

Yes. the way you would set it

26:31

up and so comparing them is a

26:33

bit tricky but you could potentially yoint

26:35

the data out and do something with

26:37

it or someone could write a plug-in

26:40

that does a compare these two communities

26:42

or something I don't know but yeah

26:44

it's it's fun I'm enjoying it and

26:46

it's really nice to have like a

26:48

chunky project that's got a lot of

26:50

sharp edges that I'm trying to rough

26:53

down and make it a little bit

26:55

smoother for people. Yeah, it sounds like

26:57

you've found an interesting way to get

26:59

your teeth into Python in a bit

27:01

more deeper way. And also in a

27:04

way that's beneficial to what you do.

27:06

Yeah, and potentially beneficial to other people

27:08

as well if they start using it.

27:10

And maybe beneficial to Michael as well,

27:12

because I'm promoting the tool and hoping

27:15

that more people pay for the paid

27:17

service so that he's got more incentive

27:19

to maintain it. We just wanted to

27:21

take a moment to say a heartfelt

27:23

thank you. to all the feedback that

27:26

we received electronically in email, telegram, discord

27:28

and in person. We've all had occasions

27:30

this year where listeners have approached us

27:32

and let us know how much they

27:34

enjoy the show, that they learn new

27:37

things or just like the vibes. Thank

27:39

you. That makes our whole effort very

27:41

worthwhile. Also, if you're a patron supporter

27:43

or share our podcast with friends, we

27:45

appreciate you too. Thanks for listening to

27:47

Linux Matters in 2024. We hope you

27:50

continue subscribing after the holidays for more

27:52

episodes in the new year.

Unlock more with Podchaser Pro

  • Audience Insights
  • Contact Information
  • Demographics
  • Charts
  • Sponsor History
  • and More!
Pro Features