Josef, Thanks very much for your detailed response. Sorry if I came off a little harshly or was tetchy. I just expected to find out about problems through a blog comment rather than reading about them on weblocks-dev. :)
> ...which actually comes with form-widget... Ah, yes. It's covered in article 3. Good. Hopefully form-widget will move out of contrib in the near future anyway. > ...BOUNDING-INDICES-BAD-ERROR Oh my! This is a bug. How awful that it's been there all along. This is actually a bug in the calendar widget specifically the datestring function. The :format kwarg is wrong such that if the day is < 10 or the month is < 10 you get the subseq error. The correct format arg (present in github master) is: '((:day 2) "-" (:month 2) "-" :year)). Now I'm just trying to remember if I discovered that bug after the blog entry or not. Fixed in the article now, at any rate. > Unfortunately, there's no link to it... Interesting. I didn't realize we even had a tutorials page. Hopefully someone can add it there in the near future. > ...no working code exists at this stage...the main problem is that there are > no intermediate safe islands...better to build a series of working > programs...every lisp book emphasizes the incremental workflow... What an excellent choice of words. I see and very much acknowledge the problem you're bringing up here. I meant for you to be able to see incremental progress through the posts but didn't make it a focus and if I linked to source files in github master that was poorly thought out as you'll definitely see things that differ from the blog entries. :-/ I thought there was at least a (nonfunctional) form you could look at before article 3 but that's not the case. I tried to bring the reader too directly to the finished project it seems. > It was not my intent to criticize you. I am happy to have heard some criticism. Hopefully it will improve my next attempt at technical writing. Thanks for your comments and good luck learning weblocks. Regards, Brit On Mar 7, 6:41 pm, Josef Wolf <[email protected]> wrote: > On Fri, Mar 04, 2011 at 09:58:18PM -0800, Brit Butler wrote: > > > I wrote the CL Web Primer tutorials you were referring to. The code on > > github should actually work provided you load Leslie's form-widget > > stuff from contrib after weblocks and before clockwork. > > I use weblocks installed by quicklisp-beta, which actually comes with this > form-widget, so I should be fine? I think the problems arise before it > comes to this form-widget. > > > The site was > > running athttp://clockwork.redlinernotes.comand certainly was up > > when I published that document. It's gone down in the past week or so > > Then I must have tried just after the failure. Looks like we both were > bitten by > > http://groups.google.com/group/weblocks/browse_thread/thread/b24a2c14... > > I am currently recompiling sbcl-1.0.43 so I can try again. > > > Why do you say, "This tutorial even fails to create a working > > application at all?" > > Well, I also said that it's the best tutorial I could find ;-) > > Unfortunately, there's no link to it from the > prominenthttp://trac.common-lisp.net/cl-weblocks/wiki/Tutorialspage, so it > takes > a while to find this tutorial. > > > You should be able to create the app by working > > through the tutorial unless I forgot to note Leslie's form-widget > > code. That would be a gross oversight. > > You mentioned the form-widget thing. > > For me, the problem seems to be that at the end of part2, the reader is > left with code snippets which do not form a complete program, although > section "A few reminder methods" near the end says that the user should > already be able to submit the reminder form and a reminder will be > instantiated, persisted and scheduled. Then one clicks onto the links > to your versions of the files, and sees code that don't match the code > in the tutorial at all. > > Then the third part continues introducing more snippets with this funky > calendar script, although no working code exists at this stage. IMHO, it > would be better to have a _working_ state with ugly calendar form first. > In a later step, this can be improved by adding this funky calendar. > > It's only at the very end where things are supposed to come together. > So the only option left to the reader is to cut-n-paste the code fragments. > And at the end, he gets an error like > > BOUNDING-INDICES-BAD-ERROR: The bounding indices 0 and 10 are bad for a > sequence of length 8. See also: The ANSI Standard, Glossary entry for > "bounding index designator" The ANSI Standard, writeup for Issue > SUBSEQ-OUT-OF-BOUNDS:IS-AN-ERROR > > and after resetting the session > > SIMPLE-ERROR: Cannot render NIL as widget. Symbol not bound to a function. > > This time I double checked that I follow the tutorial exactly. And I have no > clue how to find out what I did wrong. > > > The tutorial diverged somewhat > > from the github timeline for various reasons: pedagogy and clarity > > being two of them. Additionally, some things were just rewritten over > > time. In particular, Leslie asked me to rewrite to use form-widget and > > I did. > > Yeah, that's an additional problem. But IMHO, the main problem is that there > are no intermediate safe islands. Only snippets that are put together at the > very end. And if it don't work at the very end, that's it. You're lost without > being able to go one step back to see where exactly the failure was. > > IMHO, a better approach would be to start with a very simple program and > gradually extend it creating a series of _working_ programs as you go. Every > lisp book I've seen advertises this interactive incremental work flow as one > of the strengths of lisp. Collecting code snippets and putting them together > at the very end seems to be the exact opposite to me. > > > In the third post you link to (Part 3 of my series) you can clearly > > see how SCHEDULE, GET-EMAILS and GET-TIMESTAMPS all tie together in > > the "Putting it all together..." section of the post. > > Yeah, I see. But at this stage I've already given up. Including funky > calendars before even having a _basic_ working skeleton was definitely > beyond my expectations. Storing all those new concepts without seeing > any intermediate islands to rest on just don't seem to work for me. > > That would not be that big a problem if it would actually work when you > put it all together in the end. > > > I spent a good deal of time on those posts > > though and it would've been nice to receive comments asking questions > > or telling me things I could clarify. I wanted to write good tutorials > > but never heard what people found confusing or needed help learning > > about. Then I got busy. *sigh* > > I very much appreciate your work. It was not my intent to criticize you. > I think I already wrote that this tutorial is the best I could find. -- You received this message because you are subscribed to the Google Groups "weblocks" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/weblocks?hl=en.
