From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mike Mattie Newsgroups: gmane.emacs.devel Subject: Re: What a modern collaboration toolkit looks like Date: Fri, 4 Jan 2008 19:34:21 -0800 Message-ID: <20080104193421.0d4091ea@reforged> References: <20071230122217.3CA84830B9A@snark.thyrsus.com> <20071231130712.GB8641@thyrsus.com> <20071231214108.GD26639@thyrsus.com> <200801010027.m010R74P025484@oogie-boogie.ics.uci.edu> <20071231190034.12b0ed4a@reforged> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1754498399==" X-Trace: ger.gmane.org 1199504219 5686 80.91.229.12 (5 Jan 2008 03:36:59 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 5 Jan 2008 03:36:59 +0000 (UTC) Cc: emacs developers To: rms@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Jan 05 04:37:20 2008 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1JAzqZ-0001Xj-TX for ged-emacs-devel@m.gmane.org; Sat, 05 Jan 2008 04:37:20 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JAzqD-0000vL-9e for ged-emacs-devel@m.gmane.org; Fri, 04 Jan 2008 22:36:57 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JAzq9-0000vG-E5 for emacs-devel@gnu.org; Fri, 04 Jan 2008 22:36:53 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JAzq7-0000um-Fp for emacs-devel@gnu.org; Fri, 04 Jan 2008 22:36:53 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JAzq7-0000uj-Bn for emacs-devel@gnu.org; Fri, 04 Jan 2008 22:36:51 -0500 Original-Received: from wa-out-1112.google.com ([209.85.146.183]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JAzq6-0004nB-Lm for emacs-devel@gnu.org; Fri, 04 Jan 2008 22:36:51 -0500 Original-Received: by wa-out-1112.google.com with SMTP id k34so10738053wah.10 for ; Fri, 04 Jan 2008 19:36:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:date:from:to:cc:subject:message-id:in-reply-to:references:x-mailer:mime-version:content-type; bh=OFPNCAv+g2bz6qN4t8Ds2SnrRbZt++W6ktaR2CrpI4I=; b=G1F1NL1VDuZ/zyH9OF9Zcmxv2JIaBEelqQfdwUWf4X5uTywM3c7FuQiZs3dvAdOgEEijxQiO/bvzIarY2UHNmK8PS6KX5iwi7RwpLJpfmTq5oDT+55hdexWX9Skk46PWvACpmwCEGUuId1DJmz2Q0hN4EQcKHD9MH3PPl6dt5og= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:in-reply-to:references:x-mailer:mime-version:content-type; b=LhGZTbHjgKr4Zx+88duEw87IBzc1k5gmR2pzVlgk8rqDWaByLrSKrWwr2ZOS+cbJ/cjYtavodT/0C0b/fNk/XIuP0HSTRFzK+tnqdfQe8Q+YPPdsjaOPsGqyTEXWsgZripWIgp8bRpvrEnBMvkssG3qnB8ppv8OcSY0BVgTSMuQ= Original-Received: by 10.115.48.12 with SMTP id a12mr19204460wak.105.1199504208986; Fri, 04 Jan 2008 19:36:48 -0800 (PST) Original-Received: from reforged ( [71.217.198.62]) by mx.google.com with ESMTPS id v35sm25427794wah.19.2008.01.04.19.36.43 (version=SSLv3 cipher=OTHER); Fri, 04 Jan 2008 19:36:48 -0800 (PST) In-Reply-To: X-Mailer: Claws Mail 3.0.2 (GTK+ 2.12.1; i686-pc-linux-gnu) X-detected-kernel: by monty-python.gnu.org: Linux 2.6 (newer, 2) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:86103 Archived-At: --===============1754498399== Content-Type: multipart/signed; boundary="Sig_/tBkXtZsg3oqTdm.Jv_DAVJk"; protocol="application/pgp-signature"; micalg=PGP-SHA1 --Sig_/tBkXtZsg3oqTdm.Jv_DAVJk Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Thu, 03 Jan 2008 04:50:57 -0500 Richard Stallman wrote: > I have found the Emacs community to be one of the most responsive > and skill=3D ed=3D20 > group of developers in open-source, >=20 > Please do not use the term "open source" to describe what Emacs is in. > Emacs is part of the GNU Project, which is part of the free software > movement. To call us "open source" is like callingt Kucinich a > Republican. >=20 > , but trying to straddle all the schisms =3D > to=3D20 > support users is really hard. >=20 > We sometimes adopt features to make it easier for code > to run in the variants of Emacs. But I don't really understand > what you mean by "split the setup" here, I think I can articulate this a bit better now. My interest in this thread revolved around the idea of a more advanced Emacs user being able to help a newer user setup a Emacs environment that is appealing with more features than the default configuration. Helping a new user requires some subtly, as simply dumping a large configuration on a new user does not work well. An older user has had alot of time to add the customizations incrementally and adjust to them incrementally. The new user when they receive such a configuration first has to get the configuration running. If the advanced user has downloaded alot of third-party elisp the configuration file will likely generate errors and abort the loading of the configuration file. The new user also has to integrate the new features and behavior into their workflow which takes time, and is alot easier when done in small pieces. So split the setup means break up the user's .emacs file into parts: config/ .emacs style/ -> spell.el ; spell features -> lisp.el ; lisp programming features the .emacs file is carefully coded to make sure that it has a low risk of errors. Note that the style directory is not included in load-path deliberately. I named the directory style as a metaphor from the world of martial arts. In martial arts the harmonious blend of a set of techniques is often called a "fighting style" or some such thing. In this case turning on, adding, and customizing the various spelling features of Emacs to the point where spelling support is pervasive and well integrated constitutes a modular style of using Emacs. each of these large customization files such as spell.el have this basic fo= rm: phase 1: define a installer phase 2: check dependencies with require phase 3: perform customization My simple load-guard macro trapped errors during loading and suggests a ins= tallation method. The installation method does not necessarily need to be a package manager i= mplemented in elisp. A table that maps features to package names for various package managers is= sufficient. The final piece is a nice Emacs interface to the common package managers. With a configuration split up in the way I have described above it is alot = easier to help another user use and learn the more advanced capabilities of Emacs. The adv= anced configuration is split up into parts like a curriculum. They can turn on all of "Guru Bob= 's" spelling features=20 and integrate them into their workflow without having to learn at the same = time all of his lisp=20 tweaks, and other enhancements. A typical scenario would then go something like this: 1. User request's some help getting their Emacs setup with some of Bob's (G= uru) features. 2. User receives The Guru's modular configuration and installs it. 3. The user chooses a feature set they are going to integrate into their wo= rk-flow, so they move the configuration for the features into the style directory where i= t will be picked up by the core .emacs file. 4. When they start emacs next it will likely not have necessary libraries, = and so It tells them that the configuration is degraded and that they can type "install-= foo" to fetch the necessary parts. 5. install foo determines what package manager is in use on the host, and s= earches the package system for the package names. It displays the search results for the use= r with a interface that generates the correct package manager commands and feeds them to th= e package manager via sudo or su if necessary. 6. with the libraries installed they can load the configuration file again.= Since it aborted when the dependencies weren't met it didn't leave Emacs in a partially c= onfigured state. It doesn't require especially clever code to construct a configuration like= this, just a little bit of elisp and a plan for how the configuration is organized. As= suming that Emacs is a good fit for the user they will likely pick it up fairly quickly, and = soon write their own configuration. Without the beginning of the learning curve being = broken up into steps it is very hard for even a eager new user to comprehend the potential= of Emacs, especially when they are trying to quickly match the productivity of their old environ= ment. The end result is a a middle ground for the new user. Instead of a dilemma = of either starting=20 from scratch and cherry-picking random elisp code without the elisp skills = to integrate the code=20 fragements properly, or choosing a massive jumbo configuration with another= foreboding learning curve and no upgrade path, they can now incrementally adopt advanced featur= es and configuration incrementally. A good question at this point is where does this fit into Emacs ? I have se= en many "Jumbo configs"=20 for java etc. A best practices guide for creating such configurations, alon= g with some modes for the common package managers out there might be useful. > When I hav=3D > e a part > of the emacs setup that is only distributed with some of the > emacs forks, o=3D r none > I split the setup into a separate file. >=20 > so I don't understand the issue. >=20 > Inside the file for spelling support I start it with something > like this: >=20 > What is "the file for spelling support"? I am totally lost. > Do you mean ispell.el? If not that, then what? Hopefully I have explained it a bit better, if not let me know. --Sig_/tBkXtZsg3oqTdm.Jv_DAVJk Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) iD8DBQFHfvq9dfRchrkBInkRAnl2AKCDvtOgzgNI4U7htcOzkrFE7AAIrwCeP9Z3 c4zFyUerRC+oZgU7s3r222A= =alpN -----END PGP SIGNATURE----- --Sig_/tBkXtZsg3oqTdm.Jv_DAVJk-- --===============1754498399== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel --===============1754498399==--