Wednesday, February 11, 2009

Can you say "unschool"?

Seth Godin wrote about what school is good for in his post on January 31st, and then followed it up with another post on February 8th in which he discussed the fact that many people just stop actively trying to learn the day that they graduate from school.

He points out that even among the people who are curious enough and interested enough in furthering their knowledge that they read blogs like his, very few read the most important non-fiction books. He guesses that less than 10% of the people who read his blog ever read one of his books. He says that for many people, the idea of books brings back bad memories of school, and even if they want to learn, they don't want to spend their spare time doing school stuff now.

He hits one of the reasons that I believe so strongly in unschooling right on the head. I didn't send my youngest son to a regular school until well after he could read and write. The base of his education started at home, and both he and I are looking forward to his days returning to home education again.* My eldest son did the school thing until he was 10, and then homeschooled on and off until he started at Washing State University a short while before his 17th birthday. Both boys are huge book lovers. Both boys study many things that are not part of their regular curricula today, independently and rigorously.

Why do they do this? Because they don't equate studying with strict authority, fear of consequences, or boredom in the classroom. Their curiosity has been tended like a plant, and it has grown along with their abilities to seek out answers. They have been given the tools to explore the world around them, and encouraged to reach out beyond their own boundaries.

There is nothing on Seth Godin's list of what you get from school that you can't get while homeschooling. Learning at home does not mean learning only at home or only with your parents. Unschooling in particular means learning from experience and the world around you and all of the many resources that you have available to you, from books and computers to neighbors and tutors and beyond.

My eldest son learned about business by starting his own small business at age 12 in the UK. And then another in Seattle at age 14. And another at college at age 17. Along the way he asked many adults for help and advice, learned how to do important research on his own and how to get other people to buy into his projects and dreams and to invest their time, their money, or their resources to help him build things. He didn't study in the framework of a specific course, but he did take some classes and workshops along the way.

My daughter goes to an excellent public school, and has been in that school system for most of her life. She likes going to school, and she thrives on it. During the one year that she spent here in Israel, she even shocked her 10th grade teachers with how quickly she learned Hebrew and how well she did on exams when they had expected absolutely nothing from her at all. However, when you take her out of a school-based learning situation, she doesn't reach further. She doesn't follow her own questions to see where they will lead. She barely ever reads fiction books just for fun, and she never reads non-fiction just for fun.

I fear that school squelches creativity and curiosity. It demands conformity and little more. It rewards you for doing exactly what you are assigned, no more or less. It treats tangential explorations as a waste of time.

I'm as proud of her as a mother can be. How could I not be? She plays the viola in the school orchestra, had a part in the school play this past Fall, plays basketball for her school, gets excellent grades and was even invited to a program where she can take courses at UC Berkeley while still in high school! My daughter, as they say, is The Awesome.

I know that she has wide open doors of opportunity because of her success in school. Still, I hope that once she gets beyond her school years she will learn, like I did, to unschool her self, and love the process of learning for its own sake.


* The young one is in public school currently because I've run out of ideas for how else to get him to learn the language of the country where we've been living for two years now. The deal is that when he can read books in Hebrew and understand them the way he does with English books, then he can come back to Homeschooling. Don't tell him this, but it's really only a one year experiment. If he doesn't want to go to school next year, I'm not going to make him, even if his Hebrew isn't at the level I'd like it to be. I'll just have to find another solution for that educational issue.

Friday, January 23, 2009

Firefox always starting in offline mode?

I got a new laptop a little over a month ago and ever since the first day I've had an annoying little problem with Firefox. Whenever it started, it was stuck in "work offline" mode. I checked the user prefs in my .mozilla folder, and they said that I should be fine. (There is a setting for starting the browser offline, but it was set to false.)

As with many minor annoyances that don't actually stop me from getting work done, I mostly left the problem alone and just looked it up on Google every so often to see if I could find a solution. Mostly, I only found other Linux users complaining of the problem, but no one who had actually fixed it. Today I saw a fix that seemed unlikely, but I tried it anyway.

sudo apt-get remove network-manager

I didn't really need Network Manager anyway, since it wasn't recognizing my wireless card and I have to use iwconfig on the command line to bring my wireless connection up. And, whaddya know? It works!

From what I've been able to gather, Firefox asks your computer if you are logged into the network, rather than actually trying to connect to a server and then giving up when it doesn't work. Since the network configuration tool that Firefox was talking to didn't know what was really going on with my network connectivity, it gave false information and Firefox "saved me from a 404" by setting the mode to "work offline". How annoying.

This is one of those places where I have to point out to those who want everything to be automatic that we just aren't there yet. There has to be a way for the human to step in and say, "Wo! You got it wrong!" and what the human says should trump what other computer programs are telling you. In Firefox, that could translate into a setting something like "Ignore network manager connection awareness".

If you are a Linux user with this problem and don't want to manage your network through the Linux command line tools like ifconfig, iwconfig and dhclient, I'm afraid I'm not sure what to tell you. There may be another gui network tool you can use, but I am not familiar with any. So, either you'll have to keep un-checking the "work offline" box when you load Firefox, or else you should start reading man ifconfig, man iwlist, man iwconfig and man dhclient.

Sorry I'm not more helpful today.

Wednesday, December 24, 2008

Where the computer ends and the entertainment center begins

A little incident with my nine year old son got me to thinking a bit about how we define computers in our lives and how we interact with them on different levels. There has been a lot of scholarly talk about exactly this, and I'm not really adding anything to the discussion except a tidbit of personal experience. Still, perhaps this thought will get you thinking a bit, too.

First, the story:

Yesterday, the aforementioned nine year old boy was playing his favorite online game.* A certain incident inside the game bubbled over, and my boy completely lost his cool. From my work spot in my bedroom I heard him pick up the keyboard and slam it on the desk. So, I told him to get off the computer and then I banned him from the computer for the rest of the day plus all of today.

Now, let me explain something before I go on. I have a theory of discipline which is very clear. Punishments should, whenever possible, be directly related to the deeds that brought them on. So, when he behaved inappropriately with the computer, my response was simple. No more computer for a period of time. The end. That didn't mean that we couldn't go watch a movie last night, or have other fun. But the computer was lost to him.

However, and heres where the story turns into a philosophical discussion about technology, at this very moment he is watching the Nightmare Before Christmas in the living room.

So what, right? I just said that being banned from the computer didn't mean that he was banned from TV. Well... we don't have a TV per se. Well, we do. The big monitor that we watch movies and serial shows on is, in fact, a TV as well as a monitor. But, we don't use it to connect to the airwaves or to cable TV or to satellite TV. The TV is just a monitor, connected to the desktop computer in the living room. So, my son is watching a movie on the computer.

Is that OK?

Yes, I think it is. I wasn't really banning him from watching shows, like I said before. I also wasn't banning him from listening to the radio. (We also get our "radio" from sites like last.fm) What I really banned him from was using the keyboard and mouse to interact with the computer. I banned him from games and web browsing and story writing on the computer. I set up the movie and hit play, so it's OK.

I wonder if, 20 years from now, I would still have the same approach. I mean, will I still think of the passive forms of entertainment as being different and separate from the computer itself? Will I still think of the computer in terms of its specific uses? Or will I think of it as just being "the computer", whatever I'm doing? I think I know the answer to that.

Despite the fact that devices are converging, mixing multiple, sometimes highly specialized uses into a single gadget, 20 years from now we'll be defining the machines based on their uses not based on the amorphous concept of "computer".

We don't generally think of our cell phones as computers, but they definitely are, and they are becoming more and more PC-like every day. My phone is a camera. It's better than many standalone digital cameras out there with it's 5 megapixel images, automatic or manual focus and zoom, digital video at regular frame rates or 120fps for slow motion video... But my phone is really a computer above all else. If you had any doubt whatsoever, the built in video editing software right on the phone should clue you in.

More and more of us have multiple desktop and/or laptop computers in the house, but far more people have multiple computers in the home and don't even realize it. Whether those computers come in the form of phones or cameras or kitchen gadgets or even computerized heating and air conditioning systems.

In Star Trek, the ship is the computer, and whether you realize it or not, we're there already. Your car is already computerized from bumper to bumper. You may not be talking to your car yet, but that's not for lack of technology. It's so that car companies can keep a certain layer of luxury available for their more expensive cars.

In the 1990's the word "convergence" was a buzzword applied to the idea that we would soon be watching TV over the Internet. As usual, the realities of technology were predicted earlier and much more accurately by Sci-Fi authors than business people.


* I think I ought to write another post soon about parenting in the Internet age, using this game as an example, too. One of the things about this game is that when a kid signs up, their parents are automatically given an account, too, and encouraged to play *with* their kids. That's totally cool but a) I don't have as much free time as my kid and b) when I am involved, I'm not always sure when I should jump in to break up disagreements and when I should let the kids work it out on their own. It's not always as clear as in real life... as I said, another post on that soon.

Thursday, December 18, 2008

Kernel driver changes

I learned how to add in or swap out a Linux kernel module today. Kinda cool.

Let's start with the problem. My new laptop has both a wireless card AND an Ethernet card that are incompatible with Ubuntu Linux. So, after a little bit of testing and research, my ever patient friend, savior and all things *nix tutor discovered that the problem was that Ubuntu picks the wrong kernel driver for the Ethernet card on this machine and that it didn't have the wireless driver at all.

Just for extra learning goodness (or kharma or something), after my friend did the whole process to get my networking up and running, the Ubuntu updater updated the kernel and wiped out all his work. That just meant that I got to do the whole process myself, with him reminding me of the steps as I went.

So, the steps: First we downloaded the source code for the drivers. Unpacked the tarballs, followed the directions to compile the drivers.

With one of the drivers, the make install target did the copying of the kernel object into the right place for us. With the other driver, we needed to do that ourselves. To do that we found the ".ko" file in amongst the compiled code and copied it to the correct directory under /lib/modules/.

In the case of the Ethernet card, we needed to blacklist the wrong module as well, just to make sure that it didn't get loaded again by accident. To do that, we headed over to /etc/modprobe.d/blacklist and edited the list to include the bad driver. (Bad, bad driver! Don't come back!!)

Next
depmod -a
runs through your kernel and makes sure that all of the dependencies are there. It takes kind of a long time to run, because it goes through all of your kernel files.

Then use
modprobe [module]
where [module] is the name of your module, of course, to get the driver up and running.

Use
lsmod
to check to see if your modules are there.

We tested the whole thing by creating a boot image with our modified kernel. We did that with
mkinitramfs -o /boot/initrd.img-2.6.27-9-generic.new `uname -r`
and then we created an entry in grub at /etc/grub/menu.lst for the new image. The command mkinitramfs creates a special file with all the kernel information that the system needs to boot. The name that I used was based on the existing file for the pre-modified kernel, but with .new on the end. That was so that we'd know which was which, of course, and so that we'd know what to copy over top of later.

After booting into the modified kernel with out a problem, we went back and removed the extra grub entry, and moved the .new version of the image over top of the normal version. Now the modified kernel is my kernel and I have Ethernet AND wireless networking. Yay!


In case you are wondering, my new laptop is an LG R510. (My 9yo son says the LG stands for "Lawful Good". You think I'm raising a geek?) The drivers it needed are Realtek Ethernet and Ralink Wireless.

Monday, December 8, 2008

Creating a bootable USB disk

With all the MID stuff I've been doing lately, I've had need to create bootable USB disks from img files twice now. As noted previously, I am a dork, so I always forget how to do things like this that I don't do terribly often. To save myself heartache and search time, here are the destructions instructions in short:

  1. Get .img file for the OS you need. (via download, Moblin image creator, or whatever)

  2. Find out which /dev your USB disk is.

    1. before you put your USB disk into the computer, type
      ls /dev/sd*

    2. after you put your USB disk into the computer, do that again.
      The new entry is your USB disk

  3. Run dd to copy the image to the disk
    sudo dd if=/path/to/imagefile.img of=/dev/yourUSB
    (obviously, you wanna replace those paths with the correct info)



That should do it. It takes a little while, so don't freak out. You can check to make sure it's working by opening another terminal window and running
ls /path/to/usb
where /path/to/usb is the path that you would usually use to see the files on that USB disk. You'll get some gobbeldy gook, but that's fine. It means it's working.

You can get more details at this article on the Intel site.

Sunday, December 7, 2008

Compiz-Fusion: Some basic commands

So, it dawned on me the other day while I was watching a colleague zoom through windows and workspaces with keystrokes that I am not using all the juicy goodness of my desktop GUI. Compiz-fusion is installed by default on Ubuntu 8.10, but I'd never bothered to figure out how to use it properly. So, today I'm learning a bit and writing in commands I find here.

First, a definition. The super key is the Windows key on Windows keyboards. I have not the foggiest notion what it would be on other keyboards.

Next, make sure that you have the compiz config settings manager (aka CCSM). It should be under preferences and it doesn't need sudo acces to run. If you don't have it (I didn't even though I did have compiz-fusion installed) then do this:
sudo apt-get install compizconfig-settings-manager

If you go into CCSM and then choose General Options, and then choose the tab for key bindings, you'll get a listing of all the default key bindings. You can change them there, if you like.

For quick reference, here are some of the defaults I find useful.









Close window   alt-F4
Show Main Menu   alt-F1 (use arrows to navigate, esc to escape)
Run Dialog   alt-F (for apps that may not have a handy-dandy menu link)
Unmaximize window   alt-F5
Minimize window   alt-F9
Maximize window   alt-F10
Window menu   alt-space
Show desktop   ctrl-alt-d


Expo:
See all the Worspaces at once: super-E
Use the arrow keys to navigate around. Use Enter to exit that view and go into the workspace you have highlighted.

Ring Switcher:
This gives you a view kind of like when you flip through CD and DVD covers on iTunes, only the view is of your available windows.
Clockwise rotation: super-tab
Counter-clockwise rotation: super-shift-tab
Let go to land on the window you see in the center of the screen.

Scale:
This is the tool that has Exposition-like effects. Your desktop turns into a rotatable cube.
ctrl-alt + left and right arrows turns the cube.
ctrl-alt-down arrow flattens the cube.


There's a lot more that you can do, but those are the bits that I've played with so far and liked enough to keep activated. I like the water effects, but they are a bit distracting.

I like the annotation tool, but don't really need it on this computer. It would be way cool for presentations, though, so check it out if you do sales presentations, tech-talks or are a teacher.

Have fun with it!

edit: yes, yes, I see the big gaping hole in the view before the table. I'll fix it later, sorry!!

Thursday, December 4, 2008

When to write a script in a language you don't know

Sometimes there is a long, repetitive task that you know would be much better off if done by a small script, but the problem is that you don't know how to use the tools available at the moment.

One of my problems is that I never remember anything about a language or system if I'm not using it often. It's like I do a brain dump in order to make room for new stuff when I switch from one technology to the next. That means that even though I *have* done considerable shell scripting in the past, I can't remember a darn thing when I need it for a one off project. So, I know that I'd be better off writing a script, but I end up doing the job by hand anyway because it would take longer to look up language bits than it does to hit arrow up, back, back, back,... delete, delete,... paste.... a few times through.

The whole time I'm doing that, though, I'm thinking, "I could solve this like this in PHP or like that in Perl" and none of it matters, because at the moment I'm working in a very limited embedded linux system with neither of those languages on board.

So, what do YOU do in a case like that? Do you go look up the language ref for what IS available to you, even if it will take longer than the cut-and-paste for the task? Or do you just do the task manually?