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
12 rats tied together
Sep 7, 2006

as i understand it that is exactly what aws qldb does, yes

Adbot
ADBOT LOVES YOU

12 rats tied together
Sep 7, 2006

actually slow startup times is an ops concern. i work with services today that are backed by relational dbs and take over an hour to start from scratch

we try really hard not to lose enough of them at once that this a a problem. but it's just a reality of attaching yourself to the firehose and trying to make money off of ads or f2p games

12 rats tied together
Sep 7, 2006

tef posted:

https://segment.com/blog/introducing-centrifuge/ so this is another funny writeup from a former analytics pipeline company

"let's use event sourcing"
i stopped reading right here:

quote:

At Segment, our core product collects, processes, and delivers hundreds of thousands of analytics events per second
this is "just put it in the database" scale. resume driven development. shaggar W once more

i would suggest that they hire some dbas

12 rats tied together
Sep 7, 2006

tef posted:

if your database takes an hour to start up, something is completely hosed

unless of course by "startup" you mean "replay the event stream" then lol

it's mostly memory allocations that come from trying not to be wrong about stuff that relates to financial transactions. this is a csharp application that runs off of mssql and a special purpose key value store. i have several coworkers who post on this forum so i do not want to go into more detail since i've already doxxed myself a few times over.

it could be faster, but aiui we're already past all of the obvious wins (batching. filtering). it's easier to work on other stuff and simply do not restart them all at the same time.

sometimes poo poo happens and you have to. the other good part about working in ads is that if you go down you can just shift traffic. as long as computers exist somewhere we can be up wherever that is

12 rats tied together
Sep 7, 2006

you're right, it's not, it wasn't my intent to imply that it was but i'm phone posting so i might have messed up an "and" / "that" somewhere. my apologies

i merely mean to say: at the scale where you can responsibly use an event sourced architecture, you already have slow start problems, and it's what your ops team is for.

i also don't really consider the materializer a database -- i do think it is an app, like my csharp app -- but i'm not so invested in this distinction that i would argue about it any further. if you insist, i agree

as far as database startup times, yeah i work with some databases that have individual nodes that are >10TB each and they start instantly. they'll serve records for which they are the authority also basically instantly.

to accomplish this they make some trade offs that are painful in other ways. probably painful enough that i would not endorse generic use of the database, it is "special purpose".

12 rats tied together
Sep 7, 2006

kestrel is decent. build scripts are fine, you should probably understand how to build your source code into a thing thats actually useful + be able to describe in english the steps that need to be taken for it

12 rats tied together
Sep 7, 2006

that guy is a loving dumbass

12 rats tied together
Sep 7, 2006

i would simply use the debugger as a debugger

12 rats tied together
Sep 7, 2006

used it for an advertising technology thing and we could not get it to maintain non-embarrassing read throughput between all of the java GC cycles and compactions

writes were good, but for our use case they're kind of pointless without reads. we ran it at 1000 nodes for a quarter before giving up on it so it's possible we were holding it wrong.

12 rats tied together
Sep 7, 2006


lmfao

12 rats tied together
Sep 7, 2006

if youre on spinning rust you hopefully at least have a fat rear end block size so you have the option of putting all that poo poo next to each other and grabbing it in 1 iop

12 rats tied together
Sep 7, 2006

the worlds best project management software where you can't assign two people to a ticket, you have to invent an entire vocabulary for stripping tasks down to their smallest traceable unit and being able to align them back up to a company effort instead of being like "12 rats and the new hire fixed the apache config. ticket done"

im suspicious that anyone who intentionally uses or defends jira has ever performed non computer tasks at an employer

12 rats tied together
Sep 7, 2006

i almost took a 30k pay cut to work at a place without jira. there were other reasons too but that was the main one

they IPOed at like 350/share so i probably should have. one of my bigger work regrets

12 rats tied together
Sep 7, 2006

at the current job i'm not allowed to move a ticket to "pending approval" until i fill out 2 different questionnaires, which require me to select "no" from a drop down menu that defaults to "none" repeatedly (which is never valid to use) and i also have to set a code reviewer which i always put myself into because we do code review on gitlab

if we leave a ticket in "open" status for a week there is also a slack bot that spams our slack channel and we have to do some paperwork about it

12 rats tied together
Sep 7, 2006

if you genuinely can't understand how jira can be bad i would advise you to reconsider your jira experience as extremely exceptional as is demonstrated by whatever net promoter score website people are referencing in which genital herpes is considered preferable to using this piece of poo poo software, where again, you can't assign 2 people to a ticket

12 rats tied together
Sep 7, 2006

tef posted:

you: no one is beating my dick with the dick beating hammer

the rest of us: oof oof oof oof

12 rats tied together
Sep 7, 2006

distortion park posted:

I've never used it but the federated queries feature looks like it could save a huge amount of time and effort in some usecases. Your whole etl pipeline for operational data can become a single scheduled SQL statement (if you don't need snapshotted data you could even skip that)

i worked at a data science platform place in the mid 2010s where we skipped a decade of tech debt by putting everything in redshift and hiring sql peeps to janitor it instead of even thinking about hadoop. spark pigs, and other what-have-you. airflow.

imo it's good if you have data about people and not data from people clicking on stuff on the internet. your subscribers, maybe potential voters, people who have bought your poo poo and maybe the receipt from when they did

by contrast ive worked in other places where there's an always-on aws emr cluster running a beta version of emr but it can't be taken down or else the entire reporting database explodes

12 rats tied together
Sep 7, 2006

orjson and the other fast jsons are good because python is the slowest language anyone would use on purpose

the other popular one is ujson/ultrajson

12 rats tied together
Sep 7, 2006

mypy is pretty good but pylance is about the same good and is easier to use imo. microsoft makes good developer tooling

newer versions of python also have protocols which puts the type system in "about as good as typescript, which is much better than golang" tier as far as modern dynamic languages go

Poopernickel posted:

if your application cares about how fast it's parsing JSON, then Python probably isn't the language you should be using.
having a better json library is a huge TCO reduction for services that run at scale but are owned by orgs that can't simply hire 250 rust developers to rewrite a system from scratch on a whim

as other people have noted cpython is also slowly exiting the "we made the language slow on purpose as a joke" zip code. if you look up all the non-python python libraries and combine them in your project, or use a framework that does it for you, you can run applications at a significant fraction of golang speed.

still slower than javascript. but you get dynamic/strong/gradual instead of whatever javascript has

12 rats tied together
Sep 7, 2006

especially since iirc even asyncio releases the gil on network io. of course you should profile your poo poo if it actually matters but it is my experience that limiting the amount of time the cpu is chewing on python bytecode is pretty high leverage when it comes to overall perf

it's undoubtedly true that the majority of python web apps are just waiting on stripe though and it doesn't matter for them

12 rats tied together
Sep 7, 2006

we use a lot of zstd at current job and i don't think i've heard anyone complaining about it yet

12 rats tied together
Sep 7, 2006

it's written in c and it's a function named _PyObject_New_

12 rats tied together
Sep 7, 2006

if im touching important json in python i almost always create a dataclass and splat the json into it. if it's really important i will use one of the libraries that does this better and has more features for validation

id just much rather throw an error from a dataclass constructor immediately on ingest than randomly throw a KeyError later on

12 rats tied together
Sep 7, 2006

simply write your json schema in yaml and then you can have comments

12 rats tied together
Sep 7, 2006

Glorgnole posted:

iirc they can't implement zoom because the actual pixel coordinates of where the wires attach to the blocks determines what the program does

lol at all the guys getting mad about semantic white space when semantic rgb was with us all along

12 rats tied together
Sep 7, 2006

FlapYoJacks posted:

Edit: gently caress cancer and especially gently caress cancer in dogs.

I also went through this exact situation last week, my condolences. :smith:

12 rats tied together
Sep 7, 2006

i cant imagine intentionally installing anything other than black into a python project, for this

12 rats tied together
Sep 7, 2006

imagine that you can compile it anyway and it might work on average, and that's more or less the experience

12 rats tied together
Sep 7, 2006

Shaggar posted:

if your data matters then you will always need the one source of truth and its really impossible to turn that into a microservice beyond assinine things like "oh we put the Person endpoint in one service and the Address endpoint in another service"

it doesn't make sense to have "the person endpoint service" that exists to serve requests for Persons. we had a name for that architectural concept already, a thing that stores and serves requests for data, was called a database

the service is supposed to be the behavior. the periodic emailer service, it doesn't encapsulate a database, it might read from many databases, and probably some caches too, so that it doesn't accidentally double email, or so that you can appropriately include advertising tracking info in it or whatever

the "autonomous" aspect of services is simple as long as you follow the 1 simple rule that they aren't databases

12 rats tied together
Sep 7, 2006

yup. a micro web service just needs to run a process in a container scheduler or other type of operational junk drawer that performs some function

a microservice isnt, should not be, a postgres container with an express app in front of it. that's still a database, not a service

you could simply buy sql server licenses and hook up the built in iis http api thing and then you never would have needed node js or kubernetes developers

12 rats tied together
Sep 7, 2006

tef posted:

hands up everyone who has tested the rollback script worked before needing it

always but i fall under the ops category so this is called "due diligence" and not doing it gets you fired

12 rats tied together
Sep 7, 2006

the tool is pip. the other tools are just pip with extra features so you don't* have to learn how python packaging works

*eventually you have to hire someone who does anyway, or otherwise benefit from their unpaid labor answering questions online

12 rats tied together
Sep 7, 2006

FlapYoJacks posted:

What's wrong with pip? You put a requirements.txt file in your project somewhere and then run "pip install -r ./requirements.txt" and all of the dependencies are installed. :shrug:

i will give some credit to the science python community that their ecosystem is dogshit and conda probably needs to exist. but that's the same as not learning how python packaging works except you're also not learning how drivers work, and instead of just you benefiting from unpaid labor online it's you and nvidia

12 rats tied together
Sep 7, 2006

Asleep Style posted:

you could always use poetry!

hmmm, it's hanging forever. I guess I need to... delete every cache for some reason!?

okay, that didn't fix it this time. looks like my other option is to... disable the experimental new installer that is enabled by default and locks up all the drat time due to race conditions? what the gently caress

i don't even think poetry will install whatever python version you pin a project to? so you still have to install pyenv. and if i'm gonna do that anyway i will just get the suffix plugin and then i don't need poetry anymore either

12 rats tied together
Sep 7, 2006

i have some reqs files that have installed unpinned requests successfully 100% of the time for the past 8 years

usually if we have a problem with the one i'm thinking of it's because of the azure sdk and it's propensity to be incompatible with itself, but even in that situation pip straight up says hey i can't install this thing >=2.1 and ==1.4.

FlapYoJacks posted:

Using a virtual address is the same as not learning how MMU's work. :rolleyes:

i have no idea what this means, but it's not a job duty for me to janitor science python ecosystems, and i'm happy to benefit from the unpaid labor of conda package maintainers on the rare occasion that i need to

12 rats tied together
Sep 7, 2006

i cant think of a better strongly typed language that comes with a repl. its too good, so good that i cant justify switching off of it even though it completely sucks to install a pinned, isolated python version on thousands of servers, and then also install packages for it

12 rats tied together
Sep 7, 2006

the game was shipped and has been, presumably, a financial success for like 20 years.

seems good to me.

12 rats tied together
Sep 7, 2006

games programming is cool because you do the interview and they throw you some horseshit like "invert a b tree in place" and unlike "software" engineering if you press them they will explain that this was a real problem for the company because it had to run inside the xbox controller which has the wrong kind of ram

12 rats tied together
Sep 7, 2006

no. the computer is mostly good. and so is the programming. including javascript

Adbot
ADBOT LOVES YOU

12 rats tied together
Sep 7, 2006

Just a Moron posted:

Fine, python is a perfectly good language.

I like using it over most other languages/environments. I was just repeating what I've been told in terms of how it scales.

dont let the haters win. its hot dogshit for games, you can barely create a gba emulator in it.

backend server for an online game is probably ok, since it doesn't have a render loop, and a lot of the work involved in online game servers is spinning while you wait for network io. python is really slow for a computer language but the computer is extremely fast. but games industry is never about "lets pick one piece of technology and squeeze everything we can out of it" its more about deadlines and hiding the duct tape

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