After the (temporary) defederation announcement of earlier i checked the Lemmy repo to see if there was already a ticket on the federation limiting option like Mastodon’s that people mentioned Lemmy doesn’t yet have. Not only i didn’t find it, i also saw that there’s about 200+ open tickets of variable importance. Also saw that it’s maintained mostly by the two main devs, the difference in commits between them and even the next contributors is vast. This is normal and in other circumstances it’d grow organically, but considering the huge influx of users lately, which will likely take months to slow down, they just don’t have the same time to invest on this, and many things risk being neglected. I’m a sysadmin, haven’t coded anything big in at least a decade and a half beyond small helper scripts in Bash or Python, and haven’t ever touched Rust, so can’t help there, but maybe some of you Rust aficionados can give some time to help essentially all of Lemmy. The same can be said of Kbin of course, although that’s PHP, and there is exacerbated by it being just the single dev.
I am a Software Engineer by trade, and I’m right now trying to learn and contribute to their code base but unfortunately, it takes a lot of time to get used to someone else’s code. Hopefully, contributions will pick up once we’ve all had some time to look at it.
I’ve been programming as a hobbyist for a decade on and off but I’ve still never contributed to any projects but I’ve long wished to. Major imposter syndrome. Would working on this be next level difficulty?
No, it wouldn’t be. The first step is honestly to get it running locally, then make sure debugging and breakpoints work, and then pick a feature you want to add or improve, use the debugger to see what code currently executes, and then hook your feature into it. Make sure to familiarize yourself with Rust syntax if you’re not already, but I think you could do it.
Basically like being at work lol. Would need to learn Rust first, though. I heard it’s complicated, but not sure what that means.
Kind of in the same boat as you. Self taught when it comes to coding and I’ve dabbled in Rust a little. It’s way over my head, or was last time I messed with it. Strongest with C# (thanks Unity) for reference. Not saying not to do it but just giving a heads up from someone you might relate to.
Maybe this is a good excuse for me to (apologies) shake off the Rust and contribute some. I’ve only contributed once or twice to a FOSS project, though, so I’ll need to read up a little on best practices and etiquette.
Don’t shake it off! They need all the Iron Oxide they can get, from what I’m hearing.
Kind of thinking the same thing, I want to learn rust, but have not gotten an excuse to start using it. Maybe dedicating 8-16 hours per 2 weeks could help me learn rust and do something more complex than writing hello world. I have some additional time in a month or so, so might as well try
Yeah don’t let fear inhibit you too much. I started contributing and everyone has been very helpful in the PRs , no one made me feel like an annoyance
I’m a professional dev who’s been doing Rust for a few years, and I just looked into their repo for the core project this morning. They’ve tagged some issues as being good for newcomers, which is helpful. I already reviewed someone’s code there to try to help.
I intend to try to pick off some issues. I like to write code, and I’d like to see this project improve.
Maybe I should learn Rust for this. I’ve never used it but otherwise I’ve got 20 years of programming experience so can probably pick it up. I’m very experienced with web development so maybe that’s a better area where I can contribute.
Someone mentioned that kbin uses PHP which makes it tempting to switch over… I do experience with PHP.
I’m in the same boat. I’m thinking this might be the opportunity for me to give Rust a try.
Also in the same boat, and I’ve been putting some thought into combing through the code and actually giving it a go between finding both Lemmy and a game called Veloren that are both small community-made projects in Rust that could use some extra contributions.
Similar 20+ years programmer here. Even before Lemmy Rust was top of my list for languages to learn. Now I’ve got a boost in motivation too.
Haha same. Everytime I try to learn Rust I fail because of how difficult it is. At least now I have a reason I failed, as opposed to “I want to learn Rust”
They probably could use more manpower to some extent but we’re all forgetting The Mythical Man-Month; just chucking more bodies at a software project doesn’t necessarily speed it up any more than nine women can have a baby in one month.
That said I’m happy to do the odd bit here and there if there’s any call for it, either for lemmy itself or BeeHaw.
You’re right of course, but there’s tons of individual features which can be worked on in relative isolation. The devs need help with moderation tools, performance, frontend, etc. With 200+ open issues I’m sure more developers making proactive pull requests can make a difference.
I would love to participate. I’ve been doing Rust professionally for seven years now and I understand the language very well. Too bad there is just so much work already and adding a new project feels a bit too much. I’d love to read the source one day though, maybe I find some time.
They aren’t in serious need. The lemmy and lemmy-ui projects have 4-5 regular devs as I can see it. It’s just only 2 people being listed. I believe they are also working on getting help managing lemmy.ml.
As I see it, neither of them spend their time on jerboa either, it has two other regular devs.
A lot of the issues that are created are either duplicates, unimportant or useless suggestions. But there are still some major design decisions that are being actively discussed.
Nutomic and dessalines are just the only paid full-time developers of the projects.
There are some pretty serious bugs, though. One serious bug is that when a registration is denied, the applicant has no way of knowing, it doesn’t send an email like it does for approvals - you can find out more here: https://github.com/LemmyNet/lemmy-ui/issues/1096. Another serious bug is after rebooting, active/hot have trouble updating, which makes Lemmy appear much less active than it actually is: https://github.com/LemmyNet/lemmy/issues/3076
These are just two serious bugs I know about, they are tier 0 bugs IMO, and I’m sure there’s even more serious bugs that are even more serious than these two.
There’s the ticket about clearing deleted messages after 30 days (right now it’s keeping every deleted message in the DB until account deletion which is bonkers to me), and i recall seen a couple other rather important ones when i was looking for one relevant to federation options (which i DID NOT find, and which would have prevented the defederation of those two instances). So yeah, there’s non-urgent tickets and duplicates and whatnot, but there’s important stuff too.
With the clearing deleted messages after 30 days, I take it that would also delete the username visability after 30 days too, or would it still leave the username of the deleted comment even after 30 days?
That probably must be another ticket, this is specifically about it keeping the contents of deleted messages in it’s current state, which is not good.
Ah I see, fair enough, thanks.
Interesting… lol didn’t know that. I feel like it should be configurable per instance
Remember, Lemmy is RECENT, many things are still in development, that’s why i said that the Reddit shitstorm was bad timing, should’ve happened in a couple years or so :P
I’ll admit that those are serious issues. With that said, one of them is in progress of being solved by one of the maintainers and a volunteer instance host. But yes, it could use more people
Who are the other devs if they’re not listed?
The ones listed are the ones with write access as far as I’m concerned. The others just work with pull requests. You can go try see for yourself. No matter though, of course more developers is desirable, but my takeaway is that it isn’t as serious as OP makes it sound like
If a commit is brought in via PRs, they will be listed as contributors. It is at 153 contributors with 2 main ones. Not too shabby.
Front-end developers
There was a posting I saved about some people saying they were going to code on front-end: https://lemmy.ml/post/1199330
I wanted to, but the tech stack was a barrier to me unfortunately.
Post won’t load, do you remember what the stack was like?
I didn’t read the referenced/linked post, but you can check out the UI sources at github.com/LemmyNet/lemmy-ui.
It’s typescript - so a “heavy JS environment”. You’ll need nodeJS or another JS compiler.
I started looking into building a theme for Lemmy, but it was quite difficult to get everything to run well locally. When I did a checkout the main branch had an error in the Rust code and the main branch of the ui had an error that prevented the websocket from connecting to the back-en. I did get it to work by fixing the small error in rust and using a branch that fixed the websocket error. But it was hard to get started.
I was wondering if there is a Lemmy development community here on Lemmy. I tried searching for it on Lemmy.ml, but the cummunties about Lemmy and support don’t really look like they are about development.
That’s a good point, there should be a community about developing Lemmy itself on the main Lemmy instance, pinging @dessalines@lemmy.ml and/or @nutomic@nutomic@lemmy.ml, it would be the place to recruit to help, maybe even make posts about specific issues that need attention or something
If you have a matrix account there is a chat for lemmy development: #lemmydev:matrix.org
That’s great to know! I’m contributing to the project but spent a whole night after work trying to find a working combination of branches for the ui and server. Their contributing docs for local development are poor. Which I should probably do something about besides complain… lol
Thanks, I joined Matrix server.
What is matrix?
It’s a communication protocol with a federated network - see https://matrix.org/
I wish so badly I could code, I spent 8 years trying to understand it and get into the industry, but it never quite clicked in my brain. Soooo I do IT infrastructure. I wish so badly to contribute code
May I ask you more about your experience attempting to learn? I don’t know if it’s because I can program but eight years seems a long time. In return, I’d be happy to offer you a few pieces for advice that could help?
That’s so kind of you!
I started by aiming for front-end web dev. I learned HTML & CSS (I know, we’re not PROGRAMMING yet). At the time, that’s all I was hearing it’d take to get into the role. Then it was “you should probably know some Javascript,” and I wasn’t ready for how big of a jump that was. By the time I started understanding it, it became “learn jQuery,” which I learned and used for a couple of small websites, then came the libraries…
“AngularJS is the future” well now I need to learn Git, compiling, CMD…
ReactJS starts becoming a thing and I say “seriously? I’ve learned enough of these things, quit moving the goalpost, React isn’t going to stick around”
Yeah…it definitely stuck around…but as an Open Source nerd, I got super excited by VueJS and started learning that. No jobs in that apparently, aaaand I no longer want to do web dev, especially since I never reached the point of enjoying coding, it was always a means to an end.
So there were two major issues for me: \- I never focused on one language enough to truly LEARN to code, it was a constant sense of “I’m not keeping up”. I may be able to write the syntax, I might know the basics about functions, vars, and looping, but never really got using it in a super practical sense other than to try a couple of personal challenging projects that my ADHD arse couldn’t ever stick with. \
- Me and coding speak and think very differently. Stick with me here, I know, it’s a language, but the way something should be written and formatted are different from how I think it should be, and this is a very hard one to explain to folks. The best example I can give is that I might say like (and this is a poor example because remember, I don’t code and I’m not doing any active coding projects) \
var person = { userInput } var num; function findNumberOfLetters (person) { num = length(person); } function response(person, num) { findNumberOfLetters(person); console.log("Hello " + person + "! Did you know that your name has " + num + " letters in it? Numbers are rad!"); }
I’m sure I did things wrong, but again, this is just for the sake of example. So, I write something like this thinking that it’s nicely structured and easy to read, and inevitably won’t work. I pass this to a friend, and the answer seems to always be a less structured, more nested code. So for this example, something like \
(function response(userInput) { console.log("Hello " + userInput + "! Did you know that your name has " + length(userInput) + " letters in it? Numbers are rad!"); })
Obviously their answer is shorter and this isn’t exactly a complicated program, but for some reason, making the thing that provides a response to the user to do any of the logic feels wrong and messy to me. It’s a really hard thing to explain, I hope this makes some amount of sense, but I just process things very differently than code does, and it just ends up really incompatible. I’ll beat my head for weeks over-complicating something because I want it to “be clean” only for someone I know to come up with something that actually works within seconds.
This isn’t to compare my skills against them, it’s to say that I’m thinking about it wrong, I’m organizing it wrong.
That said, knowing how code functions has helped me to know enough to be dangerous and apply it in other ways, such as building Azure Logic Apps to manage ticket intake, or building alert monitoring. So it’s come in very handy in its own way, I just don’t have to competency to actually make any contributions to Open Source projects, especially since I don’t write in two of the coolest languages that I wish I could learn: Python and Rust.
No pity party here, I love what I do and I don’t intend to change careers to coding, but I do end up feeling helpless in the face of instances like this where I wish so badly to contribute to a project that I care so strongly about and want to see thrive. I know there’s other ways to contribute, such as providing graphics, UI, documentation, financial, hosting, etc. but coding always seems to be the most in need to keep up with demand, and with more and more projects coming out all the time, the more programmers are in need to see them through.Going front-to-back
The entirety of your first paragraph is a humongous red flag. Your rationale makes sense, and it appears at each stage of the process you made logical decisions but the end result is disaster. You are evidently a knowledgeable and intelligent person, so I’ll ask you now to consider how old the underlying technologies on the web are, and how the web looked when they were written. Web frameworks exist to bridge the gap between languages and methods that are popular in the present day and the arcane mysteries of the world wide web. They bridge this gap with magic.
Now, this magic is a wonderful thing. It enables developers to make applications for the web in a way they’re familiar with and saves them having to think about the ‘web’ part which is:
- Arcane.
- Reasonably boilerplate.
However, if you’re trying to ‘learn programming’, starting with web dev is backwards in my opinion. You either choose to use a framework, and then you’re not really learning programming: you’re learning the framework. I always find this unrewarding, as it feels like the framework is doing all of the work and robbing me of the satisfaction. Furthermore, when you’re in the ‘beginner mindset’, you want to know how things work, you want to understand, you want to learn. Web frameworks are powerful when you focus on the ‘what’ and less on the ‘how’. Experienced developers have an understanding of ‘OK, this is what the framework abstracts for me, I’ll let it do its job and I’ll do mine’ and ‘Oh, I am not sure about this and it’s important I learn’. This is obviously a skill only gained by experience.
Furthermore, as you touched on, web frameworks go in-and-out of fashion and can have radically different approaches. With professional experience, you can apply your knowledge of one framework to learning another. As a beginner, I do not believe you have a broad enough understanding to be able to make connections between frameworks. This leads to your feeling of always being on the back-foot.
My recommendation for anyone who wants to learn programming in-and-of-itself, rather than to a specific end, is to start low-level. C was my traditional recommendation, though I may be altering this to Rust. C will never let you forget that you are programming a computer. This might sound ridiculous but it’s remarkably easy to lose track of and once you do, everything (in my head, at least) can get a bit esoteric and conceptual, and I find the ‘grounding’ deepens my sense of satisfaction working with computers.
My diagnosis as it stands is that you attempted to work from ‘abstract’ (web frameworks) to ‘concrete’ (learning how to program) and I’d always advise the reverse. Use C to gain a clear appreciation for how a programming language is altering 1s and 0s on your machine. Then build up with other abstractions, languages, and, in due time, frameworks.
Thinking differently
It sounds to me that, in your experience, you made some correct assumptions and some very incorrect assumptions. Correctly, you identified that structure, ease-of-understanding, and writing your code in a style that you’re comfortable with is optimal. Incorrectly, you assume:
- Differences in programming styles are more often objectively better, than subjectively better.
- There exists no good programming style that will ever match how you conceive of code.
Now, these aren’t merely incorrect assumptions, they’re incredibly incorrect. In the professional sphere, those who write code that is well-structured, easy-to-reason about, and is well documented are sparse but they are often highly valued (in good teams, at least). I was always taught, and still vehemently believe, that clarity and readability are absolutely the first priority. Speed of execution is a secondary concern. Terseness is not even a concern of mine at all.
Good code is easily understood by computers, as well as human beings. You are the first human being who has to understand your code. You should always write it in the way that is most easy for you to understand. It is a darn sight easier to optimise neat code, than it is to neaten optimised code.
I believe you’ve come to these conclusions because of your experience learning web development. I find web frameworks and JavaScript as a language to have syntax that is odd and inflexible. The pseudo-code you provided was in JavaScript and is reminiscent of many of the traits that mean that even experienced developers such as myself find it difficult to parse. There’s a reason callback hell is a meme. If you get the opportunity to use some other languages, I believe you’ll see there’s more flexibility in expressing yourself than maybe you’ve had the opportunity thus far.
Furthermore, I am reticent to comment on what is valued in the JS community, as I have never written anything of note with the language but looking at the two code snippets you provided, the first snippet smacks more of a ‘professional’ developer. It’s more modular, finely-grained, expressive.
Finally, if you’re still clinging onto the notion that coding demands a ‘particular’ way of thinking, I encourage you to look-up internet rants from people who know a lot about Java, Python, C++ etc. bashing Haskell. Haskell is a beautiful language that forces its developers to write in a style known as ‘functional programming’. I won’t go into depth about the differences and why functional programming is amazing but let’s put it this way:
How far do you believe you could get in JavaScript without:
- Being able to loop?
- Being able to re-assign variables?
In Haskell, you cannot do either of these things and it’s for the better.
Conclusions
I’m glad to hear you’re happy in your work but disappointed that you were unable to find a groove with programming. From what I’ve read, you absolutely seem to be the kind of thoughtful individual who should enjoy it.
I’d encourage you to start learning Rust. I am learning Rust at the moment myself. Pay close attention to references and memory management. When your material discusses memory concepts, such as the heap and the stack, ensure you develop an intuitive understanding of how they work. Don’t just view this as an important part of your development (one many developers neglect!) but as a window into what is happening on your machine. If your brain is anything like mine (and I think it might be), it’ll further your satisfaction.
Avoid Python. Python is tremendous is you want to use a tool that mandates Python. It will hinder your learning and force you into bad habits if you learn it early. Furthermore, when your project gets to any level of complexity, it’s going to be far more pain than its worth. I understand why Python is so popular in some non-programming domains but it has no appeal to me as anything more than a scripting language with boundless 3rd party libraries.
Look at functional programming, if you’re curious. This free book on Haskell is popular for a reason. Functional programming ideas are slowly making their way into all mainstream languages, for a very good reason. They force you to think differently, and it might be different in a way you prefer.
Thank you so much. This is a terrific insight. A little later I’m going to sit down at my PC and type something up I think will help.
I’d ask you as a fellow ADHDer ✊ if I forget to please remind me to write up my response 😂
EDIT: Response now posted here
I’m a programmer of 25+ years. Everything written above is spot on. I too started with C and I still love that thing like my first born. It is so immensely satisfying writing something in C that a) works b) doesn’t leak memory and c) passes all your unit tests. Nothing else compares.
I too looked at React and hated it with a passion. Then I saw VueJS and kind of liked it. Then I saw Nuxt and now I’ve gone all in on NuxtJS. It is so simple and well-thought out compared to the shambles that is React. It’s very satisfying to use. Rust is next for me.
I’ve learnt well over 10 languages over the years. Some well, some well enough. Learning a language is bit like reading a book. If you’re a third of the way in and it’s doing nothing for you, don’t waste your time. Grab another one off the shelf and try that. Don’t put pressure on yourself - it should be enjoyable, not stressful. Just chip away at it bit by bit and enjoy the little discoveries.
Don’t worry so much about your coding style. From the examples you gave, yours is much easier to follow than the second one. And, you know what? Most ‘senior programmers’ I’ve worked with have been bad coders. The bar is not as high as it may appear.
Sounds like you’re currently a systems guy with a bit of programming skills. That’s an awesome combination to have, and mirrors my own all those years ago. The best bit is your have the freedom to learn programming as a hobby, without the pressure. Enjoy the process. Watch some videos by Sebastian Lague on Youtube, they’re magical.
Best of luck with your programming journey. It is an immensely enjoyable hobby, and ridiculously useful skill to have.
Thank you for taking the time to read my response. I really appreciate having the approval of someone with decades of experience (which, I very much don’t). Out of curiosity, when you started programming would have been the early days of Java, C++ etc. and the start of the ‘OOP revolution’. Can you recall why you started with C, when OOP was very much en vogue?
That’s a very good question. Java and OOP really were new and exciting things when I first entered the workforce. But, I first started programming long before Uni and joining the workforce. I first started programming on one of these: https://en.wikipedia.org/wiki/Intellivision using an ‘Intelliputer’. Then I learnt Logo on an Apple IIe. Then GW-BASIC on MSDOS, then PASCAL, then C. Then I stuck with C for a long time, including most of Uni.
So, by the time Java and OOP came along, I already had 10+ years of procedural programming behind me. That actually made it really difficult for me to to learn OOP. It was some weird paradigm that didn’t align with anything I knew. So I gave Java a mostly wide berth for as long as I could and focused instead on Perl, then PHP.
Both of those ended up getting OOP abstractions crammed into them, so eventually I did end up learning OOP, but it was more through osmosis. By then Java had largely come and gone. As much as it saddens me, Perl too largely died. That left me with PHP which, to be fair, was becoming quite a nice language by then.
By now I was a devout OOP developer and really enjoyed the OOP changes to PHP. Python, being object based, was the next logical choice. Javascript was still a pile of poo. Then Javascript got OOP abstractions too and suddenly was all the rage. Then they started putting the frontend on the backend (Node) and I was truly lost at sea. To me it it was twice as much work to build something (API + frontend) compared to the old server side rendering. It seemed way to much effort just to avoid a page load.
Nevertheless, I tried React and I hated it, it made no sense - though Javascript was looking a lot nicer by then. So I held off a little longer on adding ‘frontend dev’ to my resume, then NuxtJS came along and here we are.
So, long story short, I’ve been doing this forever. I technically review team code all day, every day. I know good code, I know bad code and have seen shit that still gives me nightmares.
The funny thing is, I have written dozens of cool tools that I think are pretty damn clever, yet I have never open sourced anything. My reason is the same as yours: Because I still don’t think any of it is good enough.
Likewise, you gave an amazing response and I want to dedicate some time to properly reading and responding to it, so I’ll be responding when I have a good opportunity to commit :) Thank you so much for such a thoughtful and thorough response, I really look forward to going over it
Here is a thing I found helpful in my >10 years of programming career: break your problem from top to down (aka Top-Down programming).
Consider this problem: I want to send a post card to my friend.
Now let’s break down this problem into several steps:
- Obtain a post card
- Drop the post card at a post office
Next, each of those problems can be broken down even further.
Obtain a post card:
- Visit a store that sells a post card
- Select a post card to suit your taste
- Go to the cashier and pay
Now reach of those steps can again be further broken down into even more sub steps:
Visit a store that sells a post card:
- Identify a nearby store that sells post cards by googling them and find their address
- Open Google Maps to plan a route to the store
- Get out of the house and enter your car
- Drive to the store
You see where I’m going? Break your problem down onto actionable pieces you can solve in the programming language of your choosing. How deep you go depends on what programming language to use. If you’re using a High Level programming language, you usually don’t need to break down the problem too deep in order to solve it. But if you’re using a Low Level programming language (e.g. assembly), you’re going to need to break down your problem very deep into actionable pieces that can be solved in assembly.
Hope that can help you.
Oh sorry to hear that :-( I feel very lucky now that it just seemed to click for me
Kinda the same for me, although I recently moved into something more security focused.
I know a little python though! Should anyone ever need one more “knows a little python” guy lol
Yessss, honestly, it really helps to have that knowledge, I’ve been surprised at how often it comes in handy
@mobyduck648@mobyduck648@beehaw.org
They probably could use more manpower to some extent but we’re all forgetting The Mythical Man-Month; just chucking more bodies at a software project doesn’t necessarily speed it up any more than nine women can have a baby in one month.
Sure, but look at the rapid progress llama.cpp made in the past 3 months, especially in the 1-2 weeks after its launch
btw, my instance just linked to this community so I don’t see your comment (which is why this is a root level comment)
If you copy a link to the comment and put it into a search bar (on your instance) you can force a server to prioritise this one comment to load on your instance. Then you can reply with your comment.
Oh good to know!
Hey, you should point out that Georgi Gerganov is a 100xer programmer
Yes but my point is that 6 pages of PRs were created within 10 days of the repo being launched which was accomplished by chucking a lot of bodies at the project.
The previous calls for forking were not convincing (political), but this post makes sense to, if the community is unable to contribute because of a lack of attention from external help.
I’m not sure if that’s the case and I’ll have to have a look myself.
I’m happy to contribute, and hopefully the process of new contributors (CONTRIBUTORS.md) is easy and straightforward, and the issues are triaged by someone dedicated, perhaps from the community.
Honestly I’m casting my support with KBin after hearing about the political affiliations of the main Lemmy dev. It’s worrisome because at this time of volatility, the community is going to be very fragile and stuff like that can really cause a massive problem when the community starts hitting critical mass
First, I respect you doing what you feel you need to.
That said, I think we need to be careful about how we decide what products to use or support based off the politics or history of their development. That seems like a risky game to me. How much slave labor was used in creating the very products we’re using right now, for instance?
I get that, there’s a bunch of unethical associations with everything we use. But right now the main developer of Lemmy has his profile setup with Chairman Mao as his background, his Github repo avatar is Che Guevera, and he has an entire repo filled with propaganda copy-pasta. In the past people have also pointed out that lemmy.ml and lemmygrad.ml resolve to the same IP address although this is no longer the case. Lemmygrad supports the DPRK and transitively one of the most horrific dictatorships in the world, and yet it’s advertised on the “Join-Lemmy” website.
Even if the software itself is apolitical and we can see through the open-source nature of it that it is not going to be abused to further those agendas, there’s no doubt that as that knowledge becomes more commonly known that it could severely impact the whole idea of a Federated Reddit alternative.
I guess the most important thing to consider is that the software, being open-sourced, can easily be forked if this ever becomes a problem.
Ignoring all the human and political aspects, I find Lemmy is a nicer piece of software, technically. Forking is always an option, and thanks to ActivityPub, things will remain compatible as well.
Lemmy itself seems neutral upon usage, I have not been subject to any political biases from the software itself, ever.
That’s an important question to ask. For me (and I want to make very clear that this is exclusively how I handle things for myself) there is a huge difference between things I use (or what I call passive association) and things I work on or contribute to (or what I call active association).
While im ok-ish with using their software if they don’t really profit from my usage, I wont be actively helping them. Given the state of the world and western society, I can’t really escape using products that are unethical and as a software developer working for a company I can’t really decide who gets to use my paid work and since I very much like having a bed and a roof and food and even some comfort in that, I’d rather stick to my job, but I can make a choice on who I support with my free time.
We all have to draw our own lines in the sand on issues like this and I respect yours, I’d argue on the other hand the open-source nature of Lemmy means the author’s politics shouldn’t make a difference to groups like BeeHaw which use it. A good example of this would be TOR which was developed by American naval intelligence of all organisations yet many drug dealers routinely gamble their freedom that it will protect them.
Also I’d argue as loathesome as your average tankie is (I really can’t stand them at all) they’re still a step up from the literal nonces that inhabited early Reddit.
One of the first things I did when I learned about Lemmy and joined an instance is see if I could contribute in some way, shape or form.
But unfortunately it’s written in Rust, a language in which I have 0 experience and 0 knowledge. :(
Maybe you know more about web or android development, then you could look into contributing to the lemmy-ui or jerboa.
Yesterday I was annoyed at wide code blocks being wrapped, instead of having a horizontal scrollbar, so I took 20 minutes of googling and hacking around with my minimal css skills and wrote a PR, it’s already merged and will probably show up on instances soon.
Yesterday I was annoyed at wide code blocks being wrapped, instead of having a horizontal scrollbar, so I took 20 minutes of googling and hacking around with my minimal css skills and wrote a PR, it’s already merged and will probably show up on instances soon.
Very nice!! Congratulations!
Maybe you know more about web or android development, then you could look into contributing to the lemmy-ui or jerboa.
Yes that’s definitely one the things I am leaning towards. On my main “gripes” with Lemmy right now, is the lack of keyboard shortcuts (think of stuff like, CRTL+enter to send a reply for example). So I wanna see if I can add that in the frontend repository.
Sounds like a cool project!
Make sure to check the issues/PRs, it looks like people already worked on CTRL+Enter.
Make sure to check the issues/PRs, it looks like people already worked on CTRL+Enter.
Oh damn! That’s nice! But that means I have to find another thing to do :P
I just though of one, you know how you can insert images with the “upload image” button, drag and drop doesn’t seem to be supported yet.
Idk how hard that is to implement cross platform, but many sites support it.
Usually it isn’t hard to implement…but that largely depends on the backend.
Might take a crack at this, this weekend.
0 experience and 0 knowledge so far, right? :)
That’s the point where you can make more and faster progress than any other!
Hahah… Shit, now you got me intrigued… xD
If you are familiar with programming in general, you should be able to use those skills. Also, there is front end developing to do. I haven’t looked into what tool kits they use for the front end, but I imagine CSS, HTML, and JavaScript/TypeScript knowledge would be useful.
Yeah, of course you can learn a new language. But it’s only moderately helpful for a FOSS project for random people who don’t really know the language and really don’t know the project to just dip their toes in and commit something.
Often this causes more work that it helps.
I agree with you on driveby PRs don’t help much at all. And I’m not going to pretend I’m going to sink the time required to understand how lemmy works and give quality PRs, and I don’t expect you to either. I just wanted to say, don’t let the language be what stops you.
True that. I just meant, if you are really good in that language, a driveby PR might at least be mildly useful, while if I as a Java dev start messing with a project in a language I don’t know, chances are pretty low that I’ll be able to produce something worthwhile.
On the frontend, it’s primarily React and Bootstrap. I do have some experience with React (with TypeScript), so that’s good! And Bootstrap, that has been a few years…
Even as someone with Rust experience, I found the experience of attempting to add a change to be frustrating. Aside from the fact that there’s quite a bit of unidiomatic Rust (which I can’t be too mad about, but does mean there are a lot of function signatures that just aren’t what I’d expect and caused me some pain), the compile times for even small changes are long. After just changing a struct initializer, running
cargo check
took nearly a full minute, due to all the dependencies between the crates.It’s really the best language right now for a lot of things. It’s not easy to learn but once you start to get parts of it, it’s a great feeling.
It’s sadly complicated and that’s the only problem with it. If it was less complex it would take over everything because it’s just so much better.
Unfortunately the complexity is what makes it so good. I don’t know how you could make it simpler but remain just as powerful
Always a good opportunity to learn something new.
Haha that is true… 🤔
How is PHP doing these days? It used to be hugely popular, but seems to have fallen into disregard in a lot of circles. I wonder if PHP being seen as a “easier” language than rust will attract more kbin developers?
PHP is hugely popular. People just don’t talk about it because the developers that use it mostly keep quiet and do their work :)
Every time someone says PHP is dead, it lives for another year 😬
People were saying that PHP was dying when I started using it - that would have been around 2003 I think, with PHP 4.3. 20 years later, apparently it’s still dying!
WordPress powers a crazy number of websites. I think around 35%? All of those sites are using PHP. I wouldn’t be surprised if it was the most widely deployed backend technology across all websites.
According to this, WordPress powers 43% of the internet, when you think about it it’s crazy!
I’d rather work in rust, personally. I’ve heard newer PHP has a lot of things that are better than previously, but I’ve not worked with it personally.
But on the other hand, Rust is a highly desirably language whereas PHP has a historically bad rap. I don’t think devs necessarily want easiest. They want whatever is most enjoyable to use. Tooling support also matters. Stuff like static typing, for example, makes unfamiliar code way easier to understand. I’ve contributed to a lot of unfamiliar servers and I’ve noticed that ones in languages like Go are a lot easier because the static typing means it’s easier to read the code. In particular, I found servers written in Python hard to work with, and it’s not for lack of experience with the language (I’ve been using Python for longer than Go).
How easy it is to run the code also matters. Has anyone tried that with Lemmy? I was gonna run a dev kbin instance to try and make some changes, but the amount of work it seemed to require just to run the server was more than I wanted to do at the time (I really just want as close as possible to a single command way to run the server locally to test my changes so I can verify they work). Ease of contributing is very important for me to actually bother to contribute.
Lemmy has Ansible deploy scripts, and everything is dockerized. It’s as easy as spinning up a machine, setting some config values, and running a playbook.
Almost everything is easier than rust, except stuff like Elixir or Assembly and stuff…
But rust is just better than the others. Golang is also decent, it’s fast (half the speed of rust is still very fast) and much easier to learn.
I wouldn’t say rust is harder, just different. There aren’t really many languages that are safe in the way rust is safe… Ive done a bunch of intermediate rust tutorials and i actually got the hang of it pretty quickly
I love Go. Sure, it has downsides like it’s error handling is annoyingly verbose, terrible support for functional programming, the standard library is very tiny, and it doesn’t have much syntax sugar. But damn if it isn’t the most easy language I’ve ever used. I think it has the fewest gotchas, the code is generally the easiest to read, and it performs well (especially with goroutines). Code is read far more often than it’s written and ease of understanding unfamiliar code is very helpful for getting people to contribute to your project.
Have you looked at the size of your executables and the runtime with go?
Maybe if you’ve making a web browser or some server process is useful but not for most tools because of the gigantic baggage it pulls along.
a lot of rust’s safety is basically the compiler enforcing things that are already considered modern c++ best practices
I find it funny you put Elixir In the same boat as Assembly. It’s not that complicated of a language, it just has interesting process mechanics.
Assembly isn’t ‘complicated’ either
I still use PHP extensively for a lot of my projects at work. It’s my favorite language.
I’ve been experimenting with rewriting one of my UI based reporting tools with Laravel (moving from slim/twig).
The fact kbin uses PHP piqued my interest there but I went with lemmy for my standalone instance anyway because I’d like to get familiar with Rust.
PHP used to be my main language. When they started adding more advanced type features it interested me. Then I got bitten by the strong typing bug and started teaching myself Haskell. I didn’t end up getting very far, but now I strongly prefer strong and static typing.
I don’t dislike PHP, even now. If I wanted to use an interpreted language for a web project, I’d probably pick PHP. I sure like it better than Python, Ruby, and JS. I just don’t find myself wanting that kind of language anymore though.
Saly, I have no experience in programming, but I’ll at least help with transations.