A Django site.
November 20, 2008

Jeremy Robb
scothoser
Scothoser's Corner
» Getting Technical with Learning: Open Curriculum for Children with Autism

Since coming back from leave after the birth of my son, I’ve been engrossed with developing new learning material for my son with autism.  Currently he is doing well in Pre-School, but there are always additional learning exercises that could supplement his education.  The problem is, there are a lot of resources if you want to pay for them, but not many that are open to all parents that need the help now.  

So, I thought I might try to come up with something myself, and see where it leads me.  In order to meet this daunting task, I needed to outline what I wanted to accomplish.  

  1. The Material Needs to be Modular:  Not all autistic children are the same, and not all children need to focus on the same skills.  Modularity helps address differing skill levels for the learner, and therefore allows the instructor (teacher, parent, etc.) to better target the learner’s needs.  
  2. Specific Step by Step Breakdown:  Children with Autism need to learn through a very basic breakdown of the tasks.  This takes jobs, tasks, subtasks, skills, attitudes, and knowledge into a whole new level.  This would also help learners find connections and relationships, which I maintain as the ground work of intelligence. 
  3. Easy Adaptation for Existing Routine:  Stability in the life of one that is on the Spectrum stems from routine.  As long as the routine is not too badly interrupted, meltdowns are kept at a minimum.  In order to successfully integrate the learning material into the routine, it needs to be applied to the routine minimally, which also makes it that much easier for the instructor to apply and evaluate. 
  4. Easy Augmentation:  Think of this part of the goal like adding an API for the material that allows for additional media or exercises to be added to the course.  This would be a natural progression for an easily adaptable program.
  5. Easy, Indirect Evaluation:  Most educational materials require a formal evaluation to determine how well a student is learning.  Perhaps you remember your pop quizzes, final exams, and standardized tests?  As children on the autism spectrum are more likely to suffer panic attacks, a non-intrusive evaluation method would be best.  Practical exams that are not advertised as exams are perhaps the best method.
So those are the goals.  Seems simple enough, one would think.  Now it comes down to the skills that need to be taught.  This is where a good relationship with your State Department of Education would be very helpful.  The Utah State Office of Education has an outline for each subject for all grades from K-12, with a special section for K, 1, and 2.  As most parents of a child with autism are generally interested in the first few years, this is the section I will be focusing on initially.  I hope to continue the development throughout the years.  
Beginning with Kindergarten, there are three cores to the curriculum that are expected to be met:  Language Arts, Mathematics, and Content.  Language Arts focuses on identifying written words, and differences between upper and lowercase letters.  Mathematics focuses on quantity, counting up to 30, and learning how to practically add or subtract quantities, recognizing the changes in quantity.  Content covers the gambit for social skills, social studies, science, health, fine arts, and physical education.  
So I’m in the process of building a reasonable analysis that will help me best meet my goals within the given core curriculum expected by the Utah State Office of Education, and have it be geared directly to those parents or teachers that have children on the autism spectrum that desperately want to be taught.  It’s all about finding the learning method they can relate to, and helping them down that path.  
It’s not much right now, but at least it’s a start. 

October 25, 2008
» Proposal for Open Studies (Un)course

[This is the proposal I'm making for the creation of a new course at BYU.]
Students have many different needs, one size does not fit all. In our current courses, some are appropriately challenged but many others are bored and dissatisfied. Classes are not customizable by students to meet their needs or to fit their learning styles. In addition there are many subjects students would like to learn (the long-tail of education) that there isn't enough demand to justify allocating a classroom and teacher. Most students already spend considerable time outside of school learning things not taught in their courses. This course would give them access to resources at school most importantly their peers as they study advanced topics in small groups.

The course would be divided into three 6-week segments. In each segment, the student creates a learning project where they create both a learning goal and a learning plan. The learning plan will include the steps to reach their learning goal and a list of resources they will use which can include people and materials (books, OpenCourseWare, online resources, etc.). This learning plan will be reviewed by other students and a teacher before being passed off. Students can also “cite” other learning plans in their proposal creating a marketplace for learning plans. After learning plans are finalized, students will be organized into groups of 3-7 people who all are studying similar topics. These groups will meet weekly while students are working on their project.

Diagram of a six-week segment.

openstudies

During the segment, students will be asked to share what they are learning. Each week they'll make a post in an Island group about helpful resources they've found and/or how they solved a obstacle in their project. The last week of the segment is devoted to teaching what they learned. Each student will be asked to teach in a digital form what they learned and post it on Island. This could be as simple as a blog post or as elaborate as a screencast, a video, or podcast. In addition students will be asked to participate in an Ignite session (http://ignite.oreilly.com/) and an Unconference. Ignite sessions are where each presenter has 5 minutes on stage with 20 slides which rotate automatically every 15 seconds. An Unconference is a new form of conferences organized on the premise that all attendees have something valuable to say. Students will be asked to attend the unconference held the final week and either present or blog some of the presentations.

This course would produce a rapidly growing collection of valuable learning plans and learning resources useful to students and teachers alike. They will be useful to students who are taking the Open Studies class and need a good learning plan or who are studying outside of school. They will be useful teachers who are looking for new and innovative ways to help students learn.

Teachers would have a different role in the Open Studies class. They would be mentors or coaches. They would help advanced students who are passionate about a subject complete effective projects. They would help train students to be proficient, self-directed, lifelong, and wise learners.

There is a huge unmet demand for specialized classes in my major, Information Systems, and elsewhere across the BYU campus. I for one would love to take a classes on social network analysis, cloud computing, and Javascript UI design, none of which are available. I have a friend who wants to take a .NET web development class but can only find 4 other students who are interested. The Open Studies Course would meet these and other demands.

September 26, 2008
» It's the culture, some insights on organizational learning.

Here's a great quote from a journal article I'm reading for class. The article nails the problem with most social media / knowledge management installations in organizations.

The difficulty in most knowledge management effort lies in changing organizational culture and people's work habits. It lies in getting people to take the time to articulate and share the really good stuff. If a group of people don't already share knowledge, don't already have plenty of contact, don't already understand what insights and information will be useful to each other, information technology is not likely to create it. However, most knowledge management efforts treat these cultural issues as secondary, implementation issues. They typically focus on information systems—identifying what information to capture, constructing taxonomies for organizing information, determining access, and so on. The great trap in knowledge management is using information management tools and concepts to design knowledge management systems.

Sharing useful knowledge is a skill that few people learn to use effectively. The past year and a half for various reasons I've heavily involved myself in the Drupal open source community. One of the most fascinating things I've seen and learned from is how members of the community share knowledge. Drupal has a very effective knowledge sharing culture. What I've learned is that it's the people that make the Drupal culture effective not so much the tools or processes that the Drupal community has created.

People who become members of open source communities love to create and share knowledge. The people who are attracted to these kinds of communities have a passion for sharing and collaboratively creating knowledge. Another difference is the incentive structures. Open source communities are do-ocracies. People have power and influence within the Drupal community because they do something. They write code, they write documentation, they answer questions in the forums, and so on. People who do things get the respect and trust of their peers. In open source communities, both the people and the incentive structure encourage knowledge sharing.

So even with the twin disadvantages of using relatively unsophisticated collaboration software and that most contributors don't work closely together; open source communities' "knowledge management" systems stand as gleaming pillars of success next to the smoking hulks of the many multi-million dollar knowledge management systems developed and abandoned by major corporations. Any organization that wants to develop a strong knowledge sharing culture would do well to study the successes of the many open source communities. Organizations must find or develop the right kind of people and create the right incentive structures.

September 19, 2008

Hans Fugal
no nic
The Fugue :
» IMMS

So Apple added this Genius thing to iTunes recently. Not being the type to get excited about new iPod styles, it looks like the most interesting thing they could come up with this year. I gave it a try. I am not impressed.

I think it's because I've been spoiled. 5 years ago I was using what I still consider to be the peak of intelligent listening software, IMMS. Genius isn't half as cool as IMMS was then, and while IMMS hasn't made any quantum leaps in coolness, quite a few rough edges have been rounded off in the meantime.

I've been living in a sort of IMMS drought the past couple of years, since I switched to using a laptop primarily. Namely, an Apple laptop. This Genius release spurred me on to rectify that situation. If the best Apple could do was generate a 25-song playlist based on statistics gathered from other people the hopes of someone else hacking up an iTunes plugin to do IMMS or something like it dwindled to obscurity.

The bane of IMMS is, ironically, its most compelling feature. IMMS is cool because you don't have to do anything. It pays attention to your listening habits, and analyzes the audio, and makes intelligent decisions for you when you turn on random. 4 years ago I would show up to work and be in a Depeche Mode mood, so I'd manually queue up a Depeche Mode song or two and the whole day I'd be treated to complementary music. If the occasional happy song slipped through, I just skipped it and IMMS took the hint. Don't underestimate the amazing wow factor of a computer apparently reading your mind.

But this focus on simple non-obtrusive UI has been its biggest technical struggle. Media players are now a dime a dozen, and few of them have the plugin and UI sophistication to support IMMS' modus operandi. IMMS was developed originally as a plugin for XMMS and even then ugly workaround hacks were required. Then someone wrote a queue control patch for XMMS, and if you patched your XMMS you were in heaven. Oh, did I mention that still almost no other media players even have queue functionality, let alone let the plugins control the queue? Then when you consider the set of media players usable on OS X the situation gets laughable.

Somewhere in the middle MPD came along. It fit my situation well because the speakers over on the desktop were a lot nicer than the ones in my laptop. But queues it has not and nobody seems to care. Von bravely came up with an IMMS hack for MPD, but it was too hacky for me—too much like the old XMMS days before the queue control patch (incidentally, queue control is part of XMMS proper now as of version 1.2.11).

So I suffered along with manual or truly random music listening. Until now.

Recently I looked into this again for the desktop, and I was delighted to discover that one of the many XMMS descendants has finally solved the XMMS bitrot without throwing the baby out with the bathwater. Audacious is as cool as XMMS ever was and as modern as your favorite modern player (unless you measure modern by klunky iTunes-like screen-wasting music browsers). What's more, the imms plugin for it is right there in the Ubuntu repository. Just apt-get install imms-audacious and enable the plugin and you're off and running. So I set it up and… didn't use it. As in, we rarely listen to music on the desktop because nobody really sits there for very long. So finally earlier this week I hammered out a simple remote control using Audacious' dbus interface. That's another post, once I knock off a few other TODO points.

Feeling on a roll and feeling left out when at school, I decided to get an IMMS solution on my laptop, running OS X Leopard (10.5.4). I'll spare you the agonizing play-by-play and give you the shortest path to success: install Audacious and then IMMS. Actually the really shortest path is to install XMMS and then IMMS, because XMMS is in MacPorts. But it's the old version of XMMS without queue control, and doesn't have CoreAudio support (you have to use the JACK output plugin) so I don't recommend that.

To install Audacious, install its dependencies (mostly using MacPorts), then build it and its plugins. Installing its dependencies is the hardest part because it's difficult to locate libmcs and libmowgli (they're not where the README says they are, and Google is less than helpful). I just ended up stealing the *.orig.tar.gz files from the Ubuntu packages (apt-get source -d libmcs1 libmowgli). There is one patch you need for the plugins.

 src/CoreAudio/audio.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Index: audacious-plugins-1.5.1/src/CoreAudio/audio.c
===================================================================
--- audacious-plugins-1.5.1.orig/src/CoreAudio/audio.c  2008-09-19 12:08:01.000000000 -0600
+++ audacious-plugins-1.5.1/src/CoreAudio/audio.c   2008-09-19 12:10:28.000000000 -0600
@@ -326,7 +326,12 @@ gint osx_get_output_time(void)
 {
        gint retval;

-        retval = output_time_offset + ((output_total * sample_size * 1000) / output.bps);
+        if (output.bps == 0)
+        {
+            printf("Avoiding divide by zero in osx_get_output_time()\n");
+            retval = 0;
+        } else
+            retval = output_time_offset + ((output_total * sample_size * 1000) / output.bps);
        retval = (int)((float)retval / user_pitch);

        //printf("osx_get_output_time(): time is %d\n",retval);

Next you need to install IMMS. This is a bit more involved, but should be straightforward with these patches. I'll put them here and talk about each in turn.

First, a missing include for mkdir()

 immsd/immsd.cc |    1 +
 1 file changed, 1 insertion(+)

Index: imms-3.1.0-rc4/immsd/immsd.cc
===================================================================
--- imms-3.1.0-rc4.orig/immsd/immsd.cc  2008-03-02 18:54:06.000000000 -0700
+++ imms-3.1.0-rc4/immsd/immsd.cc   2008-09-19 08:05:58.000000000 -0600
@@ -2,6 +2,7 @@
 #include <errno.h>
 #include <signal.h>
 #include <unistd.h>
+#include <sys/stat.h>

 #include <iostream>
 #include <sstream>

Then, a workaround due to OS X not having an initstate_r() (which I incidentally couldn't find in the current Linux manpages on Ubuntu or Debian either). This patch may not apply cleanly by itself, you may need to apply your cognitive reasoning.

configure.ac         |    3 +++
immsconf.h           |    3 +++
immsconf.h.in        |    3 +++
immscore/immsutil.cc |    9 +++++++++
4 files changed, 18 insertions(+)

Index: imms-3.1.0-rc4/immscore/immsutil.cc
===================================================================
--- imms-3.1.0-rc4.orig/immscore/immsutil.cc    2008-03-02 18:54:06.000000000 -0700
+++ imms-3.1.0-rc4/immscore/immsutil.cc 2008-09-19 08:13:29.000000000 -0600
@@ -27,6 +27,7 @@ int imms_random(int max)
{
    int rand_num;
    static bool initialized = false;
+#ifndef INITSTATE_BUG
    static struct random_data rand_data;
    static char rand_state[256];
    if (!initialized)
@@ -36,6 +37,14 @@ int imms_random(int max)
        initialized = true;
    }
    random_r(&rand_data, &rand_num);
+#else
+    if (!initialized)
+    {
+        srandom(time(0));
+        initialized = true;
+    }
+    rand_num = random();
+#endif
    double cof = rand_num / (RAND_MAX + 1.0);
    return (int)(max * cof);
}
Index: imms-3.1.0-rc4/configure.ac
===================================================================
--- imms-3.1.0-rc4.orig/configure.ac    2008-03-02 18:54:06.000000000 -0700
+++ imms-3.1.0-rc4/configure.ac 2008-09-19 08:17:58.000000000 -0600
@@ -68,6 +68,9 @@ else
    AC_MSG_RESULT([yes])
fi

+AC_DEFINE(INITSTATE_BUG,, [initstate_r is buggy])
+
+
AC_CHECK_LIB(z, compress,, [with_zlib=no])
AC_CHECK_HEADERS(zlib.h,, [with_zlib=no])
if test "$with_zlib" = "no"; then
Index: imms-3.1.0-rc4/immsconf.h
===================================================================
--- imms-3.1.0-rc4.orig/immsconf.h  2008-09-19 08:05:31.000000000 -0600
+++ imms-3.1.0-rc4/immsconf.h   2008-09-19 08:18:23.000000000 -0600
@@ -121,6 +121,9 @@
/* Define to 1 if you have the <zlib.h> header file. */
#define HAVE_ZLIB_H 1

+/* initstate_r is buggy */
+#define INITSTATE_BUG /**/
+
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "mag@luminal.org"

Index: imms-3.1.0-rc4/immsconf.h.in
===================================================================
--- imms-3.1.0-rc4.orig/immsconf.h.in   2008-09-19 07:48:52.000000000 -0600
+++ imms-3.1.0-rc4/immsconf.h.in    2008-09-19 08:16:32.000000000 -0600
@@ -120,6 +120,9 @@
/* Define to 1 if you have the <zlib.h> header file. */
#undef HAVE_ZLIB_H

+/* initstate_r is buggy */
+#undef INITSTATE_BUG
+
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT

This patch is just so libpcre can be found

build/Makefile |    1 +
1 file changed, 1 insertion(+)

Index: imms-3.1.0-rc4/build/Makefile
===================================================================
--- imms-3.1.0-rc4.orig/build/Makefile  2008-03-02 18:54:06.000000000 -0700
+++ imms-3.1.0-rc4/build/Makefile   2008-09-19 12:25:05.000000000 -0600
@@ -18,6 +18,7 @@ libimmscore.a: $(call objects,../immscor
libmodel.a: $(call objects,../model) svm-similarity-data.o
        $(AR) $(ARFLAGS) $@ $(filter %.o,$^)

+immstool-LIBS=`pcre-config --libs`
immstool: immstool.o libmodel.a libimmscore.a 
training_data: training_data.o libmodel.a libimmscore.a 
train_model: train_model.o libmodel.a libimmscore.a

Linking shared libraries on OS X is so much different from on Linux that there is almost always a need to do a patch something like this.

rules.mk |    5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

Index: imms-3.1.0-rc4/rules.mk
===================================================================
--- imms-3.1.0-rc4.orig/rules.mk    2008-09-19 09:04:13.000000000 -0600
+++ imms-3.1.0-rc4/rules.mk 2008-09-19 12:25:50.000000000 -0600
@@ -14,9 +14,8 @@ link = $(CXX) $(filter-out %.a,$1) $(fil
%.o: %.c; $(call compile, $(CC), $<, $@, $($*-CFLAGS) $(CFLAGS) $($*-CPPFLAGS) $(CPPFLAGS))
%: %.o; $(call link, $^ $($*-OBJ) $(LIBS), $@, $($*-LIBS) $(LDFLAGS))
%.so:
-   $(CXX) $^ $($*-OBJ) $($*-LIBS) $(LIBS) \
-       $(LDFLAGS) \
-            -shared -Wl,-z,defs,-soname,$@ -o $@
+   gcc -flat_namespace -undefined suppress -o $@ -bundle $^ $($*-OBJ) $($*-LIBS) $(LIBS) \
+       $(LDFLAGS) -o $@

%-data.o: %
        $(OBJCOPY) -I binary -O $(OBJCOPYTARGET) -B $(OBJCOPYARCH) --rename-section .data=.rodata,alloc,load,readonly,data,contents $< $@

This final patch fixes IMMS to use the proper interface for audacious (seems like this would have to be done anywhere?)

clients/audacious/audaciousinterface.c |  177 +++++++++++++++++++++++++++++++++
clients/audacious/rules.mk             |    2 
2 files changed, 178 insertions(+), 1 deletion(-)

Index: imms-3.1.0-rc4/clients/audacious/audaciousinterface.c
===================================================================
--- /dev/null   1970-01-01 00:00:00.000000000 +0000
+++ imms-3.1.0-rc4/clients/audacious/audaciousinterface.c   2008-09-19 15:30:21.000000000 -0600
@@ -0,0 +1,177 @@
+#include <gtk/gtk.h>
+
+#ifdef BMP
+#include <bmp/configdb.h>
+#include <bmp/util.h>
+#include <bmp/plugin.h>
+#elif AUDACIOUS
+#include <audacious/configdb.h>
+#include <audacious/util.h>
+#include <audacious/plugin.h>
+#endif
+#include "immsconf.h"
+#include "cplugin.h"
+
+
+int use_xidle = 1;
+int poll_tag = 0;
+
+GtkWidget *configure_win = NULL, *about_win = NULL, *xidle_button = NULL;
+
+gint poll_func(gpointer unused)
+{
+    imms_poll();
+    return TRUE;
+}
+
+void read_config(void)
+{
+    ConfigDb *cfgfile;
+
+    if ((cfgfile = cfg_db_open()) != NULL)
+    {
+        cfg_db_get_int(cfgfile, "imms", "xidle", &use_xidle);
+        cfg_db_close(cfgfile);
+    }
+}
+
+void init(void)
+{
+    imms_init();
+    read_config();
+    imms_setup(use_xidle);
+    poll_tag = gtk_timeout_add(200, poll_func, NULL);
+}
+
+void cleanup(void)
+{
+    imms_cleanup();
+
+    if (poll_tag)
+        gtk_timeout_remove(poll_tag);
+
+    poll_tag = 0;
+}
+
+void configure_ok_cb(gpointer data)
+{
+    ConfigDb *cfgfile = cfg_db_open();
+
+    use_xidle = !!GTK_TOGGLE_BUTTON(xidle_button)->active;
+
+    cfg_db_set_int(cfgfile, "imms", "xidle", use_xidle);
+    cfg_db_close(cfgfile);
+
+    imms_setup(use_xidle);
+    gtk_widget_destroy(configure_win);
+}  
+
+#define ADD_CONFIG_CHECKBOX(pref, title, label, descr)                          \
+    pref##_frame = gtk_frame_new(title);                                        \
+    gtk_box_pack_start(GTK_BOX(configure_vbox), pref##_frame, FALSE, FALSE, 0); \
+    pref##_vbox = gtk_vbox_new(FALSE, 10);                                      \
+    gtk_container_set_border_width(GTK_CONTAINER(pref##_vbox), 5);              \
+    gtk_container_add(GTK_CONTAINER(pref##_frame), pref##_vbox);                \
+                                                                                \
+    pref##_desc = gtk_label_new(label);                                         \
+                                                                                \
+    gtk_label_set_line_wrap(GTK_LABEL(pref##_desc), TRUE);                      \
+    gtk_label_set_justify(GTK_LABEL(pref##_desc), GTK_JUSTIFY_LEFT);            \
+    gtk_misc_set_alignment(GTK_MISC(pref##_desc), 0, 0.5);                      \
+    gtk_box_pack_start(GTK_BOX(pref##_vbox), pref##_desc, FALSE, FALSE, 0);     \
+    gtk_widget_show(pref##_desc);                                               \
+                                                                                \
+    pref##_hbox = gtk_hbox_new(FALSE, 5);                                       \
+    gtk_box_pack_start(GTK_BOX(pref##_vbox), pref##_hbox, FALSE, FALSE, 0);     \
+                                                                                \
+    pref##_button = gtk_check_button_new_with_label(descr);                     \
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pref##_button), use_##pref); \
+    gtk_box_pack_start(GTK_BOX(pref##_hbox), pref##_button, FALSE, FALSE, 0);   \
+                                                                                \
+    gtk_widget_show(pref##_frame);                                              \
+    gtk_widget_show(pref##_vbox);                                               \
+    gtk_widget_show(pref##_button);                                             \
+    gtk_widget_show(pref##_hbox);
+
+void configure(void)
+{
+    GtkWidget *configure_vbox;
+    GtkWidget *xidle_hbox, *xidle_vbox, *xidle_frame, *xidle_desc; 
+    GtkWidget *configure_bbox, *configure_ok, *configure_cancel;
+
+    if (configure_win)
+        return;
+
+    read_config();
+
+    configure_win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+    gtk_signal_connect(GTK_OBJECT(configure_win), "destroy",
+            GTK_SIGNAL_FUNC(gtk_widget_destroyed), &configure_win);
+    gtk_window_set_title(GTK_WINDOW(configure_win), "IMMS Configuration");
+
+    gtk_container_set_border_width(GTK_CONTAINER(configure_win), 10);
+
+    configure_vbox = gtk_vbox_new(FALSE, 10);
+    gtk_container_add(GTK_CONTAINER(configure_win), configure_vbox);
+
+    ADD_CONFIG_CHECKBOX(xidle, "Idleness", 
+#ifdef BMP
+            "Disable this option if you use BEEP on a dedicated machine",
+#elif AUDACIOUS
+            "Disable this option if you use Audacious on a dedicated machine",
+#endif
+            "Use X idleness statistics");
+
+    /* Buttons */
+    configure_bbox = gtk_hbutton_box_new();
+    gtk_button_box_set_layout(GTK_BUTTON_BOX(configure_bbox), GTK_BUTTONBOX_END);
+    gtk_button_box_set_spacing(GTK_BUTTON_BOX(configure_bbox), 5);
+    gtk_box_pack_start(GTK_BOX(configure_vbox), configure_bbox, FALSE, FALSE, 0);
+
+    configure_ok = gtk_button_new_with_label("Ok");
+    gtk_signal_connect(GTK_OBJECT(configure_ok), "clicked",
+            GTK_SIGNAL_FUNC(configure_ok_cb), NULL);
+    GTK_WIDGET_SET_FLAGS(configure_ok, GTK_CAN_DEFAULT);
+    gtk_box_pack_start(GTK_BOX(configure_bbox), configure_ok, TRUE, TRUE, 0);
+    gtk_widget_show(configure_ok);
+    gtk_widget_grab_default(configure_ok);
+
+    configure_cancel = gtk_button_new_with_label("Cancel");
+    gtk_signal_connect_object(GTK_OBJECT(configure_cancel), "clicked",
+            GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(configure_win));
+    GTK_WIDGET_SET_FLAGS(configure_cancel, GTK_CAN_DEFAULT);
+    gtk_box_pack_start(GTK_BOX(configure_bbox), configure_cancel, TRUE, TRUE, 0);
+    gtk_widget_show(configure_cancel);
+    gtk_widget_show(configure_bbox);
+    gtk_widget_show(configure_vbox);
+    gtk_widget_show(configure_win);
+}
+
+void about(void)
+{
+    if (about_win)
+        return;
+
+    about_win =
+#ifdef AUDACIOUS
+        audacious_info_dialog(
+#else
+        xmms_show_message(
+#endif
+            "About IMMS",
+            PACKAGE_STRING "\n\n"
+            "Intelligent Multimedia Management System" "\n\n"
+            "IMMS is an intelligent playlist plug-in for BPM" "\n"
+            "that tracks your listening patterns" "\n"
+            "and dynamically adapts to your taste." "\n\n"
+            "It is incredibly unobtrusive and easy to use" "\n"
+            "as it requires no direct user interaction." "\n\n"
+            "For more information please visit" "\n"
+            "http://www.luminal.org/wiki/index.php/IMMS" "\n\n"
+            "Written by" "\n"
+            "Michael \"mag\" Grigoriev <mag@luminal.org>",
+            "Dismiss", FALSE, NULL, NULL);
+
+    gtk_signal_connect(GTK_OBJECT(about_win), "destroy",
+            GTK_SIGNAL_FUNC(gtk_widget_destroyed), &about_win);
+}
Index: imms-3.1.0-rc4/clients/audacious/rules.mk
===================================================================
--- imms-3.1.0-rc4.orig/clients/audacious/rules.mk  2008-03-02 18:54:06.000000000 -0700
+++ imms-3.1.0-rc4/clients/audacious/rules.mk   2008-09-19 15:28:17.000000000 -0600
@@ -7,7 +7,7 @@ libaudaciousimms-LIBS = $(AUDACIOUSLDFLA
audaciousinterface-CPPFLAGS=$(AUDACIOUSCPPFLAGS)
audplugin-CPPFLAGS=$(AUDACIOUSCPPFLAGS)

-audaciousinterface.o: bmpinterface.c
+audaciousinterface.o: audaciousinterface.c
        $(call compile, $(CC), $<, $@, $($*-CFLAGS) $(CFLAGS) $($*-CPPFLAGS) $(CPPFLAGS))

AUDACIOUSDESTDIR=""

Phew. And that's not all. When you build IMMS you need to have OBJDUMP=gobjdump if you're using the default binutils variant from MacPorts, and this patch:

 rules.mk   |    2 +-
 vars.mk    |    6 +++---
 vars.mk.in |    1 +
 3 files changed, 5 insertions(+), 4 deletions(-)

Index: imms-3.1.0-rc4/rules.mk
===================================================================
--- imms-3.1.0-rc4.orig/rules.mk        2008-09-19 08:49:43.000000000 -0600
+++ imms-3.1.0-rc4/rules.mk     2008-09-19 16:17:33.000000000 -0600
@@ -19,7 +19,7 @@ link = $(CXX) $(filter-out %.a,$1) $(fil
             -shared -Wl,-z,defs,-soname,$@ -o $@

 %-data.o: %
-       objcopy -I binary -O $(OBJCOPYTARGET) -B $(OBJCOPYARCH) --rename-section .data=.rodata,alloc,load,readonly,data,contents $< $@
+       $(OBJCOPY) -I binary -O $(OBJCOPYTARGET) -B $(OBJCOPYARCH) --rename-section .data=.rodata,alloc,load,readonly,data,contents $< $@

 # macros that expand to the object files in the given directories
 objects=$(sort $(notdir $(foreach type,c cc,$(call objects_$(type),$1))))
Index: imms-3.1.0-rc4/vars.mk
===================================================================
--- imms-3.1.0-rc4.orig/vars.mk 2008-09-19 09:03:05.000000000 -0600
+++ imms-3.1.0-rc4/vars.mk      2008-09-19 15:07:44.000000000 -0600
@@ -5,8 +5,8 @@ INSTALL = /opt/local/bin/ginstall -c
 prefix = /usr
 PREFIX = $(prefix)
 OBJCOPY = gobjcopy
-OBJCOPYTARGET = 
-OBJCOPYARCH = 
+OBJCOPYTARGET = mach-o-le
+OBJCOPYARCH = i386
 exec_prefix = ${prefix}
 bindir = ${exec_prefix}/bin
 datadir = ${prefix}/share
@@ -15,7 +15,7 @@ VPATH = ../immscore:../analyzer:../model
 ARFLAGS = rs

 SHELL = bash
-PLUGINS = libxmmsimms.so
+PLUGINS = libxmmsimms.so libaudaciousimms.so
 OPTIONAL = immsremote analyzer

 GLIB2CPPFLAGS=`pkg-config glib-2.0 --cflags`
Index: imms-3.1.0-rc4/vars.mk.in
===================================================================
--- imms-3.1.0-rc4.orig/vars.mk.in      2008-03-02 18:54:06.000000000 -0700
+++ imms-3.1.0-rc4/vars.mk.in   2008-09-19 16:17:24.000000000 -0600
@@ -4,6 +4,7 @@ VERSION = @PACKAGE_VERSION@
 INSTALL = @INSTALL@
 prefix = @prefix@
 PREFIX = $(prefix)
+OBJCOPY = @OBJCOPY@
 OBJCOPYTARGET = @OBJCOPYTARGET@
 OBJCOPYARCH = @OBJCOPYARCH@
 exec_prefix = @exec_prefix@

Finally, make install doesn't finish the job.

cp build/libaudaciousimms.so /usr/local/lib/General/imms.impl

Well I think that's all the information you need, though it may not go smoothly. Hopefully we can get this all worked into IMMS proper and the 3.1.0 release will just work. If you use linux give Audacious+IMMS a try—it's easy and painless. If you think Audacious is for sissies, learn about the queue and the jump feature and try out IMMS for a week or two before you pass final judgement.

Oh, two final notes: Installing Torch can be a real pain and Audacious keyboard shortcuts don't work well with the gtk2 +quartz variant in MacPorts, so you want to stick with X11 gtk2. Oh, and though Audacious has a Last.fm plugin I haven't yet been able to figure out how to get it to stay enabled.

September 10, 2008

Jeremy Robb
scothoser
Scothoser's Corner
» The Future of Higher Education: Tighten Your Belt

On October 28th at the University of Utah, President Young will be talking about the future of higher education.  I’m not sure what he will talk about, but I thought I would mention what I found out looking at the current state of affairs in higher education (particularly with state funded schools).  

Essentially, the future is to tighten your belt.  What does this mean?  This means that the current economic climate has put funding into a lockdown.  You have whole states that are looking at huge deficits across the country, and as such they need to start cutting funding somewhere to bring themselves into a less bright color of red (if not in the black).  Traditionally, in periods of economic stress, the first areas to go are education and parks.

So educational facilities are generally asked to be more judicious in their spending.  Some schools are asked to cut as much as 15% from their overall budgets, which generally means that people are let go and departments are consolidated.  I lived through that at the Salt Lake Community College, where my department was essentially wiped out, and people were leaving (or asked to leave) in order to come under budget.  Outsourcing becomes the new standard for many services for which the school couldn’t or wouldn’t pay.

Currently, from what I have heard through the grape vine, that will not be happening at the University of Utah.  But budgets will still need to be tightened, and costs slashed for all divisions.  Running lean and mean is something that needs to happen in order to better service the student and offer the right programs at the right time to the right people.  

One way to save in the costs of doing business is to develop curriculum in house.  This means creating a class environment from scratch, including all the teaching materials.  I wouldn’t do this with Certification courses, such as Linux, Mac, or CCNA (after all, they are specifically designed already, and high income classes), but all of our one-day classes could be redesigned.  

So what is the benefit of curriculum development over purchasing external course materials?  One is your control of the course.  Students are given a guided list of skill sets that are most important for them to know and/or build upon to get to the next level.  It means utilizing the ADDIE process extensively.  I’ve blogged about this before, and now I’m going to be spending a lot of significant time focusing on these steps as I redesign some of my courses away from expensive books.  

For those of you working in higher education, what have you seen as the future?  Do you see a lot of belt tightening, or are your programs well funded and see no decline?  How about those in private institutions vs. State institutions?  How many of you develop your own course materials in lieu of mainstream published materials?

» My educational philosophy

A book I read recently helped me finger out why school can be so irritating at times.

The book is entitled Weird Ideas that Work: 11 1/2 Practices for Promoting, Managing, and Sustaining Innovation. One of its "weird ideas" is that companies should hire slow learners. Not stupid people but slow learners of the organization's code. A code is, the author explains, "a company's 'knowledge and faiths,' its history, memories, procedures, precedents, rules, and all those taken-for-granted, and often unspoken, assumptions about why things are supposed to be done in certain ways."

He goes on to say that most companies hire "fast learners" who quickly learn to do things the "right way" and see things much as others do in the company. But companies that do innovative work need a different kind of worker, one who won't get "brainwashed into thinking just like everyone else. They need people who avoid, ignore, or reject 'the heat of the herd. . .'"
<!--break-->
How do you find this sort of person? One suggestion he made is to hire smart people with bad grades. He says research has shown that many creative geniuses--including Edison and Darwin--were poor students.

Creativity researcher Dean Keith Simonton points out: "To obtain high marks in school often requires a high degree of conformity to conventional ways of looking at the world and people." People who get good grades are often fast learners of social cues. By contrast, smart people who get bad grades are listening to their inner voice, doing what they believe is interesting and right. Simonton observes that "one of the reasons creative talents often dislike school is that it can interfere with what they really want to know. When faced with the choice of reading a good book or studying for an exam, the extracurricular but still instructive diversion may win out." [italics mine]

School irritates me because I'm often told by teachers to do things and learn things I don't think are valuable. I have strong opinions about where I'm going and what I need to know to get there. When demands from school align with my own interests things go well. But when they clash, school loses out.

One of my guiding principles is maintaining control of my own destiny. I cede control of my experiences only to those with whom I have an unusual amount of trust. The trust threshold a person must meet before I'm willing to give up control varies upon the importance of the activity but for learning especially, it is very high. There is nothing more important than what I know, what I think, and especially how I think. My thoughts are my destiny. And when I let someone influence my thoughts, my destiny partially becomes theirs. And there are very few teachers with whom I want to share destinies.

September 9, 2008

Jeremy Robb
scothoser
Scothoser's Corner
» My Child with Autism Starts Preschool

Today my son starts his first full afternoon in preschool.  The Granite School District has a preschool specifically for children with autism, and I must say I am impressed with what they are doing.  The teacher is currently working on her masters degree in Special Education at the University of Utah, and there are 3 aides working with her in the class of 10 students (they cap the class at 10).  

We attended the Open House yesterday afternoon to meet the aides and the teacher.  All of them were well prepared for Jonathan, and were actually quite impressed with his abilities.  Of course, nothing brings pride up higher for a parent than to hear their child praised.  

The techniques they use in class are pretty standard when it comes to Special Needs.  They focus on backwards chaining and targeted, consistent requests.  

Backwards chaining is pretty self-explanatory.  Children are helped through their tasks until the very end, when they are then able complete the rest of the task by themselves.  A couple of successful completions later, they are then left to do more of the task on their own, always at the end.  This progresses until they can complete the task on their own without any help or prompting for initiation.  

This process is actually very effective overall when working with children of all abilities.  It’s the easiest way to feel accomplished while learning a process in that they complete the process each time on their own, while progressively learning how to complete each step of the task.  The child is able to remember more of the task because they have completed the end of the task more times than the beginning, meaning that end of the task becomes second nature.  I’ve even used the same process while trying to memorize speeches, lessons, or lines in a play.  

The next technique they focus on is one I can’t quite remember, at least not what it is called.  The process is pretty clear though.  You make your request in as few positive words as possible (Jonathan, please sit down).  You then count 5 seconds in your head, waiting for the request to register.  If it does not, then you make the request with more urgency (Jonathan, I need you to sit down please), and then wait another 5 seconds.  The final time you make it urgent and let the child know you will help them complete the task (Jonathan, I need you to sit down now and I will help you).  Every request is made within 3 to 5 feet of the child for their comfort, and every request is made positive.  

The distance is necessary, particularly for children with autism.  Autism is usually accompanied with highly acute senses, usually visual or auditory.  As such, children with autism tend to see and hear everything.  You have over 20 people talking at once?  A child with autism can hear them all, often distracting them from a conversation.   As such, it’s necessary to help the child focus on one thing.  If you are trying to talk to them from across the room, they will be too distracted to understand, and ignore your requests.  Too close, and they will feel threatened (little tip I got from Super Nanny!).  3 to 5 feet is ideal for children with autism as it keeps them comfortable and allows for focus.  

And then there is the positive aspect.  Children with Autism will often not hear the “don’t” or “won’t” of a statement.  You can’t tell a child with autism “Don’t run!” because they just hear “Run!”.  This has been the most difficult thing for me to work on.  I’m pretty relaxed in my parenting skills, generally letting my son explore his surroundings and learn without interference.  If it means a little bit of cleanup, that’s just part of the experience.  So when I do step in, it’s usually to keep him from doing something that could be destructive, damaging, or hurtful.  That usually means saying, “don’t”.  I’ve had to rethink my statements for my son, which has been a challenge.  So far, in my one half day of trial, it’s been very effective.  

So all in all, I’m very impressed and excited about my son attending a Public school.  The teacher knows what he needs, and I’ve seen her interact.  We know what his lesson schedule is, and how to help him learn along with the class.  I’m looking forward to working more closely with the classroom, and even taking some time off to see them at work with all 10 students.

August 16, 2008

Jeremy Robb
scothoser
Scothoser's Corner
» My Son’s Autism Workbook

This week, after spending a lot of effort trying to prepare for the Mac OS X 10.5 Advanced System Administration test, I took off the last half of the week to work on a workbook for my son.  As those of you who have followed my blog know, my son Jonathan is within the Autistic Spectrum, at either very high level autism or Asperger’s Syndrome (we find out in February which it is).  As such, trying to work with him has been an adventure, to say the least.  

We found a book that has been a great help.  The Autistic Spectrum Parents’ Daily Helper by Philip Abrams and Leslie Hendriques provides a great insight into teaching in general, and teaching autistic children specifically.  It’s focus is on learning through repetition, Constructivist learning by building upon skills and recognizing associations between skills, and finally learning design.  

Why learning design?  Because autistic children vary across the spectrum, their learning requirements are different.  The only way to teach your autistic children the skills they know is to break them down and teach each part of the skill.  This book tells you what to do, but it does lack in telling someone how to do it.  That means parents may know that they have to do a skills analysis, but they don’t know how to do it.  Luckily the book provides several references for parents that need more help. 

This book is more about doing something, which ultimately is what all students want.  Parents want to be able to do what they can, and this book is perfect for them.  It has a workbook for parents (giving them a teaching skill crash course), and a workbook for the child(ren).  

The students are focused on tactile and visual learning, which is great for autistic children (mostly because their auditory learning is generally challenged).  The workbook is focused on basic skills that most children pick up through imitation.  This includes doing chores, dressing oneself, etc.  It’s a great workbook, and one that I want my son to use.  

Now, the workbook is designed to have tear-out pages, but I have this thing about tearing out portions of books.  That, and it’s a standard 8.5″ by 11″ which is a bit larger than I like.  So, I took a lot of the ideas from the book and a few scans, and started making my own version of the book.  

I started by writing up all the text sections in Pages (which, ironically, I think the workbook was written in originally).  I also broke up the sections into two pages that fit within a compact Franklin planner.  39 pages later I cut out the new workbook sections and laminated them.  Then I punched holes to clip it in the planner.  Now I have a nice and compact workbook for my son that will travel nicely.  

So, that’s the workbook I have.  There are still some small details that need to be finished with it, but all in all it’s a functional workbook.  I can set a schedule for my son, have him match some skills together, and even start to learn how to tell time.  Needless to say, I’m quite happy with this workbook project, and look forward to augmenting it with new skills as we find that my son needs them.

July 18, 2008
» What is the key metric to measure Learning2.0?

This was a comment I left on Jon Mott's blog post, Getting From Here to There. Jon is an Academic Technology Strategist here at BYU who shares my enthusiasm for using web2.0 tools in the classroom.

I think a critical tool to have in building and proselytizing learning 2.0 tools is a key metric. This metric would be used to guide building decisions and to measure success.

In the book "Good to Great", an important event in the transitions of good companies to great companies was identifying a key metric or denominator as the book calls it.

The process of picking and using this denominator served as a mechanism to push deeper understanding of the company's economic engine. The companies asked themselves this question "If we could only pick one and only one ratio -- profit per x -- to systematically increase over time, what x would have the greatest and most sustainable impact on our economic engine?

Wells Fargo went through this process during bank deregulation:

"Consider Wells Fargo. When the Wells team confronted the brutal fact that deregulation would transform banking into a commodity, they realized that standard banker metrics, like profit per loan and profit per deposit, would no longer be the key drivers. Instead, they grasped a new denominator: profit per employee. Following this logic, Wells Fargo became one of the first banks to change its distribution to rely primarily on stripped-down branches and ATMs."

Because Wells Fargo understood their key economic drivers, they were able to a) encapsulate this logic through identifying a new denominator and b) use this logic to make many highly successful changes.

So my question is what are the key drivers of BYU's (and other school's) learning engine? What denominator or key metric offers the best insight as we plan / build / measure / proselyte new online technologies in education?

My suggestion would be conversations on learning topics per student per day.

I love Robert Scoble's (social media figure) goal to have an interesting conversation every day. Conversations with others seems an important key to learning almost anything.

My best educational experience by far here at BYU was the Information Systems Junior Core -- It's 24 credits over two semesters. I was placed in a group of four and spent eight hours a week sitting next to my group members. Almost all of our projects were group projects and those that weren't we often ended up working together anyways. Everything about the core was designed to push us students to talk to one another. A mailing list was set up for the ~110 students in the core. It saw heavy usage with students asking / answering questions about all sorts of class / ISys related questions.

The effect of all this was conversation, lots of it. Because of these conversations (and great professors / projects) I learned far more and I had much more fun than in other classes here. We talked so much about ISys / non ISys topics that many of us became good friends. I looked forward to class because I was going to see my friends.

By comparison, in most other classes I learn in isolation. I don't get to know other students very well so I don't talk much with them about the subject so I learn less and the class is much more boring.

My take on all this is we learn best with friends who are striving to become what we are striving to become.

Obviously not every classroom experience at BYU can hope to replicate what's done in the ISys Junior Core but I think much could be improved. The types of assignments given (e.g. more group work) and the integration of social software tools that make it easier for students and professors to connect online and offline would do much to help more conversations happen at BYU which would dramatically increase the quality and quantity of education.

What do you all think?

July 14, 2008

Jeremy Robb
scothoser
Scothoser's Corner
» The Final Stretch in Villa Park: Advanced Server Administration

This week I finish up with my T3’s for Apple with Advanced Server Administration.  This class is focused primarily on running the ADDIE process (Analyze, Design, Develop, Implement, and Evaluate) throughout the IT  infrastructure of a company, and build it up using both the GUI and Command Line tools.  Because it is assumed that you have been learning the GUI tools up to this point (this is the capstone course), it primarily focuses on the command line tools available to the Mac.  

I’m not sure when we will offer the class at the U, as much depends on other training offerings and any additional infrastructure we would need, but I already have a lot of people interested in this class.  Most of them are Linux administrators who are going to be supporting the Apple platform, and want to do so with SSH (just as they would with Linux).  I already have a list of people who would love to take that class.  

Anyway, it all hinges on whether or not I’m judged “good enough” to train.  Partly judged by my peers, partly judged by the Master Trainer, my fate rests in their hands.  At this point, however, I’m less concerned.  I’m rather more concerned with how my family is doing back home.  I’m literally counting the days until I fly out.  But I will miss the Chicago area.  

Anyway, more details on the classes I attended during this trip sometime next week.  I’ll give a teaser for the classes, and give you my opinion of the materials and flow of the class.  

July 1, 2008

Jeremy Robb
scothoser
Scothoser's Corner
» Mac OS X Deployment 10.5 T3: Review

As promised, here is my review for the Mac OS X Deployment 10.5 T3 that I attended this last week.  

First, the location.  Of course I’m biased, but I have always loved Chicago, and as such enjoyed the trip Villa Park and Oakbrook Terrace.  The hotel was nice, and the location of the training facility was fairly easy to get to.  The only problem:  no sidewalks.  It makes it difficult to walk when you don’t have sidewalks, and there isn’t enough room to walk on the street (without getting hit).  Other than that, the location was nothing to complain about. 

The materials:  There are quite a lot of material for this class, and I was a little concerned that it would be impossible to fit it all into a 2 day training.  Luckily, that was the thought of the course developers as well, and as such the training was extended to 3 days.  That fits in perfectly with my training schedule I have planned for the University, so I didn’t complain. 

The Subject Matter:  There was still a lot that I wanted to cover but couldn’t in the class, mostly those focusing around the command line.  But then, there is a separate class for that, which I will be attending in two weeks.  ^_^  But those important topics, such as deploying through the command line, and imaging through the command line, were covered in depth.  Also planning, scaling, and third party utilities for managing a deployment option was well covered.  

One really nice thing I liked about the class was a mandate for the student to immediately apply what they have learned to a real world situation.  They do this through a Deployment planning sheet, which the trainer should have printed out for each student.  We didn’t have it, but it was made available to us in PDF form, and there is a link that comes with the learning materials to PeachPit’s website for the same PDF.  Once the form is filled out, the last chapter talks about real world solutions in many large companies, school districts, and training centers, and gives the student time to go through their document to see what they find useful, and what they don’t need, in their deployment of OS X.  

The Requirements:  It is essential the student have a command of both the Mac OS X GUI and have command line experience before starting this course.  Basically, students would need to have completed at least the Server Essentials course, and be able to manage a UNIX command line experience.  Why?  Because at the beginning of the course you are just expected to set up your computers with little assistance from the book.  At this point, it is expected that the student knows already how to set up a brand new install of Mac OS X. 

The command line experience would be more along the lines of familiar with syntax of commands.  Most, if not all, of the commands used are Mac OS X Utilities and not your typical UNIX commands, yet the syntax is the same and therefore the student needs to be familiar with that syntax.  There may be some situations when troubleshooting is necessary, and as such the student will need to know how to get to the man pages.  

Something else that would be important before taking this class is having troubleshooting knowledge, and an understanding of what you are being prepared to learn.  This way if something doesn’t quite work they way it’s written in the book, you can step outside of the given examples and find alternatives.  That’s part of learning, something that many students I have had in the past didn’t quite understand.  It requires reading/studying ahead of time, asking questions, and being attentive.  

The Pace:  Unlike both Support and Server Essentials where we pend a lot of time trying to catch the class up after some really long first setup exercises, this class is paced just right for the materials.  We as a training class (of 10 trainers) finished with plenty of time on the last day to cover some topics more in depth, and that was with us doing the majority of the optional exercises.  So with a typical class at this level, the pacing will be such that students will have some time to play with some configuration, or perhaps have a long lunch as a thank you for coming to the class.  

Overall, it is the best designed Apple training course I have attended so far.  The materials are well designed, the pace is just right (low to medium cognitive load), and the course talks well to adult students (through Constructivist methods).  This is a class that may not run often here in Utah, but will most likely be a well attended class when it does.  It is by far my most favorite class to date.  ^_^  

Also, I’d like to say thanks to everyone that attended, because they gave me some very welcomed constructive criticism, and the Master Trainer was a great host.  If only the Cubs could have won all three games I was there, rather than just one of the two.  Oh well, there is always next time.  

May 31, 2008

Jeremy Robb
scothoser
Scothoser's Corner
» Virtual Machines in the Classroom: Teaching one OS inside of another

Education is an interesting beast.  There are so many different needs and environments that it often can become expensive to provide a comprehensive, controlled platform for students to work.  As such, often topics are ignored or just not offered.  

Case in point:  We have two closed computer labs here at the Annex that we use for teaching.  Both are Windows labs, because the primary platform our software classes run on is Windows.  To become a Mac lab required an investment in Apple hardware and software, which represented a huge cost on our part.  And now we are running Linux classes, thanks to our good friends at Guru Labs.  But we ran into a problem running the class in a semester-long format:  How do you keep the environment static for one platform while teaching in another platform?

The eventual obvious answer was using a Virtual machine.  With a virtual machine we have the ability to keep a separate image for each class (or series of classes) run, and continue to teach Windows software without having to re-image the lab every day.  

The second most obvious answer would be to use VM Ware.  Why?  Because it’s free and easy to use.  Now, we could opt to use Xen (and will eventually), but the base install for these systems needs to be Windows.  Why?  Because it’s the lowest common denominator when it comes to user experience.  This way people don’t panic when they see something other than a Windows XP login screen.  

Another reason to use VM Ware is the availability of VM Ware on the Mac (via VM Ware Fusion).  It’s easy to use, and allows us to use multiple OS distributions on the Mac machines without difficulty.  That means that the Linux class can now be mobile.  ^_^

So that is a current solution.  But what of the future?  There is a lot of potential for the Virtual machine setup in education.  Distance education becomes possible with a completely controlled environment, as long as one has a significant internet connection.  That, and some well organized VPN settings can make a remote Technical education setup quite possible.  

So, what makes virtual machines useful in an educational setting?  One distribution of an application, free of any potential conflicts, that can be distributed across a network through a mounted file system.  And all you have to do is double-click to execute.  

Have any of you used Virtual Machines in the classroom?  Which of you find it useful?  Which of you don’t?  

February 15, 2008
» Power Law Graphs from classroom community website

Researchers have shown that the distribution of many natural and social phenomenons follow what's called the power law. Power laws are known by other names such as the 20-80 rule (80% of wealth is controlled by 20% of the population), the long tail, Winner-Take-All, etc.

Here is an example power law graph from Wikipedia:

Power Law
Many have written that almost all measures of web site usage follow the same pattern whether that be page views, in-bound links, etc.

This past semester I built an e-learning site for two sections of an upper-level university course at Brigham Young University. Now that the semester is finished, we've started to analyze the data we've collected on how students used the site.

And what did I notice when I started to graph the data? Why the power law of course.

So onto the graphs I made.

First is a graph of the number of comments each student made on the class website throughout the semester. This is a good measure of their engagement with the online community. You can see that some students left as many as 40-60 comments throughout the semester and others left as little as 1 or two:Number of comments made by each student
Another graph which follows the power law. This time a graph of the number of visits to the class website per student. Again we see a wide disparity between students. One student visited the site over 400 times! Which in a four month semester means they visited the site on average 3 times a day! And on the other end, a number of students only visited the site 5-10 times the entire semester.
Number of visits to the site made by each student

Why the Power Law?

So why does this happen? Why do some students participate on the class website so much more then other students? I'm not sure I know the answer to that. Why do some people write blogs, participate in Wikipedia, upload their photos to flickr, etc. and many others don't?

Do some students just not see the value of blogging? Are some students more comfortable interacting online for whatever reason? Or on another tact, does it matter if some students participate more then others? After all, in any community, there's always a core group which cares much more then others about the success of the community (read about the power law of participation). What type of participation in an online learning community meets the learning goals for a classroom?

There's a host of other ideas rumbling around in my head about power laws, the three types of networks (political, social, creative) and how all this relates to creating effective online learning/collaborative environments. But that will all have to wait for another day. In the meantime, here's some links.

Extra Credit Reading:

Read these two articles by Ross Mayfield, first this one, then this one.

Then two by Clay Shirky, "Power Laws, Weblogs, and Inequality" and "Social Software and the Politics of Groups."

And one more on building vibrant communities.

February 2, 2008
» New elearning website

I've been putting some final touches on a website I built for a class running at BYU this semester on web analytics. You can visit the site here. I did a write-up about the site for Drupal's education working group. I discuss the design principles that guided my construction of the site.
A bit from the write-up:

We recently created a community learning space for a web analytics class at BYU. We directed students to create individual blogs on commercial blogging platforms such as blogspot, wordpress, and elsewhere. We are then using FeedAPI to aggregate the student blogs and comments (see list of student feeds) into the community site. In addition, we're aggregating blogs from prominent web analytic experts (see list of expert feeds). A wiki and spot for announcements round out the list of features.

Link to the write-up
Link to the web site

April 16, 2008

Jeremy Robb
scothoser
Scothoser's Corner
» The Move To Dreamhost

For quite a while I have been looking for a hosting service that will give me a large amount of flexibility in what I want to accomplish.  Namely, I wanted to find a service that will allow me to host my blog, set a home page, link in a site for my book when I finally get it ready for publication, set up a learning management system for my classes, and allow me to start a collaboration project with my family on genealogy.  

most options out there were fairly expensive, or didn’t provide the level of reliability that I was looking for.  What to do?  Well, I finally found Dreamhost.  

Now, I’m not saying that Dreamhost is the end-all beat-all, but it had a great offering for the price, with 500 GB of storage and tons of bandwidth, both of which continue to grow as the site grows.  I can also host as many domains as I wish, as many websites as I like, and even have ssh access to my server.  This means I can use sshfs to upload my site files, while also using my server for some much needed storage.  

But that’s all the reasons why I moved to Dreamhost.  Let’s talk about the actual move.  The domain creation was all really easy.  Each subdomain is free, which is very convenient.  The Mail, Calendar, etc. is all hosted through Google Apps, which is very convenient in that it saves space on my server.  If only I could get the GCALDaemon working properly…  Anyway, setting up the domains was very painless.  

Next, the services.  I started, of course, with the blog.  They had WordPress available as a one-click install, which worked beautifully.  It was ready for me to set up and configure almost immediately.  I then selected the current template because it was very light on the visuals, and soft on the eyes. 

The second service I set up was PhpGedView, which I set up on <a href=”http://gedcom.robbclan.com”>gedcom.robbclan.com</a>.  Then I tried to upload my families gedcom file:  it failed.  Why did it fail?  The program was set up for up to 7 MB files, and my family has a gedcom file that is 65 MB.  It would have been a problem, but I just uploaded it with ssh, and got it installed.  The only problem now is tweaking the program a little bit to allow updates to such a large file.  But that’s something I will be working on later.  

The last service I set up was my Moodle server.  I love Moodle:  It’s an open source version of Blackboard or WebCT, and is arguably better in many aspects.  It set up quickly, and I chose a theme that was very telling (brushed metal).  Yes, I chose it because it’s a popular Mac theme.  But as the majority of classes I teach are Mac classes, I thought it would be appropriate.  

I then set up my classes, or I should say supplements to my classes.  They are mostly discussion and quizzes that I use for my For-credit students, and will allow students in the non-credit course to access and use if they so wish.  It’s not meant to be a replacement or attempt to teach the class online at all.  I then set up the outline for an online course on how to Learn to Cook.  It’s currently closed as it isn’t nearly as ready as I would like, so don’t expect to access it or use it.  

Now, the only thing left to do is to create a real website.  Currently I have a placeholder with very little code, using the template for the blog.  I also properly cited the theme creator, as he deserves all the credit for the theme.  The website will be changing as I get more time to work on it, but for now it’s enough to explain what the domain is all about, and has links to the various programs I’m working on.  

So, that was my adventure so far!  Right now I’m getting my work machine ready for a reinstall, and then I will be working more on the site.  I also need to get my blog published and out there.  I don’t expect I will be getting as many hits as I did from my Blogger account, but it will be interesting from an SEO perspective to see how the hits change.  

April 2, 2008

Jeremy Robb
scothoser
Scothoser's Corner
» Mac OS X 10.5 Support Essentials: With Regional Appeal

This week I have been teaching Mac OS X Support Essentials, and I’m really excited with this group. I have two students from New Mexico, one from Idaho, one from Wyoming, and the final student from Park City, Utah. It seems that our Apple classes are starting to draw a lot of students from across the West.

The class is moving along nicely, though the content is still really high. The poor students are hitting their cognitive load rather quickly, and so we can’t move more than a couple of chapters at a time. Unfortunately, that leaves us with about half the curriculum left to cover today. Luckily there isn’t a lot that the students need to learn at this point because all the heavy learning happened at the beginning of the course. Now we are just covering Networking, Peripherals, printing, and the startup sequence. But the students already feel overwhelmed.

Looking at the materials again, while I still contend they are better than the 10.4 materials (by a long shot), the course should have been made a 4 day course. Of course that brings up a whole different concern about the price tag on the course which most students and their employers already consider too high. It’s an interesting balancing act, particularly when you think about what is required, or expected, for this level of expertise.

Perhaps, when I have time, I’ll run through the materials with my magnifying lens, and see if I can’t find a better design for the course. Perhaps there are exercises that are redundant, or perhaps there are topics that are not that important. This all comes after I have finally had the time to write the testing software that I intend to create.

Finally, something that I would love to see from Apple, is a Learning or testing platform that could be run within a Virtual Machine and distributed through a network. Something like LivePC (more on that platform later, which has really impressed me!). It would make testing easier, and even easily distributed (though controlled through an access platform), so that more Apple Professionals can be out there. Perhaps if the requirement for the software to work would be to have it run on Apple hardware…

March 21, 2008

Jeremy Robb
scothoser
Scothoser's Corner
» Cognitive Load: When Your Brain Is Full

We have all had that one experience, I’m sure. Sitting in a meeting or classroom, listening to a presentation or watching a demo, and the brain starts to wander. It can happen to different people at different times and have different initial factors, but the reason is the same: cognitive load has been reached.

The Effects of HIgh Cognitive Load
So what is Cognitive Load? Basically, it’s the amount of working memory the brain uses to perform tasks. The more tasks you perform, the more cognitive load you heap on your brain.

Of course, there are levels of brain activity that utilize your working memory, and it differs based on the need for understanding. The less you need to assimilate within a given time, the less cognitive load you need to use. It seems like a simple concept, doesn’t it? Focus on what you are doing, and eventually you will get there.

Unfortunately, in the world of Professional Training, this is a luxury you can’t often afford. People are required to assimilate a lot of information in a very short amount of time. Because their cognitive load is really high, they are less likely to understand the topics that are being discussed. Consequently the learning experience is diminished or negative, leaving the learner confused and even a little scared.

An excellent example I saw was a student that had taken my Excel 2003 Level 1 course. Normally, this would be a very simple class to take, and I like the design because it takes Cognitive Load into consideration for the majority of students. This student, however, was new to Windows platform entirely. So not only was the student trying to understand the Excel interface, but also the Windows interface. The student locked up, and took my entire lunch time to start to feel more comfortable.

Fighting High Cognitive Load
So, what is a course designer to do? You have a high cognitive load requirement to finish the course material in as little time as possible. How can you be sure that your students are maximizing their understanding?

The first thing I would recommend is checking for those peak times when Cognitive Load becomes an issue. The number one cuplrit: Lunch. After lunch, the learner’s blood rushes to their stomach to digest their food. As a consequence, the learner’s brain has less blood to process information. I call this the Lunchtime Lull, which is best fought by having a less-taxing assignment or fun game that reinforces your principles for the students at a high level, letting their minds rest a bit.

Another problem is all lecture and no practice. While some learners are excellent at auditory learning, most need to apply the lecture at least once to cement the concept in their brain. The process of going through exercises fires additional synapses in the brain, thereby increasing the entries and imprints of the concept within the brain. Of course, the other result is a break between lectures and concepts. Once one principle has been assimilated and applied, the brain feels comfortable enough to move on to the next subject.

The last problem for Cognitive Load that I will point out is overwhelming media. In the world today we have several media outlets that allow access to just about every form of media, and it’s not uncommon to see people try to deal with more than one media outlet at a time. How many students do you know do their homework while the TV is on? How about the radio, with non-instrumental music playing?

The brain isn’t able to multi-task very well, and will latch on only one function at a time at a high level (processing information). All other functions at that point are placed within the low level functionality, running basically the same level as riding a bike or balancing. As a result, only one media type can be utilized to “learn”. Any other media is either a distraction, or is being processed at a low level and not assimilated within the memory.

“But.” I hear you say, “I have read a book and watched TV/listened to my favorite lyrics at the same time, and I get by just fine!” Ask yourself how many times you were thinking of the story within the show on TV or listening to the lyrics when you should have been reading. Happen very often? Probably. Another basic concept of the brain is that, just like most forces in nature, it will take the road of least resistance unless forced otherwise. That means that your “distractions” are just your brain telling you it’s easier to process the distraction than the material in front of you.

How do you fight this? Well, the first and perhaps most difficult for the learner is to remove the distraction. Have the learners turn off their cell phones while in class, avoid texting someone when they should be working on an assignment, and not sit there and work on their My Space/Facebook page when in a lecture (it’s a pet peeve of mine!). If they focus on their work and what they are learning with no distractions (including audio), their cognitive load is decreased.

Something else you can do is just increase your concentration. This is physically more difficult, because it requires a lower Cognitive Load on the material. Why? Because the student needs to increase their cognitive load to increase their concentration. Concentration requires a conscious commitment by the learner to block out any and all distractions. The fewer actual distractions in the room, the more likely it is a learner will be able to learn.

How Does This Affect Me?
We all assimilate information every day, whether it’s conscious learning or basic observation. That means we all need to watch our Cognitive Load. Ever wonder why people vegetate in front of a TV? TV shows and commercials are geared to take most if not all of your cognitive load to keep your attention. That way you are less likely to change the channel, and more likely to increase their ratings and ad revenues.

So look at your own life, and see where your Cognitive Load is peaking. Is there a way to reduce it, so that you can maximize your learning and observation? You may be surprised how much more productive you will become if you don’t try to multi-task quite so much.

April 2, 2008

Jeremy Robb
scothoser
Scothoser's Corner
» Mac OS X 10.5 Support Essentials: With Regional Appeal

This week I have been teaching Mac OS X Support Essentials, and I'm really excited with this group. I have two students from New Mexico, one from Idaho, one from Wyoming, and the final student from Park City, Utah. It seems that our Apple classes are starting to draw a lot of students from across the West.

The class is moving along nicely, though the content is still really high. The poor students are hitting their cognitive load rather quickly, and so we can't move more than a couple of chapters at a time. Unfortunately, that leaves us with about half the curriculum left to cover today. Luckily there isn't a lot that the students need to learn at this point because all the heavy learning happened at the beginning of the course. Now we are just covering Networking, Peripherals, printing, and the startup sequence. But the students already feel overwhelmed.

Looking at the materials again, while I still contend they are better than the 10.4 materials (by a long shot), the course should have been made a 4 day course. Of course that brings up a whole different concern about the price tag on the course which most students and their employers already consider too high. It's an interesting balancing act, particularly when you think about what is required, or expected, for this level of expertise.

Perhaps, when I have time, I'll run through the materials with my magnifying lens, and see if I can't find a better design for the course. Perhaps there are exercises that are redundant, or perhaps there are topics that are not that important. This all comes after I have finally had the time to write the testing software that I intend to create.

Finally, something that I would love to see from Apple, is a Learning or testing platform that could be run within a Virtual Machine and distributed through a network. Something like LivePC (more on that platform later, which has really impressed me!). It would make testing easier, and even easily distributed (though controlled through an access platform), so that more Apple Professionals can be out there. Perhaps if the requirement for the software to work would be to have it run on Apple hardware...

March 21, 2008

Jeremy Robb
scothoser
Scothoser's Corner
» Cognitive Load: When Your Brain Is Full

We have all had that one experience, I'm sure. Sitting in a meeting or classroom, listening to a presentation or watching a demo, and the brain starts to wander. It can happen to different people at different times and have different initial factors, but the reason is the same: cognitive load has been reached.

The Effects of HIgh Cognitive Load
So what is Cognitive Load? Basically, it's the amount of working memory the brain uses to perform tasks. The more tasks you perform, the more cognitive load you heap on your brain.

Of course, there are levels of brain activity that utilize your working memory, and it differs based on the need for understanding. The less you need to assimilate within a given time, the less cognitive load you need to use. It seems like a simple concept, doesn't it? Focus on what you are doing, and eventually you will get there.

Unfortunately, in the world of Professional Training, this is a luxury you can't often afford. People are required to assimilate a lot of information in a very short amount of time. Because their cognitive load is really high, they are less likely to understand the topics that are being discussed. Consequently the learning experience is diminished or negative, leaving the learner confused and even a little scared.

An excellent example I saw was a student that had taken my Excel 2003 Level 1 course. Normally, this would be a very simple class to take, and I like the design because it takes Cognitive Load into consideration for the majority of students. This student, however, was new to Windows platform entirely. So not only was the student trying to understand the Excel interface, but also the Windows interface. The student locked up, and took my entire lunch time to start to feel more comfortable.

Fighting High Cognitive Load
So, what is a course designer to do? You have a high cognitive load requirement to finish the course material in as little time as possible. How can you be sure that your students are maximizing their understanding?

The first thing I would recommend is checking for those peak times when Cognitive Load becomes an issue. The number one cuplrit: Lunch. After lunch, the learner's blood rushes to their stomach to digest their food. As a consequence, the learner's brain has less blood to process information. I call this the Lunchtime Lull, which is best fought by having a less-taxing assignment or fun game that reinforces your principles for the students at a high level, letting their minds rest a bit.

Another problem is all lecture and no practice. While some learners are excellent at auditory learning, most need to apply the lecture at least once to cement the concept in their brain. The process of going through exercises fires additional synapses in the brain, thereby increasing the entries and imprints of the concept within the brain. Of course, the other result is a break between lectures and concepts. Once one principle has been assimilated and applied, the brain feels comfortable enough to move on to the next subject.

The last problem for Cognitive Load that I will point out is overwhelming media. In the world today we have several media outlets that allow access to just about every form of media, and it's not uncommon to see people try to deal with more than one media outlet at a time. How many students do you know do their homework while the TV is on? How about the radio, with non-instrumental music playing?

The brain isn't able to multi-task very well, and will latch on only one function at a time at a high level (processing information). All other functions at that point are placed within the low level functionality, running basically the same level as riding a bike or balancing. As a result, only one media type can be utilized to "learn". Any other media is either a distraction, or is being processed at a low level and not assimilated within the memory.

"But." I hear you say, "I have read a book and watched TV/listened to my favorite lyrics at the same time, and I get by just fine!" Ask yourself how many times you were thinking of the story within the show on TV or listening to the lyrics when you should have been reading. Happen very often? Probably. Another basic concept of the brain is that, just like most forces in nature, it will take the road of least resistance unless forced otherwise. That means that your "distractions" are just your brain telling you it's easier to process the distraction than the material in front of you.

How do you fight this? Well, the first and perhaps most difficult for the learner is to remove the distraction. Have the learners turn off their cell phones while in class, avoid texting someone when they should be working on an assignment, and not sit there and work on their My Space/Facebook page when in a lecture (it's a pet peeve of mine!). If they focus on their work and what they are learning with no distractions (including audio), their cognitive load is decreased.

Something else you can do is just increase your concentration. This is physically more difficult, because it requires a lower Cognitive Load on the material. Why? Because the student needs to increase their cognitive load to increase their concentration. Concentration requires a conscious commitment by the learner to block out any and all distractions. The fewer actual distractions in the room, the more likely it is a learner will be able to learn.

How Does This Affect Me?
We all assimilate information every day, whether it's conscious learning or basic observation. That means we all need to watch our Cognitive Load. Ever wonder why people vegetate in front of a TV? TV shows and commercials are geared to take most if not all of your cognitive load to keep your attention. That way you are less likely to change the channel, and more likely to increase their ratings and ad revenues.

So look at your own life, and see where your Cognitive Load is peaking. Is there a way to reduce it, so that you can maximize your learning and observation? You may be surprised how much more productive you will become if you don't try to multi-task quite so much.

February 15, 2008
» Power Law Graphs from classroom community website

Researchers have shown that the distribution of many natural and social phenomenons follow what’s called the power law. Power laws are known by other names such as the 20-80 rule (80% of wealth is controlled by 20% of the population), the long tail, Winner-Take-All, etc.

Here is an example power law graph from Wikipedia:

Power Law
Many have written that almost all measures of web site usage follow the same pattern whether that be page views, in-bound links, etc.

This past semester I built an e-learning site for two sections of an upper-level university course at Brigham Young University. Now that the semester is finished, we’ve started to analyze the data we’ve collected on how students used the site.

And what did I notice when I started to graph the data? Why the power law of course.

So onto the graphs I made.

First is a graph of the number of comments each student made on the class website throughout the semester. This is a good measure of their engagement with the online community. You can see that some students left as many as 40-60 comments throughout the semester and others left as little as 1 or two:Number of comments made by each student
Another graph which follows the power law. This time a graph of the number of visits to the class website per student. Again we see a wide disparity between students. One student visited the site over 400 times! Which in a four month semester means they visited the site on average 3 times a day! And on the other end, a number of students only visited the site 5-10 times the entire semester.
Number of visits to the site made by each student

Why the Power Law?

So why does this happen? Why do some students participate on the class website so much more then other students? I’m not sure I know the answer to that. Why do some people write blogs, participate in Wikipedia, upload their photos to flickr, etc. and many others don’t?

Do some students just not see the value of blogging? Are some students more comfortable interacting online for whatever reason? Or on another tact, does it matter if some students participate more then others? After all, in any community, there’s always a core group which cares much more then others about the success of the community (read about the power law of participation). What type of participation in an online learning community meets the learning goals for a classroom?

There’s a host of other ideas rumbling around in my head about power laws, the three types of networks (political, social, creative) and how all this relates to creating effective online learning/collaborative environments. But that will all have to wait for another day. In the meantime, here’s some links.

Extra Credit Reading:

Read these two articles by Ross Mayfield, first this one, then this one.

Then two by Clay Shirky, “Power Laws, Weblogs, and Inequality” and “Social Software and the Politics of Groups.”

And one more on building vibrant communities.

February 2, 2008
» New elearning website

I’ve been putting some final touches on a website I built for a class running at BYU this semester on web analytics. You can visit the site here. I did a write-up about the site for Drupal’s education working group. I discuss the design principles that guided my construction of the site.
A bit from the write-up:

We recently created a community learning space for a web analytics class at BYU. We directed students to create individual blogs on commercial blogging platforms such as blogspot, wordpress, and elsewhere. We are then using FeedAPI to aggregate the student blogs and comments (see list of student feeds) into the community site. In addition, we’re aggregating blogs from prominent web analytic experts (see list of expert feeds). A wiki and spot for announcements round out the list of features.

Link to the write-up
Link to the web site

January 24, 2008
» 10 Ways to Grow your Network

From Jack Ricchiuto:

  1. Get to know the strengths and passions of people in your first and second circles.
  2. Make your strengths and passions more known to your 1st two circles.
  3. Discover who in your 1st two circles would benefit from introductions.
  4. Make high quality introductions at the best levels possible.
  5. Engage your 2nd circle to introduce you to people in your 3rd circle.
  6. Look for new opportunities to learn with and from your first two circles.
  7. Create new opportunities to collaborate with your 1st two circles.
  8. Increase your asset, positional, and generative value in your networks.
  9. Help other people increase their value in their networks.
  10. Built trust and help others build trust through promise making and keeping.

December 31, 2007
» I really liked these insights

From the Economist:

At some point in the decade after he moved from the farm in Nebraska where he grew up to the innovation hub that is the San Francisco Bay Area, Evan Williams accidentally stumbled upon three insights:

  1. that genuinely new ideas are, well, accidentally stumbled upon rather than sought out
  2. second, that new ideas are by definition hard to explain to others, because words can express only what is already known
  3. and third, that good ideas seem obvious in retrospect.

October 26, 2007
» Why I blog — Part 2

A year ago in just my second blog post, I explained why I write a blog. My answer then (and now) is I keep a blog as an intellectual journal of sorts. Blogging is my way of pulling together into a coherent form all the stray thoughts rolling around in my mind. Writing helps me sift the good thoughts from all the bad and fit them all together in a logical pattern.

Keeping an intellectual journal is the main reason for writing my blog. My secondary reason is pure economics. Blogging is a loss-leader of sorts.  Through this blog I market myself and my ideas to people who I hope to do business with eventually.
Along those lines I read a blog post today from The Economist website. The author was commenting on a recent podcast on the economics of bloggin by Tyler Cowen (of Marginal Revolution fame).

While the direct economic return to authoring a blog may not appear to justify the effort, the prospect of actively demonstrating one’s skillset for an interested public, many members of which work in talent-hungry organisations that pay real salaries, is an attractive one. Why waste time submitting CVs [I had to google this one, CV is resume in American-speak], when you could cultivate an audience of potential employers intimately familiar with your talents?

Interestingly, this effect could generate a filtering effect on the blogosphere quite opposed to the market for lemon model proposed by Dani Rodrik. If blog writers generally have employment in mind, we should expect those with strong resumés but lackluster ideas to abstain from extensive blogging, while those whose critical and analytical skills run ahead of the experience and education categories on their CVs should embrace blogging as a means to signal their exceptional fitness. We would expect those with most to gain from blogging to blog more.

I’ve always found school boring and homework a less then optimal use of my time. So my grades reflect that. “Good students” use grades as a signaling mechanism. A student with good grades is telling potential employers, “I’m reasonably intelligent and can tolerate boredom” — which is what’s really required at school and most jobs.

As my grades aren’t going to impress anyone, I compensate by blogging. I use this blog to “show off”, so to speak, my critical and analytic skills, my ideas, and my passion for social software, learning, and collaboration to potential employeers.

But for now this is all theory–whether this works or not is still a bit up in the air. . . but in the meantime it’s better then homework. . . and since I’m done writing, back now to accounting homework I guess :>

October 9, 2007

Hans Fugal
no nic
The Fugue :
» If I Wanted to Study…

Levi pointed me to an excellent article entitled "If I Wanted to Study, I Would Have Gone To A Real College". It's a very interesting read which I recommend to all teachers, students, and everything in between.

The gist of the article is, the most important thing any student in any education setting can learn, is how to learn new things on her own, and that that is not necessarily easy for a teacher to do. I count myself lucky that I learned this lesson early. It wasn't an accident, it was instilled in me from a young age by my parents, and reinforced by being homeschooled from Junior High through High School.

Homeschooling tends to get a bad rep. You hear about the freak of nature that lives in a house with 10,000 cats and never interacts with the world and becomes a supervillain, and naturally he was homeschooled. We heard it all when we decided to home sch