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
Pollyanna
Mar 5, 2005

Milk's on them.


lifg posted:

Like Go

Or guys who really wanted to work at Google and end up at AWS instead, like the guy who made us use Go at my last company. :v:

Adbot
ADBOT LOVES YOU

SurgicalOntologist
Jun 17, 2004

ultrafilter posted:

My rule of thumb has always been that a repository should contain a single releasable unit. That's not a perfect solution but it seems to work pretty well for the projects I've been on.

This is it. My company has a monorepo and the main advantage is to release everything at once; on any single commit the whole system is deployable together and compatible. No need to put too much effort into versioning and compatibility.

However, now (three years in), we have reason to release some set of components separately. As soon as we implement that, we lose the benefit of the monorepo and so we'll probably split that set of components into its own repo.

Although I don't know if we'll be in a hurry to do so... We won't have the main benefit but also we haven't hit any real drawbacks yet (besides the release process coupling we're now addressing). All the special tooling we needed was a copious use of changes: in our GitLab CI pipeline definitions.

Harriet Carker
Jun 2, 2009

My last company hired a bunch of ex-googlers at the same time and it was a nightmare as they all tried furiously to rock the boat and make everything like it was at Google.

Pollyanna
Mar 5, 2005

Milk's on them.


I can’t imagine an ex-Googler leaving Google and then wanting things to be like Google. Wasn’t the point to, like, leave?

:sigh: I’m sure they exist though.

Xarn
Jun 26, 2015

smackfu posted:

Heh, I bet it’s like a virus that infects companies that hire ex-Googlers.

Extremely so. Our Go devs recently moved to a monorepo, spurred by some xooglers.

We are nowhere near enough to have the rest of the infra up to snuff.

Xguard86
Nov 22, 2004

"You don't understand his pain. Everywhere he goes he sees women working, wearing pants, speaking in gatherings, voting. Surely they will burn in the white hot flames of Hell"

Pollyanna posted:

I can’t imagine an ex-Googler leaving Google and then wanting things to be like Google. Wasn’t the point to, like, leave?

:sigh: I’m sure they exist though.

I want to work for my old company except I'm in charge or this time I get rich off the IPO are common answers

spiritual bypass
Feb 19, 2008

Grimey Drawer

Pollyanna posted:

I can’t imagine an ex-Googler leaving Google and then wanting things to be like Google. Wasn’t the point to, like, leave?

:sigh: I’m sure they exist though.

I once had an ex-Goog coworker who was fired for sexual harassment, so that's one way it can happen

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


https://twitter.com/gd3kr/status/1545370626273120256

This probably can't handle anything really complicated but it's worth a try for simple regexes.

Destroyenator
Dec 27, 2004

Don't ask me lady, I live in beer
We’ve got a halfway solution where our team which is responsible for multiple products (within a larger organisation) has them in a single repo using turbo/yarn workspaces. In practice it allows multiple deployable projects to reference “@lib/design-system” and our other reusable pieces without having to split them out and actually package/version them.

It works well enough and we do have builds that trigger only on certain paths that means slower moving services aren’t bothered often. We are full into typescript across everything though which makes the tooling easier.

prom candy
Dec 16, 2005

Only I may dance

Destroyenator posted:

We’ve got a halfway solution where our team which is responsible for multiple products (within a larger organisation) has them in a single repo using turbo/yarn workspaces. In practice it allows multiple deployable projects to reference “@lib/design-system” and our other reusable pieces without having to split them out and actually package/version them.

It works well enough and we do have builds that trigger only on certain paths that means slower moving services aren’t bothered often. We are full into typescript across everything though which makes the tooling easier.

Yeah this is exactly what I'm looking for I think. I don't want everything to deploy together but I really want those references to @lib/design-design system and maybe a few other shared things.

The other thing that I'm realizing might be tricky though is if I have a long running branch in one project while still needing to make frequent deploys to another project. For example one of our projects is undergoing a weeks-long redesign right now even though the other projects are stable and just receiving odds n ends updates to develop/main. But maybe a monorepo requires a different branching strategy.

redleader
Aug 18, 2005

Engage according to operational parameters

ultrafilter posted:

https://twitter.com/gd3kr/status/1545370626273120256

This probably can't handle anything really complicated but it's worth a try for simple regexes.

the one in the very first pic is wrong

Trapick
Apr 17, 2006

redleader posted:

the one in the very first pic is wrong
AI, it's just like us

AskYourself
May 23, 2005
Donut is for Homer as Asking yourself is to ...
Y is a vowel ?


prom candy posted:

one of our projects is undergoing a weeks-long redesign right now even though the other projects are stable and just receiving odds n ends updates to develop/main.

Referencing a specific branch in source code seem like very very bad idea, a complete crossing of the streams. You had to reference a prebuilt package from a package repo instead and specify the release version instead.

mitztronic
Jun 17, 2005

mixcloud.com/mitztronic

AskYourself posted:

Y is a vowel ?

Yes. I learned this for vowels in 1st grade: “A e i o u and sometimes y”

Fellatio del Toro
Mar 21, 2009

would love to see the regex that correctly accounts for y as a vowel

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...

brand engager posted:

What do you call this mess they have where the android git repos needed a utility just to manage them all https://source.android.com/setup/build/downloading

Unfortunate

Pollyanna posted:

I can’t imagine an ex-Googler leaving Google and then wanting things to be like Google. Wasn’t the point to, like, leave?

:sigh: I’m sure they exist though.

cum jabbar posted:

I once had an ex-Goog coworker who was fired for sexual harassment, so that's one way it can happen

Yeah, people change companies and not all for the same reasons. Some people get pushed out, or quit, because they are dick bags or because the dick bags are specifically loving with them. Some people want more money, or to live elsewhere, some people want to just do different things altogether. A coworker of mine, who was stuck doing very high level software stuff (stack level wise not technical difficulty) when he was happy as could be working on firmware, is now much happier working somewhere else working on firmware instead of that very high level stuff. Another former coworker left to eventually start their own company.

There's plenty of reasons beyond technical ones to change.

Volmarias fucked around with this message at 17:46 on Jul 10, 2022

prom candy
Dec 16, 2005

Only I may dance

AskYourself posted:

Referencing a specific branch in source code seem like very very bad idea, a complete crossing of the streams. You had to reference a prebuilt package from a package repo instead and specify the release version instead.

We don't reference the branch in the source code, unless I'm not understanding what you mean

asur
Dec 28, 2012

Pollyanna posted:

I can’t imagine an ex-Googler leaving Google and then wanting things to be like Google. Wasn’t the point to, like, leave?

:sigh: I’m sure they exist though.

In my experience, people don't leave Google over the tooling. In general, the tooling is great and the repo and commit tooling is world class. There's some idiosyncrasies over what is supported, unofficially supported, and deprecated that are an annoyance, but it's generally not a big deal.

There's a reason ex-Googlers try to replicate it, though if you don't understand the complexity backing it then that's doomed to fail.

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

mitztronic posted:

Yes. I learned this for vowels in 1st grade: “A e i o u and sometimes y”

Also sometimes w because of a loanword from welsh.

redleader
Aug 18, 2005

Engage according to operational parameters

AskYourself posted:

Y is a vowel ?

the regex in the first pic is /nw*g/i, which isn't quite "all words starting with n and ending with g"

unless the whole thing is a joke, in which case i can only claim poe's law

JawnV6
Jul 4, 2004

So hot ...

Volmarias posted:

My dude you need to calm down, Reader has been turned off for a long time now, let it go.

And, for what it's worth, I'm actually very happy with the end result around the source code situation, it's leaps and bounds better and beyond what I dealt with in other large companies. It's also very much solutions for very large companies with very large company / codebase problems, which is why I suggested that maybe a monorepo is not the way to solve the actual problem.

lol was that a sensitive spot? i specifically quoted someone else's language about monorepo. not everything's about you, buddy!

prom candy
Dec 16, 2005

Only I may dance
Hate the combined scenario of a looming and difficult deadline combined with waiting around for access to the things I need to build the thing that they want built so quickly.

FlapYoJacks
Feb 12, 2009

prom candy posted:

Hate the combined scenario of a looming and difficult deadline combined with waiting around for access to the things I need to build the thing that they want built so quickly.

CYA time. Make it very loud and apparent in your emails that you are delayed because you don’t have the things built. Continue to prominently display that they are moving the deadline back, and inform your PM that you refuse to keep the same deadline.

prom candy
Dec 16, 2005

Only I may dance

FlapYoJacks posted:

CYA time. Make it very loud and apparent in your emails that you are delayed because you don’t have the things built. Continue to prominently display that they are moving the deadline back, and inform your PM that you refuse to keep the same deadline.

They are a huge and wildly important customer. I'm just gonna have to eat a bit of poo poo on this one unfortunately. I'll keep my boss in the know so if things slip it's not totally on me but I'm just gonna have to do what it takes to get their thing done. My job is insanely chill 99% of the time so I'll just vent in here but otherwise chalk it up to that's life sometimes.

On the plus side I got into a 1 on 1 meeting with a developer on their end and we sorted a bunch of stuff out in about ten minutes.

Happiness Commando
Feb 1, 2002
$$ joy at gunpoint $$

I asked this in the IT thread, because thats where I belong, but this specific question might go better here. I got asked for help. Some person is a product manager for a software consultancy, and regularly having arguments with the engineers on their team about good design practices like logging database transactions. His specific request is what resources (books/whitepapers/whatever) can I expose myself to, so I can better explain that the family of tenets like "explicitly store DB transactions" are good . His situation is as follows:

quote:

I'm having recurring fights with one of my engineers about things that make sense/are obvious to me but it's hard for me to convey why in a convincing way. Eg, we have a cron job that when it runs, some transaction occurs. I ask where that transaction is being logged so we can expose it. She says it's not being logged. Because we can back our way into that transaction data by knowing when the chron job kicked off and the lack of any other alternative transactions. This is so incredibly stupid/basic, "log when transactions occur" but she says, "what's the requirement to log a transaction if it requires extra work and we can find it implicitly"

Situation: For example, emails are deleted if they are in spam for 30 days.

PM: Tell me when emails in spam are deleted.
Engineer: Well, we already log when emails are sent to spam. So the way to tell when they are deleted is to find out when they were marked spam, figure out the days_until_deletion flag at the time the email was marked, and then ensure there never was a "unmark spam", and then you'll know when the email was deleted

Versus, when the "delete old spam emails" job is run, mark which emails got deleted when and log it


I dont know of any resources about the proper fundamentals of system/app design, any of you all have suggestions? I've never been in a situation where I didn't want to log DB transactions, but I'll concede its possible that calling it a fundamental of good system design is an overreach

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

Happiness Commando posted:

I asked this in the IT thread, because thats where I belong, but this specific question might go better here. I got asked for help. Some person is a product manager for a software consultancy, and regularly having arguments with the engineers on their team about good design practices like logging database transactions. His specific request is what resources (books/whitepapers/whatever) can I expose myself to, so I can better explain that the family of tenets like "explicitly store DB transactions" are good . His situation is as follows:

I dont know of any resources about the proper fundamentals of system/app design, any of you all have suggestions? I've never been in a situation where I didn't want to log DB transactions, but I'll concede its possible that calling it a fundamental of good system design is an overreach

Some people log everything and have terabytes of unusable logs full of "someone has stolen your trees!" messages. Some people have configurable trace levels but that runs the risk of the "right" log level not being on at the time you need that information.

The scenario above could easily be "no one has ever needed that information in 20 years and won't need it for another 20, so we have a reasonable way to get the information when we need it and adding additional logging will take longer than just finding out the info when asked". Especially if it's a clunky old system, adding the kind of logging they're after could genuinely be a pain in the rear end for minimal benefit. Sometimes you just let the clunky old poo poo keep on clunking.

Edit: the person who asked the question is also using weird terminology that is meaningful to them but nonsense to the rest of the world. A "transaction" in a database is a very specific term with a very specific meaning, and nothing about it would involve "logging". "Exposing a transaction" is a complete nonsense phrase from a technical perspective. If they mean "we want to be able to audit the logs of activities taken by our applications", they should say that. We inhabit a world of ambiguity caused by the same words meaning different things in different contexts, so it's important to be very deliberate when choosing words to describe things. Don't assume your shorthand expression will translate for others.

New Yorp New Yorp fucked around with this message at 05:27 on Jul 28, 2022

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
Yeah, I don't have the slightest clue what "log a database transaction so we can expose it" or "explicitly store DB transactions" means or what's being requested.

thotsky
Jun 7, 2005

hot to trot

Happiness Commando posted:

His specific request is what resources (books/whitepapers/whatever) can I expose myself to, so I can better explain that the family of tenets like "explicitly store DB transactions" are good . His situation is as follows:

I dont know of any resources about the proper fundamentals of system/app design, any of you all have suggestions?

Appeals to authority are super annoying, so it's weird for him to request one. I guess he's basically saying he does not respect yours and doesn't want to listen to your arguments.

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
It sounds like he wants audit logs.

And yeah, if your mechanism for getting audit logs is "reconstruct the prior state of the system and work out what it should have done assuming everything worked correctly" then that's laughable, but the authority pointing out that it's wrong shouldn't come from a system design book, it should come from the thing that these audit logs are intended to be used for.

It may be that he doesn't know he wants audit logs, he just knows he observed logging like this at some old job and thinks setting up something similar here shows initiative.

Xguard86
Nov 22, 2004

"You don't understand his pain. Everywhere he goes he sees women working, wearing pants, speaking in gatherings, voting. Surely they will burn in the white hot flames of Hell"
PM should ask for some kind of outcome and leave it to the devs to figure out. If the PM thinks the engineering team's implementation won't fit their outcome they need to give more context or communicate the future better.

smackfu
Jun 7, 2004

We have some call center apps that log literally everything the person does and very visibly shows that log to the user. I assume it’s mainly to discourage people from loving around.

Clanpot Shake
Aug 10, 2006
shake shake!

Xguard86 posted:

PM should ask for some kind of outcome and leave it to the devs to figure out. If the PM thinks the engineering team's implementation won't fit their outcome they need to give more context or communicate the future better.

This. If a PM is coming to you asking for a specific technical implementation, something is very wrong. Ask them what they actually want to accomplish and trust your devs to either do it or to explain why doing it is difficult or expensive.

Paolomania
Apr 26, 2006

Yeah it sounds like they might mean "financial transaction" rather than "database transaction", which are different levels of abstraction.

Bruegels Fuckbooks
Sep 14, 2004

Now, listen - I know the two of you are very different from each other in a lot of ways, but you have to understand that as far as Grandpa's concerned, you're both pieces of shit! Yeah. I can prove it mathematically.

Happiness Commando posted:

I asked this in the IT thread, because thats where I belong, but this specific question might go better here. I got asked for help. Some person is a product manager for a software consultancy, and regularly having arguments with the engineers on their team about good design practices like logging database transactions. His specific request is what resources (books/whitepapers/whatever) can I expose myself to, so I can better explain that the family of tenets like "explicitly store DB transactions" are good .
If you make an engineering request to an engineering team, the proposal should be self-evidently logical. You're not going to win a fight with an engineering team by including footnotes and sources, this isn't academia.

That said he could be in the position where he's managing people who don't know what a database transaction is etc. That's a sign to get on the market and get another job, not to argue with your engineers.

ultrafilter
Aug 23, 2007

It's okay if you have any questions.


Paolomania posted:

Yeah it sounds like they might mean "financial transaction" rather than "database transaction", which are different levels of abstraction.

Pretty important distinction here.

bigperm
Jul 10, 2001
some obscure reference
Situation: For example, emails are deleted if they are in spam for 30 days.

PM: Tell me when emails in spam are deleted.

Situation: Uhh, I just did. 30 days after they are marked as spam.

PM: Yeah but when are the emails in spam deleted?

Situation: ...

PM: (dying) but when?

thotsky
Jun 7, 2005

hot to trot
I really need a date to tell the client.

Pollyanna
Mar 5, 2005

Milk's on them.


bigperm posted:

Situation: For example, emails are deleted if they are in spam for 30 days.

PM: Tell me when emails in spam are deleted.

Situation: Uhh, I just did. 30 days after they are marked as spam.

PM: Yeah but when are the emails in spam deleted?

Situation: ...

PM: (dying) but when?

I…what :psyduck: what is even happening here

Volmarias
Dec 31, 2002

EMAIL... THE INTERNET... SEARCH ENGINES...

bigperm posted:

Situation: For example, emails are deleted if they are in spam for 30 days.

PM: Tell me when emails in spam are deleted.

Situation: Uhh, I just did. 30 days after they are marked as spam.

PM: Yeah but when are the emails in spam deleted?

Situation: ...

PM: (dying) but when?

"Daily, usually, but again usually only for some."

Adbot
ADBOT LOVES YOU

prom candy
Dec 16, 2005

Only I may dance
Let's say you had a monolithic Rails back end serving as an API for multiple front end projects and also running a ton of background tasks for ingesting and managing data. Let's say for a number of reasons you hated it and wanted to move to something more modern. Also let's say that the centrepiece of your backend is an SQL database that is the single source of truth for just about everything.

How would you even begin to start taking steps to move away from it? I hate this language and framework so loving much now but I feel completely stuck with it.

Also I know leaving the job is one way to free myself from this torment but I really, really like the job.

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