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 at http://clockwork.redlinernotes.com and 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/b24a2c14a07e267c 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 prominent http://trac.common-lisp.net/cl-weblocks/wiki/Tutorials page, 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.
