this post was submitted on 29 Dec 2023
21 points (95.7% liked)

Programming

17550 readers
178 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 2 years ago
MODERATORS
 

cross-posted from: https://sopuli.xyz/post/7432003

I've just transferred all of my serious projects on Codeberg over to a separate organisation, and I've noticed that there are now only two mediocre repos on my main profile. Does anyone have any ideas for simple, handy things I could build to flesh it out?

I code mainly in Python, I know HTML (but not JS), I regularly use Bash and Zsh, and I am learning C++.

top 21 comments
sorted by: hot top controversial new old
[–] [email protected] 15 points 11 months ago (2 children)

Have you tried writing a program that checks if other programs will ever finish running? Should be a quick and easy project!

[–] [email protected] 2 points 11 months ago* (last edited 11 months ago)

Adding a Turing award to your profile is certainly one way to flesh it out

[–] coloredgrayscale 1 points 11 months ago* (last edited 11 months ago) (1 children)

Process.start(program, arguments)
Print("it finished")

[–] [email protected] 3 points 11 months ago (1 children)

"Will ever finish", not "has already finished". It needs to predict.

It's a reference to this.

[–] coloredgrayscale 0 points 11 months ago

I'm aware, the halting problem is semi decideable - only positive instances of the problem can be decided.

[–] [email protected] 9 points 11 months ago (2 children)

Why would you need to flesh it out it the first place? If you have serious projects I take it you're not total beginner, so don't waste time on projects with no purpose.

[–] ericjmorey 4 points 11 months ago* (last edited 11 months ago)

The fact that everyone else skipped to giving suggestions is absolutely wild to me. I hope OP sees your post and takes it seriously. Their only response to a comment noted that they are worried about the project they're interested in being "too professional". What has them thinking that any of these concerns are important?

[–] [email protected] 1 points 11 months ago (1 children)

My objectives are education and fun. I enjoy programming, I want to learn more, and I've been inspired by Brodie Robertson's recent video on novelty software as well.

I'm also applying for computer science courses at a few universities at the moment, and I want them to be impressed. Two repos for projects that haven't been updated since 2022 isn't the best look.

[–] ericjmorey 1 points 11 months ago (1 children)

Show people your serious projects. Why are you suddenly pretending that you can't?

[–] [email protected] 1 points 11 months ago

The link I gave them was for the organisation I moved the serious stuff to. I did this so I could have more basic, novelty, and experimental repos on my Codeberg, as well as so that other people can "join" the organisation to help work on the projects.

I don't know where you got the idea that I'm pretending I can't show people this stuff. That's not at all the case. I am proud of the software I've written; I just thought I could organise it better.

[–] onlinepersona 5 points 11 months ago

How about rewriting a Python project in Rust? You can start slowly by moving out a part of your python project to rust with pyo3 and writing a module in Rust that's called by python.

If you want to have some fun, you can start out with writing a small game in Godot.

Or learn how to create a deterministic developer environment using devenv. That means that regardless of on which machine or environment your open your project in, the dependencies will all be the right version and so will the tools (debugger, live reload, db, etc.).

[–] [email protected] 5 points 11 months ago (2 children)

A CRUD webapp, or a text adventure in C++ with object orientation in mind

[–] [email protected] 2 points 11 months ago

Interesting. I think an online Markdown editor, maybe with S3 as a storage backend and a button to convert to PDF, could be a useful CRUD webapp. Great idea!

It might be a bit too professional for my personal repos, though. More suited to the organisation I just moved everything to.

[–] mrkite 1 points 11 months ago

If you're going to do a text adventure, don't deprive yourself of using the most English friendly dsl ever, inform 7.

[–] [email protected] 4 points 11 months ago (1 children)

Perhaps try making a simple web chat application. I recommend it for a myriad of reasons:

  • You'll get to touch upon all the layers of a web app (DB/backend/frontend) in a manageably small way.
  • You'll be able to make multiple choices to learn different technologies - like which database type to use (SQL/document), which message passing method to use (requests/sockets), which frontend framework to use (Solid/Svelte/HTMX/etc), and so on.
  • Getting a minimum working system is very fast. You can easily spend less than a day completing this, even as a novice.
  • Once completed, there are many extra goals you can set yourself. Try adding roles, commands, enable sending pictures, embedding metadata for links, etc. You need only look to your favourite chat app for your next idea!
[–] [email protected] 2 points 11 months ago* (last edited 11 months ago)

Good idea, although I think I'd prefer to make a desktop app. I know HTML, but static sites are as far as my web programming goes.

However, with a bit of Python or C and a PGP library, I could probably have a go at making an encrypted P2P chat service.

[–] [email protected] 3 points 11 months ago (1 children)

Instead of starting your own project, have you considered simply contributing to an existing open source project instead?

[–] [email protected] 1 points 11 months ago (1 children)
[–] [email protected] 2 points 11 months ago

I’m glad you agree. Honestly, as someone who has also struggled with this question, I wish I’d done this earlier, because there’s a lot of advantages to it.

It takes a lot less planning and upfront time investment before you get to see your work make a difference in the world. It’s not immediate gratification, mind you, because pull requests can sometimes sit there for days or weeks before someone has the time to review them, but when they get merged, and you get to see the feature you worked on in an app you actually use, it’s still a great feeling.

Most projects will also give you contributor credit, so your name and/or GitHub handle will show up on their repo, website, or in the app’s “about” page, and you can claim that on any job application you might submit in the future.

I honestly think it’s a great way to scratch your own itch (because you can pick what issues you want to work on and build features you’d actually want to use) while also helping other people and benefitting open source as a whole. Any reasonably popular project generally has a massive backlog of open issues, so if you’re at a loss where to even start, you can just look through there and pick something that seems doable.

[–] canpolat 3 points 11 months ago (1 children)

Are you interested in working on a text editor? If so, I have an idea I plan on implementing myself for fun: a clone of HeyNote with some added functionality. HeyNote is a simple buffer that consists of blocks. It's useful when you just want to note a simple block of text (an SQL query, log output, test data) but you are not interested in structuring it. What HeyNote lacks is the ability to add title and tags to blocks. It's not an alternative to other note taking applications. It is just a buffer with unrelated blocks in it.

[–] [email protected] 1 points 11 months ago

Sounds interesting, but maybe a little too advanced for me.