Re:[boost] Re: Re: Re: RTL status -"help wanted".

FWIW - I love this idea !!!! I had forgotten about but when back and refreshed my memory. 1) its got nothing to do with being a wrapper to access a traditional database. That might be worthy project but this project isn't it. c) its all compile time. That means the the schemas can't be changed dynamically. This is inherent in the design. So its not a universal replacement for anything. However, I believe the time is now for such a library. Let me explain. Commmon use case. I am a freelance software developer. It often occurs that a customer has a situation which maps directly to a set of database schemas. The easiest way I've found to accomplish ths is (please - don't laugh) is to make a database in MS Access and write a VB program which peeks and pokes at it via ADO or something similar. This approach has the following features. a) Its simple to build and prototype the database. b) Its simple to fixit up when something changes. c) It eliminates a whole bunch of programming required to maintain data d) it eliminates a whole bunch of programming to query data. Just insert and test the query in Access. When it works, invoke the name of the query from VB - very easy. e) It depends on MS implementation of ADO which is very quirky in my opinion. f) It uses VB which will drive a real programmer crazy. g) Its all run time - no compile time optimization. h) Its all run time - no compile time checking. VB delays checking everything to the last possible moment - like when I'm home in bed. i) Its easy to make a nice UI that customer's love j) one doesn't have to worry about the size of things like history logs etc as its all handled by the DB. k) the data is accessible by other tools - basically and SQL query. So there is a class of applications which a) don't require that the schema changes after compilation b) need fast response c) use datasets of bounded size. Examples might be: a) address/contact manager for a palm computer/cell phone b) web database to support sales of tickets to grateful dead concerts as soon as they are announced. c) many small business databases - a years accounting. So I think this is interesting for what it is. I'm concerned that it might get bogged down by concerns that it isn't something else. In my view this sometimes occurs to boost proposals. I just looked over the documentation and I like what I see. Its no clear what's missing - of course I didn't try to use it. I think you might get more response to your request for help if. a) the directory structure and documentation looked more like a boost library so that one could just paste it into his boost tree. b) it was clear what's working and what's not. Maybe this should be reflected in the directory structure. c) If it was divided into working / not working. d) if the working subset was immediately useful. E.g. transactions could be postponed. It looks like you've focused on adding all the features before finishing off the basics ( documentation, examples, tests, etc.) This makes it hard for users to become addicted to your library which is what you need to get more help. The best way to get help is to get people using (part of) your library. When they need some feature, you can pressure them to create it and add a test. Machines and applications are now being made that can really benefit from the RTL library. Robert Ramey

"Robert Ramey" <ramey@rrsd.com> wrote
I just looked over the documentation and I like what I see. Its no clear what's missing - of course I didn't try to use it. I think you might get more response to your request for help if.
a) the directory structure and documentation looked more like a boost library so that one could just paste it into his boost tree.
Agreed -- will do it.
b) it was clear what's working and what's not. Maybe this should be reflected in the directory structure.
c) If it was divided into working / not working.
d) if the working subset was immediately useful. E.g. transactions could be postponed. It looks like you've focused on adding all the features before finishing off the basics ( documentation, examples, tests, etc.) This makes it hard for users to become addicted to your library which is what you need to get more help. The best way to get help is to get people using (part of) your library. When they need some feature, you can pressure them to create it and add a test.
I do not believe there really is anything that can be qualified as "not working". It's rather "not production quality". We actually implemented all we wanted, and it does pass all our unit tests. You can view it as a system that is pretty much "QA-ready". My real problem with this is that I believe systems should be given to "QA" by much smaller portions. We actually tried to present the system to Boost three times: 1) After we implemented relational tables and relational operations on them; 2) After we added indexing and range queries (for any relation); 3) After we added transactions and incremental index update. One problem is that it's pretty difficult to present this system on the piece-by-piece basis. For example: Our approach to transactions was to store changes (deltas) separately from tables untill the transaction is committed. At the moment of commit we wanted to be able to calculate delta for any particular node of any expression built on modified tables. This would allow us to incrementally update indexes, if needed, rather than fully rebuild them. Once you commit to such a goal, you have to implement deltas for ALL the operators you support, because you have no idea what operators will be used in the expression... OTOH, we could probably first implement this without incremental index update and always fully rebuild the indexes. That would have been 10 % of the effort. That was what we would definitely have done if we had had a real User. Since we didn't really have users, we just kept on implementing what we thought needed to be done. I think some things need to be re-designed and re-implemented not because they don't work, but rather because after someone has been working on a system for two years, there always is something that shout have been done differently...
Machines and applications are now being made that can really benefit from the RTL library.
I definitely hope so :) Regards, Arkadiy

The example in Chapter 5 of the BGL User Guide and Ref Manual book, edge weights are assigned floats as follows: // The transmission delay values for each edge. float delay[] = {5.0, 1.0, 1.3, 3.0, 10.0, 2.0, 6.3, 0.4, 1.3, 1.2, 0.5}; Running the code with Borland C++ 5.6.4 for Win32, raises the following error in property_map.hpp: "property_map.hpp": E2406 Dependent type qualifier 'float *' is not a class or struct type in function detail::bool bellman_dispatch<edge_list<_STL::pair<int,int>*,_STL::pair<int,int>,int, _STL::random_access_iterator_tag>,int,const iterator_property_map<float *,el_ra_edge_property_map<int>, float,float &>,float * const,int *,vertex_predecessor_t,bgl_named_params<float *,vertex_distance_t,bgl_named_params<iterator_property_map<float *,el_ra_edge_property_map<int>,float,float &>, edge_weight_t,no_property> > >(edge_list<_STL::pair<int,int> *,_STL::pair<int,int>,int,_STL:: random_access_iterator_tag> &,int,iterator_property_map<float *,el_ra_edge_property_map<int>, float,float &>,float *,const bgl_named_params<int *,vertex_predecessor_t,bgl_named_params<float *, vertex_distance_t,bgl_named_params<iterator_property_map<float *,el_ra_edge_property_map<int>, float,float &>,edge_weight_t,no_property> > > &) at line 26 Please advise. Best Regards _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost --------------------------------- Do you Yahoo!? vote.yahoo.com - Register online to vote today!
participants (3)
-
Arkadiy Vertleyb
-
Kaled Ahmed
-
Robert Ramey