Jump to content
Sign in to follow this  
lynkfs

visual processing

Recommended Posts

A while ago I posted some ideas and a demo on the subject of 'nocode' or 'locode' development. The idea was to do a domain modelling exercise, and extract or generate an application from that with no or minimal coding required. The demo put a couple of the proposed models through its paces.

After that post I put the subject back in the incubator for a bit.

Sort of recently I realised that having an rtl with visual components and an ide with a form painter is a good thing to have, but only covers part of what is necessary if we need to cover process logic, or business rules, without having to resort to coding. 

Various computing packages (datamining, visual analytics etc) model business logic by providing specialised components, which can be strung together and parametrised.

I tried this approach out (using KNIME) with the following (nonsensical) example process :

"from the NorthWind database get all companies, and from the FishFacts database extract all species, collate only those entries from both datasources where the name starts with the letter 'L'  and list them. Also produce a pie-chart of all fish species showing their length in cm."

 

Capture.jpg
 

This (nonsense) process translates to the node structure above. Nodes typically can be selected from a list of available nodes and right-clicking gives parametrisation forms, f.i. the MYSQL connector asks for a host, database name, credentials etc.

Stringing these components together is a simple process in itself, and the output produces something like

Capture2.jpg

Not too bad.

 

I've coded a couple of these type of components in Smart, which works really well.

For the technical architecture I've based these on the principles of FBP (flow based programming) where every node is a webworker, and the connectors between these nodes/webworkers are defined by channel-objects. Data transfer between these nodes/channels is done by messaging. See post here.

It would be nice to extend the rtl with these types of components, including a process painter

 

Share this post


Link to post
Share on other sites

See previous post : any type of no-code / lo-code solution requires a visual ide, not only for the visual components like buttons etc but also for the non-visual process components.  Such an ide allows for both visual and non-visual components to be connected according to the principles of FBP. See previous post and link here.

To see how this would pan out, I made this proof of concept no-code / lo-code web-based ide. (Proof of concept not being a full fledged finished product, but at least gives some insights)
To diminish the strain on the brain a bit, the layout is based on the Smart ide, including the shameless reuse of its icons. 

Some highlights :
- drag and drop placement of components rather than point and select
- the usual component move and resize facilities but now including Delphi-type align options
- drag and drop fbp connections between components using jsPlumb

A quick rundown :

1) drag a button on the design pane
2) select 'Database' from the top tab-control, and drag both a grid and mySQL component on the design pane. Note the property pane is updated in realtime
3) (optionally click-select any dragged component to resize them. Select both grid and button, right-click on either for alignment options)

a.png

4) switch to the No-code tab and connect the button to the mySQL component, and the mySQL component to the grid
5) right-click the mySQL component and provide details (user-id, server, passwords etc). Not shown

b.png 

6) switch to the Preview tab and click the button

This project compiles to 63 KB (0.06 MB). Not bad

Project code here

 

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×