|
Does anyone have any terrible programmer opinions/experiences on serverless stuff? I'm currently doing work for a small startup and the overall setup for our webapp is 6 or so aspnetcore apps running in docker on an ec2 instance. This has worked with minimal hiccups so far with the CI/CD pipeline just being updates to the docker-compose file, but the more I read about putting aspnetcore in lambda the more I am leaning towards ditching our current setup and going down that path. The main thing that is drawing me towards it is that I know gently caress all about maintaining linux things and I'm super paranoid that I have something misconfigured and there are logs slowly building that are going to crash things in the middle of the night 3 months from now or there is some security thing I am overlooking. The scalability options and cost benefits are nice but I don't see us getting over ~10k requests a day for a very long time so I'm mostly focused on finding a solution that is going to involve as little interaction with the infrastructure as possible.
|
# ? Jun 2, 2019 05:02 |
|
|
# ? Jun 2, 2024 03:30 |
|
Yeah dog that story makes you sound very unprofessional. You guys don't see eye to eye on design decisions but you are of equal level so that's part of working in a team. Honestly it comes off like you are insecure - you want "peers" who you can assert authority over when they disagree with you. Ive worked with people like that both as an equal and a subordinate and it sucks The guy might be doing poo poo wrong and bad but I'd use this opportunity to look inward my friend.
|
# ? Jun 2, 2019 05:02 |
|
congrats on your new job! most programmers I had to work in my life were a lot like the dude you're describing. imo you should care less and chill. don't waste time arguing pedantic poo poo with him, git revert his blocking busywork (perk of being a team lead?) and just report that he's useless and wasting everyone's time.
|
# ? Jun 2, 2019 05:06 |
|
elcannon posted:Does anyone have any terrible programmer opinions/experiences on serverless stuff? yeah so you basically just described wanting to use azure app service
|
# ? Jun 2, 2019 05:06 |
|
elcannon posted:Does anyone have any terrible programmer opinions/experiences on serverless stuff? I'm currently doing work for a small startup and the overall setup for our webapp is 6 or so aspnetcore apps running in docker on an ec2 instance. This has worked with minimal hiccups so far with the CI/CD pipeline just being updates to the docker-compose file, but the more I read about putting aspnetcore in lambda the more I am leaning towards ditching our current setup and going down that path. The main thing that is drawing me towards it is that I know gently caress all about maintaining linux things and I'm super paranoid that I have something misconfigured and there are logs slowly building that are going to crash things in the middle of the night 3 months from now or there is some security thing I am overlooking. The scalability options and cost benefits are nice but I don't see us getting over ~10k requests a day for a very long time so I'm mostly focused on finding a solution that is going to involve as little interaction with the infrastructure as possible. move to azure so you don't have to deal with dumb poo poo like containers
|
# ? Jun 2, 2019 05:09 |
|
Metrics like x has more stars or y is pushed by facebook are essentially meaningless, you shouldn't be 'losing' the discussion due to those things. You need to either put your foot down as the senior dev or work on your debating skills. Sometimes people need to get swore at a bit. But, of course, there is decorum required in a work environment. I think everyone has had moments where they lose their cool and you can hopefully look back on it and remember before it happens next time. It sounds like this whole thing could have been stopped much earlier. Why weren't they working on their restructuring in a different branch so everyone could continue on as normal? If their way is actually better, they need to prove it before they destroy everything. We need more information on the file structure part to make a judgement. Sticking with standard practice is good, but using a structure that matches your project structure is good too. "Unconventional" could mean so many different things. abigserve posted:Yeah dog that story makes you sound very unprofessional. You guys don't see eye to eye on design decisions but you are of equal level so that's part of working in a team. This is a good point, do you work well with juniors because they don't question what you do? taqueso fucked around with this message at 05:16 on Jun 2, 2019 |
# ? Jun 2, 2019 05:10 |
|
Fiedler posted:yeah so you basically just described wanting to use azure app service poo poo the more I think about it the more I think this is probably the way to go. We have a ton of aws credit so I've been mostly stuck in that world but this seems like it is definitely worth it to ditch all the infrastructure janitoring. We're already using azure devops for all the CI/CD stuff so this is probably an easy sell. I've been getting pressure to look into some type of kubernetes solution (we ran a sort of pilot with a company that wanted our app run in their kubernetes environment which is what prompted moving everything into containers in the first place) but I feel like it is adding a huge amount of complexity for little gain in our case.
|
# ? Jun 2, 2019 05:30 |
|
you might qualify for free poo poo: https://azure.microsoft.com/en-us/free/free-account-faq/
|
# ? Jun 2, 2019 05:41 |
|
abigserve posted:Honestly it comes off like you are insecure - you want "peers" who you can assert authority over when they disagree with you. Ive worked with people like that both as an equal and a subordinate and it sucks adding another perspective to this. as someone who teaches programming for a living I found easier to teach newbies than people with a couple of years of programming experience. not because I need to assert authority over them, nor because I don't like being questioned. it's just because they tend to be waaay more close minded. for example, teaching a newbie to use a for-each loop is not that hard. it's seriously challenging though when the person is already used to looping over indices, it's hard to convince people to concede and try another approach to something that they consider trivial and part of their core style. so yeah, I can totally see that happening here. instead of spending a few minutes trying to understand the idiosyncratic file organization (like the juniors probably did) the intermediate dude decides to refactor everything his way. it's the oldest story. even assuming that pk's file organization is complete dogshit bad, I still think the guy shouldn't start refactoring it willy-nilly. it goes both ways, it's bad teamwork on his part. fake edit: btw I'm betting this is a javascript app. almost every js dev has their own bespoke way of organizing projects.
|
# ? Jun 2, 2019 05:55 |
|
gonadic io posted:this is a compile error, java stack traces are at runtime. in java you'd get a compile error too, not an exception stack trace. hey thanks this clears up a lot of stuff for me. trying to set vscode up with haskelly now to maybe get "find definition" working
|
# ? Jun 2, 2019 06:56 |
|
elcannon posted:Does anyone have any terrible programmer opinions/experiences on serverless stuff? I'm currently doing work for a small startup and the overall setup for our webapp is 6 or so aspnetcore apps running in docker on an ec2 instance. This has worked with minimal hiccups so far with the CI/CD pipeline just being updates to the docker-compose file, but the more I read about putting aspnetcore in lambda the more I am leaning towards ditching our current setup and going down that path. The main thing that is drawing me towards it is that I know gently caress all about maintaining linux things and I'm super paranoid that I have something misconfigured and there are logs slowly building that are going to crash things in the middle of the night 3 months from now or there is some security thing I am overlooking. The scalability options and cost benefits are nice but I don't see us getting over ~10k requests a day for a very long time so I'm mostly focused on finding a solution that is going to involve as little interaction with the infrastructure as possible. don't do it using lambdas in aws tbh if you're intent on aspnetcore. the warmup times when it needs to become more parallel are genuinely impactful, unless your api is only being used by other apis asynchronously. it's just too much a pain in the rear end. throw it into a docker container run it in eks or whatever your favorite choice here is and be done with it. throw an elb and apigw in front.
|
# ? Jun 2, 2019 07:10 |
|
PleasureKevin posted:I have an unconventional way of organizing files and folders (which nearly every junior loves because it's good) Lol terrible programmer identified. Junior developers love what you do because it's lazy and it means they can be lazy. They'll never disagree with anything you say seriously because you'll go tattle tale to your good chum the CTO and try to get them fired.
|
# ? Jun 2, 2019 07:53 |
CRIP EATIN BREAD posted:if i couldnt swear at work my head would explode there is a rather stark difference between swearing at your computer, which no one should give a poo poo about unless you're calling your computer a gently caress at 120 dB in your open space office, and slinging personal insults at other people for whatever reason
|
|
# ? Jun 2, 2019 08:21 |
|
if you get mad enough to yell at a coworker over a disagreement about how to organize files then you are definitely caring about the wrong thing. why give a gently caress about the code? it's just some terrible code that will ultimately serve no purpose. no matter what you do, it will be rewritten and replaced with some other terrible, terrible code soon enough. gently caress the code. no, you should care about your coworkers, who are your allies in your collective endeavor to extract as many figgies as possible from your employer.
|
# ? Jun 2, 2019 08:39 |
|
if it gets to where youre swearing at a coworker, that's your own failing and not theirs. i did that myself once, and they deserved it, but it still wasnt worth it, and it'd have been much more productive to just find a way to work with them than to make myself feel better by yelling at them. even if you think they're completely irredeemable, you should think of them as a force to be harnessed that can do great things given the right project programming is like any other aspect of business and has more to do with people than it does technical requirements. it doesnt matter if something is technically "perfect" if it doesnt fulfill a real need
|
# ? Jun 2, 2019 08:48 |
|
not caring is basically why i autoapprove all prs
|
# ? Jun 2, 2019 09:56 |
|
redleader posted:not caring is basically why i autoapprove all prs that is obvious, you approved that post
|
# ? Jun 2, 2019 10:39 |
|
in my experience that's a common downside of juniors: they are more often ego driven and unwilling to listen whereas seniors with 15-20 years experience are usually more laid back bc they don't feel like they have anything to prove anymore (I know I was kind of a piece of poo poo when I was a junior) then again at my job we have a lot more juniors than in the past (we couldn't grow enough by just hiring seniors anymore) and we don't have these kind of issues, they listen to us and we listen to them and it works, but our middle management is pretty good too, which helps but one thing is that we are very very careful not to react angrily and throw blame around and create resentment when a problem arises. If someone really fucks up repeatedly they get a stern talking to by their manager, in private. then again we are also very careful not to hire shitheads in the first place, because we are a sufficiently large company to afford to be picky
|
# ? Jun 2, 2019 11:00 |
Zlodo posted:in my experience that's a common downside of juniors: they are more often ego driven and unwilling to listen whereas seniors with 15-20 years experience are usually more laid back bc they don't feel like they have anything to prove anymore bah i started to write a long rear end vent post about my company when i read this. instead, i'll share my latest discovery let table foo have a json field bar let table baz have a varchar field latest_bar the process, as implied, is that a baz can have any number of sequential foos, wherein each foo has a bar. to make business strategy as a company we cluster these foos on a monthly basis, and analyse bars on per-cluster basis. bar itself is a json document that was up until now thought to work like this - each foo passes a sequential process that has multiple steps where it can get assigned a step-specific bar, and each triggered step will thus write its thing into bar, in natural order (don't ask why natural order is even relevant here, and why not having explicit numbers of any sort on things). then bar gets written into foo.bar, and foo.bar gets copied into baz.latest_bar subsequently. for the aforementioned analysis we then take first bar of each foo. what happens in reality: - one process writes only one bar regardless of the execution details. unless it's a foo with two attributes, then its {"foo1":"attr1.value", "foo2":"attr2.value"}. - write operation consists of reading baz.latest_bar, appending the current bar to it, and writing the result back to baz.latest_bar. - then baz.latest_bar is read by a different part of backend, cast into json, and inserted into foo.bar. this cast operation enforces some weird sorting, that is neither alphabetically ascending nor descending (we're talking about keys in english, and hopefully not (or maybe??) values). - if the specific bar is present in latest_bar already, it only gets its value updated (plenty of possible bars are boolean). in other words, each foo.bar has turned out to be an illogically and pseudo-randomly sorted collection of the first bar of each set of bars ever assigned to baz up until the current foo, inclusive, that does not include assignments with identical values. so you can have a history of bars like this: D B - BD C - BCD F - FBCD F - FBCD # entire 25% chance to guess which bar happened here and where you must put your money on the other hand, i'm soon going to become latvia's foremost expert on optimisation of dictionary diffing performance in python cinci zoo sniper fucked around with this message at 15:07 on Jun 2, 2019 |
|
# ? Jun 2, 2019 12:29 |
|
difflib.SequenceMatcher in the std library is p good for add/remove/replace diffs but afaik there's no good way in any language to do move diffs in less than like n^m time best I got so far is tagging stuff and then comparing all a with all b while removing matches = these are the moves, the rest are whatever diff they were
|
# ? Jun 2, 2019 13:56 |
Krankenstyle posted:difflib.SequenceMatcher in the std library is p good for add/remove/replace diffs but afaik there's no good way in any language to do move diffs in less than like n^m time hm, the second part sounds like a plan. assign whatever index to master-list of dicts, discard the ones matching with i-1, then diff the rest. which is still a lot, it's 10^7 times a tinyint worth of not the smallest dictionaries for diffs the plan so far is to use dictionary view objects, e.g. structural_difference = current_dict.keys() - previous_dict value_difference = {key for key in previous_dict.keys() & current_dict if previous_dict[key] != current_dict[key]} people also appear to like using sets for this purpose, but that approach is strictly less performant (unless there's some obscure edge case)
|
|
# ? Jun 2, 2019 14:15 |
|
maybe bloom filter on dict keys (or vals if that's more suitable for your case) can cut down time??? I've only really diffed strings but afaik any seq should work
|
# ? Jun 2, 2019 14:30 |
eh, within a single baz i must do a sequential diff of each bar that is different from the previous one so i think the only real speedup, other than adding an index so i can just split the redundant ones out and merge them back in en-bulk - which is easy and fast to do as is, would be to improve upon the cython dict implementation. which is ways ways out from anything i'm remotely capable of conceiving (and i have the saving grace that i, to think of it, can easily chunk this process on baz level and, ergo, parallelise it)
|
|
# ? Jun 2, 2019 14:52 |
|
that's really difficult to follow with 'baz', 'foo', and 'bar' does baz have a latest_bar or a latest_foo? you mention both but i think you mean latest_bar?
|
# ? Jun 2, 2019 14:58 |
Fiedler posted:that's really difficult to follow with 'baz', 'foo', and 'bar' my bad, latest_bar indeed. unfortunately i can't discuss this in terms of actual logic, so i have to use mock names. tl;dr: BAZ entity sequentially spawns FOO entities each FOO is consumed once by a BAR generating process output of the process is stored with each FOO parent BAZ is updated each time to store the copy of this output for the most recent FOO well, that was what it should've been at least
|
|
# ? Jun 2, 2019 15:12 |
c tp s: started toying around with mssql express on windows container docker and its pretty chill. a bit restricted, sure, but thus far i only wish that express had ssis available.
|
|
# ? Jun 2, 2019 15:18 |
im not even sure why i'm doing that mssql stuff, but tbh t-sql seems cool and so seem all the batteries in it, and it's something i can actually use meaningfully without touching my budget or oracle i mus say though that ssms is not exactly straightfoward and [table].[field] is weird/unnecessarily verbose i feel?
|
|
# ? Jun 2, 2019 15:21 |
|
cinci zoo sniper posted:i mus say though that ssms is not exactly straightfoward and [table].[field] is weird/unnecessarily verbose i feel? bracket escaping is almost never required. also using fully qualified columns is also almost never required if you’re referencing 1 table. if you’re referencing more than 1 table alias it select a.* from tablea a join tableb b on a.fk=b.pk
|
# ? Jun 2, 2019 15:36 |
simble posted:bracket escaping is almost never required. also using fully qualified columns is also almost never required if you’re referencing 1 table. if you’re referencing more than 1 table alias it yeah im okay-ish enough with sql, for a ds guy, and found out rather quickly that square bracketing is not required - just an ssms default that i've not ecountered before. in other words i'm lazily curious as to what is the history behind that
|
|
# ? Jun 2, 2019 15:39 |
|
bracket escaping is required if your db table or schema has a space in it iirc
|
# ? Jun 2, 2019 16:02 |
simble posted:bracket escaping is required if your db table or schema has a space in it iirc well, that's... sensibly underwhelming, i'm not sure what i expected
|
|
# ? Jun 2, 2019 16:04 |
|
cinci zoo sniper posted:my bad, latest_bar indeed. unfortunately i can't discuss this in terms of actual logic, so i have to use mock names. i believe the yospos way is to use butts, farts, poops etc as placeholders.
|
# ? Jun 2, 2019 20:59 |
|
Wheany posted:i believe the yospos way is to use butts, farts, poops etc as placeholders. chome, mome, lo, marf, tayne, etc please
|
# ? Jun 2, 2019 21:01 |
|
i call them megastinktastic variables
|
# ? Jun 2, 2019 21:03 |
|
cinci zoo sniper posted:my bad, latest_bar indeed. unfortunately i can't discuss this in terms of actual logic, so i have to use mock names. updated to meet yospos standard naming conventions
|
# ? Jun 3, 2019 00:15 |
|
I'm not sure if I understood the problem but I feel like you should store the diff steps as a trie (or like partial hash entries?) if you can, try to make it more concrete with some code, like Python code:
|
# ? Jun 3, 2019 00:39 |
|
DONT THREAD ON ME posted:i call them megastinktastic variables
|
# ? Jun 3, 2019 06:00 |
|
Sagebrush posted:chome, mome, lo, marf, tayne, etc now tayne i can get into cinci zoo sniper posted:im not even sure why i'm doing that mssql stuff, but tbh t-sql seems cool and so seem all the batteries in it, and it's something i can actually use meaningfully without touching my budget or oracle yeah, as mentioned, square brackets are for escaping table names (funny characters, reserved keywords etc). it's equivalent to " in postgres also i don't know if you're including the schema name in your queries (FROM schema.table etc), but using the schema name is often not needed, especially if everything's in the default dbo schema. this is nice for ad hoc queries
|
# ? Jun 3, 2019 06:34 |
|
cinci zoo sniper posted:well, that's... sensibly underwhelming, i'm not sure what i expected sql server has alarmingly few restrictions on object names. dots are allowed in object names. brackets are allowed in object names. you can have a column literally named "[dbo].[table1].[column1]": create table dbo.table1 ([[dbo]].[table1]].[column1]]] int) which naturally you would query like so: select [dbo].[table1].[[dbo]].[table1]].[column1]]] from dbo.table1
|
# ? Jun 3, 2019 06:52 |
|
|
# ? Jun 2, 2024 03:30 |
|
Fiedler posted:sql server has alarmingly few restrictions on object names. dots are allowed in object names. brackets are allowed in object names. you can have a column literally named "[dbo].[table1].[column1]": this is violence
|
# ? Jun 3, 2019 13:52 |