From: Justin F. <je...@ey...> - 2001-06-29 07:26:52
|
Alex: I have downloaded the latest r2 tarball with the "make system" embedded, the slimmed-down Page, and the change in module structure by making X->Init() into a constructor. Now, I don't yet have my arms around this new thingy, but I must express my happiness with make(1) being used, because I can add my own targets for "administrative" matters. FYI, I love make, and probably have 30 targets in typical makefiles for our site(s) administration. Still, and I don't claim that you intended to solve my administrative problems with BC. But, I think that this email will be useful, again, to show what we, a small developer with about 40 sites, are up against. I suppose that there is a philosophical clash, as, to me, BC is designed with a mindset of it being for "one site", while youse guys say, "No, you make different sites with different modules" or some such. There is a wider context, and here it is. The file layout for us, is: --HTTPD_ROOT-- + |-site_name0- |-site_name1- |-site_name2- and so on, for each site, and with virtual servers pointing to site_nameN and for binarycloud: /usr/local/binarycloud/-+ |-user--|-mod---|-site_name- | |-tmpl--|-html--|-masters |-layouts With this structure I have some issues: 1. For the site-specific modules, it is OK because I can avoid name clashes with a subdirectory that is "accommodated" in BC. 2. For the masters, I feel cheated, because I have to add another subdirectory for each site. I am going to have, at least, one "main.tmpl" for each site. I DON'T WANT to name my templates main.acmecorp.tmpl, main.foobiz.tmpl 3. For the layouts, the same problems exist as for the masters. We are going to have a _lot_ of layouts (our company is run by artists) and to avoid name clashes, I don't want to have to have page1.acmecorp.layout page7.xyxbiz.layout page3.foocompany.layout in one directory, ergo the subdir "necessity". 4. For the server root, it is as above, and there is "no problem" 5. Now for any site, with BC, there are at least two trees (minimum) to deal with for those administrative matters such as backing up, archiving, and using CVS. The minimum would be the HTTPD_ROOT/site_name and er, what the whole bloody BC user subtree. 6. How do I work at home, or even at work, with CVS, for example. With the present file layout, I have to have a module rooted at the webserver subdirectory site_name, this is OK. But where do I CVS to work on site-specific modules, or site-specific layouts, or site-specific templates? Do I have to bring over the whole bloody sub-tree starting at BC_PATH/user? I don't want all that. 7. To solve the name clash problem, if I put site_name subdirectories under masters and layouts, I now have three sub-tree "units" for each site. Sure, I can consider these three sub-trees as a "site" in my backup planning, my CVS planning, my development server to production planning. 8. BUT, some sites will use the "common modules" that we wish to develop. So, what do we do, I suppose establish a ./common subdir under ./user/mod, and make this a "node" for our administration needs. That way, I could CVS this sub-tree, backup this subtree, copy to production this subtree et cetera. I donno, I don't have a plan yet. I may have to do some silliness with establishing symbolic links to reduce the complexity of administration, or something else. Can I take risks like overriding things like BC_PATH_USER or BC_PATH_MOD. I don't even want to go there, because you may break me in a future release. I don't know if I am explaining my problems well. Be gentle, and try to understand that I want things to be easy to administrate, it is a huge, flippin' headache in everyday life. So, although I have not thought this out well, it seems that a way to reduce my problems would be -/binarycloud/--+ |-user--|-the_common_stuff_here | |-site1-|-mod--- | | |-tmpl--|-html--|-masters |-layouts |-site2-|-mod--- | | |-tmpl--|-html--|-masters |-layouts |-site3-|-mod--- | | |-tmpl--|-html--|-masters |-layouts Now, I only have 2 trees to deal with for a site (unless I want to work on the common_stuff, I can work at home and checkout things like: site1-bc (site1 tree above) site1-docroot (site1 in the server DOC_ROOT) bcuser (the common stuff) site23-bc site19-docroot or archive these, or delete these, or move these. The above would require some ability of overiding system_constants, or integrate some true user (as in client, not BC user) definitions. Right now, in any index.php for defining a layout file, or a template file, I can't get above the html directory. For modules, I cannot get above ./user/mod. This is not whining. My estimation for BC remains high. It just seems like the anticipated great payoff of using BC is somehow diminished by a greater administrative load, besides the necessity to cd a lot because relative cd'ing is "broken". Regards, -- Justin Farnsworth - Technical Director Eye Integrated Communications 321 South Evans - Suite 203 Greenville, NC 27858 | Tel: (252) 353-0722 |
From: Alby L. <al...@th...> - 2001-06-29 10:45:14
|
Justin Farnsworth: First of all, you're not BC bashing by any means, and I think a bunch of us on the list probably appreciate the example situations in which BC will/does/or could operate. I agree that it is necessary that administration services make our lives as web site developers easier when utilizing a solution like BC that make redundant tasks unecessary. Personally, I don't really like the idea of multiple instances of BC as they will be duping the same utilities, however, I don't like the idea of complex dir trees for simple sites either, with a template here and a module there in seemingly unrelated directories. So, I thought it might be possible to implement a more-user-friendly (or was it a more perfect union??) schema. Whereas the dir tree for BC _as it stands_ has been engineered for various reasons, it doesn't quite fit with a comfortable administration structure, could a front end be built for administering the sites that hides the complexities behind the scenes? I could be fooling myself with this suggestion, but have always found that even though many projects are mission critical, the future is so very unforetold with software it helps to take the time and make administration easier, even if it takes more time to code up. I could volunteer to work on this type of thing, unfortunately I haven't even come close to getting BC2 installed. I gave up my last linux box a month ago to fun full speed on my current development, which I'll tell about in my next email for its peculiar attributes with relation to BC2. Alby Lash al...@th... |
From: Justin F. <je...@ey...> - 2001-06-29 13:14:22
|
Alby Lash wrote: [==snip, snip ==] > Personally, I don't really like the idea of multiple instances of BC as they > will be duping the same utilities, however, I don't like the idea of complex [== snip, snip ==] Me neither. The analogy is that I have to buy 18 Swiss Army Knives for each of the 18 blades/screwdrivers/can opener/corkscrew/scissors/ nail file/loupe/keyhole saw/tweezers/and-whatever-else, and then when I climb the Matterhorn, I have to take all 18 in my pocket, and use one for each "task". Il n'y pas de sense de tout ca... _jef -- Justin Farnsworth Eye Integrated Communications 321 South Evans - Suite 203 Greenville, NC 27858 | Tel: (252) 353-0722 |
From: Alex B. <en...@tu...> - 2001-06-29 17:25:08
|
> Alby Lash wrote: > > [==snip, snip ==] >> Personally, I don't really like the idea of multiple instances of BC as they >> will be duping the same utilities, however, I don't like the idea of complex > [== snip, snip ==] > > Me neither. The analogy is that I have to buy 18 Swiss Army Knives > for each of the 18 blades/screwdrivers/can opener/corkscrew/scissors/ > nail file/loupe/keyhole saw/tweezers/and-whatever-else, and then when I > climb > the Matterhorn, I have to take all 18 in my pocket, and use one > for each "task". Il n'y pas de sense de tout ca... moi aussi, So I think a "binarycloud core" sharing meahanism is in order. _a -- alex black, ceo en...@tu... the turing studio, inc. http://www.turingstudio.com vox+510.666.0074 fax+510.666.0093 |
From: Alex B. <en...@tu...> - 2001-06-29 17:19:14
|
> First of all, you're not BC bashing by any means, and I think a bunch of us > on the list probably appreciate the example situations in which BC > will/does/or could operate. I agree that it is necessary that administration > services make our lives as web site developers easier when utilizing a > solution like BC that make redundant tasks unecessary. Exactly! > Personally, I don't really like the idea of multiple instances of BC as they > will be duping the same utilities, however, I don't like the idea of complex > dir trees for simple sites either, with a template here and a module there > in seemingly unrelated directories. So, I thought it might be possible to > implement a more-user-friendly (or was it a more perfect union??) schema. > Whereas the dir tree for BC _as it stands_ has been engineered for various > reasons, it doesn't quite fit with a comfortable administration structure, > could a front end be built for administering the sites that hides the > complexities behind the scenes? I disagree - the directory structure that you have to actually deal with on a daily basis is fairly simple: conf/ db/ htdocs/ lang/ lib/ mod/ roles/ tmpl/ and you can afford not to pay attention to half even of those. so, to support many sites, we need to be able to have the make system and Init recognize that there may be multiple, named user trees. > I could be fooling myself with this suggestion, but have always found that > even though many projects are mission critical, the future is so very > unforetold with software it helps to take the time and make administration > easier, even if it takes more time to code up. Agreed. I'd like to do that after the system has stopped moving. > I could volunteer to work on this type of thing, unfortunately I haven't > even come close to getting BC2 installed. I gave up my last linux box a > month ago to fun full speed on my current development, which I'll tell about > in my next email for its peculiar attributes with relation to BC2. Cool :) _a -- alex black, ceo en...@tu... the turing studio, inc. http://www.turingstudio.com vox+510.666.0074 fax+510.666.0093 |
From: Alex B. <en...@tu...> - 2001-06-29 17:13:15
|
> Now, I don't yet have my arms around this new thingy, but > I must express my happiness with make(1) being used, because > I can add my own targets for "administrative" matters. FYI, > I love make, and probably have 30 targets in typical > makefiles for our site(s) administration. Yessem :) > Still, and I don't claim that you intended to solve my > administrative problems with BC. But, I think that this > email will be useful, again, to show what we, a small > developer with about 40 sites, are up against. > I suppose that there is a philosophical clash, as, to > me, BC is designed with a mindset of it being for > "one site", while youse guys say, "No, you make different > sites with different modules" or some such. > > There is a wider context, and here it is. The file layout > for us, is: > > --HTTPD_ROOT-- + > |-site_name0- > |-site_name1- > |-site_name2- > > and so on, for each site, and with virtual servers pointing > to site_nameN > > and for binarycloud: > > /usr/local/binarycloud/-+ > |-user--|-mod---|-site_name- > | > |-tmpl--|-html--|-masters > |-layouts I think much of this is moot, in the sense that I agree that we should support multiple user/ directories in the make system, but at the moment we don't. If you want to do some stuff related to that, I'm happy to incorporate the code :) > With this structure I have some issues: > 1. For the site-specific modules, it is OK because > I can avoid name clashes with a subdirectory > that is "accommodated" in BC. > 2. For the masters, I feel cheated, because I have > to add another subdirectory for each site. > I am going to have, at least, one "main.tmpl" > for each site. I DON'T WANT to name my > templates main.acmecorp.tmpl, main.foobiz.tmpl Exactly. Which is why you should have a separate user/ directory for each site with a unique name. > 3. For the layouts, the same problems exist as for > the masters. We are going to have a _lot_ of > layouts (our company is run by artists) and > to avoid name clashes, I don't want to have > to have > page1.acmecorp.layout > page7.xyxbiz.layout > page3.foocompany.layout > in one directory, ergo the subdir "necessity". Yep, samep. > 4. For the server root, it is as above, and there > is "no problem" > 5. Now for any site, with BC, there are at least > two trees (minimum) to deal with for those > administrative matters such as backing up, > archiving, and using CVS. The minimum > would be the HTTPD_ROOT/site_name and > er, what the whole bloody BC user subtree. > 6. How do I work at home, or even at work, with > CVS, for example. With the present file > layout, I have to have a module rooted at > the webserver subdirectory site_name, this > is OK. But where do I CVS to work on > site-specific modules, or site-specific > layouts, or site-specific templates? > Do I have to bring over the whole bloody > sub-tree starting at BC_PATH/user? I > don't want all that. You _do_ want all that, because it will all be different. > 7. To solve the name clash problem, if I put site_name > subdirectories under masters and layouts, > I now have three sub-tree "units" for each > site. Sure, I can consider these three > sub-trees as a "site" in my backup planning, > my CVS planning, my development server to > production planning. I think that would probably be a nightmare :) > 8. BUT, some sites will use the "common modules" > that we wish to develop. So, what do we > do, I suppose establish a ./common subdir > under ./user/mod, and make this a "node" > for our administration needs. That way, > I could CVS this sub-tree, backup this > subtree, copy to production this subtree > et cetera. That would work. you can also run symlinks in cvsroot, so if you do a commit on common in one directory, the change is reflected for all directories that are linked. > I donno, I don't have a plan yet. I may have to do > some silliness with establishing symbolic links to > reduce the complexity of administration, or something > else. I think it's just a question of "making make" aware of the fact that a developer might want to have multiple user/trees. > Can I take risks like overriding things like > BC_PATH_USER or BC_PATH_MOD. I don't even want to > go there, because you may break me in a future > release. Re: constants, probably not. But again, I think the best way to do this is to explicitly support it, rather than hack the system. > I don't know if I am explaining my problems well. Be > gentle, and try to understand that I want things > to be easy to administrate, it is a huge, flippin' > headache in everyday life. So, although I have not > thought this out well, it seems that a way to > reduce my problems would be > > -/binarycloud/--+ > |-user--|-the_common_stuff_here > | > |-site1-|-mod--- > | | > |-tmpl--|-html--|-masters > |-layouts > |-site2-|-mod--- > | | > |-tmpl--|-html--|-masters > |-layouts > |-site3-|-mod--- > | | > |-tmpl--|-html--|-masters > |-layouts > > Now, I only have 2 trees to deal with for a site (unless I > want to work on the common_stuff, I can work at > home and checkout things like: > site1-bc (site1 tree above) > site1-docroot (site1 in the server DOC_ROOT) > bcuser (the common stuff) > site23-bc > site19-docroot I recommend: binarycloud/ site_name/ mod/ common/(foo) tmpl/ html/ masters/ layouts/ site_name/ mod/ common/(foo) tmpl/ html/ masters/ layouts/ etc. > or archive these, or delete these, or move these. > The above would require some ability of overiding > system_constants, or integrate some true > user (as in client, not BC user) definitions. > Right now, in any index.php for defining a layout > file, or a template file, I can't get above the > html directory. For modules, I cannot get above > ./user/mod. > > This is not whining. My estimation for BC remains > high. It just seems like the anticipated great > payoff of using BC is somehow diminished by a > greater administrative load, besides the necessity > to cd a lot because relative cd'ing is "broken". Again, this is all just a metter of supporting the stuff you're talking about. The make system you're looking at supports only a single user/ tree. It isn't that difficult to change the make system and some other code to accommodate what you need, but in that last cvs snap you are not looking at the solution :) _a -- alex black, ceo en...@tu... the turing studio, inc. http://www.turingstudio.com vox+510.666.0074 fax+510.666.0093 |