Start Using Emacs – A Thorough Guide for Beginners - <AUTHOR> http://www.braveclojure.com/basic-emacs/ <comment><USER3> Emacs-related things I have learned recently:

* Sticky modifiers: I don't know why it took me so long for me to activate these. The difference between _holding_ Ctrl _while_ hitting another key or just _hitting_ Ctrl once before the next key makes a huge difference for me. [http://www.emacswiki.org/emacs/StickyModifiers](http://www.emacswiki.org/emacs/StickyModifiers)

* Got an old-styled Thinkpad keyboard with the trackpoint buttons below the spacebar? I mapped the left button to C-x and the right one to M-x. These buttons are PERFECT for this purpose. I would have mapped them system-wide to Ctrl and Alt but didn't find a solution for doing that in Debian (console/tty).

* Helm: Incremental completion and selection narrowing. Makes it a lot easier to find those commands which you sort-of-remember-the-name-of: [https://github.com/emacs-helm/helm](https://github.com/emacs-helm/helm)

* Sunrise Commander: MC-ish file explorer, based on Emacs's Dired: [http://www.emacswiki.org/emacs/Sunrise_Commander](http://www.emacswiki.org/emacs/Sunrise_Commander)

<comment><USER4> I think you may also like key chord-mode: [http://www.emacswiki.org/emacs/KeyChord](http://www.emacswiki.org/emacs/KeyChord)

<comment><USER5> Seconded! Especially with magit (and I suppose with vc in general) key chords are really nice.

</comment></comment></comment><comment><USER6> When I was in college I had the privilege to work on a project with a developer that understood emacs as on operating system and used it as a way of life. When we started the project he would yell at me whenever I took my hand off the keyboard and tried to use the mouse. Finally he started to hit my hand with a ruler when I would lift it up.

My emacs skills are still probably only 1% of his, but after working that short time with him I have never been able to fully feel comfortable using textmate or sublime text. I always come back to emacs, even though the learning curve even years later is still there. Just feels like the right tool to me.

<comment><USER7> hah! I did this to people too. I ended up popping the keycaps of the arrows off the keyboard and taping over the hole.

<comment><USER8> I don't know much about emacs, but that would be a good way to train yourself to use vim :)

<comment><USER9> On the first day of my first CS class in college, the gruff old professor passed around a stack of photocopied "VI TUTORIAL" papers. In the "MOVEMENT" section, it had pictures of arrow keys, then X's hand-drawn over top of each arrow key, and H J K L handwritten above their corresponding X'd out arrow keys.

Gruff old professor explained that using H J K L was the True and Proper Way and the arrow keys were a work of the Devil, so to make sure we were not tempted by the Dark Lord of cursor motion, he had the department's system administrator recompile vi on the department's (pathetically overworked) Sun to remove support for the arrow keys.

 _(As an aside, if you 've never tried working interactively on a Unix box whose load is higher than its CPU speed in MHz, you've really missed out.)_

Rather than get used to using H J K L, I spent that evening waiting for a new vi executable to build in my home directory.

Laziness will find a way.

<comment><USER10> > Rather than get used to using H J K L, I spent that evening waiting for a > new vi executable to build in my home directory. >Laziness will find a way.

Doesn't sound like laziness as much as it sounds like the thinking of an obstinate youngster who secretly is uneasy with learning new things.

</comment></comment></comment></comment></comment><comment><USER11> Great work with this tutorial! It's a nice intro guide to Emacs.

One thing I'd recommend adding in the introduction is that even though Emacs can be daunting to learn in the beginning, the effort is worth it because it will eventually become your editor for everything, not just Clojure.

Have to start programming in a different language? Emacs is there for you. Want to write an e-mail message? Emacs is there for you. Want to keep a TODO list or a calendar? Emacs is there for you.

This fact was lost on me when I first started with Emacs many years ago. I had come from using "easier to use" editors like EditPlus and Visual Studio. After trying to use Emacs for a week, I gave up in frustration and didn't touch it for another year. I've been using Emacs for about 11 years since then and I think I wouldn't have dropped it if I had been told "I know it seems hard now, but it's extremely powerful and it can become your one program for everything, on any platform you will ever use".

<comment><AUTHOR> Great feedback, thanks! I'll work it in.

</comment></comment><comment><USER12> I had tinkered with emacs over the years but mostly used vim for programming, until the past year or so when I started writing Haskell and LaTeX for school and put in a determined effort to use Emacs full time. I've found I like a 'regular' text editor more than vi's modes, and that (like rickdale's comment) when I've tried out other editors like Textmate or Sublime Text, they feel like they're missing something compared to the raw extensibility of Emacs. (What that something is I'm not quite sure and - I just feel like if I want an extensible editor, emacs is the best. Strong opinion weakly held I guess)

My advice to new users is to start simple and try to only add in extensions/modifications when you hit pain points. I added some universally useful/specific ones early on like AuCTeX, a solarized theme, turning on syntax highlighting, haskell-mode, and so on, but I've found that piling on a ton of plugins and getting away from the 'default' behavior makes it much harder to create a comfortable workflow. This is also why I'm not a fan of stuff like Prelude or emacs-starter-kit.

<comment><USER13> Interesting, I honestly was pretty confident no one who got used to modal editing ever wanted to go back to crazy key chording.

<comment><USER14> I think it depends on what people are using their editor for whether they'll jump ship. I started out on vim, and I really loved it. Then I was typing up papers using the vim latex suite and syntax highlighting would cause my machine to choke every time I scrolled through text. I could have just turned off syntax highlighting, but I tried emacs and auctex, and it worked wonderfully. Since then, I found a bunch of other things that I prefer about it, and only really use vim for quick config file edits. Now that I've been playing with it for a while, chords are second nature, just like modal editing became for me with vim.

I imagine that nobody who's terribly accustomed to either editor will switch unless they've got a specific need their current editor doesn't meet.

<comment><USER12> I had a similar experience, really. Do I want to use emacs to edit system files and such? Not really, I'll continue to use vim. But for programming projects and document writing I like emacs better. To be honest I think the thing that started it was messing with Sublime Text; after using it for a few weeks I started tinkering with emacs again and never looked back. I will say that I never fully bought into vim in terms of movement keys and in depth shortcuts; I pretty much used cursor keys and the mouse and didn't do anything too advanced.

</comment></comment></comment></comment><comment><USER15> This is a great intro! I've been using Emacs since 1996 or so and I still learned a new key: M-m, which will go in my lexicon immediately.

BTW, "M-g g" (goto-line) is also bound to "M-g M-g" which I find much easier to type.

Another thing I discovered way too late about Emacs was the "q" key. When you're in a read-only buffer like a diff, a man page, an Emacs help page, or an info page, pressing "q" will bury the buffer and close the window (if it wasn't open before the buffer appeared). I find this tremendously useful.

</comment><comment><USER16> > There are other options, like Aquamacs, which are supposed to make Emacs > more "Mac-like", but they're problematic in the long run because they're set > up so differently from standard Emacs that it's difficult to use the Emacs > manual or follow along with tutorials.

Having used emacs on linux, windows and now mac I disagree with this - <USER2> aquamacs introduces some (annoying, to me) functionality, you can simply turn these off and it works just like emacs in any other environment.

I have found aquamacs works better with ansi-term + with full-screen functionality than vanilla emacs, and I use both these functions enough to not want to go back.

<comment><USER17> When you say vanilla emacs, do you include the Cocoa version? ([http://emacsformacosx.com/](http://emacsformacosx.com/))

I'm using that many hours every day and have zero problems.

Regarding fullscreen, if you use a recent build both native and non-native fullscreen are supported.

<comment><USER16> Yes, I tried the cocoa version and that's what I'm referring to. I recall having real issues in particular with ansi-term not having the environment correctly set + simply not being able to resolve that.

I'm pretty sure I had other issues too, but I can't remember them.

To be fair, I've not tried the cocoa version or any other for some time, so things may have changed.

However, I still think OP's point was unfair on aquamacs - other than some (annoying!) quirks regarding autofonts and tabs (I instantly turn those off), it's no different than emacs anywhere else, in my experience.

<comment><USER18> PATH, exec-path etc. are mangled because of the way OSX loads environment variables. Here's an Emacs package that fixes that:

[https://github.com/purcell/exec-path-from- shell](https://github.com/purcell/exec-path-from-shell)

</comment></comment></comment></comment><comment><USER19> As an Emacs beginner and budding Clojure programmer in early 2012, I benefited greatly from Bozhidar Batsov's Emacs Prelude:

[https://github.com/bbatsov/prelude](https://github.com/bbatsov/prelude)

I highly recommend it, and have been very pleased to see it get better and better over the past year+.

<comment><USER20> And you shouldn't miss Bozhidar's blog on Emacs ([http://emacsredux.com/](http://emacsredux.com/)) where he explains a lot of the very cool techniques he included in Prelude.

</comment></comment><comment><USER21> Finally an introduction that has screenshots which don't remind you of the 70's.

Fonts and color schemes do matter, specially nowadays with the likes of Sublime and Textmate. Even more so for new users.

<comment><USER22> This is one of the most beautiful theme I've come across, and the one I am currently using:

[https://github.com/jasonm23/emacs-purple-haze- theme](https://github.com/jasonm23/emacs-purple-haze-theme)

<comment><USER23> Interestingly, I use Soothe ([https://github.com/jasonm23/emacs-soothe- theme](https://github.com/jasonm23/emacs-soothe-theme)) also by the same guy, which is also one of the most beautiful themes to ever grace one of my editors.

<comment><USER24> Any reason why you guys chose these themes other than it looks nice? :)

Solarized seems to be the de facto theme these days. I always wanted a theme that had some kind of "science" behind it. It also looks pretty good.

</comment></comment></comment></comment><comment><USER5> I started using emacs about seven years ago after about eight years of exclusively using vim, primarily because I wanted to see what the editor war's were all about (and because I got the blues from work and needed something uplifting...) I agree with the learning curve, and constantly am fine tuning my setup and configuration, but once you've mastered the basics, it truly becomes one of the most powerful editors. Plus it is constantly evolving (e.g., multiple cursors).

Another good emacs guide that I came across recently is:

[http://m00natic.github.io/emacs/emacs- wiki.html](http://m00natic.github.io/emacs/emacs-wiki.html)

Additional resources I found helpful:

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

[http://web.psung.name/emacstips/essential.html](http://web.psung.name/emacstips/essential.html)

Plus, check out the videos from Magnar Sveen's emacs rocks:

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

</comment><comment><USER25> After about a year developing a love/hate relationship with Vim I've finally had enough. After reading this post I think I'm ready to make the switch. Very good writing. Thanks for posting it.

<comment><USER26> I tend to switch back and forth between Vim and Emacs and am curious. What causes the hate in your relationship with Vim?

<comment><USER25> Vim is an excellent text editor. But I mostly use it for coding, and that's the problem. Vim is not an IDE. It relies on plugins to deliver a half baked IDE experience. Sometimes these plugins are broken and other times they refuse to play nice with each other. As I sort of need them to get the job done I end up wasting time fixing broken things instead of solving real problems. That's why I'm ready to throw this tool away and move on. I might try Vim again in the future when things are a little bit more stable. Anyhow, thanks for all the fish.

<comment><USER27> Can Emacs replace eclim (eclipse + vim) as a Java IDE? Are there plugins that can make editing Java in Emacs nicer and more productive?

</comment></comment></comment></comment><comment><USER28> Irrespective of the merits of emacs itself, this feels like a nearly perfect introductory tutorial. I've never seriousny used emacs, but this made me want to go try it and made me feel like I would probably succeed. Good show, whoever wrote this.

<comment><AUTHOR> Thank you!

</comment></comment><comment><USER29> I also recently started using Emacs. Not much progress in learning, yet, though.

It would be nice if someone made a nice starting package that would set it up more sanely for all the IDE-oriented people (basically take what modern IDE can do out of the box and setup Emacs that way). Something similar to what Ubuntu did for Linux. I have seen lots of personal configs on Github, and read lots of Emacs Wiki on how to set this and that, but it's still quite a struggle for me. Part of the struggle is that there are too many options sometimes.

Maybe someone will have a good suggestion regarding this.

Edit: Someone mentioned Prelude, didn't know about it. That looks good, like something I wanted.

<comment><USER30> The starter packages like prelude and emacs-starter-kit are more like a learning to walk with a crutch when you have perfectly working legs. They offer an easy way to start but once you start using them you'll find it hard to do it the normal way (like when you need to modify your emacs config or add some new elisp that isn't included).

It is better just to start emacs do C-h t and start learning, then add and configure when needed. You'll need to start out rough but after a while you'll learn how emacs works and be a better emacs user because of it.

Though if you don't invest in emacs and just need it to finish your thesis or because a professor won't let you use anything else then the starter kits could be fine as they are pre-configured.

<comment><AUTHOR> I might be biased (I'm the author), but I don't think that emacs-starter-kit prevents you from doing things the normal way. You can still modify your emacs config and include vendor elisp, and ESK doesn't make it more difficult.

And with the tutorial - I have a pretty low opinion of it. I mean, it starts out talking about how to navigate up and down one screen - who cares about that when they're starting to learn a new editor? Who? Emacs already has a reputation for being obscure and difficult, and the tutorial does not help.

This frustration isn't directed at you, of course - I appreciate the comment. In general, though, I think that Emacs instructions would be better if they had a little more empathy for the learner. As a new person, I don't care about hearing all this magical stuff about emacs right off the bat - I can't even make sense of it because I have no context. Just show me how to actually do real work.

<comment><USER30> That was kind of my point about the rough start, you won't get emacs to do the real work without putting time into figuring out how to get it to go.

The tutorial is more of a get you started and make sure you can actually edit text in emacs.

The most important parts of the tutorial are the how to save (which most people get to) and getting more help which is probably what people don't get to or understand. It isn't the best thing but it is okay if people make it through the end.

But you're right if you don't want to mess with your editor and `learn` emacs go for a starter kit or go for another editor with bells and whistles included.

<comment><USER29> "That was kind of my point about the rough start, you won't get emacs to do the real work without putting time into figuring out how to get it to go."

I disagree. It's not true for most IDEs, why should it hold for Emacs? This argument was also raised about Linux, but then Ubuntu came along and proved it was wrong. This seems to me like a religious stupidity - you have to use it for everything or it won't work at all.

My main motivation to use Emacs is org-mode and Common Lisp. That's already real work; although I try to use Emacs for everything, but using it for just one of these things would be perfectly valid use case for many people.

It's not that I wouldn't like to mess with the editor either; in fact I did a lot. But it still was not enough for it to work decently. I will have to try one of the starter packages yet (probably Prelude), though.

</comment></comment></comment></comment></comment><comment><USER31> I tried to get into Emacs on OS X a few times, but one of the things I don't like is the awkwardness of not having the Meta key mapped to a direct simple key press.

Activating the "Use option as meta key" isn't a good solution because I sometimes need to type accented characters that require the option key.

How do people deal with this when using Emacs in the OS X Terminal app?

<comment><USER32> You can enter accented characters into emacs by hitting M-x 8:

      M-x 8 ` e -> è
      M-x 8 / a -> å
      M-x 8 E   -> €

The number of these binds does not cover all of unicode, but it's surprisingly high nonetheless. If your desired character does not have a direct bind like that, or you just can't find one (C-h b lists them), you can insert a character by hitting M-x 8 RET and then typing its name:

      M-x 8 RET "Em dash" -> —
      M-x 8 RET "Hebrew letter double vav" -> װ

Tab completion works for these, of course.

[edit] I just saw the comment where you're more specific about what you're looking for. This isn't it, but having gotten a reply already, I don't want to delete this comment. It won't help you, but maybe it will others :P

<comment><USER33> It's C-x 8, not M-x 8. Use C-x 8 C-h for help

<comment><USER32> Uhh, whoops! I can't believe that I messed that up. Sorry!

</comment></comment></comment></comment><comment><USER34> Question to the Emacs crowd: how do I hit Alt comfortably? My instinct is to use my left ring finger, but have trouble doing that without moving my other fingers much. Could it be because I have very large hands (or because my keyboard sucks)? Is it a good idea to just remap capslock to be the meta key?

<comment><USER35> The control key is used more often than the meta key, so I'd reserve that choice bit of keyboard real estate (caps-lock) for control. For meta you can hit Esc, or even easier Ctrl+[ which is the same thing. Contorting your hand to hit control and alt in their default locations is going to cause you pain, so don't do it.

I now use a kinesis keyboard, which has two giant thumb keys for your left hand, I use those for control and meta. Before that I used control at caps- lock and meta using Ctrl+[, which worked well and pain-free for me for years.

</comment></comment><comment><USER36> Emacs makes Windows more bearable - thats why I'm thinking of returning.

</comment><comment><USER37> > Go ahead and undo that change.

How do I do that?

Thanks for the guide by the way!

<comment><USER38> C-_ is undo in Emacs. That's hold Control, and press "underscore". On my keyboard (most keyboards?) this requires holding Shift and pressing the "minus" key. Hopefully that's clear.

<comment><USER39> C-/ is also undo, which is arguably easier to reach :)

<comment><USER33> Or C-x u

</comment></comment></comment></comment><comment><USER40> I'm learning Emacs for class, and I was wondering: do you use the same hand to hit the command/meta keys? For example, when I'm doing C-n or C-p, I am currently hitting the command key with my left hand, but the identifier with my right. Is this the normal way, or do most people use one hand to execute a command?

<comment><USER41> I believe the general ergonomic advice is to hit the modifier and "normal" key each with a different hand, so you're doing it right. I try to follow that guideline, but I frequently make exceptions. This is especially true since I have caps lock mapped to ctrl, so I favor that left ctrl button regardless of the other keys I'm pressing.

<comment><USER40> So for C-x, I should hit the command key with my right hand?

<comment><USER15> First off, the Mac "Command key" is not involved with "C-x". "C" is for "control". "Command" is often bound to the Emacs "Meta" key, which would be "M-x".

For C-x I generally hit Control with my left pinky and X with my left middle finger: since C-x is a "prefix" key, there's going to be another key I hit later and that will generally be hit with my left index finger.

However for the C-x C-s sequence I use my left index finger on X and my left middle finger for S. Same with C-x C-q.

For M-x I use my left thumb on the Meta key (my Mac's "Option" key in my case) and my left index finger on X.

Just like playing piano, there is no "right" way to map your fingers to the keys (everyone's hands are different, after all). If something feels wrong or is hurting, try using different fingers.

</comment></comment></comment></comment><comment><USER42> I've been using vim for 3-4 years now. The plugin system is alright, but it's nothing to brag about. It's an amazing editor, but I think I'm going to try emacs + evil for a bit.

I almost added some other claims but I couldn't put them into words correctly, so I'll just leave it at this :D

</comment><comment><USER43> Emacs is one of the most powerful and impressive programs I have ever seen. It just lacks a decent editor.

<comment><USER44> At least put the quotation marks around that. I'm pretty sure 95% of visitors to this comment page have seen that 100 times.

</comment></comment><comment><USER45> The best feature of emacs is running shells in buffers. For interactive work, this is supremely useful because you can easily search your history, grab previous lines/chunks of code, and edit them into future commands. I do this all the time for data exploration with python.

<comment><USER46> I like the M-x eshell function a lot, too. It supplies identical shell experience across every system which is capable to run emacs.

</comment></comment><comment><USER47> Have you ever tried Sublime Text ? I find it very powerful. But of course its GUI unlike emacs or vim.

</comment><comment><USER48> I am not a developer but am learning programming. I picked up vim and have slowly build memory muscle for it for at least basic commands. I have never use Emacs. It seems to be quite popular. Is it worth learning? Is there a decisive answer to Emacs vs vim?

<comment><USER49> You should become intimately comfortable with a powerful text editor. Whether that is Emacs or Vim or Sublime Text does not matter too much.

I don't think there is any one axis that clearly marks Vim or Emacs superior. Both are awesome, geeky, sophisticated and powerful.

</comment></comment><comment><USER50> Is it worth learning this over Sublime Text? I love Sublime.

<comment><USER49> Learning is almost always worth it.

<comment><USER50> Kudo, But Time is of the essence

</comment></comment></comment><comment><USER51> CTRL+F "vim"

<comment><USER52> /vim<CR>

</comment></comment><comment><USER53> Or C-h t

</comment><comment><USER54> What benefits does Emacs have over something like Sublime? All I can see is you can customize a million key binds so you don't have to use the mouse. Sorry but I'm not racing type to as fast as possible when I write code, I don't mind spending an extra second and using a cursor.

<comment><USER4> Emacs also binds almost any REPL (Python, Lisp dialects, Erlang...) There's also AucTeX if you need to write TeX (the best thing for LaTeX out there.) Emacs is also completely configurable with emacs lisp: you can write your own "things." For example, I have a mode I used to format posts for my blog: with just a few custom keybindings I had it formatted to my tastes and special CSS rules.

PS: Also, leaving the keyboard easily breaks the flow, specially when you are in the "damn, delete this whole line and start again" frenzy that is just milliseconds away from your neat idea. C-a C-k (this also works in most text boxes in Mac OS, though) is extra fast for this kind of things.

As for leaving the mouse, that's not the point. I'm a heavy emacs user, but my latest dwelling with Go have been using Acme (which is a mouse-heavy text editor) and it is very enjoyable, as a change of pace. But being in emacs is not "for the keyboard" as much as being in Acme is not "for the mouse."

<comment><USER54> You can replicate a lot of that behavior in Sublime, plus you get a full GUI, file browser tree and it's easy to use and customize right away.

I'm not really convinced I should invest time in using emacs.

<comment><USER55> As a long time Emacs user a "Full GUI" or file browser tree are negatives. They just get in the way. There are alternative (and better) ways to navigate a file system that don't require pop-ups and other types of additional windows.

With Emacs directory navigation you can navigate into archive files such as .tar, .tgz and .zip without having to extract them.

Another Emacs benefit that Sublime may or may not support is that the editor's code can be customized simply by placing cursor at the function and typing a keystroke. Your code is then immediately active with no restarts or reloading.

Emacs works just as well in a OS window on my laptop and remotely running in a terminal. Being able to use the same editor locally and on a headless server is huge if you do server work at all.

You can run bash (or whatever) shells in emacs buffers. The full benefit of this is hard to describe, but once you try this you'll probably use it all the time.

In the end, you'll probably never be convinced by people advocating for Emacs, the best thing to do if you're really interested is to give it an honest try for a non-trivial period of time. Emacs can take time to learn but I think the payback is well worth it.

<comment><USER4> Completely agree with the payback. I'd never dream of going back to more IDE- like editors</comment></comment></comment></comment></comment>


Ask HN: Want to learn to program... how? - <AUTHOR>

I took a basic programming class in high school about 7 years ago (C++). Our great teacher left about 3/4 through, and the new guy didn't know a lick about programming. In fact, he would take my and a friend's code to use for class demonstrations.
Anyway, the class stagnated, and we didn't learn much for the rest of the year. I tried taking a Java class the next year from the same teacher, and it turned into a 'Web Surfing' class.
I wanted to learn then, but didn't make myself do it. Years have passed, and I still want to learn. I'm interested in web development and iPhone development. So I think I want to learn PHP or Ruby and some variant of C (Objective C, C++, or C).
I'm not a great book-learner, because I don't understand enough of the basics to understand what the book is talking about. I think I would thrive in a tutoring type of atmosphere. I would love to find someone to teach me, but don't know if that's the best route. I have no hesitation from going to a tech college or community college to learn enough so I can start learning on my own.
If you were to start over, what would you recommend? Get over myself and hit the books? Try and find a small classroom environment hoping they teach what I want to learn (again, Ruby for web dev and Objective C for Mac/iPhone dev)? Are there good online courses?
Appreciate your feedback. Thanks! <comment><USER2> Find a mentor. Get an internship.

@naithemilkman posted about how he's just getting into it and he cold called startups to offer to do internships, discussion here: <http://news.ycombinator.com/item?id=2280070>

when you're just starting, the most important thing is persistence. You can't hit it hard for 2 weeks, take a month, then come back to it hoping to pick up where you left off. You need to keep pushing, keep making forward progress and keep it fresh in your head.

Having mentors at a startup who are invested in your success (because you being good == free/cheap work for them) will ensure that you have resources to fall back on, they'll help you past a lot of pain points, and they'll motivate you to keep going.

Don't lean on them too hard, think of them as a spot at the gym. You want to do it yourself, but when you're in a bind, they'll give you the nudge you need to keep going.

Cold call startups and ask for an internship.</comment>


It's Not About Instagram — It's About Mobile - <AUTHOR> http://techcrunch.com/2012/04/18/its-not-about-instagram/ <comment><USER2> Why is he trying so hard to convince us there's no bubble? It just makes me more inclined to think we're in one.</comment>


Who Can Name the Bigger Number? (1999) - <AUTHOR> https://www.scottaaronson.com/writings/bignumbers.html <comment><USER2> A bit from 2018: [https://news.ycombinator.com/item?id=18508471](https://news.ycombinator.com/item?id=18508471)

A bit from 2016: [https://news.ycombinator.com/item?id=11596059](https://news.ycombinator.com/item?id=11596059)

Quite a lot from 2015: [https://news.ycombinator.com/item?id=9058986](https://news.ycombinator.com/item?id=9058986)

2013, despite subtle mistitling: [https://news.ycombinator.com/item?id=5085463](https://news.ycombinator.com/item?id=5085463)

2010: [https://news.ycombinator.com/item?id=2024576](https://news.ycombinator.com/item?id=2024576)

[https://news.ycombinator.com/item?id=1539538](https://news.ycombinator.com/item?id=1539538)

A tiny bit from 2009: [https://news.ycombinator.com/item?id=951095](https://news.ycombinator.com/item?id=951095)

<comment><USER3> Not a discussion of Scott Aaronson's blog, but a relevant bit from Mr. Show, "24 Is The Highest Number."

[https://www.youtube.com/watch?v=RkP_OGDCLY0](https://www.youtube.com/watch?v=RkP_OGDCLY0)

<comment><USER2> I love Mr. Show!

</comment></comment></comment><comment><USER4> He wrote this as a teenager. Then a new version of it in 2017: [https://www.scottaaronson.com/blog/?p=3445](https://www.scottaaronson.com/blog/?p=3445).

"That essay might still get more views than any of the research I've done in all the years since."

<comment><USER5> Thanks for pointing this out. He mentions in this one that he didn't have time to get into Graham's number, but I still think TREE(3) is worth mentioning.

<comment><USER6> Fun fact: The Kruskal Tree Theorem has been extended to undirected graphs (they form a quasi-wellordered set wrt the graph minor relationship), giving rise to an even faster growing sequence called the "Friedman's SSCG function".

The theorem is interesting for other reasons though: It allows us to define graph families by forbidding certain substructures.

</comment></comment></comment><comment><USER7> > And in Go, which has a 19-by-19 board and over 10^150 possible positions, > even an amateur human can still rout the world's top-ranked computer > programs.

Surprising, in retrospect, how fast that changed.

<comment><USER8> It was surprising at the time, too.

<comment><USER9> When I heard of the breakthrough in CNN's on imagenet the first thing I thought of was "wow I wonder if you can use them on Go". Of course I never executed on this idea. I'm mentioning to show that it was not that non- obvious.

</comment></comment></comment><comment><USER5> Maybe I missed it, but it was interesting that tetration was mentioned without talking about Graham's number g_64[0] or Kruskal's tree theorem and TREE(3)[1], both have been quite popular huge numbers for quite a while now.

0: [https://en.wikipedia.org/wiki/Graham's_number](https://en.wikipedia.org/wiki/Graham's_number) 1: [https://en.wikipedia.org/wiki/Kruskal's_tree_theorem](https://en.wikipedia.org/wiki/Kruskal's_tree_theorem)

<comment> maze-le I think the most fascinating bit about Grahams Number is, that is is used as an upper bound in a proof about colored subgraphs in a completely connected graph of dimension [n]. But this is only an upper bound... the actual number of dimensions [n] that satisfies the proof is unknown, but it could be as low as 13 for all we know...

</comment></comment><comment><USER10> The joke at the start is fun, I'd only heard a variant in Black Country dialect.

Aynuk: What do yow reckon the biggest number is?

Ayli: Ten thousand?

Aynuk: Worrabout ten thousand and one?

Ayli: Ar, I were close though, wor I?

</comment><comment><USER11> OP is about natural numbers, but if the challenge is generalized to computable ordinal numbers, then it actually becomes a very interesting measurement in the area of AGI. There's no bound on how big of a natural number any particular AGI could name (because if an AGI can name N, then it can name N+1, and by repeating that process, all the naturals are covered). But the set of codes of computable ordinals is a non-computable set, so no AGI could ever name them all, every AGI necessarily would have an upper limit on how large of a computable ordinal it could ever name.

See my slides on the subject here: [https://semitrivial.github.io/MeasuringIntelligence2019.pdf](https://semitrivial.github.io/MeasuringIntelligence2019.pdf)

<comment><USER12> How is this relevant to AGI?

<comment><USER11> How would you measure the intelligence of an AGI? Say you've got HAL in one corner of the room and The Terminator in the other, and you can ask them questions and ask them to perform computations, and they'll obey you. How can you make sense of which one is smarter?

A naive attempt would be to ask them to name the biggest (natural) number, but that's no good: HAL says 1000, Terminator says 1001, but of course HAL also knows 1001 is a number so Terminator only wins by dumb luck.

We can salvage the idea though by switching natural number for computable ordinal number, and instead of having them name a single number, have them enumerate computable ordinal numbers indefinitely. The set of codes of computable ordinals is Turing non-computable, so neither machine will succeed in enumerating all of them, and by comparing the size of the ordinals enumerated by the two machines, you get an elegant, parsimonious, not-too- contrived notion of which machine is (mathematically) smarter.

Read the slides I linked!

</comment></comment></comment><comment><USER13> MIT ran this challenge as the 'Big Number Duel': [http://web.mit.edu/arayo/www/bignums.html](http://web.mit.edu/arayo/www/bignums.html)

Worth a read just to see the winner's solution, which I thought was rather ingenious.

</comment><comment><USER14> Here's another treatment on the topic, and in particular, Graham's number:

[https://waitbutwhy.com/2014/11/1000000-grahams- number.html](https://waitbutwhy.com/2014/11/1000000-grahams-number.html)

</comment><comment><USER15> Regarding tetration, I wonder: is it ever used in physics/engineering contexts? If not, then why not? Is our universe too simple for more than 3 levels of arithmetic operations?

</comment><comment><USER16> [https://en.m.wikipedia.org/wiki/Graham%27s_number](https://en.m.wikipedia.org/wiki/Graham%27s_number) number may be larger?

<comment><USER17> From the link you provided:

> As there is a recursive formula to define it, it is much smaller than > typical busy beaver numbers.

While I can't argue the specific details, I'm not surprised. BB numbers are not computable. Grahams number is.

</comment></comment><comment><USER18> Further ideas/concepts:

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

</comment><comment><USER19> Rather than the BB sub n definition proposed in the article, I propose a new notation BB^n( x ), which is to the Busy Beaver sequence what Knuth up-arrow notation is to the hyperoperation sequence. So you don't need to rely on the magic of a "super duper machine" to define the number, just recursive use of the Busy Beaver function. It's kind of tenuously on the boundary of the rules, since it uses a made-up notation.

</comment><comment><USER20> There is a community of googologists who study, record and define the largest numbers ever described. If you want to bend your mind a bit around gargantuan numbers I suggest taking a casual walk down their list.

[https://googology.wikia.org/wiki/List_of_googolisms/Uncomput...](https://googology.wikia.org/wiki/List_of_googolisms/Uncomputable_numbers)

</comment><comment><USER21> Knuth wrote an interesting article on the topic, in 1976, because computers had become so powerful.

[https://science.sciencemag.org/content/sci/194/4271/1235.ful...](https://science.sciencemag.org/content/sci/194/4271/1235.full.pdf)

</comment><comment><USER22> he mentions population growth falling due to birth control as an unlikely prediction, but it seems to be where we're actually headed! There's a book with a lot of research on this called " Empty Planet: The Shock of Global Population Decline" - they say we'll hit peak human population in 2050 +/\- 10years

<comment><USER23> Read that last month; actually very readable, I found, and the way the book tackles different parts of the world and suggest them to be essentially be on different parts of the same glidepath is not unconvincing.

</comment></comment><comment><USER24> This game is more about business/negotiation than math.

I'd only play this game if I get to reveal my number first and the opponent agrees to read aloud both numbers in decimal form one digit at a time. Then I'd write down Graham's number and leave the room.

</comment><comment><USER25> Sorry, but this reminds me of Mr. Show's sketch "the highest number "[https://m.youtube.com/watch?v=RkP_OGDCLY0](https://m.youtube.com/watch?v=RkP_OGDCLY0)

</comment><comment><USER26> That's numberwang?

</comment><comment><USER27> In fact, BB(k) is roughly equivalent to asking "what's the biggest non- infinity namable number in k characters".

<comment><USER28> That doesn't sound right, because "BB(k) plus 1" is larger than BB(k) and has fewer than k characters for sufficiently large k.

<comment><USER29> What you say is a Berry paradox. To be consistent we fix a programming language before any such definitions. So you have to count all characters in the BB(k) subprogram. Hence the total program for "BB(k) plus 1" definitely will have more than k characters.

<comment><USER28> I don't think _my_ example (for example, "BB(11111) + 1") demonstrates the Berry paradox. The original comment "the biggest non-infinity namable number in k characters" is the Berry paradox, which is what I was pointing out.

</comment></comment></comment></comment><comment><USER30> All of this work on numbers and yet the incorrect use of the word decimated.

</comment><comment><USER31> here's what I came up with in a few seconds:

let g(x) mean "x to the googolplex power"; my number is g(g(...g(googolplex) with a googolplex number of g's.

<comment><USER32> h(x): g(x) ^ g(x)

etc</comment></comment>


Carphone Warehouse leaks LG's Google Nexus 4 phone - <AUTHOR> http://www.bbc.co.uk/news/technology-20081930

<comment><USER2> They were leaked more than 2 weeks ago I believe... [http://www.geek.com/articles/mobile/lg-nexus-4-photos-and- sp...](http://www.geek.com/articles/mobile/lg-nexus-4-photos-and-specs- leaked-20121010/)

</comment><comment><USER3> I don't know that I would trust this website, maybe its just a small thing but the image they are using is obviously a fake. The image displayed on the phone is from a custom rom, specifically AOKP.

<comment><USER4> Interesting. How can you tell? It looks like a google now notification to me.

<comment><USER5> The top bar is wrong, the clock isn't centered on existing versions of stock Android.

<comment><USER6> Yeah that's the same render that's been circulating for a day or two now

</comment></comment></comment></comment><comment><USER7> It lists a 360-degree camera - huh?

<comment><USER8> I guess that means you can pan around and it'll make a long panoramic picture for you, much like the new feature in iOS 6 (and already found in Android 4.x, right?).

<comment><USER9> Both Android and iOS make panoramas, yes; but this is listed as a '360 panorama', meaning it would get a full revolution panorama.</comment></comment></comment>


Id Software Programming Principles - <AUTHOR> http://blog.felipe.rs/2017/02/25/id-software-programming-principles/ <comment><USER2> > Write your code for this game only - not for a future game. You're going to > be writing new code later because you'll be smarter.

This really stood out for me. I'm always tempted, while writing something specific, to generalize it. I try to resist that, when I recognize it. Writing a ThingThatImWritingFramework risks ThingThatImWriting never seeing the light of day, or never being used.

<comment><USER3> It completely removes the fun though, if you only enjoy generalizing, optimizing, refactoring, designing, and take _zero_ pleasure in delivering an actual usable product. If the product is Doom this shouldn't be a problem - but for most of us the product is form validation or calculations involving plywood. Making frameworks and generalization is the only reason I manage to keep doing what I do. (I'm exaggerating somewhat, but I think this is a clear distinction between two kinds of programmers those who love the code; and the craft, and those who like making products. Have too many of one kind and you'll ship a mess. Too many of the other and you'll never ship)

<comment><USER4> > _It completely removes the fun though, if you only enjoy generalizing, > optimizing, refactoring, designing, and take zero pleasure in delivering an > actual usable product._

Then maybe that programmer should go into teaching instead?

<comment><USER5> You have that backwards. People who don't enjoy these things should go in to _management_

<comment><USER4> People who enjoy actually building and shipping something instead of creating abstractions should go into management?

You do realize that this includes all the hackers with the original sense of the term, which are not about finely tuned abstractions and design patterns, but about creating things and hacking/kludging it out to get there faster?

</comment></comment></comment></comment></comment><comment><USER6> It reads like a "get shit done" manifesto, and good rules of thumb for most programmers tasked with doing just that. Worth remembering that iD had some of the most advanced 3D and networking code for years and really pushed the envelope and the industry forward in many ways (first huge shareware company, first big company to allow mods, first big company to make code open source, etc.)

It is easy to slide into an OCD mindset when programming, to make things tidy and proper. It feels dirty to make stuff just work, to make stuff disposable, but evolution operates a lot like this - many little, reversible mistakes that add up to big improvements quicker than any other method.

</comment><comment><USER7> > Programming is a creative art form based in logic. Every programmer is > different and will code differently. It's the output that matters.

This one is also nice, especially for mid to large software houses. As long as a common denominator is respected, I guess.

<comment><USER8> It's enabled by encapsulation.

</comment></comment><comment><USER9> Some of these things, like focusing on the task at hand and trying to be as simple as possible, not thinking too much about the potential futures is important to me. If all would do that maybe there would not be 1000s of weird half baked npms and such.

</comment><comment><USER10> He described how literally hundreds of projects were successfully completed in C, targeting multiple platforms, while being first to market with innovative technology, with a small team in a pre-Internet world,

These are achievements beyond belief.

</comment><comment><USER11> I'd very curious to hear Carmack's take on this. After all Romero was making game levels, not the engines.

<comment><USER12> He was developing large parts of e.g. Doom: He didn't write the BSP traversal and texture mapper (the graphics engine), but he did write monster AI, level behavior, and level editor.

I think, I heard him state in an interview that he also did a lot of development on Quake in addition to the levels. Obviously the graphics engine was Abrash and Carmack's

<comment><USER13> I think Carmacks programming principle would be "be a genius"

<comment><USER14> No, if you learn more about him, its really more work ethic. I think he is smarter than an average person, but not smarter than the average programmer by a whole lot. Just robotic like work ethic.

<comment><USER15> There's a bit at the end of Chuck Yeager's autobiography, where he takes to task the idea of test pilots being men who have "the right stuff" (specifically addressing the book by that title).

"And in the end, the one big reason why I was better than average as a pilot was because I flew more than anybody else. If there is such a thing as 'the right stuff' in piloting, then it is experience."

</comment></comment></comment></comment></comment><comment><USER16> This is first class post-hoc bullshit. They weren't making prototypes or reusing code, they sure as hell weren't composing high-sounding principles.

They just got on with it because they were talented experienced and motivated. For that reason, the rest of the talk is very inspiring - so listen to the hour-long video (half talk, half questions), and not the article which only has the post-hoc bits. [https://youtu.be/E2MIpi8pIvY](https://youtu.be/E2MIpi8pIvY)

<comment><USER17> > they were talented experienced and motivated

Agreed and that's the whole secret sauce right there, combined with: no distractions (social media or indeed even "coding forums" with constant flame- wars on this and that language/stack/paradigm) and crucially also no distracting "stack" or APIs to speak of (bare metal coding literally "on top of the BIOS" in these days, no OS/GUI/multithread/GPU APIs).

The initial core team spent their entire youths 24/7 getting insanely good at ASM and C and numerous gfx tricks and then "they just played the piano" to the best of their accumulated abilities. Observe how much longer the Dooms took compared to Wolfenstein and priors, and how much longer the Quakes took them compared to the Dooms.. as they were slowly entering the age of Windows native & Internet multiplayer even they too got slowed down a bit (were shocked how for Quake "just waiting for 'ze engine' took a year"!) compared to the earlier works --- of course still managed to ship high-quality products, but still

<comment><USER16> Another eg of distraction-free programming: [http://www.atariarchives.org/deli/cottage_computer_programmi...](http://www.atariarchives.org/deli/cottage_computer_programming.php)

</comment></comment></comment><comment><USER18> > "No prototypes. Just make the game. Polish as you go. Don't depend on polish > happening later. Always maintain constantly shippable code."

I disagree with this so much, prototypes and proof of concepts teach you so much but usually they are crap you will always write it better a second time. Throw away the prototype and re-write it as a much better implementation.

<comment><USER19> For every prototype / POC thrown away there are 9 other prototypes ending up in production or getting sold as business software. If you feel the urge to write a prototype to learn something new please do not show it to your manager/sales rep!

<comment><USER20> What if you prototype a game mechanic and it's shit?

<comment><USER19> The article talks about similarities between common agile practices and John Romero's programming principles. There is a world beyond the gaming industry where you can sign big contracts and ship broken software and no one dares to complain.</comment></comment></comment></comment>


For Law School Graduates, Debts if Not Job Offers - <AUTHOR> http://www.nytimes.com/2011/01/09/business/09law.html

<comment><USER2> This is an area which seems ripe for innovation. I can understand why most of the schools wouldn't want a third party firm to independently collect this data.

</comment><comment><USER3> I am suprised this has not made the front page of HN..this is a really interesting article in the popular@HN education bubble saga....</comment>


Linux benchmarking test suite released as open source - <AUTHOR> http://www.phoronix.com/vr.php?view=12136

<comment><AUTHOR> Their source repository is located here: <http://www.phorogit.com> (note: they use git, rather than subversion).</comment>


Communication with submarines - <AUTHOR> http://en.wikipedia.org/wiki/Communication_with_submarines

<comment><USER2> That reminds me of a project I almost undertook a few years ago with a friend of mine. We wanted to transmit video from a custom-built submarine using sound.

At first, I remember seeing an image embedded in Aphex Twin's "Windowlicker"[1] and thinking it can't be that hard to write software to recreate it. Not knowing much at the time, I came to a friend of mine who was all about signal processing, who whipped up a binary to do it a few days later[2].

Skip forward a few months to when me and a friend are discussing communicating with submarines and transmitting stuff like video data, and how impermeable salt water is to RF. So one of us pitched the idea of using that method of embedding images in sound via that method, and we figured if we use a high- enough audio frequency and low-res image (say 400x400px), we can transmit a roughly 4 fps video stream and use ~50px for control data.

Also, noise won't be an issue here, since the signal is for human consumption and blips and distortion can be overlooked. I ended up buying a pair of really decent transducers removed from an old nuclear submarine (!), but ended up not being able to implement this as life got in the way.

If anyone needs a pair of decent 10W underwater transducers, let me know :P

[1] <http://en.wikipedia.org/wiki/Windowlicker> [2] <http://184.108.40.206/wwwa/web/hardware/soundmural/>

</comment><comment><USER3> Voice communications via acoustic means has been around since World War 2. Look for the UQC systems. They used single sideband modulation. VLF broadcasts have been around for a long time as well. During the 90's, I'd walk into radio on the USS Cavalla to go on watch and we almost always had the VLF fleet broadcast coming in on the teletype printers.

<comment><USER4> Technically, hasn't "voice communications via acoustic means" been around a lot longer than that?

<comment><USER3> Well, I meant in the context of communicating with submarines, the subject of the Wikipedia article.

</comment></comment></comment><comment><USER5> Conn, radio, request number one bra-34, request permission to transmit two released outgoing messages via SSIXS.</comment>


Cmus 2.8 Release Notes - <AUTHOR> https://github.com/cmus/cmus/releases/tag/v2.8.0 <comment><USER2> cmus is a small, fast and powerful console music player for Unix-like operating systems.

Also "Warning: cmus is not actively maintained. For details, please see [https://github.com/cmus/cmus/issues/856](https://github.com/cmus/cmus/issues/856) "</comment>


Steve Wozniak spent night in jail for building a fake bomb in high school (2011) - <AUTHOR> http://www.businessinsider.com/steve-wozniak-in-jail-fake-bomb-2011-10 <comment><USER2> Building something to deliberately look like a bomb, and then placing it in a location to again make it look as much like a bomb as possible is completely different from:

* Making a clock * Telling everyone it is a clock

Woz got told off, Ahmed got interrogated with no parents present, then arrested, walked past his schoolmates in hand cuffs, placed in juvenile detention, suspended (still suspended), finger printed, ...

<comment><USER3> Woz got "told off"? Did you read the story? He spent a night at the juvenile detention center and very likely endured everything that Ahmed did as well, but the story, as written, doesn't contain any of the details.

</comment></comment><comment><USER4> He trolls a _little_ smarter these days: [https://www.youtube.com/watch?v=LJ1TIYxm1vM](https://www.youtube.com/watch?v=LJ1TIYxm1vM) (TLDW: He makes perforated tearable "notepads" of real $2 bills and spends them conspicuously to prank people. "You can get arrested for them, but not convicted, because you're in the right." He explains how it works in a deliberately misleading but technically honest way, and may have tricked the host on the show. He's probably buying uncut sheets of bills and perforating and gluing them. Includes short mentions of other hijinks. I'm not sure I believe all of them.)

</comment><comment><USER5> Peter Thiel in Zero to One: "Of the six people who started PayPal, four had built bombs in high school"

<comment><USER6> Anyone with access to good chemical lab has done so.

Rule of thumb - the deadlier it is, the easier it is to make.

</comment></comment><comment><USER7> I suppose Ahmed has a bright future.

</comment><comment><USER8> >He thought it was because he had won, yet again, the school's top math prize. Instead he was confronted by the police.

This kind of belies the idea that this is a new phenomenon.

<comment><USER9> Except Woz did what he could to make it seem like it was a bomb, then left it in a locker.

Very different from Ahmed's situation.</comment></comment>


Windows 8 Build 7850 Leaked On FTP Torrent Release Imminent  - <AUTHOR> http://www.chiphazard.com/2011/04/12/windows-8-build-7850-leaked-on-ftp-torrent-release-imminent/ <comment><USER2> I can understand the need to be on the cutting edge of the latest software (I started using Win7 with the MSDN beta), but why would you want to install a milestone version that's already 6 months old?</comment>


Spotify can't afford the 30% "Apple Tax", and and Apple knows that - <AUTHOR> https://youtu.be/l8SShgWqJvg <comment><USER2> Apple / google tax on apps screams for regulation. Taking a percentage cut from something while the internal cost for them remains constant, is monopoly at its best.

Minewhile while we're asleep Microsoft is doing their best to promote their own kind of monopoly. Under the guise of security features they are promoting mandatory signing, while what they are really pushing for is to slowly turn the PC into yet another closed economy.

If we will slowly allow Microsoft their way of enforcing mandatory signing by default, PC will be heading in the very same direction. We need to stop this now!

<comment><USER3> For your second paragraph all I could think about was how now is the time for Linux desktop. Then I realised that non-Android Linux could be good on phones too (for the problems in your first paragraph), but for some reason it didn't seem to catch on.

I say this not as a hardcore Linux fan, but as a Windows user of nearly 30 years.

</comment></comment><comment><USER4> Apple is claiming is not 30% but rather 15% after the first year.

I think Apple may be right in this one, but with their track record so far is hard to give them a benefit of the doubt.

[https://www.apple.com/newsroom/2019/03/addressing- spotifys-c...](https://www.apple.com/newsroom/2019/03/addressing-spotifys- claims/)

</comment><comment><USER5> Can I get an MBA here to explain why this is a big deal? If Spotify can't make money on the Apple store why not just charge whatever they need to, pretend it doesn't exist, and go for customers through different channels?

Like does Spotify really need their iOS app to be an advertising channel for them? Is being able to sell premium on Apple devices really so valuable?

<comment><USER6> >If Spotify can't make money on the Apple store why not just charge whatever they need to, pretend it doesn't exist, and go for customers through different channels?

Because Apple's App Store and Google's Play Store are where everyone is.

<comment><USER5> I mean it's where users download apps but it's not the only place people sign up for subscriptions.

If customer acquisition is so expensive outside of the App Store then that's an argument that Apple's "we get 30% of all revenue made through us when you use our platform as a funnel" might actually be too low.

<comment><USER7> Except apple then released their own competing service that doesn't have to play by the same rules. In effect this raises the cost of customer acquisition both within and outside of the app store. Spotify's take on things basically says as much. They were willing to work in the app store and pass the apple tax on to consumers until apple created their offering and made that too untenable.

</comment></comment></comment></comment><comment><USER8> How about they both pay taxes?</comment>


Controlling a 3D printer with an Xbox 360 Controller - <AUTHOR> https://www.youtube.com/watch?v=8l81tq_zfBI <comment><AUTHOR> All credit goes to Matthew Rayfield ([http://matthewrayfield.com/](http://matthewrayfield.com/)). He has some very... interesting projects that should be right up HN's alley.

Code for the project can be found here: [http://matthewrayfield.com/goodies/gamepad-input- to-3d-print...](http://matthewrayfield.com/goodies/gamepad-input- to-3d-printer.js)</comment>


Homeless Man Has Three Degrees and Can't Find a Job   - <AUTHOR> http://newsfeed.time.com/2011/08/11/viral-video-homeless-man-has-three-degrees-and-cant-find-a-job/ <comment><USER2> He has a _Masters_ in Electrical Engineering and Acoustics from Purdue University (a very good acoustics school) and he can't find a job in the _Boston_ area (home of a dozen or so acoustical consulting companies, another dozen or so loudspeaker manufacturing companies including Bose, Boston Acoustics & Loud Technologies), several active audio & acoustical engineering associations (including Bosotn chapters of the ASA, AES, SMPTE and IEEE), and several schools with strong audio, acoustical and/or media programs (MIT Media Lab, BU, Northeastern, Berklee)?

Something does not compute. I highly doubt it's racism (I'm black and very active in the acoustics community in Boston and have witnessed basically no intentional racism). Everyone I know out that way is very busy and a lot of firms have hired recently so it's not a matter of employers not willing to hire.

There's either more to the story here or people are missing out on a potentially fantastic hire.

edit: I've put out some feelers to see if any knows or might be interested in speaking with this guy.

<comment><USER3> Well. He's 55 yrs old and has been out of work for sometime. At that age no one expects to train you so you have to have had a great track record, be practically a guru and be bringing something to the company to get hired over a recent graduate. His race might play a part in potential employers being doubtful that he has those skills (probably a bit understandable given the number of black acoustical engineers) or not being able empathize with his situation.

<comment><USER4> I don't really understand this comment. Why would it be understandable that some employers would not believe that he is a capable black acoustical engineer?

And even if they did, wouldn't it take maybe 5 minutes worth of correspondence to figure out if he was or was not? Unless you are saying there is rampant racism in the acoustical engineering industry to the point that he would not even advance to a correspondence level with a hiring manager based soley on the fact that he is black.. Which I would doubt.

<comment><USER5> Unfortunately, I've seen it, with myself in computer programming and systems administration. Not the only field where this crops up; fortunately, we're beginning to have good counterexamples of what black Americans are supposed to be:

<http://www.youtube.com/watch?v=wPf03T8YN-4>

</comment></comment></comment></comment><comment><USER6> A quick look at his linkedin profile shows a 17 year gap in his work history and a very vague sense of what skills he has, I imagine that's what giving him problems.

<comment><USER7> That's possible. I wonder what the reason is, or if this Youtube thing isn't telling the whole story.

<comment><USER8> Most of the time with sensational stories you only get the 'shock' side of the story. Like forgetting last years case Ted Williams (radio voice guy) was a drunk and drug abuser.

Or untold police brutality stories which neglect the office point of view. Not that I condone police beating the crap out of people, but I understand every one has a breaking limit, and often after watching those videos I think I wouldn't have lasted half as long as the cops did. But a cop having to face 3 abusive people in an uphill struggle to do his job... until he pulls out a baton and pacifies one or two ... is no where near a great story as a abusing his power.

Lots of homeless people have mental defects that can be hard to see at first. I wouldn't mind betting there maybe something else as well. Even something as simple as depression.

I suspect he has these going against him. Age , weight, race, long term unemployed, homeless, new city, industry knowledge which he probably hasn't kept unto date on, and drive... lets face it younger people have more drive to be prove themselves than older people.

Pretty hard to top of the pile when lots of other applicants wouldn't have that.

I'd say the best thing for him would be teaching, seems he has a warmth about him, proven kindness (with parents), seems intelligent enough, and as long as theres no mental defects. One year in a local community college and he'd be set. No doubt there will be an online effort to help this man out. And I'd chuck him a dollar to be a teacher.

</comment></comment></comment><comment><USER9> I didn't quite understand the story - he liquidated all his assets to buy his parent's home then moved in with them to take care of them. It sounded like he bought the house altogether. If so, why homeless? Could he not pay the taxes?

In any event, while his sentiments were laudable, I'm reminded of a Dave Ramsey saying - "you can't help someone from a position of weakness". I think it was DR, anyway. In other words, to be able to help someone financially, you need to be able to keep yourself financially strong. As crappy as that might have been what would have happened had his mom still been alive? He'd be on the streets with an elderly Alzheimer's parent.

I realize people can't predict the future, but I've got friends that are continually doing really dumb things with money for their kids and even grandkids, and are going broke (and beyond) in the process. I think it does little to help the kids learn a sense of responsibility. My parents both helped out _some_ when I was growing up and migrating to adulthood, but never to the point where they put themselves at serious financial risk. I'm grateful for their help, but we all felt I needed to do most of it on my own, which I have.

<comment><USER10> _As crappy as that might have been what would have happened had his mom still been alive?_

You are completely right when you're in the position to think rationally. My only thought is that ... it's his Mom. I'm a married man with a few kids and am the sole income provider for my family (by choice not circumstance). I would _move heaven and earth_ to ensure my family (my bride and children) were taken care of. Were I single, I'd live on the street if it meant the difference between my mom being tossed out of her home or me being able to prevent that.

It's completely irrational behavior from a Dave Ramsey standpoint (I'm a fan of his), and I know that elderly care isn't a choice between "stay in your home" and "suffer/die in an alley with dementia", but it's difficult to make sound decisions when dealing with such a serious emotional circumstances. (case in point, I don't even know the meaning of _living on the street_ , but I know what decision I'd make regardless).

There's a bit of hindsight at play here. When I decided to move out, my dad did everything he could to convince me to _buy a house_ rather than rent (throwing your money away! Tax deductions!). From a cash flow perspective, it didn't make sense. I had no savings and would have had to game the system via several different types of loans, but from the _conventional wisdom_ of the time, it was: _your house will never decline in value_. I rented and I'm glad I did. I'm now a homeowner with a simple 15 year fixed that's nearly paid off.

</comment></comment><comment><USER11> Three degrees. That could mean he's industrious, curious and driven. Or it could mean he had money enough to delay entry into doing something meaningful in life, and too little drive to do anything but. I know both kinds. Would anyone hazard a guess about which group has a better employment outlook?

I don't mean to belittle the very real problems in both the job market and our education system. I do mean to quibble when journalists try to find extreme examples where commonplace examples abound.

<comment><USER10> Having managed (paid) interns and full time employees picked right out of graduation (I'm in a somewhat experimental role and that means the only staff I'm going to get is junior level), I can't possibly restate the importance of not _delaying entry into doing something meaningful in life_ , if I take your _meaningful_ to mean advancing your experience in your desired field.

The _best_ employee I've ever had wasn't a Computer Science or MIS major (I believe he switched later). It was an accident that I even got his resume (coincidentally, a _staffing intern_ at my company mixed it up. It was due for the bin [ _HR and staffing_ are for another rant, I'll leave it alone this time]). He was a brilliant guy. He interned for the half of the summer. In a few weeks he went from zero experience with databases and directX, to developing a solution using both technologies (he wasn't a magician, the end- product was _good_ , but required some reworking of code due to his applying knowledge from one language to another, but it was _done_ , _usable_ and with a bit of work _supportable_ ). We offered him a full time position on the spot and he declined (he wanted to be in academia at the time, but ended up in industry a few years later).

Degrees are important. Experience is important. _Intelligence_ is important, but being intelligent and having degrees doesn't equate to success or the deserving of success. I used to work with a guy who was the sort of guy you wanted to go out to lunch with (if you're a geek). Very intelligent, had all sorts of ideas, could talk about anything related to his field (networking) and would challenge you to _think_ about things differently. Unfortunately, he could talk all around theory, but he couldn't execute. It was a strange sort of inability to choose between several equally good approaches to solving a problem. Every project he worked on got about 3/4 to completion and then fell flat into failure.

And of course, the story of my two coworkers is certainly not a rigorous statistical understanding of the world. It's my observation mixed with bias. But it's worked so far in finding good, terribly unqualified individuals that can produce far more than they take away from me in time-spend.

<comment><USER12> _Very intelligent, had all sorts of ideas, could talk about anything related to his field (networking) and would challenge you to think about things differently. Unfortunately, he could talk all around theory, but he couldn't execute. It was a strange sort of inability to choose between several equally good approaches to solving a problem. Every project he worked on got about 3/4 to completion and then fell flat into failure._

Almost textbook description of ADHD. ref: <http://news.ycombinator.com/item?id=2877100>

<comment><USER10> That's very interesting, thanks for the link.

I have children, and I've worked with a few folks who have been diagnosed as ADHD, but I think the focus always lands on the "Hyperactivity". In retrospect, he could very well be ADHD (it was called ADD when I was a kid, and "shut up and sit down" when my dad was a kid), but I my armchair quarterbacking (psychologicalicking [made it up]) can see the signs there. He was a very organized individual, coupled with the observed behaviors (hyper focused, often a part of ADHD that isn't associated with the condition).

</comment></comment></comment></comment><comment><USER13> I doubt his three degrees have anything to do with the fact he can't find a job.

</comment><comment><USER14> There's a lot of people out there in really bad situations that aren't likely to get better. It really bums me out when I consider what it would be like to be 55 and homeless in Cleveland.

Still, the article mentions he sold all his stuff and spent his savings on paying for his parent's house. First, that means he doesn't have to live on the streets currently (his parents have a house), and second he should have just let his parents go bk then help them get set up again. That's for starters, and there's probably a few other things he could do that would make a big difference in getting it together.

</comment><comment><USER15> This might make me sound inconsiderate, but in his position I would take nearly any job I could just to make some money. He can't afford to be picky about what he gets if he's living on the streets.

<comment><USER16> It does.

I was unemployed for a year and a half, and even _Wal-Mart_ wouldn't hire me.

<comment><USER17> Yeah, that's what I don't get. Everyone says "hey, all these unemployed could work at McDonald's". The last time they had that massive hiring event millions showed up to fill 50000 positions.

No one wants to admit that nearly every business except tech is sitting on cash and just working their existing employees to the bone because they can (and because it's more profitable). The real hiring is overseas, as it should be.

People like the guy in the video and 99ers may need to start their own businesses if they can't find _anything_. Necessity is the mother of invention (and entrepreneurship).

<comment><USER18> If you are able bodied and hard working, you can almost always find jobs in construction or demo (one or the other is almost certain to be doing well in any particular economic situation). These are not good jobs, but they are _jobs_. At the very least it is generally quite easy to get under the table work with these sorts of gigs.

If you are able bodied, hard working, _and_ reasonably bright, then contact local apprenticeship programs. They are almost always _desperate_ for new people these days. These sorts of jobs cannot be outsourced and are in high demand since the society in America these days so highly encourages everyone to seek university education.

Food service jobs are actually quite difficult for most people to land compared to most jobs. The reason people use it as an example of where unemployed people could work is because lots of teenagers _can_ get those jobs meaning that people who say that are remembering back to when they or their buddies got those jobs.

EDIT: I'm not pulling this out of my ass here, I say this from personal experience. For about 5 years before I got into uni I worked a few jobs in demo (gutting, nothing specialized, just swinging a sledgehammer) and as a migrant farmhand (most of that work as general labour at various processing plants down the coast). Most of my friends from that time went on to get apprenticeships in various trades. I don't care to think about how many pounds of asbestos I probably inhaled, but it was work.

<comment><USER19> Regarding apprenticeship-type programs, my father works for the Corps of Engineers, and my uncle is a life-long electrician. Both are work with training programs these days. Each of them has said that it's extremely hard to find someone who is both reasonably intelligent (or able to put down his/her smartphone long enough to appear so) and able to stick with a program through completion.

<comment><USER16> One of the reasons I could never do manual labor for the rest of my life (after working on farms and road crews) was the sheer intellectual loneliness of it. No matter how strong I was, or how fast I worked (I'm still pretty good with a pick-axe), I was still the loser who didn't go out and blow money at the bar. Worse yet, the area was like 70% male and I couldn't get a date as a laborer to save my life.

The fact is, computers and large-scale engineering projects are _really fucking interesting_ and siphoning off talent from other areas. The dreaded brain drain. Meanwhile, our grid is crumbling and we're playing it conservatively--minor fixes, if anything. If there was some serious thought and excitement put back into it, to not just modernize, but _futurize_ our utilities--we'd see a lot more people start to join.

NIMBY is a problem: no micro-wind farms, no upgraded rail projects, no weird bio-tech projects, nothing new or innovative. If anyone's intellectually curious, why the hell would they want to join something as boring as a public works project?

<comment><USER19> _I was still the loser who didn't go out and blow money at the bar. Worse yet, the area was like 70% male and I couldn't get a date as a laborer to save my life._

That sounds almost exactly like my last programming job. Except it was more like 90% male. :-)

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> I think what he could do to close that gap is re-train himself. There are unemployment agencies in every city (called WIB) that provide free training resources to people who are looking for jobs.

But the biggest deterrent is the motivation to go out there and really push hard to make yourself relevant. He did couple of times mention the 'color' and it seems that he is feeling like a victim. In order to succeed, you need to get out of that mentality and start thinking positively about the value you can bring to an org.

</comment><comment><USER21> To everyone who's saying his university entry at sixteen is implausible: actually, it's fairly common. I started uni at sixteen (B of Technology, RMIT). So did my best friend (BCS, UTS). My partner started at fourteen (BCS, U of Canterbury). Anecdotal yes, but it's not exactly unheard of.

<comment><USER22> It is fairly common, but it was much less common.

</comment></comment><comment><USER23> Since when does having three degrees equate to being a good employee?

</comment><comment><USER22> I love how Time decided to prepend the headline with "Viral."

</comment><comment><USER24> Who wants to make a wager, that he has a serious substance abuse or mental health problem? The other issue is that he refuses to leave Cleveland. There are no jobs for an electrical/acoustical engineer in Cleveland, and there probably won't be for a very very long time, if ever, and the effect of race in a city like Cleveland is far more likely to come up than in a less racist area.

I also get very suspicious when someone has multiple degrees at the same level, in this case 2 master's degrees. I can't put my finger on what it is, but people who collect degrees seem like they are more often completely incompetent.

It's not societies fault that someone can't find their ideal job in a dying city, and it's not news.

<comment><USER25> Geez. I know America is nowhere close to being a socialist country, but one cannot be so oblivious to the fact that something here is rotten from the foundation. Have we lost all solidarity? Hell, even basic decency?

Yes, maybe this specific person is not a good example. Maybe he has suffered mental health issues or substance abuse (though I find the accusation appalling). Maybe he does suffer a severe lack of skills.

But the fact that a highly-educated person had to sell all his assets in order to support his parents, and consequentially is now job and homeless, says something about society.

So, yes, it is societies problem. No one is to guarantee that tomorrow that person will not be you or me. And from that perspective, things look a hell of a lot different.

<comment><USER25> I feel a strong urge to say one more thing.

I live in Israel, and right now the majority of the Israeli people are uprising [1] (democratically and peacefully) against the absurd cost of living that we have been suffering for the past 20 years. Thankfully, our macro economy numbers are good, and people have jobs - but raising a child or buying a house is nothing short of impossible nowadays.

Over the past month the entire Israeli public has been asking itself "Why do we deserve this? If our country is doing so well, why are we struggling from paycheck to paycheck? If things are so good, why is everything so bad?"

Eventually, people will begin to ask questions, and demand answers from their government. Once that happens - and by looking at recent global events, it will - prepare for radical economical and political change.

[1] - <http://en.wikipedia.org/wiki/2011_housing_protests_in_Israel>

<comment><USER26> I'm mostly standing on the side walk here, a new resident and not a citizen. But yeah, these topics basically dominate all smalltalk recently.

Co-workers tell me what they pay for kinder garden and it's unbelievable. I can judge the general prices for housing and basic needs myself and again it's weird. I moved here from one of the most expensive cities in Germany (I think it ranked on place 2-3, depending on the report), this is 1.5 times more expensive in general, ignoring obviously crappy (from my point of view) fees for kinder garden, university etc..</comment></comment></comment></comment>


To the editor: Please see wiki - <AUTHOR> http://thelede.blogs.nytimes.com/2007/05/21/to-the-editor-please-see-wiki/ <comment><AUTHOR> Follow up on the copyright article.</comment>


Let's make a JavaScript Wait function - <AUTHOR> https://hackernoon.com/lets-make-a-javascript-wait-function-fa3a2eb88f11 <comment><USER2> I don't get what's the point of his article. Promises and async/await are here for ages. Moreover it does not highlight issues with await such as if you forget to await a promise you've just introduced a subtle but in your code. Sounds unlikely? Check out the last snippet in the article (waitForHello(2000) missing await, doesn't do any harm in this case as there are no code after it but it's a hidden bug).

<comment><USER3> I also am confused by using the Pyramid of Doom as a pseudo rationale for needing this. Pyramid too tall? Use a function call. Nothing at all wrong with:

        function multiStepAsyncProcess() {
            hitServer(params, function() {
                multiStepAsyncProcessStep2();
            });
        }

        function multiStepAsyncProcessStep2() {
            hitServer(params, function() {
                ...
            });
        }

<comment><USER4> Now do it with error handling and recovery.

<comment><USER5> Moreover, async/await allows you to preserve multiple intermediary results between async steps - which is awkward in both promises and un-nested pyramids like the OP's:

(not even starting with conditions, loops and recursive calls that contain async steps...)

Async/Await:

      async function f(a) {
       var b = await foo(a);
       var c = await bar(a, b);
       return baz(a, b, c);
      }

Promises:

      function f(a) {
       var _b;
       return foo(a)
        .then(b => {
          _b = b;
          return bar(a, b);
        })
        .then(c => baz(a, _b, c))
      }

Callbacks:

      function f(a, done) {
       foo(a, b => bar(a, b, c => baz(a, b, c, done)));
      }

Callbacks untangled:

      function f(a, done) {
       var _b;
       foo(a, step2);

       function step2(b) {
        _b = b;
        bar(a, b, step3);
       }

       function step3(c) {
        baz(a, _b, c, done);
       }
      }

</comment></comment></comment></comment><comment><USER6> The callback style pseudo code they posted as an example is not a good example of callback style JavaScript code.

The first code posted is showing callback style with a nested loop over a directory listing to perform an image resize using graphics magick. Aside from the fact the author isn't actually calling any callbacks to indicate a complete event ( and won't be able to unless they have an async iterator ), there is a concurrency problem with usage of gm.

You really actually want to a run something like an async eachLimit in order to set the amount of open GM instances running concurrently or run the risk of running out of memory / cpu.

The second example using async/await doesn't mention anything about using async iterators either.

see:

[http://caolan.github.io/async/docs.html#eachLimit](http://caolan.github.io/async/docs.html#eachLimit)

[https://github.com/tc39/proposal-async- iteration](https://github.com/tc39/proposal-async-iteration)

</comment><comment><USER7> A bit OT, but may I suggest for a style guide to not use the shorthand, w/o brackets, in single-argument arrow functions, as in

      var wait = ms => new Promise((r, j)=>setTimeout(r, ms))

Here, the semantics of "ms" are not resolved by its lefthand side, but only by its righthand side (i.e., if this was anything but an arrow, "ms" would be a value assigned to "wait", while here it's the beginning of a functional construct, spanning over the rest of the line.) Opposed to this, using brackets for arguments anytime conveys the meaning much more clearly:

      var wait = (ms) => new Promise((r, j) => setTimeout(r, ms));

_Edit:_ The amount of look-ahead introduced by the shorthand syntax is rather foreign to JS, as is the switch in syntax that goes with the number of arguments (as illustrated by the example). I'm not convinced that this was the greatest idea in the history of JS syntax ever.

<comment><USER8> Isn't that always the case? You always need to take into consideration the evaluation of the rhs. Consider:

       var wait = ms * foo()

And that's not even considering the complexity introduced by the comma operator. I think the arrow is the key to visually identifying a function, not the parentheses.

<comment><USER7> It's really about the arrow operator starting with "=", which is most likely the beginning of a chained assignment as in

      a = b = c = 0;

Also (as noted in the edit), I'm not the greatest of fans of the syntax switching with the number of arguments. In the example given, there are two arrow functions defined, each of them coming in a different appearance, due to the number of arguments used. Using always brackets, the nature of "ms" and it being used and passed as an argument would be more striking on first sight. Ease of understanding and readability aren't just luxury for a codebase.

(The real difference as for pragmatics is this: In any other case, anything on the righthand side of the first "=" is a value resolved on first execution whenever the code is hit, while in this case it's a parameter that becomes evaluated whenever the function defined by this assignment is called – and this relation isn't resolved without look-ahead. Possible errors introduced by a sloppy (mis)reading are numerous.)

<comment><USER8> > is most likely the beginning of a chained assignment

I wouldn't think so at all. I almost never do chain assignment in modern JavaScript but I write functions which return functions somewhat often.

I guess there's a possibility that someone quickly skimming code would misread => as =. It hasn't yet happened to me though.

<comment><USER7> > in modern JavaScript

You are probably right on this – but there's still old code around and ease of context switching may be a thing. Also, I guess, you can't be too defensive in your approaches, when setting up a shared codebase that may be around for some time. (With JS being extended on a yearly basis, we hardly can imagine what will be around a few years from now.)

 _Edit:_ However, also related to modern JS, another possible counter argument to mine: With the omission of terminating semicolons and frequent use of multiline statements determining the semantics has also become a question of scanning the next line anyway. Look-ahead is now a thing.

</comment></comment></comment></comment></comment><comment><USER9> I love async/await, but it's not because it's "aesthetically pleasing". It's because having execution jump around from the outer body to the inner anonymous functions fucks with all my intuition and, especially, with the way debuggers work.

If I want a series of steps to execute in order, I should be able to write them down in sequential lines of code, and it's, imo, a historical artifact that I was ever _not_ able to do that -- because (oops), JS was traditionally conceived to have sequential lines of code execute immediately after each other, instead of blocking until they're able to proceed.

That is, it's not required that "single threaded language" _meant_ "non- blocking execution" and thus _required_ "callbacks and promises to do asynchronous behavior". It just ended up that way -- and we're finally (almost) free of it.

<comment><USER10> Thinking that it's a historical accident that everything is async in Javascript is a fundamental misunderstanding of async-everything.

<comment><USER9> Want to elaborate? I disagree, but I'm happy to be corrected. Anyway, what I said was that it's a historical artifact that JS has a single thread of execution, and by that I meant, "it was standard to do that at the time that JS was conceived, so that's how it was done". If you were inventing web browsers today I don't think you'd ever intentionally choose to do it that way.

</comment></comment></comment><comment><USER11> The problem with async await is that it is build upon promises, which sucked already from the start.

For all those Promises proponents out there ready to burn me down, this is how you do it in C:

      delay(1000);

And here the amazing Promises with await:

      var wait = ms => new Promise((r, j)=> setTimeout(r, ms));
      await wait(1000);

Is it really that difficult to at least abstract this wait function away in the Javascript language?

<comment><USER12> Yes it is. Synchronous calls monopolize the event loop so everything - including page interactions - freeze until the control flow finishes busy- waiting. Yay, single threading.

<comment><USER13> Everybody solves that by having multiple threads (either at the OS or runtime level), so you can run in parallel the stuff that don't conflict with each other.

<comment><USER4> Do you, as a user, want web pages to spawn multiple threads on your machine?

<comment><USER13> Well, first, you are completely ignoring the possibility of runtime threads.

Also, why not? Do you see any problem with that? As long as their numbers are limited, I don't see any problem?

</comment></comment></comment></comment></comment><comment><USER14> The longer I see people debate the value of promises and their obscured use via async/await vs callbacks I am more assured of the value of simple callbacks. If you are experiencing callback hell you have bigger problems than callbacks. If you love promises great! But please don't force them on me or I'll find another api to use thank you.

<comment><USER15> I haven't heard or read a lot of debate claiming that callbacks are superior to promises and async/await.

From the people I work with and everything I have read there is almost universal agreement that promise based code is easier to work with than callback based code and async/await is superior to both.

Callbacks do have superior performance, so if you are writing some really performance sensitive code then it might be worth using them, but like all optimization techniques that should only be done if the case truly requires it. Most don't.

</comment></comment><comment><USER16> Promises and Async/Await are just too slow. I'll stick with Callbacks.

[https://kyrylkov.com/2017/04/25/native-promises-async- functi...](https://kyrylkov.com/2017/04/25/native-promises-async-functions- nodejs-8-performance/)

<comment><USER17> Shouldn't we be more focused on which is easier to use though? Even if promises are slower, they probably aren't going to be a major performance issue, so I think if you find promises easier to use and less bug-prone, they are better regardless of preformance.

<comment><USER18> > Shouldn't we be more focused on which is easier to use though?

In JS I think this depends a lot on whether you are writing client-side code or not. Prioritizing developer ease of use over end-user performance is a very bad habit to get into. But it matters less when writing code that'll run in Node.

(that said, I'm not at all convinced that the performance difference mentioned in this article matters a whole lot. It's not actually that significant.)

<comment><USER17> > Prioritizing developer ease of use over end-user performance is a very bad > habit to get into

Why is that? Whenever you use a high level language, you are making development easier at the cost of end-user performance. Or using a foreach loop instead of a regular for loop, is usually a bit slower, but makes development easier and less bug prone. Premature optimisation is the root of all evil and all that. Obviously at some point you have to prioritise end-user performance, when making decisions that will have a big impact on performance, but when making decisions on the level of promises vs callbacks, I don't think end-user performance should be a priority.

</comment></comment></comment></comment><comment><USER15> Should mention that Bluebird does this.

[http://bluebirdjs.com/docs/api/delay.html](http://bluebirdjs.com/docs/api/delay.html)

<comment><USER19> Yup, Bluebird has allowed for:

      await Promise.delay(1000);

For as long as I can remember. I'm surprised Bluebird isn't more widely- adopted; it's been way better than native promises for at least 2 years now. The transform-async-to-module-method plugin with Bluebird is the way to go.

</comment></comment><comment><USER20> I made something like this a while back. [https://github.com/johnhenry/asynchronous- delay](https://github.com/johnhenry/asynchronous-delay). It's a useful pattern.

<comment><USER20> Also this: [https://github.com/brummelte/sleep- promise](https://github.com/brummelte/sleep-promise).</comment></comment>


Project Collaboration Agreement for new projects with two partners - <AUTHOR> https://medium.com/@obie/project-collaboration-agreement-for-new-projects-with-two-partners-ee86145933ab <comment><AUTHOR> This is the actual contract template that I've developed myself and used on a number of little ventures. It's optimized for passive-income projects, rather than things you plan on fundraising or making really big.</comment>


House costs just $20,000 but its nicer than yours - <AUTHOR> https://www.fastcompany.com/3056129/this-house-costs-just-20000-but-its-nicer-than-yours <comment><USER2> In hot metro areas the problem isn't the construction costs, it's the land. A 1/4 acre tear-down in Cupertino or Sunnyvale goes for a million dollars; an empty half acre goes for two million.

It's hard to fix this: the root problem is that _income_ is concentrated in a small number of areas that are constrained by geography, not that houses are expensive to build. In areas with plenty of land around well-dispersed businesses (eg. Houston or North Carolina), nice houses can be had for $200K. In areas with no income (eg. Detroit) nice houses can be had for $10K, but you wouldn't necessarily want to live there anyway.

<comment><AUTHOR> very interesting...

Would you extend that observation to other areas : like Seattle?

Where outside of California would you invest as a future place that's likely to increase like Mountain View (a have a few friends that live there that also say "it's the land").

Thanks!

</comment></comment><comment><USER3> It wouldn't surprise me if it will costs me an additional $3000 per year just for the additional gas.</comment>