Concurrency Is Not Parallelism (2013) [video] - <AUTHOR> https://www.youtube.com/watch?v=cN_DpYBzKso <comment><USER2> Here's a fantastic set of cartoons explaining concurrency and parallelism:

[https://typelevel.org/cats- effect/concurrency/basics.html](https://typelevel.org/cats- effect/concurrency/basics.html)

</comment><comment><USER3> After many years of discussions on the topic, my goto line is now the following:

"Parallelism is for performance, Concurrency is for correctness."

<comment><USER4> Clean, simple. I like it

</comment></comment><comment><USER5> Concurrency and parallelism are properties of the resolution with which you view your program. View a program at the distributed system level, vs the OS- scheduled level, vs the microarchitectural superscalar / OoO / SIMD level, and you will come to different conclusions about whether the program is "parallel" and/or "concurrent." These are contextual.

<comment><USER6> To be clear up-front: I agree with you. However, this line of thinking can be a bit disingenuous as it may turn into convincing someone their single threaded program in C is actually multithreaded because of OS scheduling or because it runs on a distributed k8s cluster.

It reminds me of how technically there is space between everything if you go small enough (ie cellular or atomic) and how some elementary school kids would use that to convince you that they arent touching you :)

</comment></comment><comment><USER7> Doesn't Simon Marlow explain the difference very well? Concurrency is implementation detail and parallelism is an execution detail?

</comment><comment><USER8> Concurrency = logical simultaneity. Parallelism = physical simultaneity. When the former is mapped to the latter we encounter scalability. Some examples: Unix commands (cp, grep, awk, sort) do not scale on multi-core systems due to total lack of concurrency in their implementation. Quick sort scales worse than merge sort because the latter allows for more concurrency. A parallel program using a barrier between outer loop iterations (f.e. matrix inversion, or computational partial differential equations) won't scale well because barriers are antithetical to concurrency.

<comment><USER9> >Unix commands (cp, grep, awk, sort) do not scale on multi-core systems due to total lack of concurrency in their implementation.

This is not true. Unix commands are designed to be used in pipelines. Unix is actually the easiest way to run things in parallel, so easy that people don't even notice.

<comment><USER10> That isn't the individual tools showing concurrency - they are running concurrently due to the way the OS manages processes and pipelines.

The overall task has multiple things running concurrently but it doesn't have to[1] and the individual components are doing no concurrency of their own. It has the same effect in many cases because of the buffering built into how pipes are handled, for instance passing the output of gzip through gzip through gzip will happily use most of three cores (if that much CPU time is free at that moment) but try that with commands that need to block such as invocations of sort for example and you'll see that break down. One sort command in your pipeline will tie the whole lot to not scaling much beyond one core[2]. Also pipes and other trickery like xargs/parallel don't help if the task is something like "grep over this large file" \- that will only scale over multiple cores at all if your implementation of grep supports a multi- threaded search (and your data is in cache or otherwise in RAM so the process isn't IO-bound).

[1] it _could_ queue each and spool the output between to temporary storage, it is so chose [2] note that some implementations of sort, such as the GNU version seen in most (all?) linux distributions, _do_ support their own multi- core use

</comment></comment></comment><comment><USER11> The dictionary definition of concurrency contradicts this video. Concurrency is defined as "happening or existing at the same time".

<comment><USER12> I think what he means is that he's defining 'concurrent' as a sort of abstract parallelism which can run on 'n' CPU cores. It becomes concrete parallelization when you set n to 2 or more but can still be considered concurrent software architecture even if someone only ever runs their copy with n=1.

To address another comment, I agree this distinction has limited utility (assuming I understand it correctly). This context of discussing architectures which promote abstract parallelism is probably about the only place it's useful.

I agree that a strict/true interpretation of 'concurrency' (as distinct from Pike's definition) would not include time slice multi-tasking since it depends on the limits of human perception to appear as truly-concurrent/executed-in- parallel when it's actually fine-grained sequential processing.

</comment></comment><comment><USER13> Isn't parallelism one limit case of concurrency (zero dependencies) and the opposite of full sequentialism (fully dependent) ?

<comment><USER14> That's true in one direction, but not the other.

The other angle is that concurrent programs are still concurrent on a uni- processor. Parallel programs are not.

<comment><USER5> What is a "concurrent program?" If concurrency is about program structure, does that structure have to be explicit? If I rewrite a loop to support OOE is it thereby concurrent?

A uniprocessor may be pipelined, superscalar, support SIMD, etc which would seem to satisfy the definition of parallelism. So isn't parallelism achievable on a uniprocessor?

The more I think about this stuff the less sense the distinction makes.

<comment><USER15> > So isn't parallelism achievable on a uniprocessor?

Of course! Normally unqualified parallelism refers to multiprocessor parallelism, but instruction level parallelism is also a thing. So is overlapping io or memory access with computation. Even memory accesses themselves can be parallelized (caches are multi ported, CPUs allow multiple outstanding cache misses), or IO (multiple disks or network cards).

<comment><USER13> From what I recall, Quake existed because of instruction level parallelism between apu and fpu. This indeed has importance.

</comment></comment></comment></comment></comment><comment><USER16> There are several misleading comments here making the incorrect assumption that the term "concurrency" in software has something to do with time. In software design, when we talk about concurrency, we are talking about coordinating distinct logical processes (not necessarily OS processes). This term has limited similarity to the common-knowledge understanding of concurrent events "happening at the same time". Logical (not temporal) ordering of operations is implemented using process synchronisation techniques. One of the important differences between parallelism and concurrency is that parallelism is typically restricted to almost identical process definitions which aim to exploit the physical architecture of processing units. Concurrency, however, makes fewer assumptions about the physical architecture and focuses on software design in a more abstract way with a primary objective of coordinating resource utilisation of competing processes (especially physical resources).

</comment><comment><USER17> What is the core difference between Actor and threadpool (Boss/workers)? I do know that this is off-topic, please spare me .

</comment><comment><USER18> A distinction isn't necessarily useful.

<comment><USER19> no kidding...it's become some convention in the last 15 or so years, but in the early 1990s working on supercomputers i had never heard of it.

<comment><USER20> I seem to remember it coming from Golang people.

<comment><USER21> _I seem to remember it coming from Golang people._

The discussion existed around languages like Python, long before Golang showed up on the scene.

</comment></comment></comment></comment><comment><USER22> @4:05 people with lesser minds ;)</comment>


Building a Bug Out Bag at the Dollar Store - <AUTHOR> https://survivorsupply.com/building-a-bug-out-bag-at-the-dollar-store/ <comment><USER2> Dollar General is not a dollar store. ):

<comment><USER2> If it were a dollar store, you'd not be able to buy a full gallon of milk there, and it wouldn't cost more than at Walmart or Krogers. In other words, if Dollar General is a "dollar store" then so is Walmart.

Indeed, "Building a Bug Out Bag at Dollar General" is like saying "Building a Bug Out Bag at Walmart"</comment></comment>


What else is there in Python? - <AUTHOR> http://blog.amir.rachum.com/post/27860231695/what-else-is-there-in-python

<comment><USER2> I agree that the use of else on for and while clauses is very not intuitive. It would be far better if the else would be executed if the list you're iterating over is empty and thus the for/while clause is never ran not even once.

So you could rewrite:

        last_val = None
        for item in myList:
          last_val = item

to:

        for item in myList:
          last_val = item
        else:
          last_val = None

<comment><USER3> Yes, "else" is a strange keyword to use for it, but I have found the _existing_ semantics to be useful in practice. The application is nearly always related to handling success/failure of some kind of search. In Python, for..else allows elimination of variables whose names are something like "found".

In C++:

      bool found = false;
      for (...)    // Look for something
      {
         XXX;
         if (YYY)
         {
             found = true;
             break;
         }
      }
      if (!found)  // Didn't find it
      {
          ZZZ;
      }

but in Python:

      for ...:  # Look for something
          XXX
          if YYY: break
      else:     # Didn't find it
          ZZZ</comment></comment>


Amazon Introduces Prime Stations - <AUTHOR> http://thenextweb.com/apps/2015/04/09/amazon-prime-stations-with-music-recommendations-and-unlimited-skips-arrive-on-android/

<comment><USER2> While I will surely check this out (since I've already got Prime), it seems like yet another service similar to Songza and the rest. While I do like the radio-style format in many cases (as opposed to the on-demand format of services like Spotify) I still tend to prefer human-programmed streaming "stations" over algorithmic ones. Picking a style and having it play a variety of music is great but as a long-time fan of several Shoutcast stations, there is simply nothing like a playlist being designed by someone with a love and knowledge of music.

One of my great joys in life is to listen to a station with great choices and great variety and realize some thematic connection between the last few songs the DJ picked. It's like a return to the days of DJs instead of program directors and marketing departments picking the tunes on the radio...except now there are tens of thousands of stations so you can find ones that appeal to your tastes.

Prime Stations will certainly end up in my app list but my bookmarked Shoutcast streams will still be my go-to source for streaming "radio" for a while I think.</comment>


Show HN: Watch YouTube videos in a 3D world with your friends - <AUTHOR> https://dj3d.io/ <comment><AUTHOR> EDIT: Sorry I'm having some issues with my servers now since lots of people are using it! Hoping to fix it soon!

Hey HN! I've been working on this project for a few months now and I thought this would be a good time to release a beta version. DJ3D will keep Youtube videos in sync with a group of up to 30 people, and each person gets a fun little avatar in a 3D world to mess around with. All you have to do is create a room and share the URL!

Tech stack:

\- Agones + nengi for the multiplayer

\- three.js for rendering

\- Firestore for video syncing

Coming Soon:

\- Usernames

\- Chat

\- Video queuing

\- More expressive features (dances, emotes, etc.)

Sorry if you encounter any issues, it's still a work in progress. Feel free to report bugs or give feature suggestions at our Discord!

[https://discord.gg/Wpmz55T](https://discord.gg/Wpmz55T)

More of my projects:

[https://neelmango.com/](https://neelmango.com/)

<comment><USER2> Please bind LEFT/RIGHT MOUSE to punching and kicking. People are blocking the view!

<comment><USER3> +1

</comment></comment></comment><comment><USER4> Nice! Some feature ideas after using it:

\- It would be great if you could use your webcam as your face, in addition to the emojis.

\- Ability to send messages in the room and have them appear above your head would be a nice feature.

\- Being able to set your username would be nice so you know who is who.

\- It would be cool if there was multiple room types, and the creator of the room can pick one (A theatre, a grassy field, a living room, etc.).

<comment><AUTHOR> Just added the username feature! It appears above your head... Working on adding chat next. Technically you could use your username for a super janky chat haha

</comment></comment><comment><USER5> People looking for a very evolved version in VR can check [https://www.bigscreenvr.com/](https://www.bigscreenvr.com/)

[https://store.steampowered.com/app/457550/Bigscreen_Beta/](https://store.steampowered.com/app/457550/Bigscreen_Beta/)

Edit: not affiliated

<comment><USER6> Has anyone tried this? I'm hesitating on buying a VR device because of motion sickness/eye strain, but this looks so cool.

<comment><USER7> The biggest problem IME is that VR headsets are not very high resolution, since the screen needs to cover a wide FOV but your eyes look for sharp detail in the center of what you're looking at. So you'll see a slight screen-door effect or aliasing. The VR cinema feels nice and big but you won't see the same level of detail as in real life.

Motion sickness is not usually an issue with apps made for VR because they've usually implemented move-by-teleporting. I've tested VR with multiple people who get motion sick playing regular first-person games like Minecraft, but they don't get motion sick in VR.

</comment></comment></comment><comment><USER8> [https://dj3d.io/room/TueVDJ61](https://dj3d.io/room/TueVDJ61) Live Rap

</comment><comment><USER9> I love this! I would be perfect is the little guy can jump in the cubes like in a platformer, it's amazing that you have all this space to run, but it's a litte boring if you can't climb thins or hit/interact with other users. But lovely idea, cheers. (sorry for my english)

</comment><comment><USER10> @mastersky7 restrictions create more creativity.

1\. People running around and blocking the view can be very distracting -- I'm assuming the point here is to be a utility, albeit a fun one. So perhaps allow people to jump or wave or do something in place (like throw emojis above them). But people are locked in place.

2\. Enable a performance mode, where people can then view the same in 2d.. so people with less powerful machines are able to partake.

3\. A chat sidebar optionally.. so people can use that to discuss.

These 3 would help a lot for so many usecases (including mine -- watching tech talks with co-workers). Does anyone have other recommendations for my usecase?

<comment><USER11> Performance mode would be welcome... This has kicked off the fans of my 2015 MBP into the highest gear.

</comment></comment><comment><USER12> It'd be cool to have the option to feed my webcam to the face of the character, and for the head to point in the direction of the mouse cursor like Minecraft.

</comment><comment><USER13> I am really chilled, what a cool thing!

Please add text chating, just please...............

This remind me reminiscent of drive-in movie theater...

<comment><USER13> btw, I tried it with one of my friend, found its a bit lag, and when it happened, the video will restart, maybe its just our VPN lags...

</comment></comment><comment><USER14> Reminds me of the Web Displays Mod for Minecraft: [https://www.youtube.com/watch?v=tpqOv7SxkHA](https://www.youtube.com/watch?v=tpqOv7SxkHA) .

Complete with keyboard and mouse. Why ever leave the game?

</comment><comment><USER6> This is superb!

You're almost at a point where this can be made into a browser extension, to include sites like Netflix, Hulu etc..

Also, please make it more like an actual movie theater were we could sit down and talk (audio chat).

<comment><USER15> A chat would be nicer for all the other people watching, although a room setting would be a good compromise. People suggesting features left and right just shows how nice this is.

<comment><USER6> How about audio volume based on distance.. only the people next to you can hear you

</comment></comment></comment><comment><USER3> This is so awesome. Let me customize my guy.

EDIT: You could develop this into a full-blown virtual movie theater experience. Add a snack bar and rows of seats. Maybe you could even sell virtual popcorn to people.

</comment><comment><USER16> The grass is a cool feature showing how well three.js works, maybe add a small world building tool with different terrains. Not sure how much more load it would add.

<comment><USER17> that would be fun, build a big climbing pile that people could park on

</comment></comment><comment><USER18> This is very exciting. I have been browsing /shownew lately here and this is another project that is very inspiring.

I have a hard time staying focused when watching programming tutorials, or any educational content really. I felt so much more relaxed and focused having the ability to let my character jump around while watching the content.

Plus this will be a great tool with the social distancing measures being taken.

Thank you for sharing!

</comment><comment><USER19> Join my room to watch me teach CSS Grid: [https://dj3d.io/room/mhZrpfnH](https://dj3d.io/room/mhZrpfnH) Fun site!

</comment><comment><USER20> What I love the most is the character animation. Did you animate this by hand yourself?

Ah, I see you're the guy behind 3dforreddit too! I had some fun with that when it was posted here.

</comment><comment><USER21> This is great! I just would like to know if there's a way to click the suggested video and watch it on the screen - now it opens YT in a new tab.

</comment><comment><USER8> Live Music @ [https://dj3d.io/room/lX6XxdpZ](https://dj3d.io/room/lX6XxdpZ)

</comment><comment><USER22> Really nice, genuinely felt like i was in a theater.

<comment><AUTHOR> Thank you! Glad you liked it. Yea, I've had similar, theater-like experiences in VR before but I thought it could be fun without a headset as well.

</comment></comment><comment><USER23> It's so cool!!

One weird thing, it seems like jumping makes the video restart

EDIT: Okay it seemed to stop doing that after I enabled and disabled my cursor again

</comment><comment><USER24> Nice work. You should consider adding WebXR support. ThreeJS has a pretty good cross-platform plugin you can use.

<comment><USER25> true

<comment><USER25> noi

</comment></comment></comment><comment><USER26> This is incredibly silly but I love it!

</comment><comment><USER27> This is cool! Needs some form of chat though And a way to release the cursor without having to alt tab

<comment><AUTHOR> Thanks! Yes, chat is coming soon. And you can press ESC to get your cursor back.

</comment></comment><comment><USER28> This is so cool! It would be great if the worlds were more explorable and had more places to go.

</comment><comment><USER11> I really love the idea. You've done a lot of cool projects I see. Great job!

</comment><comment><USER17> Wave has passed, just wanted to pop in to say this is really cool man. Great job..

</comment><comment><USER29> Cute!

I'd love to be able to use my mouse as a mouse instead of just being locked to the camera.

<comment><USER30> escape button works as a toggle for mouse control, i didn't see it listed as a control

</comment></comment><comment><USER31> Loved it! It would be cool if it had a list of public rooms.

<comment><USER8> That`s exactly what I thought!

</comment></comment><comment><USER32> This is great work! Really simple but well executed idea.

</comment><comment><USER33> Awesome - can you add some blocks for parkour?

</comment><comment><USER34> Very cool! The future of meetings has come.

</comment><comment><USER8> Rooms should be advertised @OP

</comment><comment><USER35> Reminds me of Gmod cinema :-)

<comment><USER36> From GMod Tower?

</comment></comment><comment><USER37> video isn't working for me :

Google Chrome 81.0.4044.92 (Official Build) (64-bit) OS Linux

<comment><USER38> Same for me (same build and OS)

</comment></comment><comment><USER39> Wow this is amazing!</comment>


The Saga of Springer-Verlag and Volume II of Mumford's Selecta [pdf] - <AUTHOR> https://www.math.upenn.edu/~chai/story/story18.pdf <comment><USER2> Fabulous read, very sad to hear of the decline of Springer-Verlag, formerly the hallmark of quality publications in mathematics.

<comment><AUTHOR> I've definitely noticed a drop in the manufacturing quality of their books published in the last few years.</comment></comment>


Tesla launch new referral program with $1000 rebate - <AUTHOR> http://www.teslamotors.com/models/design/referral/antoine6153

<comment><AUTHOR> Has anyone reference in the efficiency of such programs. It seems to me that $1000 will not make a big enough difference to make someone buy a tesla. Most of the buyers that will enjoy the rebate were probably going to buy one anyway.

On the other end the fact that the owner can get up to $10000 with the referral program might push most owner to oversell the quality of Tesla cars.</comment>


South Pacific landmass may have been closer to land level than once thought - <AUTHOR> https://www.theguardian.com/world/2017/sep/27/zealandia-drilling-reveals-secrets-of-sunken-lost-continent <comment><USER2> I enjoy (as humor) the articles where this is discussed as a plot by New Zealand to be declared a continent. I imagine if there were people from Pluto living among us they would be telling us how planet like Pluto is :-)

But humor aside, where do you draw the line? Nearly all of the Mojave desert in the US was clearly a sea floor based on the fossils found in its sandstone rocks. But we're not going to call it an ocean. It _was_ an ocean, and then things moved around and now it _is_ a desert. Zealandia _was_ a continent but now its the seafloor around an island.

Lets say we call it a continent, does it suddenly make it all the territory of the government of New Zealand? Does that mean they control fishing and mineral rights for hundreds of kilometers beyond the shores of their island? Where does that lead?

<comment><USER3> > _Lets say we call it a continent, does it suddenly make it all the territory > of the government of New Zealand? Does that mean they control fishing and > mineral rights for hundreds of kilometers beyond the shores of their > island?_

Probably, yes. France extended its EEZ last year with new evidence that the land around Kerguelen island forms an underwater "continent" as well. I imagine if this finding about Zealandia gets confirmed, both New Zealand and France (from New Caledonia) will want to extend their EEZ there as well.

<comment><USER4> More on france's extension of it's eez: [https://www.lexology.com/library/detail.aspx?g=536dc880-b89b...](https://www.lexology.com/library/detail.aspx?g=536dc880-b89b-4fbe- bff1-72dc1c46e2c8)

Note, the extension is from 200mi (the eez) up to 350mi -- so NZ wouldn't get the entire continental area.. and in that extended area, they only get exclusive rights to the soil and subsoil (so things like oil, etc... but no exclusive fishing rights).

</comment></comment></comment><comment><USER5> How cool - it's also interesting that there are a handful of massive undersea plateaus marked on one of the articles' maps.

I wonder if it'd be possible to build a sealab on one of them; it looks like there are often small atolls nearby, and it could be a good environment for testing concepts related to building and maintaining livable underwater environments.

<comment><USER6> Have you read about the US research projects?

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

Things quickly get challenging with depth.

</comment></comment><comment><USER7> Isn't it funny that an American journal publishes an article with Australian scientists about a continent they term Zealandia after New Zealand in turn named after a place in Holland where much of the landmass and water is currently controlled by France?

I have pity on the Chinese national geographic toponym bureau for having the tedious task of translating this for national linguistic unity.

Truly, we dwell in a post-national mire of bureaucrats! We need more solid continents!

<comment><USER3> Hmm... I don't think France controls Zeeland in Europe though. Maybe Belgium instead.

But France is still in the picture since New Caledonia also sits on the plateau of Zealandia... New Caledonia itself named after Scotland!

</comment></comment><comment><USER8> First we lose a planet, now we gain a continent. Is nothing I learned in Elementary school sacred?

<comment><USER9> Sharing is important.

</comment></comment><comment><USER10> What are the chances that this extends to Australia and is actually a part of Australia?

<comment><USER11> From the article: "(Zealandia)... is believed to have separated from Australlia and Antarctica, as part of Gondwana, about 80m years ago."

<comment><USER12> That makes Australia, Zealandia, and Antarctica be one continent. Since all three names are 4 syllables long, with the stress on the second, in English, perhaps it should be called Stralantarc.

<comment><USER13> Arclanstra?

</comment></comment></comment></comment><comment><USER14> Pretty crazy to me to think of continents as floating

<comment><USER15> Continents are made of light rock floating over heavy rocks. So they are floating, like ice cubes in a glass full of jelly. But continents are not floating over water.

In this case, the light rocks are no vey tick, so the thin layer of water that we call ocean can cover them. I like this image: [https://goo.gl/images/aqCBJL](https://goo.gl/images/aqCBJL)</comment></comment>


Heatmap of 1 million check-ins at Atlanta's Airport - <AUTHOR> http://blog.foursquare.com/2013/02/11/holy-cow-1000000-check-ins-congrats-atlanta_airport/ <comment><USER2> Umm, I hate airport security as much as the next guy, but isn't it a bad idea to make this data public?

<comment><USER3> Why?

<comment><USER2> Isn't it giving out information about exactly when and where crowds gather, in an area that doesn't require at least a basic security check?

<comment><USER3> It's not exactly top secret.

"People gather at gates, bars, and security checkpoints."</comment></comment></comment></comment>


Login to Disqus with Twitter, and Disqus can follow new people and update your profile - <AUTHOR> http://i.imgur.com/sqN7HP9.png?1

<comment><AUTHOR> Here is the response from disqus - bug w twitter:

[https://twitter.com/disqushelp/status/605526910010068992](https://twitter.com/disqushelp/status/605526910010068992) [https://twittercommunity.com/t/stuck-on-oauth- authenticate-a...](https://twittercommunity.com/t/stuck-on-oauth-authenticate- after-access-level-modification/1469)

</comment><comment><AUTHOR> You can repro signing out of Disqus and then trying to sign back in.

I found this twitter thread from Jan 2014 where Disqus said the update profile permissions request is not accurate, but I got it today:

[https://twitter.com/disqushelp/status/422796590533734401](https://twitter.com/disqushelp/status/422796590533734401)</comment>


Hacker News: why no target="_blank" on post links? - <AUTHOR>

I understand some people may hate it, but on a news aggregator website, it should be expected. Is this a page view issue? <comment><USER2> It would be really irritating for many people; that behavior is best left to the user and the browser (most mice have middle-click which opens a link in a new tab, and - on my laptop, at least - tapping with two fingers opens a link in a new tab. Browsers can also be configured to open off-site links in new tabs).

<comment><AUTHOR> I just find it irritating when I forget to ctrl-click and having to refresh the HN page. Posted stories are not necessarily in same order. Maybe it's just me :/

<comment><USER3> That's just you. I perhaps find it equally irritating when I click a link and it goes to a new tab.

If I wanted it to go to a new tab, I'd have CTRL+clicked.

*Edit -- "That's just you" is definitely too harsh a statement, as I'm sure there are a ton of people that agree with you -- That said, I don't see a compelling reason to futz around with default browser behavior unnecessarily, and I'd wager that doing so is considered bad UI.

</comment></comment></comment><comment><USER4> Should be expected according to who? Reddit doesn't have it, CNN doesn't, slashdot doesn't. Web IRCs do, but for good reason, it automatically logs the person out of IRC.

If I wanted to open the website in a new tab, I press Control+Click.

<comment><AUTHOR> I was under the impression Reddit had it, but it's actually a preference a user may select.

</comment></comment><comment><USER5> This is easy to do w/ javascript adding the target attribute to anchors after document.ready.

A user can independently do this w/ a greasemonkey script or its analog for their browser.

Definitely not expected behavior from this user.

</comment><comment><USER6> This bookmarklet could help ppl looking to open links in a new tab

<http://bit.ly/ozwymv>

<comment><USER7> We tend to avoid using URL shorteners, here on HN.

I didn't check where your link leads, but here's an unshortened bookmarklet resource that can help the original poster:

<https://www.squarefree.com/bookmarklets/>

<comment><USER6> Sorry about that. I was not aware of that rule. Here is the unshortened link [http://notebook.jearvondharrie.com/2011/08/25/bookmarklet- fo...](http://notebook.jearvondharrie.com/2011/08/25/bookmarklet-for-opening- links-in-a-new-tab/)</comment></comment></comment>


North Korea fires second ballistic missile over Japan - <AUTHOR> http://www.bbc.com/news/world-asia-41275614 <comment><USER2> It's been said before, but it bears repeating that this behavior by NK is rational in its own way. Seeing what has happened to other small tyrannical nations who gave up their nuclear ambitions, NK would be crazy to act otherwise. Does anyone know of an example like Saddam Hussein, Kadafi, etc who gave up such ambitions and lived peaceably thereafter? (That's not a rhetorical question.)</comment>


Groupon serves up Breadcrumb POS - <AUTHOR> https://blog.groupon.com/cities/groupon-serves-up-breadcrumb/

<comment><AUTHOR> I'm interested to see if this is a move to increase revenue at Groupon.</comment>


They didn't buy the DLC: feature that could've prevented 737 crashes was option - <AUTHOR> https://arstechnica.com/information-technology/2019/03/boeing-sold-safety-feature-that-could-have-prevented-737-max-crashes-as-an-option/ <comment><USER2> If you're not trained on the MCAS feature, an "AOA disagree" indicator is going to tell you what? That stall warning may not work reliably?

There's more going on here than just MCAS and angle of attack sensors though. From the KNKT preliminary report:

 _At 23:31:09 UTC, the LNI610 PIC advised the ARR controller that the altitude of the aircraft could not be determined due to all aircraft instruments indicating different altitudes._

Crash happens 45s later. (More correctly, the FDR stops recording.)

From the same report, four separate maintenance records containing one or more defects in: indicated airspeed, indicated altitude, speed trim fail, mach trim fail. These were reported by multiple crew, repaired by maintenance per manufacturer procedure, and tested, and error state cleared.

The stick shaker was active for all of Lion Air 34 and most of 610. That is not an airworthy aircraft, and the preliminary report states this.

Obviously something does not pass the smell test. Either there's a very serious problem with the prescribed repair and verification procedure. Or there's a very serious crime if the claimed repairs and/or verification are inauthentic. Both seem incredible to me.

Common to airspeed and altimeter is the static system.

But as a pilot what really gets my attention, and not in a good way, is that apparently automation is confused, detecting multiple current sensor disagreements and flags, and yet it's still taking action.

<comment><USER3> Right? Especially given (per media so grain of salt maybe?) the Mcas system was essentially engaged by a single sensor - implying a single sensor capable of overriding all other systems, even the ones with actual redundancy.

I still don't understand why altitude wasn't considered - surely stalling speed close to the ground would result in less damage than pitching towards the ground an accelerating?

And how much can those sensors possibly cost anyway? (Real question - I have no sense if we're talking a few dollars, a few thousand, few million, or what)

</comment></comment><comment><USER4> This seems grossly overstated to me.

The optional warning they're talking about is just a light in a random section of the cockpit called "AOA disagree". That's it. It can't help the Lion Air crew, because the world wasn't aware that AoA was hooked up to a control surface through a new system called MCAS. And it's not in the central EICAS error display, so it's not where the pilots are _supposed_ to be looking for information to help them diagnose an emergency. And it doesn't explain anything about why it might be _super bad_ that there's an AoA disagreement.

So even if you know that MCAS exists and could malfunction, you'd have to also know that it uses AoA internally. Basically, the light only helps you if you already know both what MCAS is and how it works, and at that point you probably weren't going to be crashing anyway?

The correct information in the cockpit to use to help with the problem is what the Lion Air crew did the day before the crash: get a stall warning, see and hear that the trim wheels keep moving, notice that the yoke feels heavy, and move to the memory item for runaway trim.

<comment><USER3> I mean the real story should be "how much did a single light to say the flight computer was deliberately fighting you cost?"

It's an optional extra so I suspect that one led was being charged at an absurd rate, because it was actually necessary.

The flight crew the day before had to hunt through manuals as well, and I haven't seen any indication anywhere that suggested that the problem persisted for that entire flight - which could easily be the case if you tie a pilot overriding flight control system to a single sensor. Further I'd question a flight control system that pushes the nose down apparently without considering altitude

<comment><USER4> Hey, I don't mean to pick on you, and I'm not a pilot, but everything in this comment seems incorrect in one way or another:

> It's an optional extra so I suspect that one led was being charged at an > absurd rate

The optional extra is actually an AoA visual display, and the light just comes along for the ride with the display. It's letting you know that you can't rely on the AoA display. It's not trying to communicate danger or emergency. That's not its job. There's already a system called EICAS for the plane to communicate urgent errors to the pilots, and that's where pilots look.

> because it was actually necessary

It really really wasn't. That light should not be used by pilots to diagnose anything. We don't want pilots to have to know _how_ the airplane's internal systems were built. The MCAS system ultimately performs trim operations. We want pilots to notice trim aberrations, which have many possible causes (including purely mechanical ones!), and know how to disable the trim motor if the automatic trim is malfunctioning. If they can do that, they can solve many more problems than just MCAS. And if they can't do that, their plane will nosedive from many more causes than just MCAS.

> I haven't seen any indication anywhere that suggested that the problem > persisted for that entire flight

As I understand it, it didn't persist on the flight the day before because the third pilot correctly noticed that the trim was misbehaving and performed the STAB TRIM CUTOUT that disables the motor, as trained. If the motor hadn't been disabled, MCAS would have continued to use it to mistrim.

> I'd question a flight control system that pushes the nose down apparently > without considering altitude

Why? Wing stalls are _the most common_ cause of aviation fatalities. They usually happen during takeoff or landing, at less than 1000ft. If they happened at altitude they wouldn't be fatal because you have time to recover from them.

If one is building a system to try to prevent wing stalls -- and one should because it's the lowest hanging fruit for reducing the fatality rate of aviation -- that system should absolutely operate at low altitudes when you're in the critical period of a stall being effectively unrecoverable once a spin starts, because it takes a minimum of hundreds of feet to recover. That's the time when the system matters most.</comment></comment></comment>


Why it is so hard to stay focused these days—and what to do about it - <AUTHOR> http://online.wsj.com/article/SB124018463826033223.html?mod=googlenews_wsj

<comment><USER2> Rob May* wrote this three years ago about the same topic:

Is Concentration the New Competitive Advantage?: [http://www.businesspundit.com/is-concentration-the-new- compe...](http://www.businesspundit.com/is-concentration-the-new-competitive- advantage/)

He goes onto saying how reading every Digg post, or looking at every new Web 2.0 startup is basically a complete waist of time.

You feel like you're actually learning something, but in reality the info you're learning is "junk" knowledge (unless you're a VC looking for an investment opportunity - but by the time it hits TechCrunch or Digg, it's probably too late to invest anyway).

*Rob no longer writes for BusinessPundit.com. He's at CoconutHeadsets.com now.

<comment><USER3> Yeah, I had a similar thought thinking how Hacker News was distracting me from the work I should be focusing on.

<comment><USER4> I'm beginning to think the value of HN is to give you something to do _after_ you've sold your startup.

<comment><USER5> For me it's before and during. HN is a deadly weapon in the hands of a shrewd business opportunist with kickass hacking team/skills.

It has been an MBA for me.

<comment><USER6> What have you learned here that you didn't know already?

<comment><USER5> The transformation from a shrink-wrap industrial software developer to doing web-startups. It takes two different minds; previous projects were hard and very demanding, and they were sold via word of mouth and ads in trade publications. Web business is entirely different.

</comment></comment></comment></comment></comment></comment><comment><USER7> My recipe for efficient writing:

\- Put laptop in backpack

\- Go someplace where you can be "lonely in a crowd" (e.g. local coffee shop)

\- Log out of your Google home page, so all those applets won't claim your attention all the time

\- Don't even think of touching anything in the bookmarks

\- Keep the email client turned off

\- Turn cell phone off too if you must

\- Get a nice large latte (either regular or decaf)

\- Fire up the text editor

\- Let your mind take off

Voila, instant productivity. I get into the "flow" pretty quickly that way.

</comment><comment><USER8> _Mental attention, she notes, is selective. Like a flashlight beam, we aim our consciousness on but a thin slice of what surrounds us. At a party, for instance, we hear only one voice among many until another voice speaks our name and our attention suddenly shifts._

I find myself to be much the opposite. I have trouble focusing on on any one conversation, I'm too easily distracted. I can't hold a phone call or conversation while a TV is playing at similar volume. In a restaurant, I feel like I hear all conversations and the music, and I can't seem to shut them out. It's not that I'm _listening_ to all the conversations, but I _hear_ them, and it makes focusing on the conversation I'm trying to hold difficult.

With programming and reading, however, I do find that I can shut out background noise, and I suspect this is because it's a different kind of thinking than what distractions around would be causing.

I suspect that because the attention is given to a mode of thought (reading, programming), and that that mode is not competing with other forms of the same mode (I'm not trying to read two books simultaneously), that this enables someone (or maybe just me, I dunno) to shut off the other senses. While with listening and hearing multiple conversations, it's like trying to read and having random words getting thrown into the sentences you're reading.

<comment><USER9> I know what you mean - I have the same problem. For me, it's worst with television: I can't have a conversation with someone if there's a TV on in the same room. I'm not sure if this is the opposite to the flashlight simile, or just an example of an inability to direct it at will.

<comment><USER10> Well, television (particularly ad-supported television) _is_ actively trying over and over to grab your attention, so it's not terribly surprising. I have a hard time focusing when there's a tv in line-of-sight, too, and it gets worse when I haven't watched broadcast tv for a while.

I remember hearing somebody (Douglas Rushkoff, I think) suggest that ADD-like behaviors might be an adaptation to a childhood in which one is inundated with aggressive, flashy advertising. Adapting to reflexively ignoring things that are designed to steal your focus probably affects your brain in the long term, much like meditating regularly can.

<comment><USER11> If that's true, we should re-purpose ADD to stand for Advertisement Deluge Disorder.

</comment></comment></comment></comment><comment><USER12> The article mentions the concept of "flow." This concept is described in detail in the book "Flow: The Psychology of Optimal Experience" by Mihaly Csikszentmihalyi. I highly recommend this book!

[http://www.amazon.com/Flow-Psychology-Experience-Mihaly- Csik...](http://www.amazon.com/Flow-Psychology-Experience-Mihaly- Csikszentmihalyi/dp/0060920432)

</comment><comment><USER13> On a similar, yet somewhat unrelated note,I often catch my own mind working like a search engine. When there's something that I'm trying to recall, for instance the contents of an article I read a couple months ago, I know exactly where I can find the article and I remember whether I thought the article was good or bad, but I often times find that I don't remember a lot of the details of the article. In short, I remember the location, the subject, and the relevance of stuff, but I find it hard to remember specific contents.

</comment><comment> puzzle-out In my experience, there is no point doing anything unless you spend at least twenty minutes just getting into it first. This is how long it takes me to get into a 'concentration/focus' zone.

</comment><comment><USER14> Back when I first started programming, a peer highly recommended to me to take a martial art. It didn't matter which one - the only requirement was that it had to require discipline and focus. Training in a martial art is a wonderful way to induce "flow" - get distracted during a sparring session, and the consequences can "hurt" a bit more than just time wasted.

</comment><comment><USER15> I must admit I like having some time off too, away from all those distractions. But on the other hand, if I don't have my cellphone, emails, meetings, ... I often feel out of control because I don't know the status of issues.

I like to think there is a time for everything, and as said in the article, I think people with ADD sometimes just don't manage that time correctly. Of course I'm not saying ADD doesn't exist, but sometimes I do think it seems to be(come) a real buzzword for some people.

And it seems logical to me people tend to find it hard to be focused, we are living in a fast world, maybe sometimes too fast and demanding...

</comment><comment><USER16> Nice article, but like many things, this just touches the surface and adds little enlightment.

Being really good at many things, especially programming, requires _deep_ involvement. This is the polar opposite of "posing".

It's easy to pose and talk about eyeballs or algorithms or third normal form. But tell me what data is in column 4, which programs change it under which conditions, and what that effects. That takes _deep understanding_. Which takes focus.

If it were easy, everyone would be doing it.

</comment><comment><USER17> The Richard Wiseman color-changing card trick

<http://www.youtube.com/watch?v=voAntzB7EwE>

is a good example of selective attention.

</comment><comment><USER18> tl;dr

<comment><USER19> Hmm, I better scroll down to make sure no one else posted this... What font color is that? -8?!? Oh thank god...

<comment><USER18> :)

Contrived efforts to keep the conversation serious had made people zealous with their down buttons.</comment></comment></comment>


Why I Don't Think The iPhone Will Sell Very Well - <AUTHOR> http://mattmaroon.com/?p=189 <comment><USER2> This is a similar article to the ones written when the original iPod was announced. Everyone said "who's crazy enough to spend $400 for an MP3 player?", etc. I remember buying the original 5 gig one when it came out, and at the time, none of my (admittedly non-technical) friends bothered to understand what was so great about it to justify the money spent. They all have iPods now (all bought models in the $300-400 range), along with everyone else.

Frankly, these arguments about high price rarely hold up if the product is good. Back when DVD players first appeared on the market, people said the same thing ("Oh, I will never buy that because it's too expensive"). Well, early adopters buy these things, followed by more people, which means prices go down, which means more people buy, etc...

<comment><AUTHOR> Well I have no doubt that down the line the iPhone will become cheaper and more popular. Especially if they release on more networks. I'm just saying this one won't hit ten million.

<comment><USER3> I wouldn't back down so much if I were you. I think its entirely possible the iphone wont sell quickly enough for prices to drop, at least in its current incarnation. For all the hype about the iPod's interface these days, I remember the thing that got it going was huge storage and slim design. It was and still is great at playing and storing music.

And while I'm ranting about it, I think the iPhone is a missed opportunity to put in a decent camera. I think about a 5 megapixel camera with flash is mostly good enough as a snap camera for people these days, and people would have justified the extra cost to merge those two devices.

</comment></comment></comment><comment><USER4> \-- From data I've found, it appears to be over 27% for Christmas alone

\-- Some analysts expect Apple to have shipped 37 million iPods worldwide by the year-end, with about 10 million sold in the key Christmas quarter.

27% of iPod yearly sales occuring in the Christmas _quarter_. Interesting interpretation of data there :)

I have to give you props for actually taking the effort to write a blog, but I really think you should work on polishing things a bit more if you're trying to turn it into an asset (if you're just venting steam then please ignore). People will read this kind of stuff when they Google your name, after all:

\-- I love Apple fanboys. They never stop drinking Apple's Kool-Aid.

\-- Maybe, if that 499 is in pesos. If that's USD dollars and you think it's underpriced then yes, you are the moron.

\-- It'll sell a couple million units to the many people who have wet dreams about Steve Jobs, and that will be about it.

<comment><USER5> I wouldn't be worried about somebody googling my name and finding that. If they google your name and have a big problem with that, you probably don't want to work for them anyway. I suspect that the author is good enough that if he does end up seeking employment (which he isn't at the moment, being in a startup), he won't fail to find it because of that.

<comment><USER4> I didn't mean potential employers, just in general. I often do it when I hear a name, one way or another, and the impression that is left lasts.

</comment></comment></comment><comment><USER6> You may benefit from not using "I" in the title of your posts.

For a good read, try "How to Win Friends and Influence People" as Paul Graham has suggested. Make sure you get a 1930's copy though.</comment>


Founder Liquidity - <AUTHOR> http://www.avc.com/a_vc/2009/09/founder-liquidity.html <comment><USER2> Apparently PG agreed, 4 years ago:

<http://www.paulgraham.com/vcsqueeze.html>

It's nice to see some VCs adopting this stance -- I think it will indeed benefit all involved.

</comment><comment><USER3> whilst hard to debate till you're in the situation, I really agree with Ron Conway:

> all money in a start-up should remain in the company

You make your money when you exit, and not before.

</comment><comment><USER4> I couldn't agree more.</comment>


'Spacious' shutters all SF locations - <AUTHOR> https://hoodline.com/2019/07/co-working-startup-spacious-shutters-all-its-san-francisco-spaces <comment><USER2> I've never heard of spacious but it's something I would have totally used. It sounds like a great idea.</comment>


Show HN: Kickpoll - One click multiple choice E-mail poll - <AUTHOR> http://www.kickpoll.com

<comment><USER2> You should put a tweet button so people can share the website. I like how simple it is to use it.</comment>


Emacs Is My New Window Manager - <AUTHOR> http://www.howardism.org/Technical/Emacs/new-window-manager.html <comment><USER2> I'm always a little jealous when I see what people do with emacs. But I've never liked _using_ emacs, so I've resigned myself to a permanent, mild case of emacs envy.

I think you could get approximately his same functionality with a terminal (e.g urxvt) and tmux for the splitting. In fact I do essentially that at work on Windows, from a cygwin terminal and tmux. When it fits whatever workflow I'm doing from within cygwin, I'll launch the occasional Windows program from there; the rest of the corporate Outlook, IE etc is done normally from Windows.

At home on Linux I get my basic window splitting from my window manager, i3wm. If I need more terminal-ish splitting I'll run tmux in a urxvt.

... still jealous of emacs though.

<comment><USER3> The nice thing about Emacs is how much it's open to modification. There are compatibility modes to make it work like other editors (eg. "evil mode" to make it work more like Vi, "cua mode" to use "normal" key combos instead of having to learn Emacs's, etc.). There are often a bunch of alternative ways to do things, which have their own pros and cons, so if something seems frustrating, it pays to Google around a little to see if there's another way.

For example, running a terminal can be done with `term` (b/w) or `ansi-term` (colour), which provide a pretty standard xterm-like terminal emulator, completely under the control of whatever shell you use (eg. bash). This is useful for screen-manipulating programs like ncurses-based UIs, but is awkward to manipulate as text (a bit like the awkward copy/paste functionality in screen and tmux).

There's also `shell`, which runs a regular shell (like bash), but Emacs keeps control of the screen. This makes it useless for curses-based UIs, but great for text manipulation. For example, rather than running a pipeline over and over, tweaking the output options, we can often just dump everything to stdout then play around with it using the full power of Emacs (search/replace, regexes, keyboard macros, lisp functions, etc.).

There's also `eshell`, which is like shell mode but instead of a regular shell like bash, it uses a custom shell written in Emacs Lisp. Eshell's strength is its integration with Emacs; for example, Emacs Lisp functions can be run just like commands and Emacs buffers (including shells!) can be treated as files, etc. Eshell's weakness compared to shell is that it can't do pipes.

Personally, I use mixture of shell and eshell, plus some handy Lisp functions eg. for spawning new shells instead of always switching back to the same one. I avoid term and ansi-term in favour of a separate st terminal though, since they're pretty slow to update and their lack of decent text manipulation makes them feel uncomfortably "un-Emacsish".

<comment><USER4> M-x shell

is so useful for searching for text strings in outputs. (when grep alone will not do) like all things emacs/ terminal its a little awkward when trying to use the control keys (up arrow, ^r) and they get captured by emacs and not the shell.

<comment><USER5> M-p is the replacement for up arrow

<comment><USER6> Which I bind to f6 for convenience.

<comment><USER7> I've never understood claims that function keys are convenient, but I guess it's because I don't use them that much.

<comment><USER6> I agree that they are less convenient than the control key sequence, but better than the up arrow trick.

And it is a little worse on the kinesis, as the function keys are not the same quality as the rest of the keys.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Xmonad, Emacs, a terminal and Chrome pretty much do the same thing for me on Ubuntu desktop, possibly with a little less pain. Mostly mouse free operation, and easy resizing, swapping etc.

If you want to learn Emacs, just jump in head first. Try and use it like a native. Just for kicks I'm trying to do the same with vi by forcing myself to use it for anything vaguely sysadmin related.

<comment><USER9> Do you find yourself needing other little helpers (panel applets) or just run xmonad as is?

<comment><USER10> I run Xmonad with no status bars or anything and it works great. No clutter, just the windows I want to have there. I tried it out as an experiment on my laptop to get more screen real estate and then I carried it over to my next desktop install. I used to think that it was obvious that there were things I wanted to have visible all the time, but in reality there was really only one thing that could even qualify for that and that was a clock. When I realized I could do without that, even, I decided to skip status bars entirely.

The effect is what the article is seeking, without the pain of "Oh, but if I want to do this thing I can't". Free with workspaces that can be used for anything, meaning you don't have to deal with this "It opens up on top of everything else, making multitasking useless".

<comment><USER11> Specifically for the laptop use case, where do you find out how much battery life is left without a top panel?

<comment><USER10> There were a few 'solutions' that I was content with. You can have a workspace where you have these things (htop, other monitoring tools) and you can also have it in your vim/emacs status-line if you want to keep track of it while working.

I've never actually found that I need something _everywhere_ as much as I need to have it _somewhere_. Monitoring of things like these included.

Edit: I hesitate to call them real solutions, because obviously they are not for everyone. Some people need to see their CPU/RAM usage, network usage, clock and battery level at all times.

</comment></comment></comment></comment></comment><comment><USER12> No bad for a first try, but my goal is

cat /proc/cmdline initrd=/install/initrd.gz quiet init=/usr/bin/emacs

<comment><USER13> It has already been done, see [http://www.informatimago.com/linux/emacs-on- user-mode-linux....](http://www.informatimago.com/linux/emacs-on-user-mode- linux.html).

<comment><USER14> Interesting. Have you tried it?

<comment><USER13> Nope. I already tried to use emacs as my login shell but it was not very concluding… But clearly I would like to read some feedback of someone who tries.

</comment></comment></comment></comment><comment><USER15> Rather than using Emacs standalone, I like using ratpoison as the window manager. That way I can have a full screen Emacs and easily use other applications, too. Bonus points for not having to use the mouse for any of it.

<comment><USER16> Just out of curiosity, have you tried StumpWM? It was also created by Shawn Betts; the idea was essentially to rewrite ratpoison in lisp.

<comment><USER15> Yeah, I've used StumpWM. I don't really like Common Lisp so I don't use it anymore. I want to use guile-wm because it's written in Scheme, but it's not ready to be a daily driver.

</comment></comment></comment><comment><USER17> Thanks for writing that up - I am going to work on improving my Emacs setup on my Linux and OS X laptops. I find it much easier to write or code when my screen is not cluttered so full screen Emacs makes sense for me.

BTW, off topic, but re: having a personal environment while at work: I was fortunate to work at Google for a while in 2013 and I was uncomfortable having any personal setups on my work Linux box or laptop. My solution was simple: I just used my Android phone for personal email, checking Hacker News, etc. during my lunch break. I also have a SSH shell app on my phone so in an emergency I could have accessed my personal servers. Anyway, it seems odd to spend too much effort setting up a personal environment for use at work :-)

</comment><comment><USER18> One can get the same effect (full-screen emacs, no window decorations, Lisp) with stumpwm, a window manager written in Common Lisp. It's under active development, but it has not so far succumbed to creeping featuritis.

And one can then run Firefox instead of Chrome…

<comment><USER19> I thought stumpwm was dead until just now! Thanks for that.

Did they ever fix the system tray situation? When I last used it (several years ago) there was refusal by the devs to implement any sort of systray support and the third-party tools did not fill the gap, so I switched to i3.

<comment><USER18> I use stalonetray, but i"ll probably get rid of it soon.

Unfortunately, it's getting harder and harder to use GNOME with anything other than the GNOME WM.

I really should post my pure-stumpwm config on GitHub one of these days. It really is a nice desktop-environment replacement.

</comment></comment></comment><comment><USER20> My impression has been that emacs is a poor window manager. Granted, I am not incredibly skilled with emacs but even after some weeks I was still confused by the way emacs opened up new windows or changed existing windows when you've clicked on something (for instance, in dired or org-mode's agenda) I ended up to open everything in a new frame and left the management of these frames to awesomewm.

<comment><USER21> Emacs has many frustrating behaviors out of the box. Typo-> C-z->Crap->Grab Mouse->Expand Emacs Window->Scold self for not calling it a frame.

"Frames v. Windows" thing aside, every behavior in Emacs is configurable. It's just that the default assumes that the user fired up Dired to seriously use Dired. The default assumes that the user is using Emacs as Dired and so it becomes Dired with lots of dedicated resources. Orgmode is the same way. They don't constrain the amount of information they show in deference to other activities.

<comment><USER3> Yeah, I do find it annoying how many Emacs-based applications assume they're the only thing running.

I'm developing an application built on ProofGeneral, which itself is built inside Emacs. I ran the test suite one day and one function turned out to _quit Emacs_ if it encoutered an error! It took out all of my open shells, files, etc. (everything was saved, but I had to open them all again).

Now I'm running the tests in a dedicated Emacs process, launched via a command from eshell!

<comment><USER21> I know it's the internet and the standard assumpution is that what I wrote is a complaint.

But just to be clear, I don't find Emac's behavior annoying. I find it empowering. The idea that I might know what I am doing and be doing it seriously is refreshing. Even if I don't.

I get annoyed with the fact that I don't know Emacs better. But I love the fact that I can change that fact. I love that there's something else to learn about Emacs and that it's likely to be worth learning because it involves diving into an incredible piece of software as an object of design.

<comment><USER3> Well, I was mostly piling my own complaints on top of what you said. I also agree that Emacs is wonderful, and I agree that it's great how much power it gives us to reconfigure everything. However, that doesn't make it perfect. It's completely legitimate to point out flaws, whether they're actual bugs, subjective annoyances or hand-wavey project-wide things.

For example, I think that the Emacs community should embrace starter kits more when encouraging others to get started. Of course there's some truth to the "thrown in at the deep end" and "get to grips with the real, inner-workings" approaches, but at the same time the line has to be drawn somewhere; I doubt many would recommend new starters to compile Emacs themselves.

Still, Emacs is certainly not as scary as many make it out to be. This week I was helping out a Haskell programming class of CS students, where the instructions included setting up Emacs and installing haskell-mode (in Emacs 23, so they had to install the package manager first!). Out of a group of 60, only one struggled to do this, and it turned out to be because the sysadmin hadn't installed Emacs on the machine he was using ;)

<comment><USER21> The Emacs community embraces starter kits to the extent it makes sense to embrace starter kits. That extent is the extent to which people are willing to expend the energy to develop and maintain those configurations. My impression is that few people have the energy and will to make such projects a successful ongoing enterprise because in the end, pretending that Emacs is notepad.exe comes crashing down to the reality that Emacs is a power tool and even newbies are drawn to it for that reason. The bill for its learning curve comes through.

</comment></comment></comment></comment></comment></comment><comment><USER22> I used to be a big Emacs user, especially in my postgraduate days and would love to go back to the run everything in Emacs days but the world has changed. These days I only use it for editing text.

The many problem is that Emacs hasn't really kept up with the times. It's bloated in the wrong ways with too many default packages installed. Asynchronous processes and integrating WebKit to allow binary buffers (PDF, Images, SVG) would solve a lot of issues but I can't see it happening without a fork given the stubbornness of RMS. The recent spat over AST in gcc (which would again improve Emacs) doesn't increase the hope that things will change anytime soon.

And that the sad thing. The idea of Emacs, a scriptable, extensible environment is timeless and should not be lost to the past.

(BTW I would pay money for an Emacs fork and modernization project)

<comment><USER23>
      > (BTW I would pay money for an Emacs fork and modernization project)

Maybe go talk to Jamie [1] and see if he's willing to give it another go [2]?

[1] [https://www.dnalounge.com/](https://www.dnalounge.com/) [2] [http://en.wikipedia.org/wiki/XEmacs](http://en.wikipedia.org/wiki/XEmacs)

(for some background: [http://www.jwz.org/doc/lemacs.html](http://www.jwz.org/doc/lemacs.html)

Jamie Zawinski later went to work at Netscape where he was responsible for the Unix version, and named the Mozilla open-source project that you have heard of. He cashed out of Netscape and bought the DNA Lounge nightclub.

On his blog, he likes to point out software inanities with the caption "This is why I sell beer now")

<comment><USER22> He also sells me my pizza.

</comment></comment></comment><comment><USER24> StumpWM is strongly inspired by emacs. It uses a similar window handling style.

[https://stumpwm.github.io/](https://stumpwm.github.io/)

<comment><USER25> Also, it's written in Common Lisp, which - apart from giving it points of awesomeness - means you can easily plug Emacs into it via SLIME/SWANK.

</comment></comment><comment><USER26> The one thing that I have never been able to work to my liking is running a shell inside emacs. I've tried the different modes (term, ansi-term, eshell) and find that they are all deficient in different ways.

I think the main issue is that I have different operating models for emacs vs a terminal and when they get mashed together I subconsciously want a superset of functionality without any conflicts. So when there are key bindings that are different in term mode I get quite annoyed. Likewise, I have no problem with copy/paste in an xterm or in emacs, but put a terminal inside emacs and copy/paste frustrates me all day.

<comment><USER27> Have you tried term/ansi-term mode in Emacs 24? I thought it (and eshell) weren't that usable in 23 but just this past week I decided to give them another go in 24. It's a huge improvement, I went from a standalone iTerm/st and occasional shell mode to eshell and ansi-term for everything. So much better.

</comment></comment><comment><USER28> I basically have a variation on this set up but I use Vagrant on top of VirtualBox. Then I keep the Vagrantfile and ancillary files on github. So I can theoretically show up to a computer and be able to quickly recreate my environment. I customize my VMs for Python or Clojure development and have a nicely set up emacs as foundations for both. This set up is really useful for Python where different Pythons coming from different package managers (brew, conda) tend to clash on my regular (OS X) OS.

<comment><USER29> Are the files for this public, can I see your config?

<comment><USER30> Looking at his user info, it looks like this might be it:

[https://github.com/julienchastang/dotemacs/blob/master/setti...](https://github.com/julienchastang/dotemacs/blob/master/settings.org)

It looks like it's meant to be included directly as a config file, which seems like deep magic to me. :-)

<comment><USER28> @math0ne @gknoy

Sorry for answering late:

[https://github.com/julienchastang/dotemacs](https://github.com/julienchastang/dotemacs)

You'll need tangle/babel

      ➜  .emacs.d  cat init.el
      (package-initialize)
      (require 'cl)
      (require 'ob-tangle)
      (org-babel-load-file "~/git/dotemacs/settings.org")

[https://github.com/julienchastang/vagrant](https://github.com/julienchastang/vagrant) (still a work in progress)

<comment><USER29> Thanks man!

</comment></comment></comment></comment></comment><comment><USER31> Minor nitpick, but isn't that Firefox, not Chromium in the screenshot of the web browser overlaying emacs, right after mentioning that he uses Chromium instead of Firefox because it requires a "real" window manager?

Regardless though it's an interesting setup, I've always wanted to try a minimal window manager.

</comment><comment><USER32> This is awesome and has opened my eyes to features of emacs I didn't know about. But I still have use for tmux because it lets me attach to the same long-running session on a remote host from multiple clients. I'll probably just start having emacs be the only window open in my tmux session.

<comment><USER25> Check out emacs-server then ;).

<comment><USER32> Ok, _now_ I have no need for tmux anymore. Thanks!

<comment><USER33> I use emacs every day. You'll soon find emacs is a terrible xterm/gnome- term/iterm/whatever-term.

* The emacs terminal is very slow. Run a command that produces a few hundred lines of output and you need to wait 30 seconds for it to catch up. A dedicated terminal program displays the output several orders of magnitude faster.

* Emacs crashes or freezes from time to time forcing you to kill all your emacs terminals anyway. It isn't nearly as stable as tmux.

That said you can connect to a tmux session with an emacs terminal. That fixes the stability issue - even if emacs crashes your tmux session lives on. It doesn't handle resizing well, and it is still slow as molasses.

I do use emacs server. That plus emacsclient allows you to open files instantly, and your term mode and gui mode emacs can share buffers.

</comment></comment></comment></comment><comment><USER34> Interesting idea. I would just use something like DWM, a lightweight tiling window manager. You still get the simplicity but with a bit more flexibility. Most people will probably quickly hit a deal breaker with just using Emacs as a WM.

<comment><USER3> I agree. He's not really using Emacs as a WM, so much as using _no_ WM, and doing as much as possible within Emacs. Note that Emacs _can_ be used as a WM, with a little effort: [http://www.emacswiki.org/emacs/EmacsXWidgets](http://www.emacswiki.org/emacs/EmacsXWidgets)

Likewise, it wouldn't be "using Firefox as a WM" by just running Web apps in a fullscreen FF. You'd need something like PyroDesktop [http://web.archive.org/web/20080905102046/http://www.pyrodes...](http://web.archive.org/web/20080905102046/http://www.pyrodesktop.org/Main_Page)

I much prefer my current Xmonad setup to this "Emacs WM":

1) My windows are all fullscreen, whilst his are stuck at their app-specific defaults.

2) I can use multiple desktops (in practice, each one holds a different app, including 2 instances of Emacs)

3) I can show one desktop on my laptop screen and another on an external monitor (or occasionally a projector). I have no idea how his setup would cope with multiple screens.

4) I can have long-running external windows. He must close his before returning to Emacs. Whilst I could live without this, it would be a pain. Even if I only used each app temporarily, I'd have to wait for them to start up every time.

5) I can run slow Emacs applications in a separate instance. I read my mail with Gnus, which gives me four options:

5a) Run Gnus in my main Emacs instance, which will freeze every time updates are fetched.

5b) Start a separate Emacs instance for Gnus, which I must wait for as it fetches updates, since it is overlayed above my main Emacs instance.

5c) Start a separate Emacs instance for Gnus _in a terminal_ , which of course limits me to a character-based interface, and causes key conflicts between the outer and inner Emacs instances.

5d) Have a long-running GUI Emacs instance, fetching mail on another desktop, which doesn't interfere with my main Emacs and I can switch to instantly whenever I like.

</comment></comment><comment><USER35> The OP uses (set-frame-parameter nil 'fullscreen 'fullboth).

In contrast, I use (set-frame-parameter nil 'fullscreen 'maximized) leaving OS X's menu bar and Dock on the screen.

I do not know if Homebrew package `emacs` has been fixed because these years, I only ever install Homebrew package `emacs-mac` (a.k.a., Mitsuharu Emacs) but it used to be that one had to install Emacs.app via `brew install emacs-mac` instead of the conventional `brew install emacs` for (set-frame-parameter nil 'fullscreen 'maximized) to automatically and cleanly occupy every screen pixel except for the pixels needed for the menu bar and the Dock.

<comment><USER36> How does this handle multiple displays?

<comment><USER35> I cannot do a definitive test because I only ever use one monitor at a time, but since (set-frame-parameter nil 'fullscreen 'maximized) does not make use of the fullscreen mode introduced by Apple with Lion, it will almost certainly not suffer from the most-complained-about problem with multiple monitors on OS X.

In contrast, (set-frame-parameter nil 'fullscreen 'fullboth) does make use of Lion's fullscreen mode -- and it gets rid of the menu bar and the Dock, letting the Emacs frame occupy every screen pixel. But then at least on Lion and Mountain Lion (which is the extent of my experience with recent versions of OS X) multi-monitor support is hosed IIUC.

<comment><USER37> Full screen mode works great with multiple monitors on Mavericks. I vastly prefer it to traditional maximizing.

</comment></comment></comment></comment><comment><USER38> I do something similar when I'm taking notes in meetings. It's a nice clean interface.

I love your modeline, which is actually clear - any pointers to how to do it myself? I'm using Prelude (I know) which does its own weirdness.

<comment><USER39> It looks like he has his emacs config on github [0]. emacs-modeline-mode- line{,2}.org [1] are probably what you're looking for.

[0] - [https://github.com/howardabrams/dot- files/blob/master/emacs....](https://github.com/howardabrams/dot- files/blob/master/emacs.org)

[1] - Yes, he writes his configs in org-mode. This is the first time I've actually seen literate programming used and it's beautiful.

<comment><USER38> Great thanks, missed that. Be interesting to see the LP stuff.

</comment></comment></comment><comment><USER40> I'm a vim guy, but I've been wanting to try emacs for a long time.

Any tip for a convert like me? Is the "trick" just to make the jump and persist until it clicks? How do I still get my job done in the mean time?

<comment><USER41> After years of using vim I made the switch last Friday when I stumbled across this fellow's blog post while randomly trying to figure out more about evil mode: [http://juanjoalvarez.net/es/detail/2014/sep/19/vim- emacsevil...](http://juanjoalvarez.net/es/detail/2014/sep/19/vim-emacsevil- chaotic-migration-guide/)

It took all day Saturday to configure things so they mostly behaved the same as my vim environment, mixed with learning emacs specific stuff along the way. There's a few quirks I still need to work out, but the power to configure absolutely anything is worth the switch in my book. I have to admit, I wish I had made the switch sooner.

The biggest thing I desire right now, and maybe I just don't know what to look for, is a way to swap between full sets of buffers. i.e. Group A: handful of IRC windows, Group B: project 1's code buffers, Group C: project 2's code buffers, etc. Maybe someone has a tip?

<comment><USER42> I just hit the same issue, and I started using desktop-save-mode for that ([https://www.gnu.org/software/emacs/manual/html_node/emacs/Sa...](https://www.gnu.org/software/emacs/manual/html_node/emacs/Saving- Emacs-Sessions.html)). It may be a bit heavyweight for instant switching, depending on what you want. I found it among a list of possible solutions at [http://www.reddit.com/r/emacs/comments/1m73gs/how_do_you_man...](http://www.reddit.com/r/emacs/comments/1m73gs/how_do_you_manage_multiple_workspaces/) .

<comment><USER41> That is exactly what I was looking for. Thanks!

</comment></comment></comment></comment><comment><USER43> I would love to do something similar. I recently switched from Weechat to ERC, and started getting into eshell more heavily.

However, I must have a browser window open at all times. There is no way around this. So, unless another solution presents itself, I will continue using dwm with Emacs / Firefox.

</comment><comment><USER44> > Of course, I do not install personal software...

> My remedy is to install a virtualization system...

which is personal software.

<comment><USER45> He says that his work is virtualization systems, so the install of (e.g.) VirtualBox itself is not "personal software." It really comes down to whether or not you consider the guest OS image running in the virtualization system to be "installing personal software."

<comment><USER46> Most IP reassignments I've ever signed have included the clause "any IP developed with the company's resources belongs to the company".

This would include anything created in such a VM, unfortunately. So, if you're not worried about that, it's a great separation of concerns. If you are developing new IP, though, you would want to be very careful about using your work machine.

I'm even nervous about logging into a personal machine via SSH from my corporate laptop, if I'm honest. Might not be enough to legally take ownership, but its probably enough to draw you into a protracted legal battle.

<comment><USER45> It doesn't sound like he's "creating" anything of value in the VMs. He notes that he mostly uses it for org-mode. It's probably just him needing to access (from his work computer) to notes / agenda info that he would rather keep (e.g.) on his personal Dropbox.

You are right though that anything done using "company resources" may be fair game for a legal battle to determine ownership.

</comment></comment></comment></comment><comment><USER47> Can emacs soft-wrap at a set column size without doing so in the middle of a word? When I last tried to get into it I couldn't get it to do this, and that put me off my meal.

<comment><USER48> Yeah, if you set the buffer-local variable "word-wrap". As noted in the docs for that variable, you probably just want to use "visual-line-mode", as that sets it and also adjusts some navigation keybindings to account for the soft wrapping. Works pretty well, overall.

</comment></comment><comment><USER49> What is the best way to actually learn emacs? I'm a vim guy who is curious enough to switch but I'd rather just hack the introductory process and get to the fun bits.

<comment><USER50> The most interesting cultural observation thats not often talked about is bare emacs and bare vi are equivalent-ish, but all the "cool" stuff in emacs is in the addons.

If you just use bare emacs you'll think its pretty boring and not see any productivity gains.

If you use a pre-packaged set for emacs, you'll be utterly overwhelmed trying to learn a million things at once. There are no pre-pack sets with just systemic improvements.

Another cultural thing is there's addons for emacs that improve everything (like helm) and addons that provide one nifty feature (like magit) and addons that are affinity specific (like clojure-mode thats of interest to clojure coders but not likely other coders). So we call them all the same thing, addon or extension or whatever, but there's 3 classes of thing with that name that differ in how you interact with them and they interact with you.

So ... my advice is install your vanilla emacs, put in the stereotypical system wide addons maybe just helm, and then add one package at a time figuring out what they do.

Aggressive-indent rather forcefully indents your code as it sees fit, which some like, others hate. Maybe a good place to start?

So projectile and helm-projectile makes opening files in the same project simple. It understands your git repos and you can open any file in that repo and a lot of other repo related stuff.

And perspective lets to segregate multiple project buffers so however unwise it is, you can work on multiple separate real world projects at the same time.

And flycheck does on the fly highlighting of errors in your code.

And magit does git inside emacs sorta

rainbow-* does colorful syntax highlighting (or drives people nuts)

yasnippet adds tab completion (so "i" "f" "tab" give you a whole if-then stanza ready for editing, depending on your language)

Trying to add all that at once would drive you nuts, so one package at a time till you feel OK with it. I still don't entirely feel OK with magit, whatever.

There's also language specific packages although cider and clojure-mode will be quite useless unless you code clojure, etc.

<comment><USER25> I very much second this comment.

Learning Emacs is a very interactive process (much as Emacs itself). It's best to introduce new extensions one by one as you need them, and spending some time using them.

I consider myself a noob Emacs user (having been using it exclusively for the last 4+ years), and here's a trick I use if I feel overwhelmed/annoyed by some extension: I decide to spend 30-60 minutes (to the clock; personally I measure it in pomodoros) practicing the mode itself. Such focused learning gives wonderful results. For instance, I spent 30 minutes on learning multiple- cursors.el and now I can't imagine living without it. Or I was always confused by Paredit, but it took about one hour of practicing it to become proficient in it. Again, I now can't imagine working in Lisp without Paredit.

Discovering interesting modes can be a task in itself; I suggest browsing through at least Emacs Rocks short videos[0], they introduce many a handy utility.

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

<comment><USER50> @melpa_emacs twitter feed automatically lets you know packages that are under development. That doesn't mean they're any good LOL, but it does mean they're definitely not abandoned.

meta x package-list-packages or something like that and scroll thru 3000 or so packages. I used to do that with Debian in the 90s or so when there were only a couple thousand packages, to see whats new.

HELM input method addon for emacs is interesting. So you hit alt-x and type pac (spacebar) lis and it searches the command list for the regex _pac_ (logical AND) _lis_ and returns the set of scrollable results. Its why I don't remember if the command is packages-list-packages or elpa-list-package-list or whatever, no cognitive need anymore, you want a list of packages you type some of the word package, spacebar and some of the word list, and its right there, ready for up and down arrow and hit enter. And HELM is applied to pretty much everything in emacs, running commands, switching buffers, opening files, projectile addon stuff... pretty awesome. I think it took me about a month to completely break my decades old tab completion habit when opening files LOL.

Just scrollin about the emacswiki finds some interesting addons.

Finally if you install a pre-pack of 50 addons and init file, you'll be blown away, but they can be a nice map or todo list. I think that was how I discovered perspective addon, I'd seen it and shrugged shoulders, but everyone likes it in the lists of pre-packs so I gave it a try, and I really liked it after trying.

AFAIK there is no "emacs addon of the week" twitter feed or podcast or screencast. This would be an interesting microstartup for some bored new emacs user. "Lets play" screencast video series on youtube featuring exactly one emacs extension per episode sounds fun.

</comment></comment></comment></comment><comment><USER51> [http://www.sxemacs.org](http://www.sxemacs.org), an xemacs fork, works as a window manager. hasn't been updated in a while, though.

</comment><comment><USER52> Since the goal is a low VM footprint, rather than install a X on the VM, I'd rather use Emacs as my kernel init process and simply use my host web browser when needed.

</comment><comment><USER53> I was already doing this on arch but I wasn't aware of the fullscreen mode so I used matchbox as a simple fullscreen window manager.

</comment><comment><USER54> > I always grin when I read the change log in the release notes of any window > manager project. It begins by complaining that all other window managers are > bloated, and that this one will be small and efficient, [...] and soon the > project is just as big as the competition

I bet he doesn't grin thinking about how many things can Emacs do other than editing text. That said, I like people with peculiar workflows, they open up ideas and discussions.

p.s. xmonad + vim is the true way ;-)

<comment><USER25> Well, Emacs doesn't claim to be just a text editor. It's a living Lisp instance with text-editing utilities bolted on top of it.

</comment></comment><comment><USER55> I thought you were going to demonstrate x11-mode or something! Whew.

</comment><comment><USER56> The 80's are back, except Emacs fails short of being Genera.

<comment><USER18> Yeah, but it has the virtue of existing, unlike (sadly) Genera.

One of the reasons I like to use stumpwm (c.f. supra) is that I have an always-running Common Lisp process which I can connect to. I have some ideas about how to make it even cooler, but sadly I've not explored them yet.

</comment></comment><comment><USER57> Does anyone know what theme he's using?

<comment><USER58> He mentioned Tomorrow Night in one of his YouTube videos. Don't know about his windows status bars tho.

</comment></comment><comment><USER59> Does it handle multiple screens?

</comment><comment><USER60> everything but a good text editor... :P

</comment><comment><USER61> emacs is my os and almost everything!

</comment><comment><USER62> If only eshell was more usable. My favourite setup so far is i3 + emacs + xterm.

<comment><USER3> There's eshell, shell and term, each with tradeoffs (see on of my other comments). I have an external terminal running tmux and a bunch of curses programs (wicd-curses, alsamixer and cmus) but do everything else in shell mode or eshell mode.

To me, the killer feature of shell mode is the ability to manipulate the buffer contents like any other file. The killer feature of eshell is its built-in TRAMP support, for manipulating and opening remote files transparently. Eshell's lack of pipes makes shell mode my default though.

<comment><USER63> Does eshell lack pipes? I thought it had pipes and output redirection and lacked only input redirection.</comment></comment></comment>


An End To Unencrypted Digital Cable TV and the HTPC? - <AUTHOR> http://www.anandtech.com/weblog/showpost.aspx?i=637

<comment><USER2> The article fails to mention that:

a) cable companies will not be allowed to encrypt the local stations (Fox, ABC, etc)

b) Non-local expanded basic stations that are currently in unencrypted digital (Bravo, MTV, DSC etc) are at best 480p and usually 480i, so having to use an analog tuner from an STB doesn't result in any quality loss.

c) Many markets don't get the expanded basic stations in an unencrypted format already.

<comment><AUTHOR> Even if the cable companies can't encrypt the local stations, the stations themselves are free to set the 5C encryption flag on a program, which prohibits you from recording it.

<comment><USER3> Does it really? Or does it require some software on the recorder to say "Oh hey, this flag is set, I better not record it"... If it's the latter, then I can't really picture that standing in the way of anyone who really wants to record it</comment></comment></comment>


Tesla shares surge past $1k as Musk revs up the Semi - <AUTHOR> https://www.reuters.com/article/us-tesla-truck/tesla-shares-surge-past-1000-as-musk-revs-up-the-semi-idUSKBN23H1PEc <comment><USER2> The post's URL lead to 404.

Found this on Reuters page: [https://www.reuters.com/article/us-tesla- truck/tesla-shares-...](https://www.reuters.com/article/us-tesla-truck/tesla- shares-surge-past-1000-as-musk-revs-up-the-semi-idUSKBN23H1PE)

<comment><AUTHOR> Indeed, I must have messed something up (I submitted on mobile).

Unfortunately, I can neither edit the link, nor delete the submission.

</comment></comment><comment><AUTHOR> Incredible. Market cap as of right now seems to have surpassed that of Toyota, making Take the most valuable car maker in the world.</comment>


The rule of two - <AUTHOR> https://dendory.net/?b=53c84990

<comment><USER2> Not a link.</comment>


Sex Is Sex. But Money Is Money - <AUTHOR> https://medium.com/matter/sex-is-sex-but-money-is-money-e7c10091713f <comment><USER2> this blew my mind, amazing story

<comment><USER3> great reading

</comment></comment><comment><USER4> The titled really did say it all. I'm going to read this for sure.</comment>