Re-enabling J/K keyboard navigation on Google search

Google runs a series of [Experimental Search](http://www.google.com/experimental) trials which any user can join — “new features aimed at improving the search experience”. A short while ago, they had one called “keyboard navigation”, which allowed users to navigate results using the keys J (down), K (up), and O (open). I _loved_ this to bits, and used it all the time… until it went away, replaced by an enhanced “accessibility” feature which makes search results look hideous:

Omg ugly  Google Search

So I went and tried [DuckDuckGo](http://duckduckgo.com) as my primary search engine for a while. It looks great, is highly customisable, and has my beloved keyboard shortcuts… but I can’t quite get behind it because: (a) it’s a bit slow, especially compared to Google, (b) there isn’t native Safari support for it (I have to go through a [GlimmerBlocker](http://glimmerblocker.org) script), and (c) I just can’t shake the feeling that Google’s search results _might_ be better, so I end up switching to another browser and checking on Google, _just in case_. This, naturally, was a recipe for madness, so I started looking into how to get back my beloved keyboard shortcuts in Google.

Thankfully, I wasn’t alone in my tribulations: the [Google Experimental Search forum](https://groups.google.com/forum/?fromgroups#!forum/google-experimental-search) had quite a few others sharing my pain of having to use their mice while searching. One thread led me to [this post](http://blog.nqzero.com/2011/12/googles-experimental-page-used-to-list.html) on a blog called “Not Quite Zero”, where the author found Google’s original JavaScript for keyboard shortcuts, and re-injected it into the webpage using a [user script](http://en.wikipedia.org/wiki/Greasemonkey), hence re-enabling the plugin. Yesss!

If you’re on Firefox or Chrome, the script linked in that post is all you need, but I did edit it to fix a couple of things for myself:

* Re-aligned the search arrow to get it in line with the searched item; and
* Packaged it as a Safari extension.

Here are my new versions. Once again, all credit goes to the [original author](http://blog.nqzero.com/2011/12/googles-experimental-page-used-to-list.html); all I did were some minor styling fixes and packaging. MIT/X licensed.

* [Script for Chrome or Firefox](http://dl.dropbox.com/u/90126/GoogleJK/GoogleJK.user.js): the latter requires the [Greasemonkey](http://greasemonkey.org) plugin installed before clicking on the link; tested on Chrome 18 and Firefox 10 on Mac.
* [Safari extension](http://dl.dropbox.com/u/90126/GoogleJK/GoogleJK.safariextz): tested on 5.1.3 on Mac.

__Important__: For these to work, you do need to disable Google Instant, first at Google’s [search preferences](https://www.google.com/preferences?hl=en) and, if you’re using Chrome, in [its browser preferences](chrome://chrome/settings). Otherwise, Instant’s search bar will grab focus when the page loads.

Note that Google’s original extension JavaScript is still hosted on their servers, so if they remove it, these extensions will do nothing! [Let me know](http://yjsoon.com/contact) if that happens, and I’ll fix it ASAP. (As I was finishing this post, the author replied to say he put up his extensions [on Github](https://github.com/nqzero/knogs) — might want to take a look there instead, if you’re interested in the original JS version. I’ll probably fork it with the styling changes.)

__Update__, July 2012: I’ve [updated the extension for Safari 6](http://yjsoon.com/2012/07/knogs-google-jk-keyboard-shortcut-extension-updated-for-safari-6). The above download links should point to the new version, but this link explains the differences.

C’est la Z: a computer science teacher’s blog

Mike Zamansky is a very experienced and highly-regarded computer science teacher in New York, and founder (I think?) of the upcoming New York City Academy of Software Engineering (here’s [Joel Spolsky](http://www.joelonsoftware.com/items/2012/01/13.html) on the topic). Imagine, then, my delight at discovering that he’d recently started blogging again.

I love his [latest post](http://cestlaz.blogspot.com/2011/12/my-favorite-student.html) on teaching:

I’ve been thinking a lot about my career as a teacher recently. I decided to leave industry over twenty years ago. As teachers, particularly teachers with technical backgrounds we leave a financially lucrative field to enter one with very few financial rewards. It’s also a field very much under attack, particularly in recent years. […]

So, what do I get out of the deal? Well, when I hear form my graduates, I know that I’ve made a difference. Also, the friendships I’ve developed over the years.

His other pieces are great, too — [thoughts](http://cestlaz.blogspot.com/2012/01/pretty-sneaky-sis.html) (with starter code!) on a software engineering class project that teaches design through implementation, some [reflections](http://cestlaz.blogspot.com/2011/12/ml-and-ai-courses-how-they-were-taught.html) and [suggestions](http://cestlaz.blogspot.com/2011/12/stanford-classes-what-id-do-next.html) on the Stanford profs’ CS classes, and some details of a [lesson module](http://cestlaz.blogspot.com/2011/12/wheres-waldo-text-style.html) he developed to teach 2-D arrays (again, with code). Fantastic.

“Computer Science is not Digital Literacy”

Jodie Fraser:

Digital literacy means the the skills and confidence to take an active role in engaging in networks, and in shaping and creating opportunities – social, political, cultural, civic, and economic, and we shouldn’t be collapsing these broader rights into the relatively narrow concerns of computing science as a curriculum area.

Article via [Fraser Speirs](http://fraserspeirs.com) (that’s a lot of Frasers). Mildly surprising, to me at least, is his strong support for the argument raised in the link article, given that he’s a programmer and Computer Science teacher. This [piece of his](http://speirs.org/blog/2011/12/29/three-mantras-from-the-first-two-years.html) on “technology for subjects not traditionally well-served by technology” may serve to explain why, but I’m still trying to digest all of this.

BBC: ICT to be replaced by CS in schools

From September, England’s schools will offer computer science classes instead of ICT (a.k.a. IT ‘skills’ such as PowerPoint and Excel):

The current programme of information and communications technology (ICT) study in England’s schools will be scrapped from September, the education secretary will announce later.

The subject will be replaced by compulsory lessons in more rigorous computer science and programming.

Not sure how they’ll start this up so quickly, given this glaring problem:

“There are, of course, significant challenges to overcome, specifically with the immediate shortage of computer science teachers.”

See also [this Guardian article](http://www.guardian.co.uk/education/2012/jan/09/computer-studies-in-schools): “Out of 28,000 teachers who qualified in 2010, just three individuals had a computer-related degree.” Similarly the case here, although the return of A-level Computing should imply that [NIE](http://www.nie.edu.sg) will be doing something about training CS teachers.

I’m still on the fence about whether CS absolutely needs to be taught at a pre-tertiary level. There was some interesting discussion on this recently between a couple of Mac developers — see [this blog post by Guy English](http://kickingbear.com/blog/archives/272) on “Scripting is the New Literacy”, a response to [this piece by Daniel Jalkut](http://www.red-sweater.com/blog/2298/learn-to-code) encouraging everyone to “Learn to Code”.

(News via [Matt Johnston](https://twitter.com/cimota).)

Don’t tell me what your website’s name means

If your website’s name doesn’t make immediate sense, and you don’t have a good explanation for it, _please_ don’t tell me how you came up with it. Here are two websites with decently cool-sounding names, until you read why they chose these names:-

Asian tech news site [Penn Olson](http://www.penn-olson.com/about-us/):

> Starting the blog with just a few people was tough, so when we considered a name, we liked the idea of having some mythical partners to guide us on our journey. We created Penn-Olson, because blogging is essentially ‘penning ones thoughts’ and ‘Olson’ was a somewhat arbitrary addition, but it sounded (like) awesome.

I like what they do as a news site, but this paragraph just takes all the mystique from their name and throws it in the laundry.

[__Update__: Someone told me a few days later this para is gone. Good for them!]

Classifieds site [ST701](http://www.st701.com/aboutus.html):

> ST701 carries the initials of The Straits Times. The numbers “701” convey what the user will experience: 7 days a week search at the 01 place that matters.

The user will “experience” search _seven whole days a week_, guys!* At the _zero-one place that matters_! Thanks, ST701, now my forehead is sore from all that self-inflicted slapping.

Yes, this was written by someone who calls his company [Tinkertanker](http://tinkertanker.com). No, I’m not saying how we came up with that name. (Yes, that means we don’t have a good explanation for it.)

\* I guess that’s better than a [social media account](http://sg.news.yahoo.com/blogs/singaporescene/smrt-lot-more-learn-social-media-063406182.html) that, until recently, ran Mondays to Fridays, 9am-6pm, excluding public holidays.

The maker movement in education

An interview with Dale Dougherty, co-founder of O’Reilly Media and [MAKE magazine](http://makezine.com). Tim O’Reilly sums it up:

“When you see kids at Maker Faire suddenly turned on to science and math because they want to make things, when you see them dragging their parents around with eyes shining, you realize just how dull our education system has made some of the most exciting and interesting stuff in the world.

Dougherty explains in detail the promise of the maker movement in education (and government). Pretty inspiring.

CodeRunner

CodeRunner is a Mac app that lets you:

Edit and run code in AppleScript, C, C++, Java, JavaScript (Node.js), Objective-C, Perl, PHP, Python, Ruby, Shell or any other language you might have installed on your system.

This could be really useful for programming teachers — one of the big headaches we always have in the first lesson was making sure things were set up properly. There was a time we tried teaching C++, and found out that the computers’ permission settings disallowed running of _any_ shell programs, so we sang songs and dreamed of correcting missing semi-colons. Ah, fun times.