4 November 2008

Why I switched to the OLPC—and why I dropped it

Not Free at Any Price

Richard Stallman blames Windows for the failure of the OLPC project.

Teaching children to use Windows is like teaching them to smoke tobacco—in a world where only one company sells tobacco.

I love RMS and his cranky militant F/OSS-ness, but he's tragically off base in his assertion that OLPC retreat from free software into Windows is the main culprit.

Granted, I share his disdain for proprietary computing platforms (in principle, as I must confess that I'm writing this on a machine running Mac OS X), and I too was enthused about OLPC — I took part in the buy one, give one promotion.

However, the lords of OLPC regrettable decision to embrace Windows falls far down on the list of snafus that doomed this worthy project. From my purchase encounter and brief usage trial (I donated the machine I got to a missionary who pledged to take my gift to Africa with her, but I am not certain where it ultimately ended up), here are some bigger reasons for its failure:

  1. Dreadful initial box unpacking experience — worse than Windows and definitely in total contrast to the Apple experience. No manual is provided, only a paper sleeve that instructs the owner to view an online manual. But that would not be so awful if at least once you powered on the machine for the first time, you could easily load up a 1-2-3 check sheet on how to get up and running with minimal fanfare.
  2. Out of the box crippled WiFi — in order to get the wireless internet card to work with most major access point devices, one needed to create a shell script and execute to have wireless work. Not a major issue for a geek handy with CLI and already in possession of an internet connection. But far from user friendly.
  3. Limited availability — I realize the target market was disadvantaged youth in the developing world, but OLPC would have gotten a much bigger boost if instead buy one, give one, they enacted a buy one, give one (foreign) and give one (domestic). As it was, much of the momentum the project garnered was through last Christmas season buy one, give one. After that campaign, OLPC faded into obscurity.
  4. Flawed UI — a lot of criticism has been heaped upon the Sugar UI, especially by the design savvy crowd, but it would have worked if the major programs (a) actually all worked and (b) the menu list was shortened so that user could actually easily discern what the button functions were. Instead, it was a smorgasbord of mystery meat icons. After receiving my machine last Christmas, I lent it to a work mate who let his young children play on it. They played with it for about 5 minutes, and then never touched it again. They did not get it. While it's purely anecdotal, I cannot imagine crafting a machine that would not arouse curiosity from a kid. Again, the target demographic for it is kids who are not blessed with an abundance of other electronic gadgetry — Americans spoiled with Gameboys, Nintendo Wii, etc… no doubt have little patience for such a device whereas it would be the sole computing device for an African child.

Even though take one was deficient in many respects, I had hoped version 2.0+ would address the shortcomings and continue embrace of F/OSS platform. Instead, it appears that OLPC is settling to be a crappier facsimile of its competitor suite of like product.

24 June 2008

When did you first realize you could get along with a computer?

You never forget your first time

In 1982, on a DEC VAX after I switched majors and began in a Computer Science coursework curriculum circuit. FORTRAN was my first programming language learned, though a heavier dose of PASCAL soon followed. PCs as such existed but were rare and nothing more than expensive and extravagant toys at that time. One of the fellows on my dorm hall did own one and he coded a simple BASIC two player football simulation game that was purely based on random numbers and no skill whatsoever, but still a crowd would cluster around him as he keyed in the plays and verbally announce each result.

My first "aha" moment came when my "Intro to Programming and Algorithms" professor presented the class with variable swap code (and yes, those were the exact variable names he used) and asked if it was correct.

    

    BARF = 47
    BEER = 2
    BARF = BEER
    BEER = BARF

Nowdays, all the nifty newfangled languages offer multiple assignment (i.e., BARF, BEER = BEER, BARF), thus rendering this a moot point, but at the time, the few folks in the class that had previous professional (and at that time, anyone who had programmed had "professional" experience) smugly grinned, while everbody else quickly assented incorrectly. And after that moment I was hooked — it was like a window had been opened where you could see axioms of logic instantly reconciled or shattered.

Soon after, tinkering with Conway's Game of Life, simple parlor games like video poker, blackjack, craps and my own baseball simulations, my path to programmer geekdom was sealed.

A few years later, mid 1980s, I worked as a computer operator and then "microlab monitor". The computer operator position meant dealing with line printers attached via telephone modems and bailing out infinite loop program executions due to idiotic instructors. The following year (or semester, memories of distant days grow hazier with each passing season ;)), I secured duty in the "Microlab" where I got to play with a brand new set of IBM XT machines, that were added to an existing row of DEC Rainbow CPM powered machines. And the shock of WordPerfect version 2, that came on multiple 360K floppy discs.

I did not own a PC until the end of 1990, as until then, they seemed underpowered toys at too high a cost. At least compared to the mainframe machines I worked on.

I didn't jump into to the internet programming deal until late 1990s, as hitherto, had been employed as mainframe application programmer, by that time, predominately on IBM MVS platforms, hacking COBOL, REXX, Assembler, JCL, CLIST, TSO Dialog Manager, Easytrieve, etc.… I really wanted to do web programming and plunged into the Unix realm, learning Perl and shell scripting (which was joyous after all the CLIST and REXX work, the equivalent Perl code size was geometrically smaller).

This moment in dinosaur computing is brought to you by AutoCad and Lotus 123…

13 January 2008

NetNewsWire

My infatuation with RSS newsreaders has ebbed and flowed over the years. At each successive stage of RSS discovery, I eagerly latched on and proclaimed how this was “the greatest thing in the world”. In the very beginning, I coded simple scripts invoked via the old Unix crontab facility, ala server side. It worked well (though not updating now, view an example of homebrew RSS reader output here, but I never made it to step where I moved the adding and removing of feed URLs from a text configuration file on the server to a simple web form. Because before I got there, I was stymied by, at that time, a lack of directory resources where such available RSS links were cataloged. So then, my little project transformed into an ill fated attempt at building an RSS directory service, the allure of which quickly faded as I drifted into programming pursuits more becoming to me. Also, coming onto the market, where some client applications that did a snappy job, and I started using one that I believe was a precursor to the current NetNewsWire incantation.

It was a Mac application and it worked decent enough. Except there were some shortcomings:

  • Default setup broke feeds down into categories — That sounds good, but in practice, I prefer to throw them all in the hopper and let me pull them out as I like. It also clutters up the application space. I realize for some, this is the way to be, but it’s not my modus operandi.

  • Unable to dynamically order — Sometimes I want to view my list of feeds in alphabetical order, sometimes by order of “last updated”.

  • Missing search — When you have hundreds, if not thousands, of feeds, ability to search for that one article you think you scanned, but now wish to study further, is essential.

  • Support for Atom — Specifically, for blogger.com posts. I believe it was a feature that was offered, but only for paying customers, not the free reader offered.

Plus, the final factor that ended my relationship with the forementioned RSS software was its inability to handle large volumes of data gracefully. Just look at my del.icio.us blog links list — there are nearly 1,300 entries in there.

Then Google Reader was born. Upon discovery, I again was enthralled. As I may work with a number of computing machines during a given day (or week), the attraction of being able to access the same repository from distinct machines lured me in. Logging my initial thoughts on my Google Reader affair, you can see that despite some drawbacks, I was highly optimistic about Google Reader. The honeymoon didn’t last long, as soon thereafter, severe issues surfaced with the Google RSS web application:

  • It choked on a early and often basis — It just didn’t work. It would constantly “hang” and a familiar screen site would be the spinning beach ball. Or it would work partially, allowing me to peruse current feed threads, but spit up violently when I tried to access via total subscription list. And this occurrence was a frequent happenstance at a total of 200.

  • Clunky UI — Delighted about keyboard access but quite puzzled why simple paging (or any little clicky) was so bloat laden. I mean, RSS is simply a text file, minus a whole lot of fat, which is what the point of RSS is really all about. Just the meat, no trimmings or desert or fancy silverware or napkins or saying grace.

  • Limited order options — Even for a web application, should be a no brainer to allow me easily sort the feeds in whatever manner I wish. Additionally, adding a new feed was not as easy as it should have been. Especially for a web application.

So I trudged along and occasionally only popped in to my Google Reader, mostly if my internet experience was iPhone originated.

Until last week, when I caught the news about NetNewsWire. Skeptical, but nevertheless, I downloaded and installed on multiple machines. Decided to give it a whirl, and here I can report that this is a software work of excellence. As I’ve wasted enough words on preliminaries, let me march right to the meat of the matter, and inform you why you should use NetNewsWire (or FeedDemon if you are an unfortunate Windows user):


» read more

9 December 2007

Clearly, the XO’s mission has sailed over these people’s heads like a 747

If you're not familiar with the OLPC (One Laptop per Child) program it is a mission of a non-profit organization to develop a low cost laptop for the world's children.

Some people just don't get it, though.

So what to do? Let's give these kids these little green computers. That will do it! That will solve the poverty problem and everything else, for that matter. Does anyone but me see this as an insulting "let them eat cake" sort of message to the world's poor?

"Sir, our village has no water!" "Jenkins, get these people some glassware!"

But, wait. Think of how cool it would be! Think of how many families will get to experience the friendly spam-ridden Information Super Ad-way laced with Nigerian scams, hoaxes, porn, blogs, wikis, spam, urban folklore, misinformation, sites selling junk from China, bomb-making instructions, jihad initiatives, communist propaganda, Nazi propaganda, exhortations, movie clips of cats playing the piano, advertising, advertising, and more advertising. Do you now feel better about the world's problems, knowing that some poor tribesman's child has a laptop? What African kid doesn't want access to Slashdot?

It's really not about giving away computers. It is an effort to change the world by placing powerful tools in the hands of the "least of these". Yes, the poverty stricken need food, but more important they need to learn how to secure resources, gain knowledge, apply it, build community and nurture mastermind alliances.

Giving food is swell and saves lives, but a permanent resolution lies in addressing the social institutions that are failing their people. Knowledge and education pave the way to defining such entities and provide for greater justice.

I haven't put my hands on an XO laptop but from my research it looks like a super machine for its intended audience.

  • Durable, able to withstand elemental rigors like dropping, dust, and water.
  • Efficient power supply usage and longer life battery.
  • Readable in sunlight, and high DPI (1200 x 900 pixels on a 7.5 inch screen).
  • Not for running Windows and Microsoft Office to crank out spreadsheets. Instead, its Linux OS is intended for creation and play — programming environments, multimedia programs, music programs, painting programs, etc.…
  • Sadly, Dvorak plays the Luddite card, decrying the internet as the bane of existence, while ironically writing this drivel for a computer magazine (which is evolving into a e-zine).

The XO has been in the crosshairs of more than just cranky internet curmudgeons. Major players like Intel and Microsoft have also geared up the attack as they view global markets of unserved computer users as their domain. Intel embarked upon their own "emerging market" solution. And Microsoft wants to mess with the OLPC XO to make it Windows friendly.

Read a more balanced review of the XO.

The Give One, Get One promotion, where you can donate a laptop to child in a developing nation and receive one for a child here runs until December 31.

8 February 2007

Teaching the Machine

And the machine is us.

Extraordinary.

15 September 2006

Johnny can so program

Yours truly tussles with esteemed science fiction author David Brin over honest criticism about a Salon published article titled Why Johnny can't code. So much so that Brin ends up resorting to namecalling and tossing a hussy fit, declaring me unwelcome there. Still, I am a fan of Brin's writings, even if he begrudges me, I just think he's veered off into a funk, and extrapolates an anecdotal tale into a broad assertion that's simply not true. At least in this scientific discipline and for this poor article.

Bemonaning the fact the archaic BASIC language no longer comes with the computer, Brin contends that today there's no easy way for kids to get hooked on programming.

For three years -- ever since my son Ben was in fifth grade -- he and I have engaged in a quixotic but determined quest: We've searched for a simple and straightforward way to get the introductory programming language BASIC to run on either my Mac or my PC.

Why on Earth would we want to do that, in an era of glossy animation-rendering engines, game-design ogres and sophisticated avatar worlds? Because if you want to give young students a grounding in how computers actually work, there's still nothing better than a little experience at line-by-line programming.

Only, quietly and without fanfare, or even any comment or notice by software pundits, we have drifted into a situation where almost none of the millions of personal computers in America offers a line-programming language simple enough for kids to pick up fast. Not even the one that was a software lingua franca on nearly all machines, only a decade or so ago. And that is not only a problem for Ben and me; it is a problem for our nation and civilization.

Whoa, an "epic problem" because of the absence of "line-by-line" programming language?

Brin harkens back to an earlier time, when tinkering with line-by-line programming was a large part of the reason why a computer was purchased. That the buyer was a financially endowed nerd already passionately motivated and inclined to what was, for that time, a solely hobbyist pursuit. Today, the price of computer hardware has plummeted, making a PC purchase within reach of nearly all. And the entry level barrier for youth to enter into the discipline of programming computing machines has never been lower.

  • As stated, the cost of machines that 20+ years ago would preclude ownership for many kids, is now, in most all cases, a total non factor.

  • In the good old days of BASIC PEEK and POKE, your only link to programming prowess was a geeky magazine article, or provided by a fellow nerd friend. There were a few books, but rare. No googling for help, no vast internet repostiory of tutorials and how-to guides that exist in 2006, however.

  • The machines of yester-lore were no more than glorified calculators. In fact, the machines that sit on our desktop (and in our laps) have much more in common with old school mainframe computers than the early IBM/PC and Apple computers. Point is, running a comptuer today, in many ways requires a whole heap more of

  • Apple Macs and Linux machines all come with all the programming tools a budding programmer could wish for. Even Windows machines, though less endowed, come packaged with C# programming environment.

  • But all that really is needed to write programs and see the output of basic algorithms is a web browser and a text editor. Both of these come standard with any machine today.

There are still BASIC programs in textbooks? Brin is dismayed over his the internet choir's emphasis on his repeated references to BASIC, but there are at least 30+ mentions of BASIC in his article.

Yes, and the problem, according to Brin, isn't the textbook publishers who add program exercises in an archaic language that some computer science luminaries consider to be "life corrupting". it's Microsoft's fault for not maintaining lingua franca on its machines!

Not all of Brin's missive is misguided. I understand his sentiment, but he laments for an age that has come pass, and because of his own nostalgic remembrance, distorts reality. The computing landscape has indeed changed, but you don't have to run BASIC programs to gain an understanding of how a computer works. BASIC is no different than any of the newfangled scripting languages. Furthermore, the fundamental model of "how a computer works" is radically different today — the simplistic model Brin details is less instructive than the state of the computer circa 2006.

But while Brin bemoans the current status of programming tools for aspiring programmers, here is what is happening in the golden age of programming.

  • Millions are busy creating home pages, scripting game macros, writing Microsoft Office VB scripts to access databases and perform Excel functions.

  • Others are creating web applications or writing social networking applications such as MySpace.

  • Millions are downloading and installing free and open source (F/OSS) software, including the various Linux and FreeBSD distributions. And by doing so, are receiving far greater instructive benefit by learning how a modern day computer works, encountering firsthand, the challenging experience of installing, configuring, maintaining and even scripting/programming in nearly all the layers of software and services that make up a contemporary computer system.

Even if Brin's claims have merit, the contention that its a "problem for our nation and civilization" is unbelievably far fetched. The discipline of computer programming differs from other fields of science — most programmers are, in large part, self taught, and gravitate to the field, based on their inkling and proficiency in being able to tell the computer what to do. Years ago, when the government went recruting programmers, they attempted over and over, to discover who would make a good programmer. Chess wizards, mathmeticians, bookkeepers, etc... were all once viewed as being optimal programmer candidates. But it was discovered that there was no common theme, and good to great programmers came from all walks of life, that a small segment of folks just had a knack for it. Even back when I went to school (I changed majors halfway through), it was expressed by professors that they viewed their job as weeding out those who won't cut it, who are pursuing the field for the money or because they think they'll dig it. And just examine the successful programmers — it's quite evident formal schooling and/or training is not necessary to ordain a great programmer. Therefore, even if all of the other points Brin contain some merit, that "computing is not as easy" without a "lingua franca", there are those that still will be drawn to the field. Incidentally, Steve Jobs and Bill Gates are both college dropouts.

Perhaps I am being a tad bit harsh on Brin's essay, but the endless parade of "Why Johnny can't program" is so irksome when the question truly is Why Johnny won't program. Johnny can so program, but if the IT industry is facing a dilemma in the United States, it has more to do with the wholesale corporate sellout of programmers and engineers where American programmers and engineers are replaced in favor of cheaper non-immigrant visa workers and/or offshore workers.

3 July 2006

It's not a truck. It's a series of tubes.

Senator Ted Stevens with a jaw dropping speech on how the internet works, in defense of his vote against net neutrality.

Arthur Clarke once said: any sufficiently advanced technology is indistinguishable from magic, and indeed, our senators conceive of the internet as a mysterious metaphysical entity. Normally, I would just discard the ramblings of an uninformed U.S. senator on the topic, but that senator happens to be the chairman of the Committee on Commerce, Science and Transportation.

Yes, it's a gross misunderstanding of what the internet is. Again, this is serious business, as the founder of the web, Tim Berners-Lee has detailed.

Net Neutrality is NOT asking for the internet for free.

Net Neutrality is NOT saying that one shouldn't pay more money for high quality of service. We always have, and we always will.

There have been suggestions that we don't need legislation because we haven't had it. These are nonsense, because in fact we have had net neutrality in the past -- it is only recently that real explicit threats have occurred.

Control of information is hugely powerful. In the US, the threat is that companies control what I can access for commercial reasons. (In China, control is by the government for political reasons.) There is a very strong short-term incentive for a company to grab control of TV distribution over the Internet even though it is against the long-term interests of the industry.

Yes, regulation to keep the Internet open is regulation. And mostly, the Internet thrives on lack of regulation. But some basic values have to be preserved. For example, the market system depends on the rule that you can't photocopy money. Democracy depends on freedom of speech. Freedom of connection, with any application, to any party, is the fundamental social basis of the Internet, and, now, the society based on it.

Join the fight for internet freedom.