Emacs and Vim - <AUTHOR> http://www.martinklepsch.org/posts/emacs-and-vim.html <comment><USER2> Wanna have fun with emacs? Try to integrate evil mode nicely in different plugins. Especially if you use totally different key bindings in vi (non qwerty layout for example). It was very painful experience for me. Yes, vim is far from ideal, yes neo-vim is looking like to be next iteration in vim evolution, yes no parallel tasks execution is pain. But at the same time there is vimproc. For clojure integration there is fireplace.vim which is also amazing in my opinion, for git there is fugitive. I don't see any real comparison in this post, more like "I was bored with vim, now I use emacs".

<comment><USER3> Yeah, evil-mode just doesn't play nice with lots of emacs utilities.

It's a good idea to use evil-mode only in code/text buffers and stay out of it when using e.g. GUD debugging. This, unfortunately, means that you're going to have to learn two sets of keybindings, the vanilla emacs ones and vim keys.

<comment><USER4> Yeah... getting caught out of evil mode can be scary... WHAT DO I PRESS TO LEAVE... CTRL-F... dafuq?

</comment></comment></comment><comment><USER5> Gah, the tutorial keybindings! They are mad. I've been using emacs for a very long time, and I can't imagine using those to navigate. Emacs has perfectly reasonable default keybindings these days, they just aren't the ones mentioned in the tutorial.

Command: move down one line

What vi uses: j

What the emacs tutorial suggests: C-n

What I use in emacs: the down arrow

<comment><USER6> Usually the strong defenders of emacs tell you that you must use c-n c-p c-b c-f to move because those are better and you will adapt in a short time.

Then the strongest defenders of emacs tell you that you must use whatever you want because the purpose of emacs is that the editor must adapt to you and not the opposite.

<comment><USER7> Actually I think the strongest defenders of emacs say you use C-s and the like for most navigation. Moving character-by-character is slow and inefficient, so the argument about whether C-n C-p etc. are better or worse than hjkl is irrelevant.

I have my own code editor which is more like vi than emacs, but I'm using interactive search in it.

<comment><USER8> _I have my own code editor..._

That's the best line I've heard to finish an emacs-vs-vi argument!

<comment><USER9> Well, sure, if by "finish" you mean "unite emacs partisans and vi aficionados in mutual and vaguely contemptuous pity".

</comment></comment></comment></comment></comment><comment><USER10> Emacs + evil, sure, but _please_ don't forget vim + slimv. I tried emacs for a bit when I was first jumping into lisp, but was also evaluating vim at the same time. After about 6 weeks I was having _fun_ with vim. About a year later, I was really fast in vim. Fast forward another year or two, I think in vim. There are no modes or movements or searches. There's just what's in my brain and it sort of writes itself. Granted, I'll stop and think to record macros here and there, but otherwise it's all really fluid. Add the fact that I do lots of server admin to the mix, and heyyyy there's vim already there. How ya doing ol' buddy?

Then you add slimv to the mix. Honestly I never gave slime a fair shake. I barely scratched the surface. But once I got slimv up and running, I felt like I didn't need to learn emacs+slime. Maybe there are some things I don't know about that I'm missing out on, but slimv, like vim, let's me think in lisp.

So if you're a lisper and you like vim, don't jump ship yet! Give slimv a shot.

<comment><USER11> I tried slimv recently and couldn't get it to work with Racket. There's a swank Racket project on github but it was extremely buggy. I also tried mit- scheme and it was buggy as well. It randomly freezes and I don't know why. (latest vim, etc.)

What do you use it for? It seems if you're using common lisp it's perfect, for everything else it works "in principle" but not really.

<comment><USER12> For what its worth, Emacs users usually use Geiser with Racket. Might be why Swank doesn't work all that well.

<comment><USER13> Yeah. I was going to say the only Scheme I have seen run in Slime/Swank is Chicken Slime, which is custom fork that overlays slime to handle specific extensions to Chicken scheme. I also play with Racket and had no idea a slime variant existed! Not that I would want it personally, as geiser only intends to support Guile and Racket thus far.

</comment></comment></comment></comment><comment><USER14> Emacs+Evil is the next Vim.

And yes, CtrlP is probably the thing you'll miss most.

But all the other things I got from switching from Vim to Emacs+Evil easily outweigh the missing CtrlP.

Vim was great, until I wanted to customize it heavily. It is simply not made to facilitate things like: child processes, SSH, understanding my code, a visual interface for Git.

<comment><USER15> Do one thing well. My text editor shouldn't be managing child processes or SSHing or trying to be a visual Git interface, and Vim does a great job displaying my code so I can understand it.

<comment><USER16> Displaying code and editing it are two separate things. Sounds like Vim is pretty bloated acting as both an editor and a pager.

Use ed to edit, and pick a side in the more/less wars if you want to read it.

<comment><USER17> I realize that you're joking, but... vim is a better less than less is, in almost all cases, for viewing code, because you get syntax highlighting.

I'm not a vim user, but I use it to replace less because syntax highlighting is the bee's knees: (you may need to change `vim74` to whatever it is on your system.)

      alias less='/usr/share/vim/vim74/macros/less.sh'

You can then do things like:

      less Makefile +400

which pairs very nicely with `grep -n`.

<comment><USER18> Why not just pipe pygmentize to less? That's truly embracing The Unix Way™.

      pygmentize foo.py | less -r

</comment></comment></comment></comment></comment><comment><USER19> Whether it's vim or emacs, I've always been amazed how these tools can become an extension of the brain like an instrument whose purpose is to materialize a thought process. Framed that way, the editor wars look like a pianist debating with a violinist of the superiority of their respective instruments to convey human emotion.

Watching a seasoned vim or emacs user create, mold, shape, reformat text like it was a piece of clay in the hands of a potter is truly inspiring.

As for me, my instrument of choice is Sublime Text (which, I guess, downgrades me to the status of a flute player), though I occasionally use vim for Ops stuff. I think there are some mac-centric UX patterns that I have a hard time giving up.

<comment><USER9> > I think there are some mac-centric UX patterns that I have a hard time > giving up.

I can certainly understand that; I'm a relative newcomer to the platform, and while Emacs (of course) continues to behave regarding meta keys in the fashion I've spent a lifetime learning, getting used to Option-arrows for "move to next/previous word", and Command instead of Control for shortcuts, is really bothering me.

(Of course, that's mostly just because forcing the user to cramp her hand up like that, in order to access even the most commonly used keyboard shortcuts, is just a really stupid and un-Apple-like piece of user interaction design, and I've yet to find a good way to fix it.)

<comment><USER20> If you'd like to properly remap _move to next /previous word_ and other commands in Mac OS X, I'd recommend Karabiner (which was previously called KeyRemap4Macbook).

[https://pqrs.org/osx/karabiner/](https://pqrs.org/osx/karabiner/)

I use it to map the emacs navigation keys for use across the OS, and find it really improves my experience. If you're interested in that set up, I use the following options, which are all listed under Emacs Mode: \- Control + PNBF to Up/Down/Left/Right \- Control + A/E to Command + Left/Right \- Option + B/F to Option + Left/Right \- Control + D to Forward Delete

Of course, I have _caps lock_ remapped to Control.

There are also Vi remap options in Karabiner, plus tons of other stuff.

Disclaimer: I'm a bit of an emacs lightweight, so it might be that the remapping options aren't as full-featured as what a more advanced user would like.

<comment><USER9> I use KeyRemap4Macbook for a variety of purposes, mostly related to making a PC-style USB keyboard play nicely with OS X. It doesn't go as far as I'd like, though.

</comment></comment></comment></comment><comment><USER21> Another option for "modal" editing in emacs is god-mode(1). It lets you use emacs commands without modifier keys. I have it set to change my mode-line color when it's activated, it's great if you want a little taste of vim but not the problem of trying to shoehorn vim key-bindings into emacs.

1\. [https://github.com/chrisdone/god-mode](https://github.com/chrisdone/god- mode)

<comment><USER22> I used to use this, but I found that a lot of the convenience of modal editing comes from the ability to compose commands. I took the time to learn Vim keybindings; now I use evil-mode and I like it a lot better than god-mode.

</comment></comment><comment><USER23> I don't know why, I find this post greatly uninformative. Yes, you can have some kind of Vim mode in Emacs (as you can in Sublime) and yes it takes time to remember key-bindings. If you have years of experience in Vim, why would you expect to get used to Emacs keybindings in a short time?

It's like moving to a foreign country and then continue to buy and to eat only your old local food, and go out and talk to only people from your old home. You will miss so much.

</comment><comment><USER24> Hmm... this post didn't seem to say that much. We got a couple points and then a sudden conclusion. Just saying...

<comment><USER25> I agree, but it did kick off another "vim vs emacs" which is always fun :)

</comment></comment><comment><USER26> Until it goes wrong or you have to delve into elisp or you get carpal tunnel...

After 20 years of switching back and forth I decided I wanted an extensible editor not a programming language with an editor built in. That's worked well for me.

I really always just want the simplest thing that will work as I need to rely on it entirely and understand how it works. If I was to use emacs, I'd probably use mg as shipped with OpenBSD.

<comment><USER27> > Until it goes wrong

Why? Emacs reports errors fine in my experience and if not it includes a debugger.

> or you have to delve into elisp

What's the problem with elisp? I guess its a matter of preference, but in my opinion elisp is easier to understand than vim script. Emacs includes extensive(!) documentation for it in it's base distribution. Granted, it's a dated language nowadays, but 3rd party libraries - easily installed through elpa - like dash.el and s.el make it a much more pleasant experience.

> or you get carpal tunnel...

Again: Why? This article is about viper-mode which emulates vims key bindings so RSI should be exactly as likely as with vim itself. You could also adapt them to your needs, of course.

<comment><USER28> >What's the problem with elisp?

So I was trying to make Emacs _not_ drop its stupid temp files next to the opened file and found this piece of incomprehensible code:

        (setq backup-directory-alist
              `((".*" . ,temporary-file-directory)))

While in Vim:

        set backupdir=~/.vim/backups

Oh, and it seems I'm missing line numbers, let's google on how to enable them and found this page [http://www.emacswiki.org/emacs/LineNumbers](http://www.emacswiki.org/emacs/LineNumbers)

I still haven't gotten it to work.

Meanwhile in Vim

        set number

<comment><USER29> The reason the backup-directory in emacs is an association list instead of a simple string is that some people might want some backups in some dirs and other backups other places. More powerful → more complex.

Turn on line numbers everywhere by putting this in ~/.emacs.d/init.el:

        (global-linum-mode)

(Yeah, EmacsWiki is a mess, but that's not emacs' fault.)

<comment><USER4> When I spent a few weeks learning Emacs -- I had to filter out EmacsWiki because it lied to me so many times. :(

</comment></comment></comment></comment></comment><comment><USER30> I still do not undertand the devotion that people have with these text editors. I prefer Vim however I could see myself using it soley or even half the time. I feel like I know the basic commands and it is fast but with the ease of a sublime text or something similar why do people still use these pieces of software so frequently? (Not a rhetorical question)

<comment><USER31> Because UNIX shell is the most powerful integrated programming environment for development with any language/technology combination. Instead of your typical menu commands (you are lucky if you have 100 or so commands to do very basic and limited things on a selection that you must build with mouse manually) you literally have tens of thousands of extremely sophisticated commands that can easily be chained together to produce amazing things with very little work.

Vim is just part of that tool chain designed to edit text efficiently. Vim is not so much a text editor as it is a language for manipulating text. Vim has dozens of motion commands to move cursor over chars, words, sentences, paragraphs, code blocks, methods, pages, regex etc. So general form of vim commands is nCm i.e. repeat n times command C to the text cursor moves over with motion command m. So for example w is a command that moves to the next word. d is a delete command. So, dw says delete word. 5dw says delete next 5 words. Let's say you are inside if (.) block and you want to change the if condition. ci( says "change inner bracket text" (i.e. everything inside brackets). This deletes everything inside () and puts you to INSERT mode and let's you type new condition.

This makes Vim extremely predictable and discoverable. You learn a new command say gU (turn to upper case) and you immediately know how to turn to upper case entire word because you know how to move by words with w. gUw turn entire word to upper case. gU) turns entire sentence to upper case, etc.

After a while these things just become part of you, and you become really fast at bending text to your will without even thinking. The fact that you can navigate text/code and get to where you want in matter of milliseconds (faster than it takes you to take the hand off the keyboard and reach for the mouse, shake the mouse to find where the cursor is etc) is amazingly liberating of disruptive context switches.

And then if you add shell integration, it means you can apply advanced filters to your text to do pretty much anything. This gets as esoteric as run filter on regex in lines that match another regex, where regex can be any Perl compatible regular expression. But can also be as simple as reformat code, beautify paragraph, insert current date, listing of directory etc. Then you add code completion, file navigation etc and you have something amazing.

<comment><USER30> So where would you suggest going to learn all of this seemingly endless amount of information?

<comment><USER31> Don't aim to learn everything. Learn to be productive and get to the point where you do things you do fast enough. Vim itself has enormous amount of functionality, so it is useful to read vim reference manual. It comes with one and you can get one in PDF as well here:

ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf

Also read entire exhaustive help at least once so you get the idea of what is available (it can be done in one weekend, don't try to memorize too much just familiarize yourself with content, then later when you wonder how would you do that in Vim you will remember you read something about that once).

Vim has really great indexed help that you can access directly:

:h :h index :h <topic>

and there is also grep for help to search entire help for matches

:helpgrep <search_term>

No matter what you do understand that you will get slower before you get faster. At first expect your productivity to go down seriously, because everything will be strange and new. But persist with it and force yourself to use it. Once you get to the nicer bits you probably will not want to go back. After 6 months of regular use, you will not be able to back, every other editor will feel dumb and will frustrate you to no end (be careful when typing email: ESC key dismisses the compose dialog in a lot of email programs without asking you anything :D).

As for UNIX shell and tools, again get a good BASH tutorial book and learn the basics of interactive shell, learn how to do loops, globs etc. The rest is then all about learning individual tools, not shell itself, which is rather small command interpreter. Look in your /usr/bin and /usr/local/bin for commands and read their man pages. Experiment a lot with them and look at examples of creative use of these.

Back in the early 90s I had a year long course in vi (not Vim) but started using Vim on Amiga 500 days, and after 20 years I still come across new commands and ways to do things. This is the beauty of Vim, you grow with it and it never stops to amaze you. But it is a skill that you keep for a lifetime. It's like learning to touch type, you do it once and you type efficiently for the rest of your life. You may get faster or slower at times in your life but you are always faster than hunt and peckers. Same with Vim, dumb editors come and go, but none ever approach the completeness of Vim.

</comment></comment></comment></comment><comment><USER32> A relevant comic:

[http://hackles.org/cgi-bin/archives.pl?request=284](http://hackles.org/cgi- bin/archives.pl?request=284)

<comment><USER33> I was reminded of this one:

[https://twitter.com/tpope/status/439060962448912384](https://twitter.com/tpope/status/439060962448912384)

</comment></comment><comment><USER34> I do wonder what it would be like to use an editor where the main cursor navigation was forward/backward incremental search. One case of this is the Canon CAT[1] word processor, which used "LEAP" keys for cursor movement (and nothing else).

I'm often curious how productive it would be to use while coding.

1: [https://en.wikipedia.org/wiki/Canon_Cat](https://en.wikipedia.org/wiki/Canon_Cat) Bonus link: [http://clickamericana.com/media/advertisements/the-canon- cat...](http://clickamericana.com/media/advertisements/the-canon-cat-word- processor-1987)

<comment><USER35> The EasyMotion plugin for vim has a feature similar to this. When I start searching it matches incrementally, highlighting matches on each screen which I can cycle through with tab. When I see a screen with the match I want, I press enter and then the first 1 or 2 characters of each match are replaced with something like a, b, or ;a. Pressing the appropriate key combination jumps straight to the desired word.

However, if you're just editing text on the same screen you can skip the search. I have it set up so that I press ,w and then every word after my cursor has its first one or two characters replaced. I can jump to any word by pressing those. There's also a hybrid mode where pressing one key and then the first letter of the desired word highlights only those matching words on the entire screen, which I can then jump to.

[https://github.com/Lokaltog/vim-easymotion/](https://github.com/Lokaltog/vim- easymotion/)

</comment></comment><comment><USER36> I'm both a vim and emacs user. I love vim for all the reasons everyone always mentions, but emacs comes out ahead consistently basically because emacs-lisp is so much more usable to me than vimscript. I find it much easier to create or modify plugins in emacs... Don't like the (often overfeatureful) functionality of a plugin? Change it!

</comment><comment><USER37> The last time I tried Emacs+Evil I found that when pressing Ctrl+[ there was a slight delay when moving back into command mode. I was constantly tripping up when typing furiously.

This alone was enough to move me back to Vim. Everything else about Emacs was awesome. I would love to go back if I could get over this one problem..

<comment><USER38> Were you using console mode emacs? I use evil+emacs and I use it in its own window instead of on the console for that very reason.

<comment><USER37> Yes, I live in the console.

</comment></comment></comment><comment><USER39> I was looking at Slackware Linux the other day and came across this page [http://www.slackware.com/install/softwaresets.php](http://www.slackware.com/install/softwaresets.php). I enjoyed how emacs got its own software set due to its size.

</comment><comment><USER40> > I completely do not understand how anyone can use Emacs' default > keybindings.

I completely do not understand how switching modes is a good idea in an editor. It just doesn't fit in my brain somehow. I start typing and randomly end up pasting and cutting. I want to paste and cut it randomly types my commands in insert mode.

Emacs cords are pretty intuitive to me. I don't know many: just moving, saving, creating 2 windows, search & replace, cutting and pasting. There are hundreds more, but you can get away with a few basic ones.

Save needing to rebind the Ctrl key to CapsLock, emacs key-bindings are optimized to not have to move the hands to the mouse or arrow keys, which I appreciate. Vim's are as well, but again I don't like modes, so there is that.

<comment><USER41> I can't find it now, but the guy running [http://www.viemu.com/blog/](http://www.viemu.com/blog/) has a good explanation for this problem. Basically, while there are modes, you don't work like that. You are always in command mode, and you slip briefly into e.g. insert mode, before popping back out to the 'default' command mode. This perfectly described how I work in Vim, and when I passed it around my office, several people had 'ahah!' moments. YMMV.

<comment><USER42> [http://www.viemu.com/a-why-vi-vim.html](http://www.viemu.com/a-why-vi- vim.html)

<comment><USER41> Thank you!

</comment></comment></comment></comment><comment><USER43> So when i'm programming I find myself spending far more time thinking about what to type next than actually typing it, seems to me like there isn't much to gain by learning vim/emacs or am I missing something?

<comment><USER44> People often mistake the succinctness of vim's commands as an attempt to save a few keystrokes typing, but that's only a side benefit.

The vim command structure makes it trivial to define transformations on common blocks of text; words, sentences, paragraphs (lines), blocks of code inside {..}, etc. It makes it easy to repeat those commands, by repeating them a fixed number of times, applying them to every instance in the file, or asking for confirmation around each one.

But, most importantly, it means that we can now extract that little bit of text-transforming functionality into a script we can save and bind to a new command (if it's something particularly reusable). This is really what vim is about to me - providing a language to describe text transformations, in the form of sequences of commands. This means that the way I code every day, conveniently saving me a few seconds like you mentioned above, is the same method I use when writing/editing plugins/macros for the editor to do more complicated tasks, like say consistently formatting every line of a log file that begins with [ERROR] and removing all other lines, so we can process it with some other tool.

Sure, you could write a script in [python/perl/ruby/etcetcetc] to do all that just as well, but the point is that Vim provides a nice little domain specific language right at your fingertips, optimized for working with text at a higher level, capable of handling one-off jobs as easily as big jobs over a whole log file or even as a little command to be reused later.

</comment></comment><comment><USER24> My main concern with Emacs (at least on Windows) is that it actually crashes every now and then. I haven't dealt with many programs in the past few years that do still that.

<comment><USER45> I haven't used Emacs on Windows much but from what I remember crashing wasn't my main issue with it: slow I/O access time were the issue. For some reason they were orders of magnitude slower than on linux/osx.

</comment></comment><comment><USER46> If you want to see what Emacs is capable of, check "Emacs Mini Manual" that has the demo at the beginning: [http://tuhdo.github.io/emacs- tutor.html](http://tuhdo.github.io/emacs-tutor.html)

Then, if you worry about fuzzy project finders, better one exists that does not need fuzzy (I ditched all fuzzy finders for it): [http://tuhdo.github.io/helm-intro.html](http://tuhdo.github.io/helm- intro.html)

</comment><comment><USER47> So many Emacs articles the recent days... please tell me: Should I really switch to Emacs as a web developer? Is it really superior to SublimeText and Brackets for a web dev?

<comment><USER48> It depends on how you plan your future. I've used quite a few text editors over the years (Bluefish, Scite, Homesite, Phase5, Idle, TextMate, Vim, others). I switched to Emacs more than a year ago with one clear goal: Not having to switch anymore. You see, most of the editors above (except vim) used to be good and then were deprecated, sold, stopped, and so on. Which of those has been existing for more than 20 years and is still able to hold up to new editors. Sadly, none (One could argue for TextMate 2, but in between there were many, many years of staleness).

I was fed up with having to switch to a newfangled editor every so many years, having to identify new plugins, having to learn new keybindings. I've used Vim for 7 years (I think) and it came pretty close, but in the end the archaic VimScript language and the lack of async commands was something that was nagging me. I wanted to call an editor home, and hone my skills until I pass away, increasing my arcane knowledge over 10-20 years, learning ever more about the scripting language, commands, and writing more and more specific plugins that help with my tasks.

I still want to be coding in 10 years, but I don't want to switch text editors ever again. Emacs shall be my final editor [1], and that's why I decided to switch. Because I can see Emacs still going strong in another 20 years. I wouldn't want to say that about Sublime, or really any other editor right now.

[1] There's a case to be made that NeoVim is going to be great, and it may well be, but right now I'm really, really, really happy with Emacs + Evil. Nothing is perfect, of course, but the things that bug me are really, really small things that I could probably even fix, if I'd invest enough time; but they don't bug me enough for that.

<comment><USER49> Maybe I'm a bit dense, but when are asynchronous commands a pain point in an editor? I mean, you can run eg a script that forks into the background, right? I'm not sure I really want to do "r! long-running-thing-that-updates-buffer". I can see me wanting to do "! long-running-compile &" (in the background). And I can do that in vim?

<comment><USER50> One of the things that has caught me is syntax checking. I use the syntastic plugin, set to check syntax on write, and I apparently save my changes pretty frequently. Some files can take 2-3 seconds to run an external syntax checker, during which time I can't edit the file.

I guess the real problem is me saving too often. Others may be trying to run a long make from vim and wanting to continue editing or looking through files.

<comment><USER49> No, that sounds like a valid usecase (and/or a horribly slow syntax check -- I'm not familiar with syntactic... does it do some kind of heuristic grammar check?).

<comment><USER50> I think usually it just runs the compiler in a syntax-check mode. For instance, it runs gcc with -fsyntax-only. I think I have sometimes seen style warnings too, so maybe there is more than that. Maybe I could configure it better to be faster, but for now it doesn't bother me often enough.

<comment><USER49> Is this for c++? You might benefit from moving to cmake with the ninja backend (ninja being the important part not cmake) -- depending on what kind of projects etc etc.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> I like that he mentioned CtrlP. It's the single plugin that prevents me from switching to Emacs.

There is currently nothing in Emacs (last I played with this was 3 months ago) that is 100% equivalent to CtrlP. There are some close approximations but they're not as good the real deal. I can understand how Emacs guys won't even notice this because they've not worked with something that's better than the best they have, but for Vim guys it sucks.

<comment><AUTHOR> Agree. I'm using projectile[1] for now but that somehow messes things up with caching files so that I actually cannot search my project files. I assume that might be a fault on my side though.

Have you tried projectile? From reading the Readme this was exactly what I was looking for as a Ctrl-P replacement.

[1] [https://github.com/bbatsov/projectile](https://github.com/bbatsov/projectile)

<comment><USER51> I use projectile with caching turned off with flx-ido for sorting. I heavily favor (projectile-find-buffer) once I get going since loading the whole tree is pretty slow on a large project. I'm way more happy with this setup than I was with CtrlP.

</comment></comment></comment><comment><USER52> (I'm currently toying with the editor able (ql:quickload "able") (able:start), so at this moment, I'm not in a good position to figth at those thumb wars... but, as long time and happy emacs user, I need to tell the world that "little pinky" is alive and tipping, thanks)

You can have it all, emacs, and vi... so, what is the bigg fuss?

</comment><comment><USER53> Vim's home-row commands are great... Unless you use a non-QWERTY keyboard layout.

A lot of developers forget that there exist other methods of input, and mnemonic-based shortcuts are one of those things that make a lot more sense than attempting to optimise for a tiny reduction in finger-movement (which ought to be the domain of the input-device anyway).

<comment><USER54> Actually as a dvorak user I find it tolerable. jk are where cv sit and hl is jp, which means going up/down is left hand, left right on the right hand, and the keys are in the correct orientation as well

</comment></comment><comment><USER55> I use emacs with the 'viper' mode extension, along with a custom keymap that i made that places the keys i use most on and near the home keys: [https://github.com/bshanks/viperre](https://github.com/bshanks/viperre)

I actually use viperre with a Colemak keyboard map, but there's a QWERTY mode too.

</comment><comment><USER56> I really wanted to use Org-mode, but my vim muscle memory and lack of knowledge of keybindings to do useful things like copy/paste and move around with more than just arrow keys were preventing me from being productive. Finally got Evil installed and haven't looked back! Evil and Org-mode work great together.

<comment><USER57> They do work fine together, but unless you remap the Org-mode control key combinations then none of your Org-mode specific stuff will feel very vim- like. I think one good little project would be to remap all the Org functions to vim-like key sequences. The info in this newslist thread is a small start on that: [http://thread.gmane.org/gmane.emacs.orgmode/52815](http://thread.gmane.org/gmane.emacs.orgmode/52815)

<comment><USER58> There are a nice set of org-mode bindings for evil-mode in the prelude-evil.el module that helps quite a bit:

[https://github.com/bbatsov/prelude/blob/master/modules/prelu...](https://github.com/bbatsov/prelude/blob/master/modules/prelude- evil.el)

</comment></comment></comment><comment><USER59> Is anybody besides me still having the problem with Emacs on Mavericks where the OS X distnoted process gradually eats up gigabytes of RAM? It seems to have to do with running multiple instances of Emacs.

<comment><USER60> Yes. Frustrating bug. I ended up compiling my own, but I think the newer pretests have the fix. If you want to build your own pretest with the "Yamamoto Mitsuharu" version of Emacs (railwaycat), I posted the commands I ran: [http://amitp.blogspot.com/2014/04/building-mac-os-x- emacs.ht...](http://amitp.blogspot.com/2014/04/building-mac-os-x-emacs.html)

</comment></comment><comment><USER58> emacs-prelude is a nice way to get started with emacs if you are a vim user: [https://github.com/bbatsov/prelude](https://github.com/bbatsov/prelude)

You can enable the prelude-evil.el module and start out with a nice set of bindings. It would be sweet if there were some more pull requests to make the evil-mode bindings in prelude more closely match vim.

</comment><comment><USER61> I use Vim on Windows. I tried to learn Emacs but I keep running into roadblocks because of poor Windows compatibility of plugins.

<comment><USER24> I'm currently a Windows Emacs user. I'm curious, which plugins in particular gave you trouble?

<comment><USER61> Ideally I wanted to set up an Emacs environment for Python development. I tried to install the plugins mentioned on this page:

[http://www.emacswiki.org/emacs/PythonProgrammingInEmacs](http://www.emacswiki.org/emacs/PythonProgrammingInEmacs)

Couln't get flymake and pyflakes to work. pymacs was a non-starter so I couln't use ropemacs.

I also tried CEDET, but that was an epic fail.

</comment></comment></comment><comment><USER24> Brace yourself, an editor war will follow... and people commenting on the presence of an editor war... like this comment.

<comment><USER62> "I used to make jokes about Emacs just as Emacs users about Vim but actually it seems to be a pretty decent piece of software."

BURN THE APOSTATE!

[Will this do?]

</comment></comment><comment><USER63> This weekend's project: ed mode for Emacs.

</comment><comment><USER64> "a pretty decent piece of software"?

</comment><comment><USER65> Vim.

</comment><comment><USER66> notepad and other modern solutions... they are ubiquitous for a reason. typing is such a tiny part of programmer productivity compared to thinking...

... do a little more thinking and never have this problem again, learn to adapt to whatever text editor is on the system etc.

<comment><USER67> I used to this like this but honestly once an editor like vim or emacs becomes second nature, typing and editing and moving text around the screen feels a lot smoother and make programming more enjoyable.

But I still don't think "you might have to use a machine that only has vim installed and not your preferred editor!" is a good reason to spend time mastering how to use it (which is what I often hear). If you prefer emacs or sublime or whatever, use it, and just put up with vim if you're on this hypothetical scenario where they're not available.

</comment></comment><comment><USER68> It's still too slow for me. I have often several vims open, usually for a short time, and I'm not going to start a daemon in my session to have a decent startup time, that's unreasonable. Also, even setting a theme like solarized dark turned out to be a headache last time I tried. I think I'll wait for neovim.

<comment><USER69> You mean _startup time_ without using the server and client setup is too slow, right? (That's easily solved by, well, using the server and client setup, of course.)

I find that in actual operation Emacs is faster and that's the reason I switched from Vim to Emacs. Even after using all the tricks in Vim's :help tex-slow, Vim still lagged when I scrolled or even typed into LaTeX files (unless I turned off syntax highlighting), and I'm not such a great typist. Emacs is perfectly snappy.

<comment><USER68> Ah, I'm not a Latex person. In my experience, vim works fine, even on very large files, unless you combine syntax highlighting with very long lines, in which case you're going to suffer.

But yes, I admit that I find silly that I should need a 'server' for a text editor. Not to mention that I remote into various VMs regularly which would also need to get their own server/client setup if I wanted a homogeneous working environment.

<comment><USER70> Generally you have emacs do the remoting.

I use emacs in a work environment that is primarily Vim and where we end up logging in to a lot of machines to do development on, and the two things that turn heads in my emacs setups are my fluent and flexible use of multiple windows and frames, and the fact that I'm always using my local emacs and I use Tramp to remote in to the machines, so I don't have to screw around with .vimrc files on half-a-dozen machines. Both are stock emacs.

<comment><USER68> It sounds like it's only practical when you know you want to edit things in the first place, as opposed to "it doesn't work, let's restart the service in my existing SSH session and have have a look of the log" sysadmin-style- workflow.

<comment><USER71> No, Emacs/Tramp supports remote shells too.</comment></comment></comment></comment></comment></comment>


How to Set Up Your Python Project for Success -with Tests, CI, Coveralls Andmore - <AUTHOR> https://towardsdatascience.com/10-steps-to-set-up-your-python-project-for-success-14ff88b5d13?source=friends_link&sk=df8634c99b3e5c6d9fa96b51aba1a4cd <comment><USER2> You can find lot of information about different libraries and stuffs , i would focus on slightly underrated area (not just for python but for any other language you need to master this skill to become successful programmer )

One of the most important skills you need to acquire to be a successful programmer is the ability to debug your programs. Debugging might be the most under-appreciated, and under-taught, skill in introductory computer science.As programmers we spend 99% of our time trying to get our program to work. We struggle, we stress, we spend hours deep in frustration trying to get our program to execute correctly. Perhaps the most important lesson in debugging is that it is largely avoidable – if you work carefully.

Start Small , Start with something really small. Maybe just two lines and then make sure that runs ok. Hitting the run button is quick and easy, and gives you immediate feedback about whether what you have just done is ok or not. Another immediate benefit of having something small working is that you have something to turn in. Turning in a small, incomplete program, is almost always better than nothing. Keep it working Once you have a small part of your program working the next step is to figure out something small to add to it. If you keep adding small pieces of the program one at a time, it is much easier to figure out what went wrong, as it is most likely that the problem is going to be in the new code you have just added. Less new code means its easier to figure out where the problem is. This notion of Get something working and keep it working is a mantra that you can repeat throughout your career as a programmer. It's a great way to avoid the frustrations mentioned above.

Debugging a program is a different way of thinking than writing a program. The process of debugging is much more like being a detective. Here are a few rules to get you thinking about debugging.

Everyone is a suspect (Except Python)! It's common for beginner programmers to blame Python, but that should be your last resort.

Find clues. This is the biggest job of the detective and right now there are two important kinds of clues for you to understand

Error Messages Print Statements Make sure you take the time to understand error messages. They can help you a lot.

print statements are your friends. Use them to help you uncover what is really happening in your code.

Work backward from the error. Many times an error message is caused by something that has happened before it in the program. Always remember that python evaluates a program top to bottom.

<comment><AUTHOR> Agree it would be a good topic for an article! Someone asked me recently what topic they should write about and I suggested debugging would be a great one.</comment></comment>


Real time virtual ball pit - <AUTHOR> http://methodart.blogspot.com/2008/06/virtual-ball-pit-from-kevin-atkinson-on.html Here's some other projects he's worked on as well:
Real time video time shifting:  http://methodart.blogspot.com/2007/09/been-too-busy-to-post-for-while-but.html
Image warping:  http://methodart.blogspot.com/2007/10/i-had-this-idea-long-time-ago-finally.html
Smoke effect?: http://methodart.blogspot.com/2007/09/some-fun-with-messrs.html
2D wave effect warping real time video: http://methodart.blogspot.com/2006/11/i-work-with-video-as-well-as-still.html <comment><AUTHOR> Here's some other projects he's worked on as well:

Real time video time shifting: [http://methodart.blogspot.com/2007/09/been- too-busy-to-post-...](http://methodart.blogspot.com/2007/09/been-too-busy-to- post-for-while-but.html)

Glass fun house warping: [http://methodart.blogspot.com/2007/10/i-had-this- idea-long-t...](http://methodart.blogspot.com/2007/10/i-had-this-idea-long- time-ago-finally.html)

Smoke effect?: [http://methodart.blogspot.com/2007/09/some-fun-with- messrs.h...](http://methodart.blogspot.com/2007/09/some-fun-with-messrs.html)

2D wave: [http://methodart.blogspot.com/2006/11/i-work-with-video- as-w...](http://methodart.blogspot.com/2006/11/i-work-with-video-as-well-as- still.html)</comment>


Andy Tanenbaum hasn't learned anything (1992) - <AUTHOR> http://harmful.cat-v.org/software/andy_tanenbaum

<comment><USER2> Why is this supposed to be interesting still after 22 years?

To clarify: many people know about Tanenbaum's views only because of a discussion which occurred between Tanenbaum and Torvalds. Bringing up Tanenbaum, given the success of Linux, often appears to me as a proxy for laughing at a person for being wrong, or as a sideways snub at "ivory tower"/"academic" thinking, rather than provide anything meaningfully new. Bringing this up again, without any context, seems like beating a dead horse for the fun of it.</comment>


Machine-Learning Algorithm Mines Rap Lyrics, Then Writes Its Own - <AUTHOR> https://www.technologyreview.com/s/537716/machine-learning-algorithm-mines-rap-lyrics-then-writes-its-own/ <comment><AUTHOR> Links to author's site and app

[https://mining4meaning.com/2016/08/05/droppin-science-on- hat...](https://mining4meaning.com/2016/08/05/droppin-science-on- haters/#more-603)

[http://deepbeat.org/](http://deepbeat.org/)

</comment><comment><USER2> humans mime my deep algorithms but my magnetism they fail to achieve as I play with some killer rhyme densi-tay.

by your AI rap overlord

</comment><comment><USER3> bitin ass motherfucka</comment>


Has anything interesting ever come out of a claimed proof that P=NP or P ≠ NP? - <AUTHOR> http://blog.computationalcomplexity.org/2015/03/has-anything-interesting-every-come-out.html

<comment><USER2> From my point of view, proof that someone is a crackpot.</comment>


Show HN: Chat bot that plays Connect Four with you - <AUTHOR> https://bots.botframework.com/bot?id=c4bot <comment><AUTHOR> Source code is available on GitHub: [https://github.com/kenrick95/c4bot](https://github.com/kenrick95/c4bot)</comment>


"Major service outage" - <AUTHOR> https://status.github.com/messages <comment><USER2> Github is great, they're working on some serious problems, and every service has downtime.

But this is getting pretty serious.

This is the 3rd time in these last few weeks there has been a "significant service outage"

So much of a typical dev workflow is based around github, but more importantly a lot of new package managers use github as a base. Not being able to pull dependencies is a fairly big problem.

I will continue to use github, because they're awesome. At the same time, we're going to have to start building around it to ensure our uptime isn't reliant on their (less than optimal) uptime.

<comment><USER3> I've found it somewhat odd how, although advocating the use of a decentralized version control system, much of the git community has ended up heavily centralized on GitHub.

<comment><USER4> It is a distributed system. You still have to have shared remotes in order to integrate branches.

<comment><USER5> Yup, when github barfs, you can still happily keep on hacking.

You're also not limited to one shared repo by any means, so even synchronization between multiple developers can continue when github is down. To avoid problems it's of course a good idea when one of the repos is a "master", and if using a secondary repo for synchronization when the master is down, you'll probably want to switch to unique temporary branches for the purpose.

<comment><USER6> One possible backup would be Bitbucket (<https://bitbucket.orghttps://bitbucket.org/>).

(I'm not affiliated Bitbucket in any way. I don't profit from them doing well, aside from them sticking around to keep providing free hosting for me.)

<comment><USER7> If you want to use your own servers, Atlassian (who own Bitbucket) recently released Stash, a competitor to Github Enterprise. Pricing is very good and if you have a commercial license, you also get the source code.

<comment><USER8> I've evaluated Stash a couple times, and I feel that Gitlab still has it beat.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> I get outages are a way of life with a widely used web application, but Github have really dropped the ball lately. This is one of many service outages lately and as a paying customer it's disheartening and worrying because I use Github in my day-to-day workflow, I and many others have come to rely on it. Don't get me wrong here, I love Github and couldn't live without it, but they really need to sort out these problems and it's not like they don't have the funds to address the issues anyway. My knowledge of distributed computing is somewhat limited, but I would have thought they'd just spin up a few extra virtual machines to handle the database spike (maybe it's not that simple with Github's setup, I'm not sure).

<comment><USER10> Github have their own datacenter and hardware, they are not relying on any cloud provider out there. It makes it harder to handle spikes of load, but they actually have an I/O intense service which justifies that choice.

<comment><USER11> Incorrect:

<https://github.com/blog/493-github-is-moving-to-rackspace>

<comment><USER9> My favourite line from that linked blog post from 2009 is this: "We're aware of the current stability and performance issues, and we want to let you know what we're doing about it." - issues they were having nearly 4 years ago are still happening unless the problems they've faced lately are completely different.

<comment><USER12> The move really did fix their problems back then.

There were a period where they were really having visible scaling problems, with response times often getting painfully slow - apparently especially due to slow I/O. These problems completely disappeared after their move to Rackspace's managed hosting.

Now it looks like they might be hitting a new barrier that might require architectural changes to overcome.

</comment></comment></comment></comment></comment><comment><USER13> I suppose this is related to the Rails vulnerability (<http://news.ycombinator.com/item?id=5028218>) and everyone updating/deploying their applications

</comment><comment><USER14> Correlated with thousands of redeploys for the Rails security issue?

</comment><comment><USER15> I use BitBucket for most of my projects since they offer free private repository hosting.

</comment><comment><USER16> Good to see that they've upgraded/patched their Ruby On Rails attack surface then... :)

</comment><comment><USER17> Looks like it was a whole 10 minutes. EVERYONE GRAB THE PITCHFORKS!

<comment><USER18> 2:13 if you count from the first message about high exceptions to the all clear "everything is working normally."

</comment></comment><comment><USER19> If they keep this up I'm gonna have to buy github-enterprise!

wait a minute...

<comment><USER20> Github Enterprise runs on your own servers. Not theirs.

<comment> X-Istence That's the joke ...

<comment><USER20> There was a joke in that?

</comment></comment></comment></comment><comment><USER21> Would it be possible to build a github mirror with only the repos and nothing of the web candies? Then maybe the reliability would be increased.

<comment><USER22> We use rhodecode to mirror our hg and git stuff it auto pulls stuff also.

</comment></comment><comment><USER23> This is why I should deploy using git (via github), right? I can always rollback if i break something...

</comment><comment><USER24> Just run your own shit, people.

</comment><comment><AUTHOR> Update from GitHub: 23:49 UTC Everything operating normally

</comment><comment><USER25> Is this an automated status page ? The messages are so ... focused. If yes, I love it. Need to build one too.

</comment><comment><USER26> Mirror your projects to BitBucket to reduce SPOF. That's what I'm doing with my private repositories.

</comment><comment><USER27> i've downgraded to free

</comment><comment><USER22> Just use rhodecode as a backup and don't worry anymore</comment>


Walking Normally: the Facts (2013) - <AUTHOR> http://www.newyorker.com/magazine/2013/09/09/walking-normally-the-facts <comment><USER2> what the hell did I just read?</comment>


Like Star Trek, the Original Series? You'll like this. - <AUTHOR> http://www.whattofix.com/blog/archives/2013/07/like-star-trek-the-original-series-youll-like-this.php

<comment><USER2> I thought Sulu looked familiar. It's Grant Imahara from MythBusters!

<comment><AUTHOR> Also in for a cameo appearance is Jamie Bamber, who played Apollo in BSG. Seems appropriate :)

Couple more surprises in there, but I don't want to spoil too much.

</comment></comment><comment><USER3> How is this different from [http://www.startreknewvoyages.com/](http://www.startreknewvoyages.com/)

</comment><comment><USER4> Really good production quality but you can see the difference between armatures acting and real pros. How is this being funded?

</comment><comment><AUTHOR> Poking around the website of the production group, it looks like there's a contest for writing an episode.

So this might be one of those rare situations where highly-motivated fans could write an episode and then watch it be performed as a STTOS show. That'd be tremendously cool.

If I had time I'd love to do something with a technology/hacker slant.</comment>


LispEx - <AUTHOR> https://github.com/kedebug/LispEx LispEx is another Lisp Interpreter implemented with Go. <comment><USER2> > _LispEx is another Lisp Interperter implemented with Go. The syntax, > semantics and library procedures are a subset of R5RS:_

The name hould be SchemeEx :) (tail call optimization is still "in developing")

<comment><USER3> :) Good advice, but I think `LispEx` seems to be more short and elegant. Thanks for your attention.</comment></comment>


How competitive forces shape strategy (1979) [pdf] - <AUTHOR> https://asiakas.kotisivukone.com/files/laatuoptimi2013.kotisivukone.com/tiedostot/porter_5competitive_forces.pdf <comment><AUTHOR> I thought this was a timely paper, germane to Amazon's takeover of Whole Foods and subsequent price drop.</comment>


Fonkraft, an Indiegogo shooting start got shot down after 3 days, but why? - <AUTHOR> http://www.araprototype.com/story/why-was-fonkraft-canceled-by-indiegogo/

<comment><AUTHOR> Fonkraft was presented as fierce competition for Google Project ARA, and was successfully backed on indiegogo in only 3 days, with 42 days left for the backers to crowdfund. Looking into detail, it just looks to good to be true, and there are multiple holes in the concept.</comment>


Ask HN: To Bootstrap or Not to Bootstrap? - <AUTHOR>

I have been using bootstrap for years and generally prefer it as the starting point on all of my front end designs. But I'm working on a project right now with another developer who doesn't want to use it because he says it's heavy and doesn't follow best design practices.<p>I have never had a problem before. What do you think? Why not use bootstrap? <comment><USER2> I've been using bootstrap for a while now too and lately I've been trying out new libraries just to see if anything is better yet. On feel alone I didn't love foundation.

For a project that required pretty heavy customization I ended up using skeleton/react ([http://getskeleton.com/](http://getskeleton.com/)) and enjoyed it.

I saw Semantic UI on here the other day and I may end up trying that out on my next project: [http://semantic-ui.com](http://semantic-ui.com)

<comment><AUTHOR> Nice. Haven't tried Skeleton. Maybe this is a good compromise. Thanks

</comment></comment><comment><USER3> I use bootstrap. On 90% of my projects, you wouldn't be able to tell without looking at the source. So, I'm not sure what bootstrap has to do with design practices. You can implement any design using bootstrap.

As far as being heavy, just go through and throw out the stuff you don't need. It's reasonably modular.

It seems as if the other developer doesn't like how default bootstrap looks (or is bored by the overuse of default bootstrap), and he's justifying his preference.

Otherwise, ask him what "best practices" are missed.

<comment><USER4> OP likely means functional design as opposed to aesthetic. For example, I don't particularly like Bootstrap's unsemantic class naming schema. Although admittedly, most CSS frameworks are just as guilty; Bootstrap just happens to be the most popular.

<comment><USER3> If you have a problem like that, you're using bootstrap the wrong way. It's okay—I do, too.

The right way is to use LESS mixins to match bootstrap classes with your semantic classnames.

<comment><USER5> Less-mixin wrappers are not the right way, but just one way that somebody once stated to be the best.

I used the semantic mixins method quite a while, and let me say that it does not feel that good. Once you have your html full of nice "article-box" classes, who will ever notice?

If you strip completely your css from your markup to re-use it in another project, you're left with literally nothing, if not a bunch of semantic classes than then may also be semantically wrong in respect of the new project (has the article become a tutorial?).

Using bootstrap classes are a convention you can reuse in other projects, as well as override when you need. If you strip your css then, and replace it with a vanilla bootstrap, you'll get a halfway good looking page you can work on.

It's perfectly ok to pursue semantics, except that semantic class attributes are the most useless form of semantics.

In a time where angular and react challenged the very concepts of markup/behaviour/styling separation, after the utter failure of XHTML (the parsable markup nobody ever parsed) and the mild failure of HTML5 semantic tags (whose cases of use are confusing at most, and overlap dramatically with the arya attributes) I try to avoid to be too strict about semantics.

</comment></comment></comment></comment><comment><USER5> My take:

Bootstrap is made of several components, which make it trivial to recompile it without the not-needed parts. You can even do it online (as well as save/reuse configuration files): [http://getbootstrap.com/customize/](http://getbootstrap.com/customize/)

The _full_ bootstrap css weights 23.5kb gzipped. If you're not using gzip on your servers then that's the problem you should solve.

What makes bootstrap good is not the features per-se. It's the huge amount of cross-compatibility knowledge in it. There are many cool frameworks around, but it's hard to find something so solid and battle-proven as bootstrap. That's the real point of using bootstrap.

</comment><comment><USER4> If you're nit-picky about your CSS (as I am) and just want to write it the way you want to write it without a framework making guiding decisions for you, I recommend the lightweight library Bourbon by thoughtbot (and the companion library Neat for a grid framework). www.bourbon.io

<comment><AUTHOR> Nice. Thanks. Hearing a lot about bourbon lately but haven't tried it.

</comment></comment><comment><USER6> I've been considering this a lot lately myself, the biggest pro I've come up with is that with the right project a _lot_ of people can easily dive into customizing / theming the work and if you're careful existing themes might be really easy to integrate.

If nobody else is going to be editing the project then it's really just a tradeoff between your own time vs download size, if you can afford to shave a few hundred kilobytes off your first page load that can be a big improvement for many audiences.

I've been favoring Skeleton as a significantly lighter alternative, although it is very small in comparison to bootstrap - [http://getskeleton.com](http://getskeleton.com).

</comment><comment><USER7> For most usecases, bootstrap is fine. It delays the "designing" part so you can think about your product and actual features directly. And if you are tired of the "standard look and feel", you can buy nice themes later for a few bucks.

Projects that should not use bootstrap are the ones where every milisecond in performance truly matters, or when you have custom design requirements that would need major "overruling" of bootstrap. In this case, I recommend using a very lightweight CSS framework with a responsive grid instead, like [http://purecss.io/grids/](http://purecss.io/grids/) .

<comment><USER8> This template has a good response time if you remove the Google Analytics script:

[http://motherfuckingwebsite.com/](http://motherfuckingwebsite.com/)

<comment><AUTHOR> Haha. This is awesome.

<comment><USER9> See this counterpoint: [http://bettermotherfuckingwebsite.com/](http://bettermotherfuckingwebsite.com/)

</comment></comment></comment></comment><comment><USER10> Here is a good page comparing bootstrap to other alike frameworks: [http://responsive.vermilion.com/compare.php](http://responsive.vermilion.com/compare.php).

Personally I would again choose bootstrap, if you have previous good experiences with it.

</comment><comment><USER11> If you use Bootstrap's source files, you'll have granular control over the framework's weight, since you can simply exclude the components not used in the project.

</comment><comment><USER12> I love bootstrap. I use it for all my projects. I'm not a designer and allows me to have a fully functional site in a short amount of time.</comment>


Microsoft's Halo Effect Opportunity - <AUTHOR> http://martingordon.tumblr.com/post/18861711383/microsoft-halo-effect-opportunity

<comment><USER2> Heh, what makes you think Apple would approve "Office for iPad" especially if it only integrates with SkyDrive, and not iCloud? :)</comment>


The Darknet and the Future of Content Distribution (2002) [pdf] - <AUTHOR> http://msl1.mit.edu/ESD10/docs/darknet5.pdf <comment><USER2> The scariest project I've ever seen is OpenBazaar. It's a decentralized marketplace. It does for physical things what Napster did for music. Not the best analogy, since you have to pay for the things, but it's not far off.

Right now they only sell trinkets, like sunglasses. But both the founders are former spooks. They live in fairfax, 20min from Langley. And they're adding Tor and Tails support in the next release.

The implications are massive and disturbing. 13yos will be able to buy heroin. It's not just breathless speculation. I probably would've done something similar, not to use it, but just to see if I could. You do that kind of stuff all the time as a faux-edgy kid. And it's easy for kids to get bitcoin from ATMs. I don't even want to think about what will happen in groups.

I'm trying to keep quiet and see what happens with the project. But all the darknet markets are apparently dead right now. It will either be one of the most empowering or damaging pieces of technology. Tor and Amazon had a baby and named it OpenBazaar.

But I know how hard it is to predict anything like that, so it's like a 90% chance I'm just posting a silly comment. It's not too hard to imagine though -- bitcoin and tor serve as examples of what's possible at the intersection of society and technology. All the elements are there for the project to have a huge impact.

<comment><USER3> This isn't a perfect solution, but ultimately, I think, we are going to have to move in the direction where 13 year olds _don 't want_ to buy heroin. And that's going to be based not on punishment, but on better alternatives and honest information. And a better community of stronger social connection.

I think of the whole "sex ed" debate. Studies and statistics show that providing information -- and practical alternatives, such as birth and disease control -- works. "Abstinence only" does not.

Hell, even our "War on Drugs". Turns out that maybe my friend who grew magic mushrooms -- of which I never partook -- was doing better for himself than those turning to the nascent Prozac revolution. We're seeing reporting now that, under some conditions, those hallucinogenic experiences may be more effective at combating depression.

As for myself, I've come to think that the ever increasing "IP rights" are becoming an increasing burden on society and technology's development. Creative people are running up against walls hindering their creativity, walls that seem to be increasingly sold to "rent-seeking" holding companies.

To some extent, maybe those companies are useful and productive -- arbitraging initial creativity into a more reliable source of cash and/or cash flow.

But when they turn around and push for laws that continue to increase the tenure of their holdings and monopolies... They are using their position to further entrench their position, rather than foster free-flowing development.

For a long time, I tried -- more than many around me -- to "play by the rules". Belatedly, it seems, I've been becoming more aware of just how rigged "the rules" are and are becoming.

Free-flowing heroin's a scary thing. But, so's the law and order crowd -- or some of its more extreme aspects.

I realize my musings here are probably controversial. And I guess I'll add, for the sake of balance as well as whoever might be monitoring threads like these, that I continue to live a rather "squeaky clean" life.

But I can't buy in to the law and order rhetoric, any more.

<comment><USER4> Afghanistan has free flowing drugs and most other things we outlaw in our society such as pedophilia and laissez faire murder. In theory it is a libertarians paradise.

<comment><USER5> Not even remotely. Libertarianism is not just wanting drugs, pedophilia, and murder. Murder is certainly off the table for any libertarian, and I suspect most would agree with me that any sort of sexual conduct with children constitutes violence.

<comment><USER4> Why would libertarianism consider sex with children violence if it was not coerced? Many things we consider heinous become lawful if non coercion is the primary criterion.

<comment><USER6> You can't have it both ways just to disparage libertarianism. Do you believe children are mature enough to make that decision, or not?

</comment></comment></comment></comment></comment></comment><comment><USER7> There isn't such thing as darknet as there isn't really a dark side of the moon.</comment>


The Prandtl–Glauert Singularity – Jet Plane Shock Collar - <AUTHOR> http://www.kuriositas.com/2011/02/prandtlglauert-singularity-amazing-jet.html <comment><USER2> Very cool pictures, but a correction:

 _Although it is understandable to see how it could be naturally assumed a vapor cone (as the singularity is also known)..._

This is incorrect. The P-G Singularity is a hypothesized pressure singularity in flow leading to a true sound barrier that couldn't be passed. It was based on faulty assumptions and doesn't hold.

 _The Prandtl–Glauert singularity is a theoretical construct in flow physics, often incorrectly used to explain vapor cones in transonic flows. It is the prediction by the Prandtl–Glauert transformation that infinite pressures would be experienced by an aircraft as it approaches the speed of sound. Because it is invalid to apply the transformation at these speeds, the predicted singularity does not emerge. The incorrect association is related to the early-20th-century misconception of the impenetrability of the sound barrier._

[https://en.m.wikipedia.org/wiki/Prandtl–Glauert_singularity](https://en.m.wikipedia.org/wiki/Prandtl–Glauert_singularity)</comment>


Is it time to Buy American yet? - <AUTHOR> http://laserlike.com/2008/10/24/is-it-time-to-buy-american-yet/

<comment><USER2> question: Is it time to Buy American yet? answer: nope. unless the question is "is it time to buy put options on american stock?" in that case the answer is yes.</comment>


The Future of Work: Why Wages Aren't Keeping Up - <AUTHOR> http://www.psmag.com/business-economics/the-future-of-work-why-wages-arent-keeping-up <comment><USER2> Robert Solow, the author of this article, is one of the most well-respected economists of his generation. He derived the "Solow Growth Model" which underpins a good deal of modern macroeconomics. [1]

Here, he states that it is customary to think of the value of a firm in terms of (1) returns to labor and (2) returns to capital. He argues that there is a third factor, (3) position in the market, that provides a rent to the owners and shareholders of the company. Just as a title/deed provides the owner with a geographical rent opportunity, regulation creates an opportunity for a company to extract an abstract sort of monopolistic rent within a market. Estimates of this component of rent lie between 10-30% of GDP, and it changes as a function of regulation.

He argues that the division of this rent "has been shifting against the labor side for several decades" starting under the Reagan administration, due to (1) the decline of unions and collective bargaining (right to work laws, "hardening of business attitudes") and (2) the "casualization" of labor, i.e. the increase in part-time/contract-based labor that many companies are able to force onto a workforce that would, in many instances, favor full time employment. These casual workers "have little or no effective claim to the rent component of any firm's added value."

In summary, the aggregate workforce is losing bargaining power whereas the aggregate business owners (investors) are gaining bargaining power within the economy, allowing the investors and owners to carve out a larger share of rent profits.

While Solow does point out that international competition and "the biased nature of new technology" both play a role in this phenomenon, he strives to emphasize the importance of internal social change in the division of economic rent.

Personally, I think that he is dancing around a much more controversial thesis: inequality is a direct result of poor government regulation and oversight (starting with Reagan) which is due to a deterioration of the separation of powers between the public and the private sectors as corporate owners and investors have been able to buy influence in Congress and further support/entrench regulation that favors their own interests. Unions/collections of workers no longer have the power to combat corporate interests at the political/legal level and are being dismantled/shafted which leads to many individual laborers being shafted as well, which is the cause of the nonexistent wage growth.

[1] [http://www.unc.edu/~jbhill/Solow-Growth- Model.pdf](http://www.unc.edu/~jbhill/Solow-Growth-Model.pdf)

<comment><USER3> That could perhaps explain this phenomenon in the U.S. but this phenomenon is not solely expressed in The US. It is exemplary in the U.S. but it is also seen in more socialist countries as well. China, Brazil, as well as European economies.

<comment><USER2> I think it would be hard for you to argue that workers have more rights/power in China or Brazil.

China is socialist only in name. They are an economic powerhouse because the ruling class has fully embraced capitalism in order to exploit its large labor force.

Brazil has a long history of corruption and poor regulation/enforcement. Slavery is still a very large issue in the agricultural industry there, which makes up a large portion of the economy.

I'd love to see any data that you have that supports your thesis about the prevalence of this phenomenon in Europe despite a fairer split of economic rent due to fair labor laws.

</comment></comment></comment><comment><USER4> Why would wages ever keep up with productivity? Wages will always be a race to the bottom between employees who have to work to not be homeless. The capitalists can exploit this to make wages as low as possible.

Productivity has nothing to do with it.

<comment><USER5> The means of production have never been more accessible. The ability to learn new skills/trades has never been easier. If the average person can't take advantage of them, then it probably has less to do with capitalism and more to do with the government and corporatist conspiring to keep them out of the game.

<comment><USER6> Learning a new skill or trade doesn't give you access to the "means of production", capital does. And inequality is as bad as it's ever been over the past 50 years. A few tech startup darlings doesn't change that.

<comment><USER7> Learning a new skill or trade _is_ capital. Capital is not just hard equipment. To the extent that was an acceptable approximation in the 20th century, it's less so today.

To forstall the next likely objection, no, of course it is not the _only_ form of capital. And "less so" != "completely the opposite of". And further, obviously, learning a trade isn't millions and millions of dollars worth of capital, nor does it instantly catapault you into the leagues of the wealthy, just because you learned how to fix plumbing or write code. And it obviously isn't liquid.

But it _is_ a form of capital.

If you don't understand this, you can't understand unions. If labor doesn't have this capital, then unions can't work, because if labor really are just interchangable cogs that bring nothing but mere clock time to the equation, then labor has _no_ bargaining position whatsoever. Unions only work because labor has this illiquid capital to bargain with.

(There are some obvious further elaborations on this theme, such as the way the capital gets devalued by increasing the supply by globalization, and the continuous importation of cheap labor via illegal immigration. IMHO there's a certain amount of contradiction in being shocked at how labor is devalued in the market place and being pro-"open borders". It may not be the only cause and effect, but it's certainly involved.)

<comment><USER6> I never said capital was simply hard equipment, but I'd like to hear what your definition of capital is that "learning a new skill" falls under that? I mean, we're talking economics here so there's a level of interpretation for definitions, but I've never heard of someone claiming that skills are capital.

It feels like you're going with the "Everything is capital" route, which devalues the word in the first place.

<comment><USER8> He's using the notion of "human capital" which I think is clearly different enough from ordinary capital so as to deserve a different term. Human capital can beget ordinary capital if someone works hard for many years, saving their money and reinvesting it, but your average office worker is no more a 'capitalist' than a temporarily homeless man looking for work. Human capital seems differentiated by the fact that it ultimately is traded on the market for wages and generally doesn't translate into any kind of meaningful ownership of the fruits of capital.

<comment><USER7> "He's using the notion of "human capital" which I think is clearly different enough from ordinary capital so as to deserve a different term"

Sort of yes, sort of no. It's important to understand that "physical capital" isn't some sort of magic pathway to wealth, either. If by some weird turn of events I suddenly came into possession of a 20-ton press, it isn't going to do me any good, and just about my only avenue to producing money from it is to sell it to some entity that does know what to do with it.

A great deal of "capital" in the industrial world is relationships, organization, and the ability to apply human capital. Simplifying that to "physical goods" leads to weak thinking and bad policy.

</comment></comment></comment></comment></comment></comment></comment><comment><USER3> With globalization and the lifting from abject poverty the greatest numbers and percentages of people, should we continue to see wage growth in areas where people are relatively better off? Should we not expect some normalization, a meeting of levels?

It's a bit selfish to think that the fist world should continue to get richer while the poor remain poor, which is what protectionism would get, alongside stagnation.

Another sidepoint, when people get wealthier the more they spend and the more they contribute to resource depletion. I'm of course in no position to even guess what the optimal average wealth would be but I'm sure having everyone with too much disposable income leads to wastefulness.

On the other hand, let the people at the bottom catch up and let them breathe. That's what we should be pushing for.

<comment><USER9> I agree that the rich of the world are morally obliged to help the rest catch up. The analysis you put forth suggests the wages that otherwise would go to the middle and working classes are going to people in developing countries but is it not also true that whilst wages are stagnating the wealth generated by increased productivity is largely accumulating amongst the already super rich?

<comment><USER3> Yes some of the wealth which could otherwise could go to the workers of first world countries is going to the upper management of these companies, but I think that is made possible because of globalization. If the domestic costs get too high, they can move production to Mexico, or they can move development to Russia or India. This keeps a lid on wages and at the same time allows more for the management class. If we were to see international competition in management workers, they too would experience stagnation and companies would see increased profits.

Let's look at the wage growth of professionals who implement barriers to entry from foreign trained professionals like doctors, lawyers, etc. Have their wages stagnated?

<comment><USER10> As for doctors, yes, stagnated to some extent (albeit at a nice level :-)).

But the reasons are entirely different - the cause is the growing, cancerous (and greedy) layer of bureaucracy on top of actual producers (doctors). But that's yet another topic.

</comment></comment></comment></comment><comment><USER11> I'd argue that flat wages are not (entirely) a failure of the labor market and are partly a consequence of modern life requiring less resources.

Think about it: When was the last time you spent 15 minutes on the phone getting directions to someplace, got lost, had to find a payphone or stop places asking for directions, and then had to ask around to find somebody once you got there? Or paid a travel agent to plan your next vacation? Bought an expensive widget because at the only store you could find it at and were willing to drive to not knowing you could get it for half as much in the next state over? Used up a few hours looking for a specialty contractor in the newspaper classifieds or yellow pages and then had a bad experience because you had no way to know what their previous customers thought of them? These used to be very common experiences.

For many people in America, modern life requires far less time and money to be comfortable than it did just a few decades ago and as a result workers are seeing less and less incentive to push for higher wages.

<comment><USER12> Except the cost of necessities (energy, housing, etc) is still rising: [http://www.mybudget360.com/wp- content/uploads/2014/10/colleg...](http://www.mybudget360.com/wp- content/uploads/2014/10/college-tuition.png)

Computers and TVs are cheap but everything else is expensive.

</comment></comment><comment><USER13> We live in an age where technology is always progressing, and it constantly make engineers and technicians obsolete. I think the bottleneck in our economy is teaching higher level of scientific knowledge. The money has always been into technology being a big lever for profit, but it has never been accountable for the social cost.

I do think that people today can't cope with the fact that their work position can be made obsolete and that they should be asked to learn new things again. Obviously it's not anchored in how labor works. I think even workers should spend some time learning new things to not become obsolete, something like 1/20 of their time.

I guess MOOCs will be one solution, but I kinda doubt it. I don't think that most people really like to work in tech, but it's going to be a transformation that will keep happening, and I don't think there will be a stop to it.

<comment><USER14> > The money has always been into technology being a big lever for > profit, > but it has never been accountable for the social cost

Totally. A good start might be large companies paying equitable taxes.

<comment><USER15> Companies already pay a huge amount of taxes. When you see that ge didnt pay taxes, its because of loss rollover.

<comment><USER16> In other words, it is because the tax code allows those with a greater investment in studying the tax code and in playing stupid accounting shell games to pay less in taxes.

It would likely be preferable to instead tie the effective tax rate more directly to those activities that actually address useful economic activity. I am leaning increasingly towards the fairest tax being a function based upon one's increase in wealth (subtracting some fixed amount for actual humans-- probably median household income) that asymptotically approaches 50% as your positive change in wealth approaches infinity.

If you earned $10000 and spent $10000, any tax would just have to be offset by a subsidy somewhere else. If you earned $100000 and spent $100000, you're at least stimulating your local economy, and probably making wiser choices while spending your own money than anyone else would in spending other people's money. If you earn $100000 and spend $20000, that leaves $80000 that you didn't actually _need_ to use _this year_. Everyone else would probably prefer that you had spent it. So maybe you're allowed a tax-free increase of $50000, and you lose $10000 of the remaining $30000 to taxes. If you earned $10M and only spent $100k, you might pay $4.925M for the tax. The same equation would still work for corporations, because paying dividends would count as spending for them. You end up only taxing the winners in the economy--those who are getting richer--and never more than they could reasonably afford to lose.

How could such a system be subverted? You would have to set up a system where you could control property for your own benefit without legally owning it. You'd probably see a resurgence in executive perks, such as company-provided housing and cars. It would definitely blow more air into the education bubble.

<comment><USER17> > I am leaning increasingly towards the fairest tax being a function based > upon one's increase in wealth

Tax system are lenient on the wealth (vs income) as one is expected to accumulate wealth and exit the workforce. Taxing wealth seems like a working idea when you're 20 and have job offers chasing you, less so when you're 70 and plan to spend the next 20-30 years in retirement.

<comment><USER16> Taxing the increase in one's wealth is neither a property tax nor an income tax. The taxable amount would be income minus consumption.

The deduction for living people was intended to account for a reasonable rate of retirement/emergency saving. Corporations don't need to retire, so they don't get it.

<comment><USER17> > The taxable amount would be income minus consumption.

Doesn't this result in all sorts of bubbles, as people scramble to manufacture consumption, from real estate to precious metals?

Also, taxing the increase seems to benefit wealthy offsprings and trust fund babies in general.

For most Americans a change in wealth is also tied up to non-liquid assets, like their house. Let's say you're a retiree living in an area that's been lucky to undergo a real estate boom this specific year. Your house wealth went up 7-10%, yet there's no extra cash flowing in to account for this tax bill, now what?

Moreover, with housing being the focal point of wealth accumulation, the government would receive its tax revenue when the things are up in economic cycle, but come the first recession/correction, and not only there are problems with the economy, the source of government revenues has dried up as well.

<comment><USER16> If you buy gold, you have the gold as an asset. If you buy real estate, you have the property as an asset. That's not consumption. If you buy a steak and eat it, that's consumption. You no longer have the steak, and the butcher doesn't owe you anything else.

To avoid stupid government accounting rules, the value of assets would have to be fixed at what you paid for them until they are sold in an arm's-length sale on the open market. So if you're a retiree and you never sell your home, you would not be taxed on its increase in value. There would probably be something made available like a less-parasitic version of a reverse mortgage, to absorb increases in value gradually, so that it could work with the annual real person deduction.

<comment><USER17> That seems reasonable, and it's how capital gains tax works at least in the US.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> This is a very simplistic view of capitalism and ignores larger issues.

One ignored issue is inflation itself. Although it had a profound impact in the middle class, it has nothing to do with 'evil business owners' trying to make more money.

Then, unions shouldn't bargain with monopolistic corporations. Why? Because monopolistic corporations shouldn't exist 99% of the time. That's the root of the problem, not the lack of analogous monopolistic labor unions.

<comment><USER19> You realize the person who you accuse of having a "very simplistic view of capitalism" (the author) has been studying economics for most of his life and won a Nobel Prize for it? Currently a professor of economics at MIT? Etc...

<comment><USER18> Ad hominem.

One could argue the same about Paul Krugman.

<comment><USER20> I don't think I've heard "ad hominem" used to describe _positive_ assessments like this before. In any case, this isn't one. No one is saying "Solow must be right; he's an outstandingly eminent economist"; but it's perfectly reasonable to say "It's monstrously implausible that Solow simply doesn't understand capitalism; he's an outstandingly eminent economist".

And yes, one could _and should_ argue the same about Paul Krugman. Of course it's possible that someone like Solow or Krugman is terribly wrong, but barring traumatic brain injury or something it's absurd to suggest that either is wrong _on account of not understanding basic economics_.

... Of course it's possible that Solow or Krugman understands something very well but then chooses to present an oversimplified version (for honourable reasons, like not intimidating their readers; or dishonourable ones, like wanting to hide something that works against their arguments). If _that_ is what you were suggesting -- not "Solow's understanding of capitalism is simplistic" but "Solow probably has a sophisticated understanding of capitalism but is presenting a simplistic version, and a better one would invalidate what he says" \-- then indeed pointing out that all the evidence suggests he's an extremely skilled economist isn't to the point. But what's wrong with it still isn't that it's "ad hominem".

<comment><USER21> > is terribly wrong, but barring traumatic brain injury or something it's > absurd to suggest that either is wrong on account of not understanding basic > economics

There are plenty of eminent CS prof's that couldn't push a HellloWorld to Heroku, or competently perform entry level software development tasks.

Like the SE vs CS divide, "job creators" disagree with academic economists on the axioms of "basic economics".

</comment></comment></comment></comment></comment><comment><USER22> The negotiation angle has long been missing from economic discussions. The classic line is that you get circa what your marginal productivity is, but that's under some rather stringent assumptions. Also it sidesteps how exactly you calculate marginal productivity. There's very little talk about the dynamics of wage settings, ie how do you actually reach a number?

From what I can see, as a guy who's been in a few businesses, the salary amount starts off with just a simple assumption: we'll pay roughly whatever everyone else is paying for a certain job. You then go and find a bunch of likely-sounding candidates and bring them in to interview. (OT: This is a complete mess, because you're not as good at this as you think, even taking into account lordnacho's law.) You will fall in love with one or two of these people, probably not more. You'll then throw out a lowball number on the game theoretical rationale that they'll either ask for more or be happy with it. If there are special circumstances like the guy being a recent grad, we can say a bunch of stuff like "you're learning a lot from us, you need us more than we need you" (yeah, it's a shitty thing to say) and count on other bosses thinking similarly. The candidate can then take it or leave it, or if they have another offer, use that to get a bit more. But it's really a silly dance around a fairly static anchor, silly because people can get pissed off over small amounts of money. I've worked with more than one guy who thought he was a great negotiator because he managed to talk some guy down by a few grand, even though a $700M hedge fund makes that amount in about three hours.

Now why would wages ever change, if this is roughly what happens? I never came across a situation where there wasn't a huge queue of people wanting whatever jobs we put up. In fact, there was no real rationale for setting any particular salary, other than "that's the market". My thinking is that salaries really only go up when companies find zero suitable people for a given job, or when they get a particularly large number of offerees coming back to them saying they took some other job.

And what would create a situation where there were very few candidates for a job?

1) Collective action. Apart from the London Tube, this seems to be out of fashion. It also seems to be hard to organise something like software devs, given they live in very different cost areas scattered around the world.

2) Growth. When things are booming, companies get desperate. They can see the demand, customers are telling them they want product, but they can't get the staff they need to build the product. But since they can see the demand, offering a bit more to grab those staff is a bit easier on the executive mind.

<comment><USER10> Spot on. I would like to add that the name "labor market" is a misnomer. It is not a market.

On the one hand you have rich capital providers who DO NOT HAVE to invest money - they can live off their capital without doing anything.

On the other, you have labor providers, who HAVE to work to feed themselves.

The solution is to reach the "fuck-you-money" savings level. Not that simple, but not impossible.

</comment></comment><comment><USER23> Capitalism involves a struggle between labor and capital. Or perhaps another way to say it would be that if capital could do what it wanted without labor, it would. And capital is winning in that struggle, for most jobs there are more qualified people than jobs. I don't see why it's so bad to say; this strikes me as a predictable development of a capitalist economy.

</comment><comment><USER24> Please link to the actual article, not the snippet on a blog: [http://www.psmag.com/business-economics/the-future-of- work-w...](http://www.psmag.com/business-economics/the-future-of-work-why- wages-arent-keeping-up)

<comment><USER25> Thanks. That article was pretty short. I can't imagine how short the blog was.

Interesting that the author spends most his words explaining the _rent_ concept, then abruptly ends with speculation that the rise of temp workers, agency workers, part-time workers, basically everyone who is not an FTE, it to blame for labor not capturing the financial benefit of increased productivity.

The only solution to this problem is going to be through the tax system. If you hire me to shovel dirt all day long, and one day an inventor sells you a more productive shovel which you give to me, I don't really _deserve_ more pay because I'm shoveling dirt better.

But commerce and tax laws are the purview of the democracy, how much money the business owners need to pay back to society for the benefits they receive, and also so society doesn't burn their homes and factories down and kill them, is a matter public policy.

<comment><USER16> I disagree. If I am a dirt-shoveler with a v1.0 shovel, and I can make a hole with volume of 8 cubic yards in 8 hours, that sets the business expectation for how much a typical dirt-shoveler can do, and how much it costs to dig an additional cubic yard of holes. Namely, it costs one hour of dirt-shoveler labor.

If the v2.0 shovel allows me to dig a hole with volume of 10 cubic yards in 8 hours, that reduces the marginal cost of digging an additional cubic yard of holes. It now costs 0.8 hours of dirt-shoveler labor.

In the short term, the demand for new holes is unchanged, but the demand for shoveler labor has shifted left, as its supply is unchanged. In the long term, the marginal dirt-shovelers--especially those without v2.0 shovels--exit the market. The supply curve for shoveler labor shifts left, and price goes back up, as quantity decreases.

Deserving doesn't enter into it. If dirt-shoveler pay per hour does not go up to reflect the increase in productivity, some shovelers will stop digging for their living and go do something else (or remain unemployed), because they will get paid zero for the holes that they are no longer able to dig. The ones who survive the cull will only be able to demand more pay when someone wants a hole dug, but can't get anyone to do it at the offered rate.

The cost of a v2.0 shovel is now a barrier to entry to the profitable region of the dirt-shoveler business. Now extrapolate to mechanized earth-moving equipment. If you need to excavate a basement for a new building, you hire one guy with the $100000 v46.3 shovel, rather than 20 guys with 20 v3.1 shovels. At this point, just owning the shovel is profitable, because that guy can just rent it out to people who know how to dig holes, but lack the necessary accumulated capital to be competitive in the business.

But those 20 guys you didn't hire to dig your basement are still out there, and they're getting hungry. And they're looking at their crappy v3.1 shovels and thinking, "If I sharpened this edge a bit, it would make a decent weapon, and I could take that v46.3 shovel by force."

There are many possible solutions, because the problem is making multiple economic variables (aka human motivations and desires) balance. A change in the taxation regime is only one, and not necessarily the best one.

<comment><USER25> I wasn't sure if you were moving the goalposts through your first five paragraphs, but paragraph six confirmed it: In my hypothetical, the employer owns the shovel. In yours it's the worker.

If you own your own tools that you use for work, you're probably an independent entity like a contractor, not an employee. You seem to confirm this at the end of paragraph six with the example of a homeowner hiring twenty shovel laborers -- surely this homeowner does not intend them as FTEs.

<comment><USER16> The shovel doesn't care who owns it. If the employer owns it, the employee gets paid less because the shovel rental is effectively deducted from his pay. If the worker owns it, the end consumer can (theoretically) pay less, because the worker does not need to pay any rent on his tools. The purchase cost of a better shovel is a barrier to entry, not a marginal cost of production.

By the time you get up to giant mechanized excavators, the barrier is so high that a guy with just a spade and a dream can never get that far, because anyone either renting or owning a better tool can outcompete him at every turn, and the rent on a better shovel may be such a large proportion of the cost of shoveling that the laborer using it could never accumulate enough savings to buy his own tool.

That's where you have to rely on an external force to change the status quo, "force" being the key word. The guy who doesn't play nice gets metaphorically whacked in the head with a shovel. Taxes are just one of many ways to do that.

<comment><USER25> If the little guy gets a mechanized excavator, he's not so little any more. And wouldn't that be his goal anyhow? Why would anyone want to go through the trouble to buy one, if there were not a high barrier to entry?</comment></comment></comment></comment></comment></comment>


German mac keyboard layout for hackers - <AUTHOR> http://bitboxer.de/2012/05/21/german-coding-keyboard-layout-for-macs/

<comment><USER2> Interesting. I found this alternative version of Dvorak the other day that I am going to try out. <http://www.kaufmann.no/roland/dvorak/></comment>


The secret world of microwave networks - <AUTHOR> http://arstechnica.com/information-technology/2016/11/private-microwave-networks-financial-hft/ <comment><USER2> the last paragraph of the article discusses building 80 floating towers to make a microwave link across the Atlantix with a latency of 16 ms instead of the current 25 ms for fiber.

There would be numerous challenges; towers moving due to swells and wind ruining antenna alignments and radio waves reflecting off the rough and random surface of the ocean would cause for a lot of continually changing distortion on the receiving end unless the towers were phenomenally tall which would exacerbate the first problem.</comment>


Show HN: A curated list of Vim/Bash/Perl/Awk/Python/Sed/C/Linux Tutorials&Scripts - <AUTHOR> https://github.com/Leo-G/DevopsWiki <comment><USER2> Wow n a lots more

<comment><AUTHOR> Yup there is docker, Javascript, Backups, Monitoring. everything a person in devops would need</comment></comment>