IT/Software career thread: Invert binary trees for dollars.

The_Black_Log Foler

Stock Pals Senior Vice President
<Gold Donor>
44,157
41,223
So my education is EE along with CS. Professional work in DoD simulations primarily using C with archaic SVN/Trac. Personal background in Java, embedded, JavaScript, html, css. Current personal project is making cloud IoT easier for developers to prototype devices by providing hardware/framework/api's all open source with the goal to abstract it enough from specific cloud platforms so that devs can more or less "plug and play" their prototypes into AWS, azure, Google cloud. General idea is similar to particle.io but making it all open source, not locking users into proprietary cloud to charge them $ and utilizing MQTT (when possible) versus REST.
 

The_Black_Log Foler

Stock Pals Senior Vice President
<Gold Donor>
44,157
41,223
My last program on defense was writing a toolset that used a Java front end with a c++ (c with classes) backend. Its the first and only time I've written Java and while I see the appeal, it just never spoke to me. High level languages are just not in my wheelhouse, and also the gui stuff was frustrating.

Im a C/C++ expert at this point so I just prefer it. I've done uefi/bios/drivers and now radar control in it. Just real low level stuff
Understandable. I really enjoy low level stuff, like using C for embedded. I mean I love C in general. I guess for me it just depends on the context of when it's being applied as to which language I'd prefer.

I'd like to learn c++ and I'm sure it'd be easy to pick up with C + OO background but I just don't want to do gaming/simulations/robotics. Fintech interest me however.
 

Deathwing

<Bronze Donator>
16,428
7,439
I like Python mostly because it handles a lot of the annoying bullshit(but not unimportant!) with programming and lets you concentrate on algorithm design and data constructs. I started with C/C++/Java over the years and a lot of stuff didn't really click until I started my current job, where I first encountered the language. It could also be that this is the first real software job I've had, while every other job was hardware with software as kind of an afterthought. I might have had the same epiphany with the same setting but different language, who knows.

I prefer Python because I'm good at it. But I'm also not above realizing that there's usually a couple preferred languages for each usage.
 
  • 1Like
Reactions: 1 user

Noodleface

A Mod Real Quick
37,961
14,508
Yeah it's mostly tongue in cheek with me on the other language hate. I've used so many languages at work and they all have pros and cons for their applications.

Except ada. Fuck Ada.
 
  • 1Like
Reactions: 1 user

The_Black_Log Foler

Stock Pals Senior Vice President
<Gold Donor>
44,157
41,223
I like Python mostly because it handles a lot of the annoying bullshit(but not unimportant!) with programming and lets you concentrate on algorithm design and data constructs. I started with C/C++/Java over the years and a lot of stuff didn't really click until I started my current job, where I first encountered the language. It could also be that this is the first real software job I've had, while every other job was hardware with software as kind of an afterthought. I might have had the same epiphany with the same setting but different language, who knows.

I prefer Python because I'm good at it. But I'm also not above realizing that there's usually a couple preferred languages for each usage.

Hmm I'll have to put python high on my priority list. I'd like try it out for algorithm design and using it on coding challenge platforms like hackerrank.

Yeah it's mostly tongue in cheek with me on the other language hate. I've used so many languages at work and they all have pros and cons for their applications.

Except ada. Fuck Ada.
Loool. Man Ada. I had a friend who said he had a connection at a local engineering company that did simulations among other things. Linked me the job and it was "Ada, Fortran, C, C++" and I noped the fuck out of that. Hard pass pidgeon holing myself into ada or Fortran.
 

Vinen

God is dead
2,783
490
Yeah it's mostly tongue in cheek with me on the other language hate. I've used so many languages at work and they all have pros and cons for their applications.

Except ada. Fuck Ada.

ADA... I forgot that even existed. What I used at Raytheon.
 
  • 1Like
Reactions: 1 user

The_Black_Log Foler

Stock Pals Senior Vice President
<Gold Donor>
44,157
41,223
It's big in defense. Why, I will never know..
I think because product lifecycle in defense is like 20+ years so a lot of legacy products still use it and from my experience, defense companies won't rewrite stuff in newer code if they can duct tape together what they currently have to meet customer requirements. 🙄
 

alavaz

Trakanon Raider
2,001
713
ADA was invented for DoD. I think the main requirement was the compiler error checking and strong typing. Can't have the missile launch fail with a runtime error.
 
  • 1Like
Reactions: 1 user

Noodleface

A Mod Real Quick
37,961
14,508
ADA was invented for DoD. I think the main requirement was the compiler error checking and strong typing. Can't have the missile launch fail with a runtime error.
I knew that much as I had to learn it, but thankfully it's mostly phased out now except on old programs. And yes, I've had to write it. And it's awful.
 

ShakyJake

<Donor>
7,647
19,289
Programming puzzle(i.e. do my homework for me).

I have an abstract base class and a third party is going to subclass it. How can I instantiate those subclasses, without knowing what they are explicitly, once and only once and store those objects for later use? This is in Python, so static is not fully available.
Late to the party, but just curious.

Who is instantiating these subclasses? This doesn't make sense to me. The third party that's extending the abstract class has the responsibility of instantiating their subclassed parts. Unless this is some sort of extensibility that's been allowed by the abstract class owner?

I don't know Python, but in C# or Java you would accomplish this via reflection.
 

Deathwing

<Bronze Donator>
16,428
7,439
Late to the party, but just curious.

Who is instantiating these subclasses? This doesn't make sense to me. The third party that's extending the abstract class has the responsibility of instantiating their subclassed parts. Unless this is some sort of extensibility that's been allowed by the abstract class owner?

I don't know Python, but in C# or Java you would accomplish this via reflection.
I don't trust the third party. I find it better to assume the user is an idiot and try to correct/prevent as much fuckery said idiot could do. So, if they implement a subclass but never instantiate, how am I(the test system) supposed to know that? Worse, this could potentially linger months until someone finally notices where said subclass was supposed to do it's job but didn't. I'm sure everyone knows the pain of solving months-old bugs. Or even worse, months-old bugs covering up much more serious bugs.

These subclasses are designed to scan log output from our test system. I want them to be as trust worthy as possible so that if someone implements a subclass that's supposed to fail a test for a serious but rare issue, that will happen.
 

ShakyJake

<Donor>
7,647
19,289
These subclasses are designed to scan log output from our test system. I want them to be as trust worthy as possible so that if someone implements a subclass that's supposed to fail a test for a serious but rare issue, that will happen.
Well, can you create a scenario where a particular subclass should have done 'X' and then test for 'X'? Rather than just making sure it's been instantiated. I mean, even if it is that doesn't tell you it's actually doing its job, right?
 

Deathwing

<Bronze Donator>
16,428
7,439
Well, can you create a scenario where a particular subclass should have done 'X' and then test for 'X'? Rather than just making sure it's been instantiated. I mean, even if it is that doesn't tell you it's actually doing its job, right?
That is admittedly a flaw. Manufacturing a log so that you can test a new subclass is definitely a lacking feature atm and something I would like.

I don't see the two as exclusive, though. I'd rather have both.
 

ShakyJake

<Donor>
7,647
19,289
That is admittedly a flaw. Manufacturing a log so that you can test a new subclass is definitely a lacking feature atm and something I would like.

I don't see the two as exclusive, though. I'd rather have both.
Again, I don' t know Python, only how I would do it in C#. But does this Stackoverflow thread help?

How to dynamically load a Python class

From one of the replies:

Code:
def import_class(cl):
    d = cl.rfind(".")
    classname = cl[d+1:len(cl)]
    m = __import__(cl[0:d], globals(), locals(), [classname])
    return getattr(m, classname)

Problem is, you don't know what "classname" is, right? Only the abstract class name. Which might work? No idea.

In C# I could say, hey, give me all classes that implement abstract class "X" and I will get back an array of the types. I can then instantiate them if I so choose.