Unify framework

Pagina: 1
Acties:
  • 2.772 views

Acties:
  • 0 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
Dit topic is afgesplitst van [Alg] Welke tools heb jij gemaakt? - deel IV

Hoi Ik wil graag een nieuw Framework laten zien, Unify Framework is vandaag Open Source gegaan. Unify is een Nieuw type framework dat het maken van software naar een heel nieuw paradigma brengt. Waarin je in het vorige paradigma veel verschillende lagen moet programmeren voor een werkende applicatie. Zijn in Unify de front end en back end geïntegreerd naar 1 geünificeerd model.

## Simplicity
An application in Unify looks like an pseudocode representation of what your application should look like. But with one difference, It actually works as an application.

## Clean
The source code of your application has never been so clean.

## Powerfull
In Unify you write less code that does more.

## Beauty
The syntax is wonderful, And stays wonderful.

## Features
Unify does have huge feature set, You can use Nodejs Modules, Client JavaScript Library's and all the Browser Api's within your unify objects.

## Cross Platform and Devices
You can run your unify application as web server, You can also compile your unify application with one npm command to a native Windows, Linux or even an Android executable ( Apple is planned ).

## Scalability

Unify Supports multi core and multi server support. So you can run your application on different cores and servers and all the Databases will stay in sync as if running it just on one server.


## Application Scalability

The complexity of your application doesn't grow when the size of your application grows.

## Server and Client side Intergration

In Unify your Server and Client side code are unified into one unified Solution. You can create Tables, Columns, Searches, Filters, Collections, RenderCollections and manipulate these without touching an database, Controller, Model or write a line of SQL.

## Security

You can secure your objects, With a new and simple security model. Which lets you describe in a simple way, In your unify object.

## Open Source

Unify is Open source. Under AGPL License. If the AGPL License doesn't suit your needs, Proprietary licenses are also available.


https://unifyjs.org/

[ Voor 79% gewijzigd door RobIII op 14-10-2022 13:13 ]


Acties:
  • +3 Henk 'm!

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

kajdijkstra schreef op zondag 9 oktober 2022 @ 18:49:
Hoi Ik wil graag een nieuw Framework laten zien, Unify Framework is vandaag Open Source gegaan. Unify is een Nieuw type framework dat het maken van software naar een heel nieuw paradigma brengt.
Leuk, die marketing blurb. Kan je uitleggen hoe jouw framework de bestaande frameworks vervangt?

Als iemand die een MM cloud environment ontwikkelt ben ik vooral benieuwd naar je scalability solutions.

[ Voor 13% gewijzigd door AtleX op 10-10-2022 08:55 ]


Acties:
  • +4 Henk 'm!

  • Stukfruit
  • Registratie: Oktober 2007
  • Niet online
@kajdijkstra:

Wat hierboven ook al wordt gezegd op een andere manier: ik heb werkelijk geen idee wat je hier probeert aan te bieden. En als ik op je link klik zie ik ook weinig waar ik veel wijzer van word zonder eerst 10 lagen verder te klikken.

Probeer eens te laten zien wat jouw idee oplost binnen 25 regels code?

En als je dan toch al bezig bent: waarom is jouw idee beter dan bestaande oplossingen? Liefst in 3 korte regels en zonder marketingwoorden ;)

[ Voor 37% gewijzigd door Stukfruit op 09-10-2022 21:20 ]

Dat zit wel Schnorr.


Acties:
  • +4 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 01:12

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Ik heb na het bekijken van de 'website' (die maar half af lijkt) en het downloaden van een zip nog steeds werkelijk waar geen idee wat het is, wat het voor moet stellen, welk probleem 't oplost... En waarom staat de code niet op een een wat meer gangbare plek als github, gitlab, bitbucket... ? Waarom zit in de zipfile een SSL certificaat voor unifyjs.org én een private key? 8)7 Ook van de documantion.pdf word ik geen steek wijzer. Ik zie overal onsamenhangende flarden code maar nergens wat. het. is.

[ Voor 30% gewijzigd door RobIII op 09-10-2022 22:11 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
Stukfruit schreef op zondag 9 oktober 2022 @ 21:13:
@kajdijkstra:

Wat hierboven ook al wordt gezegd op een andere manier: ik heb werkelijk geen idee wat je hier probeert aan te bieden. En als ik op je link klik zie ik ook weinig waar ik veel wijzer van word zonder eerst 10 lagen verder te klikken.

Probeer eens te laten zien wat jouw idee oplost binnen 25 regels code?

En als je dan toch al bezig bent: waarom is jouw idee beter dan bestaande oplossingen? Liefst in 3 korte regels en zonder marketingwoorden ;)
Bedankt voor de kritiek, Ik heb de Ssl verwijderd en ik heb de README aangepast. Die verwijst nu naar waar je applicatie staat. De rest is allemaal deel van het Framework zelf. Wat het Framework doet:

Het is een totaal Framework, Het is moeilijk te beschrijven omdat het totaal nieuw is. Normaal heb je server code en client code. Deze zijn afzonderlijk. De server stuurd een Client file naar je browser. De client communiceerd daarna met de server, Meestal via een Model View Controller Systeem. Je Schrijft verschillende lagen (Bestanden) Server code, En Verschillende lagen (Bestanden en objecten) Server code.

In Unify dit is helemaal Geünificeerd. Dat wil zeggen, Je hebt 1 boomstructuur met Unify objecten, Dit zijn ES6 javascript objecten. Deze Objecten beschrijven je hele applicatie. Dan Wanneer je de server start, Deze code word gebruikt voor de Server Side Nodejs Maar tegelijk Client side word dezelfde code gebruikt voor Browser Javascript.

Nu Hoe maak je nu dan je Applicatie?
Je beschrijft Tables en Columns, Dan kan je deze weer extenden in andere ES6 Unify objecten. Die ge-extende objecten kan je styling geven en events, En alles wat je will. En deze kan je weer toevoegen aan andere unify objecten die dan Bijvoorbeeld een pagina vormen.

Bijvoorbeeld als je in een unify object een Unify table extend, En dit rendered. Zullen er alleen maar input velden naar de browser worden gerendered. Er is geen verschil tussen je Logic en je Lay out in eerste instantie. Nu kan je deze nieuwe Unify objecten die functioneren als pagina bijvoorbeeld met grid, En labels etc elke vormgeving geven die je wil. Je kan deze objecten Permissions geven. Want een Unify object dat een table extend heeft automatisch alle functionaliteid om je object op te slaan, te verwijderen etc.

Het is een uiterst schone en mooie manier om je hele software applicatie vorm te geven. Je hebt dus 1 boom met unify objecten die server en client side worden gebruikt voor je applicatie. De server heeft exact hetzelfde object als je client (Browser).

Je kan ook renderCollections en collections gebruiken. Je kan query's uitvoeren zonder sql schrijven. Je kan in een Unify object ook node-modules aanroepen en gebruiken via een process function, In de Events kan je gebruik maken van alles wat javascript te bieden heeft, Inclusief alle browser Api's, je kan hier ook externe libraries importeren.

Alles in Unify is Dynamisch, Bijvoorbeeld, Als je inlogt of uitlogt dan worden alle functie's on the fly uitgevoerd, Dus zonder pagina reload, Worden elementen verborgen of getoond als je dit hebt geprogrammeerd.

Ook de sql functies zijn dynamisch dus als je bijvoorbeeld een row delete, toevoegt of update. Kan je ivm Await, wachten tot het klaar is en weer andere javascript code uitvoeren. Alles in unify werkt op deze manier ook de renderCollections etc.

Bijvoorbeeld de website (unifyjs.org) die waar je de Unify documentatie draait ook helemaal in Unify. En De code die je als eerst op de Frontpage ziet is een volledige applicatie en helemaal niet onsamenhangend.

Ook is je applicatie met 1 commando te compilen naar Native executable voor Windows of Linux. In windows bijvoorbeeld een .exe, Die dan een windowed Applicatie je Unify applicatie draaid. Dus dezelfde code die je als website draait is ook direct een applicatie.


Nu het is een project dat ik zelf gemaakt heb en veel werk is geweest, Ik Ben Erg dankbaar voor kritiek, Want alleen zie je niet alles.

Ik hoop dat ik hier voldoende heb kunnen uitleggen om enigszins te beschrijven wat Unify is.

[ Voor 5% gewijzigd door kajdijkstra op 11-10-2022 12:05 ]


Acties:
  • +1 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
Stukfruit schreef op zondag 9 oktober 2022 @ 21:13:
@kajdijkstra:

Wat hierboven ook al wordt gezegd op een andere manier: ik heb werkelijk geen idee wat je hier probeert aan te bieden. En als ik op je link klik zie ik ook weinig waar ik veel wijzer van word zonder eerst 10 lagen verder te klikken.

Probeer eens te laten zien wat jouw idee oplost binnen 25 regels code?

En als je dan toch al bezig bent: waarom is jouw idee beter dan bestaande oplossingen? Liefst in 3 korte regels en zonder marketingwoorden ;)
25 regels is mij niet gelukt maar hier is een werkend comment systeem in Unify.

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import datatype                 from '/unify/datatype.js';

import input                    from '/elements/input.js';

import textarea                 from '/elements/textarea.js';

import renderCollection         from '/unify/renderCollection.js';

import table                    from '/unify/table.js';

import collection               from '/unify/collection.js';

import button                   from '/elements/button.js';

import user                     from '/user/user.js';

import groups                   from '/user/group/user.group.permission.js';


class title extends input {

    datatype            = datatype.VARCHAR;

    useCustomElement    = true;

}

class body extends textarea {

    datatype            = datatype.VARCHAR;

    useCustomElement    = true;

}


class comment extends table{

    //author                = new user();
    
    title               = new title();

    body                = new body();

}

class commentsMessages extends renderCollection { 

    flexFlow        = "column";

    debug           = true;

    // css here

    afterLoad() {

        this.sync();

    }

    permission() {

        this.allow( groups.visitor, "READ" );
    
        this.allow( groups.member, "READ" );

        this.allow( groups.admin, "READ" );

    }

}


class saveButton extends button {

    label   = "save";

    // css here

    async click( event ){

        // save table
        var result = await this.parent.save();

        // sync renderCollection
        this.parent.parent.commentsMessages.sync();
        
    }

}

class editComment extends comment{

    display             = "flex";

    flexFlow            = "column";

    // css here

    debug               = true;

    saveButton          = new saveButton();

    permission() {

        this.allow( groups.visitor, "WRITE" );

    }
    
}

export default class commentsPage{

    // css here

    commentsMessages    = new commentsMessages( editComment,  new collection( comment ) );

    editComment         = new editComment();

}

Acties:
  • +3 Henk 'm!

  • Stukfruit
  • Registratie: Oktober 2007
  • Niet online
kajdijkstra schreef op maandag 10 oktober 2022 @ 17:02:
Deze code word gebruikt voor de Server Side Nodejs Maar tegelijk Client side word dezelfde code gebruikt voor Browser Javascript.
Maar wat kun jij met Unify, op de laag die concepten aan elkaar lijkt te koppelen na, meer dan met bijvoorbeeld Gatsby en Next.js?
Er is geen verschil tussen je Logic en je Lay out in eerste instantie.
Hoe houdt dit je code maintainable? Hoe voorkomt Unify spaghetti? Hoe wordt het testbaar gemaakt zonder steeds alles handmatig te moeten doorlopen?
...kan je deze nieuwe Unify objecten die functioneren als pagina bijvoorbeeld met grid, En labels etc elke vormgeving geven die je wil.
Met MDX + remark en rehype kun je datzelfde met meer flexibiliteit terwijl de content zelf zo schoon en leesbaar mogelijk blijft, wat handiger is omdat je vaak toch net wat meer mogelijkheden wil hebben dan een framework aanbiedt en daardoor als ontwikkelaar júist aan de slag moet met hackwerk.

Dat doet mij eraan denken dat Unify vooral bedoeld is voor bijvoorbeeld snelle en simpelere dashboard-achtige apps. Klopt dat?
Je zult waarschijnlijk niks begrijpen van wat ik net verteld heb maar het is een uiterst schone en mooie manier om je hele software applicatie vorm te geven.
Members only:
Alleen zichtbaar voor ingelogde gebruikers. Inloggen


Wat ik zie is iemand die zich speciaal registreert om iets te posten waar hij 50 euro per maand mee wil verdienen, die redelijk nieuw en fris (als in: jong) overkomt. Niet nieuw op dit forum, maar wel (relatief) nieuw in de wereld van softwareontwikkeling en promotie.

Daar is niets mis mee. Maar ik zou je toch aanraden om iets kritischer naar dingen te gaan kijken voordat je focust op marketing.

Mijn tip om te proberen je product begrijpbaar te maken binnen 3 regels was trouwens serieus. Jouw tekst is een valkuil waar heel veel technische mensen over vallen ;)

Goede en informatieve promotieteksten schrijven is een vak op zich.

Dat zit wel Schnorr.


Acties:
  • +1 Henk 'm!

  • SPee
  • Registratie: Oktober 2001
  • Laatst online: 19:04
RobIII schreef op zondag 9 oktober 2022 @ 22:01:
Ik heb na het bekijken van de 'website'
Jullie krijgen een website te zien :?
Bij mij krijg ik niet meer te zien dan een draaiende logo. 8)7


Hint voor @kajdijkstra: een corporate proxy blokkeert alles wat niet op de standaard web poorten draait. Dus die websocket verbinding werkt niet.

let the past be the past.


Acties:
  • 0 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
SPee schreef op maandag 10 oktober 2022 @ 18:23:
[...]


Jullie krijgen een website te zien :?
Bij mij krijg ik niet meer te zien dan een draaiende logo. 8)7


Hint voor @kajdijkstra: een corporate proxy blokkeert alles wat niet op de standaard web poorten draait. Dus die websocket verbinding werkt niet.
Bedankt voor de tip. Word erg gewaardeerd. Ik zal binnenkort een Ajax fallback maken. Zodat wanneer er geen socket verbinding kan worden gemaakt ajax word gebruikt.

Update: Ik heb Ajax ondersteuning toegevoegd, Er word nu Ajax gebruikt wanneer de socket verbinding niet werkt, Dus als het goed is kan je nu ook achter je corporate proxy Unify benaderen.

[ Voor 19% gewijzigd door kajdijkstra op 12-10-2022 11:47 ]


Acties:
  • 0 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
Stukfruit schreef op maandag 10 oktober 2022 @ 17:38:
[...]
Hoe houdt dit je code maintainable? Hoe voorkomt Unify spaghetti? Hoe wordt het testbaar gemaakt zonder steeds alles handmatig te moeten doorlopen?
Elk Unify object Representeert een fysiek element in je applicatie. Elk Unify object moet je zien als een soort cell, Een Unify object heeft een styling, Events, Kan andere Unify objecten manipuleren Realtime, Kan node-modules uitvoeren, En kan ook Browser librarie's uitvoeren. Je kan Geavanceerde native Rendered super smooth scripted events uitvoeren. Je kan bijvoorbeeld ook fysieke eigenschappen geven, Want een unify object heeft ook een render Loop. Dit is een voorbeeld:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class button extends icon{

    width       = 100;

    background  = "white";


    click() {

        this.background = "green";

    }

    render() {

        this.width = Math.sin( this.time * 10 ) + 10;

    }

}


Dus je bent in Unify gedwongen om je applicatie helemaal op te bouwen uit een soort cell achtige constructies. Maar elk Unify object heeft weer andere Unify objecten als child. Hier een iets geavanceerder voorbeeld:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
class closeIcon extends icon{
    
    // css
    mouseover() {

        await this.animate();

        this.hide();

    }


    async highlight() {

        var resizeAnimation = this.createAnimation("resize");

        var key = moveAnimation.createKeyFrame( 0 );

        key.setProperty( "width", 100 );

        var key = moveAnimation.createKeyFrame( 50 );

        key.setProperty( "width", 200 );

        var key = moveAnimation.createKeyFrame( 100 );

        key.setProperty( "width", 200 );


        var moveAnimation = this.createAnimation("move");

        var key = moveAnimation.createKeyFrame( 0 );

        key.setProperty( "left", 100 );

        var key = moveAnimation.createKeyFrame( 50 );

        key.setProperty( "left", 200 );

        var key = moveAnimation.createKeyFrame( 100 );

        key.setProperty( "left", 200 );


        await resizeAnimation.play("2s");

        await moveAnimation.play("1s");



        this.background = "yellow";

    }

}

class label{
    
    // css

    // events

}


class button{

    closeIcon   = new closeIcon();

    label       = new label();

    click() {

        this.closeIcon.show();

        this.closeIcon.background   = "green";

        this.closeIcon.highlight();

    }

}


Zoals je ziet is er veel aan de hand. Maar de code blijft altijd mooi simpel en compact, Maar is ondanks dat erg krachtig. Door deze cell-achtige vormgeving zijn Unify objecten ook compleet modulair by default.
Stukfruit schreef op maandag 10 oktober 2022 @ 17:38:
[...]
Maar wat kun jij met Unify, op de laag die concepten aan elkaar lijkt te koppelen na, meer dan met bijvoorbeeld Gatsby en Next.js?
Het is niet zozeer dat deze Functionaliteit met andere bestaande Frameworks niet te realiseren zijn, Het is alleen het gemak, En zoals hier boven beschreven de schoonheid en Maintainability. En, Ja, er zullen altijd andere oplossingen zijn. Zoals er verschillende auto's zijn waar je in kan rijden, Of verschillende Vrachtwagens waar je mee kan vervoeren zullen er verschillende Software Oplossingen zijn om de software te realiseren.

[ Voor 12% gewijzigd door kajdijkstra op 12-10-2022 19:47 ]


Acties:
  • +6 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 01:12

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Ik merk, en zie, dat je steeds naar code moet grijpen om je verhaal te ondersteunen. Los van dat ik er nog steeds geen jota van begrijp (wat is een 'cell' :? ) ben je veel en véél te veel met code bezig; een salespitch (los van aan coders die na je initiële pitch je aandacht hebben) moet dat niet nodig hebben. Als jij niet eenvoudig in 30 seconden kunt uitleggen wat je product is, en doet, ben je je publiek al kwijt voordat je ze bundels documentatie en code kunt voorschotelen.

Vertel nou eens, in één alinea, wat 't is, wat 't doet, waar ik 't voor nodig heb zonder allerlei abstracte termen die vaag iets beschrijven. Dit is, voor mij althans, veel te abstract. En kom daarna eens met een, stap voor stap, quickstart hoe ik in een handomdraai een 'hello world' maak in je framework; er van uit gaande dat ik op een kaal systeem met <whatever> OS zit.

[ Voor 36% gewijzigd door RobIII op 12-10-2022 19:35 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 22:41
kajdijkstra schreef op woensdag 12 oktober 2022 @ 19:06:
[...]


Elk Unify object Representeert een fysiek element in je applicatie. Elk Unify object moet je zien als een soort cell, Een Unify object heeft een styling, Events, Kan andere Unify objecten manipuleren Realtime, Kan node-modules uitvoeren, En kan ook Browser librarie's uitvoeren. Je kan Geavanceerde native Rendered super smooth scripted events uitvoeren. Je kan bijvoorbeeld ook fysieke eigenschappen geven, Want een unify object heeft ook een render Loop. Dit is een voorbeeld:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class button extends icon{

    width       = 100;

    background  = "white";


    click() {

        this.background = "green";

    }

    render() {

        this.width = Math.sin( this.time * 10 ) + 10;

    }

}


Dus je bent in Unify gedwongen om je applicatie helemaal op te bouwen uit een soort cell achtige constructies. Maar elk Unify object heeft weer andere Unify objecten als child. Hier een iets geavanceerder voorbeeld:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
class closeIcon extends icon{
    
    // css
    mouseover() {

        await this.animate();

        this.hide();

    }


    async animate() {

        var resizeAnimation = this.createAnimation("resize");

        var key = moveAnimation.createKeyFrame( 0 );

        key.setProperty( "width", 100 );

        var key = moveAnimation.createKeyFrame( 50 );

        key.setProperty( "width", 200 );

        var key = moveAnimation.createKeyFrame( 100 );

        key.setProperty( "width", 200 );


        var moveAnimation = this.createAnimation("move");

        var key = moveAnimation.createKeyFrame( 0 );

        key.setProperty( "left", 100 );

        var key = moveAnimation.createKeyFrame( 50 );

        key.setProperty( "left", 200 );

        var key = moveAnimation.createKeyFrame( 100 );

        key.setProperty( "left", 200 );


        await resizeAnimation.play("2s");

        await moveAnimation.play("1s");



        this.background = "yellow";

    }

}

class label{
    
    // css

    // events

}


class button{

    closeIcon   = new closeIcon();

    label       = new label();

    click() {

        this.closeIcon.show();

        this.closeIcon.background   = "green";

        this.closeIcon.animate();

    }

}


Zoals je ziet is er veel aan de hand. Maar de code blijft altijd mooi simpel en compact, Maar is ondanks dat erg krachtig. Door deze cell-achtige vormgeving zijn Unify objecten ook compleet modulair by default.


[...]


Het is niet zozeer dat deze Functionaliteit met andere bestaande Frameworks niet te realiseren zijn, Het is alleen het gemak, En zoals hier boven beschreven de schoonheid en Maintainability. En, Ja, er zullen altijd andere oplossingen zijn. Zoals er verschillende auto's zijn waar je in kan rijden, Of verschillende Vrachtwagens waar je mee kan vervoeren zullen er verschillende Software Oplossingen zijn om de software te realiseren.
Dus eigenlijk heb je een soort van java awt gemaakt? Enig idee waarom dat heel veel mensen daar niet meer mee werken? >:) Ik sluit mij verder bij @RobIII. Het is zelfs vanuit een developer oogpunt totaal niet duidelijk. Wat, hoezo en voor waarom ik dit zou willen gebruiken? Als er iets is dat wel gescheiden werelden zijn dan is het wel front end backend dev. Door die te mixen ga je onheroepelijk problemen introduceren. En tot nu toe, zoas @RobIII ook al zegt, hebben we nog geen echte goede voorbeelden gezien waarom dit framework bestaansrecht heeft anders dan bij de gratie kajdijkstras

[ Voor 7% gewijzigd door Webgnome op 12-10-2022 19:50 ]

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
Webgnome schreef op woensdag 12 oktober 2022 @ 19:48:
[...]


Dus eigenlijk heb je een soort van java awt gemaakt? Enig idee waarom dat heel veel mensen daar niet meer mee werken? >:) Ik sluit mij verder bij @RobIII. Het is zelfs vanuit een developer oogpunt totaal niet duidelijk. Wat, hoezo en voor waarom ik dit zou willen gebruiken? Als er iets is dat wel gescheiden werelden zijn dan is het wel front end backend dev. Door die te mixen ga je onheroepelijk problemen introduceren. En tot nu toe, zoas @RobIII ook al zegt, hebben we nog geen echte goede voorbeelden gezien waarom dit framework bestaansrecht heeft anders dan bij de gratie kajdijkstras
Unify is een nieuw soort Framework.

Wat is Unify?

Unify is een nieuw soort Framework. Met Unify kun je een applicatie bouwen die met een frontend en een backend zonder dat je ooit een backend en frontend verschillende lagen hoeft te programmeren. Je programmeert 1 tree met unify objecten:

De unify objecten beschrijven fysieke elementen in je applicatie. De hele boom van unify objecten beschrijft je hele applicatie. Elk Unify object kun je zien als een cell, zoals je lichaam cellen heeft. Elk Unify object heeft verschillende eigenschappen Namelijk: Styling, Events en children. Dat creerd een boom van Unify objecten. Met 1 Unify object als root, en children, en elke child heeft ook weer children dat zijn ook Unify objecten.

Unify objecten zijn modulair, dus je kunt elk Unify object zonder aanpassing ook weer child maken van een ander Unify object.

Nu hoe maak je nu bijvoorbeeld menu's, pagina's en meer geavanceerde systemen zonder backend en MVC?

Hiervoor gebruiken we speciale Unify objecten, Tables en columns.
Een Unify table is een normaal Unify object die het "table object" extend. Dit maakt een unify object een Unify table object. Een andere verplichting is dat een unify table object columns moet hebben. Unify table objecten kun je gebruiken om informatie op te slaan en op te vragen. Je kan rijen creëren, Je kan rijen verwijderen en wijzigen.

Nu om een table rij te creëren maak je een Unify object en Extend je met dat object een table. Nu wanneer je dit object initialiseert heeft dit Unify object geen id (Tenzij je dit zelf zet). Als je nu het object opslaat zal Unify een een nieuwe rij generen omdat er nog geen id aanwezig is. Nu heb je dus een lege table-row gecreëerd, en daarom heeft je Unify table object een id gekregen. Wanneer je nu een column waarde wijzigt en daarna dit object weer opslaat zal deze waarde opgeslagen worden.

Wanneer je een Unify table initialiseert met een id, en je gebruikt de sync functie op dit Unify table object dan zal unify de columns waardes ophalen van de server en je unify object synchroniseren met de server.

Als je een Unify object initialiseert met een id en dan de delete functie gebruikt zal deze rij worden verwijdert.

Dit is hoe de Unify tables werken.

Nu hoe kan ik dan bijvoorbeeld meerdere rijen laten zien?

Hiervoor gebruiken we Collections en RenderCollections:

Je kunt een Collection maken van een Eerder gemaakte Unify table object. Je kunt deze renderen doodmiddel van het Unify renderCollection object. Deze heeft als argument een collection, Maar om te beschrijven hoe de unify objecten gerendered moeten worden, Moet je ook een 2e argument aan de renderCollection geven, dit is ook weer een unify object die ook Hetzelfde Unify table object extend als die je in de collection hebt gedaan, dit object extend dus deze table object en kun je layout geven, en events etc.

Dit was om je table row een layout te geven, om een table column speciale layout te geven, maak je een nieuw unify object aan en extend je de originele column. Nu kun je dit nieuwe unify object Styling geven, Events etc. alles wat unify te bieden heeft.

Nu kun je met dit nieuwe table column object wat je net gecreëerd hebt de bestaande overiden in het unify table object dat we beschreven.

Dus dit Unify object beschrijft de layout en functionaliteit van elke rij en column. Je kunt ook extra unify objecten toevoegen etc. Zo worden rijen gerendered doodmiddel van renderCollections.

RenderCollections hebben nog meer speciale eigenschappen, Je kunt bijvoorbeeld een searchQuery beschrijven. Hiermee kun je heel specifieke zoek algoritmes samenstellen om exact die rijen te renderen die jij wil renderen. Ook kun je De hoeveelheid, de volgorde, en waar op moet worden gesorteerd instellen.

Dit is dus hoe je rijen met unify table objects rendered.

En table joins dan? Hoe kan ik een unify-table koppelen aan een andere table.

Dit doe je ook door middel van collections, Je kunt een unify table object simpele columns geven zoals hierboven beschreven deze hebben 1 waarde. Maar je kunt een table object ook een collection als column geven. Deze collection heeft als argument een andere unify table object. Dus je hebt een unify table object met een column dat dat dan weer een collection van een andere unify table objecten is.

Deze collection kun je dan weer gebruiken wanneer je een table row rendered met de renderCollection, om weer andere renderCollections daarin te renderen etc.

Nu je alles kan manipuleren, hoe kan ik ervoor zorgen dat niet iedereen alles kan manipuleren?

Hiervoor is het Unify permission model, hier kun je voor elke gebruiker instellen welke actie's (Write, Read, Process of Delete) die wel of niet mag doen. Je kunt een hele groep gebruikers recht geven. Maar je kunt ook een unify object een gebruiker als column geven. En dan kun je die specifieke gebruiker rechten geven. Je kunt ook een collectie met gebruikers rechten geven.

Zo heb je dus aan asynchrone interactieve boom van unify objecten, Waarmee je on the fly met 1 boom van unify objecten een complete applicatie kan renderen. De frontend draait helemaal in javascript Es6 en je kunt dat in alle events gebruiken, de server side gebruikt ook Es6. Je programmeert niet server of client side, Maar 1 boom die beide beschrijft. Dus Unify leest 1 boom met unify objecten en gebruikt dat om de server en de client te draaien.

Er zijn nog een heleboel aspecten en functionaliteiten die ik hier achter wege heb gelaten. Maar dit is voor nu een minimale beschrijving van wat Unify doet.

Ik zal Proberen om een kort pakkende text te beschrijven wat Unify is en uniek maakt. Hier heb ik tijd voor nodig.

Acties:
  • +2 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
RobIII schreef op woensdag 12 oktober 2022 @ 19:30:
Vertel nou eens, in één alinea, wat 't is, wat 't doet, waar ik 't voor nodig heb zonder allerlei abstracte termen die vaag iets beschrijven. Dit is, voor mij althans, veel te abstract.
## Clean
The source code of your application has never been so clean.

## Powerfull
In Unify you write less code that does more.

## Beauty
The syntax is wonderful, And stays wonderful.
Geen enkel project ooit heeft als doel gehad om respectievelijk vieze code, veel code en lelijke syntax nodig te hebben, dus dit zegt gewoon helemaal niets.

{signature}


Acties:
  • +1 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
kajdijkstra schreef op donderdag 13 oktober 2022 @ 10:10:
[...]

Unify is een nieuw soort Framework.

Wat is Unify?

[lappen tekst]

Ik zal Proberen om een kort pakkende text te beschrijven wat Unify is en uniek maakt. Hier heb ik tijd voor nodig.
Begin maar eerst met die pakkende tekst.
Om heel eerlijk te zijn over de lange teksten: Deze lezen alsof een of andere GPT AI bezig is geweest en ik weet daarom niet zeker of je mij als lezer in de maling neemt.

{signature}


Acties:
  • +1 Henk 'm!

  • amphora
  • Registratie: December 1999
  • Laatst online: 23:03

amphora

Websites & Fotografie

Als ik op een link klik en ik zie helemaal geen content alleen maar een paar UI elementen dan haak ik al af, sorry. (Safari MacOS en iOS). Ja Chrome/Firefox werkt maar als je eigen site al niet cross platform is dan schept dat geen vertrouwen.

[ Voor 16% gewijzigd door amphora op 13-10-2022 10:20 ]

nickdekruijk.nl Websites & Fotografie, Sony A7CII, 20-70, 85/1.8, 45/1.8, Fuji X-T3, 10-24, 18-55/2.8-4, 35/1.4, 50-230, DJI Mini 3 pro, 16" MacBook Pro M1 Max


Acties:
  • +5 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 01:12

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Laat ik voorop stellen: Dank voor je uitleg, alwéér. En dank voor je geduld. Wordt gewaardeerd. d:)b

Maar ook hier in dit verhaal begin je weer meteen over tables en rijen en id's en collections en rendercollections en objecten en extenden daarvan (wat volgens mij overigens door de meesten anders begrepen / uitgelegd wordt dan jou; ik denk dat de meesten aan polymorphisme denken en jij lijkt 't eerder te hebben over composition ofzo). En nog steeds is het een, voor mij althans, hak-op-de-tak, warrig verhaal waar niet echt een rode lijn in zit en ik ben nog steeds na 't lezen van die hele lap tekst geen steek wijzer. Het spijt me. Misschien ligt 't aan mij hoor.

En mocht dit een heikel punt blijven, misschien kun je dan eens overwegen een (zoals eerder aangehaalde) tutorial, een "quick start", ergens neer te zetten*. Iets waarmee een geïnteresseerd iemand in een paar minuten een "hello world" kan opzetten en waarbij de voordelen van je framework dan natuurlijk mooi uit de verf komen. Of misschien een YouTube filmpje waarin je een korte presentatie doet en overal overheen gaat in vogelvlucht.

De unify site is eigenlijk precies zoals 't hier in dit topic gaat. Ik kom meteen uit in de documentatie waar ik meteen alle ins- en outs van allerlei objecten kan vinden etc. maar ik zie nergens het grotere plaatje, een introductie, hoe je framework in elkaar zit of gebruikt zou moeten worden.

Overigens zitten er in /native/ssl-cert, /android/ssl-cert en /android/framework/server/ssl-cert nog steeds private keys 8)7 Je snapt dat alles dat daarmee (en de vorige private key, als dat een andere was) gesigned is de prullenbak ik kan?

* Edit: Ik zie nu dat je wél een "quick start" hebt maar die staat ergens halverwege je documentatie en niet op een plek waar je 't zou verwachten - ergens als 1 van de eerste items in je 'index'.

Edit 2: En ik zie dat je 'm nu naar boven hebt verplaatst - ik zou heel die ToC eens even nalopen en op logische(re) volgorde zetten. Also:
Installation
To install unify please head over to the "Download and Installation" in the (top of the) menu on the left side.
In plaats van me te verwijzen naar waar ik ergens moet klikken en mij te laten zoeken - waarom maak je niet gewoon een link van die tekst :? Verder zou ik ook m'n engels eens oppoetsen als ik jou was:
getID
This method gives back returns the id of the current object or false when there is no id present. Id's are an a central part of the unify objects. Unify objects that extends an a table class has have an id and corresponds to a row in the db, both when joined or when it is an they are a table row. When such an a unify object doesn't have an id and it is synced ( Look at refer to the sync method ). The server will create an a new id, Even when the object is still empty / untouched unmodified.

Return value
ID A An Integer containing the id of the object or boolean "false" when there is no id yet.
Examples
Vooral a <-> an doe je bijna consistent verkeerdom.

[ Voor 75% gewijzigd door RobIII op 13-10-2022 16:26 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
RobIII schreef op donderdag 13 oktober 2022 @ 11:00:
[...]

Overigens zitten er in /native/ssl-cert, /android/ssl-cert en /android/framework/server/ssl-cert nog steeds private keys Je snapt dat alles dat daarmee (en de vorige private key, als dat een andere was) gesigned is de prullenbak ik kan?
Bedankt voor het melden, Ik heb het certificaat ook daar verwijdert. En zal hem inderdaad vernieuwen.

Acties:
  • 0 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
@kajdijkstra
Je zult aandachtiger naar de presentatie (op het web) moeten kijken.
Kijk eens wat anderen doen, hoe zij hun spullen aan de man brengen.

Ga er eens met mensen aan zitten voor wie dit nieuw is en kijken hoe zij daarop reageren.

Ken je iemand die met commercie bezig is, dan haal die er eens bij.

En vooral voor jezelf zou het sneu zijn als al dat werk voor niets was.

Wie du mir, so ich dir.


Acties:
  • +1 Henk 'm!

  • Stukfruit
  • Registratie: Oktober 2007
  • Niet online
eheijnen schreef op donderdag 13 oktober 2022 @ 12:24:
En vooral voor jezelf zou het sneu zijn als al dat werk voor niets was.
Een beetje programmeur heeft een verleden met > 50% aan weggegooide code, toch?

Vind ik niet sneu. Leer je juist van :Y

Dat zit wel Schnorr.


Acties:
  • +2 Henk 'm!

  • Stukfruit
  • Registratie: Oktober 2007
  • Niet online
En @kajdijkstra:

Wat ik trouwens in de voorbeelden zie is boilerplate code. Het direct benaderen van losse CSS-properties zie ik niet als feature maar als een instant recept voor een inconsistente UI.

Maar vooral dit is belangrijk: in één van de gratis frameworks met een (bestaande) community voor het fixen van bugs, zijn exact dezelfde dingen out of the box te doen via bv. JSX ("cell" == component) / JS-in-CSS. Terwijl ik dan niet afhankelijk ben van 1 of 2 personen die zichzelf voor 50 euro per maand een burnout in moeten werken als ik dit commercieel zou willen gebruiken.

Nu speel ik natuurlijk een beetje advocaat van de duivel omdat je er geld voor vraagt, want ik vind het wél goed dat je duidelijk ondernemend bent en inderdaad blijft proberen, dus laat je alsjeblieft ook niet door een reactie zoals die van mij uit het veld slaan!

[ Voor 9% gewijzigd door Stukfruit op 13-10-2022 13:38 ]

Dat zit wel Schnorr.


Acties:
  • 0 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
Stukfruit schreef op donderdag 13 oktober 2022 @ 13:32:
En @kajdijkstra:

Nu speel ik natuurlijk een beetje advocaat van de duivel omdat je er geld voor vraagt, want ik vind het wél goed dat je duidelijk ondernemend bent en inderdaad blijft proberen, dus laat je alsjeblieft ook niet door een reactie zoals die van mij uit het veld slaan!
Je gaat er ook wel best hard tegenaan hoor.
Dat is nou niet altijd de beste methode om iemand aan te drijven...

@kajdijkstra
Laat je niet kisten joh... ;)
EDIT: Oh, ja: als je iets etaleert (op het web zet) laat dan goed zien waarom jouw framework de betere keuze is en licht een aantal items eruit (sellingpoints) die de keuze attractief maken.

[ Voor 14% gewijzigd door eheijnen op 13-10-2022 14:47 ]

Wie du mir, so ich dir.


Acties:
  • +3 Henk 'm!

  • Monga
  • Registratie: Mei 2002
  • Laatst online: 20-05 14:06
eheijnen schreef op donderdag 13 oktober 2022 @ 14:37:
[...]

Je gaat er ook wel best hard tegenaan hoor.
Dat is nou niet altijd de beste methode om iemand aan te drijven...

@kajdijkstra
Laat je niet kisten joh... ;)
EDIT: Oh, ja: als je iets etaleert (op het web zet) laat dan goed zien waarom jouw framework de betere keuze is en licht een aantal items eruit (sellingpoints) die de keuze attractief maken.
Een beetje kritisch zijn op een account dat alleen is geregistreerd om zijn eigen framework te komen verkopen mag ook wel naar mijn mening...

Acties:
  • 0 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
Monga schreef op donderdag 13 oktober 2022 @ 15:32:
[...]
Een beetje kritisch zijn op een account dat alleen is geregistreerd om zijn eigen framework te komen verkopen mag ook wel naar mijn mening...
Mjaa,
Als hij 10 jaar geleden al dacht: goh, ik ga achter 10 jaar een framework introduceren op Tweakers. Kan ik beter nu al een account aanmaken anders vallen ze daarover ...... 8)

Wie du mir, so ich dir.


Acties:
  • 0 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
Stukfruit schreef op donderdag 13 oktober 2022 @ 13:32:
En @kajdijkstra:
Wat ik trouwens in de voorbeelden zie is boilerplate code. Het direct benaderen van losse CSS-properties zie ik niet als feature maar als een instant recept voor een inconsistente UI.
Je moet niet vergeten dat het Javascript objecten zijn, Dus in een echte applicatie zal je die objecten extenden. Dus stel je hebt meerdere buttons, Dan Maak je eerst een Unify object die een button representeerd. En dan extend je dat Unify object weer op andere plekken waar je buttons nodig hebt. Met als voordeel dat je ook functionaliteid kopieerd, Dus stel dat je button altijd bepaalde events heeft, Of andere functionaliteit. Dan zal je juist minder boilerplate code maken. Omdat je dat ook extend. Je kan ook nog verder gaan dus bijvoorbeeld een algemene button object maken, Dan maak je bijvoorbeeld verschillende type buttons die de algemene button extenden etc. En die extend je dan weer wanneer je een button wil renderen.

[ Voor 25% gewijzigd door kajdijkstra op 13-10-2022 16:16 ]


Acties:
  • 0 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
Monga schreef op donderdag 13 oktober 2022 @ 15:32:
[...]


Een beetje kritisch zijn op een account dat alleen is geregistreerd om zijn eigen framework te komen verkopen mag ook wel naar mijn mening...
Ik had al eerder een tweakers account. maar wou op een bepaald moment mijn geschiedenis op het internet uitwissen. Vandaar dit nieuwe account.

[ Voor 32% gewijzigd door kajdijkstra op 13-10-2022 16:34 ]


Acties:
  • +3 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

kajdijkstra schreef op donderdag 13 oktober 2022 @ 16:11:
[...]


Je moet niet vergeten dat het Javascript objecten zijn, Dus in een echte applicatie zal je die objecten extenden. Dus stel je hebt meerdere buttons, Dan Maak je eerst een Unify object die een button representeerd. En dan extend je dat Unify object weer op andere plekken waar je buttons nodig hebt. Met als voordeel dat je ook functionaliteid kopieerd, Dus stel dat je button altijd bepaalde events heeft, Of andere functionaliteit. Dan zal je juist minder boilerplate code maken. Omdat je dat ook extend. Je kan ook nog verder gaan dus bijvoorbeeld een algemene button object maken, Dan maak je bijvoorbeeld verschillende type buttons die de algemene button extenden etc. En die extend je dan weer wanneer je een button wil renderen.
Maar wat dóet het nou?

Je schrijft dus één klasse in JavaScript, en die klasse is entiteit voor je ORM, DTO voor je API, ViewModel voor display en form, én DOM-element met bijbehorende properties?

En als je de app laadt, wordt alles tegelijk binnengehaald via websockets (ik zie in ieder geval een heleboel berichten), en de history state is nep, de hele applicatie draait in de browser en na de initiële load gaat er geen request meer naar de server? (De back-knop werkt niet).

Hoe maak je een model met een property waarvoor je in een dropdown een ander, tweede model moet kunnen kiezen? Wat als ik een modal popup wil met zoekfuncties op properties van dat tweede model? Denk aan een "projecten"-view, waarbij je voor een project een bestaande of nieuwe "klantrelatie" moet kunnen selecteren? En hoe ziet dat dataverkeer eruit?

https://oneerlijkewoz.nl
Het ergste moet nog komen / Het leven is een straf / Een uitgestrekte kwelling van de wieg tot aan het graf


Acties:
  • +1 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 20-05 13:57

Dido

heforshe

@kajdijkstra Ergens zat me al iets niet lekker, maar wellicht, als je serieus iets met dat Unify wil doen, zou je eens moeten denken over de naamgeving.

De naam Unify komt namelijk al vaker voor in de wereld, onder meer in het kader van IoT, Java backend, en een CMS:

https://www.silabs.com/developers/unify-sdk
https://github.com/tcdng/unify-framework
https://www.codeclouds.com/unify-cms/

Wat betekent mijn avatar?


Acties:
  • +1 Henk 'm!

  • Stukfruit
  • Registratie: Oktober 2007
  • Niet online
eheijnen schreef op donderdag 13 oktober 2022 @ 14:37:
[...]

Je gaat er ook wel best hard tegenaan hoor.
Dat is nou niet altijd de beste methode om iemand aan te drijven...
Met zoveel toewijding om marketingteksten te genereren vermoed (hoop ;)) ik dat dat wel meevalt.

Dat zit wel Schnorr.


Acties:
  • 0 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
Dido schreef op donderdag 13 oktober 2022 @ 16:33:
@kajdijkstra Ergens zat me al iets niet lekker, maar wellicht, als je serieus iets met dat Unify wil doen, zou je eens moeten denken over de naamgeving.

De naam Unify komt namelijk al vaker voor in de wereld, onder meer in het kader van IoT, Java backend, en een CMS:

https://www.silabs.com/developers/unify-sdk
https://github.com/tcdng/unify-framework
https://www.codeclouds.com/unify-cms/
Bedankt voor de tip, Word erg gewaardeerd. Maar het blijft Unify.

[ Voor 4% gewijzigd door kajdijkstra op 14-10-2022 12:32 ]


Acties:
  • +1 Henk 'm!

  • Sito
  • Registratie: Augustus 2009
  • Laatst online: 22:41
kajdijkstra schreef op donderdag 13 oktober 2022 @ 16:11:
[...]


Je moet niet vergeten dat het Javascript objecten zijn, Dus in een echte applicatie zal je die objecten extenden. Dus stel je hebt meerdere buttons, Dan Maak je eerst een Unify object die een button representeerd. En dan extend je dat Unify object weer op andere plekken waar je buttons nodig hebt. Met als voordeel dat je ook functionaliteid kopieerd, Dus stel dat je button altijd bepaalde events heeft, Of andere functionaliteit. Dan zal je juist minder boilerplate code maken. Omdat je dat ook extend. Je kan ook nog verder gaan dus bijvoorbeeld een algemene button object maken, Dan maak je bijvoorbeeld verschillende type buttons die de algemene button extenden etc. En die extend je dan weer wanneer je een button wil renderen.
Wat is het verschil tussen Unify en een React/Angular? Waarom zou iemand voor Unify kiezen, boven deze veelgebruikte frameworks? Extenden kan ook in React/Angular namelijk.

Acties:
  • 0 Henk 'm!

  • Stukfruit
  • Registratie: Oktober 2007
  • Niet online
kajdijkstra schreef op donderdag 13 oktober 2022 @ 16:11:
[...]

Je moet niet vergeten dat het Javascript objecten zijn, Dus in een echte applicatie zal je die objecten extenden. Dus stel je hebt meerdere buttons, Dan Maak je eerst een Unify object die een button representeerd. En dan extend je dat Unify object weer op andere plekken waar je buttons nodig hebt. Met als voordeel dat je ook functionaliteid kopieerd, Dus stel dat je button altijd bepaalde events heeft, Of andere functionaliteit. Dan zal je juist minder boilerplate code maken. Omdat je dat ook extend. Je kan ook nog verder gaan dus bijvoorbeeld een algemene button object maken, Dan maak je bijvoorbeeld verschillende type buttons die de algemene button extenden etc. En die extend je dan weer wanneer je een button wil renderen.
Het is ook een beetje gemeen van mij omdat het nu makkelijk is om in een declaratief vs imperatief-discussie te vervallen. Excuus :>

En yes, net als met CSS-in-JS :p maar wat ik eigenlijk bedoelde is dat het een belangrijke feature lijkt te zijn, terwijl deze de gebruiker in zijn voet kan schieten omdat het overal mogelijk (lijkt?) te zijn om aanpassingen te doen.

Op het niveau van een lokaal object is het prima maar op app-niveau zie ik weinig om gehack te voorkomen, terwijl ik na het lezen van je promotieteksten het idee heb dat je het maken van software wil versimpelen.

Laat ik het anders verwoorden: je presenteert een framework dat dingen kan vergemakkelijken, toch? Waarom moet ik dan bijvoorbeeld dingen zoals zelf het synchroniseren van collecties zelf doen?

Je zou dus kunnen kijken of het mogelijk is om daar iets aan te doen zodat je meerwaarde kan bieden tegenover bestaand werk.

Dat zit wel Schnorr.


Acties:
  • +2 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 20-05 13:57

Dido

heforshe

Tsja, good luck in court, dan maar ;) Ik kan me nog een geintje herinneren tussen Apple en Apple.

Sowieso is het marketingtechnisch niet handig om een naam te kiezen die al (vrij breed) in gebruik is. Als de bestaande gebruiker(s) van de naam niet gaan klagen, dan gaan eventuele gebruikers van je framwork wel klagen vanwege de verwarring.

Ter illustratie, ik heb jarenlang in een (niche)taal gewerkt die kwa naam overeenkwam met een handgrepenlijn van IKEA. Dat was niet leuk als je een keer probeerde iets op te zoeken aan documentatie.

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
Stukfruit schreef op donderdag 13 oktober 2022 @ 16:35:
[...]


Het is ook een beetje gemeen van mij omdat het nu makkelijk is om in een declaratief vs imperatief-discussie te vervallen. Excuus :>

Waarom moet ik dan bijvoorbeeld dingen zoals zelf het synchroniseren van collecties zelf doen?
Ja dat was eerst ook het geval, Maar in de meeste gevallen wil je ook handmatig je renderCollections synchroniseren, Bijvoorbeeld als je op een knop drukt of een zoekveld invult etc. En je wil de gebruiker toch de keuze geven of en wanneer die dit wil doen. Soms wil je bijvoorbeeld niet bij initialisatie synchroniseren. vandaar. Dit is ook het geval met save, Ik had ervoor kunnen kiezen dat bij een keyup event je column word opgeslagen, Maar deze keuze wil je toch aan de ontwikkelaar geven.

Acties:
  • +1 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
Veel vragen.
CodeCaster schreef op donderdag 13 oktober 2022 @ 16:32:
[...]
En als je de app laadt, wordt alles tegelijk binnengehaald via websockets (ik zie in ieder geval een heleboel berichten),
Nee, Hij laad de menu's in 1 keer via de websocket, Dan wanneer je op een item klikt. Laad je die pagina via de websocket De content. Ik was ook al bezig met een cache manager om te doen wat jij suggereerd, Dit is ook in de planning. maar nu doet hij dat niet, Hij synced de objecten wanneer je op een item clicked.
ja de history state is nep. Wanneer je een object synchroniseerd maakt hij een url voor dat object. En dan wanneer je naar die url gaat, Dan showed en hide hij automatisch de juiste objecten, En vult de id in en dan synced die objecten.
CodeCaster schreef op donderdag 13 oktober 2022 @ 16:32:
[...]
de hele applicatie draait in de browser en na de initiële load gaat er geen request meer naar de server? (De back-knop werkt niet).
Deze feature is nog in de planning.
CodeCaster schreef op donderdag 13 oktober 2022 @ 16:32:
[...]
Je schrijft dus één klasse in JavaScript, en die klasse is entiteit voor je ORM, DTO voor je API, ViewModel voor display en form, én DOM-element met bijbehorende properties?
Ja, Min of meer.

[ Voor 106% gewijzigd door kajdijkstra op 14-10-2022 09:07 ]


Acties:
  • 0 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
kajdijkstra schreef op donderdag 13 oktober 2022 @ 16:51:
Veel vragen.


[...]

Nee, Hij laad de menu's in 1 keer via de websocket, Dan wanneer je op een item klikt. Laad je die pagina via de websocket De content. Ik was ook al bezig met een cache manager om te doen wat jij suggereerd, Dit is ook in de planning. maar nu doet hij dat niet, Hij synced de objecten wanneer je op een item clicked.


[...]


Deze feature is nog in de planning.

ja de history state is nep.


[...]
Als je nog significante zaken aan het ontwikkelen bent zou ik op dit moment goed afwegen om al de markt op te gaan. Het kan best zijn dat geïnteresseerden hierover struikelen en ze later, als deze onderdelen wel werken, niet meer terug komen.
Tenminste het erbij vermelden...om dit te voorkomen.

Wie du mir, so ich dir.


Acties:
  • 0 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
eheijnen schreef op donderdag 13 oktober 2022 @ 16:57:
[...]


Als je nog significante zaken aan het ontwikkelen bent zou ik op dit moment goed afwegen om al de markt op te gaan. Het kan best zijn dat geïnteresseerden hierover struikelen en ze later, als deze onderdelen wel werken, niet meer terug komen.
Tenminste het erbij vermelden...om dit te voorkomen.
Er zullen altijd weer nieuwe features bij komen. En het is nu in beta fase, Dat staat ook op de website. Het is Open source onder AGPL License.

[ Voor 9% gewijzigd door kajdijkstra op 13-10-2022 17:34 ]


Acties:
  • 0 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
kajdijkstra schreef op donderdag 13 oktober 2022 @ 17:32:
[...]


Er zullen altijd weer nieuwe features bij komen.
En misschien maak je een JunifyJS YouTube kanaal met tutorials en verdiepingen.
Als je die aan het lopen krijgt kun je daar ook nog eens lekker aan verdienen...

Wie du mir, so ich dir.


Acties:
  • +2 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 01:12

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Modbreak:Ik heb alles hierboven even afgesplitst van [Alg] Welke tools heb jij gemaakt? - deel IV


Laten we 't gezellig houden mensen; kritisch zijn mag zéker, maar laten we 't wel netjes houden.

[ Voor 15% gewijzigd door RobIII op 14-10-2022 13:14 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • +1 Henk 'm!

  • bwerg
  • Registratie: Januari 2009
  • Niet online

bwerg

Internettrol

amphora schreef op donderdag 13 oktober 2022 @ 10:19:
[...]

Als ik op een link klik en ik zie helemaal geen content alleen maar een paar UI elementen dan haak ik al af, sorry. (Safari MacOS en iOS). Ja Chrome/Firefox werkt maar als je eigen site al niet cross platform is dan schept dat geen vertrouwen.
Firefox werkt bij mij niet echt lekker:
Afbeeldingslocatie: https://tweakers.net/i/xCA4tFdZOPp8R2OuCack3ECZfbk=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/mSLDaS1xrIfBE97ILt5LjYbG.png?f=user_large

Heeft geen speciale krachten en is daar erg boos over.


Acties:
  • 0 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
bwerg schreef op vrijdag 14 oktober 2022 @ 13:23:
[...]

Firefox werkt bij mij niet echt lekker:
[Afbeelding]
Bedankt voor het melden, Ik heb het gefixed.Afbeeldingslocatie: https://tweakers.net/i/UA4-5JnaLwwmLboQdWZrGr-uv08=/800x/filters:strip_exif()/f/image/cj8MXx7HIJTaS290mB28Xwl1.png?f=fotoalbum_large

[ Voor 42% gewijzigd door kajdijkstra op 14-10-2022 14:22 ]


Acties:
  • +3 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 20-05 13:57

Dido

heforshe

Een eigen topic, dan toch maar eens door de marketing blurb((c) Atlex) fietsen dan...
Ik heb her en der in de quotes de spelling ook verbeterd. Als je marketing-teksten schrijft is het wel handig om het even door een spell-checker te halen ;) Met name de welhaast Duits Aandoende Liefde voor Hoofdletters komt schreeuwerig over ;)
kajdijkstra schreef op zondag 9 oktober 2022 @ 18:49:
## Simplicity
An application in Unify looks like an pseudocode representation of what your application should look like. But with one difference, Iit actually works as an application.
Als programmeur ben ik allergisch voor dergelijke "klinkt goed voor de manager"-uitspraken. "looks like pseudocode" -> "fuck de programmeurs, we kunnen het werk in d emik van een beheerder schuiven".

Er zijn maar een paar mogelijkheden:
* Je "pseudocode" is dusdanig eenvoudig dat je er te weinig mee kan.
* Je "pseudocode" kan heel veel, en is dusdanig complex dat je toch een programmeur nodig hebt.
* Het is onzin.

Ik heb alle drie de variaties gezien, en ze zuigen alledrie ;)
## Clean
The source code of your application has never been so clean.
Dus mijn applicatiecode is niet clean? Klinkt als een schoonmaker die ongevraagd op de stoep staat om mijn onzettend smerige huis op te knappen. Met een belediging kom je niet lekker binnen ;)
## Powerfull
In Unify you write less code that does more.
Dusssss... is dit low-code?
Zo ja, zeg dat dan (and be prepared for the shit storm that follows).
Zo nee, dan moet je het ook niet impliceren.
## Beauty
The syntax is wonderful, Aand stays wonderful.
Beauty is in the eye of the beholder.
Maar je wilt geen discussie over "mijn taal is mooier dan de jouwe", dat zijn religieuze discussies ;)
## Features
Unify does have has a huge feature set, Yyou can use Nodejs Mmodules, Client JavaScript Llibrary's and all the Bbrowser Api's within your unify objects.
Tsja, dat kan ik met andere platformen ook, dat is geen feature van het platform. De feature is dan hooguit compatibilty (mijn product kan overweg met wat de rest van de wereld gebruikt) maar dat zou haast standaard moeten gelden.
## Cross Platform and Devices
You can run your unify application as web server, You can also compile your unify application with one npm command to a native Windows, Linux or even an Android executable ( Apple is planned ).
Ok, dus niet vele slechter dan bestaande marktleiders?
## Scalability

Unify Ssupports multi core and multi server support. So you can run your application on different cores and servers and all the Ddatabases will stay in sync as if running it just on one server.
Wil ik dat wel? Hoe gaat het met concurrent updates? Wordt het scherm van gebruiker 1 real-time ververst als gebruiker 2 iets aanpast? Ik zie dat je net een screenshot geplaats hebt met het antwoord: nee dus. Blijft de vraag wat er dan gebeurt als ik een waarde naar 10 zet terwijl een andere gebruiker die naar 20 zet, een milliseconde eerder of later.
Ik heb nog wel een archiefkast met use-cases die op je afgevuurd kunnen worden als je dit soort claims maakt :)
## Application Scalability

The complexity of your application doesn't grow when the size of your application grows.
De droom! Klinkt goed, maar eerst zien, en dan geloven :)
## Server and Client side Intergration

In Unify your Sserver and Cclient side code are unified into one unified Ssolution. You can create Ttables, Ccolumns, Ssearches, Ffilters, Ccollections,RrenderCcollections and manipulate these without touching an database, Ccontroller, Mmodel or writeing a line of SQL.
Dus mijn front-end manipuleert direct mijn persistence layer? Er zijn er om minder ontslagen.
## Security

You can secure your objects, Wwith a new and simple security model. Which lets you describe in a simple way, In your unify object.
Een nieuw en simpel "security model". Dat vraagt om meer uitleg. En vooral, waarom ga je niet cashen met dat securitymodel? Klinkt alsof het goud waard is!
Zou jij zelf een voordeurslot van me kopen als ik je vertel dat ik het zelf ontworpen heb volgens een gloednieuw en heel simpel principe?


En het jammere is, ik heb nog steeds geen idee waar het nou eigenlijk over gaat. Of ik hier iets aan zou hebben. Of het ueberhaupt interessant is om tijd in te stoppen om het verder te onderzoeken.
kajdijkstra schreef op woensdag 12 oktober 2022 @ 19:06:
Elk Unify object Representeert een fysiek element in je applicatie. Elk Unify object moet je zien als een soort cell, Een Unify object heeft een styling, Events, Kan andere Unify objecten manipuleren Realtime, Kan node-modules uitvoeren, En kan ook Browser librarie's uitvoeren. Je kan Geavanceerde native Rendered super smooth scripted events uitvoeren. Je kan bijvoorbeeld ook fysieke eigenschappen geven,
Brrrrrr... ik ga ervan uit dat je niet bekend bent met Lansa of Visual Lansa (dat zou ik ook zo houden als ik jou was) maar ik heb er 9 jaar mee gewerkt. En wat je hier schrijft had zo uit de Visual Lansa documentatie kunnen komen. VL werkte ook volgens het principe dat de textbox op het scherm direct gelinkt was aan een veld in een database, en dat het hele idee van scheiding van applicatielagen een nieuwerwets waanidee was dat wel zou overwaaien.

Er is misschien een reden dat niemand in dit topic ooit van Lansa of Visual Lansa heeft gehoord ;)
Dus je bent in Unify gedwongen om je applicatie helemaal op te bouwen uit een soort cell achtige constructies. Maar elk Unify object heeft weer andere Unify objecten als child.
Nest till you drop, dus? Cool! :|

Ik krijg flashbacks naar xslt programmeren in Notepad :X
Het is niet zozeer dat deze Functionaliteit met andere bestaande Frameworks niet te realiseren zijn, Het is alleen het gemak,
Eerst is er het ongemak van het aanleren van een nieuw framework. Waar ligt het break-even point? Wat is de learning-curve?

En als ik dit kan in bestaande frameworks heb ik er wat aan op mijn CV. Over hoeveel jaar loopt mijn linked-in over van de reacties omdat ik Unify op mijn CV heb staan? (Hoewel ik eerder verwacht recruiters op mijn nek te krijgen die denken dat het Unity is en verwachten dat ik game-development doe :X )
En zoals hier boven beschreven de schoonheid en Maintainability. En, Ja, er zullen altijd andere oplossingen zijn. Zoals er verschillende auto's zijn waar je in kan rijden, Of verschillende Vrachtwagens waar je mee kan vervoeren zullen er verschillende Software Oplossingen zijn om de software te realiseren.
Schoonheid is ontzettend subjectief, en maintainability zul je moeten onderbouwen (het liefst met lange studies met twee gelijkwaardige systemen, eentje in Unify en eentje "klassiek", waarbij je kunt laten zien dat je significant minder FTE's kwijt bent aan maintenance met Unify).

En ja, er zijn verschillende auto's waarin je kunt rijden. Toch wil nog steeds niet iedereen een automaat.

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
Dido schreef op vrijdag 14 oktober 2022 @ 13:58:
Een eigen topic, dan toch maar eens door de marketing blurb((c) Atlex) fietsen dan...
Ik heb her en der in de quotes de spelling ook verbeterd. Als je marketing-teksten schrijft is het wel handig om het even door een spell-checker te halen ;) Met name de welhaast Duits Aandoende Liefde voor Hoofdletters komt schreeuwerig over ;)

[...]

Als programmeur ben ik allergisch voor dergelijke "klinkt goed voor de manager"-uitspraken. "looks like pseudocode" -> "fuck de programmeurs, we kunnen het werk in d emik van een beheerder schuiven".

Er zijn maar een paar mogelijkheden:
* Je "pseudocode" is dusdanig eenvoudig dat je er te weinig mee kan.
* Je "pseudocode" kan heel veel, en is dusdanig complex dat je toch een programmeur nodig hebt.
* Het is onzin.

Ik heb alle drie de variaties gezien, en ze zuigen alledrie ;)

[...]

Dus mijn applicatiecode is niet clean? Klinkt als een schoonmaker die ongevraagd op de stoep staat om mijn onzettend smerige huis op te knappen. Met een belediging kom je niet lekker binnen ;)

[...]

Dusssss... is dit low-code?
Zo ja, zeg dat dan (and be prepared for the shit storm that follows).
Zo nee, dan moet je het ook niet impliceren.

[...]

Beauty is in the eye of the beholder.
Maar je wilt geen discussie over "mijn taal is mooier dan de jouwe", dat zijn religieuze discussies ;)

[...]

Tsja, dat kan ik met andere platformen ook, dat is geen feature van het platform. De feature is dan hooguit compatibilty (mijn product kan overweg met wat de rest van de wereld gebruikt) maar dat zou haast standaard moeten gelden.

[...]

Ok, dus niet vele slechter dan bestaande marktleiders?

[...]

Wil ik dat wel? Hoe gaat het met concurrent updates? Wordt het scherm van gebruiker 1 real-time ververst als gebruiker 2 iets aanpast? Ik zie dat je net een screenshot geplaats hebt met het antwoord: nee dus. Blijft de vraag wat er dan gebeurt als ik een waarde naar 10 zet terwijl een andere gebruiker die naar 20 zet, een milliseconde eerder of later.
Ik heb nog wel een archiefkast met use-cases die op je afgevuurd kunnen worden als je dit soort claims maakt :)

[...]

De droom! Klinkt goed, maar eerst zien, en dan geloven :)

[...]

Dus mijn front-end manipuleert direct mijn persistence layer? Er zijn er om minder ontslagen.

[...]

Een nieuw en simpel "security model". Dat vraagt om meer uitleg. En vooral, waarom ga je niet cashen met dat securitymodel? Klinkt alsof het goud waard is!
Zou jij zelf een voordeurslot van me kopen als ik je vertel dat ik het zelf ontworpen heb volgens een gloednieuw en heel simpel principe?


En het jammere is, ik heb nog steeds geen idee waar het nou eigenlijk over gaat. Of ik hier iets aan zou hebben. Of het ueberhaupt interessant is om tijd in te stoppen om het verder te onderzoeken.
[...]

Brrrrrr... ik ga ervan uit dat je niet bekend bent met Lansa of Visual Lansa (dat zou ik ook zo houden als ik jou was) maar ik heb er 9 jaar mee gewerkt. En wat je hier schrijft had zo uit de Visual Lansa documentatie kunnen komen. VL werkte ook volgens het principe dat de textbox op het scherm direct gelinkt was aan een veld in een database, en dat het hele idee van scheiding van applicatielagen een nieuwerwets waanidee was dat wel zou overwaaien.

Er is misschien een reden dat niemand in dit topic ooit van Lansa of Visual Lansa heeft gehoord ;)

[...]

Nest till you drop, dus? Cool! :|

Ik krijg flashbacks naar xslt programmeren in Notepad :X

[...]

Eerst is er het ongemak van het aanleren van een nieuw framework. Waar ligt het break-even point? Wat is de learning-curve?

En als ik dit kan in bestaande frameworks heb ik er wat aan op mijn CV. Over hoeveel jaar loopt mijn linked-in over van de reacties omdat ik Unify op mijn CV heb staan? (Hoewel ik eerder verwacht recruiters op mijn nek te krijgen die denken dat het Unity is en verwachten dat ik game-development doe :X )

[...]

Schoonheid is ontzettend subjectief, en maintainability zul je moeten onderbouwen (het liefst met lange studies met twee gelijkwaardige systemen, eentje in Unify en eentje "klassiek", waarbij je kunt laten zien dat je significant minder FTE's kwijt bent aan maintenance met Unify).

En ja, er zijn verschillende auto's waarin je kunt rijden. Toch wil nog steeds niet iedereen een automaat.
Bedankt voor de tips, Zonder kritiek geen verbetering, maar dat waren oude teksten, Dit topic is op 1 hoop gegooid uit het "laat zien wat jij gemaakt hebt" topic. Maar deze teksten zijn al vervangen. En veel van waar je kritiek op hebt is dan ook veranderd, dus ik ben het met je eens over veel van die teksten, op https://unifyjs.org kan je zien wat de teksten nu zijn geworden.

Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 20-05 13:57

Dido

heforshe

kajdijkstra schreef op vrijdag 14 oktober 2022 @ 14:11:
Bedankt voor de tips, maar dat waren oude teksten, Dit topic is op 1 hoop gegooid uit de laat zien wat jij gemaakt hebt topic. Maar deze teksten zijn al vervangen. op https://unifyjs.org kan je zien wat de texten nu zijn geworden.
Zeker leesbaarder geworden, maar inhoudelijk heb ik er niet veel meer aan dan de eerdere versie. De meeste van mijn opmerkingen blijven nog steeds staan.

Laat ik dan dit lijstje er eens bij pakken (ook hier geldt weer, let op je spelling, het leest echt niet lekker met extra (hoofd)letters - het lijkt wel alsof je nog niet helemaal klaar was met copy/pasten) :
For Who is Unify, Wwhat can iI do with unify?
All Applications that have an front- and backend.

An Ttasklist application.
A DAW.
2D or 3D manipulation tools or Eengines.
A complex Aadministration tool.
A Mmodern Wwebshop.
Something that needs to run as Nnative app on mobile and Ddesktop and also needs to run as a website at the same time. (Or a combination)
An advanced Aapplication with interactive features using sound, maps or 3d. Or even an Wwebsite.
An simple Ccalculator
An Aapplication that needs to store and search and manipulate complex user information.
Ok, een tasklist application heb ik in Outlook, 2D/3D manipulation zijn een paar erg goede off-the-shelf pakketten voor, voor een moderne webwinkel (en alles waar geld over de lijn gaat) wil ik graag proven technology, voor een multi-platform app heb ik niets nieuws nodig, ik kan er zelfs een website mee bouwen :? , een simpele (zelfs vrij complexe!) calculator heb ik al op mijn bureau liggen, en ook voor een applicatie die dingen met persoonsgegevens doet wil ik graag proven technology, zeker in het kader van AVG en zo (ik wil niet aan een auditor jouw security-uitviondingen gaan uitleggen ;) )

Blijft over "a complex administration tool". Heb je er daar wel eens een van gezien? Ik werk ergens waar de hele IT-afdeling niets anders is dan een complex administration tool, in een landschap met een paar honderd applicaties, op een paar tientallen platforms, een flinke handvol frameworks en een flinke dosis wet- en regelgeving om het spannend te houden.
Alles de deur uit en vervangen door een nieuw landschap gebaseerd op iets dat volgende week unsupported kan zijn? Gaat hem niet worden :+
What Unify is not for, Ssomething that doesn't have an interface, Ffor example:

To build an library offor some other software.
Ai, dat klinkt alsof hergebruik lastig wordt. Hoe implementeer je DRY eigenlijk? Hopelijk niet door te denken dat een entiteit overal in je landschap dezelfde eigenschappen heeft (een canonical data model dus)?

Overigens hebben libraries zonder interface niet zo heel veel zin, wellicht bedoel je zonder user interface?

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • Josk79
  • Registratie: September 2013
  • Laatst online: 18-05 13:10
Dido schreef op vrijdag 14 oktober 2022 @ 14:32:
[...]

Ok, een tasklist application heb ik in Outlook, 2D/3D manipulation zijn een paar erg goede off-the-shelf pakketten voor, voor een moderne webwinkel (en alles waar geld over de lijn gaat) wil ik graag proven technology, voor een multi-platform app heb ik niets nieuws nodig, ik kan er zelfs een website mee bouwen :? , een simpele (zelfs vrij complexe!) calculator heb ik al op mijn bureau liggen ...
Er is vast genoeg aan te merken op het framework, maar deze punten zijn gewoon een gevalletje 'ranten om het ranten'. Er is altijd wel ergens een custom implemrntatie voor nodig.

@kajdijkstra staat de code ergens op github o.i.d.? Ik ben wel benieuwd eigenlijk.

Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 20-05 13:57

Dido

heforshe

Josk79 schreef op vrijdag 14 oktober 2022 @ 15:00:
Er is vast genoeg aan te merken op het framework, maar deze punten zijn gewoon een gevalletje 'ranten om het ranten'.
Mijn punt was met name dat de gegeven voorbeelden niet erg tot de verbeelding spreken. Een calculator is een klassieke oefening om te leren programmeren, geen business case om een nieuw framework aan te leren.

Dat is eigenlijk waar ik nog steeds zoekende naar ben (en ik lijk niet de enige): wat zou het mij opleveren om tijd en moeite te investeren in (het leren kennen / gebruiken van) dit framework?

Welk probleem lost het op? Dat zou in een "elevator pitch" uit de verf moeten komen.

Het klinkt voorlopig als een oplossing voor allerlei problemen die ik niet heb, of waar ik al een prima werkende oplossing voor heb.

Als ik een nieuwe auto op de markt zet moet ik ook in een spotje van 30 seconden kunnen uitleggen waarom mijn auto een betere keuze is dan de duizenden andere die al op de markt zijn (en dat lukt de meeste auto-marketeers vrij aardig).
Er is altijd wel ergens een custom implemrntatie voor nodig.
Jazeker!
Maar ik weet nog steeds niet waarom ik een nieuw framework in mijn landschap zou neerzetten (het hele landschap vervangen is sowieso nicht im frage). Nu bouw ik een nieuwe applicatie met dit framework om een nieuwe use-case af te dichten. Hoe past die applicatie in mijn landschap? Werkt die nieuwe applicatie met mijn bestaande data(bases)? Krijg ik dataduplicatie tussen mijn oude landschap en mijn nieuwe app? Heeft dit framework implicaties voor ISO-certificaties of BIO-audits? Hoe makkelijk of moeilijk is het om te migreren naar (en van) dit framework?

[ Voor 24% gewijzigd door Dido op 14-10-2022 15:26 ]

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
Josk79 schreef op vrijdag 14 oktober 2022 @ 15:00:
[...]


Er is vast genoeg aan te merken op het framework, maar deze punten zijn gewoon een gevalletje 'ranten om het ranten'. Er is altijd wel ergens een custom implemrntatie voor nodig.

@kajdijkstra staat de code ergens op github o.i.d.? Ik ben wel benieuwd eigenlijk.
https://unifyjs.org/viewP...oad_and_Installation.html

Acties:
  • +2 Henk 'm!

  • Josk79
  • Registratie: September 2013
  • Laatst online: 18-05 13:10
Oh, jammer. Wilde graag even browsen, maar ga de boel niet downloaden. Voor een community-project zou ik github toch wel aanbevelen.

Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 20-05 13:57

Dido

heforshe

Wie of wat is "The Unified Company" trouwens, die in de licensing_terms.pdf genoemd staat?
Eerste hit op google leidt naar https://www.unified.com/

Wat betekent mijn avatar?


Acties:
  • +1 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
Josk79 schreef op vrijdag 14 oktober 2022 @ 15:33:
Oh, jammer. Wilde graag even browsen, maar ga de boel niet downloaden. Voor een community-project zou ik github toch wel aanbevelen.
Mooi, Ik heb net een bitbucket voor Unify aangemaakt:

https://bitbucket.org/kajdijkstra_uniyjs/unify/src/master/

Acties:
  • 0 Henk 'm!

  • juiced01
  • Registratie: December 2009
  • Laatst online: 00:08
Lekker!

Tip: maak een .gitignore bestand aan. Hier kan je bestanden en mappen definiëren die je niet in je repository wil hebben, zoals de .log files, (local) config files, maar ook certificaten (ik dacht gelezen te hebben dat die in die zip stonden?) en cache.

Kunnen de packages in
- unify/native_modules
- unify/androidjs-builder;
- unify/framework/node_modules

en waarshijnlijk nog meer, ook niet geïnstalleerd worden via npm install?

[ Voor 30% gewijzigd door juiced01 op 14-10-2022 16:11 ]


Acties:
  • 0 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
juiced01 schreef op vrijdag 14 oktober 2022 @ 16:03:
Lekker!

Tip: maak een .gitignore bestand aan. Hier kan je bestanden en mappen definiëren die je niet in je repository wil hebben, zoals de .log files, (local) config files, maar ook certificaten (ik dacht gelezen te hebben dat die in die zip stonden?) en cache.

Kunnen de packages in
- unify/native_modules
- unify/androidjs-builder;
- unify/framework/node_modules

en waarshijnlijk nog meer, ook niet geïnstalleerd worden via npm install?
Ja bedankt voor de tips. Die directory's moeten er deels wel bij. Zitten misschien wel files in die ook ignored kunnen worden zal daar later nog eens even naar kijken.

ps. Ik heb ook meteen een andere library op bitbucket gezet, Deze library maakt deel uit van Unify maar op zichzelf is het ook een mooie library:

https://bitbucket.org/unifyjs/best-sqlite3/src/master/

En nog 1:

https://bitbucket.org/unifyjs/animate-everything/src/master/

[ Voor 5% gewijzigd door kajdijkstra op 14-10-2022 18:32 ]


Acties:
  • +1 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Aan ambitie ontbreekt het niet, dat is top. Ik denk alleen dat de algemene consensus in het topic is: ga lekker verder met je framework maar zie het gewoon als hobbyproject. Beschouw het gewoon als iets wat jij lekker vindt werken. Verwacht niet teveel dat anderen er iets mee gaan doen of gaan bijdragen.

Goed bedoeld advies:
- Kies 1 code style en gebruik een linter (ik zie nu single quotes, double quotes, camelCase, snake_case, tig newlines allemaal door elkaar)
- Zorg voor goede unit tests
- Meeste (grote) frameworks zijn geschreven in TypeScript (incl vaak stricte regels)
- Let op de spelfouten/grammaticafouten/slordigheidsfoutjes (ook bijv de naam van je Bitbucket-account heet "kajdijkstra_uniyjs" terwijl ik er even vanuit ga dat het "kajdijkstra_unifyjs" had moeten zijn)
- Pas op met het gebruik van merknamen waar je de rechten niet op hebt.

Acties:
  • +1 Henk 'm!

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
En kun je ook de bitbucket url's aan de topic start toevoegen...

Wie du mir, so ich dir.


Acties:
  • 0 Henk 'm!

  • kajdijkstra
  • Registratie: September 2022
  • Laatst online: 07-11-2022
Cartman! schreef op vrijdag 14 oktober 2022 @ 17:40:
- Let op de spelfouten/grammaticafouten/slordigheidsfoutjes (ook bijv de naam van je Bitbucket-account heet "kajdijkstra_uniyjs" terwijl ik er even vanuit ga dat het "kajdijkstra_unifyjs" had moeten zijn)
Bedankt voor de tip, Was me ook al opgevallen is al gefixed:

https://bitbucket.org/unifyjs/best-sqlite3/src/master/

en

https://bitbucket.org/unifyjs/animate-everything/src/master/

[ Voor 48% gewijzigd door kajdijkstra op 14-10-2022 18:32 ]


Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 01:12

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

offtopic:
Pssst, let je een beetje op? Je hebt al 2 keer een topicreport ingediend i.p.v. een reactie ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 01:12

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Ik ben echt oprecht confuus. Wat doen CSS zaken in een DB library (wat sort-of een ORM is als ik het goed begrijp?)? Of browserevents?

Ik zie een project waar een heleboel werk en liefde in gestoken is, maar misschien daarom is 't des te frustrerender dat niemand er echt... sjoege van krijgt.

[ Voor 14% gewijzigd door RobIII op 14-10-2022 21:10 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • +1 Henk 'm!

  • Josk79
  • Registratie: September 2013
  • Laatst online: 18-05 13:10
@kajdijkstra je zal de boel iets meer dicht moeten timmeren. Via https is de sqlite-database te downloaden en alle .js / .json files zijn uit te lezen.

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
De overige feedback kun je niks mee?

Ook wel benieuwd hoe je multi master db synchronisatie precies opgelost hebt trouwens.

[ Voor 14% gewijzigd door Cartman! op 16-10-2022 08:09 ]


Acties:
  • +6 Henk 'm!

  • Josk79
  • Registratie: September 2013
  • Laatst online: 18-05 13:10
@kajdijkstra, niet om je te pesten, maar wel om je wellicht even wakker te schudden. Ik heb het voor elkaar gekregen in te loggen als admin en iets toegevoegd aan je documentatie:

Afbeeldingslocatie: https://tweakers.net/i/k2UGPIlSbvI7HHyAD2NFSHsEzC4=/800x/filters:strip_exif()/f/image/6nz3JSDXJZoJMNKKx9q80C8a.png?f=fotoalbum_large

Acties:
  • +3 Henk 'm!

  • Oon
  • Registratie: Juni 2019
  • Niet online

Oon

Ik heb het hele topic gelezen, maar ik vraag me nog af wat precies de doelgroep is en waarom iemand dit 'framework' zou gebruiken. Ik zie een heel standaard MVC structuur, maar dan waar je zowel je client als server code binnen één module hebt? Lijkt me erg rommelig, en ik zie ook geen voorbeelden van de 'ouderwetse' manier van werken en hoe dit framework daar een verbetering aan biedt.

Je pakt dingen die gemeld worden snel op, dat is mooi, maar op de lange termijn moet je daar toch een strategie in hebben.
Daarnaast heb je nu je code wel in een repo gezet, maar is het 'officiële' distributiekanaal nog altijd een zipbestand, dat kan écht niet meer in 2022. Dit moet gewoon via NPM (of een andere gangbare dependency manager) binnen te trekken zijn, helemaal als je wel NPM gebruikt om weer andere dependencies binnen te halen. Versiebeheer en een nette verwerking van pull requests is daarbij ook essentieel, en dat zie ik nog niet; hoe kan iemand anders een verbetering inschieten?

Daarnaast moet je écht aan je teksten werken. Ook de link die RobIII eerder deelde;
Best-Sqlite3 is an an nodejs library build on top of better-sqlite3 that is build on top of sqlite3.
Simpele d-t fouten ('build on top' ipv 'built on top') en 2x 'an' kan gewoon niet in een tekst die je open source project beschrijft. Daarna is 'best-sqlite3' ook niet echt een naamgeving waar ik voor had gekozen, want er zijn tich sqlite wrappers, de kans dat dit de beste is acht ik vrij klein.

Buiten dat het mixen van client en server code binnen dezelfde module mij al chaotisch lijkt, vind ik het ook erg vreemd dat je CSS binnen een JS class in een ORM hebt zitten.

Al met al oogt het allemaal erg rommelig en slordig, en zou ik me er zelf niet aan wagen om hier een project op te bouwen. Een framework moet voor mij performance, veiligheid, compatibiliteit en/of investering in het schrijven van code zo veel mogelijk uit handen nemen, en kunnen laten zien dat ik op de lange termijn updates ga krijgen die ik makkelijk kan verwerken (door via NPM een update binnen te trekken) en die door een community zijn gecontroleerd (pull requests in een écht publieke repo). Daarnaast hoeft het geen industrieleider te zijn, maar verwacht ik wel hoge kwaliteit code én documentatie.
Dat zie ik allemaal nog niet terug.

Acties:
  • +3 Henk 'm!

  • Josk79
  • Registratie: September 2013
  • Laatst online: 18-05 13:10
Ik moet ondanks de vele terechte kritiek nog wel even wat positieve feedback geven. Je framework zit vernuftig in elkaar en je hebt interessante technieken toegepast. Het geeft wel aan dat je talent hebt om te programmeren. Beschouw je framework alsjeblieft als een (zelf)studieprojectje zoals we allemaal wel eens hebben gemaakt (of aan zijn begonnen en nooit afgemaakt 😊). Het is gewoon niet iets productie-gereeds.

Ik hoop dat dit gewoon komt door een gebrek aan ervaring (ik gok dat je nog jong bent) en dat je het één en ander gewoon wat onderschat. Ik zie dat je positief reageert op de soms pijnlijke feedback, dat siert je!

Dus, ga vooral door met Unifyjs als hobby-project, maar voordat je iets op de markt wilt brengen zul je toch nog even het één en ander moeten leren.

Iets wat me opvalt is dat er héél veel data heen en weer wordt gegooid over websocket, dit komt de performance niet ten goede.

Ook bij het laden van de pagina via https wordt eerst een nagenoeg lege pagina geladen. Vervolgens komt de boel mondjesmaat binnen via de socket. Zou je hier misschien aan de serverkant (eventueel via cache) de boel al kunnen populaten? Eigenlijk zou het mooi zijn als bij laden alvast het meeste van de pagina gerenderd kan worden, wellicht dat alleen enkele dynamische componenten later toegevoegd zouden kunnen worden.

Ook grappig dat de boel op meerdere servers kan draaien welke onderling syncen, maar dat heeft pas zin bij Enterprise-size solutions. En wat win je er eigenlijk mee als de database een sqlite database is? Ik zie het voornamelijk als risico dat de synchronisatie problemen oplevert (race condities e.d.).

Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 20-05 13:57

Dido

heforshe

Josk79 schreef op zaterdag 15 oktober 2022 @ 16:52:
Ook grappig dat de boel op meerdere servers kan draaien welke onderling syncen, maar dat heeft pas zin bij Enterprise-size solutions.
Het klinkt goed in de marketing! Ook iets dat vooral voor enterprise-achtige solutions van belang wordt (waar je managers ipv developers moet overtuigen, dus :) )
En wat win je er eigenlijk mee als de database een sqlite database is? Ik zie het voornamelijk als risico dat de synchronisatie problemen oplevert (race condities e.d.).
Synchronisatie is een veel grotere uitdaging dan veel mensen denken. Zelfs een Microsoft is er een paar keer op nat gegaan (en die hebben best wel resources en kennis in huis om zoiets te fixen...)

Een open source databse ligt op zich voor de hand als basis voro een project als dit, maar ik zou hopen en verwachten dat zo'n framework ook naadloos kan aansluiten op databases die in de echte wereld gebruikt worden (een Oracle, een MSSQL, etc).
Dat zou een marketing-blurb zijn die mijn aandacht zou trekken.

Wat betekent mijn avatar?


Acties:
  • +3 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 00:24

MueR

Admin Tweakers Discord

is niet lief

Het zal aan mij liggen, maar ik snap het doel niet. Een framework wat alles probeert te doen, maar daardoor te veel door elkaar doet lijkt het wel. En het moet wel precies in het stramien passen, want uitbreiden kan niet.

Als ik nou eens besluit dat ik gebruik wil maken van database engine die niet sqlite is, wat dan? Met een typeorm of prisma kan ik dat gewoon, dus waarom zou ik perse sqlite moeten gebruiken?

En qua frontend spul, wat maakt jouw framework beter ten opzichte van een nuxt, of react waar ik gewoon html en css kan gebruiken? Waarom moet het allemaal in JS?

Het zal echt wel aan mij liggen, maar ik kan er geen kaas van maken.

[ Voor 4% gewijzigd door MueR op 16-10-2022 11:23 ]

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • +3 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 20-05 13:57

Dido

heforshe

MueR schreef op zondag 16 oktober 2022 @ 11:23:
Het zal echt wel aan mij liggen, maar ik kan er geen kaas van maken.
offtopic:
Nee, dat staat ook in de documentatie. Unify is bedoeld voor dingen met een front- en backend! Kaas heeft alleen een consumer-interface.

Wat betekent mijn avatar?


Acties:
  • +1 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Nee hoor, ligt niet aan jou.
Door alles te willen doen, is het een groot ongeleid project. 100% van de security en reliability issues, 0% af.
Meeste reacties, hoe goedbedoeld ook, zijn ‘bike shedding’: Bijvoorbeeld een makkelijk te maken verbetering van een regeltje in de documentatie. Het echte probleem, een kernreactor met 42 dakkapellen en een schuifpui, valt niet te bespreken.

Het is cool om alles te willen doen, en het is een dappere, leerzame poging. Maar zonder scope of verwachtingen moeten we niet doen alsof het een business is.

[ Voor 17% gewijzigd door Voutloos op 16-10-2022 11:53 ]

{signature}


Acties:
  • 0 Henk 'm!

  • Oon
  • Registratie: Juni 2019
  • Niet online

Oon

Ik zie dat https://unifyjs.org/ nu offline is, is dat bewust? Vind ik wel opmerkelijk voor de documentatie/demo van een open source framework

Afbeeldingslocatie: https://tweakers.net/i/G9DYNEhGnC3oL9Voik0DVbR3Kes=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/ZrVTlfTZVdwr7msShxppkRke.png?f=user_large

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 01:12

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

De site is offline, de repositories zijn offline, ik denk dat 't wel welletjes is. Jammer @kajdijkstra; we hebben 't een kans gegeven maar als je dan nuclear gaat en de hele zwik van 't internet scrubt zie ik ook geen nut meer in dit topic. Jammer :N

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.