Programming thread

  • Want to keep track of this thread?
    Accounts can bookmark posts, watch threads for updates, and jump back to where you stopped reading.
    Create account
was browsing github the other day and found this https://github.com/hirrolot/metalang99

Metalang99 is a firm foundation for writing reliable and maintainable metaprograms in pure C99. It is implemented as an interpreted FP language atop of preprocessor macros
Metalang99 features algebraic data types, pattern matching, recursion, currying, and collections; in addition, it provides means for compile-time error reporting and debugging.
insane
c ===== lisp confirmed?????????
 
Got into a discussion at the day job yesterday with a Person Of #AF684C about coding and he admitted to me with no irony nor shame that he built a portfolio without writing a single line of code by using some LLM bullshit I've never heard of that will certainly be dead in 6 months. I think between that and the framing of the discussion anytime these people talk about coding, it really helped me finally rationalize the nature of the disconnect I have with these people.

As they were trying to convince me, I ended up saying to this person, without thinking, "But I like programming. Why would I want to do less of it?"

I ended up thinking a lot about that afterwards.

When they (or really, most kids coming out of college) talk to you about programming, they're not really talking about the same thing. Not really. They don't care about how the computer works. They don't get excited building up a mental tapestry and connecting ideas about how threads, pointers, stacks and heaps work. They don't know how to so much as check the version of Python they're running. The coding aspect of coding is nothing more than an annoyance to them, and one they want as little to do with as possible. There's no fun in it for them when they solve a problem or see some aspect of the theory at a deeper level than they did before. They don't know the catharsis of some new discovery recontextualizing things they already knew to them. They just look for sea changes and the names attached to them, so they can make a bunch of money while the Magic Technology Box solves itself, ideally with the lowest amount of activity from them.

Once upon a time, I was depressed about that, but I realized something valuable recently. Call it a cutthroat observation, but the ability for people to skip the line and graduate without having learned anything doesn't lower our value, it only really increases it, because it sits us next to an enormous caste of retards that we look very very good next to. The funny thing about it all is that in an age where there are more temptations and means by which to resist having to aspire, merely by not falling for those temptations and doing things the hard way that leads to personal improvement, you end up looking far better than you would have before these people had dragged down the average.

Ever since I realized this, the phrase "their weakness is my strength" has been echoing in my mind, and while I don't like sounding antisocial or anything like that, it is a point of pride to be able to affect the sense of responsibility, curiosity and determination it takes to do the right things for the right reasons while everyone else is giving into their compulsion to skip the line however you can. Every single circumstance that holds them back raises your value by default in a zero-sum society, because by merely holding your place while everyone else drags their value down, you end up higher up by comparison.

Even before skip-the-line technologies came along, though, I always had a real disconnect with most coders I met in a professional capacity. I will never be able to empathize with people to whom coding is merely an annoyance standing between them and a paycheck. It's rich and satisfying, and if you're not at all curious about it, you can probably make the same money with much less hassle these days by just getting into plumbing or construction.

Society and its systems are racing to the bottom and turning out droves of liabilities, and it's not hard to look good when you're surrounded by people who have only ever known mediocrity.
 
Last edited:
Got into a discussion at the day job yesterday with a Person Of #AF684C about coding
doge-poop-colored-man.jpg
As they were trying to convince me, I ended up saying to this person, without thinking, "But I like programming. Why would I want to do less of it?"
It depends. I have no really strong desire to interact with Vimscript, Lua, or Emacs Lisp, other than to do fairly basic configuration. I want my editors to do what they should and get out of the way. Other tasks fill me with at least hypomanic insomnia.
 
Ever since I realized this, the phrase "their weakness is my strength" has been echoing in my mind,
This is only good if your field is sane and competitive. When it's bloated with infinite money, it attracts LLM jeet leadership who want LLM jeet underlings. There are US-based good-English-speaking jeets on xitter right now advertizing free in-person "vibe code" courses for anyone who's interested (need to pass a "vibe" check), with a promise of further employment. They don't want people who code "the old way", because oldfags don't have a "success mentality". Move fast, break things, sell your startup before the contents of its unsecured S3 bucket get posted on haveibeenpwned (securing it is a waste of time better spent founding another startup). Ask ChatGPT for startup ideas -> ask ChatGPT to write code -> sell it -> goto 10.
 
I'm getting pretty interested in using protobuf with my C projects, but I wanted to ask if anyone has used it and what your impression was
Does what it claims to. In my career, I've used it for gRPC APIs for big corporate systems. But it was fine, usability and design wise.

Currently using it in an old personal project but I'm considering trying out Cap'n Proto. It supposed addresses everything new we've learned in making interchange formats like protobuf. Seems legit. Gonna give it a try.
 
Does what it claims to. In my career, I've used it for gRPC APIs for big corporate systems. But it was fine, usability and design wise.

Currently using it in an old personal project but I'm considering trying out Cap'n Proto. It supposed addresses everything new we've learned in making interchange formats like protobuf. Seems legit. Gonna give it a try.
Finding a C library that streamlines common tasks in a way that isn't grating is always a pleasure.
 
They don't want people who code "the old way", because oldfags don't have a "success mentality".
just because you know how to do things right doesn't mean that people will pay you to make things the right way
they might just fire you in favor of a kind saar who can do the needful in 40 seconds (never mind the huge security holes or astronomically high aws bills or low-accessibility websites or general lack of maintainability, we will be selling out in 4 days anyway)
 
Finding a C library that streamlines common tasks in a way that isn't grating is always a pleasure.
It's been a (long) while since I've done it, but I do think I remember using libcurl directly from C and it had a really nice API for what can ultimately be a pretty complex protocol.

Like superficially, http isn't particularly complex, but there's layers and layers of stupid little RFCs to deal with.

And libcurl has a thoughtfully designed API, a "simple" version for common tasks like "POST data to this endpoint and get the results" and a "multi" version for if you're legit doing a lot of fairly involved http stuff.
just because you know how to do things right doesn't mean that people will pay you to make things the right way
they might just fire you in favor of a kind saar who can do the needful in 40 seconds (never mind the huge security holes or astronomically high aws bills or low-accessibility websites or general lack of maintainability, we will be selling out in 4 days anyway)
I think we'll definitely see that trend in the immediate (and we've sorta been dealing with it for awhile now), but I'm not convinced it'll be that way long term.

Like it is still ultimately cheaper to do it right the first time than to deploy a bug that dicks over your clients, have it go back and forth through a few layers of product managers or customer service before it finally filters back to your jeetdev department and gets fixed.

Don't get me wrong, there'll definitely be some businesses that go WOW LOOK AT ALL THE MONEY WE CAN SAVE at first, but after some real world experience trying to jeet+ai away their dev costs, word will absolutely spread among the MBA crowd that the juice just isn't worth the squeeze.

It might have a bigger effect on the low level frontend jobs, but for anything that could seriously fuck the business up, the standard practice will develop that that's not really something to cheap out on.

It's probably better to prepare for gaps in the market than to get all doom and gloom that it's all going away forever, because it really probably isn't.

I'm getting back to work soon (finally) and I think the lesson I learned is that, in addition to having savings to weather the gap (I was in decent shape financially), I 'm also going to bullshit the gap in my resume. The gap in my resume was such a talking point with all the jeet recruiters. "why have you been out for 10 months" "oh I don't know faggot, maybe because the economy is seeing an upheaval?"

Would it look any better for a programming job if I was flipping burgers during that time period? Wouldn't the question just become "why were you, a software developer, flipping burgers for 10 months" instead?
 
Speaking of doing it right the first time, here's a short blog-rant about some recent BS I've dealt with.

I work with embedded hardware, making firmware for it. We have these devices that are part of a larger system. Three years ago, our client had some fucked up cables/sensors in their system that were not implemented according to their provided documentation. It lead to having some sensors always report a fault. In order to fix the issue, at that time they asked us to change the firmware to ignore the faulty sensors instead of fixing their own shit. At the time I thought "That's easy enough, but that's not a very robust solution, adding a workaround in our firmware to make up for misconfigured hardware... Surely the right thing to do would be to wire up the sensors according to the specification..." But apparently that was too much work and it was easier to ask us to change things on our end, alright.

Two-three years later, same client buys more devices. In our current product lot we delivered the same firmware change they asked for previously, since that's what was agreed.

Half a year later, they realize "oh shit, something's not working right, help!" - big fucking surprise, I go there and what do you know, the fix I implemented 3 years ago is now getting in the way and I have to fix things by undoing the previous "fix"...

Somehow my premonition that not doing things properly from the start would lead to some issues in the future has come true. How shocking.
 
Half a year later, they realize "oh shit, something's not working right, help!" - big fucking surprise, I go there and what do you know, the fix I implemented 3 years ago is now getting in the way and I have to fix things by undoing the previous "fix"...
time for #undef MODELNAME_NIGGERLICIOUS_FUCKED_UP_SHITTY_SENSOR_WIRING_HACK!
Somehow my premonition that not doing things properly from the start would lead to some issues in the future has come true. How shocking.
hopefully that premonition lead to you putting 14 distinct warning comments and a big ascii art of a landmine in there
 
of course a form of s-expressions without explicit grouping would probably be really painful which is why we have all the parentheses
You would think, but Elm exists. It turns out that strict typing allows a lot of parentheses to just disappear and most of the ones that don't can be rewritten with `|>` and `<|` pipe operators. It also does a lot of funky stuff with partial evaluation and argument reordering, which you would also think would end up a mess, but is again, just fine.
 
You would think, but Elm exists. It turns out that strict typing allows a lot of parentheses to just disappear and most of the ones that don't can be rewritten with `|>` and `<|` pipe operators. It also does a lot of funky stuff with partial evaluation and argument reordering, which you would also think would end up a mess, but is again, just fine.
And even elm can be improved upon
 
But I like programming. Why would I want to do less of it?"
This 100%. I like being a codemonkey. The only thing that I dislike about programming is actually going through with a project from start to finish. Even then I get hypnothized whenever there's actual programming to be done.

Off-topic: I have two (2'b10)
questions towards everyone in this thread:
  1. Did you take another major than CompSci? I'm asking this because my current Pain in the Ass is that I have little to do with Mathematics in my programming (besides boolean algebra), so much so I feel like I'm regressing. Right now I'm doing things closer to EE to than to just Programming (SystemVerilog) and I kinda feel that.
  2. How do you find motivation for personal projects whilst employed?
 
This really tells you everything you need to know about JavaScript
  1. it's really common
  2. people would rather program in other languages than javascript (so much so, in fact, that they write entire compilers to avoid having to use javascript)
    1. people regularly compile javascript to javascript. this is mildly islamic
 
This 100%. I like being a codemonkey. The only thing that I dislike about programming is actually going through with a project from start to finish. Even then I get hypnothized whenever there's actual programming to be done.

Off-topic: I have two (2'b10)
questions towards everyone in this thread:
  1. Did you take another major than CompSci? I'm asking this because my current Pain in the Ass is that I have little to do with Mathematics in my programming (besides boolean algebra), so much so I feel like I'm regressing. Right now I'm doing things closer to EE to than to just Programming (SystemVerilog) and I kinda feel that.
  2. How do you find motivation for personal projects whilst employed?
Learn VHDL 2008, personal projects really seem to come about as obsessions. It's the sort of thing where you really want to try doing one thing but work wants you to do something else, so you end up doing it yourself at home.
 
  1. it's really common
  2. people would rather program in other languages than javascript (so much so, in fact, that they write entire compilers to avoid having to use javascript)
    1. people regularly compile javascript to javascript. this is mildly islamic
Or js -> js -> js (react -> js -> minified js)

Webpack is a cursed technology
 
Learn VHDL 2008, personal projects really seem to come about as obsessions. It's the sort of thing where you really want to try doing one thing but work wants you to do something else, so you end up doing it yourself at home.
I know old VHDL, is there any difference between 2008 and the former standard (90 something)?
Is it as big as SystemVerilog is compared to Verilog?
I know SystemVerilog 2012/2017 well enough, par except the SVA bullshit because nothing really supports it anyway, except Cadence.
A lot of companies (i.e. Antmicro) seem to transition to Cocotb.

I know that this question may sound stupid but the support for VHDL (as much as I like it) is dwindling as SV gained traction. Iirc mostly Academia (can tell fron experience) seems to like it the most.
 
Back
Top Bottom