this post was submitted on 30 Jan 2024
82 points (97.7% liked)

Lemmy

12568 readers
3 users here now

Everything about Lemmy; bugs, gripes, praises, and advocacy.

For discussion about the lemmy.ml instance, go to !meta@lemmy.ml.

founded 4 years ago
MODERATORS
 

EDIT: Since posting, I've started such a community: https://lemmy.ml/c/learningrustandlemmy, !learningrustandlemmy@lemmy.ml. Please come and join in.


The idea comes from the discussion that occurred over the new lemmy-clone or alternative, SubLinks and how its main feature is that its tech stack is different from lemmy's which should enable all of the developers who don't know rust to contribute.

One of the core lemmy devs (dessalines I believe) said responded to these general sentiments by saying something to the effect of rust being a good technical choice and that learning rust in order to contribute would be a good expenditure of time (as tech people need to learn new things all the time anyway).

Soooo ... for those interested ... how about we all learn together rust through learning about ActivityPub and Lemmy's codebase and solving problems and making contributions? We could have a community dedicated to asking questions, sharing solutions or ideas and generally discussing all things we're learning about rust, activitypub, fediverse and lemmy? If an actual community can be built around the desire to learn rust and give back to lemmy with all us newbs working together as much as posslbe ... that would have to be a win right?

Even better if those who know more about the topic could use the community as a chance to post or write up what they know for us to learn from. For instance, I've glanced at lemmy's code base (without knowing rust of course) and I feel like it could do with an architecture birds-eye perspective on how the code base works.

Obviously chatting on matrix might be a good place for this, especially as devs and admins are chatting there already ... but I feel like the structure of lemmy might be a better place for a sort of reading club.

Any thoughts or takers? I feel like creating the community on lemmy.ml would make sense, maybe having one of the core devs as a mod too?

all 30 comments
sorted by: hot top controversial new old
[–] lambdabeta@lemmy.ca 15 points 9 months ago (3 children)

That would be an excellent idea. But I feel like an even broader community should be created. Like a generic book club, but for code bases! Could even have a small handful of different code bases on the go at a time. I'd love to get to know lemmy's, but also e.g. neovim, or even unciv :)

Maybe one day it could even start tackling Moby Dick!

[–] maegul@lemmy.ml 6 points 9 months ago

Not sure about a broader community TBH. Depends on what is meant by "reading club".

If the idea is to look into nuggets or to sort of dip in and out of codebases to find interesting things ... then yea, a general community makes sense.

The sort of reading club I'm talking about is more like a study group ... for people who are learning but want to get to the point of having practical ability in the language + codebase. For that sort of activity, focusing on the one thing for a bit of time without distractions is actually pretty valuable ... plus having a single community with all of the discussions of people learning and figuring things out can turn into a valuable repository of material for newcomers to dig into.

[–] cm0002@lemmy.world 5 points 9 months ago

Maybe one day it could even start tackling Moby Dick!

That one's definitely War and Peace lmao

[–] sorrybookbroke@sh.itjust.works 4 points 9 months ago

That'd be a great long term goal but I'd argue a focus on one to begin would be a better idea. If we go full out with many codebase to start we'll atomize quickly with what might already be a quite small group

[–] sorrybookbroke@sh.itjust.works 12 points 9 months ago* (last edited 9 months ago) (1 children)

You know what? I'd be up for it. Sounds like a cool idea and we might be able to contribute as a team where possible.

We should likely have a bi-weekly, monthly, or whatever voice call discussion on the code we've reviewed on mumble (or discord if more convinient)

[–] maegul@lemmy.ml 7 points 9 months ago

Yea, that'd definitely be part of it. As a group, we could try to take on some issue, try things and report back etc ... could be fun, educational and productive ... or at least one of those!

[–] maegul@lemmy.ml 11 points 9 months ago* (last edited 9 months ago) (1 children)

So, before I go around posting in other communities (rust, programming and the two fediverse communities come to mind) ...

I'll just tag the current core devs and other contributing devs I'm aware of (@nutomic@lemmy.ml , @dessalines@lemmy.ml , @phiresky@lemmy.world , @CannotSleep420@lemmygrad.ml , @sunaurus@lemm.ee ) ... and ask them if they have any thoughts or input on this idea.

As far as its value and meaning for the lemmy project as a whole, I see it as:

  • Building a contributor community, especially by leveraging the interest in rust but countering the intimidation by or ignorance of rust
    • Which of course feeds back onto lemmy community building too. Creating a sense of shared ownership over one's social media platform is surely a good thing.
  • Providing a more dynamic CONTRIBUTING.md ... by assisting the would-be-contributor's on ramping by providing a space in which they can search for answers to questions (in addition to dropping into the matrix chat) and have more general technical discussions that out of scope for issue tracker threads.
  • Also extending what seems to be the core devs' interest in rust into a rust-learning community with lemmy itself as a practical example.

As I've said elsewhere in the thread, I don't see myself being the sole leader in this at al, as I'm only a learner/newb here on the technical front too, and I think some degree of involvement from anyone with some more experience with either rust or the lemmy code base could go a very long way. Obviously that's more work for the devs, perhaps more distraction, which I'm rather mindful of. But still, any involvement, any pointers or guidance, and any looping in others who could be helpful or linking to helpful resources for particular purposes ... all of that could be invaluable.

Additionally, should a decent community around this form, any direct interaction with the lemmy devs would also be valuable ... even if it's just a general awareness so that any appropriate issues for the community to tackle can be forwarded with some quick guidance.

Anyway ... thoughts?!


EDIT:

One clear point relevant to the lemmy.ml admins is whether such a community would be appreciated on the lemmy.ml instance? To me it makes sense given the alignment with the lemmy project, and IIRC, new community creation was turned off on lemmy.ml so this would require your blessings.

[–] nutomic@lemmy.ml 8 points 9 months ago (1 children)

I think this is a great idea. I would be happy to help with this by answering questions or other things that need to be done.

Community creation has been enabled for a while on lemmy.ml, so you can just create it yourself.

[–] maegul@lemmy.ml 4 points 9 months ago

Thanks and great to hear!

[–] otter@lemmy.ca 10 points 9 months ago

I'd be interested as well!

[–] MxRemy@lemmy.one 7 points 9 months ago (2 children)

Yes please! I'm kind of a novice at coding and foolishly decided to try doing my own Rust + Activitypub project, so obviously I'm in wayyyy over my head. This would be really really helpful!

Luckily the Rust documentation is very good, but the Activitypub documentation is very bad, and the Activitypub-in-Rust documentation is nearly nonexistent. It must be in the Zeitgeist right now or something, I was literally just wishing that something like what you propose existed.

[–] nutomic@lemmy.ml 4 points 9 months ago

Checkout my crate activitypub-federation, I think it has decent documentation. You can also see how it is used in Lemmy, or open an issue if things are unclear.

[–] maegul@lemmy.ml 2 points 9 months ago

Ha ... great to hear.

[–] mozz@mbin.grits.dev 7 points 9 months ago (1 children)

Honestly the idea sounds fantastic, I'm just not sure I'd pick Lemmy as the codebase to do it with. There are some software projects that are worth some serious study -- Chromium, Wordpress, Linux kernel, git, Redis, Python, lichess. Just because Lemmy is in Rust doesn't automatically mean it's great code.

I'm not saying it's not good code or trying to talk down on the level of accomplishment or anything, just you got a whole symphony of pretty outstanding options to choose from.

[–] maegul@lemmy.ml 10 points 9 months ago (1 children)

Oh for sure ... I agree the idea is generally applicable to lots of things.

I'm suggesting one for the codebase we happen to be relying on right here for those interested. Part of the significance being, for those interested ... the project leads are admins/mods here too, so some good feedback loops could be brought up, where the idea is to actually practically contribute in the end.

But I agree, as an idea, there are plenty of other candidates.

[–] mozz@mbin.grits.dev 5 points 9 months ago

Yeah, makes sense. Overall I think the idea is a great one. Reading existing code is a thing that's vital for learning how to write good code, and for some reason it's not a real big part of "how to make software" education.

[–] Binette@lemmy.ml 7 points 9 months ago (1 children)

I would also like to join in! Is there a way to be notified as to when the reading club would start?

[–] maegul@lemmy.ml 3 points 9 months ago* (last edited 9 months ago)

Well at the moment I'm just making a suggestion ... so who knows what happens. But should something get started, there'll posts about it around the place and no doubt one in this community ... so I'd check in here every so often.

Editing this post would also be something that should be done ... so favouriting this post as a reminder might help.

Great to hear about your enthusiasm!

EDIT: and just to clarity, my personal approach on this would be to let the idea breath for a bit and allow others to put their hands to help manage and push it forward, including maybe the core or contributing devs. I personally am not the right person to be a sole leader of such a thing, not at all really, but am happy to contribute to making it a thing, so I'd wait a little bit before pushing really hard on it.

Which isn't to say that you or someone else shouldn't push to make things happen ... the opposite actually! But yea, me personally, I'll probably be trying to talk to some others, post the idea elsewhere a bit too, put together a more formal suggestion and see if anyone else is interested in taking on more of a leadership role.

[–] nix@merv.news 5 points 9 months ago (1 children)

That’s a great idea but definitely keep it on Lemmy not matrix. That way it’s easy to come back to and for people to find when googling about the codebase. Also it’s way easier to keep track of questions etc that need answers instead of things getting lost in the chat format of matrix

[–] maegul@lemmy.ml 1 points 9 months ago

My thoughts exactly.

[–] pseudo@jlai.lu 4 points 9 months ago* (last edited 9 months ago)

I'm very interested. Participating in active open-source project is very intimidating. Especially when not very strong technically or when suffering of imposter symptom.

I would like to build a place so people feel welcome and at ease to start contributing.
And I would love to be part of a group of people who would start discovering the topic of rust and Lemmy code base at the same time as I do.

[–] ExLisper@linux.community 3 points 9 months ago (1 children)

Sounds interesting. I've been programming in rust for some time now but didn't get to looking at lemmy's codebase yet. This would motivate me to do it.

[–] maegul@lemmy.ml 1 points 9 months ago (1 children)

Cool! What sort of things have you been using rust for?

[–] ExLisper@linux.community 2 points 9 months ago

I used rust as a backend for a simple web app (axum and sea-orm), did some scripting for integrating couple of service (simple REST calls and some data processing) and recently I've been learning to build desktop apps using Tauri and Leptos. All personal projects so far but I contributed to one Leptos library a bit. Lemmy looks like interesting next step but there's always another project I would like to do and not enough time :)

[–] Jomn@jlai.lu 2 points 9 months ago

It may be a good way for me to get into Rust a bit more. And if it could help Lemmy as a whole at the same time, it would be positive for everyone.

So I'm definitely interested in this group.

[–] CannotSleep420@lemmygrad.ml 2 points 9 months ago* (last edited 9 months ago) (2 children)

I think this is a good idea. My main question is: how could this reading club work? With a reading club for a book, you can have participants read a certain number of pages or chapters and discuss those readings regularly over some time frame. There's a sort of progress from beginning to end that keeps all the participants on the same page (pun unintended). How could that be adapted for reading source code and documentation?

[–] nutomic@lemmy.ml 4 points 9 months ago* (last edited 9 months ago)

You can start with a bug to be fixed, or a small feature to be implemented. Find out where the relevant code is and understand how it works. Then think about what needs to be changed. You can also look for other ways to improve the code along the way, like writing comments or tests. All of that could be done collaboratively in a thread.

[–] maegul@lemmy.ml 2 points 9 months ago

Yea basically what nutomic said ... it's not really a pure "reading club" but a collection of threads/conversations about trying to understand something about lemmy's code base, rust in general and any issues, bugs, implementations, feature ideas/projects.

A basic "reading club" activity would also be included, which would actually be very valuable ... trying to outline and understand the basic structure/architecture of the code base (on which I'm sure any contributors could certainly provide some guidance).

Then there's also the aim of having people learn rust using lemmy as a practical example as well as the community itself.