"soulless regression-to-the-mean", damn that's quote of the day.
HN user
erichanson
aquameta.org/
eric@aquameta.com
twitter.com/erichanson
I used to telnet into my POP3 account and check email by protocol. Shucks.
I love jQuery syntax. It's still way tigheter than standards-based stuff, never understood all the crapping on it.
Real talk.
https://www.postgresql.org/message-id/flat/894C0144-5BCC-41C...
set_user extension is AFICT essential for scaling user-per-role.
Big difference is it's implemented in pl/pgsql so as Aquameta evolves, there's no external deps. There's a function called endpoint.request(http_verb, URL, post vars) and then it does the rest in plpgsql. A thin Go daemon just takes the request and throws it at the function.
It does a lot of the same stuff PostgREST does. Automatic REST interface to any database, but it also hosts static resources, and dynamic mapping of URL templates to functions.
Needs a rewrite though. That's probably the next big dev push. Right now we're rewriting the system catalog (meta) and the data VCS.
Thanks for remembering Aquameta and stay tuned! Some cool new stuff coming out shortly.
My sister just got diagnosed with lupus.
You know the Nazis had pieces of flair that they made the Jews wear.
Reporting to it is entirely voluntary, so that's a broken premise.
You're older than you've ever been and now you're even older. -TMBG
I ran a BBS in the 90s, nothing big but it had a small local community, some of them just users (lusers) and some of the sysops of other boards. I only had one phone line but call waiting would just kick the user off if I got a call. It was really easy to one up, I was running Renegade but there were quite a few different systems that you just basically turn on and you're up. I spent way too much time customizing each menu with ANSI art for each menu and trying to pimp out the UX. There were multiplayer games and file boards and message boards and you could live-chat with the sysop or other users if the board had multiple phone lines. My buddy called long distance to Kansas to some warez board to download a paint program and ran up a huge phone bill. It was magical and so much fun. Internet still has not achieved that kind of decentralized p2p in the mainstream. Plug a Raspberry Pi into your cable modem and build your own little board, give access to whoever you want. Would be pretty cool to me, but I don't know if I'm just old and nostalgic or if anybody else would actually want to do it. But yeah, wild wild west was the best.
I like this policy. Heck, given today's climate I love this policy.
This makes me happy.
LMAO
I wish there was still a "for me to poop on" app so I could poop on this.
-40 year old guy
Yes, sorry. It's in a state of major upheaval. I'll get it cleaned up ASAP. Nice to see there's actually some interest in this direction from others!
Check out Aquameta, a web dev stack built entirely in PostgreSQL (self-plug): http://github.com/aquametalabs/aquameta
There's a ton down this rabbit hole. One of the great anomalies of our industry is that we've used the database to bring coherence to countless "user domains", but never applied the same principles to our own stack. The benefits of doing so compound exponentially.
This is so frickin' cool.
Hi HN, I'm Eric Hanson, the guy behind the Aquameta project (http://aquameta.org). With Aquameta, I'm trying to to break down the technical barriers between users and developers by putting the development stack in the database (PostgreSQL). Right now users edit data, and developers edit code, but with Aquameta, everything is data, so it opens up huge new frontier of possibilities. We're challenging the assumptions baked into Unix that date back to the 60's, that the file system is an acceptable way to organize the dev stack. It is not, and once you see the inefficiencies that the old paradigm has plagued us with, you can never unsee it. They are everywhere. By putting everything in the database, we gain a huge multiplier of interoperability and reusability, almost for free.
Here's an intro video from a couple of years ago:
https://www.youtube.com/watch?v=G0C8AsXNPAU
Aquameta has a functional IDE and is getting very close to a v0.3 release, the first release that users can easily download and install. I have a lot of ideas for how to monetize.
I am foremost a systems engineer, but I very much value biz dev as an essential part of bringing something into the world. We're mission driven, but missions don't get too far without the Benjamins. I'm looking for someone to flesh out the business side of things, someone with connections to the investment world, and skills in market strategy, sales and marketing. I'm currently in San Francisco. Hit me up at eric@aquameta.com.
Agree about no-code. But UI that generates code is a pretty cool paradigm. For most common patterns, end users don't need to know that there's a bunch of boilerplate code under the hood, but if that isn't sufficient, that remaining 5% can be reached by just jumping into some auto-generated code that's readable and well-commented. Mere mortals can do the 95% themselves and then call in a wizard for the hard parts, or try to figure it out on their own. Plus, any non-generated solutions can be highlighted, so it builds up a record of the places where the UI fell short.
Fair enough. I agree in the sense that typing isn't what takes up my programming time. 1000 lines of code at 100 wpm (which most coders could beat) is what, 10 minutes? I wish. I've spent hours on a single regex.
I think efficiency and accessibility are at odds with each other to some extent, and we've more neglected accessibility and flattening the learning curve, because we don't need it, we already know how to code. But custom software is basically a subscription service to the programmers that created it. I had a client that hired a guy who had invented his own programming language and built their whole system, then disappeared on not great terms. Boy were they in trouble.
But come to think of it, regex is a perfect example of something that could probably be interactively visualized and made more efficient. Let's ask google.
Yup: https://www.debuggex.com/
So I'm in vim or visual studio or whatever and I want to use this plugin and I... what? Google it in a browser and copy and paste regexes back and forth? This is so not 2021. The lack of a shared information model between tools/paradigms jumps out as a big shortcoming.
Put everything in the database! Directories are dumb, the world is not a tree it's a graph. Files are dumb, they don't have constraints or decent metadata. Syntax is latent structure. Config files are just a featureless database. Stop it! Code wants to be data. (shameful self-plug: aquameta.org)
I wish more people thought like Zapier too. Their pipe flow designer thing is pretty star trek.
The world is chock full of shit software that people have to use eight hours a day and absolutely hate. I mean, seriously, hate to the point of shaking and tears at the idiotic hoops they have to jump through all day long, every day, for years. Genuine mental health impact. They come home miserable and snap at their kids. Maybe he's channeling their frustration. And maybe we deserve it.
Yeah I think it takes a special mind to use today's dev environment, but the distance from where we are today, to an interrogative system creator (which is a pretty cool idea btw) is eons; there has to be something more in the middle.
I think it's always going to take someone with a systems-thinking mind to engineer a system that's any good, but lots of people have that, people who created their own business and thought through all the steps in their system and engineered the whole thing in their head. That's systems engineering, just not with code. But there's so much knowledge that's required to go from zero to custom software deployment that I'd characterize as non-essential complexity, today.
Yeah I think programmers tend to make tools for programmers, for themselves and the way they think, which is totally natural and to be expected. But man these poor users.
It's not so bad when they're using mainstream programs with millions of dollars in dev budgets behind them, but when you get further down the long-tail it just gets so awful and users are so helpless. The software an insurance agent uses, the charting app a therapist uses, the in-house warehouse management system people spend their entire day using, where if they could just make this field auto-focus or a million tiny other things, they would save so much time and frustration.
Generally speaking, users edit data and programmers edit schema, and never the two shall cross. Users execute code but only programmers change it. What hope do we have of democratizing programming when these roles are about as foundational to computers as it gets? What would we have to unlearn to change this?
Not a lot of support for his sentiments here it seems, but to understand where he's coming from you probably need to see the research he has been doing, largely aimed at entirely different modes of programming -- visualizing boolean logic trees and all kinds of other stuff, aimed at making programming more accessible and concrete to regular people.
You know in the movies where they have the futuristic user interfaces? Well we've been able to put graphics on the screen for decades, but "real" enterprise programming is still mostly pounding keys into text files and fussing over semicolons and curly braces. Visual interfaces are considered toys that "real" programmers don't need.
And yet there's a chasm of capability between programmers and users, and it's actually true that what programmers do isn't something most "normal people" will ever be capable of. But is that because programmers have some wildly special form of intelligence that most people don't have, or is it because our tools suck?
The divide between users and developers is as accepted and entrenched as it is archaic, not to mention a huge innovation and creativity bottleneck for the species, and by my estimation an embarrassing failure to innovate for our industry. Jonathan has been pushing back for decades. He's not grumpy or cynical, he's a relic from a time when the future of programming and "what programming even looks like" was still a wildly open question.
I wish more people thought like him.
Can the 400 receive a bluetooth signal and act like a remote speaker? Specifically is the bluetooth hardware capable of that?
Has anybody seen any work where CRDTs get insight into conflict resolution using the underlying grammar of whatever text is being written (aka English, Javascript, regex, etc.)? Seems like the conflict resolution could do a better job if it knew the EBNF of the text that was being edited.
Also, any prior art on CRDTs over relational data? I suppose each single field would potentially be an "editable space", but on a long document (say a Javascript code block), updating the whole thing in the db by overwriting it with each edit would not be very efficient. Seems like there could be a datatype that was a little smarter than "text", that could handle more granular updates, that implemented a CRDT index under the hood? I'm working on a VCS for relational data [1] which is more on the not-so-realtime-collaborative-editing end of the spectrum, but would really like to figure out how to handle real-time collaborative editing in this space.
Maybe over WebRTC? I found a little bit of prior art w.r.t. CRDT over WebRTC. [2]
[1] https://github.com/aquametalabs/aquameta/tree/master/src/pg-... [2]: https://github.com/mattkrick/rich
To derefr's point, I'll also point to the "meta" PostgreSQL extension (part of the Aquameta project, which I maintain) whose purpose is to provide a more readable version of information_schema:
https://github.com/aquametalabs/meta http://blog.aquameta.com/intro-meta/
information_schema is pretty unruly, and pg_catalog is just crazy, in terms of readability, but if you just want to do some simple introspection, meta might be helpful.
That said, I see value in a nice Javascript object that is easy to traverse and can be retrieved all at once.
Interesting.
I don't mind adding additional daemons to the system if it's essential. But, Tor also (as I understand it, given that this is a ways outside my core competency) adds a whole encryption and anonymization layer, which would be undesirable overhead in at least some scenarios, which is why it seems too heavy to be part of core. Maybe WebRTC isn't going to work reliably which would be very disappointing. I'd like to hear more about your experiences and could really use some help making a good decision here. Ping my email if you're available!
Oh, we actually split up meta into just the views or a additional extension for the update triggers. Yeah the updatable views are a giant foot gun. Essential in our case but not generally.