Tour of F# - <AUTHOR> https://docs.microsoft.com/en-us/dotnet/articles/fsharp/tour <comment><USER2> One observation from watching Go and Rust gain popularity is that having an online code evaluation tool like [https://play.rust- lang.org/](https://play.rust-lang.org/) or [https://play.golang.org/](https://play.golang.org/) can do wonders for adoption. People can experiment in a sandbox without having to hop into a development environment, and peers have an easier time debugging by easily sharing and reproducing problems.

For anyone interested in trying out F# online, looks like Microsoft Research has such a tool: [http://www.tryfsharp.org/Create](http://www.tryfsharp.org/Create). Unfortunately looks like you have to create an account of some sort to share scripts, so these alternatives might be better:

[https://repl.it/languages/fsharp](https://repl.it/languages/fsharp)

[http://tryfs.net/](http://tryfs.net/)

<comment><USER3> A more recent Microsoft offering for trying F# (or Python, R) is:

[https://notebooks.azure.com](https://notebooks.azure.com)

Click on the Intro to F#. Or try the user contributed notebook:

[https://notebooks.azure.com/library/HorsesForCourses](https://notebooks.azure.com/library/HorsesForCourses)

[msft]

<comment><USER4> Literate Programming with Notebooks is where no other .net based language comes close to F#. I will spend more time on F# notebooks, this is great!

<comment><USER5> Check out Xamarin Workbooks* for the C# equivalent.

(*): [https://developer.xamarin.com/guides/cross- platform/workbook...](https://developer.xamarin.com/guides/cross- platform/workbooks/)

</comment></comment></comment></comment><comment><USER6> Author of the article here. Happy to see this up on HN!

The article is actually more of an annotated version of the F# Tutorial Script[0] which ships inside Visual Studio 2017 (also in other version of Visual Studio, but the Tutorial script is a bit different there).

You can get started with F# just about everywhere everywhere:

* Visual Studio[1]

* Visual Studio for Mac[2]

* Visual Studio Code (via Ionide plugins)[3]

* .NET Core and the .NET CLI (`dotnet new console -lang F#`)[4]

* Azure Notebooks (Jupyter in the browser via Azure) [5]

[0]: [https://github.com/Microsoft/visualfsharp/blob/master/vsinte...](https://github.com/Microsoft/visualfsharp/blob/master/vsintegration/ProjectTemplates/TutorialProject/Template/Tutorial.fsx)

[1]: [https://www.visualstudio.com/vs/visual- studio-2017-rc/](https://www.visualstudio.com/vs/visual-studio-2017-rc/)

[2]: [https://www.visualstudio.com/vs/visual-studio- mac/](https://www.visualstudio.com/vs/visual-studio-mac/)

[3]: [https://marketplace.visualstudio.com/items?itemName=Ionide.I...](https://marketplace.visualstudio.com/items?itemName=Ionide.Ionide- fsharp)

[4]: [https://dot.net/core](https://dot.net/core)

[5]: [https://notebooks.azure.com](https://notebooks.azure.com)

<comment><USER7> even iPad [http://continuous.codes](http://continuous.codes)

<comment><USER8> Big :+1: to continuous, the f#/c# ide for ipad, really slick

</comment></comment></comment><comment><USER9> Just a reminder: Scott Wlaschin's book, F# for fun is a great free resource for people interested in F#. It's available here: [https://fsharpforfunandprofit.com/](https://fsharpforfunandprofit.com/)

If you have a short attention span, I recently started posting sped up screencasts on twitter that range between 1-2 minutes. [https://twitter.com/FSharpCasts](https://twitter.com/FSharpCasts)

If there's a feature you want to see, let me know. I take requests.

</comment><comment><USER10> For anybody curious/interested in F# or any programmer who is interested in safe (functional) programming, check this out:

[https://fsharpforfunandprofit.com/posts/is-your-language- unr...](https://fsharpforfunandprofit.com/posts/is-your-language- unreasonable/)

I might be slightly biased but in my opinion it's one of the best programming articles I have ever read.

<comment><USER11> "F# for fun and profit" is a great site. This was one of my main sources of information when I was making the switch from C# to F#.

<comment><USER12> Me too, and the whole site is available as a ebook: [https://www.gitbook.com/book/swlaschin/fsharpforfunandprofit...](https://www.gitbook.com/book/swlaschin/fsharpforfunandprofit/details)

</comment></comment></comment><comment><USER13> The problem I had going into this without a strong functional background is that often times to do practical things you're forced to work with .NET libraries - these .NET libraries are not nice functional libraries and don't encourage you to think functionally. Eventually I felt like everything I wrote was wrong and I just gave up on it.

<comment><USER14> Sounds like the same issue I had with Clojure and Scala. As soon as you touch anything Java or mutable, it's like WTF?

Come to the Elixir/Erlang camp; our functional turtles go all the way down! The only jarring thing is having to write to a mutable database. They even borrowed the |> operator! And it has great pattern matching of course.

<comment><USER12> Or use both: [https://www.youtube.com/embed/HLs6WgAmX64](https://www.youtube.com/embed/HLs6WgAmX64)

<comment><USER14> Holy crap. Interesting!

</comment></comment></comment></comment><comment><USER15> So I learned F# and C# in parallel. But more emphasis on F# than on C#, and so when I landed my first dev job on C# I was so incredibly baffled at the code base. I would toss my arms up in shock at the sight of reference types or classes being passed around and updated from external methods. The horror! How could somebody do this.

Anyway, now I have come to learn it is just another way of doing things but my C# programming style is heavily influenced by a more functional style. I never realised till I actually landed a job where I had to interact with more standard OOP principles.

I wish there was a way I could do more F# at my work.

<comment><USER11> I learned C# (and OOP in general) first, and then made the switch to F# (and FP in general). F# does a great job combining the two paradigms, IMHO, and is a pleasure to work with. I hope I never have to go back to C# (although they keep adding new FP features to it in every release, so it's not as bad as it used to be).

</comment></comment><comment><USER16> These is also FAKE (F# Make), a DSL for build tasks ([https://fsharp.github.io/FAKE/](https://fsharp.github.io/FAKE/)). Similar to CAKE ([http://cakebuild.net/](http://cakebuild.net/)), which uses C#.

</comment><comment><USER17> I know it's already been mentioned, but I just wanted to endorse [https://fsharpforfunandprofit.com/](https://fsharpforfunandprofit.com/) again - you could not ask for a better teacher than Scott Wlaschin if you want to learn F#.

<comment><USER18> It's a great resource for F#. If you also want to get really strong in functional programming fundamentals I highly recommend taking Prof. Dan Grossman's free online course [https://www.coursera.org/learn/programming- languages/](https://www.coursera.org/learn/programming-languages/) \--he's a great teacher and the subject matter is great for all levels of experience.

</comment></comment><comment><USER19> So much like OCaml... but I like the ability to annotate units! That's very cool.

<comment><USER20> Unit annotation is F#'s secret killer feature.

I did a small video game in F# using unit annotation and was shocked at the number of bugs that unit annotation picks up at compile time.

If you work with a lot of unit conversions (pixels, inches, whatever), I highly recommend giving F# a shot on a small project.

Unit annotation + access to the .NET ecosystem has made this language a personal favorite for any project heavy with numbers.

<comment><USER21> How was your experience with F# and game development? I like F#'s syntax so much more than C#(plus some stuff like pattern matching are so nice). However I feel like FP isn't effective for gamedev.

<comment><USER19> > However I feel like FP isn't effective for gamedev.

Oddly, in my limited experience, it is very effective.

I can't say it's the right pattern for every game but for the current roguelike I've been working on in my spare time it's been the best thing since sliced bread. I use the Reader and State Transformer monads in a pattern similar to the Elm Architecture that results in my engine being completely deterministic.

This allows me to dump all of the initial state of the game and all of the serialized inputs to it. I can then take that dump and step through that entire game session. This is great for debugging with friends and stuff: when they encounter an error or something they don't like they can just send me the dump file and I can replay their entire session. It's been pretty cool being able to do that.

Another thing I didn't understand at first was that immutability seemed like an egregious waste of resources. It might still be for some applications but it has much better performance characteristics than my intuition had led me to believe... because structural sharing. You can have this big blob of state that looks like it's being copied every where but it's not -- under the hood you're actually sharing 99% of the previous state and not copying anything.

It's not likely you're going to be writing a bleeding-edge rendering engine in a pure FP language on any current generation hardware platforms but you can get quite far with it.

<comment><USER22> Obligatory prog21 article on that topic:

"A Worst Case for Functional Programming?"

[http://prog21.dadgum.com/189.html](http://prog21.dadgum.com/189.html)

Previous HN discussion: [https://news.ycombinator.com/item?id=7043644](https://news.ycombinator.com/item?id=7043644)

</comment></comment></comment></comment></comment><comment><USER23> I hope this is not flagged as spam but I think another good way of learning F# is getting paid to write it :) see [https://news.ycombinator.com/item?id=13541679#up_13548091](https://news.ycombinator.com/item?id=13541679#up_13548091)

</comment><comment><USER12> A more concise cheat sheet: [http://dungpa.github.io/fsharp- cheatsheet/](http://dungpa.github.io/fsharp-cheatsheet/)

<comment><USER24> I don't know if there's such a thing (maybe I should write one myself, as I plan to learn F# :) ), but a cheat sheet that is a bit higher level would be useful.

Things like:

* how do I read a text file

* how do I write a text file

* how do I download a file using HTTP

* ...

<comment><USER25> Expert F# by Don Syme et. all is a fantastic book for precisely this purpose.

People are doing themselves a disservice if they scramble for a collection of cheat sheets since there are so good books available.

<comment><USER26> Can you go straight to this book or do you need to get a certain comfort level with f# first? I have the latest edition for F# 4 but haven't read it yet, plan to as part of my learning the language but haven't figured out order.

<comment><USER25> It's pretty good.

<comment><USER12> I certainly looked at the cheat sheets, played around a lot, read lots of online tutorials. Only once I had a basic understanding did I read Don's Expert F#, its great, but not for beginners.

</comment></comment></comment></comment></comment></comment><comment><USER27> I wonder, what are the pluses of F# that missing in more mature and widely adopted OCaml? Why to create a clone of good language? With porting opam to Windows platform [1], along with improving the Unicode support [2] in it I'd say it has a bigger potential in this field.

[1] [https://github.com/ocaml/opam/issues/2191](https://github.com/ocaml/opam/issues/2191)

[2] [https://github.com/ocaml/ocaml/pull/153](https://github.com/ocaml/ocaml/pull/153)

<comment><USER28> Pluses include mulithreaded concurrency and access to .NET libraries (including interop to/from your employer's proprietary C# code).

</comment></comment><comment><USER29> What's the quick start for using F# on the Mac? Can I get a good native development environment? Am I better off running a Windows VM to get better tooling?

<comment><USER6> There are multiple ways to use F# on the Mac. I use both Visual Studio Code with Ionide and Visual Studio for Mac.

VSCode plugin: [https://marketplace.visualstudio.com/items?itemName=Ionide.I...](https://marketplace.visualstudio.com/items?itemName=Ionide.Ionide- fsharp)

VS for mac: [https://www.visualstudio.com/vs/visual-studio- mac/](https://www.visualstudio.com/vs/visual-studio-mac/)

There is a guide for VSCode + Ionide here: [https://docs.microsoft.com/en- us/dotnet/articles/fsharp/tuto...](https://docs.microsoft.com/en- us/dotnet/articles/fsharp/tutorials/getting-started/getting-started-vscode)

<comment><USER30> What's the difference between VSCode and Visual Studio for Mac, for developing F#? What's the reason that you find yourself using both? I thought it would be preferable to just have one IDE.

<comment><USER6> VS for Mac is a full-on IDE, is significantly larger, and comes with lots of stuff to build a variety of apps.

VSCode is a text editor that, combined with the Ionide plugins, gives you a great lightweight IDE-like experience. It requires a bit more setup, but it's great if you prefer a more lightweight experience but still want a bunch of great features.

I use both depending on what I'm doing or what I feel like using. Typically I'll use VSCode for smaller projects or one-off F# scripts, but you can use it for just about anything. Ionide itself is actually built using Ionide, so that's a great example of using it for something bigger.

</comment></comment></comment></comment><comment><USER31> I know that it's not entierely related to the post, but is there a specific job board for F# jobs? I tried the language a bit and really liked it but it seems to be rarely used in a professional setting, which is a shame... I'd be interested to know where I could potentially find a job where I could use F#!

</comment><comment><USER32> > /// Conditionals use if/then/elid/elif/else.

The "elid" intrigued me and I tried to look it up but couldn't find anything. Is this just a typo?

<comment><USER6> That's a typo! Thanks, I'll get that fixed.

PR out here: [https://github.com/dotnet/docs/pull/1584](https://github.com/dotnet/docs/pull/1584)

</comment></comment><comment><USER33> Me while looking at the examples: Hmm F# looks like an easier version of Rust. I wonder how much of Rust was inspired by F# (since F# is older).

<comment><USER34> I don't know about any direct links, but they both have a common ancestor in Ocaml.

</comment></comment><comment><USER35> How difficult is it to get an F# kernel for Jupyter running on my Mac?

<comment><USER36> It became easier recently with droping a dependency on libgdiplus.

IIRC you just need to install mono, python, jupyter and ifsharp: [https://github.com/fsprojects/IfSharp](https://github.com/fsprojects/IfSharp)

All but last one should be on brew, for last one, you should be able to build it out of box with mono installed.

Don't hesitate to report issue on the repository if that fails.

</comment></comment><comment><USER37> I realize that .NET is F#'s biggest strength from the perspective that Microsoft probably holds of trying to push C# more functional, and trying to attract talent from R, Ocaml, Rust, Julia, Haskell, etc, but it also feels like its biggest weakness.

I'd love to see some sort of bootstrapped version that makes use of .NET Native or CoreRT or whatever they use today, and I'd REALLY like to see a strong Stdlib for F# that takes into account what functional programmers are used to.

I've been doing functional programming for several years, and I feel like a moron working with F# because I don't know half of these dumb .NET classes and some of the domain problems don't really leave me able to budget enough time to bootstrap my own solutions OR learn all the .NET stuff I need. Especially not when I can jump into several other languages and have a working prototype often in days or hours.

<comment><USER37> Edit: just before somebody starts whining about it, I ain't got no problems with NET on its own, but the barrier to proficiency in it from a functional universe is needlessly high, and if F# had a stronger core it would be something non NET programmers could pick up along the way rather than continuously bash their heads into while doing rather menial work.

I don't want to sound whiny either but it's such a punch in the gut when someone sees me struggling with basic FP stuff in F#, just because I guess I'm so proud of what I've learned about FP in other languages.

There's also some stuff that F# is missing, but it hasn't screwed me yet because I still haven't figured out enough about all the NET classes.

<comment><USER36> What is needed is new blood among F# users, not coming from C# background and not too snob about F# not having most advanced type system when compared to Haskell or other similar ML languages.

Then, effort on making functionally orientated base libraries (without relying on baking those things in FSharp.Core, but as set of small libraries) wrapping undelrying .NET APIs, taking inspiration from what is there in Haskell and other similar languages.

Most F# users today are fine relying on mostly .NET libraries + fresher F# libraries, but most projects will be done with a mix of paradigms (which is manageable in F#) which is not most appealing to people with significant FP background.

<comment><USER37> I agree mostly but I'd argue that most F# devs are coming from c# to begin with. I'd love to see some data suggesting otherwise, but I have a very strong feeling that its true. I also like multi paradigm, doesn't take away from F# at all, but it's something that doesn't mix well with developers not familiar with the NETverse

</comment></comment></comment></comment><comment><USER38> does anyone know what the state of C/F# on Linux is?

<comment><USER39> F# works fine for me on linux. what is it you're after?

<comment><USER38> well i mean there's all this stuff i vaguely see about .NET Core not being as good as the offering on windows but that eventually it will be? i don't know C# but i'm interested. i guess i'm just wondering if i should make the leap to starting to learn it even though i develop solely on linux.

<comment><USER40> F# works well on Mono, well enough to start learning/developing on until .NET Core gets to real production-grade status on Linux. (I've only toyed with .NET Core on Mac/Linux - it worked well enough for some simple stuff - but haven't tried to run any heavy apps on it yet.)</comment></comment></comment></comment>


Doug Engelbart's advice to a young software developer [video] - <AUTHOR> https://www.youtube.com/watch?v=62ig8ecXlrA <comment><USER2> I once was in Manhattan with Dr. Engelbart during the NIME conference (New Interfaces for Musical Expression). We were riding the subway together. I think he must've seen the poster (presentation) I was carrying and we struck up a conversation. It ranged over all kinds of topics: ergonomics, performance/audience interpretation, mechanical vs. gestural control, etc. I remember us being pretty sharply critical over each other's ideas, and just being skeptical of "good" solutions in general for the problems of modern musical control.

Of course, I didn't realize who he was at the time. I only had seen grainy old videos of him from decades ago. I'm really glad I didn't recognize his face at first. You see, he had always been a huge hero of mine, and a big motivation for me to go to grad school. For a brief moment, we got to argue over small technical details as if we were any old pair of jaded researchers. It was a totally normal exchange in any other context, and a highlight in hindsight.

</comment><comment><AUTHOR> I found this incredibly interesting stuff on Valerie Landau's youtube channel of Douglass Engelbart, her mentor. The videos have apparently been viewed only a few times, but they deserve much more attention, because the ideas presented are so important and relevant today!

She was a long time friend and collaborator with Doug Engelbart, and she was responsible for transferring the 1968 film of The Mother of All Demos from film to video so it could be preserved. She tracked him down and interviewed him, and after airing the interview, he asked her to help him articulate his vision to share with the world, which she's been working on since then.

[https://www.youtube.com/user/islandeweller/videos](https://www.youtube.com/user/islandeweller/videos)

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

Valerie Landau is an American designer, author and educator. She serves as Director of Assessment at Samuel Merritt University where she designed a software application that facilitates analysis and assessment of how effectively an organization is meeting their goals and objectives at course, program and institutional levels.

She has filed two patents along with her colleague and mentor Douglas Engelbart. Their most recent patent (filed April 2010) describes multitouch interface for chorded text entry. The new patent is inspired by Engelbart's early work developing the Chorded keyboard. They also released an application for the iPhone for chorded texting called "TipTapSpeech".

Engelbart and Landau also collaborated on writing the book "The Engelbart Hypothesis: Dialogs with Douglas Engelbart" along with co-author Eileen Clegg.

Landau is also a co-founder of Program for the Future, a non-profit organization that promotes Engelbart's vision of Collective Intelligence. She also is author of the seminal book on online education "Developing an Effective Online Course" and earned the "Online Pioneer" award.

Landau, also known for her work in multimedia at Round World Media and for her work mentoring students in a three-year project studying and applying the Engelbart Hypothesis. and created an online archive of Engelbart related events and videos.

She is an instructional and interaction designer and has worked on many award- winning projects, educational games and online courses.

In addition, she leads high level research delegations to Cuba.

Valerie Landau interviewed by Martin Wasserman

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

\----

Engelbart Explains Binary Text Input. Douglas Engelbart explains to co- inventor, Valerie Landau, and some blogger how binary can be used for text input.

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

Engelbart: Think about if you took each finger, and wrote a one on this one, a two on this one, a four on this one, and a sixteen on this one. And every combination would lead clear up to sixty three.

And so writing here like this the alphabet: A... B... C... D. E. F. G, H, I, JKLMNOPQRSTUVWXYZ!

\----

Engelbart Using HandWriter. Douglas Engelbart demonstrates early prototype of The HandWriter with Valerie Landau.

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

Q: So whose ideas was the glove?

Engelbart: I invented actually a separate keyset with the five keys, and her idea, you can make a glove to do that.

Q: And what's the advantage of using a five key chording system?

Engelbart: Well, when you're doing things with the mouse, you can be in parallel, doing things that take character input.

And then the system we had, it actually gave you commands with characters, too.

Like you had a D and a W, and it says, "you want to delete a word", and pick on which word, and click, it goes. M W would be move a word.

Click on this one, click on that one, that one could move over there. Replace character, replace word, transpose words.

All those things you could do with your left hand giving commands, and right hand doing it.

\----

iChord: Clips from video of Eric Matsuno & Valerie Landau showing their new iPhone app to Douglas Engelbart. To Douglas C Engelbart and Bill English, and to Karen Engelbart, Roberta English and Mary Coppernoll. Present in spirit but not in molecules were: Evan Schaffer and Dr. Robert Stephenson.

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

So we're going to be able to be configurable for whoever's hand. [...] Go ahead and give it a try: so swiping it down puts it in the history, and swiping it left takes the last ...

\----

Andres Types His Name

Andres writing his name on TipTap late on a Saturday night. I arrived home after a party and found him typing on TipTapSpeech.

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

\----

This final silent video is chock full of photos and memories of Douglass Engelbart's friends and family, drawings, whiteboards, posters and brainstorming sessions!

Memories with Douglas Engelbart: Photos from my work with Douglas Engelbart creating a Educational Networked Improvement Community Engelbart and working with Eileen Clegg on the writing of the book the Engelbart Hypothesis: Diaglogs with Douglas Engelbart.

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

\----

<comment><USER3> This is indeed all really interesting but it looks like you've posted a video from a blog post about this and then dumped the blog post in a bunch of HN thread comments instead of an actual blog post.

<comment><AUTHOR> I'll write a blog post about it soon, but I was hoping to benefit from other people's comments and links from discussing it here first. (You could accuse me of "crowd sourcing" my blog post, but I'd like to think of it as applying collective intelligence! ;) )

"The key thing about all the world's big problems is that they have to be dealt with collectively. If we don't get collectively smarter, we're doomed." -Douglass Engelbart, Intelligence in the Internet Age, New York Times, 9/19/05

[https://collectiveiq.wordpress.com/2015/12/03/great-doug- eng...](https://collectiveiq.wordpress.com/2015/12/03/great-doug-engelbart- quotes/)

Or as the great philosopher Linda Richman said:

[https://www.youtube.com/watch?v=oiJkANps0Qw&feature=youtu.be...](https://www.youtube.com/watch?v=oiJkANps0Qw&feature=youtu.be&t=5m28s)

<comment><USER3> Sure but taking over the entire discussion thread still looks like an abuse of the site, however on-topic and well-intentioned. You can just post a link to the draft you want people to chime in on.

<comment><USER4> In general you have a point but Don's enthusiasm is an international resource. Let's not hold it against him.

One goes to the internet with the DonHopkins one has.

<comment><USER3> I'm not holding it against him. I enjoy reading this stuff. But if the purpose of the comments section is conversation, this is a completely bananas way to have a conversation.

<comment><AUTHOR> If you like bananas, you'll LOVE watching Baxter the Chimpanzee Erase the Voting Log: ;)

[https://medium.com/@donhopkins/dumbold-voting-machine-for- th...](https://medium.com/@donhopkins/dumbold-voting-machine-for-the- sims-1-3e76f394452c#01c2)

<comment><USER3> Although, since you're on the line, I have a question about your last post. In all the research and measurement that's gone into pie menus, have people looked into 'exploratory pointing' in pie menus? It's very common when looking through a linear menu with a mouse (many people also do it with text selection while reading) but it's super clunky and jittery in the actual pie menus I've seen in the wild.

<comment><AUTHOR> Great question and observation!

I'm not sure this is exactly what you're getting at, but it's related:

One of Ted Selker's students at MIT Media Lab came up with an idea of (normal linear) menus that "second guess" the user's favorite item, by measuring how much time they spend in each item, and guess their second favorite choice as the non-selected item they spent the most time pointing at.

I thought it was such an insidiously simple yet evil idea that I had to try implementing it with pie menus.

This video shows the Internet Explorer JavaScript ActiveX Behavior control running in Internet Explorer version 5. (Please excuse the ugly HTML and XML and XSLT!)

At 4:25 there's a demo of "Pie Menu Second Choice Guessing". The basic idea could be applied to any menus, but you're right that people tend to browse around menus by pointing at the items, and that definitely applies to pie menus.

But with linear menu, once you've browsed down to the bottom item, you've gone a long way in the same direction, so you're far away from the first item, and have to move back up to select it.

But with pie menus, you only go a little way in each direction, which cancels out and brings you back to where you started, and you stay near the center adjacent to all the items, so it's easy to change your mind and reselect any item without moving your mouse very far.

In other computer science words: Linear menus are O(n), while pie menus are O(1).

JavaScript Pie Menus: Pie menus for JavaScript on Internet Explorer version 5, configured in XML, rendered with dynamic HTML, by Don Hopkins.

[https://youtu.be/R5k4gJK-aWw?t=4m25s](https://youtu.be/R5k4gJK-aWw?t=4m25s)

>This was inspired by some research at MIT Media Labs. This is a demonstration of pie menus that try to guess what your second choice would be. So when I click up, it allows me to select my favorite color. Let me zoom in here. Well, I think it's blue... No, red! Ok. So it says: "I think your favorite color is red, but I guess your second favorite color is blue." And that's based on the fact that when I popped it up, even though I selected red, I spent the most time selecting blue. People tend to browse pie menus like this, looking at things, and when they find what they like, they click it, but then they'll pause to consider things. So I can click up the menu and go: Yellow? Oh, no. I'll just cancel it. And now it's guessing that my favorite color is yellow, even though I didn't select one. This is a simple elegant idea that I applied to pie menus, and it could be applied to a lot of other things, and used for e-commerce and art galleries or whatever.

If you're not living in 1999, you might prefer the jQuery pie menus that run in any browser. You could easily implement the "second choice" feature without modifying the code by using tracking callbacks, which are all documented here:

[http://www.donhopkins.com/mediawiki/index.php/JQuery_Pie_Men...](http://www.donhopkins.com/mediawiki/index.php/JQuery_Pie_Menus)

And here's the source code:

[https://github.com/SimHacker/jquery-pie](https://github.com/SimHacker/jquery- pie)

I don't know what other menu implementations give you callbacks for changing the selected item before you select one, as well as continuous pointer tracking (passing the current item, direction and distance), but pie menus definitely should.

Callbacks like that are very useful for researchers evaluating and comparing menu performance. And also for developers, who can provide nice application specific feedback in the menu or on the page.

Callbacks can use the distance as a parameter, for selecting between multiple items in the slice, or pulling out a continuous value like a "slider", changing the font size, selecting a hue and saturation with direction and distance (with an outer ring you can dip into to set the brightness), etc.

[https://cdn-images-1.medium.com/max/600/0*ngAv4gwWUcFCfQeJ.g...](https://cdn- images-1.medium.com/max/600/0*ngAv4gwWUcFCfQeJ.gif)

I hate jQuery as much as the next person, so I'm sorry I haven't implemented them in a trendier more modern framework yet, but I'm having a hard time deciding which one, and they all seem to either suck or not have a very big following. I'm open to suggestions!

It's even better for menus to display more information during browsing when you point at each item (including for disabled items, telling you WHY they're disabled and WHAT to do to enable them, instead of mysteriously ignoring you and not selecting), and hide (or shrink or make translucent) unselected items, so you don't have to put so much cluttered distracting information about every item on the screen at the same time.

These PyGTK SimCity pie menus show icons only (which correspond to the icons on the tool pallet), but show titles when you point at them, and a description of the menu when it pops up and nothing is selected, along the bottom of the menu.

SimCity Tools Static Pie Menu with "Build" Selected:

[https://cdn-images-1.medium.com/max/600/0*-x3kctcC1nbZeT9H.p...](https://cdn- images-1.medium.com/max/600/0*-x3kctcC1nbZeT9H.png)

SimCity Build Static Pie Menu with "Park" Selected:

[https://cdn-images-1.medium.com/max/600/0*I6jUSzJFSTeiJ_38.p...](https://cdn- images-1.medium.com/max/600/0*I6jUSzJFSTeiJ_38.png)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> The key takeaway for me: "Make sure that whatever you do is very modular. Make everything as module as possible. Because you know that some of your ideas are going to endure, and some are not. The problem is you don't know which one will, and which one won't. So you want to be able to separate the pieces so that those pieces can carry on and move forward."

</comment><comment><AUTHOR> Valerie Landau interviewed by Martin Wasserman

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

Q: Some people will have to change their normal method of thinking?

A: I think today, Aday really summed it up, that one of the things about collective intelligence means that we really have to start looking at ways that we can collectively share knowledge. And one of the problems with that is there are no good tools for sharing massive quantities of knowledge. So it's very hard to stay on top of things. So Doug's methodology creates maps and new ways of displaying data that we have not explored. So that we can really see large amounts of data, large amounts of knowledge, put them into structured arguments, so what he means by structure -- and maps, so that people can literally see what exists now and create very rapidly stragies -- both long term strategic planning, as well as tactical planning -- to address the issues that are confronting us.

Q: Does this assume that if people have the same information they'll all come to the same conclusions?

A: No, not at all. What it means that you will be able to look at data and make intelligent conclusions based on the best data we have currently. Because right now there is a lot of good data that is currently not available to the people who are making the decisions. He was saying that this was a dynamic knowledge repository and it was about allowing people to have an intelligence quotient. In other words, he saud that the infrastructure that you have to support a society determines the capability of that society. Just because we have all these capable tools doesn't necessarily mean that we'll behave intelligently, but it does allow us the chance to behave intelligently. So by improving our infrastructure, we're improving our intelligence QUOTIENT, not our actual intelligence. Just like the same people who are intelligent sometimes make bad choices, even though they're capable of making a better choice.

Q: Now you say that Doug was interested in solving the most urgent problems of humanity. What type of problems was he referring to?

A: He was definitely referring to things like Global Warming, issues around water, food, hunger, war, corruption was very high on Doug's list. He also followed very closely the work of the Millinenium Project, and so often times he would cite whatever they had cited. He would often cite those same issues.

Q: Do you think his vision was going to become a reality at some point?

A: I think yes, if I didn't I don't think I would have spend the last 30 years following it.

Q: What did you find most impressive about him as a person?

A: His humility. He was such a humble man, and his steadfastness of keeping his vision. Often times leaders like Doug, who many people call a prophet... In our society, we tend to think of the leaders as these sort of charismatic, ambitious people, and I think that Doug really broke that mold, in that he was a very humble, really shy person.

Q: Do you have any last minute comments or observations about him to finish up. Or a good anecdote?

A: I think -- I wanted to say one thing that Doug told me many years ago. And this is really for the software developers out there. Once, this was in the 90's. And I said, Doug, Doug, I'm just started to get involved with software development, and we have this really cool tool we're working on. Do you have any advice, about ... for a young software developer. He looked at me and said:

"Yes. Make sure that whatever you do is very modular. Make everything as module as possible. Because you know that some of your ideas are going to endure, and some are not. The problem is you don't know which one will, and which one won't. So you want to be able to separate the pieces so that those pieces can carry on and move forward."

</comment><comment><AUTHOR> I just ran across a new device called "Tap", a wearable tap glove that functions as both a bluetooth keyboard and mouse!

[https://www.tapwithus.com/](https://www.tapwithus.com/)

I've had any "hands on" experience with the Tap, but it looks very cool, like a modern version of Douglas Engelbart's and Valerie Landau's HandWriter glove!

I asked Valerie Landau about it (wondering if it was her company), but she hadn't heard of it before.

They have an iOS, Android and Unity3D SDK that appeared on github recently, so you can look at the code to see how it works:

[https://github.com/TapWithUs](https://github.com/TapWithUs)

Does this look legit? Has anybody tried it?

If it works as advertised, I'd love to develop TapPieMenus that you can use in VR, mobile, desktop computers, and everywhere else!

I'm excited about the possibility of creating easy to use, fast and reliable pie menus for Tap that users can fully customize, and use with one hand in the same way that Douglass Engelbart described you could do with two hands using a mouse and a chorded keyboard:

>"Well, when you're doing things with the mouse, you can be in parallel, doing things that take character input. And then the system we had, it actually gave you commands with characters, too. Like you had a D and a W, and it says, "you want to delete a word", and pick on which word, and click, it goes. M W would be move a word. Click on this one, click on that one, that one could move over there. Replace character, replace word, transpose words. All those things you could do with your left hand giving commands, and right hand doing it."

It would be cool to have some tactile feedback, so the tutorial could train you to type out letters by vibrating your fingers with a piezo buzzer or something, and maybe it could even secretly spell out silent invisible messages to you while you were wearing it! And you could feel a different silent finger "ring tone" depending on who was calling you, then tap to answer to discard the call, or stroke with a TapPieMenu to send a canned reply.

<comment><USER6> I love the weird, awkward social situations in the video at the tapwithus website, featuring people interacting with the tap keyboard secretly while they are talking to other people - magnificently strange.

The police _will_ arrest you for wearing brass knuckles if you are caught using this device.

This seems to be capturing finger movements that would otherwise map to a keyboard. I wonder if there is an even more optimal way to capture finger movements and map them to input, if the idea of mapping to keyboard finger movements is discarded.

<comment><USER7> Hey! The Tap is made with soft-touch TPU and it looks more like rings than brass knuckles. If an officer did ask to see it, they would be more interested than concerned.

<comment><AUTHOR> I'd be interested to know more about the background and history of your company and its founders, please?

And what's on the roadmap -- any plans for tactile feedback?

Are they available and shipping now? Do you ship to Europe?

Thanks for dropping by!

Did you know there used to be a magazine named Tap? And have you seen the movie "The President's Analyst?" ;) I bet the Woz would love to play around with one!

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

</comment></comment></comment></comment><comment><USER8> I met Dr. Engelbart at a conference in the mid-nineties. A totally fascinating individual with lots of great stories. Although our interaction was brief you couldn't help becoming convinced he was totally motivated by his sincere desire to make the world a better place.

What has often baffled me is that the poor man spent the last twenty five years of his life looking for funding with neither the government or Valley companies willing to support him. Hard to imagine what else he might have created.

<comment><USER9> As I understand it, he _did_ get a lot of funding for a while, but nothing much came of it. After that happens, further funding tends to dry up.

For futher reading, see The Network Revolution – confessions of a computer scientist (1982) by Jacques Vallée, chapter 5, " _Knowledge Workers of the World, link up!_ ": ([https://books.google.nl/books?id=6f8VqnZaPQwC&pg=PA97](https://books.google.nl/books?id=6f8VqnZaPQwC&pg=PA97))

It contains a partial and anonymized (all names have been changed) story about the initial decline of SRI, the company led by Engelbart to develop NLS. Reportedly, they all became entranced with Erhard Seminars Training.

</comment></comment><comment><AUTHOR> Valerie Landau recommends this web site about Douglass Engelbart's life and work, with chapters from her book:

The Engelbart Hypothesis: Dialogs with Douglas Engelbart

[https://engelbartbookdialogues.wordpress.com/](https://engelbartbookdialogues.wordpress.com/)

Valerie Landau and Eileen Clegg spent years in dialog with Douglas Engelbart and wrote a book distilling those dialogs. It is available as on ebook on Amazon

In addition, the book chapters are on this blog.

Today, we invite you to share your thoughts and memories of Douglas Engelbart who passed away last night.

Add your stories to the Remembrances: Doug Engelbart page

\----

The Engelbart Hypothesis: Dialogs with Douglas Engelbart

[https://www.amazon.com/The-Engelbart-Hypothesis-Dialogs- eboo...](https://www.amazon.com/The-Engelbart-Hypothesis-Dialogs- ebook/dp/B003MAK5E6/ref=sr_1_cc_1)

Centuries of silo thinking and win-or-die ideological and economic competition have finally generated a global crisis. Now either we collaborate on a global scale to solve the new global problems, or we won't survive. The technology is available to do so. Billions of intelligences are waiting to participate. How do we bring the two together? We are at a decision crossroads. And as this book vividly demonstrates, Doug Engelbart as been there all along, waiting for us with the answer.

Emmy-Award Winning Historian James Burke --Email to the authors

</comment><comment><USER10> _Modular_ : good advice. Look at a game like Doom, which survives and thrives to this day because of the open documented WAD format.

Another example is Unity. Despite some of its own shortcomings, the developers made a very open plugin system, and fantastic tools have been developed and integrated into the Unity IDE that fix some of these problems and give it huge amounts of power: ProBuilder (the in-IDE mesh editor) and TextMeshPro (the font dynamic texture system) being two great examples.

Or, think of iOS without the app store, or any OS without third party applications. What's the Lao Tsu saying? _Cut doors and windows for a room; It is the holes which make it useful_ , etc

<comment><USER11> And look at eclipse, modular as all hell and everyone hates it. ;)

<comment><AUTHOR> And of course there's X-Windows: The First Fully Modular Software Disaster!

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

[https://medium.com/@donhopkins/the-x-windows- disaster-128d39...](https://medium.com/@donhopkins/the-x-windows- disaster-128d398ebd47)

X-Windows will never die, they'll just keep trying to fix it! (Just like the cute little baby in Eraserhead.)

[https://www.youtube.com/watch?v=ZZ- kI4Qzj9U](https://www.youtube.com/watch?v=ZZ-kI4Qzj9U)

<comment><USER10> I learned to write X-Windows UI code ages ago, and the boilerplate required to do simple things is what got to me

</comment></comment></comment></comment><comment><USER12> There seems to be some controversy over the book that's mentioned in the video (Engelbart Hypothesis)

[http://www.dougengelbart.org/library/books- unauthorized.html](http://www.dougengelbart.org/library/books- unauthorized.html)

"This book is unauthorized. Douglas Engelbart was not an author on this book. Eileen Clegg and Valerie Landau were the sole authors of this book. Listing Doug Engelbart as lead author was one of many problems with this book"

</comment><comment><AUTHOR> Douglas C. Engelbart: A Profile of His Work and Vision: Past, Present and Future.

Prepared by Logitech, October 2005.

[https://www.logitech.com/lang/pdf/Engelbart_Backgrounder.pdf](https://www.logitech.com/lang/pdf/Engelbart_Backgrounder.pdf)

</comment><comment><USER13> I've put a bunch of the videos mentioned here into a Highlight list: [https://highlight.app/stajbakhsh/doug- engelbart](https://highlight.app/stajbakhsh/doug-engelbart)

Feel free to add more to it.

</comment><comment><AUTHOR> Augmenting Human Intellect. A Conceptual Framework by Doug Engelbart.

[http://www.1962paper.org/](http://www.1962paper.org/)

In 1962 Doug Engelbart published what may be the most important paper in computer history and in human augmentation.

This is where he laid out his concept of interactive computing and which would lead to him and his team to invent the mouse, word processing, email, and most of what we today consider personal computing. We still have far to go to live up to the dreams and ideas presented here:

Read Augmenting Human Intellect

[http://www.1962paper.org/web.html](http://www.1962paper.org/web.html)

This presentation of the paper hosted and presented by The Liquid Information Company, makers of richly interactive text, inspired by and in dialog with Doug Engelbart whom we were honoured to make a webomentary on as well: Invisible Revolution, The Doug Engelbart Documentary.

You should also see the 1968 Demo this paper resulted in:

[https://www.youtube.com/watch?v=yJDv- zdhzMY](https://www.youtube.com/watch?v=yJDv-zdhzMY)

</comment><comment><USER14> It's a shame that the Computer History Museum never finished its NLS restoration project [1] just because the copyright holder could not be nailed down.

[1] [http://www.softwarepreservation.org/projects/nlsproject](http://www.softwarepreservation.org/projects/nlsproject)

</comment><comment><AUTHOR> The Mother of All Demos, presented by Douglas Engelbart (1968)

[https://www.youtube.com/watch?v=yJDv- zdhzMY](https://www.youtube.com/watch?v=yJDv-zdhzMY)

The Mother of All Demos

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

"The Mother of All Demos" is a name retroactively applied to a landmark computer demonstration, given at the Association for Computing Machinery / Institute of Electrical and Electronics Engineers (ACM/IEEE)—Computer Society's Fall Joint Computer Conference in San Francisco, which was presented by Douglas Engelbart on 9 December, 1968.

The live demonstration featured the introduction of a complete computer hardware and software system called the oN-Line System or, more commonly, NLS. The 90-minute presentation essentially demonstrated almost all the fundamental elements of modern personal computing: windows, hypertext, graphics, efficient navigation and command input, video conferencing, the computer mouse, word processing, dynamic file linking, revision control, and a collaborative real- time editor (collaborative work). Engelbart's presentation was the first to publicly demonstrate all of these elements in a single system. The demonstration was highly influential and spawned similar projects at Xerox PARC in the early 1970s. The underlying technologies influenced both the Apple Macintosh and Microsoft Windows graphical user interface operating systems in the 1980s and 1990s.</comment>


Price of Lax Gun Laws - <AUTHOR> http://www.nytimes.com/2008/12/23/opinion/23tue2.html?_r=1 <comment><USER2> I'd be really skeptical of this without knowing what they controlled for. States with strong gun laws tend to be more urban, with higher incomes. Income correlates with crime, and particularly homicide rates. So without seeing their controls, we don't know whether this is a case of

1.) strong gun control laws causing reduced crime

2.) higher income causing urbanization, strong gun control laws, and reduced crime

3.) higher education levels causing higher income and reduced crime along with a more liberal political bias and stronger gun control laws</comment>


7.7 magnitude earthquake recorded between Cuba and Jamaica - <AUTHOR> https://www.ctvnews.ca/mobile/world/7-7-magnitude-earthquake-recorded-between-cuba-and-jamaica-1.4787121 <comment><USER2> Didn't feel it in Kendall (Miami), but coworkers downtown felt it.</comment>


The Star Trek stardate for a better Unix timestamp - <AUTHOR> http://cubicspot.blogspot.com/2017/06/the-star-trek-stardate-for-better-unix.html <comment><USER2> Already provided in Tcl: [http://wiki.tcl.tk/9832](http://wiki.tcl.tk/9832)</comment>


Laptops with 128GB of RAM are here - <AUTHOR> https://www.theverge.com/circuitbreaker/2018/6/13/17458712/lenovo-thinkpad-p52-128gb-dell-workstation <comment><USER2> Apple, are you paying attention?

</comment><comment><USER3> What applications benefit the most from having this much RAM available?

<comment><USER2> Machine learning. Video editing. Large databases. Some scientific applications. Even high res photo editing / digital art can easily benefit from 32-64 GB once you get enough layers going. Some types of simulations.

Only somewhat snarkily: Any browser with more than a few web apps open, because developers don't believe limited resources exist any more. Electron apps.</comment></comment>


NASA headed towards giant asteroid that could make everyone a billionaire - <AUTHOR> https://www.foxnews.com/science/nasa-headed-towards-giant-golden-asteroid-that-could-make-everyone-on-earth-a-billionaire <comment><USER2> > _could make everyone a billionaire_

Hmmm... How does that work? It doesn't seem like it was covered in the article...

> _In total, it 's estimated that Psyche's various metals are worth a > gargantuan $10,000 quadrillion.

That means if we carried it back to Earth, it would destroy commodity prices and cause the world's economy – worth $75.5 trillion – to collapse._

Is it really too much to ask for a headline that describes the story rather than this outlandish nonsense?

Ahh, forgot it was one of the *ox networks.

<comment><USER3> Don't blame only fox. For example: " _The golden asteroid that could make everyone on Earth a billionaire_ " [https://www.rt.com/business/462703-golden- asteroid-everyone-...](https://www.rt.com/business/462703-golden-asteroid- everyone-billionaire/)

<comment><USER2> I hadn't taken the time to look for every instance of this story being brought up across the net. I was just making a comment on the original posters linked article.

Next time I'll be sure to research and list more outlets before posting. Plenty of blame to go around!

<comment><USER3> I just noticed because I posted a similar comment in [https://news.ycombinator.com/item?id=20284363](https://news.ycombinator.com/item?id=20284363) and I just saw a similar title in a major newspaper here in Argentina. Many newspaper just cut&paste whatever news reach the redaction with whatever stupid title they get. Just another: [https://www.thesun.co.uk/tech/9378480/giant-golden- asteroid-...](https://www.thesun.co.uk/tech/9378480/giant-golden-asteroid- psyche-61-billionaire-nasa-2022/)

Most newspaper blame [https://oilprice.com/Energy/Energy-General/The-Golden- Astero...](https://oilprice.com/Energy/Energy-General/The-Golden-Asteroid- Worth-700-Quintillion.html) as the original source.</comment></comment></comment></comment>


Facebook use 'makes people feel worse about themselves' - <AUTHOR> http://www.bbc.co.uk/news/technology-23709009 <comment><USER2> 82 participants. 3 participants did not complete. 1 person excluded as inconsistent > 4SD.

Study comes down to: Participants were text-messaged 5 times per day between 10am and midnight over 14-days.

""" Each text-message contained a link to an online survey, which asked participants to answer five questions using a slider scale: (1) How do you feel right now? (very positive [0] to very negative [100]; M = 37.47, SD = 25.88); (2) How worried are you right now? (not at all [0] to a lot [100]; M = 44.04, SD = 30.42); (3) How lonely do you feel right now? (not at all [0] to a lot [100]; M = 27.61, SD = 26.13); (4) How much have you used Facebook since the last time we asked? (not at all [0] to a lot [100]; M = 33.90, SD = 30.48); (5) How much have you interacted with other people "directly" since the last time we asked? (not at all [0]to a lot [100]; M = 64.26, SD = 31.11) """

So we have a shaky self-reported study with low (and relatively homogeneous) sample size where it is fairly clear what the researchers are after, spun into an article with link bait title about how Facebook makes you sad. This is news now.

<comment><USER3> Also, every participant was an undergrad at a single university - not that that's an uncommon thing for psych studies!

<comment><USER4> in almost every lower division psychology class i took, i remember they forced us to participate in experiments as part of our grade. and not just one or two, either. i remember it was a huge pain in the ass.

one of the many reasons i graduated university with a C average.

</comment></comment></comment><comment><USER5> I can relate to this study --- even though I am not a young adult like the subjects of this study.

I stopped using Facebook a few months ago because I couldn't handle how it made me feel. I am bootstrapping a start-up ,working insane hours and depriving my family of the comforts/luxuries that I could have afforded when I had a corporate job. I am really happy that my friends are spending their summer vacation at resorts/beaches etc.; I feel horrible that my kids as stuck at home and they can't have the kind of stuff my friends' buy their kids and it is all my fault. I am not jealous -- I feel guilty and facebook updates from my dearest friends exacerbates my guilt.

So I stopped using Facebook temporarily -- I will be back on it when I can buy stuff. m

<comment><USER6> Going on Facebook, I see how everyone's social life is better than mine.

Going on Hacker News, I see how everyone's startup is doing better than my failed attempt.

Going on Hackaday, I see how everyone's working on cooler projects than mine.

The only place I feel good about myself is at work.

<comment><USER7> Everyone publishes the awesome shit they do. Nobody publishes constantly things they suck at, things they failed at, things they won't attain.

<comment><USER8> Exactly. Don't compare your insides to other people's outsides.

<comment><USER9> Wow, love that line. Source?

<comment><USER8> I think I first heard it in the movie 28 Days with Sandra Bullock, but I believe it was already a popular saying in AA and other types of self help and therapy.

</comment></comment></comment></comment></comment></comment><comment> T-hawk The underlying cause of Facebook feeling depressing is that the corpus of Facebook posts you see are not drawn from a random population of moments of your friends' lives. There's an enormous sampling bias created by the sources self-selecting for interesting bits of activity. For every post you see from someone at a hot concert, there's ten other friends who didn't post about their mundane day at work or lazy weekend.

If you have 52 friends who each go on vacation for one week out of the year, then every week Facebook will be showing you _somebody 's_ awesome vacation updates. This does not mean that you're missing out or living less life for not being on vacation that particular week.

It's natural to compare our moods and experiences with others. But the self- selected nature of Facebook posts means you'll always be losing that comparison, since you see the highlights and outlying data points in relation to your own average. Once you consciously understand this and correct your mood for it, Facebook becomes a lot less of a downer.

</comment><comment><USER10> I just read the Method section of this study and it seems really slanted to produce a correlation.

It asks 5 questions daily, 4 were about how well the participant felt and the last one was a direct question asking how long the user was on Facebook. It was also advertised as a "Facebook study" which is completely ridiculous.

A more condemning study would ask those first 4 questions then ask a handful of questions like "how long were you on twitter?" Or "how long did you watch TV" or "how long did you exercise today?".

And it shouldn't be advertised as a Facebook study.

</comment><comment><USER11> Facebook can be a source of happiness if you are proactively managing how you're using it. In my case, it's the way that friends who I've stayed out of touch with can contact me out of the blue and ask me out to drinks because they're in the city. I post occasionally to my feed, but don't really spend much time reading what others are posting except to trade jokes/insults...thus limiting the time in which it seems my life is less fun than others'.

But by default, Facebook's algorithm can only make you unhappy if you're a passive user. The edge algorithm means you see the posts most liked by other people...virtually guaranteeing that you'll be subjected to a stream of awesome-than-life posts. And if you're a young adult, you also find yourself in the situation in which you're pining after someone and constantly viewing their profiles and liking their posts.

Well, in that case, FB is really going to hit you hard as it will assume you want to see _lots_ of stories of your secret crush. And viewing what that person is doing in the time that you're not present around him/her creates nothing but anxiety.

Hell, you don't even have to be young to experience that.

</comment><comment><USER12> I'm currently in-between girlfriends, and even though it is silly, I admit that I feel a pang of jealousy when my friends post pictures on Facebook showing how happy they are with their significant others. So even though this article talks about a shaky self-reported study with a low sample size, I think they are _absolutely_ on to something. I can relate to the findings almost perfectly.

Facebook is one big game of "keeping up with the Jonases." Everyone's Facebook-facing life is fantastic. They buy houses, they have kids, they go on trips, they have fun adventures with their girlfriends, and so on.

What you don't see is the cockroach infestation at the new house they bought, or the sickness their kid is going through, or the fact that they had to max out their credit card for their trip, or that they got in a huge fight with their s/o right after posting pictures of hugs and kisses.

What this means is that browsing through Facebook is a great way to make yourself feel awful, because at any point in time you are not going to have one of the things you see on your news feed. At least I feel that way. The only reason I'm still on there is because my mom (who lives back home, in Turkey) _freaks out_ when she doesn't see regular updates from me. She thinks something must have happened.

<comment><USER13> _or that they got in a huge fight with their s /o right after posting pictures of hugs and kisses._

My wife's friend talks to her all the time about how her and her husband are constantly fighting and their marriage is falling apart. I hear this second hand but I'd never know that from all the lovey Facebook posts and pictures.

Another couple we are friends with is just 'perfect' and 'cute' on Facebook but the husband is just an ass to his wife sometimes (borderline verbal abuse) and has turned outings with them from fun to weird, awkward, and embarrassing. Meanwhile, the wife has become a secret stripper (husband knows and supports it) yet no one else knows.

I just assume that if someone is broadcasting that their husband or wife 'is the best ever' is covering for something.

<comment><USER14> The human species has evolved over eons to use complex social face-to-face interaction to see through the lies we naturally put on about our prowess as mates or allies. But Facebook is a whole 'nother thing; the world's worst sociopaths can look and sound perfectly normal on Facebook and no one has any way to tell the difference.

</comment></comment></comment><comment><USER15> Facebook in some ways is the ultimate HS or college party. Everyone has a front to present. So it's not surprising that it might make a lot of people feel bad because the reader is seeing everyone's outside and comparing it to their inside.

<comment><USER16> Very true. In HS or college, how much you'll enjoy it depends on your perspective and what you expect from the crowd as well. I never mingled with the shallow crowd (boy, that really sounds pompous; but it's true) because I knew I wouldn't get much out of that experience.

But like HS and college, Facebook has its own variety of groups you mingle with and those you avoid with a 10 foot pole.

That said, I avoid all of Facebook with a 10 foot pole except for the occasional cross post with my blog.

<comment><USER17> You totally missed out on toying with the shallow crowd. Shallow people are just that, shallow, so they're rather easy to calculate. Since they usually annoy me to no end, I'll sooner or later resort to the people equivalent of cow tipping. I act perfectly well adjusted, and for a moment, a glint of madness, just enough that they question things. Best case scenario is that they question their facilities of judgement and become less shallow, worst case is that they don't like me anymore because I bewilder them, but then my goal wasn't for them to like me.

It's like playing with cats and a laser pointer.

<comment><USER18> Wow, you're the fucking puppet master, I tip my fedora.

<comment><USER17> Could have gotten a little over the top. I was tired as hell when I wrote that.

Judge it as a mix of petty revenge and mindgames if you want, but it helps me to deal with incredibly superficial people just fine. In fact, after making them question their modus operandi, they tend to become a lot more agreeable. Of course I could go the regular route of either ignoring them, putting up with them or agressively lashing out at them, but at the end, that doesn't improve the situation for anyone. They'll go their merry ways, irritating everyone.

And before that transition happens, they'll strain very hard to put you in a box, and that's kinda cute.

Anyways, you're good at quips, I tip my propeller hat.

</comment></comment></comment></comment></comment><comment><USER19> I've thought about this before. Facebook, especially on Sunday or Monday morning (read: post weekend) is like a highlight reel of your friends' life. So if you had a particularly boring weekend and see nothing but pictures of people having a great time (in your absence, mind you), of course you'll feel bad.

</comment><comment><USER20> I quit using Facebook (deleted account) nearly two years ago, and I don't miss it at all...

Back when it was less commercial, and when you were expected to actually know the people on your "Friends List" in real life, it was a fun way to reconnect with old classmates, workmates, and Army buddies.

Now it's just another data mining advertising machine, and I can do quite well without it.

</comment><comment><USER21> I feel like most people don't consider that the content people post on Facebook is posted because the person wants everyone to see it... They wouldn't post about the absolutely mundane stuff that we all go though every day unless it's significant in someway. This is why it can be depressing, because you're looking at the best moments of hundreds of your friends' lives and you're just sitting there at the computer.

But when you post something interesting others feel the exact same way you did when they posted something interesting. Sort of a weird situation.

</comment><comment><USER22> I've found that oddly enough, reddit has a kind of honesty that facebook doesn't, which you wouldn't think, since the former is full of people you don't know, and the latter full of people you do.

<comment><USER23> The people you know have something to prove

<comment><USER22> It comes from the failed assumption that those you know are those you can be more honest with, since they want to see you succeed. Otherwise, why are you friends?

That ends up not being the case, since most people aren't very discerning with whom they accept friend requests from, and facebook encourages making as many connections as possible as well.

As a result, the only current way to be honest online is through anonymity. I'm not sure if Path App has made any headway in this regard.

</comment></comment></comment><comment><USER24> Articles about Facebook use 'make people feel better about feeling worse about Facebook users.' I have done a carefully controlled survey of 2 participants (self and wife). Method: dinner-table conversations. Peer review real soon now. (Will discuss it with neighbors and maybe sibling.)

</comment><comment><USER25> Seeing people on Facebook is a little bit like seeing everybody you know pass you by on the street, but because it happens so often you stopped saying hi.

</comment><comment><USER26> This doesn't particularly surprise me. Facebook is a self-advertising platform; people present a whitewashed and happier-than-reality version of themselves, and when you compare that to your own life (with its problems and warts and whatnot), you might conclude that your life is deficient.

It's the "keeping up with the Joneses" problem, except massively amplified.

</comment><comment><USER27> I was a heavy power user of Facebook for a couple of years, spending lots of time crafting witty status updates, getting into extensive arguments and discussions. It became like a game- I lived for the Likes and Shares and the red notification at the top of the screen.

I didn't realize how bad it was until I finally disengaged, deactivated my account. I've been off for about 2 months now and I feel like a different person. It feels vaguely like quitting smoking- you don't realize what "normal" is until you're away from it all.

The greatest thing is witnessing my thoughts enter a "longer wavelength" where I'm not so obsessed with being witty and clever all the time. I have more time and space to work on actual problems. It's great.

Hope this was useful or relevant to someone.

<comment><USER28> This resonates with me. Twitter was my compulsion, until I realised what an absolute time sink it had become, whilst equally becoming an increasingly inane and frustrating experience. I logged out and never went back (almost 2 years has passed I think) without the slightest inclination to return.

</comment></comment><comment><USER29> Facebook is like comparing everyone else's highlight reel against your behind the scenes footage.

</comment><comment><USER30> While I don't fault Facebook directly with this, when any gathering evolves to enabling gossiping, spying and showing off for those who are most affected by it, I'm not sure if on one hand we move ahead as a society, or if by using up such social attention, perhaps, as a civilization, we use up our energy and attention to care about such things and have the opportunity to spend as much energy on ourselves instead of spending it on others and putting ourselves in front of others for so much validation.

We're all human and need support and love, but we need to be able to give it to ourselves, and maybe a 'social' network will always be superficial to the point that it drives and feeds loneliness.

</comment><comment><USER31> > The more time they browsed the worse they felt.

Despite the shakey study wouldn't this result be expected? The more time you spend on Facebook the less time you spend actually socialising with real people? Facebook doesn't have voice chat. Text messaging is unforfilling.

Facebook has a great number of uses but one thing it doesn't do is allow you to see your friends, or actually speak to them. Using their chat box, if anything, emphasises the distance between you and the person you are speaking to.

Facebook doesn't have the tools to help with loneliness. Then it makes it worse by showing how awesome everyone else has it. My friends timeline is like a highlight reel of their best bits.

</comment><comment><USER32> This: "Why Facebook Makes Me Feel Like A Loser" [http://shkspr.mobi/blog/2012/12/why-facebook-makes-me- feel-l...](http://shkspr.mobi/blog/2012/12/why-facebook-makes-me-feel-like-a- loser/)

</comment><comment><USER33> They should have written a browser plugin.

They might not have gotten the results they were looking for, though.

<comment><USER34> Apart from the ethical (i.e. review boards) objections that would arise from that idea, that's actually a really good way to run a study.

When I still worked in academia, that was something I wanted to do. Amusingly enough, that research is probably easier to do as an independent researcher, especially if you don't plan on publishing in the peer-reviewed literature.

</comment></comment><comment><USER35> A worthwhile read in the same vein

[http://www.theatlantic.com/magazine/archive/2012/05/is- faceb...](http://www.theatlantic.com/magazine/archive/2012/05/is-facebook- making-us-lonely/308930/)

</comment><comment><USER36> Well, I left facebook because I say it made me feel worse about other people. But perhaps the truth is that indeed it made me feel worse about myself. Or are they really the same thing?

Either way, I left facebook.

</comment><comment><USER37> I have a similar, but largely converse problem:

Facebook makes me feel worse about my friends. i.e. their posts make them seem more lame than they are in real life.

I am currently much older than average person in the sample set.

</comment><comment><USER38> On lunch break I usually peruse vine and no longer login to facebook. I do use facebook as a login shortcut to some service.

</comment><comment><USER39> I found that Facebook use made me think worse things about other people.

</comment><comment><USER39> I found that Facebook use made me feel worse things about other people.

</comment><comment><USER40> makes me feel worse about them too

</comment><comment><USER41> As a lonely, single, childless, unpropertied, mediocre 35-year-old, any exposure to anybody else's life, excepting the homeless, makes me feel worse about myself.

<comment><USER42> You don't know what demons those people are fighting on their daily lives.

<comment><USER43> Ain't that the truth. Goes for anybody you see in public too. It's easy when you're down to think that everyone else has it rough. I find it's only when you ask questions or read bios of people that you get a sense of how connected we are in are daily struggle as humans.</comment></comment></comment>


Who makes the most reliable laptops? - <AUTHOR> http://news.cnet.com/8301-17938_105-10400447-1.html

<comment><USER2> So my next laptop should be manufactured by Asus, be a premium model, and to be safe I should replace it within 3 years.

31% failure rate for laptops after 3 years seems very high. I'm also surprised to find Lenovo well down the list for reliability, but I do forget they are no longer real ThinkPads though.</comment>


Entrepreneurship During a Slump - <AUTHOR> http://cacm.acm.org/magazines/2009/8/34489-entrepreneurship-during-a-slump/fulltext <comment><USER2> The best opportunities today lie with bootstrap startups.

Why?

If your startup has near-term capital intensive needs, you will find it hard to raise funds from VCs that are generally clamped down and, if you do get funded, you will take a big dilutive hit and get largely unfavorable terms.

For bootstraps, though, this is great time for positioning, either to take your company the distance once better times come or to get VC funding at a much later stage, when the dilutive hit is far less and the terms far better.

It _is_ a great time to start, as argued by the author. But mostly for a certain nimble and resourceful type of company best suited to take advantage of the disruptive elements in play.

The erstwhile VC gatekeepers no longer hold the sole set of keys.</comment>


I also need help finding a remote job - <AUTHOR>

So I saw the other posting and decided I should post something, as I also need help finding a remote job.
What I do:
I'm a *nix systems administrator (14 years of experience now) who worked for the past five years at sphere.com.  Been through an acquisition and all that.  I've lived for the past 4 years inside puppet's DSL automating services in puppet rather than in perl or python.
What I've done
Scaled sphere to almost 200 servers; saved us additional ops hires by implementing config management early (10 minutes from box delivery to operational); and saved something like $1.2M over 4 years in additional webserver costs by implementing varnish cache and tuning it to get an 82% hit rate.
What people say about me:
"Mike joined Sphere as one of its earliest employees, right before our first public beta launch. Mike has an impressive grasp of a wide range of technologies and keeps abreast of new developments. His constant drive to optimize kept Sphere running smoothly and cost-effectively during that first beta and throughout the many subsequent product launches and steep growth."
"Mike joined Sphere during the early startup days as one of the first full-time employees. He juggled activities spanning a wide spectrum of system administration tasks. Mike impressed early on with a high degree of dedication, essentially responding to emails or phone calls at almost any time of the day, while maintaining a can-do, problem-solving attitude. He made significant contributions to our success."
"I worked very closely with Mike at Sphere, designing our production infrastructure and stepping back to let him run with it. Despite our steep growth and continuous development strategy, Mike was always on top of our needs. His attention to detail, willingness to tackle any challenge, and aggressive pursuit of better solutions not only saved us many times, but laid a solid foundation for the company's success."
Why I need remote:
I live on a farm in rural Oregon, about an hour out of portland.  I'll commute there if I have to, but I would rather give the commute time to my family.
Why I'm looking now:
Sphere was just spun out of AOL over to a new place, and they had four SAs already, and I'm nearly done with the transition assistance.  I've been looking for remote gigs, but haven't had luck finding opportunities.  In the mean time, I've been doing a bit of outside extra consulting to keep the skills sharp.
I'll happily send a resume out if requested.
Thanks! <comment><USER2> I worked with Mike at Sphere through its buyout and subsequent spin-off. He's the most skilled sysadmin I've met and is one of the few people in the world who is completely honest in everything he does. Even though he knocks it, Mike's perl and python looked pretty good to me (but I'm just a php hack). On top of that, Mike's knowledge of the shell and the tools that come with it (grep, awk, sed, etc.) is truly a thing to behold. And because of who he is he's happy to help you learn it as well. So: smart, honest, hard working, excellent at what he does and generous with his knowledge. You don't find many sysadmins like that.

<comment><USER3> I too have worked with Mike - and can vouch for everything Troy says.

Mike is an excellent Dev Ops guy, capable of automating the heck out of your backend, while assuring that everything stays up even under the most trying circumstances.

He'll save you money and stress - if you need these skills you should certainly talk with him.</comment></comment>


The Node.js Event Loop Is a Damn Mess - <AUTHOR> http://sheldonkreger.com/the-nodejs-event-loop-is-a-damn-mess.html <comment><USER2> But his thesis is that promises may help but there are bigger issues with the event loop.

The key part of the article is the mini-rant about software engineering at the start. That's the setup for the rest of the article about how Node.js isn't perfect.

Part of software engineering is to understand the problem and decide what parts of it you can solve. Node.js has picked a set of things it's going to be great at. It's produced great results on that set.

The functions it's not great at is the part the article is about. So it's another rant on this is how Node.js isn't for you. I think we all get that. Node solves these problems and makes these other problems worse. If your needs are in the "other problems" side, Node isn't for you.

I'm not sure why this is such a big deal. "I need to move 3,000 lbs of stone on a daily basis". "Ok, the 'Vette isn't your best choice, care to look at some trucks?" These conversations happen for trucks and cars, they can happen for software.

It's called "requirements gathering and analysis".

</comment><comment><USER3> The author briefly touches on what the author doesn't like about the event loop. I think it helps to learn more about how the event loop works in JS:

[http://blog.carbonfive.com/2013/10/27/the-javascript- event-l...](http://blog.carbonfive.com/2013/10/27/the-javascript-event-loop- explained/)

A possibly helpful module which gives you multithreading options is threads a gogo:

[https://github.com/xk/node-threads-a-gogo](https://github.com/xk/node- threads-a-gogo)

</comment><comment><USER4> Promises are coming to core: [https://github.com/nodejs/node/pull/5020](https://github.com/nodejs/node/pull/5020)</comment>


Anyone could download Cambridge researchers' 4M user Facebook data set for years - <AUTHOR> https://techcrunch.com/2018/05/14/anyone-could-download-cambridge-researchers-4-million-user-facebook-dataset-for-years/ <comment><USER2> So is it available on the Internet like stolen password archive? Very curious what my data looks like in their hands.

</comment><comment><USER3> Wasn't this already known though? There was an undiscovered bug that allowed organizations access greater than they were supposed to have, I feel like it's beating a dead horse by this point.

<comment><USER4> 1\. It wasn't a bug, it was a feature. The API explicitly allowed apps access to friends' information. They weren't exploiting the API.

2\. The article describes the Cambridge Analytica database in particular being available "to verified researchers" but someone threw credentials onto GitHub where anyone could have borrowed them

<comment><USER5> Regarding 2: note that this is not the Cambridge Analytica data, rather similar data collected by researchers at Cambridge.

<comment><USER4> You're right. It's confusing, because the data that was supplied to CA was supplied by another Cambridge researcher.

</comment></comment></comment></comment><comment><USER6> Original link:

[https://www.newscientist.com/article/2168713-huge-new- facebo...](https://www.newscientist.com/article/2168713-huge-new-facebook- data-leak-exposed-intimate-details-of-3m-users/)

The actual problem here is not that Cambridge Analytica got the data. But that they created a site where this data was made readily available:

> Academics at the University of Cambridge distributed the data from the > personality quiz app myPersonality _to hundreds of researchers via a website > with insufficient security provisions, which led to it being left vulnerable > to access for four years. Gaining access illicitly was relatively easy._

<comment><USER7> This is not related to Cambridge Analytica. It's the University of Cambridge, in the UK.

>Though "Cambridge" is in the name, there's no real connection to Cambridge Analytica, just a very tenuous one through Aleksandr Kogan, which is explained below.</comment></comment>


Ask HN: So when is Google going to communicate about Python 3? - <AUTHOR>

Google - silent on Python 3. No Google SDKs or APIs support Python 3. You cannot program Google services with Python 3.
But despite being an ongoing topic, and a massive shift towards library support for Python 3, Google remains utterly silent on the topic.
The impression given is that internally Google uses Python 2 and therefore cannot grasp that anyone else would use Python 3 to access their services.
When will Google break its silence on a Python 3? <comment><USER2> It's open source, we could do some Python 2 to 3 sprints on [https://github.com/google/google-api-python- client](https://github.com/google/google-api-python-client).</comment>


Ask HN: Why does HN allow downvoting without explanation? - <AUTHOR>

<comment><USER2> Because downvote already says that the comment did not add anything of value to that specific discussion in context. Now you might say that what if someone disagrees with a comment and incorrectly downvotes ? In that case, an explanation will not be useful anyway because the person has already downvoted.

The purpose of downvote is to get rid of comments that are of no value and in my experience being on HN for a few years, it works pretty well for majority of the time. Yes, I am sure people downvote incorrectly but this is the internet. You cannot expect everyone to be on their best behavior. But again, most of the downvotes in HN seem appropriate to me at least.

</comment><comment><USER3> Because the last thing HN needs is more bickering about downvotes, and such 'explanations' would bring a deluge of it.

</comment><comment><USER4> How would an explanation help? Sladhdot had upvotes with a choice of descriptions (funny/etc.). HN in general is historically against making any improvements to the interface. You could dream of thousands of improvements to HN's UI, but the bar is the sky...</comment>


'Eye bath' to thank for quantum vision in birds - <AUTHOR> http://www.newscientist.com/article/dn22199-eye-bath-to-thank-for-quantum-vision-in-birds.html

<comment><USER2> Bad article - what the title calls an "eye bath" and the article calls a "cellular bath" is really a "bath of hyperfine nuclei with 1/2 spin" (aka molecules?) which the electrons are interacting with.

Basically, many bird eyeballs can entangle electron pairs for much longer than human scientists can, and we want to know how. We believe the electron entanglement gives these birds some kind of sensory data about the earth's magnetic field.

ArXiv link from bottom: <http://arxiv.org/abs/1208.2558v1></comment>


AMA with one of the pro bono defense attorneys for Richard Glossip - <AUTHOR> https://www.reddit.com/r/IAmA/comments/3nmz8w/i_am_don_knight_one_of_the_pro_bono_defense/ <comment><USER2> A bit of background on the Glossip case (from PG): [http://pg.posthaven.com/the-case-of-richard- glossip](http://pg.posthaven.com/the-case-of-richard-glossip)

If we can't stop the state from killing a person known to most likely be innocent, it makes me wonder what hope we have with genuinely complex issues such as gun violence.

<comment><USER3> > A 2014 study by the National Academy of Sciences found that at least 4% of > people sentenced to death are innocent.

That means that 96% are guilty. That's beyond a reasonable doubt and probably not far from the best accuracy you can expect from an inherently fuzzy system. The system is not the problem. The problem is people who are willing to still have the death penalty in a system where beyond a reasonable doubt means 1 in 20 people who are killed are innocent. That's not the system's fault. That's the public's value judgment.

<comment><USER4> The public's value judgments can change quite rapidly, and may well about this, once this information becomes widely distributed.

The visceral revulsion evoked by executing someone innocent must be nearly universal, despite disagreement about the death penalty itself.

<comment><USER5> People rationalize. Emily Bazelon writes about an Alabama case in which a man who plead guilty to a rape has been effectively exonerated by DNA evidence denied to him prior to taking his plea deal (in that state, prosecutors aren't required to furnish evidence prior to a plea agreement, but rather only before a trial). Despite eyewitness testimony from the victim (now deceased) who adamantly insists there was only a single assailant, the prosecutor insists that DNA or no DNA, the accused must have been present for the crime; the accused remains in prison.

So I guess I'm suggesting that words "innocent" or "guilty" suggest a clarity of judgement that most people don't actually have in practice. So the condemned didn't actually kill the victim. He must have been involved somehow!</comment></comment></comment></comment>