The Fate of Cursive in Florida

As long time readers know, I have a continuing interest in the state of cursive handwriting. See here, here, here, here, and here for some of my thoughts on the matter. One of the continuing threads in those posts is that cursive is dying a well-deserved death, that many school systems no longer bother teaching it, and that those still hanging on have deemphasized it.

In my state of Florida, for example, some counties have discontinued teaching cursive while others continue teaching it but spend much less time on it than before. Now Florida officials are considering eliminating it statewide. The proximate reason is that the new federal “common core” curriculum omits it. There’s some residual Florida crankiness about the matter and some want to continue teaching cursive if only to show that Florida won’t be pushed around by the Feds.

At least that’s a new reason for refusing to let cursive die. As I discuss in the posts linked above, none of the reasons given for maintaining the teaching of cursive make much sense and are mostly emotional appeals to “the way things were done when I was a kid.” If you want to get a feeling for the tenor of the arguments in favor of cursive, you need look no further than the remarks of state board member John Colon of Manatee County who supports retaining cursive: “Sooner or later people do run out of batteries, you know.” But not, apparently, non sequiturs.

Posted in General | 3 Comments

More Peeks at Emacs 24.4

Over at Emacs Redux, the ever informative Bozhidar Batsov has a couple more posts up in his series on the upcoming Emacs 24.4 release. The first concerns new string manipulation functions. It’s odd that Emacs has been historically deficient in this area. Magnar Sveen’s excellent s.el has helped fill in the gap and is still more comprehensive than the functions added to the Emacs core but it’s encouraging that new string functions are being included. I hope we see a unification down the road.

Batsov’s second post discusses a couple of additions to the hash table functions. These functions, hash-table-keys and hash-table-values, returns lists of the keys and values in a given hash table. As with Common Lisp, you could always get at these using the maphash function but it’s nice to have some ready made functions. A lot of Elisp functions take a list as input and these functions are a handy way of getting lists of hash keys or values directly without an intermediate step involving maphash.

As with Batsov’s previous posts, these make me look forward to the new Emacs release. We’re already in feature freeze and should be seeing the first release candidate shortly.

Posted in General | Tagged | 1 Comment

SBCL 1.1.15 Released

Steel-Bank Common Lisp 1.1.15 just got released. As usual, it built and installed without incident on both my Macs.

This release brings a new register allocation algorithm, some optimizations that increase the speed of make-array under certain circumstances, some enhancements, and a few bug fixes. Every month the SBCL team releases a new version with improvements and bug fixes. That’s a remarkable achievement and as I’ve said before, Lispers owe them a debt of gratitude.

If you’d like to get started with Lisp, I can’t recommend the SBCL/Emacs/Slime combination more. It’s hard not to grin like a fool when you’re using the environment. It’s just so much fun.

Posted in Programming | Tagged , , | Leave a comment

The Dangers of the Digital Life

I’ve written before about how I’ve embraced the digital life and pretty much given up dealing with paper, pens, and all the rest of the traditional record keeping methods. Almost everything happens on-line and whatever paper documents I get are scanned and saved to digital files. It’s tremendously liberating: no huge file cabinets bursting with impossible-to-find papers, no documents piling up waiting to be filed (probably in the wrong place), no searching through paper archives when the IRS or some other entity comes calling. It’s all there in my digital archive and easily accessed when needed.

It seems like a no lose plan. All your data instantly available with a minimum of effort. But what if those digital files were lost? Or stolen? Well, that would be disaster, of course, but, after all, those paper files could also be lost or stolen. Except that they’re not nearly as likely to be. Sure, the floods could come but that’s pretty unlikely and no one is going to bother stealing your huge filing cabinet. But suppose someone stole your computer that contained those digital records? Not nearly so unlikely.

Here’s a story of how that actually happened. The entire digital life and business records of someone whose laptop was stolen gone in an instant. The story is horrifying. An entrepreneur working all over the world returns to the safety of his home only to have all his electronics stolen. Everything, business records, copies of his passport, bitcoin wallet, password manager, and everything else were in someone else’s hands.

In this case the victim spent 12 hours changing all his account logins. That’s bad enough but what about all that lost information? In this case, the victim had a series of old backups so only his most recent information was lost. How can we avoid these problems? Read the post at the link for some ideas. The most important of those are to encrypt you data and have a robust backup plan that ensures your backups are never more than a day old.

If you have those precautions in place, loss of your computer will be annoying but not disastrous. There are plenty of services that will automatically backup and encrypt your data. It’s just asking for trouble not to use one. Read the post to see what can happen and what you can do to prevent it.

Posted in General | Tagged | Leave a comment

OS Security Appraisals

The United Kingdom’s CESG has published an appraisal the security of various operating systems. The TL;DR is that Ubuntu Linux is the “most secure” but Ubuntu is probably a proxy for Linux (no other Linux distros were profiled). Happily, the CESG analysis was a little more nuanced than “the most secure OS is…” They looked at several aspects of the OS and rated them as “significant risk,” “some concerns,” and “no risk.” The summary is useful no matter what OS you’re using.

Even more useful are links to a discussion, for each OS, of every aspect in the rating. This allows you to understand what the vulnerabilities for your OS are and what you should do to address them. Even if you’re not the type of person who cares about the relative standing of the various OS’s, you’ll want to know how your OS stands up and what you need to do to make it more secure.

Posted in General | Tagged | Leave a comment

An Overview of C

I spent so many years writing C code that I still tend to “think” in C when considering an algorithm. That’s true even when, as is mostly the case now, I’m going to write the algorithm in Lisp. A lot of that has to do with the fact that C is basically a universal assembly language. For example, when considering alternative Lisp strategies, I tend to think about the corresponding C code because it helps me understand what the machine will do for a given piece of code.

Time marches on, though, and many younger developers are unfamiliar with C—their experience is entirely with higher level languages such as Ruby, Python, or Java. Those languages are fine and, for most uses, a better solution than C. Still, those higher level languages do nothing to help you understand what the machine is actually doing. Even if you seldom use it, C is worth knowing because it helps you reason about what a given piece of code is actually going to do and how much it will cost in memory or time.

If you’re a programmer whose experience is restricted to languages like Ruby, Python, or Java and would like to learn some C—if only to help you understand what’s going on under the hood—Simon Tatham has a nice overview of C features and idiosyncrasies that may seem confusing as you dig into C. His purpose is not to teach you C but to give you a little context so you can understand why C is the way it is.

I used to say that everyone should learn assembly language so that they can understand what the machine is actually doing and how it is doing it. That ship has undoubtedly sailed but I do think having a working knowledge of C is useful for the same reasons. Read Tatham’s post for an idea of what I’m talking about. If you want to be the best possible developer, you have to have an idea of what’s happening on the metal.

Posted in Programming | Tagged | Leave a comment

Not Just Illegal, Criminal

Back in August, I wrote a post about Jennifer Granick’s outstanding article, My Dinner With NSA Director Keith Alexander, that appeared in Forbes. Now Granick is back with another great article that discusses the recent Privacy and Civil Liberties Oversight Board report on the NSA’s widespread surveillance. That report, as you’ve probably heard, concluded that the mass accumulation of telephone metadata was illegal.

Granick makes two excellent points. First, there is no need to make esoteric Fourth Amendment arguments. The surveillance is illegal on its face because, despite what the government keeps saying, it is not authorized by any statute and is, in fact specifically prohibited without such authorization. Once you hear that argument made, it’s perfectly obvious but I’ve never before heard anyone make it.

That insight surely hasn’t escaped those judges ruling in the government’s favor. That can only be described as an intentional ignoring of the law in the service of what they must think of as a greater good. The thing is, in the American democracy there aren’t many greater goods than the rule of law and equal justice.

When you read Granick’s article there won’t be any doubt in your mind that the NSA’s actions are illegal. Her second point, though, is the explosive one. If the phone companies are collecting and turning over to the NSA any information that they wouldn’t collect for their normal billing and if they weren’t provided a warrant showing the data is relevant to an investigation (which of course they haven’t been) then that action is criminal.

It’s too much to hope that anyone is going to go to jail for this behavior—look at James Clapper, after all—but it would be nice if those responsible felt there was more at sake than just a wrist slap from the courts telling them not to do it anymore. Perhaps if their own freedoms were at stake, they’d be a little more considerate of ours.

At any rate, if, like me, you’re concerned about what the NSA is doing you really must read Granick’s article. As I wrote before, she’s one of the few mainstream journalists who appears to understand the issues.

Posted in General | Tagged | Leave a comment

Passwords in 2013

PC World in reporting on the 25 worst passwords of 2013. As it does every year, Splashdata, a security firm, has compiled a list of the most common passwords culled from stolen password lists. Everything is depressingly normal. All our favorites are still there. The major difference this year is that 123456 has replaced password as the most common password. The two just switched places so they’re still the top two.

The people using these passwords are undoubtedly the same people who don’t get what all the fuss over the NSA is about. The universe will, of course, punish their stupidity in due time. The problem is that many of us conscientiously doing the right thing will be collateral damage.

In case you’re wondering, the only responsible password policy for 2014 is to use a password manager that generates long random strings for passwords and to protect your password database with a master password made up of multiple random words à la Diceware. Anything else is certain to fall to the crackers no matter how clever you try to be.

And for goodness sake, if you’re a developer implementing password functionality, get rid of the stupid restrictions on password length and legal characters. There really is no excuse for those restrictions. None.

Posted in General | Tagged | Leave a comment

The Government Gets Crazy Over Snowden

The latest meme being floated by the apologists for the NSA is that Edward Snowden must have been a spy who received aid from the Russians. Mike Rogers, chairman of the House Intelligence Committee, was busy pushing that theory on the news shows lately even though, admittedly, he didn’t have any evidence other than a gut feeling that it must be true. His senatorial counterpoint Dianne Feinstein opined that it was certainly possible and should be investigated. Put aside for the moment that there’s absolutely no evidence for this, the whole thing doesn’t even make sense.

Snowden, who is apparently back to being a screw up who could barely walk and chew gum—after being an evil genius after being a screw up—is said to be incapable of arranging his flight to Hong Kong and then Russia. Because, you know, when you have trouble chewing gum, you certainly wouldn’t be able to book reservations even with all those on-line sites. And if he was a Russian agent, why not quietly go to Russia, give them the documents and disappear? The whole theory is ridiculous and doesn’t stand even a second’s scrutiny.

What does Snowden have to say about all this? He terms the charges absurd. So now we have a they said, he said. Who to believe? It’s not that hard to decide. On the one hand, everything Edward Snowden has claimed has turned out to be true. On the other hand, almost everything the government has had to say on the matter, including the denials of Snowden’s claims, has turned out to be false.

So we have Snowden who has been proven correct in his claims against the government which has repeatedly lied, often replacing one lie with another when the first was shown to be false only to have the second lie exposed as well. It’s not hard to know who to believe.

Posted in General | Tagged | Leave a comment

The Insanity of Open Space Offices

Bodil Stokke tweets an excellent point on open space offices

I’ve written about this before and even then I thought the point was so obvious that it didn’t really need saying. Apparently, in this as in so many things, I was wrong.

Bodil’s tweet points to Paul Biggar’s post Silence is for the weak. In it he recounts how widespread this nonsense is. As Biggar points out, there’s plenty of relevant research on the matter and it’s not late breaking news that hasn’t had a chance to filter down to working managers yet. Twenty seven years ago DeMarco and Lister were already talking about these issues in their excellent Peopleware1

Listen again to Bodil: “Nothing is more hostile to developer productivity than the modern open plan office.” If you’re a manager and you’re running an open plan office, now would be a good time to rethink that decision. And for goodness sake, knock off the “team building/improve communication” nonsense. It’s malarkey and you know it.

Footnotes:

1

A book well worth reading even if you aren’t in management.

Posted in General | Tagged | Leave a comment