radva42
My library has support for @page rules, but that's actually pretty basic. I needed more advanced headers/footers and added support for in-html headers/footers like this: In your <body> you cna define headers/footers by wrapping content in a <section> tag. For example:
<body> <section> <header>... any HTML here, full CSS support</header>
<div> Some normal flow content</div>
<footer>Your footer HTML</footer>
</section>
</body>This structure is purely optional, but it's a really convinient way of designing pages with different styles in the same document. An HTML file can have any number of these sections meaning you can generate a PDF with different headers/footers.
Some other bits: It has support for 100% height that match the entire page, it can handle forced page breaks inside flexbox containers (Chrome doesn't even try ... just ignores it) and also follows page-break: avoid correctly - so it doesn't randomly split table rows for example.
I started small as a toy project, but gradually implemented full support for proper block context, flexbox layout, CSS variables, tables, etc. to the point where I have almost full support of all major CSS features (even math functions like calc(), min(), max()).
I'm cleaning up the code right now and will upload it later today or maybe tomorrow here: https://github.com/PureGoPDF
I put some pretty crude demos online about a year ago [0] ... back then the idea was to create a more general purpose no-code web app builder, but since then I decided to focus specifically on database applications.
Also putting all software in the browser doesn't necessary mean that the users have to give up control over their software and data. Maybe there's a middle ground by making it easy for the end users to run their own software in the browser. At least this is an idea I've been working on for quite some time - a self-hosted visual (no-code) software builder called FormBeaver[0] that let's users build and host their own custom database software without any code. Currently the users need to download it and run the App Builder on their own machine for it to work, but I'm hopeful that in the near future it would be possible to put it entirely in the browser thanks to WebAssembly. The one thing that's missing in the browser right now is an SQL database. I haven't found a way to run SQL in the browser.
This is something I've been working on for quite some time. The goal is to make it easy for anyone to build database apps by first defining a data structure and then creating forms and UI around it. Pretty much anything can be built with FormBolt - from very basic apps to replace excel spreadsheets to complex apps for inventory management, product management, or any custom business processes/data. This is not a tool for visual programming. Instead I think of it as a visual scaffolder - users visually create the app blueprint, which the background service uses to automatically create and deploy a fully functional web app. It offers granular user permissions and it's easy to create different forms/workflows for different user groups.
FormBolt can run locally without a centralized server (all data stored locally) or you can put it on a remote server, enable networking and have your own private cloud app.
As the title it has a visual builder and doesn't require writing any code (for the most basic apps), however writing some JS and SQL is necessary for more advanced functionality. From my experience with it so far I can say that building the usual CRM/project management/invoicing app takes a few hours (from idea to working app). In fact it takes me more time to decide what forms I need for an app than actually building it.
This is what I used to create it: - Front: VueJS & Semantic UI - Back: Golang - Database: PostgreSQL
What do you think?
For example starting with the standard CRM and invoicing apps and going to more complex apps for inventory management, product & project management - virtually any kind of database software can be built without writing code.
https://www.amazon.com/Wool-Omnibus-Kindle-Motion-Silo-ebook...
I'll try to put the demos on the site by tomorrow.
It still cannot work with any third-party APIs though, but other than that virtaully anything can be built in a matter of a few hours (maybe a day or two for the more complex and large apps).
Also I've implemented implicit workflows, where what happens is defined in the forms based on what components are inserted into it. There isn't the traditional "when A happens, do B" kind of workflows. IMO the implicit ones are much more pwoerful and flexible.
You can check it here (demos coming soon, currently one one basic tutorial): https://www.formbolt.com
An awesome sci-fi story about a software developer who wakes up in the 22nd as a computer program
That's why I don't target primarily developers, but the end-users of such apps. Of course knowing Javascript wouldn't hurt, because it opens a lot of more possibilities to further extend the entire app, but my idea was to make it possible even for non-developers to create apps for CRM, invoicing, accounting or inventory management for their needs. So in my case it's not really visual programming, but a drag-n-drop builder, which also has an integrated code editor in case the user needs it: if they know SQL, awesome - write a custom SQL and it is automatically mapped and available in the forms.
This sweet spot that you talk about between ease of use & flexibility is definitely key.
For example what I did was to code a server part in golang and use vue.js on the frontend and for the app builder. Using the web-based app builder (also 100% vue) the user can design forms. The forms are stored as serialized JSON in the database and the server renders dynamically vue.js components. It's super fast. And there's a complete freedom to design any form with a 16-column responsive grids and a lot of widgets and styling options. Forms are also nestable (thanks vue!) and completely extendable with custom JS code so it's possible to create a custom widget and then simply import it in other parts of the app.
As I said I think the shadow DOM and frameworks like vue really made the difference. I started without using such frameworks and it was not only tedious, but the resulting app wasn't very interactive and felt like a customized Excel spreadsheet attached on top of a PostgreSQL database. Now it's a completely different story - it's easy to build fully reactive apps that feel like a "normal" cloud app and are actually pleasant to use. Of course instead of spending few months designing and building it, it was created in a few hours.
So yeah... I think that drag-n-drop builders are definitely coming and will probably eliminate the need to write such apps in coming years.
I am currently using Linode, but would move to AWS if they offer a cap. 2 years ago I signed up for the free AWS and forgot about it (didn't use it at all). Ended up costing ~60$ before I found out and since then I've avoided it.
I worked a few years in a german research facility for production technology and automation a few years ago and the stuff we were working on was impressive ... to say the least.
Very smart people and a lot a discipline => it's obviously paying off.
IMHO blueprints are great for a few simple cases, but anything beyond that requires writing a plugin. And plugins are easy to create and integrate in the Admin panel.
And also the Admin panel can be made client-proof. Panels like Configurations/Themes/Plugins can be easily disabled for individual users.
Now, the hardest part would be the "Pages" section which gives too much control to the client and therefore the ability to mess up the structure of the site. This is something I am currently thinking about solving with another plugin which would allow the client to modify content, without modifying the structure of the pages.
But in general I think that the way grav handles media, assets and routing is awesome and I really enjoy working with it.
Kudos to the grav team :).
I've written a few plugins for it, one specifically for creating albums and galleries for portfolios and I think that it's easy and a straightforward process.
Show HN: Rawboost – Build and run your own CRUD app without writing code
I'll make sure to post it in the ShowHN section. :)
I never really liked dynamically-typed languages ... actually I really dislike PHP, but it was ... easy and familiar.
But after just a few days of playing with Golang it just felt right. It's a language to get shit done fast and easy ... and that's the most important thing IMHO.
And yes - I don't miss generics ... at all :>
For the last 14 months I've been working on a self-hosted server for building complex CRUD apps using drag-n-drop in the browser and building it with Go was a great decision.
I know it sounds cliche, but now I realize that it's true that the moment you stop fighing your thoughts and urges, they lose their power. I remember reading things again and aain and could not wrap my head about this concept before.
- Does the anxiety go away? No, but my relationship with the anxiety and stress changed.
IMHO Self-reflection and emotional intelligence are the most important skills one can develop. Because if you develop them, you stop being in your own way and sabotaging yourself and it leads to generally happier life.
This is what I did i nthe last 14 months: - Lay down, close my eyes and observe the sensetion of breathing in my belly. - In the beginning my mind was immediately distracted with thoughts. It took me sometimes a few minutes until I was able to realize that I have been distracted all along. Then I had to force myself to ignore the distrating thought and pay attention to my breathing. It was really hard in the beginning and my sessions lasted usually 15 minutes max. - But as I got better it became easier...now I have no problems to let go of a thought ... even a very emotiaonally charged one. It's like I have a switch in my head.
I have recommended mindfulness to all my friends and relatives and virtually none of them have made more than a few sessions. That makes me sad, because I can see what effects it can have, but there's nothing more than recommending that I can do - it's really a personal commitment.