salmonellaeater
Joined 14 years ago
Joined 14 years ago
This is not to say that this architecture isn't salvageable - if the only consumer of the Iceberg table copy is a e.g. view that downstream consumers must use, then it's easier to change the Postgres schema, as only the view must be adjusted. My experience with copying tables directly to a data warehouse using CDC, though, suggests it's hard to prevent erosion of the architecture as high-urgency projects start taking direct dependencies to save time.
There's a solution already in use by many companies, where the LLM translates the input into a standardized request that's allowed by the CSR script (without loss of generality; "CSR script" just means "a pre-written script of what is allowed through this interface"), and the rest is just following the rest of the script as a CSR would. This of course removes the utility of plugging an LLM directly into an MCP, but that's the tradeoff that must be made to have security.
Most web APIs are not designed with this use-case in mind. They're designed to facilitate web apps that are much more specific in what they're trying to present to the user. This is both deliberate and valuable; app creators need to be able to control the presentation to achieve their apps' goals.
REST API design is for use-cases where the users should have control over how they interact with the resources provided by the API. Some examples that should be using REST API design:
- Government portals for publicly accessible information, like legal codes, weather reports, or property records
- Government portals for filing forms and other interactions
- Open data initiatives like Wikipedia and OpenStreetmap
Considering these examples, it makes sense that policing of what "REST" means comes from the more academically-minded, while the detractors of the definition are typically app developers trying to create a very specific user experience. The solution is easy: just don't call it REST unless it actually is.It's normal for an application to be built from many independent modules that accept their dependencies as inputs via dependency inversion[2]. The modules are initialized at program start by code that composes everything together. Using the "god object" pattern from the article is basically the same thing.
[1] https://en.wikipedia.org/wiki/God_object [2] https://en.wikipedia.org/wiki/Dependency_inversion_principle
I've encountered the same phenomenon, and I too cannot explain why it happens. Some of the highest-value types are the small special-purpose types like the article's "CreateSubscriptionRequest". They make it much easier to test and maintain these kinds of code paths, like API handlers and DAO/ORM methods.
One of the things that Typescript makes easy is that you can declare a type just to describe some values you're working with, independent of where they come from. So there's no need to e.g. implement a new interface when passing in arguments; if the input conforms to the type, then it's accepted by the compiler. I suspect part of the reason for not wanting to introduce a new type in other languages like Java is the extra friction of having to wrap values in a new class that implements the interface. But even in Typescript codebases I see reluctance to declare new types. They're completely free from the caller's perspective, and they help tremendously with preventing bugs and making refactoring easier. Why are so many engineers afraid to use them? Instead the codebase is littered with functions that take six positional arguments of type string and number. It's a recipe for bugs.
You seem to be referring to runtime performance of compiled code. The announcement is about compile times; it's about the performance of the compiler itself.
Collusion is already illegal. If RealPage is facilitating collusion, then they and the participating landlords should be prosecuted. RealPage seems to be in a strange and novel business where they're recommending prices that might not be the best for their customers, the landlords. This seems a lot like collusion with extra steps. If they're actually recommending prices that maximize profits for each customer individually then that seems fine.
A quote from the article suggests that RealPage is being used in real estate companies by upper managers to guide and oversee the work of their reports:
> If a property manager disagrees with the price the algorithm suggests and wants to decrease rent rather than increase it, a pricing advisor will “escalate the dispute to the manager’s superior,” prosecutors allege in the suit.
This... is fine as long as the price being recommended is in the best interest of the real estate company rather than RealPage.
Algorithmic pricing is a perfectly normal extension of basic business management. A real estate management company could achieve the same thing that RealPage is doing (aside from collusion) by buying data from other companies and using some fancy math to choose the best rental prices.
The article makes a claim that isn't really substantiated:
> The complaint names specific areas where rents are artificially high.
> In the second quarter of 2020, the average rent in San Diego County was $1,926, reflecting a 26% increase over three years, according to the San Diego Union-Tribune. Rents have since risen even more in the city of San Diego, to $2,336 per month as of November 2024 – up 21% from 2020, according to RentCafe and the Tribune. That’s 50% higher than the national average rent.
This is a non sequitur. How San Diego rents compare to the national average doesn't tell you anything about whether rents are artificially high. San Diego is a desirable place to live; maybe the rents are artificially low and really should be 2x the national average! What would tell you that is whether landlords could make more money by lowering rents. This would only make sense if occupancy rates are low and landlords could fill more empty units by lowering rents. It wouldn't necessarily make sense even if occupancy rates are low, as high prices filter out bad tenants who cause damage and other costs and can't compensate the landlord because they don't have money. In some markets filtering out these bad tenants can be worth it even if units go empty. California has really poor protections for landlords against bad tenants, so I wouldn't be surprised if higher prices and lower occupancy rates was the correct business decision for landlords there.
This is a good idea since it doesn't distort economic decisions, but has not been implemented in many places.
https://en.wikipedia.org/wiki/Land_value_tax