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.

Reply via email to