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

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



    Go here and give us your nominations!
    Who's been the biggest Asshat in the last year? Give us your worst ones!

Tenks

Bronze Knight of the Realm
14,163
607
I don't know about Android Studio but it should be noted Intellij is not free unlike Eclipse. I prefer Intellij, though.
 

moontayle

Golden Squire
4,302
165
AS is free but you're basically limited with whatever IntelliJ has with theirfree version. Has some stuff specific to Android while also staying pretty close to the IDE codebase.

Used Eclipse for a good portion of my education but just before I graduated Google stopped official support of the Android plugin, which found out because Eclipse ate an autogenerated file necessary for view binding. Went looking for a solution and found AS. Dropped Eclipse like a hot potato and haven't looked back.

It's kind of amusing though, when I interviewed I was asked specifically about using Eclipse (which was in the job description) by the hiring manager. I relayed my tale of woe from above and he had this horrified look on his face, especially at the part about Google dropping support. First thing I did when I got settled in was switch all the projects over to AS. Good times.
 

moontayle

Golden Squire
4,302
165
Imma gripe for a second so bear with me.

Most of our app ecosystem runs off a bunch of timers and schedulers. Next check-in time being one of them. Set up a timer, set the time to execute the task, wait until the task completes to set the next time it needs to run. Or so I thought...

We'd been running into an issue where our networking app was causing a device reboot if it couldn't connect after so many tries. As of this post it's 30 attempts, roughly 1 try a minute (it used to be 180 attempts but that changed when we lowered our login intervals). I bring this up and boss thinks about it and says he wants the code for the reboot removed. We already have systems in place to track how often devices log in, we don't really care if they're having network issues unless it's constant for like three days or so. Okay, good. I can do that. I then also posited the idea of increasing the time between login attempts on a failed call so the device isn't trying to constantly log in every minute during the network issues. He agreed and this is where it goes sideways.

Stripped out the reboot code then found a good spot to set up the incremental retry delay. Push to my test device... nope. I see my code running but there's no delay. Step through the code a bit, find out all instances of where the task is being executed. Think I found where I needed to add some more logic and add it. Nope. Again, I can see my code running but now it's resetting the task run every minute, essentially pushing the task out indefinitely. Step through the code a bit more, added a shit ton of logging and finally found out what's going on.

They basically create a calendar object to the last time the device logged in, add the interval to it, and set the new timer. Then, once a minute... they set the timer to null and start over.

Where's my Jackie Chan meme when I need it?
 

Tenks

Bronze Knight of the Realm
14,163
607
I'm finding things out about the Java classloader I don't want to know.

So my new project has dependency hell. For those unfamiliar with running large-scale business Hadoop MapReduce jobs you generally have to assemble a "fat jar" or "uber jar" of all your dependencies. So your structure is like:

So you make this fat jar, it gets shipped the the cluster at which point it is shredded and all the items under lib are thrown on the classpath. This becomes a nightmare when you have an absolute fuckton of dependencies especially transitive dependencies. So like SomeDependency-1 transitively requires on SomeTransDep-1.0.jar. But SomeDependency-2 transitively requires SomeTransDep-1.1.jar. To solve this you usually just exclude 1.0 and cross your fingers and pray 1.1 works for both.

But I found out something new about how Java works a bit under the seams. So I had two classes and both were children of SomeSuperclass. However due to some poor practices both had copies of the actual source of SomeSuperclass in the exact same package space. So I basically had two identical org.rerolled.SomeSuperclass. But they weren't quite identical. One had a method footprint which took an ENUM another took an INT. So even though the child class was defined in SomeDependency-2 it was taking the superclass from SomeDependency-1 -- and giving a method not found error because it was sucking in the superclass from some totally unrelated jar simply because it was "first" on the classpath. Its an absolute nightmare.
 

Noodleface

A Mod Real Quick
38,377
16,298
Been having a rough week. I've been chasing a bug for awhile, and everytime I fix it it's like whack-a-mole where a bunch of other bugs pop up. I'm at the end now, with one final bug (I am sure, lol) and I Just don't know what the hell is going on. Doesn't help that they just piling stuff on me, and now there is even talk about going onsite to a system integrator.

I really need like a day where I just take off work and lay face down on my couch for 8 hours with my brain turned off.

Also I pulled the BIOS chip to flash it in a SPI programmer and when I put the chip back on the board the board was dead. Pulled the chip off and put it in my hand and nearly burned a hole in my hand (no joke, might scar). That will teach me to put a chip in with the wrong pin orientation.
 

Tenks

Bronze Knight of the Realm
14,163
607
The worst part about whack-a-mole bug fixes is I never get the feeling like I'm addressing the real issue. Even when I have fixed everything I know there is probably a completely different side area or branch of code I didn't fully fuck up to realize how bad that code is as well.
 

Noodleface

A Mod Real Quick
38,377
16,298
Yeah our code is completely nuts right now, just bandaids everywhere. When I came on board the previous guy essentially just dumped it on me and said good luck

After the next server (after this one), we're trying to go open source. At least then I'd actually know what the fuck is going on.
 

Vinen

God is dead
2,791
497
Been having a rough week. I've been chasing a bug for awhile, and everytime I fix it it's like whack-a-mole where a bunch of other bugs pop up. I'm at the end now, with one final bug (I am sure, lol) and I Just don't know what the hell is going on. Doesn't help that they just piling stuff on me, and now there is even talk about going onsite to a system integrator.

I really need like a day where I just take off work and lay face down on my couch for 8 hours with my brain turned off.

Also I pulled the BIOS chip to flash it in a SPI programmer and when I put the chip back on the board the board was dead. Pulled the chip off and put it in my hand and nearly burned a hole in my hand (no joke, might scar). That will teach me to put a chip in with the wrong pin orientation.
I almost miss these days. I spent the last few weeks obtaining frequent flyer miles...

Fucking just hit Platinum with United :|
 

Noodleface

A Mod Real Quick
38,377
16,298
The burning or the debugging? Emc had legit hardware engineers to do stuff for us. Here I am technically a hardware engineer
 

Vinen

God is dead
2,791
497
The burning or the debugging? Emc had legit hardware engineers to do stuff for us. Here I am technically a hardware engineer
Both.

Years ago I worked on broadcast rendering software. Had to test multiple different video cards so I'd be swapping them our multiple times a day. Cut myself quiiiite a few times as the brackets in the back of our computer case were ... not in good condition.

Boss walked into the lab once "Vinen, we just got the floor cleaned. Stop bleeding on the floor."
 

Noodleface

A Mod Real Quick
38,377
16,298
Took a day to work from home. Accidentally left my server with a bad bios. Not driving in to fix that. I'll just stare at the code to start
 

Noodleface

A Mod Real Quick
38,377
16,298
Yeah i mean BIOS is interesting to me so I enjoy that aspect, it's the company that is killing me.

Hate to say EMC was doing it right
 

TJT

Mr. Poopybutthole
<Gold Donor>
43,221
110,768
So, after reading about Cad's former life as a Tech consultant and how well it went... while also having too much free time during the week with my current job. I was able to secure some work as a consultant on the side doing database stuff. Mostly correcting people's shitty/poorly managed databases. Its only part time for now and I am able to work on some interesting things in my free time.

As an early riser I do most of this work before I go to my day job. I was honestly surprised at being able to rate at $50 an hour and these people didn't even blink. On my third project so far. Just started doing this this month. Racking up an extra 30 or 40 hours a week of time I would have spent doing dumb shit or just reading. So its been awesome.

So Cad if you read this thanks for your indirect motivation! You were 100% right (so far) the projects just keep coming.
 

TJT

Mr. Poopybutthole
<Gold Donor>
43,221
110,768
Oh I absolutely will be doing that. I was just testing the water with 50 and was surprised with it is all.
 

Cad

scientia potentia est
<Bronze Donator>
25,882
50,903
It's because $50 an hour is the equivalent of paying you roughly $15-$20/h which is dirt cheap - self employment taxes cost a lot. If people don't blink at $50 keep raising your prices with each new client.
"Self employment tax" ends up being 7-8% over a W2 employee on the first $100k-ish or whatever they have bumped it up to now. It's not like 50% like you're implying. You make a bit less as a 1099 but generally your rates will be 2X or more than what you'd make as a salary drone so it's all worth it.

Keep it up TJT, and be sure to ask clients for referrals as well. You don't need to be a used car salesman about it but just ask "If you have any other jobs let me know, or know of anybody looking for a quality guy, I'm pretty busy but always looking for a great client like you. I could use a few more like you, honestly!" Also ask if you can use them as a reference when bidding on other jobs.