CloudFlare's CEO says that free SSL will use SNI with ipv4 [1] and possibly non-SNI with ipv6 [2]. A CloudFlare engineer has discussed splitting the SSL handshake between servers so their many edge nodes don't need to keep customer secret keys in memory [3]. However, this sounds slightly different than the lazy loading behavior in the blog post.
Not sure why otterley was down voted. XP is going to exist for a while.
Old android/mobile clients are another case. Mobile operators are moving towards transparent "4 in 6" NAT/encap on their edges. The server would see a layer 3 IPv6 client, while the actual layer 7 client is an old Android/java stack.
For what it's worth, other scrypt wrappers have had similar difficulty in locating the scrypt primitive [1]. When I first browsed the scrypt source code, I have to admit I was also distracted by the file encryption code.
For commercial websites, the cheapest certificates I've seen are PositiveSSL certificates resold by gogetssl [1]. It's $4.55 for one year or $17.25 for 5 years.
Disclaimer: I have no affiliation with either site. I've never used gogetssl, but I will probably give them a shot the next time I need a certificate.
StartSSL has a good deal for commercial websites too - for $120/year you get unlimited certs, including wildcard.
Only downside is they do proper identity checking which is a bit painful to go through (they will need to see official company documents, verify ID by phone etc) - but worth it in the long run IMO.
Yeah and sometimes they just drop the ball on the ID check. I didn't have a bill ready that has my physical address on it (none of my bills print this info) so they said they'd send me a piece of mail with a code in it. Never showed up, all attempts to contact them were ignored. Ended up just getting an $8 cert somewhere.
I will say that once you do get into StartSSL (which I have through a previous company), it's nice to be able to create/sign unlimited certs.
I've also experienced problems with lack of host/container separation with lxc on arch linux, e.g. shutting down container shut down the host. I suspected the problem was an improperly mounted/unmounted /dev or /sys in the guest.
I've had a much smoother experience with lxc on Ubuntu than arch. The core lxc developers work for canonical, and Ubuntu lxc bootstrap scripts are much more refined. Lxc support for arch linux is provided by the community, and at least when I tried last year, there were minor problems here and there.
On arch linux, I've found that systemd-nspawn support is much better than lxc's. The commands mkarchroot and arch-nspawn (in the devtools package) make running arch in arch straightforward.
Up until Linux 3.8/3.9 the shutdown() syscall was not container aware and hence shutting down from inside a container would shutdown a host
It has since been fixed and attached to the 'PID' namespace meaning that all processes in the PID namespace get shutdown in the same manner as the host calling shutdown() (ie init gets a specific signal, userspace processes get signaled as well)
I actually recently came across Japanese layouts because a user requested support in http://typing.io, a programmer's typing tutor I work on. I like the smaller space bar but dislike the shrunk delete/backspace key [1]. Backspace is already hard to type because of its distance from the home row. The problem is even worse for programmers because the right pinky not only needs to type most of the symbol keys, it also needs to correct typos made when these symbols are mistyped.
I never use the backspace key. I have had it mapped to 'C-;' for ages. The japanese backspace is terrible, but the normal US layout isn't too good either.
Caps lock should not be changed despite it's ostensible uselessness. Programmers often remap caps lock (I personally use this tool [1]), and it's nice to have a big target for the pinky. Remapping is of course possible with these new keyboards, but the split key design that replaces caps lock leaves a much smaller target. In addition, I'm sure there are hunt and peck typists that still legitimately use caps locks instead of shift because it requires less coordination and hand contortions, so leaving caps lock alone also has accessibility benefits.
One area where keyboard designers aren't innovating enough is the spacebar. The left 2/3 of the space bar is rarely used by most touch typists and hogs very accessible real estate. I like how Microsoft split the spacebar on their new keyboard [2] and replaced the left half with backspace, the most commonly typed (but normally most hard to reach) key.
I'm disappointed to see thinkpad/lenovo make these mistakes given their reputation for quality laptop keyboards. I personally use an x230 [3], which has a similar chiclet keyboard as the x1 carbon in the article without the transgressions.
>The left 2/3 of the space bar is rarely used by most touch typists and hogs very accessible real estate.
I am left handed and I use almost exclusively the left 2/3 of the space bar as it's easier to press it with my left thumb.
Maybe I just taught myself the wrong way but I am competent at typing and this Microsoft's keyboard would be just unusable for me.
I wonder how it goes for other left-handed people.
Ideally both halves of the spacebar would default to space for accessibility, with a software or hardware toggle to change one side. For typist that use the left half of the space bar, the right half is wasted real estate.
The left 2/3 of the space bar is rarely used by most touch typists and hogs very accessible real estate.
This is so true for me that there is a thumb-sized mark on my spacebar where the finish on the plastic is worn because I always press the key at the exact same place.
I am left handed
This is, of course, true for a lot of people. I think the solution is to do what the microsoft keyboard did, but provide a hardware switch to toggle which side is space.
I am exactly the same way (lefty using left side of space). I'd probably use that MS keyboard to remove someone's brain before I used it for serious work.
But it also would be useless for gamers, as the left hand is over WSAD and the right hand having the mouse. Space is mapped to jump in many games (some of which you cannot remap), and you gotta jump sometimes.
I'm right handed and also use the left 1/2-2/3 of the space bar. I once ran across a keyboard with this feature at a public library and was nearly unable to use it.
I use a Happy Hacking Keyboard which has no capslock key, control is automatically mapped there. On every other keyboard I've applied that same mapping in the OS. I would hate that weird split key set up that Lenovo has done there though.
I like the minimal ideals of the happy hacking keyboard but I think it went a little overboard. I like having an arrow cluster and page up/down for applications that don't support emacs/vi bindings. I do like how the number pad is removed. It's too infrequently used and increases the distance between keyboard and mouse.
> I do like how the number pad is removed. It's too infrequently used and increases the distance between keyboard and mouse.
Take a look at tenkeyless keyboards, then. They don't have the numpad, but keep everything else the same as a full-size (104 key) keyboard. For example, the Realforce 87U is a tenkeyless keyboard with Topre keyswitches (same as the HHKB): http://elitekeyboards.com/products.php?sub=topre_keyboards,r...
Also Leopold 66 key keyboards are almost as austere as HHKB, but they have an arrow cluster with similar placement to laptops. I have the 66key touch mini, it isn't bad but I like the HHKB a little better and it's hard to go back and forth.
Ah, thanks for the pointer... I haven't yet come across any really worthy competitors to the HHKB until now (lots of stuff in the "small keyboard" and "nice feel" categories, but they always seem to screw something up...).
The Leopold looks like a worthy alternative to the HHKB, with a very similar vibe, especially as they allow you to swap Ctrl / CapsLock via a dip-switch (I wonder if they sell alternate keycaps with the labels swapped too). It seems to occupy a nice price middle-ground between the HHKB Lite (2) and the HHKB Pro, and has nicer switches than the HHKB Lite (to tell the truth, I don't mind the HHKB Lite's feel, but it's a little on the cheap-n-cheerful end)...
[The only significant difference in layout seems to be the "\" key.]
> I wonder if they sell alternate keycaps with the labels swapped too
I was looking into this a few days and it doesn't look like Leopold doesn't sell extra single keycaps or sets. You can browse their site (Korean) to confirm http://leopold.co.kr/
Yeah, the \ is swapped with the backspace key, which unfortunately I use a lot. The 66key has it in the normal place, but HHKB moved it south. HHKB has the ~ on the right top which is different as well.
I have to say the Topre tenkeyless is amazing. I was just killing time in a shop before traveling and fell in love with it. Two of my colleagues who i was pairing a lot with ended up buying the same keyboards. The only thing that took me some time to adjust to, was the missing enter key on the numpad. I would hit right arrow and then wait for a second before realizing. But it's very much worth it for the smaller travel to mouse.
I've read that they're rebranded Filco keyboards. The worst thing about the CM Storm is the key cap font, which is just really ugly. And because they're printed on, my wasd keys are fading after 2 years of use.
> I've read that they're rebranded Filco keyboards.
This is definitely not true. Filco build quality is unmatched in terms of Cherry switch keyboards, although Ducky is getting close these days. The CM Storm keyboards are of noticeably poorer build quality, although you do save some money in return.
Personally, I would get the Filco, since a keyboard isn't something you have to regularly replace. It's worth spending the money on the best keyboard you can get. Same goes for your desk, chair, headphones, and laptop bag. People were shocked at first when I dropped a lot of money on these things, but I'm still using them 5+ years later, where many others have had to buy new ones (especially bags and headphones).
While they are not rebranded Filco keyboards they are definitely at or just below the same level of quality as a Filco. They are made by the same OEM, use the same (crappy) material for their keycaps, and are comparable in overall durability. Filco keyboards were semi-infamous for chattering (repeating keys randomly) when they were still sold by Elite Keyboards and there weren't as many other options for mechanical keyboards in the US.
The noppoo is quite low quality compared to most topre boards, and also it's worth noting the keys are smaller than a "normal" keyboard, which gets annoying quickly (I own both a hhkbp2, noppoo choc and a few other mechanical kbs).
I'm probably the only person who can't "touch-calculate" on the number pad to save their life, but still loves the thing for its big honkin' enter key. When I'm using a GUI application and a dialog box pops up, I can smash that sucker with the left side of my hand to close it way faster than I can click on the "OK" button or move my right hand to the traditional enter key. Tapping enter with my thumb on a laptop keyboard just isn't the same.
It took me quite a while to get used to using the function key to access the arrows, and I'm still not entirely happy with that. If you get the Lite version that does have arrow keys, but the Lite is inferior to the Pro in every other way.
I couldn't live without Home and End. They're two of my most frequently used keys. Do you know of any other similar keyboards with the home/end/pg cluster intact?
Are split keyboards really that much better for avoiding carpal tunnel syndrome? It seems like I just don't hear that much about carpal tunnel any more, and I wonder if the general wisdom of taking frequent breaks is a bigger factor than an ergonomic keyboard.
I suffered from some form of CTS and I can say split keyboards didn't really make much of a difference. It's all about placement of the wrists and keeping a good posture. Also breaks, lots of small breaks throughout the day.
A properly designed split keyboard is aimed at improving the placement of the wrists though.
I found a minor but noticeable benefit many years ago switching to the Kinesis Advantage. I've recently switched to the Truly Ergonomic keyboard; I've yet to decide if it's better or worse overall than the Kinesis.
I think it largely depends on the person. If I rest my hands naturally on a traditional keyboard, my fingers end up somewhere around wdfv okjn. To pull them around to the home row basically involves tilting my hands outward and bringing my wrists inward even further, neither of which is good for either your hands or your typing speed.
If I have pain or numbness (either of which can last for days), just having my hands rotated to use a flat keyboard for a few minutes could be difficult.
Generally, though, if I get pain in my left hand/arm, it's from excessive typing; in my right, excessive back-and-forth to the pointing device (I use a trackball at home if I do any gaming, pad at work, just so it's not the same device all the time). I have never really been able to use a mouse.
Single data point: I had severe RSI problems a few years ago, but I am not completely recovered. For me, the biggest single part of the solution was to start using a break program. I also use a split keyboard and a pen mouse, but the break program is the key. I written up my story here: http://henrikwarne.com/2012/02/18/how-i-beat-rsi/
I agree. Buying the Kinesis Advantage [0] keyboard was the best investment I ever made. CTS was gone in about the time I needed to get back to the speed of typing I was before (2-3 weeks) and has never returned (4 years and counting). I would LOVE to have something similar on my laptop and would gladly pay the premium for it.
I'll echo this - I was at a point where I was starting to miss work because I had so much wrist pain that I couldn't type, and then I switched to a Kinesis. A month later I was back up to full speed and haven't had any pain since. I don't know how it stacks up against competitors, but the thing quite literally saved my wrists, I highly recommend trying it if you're having trouble.
Definitely has a bit of a learning curve, though, for a few weeks I had trouble remembering which keys were where.
I'd like to try each of them, but at about $300 each, it gets expensive fast. Have you used the foot pedals on the Kinesis? Are they useful in practice?
I've never tried that keyboard, but I'm on my fourth Kinesis Advantage over 14 years or so. I'm not sure I would like the TEK, I want my keyboard to be a bit wider so I don't have to squeeze my hands together. The angling avoids needing to put your wrists into constant ulnar deviation, though, which is the worst part about normal keyboards. And I like the idea of putting extra keys by the index fingers, I'd much rather use those than stretch the pinky. Ultimately, you'd have to try them and see which ones fit you.
As for the pedals, I use them for shift/control, which avoids having to do multiple-key chords. These days I have almost no RSI problems, so I could probably get by without them, but it made a significant difference when it was worse.
As for cost: if you're a programmer, your hands are your life. Investing in proper tools (keyboards, adjustable keyboard trays, chairs) is worth much more than that, IMHO.
I switched to the TEK about three months ago after maybe six or seven years with the Kinesis (although without the foot pedals). Here's what I would say so far.
1. The TEK feels better in terms of physical key presses. Both use the same Cherry MX Brown switches, but because the Kinesis is a big hollow piece of flimsy plastic and the TEK a very solid brick, the overall effect is noticeably nicer to my fingers at least.
2. The function keys are much better on the TEK.
3. The arrow keys and brackets are better positioned by miles on the TEK. You can remap the keys of course, but the Kinesis only has one column to the right of the 'P' key, it's nearly impossible to find a good place to put them, and I just left them where they are. Similarly, the tilde/backquote key is also on that horrible bottom row on the Kinesis. And those arrow keys...putting left and right on the left hand and up and down on the right hand is one of those things that probably seemed like a good idea on paper, but after maybe seven years using the keyboard, those arrows were every single bit as completely unusable as they were the first day I sat down with it.
4. In contrast, the thumb well ends up being a better place for things like the enter and backspace keys than a single column in the middle, so score one for the Kinesis there.
5. The 209 International TEK has plenty of modifier keys. You get control on each hand, meta on each hand, and a blank key on each hand you can choose how to map. Plus you get a menu key in the middle column, and the space bar is split, so you can remap whichever side you don't use for space for something else. On the Kinesis, the thumb wells only have two modifier keys per side, so if you want symmetric layouts, you're stuck without a command or control key on the Mac, or super/hyper/windows on Windows or Linux. You can remap Caps Lock for that purpose of course, but there's no place on the right hand to put an equivalent key. If you use Emacs on a Mac, you know how badly you need Control, Command, and Option keys, and not having that ability on my Kinesis was one of the biggest reasons I wanted to try the TEK.
6. Remapping keys on the TEK is ridiculously difficult. You have to do the remapping on their web site in a (fairly nice, actually) little Javascript GUI. That part works well enough, but then to apply the changes, you have to download and flash new a new firmware image, which can only be done in Windows. Not in a virtual machine, but with the keyboard plugged into the back of a real USB port on a real Windows computer. I don't own a Windows machine, so any time I want to try out a new remapping, I have to haul my keyboard to work and reboot my Linux box there into Windows. On the Kinesis, you remap on the fly by pressing keys right on the keyboard.
7. I've bought two of both models now, and both are sort of a mixed bag. I can't stress enough how cheaply the Kinesis is made. Every once in a while, I have to take apart the flimsy plastic case and glue the USB hub back down (and yes, it's just glued right to the plastic shell). The TEK is built like a brick, but one of the two has taken a full month of use so far, and it's still not completely "broken in". That's the term that Truly Ergonomic use to refer to the property of your keyboard registering the keys you press. Out of the box, about 15-20 keys either didn't work at all, or else pressing them once would insert anywhere from zero to five or six of whatever letter you pressed. They tell you that you might need to press each key a few hundred times to "break them in". In my case, maybe 25,000 times is more like it. If I didn't live in Iceland, I would have demanded a replacement, but since shipping is such an enormous hassle, I decided to see if it got better, and it mostly has. My first TEK worked perfectly, but this second one still has maybe a 2-3% error rate, either duplicating or ignoring keypresses. Which is way better than the 57% error rate I measured on the 'B' key during the first few days I had it (and several others were nearly as bad).
8. The Kinesis has a USB hub. It snaps away from the case and dangles loose inside the hollow shell occasionally, but you can take the thing apart with a handful of screws and glue it back down at least. The TEK doesn't have USB ports. Not a huge deal I know, but it means that I need a separate USB hub with the TEK, and with the Kinesis, I could do without one.
Summing everything together, #4 is a really big point in favor of the Kinesis. You can get used to either one, but you really have to reach to hit that middle column on the TEK, whereas the Kinesis puts all those keys right under your thumbs. The remapping solution for the TEK is frankly embarrassing, but once you settle on a layout, it's not something you need to do very often. In contrast, the TEK feels better and on the whole, has a layout that is better designed for programmers I think, with the brackets and some other non-special keys in more standard locations. And for me, the modifier key situation is at least as big of an advantage for the TEK as the thumb well is for the Kinesis.
I honestly can't say for sure yet which I prefer. I'm sticking with the TEK for now, and I think, if push comes to shove, that the modifier keys are going to be the clincher, but both are really good keyboards.
What was your previous keyboard that caused you CTS?
Was your keyboard sitting on the edge of the table closest to you or did you place it further away from you to have space on a table for your forearms?
I'm using much less expensive "Microsoft Natural Ergonomic Keyboard 4000 v1.0" for many years and it works good for me.
I'd buy an HH keyboard in a heartbeat if it had the same layout as the Microsoft Natural keyboards. No, I lied. I would buy four or five; for home, for work, and for spares.
I use a Kinesis split keyboard now, and it's pretty good, but ESC / F1 are in the wrong place and I had to remap them.
(MS has been serially fucking up the Natural keyboards for nearly a decade now. The 4000 series started the decline, and I can't use the damned things at all now).
While I've never developed full-blown CTS, I've had mild wrist pain for pretty much ever. Since switching from an MS Natural to a Topre board pain has gotten a bit better. I suspect a natural layout with the topre switchs would be the real killer app.
"In addition, I'm sure there are hunt and peck typists that still legitimately use caps locks instead of shift because it requires less coordination and hand contortions, so leaving caps lock alone also has accessibility benefits."
A recent poll I posted on HN suggests that I'm in the minority on this one, but I actually don't remap caps lock myself. And I like to think I'm a pretty capable writer, touch typing with a decent WPM.
(These are multiboot header definitions used by a kernel to get GRUB to load it, for the curious.)
I'm sure there are plenty of programmers who just use the shift key if they were to write code similar to the above, but I simply prefer the caps lock key myself. Habit, perhaps.
I find holding down shift for large macro machinations to be a severe cause of pinky strain and awkward hand positioning. I don't do "perfect" home row style typing, but trying to hold left shift through that entire macro is borderline impossible for me to type -- I use my left pinkie for those As, and my left hand for reaching over to that B and that G, which is stressful holding left shift. For right shift, the underscore becomes especially problematic as well. On top of that, right shift (not left!) M has become muscle memory to the point where I reach for it even if I make the effort to hold down left shift for the entire identifier.
This results in, if optimized instead of tripping over my own fingers the entire time: ↓mboot↑↓-p↑↓age↑↓-↑↓align↑
My old iBook capslock key broke in half I hit it so often. I think my pinkies might break in half if I hit the shift keys at that rate!
In Emacs I would end up typing '↑mb↓ M-/ M-/ M-/' (where Meta is the Option key on my keyboard). Because of the way Emacs completes, I might also do '↑mb↓ M-/ M-BS M-BS ↑P↓ M-/'. Either way that's easier to me that typing it out with caps lock or holding the shift key. The only time I can't complete is when I'm defining something for the first time and I'll get over it in that case since it's very rare.
Yes, but you'd agree it's no panacea, surely.
- The main code editors I use all have slightly different completion mechanisms. Using a consistent non-IDE editor, while certainly possible, I find much more clunky than making do. I do use the completion of my primary IDE significantly however.
- C++ completion is wonky in general due to the poor language grammar
- I don't find defining things particularly rare. Every variable (local, member, or otherwise), every function, every class, every macro...
- My muscle memory isn't built around the preprocessor, but around much more multi-context languages (such as C++) where entry as terse as yours will generally break regularly.
My mental state is brittle. Mis-completing identifiers breaks my flow and concentration, whereas typing is almost completely subconcious at this point having practiced it so regularly everywhere from this forum to my first clashes with 16-bit DOS programming. This means I could be seen as wasteful from a pure keystroke perspective on just about every front.
Even in the simple act of googling, I start entering my next, more refined search query while still scanning the results of my previous query. Dynamic search results broke this workflow (prompting me to disable Javascript) as my new text would cause the links I tried to click on to disappear because of the additional text entry, causing the results to refresh. I didn't even realize I was doing it until that change.
My use of completion is similar: Type until I scan the refined identifier to select as an early-bail. The closest I get to your completion style is some blind initial 3-5 character tokens + explicit use of completion keywords in some fairly limited contexts where I have a sufficiently low (1-4%?) failure rate. This translates to C-style free functions in C or C++, and C# members of things (classnames generally get typed out and then Ctrl+.ed for "using ...;" statement generation.) My macro names as a rule are too heavily namespace prefixed to blind-complete in that fashion, with the exception of some locally scoped 1-letter #define s which are #undef ed later in the same scope which need no completion.
While I've experimented with acronym-style completion methods rather than start-of-word-only, I find acronyming to require too much conscious thought, and disambiguation gives me outright struggle. If I'm in a context where the completion simply won't work (say that I haven't imported it yet like I thought I did), I have to go back and retype the entire thing.
You sound like you're using and IDE of some sort. I find their completion to be extremely useful when I can't remember exactly what function I want to call, but less useful when I know it and just want to get it typed out.
I use Emacs so I don't even have the nice semantic completion that IDEs offer (Emacs has some of that with its "cedet", but I can never figure out how to get it to work properly). But Emacs's completion heuristics are good enough for almost everything I do. When you hit the complete key in Emacs (M-/) it first looks backwards through the file you're in looking for the word. Then it looks forward. Then it looks in the other files you have open.
That looking backwards first thing is the key to why it works so well. And that's because most of the time you're referencing variable or macros that are nearby in your code, and almost always just up a few lines. It makes it correct a very high percentage of the time, so much so that I rarely completely type a variable name twice.
Like other people said, typing like that is very stressful for your hands. I wouldn't survive many hours typing like that. (This is one excellent use case for the Kinesis foot pedals.)
Yes, for my part, I would really hope for autocomplete. Even if it comes down to enumerating all the MBOOT_ whatsit in a syntax file for my specific language, I would probably be willing to go that route.
Alternatively, Sublime Text supports multi-select. Ctrl-F, mboot[^\s]*\b and alt-enter to select all matches. Then use the command palette to convert to uppercase. Or ~ if you are using Vintage. But this isn't as good as autocomplete.
Anyway I have remapped caps and I miss it occasionally when typing constants. Usually I just hold down Shift, or use ~.
You might want to use some help from your editor for this, e.g. auto completion. I'm hoping you never actually have to type every single letter of this code.
I don't remap it, either. I outright disable the key in the OS (simple option in OS X, registry edit in Windows).
As others have pointed out, once you hit a couple of underscores you're not gaining much with the caps lock (if anything), and your editor should be helping you out, here.
At the same time, I'm really not a fan of all caps and underscores, so I probably don't even use constants as much as I should.
Compaq called them Erase-Ease. I have one and it says 1997 on the back.
To account for left/right preference, you can use a key combination (something like ctrl-alt-shift-escape) to cycle between space-space, backspace-space, space-backspace configurations!
On the Swiss german keyboard layout you have to use the capslock key to access captial �, � and �. You can't use shift � as that triggers �. I wonder if the Swiss german layout of the thinkpad x1 has the capslock key.
If the underlying data is structured as plain-text or JSON, I think that’s the way to go. But I’m specifically thinking of collaborative rich text editing, in which case you’re probably using HTML both as the data format and the presentation/editing format.
For data as plain text, one could imagine to have an editor based on Markdown. I’ve seen shareJS used this way. IMHO once one wants more sophisticated formatting options this is not as user-friendly as a WYSIWIG solution.
Alternatively, the HTML needs to be converted client-side on the fly to something like JSONML http://www.jsonml.org/ Would that be feasible from a performance perspective?
My understanding is that Adam Langley prefers AES-GCM to all the other mac-then-encrypt cipher suites in tls 1.2. He's working on AES-GCM support in NSS [1].
Also, the if c1 ~= c2 branch is obviously not constant-time, but in practice it’s close enough that it won’t matter for our case. I’d prefer XORing the two strings together and seeing if the result is 0, but Lua doesn’t seem to include a bitwise XOR operator. If I’m wrong on this, I would appreciate a correction.
LuaJIT provides bitwise operators out of the box [1], and the creator also provides an extension for regular lua [2].
[1] https://news.ycombinator.com/item?id=7910849
[2] https://twitter.com/eastdakota/status/478369486643658754
[3] http://www.slideshare.net/cloudflare/running-secure-server-s...