Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Buck Turgidson
Feb 6, 2011

𓀬𓀠𓀟𓀡𓀢𓀣𓀤𓀥𓀞𓀬
how do decent sized open source projects actually manage the structure of their projects? almost every project ive ever looked at doesn't have any kind of design document or documentation summarising how the project source is structured, where to find this or that, etc. do project maintainers and devs just internalise this poo poo because they work on it every day?

Adbot
ADBOT LOVES YOU

Buck Turgidson
Feb 6, 2011

𓀬𓀠𓀟𓀡𓀢𓀣𓀤𓀥𓀞𓀬

bob dobbs is dead posted:

70% of open source maintainers work alone except w randos reporting bugs. 25% have 2 or 3 peeps who dm each other. the rest are relatively famous and more formal

so if the lone maintainer of some project disappears or gets hit by a bus, someone's basically just got to figure it out from the source code?

Buck Turgidson
Feb 6, 2011

𓀬𓀠𓀟𓀡𓀢𓀣𓀤𓀥𓀞𓀬
i've seen that before... i was just wondering if maybe i was missing something about how devs document the actual structure of their projects. like a car might have an exploded diagram of its various parts etc, so you can get an idea of how everything fits together, what each bit does (beyond guessing what burp.c and huh.c do)

lol

Buck Turgidson
Feb 6, 2011

𓀬𓀠𓀟𓀡𓀢𓀣𓀤𓀥𓀞𓀬
maybe it's an experience thing. i write the odd thing, but i dont program as a job and ive never written anything that went beyond a few source files. occasionally I look at a larger project out of curiosity and think it's kinda weird that there's never a really basic quick reference for the program structure setting out what is where. like the modularisation of a program seems to be basically arbitrary, there's a bunch of ways of doing it, and it's not necessarily obvious where things go (although decent naming helps A LOT)

Buck Turgidson
Feb 6, 2011

𓀬𓀠𓀟𓀡𓀢𓀣𓀤𓀥𓀞𓀬
haha lisp go cdddr

Buck Turgidson
Feb 6, 2011

𓀬𓀠𓀟𓀡𓀢𓀣𓀤𓀥𓀞𓀬

MrMoo posted:

I need to pay someone to fix MPV for live streaming, it always lags behind on streams. Easy enough logic, and there is an implementation in ffplay, but oodles of fancy screen to audio and video synchronisation are in the way.

Workaround hack is restarting the stream every minute :lol:

Any MPV / FFMPEG coding fans here? 🥶

there's a long-running github issues page on this. do none of the workarounds on there do it for you?

Buck Turgidson
Feb 6, 2011

𓀬𓀠𓀟𓀡𓀢𓀣𓀤𓀥𓀞𓀬

redleader posted:

that's shockingly readable

apparently it's popular with dyslexic people or people with other issues reading. it's actually a good font lol

Buck Turgidson
Feb 6, 2011

𓀬𓀠𓀟𓀡𓀢𓀣𓀤𓀥𓀞𓀬
what are all these normie blogging sites using that makes them run like absolute poo poo?

Buck Turgidson
Feb 6, 2011

𓀬𓀠𓀟𓀡𓀢𓀣𓀤𓀥𓀞𓀬

Doom Mathematic posted:

Martin makes a thing about not putting comments in source code - that is, not including out-of-band information which is only meaningful to the reader, and meaningless to the compiler - and yet he also advocates giving classes, methods and variables meaningful names. 🤔

I dunno if this is a popular opinion but I think higher level "documentation" accompanying most projects (at least opens source ones) is absolutely garbage and it because of this exact approach. For most projects the way to figure out the design and structure seems to be reading the (hopefully meaningful) names of source files and then maybe diving into the code. An actually sane approach would be to have a design document explaining, even very briefly, what each source file is for.

Basically, even if source files themselves are well commented, the project they're a part of often lacks that same level of comments. It might be fairly obvious what input.c is there to do but what does groups.c or boop.c do?

I'm a poo poo coder but i have to say it seems unnecessarily difficult to get up to speed on how existing projects are set up

Buck Turgidson
Feb 6, 2011

𓀬𓀠𓀟𓀡𓀢𓀣𓀤𓀥𓀞𓀬
I did some CS and programming at uni back in like 2009, as an arts student doing it on the side out of interest without any knowledge of coding. The introductory programming courses were in python, with some excursions into sql and basic html when you looked at databases and web stuff. We did a decent amount with the actually cool graphics and drawing libraries. The introductory CS stuff started by explaining what a computer is, what machine code is, assembly, then C. I thought that way of doing it made a lot of sense. You got to do stuff in a high level language and at the same time learn how the lower level stuff worked so you weren't completely bewildered when pointers and linked lists showed up.

Buck Turgidson
Feb 6, 2011

𓀬𓀠𓀟𓀡𓀢𓀣𓀤𓀥𓀞𓀬

DrPossum posted:

everyone thinks c is neat and fun until buffer overflows and memory leaks come around

It's all fun and games until you need to start handling strings.

Buck Turgidson
Feb 6, 2011

𓀬𓀠𓀟𓀡𓀢𓀣𓀤𓀥𓀞𓀬

lih posted:

weirdest intro course i've heard of was one that a french exchange student i knew had apparently taken, where they started out with assembly before moving to c. which sounds fine for learning how a computer actually works but as an introduction to programming for someone with no real background it sounds very rough

also don't really understand scheme's popularity as an introductory language but i guess that's been declining for a while now. early on as an introduction to functional programming, sure, but as a very first language it seems like it would be much more off-putting & have a higher learning curve than like, python. maybe that's the whole point though, being so unfamiliar that people aren't tempted to jam natural language into things or anything? looked up some Why Teach Scheme As A First Language resources and they're all advocating it in comparison to visual basic, c++, java or pascal, which says a lot and with those as the other options i can understand it as a choice much more.

As a guy that likes and uses scheme (well, racket nowadays) for my waste of time projects, I would say it's got the following going for it as an intro language:

- simple, extremely consistent (but extensible) syntax
- dynamic typing and types that are very easy to understand. Great numerical data types
- most accessible starting point for functional programming
- using list processing primitives is inevitably going to involve recursion, making it a good place to learn that as well
- interpreted, so you can test stuff out in the repl and then plonk it in your source file.
- decades of good resources covering beginner, intermediate and expert levels of knowledge
- high performance implementations are available so your code doesn't run like rear end
- pretty good tooling support (I mean... you don't need much)

In the case of racket you've got all the above, plus tonnes of cool libraries for doing all sorts of stuff, including gui and drawing stuff, you've got a good IDE that comes with the language, comes on a bunch of platforms etc.

Buck Turgidson
Feb 6, 2011

𓀬𓀠𓀟𓀡𓀢𓀣𓀤𓀥𓀞𓀬
get his rear end!

Buck Turgidson
Feb 6, 2011

𓀬𓀠𓀟𓀡𓀢𓀣𓀤𓀥𓀞𓀬
thunking about deferring function evaluation

Buck Turgidson
Feb 6, 2011

𓀬𓀠𓀟𓀡𓀢𓀣𓀤𓀥𓀞𓀬
racket is so friggen easy i don't get why it's not more popular. is it just the parens? has the meme about using racket to make a language to solve a prolblem scared eveyone off?

Buck Turgidson
Feb 6, 2011

𓀬𓀠𓀟𓀡𓀢𓀣𓀤𓀥𓀞𓀬
Use git to manage markdown documents, generate docx or pdf files using pandoc.

Buck Turgidson
Feb 6, 2011

𓀬𓀠𓀟𓀡𓀢𓀣𓀤𓀥𓀞𓀬
Jinja sounds like a character from banjo kazooie

Adbot
ADBOT LOVES YOU

Buck Turgidson
Feb 6, 2011

𓀬𓀠𓀟𓀡𓀢𓀣𓀤𓀥𓀞𓀬
It's a-me, Angulario!

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply