Open Side Menu Go to the Top
Register
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** ** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **

06-13-2017 , 10:52 AM
Quote:
Originally Posted by RustyBrooks
I write C++ stuff for my side projects and my biggest problem was (shocker) cross platform support. You kind of either have to choose lowest common denominator support between windows/osx/linux or you have to make custom makefiles and some #defines and stuff. Not that this is anything new.

(This is mostly a problem if you want the bleeding edge stuff. When c++11 first started making it's way into g++ it was pretty spotty, probably better now, but now c++17 will be spotty and so forth.)
Yes, I am not worried about cross platform at this moment. Making personal programs, etc. If I develop a phone game mmo or something then I'll have to consider it, and then I'd use Qt. So much to learn, so little time.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-13-2017 , 12:38 PM
Shocking result: adding player moderators to my game just means I get constant drama and pings on discord in the middle of the day.

But at least we don't have players named "natehiggers"?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-13-2017 , 01:20 PM
Quote:
Originally Posted by Grue
OT I'm going to Napa with wife for vacation, worth it to take pch over 101? About an hour extra. Anything we "have" to do? Best SF strip club??
Point reyes is worth the drive if you have time. Muir woods is good for hikes and some nice lookouts on HW 1 around Stinson beach/Muir woods area. It's not as hard north/west as reyes.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-13-2017 , 02:18 PM
Boy, you want to get your adrenaline flowing, try this...

Big release today, rolling out a large change that converts some mongo collections into mysql tables. A solid week of work backed up by a few weeks of prep. Immediately goes tits up.

Several related endpoints start taking 10x as long, mysql CPU shoots to 100%.

We declare that if it doesn't resolve in 10 minutes we're rolling back.

In that time period I figure out that I indexed the wrong column - our most common queries use "modified" date, not "created" date, and I indexed "created"

Create the index, everything goes back to normal, and now I need to lay down for a minute
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-13-2017 , 02:32 PM
Amazing how much the wrong index can **** things up...
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-13-2017 , 02:43 PM
Is there any database that can auto-create indexes based on your queries? It seems like that should be a solved problem in the current year..
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-13-2017 , 02:49 PM
Quote:
Originally Posted by RustyBrooks
Boy, you want to get your adrenaline flowing, try this...

Big release today, rolling out a large change that converts some mongo collections into mysql tables. A solid week of work backed up by a few weeks of prep. Immediately goes tits up.

Several related endpoints start taking 10x as long, mysql CPU shoots to 100%.

We declare that if it doesn't resolve in 10 minutes we're rolling back.

In that time period I figure out that I indexed the wrong column - our most common queries use "modified" date, not "created" date, and I indexed "created"

Create the index, everything goes back to normal, and now I need to lay down for a minute
I feel the need to make the obligatory comment that this doesn't feel like the right way to do the migration...
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-13-2017 , 02:55 PM
Not everyone has a model office environment they can do test migrations in...
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-13-2017 , 03:46 PM
Sure, there could be reasons... that doesn't change the truthiness of my statement.

Edit: Although there are often work arounds that still make a migration like this less painful and safer to execute.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-13-2017 , 03:51 PM
It also isn't very agily either since it's so big and can't really be rolled back quickly. Sometimes deployments are still hard.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-13-2017 , 04:06 PM
Quote:
Originally Posted by Grue
oh OK sounds good. We are craft beer people and really looking forward to russian river which I had once and loved. Will see if she's down for extra hour on the coast. She'll be disappointed if we go on vacation and doesn't get a lap dance though obviously.
In that case, visit...
- Toronado, kinda dive-y place in the Haight with amazing beers
- Mikkeller Bar, with lots of Mikkeller and other guest beers on tap with a pretty awesome tap system that keeps different beers at appropriate serving temperatures for their style
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-13-2017 , 04:07 PM
We actually can roll back pretty fast. We set a deadline to see if it would improve on it's own - when we deploy sometimes we get a rush of unmet demand beceause we roll half the servers at a time, meaning we can get a temporary backup.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-13-2017 , 04:42 PM
Quote:
Originally Posted by kerowo
It also isn't very agily either since it's so big and can't really be rolled back quickly. Sometimes deployments are still hard.
I actually don't think its that hard (caveat: I don't know the exact context). We typically do stuff like this with feature flags and staged releases (start writing to new datastore while reading/writing to old data store, verify things work, switch to reading/writing to new data store while continuing to write to old data store, stop writing to old data store).

You don't even really need feature flags, but they make this easier.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-13-2017 , 04:58 PM
That's similar to what we did except a little in reverse. The switchover involved reading/writing to the new datastore, and copying to the old data store. Rolling back doesn't require any changes. Last time we did it your way. I felt things were better defined for this data set and did not expect problems. (I know, right?)

If I were to have to roll back and redeploy I'd have to true up the new datastore from the old, a process that is manual (clicking a button) and takes about 30s.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-14-2017 , 12:12 AM
If I...
- add a new item to my package.json
- upload my git repo to a remote server (which already has an older copy of it)
- run "npm install" on the remote server

...should it install the newly-added packages? I thought the answer would be "obviously" but then today that didn't happen. I hate npm.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-14-2017 , 12:22 AM
Quote:
Originally Posted by goofyballer
If I...
- add a new item to my package.json
- upload my git repo to a remote server (which already has an older copy of it)
- run "npm install" on the remote server

...should it install the newly-added packages? I thought the answer would be "obviously" but then today that didn't happen. I hate npm.
it should. check that the package.json on the server actually has the updated new package lines you expect it to have.

check to make sure it's not a dev/prod dependency issue (maybe whatever it's installing, the actual dep was installed as the other)
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-14-2017 , 12:41 AM
I can promise you, maven and sbt have their issues with inconsistency probably ten fold. I cant really imagine wanting to write a package manager so I give them all their props.

Im a newb also, but when im doing that on prod i generally start by clearing out my build/target folder and my node_modules and installing fresh
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-14-2017 , 01:36 AM
A little over 2 months now in my job. Still have some days where I feel completely loss. I'm now realizing that a lot of this job is about finding out which team I need to talk to. Most of my task has been:

1. "We need to send data to XYZ",
2. Go on confluence to understand wtf is XYZ.
3. Use slack to talk to the team members who own XYZ.
4. Realize that the stuff you learned in step 2 is outdated.
5. Meet up with them in the break room or at their desk to clarify what you need and how to do it.

I'm so glad that I am pushing production code and working with things in scale. Feels good.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-14-2017 , 08:52 AM
Whenever someone wants me to add documentation to a wiki, my goto is "wikis are where information goes to die"
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-14-2017 , 09:16 AM
Quote:
Originally Posted by RustyBrooks
Whenever someone wants me to add documentation to a wiki, my goto is "wikis are where information goes to die"
What's the solution? (Edit: Asked in a friendly way, and not in a demanding way. )

I agree with this sentiment, but I've also never really seen anything better.

The only thing that's worked well is we have a template for services that contains a lot of useful information (including instructions for various operational procedures) that actually seems to stay pretty up to date.

Not sure if the difference is that these are generally "Things that someone has to do" and so they get validated fairly often vs. "This is contextual information about something at some set point in time" which never really gets validated (because the people that would know its stale/wrong are generally the people that never need to read the wiki page).
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-14-2017 , 09:40 AM
At my old place they started putting documentation in the git repo, not sure if that cured anything but at least in theory it was part of pill requests so should stay more useful than 2 year old requirement docs...
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-14-2017 , 11:02 AM
DB question, or SQL, whatever. I’ve a product type table that stores a type hierarchy in it using typeID and parentID and a product would look like this in it:
Golf ball – Ball - Globe - Round - Product
TID(56) TID(21) TID(2) TID(1) TID(1)
PID(21) PID(2) PID(1) PID(5) PID(5)

I’m just not seeing how you access this information quickly, how would I get all products that were Round without having to filter out the other sub-level names? I didn’t build it, I can’ change it, I need to figure out how to filter certain classes of items out of it. Or at least be able to describe it enough for our developers to understand it.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-14-2017 , 11:12 AM
Not sure I really understand or understand the table design - are the properties of the ball stored in another table? If so, that seems like a 1-1 relationship and 99% of the time I would consider that a design mistake.

OTOH I've probably completely misunderstood.

If it is this way, something like

SELECT * FROM GolfBalls as G WHERE EXISTS (SELECT * FROM Properties as P WHERE P.golfBallID = G.ID AND P.Round = x)
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-14-2017 , 11:19 AM
Sorry if I wasn't clear. That is the productType table. Every product has a tid for classification. So there is a product that is a golf ball but not a product that is just a ball. So far I've just been walking down the pid but can't tell when I'm at the last node.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
06-14-2017 , 11:39 AM
Quote:
Originally Posted by jjshabado
What's the solution? (Edit: Asked in a friendly way, and not in a demanding way. )
I honestly don't know. All I know is, the value of information is at it's least at the time that something is documented, and at it's most in the future, when the documentation is probably wrong. It's very unusual that I go try to find something in a wiki and find useful info.

The truth is in the code first, the minds of the devs and other team members second, in the ticket system 3rd and wiki is like 10th.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote

      
m