Vim: revisited - <AUTHOR> http://mislav.uniqpath.com/2011/12/vim-revisited/

<comment><USER2> I've used Pathogen previously and I have to say I much prefer Vundle. It's the only plugin I have to manage in my .vim directory. All the plugins I use are listed right in my vimrc, and running :BundleInstall does a git pull from each plugin's repository which gives me the latest updates. I use terminal-based vim for all of my coding and text editing all day, and my vimrc is only 91 sloc.

<https://github.com/tomhsx/dotfiles/blob/master/vimrc>

I think the advice to stay away from highly customized environments and hacks is really the way to go. A huge strength of vim is that you're going to find it on any server you end up using.

Disclosure: I didn't disable my arrow keys when I started with vim, but after a few months I did end up doing it to really brand the h/j/k/l movements in my mind.

<comment><USER3> One problem I had with Pathogen using git submodules (and presumably Vundle as well) was the inability to tweak my plugins. I wanted the ability to be able to modify several of the plugins I had installed and I couldn't figure out a nice way of doing this. In the end I opted for git subtrees but this also seems like an overcomplicated solution.

<comment><USER4> For tweaking plugins, you should use .vim/after/plugin/NAME.vim files. Otherwise, clone the repository, make your changes, and initiate a pull request.

<comment><USER3> The after/plugin thing is new to me, thanks.

</comment></comment></comment></comment><comment><USER5> Nicely done. A new or returning vimmer will profit from following his advice.

His best recommendation is at the top: don't configure a lot of settings and plugins at first. Start with a minimal setup, and slowly work up from there _when needed_. In particular, don't copy someone's huge .vimrc.

In fact, that's good advice for any tool or technology: start minimal, and only add what you need, when you know you need it.

To his minimal initial configuration, I would suggest one addition: set a colorscheme that looks good to you in the terminal/gui environment you normally use, and choose from the default schemes rather than downloading a pack of them. I like elflord (it doesn't use a lot of red, which is hard to read on a black background), YMwillcertainlyV.

To see which scheme you're currently using, open an existing file in your favorite language and then:

        :colorscheme

To cycle through the available schemes:

        :colorscheme<space><tab>

Each tab will show you the next scheme's name; hit enter to try one.

<comment><USER3> Out of curiosity, why would you suggest choosing from the default schemes? I picked my scheme from a downloaded bundle and then installed a plugin to make it work on a 256 colour terminal.

<comment><USER5> Because that minimizes futzing around. Certainly if the colorscheme makes a difference to you, and you can't find one that satisfies you in the defaults, then you should try to find a better one, but I think you should try the defaults first. Trying to use what's already there is in keeping with minimizing the urge to "install all the things!"

<comment><USER3> Fair enough. I'm currently using Freya since I have a love of low contrast dark schemes with muted colours.

<http://www.vim.org/scripts/script.php?script_id=1651>

</comment></comment></comment></comment><comment><USER6> I remember reading the web page I linked to below some time late last year, and remembered thinking at the time I wished someone told me this when I first started learning vim some 18 years ago.

      To those who would say "that's obvious; of course you learn
      vim incrementally", I would simply say that having spoken to
      a number of vim users in the past, I never got that advice.
      Instead, I got a lot of advice about turning off my arrow
      keys, disallowing the use of the mouse, and learning the
      (MORE EFFICIENT!!!) vim ways to do everything, all at once.
      People just couldn't stomach the idea of me continuing to
      use an outmoded practice (like apple-f) when vim had much
      better tools available just a (huge volume of) memorization
      away."

Source: [http://yehudakatz.com/2010/07/29/everyone-who-tried-to- convi...](http://yehudakatz.com/2010/07/29/everyone-who-tried-to-convince-me- to-use-vim-was-wrong/)

<comment><USER7> The reason so many experienced people suggest learning the basics of Vim (or, in my case, Emacs) in one go is because it works quickly and efficiently-- certainly more quickly and more efficiently than an incremental approach. Additionally, just giving up on arrow keys and the like does not necessarily entail a "huge volume" of memorization.

I am an inherently lazy person; I cannot just sit down and memorize stuff (one of the reasons I'm in CS). Yet I definitely support giving up the mouse and arrow keys immediately.

When I originally picked up Emacs, I went through the tutorial and promptly forgot exactly which keys did what. However, I decided to follow the tutorial's advice and learn how to navigate properly. To do this, all I did was not use the mouse or arrow keys for editing some text. For the first couple of days, I had to keep looking the keys up each time I did anything; later--relatively abruptly--I started using them without realizing. There is no way I would have learned nearly as much as quickly if I had not got through a couple days of not knowing what I was doing.

Once the standard moving commands became second nature, I started using some of the more specialized ones (like moving around by line or paragraph or expression). Without having given up on the arrow keys and mouse, I would probably never have learned the more advanced movements which are now _exceptionally_ useful.

Basically, to follow your suggestion would be to avoid a couple days of bumbling around in favor of being less effective for a very long time. On the other hand, with my approach, I _did_ spend a couple days being incompetent but then the bindings became natural. Ultimately, to me, being lazy involves not just minimizing work immediately, but increasing efficiency in the long run as well.

As a contrast, I know many classmates who have tried to learn Emacs your way. Most of them can use it, but not much more efficiently than notepad; I regularly see them spending minutes doing menial tasks that would have taken seconds had they known Emacs better. In the context of a 90 minute lab, that is not trivial at all; even in the context of working full time, the amount of time they can save should not be ignored.

Ultimately, all it takes to learn Emacs (and, I imagine, the same can be said of Vim) is a little bit of patience and willingness to embrace change. By jumping into the deep end immediately, you can learn _really_ quickly, and reap the benefits almost immediately.

<comment><USER6> The thing about vi vs emacs is that at the very beginning the learning curve for vi is already very steep. Simple things like keyboard navigation and even editing are non-trivial tasks.

This puts off a lot of people, especially if they're working full time as a couple of days fumbling with a text editor equates to real dollars lost in productivity. (In my experience though, it'll take at least a few weeks to be even mildly proficient).

If you're a student (I was 13 when I first picked up vi) this is no problem, as I had infinite time on my hands, but when you're working full time, the amount of time you have to experiment drastically reduces.

<comment><USER7> I don't think the initial difficulty of Vi is that much greater than that of Emacs. The real difficulty is in the fact that everything is completely different from what you are used to; perhaps this is more true in Vi, but the difference between Emacs and Vi in this regard pales in comparison to the difference between using a mouse and arrow keys and either of the text editors.

Also, while my approach will certainly cause a small amount of difficulty at the very beginning, I think you will actually win out in the long run. That is, let's say you normally code at 1 productivity unit (whatever that may be). My way, you may spend a some time at 0.1, then a bit of time at 0.5, but, in a couple weeks at most, you will start working at 1.5 or 2 or more. On the other hand, while still using arrow keys, you may first be at 0.8 for a bit, then back at 1 then maybe at 1.2. But you will not see any drastic improvement for a while, and so will actually be _less_ efficient in the long run.

<comment><USER8> I use VIM and sometimes use the arrow keys. These come in really handy when you have a lot of small edits to make that can't be readily automated (not really that frequent).

However the huge shift in mentality has to go from the idea that you are working with a "text editor" (which VIM and EMACS are not IMHO) and a _text processor_ which I would argue these are.

When you start thinking about processing rather than editing text, the productivity goes way up. There is nothing like these tools in the text editor world for editing large, complex codebases. IDE's can't compare.

<comment><USER9> I don't see any problem with using the arrow keys.

As someone said, when programming typing isn't my bottleneck, thinking is.

Full touch-typing speed is a must for court clerks -- not for programmers, and also not even for writers.

<comment><USER10> I didn't see the problem with arrow keys either. They really do break flow though. I only recently discovered how much better the home key navigation is over arrow keys. Every time you move you hands away from the home row you incur a small mental task of making sure that you move your hand over there and that the hand is correctly positioned. It sounds trivial but it really adds up to one less thing to think about.

Couple this with inoremap jj <Esc> and it eliminates the majority of large movements away from the home row.

Say you are in the middle of a word that you want to change compare: Arrow key right until at end of word, i, backspace until at start of word, type new word, Esc three excursions from home row.

Ciw, type new word, jj. No excursions from home row and less of a mental load.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> >I learned this the hard way: you shouldn't start with a huge .vimrc file that you copied from someone else nor should you install every single plugin that seems useful at that moment.

This is probably the most valuable piece of advice in the article. I have over a number of years looked at the tangled mess that my .vimrc had become, but always put off cleaning it up because I really didn't understand what some of the things did.

I thought to myself: Yes some of the keys act a little funny (sophacles/vim- bundle-python had awful, conflicting use of [c when I used Vimdiff on a python file), and yes I get warnings about some things, but hey, I must have put all this stuff in the config file for some reason.

Well, tonight I finally pitched my whole .vimrc (<https://gist.github.com/1464673>) and I am much happier as a result. I realized that I didn't need all that stuff to be productive, and I never probably used any of it anyway.

</comment><comment><USER12> Not really sure why the hate for nerdtree.

"Don't use the NERD tree plugin. It is clumsy, will hurt your workflow with split windows, and it's not particulary pretty either. You never needed a file browser pane in the first place."

"It is clumsy"

We're talking about VIM, with dozens of keystrokes to invoke everything but emacs already. The _whole thing_ is a bit clumsy! I use it every day and have for a decade but it's still clumsy.

"will hurt your workflow with split windows"

The author then goes on to state

"You can split the current buffer horizontally or vertically. This is useful, for instance, to view simultaneously the top and the bottom part of the same file. But it's even more useful to view different files in splits; for instance tests and implementation."

HUH?

" and it (nerdtree) 's not particulary pretty either"

And the rest of VIM is?

Nerdtree is great, especially when I'm using it on remote systems. A vim session open with nerdtree and some tabs inside of a screen session, and life is good.

<comment><USER13> You've misinterpreted the "hurt your workflow with split windows" bit. You understood it as if NERD Tree's split window is what hurts your workflow. I was saying that my existing split window workflow was hurt by presence of the NERD Tree.

<comment><USER12> AHHHH - that makes more sense.

I toggle nerdtree on and off often, so it's there when I need it, and gone when I don't, so I don't notice it getting in the way of my split windows all that much.

</comment></comment></comment><comment><USER14> set relativenumber

I had been using Vim for years, and this is fundamentally one of the most useful settings I came across. I think it's only available it the latest rel.

Funny side note, I was out on the town one night and saw a bunch of guys and girls hacking on their laptops... in a club. I noticed one guy using Vim, came up behind him and told him he has a good taste in editors. It turns out he's Jay Freeman (saurik). I showed him relativenumber and he was stoked. EOS.

<comment><USER15> Thanks a lot! For a vimrc also supporting other version than 7.3:

      if version >= 730
        set relativenumber
      endif

</comment></comment><comment><USER16> Another nice tool to learn (or relearn) vim is vimtutor. I wish I had known about vimtutor when I first started learning vim, as opposed to launching vim and panicking when I accidentally wrote over some files I was editing.

Also, openvim.com has an excellent online tutorial that's convenient.

</comment><comment><USER17> I'm puzzled by why syntastic was so counterproductive for him. It's helped me more times than it's hurt. Does he have autowrite on?

Some additional tips:

* As your # of plugins grow it helps to isolate plugin-specific config to separate files. Example: [https://github.com/cldwalker/vimfiles/tree/master/after/plug...](https://github.com/cldwalker/vimfiles/tree/master/after/plugin) .

* If you want to stop seeing vim as a series of unforeseen tricks, take the time to learn the 300-400 keybindings you find useful. I'd recommend a free flashcard program like anki which also has a vim flashcard set, <https://github.com/amikula/vim_flashcards>

* One helpful pattern I've noticed in memorizing keybindings: uppercase, left characters i.e. P, ( map to above and reverse; lowercase and reverse characters i.e. p, ) map to below and forward

* If you're looking for a more powerful to search your vim docs, check out my vimdb project, <http://github.com/cldwalker/vimdb>

<comment><USER10> 300-400 keybindings? Even the flashcard utility only has ~250 in total.

Do you mean 30-40?

<comment><USER17> I've since generated my own using vimdb. I could put up my flashcards if interested. vim has ~600 default keybindings if you :help index.txt .

</comment></comment></comment><comment><USER18> I just want to thank the hacker news community. Vim is the kind of tool that requires a lot of persistence and hand holding to learn. I'm slowly learning and understand how I can use it to fundamentally change the way I do work on the computer. So thanks for highlighting and writing these helpful posts. they make a difference.

</comment><comment><USER19> Good advice, although I personally disagree with him on the Janus front.

Janus is what got me to switch full time to Vim a few months ago, after having used Vim off and on for over a decade, mainly on the command line or for edits that were to difficult or repetitive to get done in more "friendly" editors/IDEs like TextMate and Visual Studio.

Janus provided just enough familiarity and convenience to make a full-time swap something I could stick with. After a couple of months of this I did basically dump Janus and start managing plugins myself with Pathogen (adding new ones and removing some of the default Janus ones), and customising my config (which is still based on the old Janus config, but extensively modified)

<comment><USER20> Agreed he seems to just dismiss Janus randomly, instead prefering to tell people to what...assemble the plugins by hand and just copy his vimrc config? not ideal.

<comment><USER21> that's almost but not quite entirely unlike what he's suggesting, which is to start with a minimal .vimrc, understand every line in it, and gradually add tweaks and plugins as you see the need for them and understand how to set them up.

</comment></comment></comment><comment><USER22> Solid advice. I like the idea of minimizing plugins and mastering the fundamentals, because this is true strength of vim.

If I was pinning my productivity on customizations then emacs would be the clear choice.

If I wanted the perfect coding environment for language X, there's a good chance it would be an IDE.

But with vim, I can open any text file on any system and edit the hell out of it amazingly efficiently. It's extensibility is a nice bonus (very nice in some cases! eg: <https://github.com/tpope/vim-fugitive>), but at its core it's about raw text manipulation.

</comment><comment><USER3> As another recent convert to Vim, I always get something out of reading these articles. However my primary advice would be to just accept that the process of learning Vim is inherently painful, but the suffering is mostly over after a couple of months. Expect your productivity to drop during this period though.

It's also true that Vim 'suffers' from the open source infinite configurability issue. That is, it is so configurable that you'll spend a significant amount of time configuring it to your tastes rather than getting work done. This tails off over time of course. Slightly more awkward is that it's also easy to shoot yourself in the foot. For example my current config has an issue where on rare occasions undo sporadically fails, and ends up undoing line insertions by deleting the wrong line! Ouch. I still have several such issues, but not enough to deter me as yet.

Another thing to consider is that Vim is not equally suited to all developers. If you're editing a bunch of different file types with mostly consistent libraries I think it's a great fit, which describes a lot of web developers. In that case you just want world class text editing. If you're editing mostly C++ with a bunch of different APIs and libraries, the loss of decent codesense/autocomplete forces you into lots of very slow doxygen searching in a browser. I've tried various solutions to this such as clang complete and eclim, but ultimately Vim is not an IDE and there's no way to make it act as one.

Overall I'm happy to have made the switch though, since the editing itself is so very smooth. It's great to have the same environment in a remote shell as well.

</comment><comment><USER23> Spaced repetition fans should be aware that there's a great Anki deck available for learning vim commands:

[http://alfmikula.blogspot.com/2010/11/using-spaced- repetitio...](http://alfmikula.blogspot.com/2010/11/using-spaced-repetition- software-to.html)

</comment><comment><USER24> critical: Map Caps Lock to control and use control-[ instead of escape.

It's very easy to do on most OS's today and not having to move your hand from the home row when you switch into command mode is as big as proper use of jump commands imo.

I also agree to avoid all massive .vimrc files. If you don't understand it, don't use it. Simple.

<comment><USER25> I have had a lot of trouble remapping Caps Lock on Mac OS X. What's your method?

<comment><USER26> Prefs -> Keyboard -> Modifier keys.

<comment><USER25> Oh, sorry, I should clarify -- I want to remap it to Esc.

Or, to be more precise, I want Caps Lock to somehow switch modes in vim in a terminal app. If that means configuring something on both sides, the OS and vim, I'm cool with that.

I've tried a number of things but nothing seems to work right.

</comment></comment></comment></comment><comment><USER27> "And if you did multiple jumps, you can backtrack with <C-o>."

I learn something new with these posts every time! I've been wanting something like this for a while.

<comment><USER28> And you can use Tab to go forward.

<comment> t-crayford If you have tab bound to something else (c-p here), then c-i will do the same.

</comment></comment></comment><comment><USER29> I have exclusively used vim as my editor for about 8 years. I'm efficient with it, but there are still many fancy things I don't do. My rule of thumb is this: if I find myself performing a task over-and-over, and being bothered by it, chances are good there's a more efficient way to do it in vim. Then and _only then_ will I look up the better way to do it. Because I'm solving a problem I frequently have, I will learn the new thing.

</comment><comment><USER30> There's been a bit of anti-mouse talk on here, but I recently took the time to get mouse support on vim in Terminal.app working. I have my notes here: [http://www.reasonablyopinionated.com/2011/11/mouse- support-f...](http://www.reasonablyopinionated.com/2011/11/mouse-support-for- terminalapp-scrolling.html)

While I do agree using the mouse for cursor positioning isn't always the best use of the mouse, there are situations where it's just better. For instance, using mouse scrolling in vim is very convenient, and mouse selection and paste is also very convenient. It's even better when you can use it across the network!

</comment><comment><USER31> If only I had read this when I first started using Vim!

I've been using Vim for a while, and this is one of the best-organized overviews of Vim I've seen, partly because he _doesn't_ try to enumerate every single key combination (which is the wrong way to learn Vim - the right way is to synthesize the way that the individual operations are logically combined, though that admittedly takes some time). The best two pieces of advice he gives are (1) not to put anything in .vimrc without knowing exactly what it does, and (2) don't use too many plugins.

At this point, I actually don't think I really use _any_ plugins regularly. I have nothing against Vim plugins in general. It might be a bit faster to install a choice few, sure, and someday I might try and figure out which ones work best for me. But for the time being, I'd much rather know how to navigate my file or project with just the standard set of operations and minimal configuration. That way, I can launch Vim on any machine and start using it, without needing to waste time setting it up just so I can use it properly.

(Disclaimer: I have mapped Caps Lock to Esc, which is indeed a major problem if I use another person's computer. I've gotten used to seeing "E492: Not an editor command: W" practically every time I type on a friend's laptop. But it saves me so much time when working on my own machine that it's worth it!)

In short: stick with Vim long enough, and you'll find that you don't really need many plugins or much configuration for it to be incredibly useful. They help, but not as much as you might think, especially once Vim's standard keybindings become part of your keyboard reflexes.

<comment><USER32> I agree about accepting (most) standard key bindings, but here are two clever bindings I adopted:

      " Enter command mode with SPACE instead of :
      noremap <Space> :

      " Exit insert mode with jj (double J) instead of ESC
      imap jj <Esc>

<comment><USER33> What about changing hjkl movements to jkl;? I didn't try it yet... But hjkl bothers me. My index belongs on j, for homerow touch typing, not h. Wouldn't it be an improvement? Not having to move the hand for movements. I must be missing something because everyone stays with hjkl.

<comment> t-crayford I'm much faster in vim since I gave up (for the most part) on hjkl (arrow keys are banned for obvious badness). / ? # * combined with f and t are so much faster. The only time I use j/k is 10j/10k for looking through files.

Hence, your question is somewhat misguided ;)

<comment><USER34> And what country is your keyboard from?

Unless you mean you specifically use search for every motion...?

<comment> t-crayford I use colemak now, but this holds true in qwerty as well (most of the time). I don't use search for _EVERYTHING_ , just most of the time it's faster.

</comment></comment></comment></comment></comment></comment><comment><USER35> For me, switching to vim means moving my hand to use the mouse less often, which means less stress on my wrist. Of course, if you're typing on the keyboard all day, you still have some risk for RSI, but I find using the keyboard to be much more comfortable than using the mouse.

Plus it's much more productive!

</comment><comment><USER36> I'm happy to have finally gotten comfortable with enough of the movement/editing commands to use them every day for real work. However, I just use Vintage mode in Sublime Text 2 because I like having nice file browsing/tabs and other niceties of Sublime Text 2. Am I missing out on much by not using straight vim?

<comment><USER37> Yes.

I loved Sublime Text 1, and I really love Sublime Text 2. With the addition of Vintage, Sublime Text is slowly becoming the ultimate answer to the question of which editor to choose.

But Vintage mode is _really buggy_ , and misses a _lot_ of very important features that vim has. There is work being done on it, and it _is_ getting better, but vintage mode does not come close yet to the power of vim. And there are a few bugs that make it hard to get used to some of vim's more powerful features.

</comment></comment><comment><USER38> Just as I finally managed to make vim play well with ruby and install CommandT, the (extremely useful) post has been updated with the note about ctrlp.vim. I guess I have no choice except to give it a shot as well. =) (Update: Nope, Command-T seems nicer.)

</comment><comment><USER39> Every time I read about Vim I feel left off of something huge. Some of the super duper easy shortcuts suggested in this thread translate horribly to AZERTY. For instance ctrl+[ is alt+shift+ctrl+5 on a French Mac or ctrl+altgr+4 on a French PC keyboard.

<comment><USER40> I hate Azerty. Switch to a qwerty keyboard and use compose key to type accents.

</comment></comment><comment><USER41> Currently I'm workign through Python Koans, and decided to use Vim. It's good way to pick up new commands cause you do the same tedious editing keystrokes over and over again, prompting you to look up 'so how do I easily _____ in Vim' as you progress.

</comment><comment><USER42> This is a incredibly useful overview. My jaw dropped when I read about all the uber-jump commands! I've been setting markers, but this is 100x better. This is exactly why I read every single post about vim, because I always learn something new.

</comment><comment><USER43> Why people always emphasis h/j/k/l when we already have arrow keys? Do you really waste a lot of time moving your fingers between them? Also, arrow keys work in insert mode.

<comment><USER44> This is a perfect place to post a Vim tip that I think helped me the most in starting out.

Disable arrow keys.

It's _extremely_ painful for the first 5 days but I promise that's all it takes to get use to it. And it makes huge difference in your productivity. All that time does add up.

Add the following to your .vimrc

        map <up> <nop>
        map <down> <nop>
        map <left> <nop>
        map <right> <nop>
        imap <up> <nop>
        imap <down> <nop>
        imap <left> <nop>
        imap <right> <nop>

The reason you want arrow keys disabled in insert mode is that arrow keys breaks the modal paradigm. Again, I promise that once you get comfortable, it becomes more efficient to go into editing mode and make the change rather than navigate via the arrow keys in insert mode.

<comment><USER45> I learned vim's movement keys by playing nethack on a laptop without a number pad. This is a very fun way to learn hjkl. It also punishes you quickly if you make a mistake.

</comment></comment></comment><comment><USER46> What is this guy's issue with Syntastic?

If he's saying it's not for beginning Vim users, OK, fine. But "harmful plugin"? Like it's some sort of malware? Very poor form.

</comment><comment><USER47> OT: This is such a beautifully designed blog. One of the few that I don't immediately pass through Readability or something similar in order to, you know, _read_ it.

</comment><comment><USER48> I've been looking forward to the day I have time to allocate to learn vim. This post was the first one I've seen that would allow me to jump in it quicker.

<comment><USER49> I found the best way is to force yourself by not using a GUI. I bought my first VPS a couple of years ago and started editing code on there (faster to compile than my laptop too). All dev work happens through SSH and screen to the box under my desk now, and it feels so much more productive.

</comment></comment><comment> brown9-2 Having unrelatedly just started using CommandT today, let me say how amazing it is.

I've been using vim as a supreme novice for a few years, and have only really tried to get to know it better in the past six months after switching to OS X and getting to use MacVim.

And already in one night CommandT has blown me away with how timesaving it is, and how much time I've wasted in the past not using it.

<comment> Arcanum-XIII Not only is CommantT amazing, but I haven't seen something that good anywhere else. Seem that Peepcode has a similar things (but plugged in the system...), and that it comes from Textmate. But here the ability to change the working directory with some fast :cd change everything !

</comment></comment><comment><USER50> I've been using Vim more or less exclusively for the last year or so, and there is only one feature of Aptana Studio that I miss, and have not been able to find in any Vim plugins. In the directory/project tree in Aptana, files had different styles based on their git status. I think I just need to take a weekend and learn enough vim programming to make it happen as a Nerd Tree plugin.

<comment><USER51> > I think I just need to take a weekend and learn enough vim programming to > make it happen as a Nerd Tree plugin.

Check out Steve Losh's Learn Vimscript the Hard Way[1].

[1] <http://learnvimscriptthehardway.stevelosh.com/>

</comment></comment><comment><USER52> I pretty happy to have learned about <C-^> and `. I always learn something from these 'how I learned vim' articles.

<comment> bulte-rs This is one of my favorites; until I learnt about b# (:b#) to 'toggle' to the last open buffer. Quickly remapped this to <leader>, (being ,,). Et voila: lightning-uber-fast-buffer-toggling.

</comment></comment><comment><USER53> _Pro tip: after you paste code, it might not be indented correctly in the new context. You can select just pasted lines and autoindent them with V`]=. This should fix the indentation in most cases._

A better alternative: issue the ":set paste" command just before pasting text. That way you keep the original indentation.

<comment><USER54> You can also use a "]" before the "p" (i.e., "]p") to make a new paste follow the existing indentation.

</comment></comment><comment><USER55> I use and like Vim, but I feel like the articles that make it to HN all say the same thing ("I had a conversion experience," followed by some configuration details, followed by basic keystrokes, etc).

Why does everyone feel the need to re-tell the same story?

<comment><USER7> To get more people to use Vim. It's also annoying when IDE people assume that Vim and Emacs people are just old-fashioned and using inferior tools; explaining why and how you use Vim is a great way to dispel these misconceptions.

</comment></comment><comment><USER56> One of the best tutorials, to get started with Vim, I've seen around. Well done.

</comment><comment><USER57> "vim has two main modes, normal mode ... and the insert mode"

i stopped reading here because i knew what was coming next. the omen was fulfilled by the next line:

"in insert mode, now you type text as your normally would. Pressing <Esc> exits back to normal mode."

its command mode vs insert mode. any vi user should know that.. it's the very first thing vi bludgeons you with.

<comment><USER58> :help command-mode goes to the same place as :help normal-mode. I'd rather call it normal mode, because that isn't easily confused with the command-line mode.

<comment><USER29> It also emphasizes that inserting text is _rare_. You will spend more time not inserting new text, but navigating the file.

</comment></comment></comment><comment><USER59> Still can't decide if Vim is actually worth all this trouble, or if it's a cult.

<comment><USER60> It's both.

<comment> bulte-rs I always thought that either means "one or the other".

</comment></comment></comment><comment><USER61> You've gotta manage your expectations properly. Vim takes time to learn. Trust that there's a payoff, be patient. I'd like to think my first attempt at becoming a Vim user stuck, but I took it slow. I was using Vim at my day job, and it went something like this:

1 month - really started to feel a productivity increase over text editing in an IDE

3 months - started to feel like I was flying

6 months - began desperately searching for Vim plugins for Eclipse</comment>


Tom Duff: Reading Code From Top to Bottom (1999) - <AUTHOR> http://iq0.com/notes/deep.nesting.html <comment><USER2> Duff's advice on avoiding if/else is echoed in a functional programming context by CMU's Bob Harper, who writes, "[A]void if-then-else entirely, and instead use only case analysis for branching..." [http://existentialtype.wordpress.com/2011/04/17/some- advice-...](http://existentialtype.wordpress.com/2011/04/17/some-advice-on- teaching-fp/)

<comment><USER3> Uhh, not same reasons. Harper is an ML hacker, he wants to avoid IFs to encourage generic programming and pattern matching. Adding a new branch to an if clause requires some nesting, adding a branch to a case/cond is just one entry of many. After that, pattern matching becomes natural an you tend to see a function not as a single wholesome "body", but a family of mappings.

Again, switch, duff's device & other computed-goto hacks are "constructs", a chunk of "decision" code that sits in the middle of the page directing traffic. Pattern-matching is far more sublime than that: along with manifesting itself as a visual construct, it can also hide in the head of the function, cozzying up with its parameters, and also in binding/assignment forms.

A distant, but weaker cousin of pattern-matching is destructuring, more common in Lisps.

</comment></comment><comment><USER4> Can someone older or wiser than me discuss what the idea is behind "only one return per method" in imperative code? I agree completely that it makes many methods much more difficult to read, and I've never understood why it was taught as a guideline in the past (and why some people still seem to subscribe to it today.)

EDIT: It makes a lot more sense to me now that I think about it in the context of a language like C, with no garbage collection and no exceptions. Thanks!

<comment><USER5> It was part of the structured programming dogma. One entry point, one exit point. Multiple return was lumped in with using goto.

I never use goto, but I often use multiple returns similar to the examples in this article.

I have sadly code reviewed many pieces of code with the nesting problem.

<comment><USER6> if you have to use C++ without exceptions (console video games), then goto is much needed to handle exceptional situations locally. For example there would be label "fail:;" or "out:;" at the end of the function, where release of resource would happen, and you would "goto" to it, rather than releasing the resources in multiple exceptional places and return from there.

<comment><USER7> Why don't console games use exceptions?

<comment><USER8> No compiler support on one common system.

You should be handling every case anyway - by the time the code is done, there are no exceptional situations left ;)

</comment></comment></comment></comment></comment><comment><USER9> On the topic of loops which end in a break ("Most egregious is the loop whose last statement is break;!"): this can be useful for avoiding contorted control flow when you have a switch statement inside the loop. Instead of coding:

        cont = 1;
        while (cont)
        {
            foo = bar();
            switch (foo)
            {
                case 0:
                    cont = 0;
                    break;
                default:
                    // other work
                    break;
            }
        }

You can do this instead:

        for (;;)
        {
            foo = bar();
            switch (foo)
            {
                case 0:
                    break;
                default:
                    // other work
                    continue;
            }
            break;
        }

IMO the idiom, once you're used to it, reads better.

(Yes, I know you can reduce the lines further e.g. putting foo=bar() into the for statement, but it's the multi-level break I'm focused on here.)

<comment><USER10> Why not:

        while( (foo = bar()) != 0 )
        {
            /* other work */
        }

Or even simpler (since 'foo' serves no real purpose in the example):

        while( bar() )
        {
            /* other work */
        }

</comment></comment><comment><USER11> One, very simple, example:

int some_function( some_variable ) {

      if (some_variable) {
        b = 1;
      } else {
        b = 2;
      }

      log("Its important I log that I'm returning %d\n", b);

      return b;

}

If its not obvious why this is superior...

<comment><USER12>
      int some_function( some_variable ) {

        log("Its important I log that I'm returning %d\n", (some_variable ? 1 : 2));

        return (some_variable ? 1 : 2);
      }

<comment><USER13> Now you're duplicating logic for a log statement...

<comment><USER3> I have a new __no_ computation in log statements_ rule. A bug in there is nigh near impossible to fix because you're _not_ looking for it.

</comment></comment></comment></comment><comment><USER2> I found a few other interesting little notes on his site:

<http://iq0.com/notes/trig.html> All you need to know about Trignometry

<http://iq0.com/notes/frobenius.html> The Frobenius-Burnside Counting Formula

<http://iq0.com/notes/geometric.html> Sum of a Geometric Series</comment>


Colonizing Mars V. Building Space Stations - <AUTHOR> Why are we talking about colonizing other Mars, instead of building a bunch of huge space stations? Seems like the space stations are easier, cheaper, more scalable, and more flexible. <comment><USER2> You could possibly find some savings by using materials on Mars to either build your colony or sustain it, and things like gravity which are expensive to produce in space are free.

<comment><AUTHOR> Musk claims that it costs too much to move the mass required to build the space stations into space, but energy is actually quite cheap if you harvest it efficiently (solar), and anyway the cost of moving the mass is a amortized, so it's small relative to operational costs over time. It just seems to me that there are only two planets that we are likely to ever colonize, and one is already a wreck. Putting in an enormous amount of work to wreck the other just seems to put off the inevitable ... one way or the other.</comment></comment>


Schools in Nigeria lack the curriculum to expose children to digital skills - <AUTHOR> https://www.iafrikan.com/2020/06/15/digital-skills-literacy-nigeria-youth-adults/ <comment><USER4> This is written from the assumptions that digital skills are a primary concern, and that such skills need guidance and leadership to develop.

I think neither of those concerns are valid.

Teaching fundamental skills, especially from a holistic approach (not where math, physics, history, etc. are taught in isolation), is vastly more important. With that foundational knowledge, children can reason and learn more on their own. This is when basic guidance regarding digital skills can be offered.

Once a broad platform of knowledge and ability to think is established, children (and adults) can learn the technical skills easily. If you approach this education in reverse, people learn how to do a few specific things without being able to think independently about what they are doing or why they are doing it. They will certainly have the motivation to learn on their own.

<comment><USER5> No, kids dont learn work related bits of technical skills by themselves. They wont learn about file structure, basic maintenance, how to write documents nor how to copy them.

With no guidance and at least hints about what is possible, they are basically how old people used to be - clueless and helpless. They then tend to see themselves as "non-technical" as opposed to "technical" and don't try.

<comment><USER4> Are you suggesting that if you sat a child down in front of a computer and walked away, they wouldn't eventually know how to do most things?

Children are more likely to try stuff without fear of bad outcomes. It's the adults who need hand-holding. Children will click everything to see what happens.

I know this is probably too old for many readers here, but there was a time when people had VCRs (video cassette players). Most VCRs had a built in digital clock, and many of those VCRs had no backup battery. One little power blip meant the VCR clock would reset to something useless and annoying.

Children or grandchildren would be routinely tasked with setting those clocks, since only they seemed to know how. And almost certainly, those children did not read the manual to learn how to do the unintuitive things with the limited interfaces that would result in setting the clock.

<comment><USER6> How many children learn the ins and outs of cmd.exe when modern PCs have so many compelling distractions not to mention no printed documentation to give direction?

Naive computer users get locked into local maxima until a need either knocks them into a more complete understanding of how to do things or they just give up. The adults in their social sphere are usually no better equipped to provide guidance.

<comment><USER7> I'm sure that plenty do. I somehow discovered Emacs in the Terminal on the family Mac when I was much younger and I consider that the start of my interest in how computers work under the hood (aside: thanks to the GNU Emacs developers for making the manual so accessible immediately after typing `emacs` into a shell).

The biggest positive influence from my parents and other adults in my life was regulating my video game time but not my "playing with the computer" time. I was pushed towards reading and learning about computer stuff instead of playing games and watching videos.

I'm sure that some kids need more guidance, but in the age of the Internet, the subtle push away from entertainment activities might be enough for many.

<comment><USER8> I think it's important to remember that many of the people here are exceptional, not typical, computer users. I figured out (mostly on my own, my dad showed me how to get to the prompt itself and that was it) the DOS interface and BASIC (using contents from a math textbook) at age 8. But that's not _normal_ , most of my peers who also had computers available to them figured out video games and that was it.

</comment></comment></comment></comment></comment></comment><comment><USER9> In Nigeria, computer as a subject is being taught at all levels - primary, secondary, and University.

For seniors in secondary schools it's called data processing.

Both Computer studies and data processing however, are mainly theory to be memorized.

The end result is graduates who struggle with basic computing tasks - <USER2> taking 10+ years of computer classes.

Even for computer science students in universities, this theory only approach changes only slightly. 80% of the semester in programming courses is spent in classes receiving lectures with the last three weeks in the computer lab.

As for self learning via videos, it's challenging. Nigeria's minimum wage is below $100. Teachers in private schools (university graduates), mostly earn below $100 - NGN 38,750 (GOOGLE) monthly.

Back to video learning, wired internet is non-existent. It's all wireless - <USER3> no unlimited internet. 50GB monthly data plan from Nigeria's cheapest data provider GLO costs 10 thousand naira. Relatively cheap comparing absolute dollar amount.

10,000 naira is however 33% of Nigeria's minimum wage of 30,000 naira.

</comment><comment><USER10> If you look at the digital "skills" of teenagers in Europe or the US you'll notice that this problem is not limited to Nigeria.

</comment><comment><USER11> > both the teens and these adults lack the skills and literacy needed to > navigate potential risks.

I'd argue that this is common across the globe, not limited to Nigeria. Very few people bother to take the time to understand the implications and the true dangers of the internet are. Even till this day, I'm pretty sure that most people think "oreo" when they see the cookies banners... If anything, I'd argue children are more likely to know the difference. And there are the limited cases where some children surprise with how well they are aware of what is going on, at least on a fundamental level. Deep down, very limited number of people can tell, the rabbit hole has become ridiculously big.

<comment><USER12> I think that looking at Nigeria is instructive precisely because it is so ordinary among developing nations, while still being massive. Nigeria's biggest asset is probably its population, and since Nigeria is one of the most-populated parts of Africa, education is very important for keeping society on its path. At the same time, any lessons learned about improving education in Nigeria can be brought to the rest of Africa and the world.</comment></comment>


Japan recreates the sensation of buttons on a touchscreen phone - <AUTHOR> http://thenextweb.com/mobile/2011/05/30/japan-recreates-the-sensation-of-buttons-on-a-touchscreen-phone/?awesm=tnw.to_18cq9&utm_content=spreadus&utm_medium=tnw.to-other&utm_source=direct-tnw.to

<comment><USER2> Vibration? That's a far cry from actual tactile sensation. I'll believe their claims that it feels like moving across buttons when I can actually hold one in my hand.

</comment><comment><USER3> prob just like the blackberry storm</comment>


Chimpanzee Browsing Instagram on iPhone with Precision - <AUTHOR> https://9to5mac.com/2019/04/25/chimpanzee-using-instagram-iphone/ <comment><USER2> With precision is too vague. The chimpanzee actually chooses what to see: scrolls, watches chimp videos, swipes off boring snake videos, etc. It's said they are roughly as intelligent as a toddler, and it certainly looks that way. Awesome.

</comment><comment><USER3> This sounds like a good demonstration of how mindless the activity of scrolling through Instagram truly is. (Even a monkey can do it).

It's similar to watching TV or mindlessly browsing the web for non- intellectual activities. Perhaps we should be concerned about the impact of these technologies on our evolution as a species. There does seem to be supporting research for this (sorry for not providing links/ref).

<comment><USER4> Why isn't it a demonstration of how intuitive the hardware and UI are.

<comment><USER5> haters gonna hate

</comment></comment></comment><comment><USER6> I used to play with an idea to build kiosks for wild chimps with video phone recording software. With an interface tuned for them, I wonder if you could build social software that actually provided utility to the chimpanzees. I can imagine something like TikTok being able to send news or otherwise connect them in a meaningful way.

<comment><USER7> There is a Ted talk about an "Interspecies Internet:" [https://www.ted.com/talks/the_interspecies_internet_an_idea_...](https://www.ted.com/talks/the_interspecies_internet_an_idea_in_progress/up- next?language=en)

</comment></comment><comment><USER8> A 2005 study observed this behavior in macaques; male monkeys would pay some amount of fruit juice to look at leaders' faces or females' hindquarters ("socially useful information"). [https://www.nature.com/news/2005/050131/full/news050131-5.ht...](https://www.nature.com/news/2005/050131/full/news050131-5.html)

</comment><comment><USER9> Impressive, but I would be more impressed if it started posting and generating followers, then monetizing the followers into a media empire. Isn't that the whole point of instagram?

<comment><USER10> There's already a monkey selfie created by a wildlife photographer who set up a camera that monkeys could activate to try to get a picture of them. It's embroiled in a copyright dispute over whether the photographer or the monkey owns the photo:

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

<comment><USER11> > The disputes involve Wikimedia Commons and the blog Techdirt, which have > hosted the images following their publication in newspapers in July 2011 > over Slater's objections, and People for the Ethical Treatment of Animals > (PETA), who have argued that the macaque should be assigned the copyright

> In April 2018, the appeals court affirmed that animals can not legally hold > copyrights and expressed concern that PETA's motivations had been to promote > their own interests rather than to protect the legal rights of animals.

</comment></comment></comment><comment><USER12> Back in the old days there was slot of talk about how hard computers were to use, and how much work remained to be done to make user interfaces usable.

The task is complete.

Also here is a painting elephant: [https://m.youtube.com/watch?v=owSZs7H24UY](https://m.youtube.com/watch?v=owSZs7H24UY)

<comment><USER13> FWIW the elephant was tortured into learning how to do this.

<comment><USER14> It was? Do you have a source for this? That's horrible if true.

<comment><USER15> If this is the video I'm thinking of (can't open it at work), the elephant is chained to a post while painting. These types of "sanctuaries" are nothing of the sort, they exploit animals for tourist $.

There are tourist-friendly elephant sanctuaries that are built on respecting the animals' personal space; Elephant Nature Park in Thailand is one. Tourists are basically only allowed to observe the elephants in a forest/jungle habitat. At other places, tourists are allowed to hug and play with baby elephants, and the animals are trained to put up with it, while the mothers are chained and kept apart from the babies during "tourist time".

<comment><USER14> That's awful. Thanks for the info.

FWIW, I don't see any chains in the video, but it does seem more likely that they were trained abusively (like circus elephants) to get them to do this.

</comment></comment></comment></comment></comment><comment><USER16> The left swipe doesn't work on my android phone, I have to click the icons. Does that only work on the iPhone?

<comment><USER11> Yes, it's a standard iOS gesture with no equivalent on Android other than implementations that apps try to come up themselves.

<comment><USER17> Not entirely: the standard behaviour of navigation on iOS is to allow swiping from only the left edge to go back. It seems that Instagram added the ability to swipe left from anywhere on the screen, not just the edge.

<comment><USER11> I don't use Instagram, but I'm not surprised that they've decided to "customize" that behavior.

</comment></comment></comment></comment><comment><USER18> Can't help but be reminded of a great album

[https://youtu.be/uVSBawXaoT4](https://youtu.be/uVSBawXaoT4)

</comment><comment><USER19> So there is at least one intelligent Instagram user out there.

</comment><comment><USER20> Next unicorn IPO: Tinder for chimps

<comment><USER21> You kid, but...[https://twitter.com/Sierra_2015/status/929822581699629061](https://twitter.com/Sierra_2015/status/929822581699629061)

</comment></comment><comment><USER22> Go monkeys go. Even title make me laugh.</comment>


Robinhood launches its own trade-clearing system as customer growth surges - <AUTHOR> https://www.cnbc.com/2018/10/10/robinhood-launches-its-own-trade-clearing-system-as-customer-growth-surges.html <comment><USER2> Cool stuff. It's a shame honestly how bad we let retail trading get before Robinhood came along, especially when the true amortized cost of a trade is something like 0.000000001 cents in reality.

I'll be glad to see these outdated bloated price gouging companies like Schwab, E-trade, and Ameritrade finally go bankrupt soon. Such poorly managed businesses wholly dependent on entrenched regulation and being existing incumbents shouldn't succeed, and I'm glad to see somebody is finally taking them down.</comment>


Recent advances in 3D content understanding - <AUTHOR> https://ai.facebook.com/blog/pushing-state-of-the-art-in-3d-content-understanding/ <comment><USER2> Kinda boggles my mind that there hasn't been a stronger push for hardware support of 3D imaging in phones. It clearly provides more useful information for analysis. Even when we look at an image in a photo we map it to a 3D projection in our mind.

<comment><USER3> Phones with multiple camera are starting to become common. Time of flight sensors that use projected infrared patterns aren't trivial to out in a phone so the demand needs to be there. Still, there have been tablets that have integrated Intel's depth cameras.

<comment><USER4> Nit: Projected patterns are structured light, not time-of-flight. As far as I'm aware (would love to be wrong!) you can't do ToF with a traditional CCD or CMOS sensor and resolution is invariably woeful.

<comment><USER5> What kind of sensors do they use in time-of-flight? Because I think they do use gated CCD or CMOS...?

<comment><USER4> Hm, last time I checked I thought the sensors were individual diodes but it looks like you're right, and 'flash LIDAR' cameras do use some funky kind of CCD. Still relatively low resolution but good to know, thanks!

</comment></comment></comment></comment></comment><comment><USER6> The videos showing the algorithm in practice are really nice demos.

I'm curious how big of a step forward this is from the previous state of the art, and at what computational cost.

Also curious if the technique scales well with multiple cameras with overlapping fields of view. That is to say, I assume accuracy can be increase through sensor fusion in the basic sense of averaging errors, but actually molding a cohesive 3D view of a 360° environment and understanding that an object at the end of one frame is the same object from a different perspective at the end of another camera frame.

Obviously this seems like it should be extremely useful for AutoPilot. Compared to the relative inaccuracy of the positional information of adjacent cars on the AutoPilot guidance display that we have today this seems like a big step forward.

I think it's interesting how the RNN is identifying specific types of objects and then depth mapping them. I assume it can't just depth map the whole image without that first classification step? I'm thinking like for the Smart Summon application where depth mapping everything around you is pretty crucial and obviously not entirely working at this point.

</comment><comment><USER7> I do photogrammetry as a hobby, and would _love_ to see more RGBD cameras on the market. I've even considered hacking together my own... anyone have pointers for cost-conscious options?

A few of the models I've shrunk down and posted: [https://sketchfab.com/darkphibre](https://sketchfab.com/darkphibre)

<comment><USER8> The new Azure Kinect is really impressive.

I've used the og Kinect, Kinect v2, and intel realsense d435 and it was much more accurate then all of those.

<comment><USER9> Sorry for derailing the thread, but how was the new Azure Kinect's performance outdoors? I've had trouble finding this information anywhere.

<comment><USER8> np, I have yet to test it outdoors.

</comment></comment></comment></comment><comment><USER10> Very impressive research. Just scared what invasive thing Facebook will use it for.

I hope the researchers are advocating for its ethical use.

</comment><comment><USER11> It really seems like we should be close to having robots that can navigate a room.

<comment><USER8> You can get pretty far building one yourself using the out of the box ROS ([https://www.ros.org/](https://www.ros.org/)) navigation stack with a kinect, off the shelf motor controller, and something like an nvidia jetson</comment></comment>


Bitwarden Announces Integrated Password Security with Identity-Based SSO - <AUTHOR> https://bitwarden.com/blog/post/bitwarden-password-manager-login-with-sso/ <comment><USER2> IMO, Bitwarden is underrated as a password manager. It is fully-featured for personal use, easy-to-use, low-cost and is _audited open source code_.

This announcement addresses a major limitation of Bitwarden that was holding it back. It should also help with Bitwarden's other limitation: the company is currently very small, and needs to grow to reduce the bus factor.

<comment><USER3> I agree. I'll add that it's also easy to self-host which means you end up with complete control over your passwords while still having the ability to share them easily across devices. Much simpler than setting up Syncthing with KeepassXC for instance.

</comment></comment><comment><USER4> I switched just over a year ago from LastPass and recommend Bitwarden to everyone.

<comment><USER5> I did the same whenever LastPass doubled their prices. That seemed pretty steep for the value added and I did some research. Bitwarden seemed like the most obvious choice for being both open source and openly audited.

I've been recommending Bitwarden ever since - it's great!</comment></comment>


Vint Cerf's "Quantum Internet" Comments - <AUTHOR> https://docs.google.com/document/d/1DQPc4-EjXFxH4FrjmdmPveyAGPEZngOULPfpsS5-XZM/ <comment><AUTHOR> I've never understood the fascination with quantum key distribution in particular. QKD has no advantage over using normal public-key cryptography (PKC). Key distribution and encryption are solved problems when implemented correctly. QKD is an expensive, exotic, finicky, Rube Goldberg complicated way to do something that PKC has been doing just fine for decades.

If in an unforeseeable future, some PKC algorithms are broken by quantum computing, there are already drop-in replacement PKC algorithms that aren't broken by quantum computing, so we still don't need QKD.

<comment><USER2> I think the ability to detect eavesdropping seems useful?

(As part of KQD, not sure if useful or feasible as part of some "quantum internet")

</comment></comment><comment><USER3> Eh the attitude of my friends is why dissuade goog from wasting more money on quantum research.</comment>


Techcrunch 50 cronyism or merit? - <AUTHOR>

It's only been two days but so far I am underwhelmed. Perhaps I'm just not seeing it but there don't appear to be many break out stars presenting and a few suspect ones. I don't want to single anyone out but a few well funded companies look like their VCs called in favors with Arrington. <comment><USER2> I think people are reading too much into it. They could only accept people that applied.</comment>


Twitter finally deletes some of Alex Jones, InfoWars videos and tweets - <AUTHOR> https://www.cnet.com/news/twitter-finally-deletes-some-of-alex-jones-infowars-videos-and-tweets/ <comment><AUTHOR> While this might be one company's decision, doesn't it seem suspect that they all (Facebook and co.) had done this within the same time frame?</comment>


Microsoft is making the Windows command line a lot better - <AUTHOR> https://arstechnica.com/?p=1344935 <comment><USER2> Does it run on a decent OS now?

(burn, karma, burn)</comment>


Don't Be A Hero - <AUTHOR> http://al3x.net/2010/01/09/dont-be-a-hero.html <comment><USER2> I agree with Alex here, but the reality is that companies LOVE heroes. I see it happen over, and over again (and usually with the same people). The manager asks the hero how long something will take, he underestimates the task, failing to account for testing, other inevitable issues, other priorites, etc. Manager loves the answer.

There will be inevitable issues, and things come up in limited testing, but the hero will work stupid hours on little sleep producing crap quality, just to get SOMETHING going, even though it's a strict subset of what was promised. Since SOMETHING is going, and the hero casually notes that it took them heroic effort... he gets a "spot award" or some other trinket.

Manager got the answer they wanted, the customer got SOMETHING, and the hero got his trinket. Everyone wins.

And it will cause headaches and issues untold for many months down the road.

Meanwhile, the non-hero estimates conservatively, management hates the answer, the customer gets a well (or at least less fragile) something later and hates that, and our non-hero gets the stink-eye.

A manager told me long ago that customers don't want it right; the want it broken and quickly. That way they have something to bitch about. From a producer's standpoint, they can then bring out the hero to fix what should never have made it out to begin with, sometimes charge for it, and look like they're "responsive". And the customer can feel all smug that they made the vendor/producer do their little dance.

<comment><USER3> Well, that sure seems to be a manager's point of view, rather popular. But is it always correct?

<comment><USER2> I'm not sure what you mean; is it "correct" in that what I described happens? Yes, it is. Not every time of course, but I've seen it happen quite a lot; probably more often than not.

If you mean, is it "correct" in that "Is this the way things should happen?" Then I would submit, no.

But, reality always wins.

</comment></comment></comment><comment><USER4> My experience is that Heroes are problems because they're a) bottlenecks b) single points of failure. Using them as a crutch exacerbates both problems. However, having the most productive person on the team do as much as they can do is an easy trap to fall into. When one person is working on a totally different level from everyone else, it's probably in their interest to leave and find a different group that they're more peer-ish with. However, Heroes tend to become Heroes by being the self-sacrificing type, so they're not as likely to do so.

This also reminds me of Comparative Advantage[1] from basic economic theory. If you have to people X and Y and two tasks A and B, and X is better than Y and both A and B, should X do A and B for himself? Turns out no. X should only do the task they're _more_ better at, and trade Y for the other; more gets produced, and there's a ratio of exchange such that X and Y both end up with more A and B than they would have otherwise (see [1] for rigorous definitions and simple maths). It's the same situation, you should be taking work away from the Hero so they can focus on what they're awesome at, rather than giving them more work.

[1] <http://en.wikipedia.org/wiki/Comparative_advantage>

<comment><USER5> Cool, I think I edited an early version of that page and added some tables with numbers and a small discription. It looks much improved from how I left it.

<comment><USER6> Yeah. Even with all the bureaucracy that we like to fret about --- Wikipedia still works for most pages.

</comment></comment></comment><comment><USER7> I agree with a hero being "dangerous" but I would say you should be looking at the manager as the problem, not the employee. If one employee is doing all the work it is because the manager or his manager is letting it happen.

</comment><comment><USER8> You usually need a "hero" to get an idea off the ground. At some point during discussions about a new project the time comes to buckle down and actually get some shit done. I've found it's often necessary for a small burst of Herculean effort in the beginning by one, maybe two, people.

Then, after the initial burst, you can start forking things off and spreading the knowledge around. The trick is finding these hero/wizards who care enough to perform the burst but have small enough egos to share the reigns later with others.

<comment><USER9> Those people who didn't want to do it in the first place are not going to be exactly jumping out of there seats to pitch in and firm whatever was created up and finish it out. Wish that were the case but I believe people want to see the hero fail. Eventually the hero gets tired of never ending uphill climb and leaves.

</comment></comment><comment><USER10> _"... If you're playing the hero, or if you have a hero on your team, it's probably time for a serious talk with your coworkers and manager. ..."_

Manager?

 _"... You shouldn't be getting paged at all hours. Sure, you might need to do some occasional planned after-hours maintenance, or some very occasional unplanned-but-process-driven disaster recovery, but you shouldn't need a hero. ..."_

When you hear this you know your working in an established business or corporate land. I know this is what you should aim for, but I've yet to work or see a Startup that works so well it doesn't require this kind of intervention.

<comment><USER11> It should only require that kind of intervention once (per type of incident), and if it's a regular thing then it points to a more fundamental problem.

<comment><USER10> _"... It should only require that kind of intervention once (per type of incident)... points to a more fundamental problem. ..."_

That's a better way to phrase it. I'd agree with that.

</comment></comment></comment><comment><USER12> From another perspective, I left my last company because I felt the tension to become the hero.

What's interesting is that there was another person who was also kind of playing the hero role - but didn't quite have the development talent to make the big contributions. Man, it destroyed the team culture between the boss and the devs. It wasn't just that he "enabled mediocrity". He was seen as "being mature" and "really cared". And the other devs saw his flaws rather than his benefits. The devs began to roll their eyes when the boss talked about "caring". Once this happens, it's an awfully hard ship to turn around.

</comment><comment><USER13> Given identical situations, average management will always take the cheapest/shortest option. regardless of quality.

The quick fix in the middle of the night just takes attention form a serious issue and delays it's repair till it later again becomes serious enough to need managements attention.

A real hero will be professional enough to stop the presses, call attention to the problem and assure it gets fixed once for all.

Using the "Technical Debt" analogy, a heroic solution is no more than borrowing money from a loan shark at horrendous interest to pay todays due mortgage.

</comment><comment><USER14> Another negative aspect of a team relying on The Hero is the "knowledge black- hole" effect. The Hero writes a lot of code, often poorly documented, and builds these fragile cathedrals in his mind. Then suddenly he leaves the company/gets sick/etc. and the undocumented, full of scary TODO/FIXME codebase stays behind. The rest of the team is afraid of touching it and the cathedral eventually crashes.

</comment><comment><USER15> Agree with Alex that heroism needs to be valued in the right way. When looking for a programming job, figuring out whether the manager values heroism in the right way is a great way of figuring whether they understand and value quality people and quality work. Many managers can't tell a good programmer from a bad one.

</comment><comment><USER16> I think Alex just described someone who should start their own startup.

Founder: A motivated workhorse, eager to please the manager; of course, the manager being the customer.</comment>


HN Follow: Find discussions that interested you, powered by HN Search API - <AUTHOR> http://hnfollow.ep.io

<comment><USER2> I was about to create something this and then thought "I should check that HNSearch contest poll to see if anyone already did"

Awesome work. Hoping you keep improving it!</comment>


Ask HN: Who uses Chaos Monkey? - <AUTHOR>

The Chaos Monkey idea is amazing, but I haven't heard of many people using it besides Netflix. <comment><USER2> Chaos Monkey: [https://github.com/Netflix/SimianArmy](https://github.com/Netflix/SimianArmy)

introduction: [http://techblog.netflix.com/2012/07/chaos-monkey-released- in...](http://techblog.netflix.com/2012/07/chaos-monkey-released-into- wild.html)

<comment><AUTHOR> Yes, but that doesn't answer the question, who is actually using it.

<comment><USER2> Sure. I didn't claim it does. I added links so the next person doesn't have to guess too long what Code Monkey stands for. Did you email the [https://groups.google.com/forum/#!forum/simianarmy- users](https://groups.google.com/forum/#!forum/simianarmy-users) email list?

<comment><AUTHOR> I hadn't, so I just did. Thanks for the suggestion. [https://groups.google.com/forum/#!topic/simianarmy- users/59r...](https://groups.google.com/forum/#!topic/simianarmy- users/59rusLDhkpc)

</comment></comment></comment></comment><comment><USER3> Chaos Monkey is great, but it may be more pragmatic to start by injecting failures manually, rather than through an automated process. We do this with Failure Fridays at PagerDuty - [https://blog.pagerduty.com/2013/11/failure- friday-at-pagerdu...](https://blog.pagerduty.com/2013/11/failure-friday-at- pagerduty/).

<comment><AUTHOR> Really interesting approach. Thanks for the resource.

</comment></comment><comment><USER4> Forget Chaos Monkey, who's using Chaos Kong? That's what I want to know ;)

</comment><comment><USER5> I use Chaos Monkey 3 times a day.</comment>


Students refuse to pay back loans to failed for-profit college - <AUTHOR> http://www.newyorker.com/business/currency/student-debt-revolt-begins <comment><USER2> It's odd that they don't mention the reason Corinthian is shutting down so many colleges - [http://www.npr.org/blogs/ed/2014/07/08/329550897/the- collaps...](http://www.npr.org/blogs/ed/2014/07/08/329550897/the-collapse-of- corinthian-colleges)

A relative of mine works there and said they were about to be sued by the Department of Education over fraud in their student loan department. The settlement forced the company to sell or close all of it's colleges and no senior management or administrative staff is allowed to stay with any of the colleges.

It seems pretty clear that Corinthian did some bad things, and it's likely the clause the article mentions in federal loans might give _some_ students an way out of debt:

 _"In some cases, you may assert, as a defense against collection of your loan, that the school did something wrong or failed to do something that it should have done."_

IANAL, but I think it's pretty unlikely the government would let all of the students off the hook. (For a billion dollars!)

<comment><USER3> _...pretty unlikely..._

Eh, it's not "real" money. Students will have debts forgiven when it's politically expedient to do so.

<comment><USER4> > Eh, it's not "real" money

Why not? It was real to the tax payers who paid it to the government and real to the Corinthian employees who were paid by the school and it will be real to the students as they struggle to pay it back over many years.

<comment><USER5> If something is "real", you can't have less than zero.

(For some definitions of " real".)

Right now, the consequences of forgiving a billion dollars of student debt are immeasurable. It's a small amount to spread over so many people, and ultra easy/cheap borrowing by the federal government can delay the consequences for a long time.

<comment><USER3> This is really all I meant. Everybody wants to get all philosophical, when I was only referring to how our political system works.

</comment></comment></comment></comment></comment><comment><USER6> > student-debt problem is so severe that it seems to be reducing the formation > of new households

Perfect! Housing bubble averted.

In all seriousness, this + an influx of foreign investment into american real estate + a future generational aversion to debt (from experiencing first or secondhand how crippling student loan debt can be) will make for some interesting times in the upcoming decades.

<comment><USER7> the aversion to debt isn't occurring very fast considering that outstanding auto load debt is around 886 billion dollars. Credit card debt in 2014 was very similar, with an average of 7k per household.

when it comes to school debt the Federal government would be best served by limiting what it loans based on the education desired, as they set limits on what they pay out for medical services there is little reason to not do the same for education. It might even help reign in the ever increasing costs that colleges charge which in itself a property of easy loans

<comment><USER8> $886 billion in auto loans doesn't seem like very much to me. There are about 254 million passenger vehicles in the US, so that's an average of $3,500 in debt per car (of course there will be huge variation there).

You pretty much _need_ a car to live in many places in this country, and in many more places you need a car to have a decent job. Most people can't afford to buy one outright, and in a case like that, it's sensible to take out a loan in order to purchase an asset that allows you to immediately start making money to pay it off. Taking out a loan for a low-end car so you can drive to work is pretty different from taking out $50,000 in loans for a degree that you _hope_ will let you find better work years in the future.

<comment><USER9> I agree with mikeash, and wanted to just add my own personal experience.

Most people I know, and what I also do personally, is buy a used car for less than $10k, and pay it off within 3 years. Then you live with it until it no longer becomes economically viable to keep it.

So my wife and I own our cars at this point, which frees $400+ a month we can put towards something else with the understanding in 2-3 years we will need to budget for cars again.

The basic cycle is 3 years of car debt, 3 years without.

(I don't live in an area which has public transportation)

</comment></comment></comment></comment><comment><USER10> A lot of countries have a free post secondary education system : [https://en.wikipedia.org/wiki/Free_education#Partial_list_of...](https://en.wikipedia.org/wiki/Free_education#Partial_list_of_countries_with_free_post- secondary_education)

It always astonish me to think it can be seen as normal, even more equitable, to require people to get so huge debts before even being trained to work.

<comment><USER11> A sensible system would be one like Brazil's (and possibly other countries): free education at public universities for those who qualify on the stringent entrance exams along with a system of private universities for those who don't make it and can pay for it.

This would allow all deserving students a high quality, free education while limiting the amount of waste and degree inflation that would result from a completely free university system.

<comment><USER12> The political culture in the United States would attack that system as being unfair to the poor and minorities that ostensibly received a lesser education than their middle- and upper-class cohorts.

<comment><USER13> When something like that existed in California, that wasn't the thing that destroyed it, rather, it was funding pressure from anti-tax crusaders.

The kind of people who advocate for fairness for the poor and minorities are more likely to advocate for moves back _toward_ that system rather than away from it.

</comment></comment></comment></comment><comment><USER14> "In some cases, you may assert, as a defense against collection of your loan, that the school did something wrong or failed to do something that it should have done."

Wait till the law students and education students figure out that their schools intentionally overproduced about twice as many grads as the market can bear. And the PHD students and the ... well, basically every program in every school in the country except the ivy league CS programs.

Its either debt jubilee time or admit the "higher ed magically provides a great job" was all a scam. When it comes to deciding between saving face and saving a buck, usually we save a buck, so I almost guarantee the proposed strategy will fail. So culturally we will momentarily see the death of "higher ed at all costs" as a gateway to a great job and all that propaganda.

</comment><comment><USER15> Is this the start of the student-loan bubble bursting?

From what I have read student loan debt, despite it's size, doesn't threaten the rest of the economy in the same way that housing loans did. Hopefully that is the case.

<comment><USER6> > doesn't threaten the rest of the economy in the same way that housing loans > did

I dunno about that - it's probably just a lot more insidious and less panic-y.

Adults repaying student loans aren't spending that money on other things. If you're paying $300 a month to Sallie Mae, that's $300 you're not spending on:

1) Savings/retirement/etc

2) Goods and services

3) Capital investment

4) Etc.

Given the compounding nature of some of these things, and the fact that these payments constitute a higher % of your income early on (assuming steady career progression), it's a problem that may just slowly unravel as time goes on.

Don't forget we live in a service economy - adults not spending money on a diverse set of services (as opposed to say, just student loan services) will hurt us in the long run.

<comment><USER16> $300 a month seems low. I went to North Carolina State University, generally regarded as a cheaper school (compared to neighboring UNC Chapel Hill or Duke) for a solid quality engineering education as an in-state student. I graduated after four years in 2013 and my monthly payment to Navient (formerly Sallie Mae) is easily triple that.

<comment><USER17> Average student loan debt is about $30,000. A 10-year loan at 5% interest works out to about $318 or $345 at 6.8%.

The 5% choice is a bit debatable. I figured most people have some combination of loans at 6.8%, 5% and 3.4%.

Of course there's so much variation between schools that the average might not be too useful, but it seems like $300-$350 is a pretty reasonable figure.

</comment></comment></comment></comment><comment><USER18> I always hear people say things like "we don't have debtors prisons in the U.S.". If enough people start doing this, I have a very strong feeling that that will change. As student loans become more of a crisis, we're sure to see more people simply deciding not to pay. What recourse to lenders have if this happens on a large scale?

<comment><USER19> They can start garnishing your wages, so unless you never want to hold a job again, creditors will get their money.

<comment><USER20> You can leave the country. Most of the people deeply in debt with degrees or training that won't pay the debt would find, for example, teaching English in China a relatively comfortable living. If you have the imagination to look beyond Europe, finding a gig that's better than debt slavery isn't too difficult.

<comment><USER21> The future repercussions may not be worth it.

As a US citizen (or Green Card holder) you must a file an annual tax return wherever you live in the world, plus disclose foreign bank accounts. Failure to do so can have very harsh penalties.

[https://americansabroad.org/issues/taxation/us-taxes- while-l...](https://americansabroad.org/issues/taxation/us-taxes-while-living- abroad-faq/)

<comment><USER22> [http://www.irs.gov/Individuals/International- Taxpayers/Forei...](http://www.irs.gov/Individuals/International- Taxpayers/Foreign-Tax-Credit)

So, you're paying taxes to the local government, and getting a credit towards your US taxes. You'd still file your informational return with the IRS, but they don't touch a dime of your foreign income.

</comment></comment></comment></comment></comment><comment><USER23> I really can't stress enough how these for-profit institutions seek to avoid any kind of responsibility otherwise assumed of an institution of higher learning. They consistently take advantage of veterans. Close to home, these companies actively and willfully take advantage of veterans benefits to reap in billions [0]. These schools actively recruit soldiers at military bases, who end up using up a good portion (or all) of their benefit without being able to get a job or before they can transfer it to their children or spouse. They're left with no education benefit, a degree that isn't transferable and, perhaps worst of all, a feeling of failure and embarrassment. PBS did an excellent show on the situation not long ago [1]. The standard argument I hear in favor of these schools is that the situation in the military is different, and a lot of veterans leaving the force already have families so going to a traditional college or university would be difficult or unmanageable. This is true, but distance learning has to become better.

[0] [http://fortune.com/2014/11/11/gi-bill-for-profit- colleges/](http://fortune.com/2014/11/11/gi-bill-for-profit-colleges/) [1] [http://www.pbs.org/newshour/bb/gi-bill-benefitting-profit- co...](http://www.pbs.org/newshour/bb/gi-bill-benefitting-profit-colleges- instead-helping-veterans/)

</comment><comment><USER24> I think the reason many students put up with increased costs is because they have access to subsidized loans, mainly from the government. The Consumer Financial Protection Bureau estimates that out of the $1.2 trillion in debt, $1 trillion are estimated to be guaranteed or held by the federal government [0]

I may be in the minority opinion, but I think college is still pretty affordable.

> In 2014-15, average published tuition and fee prices for in-state students > at public four-year institutions range from $4,646 in Wyoming and $6,138 in > Alaska to $14,419 in Vermont and $14,712 in New Hampshire. [1]

CUNY for instance is $6,030 a year [2]

The tuition is higher than it has been in the past but attending college is a lot more profitable as well. I know the state school I had attended has raised tuition over the years, but I can't help but look around and think that all the money went into a new stadium ($33 MM), new athletic gym and new (very impressive) dorms.

The average student attending an expensive for-profit (less credible) college isn't the same person as someone attending a good state school. A lot of time these colleges attract more marginal students. The payoff for most colleges is still very high and worth the cost. But there should be some cost as to discourage less productive ventures and to have some skin in the game for the student.

[0] [http://www.consumerfinance.gov/newsroom/student-debt- swells-...](http://www.consumerfinance.gov/newsroom/student-debt-swells- federal-loans-now-top-a-trillion/) [1] [http://trends.collegeboard.org/college-pricing/figures- table...](http://trends.collegeboard.org/college-pricing/figures- tables/tuition-fees-sector-state-time) [2] [http://www.cuny.edu/admissions/tuition- fees.html](http://www.cuny.edu/admissions/tuition-fees.html)

</comment><comment><USER25> Isn't this the same college John Oliver criticized recently for their "quality education"?

[https://www.youtube.com/watch?v=P8pjd1QEA0c#t=562](https://www.youtube.com/watch?v=P8pjd1QEA0c#t=562)

"We went to the museum of Scientology for our psychiatric rotation"...

</comment><comment><USER26> Good.

This bubble has to burst. The college education system in this country has gone completely insane. The cost of a year's worth of education is now $60000, when the cost for comparable universities in the UK is $10000 and in Germany is $0. Just make community college + state universities free for everyone to attend, and we should have no more problem with this debt nonsense anymore.

<comment><USER27> > Just make community college + state universities free for everyone to > attend, and we should have no more problem with this debt nonsense anymore.

Public colleges are already substantially less than private institutions. I doubt subsidizing them further will have a substantial impact on private tuition.

If we stop lending money to pay for education, the colleges will see substantially reduced demand at their inflated price levels and will quickly cut prices to adjust.

Then again, they might not.

They currently segregate their customers into groups by way of "scholarships" and essentially extract the maximum amount of money they can possibly get. I can't think of another industry where such disgusting behavior is tolerated or even celebrated as generosity.

</comment></comment><comment><USER9> I think the most important piece of information to come out of this article is "More than a fifth of borrowers of federal student loans go into default, but people who default tend not to announce their status publicly."

This, to me, seems extremely high. Does anyone know what the default rate is on other types of loans?

</comment><comment><USER28> "Most Corinthian students cover their tuition by taking out federal and private loans. That debt, it turns out, is far more resilient than Corinthian itself."

This here is the problem. If Corinthian can get out from paying its debts, why can't the students?

</comment><comment><USER29> Mark Cuban wrote a great post about when colleges start going out of business.

As a college grad with a lot of debt I advise everyone to avoid student loans at all costs. It's not worth it and there are always alternatives.

[http://blogmaverick.com/2013/01/26/will-your-college-go- out-...](http://blogmaverick.com/2013/01/26/will-your-college-go-out-of- business-before-you-graduate/)

</comment><comment><USER30> Did the students get a loan from the college or a bank? Did the bank fail? Can I refuse to pay back my mortgage if my house burns down?

<comment><USER12> There's insurance on your house. Perhaps the same should happen with eduction.

<comment><USER30> My point is just because the thing you bought with your loan money is now useless/worthless doesn't relieve you of your obligation to the bank.

<comment><USER12> In principle, I agree: when I see kids take out tens or hundreds of thousands in loans, and not get a productive career out of it (say the guy who couldn't pass the bar after going to law school), I don't have sympathy when they claim they shouldn't have to pay the loans back.

In this situation, however, I believe those not paying are claiming they were deceived (and there are lawsuits as such). This isn't a matter of not paying your loans because your house burned down, as much as not paying your loans because the builder deceived you on the quality.

Additionally, these aren't typical bank loans usually, but guaranteed by a quasi-government entity. To a certain degree, this means the government is guaranteeing some set of standards (I can't get a government-backed loan to do a code bootcamp, for example), and these students are banking on the idea that the loans will be forgiven without recourse, or at the very least, shining a light on this school with they are contacted, en masse, for failure to repay.

</comment></comment></comment></comment><comment><USER31> It's a bit disingenuous to claim that you shouldn't pay back any of the debt incurred in earning your degree because the educational program was worthless when you're still seeking a career in the field requiring that degree.

I agree she shouldn't have to pay all of the debt, but surely the degree isn't totally worthless.

<comment><USER20> > _"...because the educational program was worthless when you're still seeking > a career in the field requiring that degree"_

That doesn't follow at all. The program could have been deficient. The placement program could have been fraudulent. And yet the student could make up the deficiency with other training and compete, as hopeless as that might be, against others in the same boat.

It isn't unusual for schools to defraud students by gaming placement by, for example, providing a pitiful amount of seed money for business majors to set off in a leaky lifeboat, or by forcing law students in lower-tier law schools to drop out before graduating.

You also have to consider that debt repayment in constant payments pays down very little principle at first. A student may have paid a lot of interest, but their debt remains high.

<comment><USER31> So what is the solution here? Make taxpayers foot the bill for the social costs incurred by awful colleges? Once you make that decision, then the line drawn in the sand about what an 'awful college' is and which costs the colleges and students alike can expect taxpayers to be liable for is going to shift over time. You're trading one enormous problem for another one.

She should have known that for-profit colleges are bullshit before signing her life away to one. Now she wants to have her cake and eat it too by refusing to pay her loans, while still deriving benefit from the supposedly worthless degree she got.

We need a better solution to higher education. But this isn't it. I'm glad she's raising awareness of this issue, but she and everyone else involved needs to pay back at least some of her loan. You can't just expect the government to absolve you of your bad decisions.

<comment><USER20> The other parties to the deal, namely the banks and schools, are far more culpable than the students. Let the banks and schools sue each other over the money owed. They are the ones that bought the laws and regulations than enable them to sell duff diplomas and finance those duff diplomas.

<comment><USER31> The school does not exist anymore. There is no one to sue and the money is gone, regardless. And if you pin it on the banks then either loans will get more expensive to account for the added risk of potentially having to foot the bill for bad schools or will stop lending altogether, making it harder for students to go to school.

<comment><USER20> Why should school loans be made by investor-owned banks? Don't tell me it's because the private sector is better suited at selecting against investor- owned schools. So, yeah, let the creditors take it in the pants.

</comment></comment></comment></comment></comment></comment><comment><USER32> So basically students enroll in a scam college to trick people into thinking they are well educated, and then complain when the scam is revealed.

What's next, people who scam money from the elderly by pretending to be their grandchildren sue after only getting 25 cents with their birthday cards?

I realize these colleges are also using high pressure sales tactics to trick vulnerable populations into enrolling and then extorting them for money, but at some point people still need to take responsibility for their actions.

<comment><USER33> You said it yourself, they were preying on the vulnerable. To what extent exactly should these vulnerable people take personal responsibility?

Why didn't you mention that these colleges need to take some responsibility as well?

<comment><USER32> > To what extent exactly should these vulnerable people take personal > responsibility?

I mean once they showed up and realized it wasn't a real college and they weren't being taught anything, that would have been the appropriate time to protest and try to get their money back, rather than staying for another 2-4 years to get the degree and hoping that no one notices that they didn't actually learn anything.

> Why didn't you mention that these colleges need to take some responsibility > as well?

They should, but in this case they already got shut down. My feelings about for-profit colleges are basically the same as my feelings on the military. I.e. the military shouldn't be tricking kids into enlisting, but that that still doesn't give soldiers a free pass for going over to the middle east and killing innocent people.

<comment><USER34> > I mean once they showed up and realized it wasn't a real college and they > weren't being taught anything, that would have been the appropriate time to > protest [etc]

The people signing up were probably not those best prepared to evaluate the quality of schooling. It might have seemed a continuation what they saw in high school</comment></comment></comment></comment>


BookBook -  a stealthy cover for MacBook - <AUTHOR> http://twelvesouth.com/products/bookbook/

<comment><USER2> "A novel way to cover MacBook" may just be the best (worst?) play on words ever.

</comment><comment><USER3> Very much exciting the "WANT" circuit in my brain. The price prevents it from firing, but I love the idea of opening up a book in class to take notes / compile code.

Only thing I'm questionable on: the * ziiiiip * sound when you open it. Very un-book-like. But better than velcro.

<comment><USER4> There are some paper notebooks which close using a magnet embedded in the cover. Not very harddisk-friendly, though.

<comment><USER5> I doubt a magnet that small would cause any problems. I'm not sure about the new MacBooks Pros, but the old ones had an embedded magnet that I think was used to detect the screen closing.

<comment><USER3> As far as I'm aware, _all_ Mac laptops now use magnets to keep the screen closed. Quite strong ones, really, they easily keep it from being accidentally opening.

That said, at least some of them have put the HDD in the back now, instead of near the front (don't know if it's all). It could be that the magnetic closing was part of the decision to move them.

</comment></comment></comment></comment><comment><USER6> But... if the glowing logo is covered, how can you warn the entire coffee shop that CREATIVE THINGS are most likely happening on your screen?

Admittedly, typing on what appears to be a sideways book is a good way to draw more attention to yourself, so it may be an effective strategy.

</comment><comment><USER7> Clever idea. I can't tell whether this is line is meant to be a joke or not:

"And third, the stylish case protects you from being like everyone else because BookBook is totally original, just like you."

:-)

<comment><USER8> Original BUT extremely expensive.

<comment><USER9> Maybe they're assuming that if you dropped 2x as much on a notebook because it had an Apple logo on the back, $80 isn't going to really faze you.

Disclaimer: I use only Macs.

</comment></comment></comment><comment><USER10> If you intend to use your 'book without taking it out of the, well, book cooling might be a problem.

<comment><USER11> I don't believe MBP's vent or cool from the bottom, so I think it'd be fine.

</comment></comment><comment><USER12> Very elegant, but non-functional case who's zipper/head will scrape up the corners of the precious mac inside. :(

property of... used to make the best sleeve I've seen, but sadly no longer.</comment>


Maratis – A Portable and Visual Game Development Tool - <AUTHOR> http://www.maratis3d.org/

<comment><USER2> This looks really powerful, the feature list definitely allows making a decent game, and the growing trend of minimal UI in dev kits is a really promising direction; though I can't help but wondering about open source platform beginnings. The way openFrameworks started was kind of similar: "We already know what creative coders are looking for, so we took a bunch of open source libraries and made them work together. Go play" \- and that worked fine for them 8 years ago, now it's kinda different, because the open source world is full of decent kits.

Having switched between 3 creative programming kits in the past year, I'm kind of reluctant to give my heart to a new one that starts exactly like that. Maybe, for these kinds of projects, a 'mission statement' would help people buy into it. That doesn't mean that mission statements are for good, but I think it's really important to know more than it's just a good game engine. Please let me fall in love with it.

<comment><AUTHOR> @omershapira I really appreciate it that you share your prior experiences with us. I have not contacted the author yet to inform him about the HN post, but could you take the chance and tell him about your experiences with similar tools? I believe your knowledge and usage experience will be beneficient to all us. Here's the authors contact info:

         Anaël Seghezzi, France
         anael (a) maratis3d.com

</comment></comment><comment><USER3> Also check out [http://polycode.org](http://polycode.org) for a similar open source project.

<comment><USER4> Well, I'm a little awed now. I need to check this out!

</comment></comment><comment><USER5> Wow, it's like a freeware version of Unity. Very cool.

<comment><USER6> +1, came here to post exactly that

</comment></comment><comment><USER7> just added a cask for this so osx homebrew-cask users can check out the project with `brew cask install maratis`

[https://github.com/phinze/homebrew- cask/pull/819](https://github.com/phinze/homebrew-cask/pull/819)

<comment><AUTHOR> @phinze Hey that's really nice of you.

</comment></comment><comment><USER8> Has anyone used this? I like that I can use Lua. Big plus. But the clumsiness of the "IDE" is pain-point.

I wanted to load a demo project and the open-file box starts at the _root_ of my machine. '/'. Not even my home folder, and not the folder from where I launched the IDE.

You can't paste a directory path anyplace, and you cannot navigate by typing the first letters of folders. So I had to click though about eight directories to get what I wanted.

I appreciate it when people put in the effort to produce tools, for free, on their own time, but if it ends up being a real pain to use I'd want some good reasons not to go learn Unity.

</comment><comment><USER9> I already donated to this project in the past and will be donating right now. They really deserve it for the hard work and amazing quality. :)</comment>