|
MononcQc posted:my fav bit of the kafka architecture is whenever someone notices that oh yeah topic compaction is not enough to guarantee reliable long term storage (i.e. re-partitioning fucks with all the keys and therefore linear history of entries) so you need another canonical data source to act as a kind of backup, and so what you do is put a consumer that materializes the views in a DB. Welp, time to go break the news to the team I've been working with that just implemented a new service using multiple compacted topics as long-term datastores. Oneiros fucked around with this message at 04:01 on Oct 30, 2018 |
# ¿ Oct 30, 2018 03:59 |
|
|
# ¿ Oct 13, 2024 11:17 |
|
Maximum Leader posted:i have a basic parent/child relationship in a database where i need to perform a basic join, problem is that the database is turbofucked by horrible decisions. the parent has fields parent/child relationship 1 through 12 containing a reference to the child instead of just putting the reference to the parent on the child. im at a loss with this, any advice guys? fire your dba or whoever is responsible for that atrocity into the sun
|
# ¿ Nov 28, 2018 10:55 |
|
floatman posted:Tell them that they should get rid of all staging servers, push everything to production because what profit do you get from testing??? the number of times i've tried to use our staging environment only to find the main database 4-6 schema migrations / backfills behind I honestly don't know why we bother also it's publicly accessible with "sanitized" customer info copied from prod
|
# ¿ Dec 4, 2018 08:47 |
|
gonadic io posted:In $oldjob I led the charge to sanitise data and overwrite the staging db with it (preferably regularly) because otherwise staging was basically unusable for e2e testing since the data there either failed constraints or took like 30 mins to correctly set up a realistic user across a half dozen different systems are their dbs hahahahaha we used to have regular refreshes of the staging db with "sanitized" data but our ops/sre/ifnrastructure/devops/$buzzwordoftheweekteam got caught up in the company-wide OKR/SMART/WHATEVER fads and turned into a feature delivery team. then we started breaking the monolith apart into microservices with their own bespoke datastores and noone has any idea how to maintain a working staging env and wouldn't prioritize it over MORE FEATURES even if they did.
|
# ¿ Dec 4, 2018 09:26 |
|
Ciaphas posted:i'm only just starting to get caught up on this whole container fad, so I wanna check some clarification here kubernetes a container orchestration tool (can handle building, deploying, running, scaling, etc). there's also nomad (hashicorp), mesos (apache), swarm (docker), and probably a few others who I can't be bothered to remember. very roughly speaking they're all looking to solve the same problem (how to manage hundreds of containerized applications/services across a cluster or clusters of hosts) but with different bells and whistles and optimizations.
|
# ¿ Dec 13, 2018 04:15 |
|
VMs, are, well, virtual machines; you're running a full os/app stack in a virtualized hardware environment. containers use namespaces/cgroups to isolate processes & resources from each other while still running on top of the same kernel. i.e. with VMs you can have multiple, completely distinct OSs running simultaneously on top of the same hardware/host OS thru a hypervisor. with containers you can have multiple processes/groups of processes and resources that are logically isolated from each other by the kernal. both let you generate artifacts (images, or configuration files to build such) so that you can deploy a service along with all the necessary environment (either a complete OS for VMs or whatever bits and bobs you need on top of the kernal for containers) to a generic host in a repeatable, scalable fashion. i'm probably making hash out of it but that's my 101 level understanding of VMs and containers. Oneiros fucked around with this message at 04:45 on Dec 13, 2018 |
# ¿ Dec 13, 2018 04:34 |
|
[quote is not edit]
|
# ¿ Dec 13, 2018 04:35 |
|
Powerful Two-Hander posted:*this is my favourite: performed every single logical test by returning a magic string from the db and checking its value, not even just "true" or whatever but poo poo like if(caniDoIt = "yes you can go ahead") Not gonna lie, someone wrote one of our half dozen feature flag / toggle / AB testing systems to operate this way and I've had a lot of fun with the magic string values.
|
# ¿ Dec 19, 2018 06:08 |
|
i'll take "devs who never clean up after themselves" for $400, alex # oneiros at MBP.local in ~/Workspace/primary_service on git:master ● [13:23:57] → git branch -a | wc -l 2278 Oneiros fucked around with this message at 22:35 on Jan 2, 2019 |
# ¿ Jan 2, 2019 22:31 |
|
ratbert90 posted:Jesus. uh, what's your deployment pipeline look like? i'd hope it'd record some information on what the hell gets shipped to prod. that seems more problematic than devs dirtying up the git repo with feature branches.
|
# ¿ Jan 2, 2019 22:45 |
|
my favorite is when we engaged a contractor to write some sfdc apex code. the result was literally undeployable because sfdc enforces a minimum amount of test coverage and of course they wrote none. so of course when we called them on it they spit out a 100% coverage suite that literally did nothing but assert(true);
|
# ¿ Jan 3, 2019 01:49 |
|
bob dobbs is dead posted:"sfdc apex code" is the point when your life went terribly wrong, the contractor doesnt have poo poo to do with it honestly it's not that bad. well, other than the fact that you can't actually run the code (or tests) anywhere but on sfdc's platform because it's their bespoke bastardization of java 3 or whatever the gently caress. i will admit i have spent entirely too much of my life cleaning up lovely apex code. n+1 db query loops for days. even with my extremely limited experience I could probably make bank as a sfdc contractor. apparently the bar isn't just low, it's six feet under the loving ground, and from what i've seen of what we pay these loving guys it's gotta be lucrative. i'd probably end up drinking myself to death tho. Oneiros fucked around with this message at 06:08 on Jan 3, 2019 |
# ¿ Jan 3, 2019 06:00 |
|
ThePeavstenator posted:One of my coworkers merged a branch of his into master for one of our web services today with about a month's worth of commits. It built but didn't work once deployed. Instead of swapping the slots back or just deploying the previous working build, he tried to undo the merge. He did this by using rebase on his commits instead of revert. He did this multiple times. He did this in master and pushed directly to master. if you are using github or gitlab or some other managed git service i highly recommend using their protected branches features to prevent this sort of thing from happening in the future.
|
# ¿ Jan 5, 2019 02:36 |
|
ThePeavstenator posted:We do that, but the team I'm on manages our system and devops infrastructure so he's one of the 3 people other than me with the elevated privileges to do what he did.
|
# ¿ Jan 6, 2019 00:01 |
|
DaTroof posted:i don't wanna call anyone out because maybe what i inferred is not what they meant, but in a very general sense, some people seem to think type safety precludes testing, and HOLY poo poo are they wrong "if it compiles it works" ~ literally one of my coworkers
|
# ¿ Jan 26, 2019 03:21 |
|
floatman posted:I'm doing forced refactoring now I.e. I don't want to do it but I have to because there's a guy writing code.
|
# ¿ Feb 9, 2019 09:40 |
|
Fatty Crabcakes posted:People complained about typos in my commit messages but then stopped when I started doing commit messages almost entirely in emoji power move i wish i could embed animated gifs in mine but i’ll settle for blowing up my coworkers’ inboxes with them in github comments
|
# ¿ Feb 10, 2019 01:14 |
|
DaTroof posted:i used git for years before squash or rebase seemed like poo poo i might ever need. merge was plenty adequate whereas i almost never use or used merge, relying on rebase almost exclusively (either rebasing my branch onto master or whatever as-is or rewriting my branch's history into more meaningful commits first). i dunno why, i just got into the habit of frequently rebasing my feature branches on the latest prod branch. probably because i got tired of fixing a pile of merge conflicts when it came time to actually deploy poo poo.
|
# ¿ Feb 16, 2019 05:24 |
|
https://twitter.com/PinoBatch/status/701215215975866372
|
# ¿ Feb 16, 2019 06:21 |
|
floatman posted:I just got asked by someone on if it was possible to access the underlying file stream descriptor of a monolog logger (PHP). gonadic io posted:check ur coverage i've become increasingly interested in stuff like elixir's pattern matching function calls where you can actually just split what would be conditional branches inside a function into completely separate, easily testable functions without making actually calling those functions utterly miserable. alas, i mostly work with ruby.
|
# ¿ Mar 9, 2019 03:21 |
|
floatman posted:The company has a "pull request" policy where in theory, code changes are reviewed by "development peers" and approved before being commited to the codebase. But what I'm starting to feel is that these PR reviews are ultimately very shallow and just end up being white space and punctuation changes, or at most superficial changes to one to three lines at most. i've had a two thousand line pr (the terrible programming is mine) where the only feedback was "why do you put two spaces after a period?" those sorts of reviews come from people who don't have the capability and/or the interest to meaningfully review the work. either all the changes are perfect (unlikely), people are being forced to do reviews for poo poo they aren't involved in (blanket review policies), or they're incompetent. or some combination of the three.
|
# ¿ Mar 9, 2019 05:08 |
|
the number one cause of outages/service disruptions at my company is bad deploys, it's not even a close contest. it's incredible how many devs don't test their code at all (like, not even bothering to run it) and how many more just blindly approve PRs. best case you ship something that immediately and obviously blows up and you have both the monitoring/alerting to detect it and the processes in place for quick rollbacks. worst case you ship something that silently fucks poo poo up for days/weeks/months before it becomes apparent.
|
# ¿ Mar 9, 2019 05:47 |
|
Arcsech posted:unless it’s really ridiculous, just leave it for the pr and when you merge do git merge --squash this is the correct answer. i like to treat PRs as the atomic unit and have pretty much never seen anyone take issue with or need to (or be able to without horribly breaking poo poo) revert a single commit of a multi-commit PR.
|
# ¿ Mar 18, 2019 01:07 |
|
DaTroof posted:and we can't wait to get those apps started after we're done gluing together a usable framework from 300 disparate node dependencies AggressivelyStupid posted:I love having a 350mb node_modules folder last time i installed/ran our front-end service locally it was over two gigs on disc and the npm dependency list was over 1000 lines long. it takes about five to ten minutes to bootstrap and basically makes my dev machine unusable while doing so. gently caress web development
|
# ¿ Apr 21, 2019 23:09 |
|
Private Speech posted:what uhh, what does it .... do queries the backend for data with tons of redundant / duplicate requests because no one understands debouncing / locking then presents it to our users in half a dozen subtly different visual design patterns and with various parts of the page contradicting each other because there's no consistency between the various backend services and everything is async. and live reloading, which i guess is a vitally important feature, except when it breaks. also half the time the backend throws a 500 the front-end does nothing because error handlers are just straight up missing.
|
# ¿ Apr 22, 2019 00:43 |
|
i'm currently betting on whether we'll make it a year between all-hands presentations on how yes, the current js framework is a dumpster fire and everyone hates working on it but this "new" js framework is totally gonna solve all our problems. we have three in various degrees of active use / decrepitude. in more homegrown terrible programming news, i recently discovered that my team's service's build script was caching every ruby gem we've ever pulled in and then copying them all into our deployment docker image, which would explain why the drat thing had grown to over a gig (not that it's particularly svelte after trimming that poo poo out). i've had a really bad habit of not paying much attention to infra & testing stuff during reviews (not that i'm much more than a novice in those areas myself) and i'm gonna have to fix that because god drat the entire build/deploy pipeline is a ticking time bomb waiting to blow up in our faces.
|
# ¿ Apr 22, 2019 00:52 |
|
Boiled Water posted:today in “the state is terrible at programming”: we have a db in which each field can be at the most 4kb (which is fine) but it also has a field pointing to an xml file which when empty is 2gb. yes this file is always present for each row even when empty this week i learned that our new deployment system uses staging infrastructure as less privileged resources for production deployments. guess what happens when someone is doing maintenance (or just loving around) in staging.
|
# ¿ May 24, 2019 08:57 |
|
the talent deficit posted:redshift is really good at joins and aggregates and absolutely nothing else i dunno it is also really good a being a bottomless money pit because it is cheaper to pay aws for more bigger computers than it is to hire someone to design a proper schema and queries
|
# ¿ Nov 2, 2019 00:34 |
|
MononcQc posted:npm certainly allows it and has done so for a long long time if not forever. For example, npm3 even advertised examples where version clashes were the thing: http://npm.github.io/how-npm-works-docs/npm3/how-npm3-works.html the first time i cloned our front-end repo and ran npm install i literally stared slack-jawed as the 1500+ line list of dependencies scrolled by. so far i’ve been almost entirely successful in never having to actually work on the damned thing.
|
# ¿ Nov 23, 2019 00:59 |
|
abigserve posted:In 2019 if you are editing config files on the server you have made some bad mistakes
|
# ¿ Nov 23, 2019 08:32 |
|
yeah, the thing is there's a ton of people who have absolutely no understanding of the systems and tools they work with and just copy-paste poo poo from blog posts and stackoverflow. case in point i've been lurking in a multi-week long thread debugging cache miss issues with our memcached ring and it's abundantly clear that no one involved has any idea how anything involved actually works and are conflating multiple issues and suggesting fixes that in no way, shape, or form have any relation to the problem(s) encountered. alternatively, they know something but cling to faulty assumptions about how things are actually setup. Oneiros fucked around with this message at 05:57 on Nov 26, 2019 |
# ¿ Nov 26, 2019 05:50 |
|
Doom Mathematic posted:It would be amazing if programming jobs were like Advent of Code. Tiny, fixed-sized, rigorously specified, closed problems with singular correct answers. can you imagine a manager ever giving a spec as well written as the typical advent of code problem?
|
# ¿ Dec 4, 2019 10:43 |
|
DaTroof posted:what's the pospinion on elixir? i might get assigned to a phoenix project and if so i have about a week to learn it Arcsech posted:elixir is good if you are writing a thing that is in its wheelhouse. that is, high concurrency, not too much in the way of heavy number crunching, not too much in the way of giant data structures youre passing around. basically its good at all the junk people claim server side javascript is good at. if you try to use elixir for something its not good at, youll know, because it will be incredibly painful redleader posted:ruby 2.0, but if no one used it as someone who primarily works with ruby but has done some tutorials / played around with elixir, this it pretty much it. from my (limited) experience it seems really nice to work with for functional programming / concurrent / actor-pattern stuff but if you don't have a need for that it's kinda pita. for what it's worth i've tried to take some of the elixir idioms / principles / constraints i've been exposed to (mostly from dave thomas aka "the coding gnome") and apply them to the ruby projects i work on and have had pretty good results.
|
# ¿ Dec 6, 2019 06:34 |
|
toiletbrush posted:dogmatically writing unit tests is good to learn because unit-testing multiplies the pain of bad code x100 so it teaches you to architect things better, but once you've learned your lessons it's less valuable. You should deffo aim for 100% automated coverage but higher level testing is what actually proves your app works. i've found that extensive unit testing exposes weaknesses in design quite effectively; anytime i've found difficulty in testing it's been readily remedied by refactoring till the pain points are gone. even with time-sensitive tests you should be able to test appropriately. if you can't i'd question the underlying design of your code.
|
# ¿ Apr 4, 2020 11:25 |
|
Soricidus posted:we're moving to a nanoservice architecture. each time a new user registers, we spin up a container to hold their data i have heard people unironically advocate for spinning up an on-demand microservice mesh for every customer/account/user
|
# ¿ Apr 10, 2020 10:34 |
|
Xarn posted:I am going to blow your mind. i once saw a ci setup that: 1) cloned the repo 2) checked out the feature branch 3) git --hard reset to origin/master 4) merged master into the "feature branch" people were wondering why tests were failing after merging
|
# ¿ May 25, 2020 08:59 |
|
Jabor posted:presumably you are submitting some kind of change where the description is "update X dependency to version Y", whether that's a change to your copy of the dependency's code or to your lockfile or whatever. at least with vendoring you have the potential of having the source changes in deps actually being reviewed. no way in hell your typical dev at your typical shop is gonna dig up the changelog for dependency update out-of-band. or maybe i've just worked at lovely places poo poo, at this point i'd consider myself lucky to have coworkers who are even competent enough to read a change log to figure out when a bug was introduced or fixed in a dependency. <edit> basically, if you've got coworkers capable of reading and comprehending the text that is displayed on their monitors, you're in good place Oneiros fucked around with this message at 09:37 on May 25, 2020 |
# ¿ May 25, 2020 09:32 |
|
Shinku ABOOKEN posted:DO_NOT_USE_OR_YOU_WILL_BE_FIRED i may created some fields in sfdc with this sort of naming scheme/description warning against deletion and modification it worked for several years
|
# ¿ Sep 3, 2020 11:02 |
|
CPColin posted:I like that every time JIRA releases some bullshit UI change that's even slower, they respond to all my angry tweets with "plesse DM me so I can better understand the issue " and I just reply "it's poo poo" we had a pm who oversaw a big ui refresh that basically everyone who actually used the product hated (lots of retina-searing white space, inexplicably large fonts and margins bumping critical information below the fold, just straight up breaking a bunch of things, etc) and their response to all the criticism was literally "they'll stop complaining in a few months" i don't bother giving detailed feedback anymore Oneiros fucked around with this message at 05:02 on Jan 20, 2021 |
# ¿ Jan 20, 2021 05:00 |
|
|
# ¿ Oct 13, 2024 11:17 |
|
i've been on a team where the whole story-pointing and velocity measuring and planning and poo poo went pretty dang well. it took nearly two months (3-4 sprints) to establish velocity and our lead was really good at breaking work up into chunks that the team could comfortably estimate and reliably work on. of course the moment anything (boss's boss) disrupts the sprint you have to toss the whole thing in the garbage and it all went to hell when we got to some fuzzier poo poo that required lots of research and trial-and-error. but for a good year or so it went smoothly and we could actually give reasonably accurate projected completion dates and poo poo. <e> doing so required constant pushback against management who were always trying to gently caress with the numbers or set deadlines before work had even been written up and estimated Oneiros fucked around with this message at 07:17 on May 22, 2021 |
# ¿ May 22, 2021 07:15 |