Showing posts with label philosophy. Show all posts
Showing posts with label philosophy. Show all posts

Thursday, August 25, 2016

What is a Linux Distro?

We've got a number of folks in a Facebook Linux group I moderate who are playing around with the guts of their Linux by swapping around pieces from different distros. Which is cool--experimentation and tinkering are always good things.

It has raised a point that I think may require some background. Specifically, "What's a distro?"

Back in Ye Olden Days

When Linux first came around, those of us who wanted to play with it got source code. And that's all. We'd compile the kernel under some other operating system (Windows, another Unix, or maybe even the Mac of the time if you were a masochist!)

Then we'd start compiling binaries for our Linux kernel--a shell and cc would be a common place to start so that you could start compiling stuff for Linux under Linux.

After a while, we realized that we were duplicating a lot of effort. Many of us had fairly generic systems that we could swap binaries between without having to recompile absolutely everything.

With time, the concept of having a set of precompiled binaries for the kernel and applications as a starting point for a Linux system became the basis for a distro. Usually you'd install from a set of floppies or a CD. If the kernel you chose from the distro was close enough for your purposes, you'd just use one of the ones they'd precompiled. If you wanted something more suited to your hardware, you'd recompile the kernel with a few configuration changes and usually get much better performance and a more stable system, without having to recompile the application binaries for user space.

We still regularly compiled applications. Anything that wasn't bog standard usually would have to be compiled. As time went on, the list of precompiled binaries for each major distribution grew, and then distros started to have their own package managers to ease the installation and management of precompiled binaries.

The ability to do this is a large part of what has turned Linux from a tech toy used by a select few who are comfortable with compiling their own operating systems and applications to being the generally popular operating system it is today.

Stepping Into Today

Now it's not uncommon for users to choose a distro according to the application set they want for their system.

Different Linux distros have sprung up with selected sets of software precompiled and ready to install and run, or as part of their base installation.

The specialization has reached back into the kernel, too, as maintainers of the distros have improved their distro by compiling a kernel that suits the base suite of applications they provide. Distros that are intended to be more general-purpose likewise make changes to the Linux core to make the installation and hardware detection process simpler and more robust to make installing and setting up Linux easier for users.

More software is more easily available to everyone because of this. All the major distros are tied to a system of package management that provides users with almost limitless choices of software to install on their system.

Going outside the distro's own software repositories (repos) is certainly possible, especially in the instance of distros that are upstream of one's own.

For example, if you're running Mint, it's a snap to include repos for Ubuntu and Debian in your package manager's list of repos. And chances are almost all the software there will run without problems. For all I know (I haven't installed Mint in a while) Mint includes the Ubuntu repos by default, I seem to recall that being the case in the past.

However, if you're crossing over between branches, like wanting access to software compiled for Fedora that's not in the Debian-family distros, then you're starting to put yourself in a position of having more errors. The filesystem layout is different between Fedora and the Debians. There may be differences in the kernel configurations that will cause you problems.

If you want to get software that isn't in your distro's repos, or in a closely related distro (preferably upstream), then the correct answer is really to compile it yourself on your system, rather than use software someone has compiled on a different system configuration.

If you want to save other people the trouble, see about contributing your effort to your distro's repos. They'll probably have standards of what you have to do to do that, but you can be part of the team that makes your distro that much cooler pretty easily.

Kernel Swaps

I've seen discussions of turning one distro into another on the Facebook group. Hopefully a better understanding of what a distro is, and how it is defined, helps to show why "Turning Ubuntu into Kali" or some such is a misnomer. If you're grabbing another kernel then starting your system off it, you're no longer running either distro. You've gone custom.

That's not a bad thing, experimentation is a good thing. But you also want to look at how effective the technique of playing mix-and-match with precompiled system files and applications is versus just doing your own compilation with the stuff you want.

If there's a specific distro that you want the advantages of, it's best to install it rather than to build a sort of chimera by grabbing pieces then lashing them on to your current distro. You're asking for trouble by using binaries that haven't been compiled using the same assumptions at compile time.

If you want something truly custom, then rolling your own Linux is very probably the way to go. It's not hard, and that used to be the standard installation method. There are a number of systems out there to make it even easier than we had it in the old days (Linux From Scratch, Gentoo, etc.)

I hope this helps clear up some of the confusion about distros and their parts. :)

Monday, November 17, 2014

Microsoft's Cross-Platform Play

Microsoft has recently announced that they are moving .Net to open source and supporting Mac and Linux in addition to their Windows OS with Visual Studio Community 2013. Also, Visual Studio 2015 will support iOS and Android development.

Frankly, it's a little confusing because in some places MS mentions Mac and Linux, but very few, and they mention iOS and Android in lots of places, but not everywhere. So the support may be different than what I said.

Nevertheless, MS is opening up. Or at least seeming to.

Their timing couldn't be better, in my opinion.

Oracle is working hard to poison Java. I'm not entirely sure why, unless they think that ticking off any Java programmers and users outside those developing middleware for Oracle's products is a really great strategy. Their support for Java as a general programming language, as Sun did, has been piss-poor since day 1. Every so often they make a grand gesture to try to present themselves as interested, but the product they offer now is not something I could send someone out to install with a good conscience. What kind of an honest, large-scale company thinks that half-sneaking some crap software in under the cover of installing their own is a really great idea? Not one that really treasures the individual customers, I can tell you (and yes, Adobe is on this particular excrement list, too.)

Couple that with their poor responsiveness to security concerns, to the point where the Java language is treated as a sort of worm or virus by most software, and you've got a company that's decided to leave a hole in the cross-platform development market simply because their interests are elsewhere.

Cross Platform Alternatives

C# is Microsoft's outgrowth from their own attempt at embrace, extend, exterminate targeting Java. It's a very good language, including the good parts of Java while having a set of libraries (.Net) that don't have the Java API's less than useless historical cruft but do have everything good about the API, which made Microsoft look really cool to programmers when it came out as most were not familiar with the Java API itself.

Switching to C# from Java is an afternoon's exercise. But it and the .Net library started out wed to the Microsoft platform.

Enter Mono, a cross-platform implementation of .Net supporting the C# language based on Microsoft's ECMA standard for its products. It has been growing, at least in part on the back of the decline of Java, as well as bringing the good things about C# and .Net to Mac and Linux development. It doesn't hurt that it is the core that drives products like the Unity cross-platform game-development system, too.

Now Microsoft is combining their products with Mono, and extending their reach to Android and iOS.

There are a Couple of Ways This Could Go (and Possibly More)
In Future A, Microsoft does the excellent work they do in producing development tools, but now with a return to platform-agnosticism. This encourages programmers to develop for Windows and Windows Phone as well, since programmers who might otherwise have been targetting only iOS or Android will be selecting these tools for their intrinsic value as development tools to write programs for their favored OS, then decide to toss a Windows/WinPho version out there, too, since it's not costing them any significant extra effort and might end up fattening the coffers a bit.

Microsoft gains developers for its platforms, draws "thought leader" and technical leaders into their ecosystem, and the developers get the advantage of having good development tools for any major platform they choose.

In Future B, Microsoft uses this as a ploy to draw programmers in, but cross-platform support is sloppy, or delivered slowly, or lags behind the native capabilities of the non-MS platforms. Perhaps it doesn't play well with the various different versions of Android, or maybe the Mac and Linux native code suffers by comparison with code developed with native tools for those platforms.

It turns out to just be hype. Maybe there are forces within MS that fight the release of solid tools that are truly cross-platform, so they ensure that foreign platform support is sub-par, thinking that they're helping their own products by making it "harder" to develop for other platforms. The only point of cross-platform, to them, is to allow Windows patriots to proclaim themselves cross-platform developers without knowing anything about the competition.

In this future, Windows does not become the programmer's platform of choice, Windows has extra costs of development that make it less attractive as a development target when another platform is the one that's going to pay the bills (probably iOS), and life goes on as it does today with possibly the Microsoft touch putting some poison into Mono.

I can only hope that the upper management at MS is committed to Future A. because that's what it's going to take to keep Future B from stepping in any time it pleases.

Microsoft, Doing You Know What in Their Own Messkit for the Past Decade
Windows 7 was a boon for programmers when it came out. I and many other programmers I know had been feeling somewhat kicked about by Apple, didn't see tools with the same level of sophistication on Linux (and generally more system maintenance than the commercial OSes, and system maintenance doesn't pay bills), and Windows 7 was a viable place to go, or to at least have as a second OS on our desk for conducting development and testing.

Windows 8 added some nice stuff behind the scenes, but not without wrecking the usability of the platform, as well as making it a far less attractive target for development. In my case, I abandoned Windows as a target for native development about a decade ago, and was waiting on Windows 8 to see if I might add it to my repertoire again. The answer became "no". Windows 10 will determine whether I ever consider it a serious platform for anything at all in the future, as the professional applications that I currently use on Windows have all become multi-platform over the past several years, so I can move my licenses over to Mac OS or Linux for all of them.

If Microsoft gets it right with their development tools, and Windows 10 restores the power to the desktop that earlier versions provided--not just a false appearance of it as in Windows 8.1--then they stand to become the defacto professional desktop again.

Whither Mobile?

And given that the consumer desktop is the market that is dying in the face of mobile platforms, one would hope that they are bright enough to strategically commit to a powerful professional computer OS again. While the mass market computer is probably going away, there was a profitable professional/hobbyist market before the internet boom put a computer in practically every household. That professional market stands to be even larger than the historical one, as many professions that had nothing to do with computers now rely on them, and many new professions have arisen over the past 25 years that rely on the computer.

Also, there's a possibility that the mobile device as a computer replacement is just a flash in the pan. Most people bought their mobile devices in place of a routine upgrade to their home computer for one cycle. Now that they have tablets, the tablet market is going flat while computers are seeing a modest rise in sales. I think just about everyone has had a chance to discover that the touch interface is very limited in what it can do with current technology. It's severely error-prone and it's not well suited to complex activities. It's too soon to read now, but there's a chance the tablet may be relegated to specialty use status, with the keyboard-equipped computer regaining its status as the "real" computer behind the smartphone's limited purposes as a personal communication and light entertainment device. We'll see.

The phone isn't going to go away, though. It's going to be the most personal of personal computers, at least until it's replaced by a small tablet and a complete phone the size of an earpiece, or some other revolutionary turn that gets people to give up a screen for convenience. So supporting the mobile platforms is, for Microsoft, probably a must to their survival. At least until they can get real market share for Winpho.

Either way, if Microsoft plays their cards right, going to platform-agnosticism in their development tools could be a really good thing for everybody--including and especially Microsoft.

Wednesday, January 15, 2014

Commercial Spaceflight Isn't About Sending Fatcats to Space

I've seen a fair bit of "hate the rich" sentiment toward various "space tourism" ventures out there, such as Virgin Galactic's White Knight 2, XCOR's Lynx, and other development efforts toward reusable suborbital spaceflight. I feel this is driven by the usual specious reports by the media about space tourism and seat costs in the range of hundreds of thousands of dollars to drive the class warfare point home. Naturally, the first image that will come to someone's mind when seeing these reports is some overstuffed fat cat buying themselves a $200,000 joy ride at the expense of others.

The fact is, a point has been missed here. Space tourism is the economic model that's being used to draw investment for this work, but it's not the reality of where this work is going. In order to get money to do something new, without a proven business model, you have to build a business model from scratch. This means finding something that will presumably pay the bills and earn enough to pay investors a return at least as good as an investment in another proven economic activity, such as investing in a restaurant or manufacturing. In fact, the return needs to be better, at least on paper, to induce investors to take the risk of not putting their money into something proven.

For reusable suborbital launches, the case was made using space tourism. That's because none of the other potential uses is really well known, but a unique luxury offering could be pretty well characterized, and counted on to deliver a return.

But the real value in these quick trips to space lies elsewhere than in joy rides for someone with $200,000 burning a hole in their pocket.

It's Like a Reusable Mercury-Redstone for Suborbital Research

The Next Generation Suborbital Researchers' Conference is one group that's excited about the prospect of cheap suborbital flights. Currently, the overall cost of a sub-orbital flight on a sounding rocket is about $3.5M. The costs to the users are less, because much of that costs is subsidized by NASA, and by sharing of launches between institutions. It costs each institution about $50,000 to $500,000 per launch with somewhere from half a dozen to a dozen institutions sharing the costs between themselves. This gives them the chance to launch about a half a cubic foot to a cubic foot of payload on a short flight on a rocket. It will experience at least 25Gs of acceleration, with shocks of double that or more. Nobody can ride along, so the success of the flight will depend on the researchers' ability to automate their payload (adding considerably to the costs of building and testing the payload before flight.)

Flight on one of the new commercial launchers will cost the institutions about $50,000 to $400,000 per launch. They get to send a person to operate the experiment, and likewise to experience the ride, if they choose. They may also buy a package where they send their equipment, which will then be operated by a space tourist paying their own way who has been trained to operate the experiment, or the package may be activated by the spacecraft's crew.

The commercial space operators are already putting together special deals for the space researchers. They can buy into multiple flights at discounted rates.

Plus, their payloads can experience flight at human comfort levels, 3Gs or less, with controlled temperature, air, etc. This results in far less cost. The same instrument package used on the desktop at the university's lab can be the same one sent on the flight. It doesn't have to go through vacuum testing, extensive testing of the automation under different conditions, hardened against high shock loads, etc. Standard safety design and testing for not bursting into flames and filling the cabin with smoke will still be necessary, but that's a big step down in cost and effort from what's required for a sounding rocket flight. That drops research costs even more.

Another important point is that these flights will be far more available than sounding rocket flights. NASA launches somewhere around a dozen sounding rocket flights each year. The commercial flights will be more frequent, and easier for an institution to get a payload on board, deal with schedule changes, and so on.

Teachers in Space
Another purpose of the new commercial "tourism" flights is to send the sort of tourists I think most of us would want to send. Teachers in Space is a program that can't wait to use commercial spaceflight to send teachers into space with student research at all levels of education. Speaking as a part-time teacher myself, I can say that it helps the students a lot to hear about science and spaceflight from someone who's actually been involved in it. If we have a growing cadre of science teachers who can start a statement to students with, "When I flew in space...", work alongside them on projects they're building that will actually go into space, it will bring a sense of reality and engagement to their education that's so hard to get otherwise.

Other Desirable Space Tourists

There are plenty of other people we, as a society, would like to see get a chance to experience space travel. Make A Wish Foundation flights? Rewards for science fairs? Small companies doing their own research to compete against larger ones? There are many, many uses for these vehicles that have nothing to do with the ultra-rich burning off spare dollars.

Opening Up Space

That just happens to be the easiest way to show that there's a potential profit at the end of the long development process for those who invest in the companies making this happen. So don't be fooled by reports making the commercial space industry out to be nothing more than a new form of luxury for plutocrats. This is about giving little people the access to space that's so far been limited to governments and richer institutions. This is the same sort of revolution that we got with the microprocessor, which brought computers into our homes then into our pockets. Once upon a time, the computer was known to the average person as a tool of oppression. When your bank or government told you that their computer said you owed them so much money, you were stuck fighting a battle against the authority of a tool you didn't have. When we got our own computers, we got the power to tell them back, "Well, my computer says..."

Now, we're on the verge of having space access be democratized in the same fashion. Virgin Galactic, XCOR, and Blue Origin are not the end of this particular road, any more than the first heavy, balky, difficult to build and use microcomputers from before 1977 were the end of the process of democratizing the computer. But if early public sentiment had risen to kill off the early small computers as nothing more than toys for the rich, where would your tablet and cell phone come from today?

Be glad the rich are there, willing to buy tickets for a space adventure. Because they're there, the way is being opened for your kids and their teachers, their work and research.

In the words of Alan Stern, "The access revolution is about to happen. When these guys are flying all the time, and you can fly an experiment over and over and over and get different data sets all the time, close the loop and fly an experiment the next week and the week after, I think we're going to see the best applications be things we haven't thought of yet, because we're kind of looking at it through old eyes." (Aviation Week, June 17, 2013, "Suborbital, But Reusable" reporting on the 2013 NGSRC.)

Thursday, November 14, 2013

Ted Nelson's Computer Lib 40th Anniversary to be Honored at Chapman University

I forgot to mention an additional item in my post on meeting Ted Nelson. Chapman University will be honoring the 40th anniversary of the publication of Computer Lib on April 24th-26th, 2014, presumably at Chapman's campus in Orange, California.

Here are images of the flyer (once again, apologies for the fold. I put it in my hip pocket since I wasn't toting anything else to carry things at the time.)


Wednesday, November 13, 2013

Lee Felsenstein at Homebrew Computer Club Reunion

Lee was the MC at the main part of the club meetings back in the day, and he reprised that role on the night of the HCC reunion. He was also the designer of the computer in that day that I most desired, the Sol 20 Computer. I loved that system--the look, the keyboard, its operation.

Image by cellanr
There were just two things you wanted to know about the Sol to make life happier: Build the fully expanded system right at the outset. Opening up the heart of the system to expand it later was a major PITA. The other? Use someone else's disk subsystem. Though with the information available today a Helios disk subsystem could probably be made to work.

I still have the sales brochures for the Sol 20. I pull them out every now and then to drool over them again. Part of it is nostalgia, but part of it is the great design itself. Actual Sol 20s sell for more than I can afford, but perhaps I'll build myself a look-alike system from sheet metal and walnut wood sometime, anyway, and print up a nice black name badge.

I still have an Osborne 1 computer. This one is one I got only relatively recently. It is pretty well maxed out on upgrades (disk upgrades, video upgrades, etc.) and is a pleasure to use. It's not as pretty as a Sol, but I enjoy showing it off in current day computer classes. The kids love it--especially the floppy disk drives and the tiny screen. But...they get hooked on Zork.

Lee Felsenstein Today

In our conversation last Monday, Lee showed me a project he's working on today as an educational tool. It's a programmable logic simulator, targeted at middle school students. What Lee showed me was a pair of printed circuit boards that have captive fasteners to clamp them together around a plastic matrix. The matrix holds surface mount diodes, which the students can place into the matrix to program it. In essence, it's a 16 by 8 programmable logic array that is programmed through physically locating the diodes.

OK, I know that sounds totally abstruse to many of you, so let me tell you what makes this a great idea, and why your middle schooler ought to know about this stuff even if you've gotten through life without having to so far (assuming you don't know already).

The core of computers are built out of logic circuits. The memories feed the logic circuits with data (in current designs--it doesn't have to be that way though it's presently the assumption), in essence, the programmable logic is the complement to the memory. This analogy of the logic and memories being complementary components of a computer holds on many levels. It's possible to build logic out of memories--I've done it--but it's not efficient.

Initial education in logic circuits can be accomplished with a simple breadboard and some logic chips. A few AND chips, OR chips, NAND chips, inverters, and so on. Add some resistors and LEDs and the kids are off and running. For a little while. Once they master this, and understand what's going on, they immediately start expanding their ideas.

Then a problem hits. More chips and more wiring between them mean more complexity, and more difficulty in realizing their ideas.

At this point, it's possible to introduce them to programmable logic devices. Teach them that the logic functions they had in the ICs live inside the PLDs, and that they can program the devices rather than run wires. The problem is that this is a big, big jump up in abstraction level, especially for a kid in the middle school age bracket (which is the perfect age to introduce this stuff, which I'll go into later.)

Whereas Lee's invention maintains a physical element. The programming is accomplished by manually placing diodes into a matrix, rather than typing characters on a screen then punching the 'program' button to dump it to a Flash PLD. This keeps it from getting too abstract, encourages experimentation, and maintains the hand-on element that's necessary for students in the 9-13 years age range.

Building Blocks of Electronics

Electronic logic is building blocks. Your kids play with building blocks, right? They start with simple structures to learn how to build more complex structures. Before long, they can use every single piece they've got building large, complex structures. Once the individual blocks and a few simple ways of interconnecting them are understood, they can take off and make great big projects that reach to the ceiling.

It's the same with electronic logic. It's a collection of simple building blocks. The problem is, the complexity of assembly is a little greater. Enough that once you get past a certain level (I'd say 20-30 ICs), it gets progressively more difficult to implement your ideas. The ideas out-race the ability to construct.

This shouldn't be an obstacle. The ideas should be allowed to continue to grow, without removing the physical aspects that make the activity interesting.

The Lee Felsenstein Magic

Lee has hit a sweet spot here. With all the excitement about the Raspberry Pi (which I will save my criticisms of as an educational tool for a future article), Lee's project should have that sort of excitement going for it. This is about students building their own processor. This knowledge is important. This is what the people who caused the microprocessor revolution used to cause the revolution in our lives. This is the knowledge that put a CPU in your telephone, your oven, and your iron. This is what tunes your radio.

Assembling a processor from random logic is a huge project. Yes, people still do that (I've even build a very, very simple one from racks of relays, myself, under cover of testing those relay racks and their support wiring after installation.) Building your own processor with a PLD is a lot easier, once you understand the building blocks.

Lee explains himself well on his project page. Have a look. I will be following the progress of the project.

And I'm really glad I got a chance to meet up with Lee again after all these years. He was one of my mentors and inspirations in my youth, just as he describes those who mentored him. It seems to be a common thread that those of us getting older want to assist the younger generation just as we were assisted when getting started in technical pursuits (as hobbies--the jobs came later.)

And if you're raising a kid--don't just foist off software on them as something to play and "learn" with. Software isn't reality. I've designed any number of computers on paper and in software, and then go on to build far fewer of them. Because software and paper aren't the real thing. The real thing has all sorts of little niggles and oddities that you'll never learn about in any way other than doing the real thing. Teach your kids to solder, use solderless breadboards, and use real components at all levels of complexity. Don't try to do too much at once, start with kits then move your way toward recreating circuits on breadboards then to soldering them on prototyping boards.

But do the real thing. Right alongside your other crafts projects. Because electronics is just as much a craft with some useful products as is crochet or embroidery (both of which I do) or quilt-making or sewing (which some of those close to me do). And most of all, have fun!

Monday, August 12, 2013

A New MacBook Pro

About two weeks ago, one of my computers stopped working properly. By "one of my", I mean one of my sit down and type on a real keyboard style computers. It's a netbook that has been my "easy chair" computer for several years. First it stopped booting into Ubuntu properly. Then software started acting odd, or refusing to start. It's other OS, Windows XP, was still working fine. For a while. Then it started getting odd on me, too.

I started out trying to back up the data in the Ubuntu partition by booting off a newer Linux (Mint 15 MATE, in this case.) I was having kernel panics in the midst of moving data off. Then the keyboard got strange on me--in other words, it became erratic. It was becoming more and more a case of diminishing returns.

A New Netbook?

First, I tried purchasing a new Asus netbook. I've bought seven of these for myself and my family since the original Eee PC 701 came out. They've all been great. I was looking forward to moving up to a 10" model, the dying computer has a chassis that's the same size as a 10" one, but it only had a 9" screen in it (it's a 904HD.) I've been envious of my daughters' 10" models, and the larger chassis has a keyboard that's a better size than in my 901 (9" screen with a smaller chassis and keyboard.)

Since I do a lot of writing in my easy chair (these blogs, for one), that wider keyboard really paid off.

So I find the Asus 1015 models are the current incarnation of the old Eee PC netbook. I order one sight unseen.

What a mistake!

Welcome to the New Netbook, NOT the Same as the Old Netbook

The first thing I noticed was the trackpad. They wanted to make it look like a Mac's trackpad, hiding the buttons underneath the solid trackpad surface. Unfortunately, their trackpad surface is not flexible like the Mac's. It's a stiff piece of plastic. It doesn't flex, it rocks. It rubs on the edges of the trackpad recess it sits in. It's cheap, it's cruddy, it's noisy, and it doesn't work well at all. The earlier models with their mouse buttons molded outside the trackpad were much, much, much better. Even the relatively noisy ones on my 701.

That alone would have been reason to return the thing. There's no way I'd sit and use that crappy trackpad every day. But there was another killer in the deal. The fan. The whole time I was using the Asus 1015, the fan was blowing like a turbojet. Noisy as all get-out, and totally unnecessary. It started up with the system and never slowed down. I didn't even run anything more demanding than a browser on a non-JavaScript web page. My 904 and 901 have fans, but they never get that loud even when I'm trying to force them into doing work way above their pay grade, like CAD/CAM. And when I'm just running the usual stuff, editors and what-not, their fans quiet down and become unnoticeable.

Not the piece of garbage that calls itself the 1015.

Yeah, it's got a higher spec processor. So what? If the human interface sucks, and that includes the noise it makes, then it's worthless as a netbook.

It went back to Amazon the day after it arrived.

Round and Round and Back and Forth

The problem then became, what else could I get. I wan't excited about the idea of a Chromebook, though they've pretty well moved into the niche vacated by netbooks (not, contrary to popular statement, tablets. I've got an excellent tablet, and I still need a real clamshell with a real keyboard.)

I didn't have the budget right now for the "Ultrabooks", and they're just jumped-up netbooks at four times the price. By the time you pay the price, you might as well have gotten the thing they're pretending to be--a MacBook.

So I was looking at just bringing my old Eee PC 901 upstairs, as it gets less use now that I do have a fine tablet. I wasn't doing a lot of keyboard typing with the 901, it was mostly used for reading and light text entry--a job my tablet has mostly taken over. Of course, the 901 has a keyboard I don't like nearly as much. That would likely cut into my writing time, if I ended up avoiding serious writing.

Family to the Rescue

Fortunately, my family decided to find a way out for me. My birthday was near, so they got me a new computer for my birthday. It's a MacBook Pro. Granted, it's not the Retina Display model, but frankly for this purpose I wouldn't get much from that. This is a secondary computer (though still an important one). It's more than I could afford on my own, and a great computer.

They let me pick it out. They know how picky I am about keyboards and other ergonomics. I tried a Surface Pro (ugh!) with both keyboards. No dice. I played with some other computers in the size range I'm looking for (under 14", the smaller the better.)

I also tried the MacBook Air.

The MacBook Pro won on the basis of its keyboard. The angle and feel of it suit me more than the one on the Air. The Pro is almost twice as heavy as the Air, but still light enough to handle with one hand, easily.

Fits with History

The first computer I started using here regularly, was my beloved and lost Aluminum PowerBook 12". For size, weight, and usability it set the standard for me getting work done in my easy chair. Unfortunately, it has a graphics chip that ran hot. Three times it went back to Apple with a dead hard disk drive. Rather than replacing the logic board with the hot chip (yes, it was reported) as well as the dead hard disk, they kept replacing the hard disk and sending it back to die on me again.

The last time it went in, it turned into a complete mess. While it was in for service, I was chasing it around by phone trying to make sure they'd solve the root problem, rather than just swap out the hard disk again. They assured me that they were going to replace it, as it was its third strike. I was looking forward to a processor speed bump with a new 12" Powerbook (about the only change that had occurred since I bought mine, other than some options I'd purchased becoming standard pack-ins.)

Instead, Apple went incommunicado on me. Every prior repair through AppleCare had turned around in about a week. Now it'd been three weeks, and they couldn't even tell me my computer's replacement status.

It was the very time when the Intel-based Macs came out.

Finally, after weeks of calling and getting no information, my case got escalated to someone who could actually speak to me rather than just tell me what their computer screen told them to say. He was helpful and assured me that Apple would make good. I had already gotten to the point of talking legal action before that--my work schedule had been severely impacted by the loss of my main engineering computer at the time. Aside from the time I was spending on the phone with Apple trying to figure out what they'd done with my computer (I was ready to have them renege on their AppleCare agreement and send the broken computer back to me so that I could just buy the replacement parts myself), I was scrambling to get my work done (I made most of my calls to AppleCare while I was driving around to and from work sites on extra trips necessitated by the lack of my laptop.)

Well, they offered to replace it with one of the new MacBooks. Even a Black model, with all the matching extras I'd had for my Powerbook. I accepted, but it turned out to be a bum deal.

The first MacBook was junk compared to my 12" Powerbook.

It ran hot. There's hardly any airflow, so no surprise. They really botched the design on the first model. It was floppy as a floppy disk. This was before the Unibody models, remember? I hardly trusted moving the thing from desktop to desktop, never mind using it on a lap desk at my chair.

The MacBook went to my entertainment center, where it would sit on a hard, unmoving, practically unmovable surface and put video into my big screen TV. I'd originally planned to buy the cheaper Mac Mini for that purpose, but now I had my relatively expensive work computer doing that job.

Shortly after that is when I got the Eee PC 904. Originally it and its companion 901 were intended to be replacements for my Eee PC 701. I wasn't sure which size would work for me, so I got one of each. I planned to pass the other one on to a family member once I figured that out.

Well, the 904 turned out to be the solid little replacement I needed for my PowerBook. It was about the same processor power (Celeron M vs. PowerPC G4, about the same clock speed), small, rugged, and light with a good keyboard. I could also throw it into my book bag and take it with when I went to teach classes at a local school.

It kept at that job for almost five years.

And now, I've come full circle. I've got a nice solid little Mac here. It's larger than my old 12" PowerBook, but not by too much. It's Unibody, so it feels just as rigid and solid as the older Mac. The keyboard is illuminated, which is a plus. And it's modern in its other aspects. The only way it suffers by comparison is the type of screen. It's glossy, not matte, as my old PowerBook was.

Ah, well. I hate glossy screens, but I hate matte overlays more. I guess I'll deal with it. ;)

Tuesday, May 7, 2013

Google's "Upgrades"

My apologies to those who follow my posts, but who've had nothing much to follow lately. Google has been "upgrading" their services lately--that is, making them unusable for my purposes--by rolling everything into the cobbled-together stinking heap they call Google Plus. That means I haven't been able to build posts with images in my usual way. So I've been hung up waiting for a chunk of time to appear when I can try to sit calmly at the computer and put together a new process.

Hopefully I can manage it now, as I've got a backlog of posts that have been waiting on this.

I tell ya, though, Google 2013 is looking a terrible lot like Yahoo 1999. Services are poorly integrated, changes only make things worse, search results stink. *sigh* I don't want to have to shift everything off their services, but they're darn well pushing me that direction.

Enough of that, let's get back to the fun stuff...

New article coming online in 3...2...1...

Wednesday, March 6, 2013

A Documentary on Comics: Stripped, by Dave Kellett

Stripped, the Final Push, on Kickstarter

Dave Kellett has been working his tookus off on a documentary on comics and their artists. It's called Stripped, and he's just about finished it. He's doing a "Final Push" fundraiser on Kickstarter.

I've backed it, and am looking forward to getting a DVD of this film. I recommend you do so, too!

Friday, December 16, 2011

Amateur Radio: A New Hope

After my prior post wondering what I should do to pull together a ham shack for <$1000 or so, I noticed I wasn't getting much feedback either online or off. This is usually a sign I've asked the wrong question. Sure enough, I've gotten a response now that verifies that.

Fortunately I've had a distraction that's kept me from fretting too much.

My oldest daughter has been studying for her own ham radio license.

The First Harmonic Doesn't Fall Far from the Primary

She's been playing with microcontrollers for the past several months, learning the basics of electronics and low level programming. When I talked about some of the things on the amateur radio exam, they sounded familiar to her. I guess I got her interested.

She's been studying for about a month now, in spite of distractions from work and her other hobbies. Tomorrow morning she's going to take the test. A week ago I wasn't sure she'd be ready, her online tests were coming up more fails than passes (the online tests are a really great study tool!) Since then, we've had mini lectures on propagation, capacitors and inductors, and rules & regs. She's also had a chance to focus on her study a lot more this week, and take more tests to see more of the questions. She's scoring much better now, consistently passing the test with 3-5 missed questions. Good enough to drive down to a test tomorrow morning.

Hopefully she'll have a CSCE tomorrow. If not, I'll tell her my stories of how I failed my first attempts at getting my license and reassure her that another test will be available soon. The only way to fail is to stop trying.

My Plan, Revised

To get an HF set-up of the sort I want takes more money than I have now. I started writing down lists of rigs, the necessary bits to get them on the air (power supplies, antenna tuners, etc.) and realized I can afford a single or dual band mobile, not a base station. Kits aren't all that cheap, either, once I look at what I can build without much infrastructure and get something of quality with long term value.

So, 1st step: be patient and build up money for a more realistic station budget--as I learn more.

Step 2: Try some more things to get some QSOs with my 2m FM HT on simplex (like from the parking lot at the store while the wife shops for XMas) plus see if I can get an SSB or CW signal out of my home location with the Kenwood TS-700A 2m rig I've got. Its receiver isn't very sensitive (I think the quartz stones in front of my house convert more signal), but we'll see. Maybe I can adjust that.

I'll also play around with horizontally polarized omnidirectional antennas or put up a beam and reposition it by hand every so often (no rotator yet--something else that'll take money when other things have been dealt with.) I put up a wire yagi last week, but couldn't hear an SSB net that was scheduled with the 700. Maybe I can figure out why this week.

Meanwhile, I'll see what I can log from parking lots with an HT. :)

2 meter band handheld transceiver

Tuesday, December 13, 2011

Best Starter Ham Shack for <$1000?

In my research I've stumbled on a question that elicits a lot of opinions. What's a good starter ham radio rig to buy? There are a lot of answers, and working through the answers requires a more specific question is what I've learned so far. So here goes. Short form first, more background below.

I'm looking for:

  • A fixed base rig to operate off wall power.

  • 80m to 10m, 160m is greatly desired, 6m would be a nice frill.

  • Rig price on the order of $500 or so, depending on extras:

  • With all the bits--filters, power supply, feedline, key and/or keyer, mike, antenna tuner, etc. I'd like to bring the bundle cost in at about $800, up to as much as $1000 once the last insulator, connector, and screw is in place.

  • Furniture and basic facilities like light, heat, and air isn't included in the cost,

  • but a lot of little things like the antenna feedthrough, cable, switches, and connectors are, which is why I'd like the big pieces to come in around $800.

  • I'd be willing to go higher if I felt really secure that I'm investing in something I'm likely to get much more or better use out of, but I'd still be capped about about $1200-1400 for now, anything more would have to wait.


Detail
My present home location appears to be best for HF work, so that's where I'm going to concentrate for now. I expect to pick up a good enough 2m rig to be able to hit the local repeaters for the sake of keeping in touch with the local hams, but VHF isn't where I'm looking to do my regular operating. This rig will be for a fixed station operated when the power is on, so portability and power conserving reception is not a factor, especially when weighed against receiver sensitivity and other such factors.

Antenna
I have plenty of space for an antenna, but I'm not expecting to start with anything sophisticated in the way of masts--trees will probably be my initial supports, or a small mast off the top of my garage. I have no fixed idea as to whether to build or buy my first HF antenna. I'd like it to be multiband. I'll look at ideas from stringing up a center-fed 12ga wire dipole to a quad band yagi with a rotator.

For the initial antenna set-up, I'm willing to compromise with the expectation of getting more or better later. But I want to start with something good enough that I'm not cut off at the knees while I'm still getting a feel for what I'm up to. It's worth noting that I have an MFJ-259B antenna analyzer on hand.

Operations
I don't know what my primary mode is going to be yet. I want to work CW and SSB. I'd like a rig that'll let me dabble a bit, so I'd prefer it to not have any major weaknesses even if it's, say, the greatest CW rig ever built. I'd like to try some digital modes, some SSTV, and some ATV.

The extra equipment for these other modes isn't included in the cost, I just want to be clear that I'd like a rig that can do it at least well enough to get started and figure out if I want to put more money into it later. So a rig that can handle the duty cycle these modes impose is probably going to be necessary.

QRP isn't where I'm looking to start here. I've already got my site working against me, and I really don't know what it's going to take in the way of power to work from here. So the rig should probably be about 100W or more until I know--unless you can tell me better.

I'm expecting to build my own QRP equipment later. The rig I'm looking at getting should be a solid workaday affair, I'll have fun building watch battery wonders later. ;)

QRU?
So, fellow hams, where does that put me? An old FT-450 or TS-480? Or one of the new "shack in a box" rigs with some extras? Would I be better off springing for a good beam and rotator now, or will a wire dipole hung from some spruce trees get me enough QSOs to keep me going until the money reserves and operating experience build up?

Your opinions are welcome. I know that you can't tell me exactly what I should get. I'm just looking for opinions more seasoned than my own wild guesses. I just want to get an idea to start out reasonably effectively, while keeping the spending down enough that it won't ruin the hobby even if nothing I do works out as planned. ;)

Saturday, December 10, 2011

New Ham Progress: Working Toward a Working Station

It's been 3 weeks since I got my CSCE for my amateur radio license, two and a half weeks since my license appeared in the FCC database. Each day I've been working to make material progress to set up a station and start operating. So far I'm not fully "on the air", though I've made a lot of progress.

my certificate of successful completion of exam for all three amateur radio tests
I passed the tests! Now what?

Getting a station up and running could happen quickly through purchasing a "shack in a box" transceiver with antenna, feedline, and accessories and setting them up. The set-up of the antenna, feedline feed-through, and learning to operate the transceiver and the aavailable ba would be no small feat in and of itself. But I'm taking a bit slower path.

As I progress, I'm learning a bit more about what I've got to work with--hopefully leading to better decisions when it does come time to lay out for equipment.

Starting Point
While I had a ham license before, I did very little with it. I had a mobile 2m rig in my car that I used on the local repeater. I helped at a local long-disstance charity run. I hoped for more, but that's all I did. I never really built up a station or even learned the routine on simplex operations.

Since then I had a friend give me a Kenwood TS-700A all-mode 2m rig. I can't locate my old IC-230 mobile rig, it's around somewhere, but I haven't found it yet. No matter, it's not much use to me in the present day. The 700A is a decent rig, but the receiver is pretty insensitive. Even if I just use it for SSB and CW it'll need a preamp and probably a power amp. Because of my location.

I've moved since my last time around with ham radio. I used to live in a fine location, now I live in a place where I'm poorly situated and surrounded by thick VHF-eating trees.

I also turned up about 60 feet of RG-8, a couple of awful little straight keys, and some other odds and ends.

Moving Forward
VHF will be important to staying in touch with local hams, but I need some tools that can deal with my location. For less than the price of a preamp/amp combo for the Kenwood TS-700A I can get a mid power, more flexible, more sensitive current-production 2m or multiband VHF/UHF rig. I still expect to have fun with the TS-700A down the road, but for normal workaday comms, a new 50-75W 2m rig would make more sense.

I did buy a little Yaesu FT-250R handheld, but it can't hit the local repeaters even with an external ground plane antenna mounted about 40' above grade. I built a simple yagi for testing, too, but I'm between repeaters so I'd like to use an omnidirectional antenna for general FM. The yagi was built to see if I could manage any SSB here. So far no luck but this is still work in progress.

More Site Assessment
To get a better idea of what might work here, I picked up a Grundig G3 shortwave receiver last night. I've been tuning around through the ham bands to see what comes in. MF/HF is definitely more promising here than VHF. It seems (so far) that 160m and 80m will be good here at night, with 20m being a decent daytime band. The jury is still out on the other HF bands. I need to put in an external antenna for the G3, so far I've just used the little whip on top.

Build or Buy
While I expect to build equipment in the future, I'm also expecting to establish the station with solid purchased equipment. Whether new or old I'm not sure yet, I have to spend more time with other local hams to find out my options. But prebuilt equipment will allow me to operate while I'm building other rigs--QRP rigs or whatever--plus it'll act as test and calibration tooling for my scratchbuilds.

From what I can see so far, I think I'd be just as happy at this point with solid equipment from any time in the past 25 years or so as I would with new stuff. For example, something like the late-80s Kenwood TS-440S or Icom IC-765 look like they'd still do fine today for my present needs. Maybe--I'm still guessing at this point. So I need to learn more and get some idea of price differentials and all that.

Meanwhile...my ground rod is in, I'm clearing an area for my station that'll get its own AC/heater unit and antenna cable feed-through. I'm experimenting with antennas and mast mounting positions and otherwise trying to make it so that when I do have equipment, I'm prepared to do something at least somewhat effective with it.

Tuesday, May 24, 2011

My GCode Gets a Bit Tricker: Working with the microCarve A4 CNC

We collect souvenir spoons when we travel. Unfortunately, we overflowed the little wooden rack that holds our spoons several years ago:

A pretty wooden rack for holding little silver spoons from around the world.

We have almost twice as many little spoons as will fit on the rack. So I decided that a good CNC project would be making some additional racks that will hold the additional spoons, plus any extras we acquire in the near future.


Building the Toolchain

I've been using this project as a sort of pilot for putting together an automated toolchain for my CNC. You know, draw the object in CAD, convert it to gcode, and cut on the CNC. In the past I've just used image maps as depth maps and hand-written gcode to produce things. This project seemed to have about the right level of complexity for an initial project with a new set of tools.

At first, I had already designed the rack for the spoons themselves by hand on paper, and written gcode to match. But I laid this aside and tried out several CAD tools. The CAD tool that I ended up with a decent file from in the least time was Google Sketchup, running on my Mac. Unfortunately, Sketchup doesn't write in the CAM-friendly file formats. So I pulled MeshLab, which converted a Sketchup Collabra file to STL for CAM.

close-up of the spoon rack
Close-Up of the Item that Inspired my Project


The next step was CAM. After spending over a week trying out different free CAD packages (see below for why I'm starting with no-cost software), I was getting antsy to start cutting something. After three goes with different CAM packages on three OSes, and still no results worth cutting, I just decided to pull out the gcode and give it a once-over.

GCode FTW

I did a quick third pass over my gcode program on paper, then typed it in on my EMC2 system with gedit. The EMC2 preview was, as always, very helpful. It let me catch a bogus Z-value. Once that was fixed, I plunked down a piece of MDF for the trial run and let 'er rip.

The first go at cutting my own little spoon rack.
My first go at the spoon rack's shelf, the back is another piece. But I've got an idea for improving on this...

The piece cut out very nicely. I ran it in three passes, the support for the piece was pretty minimal, so you can see where each pass cut across. A bit of sandpaper would fix this well enough.

However, I think I'd rather do the little shelf out of 1/4" stock. I used 1/2" because my prototype uses that thickness. But it's not like there's a lot of stress on the part from the spoons. So I'm going to re-build my code for a 1/4" thick piece before making the "production" units (probably three of them.) Then I may try to use the automated toolchain again for the backs of the spoon racks (all I have in gcode at this point is the little shelf.)

Why Free?
I don't have any aversion to spending money for quality software. In fact, much the opposite. However, I've already spent the money I had budgeted for the CNC. Plus I've tread on my money set aside for travel this summer because of some unexpected household expenses.

For the time being, I'm being a bit hairshirt when it comes to software.

I'm very happy with EMC2 for my CNC software at this point.

Sketchup is pretty well doing OK for me for CAD right now, though there are things I will want to do later that I'm not sure it does easily or well. When money permits, what I'd really like to do is pick up ZBrush. Hopefully within a year or so. Sooner if possible.

For CAM, I'm thinking that I'll want to pick up something like Cut3D from Vectric. It seems to have the functions I want. Cut2D is a possibility, too. I'll be doing the free trial on each in the not-too-distant future.

In the meanwhile, if you know of some free CAM software that doesn't just treat an STL object as something to be rastered over, drop me a note. I'm completely OS-agnostic. Most recently I was doing CAD in MacOS, running CAM (FreeMill, a good package but didn't do what I needed) on Windows, and I'm driving the CNC with EMC2 on Linux.

Monday, March 28, 2011

CNC Machine: Microcarve A4

I've been looking at setting up my own CNC machine for about ten years now. I've worked with CNC and CMM machines off and on since the early 80s. I remember hooking up a CP/M computer to a CMM machine, wowing the lab with its ability to automatically record measurements then produce a compliance report on each part as it was inspected. The next day we went back to doing it manually. Everyone was impressed, but they weren't prepared to add computer infrastructure to the lab at that point.

In my case, I wasn't looking to add supporting a CNC machine to my workload before now. Whenever I read the online forums for adding computer control to milling machines, or building up simple hobbyist CNCs, it looked like working on the CNC itself became the prime object of the effort, rather than using the low-cost CNC for production.

There are a lot of bits and pieces to a CNC. There's also a lot of work represented by the physical machine's construction. I'm aware of this from the professional CNCs I've seen at work. They're high precision equipment, with a team of skilled people supporting their operation. Like a machinist, a machinist's assistant, an electronics tech, a programmer at least part time, and a metrology tech or two checking up on it periodically.

As a hobbyist, I have to do bits of all their jobs, plus the jobs of the design engineers, manufacturing engineers, materials engineers, and their technicians to produce things with a home CNC. Needless to say, I won't be trying to do quite the same thing.

I've started by purchasing an existing CNC machine bed rather than trying to design and build my own. I'm also purchasing a commercial motor controller system. My engineer ego is not in the least bit challenged. My engineer superego knows well the tremendous value of the design work that's gone into the pieces. Cookbook integration is good enough for me here. It's the stuff I make with it that I'll set my ego loose on.

The machine I've purchased is a Microcarve A4. The designer did the commercial Fireball V90 previously. The Microcarve A4 is a smaller unit built for high precision. Which suits me perfectly--a specialized machine is just what I'm looking for.

The controller I've purchased is the Gecko 540. It looks like a well integrated unit with a lot of design fine-tuning in it.

Both should arrive soon, the controller (driver in CNC terms) may come tomorrow if the USPS package tracker is telling me what I think it is. I've got a computer running EMC2 that I've been learning how to use to some degree, that I'll hook up the Gecko and motors to once they're here to shake out that element.

I've got some decent software for 2.5 dimensional conversion of images and such (including the image to gcode software included with EMC2), I'm still trying out CAD packages for real 3D work and CAM programs for converting those designs to tool control instructions on the CNC machine. I want to get that all shaken out to make for as little obstruction between idea and finished part as possible.

It'll be an exciting next couple of weeks. I'm looking forward to getting things assembled, functional, calibrated, and churning out parts. With breaks for infrastructure work (like dust/chip collection and an enclosure) between production runs..

Tuesday, March 1, 2011

Model Railroading: It's Baa-aack!

Model Railroading is a hobby that's been at the edges of my life for a long time. And now it's entered from a new direction. But first to recap:

Round 1

When I was a kid I got interested in model railroading early on. As it was, I loved trains, and I lived in a train town. Even at 3, I was drawing my own trains with such detail that my mother had to look at the real thing to see what all those details were that I was drawing.

The idea of owning and running my own miniature railroad was certainly appealing.

But, we moved around a lot and model railroading was not an inexpensive hobby. I managed the next best thing in the way of hobbies: electronics. I built a crystal radio (and used it--a lot), and built circuits on those 50-in-one and 100-in-one kits.

Round 2
As a teen, I got interested again. I had some income and I got a starter set with a locomotive, some rolling stock, track, and a transformer. It was N scale, perfect for an apartment dweller. I built up a setup, some scenery, and had fun with it. But for too short a time. It was enough to get engaged, but not really to get deeply involved.

Various things got in the way. Fortunately, electronics still fit into my life as a hobby.


Round 3

I was grown, married, and had kids. What better time to start a new set-up? I still had some of my N Scale stuff. I bought some wallboard, cleared a desktop, and started work on the layout. I laid what track I had out on the board, intending to build up as I bought new parts. For now, I'd get a train going around with a couple of buildings to amuse the girls and let them see what we were up to. We managed this much, but then...

The garage where I set it up is also where we let a couple of our cats sleep at night during winter (they were outdoor cats.) They decided that the train set was "contested territory", and decided to claim it in the destructive method that male cats have. Fortunately the transformer, locomotive, and stock were all packed away. But most of the track was rendered unusable by the, um, corrosive fluids.

I planned on setting up a new layout with a cover over it. But other projects came along, and time slipped away. For about ten years...

Something New

Last night my younger daughter finished her homework, and we both had some time to kill. I fired up YouTube to watch some model-making videos. She asked to watch model railroad videos. So we watched a couple of things about making layouts. Which I roundly criticized, since I hate styrofoam and that was what was being used in these videos (yeah, I can understand why--I still hate styrofoam.)

Then she let me know she was interested in model railroading. She still remembered that short-lived setup we'd done together before the cats got to it. And she's looking for a crafty outlet. The more she learns, the more interested she gets.

I gave her the run of my small model railroading library (a collection of old N Scale and HO scale books like N Scale Primer and 101 Track Layouts). Today we stopped at Nor-Cal Train Shop after I picked her up from school so that she could see what it'd cost to get her own starter set. She talked with Jimmy there for about an hour and a half.

I guess she's interested.

He sent her home with a couple pieces of track and a couple of pieces of rolling stock to keep her inspired, as well as some magazines she's been reading all night around housework and homework. I've promised to move a file cabinet out of her bedroom that my wife and I left there after using it for a computer room years ago, she's trying to figure out how large a set up she can start with, and planning out ways to earn money to pay for the starter set so she can start operating something.

Her real interest is the modelling, though, it seems. Scenery, buildings, basically building dioramas with something that moves in them.

To tell the truth, I'm pretty surprised. This has all been rather sudden, for me. I wonder how long it's been percolating?

She seems committed. Telling her she couldn't just use my stuff, but had to buy her own hasn't deterred her. It'll be interesting to see where this goes.

Model railroading is a neat hobby. As I've learned, even if you don't end up doing much of it, the skills you learn from even doing a bit of it can take you in a lot of directions. I suppose I could say I got an early lesson in digital electronics from figuring out how to wire a reversing section in a track layout.

On top of that, I'm beginning to wonder what I could fit into a really small layout myself...with microcontrollers, of course.

Tuesday, January 25, 2011

My Students Laugh, HaHa, Laugh, at the HN Naysayers ;)

I'm gratified by the response my recent article Should I Still Learn Java? has received, especially at sites like Hacker News and DZone.

Among the comments at HN were some folks who felt that Java is a poor choice of language for beginning programmers. There were a number of reasons given, many of those reasons are pretty far removed from the beginner, I feel. Then there were some that trotted out that other old argument, the complexity of the "Hello, world!" program:

class HelloWorld{
public static void main(String[] arg){
System.out.println("Hello, world!");
}
}

It's an ugly-looking mouthful, I'll admit. But a complete obstacle to learning Java? Not even close.

If you're studying Java on your own, there's a lot in there that tends to get glossed over in texts on Java. In writing, it's hard to strike a balance between infodumps and magic code when you're trying to maintain a pace to the narrative of the book. I've broken down the elements of the basic program in several articles at my other blog A Beginning Programmer's Guide to Java, including the articles on the Basic Program Skeleton, Code Blocks, and main().

But how long does it take to cover this material in class? Can it be done without sending the students into the Land of Nod?

The Proof is In the Results

Actually, it's far easier to cover in class than it is in print. I teach the basic elements of Java to both my 6th-8th grade classes and my high school classes. Here's how things went today, in my 6th-8th grade class:

I introduced the class to what we were going to do today (write a simple program in Java, compile it and run it.) I had the students open a terminal window and a text editor then started writing out the HelloWorld program pretty much as it appears above. I explained each word as I wrote, as I do in the articles linked above.

Along the way, I got class interaction to make sure they were with me, that I wasn't just talking to the air. It gave some of them the chance to affirm their ideas about what I was telling them, others that had been a bit lost got it when we reviewed it.

I had them enter each line in their editor when I finished writing each line on the board. I explained the value of proper indentation, capitalization and the parens as part of the naming of different elements in Java (class names, method names, constructor methods, member fields.)

The class was able to anticipate the last curly brace in the program, and the lack of any indentation. It's great when they can already see where you're going.

Then I went over how to save and name the file, having them use 'pwd' in their terminal window to make sure they saved the file in that directory from the text editor. After saving, they used 'ls' to see that the file was there (one student caught an error that way.) pwd and ls were commands they were already familiar with, as well as general use of the command line.

Then I had them use 'javac' at the command line to compile the program. A few students had capitalization errors on the class name, and there were some missing semicolons. After a moment, the files had been corrected, saved, and everyone had a successful compile (we reviewed the "no news is good news" rule for the Unix command line.)

We then used 'java' to run our programs.

Elapsed time: 30 minutes.

Did Anything Stick?

Then we reviewed the program, word by word. I pointed at each word (including each part of System.out.println() ), they told me what it meant. I let each student have a go before affirming what it meant. They nailed them all, except for static. That was the only word that they were fuzzy on. In some cases they had a sense, but couldn't express it clearly. In other cases they just plain weren't sure.

So we reviewed what "static" does in the program.

Then I told them to change what the program prints, and add additional program lines to print things of their own.

They went to their editors, I hovered over. A couple of students needed reminders that the program needed to be recompiled once they'd saved an edited version.

Then they all had programs that had been customized, run with no errors.

Total elapsed class time: 40 minutes.

Then we talked about the differences between the source code and byte code files (see The Code Code), looked at the .java and .class files with 'cat' and 'strings' (a new command to them).

After looking at the .class file with 'strings', we talked about where the extra lines like '/java/io/PrintStream' came from and what they did. They nailed it, but then we've talked a lot about I/O in class.

I did a quick review of all the words in HelloWorld.java one more time, then spent the last few minutes of class covering what we'll be doing in future classes.

Finally, I asked them how complicated they thought today's lesson had been. The consensus was "pretty complicated, but not too complicated." I asked for votes for "really complicated" and got none.

Total elapsed class time: 55 minutes.

Preparation

Part of the reason for getting so much done so quickly comes from the value of face to face interaction between student and instructor. This doesn't happen with books in most circumstances.

Part of the reason for success like this comes from preparation. The students already knew the basic tools of the command line and the text editor. The commands 'javac', 'java', and 'strings' were new in this class.

The students had previously edited HTML by hand. Want to talk complicated? Try this:
<html>
<head>
<title>Hello, World!</title>
</head>
<body>
<h1>Hello, World!</h1>
<p>This is my first web page.</p>
</body>
</html>
We do that in one class in the first semester.
By the end of the class we've had time to either add images or start styling our text. Kinda helps put the whole "boilerplate code" issue of Java into perspective, doesn't it? I seldom hear it claimed that HTML is too complicated for beginners to learn.

We've also done some programming in BASIC this year. The old GWBASIC, in fact. No graphics or sound, but just some simple text and calculation programs (like an insult generator and a die roller) inside the GWBASIC interpreter environment.

I drew on all these things, as well as our other discussions about the internals of the computer system and its OS in the course of this lesson.

Will It Still Be There Next Time?

If I don't follow up with anything else, no, of course it wouldn't stick as anything other than an exposure experience. But there will be follow up.

My 6th-8th grade classes meet once a week. One week is a long time for kids at this age. My high school classes meet twice a week, for 85 minutes per class. I cover a lot more material, faster, with these students.

Based on past experiences teaching this same material, I expect most of the class to remember what the program does, and the meanings of the following words once they see the program again:

public
class
void (for some reason this one seems to stick)
System
out
println

About half the class will remember the function of the curly braces versus the parens. About half (usually the other half) will remember the capitalization rules.

One or two will really remember 'static', the rest will need a refresher on that.

Which, for students from 11 to 14 years old, with only one hour a week, is pretty darn good. When I originally designed these lessons, I expected to repeat all the material from the first lesson in a slightly different way in a second lesson to get even half the material to stick.

As it is, the second lesson usually consists of about 10 minutes of review from HelloWorld.java, then we go on to introduce the Scanner and start accepting keyboard input into our programs (see Getting Keyboard Input for Java Apps, we end up with a program pretty close to TrollTalk.java.)

Is Java Too Complicated?

What do my students say to the assertion that Java is too complicated for a beginner to learn?

They laugh at it.

People who assert that the boilerplate in a simple Java application is too much have either had a poor exposure to the language themselves (please check out my other blog at A Beginning Programmer's Guide to Java, I wrote the site just for you), or they're advanced programmers making mountains out of speed bumps as stalking-horse arguments against Java.

Java isn't simple, but it's not too complex for a beginner.

p.s.-I love Hacker News myself, and take all my students there to open it up to them.

Monday, October 4, 2010

Back on World of Warcraft

While the rest of the world is playing Starcraft II and free MMORPGs, I've just returned to World of Warcraft. Not only my own account, but three others for my family. After a two year hiatus, why am I back?

No TV

For some time now I've not had a good activity for when I'm too fried for anything serious. We don't get broadcast TV here, and satellite isn't worth the price. 300+ channels and nothing really worth watching. Normal broadcast channels cost extra. Thanks to my Congress passing bills to "protect" me, I can't get national network feeds over satellite any more, as I did about 10 years ago. Then I could watch shows I wanted to watch on my schedule, rather than being beholden to the "local" stations (the satellite companies consider Sacramento local to me, even though I'm about midway between there and Reno.)


Radio Static

Listening to radio is something I usually do while working on something else, so it's not an activity that's engaging enough when I just want mindless entertainment.


DVD and VHS Overfamiliarity

If I hadn't already watched my favorite "watch them anytime" disks and tapes to death, I suppose I could do that. There's a lot of material in Connections I/II/III, Day the Universe Changed, The Learning Company's Astronomy course, and several others. But when I get to where I can lip sync with them, it's time to find something else to do.


WoW

WoW is more fun with a group. Pick up groups aren't fun, for me. So I looked at WoW's charges with an eye toward "how does this compare to satellite TV?" I came to the conclusion that it's reasonable to spring for four accounts for the family to get my own built-in group.


My Account

I got an account about the time WoW was generally released to the public. I had some "real life" friends to play with, as well as friends who'd moved over from Everquest for the Mac. My kids played on my account when I didn't. They'd hot-seat, or I'd give play time as a reward or inducement to do homework or chores or whatever.


The Kid's Accounts

Then, as the kids got older (teens), they wanted their own accounts. I gave the green light, provided they saved enough money for their own retail box and six months of service. They both did so, and they could keep playing so long as they paid for it. After some time, they both decided they'd rather spend the money on other things. We suspended their accounts, and they went back to playing on my account.


Leaving Azeroth

Meanwhile, my various friends either left WoW or I lost track of them in real life as well as in-game. I ended up on a new server in a small casual guild. But I was mostly playing solo, I was losing interest, and the guild was dissolving. The community on that server just never really gelled. I considered moving to another server, but various other things were keeping me from playing much, so I deactivated the account about 18 months ago.

Return to Azeroth

Now I'm back. I reactivated my account, and had my daughters reactivate theirs. This time it's on my dime, so long as they keep up with homework and housework. Plus I got a fourth account. It's for my wife, who never played before.


Non-Gamer

My wife was once a non-gamer. But over the last few years she's enjoyed joining games--due in large part to our daughters. She's played tabletop RPGs like Traveller and Pathfinder and enjoyed them. We also play a lot of board games like Cosmic Encounter, Quirks, and Settlers of Cataan. It's a big change. I couldn't get her to play games before the kids came along.

Now we've got her on WoW with us. We played for about 3 hours this last weekend and had a good time. It was challenging for my wife, she's not familiar with computer RPGs, but everyone was patient. We had her roll up a hunter since they're pretty easy to play and a forgiving class. She managed to learn the basic controls, get around most of the newbie zone without getting too terribly lost, and made level 8 in her first session. She professes to have had a really good time.


Time Filler

Meanwhile, I've got a fried-brain spare time activity. This afternoon my youngest got through her homework quickly and did several chores--unasked!--so that she could play and get a character to one of the special little seasonal activities in WoW before it goes away for another year. I'll still have time for my hobbies--WoW doesn't replace actual things like electronics and telescope making for me. But when I'm not up for those, I won't be casting around aimlessly as much.

We won't be able to coordinate family schedules well enough to play more than perhaps once a week all together, but that will be enough. We have other family activities we do as well, like reading, that take some of that time. Right now we're working our way through Watership Down. Only I have read it before. We read for about 45 minutes this weekend before we jumped on to WoW. If we manage as much as a couple of hours a week together on WoW, that' good enough for me to justify the accounts.

Thursday, September 30, 2010

An Update to the First Heavier Than Air Flying Machine

In July 1869, when Wilbur Wright was two years old, and Orville was as yet unborn, a heavier than air flying machine successfully flew two half-mile circles in a tethered flight test. The craft was known as the Avitor.

Lost in Time

The Avitor has been largely forgotten. It was what we'd call a hybrid vehicle today, very unlike the craft later flown by the Wright Brothers. The Avitor flew well and successfully, but an accident with a prototype resulted in its development being halted prematurely. If development had continued, it's very likely that modern aircraft would be very different from what they are today.

Many of the design concepts of the Avitor are being rediscovered and applied to new aircraft development. Among these are aerodynamic lift from the aircraft body (Blended Wing-Body aircraft, today) and hybrid lift (lift from a combination of buoyancy, power, and aerodynamics.)

The Past is the Future

The closest thing to a modern day Avitor is currently in development by Northrop Grumman. It's a vehicle they call the Long Endurance Multi-Intelligence Vehicle, or LERV. The name describes its use, something that can hang in the sky for long periods of time keeping an eye on things. The present program's goal is to develop a surveillance platform for use in Afghanistan. It is supposed to go there for operation testing within a year. First flight is to come this summer.

After a Brief 150 year Hiatus, the Return of Avitor?

There are other potential applications for this craft that Northrop intends to work toward. Perhaps by the Sesquicentennial of the Avitor's demonstration flight, we'll have our own 21st century Avitors roaming the skies.

Related Links:

Thursday, August 12, 2010

Class Projects: The Good, the Bad, and the Future Value

In my prior post about the student projects posted from Cornell's ECE 4760 program, I mentioned how nice it is, as a teacher, to see these reports and get a sense of how what I do with my classes compares. Class projects have their limitations, but they're tremendously valuable for the students.

The Good Parts:

  • Allows students to develop and build on their own ideas.
  • Lets them exercise the knowledge they've gained.
  • Gives opportunities to discover gaps in their knowledge.
  • Introduces time and resource constraints to practical work.
  • Teaches teamwork skills.
  • Opens up "teachable moments" not accessible through regular classwork.

The (sort of) Bad Parts:

  • Time and resources are never sufficient.
  • Substantial amounts of effort can be expended on fruitless effort.
  • Non-self starters can falter easily.
  • Much of the class grade rests on work patterns with which many students are unskilled.
  • Teams don't always gel.

I say "sort of" bad, because these are the same sorts of problems that are encountered outside the classroom. In the classroom, the cost of failure is a less than sterling grade--and not even necessarily that. Failure in the classroom is not the same as commercial failure. A non-working project does not necessarily result in a poor grade (though one that works as planned will usually garner a better grade.) The classroom is a good place to be pushed and challenged.

The Future Value:

  • Lessons learned when doing projects are often more valuable outside the classroom, in terms of time spent, than much else that is done in the classroom.
  • Recognition of the value of people and communications skills alongside technical skills.
  • Understanding that technical work must be accomplished to have success, even in the face of uncertainty.
  • Learning to build on strengths, rather than be halted by shortcomings.
  • Experiencing how great the gap is between a technically successful demonstration and a finished product.

The road to a finished product is seldom traveled to its end in a class project. There just isn't time in most class schedules, even if the students spend time outside class working on the project. However, a sense of the length of that road is obtained, I find. And a new appreciation for the effort that goes into the "second 90%" of work on a product is developed.

In my class, the teams get a chance to see what happens when actual users lay hands on the project results as well. The developers of a program have to watch silently as members of another team try to use their product. They get to learn more in 20 minutes than I could give them in hours of lecture.

The best part of class projects, in my opinion? It's a lot more fun than limiting a class to assigned classwork. I try to spend as little time on teaching the necessary material as possible before setting my students loose to discover on their own. It's something that not only do I enjoy more, but my students, so long as they keep the project in perspective, can enjoy a lot more than assigned work. It's very jarring for some to be set loose this way, but once they're helped over the hump everyone has a really good time with it.

Plus, they get to have an actual thing out there with their name on it. Something they can point to and say

"I did that."

Tuesday, August 10, 2010

Cornell University's AVR Projects: Hobby Inspiration, Teaching Inspiration

The ECE 4760 class at Cornell University posts their student projects for the class. There are several years' worth of class projects there, of all sorts. The class uses the AVR microcontroller, a very nice platform that I enjoy using both professionally and personally.

For personal use, I really like the Cornell site since it not only gives me ideas, but it lets me see implementations others have made (or attempted) of ideas I have for my own projects. The reports are usually sufficiently detailed that I can either replicate or build on the students' solutions to particular problems.

An AVR STK 500 development board in a custom case

Teaching Inspiration
I also find the site very inspirational as a teacher. Seeing the sort of results, rescopings, and occasional failures of the class projects undertaken by the students in this class is very valuable to me. I end my high school computer class with a project each year. My students go through the same set of compromises, adjustments, and triumphs as the students in the Cornell ECE 4760 class. While I know it's normal, it's also reassuring to see the "raw data" from another class in the form of the students' reports on their projects. It gives me a sense of where other instructors are in the scale of setting challenges before their students versus the results. Clearly the Cornell class is a challenging and dynamic class. The projects they undertake are exciting, and the results, even when less than hoped for, are exciting as well.

Plus, it makes me feel good to see that the much lower level and smaller scale challenges I present my students produce similar results. I can only hope that some of them get to go on to experience something like the ECE 4760 class in the future, and that I've helped prepare them for such things.

Thursday, October 1, 2009

Why I Didn't Renew My Subscription

This year I've allowed the subscriptions to expire on about half the magazines I used to get. I just got yet another "last issue" begging me to re-subscribe for one of them. My reasons for dropping the mags are not economic--downturn or no, I still have as many dollars to spend on magazines as I had last year. Perhaps even more. I've got magazine dollars I'm not spending now that I'd really like to find a home for, but you, the magazine publishers and editors, aren't giving me any choices that I like.

So let me tell you why I've dropped your magazines:

Not enough content.

Yes, to save money you've cut your page counts. However, you all tell me about your fine web sites with extended coverage and deeper insights.

So, following this logic, I should be happy to go to the restaurant, find half what I expect on my plate, but be pleased that they feature a wonderful web site telling me more about what they serve? Not likely.

I subscribed to almost 30 magazines last year. I'm down to about a dozen now. I don't visit the websites for any of them on a regular basis. None of them have a web site that's worth it. Besides, I don't subscribe to a magazine to get a web site. There's more web out there than I've got time to look at, available for free. And frankly, the magazine websites suck. There isn't one that draws me back.

The websites I visit repeatedly are web sites first. There's no print edition. I don't pay them money to view the sites, since I have to pay to get access to it (my ISP bills, my computer bills, my software bills.) The magazine websites that I'm not visiting regularly are poorly organized, have balky login processes, are overrun with ad content (even in the paid section) and generally are more trouble and less readable than the web sites that are first and foremost websites. Besides, when I'm paying for a magazine I'm paying you to put something on paper and deliver it to my mailbox. I want something I can hold in my hands and read without a computer, put on a shelf, tear pages out of for my coworkers, clip ads from for my contact files, or lay in a stack folded open to an article I plan to read later.

If I wanted to pay for a web site, there are some excellent ones out there that beat the tar out of any magazine's web site I've ever seen.

So, magazine folks, when you're thinking about cutting page count to cut costs, be aware that you're reducing the value of the only part of your product for which I'll pay. I pay handsomely for those who deliver what I do want, however. I have several subscriptions that cost significantly more than the industry norm. I pay it because they give me what I want. A magazine with plenty of content on paper. I subscribe to several magazines that are delivered from overseas. I put up with the delayed delivery schedule and extra mailing costs because nobody in North America delivers what they deliver.

This year, none of the magazines I dropped got dropped because of a shift in the editorial content. That's happened in the past. One magazine that I've been reading for over thirty years is walking the edge right now--their current leadership has introduced a political slant into a magazine that has been blessedly apolitical in the past.

Another magazine to which I was a charter subscriber has been trying to sell me on their wonderful new web site with all sorts of information that they aren't giving me in print. They're on the watch list, too. I'd hate to drop them, but if they don't put it in the magazine, it means nothing to me. I hope their staff figures this out, pronto. I don't buy magazines to get teaser ads for web content. If you're telling me about all the fine stuff that's not in the magazine, you're just telling me how valueless the print magazine is, and that's the only product you have that I'll pay for.

I'll pull your advertiser's ads to save their URLs for later. I won't do the same to read your articles.

I don't want your email newsletter. I couldn't care less about your web site. If you want to sell me a magazine, you'd better make it, and it alone, a product worth my time and money. Nothing else is going to get my dollars out of my wallet and into yours.

Controlled Circulation Magazines

Those of you who send me magazines for free aren't getting off easy, either. I've dropped about half of your subscriptions as well. Some of you are sending me your magazine anyway, and I roundfile it as soon as it arrives.

Cudos to one magazine for rediscovering their purpose, however. Design News magazine was a mainstay for me through the 80's. It has been less essential to me for the past 15 years or so, however, as it seemed to forget that it was an engineering magazine. I have let my subscription lapse during that time. Lately, however, I've been impressed with a turn-around I've seen, particularly in the most recent issue I read. They seem to have found out that they can print detailed technical articles to help engineers with actual design issues. I'm very happy with what I've seen and hope to see more of it.

The magazines that are most useful get read the earliest and most, and those are the magazines where I see the ads. Those are the ads that have a chance at telling me about a product that I can use, or research and recommend to my customers. In my business, I only buy in ones and twos. My customers buy by the thousands or more when they incorporate my designs into their products.

Now back to those magazines I'm not getting. First, there's that content thing. What you print needs to be something useful to me. Not a puff piece that's about as useful as what I find in an in-flight magazine. I want specifics, I want a voice of experience. I don't care if the author is with the manufacturer, some of the best information I get comes from such sources. Naturally I expect it to come from a source within the company that won't have to ask for help with long technical terms.

The second most popular reason for me not getting a controlled circulation magazine is that you don't send it to me when I sign up for it, and supposedly been approved. There are several that I'm getting emails about telling me I should be getting the mag, that I'm someone they want to get their mag, but when I sign up nothing shows up in my mailbox. There are several I&C and engineering mags that keep marketing me but, when I fill out the form, get the happy web page telling me I now have a sub, I never see a mag. But I do get more emails telling me I ought to sign up for a subscription. Time for your left hand to meet the right, people. That's the one that's cutting your own throats, by the way.

To all magazines, I can't emphasize enough:

Content, content, content. On Paper. If it's not in the magazine it doesn't exist.

Subscription based mags: Raise your rates if you have to--give me something worth money and I will pay for it.

Controlled Circulation: If the content is there, I and others like me will be, too. We'll be selling your advertiser's products when we put them in our designs.

Need a way to save money? Slash your web staff and server budget. All you need on the web is an introduction to your magazine and a subscription form. An article index can be useful sometimes. Anything else is wasted. Put the savings toward more paper.