and therein lies the tale of computer programmers and users... Scott, and others... I *am* good at a few things, but compiling programs is not one of them. I am basically a copy artist -- I can follow instructions, but the instructions have to be good and explicit. And then, I can create new good things.
A good computer programmer will write instructions that will be clear to good computer programmers, but may make little sense to folks such as me. On the other hand, I may state things that are obvious to me, but may have missed things important to a good computer programmer. While I have been programming for almost half a decade now, I don't consider myself to be a good computer programmer. I have come a long way from the days of ColdFusion, and now I use Perl/JavaScript almost exclusively, but I have miles to go when it comes to C :-). Unfortunately, there are other things to learn along the way as well, and they all take time. On Nov 24, 2007 5:36 PM, Scott Hess <[EMAIL PROTECTED]> wrote: > On Nov 18, 2007 3:28 PM, P Kishor <[EMAIL PROTECTED]> wrote: > > Following those pretty much to the t, I almost got everything working. > > Except, I got the following during make > > > > ../sqlite-3.5.2/ext/fts1/fts1.c:7:2: error: #error fts1 has a design > > flaw and has been deprecated. > > make: *** [fts1.lo] Error 1 > > > > Fantastic. If it is has a design flaw and has been deprecated, then > > why include it? > > In case someone is using it and really needs to keep using it and has > reason to believe that the design flaw doesn't impact them. > > > Or, if it is included, where is the information that > > it has been deprecated that one can read *before* doing make? > > That information is available on the mailing list - or wasn't that > what you meant? :-). No, that is not what I meant. I would expect the instructions to be in the Makefile.in, but it was already made clear that the Makefile was not ready with fts instructions. <http://www.sqlite.org/cvstrac/wiki?p=FullTextIndex> very clearly says "(Sorry - there's no makefile checked in yet. Coming soon.)" I downloaded the program from sqlite.org. The most obvious place I expected the instructions to be in was right in the download. That is contextually the most relevant place to put the instructions. There is a file called README in every fts folder in the src tree. I would expect the most detailed instructions to be right there. They weren't there. > > There isn't an obvious place to put such information, and fts1 and 2 > (and 3) are in any case considered outside the sqlite core. It takes > less than a minute to hit the error, so it's not like you lost three > days tracking down some obscure design flaw yourself... Yes, there is an obvious place, well, obvious to me. Obviously it wasn't obvious to whoever put the instructions on the mailing list. No, I did spend three days. Is that because I am stupid? Perhaps... when it comes to compiling C programs. I am learning. I spent a goodly amount of time just trying to figure out what to do with the fts source. Since I couldn't find the exact instructions, Google was my friend. I discovered Joe Wilson's fairly detailed description on the mailing list (see <http://www.mail-archive.com/sqlite-users@sqlite.org/msg24917.html>). This is what should have been on sqlite.org to begin with. Want to something silly? Joe provided a patch to the Makefile, but I don't even know how to apply a patch. Yes, to someone who doesn't know these things, they are all mysteries. So, I basically eyeballed each line and hand edited my Makefile. Well, one line in Joe's patch looks like so +# FTS2 (optional) +LIBOBJ += fts2.lo fts2_hash.lo fts2_porter.lo fts2_tokenizer1.lo I followed the above, but look above... fts2_tokenizer.lo is missing from the line above. Since I followed the above blindly, I started getting the missing symbol error. Between that and the -flat_namespace issue, three days were gone poof! The flat namespace issue is documented on developer.apple.com, but again, the instructions to solve it are not clear. I understand the issue conceptually, but I don't know the exact ingredients and instructions to solve it. .. An extensive back and forth with a local Madison friend who knows more than I do re. compiling programs on a Mac revealed that I needed to add the MACOSX_DEPLOYMENT_TARGET. Then he discovered that I was missing fts2_tokenizer.lo Added that, and boom! I was in business... three days later. I believe that the instructions I have added at <http://www.sqlite.org/cvstrac/wiki?p=CompilingFts> are detailed and descriptive enough that someone with my level of knowledge (which is very little) will be able to compile fts. Now when I Google for "compiling fts sqlite" my page comes up first, and a n00b like me will be able to be on his/her way quickly. We spent a lot of back-and-forth on how to make the sqlite.org website better, but I am not sure it is any better. It looks pretty much the same as it did. Useful stuff is not consolidated in one place... syntax related stuff is spread over the core docs and the wiki. Compiling stuff is likewise in different places. And now since the website is ever so different, I can't find things even more than I could earlier... I had gotten used to the earlier site, and now will get used to this one, but it will take time. Funny thing is, once I got fts working, I think it is the greatest thing since sliced bread... just like SQLite. Look, SQLite and fts are two fantastic pieces of technology. The barrier to entry needs to be lowered even more. Different kinds of users "expect" different kinds of documentation. The documentation has to be not only accessible to all levels of users (ok, so, maybe not to my mom, but to most reasonably computer savvy users), and it has to be easily discoverable. It should be in the most obvious place. What is "obvious" is different for different folks, but proximity and context are important. Here is what I do at my house nowadays -- I have taken every manual/user guide that came with every appliance and I have stuck it in an envelope and stuck the envelope to the top or back of the appliance with masking tape. That way, each appliance has its "how-to" right next to it. Maybe there is a lesson there. Apple does this really well. They have a knack of anticipating user's needs. I wanted to upgrade the hard disk in my wife's G5. The drive came, I opened the computer case, looked around, and had no clue how to adapt the drive to the sliding drive chassis used in the G5. Spent about 10 mins dicking around, peered in to take a closer look and what did I see? 4 extra screws to be used for new drives stuck to the side of the case... just like the extra buttons that the tailor would sew onto the suit so you wouldn't have to go around looking for matching buttons. Someone there put him/herself in the user's shoes and said, "If I were going to be doing this, this is what I would find helpful..." Nevertheless, many thanks to those who created fts, and to Joe Wilson, and to my friend in Madison. Am loving what you folks have created... Puneet. ----------------------------------------------------------------------------- To unsubscribe, send email to [EMAIL PROTECTED] -----------------------------------------------------------------------------