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
Posting Principle
Dec 10, 2011

by Ralp

coffeetable posted:

nope

engineering has barriers to entry because people would die if it didn't. a badly coded website isn't going to start a house fire. if you don't want to maintain awful code, raise barriers to professional employment sure, but don't raise barriers to entry.

Therac-25

Adbot
ADBOT LOVES YOU

coffeetable
Feb 5, 2006

TELL ME AGAIN HOW GREAT BRITAIN WOULD BE IF IT WAS RULED BY THE MERCILESS JACKBOOT OF PRINCE CHARLES

YES I DO TALK TO PLANTS ACTUALLY

what proportion of code monkeys do you think actually have the potential to kill someone through lovely work

i'd wager <1%

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug
nothing says "i'm a maintenance monkey on a project that's been circling the drain for over a year" quite like:

Zombywuf posted:

Development should have barriers to entry. Much like regular engineering does.

Zombywuf
Mar 29, 2008

coffeetable posted:

nope

engineering has barriers to entry because people would die if it didn't. a badly coded website isn't going to start a house fire. if you don't want to maintain awful code, raise barriers to employment in your workplace, but don't raise barriers to entry.

Guess how many legally mandated certifications the guy writing the software powering the microcontroller in your oven has to have. Bet you it's a lot less than the guy installing the heating coils.

Condiv
May 7, 2008

Sorry to undo the effort of paying a domestic abuser $10 to own this poster, but I am going to lose my dang mind if I keep seeing multiple posters who appear to be Baloogan.

With love,
a mod


that's mainly because programmers are naturally intelligent and skilled human beings. just being one makes you qualified to do things like fly airplanes or serve as an expert on economics

MononcQc
May 29, 2007

phsft yeah just certify the software, not the people writing it

Tiny Bug Child
Sep 11, 2004

Avoid Symmetry, Allow Complexity, Introduce Terror

Zombywuf posted:

Guess how many legally mandated certifications the guy writing the software powering the microcontroller in your oven has to have. Bet you it's a lot less than the guy installing the heating coils.

and that's why it owns to be a programmer

Tiny Bug Child
Sep 11, 2004

Avoid Symmetry, Allow Complexity, Introduce Terror
like, the people that build bridges? they get in big trouble when they fall down

double sulk
Jul 2, 2010

https://www.youtube.com/watch?v=j65mZzKLaMM&hd=1

rsjr
Nov 2, 2002

yay for protoss being so simple that retards can win with it

that's a dota2 courier in the background. this db can't be that bad.

quiggy
Aug 7, 2010

[in Russian] Oof.



:stonk:

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
no one ever talks about the lives saved in the overwhelming majority of instances that therac-25 didn't fail, no they only talk about a handful of sudden deaths of people who would have had drawn-out deaths without radiation therapy

Posting Principle
Dec 10, 2011

by Ralp
nobody talks about all the fantastic bargains at Sampoong

Bloody
Mar 3, 2013

Zombywuf posted:

Guess how many legally mandated certifications the guy writing the software powering the microcontroller in your oven has to have. Bet you it's a lot less than the guy installing the heating coils.

guess how many legally mandated certifications the oven has to have

there you go, that was the one you were looking for. how it got there doesn't matter.

Bloody
Mar 3, 2013

also for some serioustalk embedded stuff it really depends entirely on the application. embedded is a loving enormous field blanketing everything from artisanal handcrafted cpus drawing a microamp to log a data once an hour to fully featured operating system based phones/tablets and poo poo. it'd be disingenuous to pretend like there isn't room in there for toy languages and crap, but the traditional "embedded 101" slot of average microcontroller connected to like a 7seg or whatever is really not at all about the software, it's about the hardware. it just so happens that software is in the path to understanding the hardware, because at a low level they're pretty much indistinguishable. trying to gloss over that relationship with a high-level language for blinkenlights imo detracts pretty heavily from the important concepts that should be delivered in embedded 101 - things like registers, memory mapped io, bitwise operations, and hours of debugging on the boundary of software and hardware. glossing over a huge chunk of that with arduinoblinkenjs obfuscates the important concepts of introductory embedded systems. in practice? sure, yeah, use operating systems and libraries as frequently as possible - i promise you it is not fun at all to implement your own SD HAL and FAT32 controller for your bespoke msp430 board (although sometimes these things just have to be done). the most educational embedded class i had featured breadboarding an entire arm system and going from programming it in machine code with old school EEPROM writer things and typing in hex and poo poo through assembly and into C to really definitely absolutely understand why everything was going on. you know what's really really fun? debugging why the gently caress nothing works when what it is is a slightly miswired RAM chip on your ratsnest of a breadboard.

but yeah in reality you should be as lazy as possible in embedded as with everywhere else. cut as many corners in code to still meet the requirements. if that somehow means using js (lol, it doesnt) then all the power to you.

MononcQc
May 29, 2007

I have a third-hand story about an engineer working on black boxes for aircrafts and trains that had to resist given amounts of pressure under a mechanical or hydraulic press to pass their tests.

He always carefully placed the black box in the same way on the press, on the same face. When asked why he never put the box on the side, he simply said "well if I put it on the side, it explodes when compressed."

And that is how black boxes got certified.

Brain Candy
May 18, 2006

you get what you measure

Phobeste
Apr 9, 2006

never, like, count out Touchdown Tom, man

Bloody posted:

also for some serioustalk embedded stuff it really depends entirely on the application. embedded is a loving enormous field blanketing everything from artisanal handcrafted cpus drawing a microamp to log a data once an hour to fully featured operating system based phones/tablets and poo poo. it'd be disingenuous to pretend like there isn't room in there for toy languages and crap, but the traditional "embedded 101" slot of average microcontroller connected to like a 7seg or whatever is really not at all about the software, it's about the hardware. it just so happens that software is in the path to understanding the hardware, because at a low level they're pretty much indistinguishable. trying to gloss over that relationship with a high-level language for blinkenlights imo detracts pretty heavily from the important concepts that should be delivered in embedded 101 - things like registers, memory mapped io, bitwise operations, and hours of debugging on the boundary of software and hardware. glossing over a huge chunk of that with arduinoblinkenjs obfuscates the important concepts of introductory embedded systems. in practice? sure, yeah, use operating systems and libraries as frequently as possible - i promise you it is not fun at all to implement your own SD HAL and FAT32 controller for your bespoke msp430 board (although sometimes these things just have to be done). the most educational embedded class i had featured breadboarding an entire arm system and going from programming it in machine code with old school EEPROM writer things and typing in hex and poo poo through assembly and into C to really definitely absolutely understand why everything was going on. you know what's really really fun? debugging why the gently caress nothing works when what it is is a slightly miswired RAM chip on your ratsnest of a breadboard.

but yeah in reality you should be as lazy as possible in embedded as with everywhere else. cut as many corners in code to still meet the requirements. if that somehow means using js (lol, it doesnt) then all the power to you.

yeah. basically the thing is this: you're just not going to want to do anything real in something like js because the instant you try to do anything more complex than blinkenlights things will Just Not Work and you won't know why. it's even worse if you want to be portable. you'll move from one chip to another and expect to reuse your code because y'know that's the point of a high level language but that's something that's just not possible in embedded systems - the differences in capabilities between hardware platforms are so massive that there's always gonna be differences. like bloody says, it's about the hardware, because unlike in a big boy computer you can't actually trust it: it's your job to be doing the stuff that the folks writing javascript trust.

is it (eventually) possible to end up with embedded code written in whatever language you want? well yeah, unless you have a gc and it pauses the world for longer than a watchdog timer period, but it's gonna take longer than doing it in c for anything actually useful, and be harder to debug moreover.

but if you wanna print tweets on a receipt printer its prob fine, who cares

Nomnom Cookie
Aug 30, 2009



Zombywuf posted:

Guess how many legally mandated certifications the guy writing the software powering the microcontroller in your oven has to have. Bet you it's a lot less than the guy installing the heating coils.

my oven is from the 70s and has 0 microchips in it its fuckin sw&

Nomnom Cookie
Aug 30, 2009



every time i try to gently caress around with the arm board in my closet i end up reading linker scripts and trying to figure out how the onboard boot rom interacts with the on-chip flash and the usb port and there might be jtag too and im like ugh gently caress it. then i write a program that allocates a 2 GB array and fills it with gently caress EMBEDDED over and over

Zombywuf
Mar 29, 2008

Guess I should just relish being able to slap

quote:

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
on my work and gently caress off down the pub.

b0red
Apr 3, 2013

i wonder what the pay is like for writing the embedded code inside of toys/rc cars/generally cheap electronic kid poo poo

Nomnom Cookie
Aug 30, 2009



b0red posted:

i wonder what the pay is like for writing the embedded code inside of toys/rc cars/generally cheap electronic kid poo poo

they probably just use the same uc and code from the 80s or some poo poo. fwd back left right, its been a while since there have been new features

Zombywuf
Mar 29, 2008

Nomnom Cookie posted:

they probably just use the same uc and code from the 80s or some poo poo. fwd back left right, its been a while since there have been new features

They'll have found new ways to make the hardware cheaper and shittier, which will need new software.

Deacon of Delicious
Aug 20, 2007

I bet the twist ending is Dracula's dick-babies

Nomnom Cookie posted:

they probably just use the same uc and code from the 80s or some poo poo. fwd back left right, its been a while since there have been new features

or just forward and back+left

Shaggar
Apr 26, 2006
are there any rules systems that aren't a pain in the dick?

MeruFM
Jul 27, 2010

Deacon of Delicious posted:

or just forward and back+left

Why was this a thing?
So the controller only needs 1 input?

tef
May 30, 2004

-> some l-system crap ->

Bloody posted:

but yeah the world definitely needs another batch of arduino led blinkers who are totally definitely real embedded developers

Zombywuf posted:

Development should have barriers to entry. Much like regular engineering does.


before it was wealth, now it is moreso gender and race. where should we move the hurdle to?


i mean, writing lovely code in non real world systems? who started there? in my day i booked mainframe time to run my programs instead of these watered down home computers.

kids today, don't they realize they need a driving license for their toy car.

tef
May 30, 2004

-> some l-system crap ->

Cocoa Crispies posted:

nothing says "i'm a maintenance monkey on a project that's been circling the drain for over a year" quite like:

haha it's been in and out of the drain and clinging on like a wad of hair gunking up the hole.

Zombywuf posted:

Guess I should just relish being able to slap

on my work and gently caress off down the pub.

to be fair, your actions aren't likely to cause the company to fail

tef
May 30, 2004

-> some l-system crap ->
"there should be barriers to programming" is yet another passive-agressive "gently caress you got mine" rolled up with "drat kids get off my lawn".

shameful

prefect
Sep 11, 2001

No one, Woodhouse.
No one.




Dead Man’s Band

tef posted:

"gently caress you got mine"

this is definitely uncool

tef posted:

"drat kids get off my lawn".

but what's so bad about this? being angry at those drat kids is one of the few benefits of oldhood

tef
May 30, 2004

-> some l-system crap ->

Wheany posted:

but javascript is perfect when you want to code close to the metal :confused:

you know the context of that quote was saying that node's http handlers were more exposed than most web frameworks, allowing them to play with chunking and websockets?

prefect
Sep 11, 2001

No one, Woodhouse.
No one.




Dead Man’s Band
Callbacks as our Generations' Go To Statement

is he making any sense? i'm not clever enough to know

Zombywuf
Mar 29, 2008

tef posted:

before it was wealth, now it is moreso gender and race. where should we move the hurdle to?

How about, having some demonstrated ability to do it?

Or perhaps not flying off the handle and assuming that barriers to entry mean selecting children at birth by some arbitrary criteria to be trained to the special priesthood of programming. You know, barriers to entry like we have barriers to entry to become chartered accountants. Letting whoever wants to code write code that other people have to use on a basis of anti-elitism is how we get poo poo like every Volkswagen in the world apparently having trivially by-passable crypto in their electronic immobilisers.

We have barriers to entry for poo poo loads of things, most of which are having an education. Now you can complain about barriers to entry in education and you'd be right to, but the "Yay everyone can be a programmer" goal is no more desirable nor possible than everyone being a joiner.

MononcQc
May 29, 2007

prefect posted:

Callbacks as our Generations' Go To Statement

is he making any sense? i'm not clever enough to know

Agreed about hating on callbacks.

His C# 'await' example is basically making use of promises/futures in a non-dumb environment (i.e. there is scheduling taking place and yielding execution until an event comes back for a wake-up if required) where both operations can be joined into a fetch(yield(computation())). In this case 'await computation()' is synonymous with that.

It's not new as a concept, but a proper solid implementation of that kind of mechanism is somewhat uncommon in mainstream languages. The 'progress' from what I can get is that the runtime will be clever enough to see the 'await' as a signal that code is ready to wait and can be suspended up -- you're still manually scheduling crap, but you're doing so in a non-obstrusive way.

A couple of pages ago I complained about node.js with promises and futures in there not being nice enough to be good because they were still tedious as hell. This article shows an equivalent to promises and futures that are good enough to help.

The thing the example doesn't show is if it's possible to schedule multiple operations that we do not want to be blocking at once, i.e.:

code:
key1 = schedule(computation(1));
key2 = schedule(computation(2));
res1 = fetch(key1);
res2 = fetch(key2);
Where the compiler or runtime would be free to decide if it's worth running both computations in parallel or not. I'd still take the await stuff over anything callback-based for control-flow.

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

MononcQc posted:

Agreed about hating on callbacks.

His C# 'await' example is basically making use of promises/futures in a non-dumb environment (i.e. there is scheduling taking place and yielding execution until an event comes back for a wake-up if required) where both operations can be joined into a fetch(yield(computation())). In this case 'await computation()' is synonymous with that.

It's not new as a concept, but a proper solid implementation of that kind of mechanism is somewhat uncommon in mainstream languages. The 'progress' from what I can get is that the runtime will be clever enough to see the 'await' as a signal that code is ready to wait and can be suspended up -- you're still manually scheduling crap, but you're doing so in a non-obstrusive way.

A couple of pages ago I complained about node.js with promises and futures in there not being nice enough to be good because they were still tedious as hell. This article shows an equivalent to promises and futures that are good enough to help.

The thing the example doesn't show is if it's possible to schedule multiple operations that we do not want to be blocking at once, i.e.:

code:

key1 = schedule(computation(1));
key2 = schedule(computation(2));
res1 = fetch(key1);
res2 = fetch(key2);

Where the compiler or runtime would be free to decide if it's worth running both computations in parallel or not. I'd still take the await stuff over anything callback-based for control-flow.

Control.async is pretty great and Simon Marlowe came out with a book on parallel and concurrent programming in Haskell last month

Posting Principle
Dec 10, 2011

by Ralp

MononcQc posted:

The thing the example doesn't show is if it's possible to schedule multiple operations that we do not want to be blocking at once, i.e.:

code:
key1 = schedule(computation(1));
key2 = schedule(computation(2));
res1 = fetch(key1);
res2 = fetch(key2);
Where the compiler or runtime would be free to decide if it's worth running both computations in parallel or not. I'd still take the await stuff over anything callback-based for control-flow.

c++ nominally does this with std::async, but its legal for implementations of std::async to just always choose to defer the call unless you specifically ask it not to which defeats the point entirely :eng99:

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope

tef posted:

you know the context of that quote was saying that node's http handlers were more exposed than most web frameworks, allowing them to play with chunking and websockets?

like i have any idea where any of the catchphrases i repeat every day come from #yolo

coffeetable
Feb 5, 2006

TELL ME AGAIN HOW GREAT BRITAIN WOULD BE IF IT WAS RULED BY THE MERCILESS JACKBOOT OF PRINCE CHARLES

YES I DO TALK TO PLANTS ACTUALLY

Zombywuf posted:

Or perhaps not flying off the handle and assuming that barriers to entry mean selecting children at birth by some arbitrary criteria to be trained to the special priesthood of programming.
this is bad strawmanning don't do it

quote:

You know, barriers to entry like we have barriers to entry to become chartered accountants. Letting whoever wants to code write code that other people have to use on a basis of anti-elitism is how we get poo poo like every Volkswagen in the world apparently having trivially by-passable crypto in their electronic immobilisers.
again, embedded systems accounts for a tiny fraction of developers. erecting barriers to entry to programming as a whole is kinda a scorched-earth, kill-them-all-and-let-god-sort-them-out policy.

and anyway, i'd wager that while lovely programming was the proximate cause of Volkswagen's problems, the ultimate cause was Volkswagen putting gently caress-all money into the software side of things, which lead to otherwise-capable devs churning out poo poo because they had neither the time nor money to do otherwise. and the reason volkswagen they thought it was okay to pay bad wages is that the costs of bad software are largely hidden from the consumer. funnily enough, it's the same story with safety features or fuel economy. the engineers of the 1960s didn't bother with crumple zones or crash testing because they were bad engineers, they didn't bother because there was no incentive for their employers do otherwise.

following on from what worked in those cases, what we should certainly be doing is enacting legal standards for software security and reliability, but lol will that ever happen because $$$

quote:

"Yay everyone can be a programmer" goal is no more desirable nor possible than everyone being a joiner.
oh come on. apples and oranges. it's not desirable that everyone be a joiner, but it's certainly desirable - and the case - that anyone can be a joiner (they just have to prove their skill at it).

Adbot
ADBOT LOVES YOU

Tiny Bug Child
Sep 11, 2004

Avoid Symmetry, Allow Complexity, Introduce Terror

Zombywuf posted:

Or perhaps not flying off the handle and assuming that barriers to entry mean selecting children at birth by some arbitrary criteria to be trained to the special priesthood of programming.

tbqh that would probably own for the programmers so i'm down with it

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