HNHacker News
TopNewBestAskShowJobs

jarirajari

16 karma · joined October 27, 2019

Code artist #Java #JS #JVM

https://jarirajari.wordpress.com

submissionscomments
jarirajari··on Show HN: 1Dial, an AI you can call/Text to get real-world tasks done
Do you do AI evals on this?
jarirajari··on Show HN: I replaced vector databases with Git for AI memory (PoC)
I was daunted by the amount of components that goes into a basic RAG. I also ended up starting with "agentic retrieval", which I invented. And it seems that many others have invented same/similar thing. It is just so much easier to start with something simple and improve later on.
jarirajari··on Now We're All Forked
No we are not, but you are SCRWD!

https://jarirajari.wordpress.com/2024/07/01/you-are-scrwd-no...

jarirajari··on [dead]
One of the fundamental problems in programming is the lack of well-defined and higher-level data types. The types that work out-of-the box similar to libraries. A big chunk of programming is about how to map real world concepts to data types and how to map types to other types. Still, often programmers use primitive data types like strings, ints, etc. for representing real-world concepts. Why don't we start delivering type-first libraries which focus on well-defined and well tested data types, so that you don't need to re-invent them every time. And make to them free of errors and easy to share (bundles with versions). Notoriously difficult data include monetary and money units, and how many times we need to ask chatgpt and stackoverflow people what is the correct way to validate phone numbers, urls, etc. before we start focusing on data types and validation? And before anyone has the chance I want to say that indeed libraries expose data types which you can use, but in that case a library should separate the data types from methods and depend on the data types (library).
jarirajari··on [dead]
I assume you know what CRUD stands for... Just wanted to share what I am using instead of CRUD nowadays. SCRWD is what I use both in API design and the backend implementation. This is the outcome of one extremely long hobby project, and for anyone interested in the backend (in Java) part you can check one part of the evolution [here](https://jarirajari.wordpress.com/2022/08/22/not-your-fathers...). And why I ended up to updating CRUD? Because a modern webapp that has a client and a server separated by an API caused semantic problems for me and I also felt that the source did not look clean. So hopefully, this post will give you ideas how to improve your code :)
jarirajari··on Ask HN: Excel as a back end? Well now you can
Hey, thanks! Definitely need to look into Excel add-ins!!
jarirajari··on Ask HN: Excel as a back end? Well now you can
True, excellent point about the availability. But homemade sheets are often tools you built yourself for you and not tools that you can buy from a store.

I see AirTable as a rich UI client that sits on top of data - btw, back in the days rich clients was a thing. I am curious how people would use server that is able to do business logic.

jarirajari··on Ask HN: Excel as a back end? Well now you can
I agree that no system should be implemented in excel, but for many it is a good match to rapidly test or model things, or to write handy tools.
jarirajari··on Ask HN: Problems worth solving with a low-code back end?
Thank you for your response! I too think that Excel is a premier example of low-code success: especially if you think that who is it low-code for - business people. Many times I find technical people (me too) engaging these low-code discussions so that they forget that low-code and no-code should be powerful enough to bring power of programming to groups of non-technical people.

In my case, I wanted to start with Excel functions, but it could be valuable to add even more functions. And to be able to write these functions in a different way than Excel does is what I am after: think of it as sequences of functions instead of placing them inside cells. Another thing is that you can't really run Excel as a backend i.e. without human intervention. Or well, there are nowadays some tools for that too, but that gets quite technical quickly.

jarirajari··on Ask HN: Problems worth solving with a low-code back end?
1) Good point about the "Humans in the circuit". I think that when people talk about process manager they are referring to long-standing processes 2) I'll take this to be the frontend part 3) I'll take this to be the database part 4) I'll take this to be one component of the frontend part 5) I'll take this to be tool for designing long-standing processes

So what I gather from your post is that you are describing one class of low-code designs. Maybe in your post the "backend" is within the process manager, but in BPM engines the process manager is actually more complex entity in a system what a "normal" backend would be.

So to me this is a lot more than what I want to focus on, which is the backend part in:

User <---> API <---> Backend (business logic) <---> Database

jarirajari··on Ask HN: Problems worth solving with a low-code back end?
And it just not flexibility without a reason. At least in B2B web apps, some customers always need to have something that's not in the core of the product but in order to get them on board business people push for a long tail of infrequently used features. More features and code is a liability - not an asset
jarirajari··on Ask HN: Problems worth solving with a low-code back end?
"Generally speaking, the golden rule of product development is to identify the problem first, then figure out what will solve it. " You got me there, but it all started as a hobby project which got out of my hands :)
jarirajari··on Ask HN: Problems worth solving with a low-code back end?
Checklist - open source. This I would do my self too, but only because I am a technical person - version control. Agree, but in my case only API will be available for you to version (versions are of course in backend too) - testing. Agree and this is important. But what kind of testing? Would end-to-end tests be enough i.e. separated env with data set and Postman? - self-hosting. Private SaaS anyone? - functionality: thanks for reminding me of the importance of loops, variables, and conditions. These can be implemented. - authentication and authorization. Definitely required for mature software!
jarirajari··on Ask HN: Problems worth solving with a low-code back end?
"are there any pre-existing low-code backend builders out there to compare to? i'm trying to think when i would use it. is it a code generator or will i just call the thing without reading the code myself?"

Backend builder like Xano that is somewhat visual builder whereas I try to do things by using text.

jarirajari··on Ask HN: Problems worth solving with a low-code back end?
yes, for example the aforementioned Xano. And thank you for throwing out the idea to implement leetcode problem solutions. This helps to compare expressive power of the functions against established programming languages!
jarirajari··on Ask HN: Problems worth solving with a low-code back end?
"Any low-code backend builder implies there is code being written." True, in my case functions form a DSL which means abstraction.

"You should consider finding business problems that need solving with no/low code solutions which will lead you to what might need to be built." Yes, I don't want to implement more functions until I know which functions would be needed.

jarirajari··on Ask HN: Problems worth solving with a low-code back end?
Good point about supporting frontend platforms like Glide! And indeed it is quite close to what I am building: https://www.xano.com/technology/ and it seems that they are doing it with funding too "Xano has raised a total funding of $15.4M over 3 rounds from 2 investors".

What I don't like about Xano is integrating database tightly, which basically means that the data is hosted by Xano. I don't know if this is required or not. Many of the BaaS platforms do this, but I prefer just connecting and processing data and not hosting data.

jarirajari··on Ask HN: Problems worth solving with a low-code back end?
Simplified, higher-order version of it because of the DSL!
jarirajari··on Ask HN: Problems worth solving with a low-code back end?
How I see it is that Integration applications are different from what I understand as a backend: API+business_logic+Database
jarirajari··on Ask HN: Problems worth solving with a low-code back end?
Well, integration is one aspect, and there are low-code tools like node-red etc. for those use-cases. One category of low-code tools is workflow automation tools, which maybe you are describing mostly. For me, I am interested in writing the business logic using functions. And what comes to the actual backend the data flow is the "normal" one:

User <---> API <---> Business logic <---> Database

jarirajari··on Ask HN: Problems worth solving with a low-code back end?
Oh, your project is really nice! Maybe doing some marketing might bring more people to your project? I am having kind of similar issue: "What usecase did you have in mind when you were building it?" Actually, I wanted to make writing a backend as easy as it is for python developers to use Jupyter Notebook. Jupyter Notebook's UI is fantastic and great example of text-based interface although it is not only text-based.
jarirajari··on Ask HN: Problems worth solving with a low-code back end?
Interesting story! Sounds surprisingly adaptable technology, which makes me wonder why it has not been brought to this data - or maybe it has been...

And thank you for your answer: auth in terms authentication of authorization is usually the first of "hard" things when real usage is tried. Basically nothing prevents me from integrating Keycloak to my backend as functions are just higher level abstractions.

jarirajari··on Ask HN: Problems worth solving with a low-code back end?
Thank you for mentioning Lotus Notes Domino. ChatGPT gave a lot of interesting material: especially I can see some similarities between how I use functions and how Lotus Domino Notes Formula Language was used.
jarirajari··on Ask HN: Problems worth solving with a low-code back end?
The builder uses OpenAPI spec to define and implement the API. The backend aims to do what "normal" backend does: fulfills requests by executing business logic (written as functions, a form of DSL) and querying database.

The very basic example of calculating average is just another type of "hello world" example. Separated frontend like a static html page can call API with an integer sequence and gets the average as the response.

But your example of processing a form resonates, because most of the webapps are represented as some sort of forms. I will work with it to further develop the DSL. Thank you for the suggestion!

jarirajari··on State machines are wonderful tools
FSMs should be "written" visually, and they should have either hierarchical sub-states or some sort of a grouping scheme to keep complexity at a reasonable level.

FSM examples are usually too simplified, and they don't show how to manage the complexities of a real, more complex state machine.

jarirajari··on Statecharts: A Visual Formalism for Complex Systems (1987) [pdf]
I agree too. I assume that state machines (SMs) are underrated because they are used in a "wrong" way which makes building them impossible: I mean most authors focus on listing and naming all the states, but in fact, they should not do that (IMO) but rather focus on events, conditions, and actions, which cause state transitions. Secondly, they should use hierarchical grouping the reduce number of edges in the state graph.

There are concepts like workflow engines and FLUX architecture which help in designing simpler SMs. For example, by limiting state transitions to events similar to how modern microservices communicate there will be less events. And actually many workflows themselves are implemented in (smaller) state machines.

jarirajari··on Statecharts: A Visual Formalism for Complex Systems (1987) [pdf]
Was also inspired by the Statecharts long time ago, and then saw an opportunity to go deeper into how server-side web applications could be implemented as state machines, and how it would ultimately lead into easier/faster programming where correct/complex patterns emerge from events, conditions, and actions. Wrote about it here: https://jarirajari.wordpress.com/2014/01/03/ecas-hierarchica...