the Design Experience Weblog

Image from Wordle

10:55 AM, 25 Jun 2008 by dave bauer Permalink | Comments (0)
categories: Learning , Programming

2-3-98 Conference: An Open Discussion on Technology in Education will address Open Source in Higher Education, and include a second day Moodle Moot. I'll be attending the conference June 19 & 20, 2008 as SUNY Delhi. SUNY Delhi is  using Moodle for their unversity LMS.

I will be attending this conference, and look forward to the opportunity to learn and discuss our use of Open Source in education.

One of our clients, Stephen Wilmarth, from the Center for 21st. Century Skills will be giving a presentation on how they are using Moodle to conect high school students in CT and in China!

This should be a good opportunity to both learn more about Moodle, spread the word on LAMS and ELGG integrated with Moodle in an amazing setting. According to the web site: "Delhi, NY is nestled in the Catskill Mountains in a land of wooded
hills and fertile green valleys with streams, covered bridges,
well-tended dairy farms and beautiful vistas. Join us in a great
setting for a great conference!"

 

02:49 PM, 22 May 2008 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Open Source , Learning

Compiling Sandbox 2.1 beta [www.kids.platinumarts.net]

Downloaded Platinum Arts Sandbox 2.1 beta multiplatform version.

On Ubuntu 7.10 (Gutsy) I had problems running it out of the box.
After I fixed the permissions I got this error message.


./bin_unix/native_client 
./bin_unix/native_client: error while loading shared libraries: libSDL_image-1.2.so.0: cannot open shared object file: No such file or directory


So I checked to see what it was linked againt.

ldd bin_unix/native_client 
        linux-gate.so.1 =>  (0xffffe000)
        libSDL-1.2.so.0 => /usr/lib32/libSDL-1.2.so.0 (0xf7e44000)
        libSDL_image-1.2.so.0 => not found
        libSDL_mixer-1.2.so.0 => /usr/lib32/libSDL_mixer-1.2.so.0 (0xf7dd5000)
        libz.so.1 => /usr/lib32/libz.so.1 (0xf7dc0000)
        libGL.so.1 => /usr/lib32/libGL.so.1 (0xf7d2a000)
        libGLU.so.1 => /usr/lib32/libGLU.so.1 (0xf7ca7000)
        libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf7bb4000)
        libm.so.6 => /lib32/libm.so.6 (0xf7b8f000)
        libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf7b83000)
        libc.so.6 => /lib32/libc.so.6 (0xf7a39000)
        libX11.so.6 => /usr/lib32/libX11.so.6 (0xf7948000)
        libasound.so.2 => /usr/lib32/libasound.so.2 (0xf7882000)
        libdl.so.2 => /lib32/libdl.so.2 (0xf787e000)
        libdirectfb-0.9.so.25 => /usr/lib32/libdirectfb-0.9.so.25 (0xf7827000)
        libfusion-0.9.so.25 => /usr/lib32/libfusion-0.9.so.25 (0xf7820000)
        libdirect-0.9.so.25 => /usr/lib32/libdirect-0.9.so.25 (0xf7811000)
        libpthread.so.0 => /lib32/libpthread.so.0 (0xf77f9000)
        libvorbisfile.so.3 => not found
        libvorbis.so.0 => not found
        libogg.so.0 => not found
        libsmpeg-0.4.so.0 => not found
        libGLcore.so.1 => /usr/lib32/libGLcore.so.1 (0xf6e60000)
        libnvidia-tls.so.1 => /usr/lib32/tls/libnvidia-tls.so.1 (0xf6e5e000)
        libXext.so.6 => /usr/lib32/libXext.so.6 (0xf6e50000)
        /lib/ld-linux.so.2 (0xf7ee5000)
        libXau.so.6 => /usr/lib32/libXau.so.6 (0xf6e4c000)
        libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf6e47000)



In the end I recompiled it.

I had to install several SDL libraries to get it to build.

libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2dev

Installation of these also installed the following packages on my computer

libjpeg62-dev libsdl-image1.2-dev libtiff4-dev libtiffxx0c2

libogg-dev libsdl-mixer1.2 libsmpeg-dev libsmpeg0 libvorbis-dev

I installed g++ also to get it to compile.

I had to also change permissions on Sandbox2.1/src/enet/configure to make it executable.

LATER that same day....

I unzipped the 2.1 beta again, to see if, now that the libraries are definitely installed since building myself works fine.

dave@escher:~/software/Sandbox2.1$ ./bin_unix/native_client -t
bash: ./bin_unix/native_client: Permission denied
dave@escher:~/software/Sandbox2.1$ ./sandbox_unix
bash: ./sandbox_unix: Permission denied
dave@escher:~/software/Sandbox2.1$ chmod +x sandbox_
sandbox_kart_unix  sandbox_unix       
dave@escher:~/software/Sandbox2.1$ chmod +x sandbox_unix 
dave@escher:~/software/Sandbox2.1$ ./sandbox_unix
./bin_unix/native_client: error while loading shared libraries: libSDL_image-1.2.so.0: cannot open shared object file: No such file or directory
dave@escher:~/software/Sandbox2.1$ chmod -R +x bin_unix
dave@escher:~/software/Sandbox2.1$ ./bin_unix/native_client -t
./bin_unix/native_client: error while loading shared libraries: libSDL_image-1.2.so.0: cannot open shared object file: No such file or directory

I looked on http://www.kids.platinumarts.net/wiki/index.php?title=Bug_reports
and it says sandbox_unix will fix permissions, but it did not work for me. It also says bin_unix/native_client will run without changing permissions, but I did not see that either.

NOTE: This is on AMD64 Ubuntu 7.10 now that I think of it, so most likely explanation is that the binaries are 32 bit.

Suspicion confirmed:
(07:47:39 PM) eihrul: the binaries are 32 bit

It works fine if I compile myself.

12:34 PM, 09 Mar 2008 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

Flyback for quick easy backups [code.google.com]

I installed flyback http://code.google.com/p/flyback/ today, on recommendation of Lifehacker http://lifehacker.com/342576/get-time+machine+like-snapshot-backup-with-flyback .

It was pretty easy. I follwed the ubuntu instructions but could not install python-sqlite3 package. It does not seem to exist. A apt-cache seach sqlite found python-pysqlite2 which is actually bindings for SQLite 3. It's already installed on my system anyway.

I ran flyback, configured to backup to a network share. choose my home directory to be backed up and clicked backup.

I also scheduled to run daily.

Flyback uses rsync, so this is a pretty common backup solution for linux with a simple GUI to make it easy to setup. Easy to setup and automate is the key to desktop backups. Otherwise noone will do it.

01:40 PM, 09 Jan 2008 by dave bauer Permalink | Comments (0)
categories: Open Source , Learning

I setup Google Analytics for this site and learned someting interesting.

It seems the most popular page on the site is http://www.thedesignexperience.org/weblog/one-entry?entry_id=40672 which is pretty short and just links to an online mind mapping tool.

I don't really do much mind mapping, but since everyone who vists my site is interested in it, I looked around some more.

On the Mind Mapping Software Blog I found a post about a dashboard style of mind map for keeping track of everything.

I use Planner Mode for Emacs for this. It seems to flow alot better for me, its all text based, but since I do the majority of my work in emacs, it seems to fit better with my style of work and thinking.

I wish I could get into mind mapping more, so I am going to try to check out Idea Mapping a book that is said to be accessible to learn the ideas behind mind mapping.

So I hope if anyong is looking for mind mapping resources this post will help them, its not really my area of expertise and I hope at least one person can learn about using Planner Mode instead. Getting things done in emacs is a great post about implementing the popular organizational technique using planner mode.

10:37 AM, 05 Aug 2007 by dave bauer Permalink | Comments (0)
categories: Learning , Creativity

I have been looking at the XOTcl Object Oriented extension to Tcl, in relation to OpenACS. I don't have any other OO experience so it can be a little confusing. The trickiest concept for me is metaclasses. I found this explanation of the class/metaclass structure in Smalltalk and thought it might help me. The concepts are a little different. As far as I can tell, in Smalltalk every class automatically has a metaclass. In XOTcl it appears you need to define a class as a metaclass and create instances of it. That's about as much as I know, so far, I'll have to revisit this page and reread it.

Another good article I found is Reading Smalltalk which tries to show how to read Smalltalk code, compared to Java or C++.

08:09 AM, 18 Feb 2007 by dave bauer Permalink | Comments (0)
categories: OpenACS , Learning , Programming

I had a very hard time imagining the difference between a recursive process and an interative process. I had to dive into an article on Wikipedia about the subject of Tail Recursion, the process that a compiler uses to make a recursive function into an interation. This happens if the recursive function call is the last thing to happen in a function.

I wish this had been more clearly explained, I would have gotten it right away!

Recursive Procedure that results in a recursive process

(define (factorial n)
(if (= n 1)
1
(* n (factorial (-n 1)))))
In this first example the last thing that happens is a call to the * function, so it results in a recursive process.

Recursive Procedure that results in an iterative process

(define (factorial n)
(define inter product counter)
(if (> counter n)
product
(iter (* counter product)
(+ counter 1))))
(iter 1 1))

The second example has the recursive procedure defined inside the factorial procedure.

09:05 PM, 26 Nov 2006 by dave bauer Permalink | Comments (0)
categories: Learning , Programming , Learning Portfolio

The Roots of Lisp [paulgraham.com]

Paul Graham's The Roots of Lisp should be required reading for anyone attempting to understand programming in a functional language, or anyone interested in the amazing, simple ideas that make programming languages powerful.

I am quite surpised I have never seen a link to this article. I must have missed it. It really explains the power and the simplicity of the math behind Lisp. Basically the entire language of Lisp is written in itself using a few primitives and a few more functions.

I found this article poking around Paul Graham's site looking for the online version of On Lisp, which I thought I would read to expand my learning. I think this short paper gave me enough to think about for a while.

03:09 PM, 25 Nov 2006 by dave bauer Permalink | Comments (0)
categories: Learning , Programming , Computer Science

A few links to Behavior Driven Development, which focues on specifying the behavior of code, in a precise language, and taking Test-Driven Development to the next level.

Blog Post http://blog.daveastels.com/articles/2005/07/05/a-new-look-at-test-driven-development
( related PDF http://blog.daveastels.com/files/BDD_Intro.pdf ) and a video from Google http://video.google.com/videoplay?docid=8135690990081075324

and the Behavior Driven Development Wiki http://behaviour-driven.org/

02:25 PM, 16 Oct 2006 by dave bauer Permalink | Comments (0)
categories: Learning , Programming , Computer Science

Functional Programming for the Rest of Us is an very clear exlanation of what functional programming is, and how it is different from imperative programming.

This arcticle is the first time I have understood what a function is. That's pretty important in doing functional programming. Without understanding the nature of functions (as defined in functional languages) you will never "get it". Now I have it.

The basic idea is this, a function always returns the same return value for the same arguments. It can't do anything else, or its not a function. Simple, and elegant. The article goes on to explain how you can possibly accomplish anything built on this simple foundation. Its good. Go read it.

I remember now that the Berkeley computer science lectures I linked to also explain a function in this way. That is, its always returns the same thing when given the same arguments with no side effects. This was buried inside the rest of a lecture, and I did not understand it in the whole context of what was going on. I am glad I found this article. I found it in a thread asking about the explanation of continuations on a Squeak mailing list.

02:37 PM, 15 Oct 2006 by dave bauer Permalink | Comments (2)
categories: Learning , Programming , Computer Science , Learning Portfolio

Smalltalk for Everyone Else [www.onlamp.com]

Smalltalk for Everyone Else is a good introduction to Smalltalk, using Squeak. It is very clear, and easy to understand. If you know any other programming language you should be able to learn something new by looking at Smalltalk and following this tutorial.

08:02 AM, 05 Oct 2006 by dave bauer Permalink | Comments (0)
categories: Learning , Programming

I was happy to see, the other day, that my setup of a testing framework for a new set of features was very effective. I saved time, and gained understanding of what the code was doing, and thnat made it much easier to get the code to do what it was supposed to do, always the goal of testing!

I really need to write down my process of writing tests during development of a new API to share with the rest of the OpenACS community. Like writing the tests themselves, I am sure explaining the process will lead to better understanding of the process, and most likely show room for improvement.

Sometimes, the itention of code is so clear, you don't even need a test, just reading it, you can intuitively understand weakness in the API and work around it. That probably doesn't justify writing a test, because its much easier to reproduce conditions with an automated test than by hand and I haven't met a test I have only run once yet.

Of course, really using the code to get a job done is the best way to learn about it. Writing a test is a quick way to give your code a job to do.

09:16 PM, 27 Aug 2006 by dave bauer Permalink | Comments (0)
categories: OpenACS , Learning , Programming , Computer Science

SICP 2006 [webcast.berkeley.edu]

My good friend and fellow OpenACS hacker Vinod pointed me to a set of videos/podcasts of a recent course following Structure and Interpretation of Computer Programs.

Signifigantly, they approach the material in a little different way, and order than the classic lectures available online http://www.swiss.ai.mit.edu/classes/6.001/abelson-sussman-lectures/

It seems like the lectures given by the authors in 1986 follow the development of the book itself pretty closely. I was getting stuck on one part of the book, and not surprisingly they skip that part and come back to it, in the Berkeley lectures.

The push up first-order functions much earlier in the course, and I was able to "get" it right away. I am sure there is much more to understand, and I will keep listening and learning.

09:11 PM, 27 Aug 2006 by dave bauer Permalink | Comments (1)
categories: Learning , Programming , Computer Science , Learning Portfolio

I had a conversation the other day when another developer mentioned using a REST interface instead of HTTP POST. Despite reading quite a bit about REST, the idea had not sunk in. My colleague explained that the basic idea is that all operations on a "resource" use the same URL. So if you have a file/data structure/whatever you PUT to create it, GET to retreive it, at the same URL. Where, with a POST, in general, the URL stays the same, and the paramters, change to refer to the resource. GET would usually occur at yet another URL, with the same parameters. I'll have to keep thinking about it.

08:26 PM, 22 May 2006 by dave bauer Permalink | Comments (0)
categories: Learning , Programming , Computer Science

Head First Design Patterns [www.amazon.com]

A great, readable way to learn the priciples of design patterns for software. The multiple ways of explanation and repitition really help you understand what the patterns mean.

They do a good job of stressing extracting patterns from code as it eveolves, rather than designing patterns in before they are needed.

I am a little lost because I don't really write object oriented code, and never have used Java. One trick I am trying is rewriting the examples in Squeak (Smalltalk). An interesting consequence of this is the greater simplicity of the examples in Smalltalk, since you can leave out all the type definitions, as well as the simpler ways to define classes etc.

The next step I am taking is to conver the examples to the XOTcl object oriented extension to Tcl. Most of my code is in Tcl embedded in AOLserver for OpenACS, and there is growing interest in using XOTcl to improve code organization in OpenACS.

10:09 AM, 19 Apr 2006 by dave bauer Permalink | Comments (0)
categories: OpenACS , Learning , Programming

MVC, beyond the scaffold [blog.amber.org]

I found an amazingly, simple, and greate explanation of the limits of automatic, scaffolding code based on models. MVC in Ruby on Rails explains that the scaffolding creates the most basic CRUD controller based on a single model. This is usually not quite what you need, and you end up gluing together several models into one controller that gives your users exactly the interface they need.

I am certainly not singling out any one toolkit, I think that most descriptions of MVC describe the single model per controller example, and it really doesn't show you how to really use MVC.

David Heinemeier Hansson has said before that scaffolding is fun, but you will need to customize whatever automatically generated code comes out of it.

08:35 PM, 17 Apr 2006 by dave bauer Permalink | Comments (0)
categories: OpenACS , Learning , Programming , Computer Science

Kathy Sierra addresses an issue in my own learning again. Of course, since humans are always learning something, I am sure you can apply the ideas to any human. This article says keep referring back to the fundamentals to keep learning. If you haven't learned the fundamentals, you'll hit a wall somewhere along the line where your learning stops or is much more difficult.

This is another simple idea that I often overlook. At least it validates my idea that I should learn more of the fundamentals of computer science to become a better programmer.

The article also stresses revisiting the fundamentals after awhile. This can bring new insights as you apply everything else you have learned back into understanding how the fundamentals apply.

03:38 PM, 05 Mar 2006 by dave bauer Permalink | Comments (0)
categories: Learning , Programming

Kathy Sierra at Creating Passionate Users talks about keeping/recovering passion. She was inspired by a bunch of students in software engineering at a recent conference organized by those same studetns.

This reminds me what I am always say about learing and keeping the wonder and curiousity you had when you were 5 years old. Wonder and curiousity, (desire to learn, whatever you call it) is essential to passion, and to doing great things. Let's not forget that teaching and sharing what you have learned with others is another great way to keep learning.

12:04 PM, 10 Feb 2006 by dave bauer Permalink | Comments (2)
categories: Open Source , Learning , Programming , Creativity

Comparing SICP to HTDP we find one book focused on learning how to solve problems, and think in new ways, while the other focuses on building computer software systems.

SICP is for training computer scientists, while HTDP is for training good programmers.

So if you just want to implmenet new versions of the software we already have, in a new lanaguage HTDP will help you produce better, easier to maintain code. If you want to change the world, and create something new, you need SICP.

11:17 AM, 03 Jan 2006 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning , Programming , Computer Science , Learning Portfolio

I found a post on Lambda, The Ultimate that links to a few articles discussing what should go into a first programming course, and how it should be taught. I originally looked at SICP and I think it teaches some really interesting fundamentals of how programs work. This critique by Felleisen, et al,[pdf] auhtor's of How to Design Programs advocates a different approach. The critique says that SICP shows how to do the main parts of programming, but does not teach when or why to choose a certain technique. It seems that SICP expects 1) the instructor to add this value, or 2) the student will learn this by applying the priciples to example programs, and be able to transfer this to their future programming projects.

I have just started SICP and I agree with this critique. Probably most of all what I need to learn is when to apply a certain technique and how to anaylyze a program structure to know what techniques are being used and how to improve it.

Another critique of SICP is the specific domain knowledge required to understand the programs, especially mathematical concepts. One of the first examples, and exercises focuses on testing is a number is prime. The forumla and algorithm for this is introduced, but it seems it is assumed the reader understands this from prior math courses. This can make the learning frustrating as you end up focusing on understanding the math instead of the program.

It probably is important for a programmer to understand this math, but its hard to aquire it in this context. The critique shows a table of the concepts taught and the examples used to teach them comparing SICP to HTDP and its striking how the examples in SICP are of interest only to the most dedicated computer scientist who wishes to understand the deepest concepts of the art, where HTDP examples seem much more fun, and approachable.

I still will stick with SICP, but I am also going to look at HTDP in parallel. I am intersted in the funadmentals of programming langauges and how they are built, even if it isn't directly applicable to my programming work. I also am interested in learning about learning, and the different ways the programming fundamentals can be learned.

10:40 AM, 23 Dec 2005 by dave bauer Permalink | Comments (3)
categories: Learning , Programming , Computer Science , Learning Portfolio

Looking at Computer Curricula 2005 from the ACM there are several different types of degree in computer studies. I am focusing on concepts from Computer Science and Software Engineering (by their definitions.)

My understanding is that computer science is the theory of how computers are used to build things, while software engineering focuses on actually delivering working software to users.

The ACM paper has a couple of ways to describe the programs. Fist is "Knowledge Area"

I have interpreted their table to give an idea of what is included as a major topic in each area. See the paper for the full details.

Knowledge AreaCSSE
Programming Fundamentalsvery importantmost important
Algorithms and Complexity/td>most importantvery important
Programming Langaugesvery importantslightly important
Human Computer Interactionimportantvery important
Database Theoryvery important/td>very important
Database Practiceimportantimportant
Legal/Professional/Ethics/Societyvery importantvery important
Analysis of Technical Requirementsvery important/td>very important
Software Modeling and Analysisslightly importantmost important
Engineering Foundations and Economics for Softwarenot importantvery important
Software Designvery importantmost important
Software Verification and Validationslightly importantmost important
Software Evolution(maintenance)slightly importantvery important
Software Processslightly importantimportant
Software Qualityslightly importantvery important

That covers most of the major areas. I'll be thinking about how these concepts tie into what I have learned and what I can learn building software.

01:08 PM, 16 Dec 2005 by dave bauer Permalink | Comments (0)
categories: Learning , Programming , Music

Here are some references toward the concepts I am interested in learning.

01:03 PM, 16 Dec 2005 by dave bauer Permalink | Comments (0)
categories: Learning , Programming , Computer Science

I have decided that even though I don't have time to formally pursue a degree in Computer Science, I am going to attempt to learn the content of a Computer science/Software Engineering program on my own.

I am using this weblog category to document this process in case I ever decide to take what I have learned and apply it toward a degree. There are schools like Empire State College that grant credit for documented learning. Documenting the learning process should also help me reflect and learn what I have learned.

I feel that I have quite a bit of computer science type knowledge already through my open source volunteer programming, and consulting projects. The idea is to figure out what parts I have learned and where I can learn more.

12:59 PM, 16 Dec 2005 by dave bauer Permalink | Comments (0)
categories: Learning , Programming , Computer Science , Learning Portfolio

Dave Tosh has a presentation about e-portfolios, Computing is Connecting. Sounds like this fits right into my idea to focus on connections, "the connections are the content".

02:38 PM, 17 Aug 2005 by dave bauer Permalink | Comments (0)
categories: Open Source Content Management , Technology and Education , Learning

The connections are the content? [www.thedesignexperience.org]

Reading learing technology weblogs and just paying attention to current general weblog trends, networking, connections, social software, etc are very important topics. This all comes done to connections between this and that. So I am coining a new pharse "the connections are the content", after my previous "the community is the content". I guess connections are a generalized form of community in some graph theory sort of way.

Another way to look at this is how learning is about making connections and recognizing patterns. This is closely related to Connectivism (more), or a theory a learning by finding the meaning in connections between ideas, things, and information.

This is also how e-portfolios are starting to look, as a dynamic set of information linked, or connected, instead of a static list of accomplishments.

12:46 PM, 12 Aug 2005 by dave bauer Permalink | Comments (0)
categories: OpenACS , Open Source Content Management , Technology and Education , Learning

David Wiley posts about learing objects, and a new way to think about them as items learners use to create something new. He reminds us that we learn more when we teach, or take something and use it. It seems to me the traditional function of learing objects are more as teaching objects. How much learning is occuring if the object is something a learner would not use without being told to?

I think the point is that all objects are learning objects, and the way to improve learning is to make it easier to take these objects and use them in a way to create something new, and develop an understanding in an indiviual way. A big part of this is just making someone aware of what is available to use, and let them explore and learn along the way.

The learning is not in the objects. I got this from Alan Kay when he said "the music is not in the piano".

12:38 PM, 12 Aug 2005 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

I have been reading Michael Feldstein's series on a new way of thinking about integration of learning technology that he calls the Learning Management Operating System. It sounds like he is imagining the possibilies of a Web 2.0 enabled learning environment. It's a little difficult to imagine how all the pieces will get together, but I do believe thinking big is a good way to change the world.

Michael has the luxury of distance from the details of technology, so he doesn't have any preconceived ideas of what software to use, he just wants it to work. I can't help thinking about how to make this work, so here are some first ideas about open formats for making the kind of connections an LMOS will support.

In the past an LMS might integrate an external web application by presenting it in a frame, with the host LMS navigation surrounding it. Now a solution might include a web service that offers XML syndication of the content. If its a discussion forum, for example, our LMOS could query for the newest postings, or anything else our user wanted to see, possibly searching by keyword, or author or a posting. In addition I just learned about the Atom Publishing Format and Protocol. This seems like at least a standardized way to publish information back to the web service. It also could be used for the syndication format, but would not be the only option. It's certainly not the only way, but this idea does use existing open formats to make the connection.

This is just the first idea that I had about open formats for a LMOS. I am sure its not the only way. It is something existing LMSs could support right now, with a gradual shift to more and more support for open standards, formats, and protocols.

08:57 AM, 09 Aug 2005 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

Scientific American: MIND had an issue on creativity. One of the sidebars detailed 4 steps to a creative mind-set. They include Wonderment, Motivation, Intellectual Courage, and Relaxation.

These steps are pretty obvious, but they are still good it keep in mind to help nuture your creativity. Of course, its easier to go get a 5-year-old and follow them around. In a pinch a 6, or 7-year-old can do. Even better if know an older child, or even an adult who still has curiosity.

Motivation is tied directly to curiosity, it basically means, if you are curious, you will go an learn as much as you can about what you are curious about, at least until you are full.

Intellectual Courage, or "thinking outside the box" or innovation is a great concept to keep in mind. This reminds me of my 7-year-old who came home from Camp Invention and told me about brainstorming, and how there are no bad ideas in brainstorming. I have to figure out a way to explain that you should think that way all the time, not get during "offcial brainstorming" sessions!

Relaxation, taking the time to daydream, and let your mind wander. Most people can tell you of a great idea they had in the shower, or just before falling asleep. You need to take a break and let you subconscious work on a problem and twist it around and compare it to the other bits lying around in your head. I think relaxation and clearing your head also ties into ideas like Getting Things Done, where you put all your tasks, and todos, and ideas someplace safe where you know they'll be when you need to refer to them. This keeps them out of your immediate thoughts and leaves room for good ideas.

01:28 PM, 12 Jul 2005 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning , Design , Creativity

Strategy by Design by IDEO's Tim Brown, discusses how thinking about design can improve planning and strategy for business. I like how the ideas fit into Agile software development.
It's a process of enlightened trial and error: Observe the world, identify patterns of behavior, generate ideas, get feedback, repeat the process, and keep refining until you're ready to bring the thing to market.
Product design doesn't map one-to-one with Agile software development, but I can see parallels. I especially like the idea of "elightened trial and error." One place that Agile software development differs from the ideas in the article is the concept of prototype. A prototype is a quick design experiement to stimulate the imagination and get more ideas. With Agile development, the idea of throwing away the steps of iteration is gone. You plan to keep the results of every iteration and build on it. So each step is complete as it can be, as a part of a whole.

12:27 AM, 03 Jun 2005 by dave bauer Permalink | Comments (0)
categories: Open Source , Learning , Programming

Creating a story, beyond bullet points [www.beyondbullets.com]

Following a recent discussion around Don Norman's recent rebuttal of Edward Tufte's opinion on Powerpoint, I found Beyond Bullets, a weblog and book about better communication. The site provides free templates to help you organize you thoughts and presentation more effectively.

There is even a discussion board. I found a thread about planning for training which turned into a thread about organizing using mind maps. The secret is figuring out the starting point to organize the story around, using a mind map.

To me the critical decision is what to put into the "center". When you put Laura's solution statement in the middle, the whole thing becomes a very clear, coherent, and scalable story.

I definitely need to learn more!

10:58 PM, 02 Jun 2005 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

Inventing the Future [www.smalltalk.org]

The best way to predict the future is to invent it -- Alan Kay

"Don't worry about what anybody else is going to do… The best way to predict the future is to invent it. Really smart people with reasonable funding can do just about anything that doesn't violate too many of Newton's Laws!"
— Alan Kay in 1971,
inventor of Smalltalk which was the inspiration and technical basis for the MacIntosh and subsequent windowing based systems (NextStep, Microsoft Windows 3.1/95/98/NT, X-Windows, Motif, etc...).

12:55 AM, 05 May 2005 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

I was over on the #openacs irc channel, answering questions about how OpenACS differs from some random open source CMS. It was a typical day. I said something like "OpenACS focuses on user interactions and community first, and content second unlike more open source CMSs which focus on content first." Then I had an ispiration. The community is the content. A nice short explantion, if still a bit last year's buzzword sounding. I think online communitiy was in style as a buzzword a year or 3 ago.

OpenACS and is predecessors where pioneers in online community toolkits and OpenACS is still the online toolkit that builds everything from the model of users, groups, and how they interact.

I did a google search for the phrase "the community is the content" and found some interesting results.

23 results. (wow looking now, my entry about the phrase is #2 in the results since I posted it yesterday.) The first result is a PDF flyer from MIT Press that mentions MIT CogNET which is an online system that was built on the ArsDigita community system which turned into OpenACS.

Next I searched for "MIT CogNet Arsdigita" and found a great gallery of sites built on ACS from the past. OpenACS should revive this type of feature and showcase current OpenACS based sites and how they use the unique features of OpenACS to solve interesting problems.

10:11 PM, 28 Apr 2005 by dave bauer Permalink | Comments (0)
categories: OpenACS , Open Source Content Management , Technology and Education , Learning

David Wiley says talking about scalibilty in learning is too limiting. It limits our imaginations to figure out how to reach the most people. The challange is how to reach everyone. Reaching the majority is not really the issue, but figuring out how to reach the remaining people who are not reached.

I think David is right. Thinking in terms of scalibility is limiting. Creativity and opportunity for change is going to happen in the places where scaling does not work. More effort is required to reach the last few percent than to get to a high percent, or almost all.

06:26 AM, 27 Apr 2005 by dave bauer Permalink | Comments (2)
categories: Technology and Education , Learning

Games, Learning, Libraris [www.theshiftedlibrarian.com]

Jenny Levine relates gaming to work, life, and libraries. She refers to this interview with John Beck on IT Conversations and the book Got Game: How the Gamer Generation Is Reshaping Business Forever.

08:53 PM, 26 Apr 2005 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

Boring Schools, Bored Kids [www.weblogg-ed.com]

Will R at Weblogg-Ed reflects on his daughter's feeling of boredom with school. My kids feel the same way sometimes. It's difficult to keep a roomful of individual kids all interested in the same thing at the same level at the same time.

I don't know all the answers, I just know we can do better. One article I read (that unfortunately, I cannot find the link to) mentions that one teacher, in front of a classroom cannot scale much past 30 kids. We can't improve learning without increasing the number of people learning alongside kids. I think its a key place to innovate in learning.

06:44 PM, 16 Apr 2005 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

There is a concept going around of "personal learning" where the learner is the one who decides how to arrange the bits of information used in their learning. Usually on the web this takes the form of weblogs, wikis, e-portfolios, and aspects of social networking.

Here are some links:

Creation of a learning landscape: weblogging and social networking in the context of e-portfolios and the software that implements those ideas (open source) Elgg. Also see the hosting service for Elgg.

Visual Learning Environment of the future and A roadmap for the personal learning landscape.

I posted about this on the .LRN discussion forum, and learned that Nick Carroll is working on a version of eportfolios for .LRN called dotFOLIO.

07:06 PM, 15 Apr 2005 by dave bauer Permalink | Comments (0)
categories: OpenACS , Technology and Education , Learning

Let's try it leads to I can do it! [www.elearnspace.org]

George Siemens reflects on the value of making mistakes in learning. I totally agree. Everything I remember learning, I learned by making mistakes, asking questions, and looking for solutions.

09:00 PM, 07 Apr 2005 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

Online Courses: learning how to learn? [jade.mcli.dist.maricopa.edu]

Alan Levine posts about a student panel on online learning and has a great quote that explains why online learning can work, if it is done right.
Online courses [produce better learning environments]. You have to teach yourself to learn what you need to know. You pay more attention and are more focused.

Learning how to learn what you need to know is really the best way for people to learn for life and get the most out of their investment in education.

01:16 PM, 09 Mar 2005 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

I have never seen this idea before, but I am sure someone said it:

Test driven programming/development/design means learning from your mistakes.

I think this is a great way to explain why testing is important in programming. It makes learning from your mistakes easier. I have always advocated what I called the "trial-by-fire" method of learning. In the context of OpenACS that means, start programming now, you'll learn what you need to know along the way.

05:11 PM, 05 Mar 2005 by dave bauer Permalink | Comments (0)
categories: OpenACS , Learning , Programming

This quote from Robert Paterson says it all
The idea that knowledge is an object is an industrial artifact. Knowledge is more than facts; it is about understanding and participation
. Go read the rest. Its good stuff.

Learning is about building understanding. You only can do that through interaction with the world.

03:26 PM, 02 Mar 2005 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

What can a blog do better? [www.weblogg-ed.com]

From Weblogg-Ed

But the one thing the blog allows me to do that I could not do easily in my classroom before is to link, to connect ideas, to make transparent my thinking about those ideas, and to have others link to them and do the same. I've been down this road before, I know, many times in fact. But it is the essential piece of Weblogs to me: blogs allow me to create content in ways I could not before, not just post what I could create otherwise in a different form. And in the essence of that creation I use and learn all of those skills that will serve me in my lifelong learning that were (I think) much more difficult for me to learn before: close reading, critical thinking about information, clear and concise writing for a real audience, editing, and reflection, all of it understanding that whatever truth I may put forth will continue to be negotiated by readers and more reading. This, by the very nature of the process, develops reading, writing, information, collaboration and computing literacies, literacies which I think most of us would agree are going to be crucial in navigating what's ahead.

The idea of linking, connecting ideas, and revealing thinking processes is the value in a weblog. Or well, anything that puts those things together will amplify your thinking. I think this is they key in showing why weblogs, and the web are so valuable to learning. Weblogs improve learning by helping to build patterns and connections.

05:45 PM, 24 Feb 2005 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

I found another story on the limits of instituional attempts at learning at Weblogg-Ed. A shcool wants to limit kids use of the internet for research to a list of "approved" sites with known good information. So instead of learning critical thinking, getting information from more than one source, the school wants to point kids right at the "correct" information.

Will links to Stephen Downes who says "take back the web." I'd expand that. Why just limit it to the web? Schools limit learning in every way, in every dimension. We need to take back the world for learning.

03:42 PM, 18 Feb 2005 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

Transparency and Education [www.weblogg-ed.com]

Over at Weblogg-Ed is another endorsement for a new way of learning, instead of rigid structure of schools. I am not sure if it was meant this way, but it points right towards unschooling again. He mentions a passage from The Red Pencil, by Ted Sizer where learnign is described as " idiosyncratic (you and I do not learn everything is quite the same way and pace) and messy." Of course it is. That is why learning what you are interested in, when your are interested, in the way that you want, is the most effective stratgey.

He also refers to a conversation with a colleague about the potential of new techonologies to open up more ways for learners to interact with their learning. This is great, but his colleague suggests that anything that takes control away from schools will be discouraged. Schools as an institution are enemies of real changes. His colleague goes on to say "But things were 'different' in the 40s and the 60s and the 80s...all these things that were supposed to change education and never did..." This reminds me of John Holt. He started out trying to change schools, and ended up deciding that was too big. Changing schools in a fundamental way, turning them upside down, is too hard. His goal became encouring families to find a new way to learn. To find learning everywhere in life. To realize that life is the place where real learning takes place, and that school seperates kids from that kind of learning.

09:32 AM, 17 Feb 2005 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

Art Rhyno suggests instead of trying to get library backends to work with the we, that there is a public interface that can synch with a web applciation. He suggests that RSS might do the trick to synch the internal catalog with a public web application.

Using RSS or any other noticiation system to synch the interesting catalog data for use by the public would be very exciting. Already my local library can output the books I have checked out, and search results in XML, but its not pretty. There also isn't any sort of standard format that works across platforms. So I could work on an application that shows the books I am currently reading according to my library records, but it would only work with a library with the same platform.

Anyway the post was more about a public inteface to the catalog. I would love that. It would be great to aggreate comments and reviews and link them to a local library catalog. There all all kinds of exicting options. Art says "the trick is to create sustainable web representation of the contents of the catalogue, with dynamic hooks for status information "

07:38 AM, 16 Feb 2005 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Open Source , Learning , Search

More on real learning [www.weblogg-ed.com]

Over at Weblogg-Ed, is more on real learning. That is, the fact that real learning occurs when there is real interest in what is being learned. Great stuff. It occurs to me that perhaps the people who are writing this in their weblogs are the folks who made it through regular school, and still had some of their love for learnign intact. It is an exciting time to be learning.

07:10 AM, 28 Jan 2005 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

Wow, this is an interesting weblog post that at once, tries to encourage schools and teachers to change their ways, while at the same time endorsing unschooling. Key words that point to unschooling: "follow their interests", "topics of their choice", "create learning environments that allow students [would not kids, or people be more appropriate? Dave] to express their interests", "stop being teachers and become facilitators of a natural process".

I really can't imagine a better way of decribing how learning really happens when someone is following something they are truly interested in. In addition to the support for the idea of learning coming from real interests is the long lost of problems inherent to schools such as stiled creativity, suppressed interestes, and curtailed freedom. If that is really what schools are like, why would anyone want to send their children there?

It is curious that in the context of increased use of technology such as weblogs, online communities, etc..., issues such as these are coming out. A networked society enables much greater interaction between people who are not in the same place and time. This is great for learning. One can contact an expert in any part of the world and learn. Of course it does not need to be an expert, just someone who knows what you want to know, and is willing to share. Even more interesting is a community of people learning together. So when I learn something new, I share it with my community, and hopefully from that, even more learning will happen.

These are the really exciting ideas. They are not new, but it seems the idea of learning anytime, anywhere, from anyone, is spreading with the increased connectivity afforded by technology. Of course, until everyone is given the chance to use technology in this way, the benefits will be small and scattered. How many kids are learning that they can learn much more outside of school being part of the real world because of this technology.

06:18 AM, 27 Jan 2005 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

From Weblogg Ed refers to a very interesting post. I will quote the quote
My purpose for having students take ownership of the class blog, work through the Segue CMS site to solidify them in the f2f class world, and then re-create themselves in their blogs is simple: I want the students to remove me from the class/course. I want to be invisible. I want them to realize that, through ownership, students can participate in the world using the best available tools. I want them to command the technology--not be neutral to it. Hector J. Vila

I love the idea of the instructor becoming invisible. That is the key here. Unlocking the students potential to learn. Too often online learning really means "online teaching". Until someone can own the learning process and realize they need to take information and knowledge and make it their own, learing doesn't really take place.

The idea that students can take technology and control it to direct their own learing is quite related to unschooling, which means many things, but most of all means giving someone the freedom and power to learn.

I have a lot more to think about, but I believe that any online learning attempt that does not give the potential learner the power to control and own the learning process will not be effective.

03:58 AM, 30 Nov 2004 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

There is a wiki that goes along with the Decentralization of Learning Resources: Syndicating Learning Objects Using RSS, Trackback, and Related Technologies session at Educause 2004.

This is a neat way to add to the conference presentations, and is a nicely recursive way, using a decentralized medium to deliver it. I need to look into this more because I mostly work with the .LRN platform, which is definitely more centralized. Luckily it does support RSS and trackback, although not of learning objects just yet. Hopefully more progress can me made in that area. It would be very interesting to see how schools would work together to share learning resources if the tools were available.

10:35 PM, 20 Oct 2004 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

Dave Shea at mezzoblue has a great new entry on Exploration , the act of finding stuff out for yourself. The internet, a new way to goof-off encourages this type of finding new things. Of course, so does an afternoon at the local bookstore or library. Anyway the idea is great and I will have to comment more on all the different kinds of exploring.

08:43 AM, 20 Oct 2004 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

Al Essa will be giving a presentation on .LRN at Educause 2004. The title of the presentation is "Scalable Innovation in Collaborative Education Technology with .LRN". The program says the presentation will include case studies from MIT Sloan, Univ. of Heidelberg, the European Union's E-Lane. In addition it highlights some of the interesting features of .LRN including complex multi-player simulations (read more about simulations in OpenACS) and aggregation and syndication of educational content via IMS/SCORM support (read more about IMS/SCORM support in OpenACS).

04:54 AM, 13 Oct 2004 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Open Source , Learning

10:53 PM, 31 Aug 2004 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Learning

Howard Gardner revisits and updates his theory of multiple intelligences, and addresses how to use the theory to improve learning and education.

The first half of the book reviews and updates the theory. The rest of the book is on education.

Gardner says that multiple intelligence theory is not the basis for an education, but should remind us of three key ideas: "We are not all the same, we do not all have the same kinds of minds (