Xah’s Roundup of Keyboard Articles

As I mentioned recently, Xah Lee is obsessed with keyboards and knows a lot about the subject matter. The choice of a keyboard is a lot like the choice of a spouse or boy/girl friend: everyone has their own idea of what the perfect specimen looks like. Lee, as most of you know, has strong opinions on keyboards and many other matters but still provides excellent data on even those keyboards he doesn’t like.

Now Lee has posted a compendium of his keyboard posts. It’s a great resource if you’re trying to decide on a new keyboard. He even has some links to Amazon for some of the keyboards he discusses.

Lee and I agree on very little about keyboards. I like straight (traditional) keyboards while Lee prefers ergonomic keyboards. I have used QWERTY for all of my life and am not about to change now. Lee has gone to the effort of learning Dvorak. We both agree, more or less, on key switches. Even so, I find his articles very interesting and helpful. If you’re in the market for a keyboard or wondering if you should choose QWERTY, Dvorak, or something else, check out his articles. You’re sure to learn something useful.

Posted in General | Tagged | Leave a comment

Grabbing the Current Browser Tab from Emacs

A little while ago, I wrote about grabbing the URL associated with a browser tab from within Emacs. I’ve been using since then and it simplifies things in more ways than I anticipated. Sadly, the method depends on OS X (specifically AppleScript) so users with other operating systems couldn’t use it.

Recently, I saw this entry on the Google G+ Emacs community that announces the inclusion of a new command to Ren Wenshan’s emacs-moz-controller that grabs the URL of the current Firefox tab. I don’t use Firefox so I haven’t tried it but it seems like it would be an fairly easy way for Firefox users to implement their own version of my jcs-get-link function.

Posted in Programming | Tagged | 1 Comment

You Can Trust Us

When arguing that they be given some new extraordinary power, governments always say, “You can trust us not to abuse this power.” It always turns out to be a lie. Here, from Britain—a democratic country by any honest person’s definition—is an example. No terrorism. No kidnapped child. No pedophiles. No drug kingpins. Just a corrupt politician.

UPDATE: It occurred to me after I published this post that it has relevance to the caterwauling reaction of law enforcement to Apple’s iOS 8 encryption. On the one hand, the events in Britain show that law enforcement can not, in fact, be trusted not to abuse any capabilities they are given to access our digital lives.

On the other hand, it shows that law enforcement is being a bit disingenuous with all the doomsday talk about not being able to save kidnap victims or stop pedophiles in light of iOS 8 encryption. As the police in Britain demonstrated, it’s perfectly possible to get this information using traditional investigative techniques.

Posted in General | Tagged | Leave a comment

How to Have Fast Hyper, Super, and Meta Keys

Via EmacsRocks:

Seems a bit hardcore but if you’re a good touch typist and have a heavily customized Emacs, this may be just what you need. Of course, Sacha Chua was already doing this three years ago.

Posted in General | Tagged | Leave a comment

Kernel Source

The other day, I wrote about using the BSD Unix sources to learn from the masters. Even though I’ve read through most of those resources, I’m always on the lookout for more. Happily, I’ve come across another great resource, The UNIX Kernel Source Tour. They’ve got the sources for the Linux, FreeBSD, Univ V7, and 4.3 BSD kernels.

These kernel sources are on line so it’s easy to spend a few minutes looking at one of the files. Did you ever wonder how Unix pipes work? Here’s the V7 implementation. It’s a short file and easy to understand. If you spend a few minutes everyday looking at one of these files, you will soon find yourself understanding how Unix works and how the masters code.

We really do live in a wonderful time. When I started, Unix was a closed source black box. You could read papers and books about it but you couldn’t really examine the code. Now we have an embarrassment of riches.

Posted in Programming | Tagged | Leave a comment

Final Pretest for Emacs 24.4

Michael Fogleman gives us the heads up.

The long wait is almost over.

Posted in General | Tagged | 1 Comment

Slightly Obscure Emacs Tips

Xah Lee has updated his Emacs Less-known Tips page. It lists tips that Emacs n00bs may not be familiar with. Even more experienced Emacers may learn something new. Well worth a look, especially if you’re a beginner.

Posted in General | Tagged | Leave a comment

A Nice Dired Tip

Borkdude offers up a tip about Dired that I didn’t know:

You probably won’t use it all that often but it is easy to remember.

Posted in General | Tagged | 5 Comments

Diffie-Hellman Key Exchange

Sarah Laskow has a nice article in The Atlantic about the Diffie-Hellman key exchange. That’s an unlikely topic for the Atlantic, of course, but the article is more about Diffie and Hellman and how they changed everything with their protocol. My only complaint is that it doesn’t mention Ralph Merkle who was, and is recognized as, a co-inventor of the method.

For those who don’t know about it or are hazy on the details, the Diffie-Hellman key exchange method solves a seemingly impossible problem: how to publicly agree on a secret key for further communication. That means that even if every part of the negotiation is observed by a third party, the key still remains hidden.

The solution is surprisingly simple. Here’s a simple, but incorrect, version that illustrates the idea.

  1. Both sides, say Alice and Bob, first agree on a public integer \(g\)1.
  2. Alice chooses a large random integer \(r_{a}\).
  3. Alice sends \(g^{r_{a}}\) to Bob.
  4. Bob choose his own random integer, \(r_{b}\).
  5. Bob sends \(g^{r_{b}}\) to Alice.
  6. Alice computes \(g^{r_{b}r_{a}}\) by simply exponentiating the \(g^{r_{b}}\) that she got from Bob by \(r_{a}\).
  7. Bob calculates \(g^{r_{a}r_{b}}\).

But \(g^{r_{b}r_{a}} = g^{r_{a}r_{b}}\) so Alice and Bob have calculated the same number and agree to use it as their key.

The idea is that since an attacker can’t recover \(r_{a}\) from \(g^{r_{a}}\) or \(r_{b}\) from \(g^{r_{b}}\) he can’t compute \(g^{r_{a}r_{b}}\) to discover the key. Of course, an attacker can recover the exponent \(r\) from \(g^{r}\) by simply taking the logarithm so this method obviously isn’t secure. The Diffie-Hellman method solves this problem by making all the calculations in a multiplicative group \(G\) with \(g \in G\) a generating element of \(G\).

That’s a bit abstract so let’s look at a group, \(G\), that you’re probably familiar with. One way of making the calculations is to use the finite field \(\mathbb{Z}_{p}\) for some prime \(p\) and \(g\) a primitive root of \(\mathbb{Z}_{p}\). Everything I described above still holds except the multiplications and exponentiations are performed modulo \(p\). But now recovering the exponents is no longer simple. It’s called the discrete logarithm problem and is believed to be of the same order of difficulty as the factoring of large numbers, rendering the Diffie-Hellman method about as secure as, say, RSA encryption2.

Footnotes:

1

In practice, \(g\) is known in advance and is one of several published numbers used for the method.

2

There has been some recent progress on the discrete logarithm problem, but not with the type of groups used for Diffie-Hellman. Experts believe Diffie-Hellman is still secure and will be for the foreseeable future.

Posted in General | Tagged | Leave a comment

Recent Outage

Irreal was offline for a few hours last night and early this morning. The problem was that spammers and their bots had been hitting the site so much that Irreal’s hosting provider suspended the site until we could get it resolved.

Things are back to normal now. Sorry for the inconvenience.

Posted in Blogging | Tagged | Leave a comment