X-Original-To: alpine-devel@lists.alpinelinux.org Delivered-To: alpine-devel@mail.alpinelinux.org Received: from mailout-de.gmx.net (mailout-de.gmx.net [213.165.64.22]) by mail.alpinelinux.org (Postfix) with SMTP id A8C27DC00A7 for ; Wed, 5 Dec 2012 16:04:17 +0000 (UTC) Received: (qmail invoked by alias); 05 Dec 2012 16:04:16 -0000 Received: from 88-134-34-124-dynip.superkabel.de (EHLO tardis.home.0x539.eu) [88.134.34.124] by mail.gmx.net (mp040) with SMTP; 05 Dec 2012 17:04:16 +0100 X-Authenticated: #23809366 X-Provags-ID: V01U2FsdGVkX198O6QMX7J8QwehlkMVs6VWtVt2zrFzBDUNeM3MZv Mrj4Cx/M9yae5G Content-Type: multipart/signed; boundary="Apple-Mail=_4582480B-EC14-428E-A520-6B2C9744B433"; protocol="application/pkcs7-signature"; micalg=sha1 X-Mailinglist: alpine-devel Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: Mime-Version: 1.0 (Mac OS X Mail 6.2 \(1499\)) Subject: Re: [alpine-devel] Ideas for a new config framework, ACF2 From: Oliver Loch In-Reply-To: <201212051939.19111.vkrishn4@gmail.com> Date: Wed, 5 Dec 2012 17:04:14 +0100 Cc: Kaarle Ritvanen , "alpine-devel@lists.alpinelinux.org" , acf@lists.alpinelinux.org Message-Id: <0467883F-A7E4-4156-940E-9F5F10AD5FB2@gmx.net> References: <20121129152317.69585a4f@ncopa-desktop.alpinelinux.org> <201212022211.23812.vkrishn4@gmail.com> <201212051939.19111.vkrishn4@gmail.com> To: vkrishn4@gmail.com X-Mailer: Apple Mail (2.1499) X-Y-GMX-Trusted: 0 --Apple-Mail=_4582480B-EC14-428E-A520-6B2C9744B433 Content-Type: multipart/alternative; boundary="Apple-Mail=_0479AD4B-7C1C-471F-8139-15B8E4551723" --Apple-Mail=_0479AD4B-7C1C-471F-8139-15B8E4551723 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=iso-8859-1 Hi, used the wrong email address to reply to the mailing list. Here again = the Text: Hi, have a look at the FreeNAS WebUI. They used Django ( = https://www.djangoproject.com/ ) together with DoJo = (http://www.dojotoolkit.org ).=20 If we use this setup we get a lot of stuff already working: On the Django site, as the backend: - Abstraction on multiple layers. - There is no need to deal with the = database backend. One defines types, and then uses them. Database layer = is completely transparent. - The main code that does everything is written as a module, that is = then executed by Django for us. No need to write all the stuff around = it. - Views - every "module" also has views, which are used to generate the = page shown to the user. It has a small language to be able to put the = values in the right places. - Every module that is written for Django, has it's own Types+Database, = it's own main code and it's own views. It resides in it's own directory = and does not interfere with any other plugin. Which breaks only the = plugin and not the whole setup. - It has it's own, builtin, webserver. It's not recommended for = production use, but it's there ;) We could also run it as an FCGI = backend connected to busybox' httpd. With DoJo on the client side we get a fully working javascript framework = that is know to work in Internet Explorer, Firefox, Chrome, Safari and = Opera. We don't have to deal with anything on the client side. Only = define the website, get the data in there and that's it. It also offers = different GUIs for mobile devices like IPad, iPhone, Android, Windows = Mobile and so on... So whatever we hit - it will work ;) And it has a lot of nice plugins and views. Check out the website at = www.dojotoolkit.org There is even a Djang-DoJo Distribution, but it hasn't been update for a = longer time, so imho we should do it on our own. We can provide a working environment that nearly fits all needs to any = plugin developer which can make the Distro become popular for embedded = devices and such :) But there are also downsides: - Django is written in Python... Maybe there is something similar = written in Perl/Lua/Tcl/$Poison. - The size of Python is really big imho and I don't know if it works = with embedded Python. - The javascript framework can produce a lot of load at the client if we = do nasty things like on-the-fly search updates and stuff. However, just a suggestion :) KR, Oliver Am 05.12.2012 um 15:09 schrieb V.Krishn : > On Wednesday, December 05, 2012 01:27:09 PM you wrote: >> On Sun, 2 Dec 2012, V.Krishn wrote: >>> Can we know what frameworks/components are involved. >>> Few that I could get from the thread: >>> 1. bootstrap >>> 2. backbonejs, requirejs >>> 3. lua >>> 4. minihttpd >>> 5. json libs >>> 6. sqlite >>> 7. augeas >>>=20 >>> Any thoughts on tir (lua+mongrel2+zeromq) ? >>=20 >> I used Tir as part of the first prototype before writing the >> proposal. This was in May, but afterward we decided to opt for full >> client-side implementation for the web UI, whereas Tir seems to = target >> server-side web applications. Even for those, the value add was = rather >> thin, which is quite natural because the author advertises to use = only >> 1300 lines of code. >=20 > Having a backed lua framework would be nice. > Tir could be adopted/modified as a base. >=20 >>=20 >> The proposal mentions Backbone.js, but after a second prototyping >> round I feel that this library creates more problems than provides >> solutions, at least in this context. Backbone's data model is rather >> limited in comparison to what is proposed for the new ACF. For >> example, Backbone does not support nested collections or collections >> of primitive types. Circumventing these limitations provided to add >> too much complexity both to the server and client implementation. >>=20 >=20 > Choice of client-side js libs should not be a stress here. > Rather module-specific adoption of other libs should be possible. >=20 > Mongrel2 also involves zeromq, which has its own benefits. >=20 > Also to be evaluated for tools/system to be used in ACF2 is "redis". >=20 > --=20 > Regards. > V.Krishn >=20 >=20 > --- > Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org > Help: alpine-devel+help@lists.alpinelinux.org > --- >=20 --Apple-Mail=_0479AD4B-7C1C-471F-8139-15B8E4551723 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=iso-8859-1 https://www.djangoproject.com/=  ) together with DoJo (http://www.dojotoolkit.org )= . 

If we use this setup we get a lot of stuff already = working:

On the Django site, as the backend:

- Abstraction = on multiple layers.  - There is no need to deal with the database = backend. One defines types, and then uses them. Database layer is = completely transparent.
- The main code that does everything is = written as a module, that is then executed by Django for us. No need to = write all the stuff around it.
- Views - every "module" also has = views, which are used to generate the page shown to the user. It has a = small language to be able to put the values in the right places.
- = Every module that is written for Django, has it's own Types+Database, = it's own main code and it's own views. It resides in it's own directory = and does not interfere with any other plugin. Which breaks only the = plugin and not the whole setup.
- It has it's own, builtin, = webserver. It's not recommended for production use, but it's there ;) We = could also run it as an FCGI backend connected to busybox' = httpd.

With DoJo on the client side we get a fully working = javascript framework that is know to work in Internet Explorer, Firefox, = Chrome, Safari and Opera. We don't have to deal with anything on the = client side. Only define the website, get the data in there and that's = it. It also offers different GUIs for mobile devices like IPad, iPhone, = Android, Windows Mobile and so on... So whatever we hit - it will work = ;)

And it has a lot of nice plugins and views. Check out the = website at www.dojotoolkit.org

There = is even a Djang-DoJo Distribution, but it hasn't been update for a = longer time, so imho we should do it on our own.

We can provide a = working environment that nearly fits all needs to any plugin developer = which can make the Distro become popular for embedded devices and such = :)

But there are also downsides:

- Django is written in = Python... Maybe there is something similar written in = Perl/Lua/Tcl/$Poison.
- The size of Python is really big imho and I = don't know if it works with embedded Python.
- The javascript = framework can produce a lot of load at the client if we do nasty things = like on-the-fly search updates and stuff.

However, just a = suggestion = :)

KR,

Oliver


Am = 05.12.2012 um 15:09 schrieb V.Krishn <vkrishn4@gmail.com>:
<= br>
On Wednesday, December 05, 2012 = 01:27:09 PM you wrote:
On Sun, 2 Dec 2012, = V.Krishn wrote:
Can we know what = frameworks/components are involved.
Few that I could get from the = thread:
1. bootstrap
2. backbonejs, requirejs
3. lua
4. = minihttpd
5. json libs
6. sqlite
7. augeas

Any thoughts = on tir (lua+mongrel2+zeromq) ?

I used Tir as part of = the first prototype before writing the
proposal. This was in May, but = afterward we decided to opt for full
client-side implementation for = the web UI, whereas Tir seems to target
server-side web applications. = Even for those, the value add was rather
thin, which is quite natural = because the author advertises to use only
1300 lines of = code.

Having a backed lua framework would be = nice.
Tir could be adopted/modified as a base.


The proposal mentions Backbone.js, but after a second = prototyping
round I feel that this library creates more problems than = provides
solutions, at least in this context. Backbone's data model = is rather
limited in comparison to what is proposed for the new ACF. = For
example, Backbone does not support nested collections or = collections
of primitive types. Circumventing these limitations = provided to add
too much complexity both to the server and client = implementation.


Choice of client-side js libs = should not be a stress here.
Rather module-specific adoption of other = libs should be possible.

Mongrel2 also involves zeromq, which has = its own benefits.

Also to be evaluated for tools/system to be = used in ACF2 is "redis".

-- =
Regards.
V.Krishn


---
Unsubscribe:  alpine-deve= l+unsubscribe@lists.alpinelinux.org
Help: =         alpine-devel+help@= lists.alpinelinux.org
---


= --Apple-Mail=_0479AD4B-7C1C-471F-8139-15B8E4551723-- --Apple-Mail=_4582480B-EC14-428E-A520-6B2C9744B433 Content-Disposition: attachment; filename=smime.p7s Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIINRDCCBjQw ggQcoAMCAQICAR4wDQYJKoZIhvcNAQEFBQAwfTELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0 Q29tIEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxKTAn BgNVBAMTIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA3MTAyNDIxMDE1NVoX DTE3MTAyNDIxMDE1NVowgYwxCzAJBgNVBAYTAklMMRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMSsw KQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0ZSBTaWduaW5nMTgwNgYDVQQDEy9TdGFy dENvbSBDbGFzcyAxIFByaW1hcnkgSW50ZXJtZWRpYXRlIENsaWVudCBDQTCCASIwDQYJKoZIhvcN AQEBBQADggEPADCCAQoCggEBAMcJg8zOLdgasSmkLhOrlr6KMoOMpohBllVHrdRvEg/q6r8jR+EK 75xCGhR8ToREoqe7zM9/UnC6TS2y9UKTpT1v7RSMzR0t6ndl0TWBuUr/UXBhPk+Kmy7bI4yW4urC +y7P3/1/X7U8ocb8VpH/Clt+4iq7nirMcNh6qJR+xjOhV+VHzQMALuGYn5KZmc1NbJQYclsGkDxD z2UbFqE2+6vIZoL+jb9x4Pa5gNf1TwSDkOkikZB1xtB4ZqtXThaABSONdfmv/Z1pua3FYxnCFmdr /+N2JLKutIxMYqQOJebr/f/h5t95m4JgrM3Y/w7YX9d7YAL9jvN4SydHsU6n65cCAwEAAaOCAa0w ggGpMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRTcu2SnODaywFc fH6WNU7y1LhRgjAfBgNVHSMEGDAWgBROC+8apEBbpRdphzDKNGhD0EGu8jBmBggrBgEFBQcBAQRa MFgwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLnN0YXJ0c3NsLmNvbS9jYTAtBggrBgEFBQcwAoYh aHR0cDovL3d3dy5zdGFydHNzbC5jb20vc2ZzY2EuY3J0MFsGA1UdHwRUMFIwJ6AloCOGIWh0dHA6 Ly93d3cuc3RhcnRzc2wuY29tL3Nmc2NhLmNybDAnoCWgI4YhaHR0cDovL2NybC5zdGFydHNzbC5j b20vc2ZzY2EuY3JsMIGABgNVHSAEeTB3MHUGCysGAQQBgbU3AQIBMGYwLgYIKwYBBQUHAgEWImh0 dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwDQYJKoZIhvcNAQEFBQADggIBAAqDCH14qywG XLhjjF6uHLkjd02hcdh9hrw+VUsv+q1eeQWB21jWj3kJ96AUlPCoEGZ/ynJNScWy6QMVQjbbMXlt UfO4n4bGGdKo3awPWp61tjAFgraLJgDk+DsSvUD6EowjMTNx25GQgyYJ5RPIzKKR9tQW8gGK+2+R HxkUCTbYFnL6kl8Ch507rUdPPipJ9CgJFws3kDS3gOS5WFMxcjO5DwKfKSETEPrHh7p5shuuNktv sv6hxHTLhiMKX893gxdT3XLS9OKmCv87vkINQcNEcIIoFWbP9HORz9v3vQwR4e3ksLc2JZOAFK+s sS5XMEoznzpihEP0PLc4dCBYjbvSD7kxgDwZ+Aj8Q9PkbvE9sIPP7ON0fz095HdThKjiVJe6vofq +n6b1NBc8XdrQvBmunwxD5nvtTW4vtN6VY7mUCmxsCieuoBJ9OlqmsVWQvifIYf40dJPZkk9YgGT zWLpXDSfLSplbY2LL9C9U0ptvjcDjefLTvqSFc7tw1sEhF0n/qpA2r0GpvkLRDmcSwVyPvmjFBGq Up/pNy8ZuPGQmHwFi2/14+xeSUDG2bwnsYJQG2EdJCB6luQ57GEnTA/yKZSTKI8dDQa8Sd3zfXb1 9mOgSF0bBdXbuKhEpuP9wirslFe6fQ1t5j5R0xi72MZ8ikMu1RQZKCyDbMwazlHiMIIHCDCCBfCg AwIBAgIDA6CuMA0GCSqGSIb3DQEBBQUAMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRD b20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzE4MDYG A1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0ZSBDbGllbnQgQ0EwHhcN MTIwMTI5MTQ0MTM3WhcNMTMwMTI5MjE0MTE4WjBTMRkwFwYDVQQNExB6N0V1VjY4Q0xvemRSRHkx MRcwFQYDVQQDDA5vLmxvY2hAZ214Lm5ldDEdMBsGCSqGSIb3DQEJARYOby5sb2NoQGdteC5uZXQw ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCmfq20gcAUPUePSPavAqfHQTuq75yNv9dj TkYkP1kWeohKxHnznc1so0WuaMo1Azt/01Z1zdMZ3m5Ix3Q1UxuVRh+ciRockHJZ36uWWesMLdwh /cdvgEeR+wqfceYuuW4Du8MDh9/+z4NCBJ6kvYQUXKZibthLaLssazBoHmvVDiwvmvDk2bLim+sC ywRelWWFAnlVDGFTsHN9DKe1jXljLDnNwcHRzJroSx01Dh4AhMMkz8ZUQtx3GInhZLjErRCdZ3Oj HDmZ8U2ABo1W7Hccux1U/70y6fOVOrQW7hkv1jPpGp1+713ONg4wc8PiGOHZHnIENBGBKOCGjd70 7zU9AgMBAAGjggOpMIIDpTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHSUEFjAUBggrBgEF BQcDAgYIKwYBBQUHAwQwHQYDVR0OBBYEFBF4b2lWP7cPi3uyf1fhXOfHBuA7MB8GA1UdIwQYMBaA FFNy7ZKc4NrLAVx8fpY1TvLUuFGCMBkGA1UdEQQSMBCBDm8ubG9jaEBnbXgubmV0MIICIQYDVR0g BIICGDCCAhQwggIQBgsrBgEEAYG1NwECAjCCAf8wLgYIKwYBBQUHAgEWImh0dHA6Ly93d3cuc3Rh cnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t L2ludGVybWVkaWF0ZS5wZGYwgfcGCCsGAQUFBwICMIHqMCcWIFN0YXJ0Q29tIENlcnRpZmljYXRp b24gQXV0aG9yaXR5MAMCAQEagb5UaGlzIGNlcnRpZmljYXRlIHdhcyBpc3N1ZWQgYWNjb3JkaW5n IHRvIHRoZSBDbGFzcyAxIFZhbGlkYXRpb24gcmVxdWlyZW1lbnRzIG9mIHRoZSBTdGFydENvbSBD QSBwb2xpY3ksIHJlbGlhbmNlIG9ubHkgZm9yIHRoZSBpbnRlbmRlZCBwdXJwb3NlIGluIGNvbXBs aWFuY2Ugb2YgdGhlIHJlbHlpbmcgcGFydHkgb2JsaWdhdGlvbnMuMIGcBggrBgEFBQcCAjCBjzAn FiBTdGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTADAgECGmRMaWFiaWxpdHkgYW5kIHdh cnJhbnRpZXMgYXJlIGxpbWl0ZWQhIFNlZSBzZWN0aW9uICJMZWdhbCBhbmQgTGltaXRhdGlvbnMi IG9mIHRoZSBTdGFydENvbSBDQSBwb2xpY3kuMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwu c3RhcnRzc2wuY29tL2NydHUxLWNybC5jcmwwgY4GCCsGAQUFBwEBBIGBMH8wOQYIKwYBBQUHMAGG LWh0dHA6Ly9vY3NwLnN0YXJ0c3NsLmNvbS9zdWIvY2xhc3MxL2NsaWVudC9jYTBCBggrBgEFBQcw AoY2aHR0cDovL2FpYS5zdGFydHNzbC5jb20vY2VydHMvc3ViLmNsYXNzMS5jbGllbnQuY2EuY3J0 MCMGA1UdEgQcMBqGGGh0dHA6Ly93d3cuc3RhcnRzc2wuY29tLzANBgkqhkiG9w0BAQUFAAOCAQEA aFgkPDQLgfzA2OCcUUaavf3yBb0JX83kkHtqpPJPs8AM7MEHgSwPtvDPfrArLZRVleQ5rE42QDrl UJQ1FBrSaRaGERjihOvbXy3UglGk23zZfpV+tG3FM/K6r3aoOTghqldly/nnXptgUiV+Xc8GVZgZ 3v9M8bqx4ypL4VTxZ9FrIKQ6IoLyuxCFRUutk/UaN9bT4bVjLrlC3E5jltmtdjFPcQOGsZ3B5IeC A8wWWiUrClvj1WJvBvgJ7o48F6mjdJYWZqzAQkQVkA0GmPsEb9YdWEyqygCnb1/oHmPYLzd7GZMS 8Yr0BFbSWB4vFdCI+eQg+xwBLD+bp8s4M+DodTGCA28wggNrAgEBMIGUMIGMMQswCQYDVQQGEwJJ TDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlm aWNhdGUgU2lnbmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVk aWF0ZSBDbGllbnQgQ0ECAwOgrjAJBgUrDgMCGgUAoIIBrzAYBgkqhkiG9w0BCQMxCwYJKoZIhvcN AQcBMBwGCSqGSIb3DQEJBTEPFw0xMjEyMDUxNjA0MTRaMCMGCSqGSIb3DQEJBDEWBBS5hKv2iv8V Ib5vYpx5GMSf37UNJjCBpQYJKwYBBAGCNxAEMYGXMIGUMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UE ChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2ln bmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xhc3MgMSBQcmltYXJ5IEludGVybWVkaWF0ZSBDbGll bnQgQ0ECAwOgrjCBpwYLKoZIhvcNAQkQAgsxgZeggZQwgYwxCzAJBgNVBAYTAklMMRYwFAYDVQQK Ew1TdGFydENvbSBMdGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0ZSBTaWdu aW5nMTgwNgYDVQQDEy9TdGFydENvbSBDbGFzcyAxIFByaW1hcnkgSW50ZXJtZWRpYXRlIENsaWVu dCBDQQIDA6CuMA0GCSqGSIb3DQEBAQUABIIBAG1jbxLFxm99L7rghD0VQsuH5w7WI16PHfeL2Xrr 2KemqweWO0mqs9FqPRUAfF8fhDBNKmRZ2rBpflBcoGZKlczN1YJ/9uVU3e66hgSPyhmU6DLnun/y Hz9lbaAt9gl6hx11xCAiDngNfc/eUE6/We3ls9/GaBL6mf4cZ9ijbN+kr81jHXx2GERmfj0ApjI3 1DLfb8bQGrxX5o5jveCAbKL9AcmeZL6nQVZvSE796EpWoDuzBecReGAM2LeP69zTtO44hO9dRmoZ 6IcVAG2x1HLWW2LnxB7ivjRWl2N9i1iOT+XE++0lPrs3KkhfmWA+cydvmt7qgggiEqXJlmKbBsAA AAAAAAA= --Apple-Mail=_4582480B-EC14-428E-A520-6B2C9744B433-- --- Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org Help: alpine-devel+help@lists.alpinelinux.org ---