I'm trying to push the boundaries of SQL by building Anyquery[1]. It's a SQL query engine that allows you to run queries on anything (GitHub, Todoist, Parquet, Google Sheets, logs, emails, etc.)
It's mental gymnastics to transform different data sources (e.g. a spreadsheet) into a SQL database with write support, but I do enjoy the journey and learn a lot from it.
Hey HN, I’m Julien, a CS student, and I built anyquery, a SQL query engine for pretty much anything.
Anyquery can run SQL queries on local/remote files (CSV, JSON, Parquet, HTML, etc.) and SaaS (GitHub, Notion, TodoIst, Shopify, etc.). Anyquery can also transform a Google Sheets or an Airtable base into a SQL database with INSERT/UPDATE/DELETE support. Additionally, it can act as a MySQL server to leverage its ecosystem (BI tools, ORMs, etc.). Finally, you can run PRQL and PQL (KQL inspired language) queries with it.
Under the hood, it uses Go and SQLite's virtual tables. Therefore, you can use the SQLite ecosystem (e.g. sqlite-vec, datasette, etc.)
I would love to hear your feedback about the project.
(I know it’s a repost. I thought that posting the previous SHOW HN during the weekend was badly timed. If you find it inappropriate, please don’t hesitate to flag the post. https://news.ycombinator.com/item?id=41203559)
Hey Breck, I'm not sure you understood properly what Anyquery is. It's a CLI to run SQL queries on "anything" (APIs mostly and files). Therefore, it's hard to provide a version without downloading anything.
But I guess it's because the landing page isn't clear enough. Thanks for the feedback, I'll try to fix that.
Thanks! For querying CSV, it's quite similar to DuckDB (just a little bit slower). It's almost the same syntax (read_csv table, same parameter name, etc.)
I think anyquery strength rather comes from querying things other than files
France did something like that last month. To support the "Centre national de la musique", a new 1.2% tax was added on digital music streaming services. But rather than absorbing the cost, Spotify just raised its subscription cost.
In the end, the government just taxes its citizens more instead of getting a bigger share of revenue from these companies.
That’s not necessarily always true. Spotify may very well pass costs on _right now_, but it may choose to lower its rates if it sees that enough people start unsubscribing.
Companies are constantly adjusting subscriber count vs revenue per subscriber and will charge the absolute maximum they can get away with. Doesn’t make sense not to as a profit-driven company.
We're decades in on Netflix specifically ratcheting their prices like clockwork. One may say inflation, doubt - they adjust more often than anyone.
It overwhelmingly goes in one direction. A new sucker is born every day
The network effect of this is "the money machine must grow/demands more". They don't have to do this - everyone knows how well-paid their people are. It's a system of systems.
There's an academic understanding and then the practical one. Everyone stands to benefit from a Boogeyman
I won't pretend to be educated on this, but I'd say 'Revenue maximization' works. Businesses are there to make money, I get it.
I'm really getting at this: we as people have a tendency to optimize things beyond their optimal point. We can't leave well enough alone.
In the time it's taken me to post twice about how I've quit Netflix, I made enough to pay for the subscription. The cost isn't the point - I stopped because of the action, not the result.
I'm not really complaining, though. My job - SRE - basically depends on this tendency in others.
To your point, the experience has been devalued.
The content isn't as good as it once was IMO. The price continuously raised, the terms kept changing, and the proposition stopped making sense for me.
Right, it generally settles into a new optimum where customers are paying a little more, the company is earning a little less, and the state gets its so-well-deserved cut.
Not sure why you are getting downvotes, you are absolutely right.
It's a positive outcome of economic science that procuders can't fully pass taxes to consumers. There's always some sort of division of the overall dead weight loss, and it's always proportional to that market's conditions (competition, market share, elasticity, etc). If a producer decides to try to fully pass the price, it's because they believe their costumers are inelastic or that competition will not be able to undercut them.
To put it another way: if companies were fully passing tax hikes onto the customer... then companies wouldn't be complaining about taxes!
Companies will make less money as a result of the tax, but the consumer will also be paying for it through higher prices. Just because companies end paying a part of the tax, it doesn't mean that the consumer isn't paying.
Additionally, fewer people will enjoy the service which is bad for everyone. Arguably people will get to enjoy whatever the tax is funding, but will they want to?
> There's always some sort of division of the overall dead weight loss
My point is, a lot of people seem to think that the costumer _exclusively_ bears the cost of a tax hike. It is simply not true, positively so.
> Just because companies end paying a part of the tax, it doesn't mean that the consumer isn't paying.
That's tautological, unless there is a third entity that could be paying the remaining part of the tax.
> Additionally, fewer people will enjoy the service which is bad for everyone. Arguably people will get to enjoy whatever the tax is funding, but will they want to?
I was searching for solutions to create a public collaborative tool, similar to Wikipedia, when I came across this database.
I need version control and easy rollback for the moderation team. Dolt seems to be a great fit for this purpose.
It may be better to merely use a versioning field and allow some entries to be hidden by mods (published/draft/hidden indicator.)
Rollbacks at the database level will make things harder to understand and prevent future reference to disputed entries.
(Mods may want to deliberate or keep for future reference.)
Besides, wouldn’t you want access to old revisions?
Location: Europe
Remote: Office / Hybrid / Remote
Willing to relocate: I'm willing to relocate in Europe or North America
Technologies: I'm fluent with TypeScript, React, Python, SQL and Golang
Résumé/CV: https://cdn.julienc.me/resume.pdf
Email: contact@julienc.me
I'm a French CS student looking for an internship during the summer of 2024. I have built several projects during my freshman year:
- Gut: an alternative CLI for Git (470 stars on GitHub and made it to the HN front page)
- HN Recommend: a recommendation engine for Hacker News (also made it to the front page of HN too)
This is awesome!
I have always wanted to learn about D3.js, but I've never really started.
I hope these well-made examples will help. Thank you for creating this.
I've been vaugely interested for years, but I never quite had a good handle on what problems D3 solved; it's lower level than a charting library - to the extent that you use it to manipulate SVG primitives directly. At that point I figured you may as well go all the way and write it all yourself.
However now I've started playing around with it, I realise its killer core feature: it manages the relationships between the scale of your data and the coordinates on your screen, which saves a ton of awkward calculations. Add in helpers built on top for things like axes, line smoothing etc. and you've got a hell of a powerful API for creating charts, custom visualisations and anything else you can think of. I'm becoming a fan.
I really like the power of D3 but I have tried and failed at learning D3.js properly, I was unable to understand basic bars and graphs but the same reason you mentioned I find it difficult to advance, SVG manipulation with a big dataset is difficult after some point to create a complex visualizations.
Any good resources you could share that has helped you? Thank you.
Beyond that, copying and pasting working examples and trying to adjust them for your purposes works really well. I still don't fully understand the API but it doesn't seem to matter that much to start with - I'm still in the "monkey see, monkey do, monkey iterate" phase.
I have tried ObservableHQ but I am not sure it helps me understand D3 as much as it does help me use it like a Jupyter notebook.
And unlike Jupyter, ObservableHQ notebook does a lot of heavy lifting when it comes to creating charts for the web which outside that makes it really difficult to adapt to.
I guess I will have to follow the monkey rule until I really understand it well and need to learn desperately.
It's inspired by Kusto and available as an open-source CLI. I've made it compatible with SQLite in one of my tools, and it's refreshing to use.
An example: