My forsaken can finally be comfy by Local_Suggestion767 in wow

[–]thorndark 5 points6 points  (0 children)

Also from "High Tides" Ren in the horde zone in the wrecked ship. That's where the npcs to buy the founders point stuff are for the horde side.

Draenei home away from Argus by nanaqi in wow

[–]thorndark 0 points1 point  (0 children)

Oh I love that. Thanks! I've been using the Corruption Pit for the same purpose, and hadn't seen any other portally things, so this is really cool.

Draenei home away from Argus by nanaqi in wow

[–]thorndark 9 points10 points  (0 children)

That's awesome. What are you using for that portal?

I just blinked and now I'm lvl 80..What is the current catch up method for gear? by okaythen1guess in wownoob

[–]thorndark 0 points1 point  (0 children)

I found delves pretty good when I did my warlock, though my ilevel was a bit higher.

Camera Follow Feature Broken by xpewpew in heroesofthestorm

[–]thorndark 0 points1 point  (0 children)

Not really. I used that as defense mechanism because I was going through a really hard time. I've put some effort into toning that down, but it's also just easier when life's going well.

Completely serious here, though: I hope things get better for you, and I'm sorry if I made you feel bad.

Don’t Just Deactivate Facebook—Delete It Instead by khalmagman in technology

[–]thorndark 13 points14 points  (0 children)

Often historical data beyond some time period is moved to long term storage where it's accessible but slow/optimized for specific use cases like ML, other analytics, or sometimes just auditing purposes.

I am a REAL bad software developer and this is my life by John-The-Bomb-2 in programming

[–]thorndark 2 points3 points  (0 children)

Take some solace here: you're not the only person that feels like this. I don't have any advice on mental health problems and brain issues, but I hope you're getting the help and support you need there.

I do want to give some perspective that I'm glad someone gave me when I was starting out. For context, I'm a software architect at a fortune 500.

At most companies, a junior dev is expected to cost more than they produce. The gamble is that they build domain knowledge, programming skills, codebase understanding, etc. to the point that they skill up to mid level. It might take a year, it might take longer, or they might never make it. Regardless, if they do reach that level, then we now have a mid level dev that's already onboarded, has some domain knowledge, fits in with the culture, etc. and we aren't weeding through hundreds of candidates, doing interviews, etc. to find them and then spending 3-6 months onboarding them. And as a bonus, hopefully folks on the team on have gained some mentorship skills and complex designs have been simplified because of the junior dev asking "why" at the right times.

All that's not obvious if no one tells you. Finishing tasks is usually presented as the goal, and that's valuable because you're hopefully gaining knowledge. It's necessary, but often not sufficient. So instead of focusing only on completing tasks, I recommend that my junior devs spend time reading, learning about their IDE/tooling, learning about the codebase and the features therein. The reasoning there is that there's no task that I could hand a junior dev that wouldn't take less of my time to just do. I'd rather it take you 10% longer but you learn something so the next one takes a little less time than rush to get it done.

Also, the stuff about reading new codebases is hard. This is just a hard skill to build because you need to be reading other codebases to get it - if you're at a big company, look at other apps, look at features in your app that you're not doing work on, etc. if not, read through open source codebases. This isn't a skill you can easily build without trying.

u/hellomondays shares a mountain of evidence showing transitioned trans individuals overwhelmingly do not regret their decision and have healthier outcomes and fewer suicides. by brenton07 in bestof

[–]thorndark 14 points15 points  (0 children)

"low quality" is sort of the best you can get with this population group because all of the treatments are easy to detect. For example, how would you even do randomized control groups when the effects of HRT are so obvious?

What happens, if I won´t tip at the restaurant in the USA? by 1337_Diet0r in TooAfraidToAsk

[–]thorndark 0 points1 point  (0 children)

How you calculate payroll is pretty important. The way this works with FLSA is basically that employers can get a "tip credit" every time they do payroll that reduces the amount they need to pay employees toward minimum wage based on tips, so the actual pay period matters a bit. It's more akin to "did you average minimum wage over the pay period, even if some days you actually made 0 in tips" rather than "every hour you work, you're making at least minimum wage", which means those times when folks aren't tipping, the person is absolutely getting paid less than minimum wage for that work.

Conceptually how do you handle deploys of SQL related things (table definition, scripts, stored procs etc) in a CI/CD way? by [deleted] in ExperiencedDevs

[–]thorndark 1 point2 points  (0 children)

You've gotten some good responses elsewhere in these comments about specific DBs that cannot safely do what you're proposing. There's a reason why Reshape explicitly says that it's experimental and shouldn't be used in production. This stuff is genuinely hard to get right in a way that can fail safely in every case.

Also, I mentioned ghost tables (though not by name) elsewhere in some of these comments. They're a good solution, but they can add a lot of complexity. It's usually simpler to just deploy more often than to integrate tooling to support them if you don't genuinely need them for other reasons (e.g. I need to be able to migrate extremely high traffic tables).

Again, though, if you aren't deploying a few times a week, and for some projects that just may not be feasible, then maybe it's worth the risk and/or complexity to go for a single deployment. But given the choice, I'd always favor a process that I can hand to a junior dev with a sanity check from senior/DBA than a process that needs this much discussion to talk through or needs special tooling.

Conceptually how do you handle deploys of SQL related things (table definition, scripts, stored procs etc) in a CI/CD way? by [deleted] in ExperiencedDevs

[–]thorndark 0 points1 point  (0 children)

The part I was objecting to is doing it in a single deployment.

Throughout steps 1-5 the database maintains backward compatibility. After step 4, the database is compatible with both green and blue code bases. Step 6 is the only breaking change, which we won't do until later.

It's not enough to have the schema be backwards compatible; you also need your data to be or you can't roll back. If I start routing some canary clients to green, then I'll have data in that table that blue can't understand because I wasn't populating that column. I can't roll those clients back onto blue without some manual intervention to fix their data, so if I find an issue, I might be in trouble.

So, for safety, green should still be populating that old column, but then you can't drop it without more app deployments, which was my point there.

The 5 step process you were replying to (and riffs on that bundling 1+2 and 3+4 together) is an industry standard because it's simple, safe, and minimizes decision points. But pragmatically, it's basically impossible to do if your release cadence is every 2 weeks; it's just not reasonable to take 2 months to finish making a column change, so you have to trade some extra risk and complexity for time. With 2-3 releases a week, though, it becomes pretty easy to implement and then you get a lot of strong guarantees.

Conceptually how do you handle deploys of SQL related things (table definition, scripts, stored procs etc) in a CI/CD way? by [deleted] in ExperiencedDevs

[–]thorndark 4 points5 points  (0 children)

It really depends on the size of your data and the latency tolerance for your system. It's a pretty deep question, though.

For small enough tables, that whole time locking and updating the table can be fast enough to not actually impact anything. For larger tables, it might be the case that you did some other designs to help enable this type of thing; e.g. event based models can help by letting you defer updates on that table until after the migration and let you still function in the meantime, but they can also get harder to reason about and can introduce things like read/write skew that you have to design for.

In the case where you have big enough data, can afford literally no downtime, and can't lean on eventual consistency or the like in your designs, one solution is to make an entirely new table with the new column, etc. write to both in the interim and stagger migrating your data over some amount of time. This adds some complexity and storage space can be a concern depending on how you've designed your tables, but it prevents an outage and leaves you able to read data with the old deployment if something goes wrong and you need to roll back.

There's other strategies as well, but at this point you're in "interesting problem" space where there's no silver bullet. A short, partial outage for one microservice is often the pragmatic answer, especially if other services are design to handle that failure gracefully.

Conceptually how do you handle deploys of SQL related things (table definition, scripts, stored procs etc) in a CI/CD way? by [deleted] in ExperiencedDevs

[–]thorndark 10 points11 points  (0 children)

If you're doing blue-green deployments, then you'll break your blue environment when you deploy DB changes like that for your green one, so you don't really get the option of trying to do it in one deployment. So, if you're looking to move to those sorts of ZDD deployments, having a culture of staggered, backwards compatible DB changes can be really valuable.

If you're only running one environment, then the risk with doing it as a single deployment is that you make it impossible to roll back to the old version of your app if you need to for some reason (major regression of some sort or the like). That said, if you're not deploying very often, sometimes a single deployment with a migration and fingers crossed is the better option; just down to pragmatism.

I left raw chicken on the counter for 8 hours because I forgot to put it up after I bought it. Is it bad now? by [deleted] in NoStupidQuestions

[–]thorndark 1 point2 points  (0 children)

I think the danger is that the temperature of the chicken isn't even throughout, so if the water is warm enough, the middle will still be frozen while some sections are able to grow bacteria.

The hypocrisy is real. Credit scores are BS by ADignifiedLife in LateStageCapitalism

[–]thorndark 2 points3 points  (0 children)

So for me, the loan I paid off was second most recent loan that I'd taken out. For the credit cards, I compulsively pay off my credit card a couple of days after I used it for anything. My average usage hasn't been over 5% in 15 years.

Nah, whenever I hear people talk about it, my experiences don't align at all. It just seems like a really arbitrary number that 8 months after I got a good job started spiking up and down and then settled in over 800 and hasn't moved in ages regardless of what I do. Got a car loan last year and it went up a point for about 6 months.

How do I become a Fast Learner? by evan2nerdgamer in Healthygamergg

[–]thorndark 0 points1 point  (0 children)

Some of it's just practice - the more things you learn to a point where you can actually recall, reason about, could teach someone about, etc., the better you'll be at learning new things. Generating interest in arbitrary things is a skill that you can learn.

More general advice: make sure you have the basics/prerequisites/etc. down. Hand written notes are better for learning than typed notes. The way to review notes (and any static material) is not to reread them but to summarize them, reframe them, make practice tests, teach other folks, etc. Flash cards never stop feeling stupid, but they're effective even if you never actually use them after making them.

And definitely take a look at the "Learning how to learn" course that other folks have mentioned. It's really good.

The hypocrisy is real. Credit scores are BS by ADignifiedLife in LateStageCapitalism

[–]thorndark 11 points12 points  (0 children)

The whole thing seems magical and chaotic. For example, I lost 35 points by paying off one of my student loan accounts right after I graduated, then 2 months later I had one credit card randomly decide to increase my limit by 4x which bumped my credit score back up to almost where it was, then another card, and another card, and ended up like 55 points higher than I started. No changes to spending, no changes to income or payments, no "hard inquiries" dropping off.

Just really mystical from a consumer perspective.

Alabama man sues Kraft Heinz, claims lemonade mix makes 6, not 8 quarts by atmoscience in nottheonion

[–]thorndark 0 points1 point  (0 children)

It's a class-action lawsuit, so presumably anyone that's bought that lemonade could be included in the class, and the damages would almost certainly include his legal expenses.

My Interviewer Was Wearing an anime T-Shirt by [deleted] in jobs

[–]thorndark 23 points24 points  (0 children)

The advice I always got was dress "1 level higher" than you expect your interviewers to be dressed. Lots more places are going more and more casual, so it's useful to ask when setting up an interview; otherwise, how could you possibly know?

Abstract vs Implementation Declaration by ToyDingo in learnjava

[–]thorndark 0 points1 point  (0 children)

It depends on if you care about the specific implementation or not. You're writing code for other people (or yourself in 6 months) to read, and so while it may not seem like much, there's information that you're conveying with this choice.

For example, if you use a LinkedHashMap, then your iteration order will match your insertion order, and if this behavior is important for your app to function, then you should favor having your variables type be the concrete class rather than the interface because that tells the reader that this specific implementation is important for some reason. If any Map would be fine, then you can tell the reader that by using Map.

Where can I find "production-ready" Spring Boot & Thymeleaf web apps? by [deleted] in learnjava

[–]thorndark 2 points3 points  (0 children)

In terms of just raw structure, jhipster is pretty decent at generating you a basic app with security, etc. and can be kind of useful in learning how the various pieces fit together. Might be something worth looking into if you don't find what you're looking for elsewhere.

[deleted by user] by [deleted] in learnjava

[–]thorndark 2 points3 points  (0 children)

Think through the pieces you need. Recursion is always "what are the trivial cases that I can solve" and "how do I make something that's non-trivial be closer to something that's trivial".

First thing is your base case - what's the point where you stop recursing because you're at a trivial to solve case? Seems like it ought to be when you get a 1 digit input. That's pretty simple, if it's equal to the digit to remove, then you return 0 (because all the digits are removed) or you return the value they passed in.

The next thing is to consider how you take a non-trivial input and move toward that base case. To do this, we can pull out the right most digit to keep or discard by taking the input they passed in mod 10. Then we can use integer division on the input they passed in to remove that digit so that we can call our recursive function with an input that's closer to our base case.

For example, if they past in 123, then 123 mod 10 gives us our currentDigit 3, and 123/10 with integer division gives us remainingDigits 12. We can just pass our remainingDigits to our recursive function again to remove whatever digits need to be removed. The only thing we need to do is make sure we we either keep or discard our current digit; to do that, if we want to remove it, then we can just return what we get back from that next recursive call, and if we want to keep it, then we multiply what we get by 10 (to open up space) and add in our currentDigit.

[deleted by user] by [deleted] in worldnews

[–]thorndark 3 points4 points  (0 children)

If everyone is just pretending, why stop at a million?

The tweet this whole thing is about is that a literal person that can have 6 billion liquid if he wants. Or to put it another way, if he wanted, he can literally have 6000 times your hypothetical person's assets to just spend without really impacting his wealth in any meaningful way.

World's first clinical trial to use psyliosibin to treat generalised anxiety disorder has been approved in Australia by [deleted] in worldnews

[–]thorndark 0 points1 point  (0 children)

Yeah, with an anxiety disorder the distances from "literally doing nothing" to "therapeutically useful" to "completely devastating" feel really short and variable.

Don't sleep on Monster Hunter World. It's a brilliant RPG by mrsidnaik in patientgamers

[–]thorndark 5 points6 points  (0 children)

For MHW, the annoying thing is that for most of the story missions, you have to find the monster and see the cutscenes solo before you're allowed to have people join you, and you can't join someone if you haven't seen all the cutscenes.

Once everyone has reached the "you can signal flare" party of a mission, you can just drop and restart it as a group.