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

  • Guest, it's time once again for the hotly contested and exciting FoH Asshat Tournament!



    Go here and fill out your bracket!
    Who's been the biggest Asshat in the last year? Once again, only you can decide!

Identikit

Redneck Pornographer
<Bronze Donator>
2,155
3,651
I've been dinking around with this app "Mimo" for a couple days. Ive read up on it and it appears to be pretty basic in the grand scheme. Regardless of the overall opinion, I want to learn Python. Which is where Mimo came into play. For self taught, what are my best options? Should I keep going with mimo? It seems really nice so far?...

I dont have a computer science degree - are there not self taught people out there anymore that have an extraordinary skill set?
I am self a taught developer. My best advice is learn with some goal in mind if you can. Knowing what a language does is one thing, but thinking about how you intend to use it and executing those intentions is a skill within itself that needs to be built upon as you learn to code in my opinion.

What I personally did was I started with the intention of building out a website a month Initially with just JS/HTML/CSS as I learned. I didnt meet my goals at first, and I was lost often. Over time I was lost during less and less of the process.

Then I learned python to do some automation projects for my ecommerce business (tasks like scraping product listings from other sites, or building process's to reorganize/transfer files/folders, automating some of the adwords stuff I was doing) and eventually did some data modeling for adwords.

And the learning journey continues to this day.

While Learn Python the hard way is a decent book ( I went through the entire third edition book back in the day) it honestly didn't really help me as much as automate the boring stuff with python. I think the big reason is because of the author of learn python the hard way kind of has a " my way is the best way" mentality where he wants you to type out every exercise and not skip anything in the book regardless of what your skill level may be. Automate the boring stuff just had a more practical approach that clicked with how I do things.

Another piece of advice is learn to be comfortable with not knowing some things for a while. Some concepts just take time to click, and that time varies from person to person. The more you learn to code, the more you will start to realize there is no way to internalize everything, and that some times the code just does the thing, thats that. This part is probably the biggest challenge for me, and I struggled with it until I got my first job and realized that its likely that all developers end up not knowing some things. And of course I am still learning.

If I heavily invested into self taught in the fields a position requires - could I even intern anywhere? After the fact, would that be enough to be hired w/o a CS degree?
I haven’t been in college for almost 14 years and god I do not want to go back. Especially after seeing how many classes I would have to take over and the gluttonous pointless amount of classes added to the curriculums.
Honestly a Computer Science degree doesn't mean shit other than you ticked the boxes at school when it comes to actually programming. I was hired as a jr dev with two CS grads with no github, or portfolio work done outside of what was required for them to get the degree. I had my own unique portfolio, and a github with a ton of commit history( basically a record of how many times I update my code if you dont know). They both quit, and now I get like 20k more than what they started me at, plus I do work on the side for small business's that is a fairly decent source of income as well, and can only grow as long as I put the effort in.

If you are persistent enough of a learner, you can learn faster on your own with the internet. I'd dedicate like 3+4 hours after my old job to learn, and after about 2-3 months of that I was already trying to devise ways to make money with my skills. One thing I did was just create better websites for smaller business's, get in contact with business owners and try to sell it. I got rejected often initially, but eventually I sold to a few and now they are clients that I serve.

The only reason to get a degree, or be taught in a school is if you are unable to build a learning structure for yourself and you need your hand held through the process, which honestly in the end probably holds you back. Once you get a job, or actually start getting into building projects, you will be googling shit anyways. The beauty of coding, is most the information you need has either been printed in a book, or put on a website somewhere.
 
  • 2Solidarity
  • 2Like
  • 1MegaNeg
Reactions: 4 users

Lendarios

Trump's Staff
<Gold Donor>
19,360
-17,424
I do agree that the modern college does not work when you are in your mid 30s, because 4 years is a long time when you are 30sh, but after highschool getting your cs degree is a much better route than just doing anything at that time.

But a cs degree carries a lot of weight. A lot, teh fact that they both quit probably went to other companies for a higher salary should be a testament of that.
 
  • 1Like
Reactions: 1 user

TJT

Mr. Poopybutthole
<Gold Donor>
40,701
102,086
In today's episode of "Jira is a Piece of Shit."

We use Jira On-Prem and I was curious as to why we didn't use Jira Cloud. This pre-dates my time at the company so I inquired with them about this. As Jira On-Prem has a ton of limitations and outright inability to work with a lot of Jira Plugins (lots of good third-party plugins are Jira Cloud only). The reason we use On-Prem is because Jira Cloud has a ridiculous sizing constraint. If you have 6000 tickets existing within Jira Cloud you risk overwhelming the instance and it doesn't have the ability scale up to handle more. The intent is that you have a Jira Cloud instance for each team using it. This is directly from the Jira salespeople.
 

Daidraco

Golden Baronet of the Realm
9,071
9,100
Well since platforms were brought up.. I keep reading about using Flask for Python. Everything I'm doing is, as far as I can tell, pretty basic. Ive tried other routes, but a lot of stuff Ive read or tried just throws you into the deep end so quick. So thats why Im pretty sure Im still in the basics. Is Flask the best option to learn on? Am I even thinking correctly in the fact that its a platform for coding python?

Also, what is all this talk about levels in Python? Why would I use an old version of Python (If Im understanding this correctly) over the brand new version? Even if it has a bigger library, or is that the only reason to use old versions?
 

Mist

Eeyore Enthusiast
<Gold Donor>
30,275
22,008
If you have 6000 tickets existing within Jira Cloud you risk overwhelming the instance and it doesn't have the ability scale up to handle more. The intent is that you have a Jira Cloud instance for each team using it. This is directly from the Jira salespeople.
Lol 6000 tickets? That's like 1 bad day at an MSP.

TIL why we used SNOW. SNOW cloud performance is not great but it is better than that.

My new company is still on their old ticket system from like 20 years ago, and in the middle of a failed/delayed/failed migration to an off-brand platform that doesn't seem all that great. Not super psyched about that.
 

stupidmonkey

Not Smrt
<Gold Donor>
1,665
3,491
In today's episode of "Jira is a Piece of Shit."

We use Jira On-Prem and I was curious as to why we didn't use Jira Cloud. This pre-dates my time at the company so I inquired with them about this. As Jira On-Prem has a ton of limitations and outright inability to work with a lot of Jira Plugins (lots of good third-party plugins are Jira Cloud only). The reason we use On-Prem is because Jira Cloud has a ridiculous sizing constraint. If you have 6000 tickets existing within Jira Cloud you risk overwhelming the instance and it doesn't have the ability scale up to handle more. The intent is that you have a Jira Cloud instance for each team using it. This is directly from the Jira salespeople.
Add to this they want to sunset Jira on-prem so nothing new is gonna get added or fixed. It's why so many bugs still exist on-prem vs cloud.
 

Asshat wormie

2023 Asshat Award Winner
<Gold Donor>
16,820
30,963
Well since platforms were brought up.. I keep reading about using Flask for Python. Everything I'm doing is, as far as I can tell, pretty basic. Ive tried other routes, but a lot of stuff Ive read or tried just throws you into the deep end so quick. So thats why Im pretty sure Im still in the basics. Is Flask the best option to learn on? Am I even thinking correctly in the fact that its a platform for coding python?

Also, what is all this talk about levels in Python? Why would I use an old version of Python (If Im understanding this correctly) over the brand new version? Even if it has a bigger library, or is that the only reason to use old versions?
Flask is a collection of code that users can call upon to create websites without needing to write that code from scratch. I am sure there are tutorials out there that teach python by teaching you to build websites using flask but flask itself is not a platform for coding python.

As for 'levels', all languages go through changes and there are updated versions. Python had a somewhat unusual transition from one version to another, from 2 to 3, where backwards compatibility was broken. Its really nothing for you to even consider, use the latest versions and forget 2 exists.
 
  • 1Like
Reactions: 1 user

Deathwing

<Bronze Donator>
16,316
7,317
Well since platforms were brought up.. I keep reading about using Flask for Python. Everything I'm doing is, as far as I can tell, pretty basic. Ive tried other routes, but a lot of stuff Ive read or tried just throws you into the deep end so quick. So thats why Im pretty sure Im still in the basics. Is Flask the best option to learn on? Am I even thinking correctly in the fact that its a platform for coding python?

Also, what is all this talk about levels in Python? Why would I use an old version of Python (If Im understanding this correctly) over the brand new version? Even if it has a bigger library, or is that the only reason to use old versions?
Backwards compatibility. We have customers that insist on using 32-bit Linux, so we have continue testing and building on it. Similarly, we are JUST moving to Python 3 within our own systems. Business world moves much slower than one would think. Up until recently, we had customers on ancient versions of Solaris. Being able to turn those machines off was a good day.

That said, it's really hard for Python code to work with Python 3 and still be compatible with Python 2. System libraries have been moved around, for example, screwing up imports. You end up having to bend over backwards to the point of defeating the compatibility. Your Python code will look like some ugly C header littered with #defines.
 
  • 2Like
Reactions: 1 users

Neranja

<Bronze Donator>
2,605
4,143
Everything I'm doing is, as far as I can tell, pretty basic. Ive tried other routes, but a lot of stuff Ive read or tried just throws you into the deep end so quick. So thats why Im pretty sure Im still in the basics. Is Flask the best option to learn on?
Yes and no. Flask started as an anti-framework, or "micro-framework." - It does its original job (a thin WSGI wrapper to route stuff), but at the same time there are (by definition) no dependencies. And it does nothing more than route web requests.

Everything useful (like things you need in a web app: database, session handling, form validation, templating) you have to add yourself. There are quite a lot of extensions for Flask that almost everyone uses, but by design Flask requires none of them to work. This is in contrast to the other big Python web framework: Django. Which is seen as "a bit unpythonic", because is quite a large blob.

Almost everyone uses Werkzeug and Jinja with Flask, except maybe Microservices.


Why would I use an old version of Python (If Im understanding this correctly) over the brand new version? Even if it has a bigger library, or is that the only reason to use old versions?
Because there is tons of Python 2 code out there, and Python 3 is incompatible with Python 2. The most obvious difference is the print function, but there as subtle differences elsewhere. In Python 2 you can use print "text" , but Python 3 changed that to print("text").

To make matters easier you can 2to3 (an utility) code, or import the future into Python 2:
Python:
from __future__ import print_function

print("text")

This is only useful if you are forced to use Python 2, e.g. on old systems like CentOS 7. For new code do Python 3 or you'll redo your code.
 
  • 1Like
Reactions: 1 user

Lendarios

Trump's Staff
<Gold Donor>
19,360
-17,424
University of Minnesota banned from submitting code to the linux kernel


Here is the mail thread


Basically professor on UMN decided to "test" the patching process by submitting patches that were bogus, did nothing and in some cases were security vulnerabilities. He wrote a paper about this and pisses off the linux people as they had to manually track down all the bogus garbage he did.

Professor Lu double down and refused to acknowledge the ethical problems of testing on humans without their consent, or anyone's consent for that matter, and the university continued to submit bogus pacthes/.

So Greg Kroah the maintainer of the Linux kernel, had enough of this bullshit, (the guy was well-known for being the most generous and easygoing of the Linux kernel maintainers), and he BANNED THE WHOLE UNIVERSITY from submitting patches.

Not only that, he made it retroactive. The Linux team is reverting all submissions from any email associated with the university of Minnesota (*@mnu.edu) from their stable tree.

Like Jesus, talk about getting fucked in an academic setting, lol.
 
  • 2Worf
Reactions: 1 users

Deathwing

<Bronze Donator>
16,316
7,317
That seems like a bit of an overreaction. What if there were some important fixes from said domain?
 
  • 1Picard
Reactions: 1 user

Ao-

¯\_(ツ)_/¯
<WoW Guild Officer>
7,879
507
That seems like a bit of an overreaction. What if there were some important fixes from said domain?
They're manually reviewing the fixes from before the shenanigans and re-writing them. This is a giant fuck-you to the University, and should result in some review.
 

Lendarios

Trump's Staff
<Gold Donor>
19,360
-17,424
That seems like a bit of an overreaction. What if there were some important fixes from said domain?

It is better to have bugs that you know off, than to have bugs in written in on purpose that you are not aware off.

Basically they did the Stalin thing when he erased his enemies, as a warning to others to not introduce bugs on purpose, and to not fuck with them.

Also the main issue is that the University OKed the human experiment part of it after the fact. Basically it went like this.

The researcher did their shaneningans on code and got a bunch stuff into the stable master tree, and a very few flagged as bogus /fake/ problematic.
At the beginning the Linux foundation was lenient of this and did not flagged anything as problematic/systematic. Keep in mind that in good faith you can submit patches that sometimes has bugs, if your patch has a bug, you say "im sorry 3 times", eat crow, revert the patch, and that is it. Anyone can introduce a bug, and programming IS hard, and kernel programming is the figuratively brain surgery of programming, no joke. Kernel programming means you are programming how the CPU behaves, and work.

So any at this point, the Linux foundation has not suspected anything fishy from the university. But then, the researchers tweeted about their "experiment" in which they "tested" the patch process and publicly discussed it.

Now the Linux foundation started to throw a fit. Now they realize this was a malicious act. A non authorized penetration test, with the code reviewers them as the test subject. The Linux foundation starts making waves about the ethical issues about academic research being conducted on humans without their consent, and universities have safeguards against this, in the form of the IRB(I am rich bitch)!!! which is the Institutional Review Board. At this point the professor still has not retracted his buggy code from the system.

The researchers realize that they fucked up and they Ask the IRB of The university to retroactively approve the research, with the human testing part of it. The IRB then approved the research retroactively. Linux foundation is about to blow a gasket but no ban yet, at this point they are busy cleaning the code.

So last week along comes this guy Aditya Pakki, who tried to do the same thing. Submit a bad patch, with a pretext.

So head honcho of programming at Linux Greg writes back...
"If you look at the code, this is impossible to have happen.

Please stop submitting known-invalid patches. Your professor is playing
around with the review process in order to achieve a paper in some
strange and bizarre way.

This is not ok, it is wasting our time, and we will have to report this,
AGAIN, to your university...

greg k-h"

I mean the guy is telling you "Stop.. i know what you are doing stop, is not funny"


And then the best reply from Aditya Pakki
Greg,
I respectfully ask you to cease and desist from making wild accusations that are bordering on slander.
These patches were sent as part of a new static analyzer that I wrote and it's sensitivity is obviously not great. I sent patches on the hopes to get feedback. We are not experts in the linux kernel and repeatedly making these statements is disgusting to hear.

Obviously, it is a wrong step but your preconceived biases are so strong > that you make allegations without merit nor give us any benefit of doubt. >
I will not be sending any more patches due to the attitude that is not only > unwelcome but also intimidating to newbies and non experts.

That was it. Greg had enough of their shit. He erased them from linux existence.


You, and your group, have publicly admitted to sending known-buggy patches to see how the kernel community would react to them and published a paper based on that work.

Now you submit a new series of obviously incorrect patches again, so what am I supposed to think of such a thing?

They obviously were _NOT_ created by a static analysis tool that is of any intelligence, as they all are the result of totally different patterns and all of which are obviously not even fixing anything at all. So what am I supposed to think here, other than that you and your group are continuing to experiment on the kernel community developers by sending such nonsense patches?

When submitting patches created by a tool, everyone who does so submits them with wording like "found by tool XXX, we are not sure if this is correct or not, please advise." which is NOT what you did here at all. You were not asking for help, you were claiming that these were legitimate fixes, which you KNEW to be incorrect.

A few minutes with anyone with the semblance of knowledge of C can see that your submissions do NOT do anything at all, so to think that a tool created them, and then that you thought they were a valid "fix" is totally negligent on your part, not ours. You are the one at fault, it is not our job to be the test subjects of a tool you create.

Our community welcomes developers who wish to help and enhance Linux. That is NOT what you are attempting to do here, so please do not try to frame it that way.

Our community does not appreciate being experimented on, and being "tested" by submitting known patches that are either do nothing on purpose or introduce bugs on purpose. If you wish to do work like this, I suggest you find a different community to run your experiments on, you are not welcome here.

They determined that the University had a problem into determining what constitutes human experiment or not. And they were done wasting their time with this, and they do not want to be the test subjects in anyone's research.

So boom. They got nuked hard.

They deserved every inch of the dick-slapping they received.

By the way they issued a series of demands to the university to be admitted back. "Don't publish the research and tell us exactly what you submitted so we can fix it, and maybe.. maybe well let you back in."
 
Last edited:

Lendarios

Trump's Staff
<Gold Donor>
19,360
-17,424
2 out of the 3 researchers agreed to withdrawn the publication. Here is their response

----
They're withdrawing it for two reasons:

First, we made a mistake by not engaging in collaboration with the Linux kernel community before conducting our study. We now understand that it was inappropriate and hurtful to the community to make it a subject of our research and to waste its effort reviewing these patches without its knowledge or permission. Instead, we now realize that the appropriate way to do this sort of work is to engage with community leaders beforehand so that they are aware of the work, approve its goals and methods, and can support the methods and results once the work is completed and published. Therefore, we are withdrawing the paper so that we do not benefit from an improperly conducted study.

Second, given the flaws in our methods, we do not want this paper to stand as a model for how research can be done in this community. On the contrary, we hope this episode will be a learning moment for our community, and that the resulting discussion and recommendations can serve as a guide for proper research in the future. Therefore, we are withdrawing the paper to prevent our misguided research method from being seen as a model for how to conduct studies in the future. We sincerely apologize for any harm our research group did to the Linux kernel community, to the reputation of the IEEE Symposium on Security and Privacy, our Department and University, and our community as a whole.

---

 

Rangoth

Blackwing Lair Raider
1,530
1,644
Im hiring a mid-entry level .NET person(C#) if anyone is interested. Would prefer some front end experience(Web) to help our team out since that is where we are weak, but it is really full stack with many different long term options.

PM me if you are interested.
 

Daidraco

Golden Baronet of the Realm
9,071
9,100
Im hiring a mid-entry level .NET person(C#) if anyone is interested. Would prefer some front end experience(Web) to help our team out since that is where we are weak, but it is really full stack with many different long term options.

PM me if you are interested.
Not that Im qualified for that - just curious : is remote okay for something like that? If so, how does the pay even work in that scenario?
 

Ao-

¯\_(ツ)_/¯
<WoW Guild Officer>
7,879
507
Not that Im qualified for that - just curious : is remote okay for something like that? If so, how does the pay even work in that scenario?
Can't answer specifically for Rangoth, but for most large companies remote is "ok" as long as they have a tax presence they can put you under. Not all of them will, so sometimes even though remote is ok they won't hire you.
 

TJT

Mr. Poopybutthole
<Gold Donor>
40,701
102,086
University of Minnesota banned from submitting code to the linux kernel


Here is the mail thread


Basically professor on UMN decided to "test" the patching process by submitting patches that were bogus, did nothing and in some cases were security vulnerabilities. He wrote a paper about this and pisses off the linux people as they had to manually track down all the bogus garbage he did.

Professor Lu double down and refused to acknowledge the ethical problems of testing on humans without their consent, or anyone's consent for that matter, and the university continued to submit bogus pacthes/.

So Greg Kroah the maintainer of the Linux kernel, had enough of this bullshit, (the guy was well-known for being the most generous and easygoing of the Linux kernel maintainers), and he BANNED THE WHOLE UNIVERSITY from submitting patches.

Not only that, he made it retroactive. The Linux team is reverting all submissions from any email associated with the university of Minnesota (*@mnu.edu) from their stable tree.

Like Jesus, talk about getting fucked in an academic setting, lol.
What are you testing by submitting bogus updates to a kernel though?