cmw.osdude 120000QT77 Tags:  teaching learning linux schools education students technology open_source opensource 3 Comments 6,310 Views
Alas! LinuxCon has begun and I'm stuck here, up to my-- well... never you mind! I'm just not there this year. However, conventions about opensource things are increasingly friendly to virtual participation, so maybe I'll be able to look in a little.
Today I already saw an interesting area on Open Source Education. I will continue to say that I think that good use of open source technologies in any school curriculum will go a long way to making kids smarter and more in-tune to technology. Why? Because open source is about technology! it's about how things work and why they work. It's the technological equivalent to those little plastic models that showed you the transparent person with all the guts showing. OK... maybe it's not that graphic... but the skin is certainly pretty easy to peal back.
Right now I haven't seen a lot of education in primary schooling which teaches kids how to enjoy getting into what makes technology happen. I think they get exposed to some commercial tools, but does that really teach what they need? Linux and open source software create an environment where kids can work with any aspect of the infrastructure, from basic program usage to development to security to... I've said it all before! I just can't believe that there aren't more teachers out there who are excited about technology helping their students to do cool stuff. Maybe there are many and I just don't hear about them. Even so, it shouldn't be pockets of experimentation it should be a core value. Open source environments allow you to dissect technology like a frog. It provides complete transparency down to any level that you want to explore. Any children who get a grounding like that are going to skyrocket ahead.
Maybe it's a money thing. Maybe the issue is that funding and free products all go together and a system that centered learning on an open-source environment would have to give up a lot. Maybe there's pressure not to go there by... er... "Them!" (Giant ants?) I really don't understand.
I will say that the availability of open-source software gave me learning opportunities that I never would have had otherwise. I still go and tinker with different technologies because it's so easy to get a basic start with things that are open. That knowledge allowed me once to secure a lab so tightly that we upset the security people (because they couldn't scan it to tell us whether or not it was safe). I want kids and up-and-comers to have that same joy of learning, discovery and exploration that I enjoy. I hope it becomes more available-- or should I say permitted.
Linux Hype vs. Reality
Dang! While I was scribbling on the stuff above this story from opensource.com came up about a panel discussion on the perception and reality of Linux today. Wow! I would have loved to have been in that room! Check it out! Bottom line, Linux is not going anywhere and there is nothing really stopping you from putting to work for you now... if you really want to...
How's your second Life?
I know that Second Life is not as fully buzzword compliant as it used to be, but I wandered back in to look around and realized that there is some cool stuff there. For example, I attended a live concert with some good music and then had a wonderful conversation with someone about life the universe and everything. Second Life can be a diverting way to interact with people. So, I'm proposing an experiment. I have staked out a location on IBM's property: You can reach it by going here: http://slurl.com/secondlife/IBM%20Business%20Center/68/164/32. This is not my official office. (I'm not actually important enough to have my own designated space in IBM's land. *sigh*) However, it looked like the sort of place that a group of people could sit around and talk about stuff. So, I'm going to try to find a spot on my calendar where I can go and hang out there and anyone who wants to join me is welcome. We can talk about living the open-source lifestyle. If you go there now you'll probably find me sleeping. Feel free to tap me for a friend request. My user name is "Cmwalden Newman" in the weird language of SL.
'nuff for now!
cmw.osdude 120000QT77 Tags:  opensource open_source phone android gartner development education ted learning 2 Comments 8,972 Views
I moved to a smart phone within the last year. In the past I hadn't really needed one. When I went somewhere I typically had my laptop with me, so I usually hid behind that. However, as my role became more and more driven by general email and Internet access rather than specific proprietary programs I realized that I wanted to have more access and functionality without lugging the computer around all the time. If you know me at all, you know I'm a Linux nut, so I naturally gravitated toward an Android phone. I love it. The openness suits me and I get to use my curiosity and ability to tinker to my advantage.
Apparently I'm not the only one who sees advantages to Android. If
Gartner is correct, Android will overtake the other options and become
the dominant mobile operating system. I think that the openness is the
Mild tangient: I'm not a big cook, but I enjoy cooking when I can.
The only cooking show that has managed to grab me is Good Eats
Brown. Why? Because where most cooking shows are about watching
someone else cook, Good Eats is about me cooking. Each episode
explores a cooking concept and explains to me how and why it works. He
gets into the science of cooking so I know why doing certain things to
food makes it taste better. I leave with tools and techniques to help
me cook rather than just a pretty picture and a link to recipes that I
will never look up. One of Alton's key concepts is that nothing in
your kitchen should only do one thing. Therefore he prefers something
conventional, like a steel mixing bowl, to a gadget, like an electric
popcorn popper. The more flexible the tool, the better it is in the
Back now: Open environments like Linux and Android have that same flexibility that I like. They can be set up to do one thing very well, but they still have the functionality to do other things as well. They foster a multi-functional approach rather than a "gadget approach." Ultimately as more and more of our devices talk to each other, having open standards and flexibility is going to be much better than "duct-taping" everything together. I'm really anxious to see where all of this goes. If Android dominates the phone market it will also dominate the market for other devices like DVRs, smart TVs, smart appliences and vehicles (not to be confused with the Smart Car which is a strange, freakish thing). This could all get very interesting.
Other ways to learn
I got a tweet today from opensourceway. It was a presentation from the TED conference that explored the idea of children learning without teachers. Basically a gentleman made a computer available to kids on the street in India, with no instructions and no supervision to see what they would do. The results are amazing and call questions on many of my presuppositions about learning. If I'ved done this correctly you can just view it below. If not you can find it at the source.
cmw.osdude 120000QT77 Tags:  programming open_source opensource coding skills open-source education 1 Comment 18,899 Views
I got the title of this article as a question through a private Facebook message. I decided that this is probably something that a lot of people are thinking about, so I figured I'd post my thoughts here. (I've also been very sparse at writing here so hopefully this will get me back on track.) My thoughts on this are not specific to code but about skill-building in general. I'll talk about code, but I'll also talk about other technical areas where I hear people say that they want to grow.
"How can I improve my coding skills?"
The short answer is simply "Write more code." That's not a very satisfying answer, though. My own immediate response to an answer like that would probably be something like "If I could do that then I wouldn't have asked the question." So, how do you get passed the obstacles? How do you grow in something where you feel you need improvement.
Surely the first step must be to understand what you think needs improving. What is the difference between what you can do and what you want to do? Do you have a goal? A role model? I don't think that you can get anywhere if you don't know where you want to go.
People act like setting goals is easy, but it's really not. Often our goals are vague or open-ended. In fact, "improve my programming skills" is both vague and open-ended! So how do we narrow that down?
What are goals?
Setting reasonable goals is one of the key secrets to achieving just about anything. You set a destination and you go there. Yet how do you tell the difference between an achievable goal and just a wish. I've repeatedly heard that the best way to set goals is to use the S.M.A.R.T. system. The letters stand for:
These aren't hard and fast rules, but they are good guidelines for keeping you directed. So, how would we apply this to "improving programming skills"?
Specific - What skills do you want to improve? Do you want to learn a particular language? Do you want to work with a particular kind of application? Your overall goal may have subgoals depending on your current skill set. It's a great goal to want to program on-line video games, but if you have no coding or network experience then you have some foundations to build. It is likely that you have a pyramid of goals that have to be achieved in order to reach your final destination.
Measurable - What are you going to set as your test for each goal? For programming, it makes sense that your goals would include writing specific functions and applications which build toward your overall goal.
Attainable - What resources do you have at your disposal? If your goal is to be a master mainframe programmer but you don't have any way to access a mainframe you are going to get frustrated. Start with things that you can do. The open source world has made this easier than ever to learn technologies without having to buy expensive hardware and software. Your circumstances might allow you to gain access to other resources by simply asking, or bartering. It's true that what you need for your goal may not be easy, and you shouldn't always go for the low-hanging fruit, but if it does not seem possible for you to do something then that's not really a goal. It's a desire waiting to become a goal.
Relevant - How will this activity help you accomplish your goal? This makes more sense for sub-goals in your pyramid. Will learning PHP really help you with embedded system programming? Will developing your drawing skills really help you create a phone app? Sometimes our goals will take us into strange places that really are useful in ways that we hadn't anticipated. Other times we distract ourselves by shiny things that just seem interesting at the time. It doesn't mean that you shouldn't be multifaceted with lots of varied interests, but your curiosity can drive you off-track. If you feel you are struggling too much with your goal you may have a lot of irrelevant things that need to be set aside for a while.
Time-bound - When will I do this? I can attest that the things that I have to do with deadlines usually get done while the things "I mean to do some day" wait. Setting a time goal will help you keep on track. If you are like me, you curse the clock and the calendar a little and would rather play with ideas and technologies. However, that won't help you get it done. Set some time constraints on your goals and you'll be better off.
I think it's also important to remember that you
Where do I start?
As I said above, this is a great time to be in technology if you want to learn. More options are available less expensively than ever before. The Internet also provides a lot of ways to interact with others who share your interest to share resources and knowledge. Even if your interests are very specialized, odds are that you will find some group that shares them. This is important to deal with they nay-sayers who try to talk you out of your goals.
I would begin by finding something that was a model for my goal. For example, if I wanted to be a game programmer, I'd start looking at games that I liked and looking behind the scenes into the people who made them happen. You will likely find a blog or something where they have talked about what they think is important to their work. You'll also find various sites that recommend the sorts of skills that you need for a particular industry. Get a feel for what you need to learn and start putting together a picture of what you need to do. Write this stuff down! Don't just ponder it, but lay out written goals and plans for what you want to do. You'll forget pieces otherwise. This is a serious project. It's your future. Put together the same kind of material that you would to explain this to your boss, but do it for your own benefit.
Once you have an idea of what you want to achieve, then start building your subgoals. If you are doing video games you should probably learn something about C/C++. If you are focused on Mobile games then you might need to be more focused on Java. You might need to collaborate with people who have other skills, such as a graphic artist or musician. This may require to you become more social.
I would also recommend that you look at open-source projects that are relevant to what you want to learn. One of the nice things about these projects is they usually need work done and they are happy to have contributions. You don't have to build an entire application yourself, which can be hard, and you get to write code which will be reviewed by others. Even if your code isn't accepted as the final solution in the project, the experience you gain by trying is equal to what you would have doing exercises in a classroom. You also might make a real difference to the project with your contribution, which will be highly motivating. You can find repositories of open-source projects on sourceforge, github, ourproject.org and any number of other sites.
Also remember that many projects need contributions besides just coding. You might be able to contribute something where you are more skilled, such as editing documentation while you become socially connected with people who have the skills you want to learn. It's a lot easier for me to give my time to someone who is helping me do something I find difficult than someone who feels like my knowledge is theirs for the taking. Become a contributing part of a team in whatever way you can and resources will open up to you.
Not just programming
The question I addressed was improving programming skills, but I think these ideas are relevant to improving just about any technology skill... and probably non-technology skills as well. As our world has more and more chaos because there are more and more resources with more and more choices it is difficult to follow a simple proscribed path. An emerging skill is the ability to become our own teachers, to determine our own curriculum and to find our own resources. Technology is moving pretty fast and it takes a lot of effort to put together a series of classes and get it through the approval process for a University program. The ability to set your own goals and plan to achieve them will keep you agile, even when you have left the University far behind you.
Today I read an article on opensource.com called "Unschooling is the open source way". I'm fascinated with the subject of alternative approaches to education. I think that humans are naturally curious. We are driven to want to explore and create. Somewhere along the way that behavior is either rewarded and nurtured or discouraged and discarded.
In my youth, people who cared very much for me tried to help me to focus my curiosity in specific directions. Some of the things that attracted me were considered "not productive" and I was discouraged from pursuing those things to some degree. I was never a very good follower– sort of a lone explorer– so I never fully grasped onto the so-called "important things" and I never got a complete foothold on what I was naturally wired for. Needless to say my formal education process was a bit of a struggle. Now, in the "real world" I find myself embracing my genuine curiosities and not simply trying to do what I am directed to do. The result? I'm having a better time than I ever have in my life and applying skills to my job that no one would have thought to suggest.
I think our future world demands that we stay curious. We have moved far beyond the Industrial Age's need for a person who will spend their entire career performing a set of menial tasks. Technology can and should step in for those things because humans are too valuable for them. Unschooling specifically cultivates the curiosity that is natural to children and helps them learn how to learn. Once you know how to teach yourself things then you can go where need takes you.
Here is a brief TED video by Gever Tulley, discussing his approach to teaching life lessons through tinkering:
There is also a transcript of some Q & A with Gever which covers some of this in greater depth.
Our future society demands people who have multiple skills with the ability to gain more when the situation demands it. They need to be driven to move forward despite the obstacles that are thrown at them by their forebearers. Perhaps a healthy dose of unschooling is just the right way to make it happen.
cmw.osdude 120000QT77 Tags:  mit computing education rauf scratch summer abdul typing libreoffice testing selinux gimp hadoop turtlegraphics 5,628 Views
This has been a very difficult week to concentrate on anything. In the United States we had a holiday, Memorial Day, honoring fallen soldiers. That shaved a day off of the week. Then my nephew is graduating from High School this weekend and we need to travel for that, shaving off another day. Finally, there are all kinds of little end of the school year things going on, which make for constant interrupts. Yet, things get done.
One of the things that we did was to go to my daughter's classroom where she showed us things she had done during the year. Several of the projects were done on a computer and I brought a little flash drive to save them. It made me realize that I need to be a little more proactive on getting my daughter (9 years) building her computer skills. So, I'm thinking of ways to keep her going on all of that. Here are some things that I plan to offer her (all on Linux, of course):
That ought to keep her busy... and give her some cool things to show off when she gets back to school. Of course, I'll be checking some of this stuff out for me too.
I just got off the video feed talking to Scott Lanningham for his video podcast. Scott does this "rich media" full time and he's really good at it. Lately Scott has been traveling to some of the IBM functions to shoot footage with a number of notables in technology. It will be a little bit before my conversation airs, but you can see what Scott has been doing by checking out developerWorks new media. There's lots of good stuff there.
Secure your LInux like the Russians
OK, I know that that SELinux (Security Enhanced Linux) was originally created by the NSA (National Security Agency, or originally "No Such Agency") in the United States, but this week we have another one of the global offerings from Russia. This is the first of a series and I'm working on getting the rest of them.
SELinux started as a full-blown distribution but then became a set of components that could be added into existing Linux distributions-- a smart approach. I just looked it up and the minimal versions are available as part of the regular Ubuntu repository. Not everyone needs to run Linux this securely. I certainly won't do this on my laptop. However, the universe with the Internet and Cloud Computing in it creates much stranger situations that we've ever had before and you may need more enhanced security even if you aren't trying to protect national secrets.
Read "Secure Linux: Part 1. SELinux – history of its development, architecture and operating principles" on developerWorks. You might also like to review the article recently updated by M. Tim Jones called "Anatomy of Security-Enhanced Linux (SELinux)". That should get you ready for when the rest of the series becomes available in Linux.
Shoot some Hadoop!
Speaking of M. Tim Jones, we just published something by him which will be interesting to those of you trying to fathom Hadoop: Practice exercises. Remember when you tried to learn things as kid. You'd be given the problem and then exercizes to help you cement your knowledge of the concepts. That's when you'd have the problems like "A train is southbound going 90 miles per hour while a Kangaroo is hopping toward the tracks at 15 miles per hour..."
We sure don't get that in the real world. All you get is a problem hurled at you with an urgent demand to find the solution. Sometimes I wouldn't mind a few simple exercizes to get me going. Tim agrees and he put together these to help you get your concepts down. You will need to have a running Hadoop envioronment. Check out "Practice: Process logs with Apache Hadoop". There is a Hadoop knowledge path coming which should help you to explore Hadoop in a logical way. Look for that soon.
Abdul's new paper
Finally, I wanted to give a shout out about the latest thing by Abdul Rauf, a contributor to the "Real World Open Source Group". He resently published his paper, "Effective Testing: A customized hand book for testing professionals and students", in the International Journal of Scientific and Engineering Research (IJSER). It's definitely worth a read if you deal with testing software (or software that will be tested). I know he'd also like your feedback. Post something on his profile (ABDULRAUF).
cmw.osdude 120000QT77 Tags:  fitness technology austinforum tacc schools education 4,581 Views
Thursday I attended a session with the Austin Forum on Science, Technology and Society, presented by the Texas Advanced Computing Center. I did a video blog, but then wrestled a little with the best way to edit and render it. (I set up a render farm at home, which I'll write more about later.)
Here is the fruit of that labor... a modest video blog. I'll have more bells and whistles later, now that I'm settling on my technologies.
This session was "Using Technology to Refine Physical Education in the 21st Century", by Jen Ohlson, Founder/President of Interactive Health Technologies; Best-selling author; Director; and Producer. Here are the relevant links: