What Linux can learn from Solaris performance and vice-versa - <AUTHOR> http://www.slideshare.net/brendangregg/what-linux-can-learn-from-solaris-performance-and-viceversa <comment><USER2> This is a topic that I would love to see brought up more, and I think there is a lot Linux can learn from Solaris. As someone who was only exposed to Solaris in the last 4 years (using Linux since '96), I have become increasingly interested in the seemingly unimportant features which have been incredibly useful.

Zones have a distinct maturity and robustness over LxC (to be expected), ZFS is the filesystem I wish we could have, dtrace isn't a bolt-on etc.

It would be nice to see it fully open-sourced again as I think the one thing it has working against it is a smaller community and it lacks the same size army of driver authors.

<comment><USER3> As rasur mentions, illumos has inherited the Solaris heritage -- and added quite a bit to it besides.[1][2] There are now several vibrant variants of illumos, including SmartOS[3][4], OmniOS[5][6] and DelphixOS[7] -- all of which are open source, and all of which feature advancements in the core differentiators of the system including ZFS, DTrace and zones. Because we collectively have been entirely separate from our Solaris legacy for over three years now (and because we are entirely open source where Solaris is entirely closed source), the differences are actually substantial -- and I don't really think of our system as "Solaris" any more than I think of it as "System V" or "7th Edition" or anything else in our long and complicated ancestry...

[1] [http://www.youtube.com/watch?v=-zRN7XLCRhc](http://www.youtube.com/watch?v=-zRN7XLCRhc)

[2] [http://www.youtube.com/watch?v=7YN6_eRIWWc](http://www.youtube.com/watch?v=7YN6_eRIWWc)

[3] [http://smartos.org/](http://smartos.org/)

[4] [https://github.com/joyent/illumos- joyent](https://github.com/joyent/illumos-joyent)

[5] [http://omnios.omniti.com/](http://omnios.omniti.com/)

[6] [http://omnios.omniti.com/browse.php](http://omnios.omniti.com/browse.php)

[7] [https://github.com/delphix/delphix- os](https://github.com/delphix/delphix-os)

<comment><USER4> So, to a newcomer, what are the things that these flavors offer over, say, stock Debian?

<comment><USER5> While I haven't had a chance to use illumos in any of my projects, the Service Management Facility (SMF)[0] and Fault Manager Daemon (FMD)[1] are two big reasons why I'm looking at switching from FreeBSD to an illumos variant for my home server.

It's been a little while since I've used Debian, but I don't believe any systems comparable to SMF or FMD have been implemented[2].

[0] [https://www.illumos.org/man/5/smf](https://www.illumos.org/man/5/smf)

[1] [https://www.illumos.org/man/1M/fmd](https://www.illumos.org/man/1M/fmd)

[2] I'm not sure how well systemd compares to SMF, and I'm mostly interested in FMD/SMF due to how well it can handle ZFS fault management.

</comment></comment></comment></comment><comment><USER6> 'Linux might get DTrace-like capabilities via SystemTap'

Might? SystemTap's been stable & out of the box on RHEL 5 for years. The extensive list of default tap points are supported on production by RH. When I was doing systems stuff 5 years ago we used it for double checking TCP socket options that weren't normally exposed to userspace tools.

Dtrace can do some awesome stuff stap can't, like trace something from userspace down to kernel space. But systemtap does provide live instrumentation on running kernels and has for years.

PS: Just saw p93. Sun got in trouble for the obvious "Setting up SystemTap is difficult on distros that don't maintain, support, use or like SystemTap" years ago. This is repeated on p 93. Stop it, this makes Joyent look stupid, you're better than this.

And p100. Re: 'several million dollar E10K' performance? Red Hat were replacing them with Xeon's by 2003 (with Sun's old sales staff) and crushing them. Though that was SPARC's fault not Solaris's.

<comment><USER7> It would be great if all Linux distributions had SystemTap out-of-the-box like RHEL. Or something with a sufficient feature set to solve problems (which may become ktap, or perf_events, or lttng). However, most of the Linux performance issues I'm debugging are on Ubuntu systems. So the question remains: when will Linux-at-large get this capability?

Red Hat can certainly say that SystemTap is obviously a priority on their OS, and they can only make best effort for others. I said this in the talk. Indeed, a working SystemTap should be an incentive to run RHEL. It is a compelling argument -- the benefits of a working SystemTap are enormous (which I also explained in the talk). Sun made basically the same argument for switching to Solaris: a working DTrace.

Although, I'm not sure that using SystemTap is entirely safe for production yet, which I said was the most important priority. I notice that this related kernel panic is still not fixed:

[http://sourceware.org/bugzilla/show_bug.cgi?id=2725](http://sourceware.org/bugzilla/show_bug.cgi?id=2725)

Although some recent and promising progress has happened in the past few months, as noted by the bug! I only care about this bug because I sometimes trace large subsets of the kernel (eg, all functions in a module or driver), and I think I've hit the same related issue. I don't actually need to trace everything.

You said that DTrace can trace from userspace to kernel, which SystemTap can't. I'm not sure if there's a specific case you're referring to, but SystemTap nowadays can indeed trace userspace to kernel (via uprobes), and a lot of work has been happening to get SystemTap userspace tapsets to work.

As for setting up SystemTap being difficult on distros that don't support or maintain SystemTap. Well, almost all of my customers run Ubuntu. If they hit perf issues, do I convince them to switch to RHEL? (The approach that Sun made for DTrace.) Or is this a problem to be taking up with the other Linux distro maintainers? Which goes back to my original point: when will Linux get this? :-)

<comment><USER8> Is it problematic to install SystemTap on Ubuntu? On Debian systems it's straightforward.

apt-get install systemtap linux-image-amd64-dbg

<comment><USER9> It's not too much harder, but requires a non-default respository, so mildly harder. Quasi-official instructions here: [https://wiki.ubuntu.com/Kernel/Systemtap](https://wiki.ubuntu.com/Kernel/Systemtap)

The difference is that, as of the past few releases, Ubuntu doesn't ship a -dbg kernel package in the main repository like Debian does. Instead they've come up with a new system to ship 'debug symbol' variants of _all_ packages, with a -dbgsym suffix. But they ship them in a separate repository that isn't enabled by default, I guess to avoid confusing end-users (ddebs.ubuntu.com). So you need to configure that repository, install its key, then pull linux- image-$(uname -r)-dbgsym. I guess you might also want to pull the debug-symbol versions of the main libraries as well.

</comment></comment></comment></comment><comment><USER10> The sad part is that both dtrace and ZFS originally did not end up in the kernel purely because of licensing reasons :-(

<comment><USER11> There is more to it than that, the CDDL was intentionally created by Sun to be GPL incompatable, in a bid to create their own linux-like ecosystem with OpenSolaris.

The incompatable nature of the license was so linux could not merge things like ZFS and dtrace.

it was yet more Sun licensing games that only hurt adoption in the end, like their Java shenanagins.

Summing it up as "aww gee shucks licensing problems have struck again" ignores the fact that such crap was an intentional power-play from sun.

<comment><USER12> After an intentional power play from GNU. Let's not absolve them of blame.

A clash of politics had a sad effect on actual technology.

</comment></comment></comment><comment><USER13> One thing I noticed about Solaris - it handles low-memory situations (like 15.5G out of 16GB being used) and swapping, very very well.

If Linux has enough RAM, it will outperform Solaris, but, it is quicker to get bogged down if there is swapping.

(These observations are from about Centos 5.x , so, perhaps they are no longer valid, however.)

<comment><USER14> I find myself having to run with ulimit -v #### in a term on linux if I think I might start eating memory because I'm sick of having to craw under my desk to power cycle.

<comment><USER15> why not turn off swap entirely?

</comment></comment></comment><comment><USER16> What surprised me most is that SPARC is only ~2x slower after all these years (3.6ghz T5 / Sol11) ;)

        $ time perl -e 'for ($i = 0; $i < 100_000_000; $i++) { $s = "SCaLE12x" }'

        real    0m33.59s
        user    0m33.57s
        sys     0m0.00s

<comment><USER17> I know multithread is the T5 sweet spot (to put it mildly), but my 2012 Retina MacBook Pro hits 10s and cost ~$2,800. The cheapest T5 I can find on Oracle's site starts at around $28,000.

I'm only jealous because I'd really like my employer to buy a T5 for compiling and running our software on Solaris SPARC, but unfortunately I don't think it's justified given the state of the platform.

</comment></comment><comment><USER18> How can you talk about Solaris performance without mentioning dispadmin?

<comment><USER7> Linux has CPU scheduler tunables via CFS/cgroups. dispadmin allows fine tuning of the dispatcher table, but I've never seen that provide significant or consistent wins for production (and I've had use cases where it seemed possible in theory, and dtrace'd dispatcher queue latency, but dispadmin didn't really help.) I might mention dispadmin in a 5 day talk. :)

</comment></comment><comment><USER19> It seems like futexes are really just an alternative interface made to build pthread mutexes on top of. In addition, they may only be faster on Linux because of implementation issues. It doesn't seem worth including for comparison.

Also, I'm confused by the claim that Solaris doesn't have the vfsstat utility; yes, it doesn't have that utility, but it does have "fsstat" which provides VFS-level statistics. So it'd be helpful to see a more detailed comparison.

</comment><comment><USER20> I detest slideshare. The way they try to monetize and track me by making me log in to download the PDF. The dumb way they show the slides on a third of the screen and fill the rest with crud.

So if you really don't want your slides read, put them on slideshare.

<comment><USER7> There is a direct PDF link here:

[http://www.brendangregg.com/linuxperf.html](http://www.brendangregg.com/linuxperf.html)

</comment></comment><comment><AUTHOR> Video now available: [http://www.joyent.com/blog/what-linux-can-learn-from- solaris...](http://www.joyent.com/blog/what-linux-can-learn-from-solaris- performance-and-vice-versa)

</comment><comment><USER21> Sure yeah, Solaris is full of great technologies, it is undeniable, and DTrace is an awesome and unique one.

Now there's one thing those guys can learn from Linux: modesty.

</comment><comment><USER22> Looking forward to the video!

</comment><comment><USER14> The last bullet in slide 83 isn't exactly a selling point.

</comment><comment><USER23> Just yesterday Perl has once again been declared dead on Hacker News, and here we have it happily strutting along in a keynote about a bleeding edge topic. :)</comment>


Find out what is using your swap - <AUTHOR> http://linux-news.org/?p=3031 <comment><USER2> This is nice. Really useful. I didn't know about it. Thanks.</comment>


Amazon Alexa. The next big…fad - <AUTHOR> https://medium.com/@disgruntledtechnologist/amazon-alexa-the-next-big-fad-61cb28b72425 <comment><USER2> Even if accuracy were 100%, voice control will struggle in any circumstance where it can't beat the speed of typing.

<comment><USER3> Concur. "Arm full of baby" or "I'm elbows deep into a recipe and need to set a timer" are great use cases.

I wish these assistants were smarter. "Turn on the light" detected by an Echo shouldn't struggle to understand I probably mean the one in the same room as the Echo hearing the command, and not the one three rooms away.</comment></comment>


Show HN: Lumiverse – webcomics publishing platform - <AUTHOR> http://lumiverse.io/ <comment><AUTHOR> Hey, everyone! I am working on my startup, a platform for publishing webcomics.

I want it to become an awesome community where artists can post, read, discuss, and sell webcomics(and in the future - animation).

I am looking for some feedback - can you check it out and tell me what you think?</comment>


Google docker registry (GCR) seems to be down - <AUTHOR> Push seems to the registry give:
'''received unexpected HTTP status: 503 Service Unavailable'''<p>Status page says all is OK: https://status.cloud.google.com/ <comment><USER2> Event Start: 1 hour ago

Affected Products: Cloud Services

Description: We've received a report of an issue with Google Cloud Functions as of Tuesday, 2018-09-04 04:51 US/Pacific. We will provide more information by Tuesday, 2018-09-04 05:30 US/Pacific.

</comment><comment><AUTHOR> Now the status page has been updated: [https://status.cloud.google.com/incident/storage/18003](https://status.cloud.google.com/incident/storage/18003)

</comment><comment><USER2> We also can't access it and we're also getting some weirdness with google dns.

<comment><AUTHOR> """We've received a report of an issue with Google Cloud Storage as of Tuesday, 2018-09-04 04:22 US/Pacific. We will provide more information by Tuesday, 2018-09-04 05:00 US/Pacific. Start time 4 September 2018 at 14:22:27 UTC+3"""

<comment><USER2> Where are you seeing this? Status page is still all green for us.

<comment><AUTHOR> Some some post it on the google slack channel

</comment></comment></comment></comment><comment><USER3> Any connection to this and Microsoft's issue today?

</comment><comment><USER4> Also being hit with this issue from cloud builder.

</comment><comment><USER5> Down for the last couple hours!</comment>


Pi and the Golden Ratio - <AUTHOR> https://johncarlosbaez.wordpress.com/2017/03/07/pi-and-the-golden-ratio/ <comment><USER2> I wanted to make in intelligent comment about this. But that comment turned out be: "Well holly crap, I didn't expect that".

Then again John Baez is the dude who very nearly explained General Relativity to my satisfaction, long after I got my PhD in physics.

        http://math.ucr.edu/home/baez/einstein/

So I am no longer surprised by what he (and apparently Greg Egan) can do.

<comment><USER3> That link was hard for me to copy on mobile. Here it is, unformatted: [http://math.ucr.edu/home/baez/einstein/](http://math.ucr.edu/home/baez/einstein/)

</comment></comment><comment><USER4> In case you missed it, John Baez's collaborator in that post is Greg Egan, who is well known for his brilliant and visionary science fiction. [http://www.gregegan.net/](http://www.gregegan.net/)

<comment><USER5> I always thought that Egan was primarily a SF writer who happened to be a proficient mathematician. Have I got that the wrong way around?

<comment><USER6> If you read The Clockwork Rocket, it becomes very, very obvious that Egan is a mathematician who will go to any length - including writing excellent fiction - to attempt to cram knowledge into your head.

</comment></comment></comment><comment><USER6> > _Greg Egan and I came up with this formula last weekend._

He says with the same sort of casual tone that I would refer to my wife and I rearranging the living room last weekend.

</comment><comment><USER5> > Greg Egan and I came up with this formula last weekend.

I always wonder what it _feels like_ to be able to do that. Even if, as Baez says, the formula wasn't actually "new", to be able to dive down and come back up with new to you must be very satisfying.

<comment><USER7> Probably related to what some call "flow".

</comment></comment><comment><USER8> So the key here is that cos(pi/5) = phi/2\. From there, you could relate pi and phi in many ways. The proof of cos(pi/5) is quite simple, neatly done here: [http://faculty.wwu.edu/curgus/Courses/125/Pentagon.pdf](http://faculty.wwu.edu/curgus/Courses/125/Pentagon.pdf)

</comment><comment><USER9> I have always disliked pi. Well, the 3.14 version. Ever since learning other number bases... [http://turner.faculty.swau.edu/mathematics/materialslibrary/...](http://turner.faculty.swau.edu/mathematics/materialslibrary/pi/pibases.html)

<comment><USER10> One advantage to the hexadecimal version is that you can compute [1] an arbitrary digit without finding all the digits before it.

[1] [https://en.wikipedia.org/wiki/Bailey%E2%80%93Borwein%E2%80%9...](https://en.wikipedia.org/wiki/Bailey%E2%80%93Borwein%E2%80%93Plouffe_formula)

<comment><USER9> I had not seen that before. I wonder if any other interesting numbers are better calculated in alternate bases. Thanks

</comment></comment></comment><comment><USER11> Those people who want to ditch pi in favor of 2pi should read this article to learn why they're wrong.

<comment><USER12> I'm not sure I follow. Multiplying through by two to get tau would simply move the nested square roots from the denominator to the numerator in the relation with the golden ratio (as is explained in the link).

I certainly don't see any step in the outlined derivation that gains or loses the ability to be intuited simply due to a factor of two.

</comment></comment><comment><USER13> I haven't read this article yet - but I just wantedto point out an interesting trivia tidbit about the golden ratio...

If you draw a typical star, the one you likely first learned to draw, each line is intersected by 1 to 1.618</comment>


Stop Reading Startup Advice - <AUTHOR> http://siberianfruit.com/post/7764276112/stop-reading-startup-advice <comment><USER2> Woah: "It would not be unusual for me to keep 8 browser windows with say 10 tabs per window. And some of those, I would keep open for a week or more because I didn't want to lose the valuable information that I haven't had a chance to process yet."

<comment><USER3> I forgot to mention that that was just on my desktop :) I'd have something similar going on my laptops (I have and use several)...

</comment></comment><comment><USER4> This is great advice. I tend to be a researcher, so this is a pattern I know all too well.

</comment><comment><USER5> Got the message, I'll try to stop reading about stopping to read startup advice ;-)</comment>


Ask HN: What do you do when management is wrong and you are right? - <AUTHOR> <comment><USER2> They may not be wrong, they may just be weighing the variables differently than you are. The right technical decision isn't always the right decision for the business.

If they are truly wrong, good management will be receptive to reasoned feedback. Bad management won't even listen, in which case it may be time to find a new team.

But if management listens to your point and decides to do something different, that's their responsibility and why they get paid more. If you can live with their mistake and make the most of it, great. If not better look for a different team.

</comment><comment><USER3> How do you know management is wrong and you are right? More likely you and your management have different priorities and assumptions. You or management, or both, may suffer from certainty bias.

Accept the learning experience. Sometimes you have to go along with decisions you don't understand or agree with. Do your best and offer helpful suggestions and alternatives.

You can't always get what you want, as one famous person put it.

</comment><comment><USER4> _" Yeah, well, that's just, like, your opinion, man"_.

I figure you are not arguing about a physical law, but about a course of action in the future.

First: even if there are only "right" and "wrong" course of action for your issue, you cannot really know ex ante. None of you _is_ right, but maybe one of you _will_ be. In the future.

Second: your situation most likely involves _tradeoffs_ and you may not have all the information, often for valid reasons. You could make a case for any position in the room during debates.

You argue for A, I argue for B. Chances are, A and B are very valid in the absolute and isolation. Education or Healthcare? With infinite resources? Both by all means. With a budget and an external threat? It gets harder because there's a system. "Right" or "wrong" isn't even obvious for a game of chess with clear/finite rules and moves, let alone life.

Our job is to make the case and give _options_ and a _course of action_ for the decision makers to choose from and/or combine and/or weave together, then execute and act on the decision that is made. Doing this allows the team to execute and actually have a _course_ to correct and learn from that.

What's not to do in my opinion is to work half-heartedly and pout because management did not pick "your" option. And if/when the team figures that the course of action chosen isn't working and decides to correct course, the thing not to do is to go "I told you so!".

Your system had some input signals and a desired state or the avoidance of an undesired state, took an action, produced an output, compared it with a desired state, figured there was an error, and now is merely correcting and optimizing given constraints, requirements, and perturbations.

</comment><comment><USER5> Gently let them know that they are wrong. Depending on the severity of the error, repeat the procedure up to three times with decreasing level of gentleness until they become right. If that doesn't work, don't bother. Also isolate yourself from possible ramifications of the error.

</comment><comment><USER6> I ask what guided them to the decision on which we disagree.

Typically, you'll find that you have different goals and priorities. And if they are the boss, they get to make the call. If they are a good boss, they'll listen to your reasons before making that call. If you are a good employee, you'll listen to their reasons and accept the result if they choose differently than you would have.

And as an individual, if any of that frustrates you so much that it makes your work difficult, then they are just the boss of your job, not your life. Feel free to make a change.

</comment><comment><USER7> The manager-tools.com podcast is excellent for things like this. Start with the Professional Subordination one: [https://www.manager- tools.com/2010/12/professional-subordina...](https://www.manager- tools.com/2010/12/professional-subordination-part-1)

</comment><comment><USER8> I've been on both side of this,you have to know that managers also have a boss. It is the managers job to make whatever plan that was handed down succeed.Depending on the chain of command there may not be a (practical)way for them to push back, think contracts,time constants, lawyers etc.

</comment><comment><USER9> That would depend entirely on the specifics of the situation.

If management wants to waste money on something stupid and I've given my advice, that is their problem, not mine.

If they are violating the law, that's an entirely different matter.

</comment><comment><USER10> Prep a plan to save their asses when things blow up. Don't rub it in. Be a hero.

</comment><comment><USER11> Where do you work dude ? My boss is always right.</comment>


Can We Please Move Past Apple's Silly, Faux-Real UIs? - <AUTHOR> http://www.fastcodesign.com/1669879/can-we-please-move-past-apples-silly-faux-real-uis

<comment><USER2> I think you have to take the texture map driven interfaces as part of a larger package that includes the outside industrial design of Apple products. The outside package tends to be very futuristic and bare of details, so having the UI feature texturemaps of organic objects like wood or leather makes for a nice humanizing contrast. If you copy this on another device it's not quite the same thing, although if you look at the new Windows OS they did a great job of making something that looked very different.</comment>


Back Office Exposed: Bingo Card Creator - <AUTHOR> http://www.resultsjunkies.com/blog/back-office-exposed-bingo-card-creator/ <comment><USER2> For all those reading this thinking, man, I could never do this or be successful at my own business, follow his advice, JUST DO IT!

It isn't that hard, it is especially not that hard if you approach it like he did and grow very slowly and keep your costs down. I did the same thing with my best friend years ago, starting off while still having a job, then making a leap when things were slightly vetted.

Best decision of my life. I've travelled the world, set my own schedules, always worked on what I wanted to work on and had a far more interesting set of challenges than I would have staying coding at another startup.

The key is not to aim for the moon, aim to pay the bills. We reduced our expenses to $5k (pre tax) a month, then set that as our goal our first year. It was achievable, but more importantly we eventually grew to making far, far more than that. But I've still always kept my expenses low because I've always wanted the freedom to do what I wanted.

I'm now in Africa, doing a startup here because it is new and exciting and satisfies my need to do good. Never would have been here if I had stayed at the day job.

DO IT!

<comment><USER3> Actually, I found patio11's background to be generally pretty average and unexceptional - I was thinking "if he can do it, anyone can".

(no offense intended to patio11:)

<comment><USER4> None taken. I agree with "anyone can do this", with the proviso that it really helps if you can do at least one kind of programming and enjoy learning things.

<comment><USER5> Never give up, never surrender!

</comment></comment></comment></comment><comment><USER6> _While this was going on, their copy of Bingo Card Creator has been relentlessly polling the server: "Has she bought it yet? Has she bought it yet? Has she bought it yet?" It does this by passing the same random ID to a web service running on the server. If the transaction has been consumated, BCC will learn the Registration Key, and then automatically upgrade itself to the registered version. This removes a /major/ source of customer support complaints, since Registration Key management is a hard concept for many shareware customers to grasp. From the customer's perspective, she just got done putting her details into Paypal, and by the time she closes the browser (after ignoring the instructions) and goes back to Bingo Card Creator, it already says "Thanks for your purchase!" That little psychic saves me hours every month in support email._

I wish all trial software did this!

A definite usability improvement and just generally better for both parties. The usual email with the reg key for later use should also be sent, of course, but saving that hassle for me when I just want to get on with using what I've just bought is a very nice touch.

<comment><USER4> There is a program called Stylizer (visual CSS editing, highly recommended) which inspired this. Their implementation required you to copy to the clipboard (via a Javascript onclick event on the last page of the purchase flow), but the software sniffed the key right out of the clipboard and upgraded itself automatically. This avoids pasting problems. (Useful factoid: many computer users cannot copy/paste, and many who can can only do it with the MS Word copy/paste buttons onscreen.)

I thought "Dang, that is great", implemented it, and then started looking for a way to extend it without requiring people to read the instructions for copying.

</comment></comment><comment><USER7> I can't help but always be totally impressed with Patrick. I admire the way he focuses on every detail of his business and is so thoughtful about everything he does. He is a big reason why reading the comments on this site can be so rewarding.

This was an excellent read.

</comment><comment><USER8> Great article and always good to hear more from Patrick. I still find it incredibly humorous that one of the more influential startup stories on HN is a "simple" Bingo Card Creator. Patrick continually shows that there is no such thing as "simple" when you're striving to be successful.

Favorite bit from the article: "Prior to running a business I ran a WoW guild. It was rather substantially more work and more drama than running a business, for dramatically worse loot."

<comment><USER4> I get a lot of credit (perhaps more than I deserve) because I talk a lot, am amicable, and write in a compelling manner. Communication is the great underlooked startup/engineering skill.

I prefer taking the opposite tack [+] with regards to simplicity: there is indeed such a thing as simple. Your business, on day one, is simple. It will gradually become more complex as you learn things and learn what the business needs, but you don't need to let the complexity coming down the pike scare you away from starting something today. (And compared to many businesses -- from megacorps down to a lot of the startups around here -- BCC is still pretty simple, even four years in. My best marketing strategy can be explained in three Powerpoint slides, all the code I have is under 10kloc, and the core customer need is pretty much unchanged.)

[+] Some day I will learn this English idiom properly, but until I do, thank you guys for correcting me on it.

<comment><USER9> I think the idiom is difficult because it's not a properly understood idiom for most people who speak English. It's a sailing term. When you're sailing into the wind, you criss-cross against it, changing the side of the ship the wind is coming across, so the ship ends up taking zig-zag path through the water. Changing the orientation of the ship so the wind comes across a different side is tacking. It's the opposite of jibing, which is changing which side the wind is coming across with the wind at your back.

Hopefully the context of it helps, taking "the opposite tack" is changing your orientation to reach towards the same goal on a different approach when you're getting off-course with your current approach.

<comment><USER10> To add a little more, it is often a good tactic in competition. If you take the same tack as your competitor, then you are simply following them in their "dirty wind" and are unlikely to overtake.

If you take the opposite tack, then you may well find clean wind, or better wind, and you may also be able to approach them on starboard tack, forcing them to give way.

Don't follow your competitor - take the opposite tack.

</comment></comment></comment></comment><comment><USER11> This was the best exchange in the interview:

      Q: Can you share the key metrics you watch on a
         daily basis? Why are they important to you?

      A: I have published a variety of stats but I don't watch
         metrics on a daily basis because I don't make
         metrics-based decisions on a daily basis, and absent
         making decisions watching metrics is only as
         productive as playing WoW.

<comment><USER12> I find this doubly amusing because he used to play WoW.

<comment><USER13> So, as usual, the man knows what he's talking about?

</comment></comment></comment><comment><USER14> "But if you _say_ you're booked solid with your children and yet you still find time to watch television and play online poker, then it is time to have a frank discussion about your true priorities in life."

Besides the very honest and insightful write-up (thank you!), this last sentence is worth its weight in gold. It's too easy to make excuses for not following your goals and blame something other than your own lack of motivation/focus.

<comment><USER15> I think that sentence is unfair. If you have a job and small children, it's easy to be so exhausted after putting them to bed that there is no energy left to think about anything important.

It's true of course that children are the handiest excuse around. But it's also true that once you start down the job-and-family highway it can be exceedingly difficult to get onto an exit. The implication here -- that if you're not pursuing some major third thing, it's because you're lazier or care less than people who (under considerably different circumstances) _are_ pursuing that thing, is glib.

While there are ways out of this dilemma, they require more than re-sorting your todo list and cutting back on the online poker. Failing that, the default rule seems to be "Job, family, school, startup, pick two".

<comment><USER16> Agreed. And what's more, marriage and raising a child both take a lot of time. I often don't even open my laptop at home because I just don't have the time.

Personally, I realized that (a) I can't live with the idea of working at a big corp until I retire and (b) if I wish to remain married and connect with my kids (you only have 10 years!) I don't have the time to do this on the side. Given those two truths I decided to lock in our expenses (i.e. making more money doesn't help my goal if we just spend it) and switch to consulting. As a consultant I make enough that I can periodically take 6 months off to give my start up ideas another go. If the business gets some traction then maybe I can stay off longer than 6 months. And as a consultant I don't have to "quit" when it's "working sabbatical" time.

<comment><USER17> Personally, I figure that if I stay at $BIGCORP I will have far less time to connect with my kids--over the long term--than if I work for myself. I might have to front-load the time a bit as I get set up but this is not a given, given the small hourly commitments possible.

But the "free" healthcare makes it a tough decision.

<comment><USER16> Working as a permi this is certainly the case, but if you can get your living costs down and work on a more ad hoc basis (i.e. contracting or consulting) then you can take big blocks of time off to use as you see fit.

Personally I wouldn't want to work in the US right now. The worker protections are practically non-existent (advantageous if you own a company but if you work for one, not so much).

Health care has always been problematic in the US but I suspect by your comment you mean that you don't like that you have to have it now. Not having insurance would be an insane level of risk to put on your family (especially when coupled with the risk of a start up). One of the bigger mistakes the US did with health care IMO was letting companies pay it for the employees. That creates a terrible lock in incentive and removes health care from the person's budget so when you do wish to try something else (e.g. a start up) you're not prepared for the sudden jump in expenses.

</comment></comment></comment></comment></comment><comment><USER18> I find really interesting that patrick build a pagerank on a totally different population than his customer base. He target hackers for pagerank building (and invest a lot of time writing articles who are probably not his first customers), but his customers lands on content created by freelancers (cheap, lesser quality content probably ).

<comment><USER4> I do seek links from outside my customers and recommend it as a tactic, although it is not the only reason that I blog or participate with folks. You can compare it to other companies trying to get written about in the New York Times despite not selling to newspaper reporters. Programmers and Internet businessmen control a metric tonne of links, schoolmarms and the Jane Austin webring not nearly so many.

I do take minor exception to the comment about content quality. With the proviso that I'm making bingo cards to teach lessons to school kids, I'm usually making pretty darn good bingo cards. Search for [biology bingo] some time and compare my site to the other options.

</comment></comment><comment><USER19> _He lives in Japan and recently left his cushy full-time job_

I don't think cushy is the word he'd use to describe it.

<comment><USER20> Right. It apparently was the ex-ex-job that was cushy, not the salaryman job.

</comment></comment><comment><USER21> > Apache has a habit of taking down memory-constrained VPSes when hit by large > amounts of traffic

Give Nginx a spin if you can. I use 300MB VPSes running Nginx + PHP and have memory to spare to run the dropbox daemon, lightly loaded mysql, etc.

<comment><USER4> Yep. Sometime after this interview I figured out what my Apache configuration problems were. The short version: KeepAlive, which might as well be called as TurnThisOnToBlockThisServerTotallyEveryTimeYourSiteAppearsInSocialMedia.

<comment><USER22> There's also just tossing a reverse proxy in front of your apache, it hands the problem of slow requests, bad requests, KeepComatose, etc to something lightweight that's a lot more crap-tolerant.

<http://joshua.schachter.org/2008/01/proxy.html>

The simpler of these (e.g. pound) take about as much time to set up as scrolling through your apache config looking for some mis-set option.

<comment><USER12> One task to a machine can save a lot of trouble, ie, not having the database on the local app server + having varnish + nginx in front of it.

</comment></comment></comment></comment><comment><USER23> First time I heard about Appointment Reminder - Patrick's third second product - <http://www.appointmentreminder.org/>

Certainly a much bigger market than elementary school teachers, while clearly continuing to leverage the same key skills of making a mundane task automatic, and metric testing to consistently enhance the real world user experience. Perfect case study (assuming the market eats it up, of course!).

</comment><comment><USER24> And no credit for fixing his httpd.conf configuration :(

<3 patio

<comment><USER4> Joey gets credit for the part of my config which functions as designed.

<comment><USER25> If Apache is eating up all of your RAM with children, you should really look into using nginx or Varnish out front (depending on how cacheable the content is). You'll see your need for more Apache children drop considerably, due to the spoon feeding problem.

Hope that helps, have really enjoyed reading your posts.

</comment></comment></comment><comment><USER26> I love the dashboard screenshot. More of these Patrick! How about a tour of BCC someday?

</comment><comment><USER27> Patrick, this was really a great read.

It wasn't clear to me from the article, but it seems that a lot of the 'syncing' of information between databases and services was programmed by hand by you. How much time did you spend on this and if you had to re-setup your infrastructure, would you go with a service that does most of this for you (if one even exists)?

<comment><USER4> I did all the programming for BCC. I am not sure what you are specifically referring to with "syncing", but the code to all features discussed in this writeup is only a few hundred lines. Aside from having to put an HTTP client in my Java app it is fairly painless.

<comment><USER27> I think you answered my question. By syncing I meant that, for instance, when a customer makes a purchase, a whole chain of events unfolds (databases are updated, keys are sent out, analytics packages are updated).

<comment><USER4> Yeah, I originally did all of that via ejunkie and now it is all custom except for e-junkie wrapping the underlying API call. Back when HTML in notepad was the extent of my programming skill, having ejunkie keep stats and then hand updating a spreadsheet every month made sense. Now that I'm comfortable in Rails it is really easy to automate bookkeeping tasks like that.

</comment></comment></comment></comment><comment><USER28> It took me a minute to realize I was reading an interview. Make this more evident, please!

</comment><comment><USER29> "If you spend just a few minutes on Hacker News, you'll come across Patrick McKenzie in one way or another"

You can say that again. I am starting to feel the overload.

<comment><USER30> Unlike most HN tropes I haven't found the "and here's how patio11 does it" angles to be tiresome. A one-man profitable non-funded small code-driven business is chock full of lessons for all of us.

<comment><USER31> Exactly, he's my inspiration to make <http://www.celtic-knot-creator.com></comment></comment></comment>


IndexedDB: kind of like MongoDB in the browser - <AUTHOR> https://developer.mozilla.org/en/IndexedDB

<comment><USER2> Here is a demo of the API - [http://nparashuram.com/trialtool/index.html#example=/ttd/fir...](http://nparashuram.com/trialtool/index.html#example=/ttd/firefox/moz_indexedDB.html)

Works on Firefox 4 alpha that implements the standard.</comment>


New Study: Cheap Weddings Lead to Fewer Divorces - <AUTHOR> http://thehustle.co/average-marriage-cost <comment><USER2> "H/T" is this newspeak for "all content from" [http://www.theatlantic.com/health/archive/2014/10/the- divorc...](http://www.theatlantic.com/health/archive/2014/10/the-divorce- proof-marriage/381401/) No wait, maybe it's "we got the idea to plagiarise this from"

Original source [http://www.randalolson.com/2014/10/10/what-makes-for-a- stabl...](http://www.randalolson.com/2014/10/10/what-makes-for-a-stable- marriage/)

Either way it's a very silly article "If only you spent less on your wedding he wouldn't have started beating you." I mean really. Correlation is not causation is the most overused phrase in analysing anything but that doesn't really excuse this.

<comment><AUTHOR> "H/T" is this newspeak for "hat tip"

<comment><USER3> HN requires the submission of the original if possible. In this case, the Randal Olson article is the canonical source.

</comment></comment></comment><comment><USER4> From what I've noticed, people who spend too much money on a wedding tend to be getting married for superficial reasons, not because they love their partner. So when shit hits the fan, nobody's surprised when they fall apart rather than sort their crap out.</comment>


Ingredients for a successful entrepreneur: Girlfriends and Sports - <AUTHOR> http://wesleyzhao.com/2011/04/11/ingredients-for-a-successful-entrepreneur-girlfriends-and-sports/

<comment><USER2> "Again this is under the assumption your relationship is a truly functional relationship."

This being HN and all, truly functional means "no side-effects", right?

</comment><comment><USER3> I really hate to be this negative, but I confess that a post on "ingredients for a _successful_ entrepreneur" would inspire a lot more confidence if it was by an author whose name I could readily recognize.

<comment><USER4> I totally agree, and...people that state stuff without any more evidence than some sloppy written bullet points without any references to stats or scientific results is usually are BS. If you wanna state such, step down a few steps on the attitude-stair...

<comment><AUTHOR> I'm sorry you feel this way. I wrote about certain things that I believed and readily recognize that both I have no statistics and that I mean virtually nothing to the universe as of now. Just thoughts that I were in my head.

</comment></comment></comment><comment><USER5> sports 3.) willingness to step on everyone on your way to the top.

<comment><AUTHOR> Not necessarily. There are still rules in sports. And there are teams that play dirty. However, I am not willing to play dirty to win. And I do not believe it is necessary to step on everyone or do anything but the right thing to be successful.</comment></comment>


Manic Digger – A multiplayer block-building voxel game, Minecraft clone - <AUTHOR> https://github.com/manicdigger/manicdigger <comment><USER2> If you like this, check out minetest too. (minetest.net)

Its got rendering improved over Mojang's Minecraft (with built-in shader support,) infinite world size in all directions (not just horizontally), and a very high-performance C++ implementation.

It also has a very well-supported and well documented mod API, and an active community. You should check it out.

<comment><USER3> >very high-performance C++

C++ does not automatically mean "very high-performance". A lot of users get worse framerates than with Minecraft (not everyone, though!), and the entity/"mob" code used to be insanely slow, at least a year ago.

<comment><USER4> While I find your second sentence quite insightful, the first sentence seems to fight a straw man.

(GP stated that this software is high-performance, and that it is written in C++. They didn't claim it to be high-performance because of C++.)

<comment><USER3> My apologies. Way too often I hear people in the Minecraft community say everything would be magically fixed if the game had simply used C++ in place of Java. I guess I'm too quick to jump on people using "C++", "high performance" and "Minecraft-like thing" in one comment nowadays.

<comment><USER5> Well, tbh that is somewhat grounded in reality: lots of minecraft's early performance problems were caused by the GC, which wouldn't have been a problem if writing "idiomatic" C++.

Lots of those problems have since been fixed though. I believe a rewrite in C++ today would bring more problem than it solves (which, BTW, Mojang is kind- of doing with Minecraft PE).

</comment></comment></comment></comment></comment><comment><USER6> Note from the sf.net git repo:

Moved to [https://github.com/manicdigger/manicdigger](https://github.com/manicdigger/manicdigger)

Also, the author's web site: [http://croxxx.tk/](http://croxxx.tk/)

<comment><USER7> Thank you! This should be the actual link. I saw Sourceforge and closed it immediately.

</comment></comment><comment><USER8> Hi.

Some info:

\- Client is written in Ć programming language and can be transcompiled to many languages. Yet it's still a C# project that runs in Visual Studio. See [https://github.com/marioclone/Mario](https://github.com/marioclone/Mario) and [http://smb.neocities.org/game.html](http://smb.neocities.org/game.html) for example how it works.

\- Game is currently being made into a commercial product by a big company. It looks beautiful. There is a whole team working on it, including many artists.

<comment><USER9> What is Ć (C with an accent mark) ?

<comment><USER8> [http://cito.sourceforge.net/](http://cito.sourceforge.net/)

</comment></comment></comment><comment><USER10> Out of interest, is Sourceforge any better under the new management?

<comment><AUTHOR> They got rid of the most obnoxious things and added SSL:

[https://www.reddit.com/r/sysadmin/comments/4n3e1s/the_state_...](https://www.reddit.com/r/sysadmin/comments/4n3e1s/the_state_of_sourceforge_since_its_acquisition_in/) [https://sourceforge.net/blog/sourceforge-acquisition-and- fut...](https://sourceforge.net/blog/sourceforge-acquisition-and-future- plans/)

</comment></comment><comment><USER11> So this is written in c# and can be transcompiled to JavaScript... Is there any public servers that will host your world?

My daughters play minetest and love it. However, they each have an old reconditioned laptop, and their shared world is hosted on one of them, so that laptop has to be on and running minetest even if only the other wants to play and create.

A browser-based world would be so much easier.

<comment><USER12> Why not host it on an always online raspberry pi ?

</comment></comment><comment><USER13> Ah that name, [hopefully] an homage to one of the first platformers ever:

[https://en.wikipedia.org/wiki/Manic_Miner](https://en.wikipedia.org/wiki/Manic_Miner)

</comment><comment><USER14> Manic Digger can actually use the old Minecraft Classic protocol and hence act as a comparible Minecraft Classic clone, or at least it could in the past (maybe it was eventually removed). It's a secret feature, I think it was hidden behind some sort of flag.

</comment><comment><USER8> The correct link is [http://manicdigger.sourceforge.net/](http://manicdigger.sourceforge.net/)

</comment><comment><USER15> thanks for making public domain!</comment>


Apple Headphone, Camera Patents Reveal Obsession With Design Details  - <AUTHOR> http://www.fastcompany.com/1690956/headphone-camera-patents-reveal-apples-obsession-with-design-detail?partner=homepage_newsletter

<comment><USER2> I wish this obsession carried over to the UX of some of the more recent software, most notably the new itunes. I'm floored with how many clicks it takes to purchase something in the itunes store these days :(

</comment><comment><USER3> Then how about making earpods/headsets that don't suck and fall apart? (To be fair, I've heard that the Apple in-ear ones are decent, at least to start.)

<comment><USER4> Apple's in-ear phones are indeed vastly better than the default earbuds -- in fact, they compare favourably with similarly-priced offerings from Shure and Etymotic, and are competitive on price.

I suspect Apple's standard "free" earbuds are actually deliberately bad because they're intended to upsell the customer on a better pair of earphones -- and a customer who's buying in an Apple store will of course be exposed to Apple's in-ear phones as a possible upgrade.

(Full disclosure: I use a pair of Ultimate Ears TripleFi 10's which kick the shit out of the Apple ear canal phones ... on the other hand, they're a lot more expensive. In the sub-$100 earphone range, the Apple in-ear phones are fine.)

<comment><USER3> I have a pair of Etymotic ER4P's. <http://www.etymotic.com/ephp/er4.aspx>

They are truly reference-class equipment. (My Brain-Age2 word-discrimination score would jump a whopping amount just by using those!) I don't use them unless I'm on a plane, though. In-ear is just too much effort/overhead for me.

These Sennheisers had decent sound and folded up to fit in a dandy little case. However, my girlfriend at the time told me that they look so dorky, she didn't want to be seen in public with me wearing them. <http://amzn.com/B001NZ8PHQ>

Then I told her that there's even better sounding headphones (non-iPhone) in the same price range that look even dorkier. She didn't believe me until I sent her the link. <http://amzn.com/B00001P4ZH>

Apple needs to solve the headphone/headset design problem!

<comment><USER5> That last one does deserve a 'wow'. There's just something about them that makes me say 'no'.

Grados, on the other hand, are full of gooey retro goodness: <http://www.gradolabs.com/product_pages/rs1.htm> I have an 80, and it's amazing how many random music geeks will start talking to you just because you have them on.

Since you've used some: have a recommended starting point for Etymotics? I've been looking for something isolating to complement the I-can-hear-that-ant- tapdancing-through-my-music of the Grados.

<comment><USER3> A coworker of mine had the made-for-iPod Etymotics. (6i) The build quality wasn't even half as good as my ER4's. The ER4's are really robust. I can't imagine them wearing out, ever! The 6i's are an old model, though. I don't know what the newer ones are like.

I bought my sister some bluetooth Etymotics which are no longer made. She really liked those. I also have an Ety.com headset, which is really good at what it does. (Allows you to have a phone conversation in really noisy environments.)

My advice: try some from a store with a really good return policy. They are not for everyone. Also, I'd just buy the ER4's, unless you want an iPhone headset. They are a very good in-ear phone with superb isolation, especially if you are sitting still, and you can use them to do serious sound work.

I've bought mine from <http://www.headphone.com/>. (Not affiliated with them in any way.)

<comment><USER5> Another question then, if you don't mind:

I (apparently) have rather large ear canals, and a _lot_ of in-ears don't seal properly. I've had the worst luck with the triple-flange style. As such, I kind of need something with larger sizes than normal, and / or get something custom molded (which I'm seriously considering). Know a good place to look for any of that?

<comment><USER3> Etymotic has a custom in-ear mold voucher program, which costs $100. You can also look up the Make DIY instructions, which uses a $12 kit.

<http://makeprojects.com/Project/Custom-Fit-Earbuds/199/1>

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> Every company has engineers who obsess over every tiny design detail. The trick is having a management structure that allows the good ideas to flourish without getting swamped by all the impractical or unhelpful ideas.

This is an incredibly difficult problem which is itself composed of several incredibly difficult problems (related to corporate culture, hiring, promotions, process, etc, etc.) The difficulty of this is easy to see when you compare the fit and finish of the average piece of software or hardware on the market, for example. Most are just agglomerations of feature-sets that have been whacked with a mallet until they fit together roughly and hit with a bit of sandpaper to take off a few of the biggest splinters and sharp corners.

</comment><comment><USER7> "Obsession with Design Details" lead to high profits.

<comment><USER8> However many management people believed that customers don't care design details and it can't sell

<comment><USER9> It is worth noting that, as evidenced by the fact that (e.g.) Toshiba still sells plenty of computers, many customers really don't care that much about design details. No doubt there are many who do, and no doubt there is a third group that vacillates back and forth depending upon what seems trendy that year or what their friends have or whatever.

<comment><USER7> Some of the "no design still sells" can be attributed to "corporate buyer doesn't care about people using what buyer is buying".

// I should say that Toshiba does have some good design in some of their products</comment></comment></comment></comment>


United Airlines' policy changes include paying bumped passengers up to $10,000 - <AUTHOR> http://www.latimes.com/business/la-fi-united-fixes-20170426-story.html <comment><USER2> > United Airlines will offer up to $10,000 when a traveler voluntarily gives > up a seat on an oversold flight

> Stop forcing passengers already seated to give up their seats, except for > safety or security reasons.

It is extremely frustrating to see people keep conflating removal _from an aircraft one has legitimately boarded_ and _denial of boarding_ , especially given that there's a significant legal distinction between the two, both in governing law and in contracts of carriage.</comment>


Why the hell not? - <AUTHOR> https://signalvnoise.com/posts/3854-why-the-hell-not

<comment><USER2> I really appreciate Jason Fried's and DHH's ability to not only think outside the box, but also be brave enough to be very different. Reducing risk by simply mimicking successful companies gives somebody else the opportunity to innovate instead.</comment>


Nutritional therapies for mental disorders (2008) [pdf] - <AUTHOR> http://download.springer.com/static/pdf/139/art%253A10.1186%252F1475-2891-7-2.pdf?originUrl=http%3A%2F%2Fnutritionj.biomedcentral.com%2Farticle%2F10.1186%2F1475-2891-7-2&token2=exp=1452899350~acl=%2Fstatic%2Fpdf%2F139%2Fart%25253A10.1186%25252F1475-2891-7-2.pdf*~hmac=a2d34603776beca8acf7a243f02c08e1f29dce5bca73ac72b346f22a472a1fc3 <comment><USER2> I think humans' need for the polyunsaturated oils is vastly over-emphasized. Omega-6 poisoning (excess consumption) definitely contributed to my girlfriend's predicament.

</comment><comment><USER3> It has all the usual suspects supplements that seem to do nothing at all.</comment>


Curve Your Wheels: Architect-designed bike storage system - <AUTHOR> http://archpaper.com/e-board_rev.asp?News_ID=3608 <comment><USER2> These don't seem very space efficient. In Ottawa, we have bike racks like this: <http://i43.tinypic.com/verak2.jpg>

Believe it or not, you can easily lock 6 bikes to this.

Side note: I couldn't find a picture of this rack anywhere on Google image search (I checked 10 pages for keywords "Ottawa bike rack"). On Bing image search, it was the first result.

<comment><USER3> It isn't space efficient, but I think their business plan is based on perception of efficiency. You can see that by the way they placed the arc over the tree, which gives the illusion of having more sidewalk space.

What they haven't counted on is that people will lock their bikes to anything they can, and in any way possible. People will end up locking directly to the arc itself which will case insertion and removal of a bike on the arc to be problematic. This is because the front wheel needs to ride in the groove of the arc, and a lock will obstruct it.

I see this product as something that non-bike people in the city offices will love because it gives the feeling that they are doing something to encourage bike use. The reality is that these racks are far more expensive than a standard inverted U, offer much less flexibility, and are less space efficient.

<comment><USER3> I just realized another problem with this design. As any bike person will know; many bike racks are littered with abandoned bikes that are just locked up. For a traditional inverted U or bike rack this isn't a major problem because it is usually possible to find a good way to still lock your bike up. When an abandoned bike is left on one of these racks it will consume even more room, and people will be forced to lock their bikes up in an even more annoying way.

I really don't like this product. (yes, I am a semi-fanatical bike person)

</comment></comment></comment><comment><USER4> I think this is another one of those why architects are architects and engineers are engineers, first it looks much much more expensive than a traditional on ground bike rack which takes minimal installation and is much more of an eyesore and looks as if it cannot accommodate very many bikes.

</comment><comment><USER5> It's a bit hard to tell from the image shown, but contrary to the claim in the article, it doesn't look like it would be difficult at all to steal the front wheel of the bike.

<comment><USER3> It would be, but it would also be easy to lock the front wheel to the arc itself.

<comment><USER5> if you're carrying around a second lock</comment></comment></comment>


Apple R&D (1989): Mousing is faster than keyboarding, but users don't believe it - <AUTHOR> http://www.asktog.com/TOI/toi06KeyboardVMouse1.html <comment><USER2> The mouse, when chosen as the primary user interface (for something other than a fundamentally-spatial task, like CAD) is a _soul-destroyer._

This is because operating a mouse-based user interface is a _conscious_ process - one which cannot be fully relegated to "muscle memory." Unlike the keyboard, the mouse scarcely rewards learning at all.

Erik Naggum, in a Usenet post (circa 1997) explains this far better than I could:

 _"The clumsiness of people who have to engage their brain at every step is unbearably painful to watch, at least to me, and that's what the novice- friendly software makes people do, because there's no elegance in them, it's just a mass of features to be learned by rote... it's sadly obvious that we are moving into a way of working that is predominantly _conscious_, for which I believe the human brain was never prepared. we no longer have the time to let skills sink into the autonomous nervous system, as it were, and even if we try, the criminal in Redmond, WA, has a new, incompatible version out by the time we learned the last version... One of the joys of learning to ride a bicycle is to stop thinking about it -- the feeling that I had successfully programmed my body to master a bicycle at least thrilled me as a kid (except I didn't know the verb "to program")... we need to communicate to users that learning to use Emacs is like learning to ride a bicycle -- it does take some time and effort, it's a worth-while skill to have, and then you never forget. I firmly believe that the novice-friendly software is like giving people several sets of supporting wheels so they won't tilt, but could get moving right away, and then never taking them off, preferring that they keep using them and moving so slowly that they always need them. of course, if you argue that they should remove the supporting wheels to such users, they will, admittedly correctly, argue that they will fall _splat_ on the ground and ruin their three-piece suits. clearly a no-go."_

([http://groups.google.com/group/comp.emacs/msg/821a0f04bab918...](http://groups.google.com/group/comp.emacs/msg/821a0f04bab91864?dmode=source&output=gplain))

<comment><USER3> I spend most of my computing hours using the keyboard 99% of the time. I can completely agree keyboard interfaces are very rewarding.

However, I believe there is "muscle memory" that can be learned using the mouse. For example, playing a lot of first person shooter games in my day, one can learn and memorize the nuances of moving the mouse. Correlating the amount and direction of movement of the mouse with the response of the screen is, I believe, a skill that can be learned and is quite rewarding.

<comment><USER4> Unrelated, but one of the things with FPS's and such that annoy me the most is that you are required to use the mouse to achieve top efficiency. It would be great if someone made a game or extended the options to allow for better keyboard navigation / aiming. Like key combinations to tweak the interval size for a directional key (speed). I.e. shift+w, alt+w, ctrl/cmmd + w, maybe vim- like w20, etc. Also for increasing turn intervals like 45, 90, 180, and custom degree immediate turns.

<comment><USER5> You used to use the keyboard for all actions in FPS's. The first Quake is an example of this. And it was goddamn terrible, which is why everyone started playing shooters with mice as soon as possible.

Wasn't it back around that same time period that some people also tried playing FPS games with a joystick? Probably would have worked ok for Doom, but I can't see it working as well with anything that allows vertical aiming.

<comment><USER4> The controls from the original Quake is not what I'm suggesting. Controlling your movement and aim via keybaord right now IS terrible and I'm not disputing that.

What I'd like to see as an experiment is having a much finer grained control over your keyboard sensitivity.

As an example, let's say you have _"a"_ mapped as your left turn (not strafe) key. So pressing and holding _"a"_ gives you the standard movement speed you've come to expect. Pretty terrible.

Now let's say holding shift and pressing _"a"_ gives you a turn speed that's twice as fast. Already this is a pretty significant improvement and offers you some control over you turn speed using only the keyboard.

Now let's add a couple more modifiers; crtl/cmd for 3x speed, alt/opt for 4x speed. Let's also add some new keys for turn 90 degrees, turn 180 degrees, turn 270 degrees, and these are all instant, just like a fast mouse turn.

A mouse still allows for much more granular control when it comes to aiming etc. but for someone who spends to time to really adapt these keys it would close the gap significantly and may even make keyboard aiming / turning a viable option.

I could be completely wrong though and it might just feel terrible, but I'd love to test it out to see.

</comment></comment></comment></comment></comment><comment><USER6> The first rule of interface testing: Test the actual interface, on the actual problem, with the actual userbase.

This classic article is from 1989. You wouldn't believe what a state-of-the- art interface looked like in 1989. My awesome shiny new Mac SE/30 -- an excellent machine -- had a 512 by 342 black and white display (and I do mean _black_ and _white_ , not greyscale) and a 16MHz processor, which was considered fairly powerful.

My point is: We lived in a totally different universe back then. So, admire the methodology, but don't waste time debating the relevance of the results. Do some new measurements on _your_ interface with _your_ tasks. This is especially important now that touch interfaces have finally escaped from the lab: We are only starting to develop experience with such things, and everything is up for debate again.

<comment><USER2> _> You wouldn't believe what a state-of-the-art interface looked like in 1989. My awesome shiny new Mac SE/30 -- an excellent machine -- had a 512 by 342 black and white display..._

You wouldn't believe what a state-of-the-art interface looked like... in 1981:

[http://www.digibarn.com/collections/screenshots/xerox- star-8...](http://www.digibarn.com/collections/screenshots/xerox- star-8010/index.html)

Crappy consumer hardware is never "the state of the art." Even now, when it's all we've got. The art remains sadly frozen in time.

<comment><USER6> I meant the state of the _consumer_ art, of course.

</comment></comment></comment><comment><USER7> If MMORPGs existed back then, this would not have been written. I don't know if anyone here is/used to be a gamer, but ever tried using your mouse to click skills/gear swaps? It takes forever, and completely distracts you from the flow of the game.

I used to play RO, and in /bm mode, I had access to 24 hotkeys (qaz rows). Enough? Hell naw. Even after they gave us access to another 8 keys (total 32), I still had macros set up for playing. On 31ms average ping to the server, I could dodge .3s casts - absolutely impossible by clicking.

While the mouse is more intuitive in the beginning, for anyone who actually uses their computer a lot, the keyboard becomes increasingly faster. Having to find the developer tab on excel and then hit export, save, and yes is much slower than Alt->L->E->Enter->Left->Enter for example. The idea of hotkeys, is just like ctrl+z, ctrl+c, and ctrl+v, they become intuitive.

A funny anecdote: I used to use ctrl+z (undo) hundreds of time a day when I was designing Worms Armageddon maps in paint. There came a time, where when I made a mistake in class on paper, my left hand would automatically go into the ctrl+z position, and move down even when there was no keyboard.

<comment><USER8> I don't think that anyone argues that mousing to small, arbitrary targets is more reliable or faster than keyboarding. Menus are a special case in this study because they abut the top of the screen (at least, if your OS's UX is reasonable), so you only have to care about x-axis accuracy.

Try mousing to the reply button on a HN page vs mousing to the Edit menu, it's easy to see why one might be faster even if your pointer is closer to the reply target.

</comment></comment><comment><USER9> Every other year when this article hits the latest aggregator the same conversation erupts.

People need to remember:

1.) This was the result of an actual user interface study. Responding with anecdotal evidence makes you seem less than intelligent.

2.) This only applies to the specific type of software studied (perhaps even within the time frame) and should not be taken out of context. Bringing up Emacs or Vi is completely out of scope with the discussion and if I had the power to; I'd down vote each comment that does.

<comment><USER10> Their whole argument seems to be about the use of simple hotkeys (cmd-p) vs menu items (File->Print).

Text editors are a completely different application of the same input devices. I also think that studying the efficiency and speed of typing complex text is much harder than measuring the speed at which a user can activate a simple command.

</comment></comment><comment><USER11> I'd like to see a breakdown of exactly what's faster and what isn't. Obviously, typing text by clicking on an onscreen qwerty keyboard (or better yet, a menu) would not be faster than typing via a regular keyboard, so the mouse isn't _always_ faster than the keyboard. Is typing text some magical special case where the mouse becomes much slower? I find that hard to believe.

Tog's article makes it sound like mousing is always faster, but that's clearly and incontrovertibly wrong. I know nuance doesn't make for an eye-catching headline, but it would be nice to see somewhere in the essay.

<comment><USER12> Using arrow keys to manipulate a virtual mouse to move an arrow cursor across the screen is even more hopeless than typing with a mouse on a virtual keyboard. Any device emulating another will probably not show its best face.

(Edited for clarity since people seemed to misunderstand my meaning.)

<comment><USER13> But using `(` in vim to move the cursor backwards by a sentence is probably better than using a mouse--which involves locating the previous sentence, locating the mouse, locating the mouse cursor, moving it to the spot, and clicking.

<comment><USER5> You're manipulating words to make the mouse operation sound more arduous than it is. Similarly, I could say "when using the keyboard, you have to recognize that you wish to move the cursor backwards by what vi arbitrarily calls a sentence, then remember what the command you want is, then hold down the shift key, then hit the '9' key, then locate where the cursor has jumped to".

The user knows where the mouse is, and as soon has he grabs the mouse and starts to move it, the location of the cursor becomes evident. Moving to the spot and clicking is then an exercise in the kind of hand-eye coordination most people master by the age of 3.

<comment><USER14> I really disagree. Getting around in text with a mouse is unbelievably tedious once you learn the shortcuts in Vim.

<comment><USER5> Getting around in text with a mouse _in Vim_ is probably unbelievably tedious, because you're using an editor designed in the 70s to be used with the ADM-3 terminal, from which a mouse was definitely absent (I have one in the closet, it's nice but doesn't even have a microprocessor, just TTL :)

<comment><USER14> Right, that's why I use Vim.

I mean, sure, in Word, I can hit the "Home" key, if I want to make things harder for myself than Vim but easier than mousing around. But that's about all.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> Regardless of the original claims on keyboard versus mouse (there is more recent work on that subject), there are some really nice gems in the article and comments, that are still relevant for current interfaces:

" Guideline: The keyboard interface must not dictate the design of the visual interface.

Guideline: The work to design and build the keyboard interface should not sap resources that are needed for the creation of the visual interface. "

Nolan Larsen from WordPerfect Corp. puts it nicely:

" ... When scrolling the text horizontally in a window we would refresh the text by redisplaying each line starting at the top. This resulted in a wave of text rippling down the screen, and many complaints that the screen refresh was too slow. The remedy was to scroll the bits already on screen and then redisplay each line from the top. The second implementation was actually slower than the first because we incurred the overhead of scrolling the bits before we even started to display the new text on the screen. However, the perception was that there was an immense increase in speed. We stuck with the second implementation because it increased the overall satisfaction of the user even though it actually decreased the throughput of the product.

In my mind, perception is stronger than reality. A user's perception of a product is what causes him to purchase it and influences his satisfaction with the product... "

<comment><USER16> _The keyboard interface must not dictate the design of the visual interface._

I'm writing this on a borrowed Mac and hating the damn thing (damn mouse-base dreck seriously slows me down).

I would say that because of its keyboard use, the Windows interface is far more effective than the Macintosh interface but that the Mac interface is designed to _seem_ usable. I would suppose something that _seems_ great is exactly what companies should sell for their own benefit. I'm happy that Mac is not yet universal...

<comment><USER17> You're conflating speed with usability. I'm insanely fast on Windows, to the point where coworkers would make a sort of spectacle out of how fast I can open windows and explore the filesystem and such, but it's just because I know the shortcuts while they fumbled with a mouse.

Windows' keyboard accessibility combined with its responsiveness blows all other OSes out of the water, Gnome is accessible but less responsive, OS X is not accessible but responsive.

OS X is not keyboard-accessible at all, but it's more usable for novice users, as it doesn't confuse them with many options, the UI is cleaner, everything is laid out better, etc. I don't think anyone claims that using OS X is _faster_ per se...

<comment><USER18> OSX is not keyboard accessible by default, its is not however "not keyboard- accessible". Go into system preferences and turn on keyboard navigation and adjust the keymaps to your hearts content. Heck add scripts to execute on certain key combinations if you want. And if you like you can remap what its defaults are to whatever you like.

OSX is setup to be transparent to novice users. That doesn't mean it cannot be setup to be used with a keyboard. Just that the default, which for 99% of users doesn't allow they keyboard to interfere with a novice user.

I can get OSX to do quite literally everything from the keyboard, I'm not sure how one can argue it isn't keyboard accessible when it is trivial to turn on. And being the 1% of the population that cares about it, power users shouldn't be afraid of learning how to turn it on.

Hopefully this didn't come across as harsh, but I just get annoyed at people that equate OSX = mouse only interface. When you can tell the whole idea behind the interface is to make default things simple to use with a single mouse button and make the rest possible. Despite what we think the actual idea of more than one mouse button is about as foreign as trying to understand Russian to an Englishman. Its more cognitive load than most care about.

<comment><USER19>
      > I can get OSX to do quite literally everything from the keyboard,

I call foul on that one.

Perhaps if you said "I can get OSX to _eventually_ do everything from the keyboard". I say that because of the 9 menu items showing for Chrome right now (if one includes the Apple), I can get to exactly one of them using Ctrl-F2. If I wanted to jump to the History menu, it is Ctrl-F2 followed by five right- arrow presses. If I were on Windows, I bet a Euro it would be alt-H or some such.

I just get annoyed at people who think that an _option_ to turn on tabbing onto controls and to hotkey onto the Apple menu (or the dock) somehow equates with the incredible keyboard-friendliness of some other OSes.

<comment><USER20> type Ctrl-F2 and then "hi". Problem solved.

<comment><USER17> Three keystrokes, the first of which is awkward and the rest of which are menu-dependent. In other OSes it's just alt+accelerator, for anything you want.

</comment></comment></comment></comment></comment></comment></comment><comment><USER21> Reading comprehension, folks, seriously -_-' All your arguments is either `but keyboard feels faster', or `there are some actions slow to do with mouse'. The former is addressed in the article:

 _> While the keyboard users in this case feels as though they have gained two seconds over the mouse users, the opposite is really the case. Because while the keyboard users have been engaged in a process so fascinating that they have experienced amnesia, the mouse users have been so disengaged that they have been able to continue thinking about the task they are trying to accomplish._

It's there, plain and simple: keyboarding around switches off (or busy-waits) a part of our brain, while providing nice tactile and quantized visual (every character stop) stimuli in regular interval. It _feels_ faster, because that's how our brain is wired to measure time.

On the other hand, mousing around doesn't provide any cool stimuli until you actually activate the target widget. It feels long-ish, because the brain has to constantly work on adjusting cursor trajectory and nothing serious happens till you actually activate the widget.

The later argument is the case of rarely used commands. _Of course_ ^S or ^P is faster than hunting the `Save...' or `Print...' through _modern_ long menus, but that's an exception; an action to be taken once every few minutes. Manipulating text tokens and blocks (that's what we do most often, right?) is inherently faster with mouse than with Vim-ish or EMACS-ish regexps. Same for browsing hyper-text documentation or 'net forums.

Tell me you can select and move around a word, line or block of code faster with regexps than with mouse, and I'll gladly do it faster with mouse. On the average, anyway, which is what matters in the longer run.

<comment><USER5> Addendum: When you watch somebody working with Vim, and he looks _so fast_... consider that it's probably you hearing and seeing the massive stream of ^D^D^Djjjjjj3yykkkkkkkkp he has to type to find a chunk of text, yank it, and move it a few lines up. And that was me being generous, assuming he needs to cut 3 entire lines, not parts of a line. Working with the mouse looks slow because it's just a few clicks and maybe a keystroke or two.

<comment><USER22> /foo<CR>

3yy

/bar<CR>

p

<comment><USER23> …with thinking pauses a) figuring out what to search for: /fo or /foo or even /foo\\. and b) for checking that your idea about the search term was correct. Repeat for the search for 'bar'

I am not claiming that this isn't faster for you or in general, but Tog has/had data to defend his claims, and data that that introspection can be unreliable in judging task duration. All you (and I) give are anecdotes.

<comment><USER22> no for the thinking pauses: _thinking in code_ is an advantage.

</comment></comment></comment></comment></comment><comment><USER24> There's a nice post by Jeff Atwood from 2008 that says this is crap for modern systems, but he does a nice job of putting it in historical context. There's just no way going to the File menu, scrolling down to Print and then clicking is faster than "Ctrl-P" (or Cmd-P) with your left hand.

Link: [http://www.codinghorror.com/blog/2008/03/revisiting- keyboard...](http://www.codinghorror.com/blog/2008/03/revisiting-keyboard-vs- the-mouse-pt-1.html)

<comment><USER25> Possibly for print, but then again I don't press print very often.

For scrolling down a couple of pages, copying 3 lines of code, moving back up, pasting, and then changing a couple of characters, I actually believe I am faster with a mouse than keyboard, after quite a bit of trying to master vim.

<comment><USER26> m'

"For scrolling down a couple of pages,"

CTRL-B and j several times (vs. scrollbar/scroll wheel)

"copying 3 lines of code,"

3yy (vs. select block, right-click -> 'Copy')

"moving back up,"

'' (vs. scrolling)

"pasting,"

p (vs. right-click > 'Paste')

"and then changing a couple of characters,"

(depends on the text)

"I actually believe I am faster with a mouse than keyboard, after quite a bit of trying to master vim."

I would humbly suggest the sum of the parts is greater than the whole, especially the use of marks and (unmentioned here) macros or the '.' repeat command.

<comment><USER27> "3yy (vs. select block, right-click -> 'Copy')"

Yeah, but then you're stuck counting lines. Whereas with a mouse, you just click and drag exactly what you want.

"p (vs. right-click > 'Paste')"

This is more difficult if you've copied whole lines but want to paste inside a line or replace text with your paste.

I love me some vim, but I do think it's easy to think we're faster than we are. I wonder if I recorded myself and then watched it if I'd think I was as fast as I feel that I am.

<comment><USER26> > _Yeah, but then you're stuck counting lines._

:set relativenumber

> _This is more difficult if you've copied whole lines but want to paste > inside a line_

I agree, but the case where I want to copy multiple lines and have the first line start in the middle of a line is very rare in the languages I use.

> _or replace text with your paste_

That's what Visual mode is for. Personally, I find pressing Shift-V then j a few times is usually easier for line selection than acquiring the left line- selection margin or finding the end of the text.

In these cases I wouldn't say it's faster as much as I would consistent and easier. I do find myself having to clean up slight mistakes more often with mousing than I do vim commands.

</comment></comment></comment></comment></comment><comment><USER28> This is true, because they were testing in a mouse-based interface. Of course mousing would be faster.

Now take an app that is keyboard-centric like Notational Velocity (or gvim/macvim). All of a sudden keyboarding is more efficient.

Now, compare the speed and efficiency between the two paradigms. No surprise who wins there.

Use the paradigm that fits the application. Use the applications that fit your style. Nothing new here.

</comment><comment><USER29> Many of you have claimed that a keyboard is faster/'superior' but it really depends on your form of mouse and the application at hand. I recently got a new Macbook and have happily replaced some of my previous keyboard shortcuts with multitouch gestures. With the aid of Jitouch and hotkeys I can easily navigate web history (and go back and forth in folders and other programs), switch spaces, maximize/minimize windows, show all applications, hide all applications, show all spaces+applications, snap windows to the left or right half of the screen, zoom in on pictures or web pages, and other less-used actions.

I am not trying to say that multitouch+jitouch+hotcorners is the best solution for all interactions. Surely for activities like coding it's probably not. But over the past few weeks I've grown to prefer it for web browsing and general navigating the OS.

<http://www.jitouch.com/index.php?page=jitouch>

</comment><comment><USER30> This argument is flawed in several ways: 1\. Repetitive tasks get progressively faster with the keyboard as the motion gets smoother as your practise it. 2\. He allows two-handed using editing Ctrl+X/C/V as a special case but there are other similar situations.

I'd like to see the exact methodology. 2 seconds to decide which key press to use sounds fishy to me.

<comment><USER31> Isn't your first point also true of mouse movements under certain circumstances? I am specifically thinking of the Apple style of fixing the menu at the top of the screen given the display resolutions at the time, and of "pie menus" on today's hardware:

<http://en.wikipedia.org/wiki/Pie_menu>

A friend works on high-end image editing software (Maya). Their research is that pie menus are faster than keyboard commands and both Apple and Windows style menus because the user is learning write flicking gestures and their hand is already on the mouse for drawing activities.

</comment></comment><comment><USER32> I think context matters here. The article was discussing GUi word processor usage.

When using an app like Pages or Word, the mouse will be faster because keyboard navigation in those apps is terrible. You may be able to save some mousing with command-p, but for general editing tasks like highlighting and moving text, the mouse will always beat the keyboard.

In vim, however, editing via keyboard is well designed and always faster than mousing.

The true test would be to compare editing LaTex with vim versus a rich text document with TextEdit.

</comment><comment><USER33> Ok, so what ? You can write faster with keyboard or move faster with mouse, but do you really need to be so fast ?

I'm really curious ( and not trolling ) : Don't you guys need to think "before" and "while" coding ? Or you just type as faster as you can ? I need to design and "try" code on my mind and then write it, i can make some last moment corrections while writing. Most of time, my code works as i designed and i'm spending much of my time with designing not writing. So what's the matter ?

<comment><USER34> Agree 100%. I've never gotten _really_ proficient at any single text editor, but I've also never really felt like typing/editing was a significant part of the time I spend programming. Hearing other people talk about their amazing productivity gains from time to time makes me think I should master a particular text editor, but I don't expect I ever will because it just doesn't seem like a limiting factor to me. Could be wrong.

</comment></comment><comment><USER35> (Warning: I am very opinionated on this matter)

I made a switch from PC to Apple 4 years ago. The lack of meaningful keyboard shortcuts drives me mad. Consider a simple task of switching applications with the Cmd-Tab key: Minimize the only window of your application. Switch to another program, then cmd-tab back to your original program. Where did the window go? Oh, it's still sitting in the dock. So, grab the mouse, go get your window - and if you have 3 monitors (like I do), your mouse can be in a different zip code and it takes a long time just to find the cursor.

In fact, I think if we did this study today, we would find that due to bigger screen sizes, it's harder to spot the cursor, which would probably increase "mousing" time. However, Apple has 6 modifier keys on a laptop: Shift, Fn, Control, alt, option, and cmd, so trying to remember these keys can be a challenge too (and drives me crazy as well). What is the full screenshot shortcut? Control-Cmd-Shift-3 (aka finger-gymnastics)

<comment><USER36> There's your problem right there. Don't minimize windows in OS X just because that's what you are used to from decades of training on Windows. Hide the window instead (CMD+h). This way when you get back to it with CMD+Tab it magically appears again.

On the original topic. The whole idea makes me laugh. There is no way anyone driving with a mouse is going to be faster than I am with a keyboard. Navigating the filesystem, manipulating the filesystem, editing text esp. is laughable (I love VIM and nothing can come close to the speed I can edit in VIM, esp. not anything you have to drive with a mouse). Very few applications are better done with a mouse/pad (like Photo editing in Photoshop, but even there various keyboard shortcuts are faster than navigating submenus).

<comment> misuse-permit > I love VIM and nothing can come close to the speed I can edit in VIM, esp. > not anything you have to drive with a mouse

A contrived example, but I'd like to see someone edit a Java project faster in VIM than I do in Eclipse.

Look, I know how to use VIM better than the next guy (you'll just have to trust me on this), but when it comes to writing code for large projects I can't stand using VIM. It makes me feel like I'm looking through this tiny window to my code. Give me a mouse and a powerful IDE, and it's like I suddenly have a 10,000ft view of the world.

<comment><USER36> I prefer Eclipse with VI plugin. You get the best of both worlds. And if I'm not happy with the vi plugin implementation, I can always continue editing in actual VIM by typing :vi in Eclipse.

All, that being said, I have heavily customized VIM with ctags, cscope, Command+T plugin and taglist.

Command+T alone is really worth it, you can open any file in the entire project structure by just typing a few letters (just like Eclipse's CTRL+SHIFT+t, but works on any file type).

With all these I can navigate code, and edit pretty much like I am in Eclipse, but unlike Eclipse this combo works for C,C++, Ruby, Python, Perl, Javascript etc. as well.

<comment><USER37> Ctrl+Shift+R opens files in eclipse.

</comment></comment></comment></comment></comment><comment><USER38> I think a lot of the difference ends up being more a matter of expressiveness than speed of simple operations. I'm pretty good in vim, but if I wanted to highlight some arbitrary region of text I'm pretty sure I'd be faster at using the mouse than I would with normal vim navigation.

However, I almost never want to highlight an arbitrary region, but instead a sentence, a paragraph, a line, the text in some quotes, the text until the next semi-colon, or something similar. And vi gives me easily expressed intrinsics to do all of those very quickly.

On the other hand, I can use a mouse just fine with a soda or cup of tea in my other hand, something I can't do with a keyboard. :)

</comment><comment><USER39> Many people here are creating a false dilemma out of mousing and keyboarding. The argument isn't even necessarily about mousing vs. keyboarding, it could be about GUI vs. command line/hotkey. GUIs provide a discoverable profile of all actions (with the most common tasks optimized visually, hopefully). Hotkeys package the common actions to save time.

In any interface, there is a learning curve. Some users never progress beyond the most basic stages, and each time they interact with the software it's as if they are starting over. Other users develop further along the learning curve to the point that using a hotkey becomes cheaper. Many users bring overlap from other interfaces (which is what makes an interface intuitive — it fits the user's expectations). As more hotkeys are defined they will be for less and less common actions, which fewer users will learn, remember, and use. People will also move up and down the curve depending on their frequency of use with the software.

A useful product should have both. The more complex a product gets, the more the user skill stratifies (from newbs to pros), the more necessary both a GUI and hotkey interface is. The GUI provides a scheme for organizing the myriad features and functions as a fallback interaction layer, while hotkeys allow the user to leap ahead.

HN users are overwhelmingly savvy, which is shown by the support of keyboard interactions.

</comment><comment><USER23> I am not saying that the title given here is true (certainly not in general, with arbitrary small targets at arbitrary large distances. There also is quite a bit of follow-up research on this), but I do find it sort-of funny/interesting/sad (frankly, I do not know what to call this) to see many reactions "I do not believe it" without evidence, while one of the claims of this paper is that users do not believe the first result.

Oh, and IIRC, the original research was on a dual-monitor setup, moving the pointer over two screens. And yet, Tog _measured_ that the mouse was faster. I do assume he had a Macintosh mouse on a Mac, though. Compared to PC mice of the era, those were good (especially software-wise. There were PC mice were it was (as good as?) impossible to move the mouse by a single pixel.)

</comment><comment><USER40> I've been a Vim user for 4 years now. I enjoy Vim and I'm definitely more productive using all those household keystroke shortcuts without having to move my fingers too much around. Really, everyone should try Vim once in their lives.

But there's something weird that happens to me whenever I adventure myself into a longer or smarter key combination that does a lot for little (ie. a macro). My mind will actually figure out the correct sequence quickly (< 1s) and fire it up... but then, after accomplishing my goal, I freeze during ~5s with a strange, contemplative doze in my face. That's when all the productivity it gave me goes down the drain.

So maybe too much keyboard shortcutting ends up overloading the brain at some point or another, in an effort to learn, rinse, repeat or out of sheer ecstasy.

</comment><comment><USER41> Part 2: <http://www.asktog.com/TOI/toi22KeyboardVMouse2.html>

Part 3: [http://www.asktog.com/SunWorldColumns/S02KeyboardVMouse3.htm...](http://www.asktog.com/SunWorldColumns/S02KeyboardVMouse3.html)

<comment><USER42> Oh, this is awesome. Read Part 3.

It's not entirely clear if the test he relates (as "the test I did several years ago") in Part 3 is the same test he is referencing in Part 1. Part 1 does mention $50M worth of testing, after all.

But the test in Part 3 is to replace all instances of '|' with instances of 'e', in a chunk of English text. Keyboard users take 99 seconds, mouse users take 50 seconds.

He also implies that his experiment does not involve a cursor scheme that allows word-wise or sentence-wise movement (something present in friggin' Notepad, much less a real editor).

I'm not even gonna _start_ singing vim's praises at this point, because aside from preaching to the choir, it's like shooting fish in a barrel.

</comment></comment><comment><USER17> I think this study is too old to be applicable. I'm sure "ctrl+w, ctrl+t, ctrl+l" is much faster than "click the little X on the tab, click new tab, click on the address bar".

I won't even try to compare vim/emacs to Word.

</comment><comment><USER43> I have two words why i prefer keyboard over mouse: carpal tunnel. My wrist tightens up quickly when using mouse excessively. Typing is so much more relaxing.

</comment><comment><USER44> _(USS Saratoga was our code name during development of the extended keyboard because of its eerie resemblance to the popular aircraft carrier. Not so much the shape as the size.)_

Nice bit of trivia there. I remember the Apple Extended Keyboard being big, but not that big. IBM Model Ms are pretty much the biggest keyboard I can think of.

</comment><comment><USER45> I feel very fast (faster than with any normal editor) with MacVim but what if that also is just an illusion?

<comment><USER46> The equivalence of actions isn't the same, so this wreaks a bit havoc on the argument. Yes, if you e.g. select text in visual mode and the "cursor" keys, then you'd probably be faster switching to the mouse. If you use the semantic movement commands, things are a bit different. Never mind keyboard macros...

It's pretty hard to generalize activity, and you really have to take notice of the tasks and user groups selected for comparisons like this.

</comment></comment><comment><USER47> "If you are taking your hands off the keyboard, you are wasting time"

\- One of my Professors

</comment><comment><USER48> How about eye-tracking + keyboard?

</comment><comment><USER49> 1989 is the correct date.

<comment><USER50> It makes me feel old that I remember reading the original article when it first came out. When the first Mac came out in 1984, my roommate (an aerospace engineering student) was down on it until he came rushing home one day and excitedly informed me that, "I found out that I don't HAVE to use the mouse! They have keyboard equivalents for everything!" He ended up buying the Mac, but then went to work at IBM and was lost to the dark side.

</comment></comment><comment><USER51> bullshit

</comment><comment><USER52> >It takes two seconds to decide upon which special-function key to press. Deciding among abstract symbols is a high-level cognitive function. Not only is this decision not boring, the user actually experiences amnesia! Real amnesia! The time-slice spent making the decision simply ceases to exist.

I wonder if mussel memory ever catches up to make the time benefit break the other way. I want something closed, hitting f3 is the same as typing any other letter. I had to look down to see what F-button it actually is.

<comment><USER53> I think their claim is trivially disproven just by watching someone who's been using computers long enough. I don't think about the overwhelming majority of special-key presses, I just do them. Same with vim wizards and their tool of choice.

But, then, this was written in Ye Olde Days, where people hadn't really grown up with computers and may not have had that instinctual comfort with keyboard commands.

</comment></comment><comment><USER54> Apple R&D: finding exactly what they're looking for since 1989

</comment><comment><USER55> yes, the mouse may indeed be faster in a mouse-centric UI like that of osx/os9

but i use xmonad and/or dwm. i can tell you that keyboards are faster in interfaces designed for keyboards</comment>


Merging In The GNU D Language Compiler To GCC - <AUTHOR> http://gcc.gnu.org/ml/gcc/2011-10/msg00037.html <comment><USER2> Reading the thread, it's surprising how much work is still needed to merge the D frontend (GDC) into the GCC project:

* Assign copyright to the FSF which requires contacting all authors including those who are MIA.

* Update the code to the GCC coding conventions

* Submit for review patches to the GCC core that where shipped with GDC and get them accepted

* Finding a co-maintainer

* Promise to continue to maintain the code

* Implement naked functions attribute

* Convert the testsuite to Dejagnu

* Downgrade the zlib library used by GDC or upgrade the one in GCC

Those are all reasonable requirements from the GCC project, but impose some extra work for the GDC maintainers. Cheers to them for biting the bullet.

<comment><USER3> > Assign copyright to the FSF which requires contacting all authors including > those who are MIA.

What for? GDC is distributed under the GPL. Isn't it kind of the whole point of the GPL, that this kind of thing can be done without having to ask for special permission?

</comment></comment><comment><USER4> I'd be so excited for D to gain wider adoption. One area in which it really shines is in metaprogramming (compile-time code generation) that is such a headache in C++. <http://www.digitalmars.com/d/2.0/templates-revisited.html>

</comment><comment><USER5> I think this is good news, if it all happens. There are some hurdles though. D have always had a nice look about it, a good reliable, predictable, open compiler is a huge step to greater acceptance.

</comment><comment><USER6> once D is in GCC does that mean most of the rationale of Go(lang) is gone, in that both D and Go are supposed to be non-shitty C++.

Now I don't need to download another compiler to write D and I can use c libraries with it, I don't think Go has much over D in order to make me go to the effort of installing a Go compiler.

<comment><USER7> No.

D is a rethinking of C++.

Go is a re-imagining of C++.

<comment><USER8> I disagree. As far as I can tell, Go is a resolute step backwards from C++ in efficiency, modeling power, and generic programming. That's not necessarily bad; simplicity has its virtue, too. The larger problem is that Go fails to avail itself of the progress in programming languages theory and practice in the past 30 years.

<comment><USER9> Go is specially a huge step backwards from C++ in convoluted insanity.

<comment><USER10> as well as D.

<comment><USER8> without throwing the good parts away.</comment></comment></comment></comment></comment></comment>