For the best experience on desktop, install the Chrome extension to track your reading on news.ycombinator.com
Hacker Newsnew | past | comments | ask | show | jobs | submit | history | more cjh_'s commentsregister

Awesome project thanks for sharing.

A few months ago I started on a project to make a 'grip' style chording keyboard [0] also based on the teensy, sadly the project has stalled for a bit (graduated and got a full-time).

I have the keys wired [1] but haven't figure out a nice way to mount them yet, and the firmware isn't finished.

[0] http://geekhack.org/index.php?topic=43132 [1] http://i.imgur.com/zQiYmQC.jpg

EDIT: I always found it a bit sad that I was unable to find much documentation on how Engelbart's original chording keyboard worked, does anyone know of a source where I can read how the keys are chorded?


I received a reply on Twitter from Bill Buxton, who worked at Xerox/PARC and other cool places, pointing me at this chapter out of his book:

http://www.billbuxton.com/input06.ChordKeyboards.pdf

The section "The NLS System: Engelbart and English" contains the most detailed explanation of Engelbart's chording keyboard that I've found, and the rest of the chapter is an interesting read.


Very well written article, clearly explaining what is usually a rather complex topic for new programmers to understand, bookmarked for future use.

The other resource I use for similar situations is http://c-faq.com/decl/spiral.anderson.html [EDIT]: someone beat me to it

FWIW: The explanation by Dave G in the comments isn't quite right (I couldn't reply there, comments appear closed):

> void something(); // prototype of function that takes undetermined number of arguments

> void something(void); // prototype of function that takes no arguments

> void something() { return; } // function that takes no arguments

isn't quite right as `void something(){ return; }` is still a function that takes an undetermined number of arguments, it just cannot access them; calling `something(1,2,3)` is still valid.

> void unknown(){ return ;}

> int main(void){ something(1,2,3);}

is valid.


Truly stunning.


Thank you for mentioning SLIMV, I am a schemer-in-training and was 'afraid' I would have to abandon my beloved vim.


#include <stdio.h>

int main(void){ printf("1 && 2 = %d\n", 1 && 2); printf("1 || 2 = %d\n", 1 || 2); }

What were you doing?


I also quite like the bluntness in that it is very clear what his opinion is, I can easily understand where and how I went wrong and actively work to correct this.


"you are not your code"

an important lesson, learn it fast.


If you have any more I would love one, email in profile.


thanks!


I implemented something very similar in perl a few weeks back for my user interfaces project; I wrote a desktop search client that would take a query from the user and score results based on how many and how well it matches a series of different interpretations of the query (fuzzy was one of them).

I too am really amazed this isn't more prevalent as it is so easy to do, after discovering the vim ctrl-p [1] plugin I rarely go a day without using it.

[1] https://github.com/kien/ctrlp.vim


Very well put.

> Best chance for a conviction is to pretend the wiretaps never happened.

And this is why PRISM coming to light is a good thing as it gives the defense another reason to question intent, in the scenario above it would be Bob and Alice asking why Dan was staking out their house and searching their cars.


I wonder if the PRISM revelations might give defense attorneys a broad strategy to deal with inconvenient evidence: "the government was illegally intercepting my client's communications; they never would have found the {cocaine|bodies|plutonium} without these illegal intercepts, thus all evidence against my client flows from this tainted knowledge and he must go free."


That wouldn't work, because the defense has the burden of arguing that the evidence is tainted. Case law merely states that the tainted evidence will get excluded and that the defense must be given the opportunity to argue that the evidence is tainted.

Also, let's be clear, and stop saying "the government". Let's say "the NSA" is doing the wiretap. Then we can talk about "state prosecutors" or "federal prosecutors", and talk about how those prosecutors ended up with evidence obtained by tainted means.


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search:

HN For You