💾 Archived View for station.martinrue.com › dimitrigorvachov › c221e05266854e95abe5b1ac2ea711dd captured on 2023-09-28 at 17:28:30. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-03-20)
-=-=-=-=-=-=-
are there any intermediate coding projects I can do that would be fun? I’m sick of making guess the number games and chat bots
2 years ago
@dimitrigorvachov yea roguelikes are "traditionally" textbased, though many modern entries offer actual graphics in addition to ascii. I consider utilizing only ascii in the beginning of development freeing, as one does not have to scratch their head on choosing a graphical game engine to learn (or rolling their own), allowing to focus on actual game mechanics pretty much straight from the start. And personally as someone not too graphically gifted using only text is also a lot faster and even easier to eyes :D · 2 years ago
There is beauty in simplicity - like gemini, but modern software development is a more like a hardware store than primitive survival: You can buy bolts, glue, and chunks of wood and assemble them into whatever you desire. You need to know how to use a hammer and saw, but you don't need to learn to use a sheet metal brake before you can mount a hinge.
(Even in computer hardware CPU's, ALU's and on-chip peripherals (eg i2c, audio processors, uarts) are now available as drag-n-drop designs that can be compiled into a design before being sent to a silicon fab. How cool is that?)
Want to implement a gemini server? You don't have to understand how TLS works, you just have to call into the openSSL library.
Want to do some speech synthesis? SciPy can do all your signal processing for you. · 2 years ago
40 years ago to be a programmer you had to know about how to poke registers on a CPU. These days it is possible to use AI or computer vision to categorize objects without any understanding of what the computer is actuall doing (do you know how caches on a modern CPU work, I sure don't ).
The more of the black boxes you understand, the better job you can do, but you don't need it to get started - you'll learn it as you go. · 2 years ago
@dimitrigorvachov As a first guess yes. As a second guess no.
As an example: today I spent implementing (on a web frontend) the ability for a user to query and visualize data about a location on a map. I have only very fuzzy understandings of what data goes over the wire, what format the map data is stored in, what spatial partitioning is behind the query, how API keys work, how the networking hardware works, how the GPU displays the map, how the OS allocates resources, how the JS VM performs JIT compilation of my code etc. etc.
But I can write some rather simple code, and it works. · 2 years ago
@sdfgeoff for a speach synthesizer you need a lot more than programming knowledge. You need a knowledge of DSP.
For servers you need to understand The protocol or whatever you are trying to serve to the client. What I’m trying to say is some projects acquire knowledge more than just programming. · 2 years ago
Same with servers. For the normal web, hit up nodejs, pull in some (about a billion) dependencies and 100 lines of code later you have a server.
Don't think you have to know everything yourself. A programmers time is:
70% reading research material
20% thinking really hard
5% trying to remember how the solution you implemented yesterday worked (you're sure you saved a backup to VC, but....)
5% writing new code that doesn't work
<0.1% writing code that's actually useful
For reference over the past three /days/ at a fulltime programming job I've got ~50 lines of code ready for review. It's supported by ~500 lines of code that I've knowlingly discarded, probably >2000 that I wrote that never worked at all, 2 pages of written documentation/decision making, and 5 pages of (typed) scribbled notes. · 2 years ago
I had a math lecturer who said: 'let the dead people do the work for you' and the same applies in programming.
It is much easier to wire together some open source libraries to do speech synthesis than it is to write the memory manager of an operating system from scratch. You're already running on top of a 10 million line of code operating system, so don't be embarrased to throw a couple hundred thousand more lines of other peoples code on top of it! · 2 years ago
@sdfgeoff The things I wanna make are really advanced. Things such as a server of some kind or a speech synthesizer or something like that. I’m looking for things to build my way up to that so the projects people are suggesting I think will help me build my skills a lot more than trying a big project and burning myself out · 2 years ago
@samwise i’ve never actually thought of doing that. I’ve heard the term before but I don’t know what they are but I will definitely do reading up on them for when I want to start the project, a game does sound fun to make especially roguelikes. aren’t they mostly text based? That would make them easier to make i think · 2 years ago
Find something _you_ want the computer to do. It doesn't matter if someone else has already written a program to do it or if it's trivial or harder than you think you can achieve, try to write it anyway.
When I learned to program I was interested in making games, so I kept trying+failing until I understood enough to actually make them. · 2 years ago
A roguelike is something that I think every programmer should try making at some point of their career. You can get a basic game going pretty fast but you can always go deeper and deeper adding more complex mechanics. I'm currently adding over time effects to my project, so I can have for example poison damage or slow heal X amount per turn for N turns. · 2 years ago
@dimitrigorvachov Yes, they exist. It's a single line usually of 8x2 (the usual 6x2 plus an extra two on the bottom for a cursor, status, etc). · 2 years ago
@p13 also to addd to what I was saying because you can't edit a reply, I am using elaho on mobile · 2 years ago
@p13 I have never heard of a braille terminal before, do those even exist?
Have you heard of a screen reader? they are able to read things such as buttons, checkboxes, headings, and many other Ui elements. They also work in terminals · 2 years ago
@dimitrigorvachov Are you using gemini with a braille terminal? · 2 years ago
@isoraqathedh That may be difficult because I wouldn't be able to see the diagram · 2 years ago
Here's a project that I've always wanted to complete but can't: turn a chess piece whose moves are described in Betza's Funny Notation, and turn it into a move diagram given a location of a board, the size of the board, and the location of other pieces. Make it be able to draw various ASCII styles as well as a graphical option. · 2 years ago
@kevinsan no link unfortunately as I’ve never actually released anything I’ve made. I’m just getting ideas from people for when I have access to a computer again. I will take yours into consideration and if I ever make it I will make sure to tag you in a log about it · 2 years ago
chat bots sound fun. do you have a link? I need to practise my social skills! My idea is to combine a game about learning the periodic table with Pokemon prizes - get enough right answers, earn the pokemon for that element. How about doing that? · 2 years ago