frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

The Ancient Behaviours We Think Are Modern

https://gilescrouch.substack.com/p/the-ancient-behaviours-we-think-are
1•pier25•42s ago•0 comments

Compromising a Linux desktop using 6502 processor opcodes on the NES? (2016)

https://scarybeastsecurity.blogspot.com/2016/11/0day-exploit-compromising-linux-desktop.html
1•Bratmon•1m ago•0 comments

Flush door handles are the car industry's latest safety problem

https://arstechnica.com/cars/2025/09/flush-door-handles-are-the-car-industrys-latest-safety-problem/
1•voxadam•1m ago•0 comments

The whole point of OpenAI's Responses API is to help them hide reasoning traces

https://www.seangoedecke.com/responses-api/
1•Muhtasham•1m ago•0 comments

Ellison Tops Musk as Richest Man After $101B Gain

https://www.bloomberg.com/news/articles/2025-09-10/oracle-co-founder-larry-ellison-closes-in-on-e...
3•wslh•3m ago•1 comments

Show HN: A Deep Research MCP Agent (and pitfalls I hit along the way)

https://thealliance.ai/blog/building-a-deep-research-agent-using-mcp-agent
2•saqadri•3m ago•0 comments

Rackintosh Plus

http://www.identity4.com/2025-racintosh-plus/racintosh-plus.html
1•ethanpil•5m ago•0 comments

UI Power Hour: A 60-Minute Ritual for Product Polish

https://leemunroe.medium.com/the-ui-power-hour-a-60-minute-ritual-for-product-polish-77ebfb59a89d
1•fonziguy•5m ago•0 comments

The Smoker (2023)

https://www.theparisreview.org/blog/2023/02/07/the-smoker/
1•NaOH•5m ago•1 comments

Conspiracy Beliefs Mediate Association Between Dark Triad and Political Trust

https://www.mdpi.com/2076-0760/14/9/512
1•PaulHoule•6m ago•0 comments

Hideo Kojima almost became a pharma guy but for some kind words from a HR person

https://www.pcgamer.com/gaming-industry/hideo-kojima-relatably-says-job-hunting-made-him-feel-lik...
1•Michelangelo11•7m ago•0 comments

Microsoft PowerToys

https://learn.microsoft.com/en-us/windows/powertoys/
4•akudlacek•8m ago•1 comments

Show HN: Nooki – a minimal, text-only Reddit alternative (soft launch)

https://nooki.me/
2•lakshikag•9m ago•0 comments

Ask HN: Has the Gaza war affected the HN crowd?

3•padraic7a•10m ago•0 comments

The Impact of Early-2025 AI on Open-Source Developer Productivity

https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/?mc_cid=10153cb46e
1•jvdvegt•12m ago•1 comments

Reverse Hiring: Companies Apply to Developers Instead of the Other Way Around

https://preview--pitch-forward.lovable.app/
2•iCeGaming•13m ago•2 comments

Nobody's Perfect: My Personal PIM Debt

https://karl-voit.at/Nobodys-PIM-is-perfect/
1•renehsz•13m ago•0 comments

Logseq from an Org-Mode Point of View

https://karl-voit.at/2024/01/28/logseq-from-org-pov/
2•renehsz•13m ago•0 comments

Managing Network Devices via Org-Mode Table and OpenWRT Router

https://karl-voit.at/2025/04/18/openwrt-config-via-org/
1•renehsz•14m ago•0 comments

Working in Groups

https://internet.place/content/working-groups/
2•BD103•15m ago•0 comments

Broadcom Steps Up to Challenge Nvidia in AI Chip Arms Race

https://www.hpcwire.com/2025/09/09/broadcom-steps-up-to-challenge-nvidia-in-ai-chip-arms-race/
1•rbanffy•18m ago•0 comments

Terminal-based XMPP video calls with real-time A/V streaming

https://mastodon.social/@Goffi/111942641269230029
1•goffi•19m ago•0 comments

Zoox launches its robotaxi service to the public in Las Vegas

https://zoox.com/journal/las-vegas
17•krschultz•21m ago•6 comments

NASA finds minerals that could be from microbes in rocks from Mars

https://www.nytimes.com/2025/09/10/science/mars-rock-nasa-perserverance.html
2•ml-student•22m ago•1 comments

Stronger gut-brain link in some may worsen anxiety and other mental conditions

https://newatlas.com/medical/enteric-nervous-system-brain-link-mental-health/
3•ivewonyoung•22m ago•0 comments

Show HN: Blarb – Chat instantly, just by sharing a link

https://blarb.net
1•vasanthv•22m ago•0 comments

NASA rover finds potential sign of ancient life in Martian rocks

https://www.reuters.com/science/nasa-rover-finds-potential-sign-ancient-life-martian-rocks-2025-0...
2•methodical•22m ago•2 comments

I tried using AI for every part of my job for a week: what broke and what worked

2•iam_saurabh•24m ago•0 comments

Write Kafka Data to Iceberg Without Connectors

https://getkafkanated.substack.com/p/getting-started-with-iceberg-topics
1•HughEvansDev•24m ago•0 comments

Ozempic giant Novo Nordisk to cut 9k jobs

https://www.politico.eu/article/novo-nordisk-to-cut-9000-jobs/
1•Michelangelo11•25m ago•0 comments
Open in hackernews

OrioleDB Patent: now freely available to the Postgres community

https://supabase.com/blog/orioledb-patent-free
216•tosh•4h ago

Comments

hardwaresofton•3h ago
Supabase consistently delivering massive value to the postgres ecosystem
916c0553e164269•3h ago
from the blog: "The patent is intended as a shield, not a sword, to protect Open Source from hostile IP claims."

vs. the current license:

  "IF ANY LITIGATION IS INSTITUTED AGAINST SUPABASE, INC. BY A LICENSEE OF THIS SOFTWARE, THEN THE LICENSE GRANTED TO SAID LICENSEE SHALL TERMINATE AS OF THE DATE SUCH LITIGATION IS FILED."
( https://github.com/orioledb/orioledb/blob/main/LICENSE )

imho: the current wording might discourage state organisations, since even a trivial lawsuit (e.g. a minor tax delay) could terminate the licence - perhaps a narrower patent-focused clause would work better (or an OSI-approved licence?).

cwillu•3h ago
Or litigation from a future license violation
giancarlostoro•3h ago
Sounds like the MS-PL which Microsoft used to use but switched to MIT. MS-PL is basically MIT but cover your butt against patent litigation.
yellow_lead•3h ago
A shield for Supabase, not for us
Reubend•3h ago
So what? I don't see any conflict between what they said and what the license says. As they stated, it's being used as a shield. If you're suing them, you probably don't deserve a free license to their patented tech.
graemep•3h ago
The difference is that the license is terminated by ANY litigation against Supabase - e.g. if you sue them for breach of contract completely unrelated to the software.

Use as a shield would mean limiting it to patent litigation against a user of the software.

It also only covers litigation against Supabase - it does not provide a shield against litigation against OrioleDB users.

916c0553e164269•3h ago
Apache 2.0 has a better patent clause - against hostile IP claims, so tax dispute is not terminate the OrioleDB license:

"If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed."

https://opensource.org/license/apache-2-0

crote•48m ago
It also seems a lot less strict on what is being terminated.

On violation the Apache 2.0 license terminates the patent license. I might be mistaken, but that reads an awful lot like you're still allowed to use the software provided you do so in a way which doesn't violate the patent.

On the other hand, the OrioleDB license seems to terminate the entire license - so the way I read this it would include parts of the software which aren't covered under the patent itself.

kiwicopple•3h ago
(Supabase ceo)

I’ll revisit this with legal to try make it clearer.

Our intentions here are clear - if people have examples that we can follow we will do what we can to make this irrevocable (even to the extent of donating the patent if/when the community are ready to bear the cost of the maintainance)

gobdovan•2h ago
Can you acquire atlasgo too, or is that still on the secret roadmap?
kiwicopple•2h ago
we will have something to announce in this space within a few months

(if the atlasgo team are reading this feel free to reach out too)

jacquesm•57m ago
This is highly unprofessional.
916c0553e164269•2h ago
Appreciate the intent!

For practical adoption, especially in larger orgs, OSI-approved licences are much easier to get through legal review than custom ones.

kiwicopple•2h ago
The current license is PostgreSQL (which is OSI approved)

We could also change to MIT/Apache but we feel PostgreSQL is more appropriate given our intentions to upstream the code

crote•56m ago
> The current license is PostgreSQL

That's just not true. Your license[0] adds a clause to the Postgresql license[1]. This makes it a different license, which by extension also means it isn't OSI approved.

It's the same with the BSD licenses[2]: the 4-clause one is OSI-approved, whereas the 3-clause one is not. Turns out that one additional "all advertising must display the following acknowledgement" clause was rather important - and so is your lawsuit clause.

[0]: https://github.com/orioledb/orioledb?tab=License-1-ov-file

[1]: https://github.com/postgres/postgres?tab=License-1-ov-file

[2]: https://en.wikipedia.org/wiki/BSD_licenses#4-clause_license_...

limagnolia•38m ago
The PostgreSQL license does not have a termination clause, you added that. I see that you are trying to use the PostgreSQL license as the basis and simply add the patent clause onto it, but it fundamentally changes the license.

I hope you can look at the Apache 2 patent grant as a better clause- or even adopt something like Google's Additional IP License found here- https://www.webmproject.org/license/additional/, which doesn't modify the open source license but instead adds an additional grant as a separate license.

Supabase is doing great work, thank you!

tux3•2h ago
Google has a strong patent shield situation with AV1. Despite burning interest from patent trolls, no one is going after AOMedia members directly.
oefrha•1h ago
Facebook famously dropped Patents from their BSD + Patents for React and a bunch of other projects, and went MIT unencumbered.

https://engineering.fb.com/2017/09/22/web/relicensing-react-...

tomnipotent•17m ago
The existing Postgres license already has an "as is" disclaimer, so adding this clause means you want to _punitively_ punish companies that sue you for reasons outside of this software. The interpretation then is you want to punish users of your software that find themselves in a (potentially legitimate) situation to sue you over unrelated matters.

For example, if Supabase failed to pay a vendor that happened to use OrioleDB they wouldn't be able to sue you for damages without compromising their stack. That's uncool.

My take-away from the Facebook/React license issue was that the community agrees this violates the spirit of FOSS and invalidates claiming to be open source (at least OSI-approved), with many taking offense to the punitive nature of the clause.

Granted Facebook was in a position to see litigation over a lot more reasons.

crote•31m ago
Does the current license even allow for friendly forks, or redistribution?

It starts off nice with the usual:

> PERMISSION TO USE, COPY, MODIFY, AND DISTRIBUTE THIS SOFTWARE AND ITS DOCUMENTATION FOR ANY PURPOSE, WITHOUT FEE, AND WITHOUT A WRITTEN AGREEMENT IS HEREBY GRANTED

.. but then there's the:

> HEREBY GRANTS A (..) LICENSE TO UNITED STATES PATENT NO. 10,325,030 TO MAKE, HAVE MADE, USE, HAVE USED, OFFER TO SELL, OFFERED TO SELL, SELL, SOLD, IMPORT INTO THE UNITED STATES, IMPORTED INTO THE UNITED STATES, AND OTHERWISE TRANSFER THIS SOFTWARE

.. which to me seems to be missing some kind of "modify" clause? Sure, it seems like you're allowing me to distribute it as-is the way a store like Amazon distributes boxes, but what happens when I start modifying the code and distributing those modifications? Is it still "this software", or has it become a derivative? Is the license I get to that patent even sublicensable? What happens to users of a fork when the forkee sues Supabase: do they also by extension lose their patent license?

The GPLv2, for example, has a clause stating that "Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor" which makes it very clear what happens. If you're adding a poison pill to open-source code, you really shouldn't be this sloppy: it should be painfully obvious to every reader what the implications are, or nobody will ever risk using it.

0xb0565e486•3h ago
I did not know you could patent data structures like that.
psychoslave•3h ago
That's juridiction dependent. Europe didn't allow such a thing last time I checked. But lobbying to do so as been recurrent on this topic, just like putting governmental backdoor everywhere. They will try until it passes. There should be legal penality for such a stubborn will to destroy civil liberty. At least in this case they can't play the card "think of the children, nazi pedophiles use this".
wokkel•3h ago
You can in the US. Not so much in the rest of the world.
jonathaneunice•2h ago
IP owners often play the game of “patent what you can, threaten with the rest.” So you might not be able to strictly patent the way data is laid out, but specific, novel algorithms that update or manipulate that layout and improve what was possible before? Those can be understood as key steps of an “innovative process”—and courts have been willing to uphold process claims, especially when tied to what they understand are genuine technical improvements. Fighting even a marginal patent usually means a long, expensive slog with plenty of downside risk.

IANAL nor a patent judge, but this is my understanding after watching the space for some years.

monadoid•3h ago
Love you supabase
8cvor6j844qw_d6•3h ago
Is OrioleDB just PostgreSQL but with some underlying modifications for cloud environments?

How does it compare with Neon DB?

LtdJorge•3h ago
It’s a different storage engine for Postgres
boxed•3h ago
The "cloud environments" part sounds like marketing fluff. "The cloud" is just someone else's servers after all. There's nothing special about it.
pbronez•3h ago
In this case, it seems to refer to their support for S3-compatible object storage as for persistence.
IgorPartola•3h ago
That’s like saying a chair is just a tree that has been modified. Technically true, practically there are some very specific differences.
throwaway894345•1h ago
What are the relevant differences? I’m not as cynical as the parent commenter, but I’m also unclear about what OrioleDB is doing that is meaningfully “CloudNative”. From skimming the main page, it seems like it’s just doing storage differently, but so far I’ve seen nothing to suggest that difference is “leveraging cloud services” or anything else.
916c0553e164269•3h ago
"The differences between OrioleDB and Neon" ( June 20, 2025 )

https://www.orioledb.com/blog/orioledb-neon-differences

boxed•3h ago
The graphs for OrioleDB looks very impressive. Can someone give a counter argument to switching to this?
wwizo•3h ago
Oreole is not a plug-and-play yet. From their docs ( https://www.orioledb.com/docs ) > OrioleDB currently requires a set of patches to PostgreSQL to enhance the pluggable storage API and other PostgreSQL subsystems. All of these patches have been submitted to the PostgreSQL community and are under review.
Sesse__•3h ago
You get basically most of the advantages of a B-tree-oriented table, but also most of the disadvantages AFAIK. In particular, any index lookup/scan is going to take twice as long (index blocks don't point to the place on disk, they just contain the primary key and then you need to go lookup _that_ in the actual table).
akorotkov•2h ago
This is generally true, but there are some additional aspects.

1. With PostgreSQL heap, you need to access the heap page itself. And it's not for free. It goes all through the buffer manager and other related components.

2. In OrioleDB, we have a lightweight protocol to read from pages. In-memory pages are connected using direct links (https://www.orioledb.com/docs/architecture/overview#dual-poi...), and pages are read lock-less (https://www.orioledb.com/docs/architecture/overview#page-str...). Additionally, tree navigation for simple data types skips both copying and tuple deforming (https://www.orioledb.com/blog/orioledb-fastpath-search).

According to all of the above, I believe OrioleDB still wins in the case of secondary key lookup. I think this is indirectly confirmed by the results of the TPC-C benchmark, which contains quite a lot of log of secondary key lookups. However, this subject is worth dedicated benchmarking in the future.

Sesse__•2h ago
It would be interesting to see how OrioleDB does with more OLAP-like loads. From when I spent a lot of time benchmarking this, the indirect index design was _the_ main reason why MySQL+InnoDB was losing significantly to Postgres on TPC-H (well, DBT-3).[1] There was a lot of working around it with covering indexes etc..

Of course, the flip side of the coin is that if you do an UPDATE of a row in the presence of a secondary index, and the UPDATE doesn't touch the key, then you don't need to update the index(es) at all. So it really depends on how much you update rows versus how often you index-scan them IME.

[1] TPC-H doesn't have difficult enough queries to really stress the planner, so it mattered comparatively less there than in other OLAP work.

akorotkov•2h ago
Thank you, that would be on the TODO list.
jitl•2h ago
That’s how regular Postgres b-tree indexes work too.
Sesse__•2h ago
I'll take a [citation needed] on that one.
akorotkov•1h ago
Yep, regular PostgreSQL indexes point to a heap location (block number + offset). And it is the same for primary and secondary indexes.
jitl•11m ago
https://www.postgresql.org/docs/current/indexes-index-only-s...

This is why Postgres b-tree indexes offer CREATE INDEX (indexCol1, indexCol2, ...) INCLUDE (includeCol1, includeCol2, ...). With INCLUDE, the index will directly store the listed additional columns, so if your query does `SELECT includeCol1 WHERE indexCol1 = X AND indexCol2 > Y`, you avoid needing to look up the entire row in the heap, because includeCol1 is stored in the index already. This is called a "covering index" because the index itself covers all the data necessary to answer the query, and you get an "index only scan" in your query plan.

The downside to creating covering indexes is that it's more work for Postgres to go update all the INCLUDE values in all your covering indexes at write time, so you are trading write speed for increased read speed.

I think it's quite typical to see this in SQL databases. SQLite behaves the same way for indexes; the exception is that if you create a WITHOUT ROWID table, then the table itself is sorted by primary key instead of by ROWID, so you get at most 1 index that maps directly to the row value. (sqlite docs: https://sqlite.org/withoutrowid.html)

Sesse__•6m ago
That link directly contradicts what you are saying.

> This means that in an ordinary index scan, each row retrieval requires fetching data from both the index and the heap.

Note that it says _index and the heap_. Not _index and the primary index and the heap_. (For a B-tree-organized table, the leaf heap nodes are essentially the bottom of the primary index, so it means that to find anything, you need to follow the primary index from the top, which may or may not entail extra disk accesses. For a normal Postgres heap, this does not happen, you can just go directly to the right block.)

Index-only scans (and by extension, INCLUDE) are to avoid reaching into the heap at all.

> The downside to creating covering indexes is that it's more work for Postgres to go update all the INCLUDE values in all your covering indexes at write time, so you are trading write speed for increased read speed.

For updates, even those that don't touch INCLUDE values, Postgres generally needs to go update the index anyway (this the main weakness of such a scheme). HOT is an exception, where you can avoid that update if there's room in the same heap block, and the index scans will follow the marker(s) you left to “here's the new row!” instead of fetching it directly.

pbronez•3h ago
OrioleDB is new to me.

According to the docs, it “uses Postgres Table Access Method (TAM) to provide a pluggable storage engine for PostgreSQL. […] Pluggable Storage gives developers the ability to use different storage engines for different tables within the same database. Developers will be able to choose a storage method that is optimized for their specific needs: some tables could be configured for high transactional loads, others for analytics workloads, and still others for archiving.”

https://www.orioledb.com/docs

fuzzy_biscuit•3h ago
I strongly dislike the idea of patenting data structures.
kiwicopple•3h ago
fwiw, this is not our m.o. - oriole was under development before we took on the maintenance/development.

Our goal now is to ensure that it’s as F/OSS as possible given the pre-existing conditions

dkhenry•3h ago
I am super bullish on OrioleDB. It really seems like the next logical progression for scaling Postgres for 99% of all databases out there. I have been following their development for a while and running benchmarks to see if their performance claims are legitimate, and so far it has been amazing

https://airtable.com/app7jp5t0dEHyDpa8/shr00etqywoDW2N6N

kiwicopple•2h ago
Thanks for verifying the benchmarks. We’re close to a full RC, aiming for December

Just to add: if anyone wants to contribute (beyond code) benchmarking and stress-testing is very helpful for us

Sesse__•2h ago
I assume you get this a lot, but how much patching is left in PG 18?
kiwicopple•2h ago
We are tracking the patches here:

https://www.orioledb.com/docs#patch-set

The actual storage engine is written as an extension - these patches are mostly to improve the TAM API. If these are accepted by the community then it should be simpler for anyone to write their own Storage extensions.

I think (correctly) it will take a lot longer to upstream the extension - the PG community should take a “default no” attitude with big changes like this. Over time we will prove its worthiness (hopefully beyond just supabase - it would be good to collaborate with other Postgres providers)

Sesse__•2h ago
OK, so basically no big change with PG 18, and for the time being, one needs to basically your own Postgres?

Would be really nice with a pgdg package, as this is definitely the kind of thing I would want to test in a separate cluster :-)

btown•1h ago
Based on the README [0] and discussion [1] it seems like it might especially shine on high-write-volume workflows, with the implementation of anti-bloat measures. Do you have a sense for whether it would shine even further where those rows have large text/JSONB fields that might be TOASTed?

And more generally, curious if you have any sense for what might make up the "1%" of workflows this wouldn't be advisable for? Any downsides to be aware of?

[0] https://github.com/orioledb/orioledb?tab=readme-ov-file#orio...

[1] https://news.ycombinator.com/item?id=30462695 (2022)

dkhenry•27m ago
I haven't explicitly tested how it handles TOASTed column's, but since there is an upcoming RC I will try it out next time. I don't generally like using JSONB/text columns for very large rows as they have other performance problems on the DB like causing lots of WAL write overhead.

In term of other workloads it might not be great for, all my testing has shown a great improvement in every workload I have thrown at it.

jitl•2h ago
> OrioleDB implements default 64-bit transaction identifiers

RDS support when

awaseem•1h ago
Honestly so amazing! Supabase doing great work as always
gethly•1h ago
Software patents is such an americanism. In this case, I prefer Chinese approach to ignoring patent law altogether.
navigate8310•1h ago
That simply kills innovation and dries up funding for research.
henry700•1h ago
It's what I think too, BUT curiously is not the case for China. Imagine if the DeepSeek breakthroughs were patented and closed instead of published in the open. And here we are, and they're not patented and not built on patented technology.
Zetaphor•1h ago
China is far ahead of the US in many sectors, notably electric cars and solar panels which are two industries whose progress heavily depend on research and innovation.
throw0101d•33m ago
> China is far ahead of the US in many sectors, notably electric cars and solar panels which are two industries whose progress heavily depend on research and innovation.

Ahead in production. Did China research/innovate/develop those industries, or were they 'just' fast followers? (Early in its history the US used the same 'tactics' relative to the UK and other European countries.)

dangoodmanUT•1h ago
> OrioleDB tables don't support SERIALIZABLE isolation level.

This is an unfortunate limitation to be aware of when evaluating

https://www.orioledb.com/docs/usage/getting-started#current-...

btown•1h ago
For what it's worth, this does appear to be just a temporary situation, as mentioned in that linked document and in code comments e.g. https://github.com/orioledb/orioledb/blob/7f3b3a9a8e195ba31f...
MrHamdulay•43m ago
that message was put there 2 years ago. soon may not be coming.
samlambert•1h ago
This is not an open source license and it's untrue to say it's an open source project when it's licensed this way.

"IF ANY LITIGATION IS INSTITUTED AGAINST SUPABASE, INC. BY A LICENSEE OF THIS SOFTWARE, THEN THE LICENSE GRANTED TO SAID LICENSEE SHALL TERMINATE AS OF THE DATE SUCH LITIGATION IS FILED."

This is a poison pill. At best the licensing is naive and blocks even customers of Supabase from using OrioleDB, at worst it's an attempt for Supabase to provide themselves unlimited indemnity through the guise of a community project. It means the moment you sue Supabase for anything. Contract dispute, IP, employment, unrelated tort you lose the license. They could lose your data and if you try do anything about it they can immediately counter sue for a license violation. Using the brand of the postgres license to slip this in is pretty wild.

OrioleDB looks like a promising project and undoubtedly an great contribution from Supabase but it's not open source or really usable by anyone with this license.

jitl•1h ago
I recall Facebook had a similar rider on the React license for many years until eventually removing it. It’s visually similar to the Apache2 patent clause but not scoped to just the licensed software use
seveibar•52m ago
Isn’t this just Apache 2-style permissive licensing?
samlambert•42m ago
lol no they both read as permissive on the surface. apache 2 doesn't include a termination clause that broadly protects an entity against any litigation. this is incredibly broad and not community safe.
victorbjorklund•58m ago
Non go when it includes a poison pill.
iam_saurabh•43m ago
Open-sourcing a patent in the database space is rare. Do you think this signals a shift where companies will realize that open ecosystems drive adoption faster than closed IP walls?
wslh•22m ago
I think no-open-source is a no-go for closed source systems. In the "best" case it adds a lot of friction in a sales funnel for premium offerings. You can avoid open source in special cases, mostly without complementary offerings.