[1] https://en.wikipedia.org/wiki/Fourth-generation_programming_...
2,593 karma · joined October 15, 2012
E-mail: sixdimensional ATAT [dimensionsix DOT com] minus the ATAT and brackets.
[1] https://en.wikipedia.org/wiki/Fourth-generation_programming_...
It's awesome, I'm not criticizing Htmx at all to be clear, I am criticizing our seemingly inability to advance the core web technology of HTML in browsers to include this kind of tech natively.
If somebody from the WhatWG, e.g. Apple, Google, Microsoft, Opera, and Mozilla, etc. wants to embrace and support the creators of Htmx and wrap this into the browser natively, I will proudly retract my comment.
Presumably we haven't heard as much after Northrop bought them?
I think it's awesome that Scaled Composites is involved... they really have such specialized knowledge of all kinds of aeronautical engineering.
Duplicates are not always what they seem - duplicates have a relative quantity of how duplicate they are, for example - 100% duplicate identical is what it sounds like, but then what is a 50% duplicate? Well.. that could be a duplicate where semantic meaning that only a human is aware of (missing information) could be used to determine that these two datum are in fact duplicates in different forms, where 50% is identical, but the other 50% is semantically identical. Or 50% truly identical could, in some case, be "good enough" to be considered identical. These are just examples.
Why this example is relevant is because, when deduplicating data, we often have to consider which value(s) we keep as the true singular representation.
The problem is, long after the data is created, this may be impossible to do.
The solution? Often times it is no better than flipping a coin and guessing, i.e. randomly keeping one datum and discarding what we consider to be the duplicate. Or you can try to be fancy and merge the data or choose, based on some rule, what you assume is the data with the highest valid signal and discard or ignore the noise.
This happens every day in practical information systems with messy data.
I always come to the conclusion that in the end, one cannot truly replace missing signal precisely - one can only infer the correct signal. If the information was not recorded and or compressed or corrupted beyond recoverability, there is no way to get it back - only to infer or guess with some degree of confidence, and accept or reject the outcome.
This to me actually clarifies something deeply about the conversion between the real world to the digital one as data, and the conversion of data into information- it is a real physical process.
In my mind it makes clear that the recording of data (or generation of data) is a real physical process of transfer, from an instrument making observations to physical bits in a physical system, which become the raw data.
Without the raw, precise, complete data, your observation is lossy, and therefore everything above it is as well- e.g. information/interpretation, etc.
This isn't a negative. If stated correctly, the above just helps to explain how we imperfectly navigate through the real world with our tools.
All the same, we can do some pretty amazing things in the absence of data, even if some of it is "false" or "wrong".
Unfortunately, capitalism of today appears to find public goods and strong, public, healthy public goods to be undesirable investments. Yet, it seems inevitable that some things trend that direction.
I feel if we could get a better handle on what goods fall into which category, and find ways to make those things sustainable and even grow, the situation could get better.
I'm speaking purely from observations here but it also looks like in some ways, the "invisible hand of the economy" (i.e. Adam Smith) might sort these things out by itself, albeit, painfully.
We could look at the fact that LLMs were mostly created from the public domain (except when they were not), and the resulting products/services (expensive to create/operate, benefits a huge swath of humanity, has all kinds of externality issues) as something that perhaps should again almost be considered as a public good.
If we look at the struggles LLM/AI companies have had with legal structure choices, such as nonprofit, for profit, etc and pricing (e.g. do we make it accessible at a loss? Do we extract huge profits?) as a kind of moral dilemma of classifying this new economic good (LLM-based AI).
In the US, the government has been taking investment interests in some tech companies, and recent proposals even include establishing sovereign wealth funds around AI/LLM. I think this is further evidence that the system is trying to figure out how to classify these new economic goods and corporations.
I'm curious about how the unifying architecture is going to evolve between CPU/GPU having direct access to a singular pool of memory/storage also.
I also keep wondering when memristor technology might enter the ring, because as I understand it, it would be like moving compute into the memory, which would potentially remove the need to move the data in and out of storage as much also.
It feels like computing hardware infrastructure is fundamentally evolving.
I am wondering about.. SQL as a declarative structured query language that can be optimized into essentially any kind of distributed, directed acyclic graph of processing - vs the special characteristics of relational databases (relational algebra, relvars, etc. etc.) is an important distinction as - of yet, I see the author linking both together so I'm trying to understand what it is about relational structures that specifically helped here (just not seeing it yet, not that it isn't there).
Also, wondering if ISO/IEC 9075-15:2023 SQL standard for multidimensional arrays (MDA) is of any use here? Paper describing SQL/MDA here [2].
[1] https://madlib.apache.org/documentation.html
[2] https://www.ifis.uni-luebeck.de/~moeller/Lectures/WS-19-20/N...
Seems like developer tools/tooling are a hot commodity to the current big AI companies?
- you're on HN, so you have an opportunity to tell us the name of the thing - marketing
- perhaps consider your marketing budget to be the area you need to invest in now, and indirectly how that budget can actually generate a little revenue and exercise the engine - e.g. do you have packages you can ship through your service to announce it to others? Use your marketing budget to do it and collect your marketplace fees - marketing again. Nothing says I believe in my product like using it for real (IMHO).
- a bold and risky move (?) - most would say fake it till you make it - but I for one tire of this tactic. How about approaching this with honesty and reward the first adopters? "We're brand new but you can be the first to help us prove out this model?".
- your marketplace is a network. Search for an opening that has viral properties. Try to tap into something that has a network effect, go to where your customer is and see how you can target/advertise strategically and respectfully - become a trusted partner to one or more communities (e.g. thinking out loud, eBay sellers maybe?). This could include finding the right partner(s) who have a problem and are willing to give you a shot in an existing network.
On the last point - as an example of the viral thing - I worked on a real estate tool a while back. We found a viral hook - there were for sure properties that needed to be processed and worked through the tool - we email invited the parties involved in the transaction to invite them to work on the property in the secure tool, and we gave them the ability to invite others working the same transaction to the tool, and we focused everything on polishing that workflow and experience.
This way, as soon as one person used the tool they could invite others to use it legitimately to work in the tool and that was the viral aspect.
This points to, replace real estate tool and house with "package" and invite... and can you achieve something viral that spreads itself... like, when someone ships with your tool, it emails the recipient with the link to your site for status tracking and a call to action to make them want to ship using your platform.
This to me is a lot of marketing and product strategy around incentivizing the network effect.
Disclaimer: I never made millions of dollars off a marketplace. But I did help stand up the real estate mechanism I mentioned and that business reliably brought in 5-10 grand a month with no marketing effort and just that one mechanism, and it also helped us find a few key network partners. That's what drives my feedback.
Anyone up for a rousing game of Pole Position?
I think by now a lot of people know you can write to Avro and compact to Parquet, and that is a key area of development. I'm not sure of a great solution yet.
Apache Iceberg tables can sit on top of Avro files as one of the storage engines/formats, in addition to Parquet or even the old ORC format.
Apache Hudi[2] was looking into HTAP capabilities - writing in row store, and compacting or merge on read into column store in the background so you can get the best of both worlds. I don't know where they've ended up.
Also, it was paid for by US taxpayer dollars - the entire content should have been released somewhere for free, maybe even someone would have started up a new project to maintain it, for example, something under Wikimedia or some other nonprofit.
This wholesale elimination of valuable information and data owned by the public is so incredibly sad and damaging to our future.
Maybe we need a FOIA request to get the entire contents released to the public.
What is your opinion and did you vote this down because you think it's silly, dangerous or you don't agree?
I've worked on "legacy systems" written 30 to 45 years ago (or more) and still running today (things like green-screen apps written in Pick/Basic, Cobol, etc.). Some of them were written once and subsystems replaced, but some of it is original code.
In systems written in the last.. say, 10 to 20 years, I've seen them undergo drastic rates of change, sometimes full rewrites every few years. This seemed to go hand-in-hand with the rise of agile development (not condemning nor approving of it) - where rapid rates of change were expected.. and often the tech the system was written in was changing rapidly also.
In hardware engineering, I personally also saw a huge move to more frequent design and implementation refreshes to prevent obsolescence issues (some might say this is "planned obsolescence" but it also is done for valid reasons as well).
I think not reading the code anymore TODAY may be a bit premature, but I don't think it's impossible to consider that someday in the nearer than further future, we might be at a point where generative systems have more predictability and maybe even get certified for safety/etc. of the generated code.. leading to truly not reading the code.
I'm not sure it's a good future, or that it's tomorrow, but it might not be beyond the next 20 year timeframe either, it might be sooner.
Proton is another one people often suggest. Hey.com sometimes too. No experience with those myself.
There are other options (such as the big guys, iCloud mail or Outlook.com), but aside from self-hosting (which I don't want to spend time maintaining just for my personal mail), I personally haven't seen much outside of those ones that are recommended often.
Not selling anything, but I am trying to figure out what to do to help support solo and micro entrepreneurs, very small businesses (2-3 people) and very small nonprofits.
I feel like there are a lot more people in this position now (me included), but I don't want to do things for the sake of doing them... I want to find out what solo folks really benefit from and help make sure you get more support.
I agree that spending time on inference or compute every time for the same LLM task is wasteful and the results would be less desirable.
But I don't think the thought experiment should end with that. We can continue to engineer and problem solve the shortcomings of the approach, IMHO.
You provided a good example of an optimization - tool creation.
Trying to keep my mind maximially open - one could think of a "design time" performance at runtime - where the user interacting with the system is describing what they want the first time, and the system is assembling the tool (much like we do now with AI assisted coding, but perhaps without even seeing the code).
Once that piece of the system is working it is persisted so no more inference is required, as essentially code - a tool, that saves time. I am thinking of this as essentially memoizing a function body- i.e. generating and persisting the code.
There could even be some process overseeing the generated code/tool to make sure the quality meets some standard and providing automated iteration, testing, etc if needed.
A big problem is if the LLM never converges to the "right" solution on it's on (e.g. the right tool to generate the HTML from the SQL query, without any hallucination). But, I am willing to momentarily punt on that problem as being more to do with the determinism problem and the quality of the result. The issue isn't per se the non-deterministic results of an LLM anyway, it's the quality of the result fit for purpose for the use case.
I think it's difficult but possible to go further with the thought experiment. A system that "builds itself" at runtime, but persists what it builds, based on user interaction and prompting when the result is satisfactory...
I remember one of the first computer science things I learned- the program that could print out it's own source code. Even then we were believing that systems could build themselves and grow themselves.
So my ask would be to look beyond the initial challenge of the first time costs of generating the tool/code and solve that by persisting a suitable result.
What challenge or problem comes next in this idea?
My brain went to the concept of memoization that we use to speed up function calls for common cases.
If you had a proxy that sat in front of the LLM and cached deterministic responses for inputs, with some way to maybe even give feedback when a response is satisfactory.. this could be a building block for a runtime design mode or something like that.
I agree this way seems "wrong", but try putting on your engineering hat and ask what would you change to make it right?
I think that is a very interesting thread to tug on.
Of course the generated code might not work in all cases or scenarios, or may have to be generated multiple times, and yes it would be slower the first time.. but subsequent invocation would just be the code that was generated.
I'm trying to imagine what this looks like practically.. it's a system that writes itself as you use it? I feel like there is a thread to tug on there actually.
In fact, this thought has been percolating in the back of my mind but I don't know how to process it:
If LLMs were perfectly deterministic - e.g. for the same input we get the same output - and we actually started memoizing results for input sets by materializing them - what would that start to resemble?
I feel as though such a thing might start to resemble the source information the model was trained on. The fact that the model compresses all the possibilities into a limited space is exactly what makes it more valuable - instead of having to store every input, function body and outputs by memoizing that an LLM could generate, it just stores the model.
But this blows my mind somehow because if we DID store all the "working" pathways, what would that knowledgebase effectively represent and how would intellectual property work anymore in that case?
Thinking about functional programming, to me the potential to think of the LLM as the "anything" function, where a deterministic seed and input always produces the same output, with a knowledgebase of pregenererated outputs to use to speed up the retrieval of acceptable results for a given seed and set of inputs.... I can't put my finger on it.. is it a basically just a search engine then?
Let me try another way...
If I have a ask an LLM to generate a function for "what color is the fruit @fruit?", where fruit is the variable, and I memoize that @fruit = banana + seed 3 is "yellow", then the set of the prompt, input "@fruit", seed = 3, output = "yellow"... then this is now a fact that I could just memoize.
Would that be faster to retrieve the memoized result than calculating the result via the LLM?
And, what do we do with the thought that that set of information is "always true" with regards to intellectual property?
I honestly don't know yet.
I stumbled across it looking for CSS flex masonry examples.
Use UUIDv7 for your primary key but only for large scale databases and only for internal keys. Don't expose these keys to anything outside the database or application.
Use UUIDv4 columns with unique indexes over them as "external IDs" which are what is exposed via APIs to other systems.
Basically, create two IDs for one record - one random but not the primary key, and one sequential, that is the primary key.
I have done this in real systems.. and it works.