Friday, November 7, 2008

Re: [BLUG] BLUG ideas

On Fri, Nov 07, 2008 at 02:45:27PM -0500, Barry Schatz wrote:
> I remember using 4DOS... I actually stuck with MS until 2004, though I
> wanted to get into Linux years before.

I couldn't stand how ugly Windows 95 looked when I saw the beta so I
migrated to Linux in 1995, before its official release.

My father was like, "Well, there are other options... Here I bought you
this book which includes a CD." From there I was hooked.

> Logo provides immediate visual feedback, so it's good for young
> children. You can still learn the fundamentals of programming.

How young? 3? 5? If Logo is suitable for children under 8, then suddenly
it looks interesting.

My understanding is, though, that very little is actually suitable
for young children. I hear that Legos Mindstorm, with their graphical
programming thing (I've not seen/used it myself) is as yet the
friendliest to the very young.

By the time the kid is 8 they're old enough to learn Python. Not only
that, they're old enough to write games in Python. That's enough
immediate visual feedback for most.

> I used QBasic back in the day. I wrote some pretty elaborate scripts to
> handle the tedious parts of my math homework.

QBasic was a poor imitation of Turbo Basic. It *finally* got rid of the
line number requirement. It was still crippled in comparison to Turbo Basic.
Turbo Basic allowed you to compile real stand-alone programs.

Though IIRC, by the time QBasic was released, I'd already moved on. I think
I only ever started it up out of curiosity.

> Starting with C is like learning to drive on a manual transmission. You
> have to get past not stalling the engine before you can leave the
> driveway and actually learn how to drive.

C isn't nearly as hard as people seem to think. I mean, my father cut
his teeth on z80 assembly. (He knew people who could do it all in
hex without the need for an assembler.) C takes care of a lot of the
overhead for you automatically.

Then again, I mostly just "got" it. I think I may have asked my father
one question about lvalues, then it was like, "Ah. Okay. That makes
sense."

I never did understand the Basic FOR loop until I saw it compared to a C
for() loop. NEXT? Come on, that doesn't even make sense. (I used WHILE
loos exclusively when I wrote BASIC.) The C for() loop, on the other
hand is clean and elegant.

> That's why Python is so popular. It's derived from a language that was
> designed for teaching programming, but it has real power.

Exactly. This also makes it suitable as a first language.

> It depends on how you define value. I always found visual feedback
> helpful when learning new concepts. The best practices apply no matter
> what language you use, but some languages make it easier to learn than
> others. Solving problems with the tools at hand requires the same
> mindset. For young children (say, age 7 or younger), it makes more sense
> to keep the tools approachable. The thought process should transfer to
> what ever language you introduce after that.

Feedback is important, yes. This is the main reason the whole "plan it
all out on paper" design approach is to be highly avoided when going
after young minds. (Or, personally, I like to avoid that design approach
altogether.) If you take one of the rapid prototyping approaches with a
fast development cycle, however, you get near immediate feedback.

The kid needs to be old enough to read. (Otherwise they'll never get
through the documentation when they hit a tough spot.) The kid also needs
to understand the concepts of the basic math skills, and to have the
ability to describe a process, (like how to make a PB+J sandwich). Knowledge
of the scientific method would round things off, and provide a framework
for experimentation with variables.

Before a child has those skills, they are, in my mind, unsuitable for
programming. Those skills should all be covered at or by 3rd grade, unless
something has gone seriously wrong with the public education system.

> So you want to be the "Cool Dad" that all the kids wish they had. :) I
> salute your goal and wish you the best. Be sure to do a presentation for
> BLUG on how you set up your filtering/monitoring setup once it's done.

Yeah. The monitoring thing is fairly straight-forward in theory.

My goal is to one day sit down and write a plugin/patch for Squid to
allow it to track URLs per authenticated user. Why per authenticated
user? Well, in addition to tracking the URLs, it creates a database
which can be leveraged to have automatic whole-house history and
bookmarking for every site a person goes to. It provides a feature for
the end-user as well.

Then it becomes straight-forward to not *require* authentication, and to
also monitor unauthenticated URLs via transparent proxying. You can then
catch when someone tries to bypass the proxy, and when a neighbor brings
over a laptop.

Because you never actually block access to a site, it becomes less of
a fight over bypassing the security measure. When the thought comes to
look something up, they just do it instead of first becoming frustrated
that it won't work, and then venting their frustration out on your
setup.

I've played with the idea a little with a patch to tinyproxy. However,
that didn't support authorization at all, so it wasn't a good long-term
solution.

> > This would be why it would qualify as an idea for if not a series
> > of meetings topics, than an on-going BLUG-related project with
> > regular status updates. Plus a lot of folks like to try out the latest
> > distributions. Some of the work happens on its own, and it is only the
> > "scorecard" that really needs to be standardized upon.
> >
> This would be a cool project to start. Maybe we should start a wiki page
> for this and figure out some useful criteria to rate distros on.

That would be a great place to start, yeah.

--
Steven Black <blacks@indiana.edu> / KeyID: 8596FA8E
Fingerprint: 108C 089C EFA4 832C BF07 78C2 DE71 5433 8596 FA8E

No comments: