X-Original-To: alpine-devel@lists.alpinelinux.org Delivered-To: alpine-devel@mail.alpinelinux.org Received: from nm19.bullet.mail.bf1.yahoo.com (nm19.bullet.mail.bf1.yahoo.com [98.139.212.178]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.alpinelinux.org (Postfix) with ESMTPS id D0227DC0312 for ; Thu, 29 Nov 2012 15:57:51 +0000 (UTC) Received: from [98.139.212.152] by nm19.bullet.mail.bf1.yahoo.com with NNFMP; 29 Nov 2012 15:57:50 -0000 Received: from [98.139.173.167] by tm9.bullet.mail.bf1.yahoo.com with NNFMP; 29 Nov 2012 15:57:50 -0000 Received: from [127.0.0.1] by smtp110-mob.biz.mail.bf1.yahoo.com with NNFMP; 29 Nov 2012 15:57:50 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1354204670; bh=UHIi5gWPNGXHR8oB6CdJ7R2y0IRhPN47dWEOzCKhmYg=; h=X-Yahoo-Newman-Id:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:Received:References:In-Reply-To:Mime-Version:Content-Transfer-Encoding:Content-Type:Message-Id:Cc:X-Mailer:From:Subject:Date:To; b=KvFV1/QW4Y1au9MZdP69EIruMIvrpo2+z8bUaQgHUW4DkzpJOsVV5L8LQ8dhXvgUegMUXT/8p92cBs150wSZii66BDrpuAjye2Cl0nlpl5HC1DMUx1vVUZFReDBN7p2A63vM9x66AbWrziAgVjX4mPn/vdw1noONwRusllM20CE= X-Yahoo-Newman-Id: 158658.45376.bm@smtp110-mob.biz.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: n4iVcUMVM1m9Pwg_Yx9vBgMdP4nu7aAyo.igp4YYurDVfVN UBBb6ky28bLRn0yGqu4Fiuykabxuh751JTihdsd5.yLv2HunTev9TghC_QHD nQwmTQFjGK_bip.ZCjXX7h85cQmi7rpSuHmVnZpDtVL.8Lz11.Q7a9fugQaU yU6agWbOW8jw1PhpCoEh6gLXpkFpyd8EsXp9zKHYDZxlSd2RrdmSytA5HtK7 QpPaPDBxF_5l_oJ1q2ZUMBx4sGhTlXfF9WctsWT9pK_J6cq7ouhNrhXu9792 vVRhtJT3qd9sc.k05vTZWFJmqwdo1m_LDXxfRhPObyNWhYiBUAg.BDJpdUfJ Zkz8FNjOxBq.YNdeeVUX_p248QRPBz7suiaEDIlc8nEeuePk7JkmTPgYuUbn jZ01xb5nItuObJKiyYDJznlUV7oIH9TuQT8CIwY82G0sL.FOFewiWjjrndog CyBD3iIRBcYL_sb5nPHu4mqn3HWihoNQtx4WOAqUuzovf_uYy26e74WZpFfE FShtrHHsiEZ7ZHQ-- X-Yahoo-SMTP: yftn8B6swBCikPiBJoMb7wL9KIpT Received: from [192.168.1.148] (ttrask01@71.65.232.37 with xymcookie) by smtp110-mob.biz.mail.bf1.yahoo.com with SMTP; 29 Nov 2012 07:57:49 -0800 PST References: <20121129152317.69585a4f@ncopa-desktop.alpinelinux.org> In-Reply-To: <20121129152317.69585a4f@ncopa-desktop.alpinelinux.org> X-Mailinglist: alpine-devel Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: Mime-Version: 1.0 (1.0) Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Message-Id: Cc: Alpine ACF , Alpine Developers X-Mailer: iPad Mail (9B206) From: Ted Trask Subject: Re: [alpine-devel] Ideas for a new config framework, ACF2 Date: Thu, 29 Nov 2012 10:57:48 -0500 To: Natanael Copa The proposed ACF2 seems to be a complete redesign to move from functional to= data-driven design. Unfortunately, the doc does not give any reasons why th= is change is desired. What is the benefit? This change does not address any o= f the goals listed below. Just as a style preference, I've always been a C/f= unctional design guy, rather than C++/object-oriented guy. I find object-ori= ented design more difficult to read and debug. See further comments below. On Nov 29, 2012, at 9:23 AM, Natanael Copa wrote: > Some of the goals: > * better security design What is wrong with the security of the existing ACF? What would you do diffe= rently? > * remove unnecessary complexity from modules Can you give an example of the "unnecessary complexity" in the current ACF m= odules? > * organize the libs better While I agree that the libs could be organized and, especially, documented b= etter, what is the actual proposal here? There is nothing in the doc. > * fix concurrency - no race conditions This is a legitimate concern in the current ACF. The problem can be managed,= not solved, with a daemon in the same manner as proposed for ACF2. However,= there is nothing to prevent two users from overwriting each other's work. > * improve CLI interface I have done quite a bit of work for acf-core-0.15 to split out the web inter= face from the ACF core. As far as I can tell, there is now nothing preventin= g us from creating a functional CLI interface for ACF. > * modernize web GUI (write the gui in javascript) I don't agree that "The full client-side approach eliminates all possible HT= ML-related security vulnerabilities". There is still a web server accepting t= he same requests. Nothing prevents a malicious user from directly accessing i= t. I do agree that a single-page application has some advantages in user experi= ence. However, there is nothing preventing us from creating a single-page ap= plication based on the current ACF. Any action can return it's result as JSO= N or as HTML without the surrounding skin/template. > For web frontend we have been talking of using existing frameworks like > Backbone.js and RequireJS. For backend we have been talking about using > things like augeas and using Lua tables to create data models. I have known about augeas for some time, and there is nothing preventing us f= rom using it with the current ACF. However, I have not felt the need to, bec= ause I have not created an ACF recently that could benefit from it. The exis= ting ACF modules are working, so I have not felt the need to rewrite them. This seems a good place to talk a bit more about the data-driven design, bec= ause augeas seems to be the genesis of the idea. While augeas allows you to m= odify the config files more safely, since it ensures the syntax is correct, I= think it is better suited as a backend underneath a functional front end. The augeas.net/tour.html page gives the simple example of adding an entry to= the hosts file. The augeas user must know that a new entry can be added und= er /files/etc/hosts/ and that it should have values for ipaddr, canonical, a= nd alias[]. Isn't it easier to see a web page with an "Add entry" button and= an appropriate form? How can you automatically generate that button and for= m based upon the augeas output? I think you would end up having to code the b= utton and form into the model/view, which means you're going back to the fun= ctional design of ACF. I see no benefit to the data-driven design when it comes to a user-facing ap= plication. > This will require some massive work but I think we can do it. Hopefully > it will be simpler to write models once the basic framework is in place. I think it's pretty easy to write ACF modules. As stated above, I think you would end up having to do the same work in ACF2= in order to get a user-friendly interface. Sorry if the above sounds like a rant, but I legitimately don't understand t= he benefits of the proposal. Ted --- Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org Help: alpine-devel+help@lists.alpinelinux.org ---