Wednesday, October 29, 2014

Some content stuff

I'm in the process of transitioning content I generate into something resembling an efficient (i.e. moderately coherent) scheme for not writing the same stuff over and over again for courses. I've settled on writing plain text in Markdown format. One, it's just easier to do plain text search over a directory without all of the binary file stuff getting in the way as with MS Word, LibreOffice Writer, or whatever tool.  Two, content in Moodle (the LMS at school) can be either staged as plain text dumped into a bloated WYSIWYG tool which generates verbose and awful HTML, or saved in a HTML text window in Markdown format. So the latter path made a little more sense.

For the content side of things, I essentially compose each class as a rough outline, with links to internal course pages and external URLs. The newer version of Moodle we have already does some auto-linking for text that matches the title of another content page, assignment, or other course material. Which is a very welcome addition.  

My production scheme of outlines and links leads to some of my long-held annoyances: managing outlines and links.  I used the stand-alone Tiddlywiki app to manage the volumes of content generated in my dissertation- but I'm reluctant to tie down all the content I generate into another blob. I'd feel better with a content going into plain text pages, with some light markup.  

I just don't see the point of continuing to manage that by hand. It's dozens of topics spread across up to two dozen lectures per semester, when I now have seven (7) different course preps per year.  Ihese courses are only being taught once a year, or even once every two years. There is a lot of overlapping content between courses, and technology can change rapidly in a year or two. Not to mention the updates in the way I teach these courses as time goes on. Locking content into "lecture" files just creates a lot of problems in efficiency. I'd rather spend my time in improving what I have and building new things rather than just rehashing the same base material. I find myself developing similar lectures from scratch when material from the prior year could just be brushed up and used instead.

There aren't really good outline programs out there that don't lock the user and content into a custom format. MS Word forces outlines to document heading levels. Which would work well if this were going to be turned into an actual paper, but not the case here.  And the linking mechanism is simple enough- give the URL a name, associate the name with the URL, and then post the URL within the body of the document. So far so good, but on successive pages, there are a lot of URLS to manage, a few per page spread across many pages. Essentially, I don't want to just type out content, but have some tool help manage it so I can focus on adding more content and refining the stuff I already have. 

Also, I don't have a good scheme for adding images. It would be useful if it worked, but adding numerous small graphics and screen shots is a very awkward, manual process that essentially works out to be an extension of the awkwardness of adding links.  

I'm not really interested in installing a large enterprise level, web-based content management program. It's not remotely worth it. But there's little I need that fits my purposes either.  

I'm just going to bang together a proof of concept content manager in C# because we're covering a similar topic over the next couple of weeks anyway.  I'm giving myself about 3 hours over the next 5 days to see how far it gets, since I will have to show off what I did by Monday.  Fingers crossed.

Thursday, October 02, 2014

Sum of its pieces

Some Arduino parts
On my growing list of partly-finished projects is the scattering of Arduino modules I'd been buying over the summer. I got these for almost nothing: $1-3 each via eBay from China, compared to several times that if purchased in the US. (The Sonar module I got for about $1.50 is being sold at Radio shack for around $30.)  What's it for? Just to learn something new, unrelated to things I'd been doing for the past few years. I do have a family background of electrical engineering, but had steered clear of it since college. Frankly, at the time, it didn't lead to anything I particularly cared about. 

Fast forward more decades than I care to think about, and suddenly I find a thing that lets you turn lights on and off and program it. Well, now it's on like Donkey Kong. Sort of. The modules are undocumented, but at least the chip number is visible, and Googleable. There you can find a number of forums of other people who bought these things and are trying to figure it out, with an occasional engineer to point out some critical information. Though this information is often buried in a discussion board on StackOverflow or a more Arduino-related site. It's a fair amount of digging to figure out what pins to connect and a corresponding sample program to interact with it.

There are a lot of hurtles. Often these things don't work as the previous StackOverflower outlined because yours is a little different from what was described. Or you read the part number wrong.  Google the thing that went wrong along with the chip part number and whatever pins you can read. If nothing else, it's a chance to learn some science. The part HMC5883L that I still can't get to work right, points to Magnetic North- I had never thought of it as a 3-dimensional measurement, but it is. Which means more math and physics than I had planned for the day, but that can wait for another day. The larger board next to it is a tiny Arduino clone, from China, for about $2.50 including shipping. I haven't gotten that to work either, since it relies on me connecting a couple of other parts correctly to connect it to the computer, which I would need, in turn, to help me figure out why it's not working.

So this sort of issue can be called a "Bootstrap" problem- bootstraps to put on your boots. Though it's a bit more circular than that. In the back of my mind is the premise of the Maker stuff, a company build around magazines and kits for hobbyists and (allegedly) kids. Except unless you have a parent who's an engineer and a hundred bucks sitting around, you're not really the target demographic.

So, how can this stuff be made more accessible? If the Internet of Things is going to be the Next Big Thing, how do we learn this stuff?

Tuesday, September 30, 2014

Publication games

I've been compiling articles and uninspired notes for a couple of research streams I've resigned myself to, in what amounts to a dissertation hangover. Can't stand to look at my dissertation at the moment, and finding these two piles of topics tiresome and difficult to really engage with.

If there's one thing I learned in the course of the dissertation, it's that "writer's block" (at least for me) often is the result of trying to write one thing while thinking about something else. Basically, the logjam of ideas that don't want to flow the way they're "supposed" to.  When I backtrack and Google "writer block logjam" there are a wealth of opinion posts about this being an actual thing.

Then I stumbled on games, gamification,and the like. I discovered to my surprise that my Intro Java class really liked a test class using Alice.  So, why not. Not the easiest thing to shift gears suddenly from one set of course plans to something else, a class example for a course I TA-ed for about 6 years ago.  But it's Alice and I was a Java developer for several years before the cut-and-run to academia.

Is there anything here to knock off my publication requirement for the year? A study about how Intro Programmer course students like Alice over Notepad++ isn't exactly going to get me into a first-tier publication, since it's no longer 2002 outside.  But, there's a question out there somewhere after churning through the stack of PDFs I've compiled recently.

Given my general inability to play any sort of computer games for the past 3-4 years, with life events and the aftermath, it seems that learning about games is likely to be my way back into that realm.

Thursday, September 25, 2014

Before you cross the street...

"Life is what happens to you while you're busy making other plans." 

Whoever said it first, Lennon seems to have been the first to put it in music.  I felt the need to play that song as I started writing this. It's been a difficult week, but almost over. Strange relief at the consistency of the week, whether good or bad- there were no real surprises. Hard to tell the sensation of things "getting better", whether conditions actually improve or just improved patience.  The distinction may not matter around the edges.

In another context, "No battle plan survives contact with the enemy," however we define the enemy is: another person, circumstance, or just ourselves. How do we survive complications or conflict and continue moving forward. The dissertation research was at best lightweight AI-- the only strategies employed were tactical.  Circumvent, adjust, continue until one can continue no more. Drop unsuccessful plans to lighten the load and accomplish what tasks remain.  These were not explicit strategies, just the culmination of dozens of small responses across a wide range of inputs and conditions. Some of these would fail to hold up to scrutiny, and yet the cumulative behavior was fairly realistic within this test-tube domain.

Conflict, life, pushback, details or whatever you want to call it seem inevitable. Failure is the only guarantee in life, so it would be nice to think anything above that as at least a partial victory, and to think of each tomorrow as a reward for surviving today. There are fewer opportunities for big decisions and countless opportunities for making minute choices, the culmination of which result in changes that can be difficult to anticipate.  It would be more reassuring to think of life as more than just the results of countless small comparisons driving decisions. There's the conflict between what we see, what we expect, and what we aspire to. 

Life does just "happen" whether you look both ways or not. Contingency plans are good, but still worthwhile to find a hand to hold when you do cross.

Monday, September 08, 2014

Not all typing is Computer Science

Monday morning, confronted with the reality over the weekend that an excessive number of my waking hours have been work-related. I guess I could retort to the last batch of comments about "summers off" with "weekends off?" but it's hardly the point. While working on STEM-related recruitment, I'm running into more confusion about what it is we do, over in Computer Science.

It's not all robots and games, though they have their place. Having said that, I'm trying to figure out how to hack some motors and wheels to the bottom of an Arduino board I have at home and interact with one of the languages I teach. All in the name of making the class more interactive. Which is just as much for my benefit as the class- or perhaps more so, since keeping up to date with hardware and Internet of Things stuff is key for this field right now.

So there are a couple of projects that just might fit in, though I have not evaluated them yet. One is a Java runtime for Lego robots, the other, a Java framework for Arduino. Either way, it's some testing to make sure they actually work, and then figuring out how to incorporate it into class- especially when there are 10+ students and I've got 2 of these things at home.

"Computer Science is no more about computers than astronomy is about telescopes." - attributed to Dijkstra

At some point, it's necessary to build things. The theory has to be built in, or else it's just a bunch of fumbling around and trial and error. We don't need any more of that.

The fascinating thing is that computing is a tool that can build other tools to help us work more productively. Not everybody who wants to live indoors should be an architect, or even a carpenter. Specialized skills are just more efficient. Widespread computing literacy is a lot more important than everybody learning how to "code". Whatever we agree literacy to mean, it's going to be very domain specific- can you use information tools to process information more efficiently for your tasks at hand. Maybe learning how to use these tools will help you learn to do things better. They're intended to be extensions to our intelligence, best case. Though it's easy to forget that while trying to find out why fonts keep changing in your word processing program, much less the thing helping you organize writing more efficiently or even help generate ideas...

Friday, September 05, 2014

Nothing but the rain

With the second week of classes drawing to a close today, the waning days of summer have been nearly forgotten. The cliche of riding a bike comes to mind- it just becomes automatic to a point. The routinization of much of any job is essential to performing the rest of it effectively- the trick I suspect is finding the balance between the mechanics of a job and the performance of one.

I do not miss the endless comments about "summers off" while working 1/2 to 3/4 FTE during the expanse of unpaid time. Essentially your 9 or 10 month paycheck is spread out over 12 in Higher Ed. In the days of yore, I suppose those extra 2-3 months were free to use for running the farm and harvesting crops, but now it's all but mandatory to spend it in course preparation, research, and the sundry administrative tasks scattered between May and August.  But with a cold summer of scattered rain showers, it proved a bit more productive than expected.

College STEM teaching is a bit more involved than clicking Powerpoint and knowing which end of the whiteboard marker is the writey part- courses need extensive revision even from year to year. But in an era when opinion has become synonymous with fact and Cut and Paste off of Google searches is conflated with learning, that reality is going to be a tougher sell. Oddly, I remember an old interview with Arnold Schwarzenegger, where he states that ego is one thing, the cold reality of facing weights on a bench press is another. There's something to be said with seeing a problem, determining some requirements, and sitting down to a blank screen to solve the problem. And some problems are only seen when you know how to identify them. How to teach an easier path through hard-fought experience remains an ongoing problem, but not one that the stereotypes about my occupation will solve.

Saturday, August 23, 2014

Why Making Things is Difficult

Taking apart old electronics after a while gives you some appreciation of how complex these systems are. If you don't have the right tools, disassembling these things is a little more permanent than you might wish. But things like CD ROM readers from the 90s aren't exactly an investment to preserve, so why not. And a little curiosity makes it far more interesting.

CD ROMs are largely plastic enclosures that embed gears as well as fixtures for holding wires, motors, and other parts. At the heart, there's a laser, an optical sensor, and a weird motor that is difficult to control but extremely efficient. I found the most useful information about these from an Australian RC Plane hobby board. They have detailed plans how to disassemble some of these motors and rewire them, to make them easier to control for a remote control toy plane. The electronics discussions are a little sketchy, to the point where I've started wondering if there are electrical engineers on the Web anymore.

Having some of the skills makes these projects seem easier. If you count it out, the range of skills is much wider than you'd expect, and depth in each varies quite a bit. Here's a short list that comes to mind-
  • programming in a C-based language (if you have an embedded controller like an Arduino)
  • Some electronics
  • Some mechanics
  • Some CAD for printing a circuit board (for finished projects) or just a well though out design for creating the circuit more permanently.
  • Some CAD for designing the 3D printer files to make the shell out of plastic, or the ability to machine this stuff from your material of choice.
  • The problem domain you're working in. If it's a quad copter it's some aerodynamics. If it's a plotter of sorts, it's also going to involve a lot of gear sets and geometry.
It's hard (I think) when you have some of the needed skills, but don't even know what other skills are needed to make these projects work. So how to work in this kind of environment? Some ideas, though I'd like to find out about alternatives-
  1. go to an outstanding STEM school
  2. Be around people who are good at this stuff
  3. Access to tools and materials for hands-on work with this stuff, some of which is fairly expensive
  4. Have a place to experiment with this stuff
Others? So what happens when you don't have a good STEM program, and don't have personal contact with people proficient in these areas, and don't have some expensive equipment and materials around to help learn this?  At the moment, you're out of luck. Something tells me this is a terrible situation that can be readily fixed, if there is some money and care for solving the problem of unequal access to these critical skills across cultural and economic lines. Money that would be a fairly cheap fix compared to the alternatives of persisting and even expanding these divides.

After years of addressing the "Digital Divide" by sending computers to schools, I think we missed the real point. I don't have a solution, but just a growing awareness of what doesn't seem to work no matter how many resources are misdirected at solving the wrong problem.