From: Justin F. <je...@ey...> - 2001-06-27 13:58:04
|
Alex: We are still futzing along with development of modules that will ultimately be used in our production sites, with the r2 constraints. Our enthusiasm for the BC model and the implications for the future, remains unabated. Now, one of the things that we feel a "need" for is a way to pass data downstream from one module to another. It may be that we are using BC in a way that is unanticipated, but our way, right now, is what we think best. Here is an example to illustrate. Let us say that we are trying to give the location of the nearest ACME CORP store to the site user, based upon the entry of the site user's ZIP code. Our module load order may be, after the round trip passing in the ZIP: 1. Module with some decoration output 2. Module to merely compute great circle distance, no output 3. Module to get the nearest store out of the database, no output 4. Module with some decoration and output of result For this example data has to be dropped into global scope, Hansel and Gretel style, by module 2 for module 3. Then data has to be put into global scope by module 3 for module 4. THIS IS NO PROBLEM with the facility of BC. But, in a production environment, when our business is going to create numerous modules that maybe do tasks that only differ slightly, and depend upon data "passed in" from a previous manipulation of an upstream module, we have to agree among ourself as to the place where this data will be picked up, and results dropped. So, we may do something like, everything will be stuck in the EYE_LUNCHBOX array/data structure, and comments will be put in the module source as to where it expects things, and where it will drop things in the EYE_LUNCHBOX datastructure/array. This is still no problem. However, one of the advantages of BC will be the contribution or interchange with other developers of BC modules. Probably every shop will have its "own conventions", and foreign modules may have to be tweaked slightly. As I said, this is no problem, but I think it would be a good idea to consider that BC supplies upon initialization a standard place for data passing. Sure, we could do it, and put "EYE_LUNCHBOX[]" into our copy of Init. But, I would rather you supply the facility, and that this would be available for all BC users. You are not going to dictate that data to be passed has to go there. But, by you setting up this facility, at least everybody could start using it. I don't think this is a trivial request, because if BC grows up to be big, and people "use" data dropping and picking up from a built-in standard place, the ultimate interchange of code between developers would become easier. Regards, -- Justin Farnsworth Eye Integrated Communications 321 South Evans - Suite 203 Greenville, NC 27858 | Tel: (252) 353-0722 |
From: Odysseas T. <ody...@ya...> - 2001-06-27 16:17:38
|
Justin, Thats a good suggestion and we will look into creating a standard communication "bus", where modules can talk to or listen in. Keep in mind though that such a facility is more applicable when you have indendently created modules as opposed to use it for the communication between the "pieces" of your application. To give an example: my.yahoo could use a similar "bus" architecture to let the various modules in my.yahoo page be aware of stock tickers that you are adding in your portfolio. For example the stock news module will prioritize high news about companies whose ticker you are monitoring in the stock portfolio module. However thats not how Yahoo did it. It decided to see the two modules (portfolio, stock news etc) as just viewports of one integrated application. All these viewports are agreeing on common structures that are either in the DB or in Session vars. There is no reason to argue which approach is good or bad. Simply understand that there contexts where one may be more applicable than the other. odysseas --- Justin F arnsworth <je...@ey...> wrote: > Alex: > > We are still futzing along with development of > modules that > will ultimately be used in our production sites, > with the > r2 constraints. Our enthusiasm for the BC model and > the > implications for the future, remains unabated. > > Now, one of the things that we feel a "need" for is > a way > to pass data downstream from one module to another. > It > may be that we are using BC in a way that is > unanticipated, > but our way, right now, is what we think best. > > Here is an example to illustrate. Let us say that > we are > trying to give the location of the nearest ACME CORP > store > to the site user, based upon the entry of the site > user's > ZIP code. Our module load order may be, after the > round > trip passing in the ZIP: > > 1. Module with some decoration output > 2. Module to merely compute great circle distance, > no output > 3. Module to get the nearest store out of the > database, no output > 4. Module with some decoration and output of result > > > For this example data has to be dropped into global > scope, Hansel and Gretel style, by module 2 for > module 3. > Then data has to be put into global scope by module > 3 > for module 4. > > THIS IS NO PROBLEM with the facility of BC. But, in > a production environment, when our business is going > to > create numerous modules that maybe do tasks that > only > differ slightly, and depend upon data "passed in" > from > a previous manipulation of an upstream module, we > have > to agree among ourself as to the place where this > data > will be picked up, and results dropped. So, we may > do something like, everything will be stuck in > the EYE_LUNCHBOX array/data structure, and comments > will be put in > the module source as to where it expects things, > and where it will drop things in the EYE_LUNCHBOX > datastructure/array. > > This is still no problem. However, one of the > advantages > of BC will be the contribution or interchange with > other > developers of BC modules. Probably every shop will > have > its "own conventions", and foreign modules may have > to > be tweaked slightly. > > As I said, this is no problem, but I think it would > be a good idea to consider that BC supplies upon > initialization a standard place for data passing. > Sure, we could do it, and put "EYE_LUNCHBOX[]" into > our copy of Init. But, I would rather you supply > the > facility, and that this would be available for all > BC users. You are not going to dictate that data > to be passed has to go there. But, by you setting > up this facility, at least everybody could start > using it. > > I don't think this is a trivial request, because if > BC grows up to be big, and people "use" data > dropping > and picking up from a built-in standard place, the > ultimate interchange of code between developers > would > become easier. > > Regards, > -- > Justin Farnsworth > Eye Integrated Communications > 321 South Evans - Suite 203 > Greenville, NC 27858 | Tel: (252) 353-0722 > > _______________________________________________ > binarycloud-dev mailing list > bin...@li... > http://lists.sourceforge.net/lists/listinfo/binarycloud-dev __________________________________________________ Do You Yahoo!? Get personalized email addresses from Yahoo! Mail http://personal.mail.yahoo.com/ |
From: Alex B. <en...@tu...> - 2001-06-27 17:33:12
|
> Here is an example to illustrate. Let us say that we are > trying to give the location of the nearest ACME CORP store > to the site user, based upon the entry of the site user's > ZIP code. Our module load order may be, after the round > trip passing in the ZIP: > > 1. Module with some decoration output > 2. Module to merely compute great circle distance, > no output > 3. Module to get the nearest store out of the > database, no output > 4. Module with some decoration and output of result hi Justin, that sounds like one module with a library to me. so, you have the library compute great circle, do a query for the store, spit it into a template, and output. I echo Odysseas' response re: a view on a set... though I will now try and create scenarios in my head for needing module communication. :) > For this example data has to be dropped into global > scope, Hansel and Gretel style, by module 2 for module 3. > Then data has to be put into global scope by module 3 > for module 4. > > THIS IS NO PROBLEM with the facility of BC. But, in > a production environment, when our business is going to > create numerous modules that maybe do tasks that only > differ slightly, and depend upon data "passed in" from > a previous manipulation of an upstream module, we have > to agree among ourself as to the place where this data > will be picked up, and results dropped. So, we may > do something like, everything will be stuck in > the EYE_LUNCHBOX array/data structure, and comments will be put in > the module source as to where it expects things, > and where it will drop things in the EYE_LUNCHBOX > datastructure/array. what do you think about the above? > This is still no problem. However, one of the advantages > of BC will be the contribution or interchange with other > developers of BC modules. Probably every shop will have > its "own conventions", and foreign modules may have to > be tweaked slightly. it is my hope that the tweaking is done with subclasses and custom templates only, so everyone can keep pretty clean installs. > As I said, this is no problem, but I think it would > be a good idea to consider that BC supplies upon > initialization a standard place for data passing. > Sure, we could do it, and put "EYE_LUNCHBOX[]" into > our copy of Init. But, I would rather you supply the > facility, and that this would be available for all > BC users. You are not going to dictate that data > to be passed has to go there. But, by you setting > up this facility, at least everybody could start > using it. > > I don't think this is a trivial request, because if > BC grows up to be big, and people "use" data dropping > and picking up from a built-in standard place, the > ultimate interchange of code between developers would > become easier. I think you may be right, though I need to come up with a complex example that would force me into it :) _a -- alex black, ceo en...@tu... the turing studio, inc. http://www.turingstudio.com vox+510.666.0074 fax+510.666.0093 |
From: Justin F. <je...@ey...> - 2001-06-27 20:33:00
|
Alex Black wrote: > hi Justin, > > that sounds like one module with a library to me. Un, uh > so, you have the library compute great circle, > do a query for the store, > spit it into a template, > and output. > I echo Odysseas' response re: a view on a set... though I will now try and > create scenarios in my head for needing module communication. :) ....... > > I don't think this is a trivial request, because if > > BC grows up to be big, and people "use" data dropping > > and picking up from a built-in a standard place, the > > ultimate interchange of code between developers would > > become easier. > > I think you may be right, though I need to come up with a complex example > that would force me into it :) ---------------------------- Now this is NOT the start of a polemic. And, remember, the end result of this request is one line in Init establishing an array called, for example, BC_LUNCHBOX, in global scope. This would not, I allege, cause you to be injustly accused of forcing policy. And now, dah, dah, for the "complex example" that intersects with, shall we say, maintainability and administration of 500 web sites that need/use the great circle distance between two ZIP's. 1. This site for bird lovers-in-detail has a computation ability to determine how long certain types of birds take to fly between cities. The distance is computed, then a table is looked into for average MPH for a particular type of bird. 2. This site for bird lovers-in-extreme-detail has the same thing, but, but, they want the site to go to the US weather bureau and get the current prevailing wind, compensate for the flight direction, and give the time for flight. 3. This site for bird lovers-in-really-extreme-detail has the same thing, but, but, they want the site to go to the US weather bureau and get the current prevailing wind, compensate for the flight direction, and THEN take into consideration the day of the year because the cuckolded titmouse is known to fly faster in the summer than the winter -- and give the time for flight. 4. This site for glider pilots wants the same-kind-of thing but wants a look-up table for glider types. n-1. n. 500. Yes, I know, I could do some libraries, and maybe I am thinking wrongly. But, by simply loading in sequence a set of maybe 3-5 modules I could solve a _lot_ of problems by refining the granularity if I have data passing. I sure as hell am not going to design 500 different modules. I will pay the price of the exposure of having to design 500 different layouts. I also, by module loading order, have the ability of dynamic "switching" by, say, loading different look-up tables, or even different methods of, say, Great Circle computations, something that may be necessary in Northern Canada where longitude convergence makes certain algorithms less accurate than others. Fantasy, you say? Sure. But I seem to believe that the correct "way" to use BC is to atomize down more than you. do. BC is a Lego set for me, and I like to build to finer detail, therefore, my perception of BC is that it allows to build with small pieces, not large pieces that are "application size". NOW, I STILL DON'T know what these mystical "Managers" are going to look like. Are they going to allow me to do generic queries for ZIP on potentially 500 databases of different names and ZIP imbedded in potentially 10 different field names in potentially 10 different table names, AND STILL USE SOMETHING LIKE one generic, but configurable, module that solves all requirements from 500 customers? I donno. I certainly can imagine that for some reason or other, I would wish to simply insert one extremely "thin" module in between module 3 and module 4 merely to use Init() (Output just returns) to go look something up in a database and deposit the data behind it for use, or for overriding data that the previous module computed, that succeeding modules _may_ expect. And, I have not even addressed the great promise of BC that is important for me, namely the hope that I will be able to snarf BC modules from other developers, while contributing modules for public consumption, WHILE NOT having to, say, install 100 libraries that are necessary for these feriners-gewritten-Kode. I think that a data-passing facility would allow greater compatability for exchange. I donno. I have started thinking this way, I will keep thinking about it. Maybe I don't need data passing to trailing modules... It seems like it would be useful, right now. Regards, -- Justin Farnsworth Eye Integrated Communications 321 South Evans - Suite 203 Greenville, NC 27858 | Tel: (252) 353-0722 |
From: Alex B. <en...@tu...> - 2001-06-27 21:18:38
|
> Now this is NOT the start of a polemic. And, remember, the > end result of this request is one line in Init establishing > an array called, for example, BC_LUNCHBOX, in global scope. > This would not, I allege, cause you to be injustly accused > of forcing policy. it would likely be a class, but I did a little more thinking with odysseas about this one: -a) given that you control load order, you can just have the modules talk to themselves. -b) yes, we could make a simple class, and yes, we may well end up doing that. but at the moment I don't see the reason. say you did exactly what you described in your earlier mail. all you would need to do is get the property from page. > And now, dah, dah, for the "complex example" that intersects > with, shall we say, maintainability and administration of > 500 web sites that need/use the great circle distance > between two ZIP's. cool! > 1. This site for bird lovers-in-detail has a computation > ability to determine how long certain types of > birds take to fly between cities. The distance > is computed, then a table is looked into for > average MPH for a particular type of bird. Holy crap that's esoteric! I love it! > 2. This site for bird lovers-in-extreme-detail has > the same thing, but, but, they want the site > to go to the US weather bureau and get the current > prevailing wind, compensate for the flight direction, > and give the time for flight. Whee! > 3. This site for bird lovers-in-really-extreme-detail has > the same thing, but, but, they want the site > to go to the US weather bureau and get the current > prevailing wind, compensate for the flight direction, > and THEN take into consideration the day of the year > because the cuckolded titmouse is known to fly faster > in the summer than the winter -- and give the time for flight. Ok. > 4. This site for glider pilots wants the same-kind-of thing > but wants a look-up table for glider types. > > n-1. > n. > 500. > > Yes, I know, I could do some libraries, and maybe I am thinking > wrongly. But, by simply loading in sequence a set of maybe > 3-5 modules I could solve a _lot_ of problems by refining the > granularity if I have data passing. Wait, why? Why would you not have a library class that you can send some params lik wind speed, bird type, bird mph, etc and get a result back? How about a simpler example: I have a map module. It displays a map of some address, say a defailt address initially. On the same page, I have a "customer display" module. That contains some address info. Say I wanted to have the map module display the customer location based on the customer being displayed in the other modules. Why not have the customer modules make that variable available in itself? Then we load the customer module first, and the map module looks at the customer modules and displays that address. What I'm trying to say is you don't need that global array, but you can have the modules directly talk to one another. Eliminate the bureaucracy, as it were. > I sure as hell am not going to design 500 different modules. > I will pay the price of the exposure of having to design 500 > different layouts. I also, by module loading order, have the > ability of dynamic "switching" by, say, loading different > look-up tables, or even different methods of, say, Great > Circle computations, something that may be necessary in > Northern Canada where longitude convergence makes certain > algorithms less accurate than others. Right, but again I think that application belongs in a lib. > Fantasy, you say? Sure. But I seem to believe that the > correct "way" to use BC is to atomize down more than you. I think so. But the point about BC is you _can_ build your original structure. That's not how I would do it but that's not the point. You could build all those modules, and have them talk to each other by getting variables from each module class. That would work fine. > do. BC is a Lego set for me, and I like to build to finer > detail, therefore, my perception of BC is that it allows > to build with small pieces, not large pieces that are > "application size". You can build both! > NOW, I STILL DON'T know what these mystical "Managers" are > going to look like. Are they going to allow me to do > generic queries for ZIP on potentially 500 databases of > different names and ZIP imbedded in potentially 10 > different field names in potentially 10 different table > names, AND STILL USE SOMETHING LIKE one generic, but > configurable, module that solves all requirements from > 500 customers? I donno. I certainly can imagine that Yes. > for some reason or other, I would wish to simply insert > one extremely "thin" module in between module 3 and > module 4 merely to use Init() (Output just returns) > to go look something > up in a database and deposit the data behind it > for use, or for overriding data that the previous > module computed, that succeeding modules _may_ > expect. Right! and you can do that. > And, I have not even addressed the great promise of BC that > is important for me, namely the hope that I will be > able to snarf BC modules from other developers, while > contributing modules for public consumption, WHILE > NOT having to, say, install 100 libraries that are > necessary for these feriners-gewritten-Kode. I think > that a data-passing facility would allow greater > compatability for exchange. I completely agree! But I don't see the need for a controlling class for this stuff. I think you can just have the modules talk directly to each other. no reason to put in an intermediary. > I donno. I have started thinking this way, I will > keep thinking about it. Maybe I don't need data > passing to trailing modules... It seems like it > would be useful, right now. You absolutely do need it. But, you can do it now :) _a -- alex black, ceo en...@tu... the turing studio, inc. http://www.turingstudio.com vox+510.666.0074 fax+510.666.0093 |
From: Justin F. <je...@ey...> - 2001-06-27 23:45:56
|
Alex: Ummm, this discussion/interchange has been interesting for me. Lordy, there are things I haven't thought about that BC is going to allow. This bloody BC is as accommodating as a Bangkok cathouse. I have to confess that I didn't even consider a 1st-loaded library class to serve for my, er, what shall I say, "global-but-not-global-scope" storage place. In a way, I have sinned by suggesting global scope, something that is a no-no in C. Mea culpa. And, well, I am starting to think about the wonderful possibilities of calling $some_module->Init($options) from elsewhere (anywhere if loaded later) just to get different data from that module's Init(), that, with an option "directive", would store it in, say, a variable in a 1st-loaded library class variable. Like you say, of course, these mothers can already talk globally and tete-a-tete. I see now that I don't need a global BC_LUNCHBOX which now seems to appear to me as a kind of vulgar cut buffer. [NOW DEPRECATED] I can see/understand your "dilemma" about possibly establishing a kind of standard class/library that is loaded on initialization by BC. What I hope is that the design will somehow be such that module writers all over the place will _tend_ to do data passing in a kind of "standard" way, that will allow a minimum of rewriting for local conditions. This is the ultimate attractiviness of BC for someone, who, for example, needs some M$Word guru somewhere, someplace, to contribute a WORD.DOC to HTML translation module. I certainly could not do it, and therefore I am going to have to depend upon the kindness of strangers. Don't let me slow you down on unimportant matters right now, but, what is going to be the infrastructure or place for contributed modules? We fantisize a lot here about BC. We were blue-sky-ing the other day about a kind of "Module Browser", and an application that could select modules and then build a site. We could put this on a laptop and Marketing could prototype a site on the spot with a customer. The PROBLEM is, shall we say, is that living here in the South, the customer would likely say, "Sheeeat, I ain't a-gonna pay you XX thousand fer that, ya jes built it in 5 minutes....". That last paragraph was for levity only. Regards, -- Justin Farnsworth Eye Integrated Communications 321 South Evans - Suite 203 Greenville, NC 27858 | Tel: (252) 353-0722 |
From: Alex B. <en...@tu...> - 2001-06-28 00:13:00
|
> Ummm, this discussion/interchange has been interesting for > me. Lordy, there are things I haven't thought about that > BC is going to allow. This bloody BC is as accommodating > as a Bangkok cathouse. I have to confess that I didn't > even consider a 1st-loaded library class to serve for my, > er, what shall I say, "global-but-not-global-scope" storage place. > In a way, I have sinned by suggesting global scope, > something that is a no-no in C. Mea culpa. I'm not entirely convinced yet that a core class isn't necessary, but so _far_ I haven't been able to find any conditions in my head that would make its existence necessary. We'll see. > And, well, I am starting to think about the wonderful > possibilities of calling $some_module->Init($options) > from elsewhere (anywhere if loaded later) just to get > different data from that module's Init(), that, with an > option "directive", would store it in, say, a variable in a > 1st-loaded library class variable. Like you say, > of course, these mothers can already talk globally > and tete-a-tete. I see now that I don't need a > global BC_LUNCHBOX which now seems to appear to me as > a kind of vulgar cut buffer. [NOW DEPRECATED] hehe Note that Init() no longer exists. it's the constructor now instead. Also, you would probably want to do the "passing" with class variables in the module: $this->moo; which would end up being something like $Page->modules[x]->moo (or something, I didn't look) > I can see/understand your "dilemma" about possibly > establishing a kind of standard class/library that is > loaded on initialization by BC. What I hope is that > the design will somehow be such that module writers > all over the place will _tend_ to do data passing in > a kind of "standard" way, that will allow a minimum > of rewriting for local conditions. This is the ultimate attractiviness > of BC for someone, who, for example, needs some M$Word guru > somewhere, someplace, to contribute a WORD.DOC to > HTML translation module. I certainly could not do it, > and therefore I am going to have to depend upon the > kindness of strangers. Word to html is pretty much covered, I have an applescript _now_ that cleans xml+html+goober ms word html export. That will become php, and part of something else, which will allow joe schmoe to paste in a word doc html export and get clean code out the other end. It is doable! I can see the liiiiiiiiiiiiiight! > Don't let me slow you down on unimportant matters right > now, but, what is going to be the infrastructure > or place for contributed modules? I have considered a pear-ish infrastructure far into the future, but to be honest it should be only a question of gathering developers to make binarycloud more of a tool than brochureware. Installing modules would really be like "tar -xzf foo.tgz ../binarycloud/user/mod/" and have a nice day. if you don't like the module: rm -rf ../binarycloud/user/mod/foo/ there will be shell scripts for doing install/remove automatically (and maybe even a browser interface or something) For binarycloud, I imagine a directory of user/contributors, a cvs browser, a bug tracker, and a module repository. probably forums, too. > We fantisize a lot here about BC. We were blue-sky-ing > the other day about a kind of "Module Browser", and > an application that could select modules and then > build a site. We could put this on a laptop and > Marketing could prototype a site on the spot with > a customer. The PROBLEM is, shall we say, is that > living here in the South, the customer would likely > say, "Sheeeat, I ain't a-gonna pay you XX thousand fer > that, ya jes built it in 5 minutes....". Though, uh, you could actually do that :) > That last paragraph was for levity only. But, you could :) _a -- alex black, ceo en...@tu... the turing studio, inc. http://www.turingstudio.com vox+510.666.0074 fax+510.666.0093 |
From: Michael K. <mi...@ta...> - 2001-06-28 00:18:29
|
> > We fantisize a lot here about BC. We were blue-sky-ing > the other day about a kind of "Module Browser", and > an application that could select modules and then > build a site. We could put this on a laptop and > Marketing could prototype a site on the spot with > a customer. The PROBLEM is, shall we say, is that > living here in the South, the customer would likely > say, "Sheeeat, I ain't a-gonna pay you XX thousand fer > that, ya jes built it in 5 minutes....". > Right on - that's the BIGGEST damn problem we face. Levity aside, it's a real problem. Almost makes you NOT want to bother creating cool tools to do stuff quickly, if you can't turn around projects quickly cause people think it's not 'worth it' if you can deliver something on time with no major show stopping bugs. But coming up with cool tools is still, well, so cool... :) Carry on. |
From: Seth B. <se...@su...> - 2001-06-28 00:29:30
|
heh i already had that dream like 2 years ago...now i'm just waiting for bc2 to try and build it ;) alex if you need help with that lemme know, i'd be glad to share ideas with you that i've had in the past. //.seth b --> www.subimage.com > -----Original Message----- > From: bin...@li... > [mailto:bin...@li...]On Behalf Of Michael > Kimsal > Sent: Wednesday, June 27, 2001 5:23 PM > To: bin...@li... > Subject: Re: [binarycloud-dev] A Request for "A Standard" > > > > > > > We fantisize a lot here about BC. We were blue-sky-ing > > the other day about a kind of "Module Browser", and > > an application that could select modules and then > > build a site. We could put this on a laptop and > > Marketing could prototype a site on the spot with > > a customer. The PROBLEM is, shall we say, is that > > living here in the South, the customer would likely > > say, "Sheeeat, I ain't a-gonna pay you XX thousand fer > > that, ya jes built it in 5 minutes....". > > > > > Right on - that's the BIGGEST damn problem we face. Levity aside, > it's a real problem. Almost makes you NOT want to bother creating > cool tools to do stuff quickly, if you can't turn around projects > quickly cause people think it's not 'worth it' if you can deliver > something on time with no major show stopping bugs. > > But coming up with cool tools is still, well, so cool... :) > > Carry on. > > > > > > _______________________________________________ > binarycloud-dev mailing list > bin...@li... > http://lists.sourceforge.net/lists/listinfo/binarycloud-dev > |
From: Alex B. <en...@tu...> - 2001-06-28 00:58:51
|
> heh i already had that dream like 2 years ago...now i'm just waiting for bc2 > to try and build it ;) > > alex if you need help with that lemme know, i'd be glad to share ideas with > you that i've had in the past. > > //.seth b --> www.subimage.com go! any and all... :) _alex -- alex black, ceo en...@tu... the turing studio, inc. http://www.turingstudio.com vox+510.666.0074 fax+510.666.0093 |
From: Jimmy H. <ji...@ha...> - 2001-06-28 04:35:35
|
I can't wait to see r2 released.... :) Come on alex !!! :) |
From: Alex B. <en...@tu...> - 2001-06-28 17:53:25
|
make will be out soon, everyone... doing some other misc foo, but I expect to have that release mucho soon-o :) _a > I can't wait to see r2 released.... :) > Come on alex !!! :) > > > > _______________________________________________ > binarycloud-dev mailing list > bin...@li... > http://lists.sourceforge.net/lists/listinfo/binarycloud-dev > -- alex black, ceo en...@tu... the turing studio, inc. http://www.turingstudio.com vox+510.666.0074 fax+510.666.0093 |
From: Jimmy H. <ji...@ha...> - 2001-07-05 18:07:39
|
Alex.... Still waiting... Can I do a site with r2 now or is it still in 'alpha' / preview stage? |
From: Alby L. <al...@th...> - 2001-07-05 19:11:57
|
Whilst waiting for bc2 to be ready for production - I'm doing some restructuring of my current project and I'm trying to isolate all of my sql commands into a few dynamic functions. For the most part, I'll be doing a lot of updating, inserting, and querying - big surprise I know. At any rate, I was thinking of building some tables that contain information about the _real_ db structure, so that when I do an insert on a variable driven table definition, I would be able to cycle through the field titles and build my sql call that way. However, I thought, why not just grab the table structure from the tables themselves using the mysql_fetch_field command. So, when I was thinking about this - bringing the db structure out in pieces to a simple dynamic sql query builder - I felt it sounded very much like what I thought the BC metabase to be. However, I did some poking around in the db "metabase" code and I couldn't find that much that made sense from that perspective. Anyone want to try to explain to me what the metabase portion on BC is up to, and if there is anything like what I am describing in BC2? Also, I came across this often used function "case" that I couldn't find in the php manual. Anyone know what this does? It seems to have something to do with the data type thats in the table field. Thanks, Albert Lash al...@th... |
From: John D. <jo...@we...> - 2001-07-05 19:48:42
|
Just to be clear, metabase is a separate project that binarycloud is embedding. From it's website (http://phpclasses.upperdesign.com/browse.html/package/20): Description: Package of classes that provide DBMS independent access and management of databases. Features: o Set of functions that call the selected DBMS driver objects functions supporting when possible: * Database connection setup * Operation error handling * Query constant data conversion * Direct queries * Prepared queries * Query result rows random access * Retrieve a limit range of rows of a SELECT query. * Transactions * Database object creation (tables, indexes, sequences) * DBMS driver supported feature query etc.. metabase is not what is responsible for actually generating your queries. The only place (that I'm familiar with) where queries are generated at run-time are in the EntityManager (and even then, only when we _can't_ use a compile-time generated query), which hasn't actually made its way into binarycloud at this point. But, generating queries requires a context. In the EntityManager, your context is your entities. A predefined set of queries can be generated (mostly at compile time, there's no reason to do them at run-time) for adding, deleting, updating, and fetching, based on the fields which you have designated as being the fields you want to be exposed to the world. You wouldn't in most cases, want to run mysql_fetch_field() at run-time and just interate over everything you find, as that would run contradictory to defining your entities at development time, and cause a lot of lost functionality. That's not to say, however, that there shouldn't be something that you could run on a particular table to generate an entity definition, which you can then edit/fine-tune. On the other hand, maybe it would be more correct to generate the SQL to make the tables based on the entity definitions, instead of the other way around. That could allow for some pretty cool shit, such as automatic schema migrations, true database independance, etc.. As to your question about the case control structure, see: www.php.net/switch John On Thu, 5 Jul 2001, Alby Lash wrote: > Whilst waiting for bc2 to be ready for production - I'm doing some > restructuring of my current project and I'm trying to isolate all of my sql > commands into a few dynamic functions. For the most part, I'll be doing a > lot of updating, inserting, and querying - big surprise I know. > > At any rate, I was thinking of building some tables that contain information > about the _real_ db structure, so that when I do an insert on a variable > driven table definition, I would be able to cycle through the field titles > and build my sql call that way. However, I thought, why not just grab the > table structure from the tables themselves using the mysql_fetch_field > command. So, when I was thinking about this - bringing the db structure out > in pieces to a simple dynamic sql query builder - I felt it sounded very > much like what I thought the BC metabase to be. However, I did some poking > around in the db "metabase" code and I couldn't find that much that made > sense from that perspective. > > Anyone want to try to explain to me what the metabase portion on BC is up > to, and if there is anything like what I am describing in BC2? Also, I came > across this often used function "case" that I couldn't find in the php > manual. Anyone know what this does? It seems to have something to do with > the data type thats in the table field. > > Thanks, > > Albert Lash > al...@th... > > > _______________________________________________ > binarycloud-dev mailing list > bin...@li... > http://lists.sourceforge.net/lists/listinfo/binarycloud-dev > > -- John Donagher Application Engineer Intacct Corp. - Powerful Accounting on the Web 408-395-0989 720 University Ave. Los Gatos CA 95032 www.intacct.com Public key available off http://www.keyserver.net Key fingerprint = 4024 DF50 56EE 19A3 258A D628 22DE AD56 EEBE 8DDD |
From: Alby L. <al...@th...> - 2001-07-05 19:58:40
|
I'm still working on the sql call stuff, and need a question answered. As you can imagine - some calls will have 3 arguments (3 vars to be inserted into a table) and others will have more or less, depending on the table size. My php manual says that user-defined functions can be passed variable amount of arguments using the following functions: func_num_args(), func_get_arg(), and func_get_args() but doesn't give any examples at all. What would the syntax be? function ($array) { $i = func_num_args(); for ($j=0; $j < $i; $j++) { $arg_x = "arg_" . $i; ${$arg_x} = $array[$j]; } something tells me that won't work but I'll give it a shot anyhoo. Albert al...@th... |
From: Alby L. <al...@th...> - 2001-07-05 19:59:53
|
in my last message it should read: function blah($array) { - not - function ($array) { |
From: Jimmy H. <ji...@ha...> - 2001-07-06 06:33:13
|
I tried the following steps: $ SET BCHOME=/home/me/r2/binarycloud $ SET PHPRC=/usr/local/etc $ make grep: /user/conf/langs.xml: No such file or directory Building en site in user /base/utils/installcode.sh: not found *** Error code 127 Stop in /usr/home/pngia/r2/binarycloud/user. *** Error code 1 Stop in /usr/home/pngia/r2/binarycloud. >>> Any hint? |
From: Justin F. <je...@ey...> - 2001-07-06 07:57:37
|
Jimmy Harlindong wrote: > > I tried the following steps: > > $ SET BCHOME=/home/me/r2/binarycloud > $ SET PHPRC=/usr/local/etc > $ make > grep: /user/conf/langs.xml: No such file or directory > Building en site > in user > /base/utils/installcode.sh: not found > *** Error code 127 > > Stop in /usr/home/pngia/r2/binarycloud/user. > *** Error code 1 > > Stop in /usr/home/pngia/r2/binarycloud. > > >>> Any hint? ----------------- You forgot to export your environment to any descendant shells. do: export BCHOME=/home/me/r2/binarycloud; export PHPRC=/usr/local/etc; or, if you are in the same shell where you typed the above, export BCHOME export PHPRC _jef -- Justin Farnsworth Eye Integrated Communications 321 South Evans - Suite 203 Greenville, NC 27858 | Tel: (252) 353-0722 |
From: Jimmy H. <ji...@ha...> - 2001-07-06 08:38:40
|
I did that now I got this: $ make Building da site in user install: /home/pngia/r2/binarycloud/build/da/user/./conf/conf.php: No such file or directory install: /home/pngia/r2/binarycloud/build/da/user/./conf/conf.xml: No such file or directory ...... > -----Original Message----- > From: bin...@li... > [mailto:bin...@li...] On > Behalf Of Justin Farnsworth > Sent: Friday, 6 July 2001 5:58 PM > To: bin...@li... > Subject: Re: [binarycloud-dev] Make > > > Jimmy Harlindong wrote: > > > > I tried the following steps: > > > > $ SET BCHOME=/home/me/r2/binarycloud > > $ SET PHPRC=/usr/local/etc > > $ make > > grep: /user/conf/langs.xml: No such file or directory > Building en site > > in user > > /base/utils/installcode.sh: not found > > *** Error code 127 > > > > Stop in /usr/home/pngia/r2/binarycloud/user. > > *** Error code 1 > > > > Stop in /usr/home/pngia/r2/binarycloud. > > > > >>> Any hint? > ----------------- > You forgot to export your environment to any descendant shells. > > do: > > export BCHOME=/home/me/r2/binarycloud; > export PHPRC=/usr/local/etc; > > or, if you are in the same shell where you typed the > above, > > export BCHOME > export PHPRC > > _jef > |
From: Justin F. <je...@ey...> - 2001-07-06 09:58:08
|
Jimmy: Lessee, I may have knee-jerked when I noticed that you did not export your environment. And, from your previous post, I assume that /home/me is really /home/pngia. SO: cd to /home/pngia/r2/binarycloud type: BCHOME=`pwd` make You should see something like Building da site in user in user/htdocs in base in core in bldr in init make[2]: /home/pngia/r2/binarycloud/base/utils/processprepend.php: Command not found make[2]: *** [installprepend] Error 127 in lib in mgr Building en site in user in user/htdocs in base in core in bldr in init make[2]: /home/pngia/r2/binarycloud/base/utils/processprepend.php: Command not found make[2]: *** [installprepend] Error 127 in lib in mgr on the pristine CVS/tarball. 1. To eliminate the building of the da language build, go to your Makefile and edit/force # you could replace this with the list of langs LANGS=`grep code $(USER_DIR)/conf/langs.xml | sed -e 's/^.*<code>//' -e 's/<.*//'` LANGS=en <<== FORCE ENGLISH IF THAT IS WHAT YOU WANT -------------------------- 2. To eliminate the assumption of where the utility processprepend.php finds the PHP self-contained executable, go edit that file's shebang, which now is: #!/usr/local/php4/bin/php -q and change it to where "php" is on your system. I run RedHat 7.1 and it is found at [jef@localhost lib]$ which php /usr/bin/php [jef@localhost lib]$ so, I change the shebang to #!/usr/bin/php -q Then, everything works. Now, there are other issues. I put BC, ultimately, for production, in /usr/local/binarycloud. So, if you start to move things up there, you will have to make again because some self-generated stuff has to change. You will always be safe, in any ultimate build, by that gizmo of using: BCHOME=`pwd` make which causes the environment to have BCHOME "correct" for that command line only, i.e., don't put a semicolon before make, it is one shell command. If the above does not work, we will have to scratch our head(s) again... _jef --------------------------------------------- Jimmy Harlindong wrote: > > I did that now I got this: > > $ make > Building da site > in user > install: /home/pngia/r2/binarycloud/build/da/user/./conf/conf.php: No > such file or directory > install: /home/pngia/r2/binarycloud/build/da/user/./conf/conf.xml: No > such file or directory > ...... > > > -----Original Message----- > > From: bin...@li... > > [mailto:bin...@li...] On > > Behalf Of Justin Farnsworth > > Sent: Friday, 6 July 2001 5:58 PM > > To: bin...@li... > > Subject: Re: [binarycloud-dev] Make > > > > > > Jimmy Harlindong wrote: > > > > > > I tried the following steps: > > > > > > $ SET BCHOME=/home/me/r2/binarycloud > > > $ SET PHPRC=/usr/local/etc > > > $ make > > > grep: /user/conf/langs.xml: No such file or directory > > Building en site > > > in user > > > /base/utils/installcode.sh: not found > > > *** Error code 127 > > > > > > Stop in /usr/home/pngia/r2/binarycloud/user. > > > *** Error code 1 > > > > > > Stop in /usr/home/pngia/r2/binarycloud. > > > > > > >>> Any hint? > > ----------------- > > You forgot to export your environment to any descendant shells. > > > > do: > > > > export BCHOME=/home/me/r2/binarycloud; > > export PHPRC=/usr/local/etc; > > > > or, if you are in the same shell where you typed the > > above, > > > > export BCHOME > > export PHPRC > > > > _jef > > > > _______________________________________________ > binarycloud-dev mailing list > bin...@li... > http://lists.sourceforge.net/lists/listinfo/binarycloud-dev -- Justin Farnsworth Eye Integrated Communications 321 South Evans - Suite 203 Greenville, NC 27858 | Tel: (252) 353-0722 |
From: Justin F. <je...@ey...> - 2001-07-06 10:16:51
|
Jimmy Harlindong wrote: > > I did that now I got this: [== snip, snip ==] Jimmy: Hang on a second. Are you starting with the right-now, current cvs? Or the cvs of a day or two ago that had a missing ./core directory? Or the tarball? Reference a post made by TAO at 02:35 today, it was stated that the current cvs is still rotten. Ales made a change to the cvs when it was discovered that the ./core was missing. Ronalds says it is still rotten. I do not know this for sure, meaning I have not tried it out. I have: 1. The tarball 2. The cvs snapshot of a couple of days ago (missing core) Thus, if Ronald TAO is correct, the only proper thing to use RIGHT NOW is the tarball or the cvs snapshot a couple of days ago and then drop in the ./core directory from the tarball. Thus, given the situation, ONLY THE TARBALL works right now.... What did you use? _jef -- Justin Farnsworth Eye Integrated Communications 321 South Evans - Suite 203 Greenville, NC 27858 | Tel: (252) 353-0722 |
From: Jimmy H. <ji...@ha...> - 2001-07-06 10:27:25
|
Justin, I used the one I downloaded from binarycloud.com donwload section <g> Any hint how to get cvs / tarball (is tarball the one on the web) version? Sorry I am a unix newbie, I am using FreeBSD. Thanks very much for your help. I tried your instructions in the previous email, it is still the same, the only different that I can see is the shebang line and the LANG=en. It now says: Building en site in user install: /home/pngia/r2/binarycloud/build/en/user/./conf/conf.php: No such file or directory install: /home/pngia/r2/binarycloud/build/en/user/./conf/conf.xml: No such file or directory Perhaps my version hasn't got the ./conf ? I can't even see a subdirectory called build under r2/binarycloud ! Keep scratching head.. :) > -----Original Message----- > From: bin...@li... > [mailto:bin...@li...] On > Behalf Of Justin Farnsworth > Sent: Friday, 6 July 2001 8:17 PM > To: bin...@li... > Subject: Re: [binarycloud-dev] Make > > > Jimmy Harlindong wrote: > > > > I did that now I got this: > [== snip, snip ==] > > Jimmy: > > Hang on a second. Are you starting with the right-now, > current cvs? Or the cvs of a day or two ago that had > a missing ./core directory? Or the tarball? > > Reference a post made by TAO at 02:35 today, it was > stated that the current cvs is still rotten. Ales > made a change to the cvs when it was discovered that > the ./core was missing. Ronalds says it is still rotten. I > do not know this for sure, meaning I have not tried it out. > > I have: > > 1. The tarball > 2. The cvs snapshot of a couple of days ago (missing core) > > Thus, if Ronald TAO is correct, the only proper thing to > use RIGHT NOW is the tarball > > or > > the cvs snapshot a couple of days ago and then drop in > the ./core directory from the tarball. Thus, given > the situation, ONLY THE TARBALL works right now.... > > What did you use? > > > _jef > > -- > Justin Farnsworth > Eye Integrated Communications > 321 South Evans - Suite 203 > Greenville, NC 27858 | Tel: (252) 353-0722 > > _______________________________________________ > binarycloud-dev mailing list bin...@li... > http://lists.sourceforge.net/lists/listinfo/binarycloud-dev > > |
From: Justin F. <je...@ey...> - 2001-07-06 11:23:19
|
Jimmy: Uh, oh. BSD... I am a BSD ignoramus. And, if you are using the C shell, some of the things I suggested _may_ not work. I assumed a Bourne/bash shell... This also brings up some potential "problems" that I am going out on a limb on, like I "think" that Odysseas is assuming gnu Make extended functionality, which BSD make(1)j _may_ not have. Boy, I just don't know. First, the tarball. Yes, it is on the site in "downloads" and when you see as the URL:http: //www.binarycloud.com/download/ and mouse over the binarycloud r2 pre-release downloads you should see: http://www.binarycloud.com/download/files/r2.tar.gz in the status window. That is the tarball you want. You might just keep plugging along until someone on this list can guide you better than me for the BSD environment. Generally: 1. Get the tarball 2. Do something like make a ./tmp directory in your home to keep things clean and untar it there 3. Set BCHOME to your_home/tmp/r2/binarycloud and make the environment and the decendant shell environment to your_home/tmp/r2/binarycloud in the way that your shell requires 4. Type make Caveats: - I am afraid, but do not know, that the BSD make(1) will not honor the include Makefile.in directive in Makefile - I am afraid, but do not know, that you will not have a compiled executable of php on your sustem, and would have to go get the source (package in BSD??) and compile it. Building binarydloud assumes that a php executable is available. I don't even know if BSD has which(1). What do you get when you type "which php" on the command line? _scratch ------------------------------ Jimmy Harlindong wrote: > > Justin, > > I used the one I downloaded from binarycloud.com donwload section <g> > Any hint how to get cvs / tarball (is tarball the one on the web) > version? > > Sorry I am a unix newbie, I am using FreeBSD. > > Thanks very much for your help. I tried your instructions in the > previous email, it is still the same, the only different that I can see > is the shebang line and the LANG=en. > > It now says: > > Building en site > in user > install: /home/pngia/r2/binarycloud/build/en/user/./conf/conf.php: No > such file or directory > install: /home/pngia/r2/binarycloud/build/en/user/./conf/conf.xml: No > such file or directory > > Perhaps my version hasn't got the ./conf ? > > I can't even see a subdirectory called build under r2/binarycloud ! > > Keep scratching head.. :) > > > -----Original Message----- > > From: bin...@li... > > [mailto:bin...@li...] On > > Behalf Of Justin Farnsworth > > Sent: Friday, 6 July 2001 8:17 PM > > To: bin...@li... > > Subject: Re: [binarycloud-dev] Make > > > > > > Jimmy Harlindong wrote: > > > > > > I did that now I got this: > > [== snip, snip ==] > > > > Jimmy: > > > > Hang on a second. Are you starting with the right-now, > > current cvs? Or the cvs of a day or two ago that had > > a missing ./core directory? Or the tarball? > > > > Reference a post made by TAO at 02:35 today, it was > > stated that the current cvs is still rotten. Ales > > made a change to the cvs when it was discovered that > > the ./core was missing. Ronalds says it is still rotten. I > > do not know this for sure, meaning I have not tried it out. > > > > I have: > > > > 1. The tarball > > 2. The cvs snapshot of a couple of days ago (missing core) > > > > Thus, if Ronald TAO is correct, the only proper thing to > > use RIGHT NOW is the tarball > > > > or > > > > the cvs snapshot a couple of days ago and then drop in > > the ./core directory from the tarball. Thus, given > > the situation, ONLY THE TARBALL works right now.... > > > > What did you use? > > > > > > _jef > > > > -- > > Justin Farnsworth > > Eye Integrated Communications > > 321 South Evans - Suite 203 > > Greenville, NC 27858 | Tel: (252) 353-0722 > > > > _______________________________________________ > > binarycloud-dev mailing list bin...@li... > > http://lists.sourceforge.net/lists/listinfo/binarycloud-dev > > > > > > _______________________________________________ > binarycloud-dev mailing list > bin...@li... > http://lists.sourceforge.net/lists/listinfo/binarycloud-dev -- Justin Farnsworth Eye Integrated Communications 321 South Evans - Suite 203 Greenville, NC 27858 | Tel: (252) 353-0722 |
From: Jimmy H. <ji...@ha...> - 2001-07-06 11:46:54
|
Justin, _scratch, _scratch... :) > Uh, oh. BSD... I am a BSD ignoramus. And, if you are > using the C shell, some of the things I suggested _may_ not > work. I assumed a Bourne/bash shell... I tried on CSH and Bash. The only difference is the way to set the environment variable. - Same problem > some potential "problems" that I am going out on a limb on, > like I "think" that Odysseas is assuming gnu Make extended > functionality, which BSD make(1)j _may_ not have. Boy, I > just don't know. I believe FreeBSD is using gnumake. > First, the tarball. Yes, it is on the site in "downloads" > and when you see as the URL:http: > //www.binarycloud.com/download/ and mouse over the > binarycloud r2 pre-release downloads you should see: OK that's the one I am using > 1. Get the tarball Done > 2. Do something like make a ./tmp directory in > your home to keep things clean and untar > it there I untarred it to ~/r2/ > 3. Set BCHOME to your_home/tmp/r2/binarycloud > and make the environment and the decendant > shell environment to your_home/tmp/r2/binarycloud > in the way that your shell requires done > 4. Type make Didn't work as reported. > > Caveats: > - I am afraid, but do not know, that the BSD make(1) will > not honor the > include Makefile.in > directive in Makefile It honored it. This is proven that by setting BCHOME it started looking at the BCHOME directory instead of /user > - I am afraid, but do not know, that you will not have a > compiled executable of php on your sustem, and > would have to go get the source (package in BSD??) > and compile it. Building binarydloud assumes > that a php executable is available. I don't > even know if BSD has which(1). What do you get > when you type "which php" on the command line? I have it. I located it and tried running it, it works. > _scratch _scratch _scratch..... :( |