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
Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
terrible manager that sometimes programs checking in

i write python and java when i get the chance but mostly i tell other teams how they should write their code

Adbot
ADBOT LOVES YOU

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Shaggar posted:

javascript is the worst thing there is. gently caress everyone who thinks it was ever a good idea.

nah php is way worse

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
ruby is worse too

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
case in point, a former coworker of mine just went to google to do open source tools engineering. idk what he's gonna be working on but it sounded really good.

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

MALE SHOEGAZE posted:

tef's posts always remind me that i need to learn more about distributed systems.

i work with a distributed system and the thing that sucks the most is how easy it is to go up your own rear end covering edge cases and failure points. it gets absurd and never gets simpler and that's why tef's posts own.

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

MononcQc posted:

Some storage we'll use on a high-availability product will be backed by just regular human readable files because it will be more important for an operator to be able to edit things by hand or crush it with an external file if all poo poo goes to hell than any level of performance that would be gained otherwise :toot:

thats why our message bus passes pointers to files in s3. any performance loss (and there's not a lot) is offset by a) being able to sort of replay messages and b) diagnose failed payloads

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Ploft-shell crab posted:

this is your brain on message bus? is there a reason you can’t do service discovery?

it's a ~8 year old data ingestion pipeline and i have 0 control (or interest in control) over refactoring how services talk to each other

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Powerful Two-Hander posted:

this is how terrible I am: when you open any script file in our solution vs will barf a load of warnings of "==, I think you mean ===" and I ignore them all

yeah that's pretty terrible

don't use == unless you absolutely have a reason to compare and allow javascripts weird type conversion rules to do their thing

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
no outlay for hardware. no need to anticipate hardware purchases. built in orchestration apis versus implementing something like esxi.

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Kilometres Davis posted:

Less poo poo to worry about

disagree entirely

if you're running t2.micros yeah that's true but cloud networking and vm performance tuning is a very interesting and complicated thing

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
imo aws's api is light years better than vmware's offering

also managed services are great and i love not having to janitor my database vms and not use rabbitmq in favor of sns/sqs

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

eschaton posted:

applications don’t run in the cloud, applications run on users’ devices

back-end services used by applications might run in the cloud, of course

if you’re really talking about web pages, having someone else host your web pages has been a thing almost as long as web pages have

your gimmick sucks

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
we wrote a property management system that works really well and is a really great concept but is garbage cans full of burning trash under the hood

still proud of it tho

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
it's the linchpin of services we spend $18m/year running on aws and it's literally loving nodejs but it works flawlessly

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
i miss writing code and am srsly thinking about going back to being an ic even though management has sweet rear end perks

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Finster Dexter posted:

ctps: I'm plumbing the depths of a whole new universe of being terrible. Currently staring at the AWS console and wondering why I agreed to do devops stuff. Currently reading Aurora docs and still unsure why I would want this. I just want to set up a database server, geez.

aws loving owns and paas is super cool and good

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Corla Plankun posted:

costs a god drat fortune though lmao god

you ain't kidding i just checked and our aws spend last month was $1.3m and that's one of the cheaper months we've had lately

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Spime Wrangler posted:

as a terrible python programmer is kotlin a good option for a second not-javascript language?

I mostly want to see how I like strict typing and maybe work towards having another set of tools besides django for backend development

learn java then if you like it give kotlin a go. there's nothing in kotlin that's a super killer feature imo it's just a generally nice and well polished language on the jvm.

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

brap posted:

does go give a compile error if you don’t bind the error return value to something? (i.e. _)

yes, a returned error is an explicit part of the function's signature and if a return value isn't handled the complier will yell at you

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
incremental commits like "wip" or "linting" or "wtf" that will always stay local should probably be rewritten to represent the final units of work before pushed to the remote

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Finster Dexter posted:

Yeah, that's what I'm using... but I have to do it in the context of the event-based json decoder like it's 1998. You can't just "Unmarshal" (the ~idiomatic~ term for deserializing) the json string and then call Number.String on it.

The alternative (that I might end up switching to) is to just Unmarshal into a map[string]map[string]string or whatever and grab priceMessage["turd"]["price"] (but a few levels deeper).

can't you tag the field as json.RawMessage and parse the []byte as needed?

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

CRIP EATIN BREAD posted:

i'm pretty sure that at my university, before i could take anything related to programming, i had to take an algorithms course that was nothing but reading/write pseudocoe and time complexity analysis.

this is like people admitting that their parents beat them with switches when they were kids but then swear that it was just discipline

being abused by a cruel education isn't your fault

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

ComradeCosmobot posted:

also it has a schema language that can be used to enforce syntactic correctness of esoteric things JSON didn’t feel the need to standardize like timestamps

tbh idk if i want my serialization format to be so opinionated as to stipulate a timestamp format

so i just do what everyone else does and pray that dates are iso-8601 or seconds since the epoch and if not :fuckoff:

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
spring has these really great concepts called interceptors and filters that can be applied before a request hits your controller. they seem like an ideal place to do hmac validation but apparently HttpServletRequest doesn't cache the request body in any way so once you read it it's gone forever and you can't reassign the body back into the request in any way

so now i'm making a hmac validation utility and calling it from the first line of all my controllers rather than doing it the way i want

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

suffix posted:

if they're like jetty filters you can make a new request that wraps the old one but with getReader etc. overriden and pass that down the chain

Kevin Mitnick P.E. posted:

ServletRequestFilter is provided by the spec and runs before DispatcherServlet. interceptors are provided by spring and run after DispatcherServlet sees the request. sounds like this is global to your app so just do a filter and pass a wrapped request down the chain.

i tried this but couldn't get the @RequestBody annotation to recognize the cached request body in the wrapped request. then i gave up and wrote a util :(

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
supporting one webapp is way easier than supporting multiple, platform-specific codebases

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Schadenboner posted:

I once had a tooth pulled for which I got the one that’s Tylenol and some opiate. I took one then fell asleep extremely worried I wasn’t going to ever wake up but unable to do anything about it.

:shudder:

I’ve never really “gotten” the appeal of opiates.

have a spine injury and you'll get it

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Sapozhnik posted:

k8s and docker have a legitimate use in situations where you've got 10,000 applications and 10,000 servers and installing all those applications on all those servers isn't really practical, so you want to decouple applications from the physical servers they are installed and running on. classic tools like rpm are too heavy and static and single-instance-focused to usefully accomplish this.

there's also the fact that rpm is just a bad piece of software in general and the guy who wrote it did not end up leaving rh voluntarily.

docker itself is a bundle of unrelated ideas and unrelated tools. there's no reason why the container build tool and the container runtime both have to be a part of "docker", for instance. there's also no essential reason for containers to be part of the picture in a landscape where you manage immutable and automatically-constructed cattle instead of hand-assembled pets; nobody has any reason to do the latter even for hobby projects these days.

a good way to accomplish the best of both worlds would be to use rpm-ostree to turn rpm into a build tool instead of a system management tool, then construct and discard immutable system images which you can still log into and debug in a fairly straightforward way. but it doesn't have any traction and it doesn't have the ecosystem that docker has. people insisting on using loving ubuntu for anything ever doesn't help

idk i'm too tired to keep fighting against the tide of this crap. i just feel like we could do better. the people pushing this brave new world have some legitimately good ideas but they're throwing the baby out with the bathwater.

well constructed golden images were the pinnacle of server management and i'll fight anyone who disagrees

kubernetes has largely just turned that concept into a herd of pets managing cattle containers while the ops team tears their hair out making sure that all of k8s's inscrutable internals are working correctly so the fleet of 10,000 containers serving a fart app can continue to run

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Ploft-shell crab posted:

yes, that’s exactly the point. instead of ops managing several different kinds of pets, it manages just one kind of pet.

and no, you absolutely don’t need 10000 instance or application clusters to make k8s a worthwhile endeavor. you’d much rather manage a single cluster of k8s rather than every component that each of your dev teams need. K8s doco and code is rough, I agree, but it’s way better than anything you’re getting from your application teams. being able to scale to 10000 nodes “easily” is just a very nice plus.

so in the interest of consistent environments (which we already have because chef/ansible/salt are a thing) ops is now on the hook for making sure that a set of beautiful pet k8s masters and nodes can never ever go down.

tell me again how that's better than golden images with sensible autoscaling and instance termination on app failure?

Shaggar posted:

y do you even have servers. just deploy to azure paas.

lmao, hush shaggar, the adults are talking

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Finster Dexter posted:

I blame microservices (and I'm not sure if that's good or bad, tbh)

i blame everyone wishing really hard that they were google or netflix, cargo culting like crazy, and forcing sensible people into chasing buzzwords to enable idiots to keep going fast and breaking things

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
there's a middle ground where you can build microservices and not use docker or kubernetes and still get consistent, reproducible builds of both the app and the environment

it does take a level of discipline that very few companies have though

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

ratbert90 posted:

Docker is nice though because updating is easy as gently caress.

Step 1) Build
Step 2) Push image to a docker repo
Step 3) Pull new image

golden image is nice because

step 1) build
step 2) push jar/war/whatever the gently caress to nexus/artifactory
step 3) have packer bake a new ami

it's the exact same poo poo

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Ploft-shell crab posted:

if you live in a world where you have stateless components and can easily scale up in an asg, then by all means go that route. I would argue that baking containers is preferable to baking images, but it doesn’t really matter that much

there are plenty of operational environments that are not cloud or are stateful where you can’t just let aws magic take care of everything. if you have to have pets, there’s no reason why those pets shouldn’t be k8s

fair

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
i used to be of the opinion that queues between services let you reasonably distribute work to n number of consumers of m types and decouple services but all you end up doing is adding an unbounded, ephemeral transport between services which means you have to continually monitor scaling and queue depth to identify bottlenecks and can't actually apply back-pressure from the consumer

contrast this with http/rpc/whatever calls to a load balancer with each services maintaining internal queues for re-work in case the downstream service applies back-pressure and imo it's pretty clear that all a queue does is provide non-durable storage outside of individual transaction handling at the operational expense of maintaining an opaque system that's really easy to tip over (i'm looking at you rabbitmq)

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
elasticsearch is fine just use it for storing logs

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

CRIP EATIN BREAD posted:

how in the world are you screwing up an es cluster?

how are you getting any sort of downtime?

running it on aws, pumping hundreds of thousands of log-lines per second through it, then losing a node and/or having a shard/shards reallocate

es is great when it works but man it takes a lot to keep it operating as a near-realtime store for operational logging from a few hundred microservices + sidecar services

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
yep that's exactly right. it's hard to tell what an appropriate capacity for an es cluster is based on volume/storage needs until you tip it over, adjust, tip it over again, and then keep adjusting. there are some ok tools for understanding shard allocation and replication but no real silver bullet for any of it.

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

MrMoo posted:

Anyone use Veracode because :lol:

After smashing CI with way too many builds I get a 17 page report that appears to be utterly incorrect. Half a dozen signed/unsigned comparison errors on what are just lines with function calls in, and this single piece of code, which is apparently a severe numeric error:

C++ code:
poll_tv.tv_usec = delay.InMicroseconds() % Time::kMicrosecondsPerSecond;
That's even copied from :chome:

i'm about to start a poc with them please tell me more sadness

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS

Shaggar posted:

it wouldn't be bad if the client language was c# instead of javascript.

then go back in time and kill brendan eich cause otherwise that horse left the barn years ago

Adbot
ADBOT LOVES YOU

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
modern javascript is fine as a language although the stdlib is tiny because browsers

the ecosystem that came up because of the tiny stdlib, the lack of standardized build targets, and the entire thing running on the client is javascript's shame

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