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
Doc Hawkins
Jun 15, 2010

Dashing? But I'm not even moving!


a fun thing with github issues is you can easily write github action workflows that interact with them

Adbot
ADBOT LOVES YOU

Xarn
Jun 26, 2015

Plorkyeran posted:

The "file a ticket and maybe we'll schedule it next quarter" approach to dealing with bugs is pretty garbage and the focus on shipping features on schedule over fixing bugs asap is a big part of why software is so awful, but even when working on small self-contained things I've accumulated a list of bugs to fix while in the process of fixing the first bug I found plenty of times.

Pretty much this.

If you've never ran into "oh look, I fixed the bug and also found 3 more bugs and 2 pieces of ??!!!??" while programming, I have to question your existence.

rarbatrol
Apr 17, 2011

Hurt//maim//kill.
Most of the bugs I fix these days are the result of somebody fixing a "simple" bug ~3 years ago.

NightGyr
Mar 7, 2005
I � Unicode

Ola posted:

A dumb question: Isn't there huge amounts of user friendly tooling that makes C easy and safe by now?

Arduino is a relatively user-friendly C environment, but they do that by piling on the macros and libraries so you're writing just the business logic.

QuarkJets
Sep 8, 2008

I'm insulted by the mere suggestion that there are bugs in my code those are load-bearing surprise features

FlapYoJacks
Feb 12, 2009
Most bugs I have encountered with backend code is usually:
- Not checking/dealing with return values.
- Not checking string lengths or min/max values.
- Not sanitizing inputs from the front end.
- No type checking.
- Ignoring warnings from the IDE, compiler, or static analysis tools.
- Trying to manage your own memory.
- Not managing memory properly (if in C.)
- Not writing unit/integration tests to ensure future changes don’t screw up what you already wrote.

It’s all basic things that take a bit of effort to do, and many MANY programmers just don’t care enough to do.

redleader
Aug 18, 2005

Engage according to operational parameters
most bugs i've found in backend code are: an interaction between two features does not work in the way that anyone expects

or performance

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
There is definitely a class of bugs where it's easier to make a one-line change to fix them than to report it in an issue tracker. I don't see them very often in our production code because people tend to find and fix them in their own code before even making a pull request in the first place.

If the original twittor's experience is such that they think those are the only sort of bugs that exist ... that says quite a lot, I think.

BigPaddy
Jun 30, 2008

That night we performed the rite and opened the gate.
Halfway through, I went to fix us both a coke float.
By the time I got back, he'd gone insane.
Plus, he'd left the gate open and there was evil everywhere.


redleader posted:


or performance

Back end for one of the largest car listing site is so poorly written that it could not make an API to provide real time statistics on advertising spend and other usage statistics that would return in under 30 seconds. Multiple other departments wanted this for new products and pricing for current and prospective customers and they just deflected for a year until admitting the performance wasn’t there. When I left it was a 4 hour overnight job to generate the stats and just do metered advertising spend calculations once per day so if someone runs out of spend in the morning they get the rest of the day free.

OddObserver
Apr 3, 2009

Jabor posted:

There is definitely a class of bugs where it's easier to make a one-line change to fix them than to report it in an issue tracker. I don't see them very often in our production code because people tend to find and fix them in their own code before even making a pull request in the first place.

If the original twittor's experience is such that they think those are the only sort of bugs that exist ... that says quite a lot, I think.

I think there is definitely something to be said about fixing bugs that are both low effort and low impact quickly, since otherwise they just languish forever behind more important stuff that needs week-long debugging sessions that would probably be helped by switching gears for a bit anyway.

redleader
Aug 18, 2005

Engage according to operational parameters

BigPaddy posted:

Back end for one of the largest car listing site is so poorly written that it could not make an API to provide real time statistics on advertising spend and other usage statistics that would return in under 30 seconds. Multiple other departments wanted this for new products and pricing for current and prospective customers and they just deflected for a year until admitting the performance wasn’t there. When I left it was a 4 hour overnight job to generate the stats and just do metered advertising spend calculations once per day so if someone runs out of spend in the morning they get the rest of the day free.

most people say things like "2 seconds is way too long for a call to the backend". we say "as long as it's not timing out within the default 30s command timeout"

we have also occasionally mused about increasing the timeout to a minute

Ola
Jul 19, 2004

redleader posted:

writing bugs in the first place? pathetic. unprofessional

https://twitter.com/allenholub/status/1497486961015078912

smackfu
Jun 7, 2004

Along the same lines as “you don’t need a bug tracker” is “don’t put any effort into error handling, just prevent the errors.” I’m a bit more sympathetic to this one.

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


https://twitter.com/hillelogram/status/1497727910073012229

Bruegels Fuckbooks
Sep 14, 2004

Now, listen - I know the two of you are very different from each other in a lot of ways, but you have to understand that as far as Grandpa's concerned, you're both pieces of shit! Yeah. I can prove it mathematically.

smackfu posted:

Along the same lines as “you don’t need a bug tracker” is “don’t put any effort into error handling, just prevent the errors.” I’m a bit more sympathetic to this one.

one time i got a bug report where the suggested fix involved solving the halting problem.

Ola
Jul 19, 2004

Bruegels Fuckbooks posted:

one time i got a bug report where the suggested fix involved solving the halting problem.

And you put it in the tracker instead of just fixing it...

Tei
Feb 19, 2011

No all software bugs are programming bugs.

Sometimes the customer report a bug like "I asked this screen to print a PDF".

Where he did not asked that, or even suggested. The customer only now realize that he needs a PDF of that screen, and his mind confused something else, and by the magic of wishfull thinking he now believe he asked for that.

Thats a bug of proyect analisis or management, or any other layer than programming. Sometimes that type of bug result on somebody from management talk with the customer and sometimes the customer say "Ha, is true, I did not asked for that, but maybe you guys can make it anyway?, I will pay for it"

Some error can be a preference or a enhancement. Some operation takes longer than expected in production. The customer report the lack of a spinning circle has a error. Had the operation take 0.1 seconds, nobody would asked for it. Maybe even people tried to stress test that, but was fast in the testing enviroment, but the production enviroment is some cheap hosting with old software.

Armauk
Jun 23, 2021



WTF is a "Thought Leader?"

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

Armauk posted:

WTF is a "Thought Leader?"

I am if you read my poasts

Qwertycoatl
Dec 31, 2008

Armauk posted:

WTF is a "Thought Leader?"

The person who gives upper management stupid ideas about how software development works

Volte
Oct 4, 2004

woosh woosh

Armauk posted:

WTF is a "Thought Leader?"
It means their thoughts do not follow

DaTroof
Nov 16, 2000

CC LIMERICK CONTEST GRAND CHAMPION
There once was a poster named Troof
Who was getting quite long in the toof

Armauk posted:

WTF is a "Thought Leader?"

You remember the old joke where Wile E. Coyote had business cards that listed his title as "Genius?"

It's like that, but sad.

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


Armauk posted:

WTF is a "Thought Leader?"

It's like "influencer" but dressed up to sound more respectable.

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

Volte posted:

It means their thoughts do not follow

Zopotantor
Feb 24, 2013

...und ist er drin dann lassen wir ihn niemals wieder raus...

Armauk posted:

WTF is a "Thought Leader?"

A literal translation to German would be "Gedankenführer" lol, we Don't Use That Word anymore. By analogy to "Gedankenexperiment", it is somebody who only thinks he is a leader.

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


You can't help it if someone else calls you a thought leader but anyone who uses that title themselves is beyond redemption.

BigPaddy
Jun 30, 2008

That night we performed the rite and opened the gate.
Halfway through, I went to fix us both a coke float.
By the time I got back, he'd gone insane.
Plus, he'd left the gate open and there was evil everywhere.


ultrafilter posted:

It's like "influencer" but dressed up to sound more respectable.

“Do as I say not as I do”

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...

Armauk posted:

WTF is a "Thought Leader?"

The kind of person who calls themselves a thought leader with no sense of self awareness.

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense

Ola posted:

A dumb question: Isn't there huge amounts of user friendly tooling that makes C easy and safe by now?

My understanding is that "user friendly tooling that makes C easy and safe" refers to every programming language that came after C since they are all built with C and you are not meant to ever actually use C.

Tei
Feb 19, 2011

Nolgthorn posted:

My understanding is that "user friendly tooling that makes C easy and safe" refers to every programming language that came after C since they are all built with C and you are not meant to ever actually use C.

User friendliness kind of run against the point of C, anyway.

Like you could build a string handling library in C that do things for you, like concat strings, check limits (so you never read outside of the string). But to do so you will pay tradeoffs, and there will be complexity hiding in the corners.

Also such a library would not be supported by any other library, so if you want to pass a string to other library, you need to convert it to pass something the other function can handle. You expect. ->getStringPointer() to be fast, and you find it causes a huge slowdown because force a 80 remallocs. !?. You has been concatenating string, and instead of really reallocating a huge memory area for these strings, the library created a linked list of texts. And now that it pass to other library, the other library expect a flat memory with the whole string, so that stuff need to be reallocated.

So you wanted user friendliness, but now you are creating special cases, and you have lost control of whats going on, stuff are happening in a surprising way, theres friction between this library and other libraries so maybe you are actually lossing user friendliness in the borders.

Since you are lossing friendliness only in the borders, maybe you can add another library for file managing that also support that kind of string. Great, one less border. And another library.. and another.

At some point it would be easier, if you want that kind of userfriendliness, to use something like Python that already work like that from the box.

The point of C is to be simple enough the programmer know what the language is doing his backs, and to be portable assembler. Userfriendliness normally is achieved by hidding implementation details and that is against the point of C.


I don't program in C daily, so I don't know, but I imagine theres all types of user friendly libraries. Sockets, string handling, memory management, ...is just these only make sense if are 90% of your program. Otherwise your whole codebase will be code with special cases and friction.

imho

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.

Tei posted:

The point of C is to be simple enough the programmer know what the language is doing his backs, and to be portable assembler. Userfriendliness normally is achieved by hidding implementation details and that is against the point of C.

How does undefined behaviour fit into this viewpoint? It seems to be basically impossible for people to write ~dozens of lines of C without invoking meaningful undefined behaviour, at which point you've relinquished any claim to know what's going to happen. And that includes parts of the language that are relevant to a beginner, not weird stuff. It sure feels like hiding implementation details (perhaps in a different way than you meant).

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

pokeyman posted:

How does undefined behaviour fit into this viewpoint? It seems to be basically impossible for people to write ~dozens of lines of C without invoking meaningful undefined behaviour, at which point you've relinquished any claim to know what's going to happen. And that includes parts of the language that are relevant to a beginner, not weird stuff. It sure feels like hiding implementation details (perhaps in a different way than you meant).

There would be fewer issues there if the standard used machine defined instead of undefined in a bunch of places. But yeah.

ExcessBLarg!
Sep 1, 2001
There's been plenty of attempts over the years to fix the "problems" with C, but everyone has different definitions of "user friendliness" and many of them suffer from scope creep, and all of them suffer from not being popular enough to fully supplant C.

Personally I think the status-quo is fine where the vast majority of application software is written in languages that are higher-level than (but still interoperate with) C, including Java, C#, Python/Ruby/whatever. Which leaves most remaining C programming to systems programming disciplines (kernel, small-scope libraries, small-scope utilities, etc.).

Absurd Alhazred
Mar 27, 2010

by Athanatos

ExcessBLarg! posted:

There's been plenty of attempts over the years to fix the "problems" with C, but everyone has different definitions of "user friendliness" and many of them suffer from scope creep, and all of them suffer from not being popular enough to fully supplant C.

Personally I think the status-quo is fine where the vast majority of application software is written in languages that are higher-level than (but still interoperate with) C, including Java, C#, Python/Ruby/whatever. Which leaves most remaining C programming to systems programming disciplines (kernel, small-scope libraries, small-scope utilities, etc.).

You neglected to mention C++. Talking about scope creep...

QuarkJets
Sep 8, 2008

Foot-gun creep

Tei
Feb 19, 2011

pokeyman posted:

How does undefined behaviour fit into this viewpoint? It seems to be basically impossible for people to write ~dozens of lines of C without invoking meaningful undefined behaviour, at which point you've relinquished any claim to know what's going to happen. And that includes parts of the language that are relevant to a beginner, not weird stuff. It sure feels like hiding implementation details (perhaps in a different way than you meant).

These are outside the toolbox. You are going to build whatever using the tools inside the toolbox and undefined behaviors are whatever. You simply stay away from them. If you code depend on a undefined behavior, your code is kind of crap, even if your binary works.

I remember a compiler problem while using a "Watcom C" that it produced a binary where a printf was executed in different order than in the code when using optimization options. But other than that time, I never have to think about the role of the compiler into turning my code into a binary. Maybe I have not written enough C code.

ExcessBLarg!
Sep 1, 2001

Absurd Alhazred posted:

You neglected to mention C++. Talking about scope creep...
Yes, well, I think everyone acknowledges that C++ doesn't exist to solve C's safety problems, and in practice tends to add to them.

Absurd Alhazred
Mar 27, 2010

by Athanatos

ExcessBLarg! posted:

Yes, well, I think everyone acknowledges that C++ doesn't exist to solve C's safety problems, and in practice tends to add to them.

Just because for every problem of C's it solves it creates 20 others doesn't mean... okay, never mind.

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.

Tei posted:

These are outside the toolbox. You are going to build whatever using the tools inside the toolbox and undefined behaviors are whatever. You simply stay away from them. If you code depend on a undefined behavior, your code is kind of crap, even if your binary works.

I agree on both counts but I, at least, find it very difficult to stay away from them because they're absolutely everywhere.

Adbot
ADBOT LOVES YOU

Spatial
Nov 15, 2007

Tei posted:

undefined behaviors are whatever. You simply stay away from them. If you code depend on a undefined behavior, your code is kind of crap, even if your binary works.
Simply do not make mistakes. A great strategy except that it never ever works and will never work.

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