Ask HN: Scala usage? - <AUTHOR>

I'd be interested in hearing about experiences using Scala in production. I've been looking at statically typed languages lately, and although I don't have any Java experience Scala seems quite powerful, allowing a good mix of FP and OO concepts. Would it be a problem for me to try using Scala without knowing the surrounding Java ecosystem?
I know a little bit of Haskell, but in terms of industry usage it seems that Scala is more common. That being said, I don't hear about it much on HN; there seem to be more articles on Haskell, Ocaml, and Clojure than Scala.
I did find a discussion from last fall where there was a fork, and that has me concerned as the author of the fork seems to have a pretty reasonable critique of some problems in the language: https://news.ycombinator.com/item?id=8276565
In terms of my personal desire for learning this language, besides an expressive type system I'd like to have rich handling of errors (such as Maybe and Either) and a non-callback hell type of async, which it seems Scala (or at least some Scala libraries) offers. Thanks! <comment><USER2> I've been working at the third company where Scala is used in production. I live in a large city (Berlin), so it's not a big problem to find a job in it. Scala is more popular here than Haskell, Clojure etc. It's not that popular on HN in my opinion because it's not that sexy at the moment, has Java burden, not as clean as Haskell, not web dev focused.

Once you start writing code behind Scala tutorials, you will be exposed to Java ecosystem and JVM. Sure you don't need to learn JEE, but definitely things like Java concurrency, Maven, JDBC won't harm.

You can learn a lot from the language and infrastructure (FP, type system, Scalaz, actor-based concurrency, etc.), write critical production systems in it - there are lots of mature libraries and frameworks. There are nice new things coming - Akka Streams, Scala.js.

And don't expect Scala to become mainstream.

</comment><comment><USER3> It helps to know some Java, but it is not required. Using Scala, you will learn the necessary parts of the JVM, without having to deal with Java-the- language too much (which is kind of painful to use after Scala).

Plenty companies use Scala, including most financial institutions in London.

Given the adoption, it is unlikely that it will go away. It might not replace Java, but if you look at some metrics, Scala is the only language which is closing the gap between 2nd-tier languages and 1st-tier languages (Java, C, C++, PHP, C#, ...) and keeps moving up at a slow, but stable speed.

Scala seems to get quite some hate from both FP and OOP camps, due to unifying both paradigms fairly well: It's one of the most expressive FP languages as well as being one of the best OOP languages. It manages that without exposing a huge schism within the language.

This of course irks a lot of dogmatists on both sides.

Considering the improvement proposals: A ton of work is happening here, and I think most people agree on which parts need further improvements. But it's necessary to keep in mind that Scala stands for rock-solid releases (regressions are considered blocking bugs, any changes to binary compatibility fail the continuous integration builds, etc.).

Some changes need a lot of preparation to allow people a smooth migration while minimizing the churn; it's understandable that some people are unhappy with the speed and would like to move faster, increasing the burden on users of the language which want to upgrade.

I think the explanation why the forks are not seeing much activity is that the developers on the EPFL/Typesafe branch are just doing an awesome job. Nevertheless, they did a lot of work on the infrastructure so that forks can hook into many parts of the existing systems, making it easier for people to bootstrap their own Scala version. (Yes, they don't consider forking a bad thing, and especially the relationship between the Typelevel project and the Typesafe/EPFL developers is very good.)

TL;DR: Scala is rock-solid, has the best tooling and IDE support except maybe Java and C#, while constantly evaluating ways to further improve and simplify the language.

</comment><comment><USER4> Personally I don't care for Scala, at least from the viewpoint of a maintenance programmer.

I was working one time on a program that did what should have been trivial parallelism but there was some kind of race condition because we'd put the same answer in and get different answers.

The implementation used actors and the guys who wrote it couldn't tell me much about it (for instance, how it decides how many threads to use.) I spent a day reading docs and messing around with it and didn't get anywhere.

I woke up the next morning and rewrote it using the ExecutorService from Java in 15 min and it worked right the first time and worked ever since.

Personally my experience with Scala has improved my Java programming, but if you want a language that is "Java with fewer warts" you might be interested in C#. C# has real generic without type erasure, all kinds of support for async programming, and even had method handles long before Java did.

<comment><USER5> I would say that is because neither you nor the original authors had an idea of how things work (thread scheduling, etc).

Good for you if you rewrote it and it did solve your problems. Obviously it was not such a huge task, if it was, learning how to control those things would have been wiser.

In this specific case 'dispatchers' is what you were looking for ([http://doc.akka.io/docs/akka/snapshot/scala/dispatchers.html](http://doc.akka.io/docs/akka/snapshot/scala/dispatchers.html)) and it is quite flexible.

</comment></comment><comment><USER6> Scala errors will often be described in terms of Java libraries. So I would say it's not so much a matter of knowing the _language_ Java as accepting that you will be living in the larger Java toolchain and JVM ecosystem. The underlying layer leaks up through the abstraction.

As a point of comparison, Clojure has similar behavior, but my impression [and that is just one datapoint] is that Clojure handles the leaks a bit more thoughtfully.

The other language that lives in a space similar to that of Scala is F# with Mono/.NET offering cross platform support.

</comment><comment><USER7> For whatever it's worth, that scalac fork hasn't been updated in over 5 months.

From personal experience, it helps to know the Java ecosystem and the basic data structures but it won't hurt you too much if you don't. Read 'Programming in Scala' and you'll pick up on all the missing pieces pretty quickly.</comment>


South Park's creators on how the series has evolved - <AUTHOR> http://www.vanityfair.com/hollywood/2016/09/south-park-20th-anniversary-interview <comment><USER2> This kind of reminds me of something Louis CK said during this talk about George Carlin: [https://www.youtube.com/watch?v=R37zkizucPU](https://www.youtube.com/watch?v=R37zkizucPU)

He talks about how he got good at standup after 15 years of doing the same thing. He threw away all his material (material he'd been working on for 15 years) and just started trying different things. Then he started throwing away his material every year and creating new material. He noticed that he got better and better by doing this.

This also reminded me of another anecdote I'd heard somewhere where you have a pottery class with 20 students.

The class was split: 10 students would make a new sculpture every day while the other 10 would have to produce only 1 sculpture for the class (which of course would represent all the extra planning and execution that went into the solo sculpture). At the end of the quarter, the 10 people who made something new every day and then threw it away were far better at sculpting, while everyone in the other group made something kind of shitty and spent a lot of time doing it.

So maybe it's not "lack of planning" quite so much as willingness to kill your darlings, again and again.

<comment><USER3> This is probably true for going from novice to mediocre in many things, and there might be some skills where you can become great by constantly starting again.

But in software development, the most valuable skills you learn are not those you pick up when throwing a quick CRUD app together, but those you learn when debugging, refactoring and optimising legacy code.

I see too many junior devs get frustrated with something, throw it away, only to rebuild it with very similar problems because they didn't really understand the root cause in the first place.

<comment><USER4> There is a difference between writing broken code many times while never learning, and writing broken code once learning why it was broken then starting over and writing good code.

If you are saying you can (and should) fix code but cannot fix, for example, a joke. I disagree.

Only once you know what the problem is can you decide if it makes more sense to start over.

<comment><USER3> I have no idea whether you can fix a joke. I'm not very funny.

<comment><USER5> I disagree.

</comment></comment></comment></comment></comment><comment><USER6> If you enjoy South Park and you haven't seen "6 Days to Air" you really need to. I had no idea that the entirety of the episode was created within a week.

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

One of the keys for South Park is that it can quickly address really current topics because of its production schedule.

<comment><USER7> It's also why so many late episodes seem half baked unfortunately

<comment><USER8> And yet, when it comes to cartoons that have been on the air for multiple decades, they almost always create something more entertaining with a production schedule of six days than The Simpsons can create with a production schedule of six months.

<comment><USER7> Yeah I still love the show, and even half baked South Park has a lot of laughs and meat to chew on. It's just a shame that a lot of the time it feels like potential was squandered or the episodes resolution is completely out of nowhere.

</comment></comment></comment></comment><comment><USER9> My first exposure to Southpark was before it was even a show.

A video file (below) was circulating on my brother's network at college. It is still strange to me to have witnessed the birth of such a huge hit.

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

<comment><USER10> This is even older than the first one I saw which was "Jesus vs. Santa Claus", in 1997

<comment><USER11> I was unaware of this too until the other night when I looked it up. Apparently the first one was made as an entry into a student film festival. Then a producer saw it and asked them to make another as a gag gift for a friend. That was the birth of the Jesus vs. Santa episode. In the original, the character that looks like Cartman is referred to as "Kenny". He "dies" just like Kenny always did in later episodes.

</comment></comment></comment><comment><USER12> Answer: Plan nothing, and simply be really good at it.

There is nothing there that someone else can learn from. Some people simply have a talent at doing certain things.

<comment><USER13> Similarly, Ricky Gervais on how to have a career in comedy: "Fuck around til you're 39 then make the most successful British sitcom of all time."

<comment><USER14> I have 5 years to go then!

</comment></comment></comment><comment><USER15> Its shocking how much South Park affected my life. No other show that long lasting I watched all episodes of and because the focus of the chaacters shifts from the children to the adults it also stays relevant with me as i get older.

</comment><comment><USER16> If you haven't watched Season 19 (which includes the serial saga with P.C. Principal mentioned in the article) I'd highly recommend it. It really embodies South Park's unique ability to be simultaneously mature and immature. And its ability to be hilariously relevant after all these years while delivering thoughtful social commentary.

I watched plenty of South Park when it came out, but hadn't watched it in many many years. I checked out Season 19 after I saw it mentioned as one of the best South Park seasons yet--and I have to agree. Most seasons have a few brilliant episodes and many average ones. Season 19 is great throughout--its foray into serialization means more thorough criticism of big topics and is able to weave several issues together over the course of the season that would seem forced within a single episode.

</comment><comment><USER17> Damn, can't believe South Park has been around for 20 years! Feels like I was watching the 1st seasons as a kid yesterday.

At first, I just thought it was funny to hear "motherfucker" and "asshole" on TV. Then I understood that SP is actually much deeper than that.

</comment><comment><USER18> Is South Park (still) cool?

I'm not sure what the best way to judge that is. [https://www.google.com/trends/explore?date=all&q=South%20par...](https://www.google.com/trends/explore?date=all&q=South%20park)

<comment><USER19> I used to love South Park. Now I can barely stand it. Am I getting too old? I rewatch old episodes with pleasure though. It's the new episodes that make me cringe. It used to be about fart jokes and silliness. Now it's all political crap.

<comment><USER20> > Now it's all political crap.

Which made South Park better. Fart jokes or making fun of Canadians was never funny. They still do that but putting the finger where it hurts and calling out a political camp that is not used to be challenged is refreshing. Of course there are things they won't do, for their own safety... because some would resort to violence and directly attack South Park creators.

</comment></comment></comment><comment><USER21> "While you're doing the first episode, you go, "Oh, this is really working. Let's let this be the thing that slides through to the next episode." So we're reacting to what is working the week before, instead of having some grand design. And then later on, the design starts to reveal itself a little bit."

Is that what makes big companies fail? They plan too much?

<comment><USER22> It can be. More likely, it's mainly that once you have the plate spinning on the stick, it takes intense focus to keep it there.

</comment></comment><comment><USER23> Love how these guys call out the left and the right for their bullshit. Pretty rare nowadays...

<comment><USER24> Which results basically in "Horseshoe-Theory - The Show". Where the middle way is always the golden way and, by-accident, is aligned with their neo- conservative/libertarian ideals

<comment><USER25> These are the guys who created _Team America: World Police_ in 2004, and you're trying to say that they're neo-conservatives?

<comment><USER7> I think you can make the case Team America ultimately supports American intervention in foreign affairs. See the dicks/pussies/assholes speech with America being the dicks, and ultimately in the right despite some issues.

<comment><USER25> That's a bit of the stretch considering the majority of the film was basically irreverent to the neoconservative foreign policy of the era.

One recurring theme was gratuitous collateral damage whenever Team America found themselves in a foreign locale, followed up with complete indifference or ignorance on Team America's behalf.

To suggest the film was pushing an agenda is ludicrous when it's pretty clear the goal was to make fun of pretty much everyone and everything.

</comment></comment></comment></comment></comment><comment><USER26> I don't like the show - it's devolved into lazy one-sided caricaturing of 'progressive' causes - but the _Make Love Not Warcraft_ episode still holds up as one of the funniest things I've ever seen.

<comment><USER27> Are you sure that's not a bias speaking? That season was also making fun of Donald Trump, Whole Foods and college jocks. Season before took a gander at Lorde. And so much else.

<comment><USER28> Um, Whole Foods and Lorde are of the cultural Left? They call it [https://en.m.wikipedia.org/wiki/South_Park_Republican](https://en.m.wikipedia.org/wiki/South_Park_Republican) for a reason.

</comment></comment></comment><comment><USER29> I can't believe it's been twenty years, that's insane. Just recently finished The Stick of Truth on PC. Such an enjoyable little RPG. Really felt like you were living in their world.

<comment><USER30> It's one of the first game I really got into. Ended up finishing it in a little under a week.

It is really is a walk down memory lane.

<comment><USER29> The new one is out soon! The Fractured But Whole. Takes place the very next day from Stick of Truth :)

<comment><USER29> ..and delayed until Q1 2017 :(

</comment></comment></comment></comment><comment><USER31>
        > On South Park, nothing is off limits.

The opening line of this article is a lie: [https://en.wikipedia.org/wiki/South_Park_controversies#Censo...](https://en.wikipedia.org/wiki/South_Park_controversies#Censorship_of_the_depiction_of_Muhammad)

<comment><USER32> The section of the article you link to seems to indicate that the network (Comedy Central), rather than the show, performed the censorship. If that is true, I see no incongruity in the quoted statement.

</comment></comment><comment><USER24> Yeah South Park evolved from a neo-con/libertarian "the solution is the middle way between to over caricaturized extremes" paradise, to a neo-reactionary shitfest.

Just watch the trailer: [https://www.youtube.com/watch?v=U-zJL9JuOLQ](https://www.youtube.com/watch?v=U-zJL9JuOLQ)

Related: [https://www.youtube.com/watch?v=8TttI60-mjQ](https://www.youtube.com/watch?v=8TttI60-mjQ)

<comment><USER33> Cops never get you back your stuff. They do give you a report that you can give to your insurance company, though.

<comment><USER34> Never say never. My wallet was stolen from work a couple months back, but the city PD somehow found and mailed by driver's license back to me.</comment></comment></comment>


Show HN: Tiled Text – a Different Approach to Editing Text - <AUTHOR> http://www.tiledtext.com/ <comment><USER3> "I have just moved to Boston and will have to find (real) work soon (been working in a grocery store part-time while building this)."

Someone get this man a job, even if it has nothing to do with this code.

<comment><USER4> It's crazy, what he has shown puts him clearly in the top 5% of developers. Such a waste to see him working in a grocery store.

<comment><USER5> The OP has RSI issues according to the last few paragraphs. I hope he can get his text editing system developed to where he can use it to edit text on a tablet screen efficiently and thus work in a commercial programming job.

" _My studies at these times were very fruitfull and I think now that mathematics has a chance at contending with coding, and I have finally seen some glimpses of mathematical structures that should be called beautiful._ "

Could be an alternative path there.

<comment><USER6> Well RSI and CTS are quite closely related, and as someone who has latter I can say that touch screens are worst possible input device possible. All swiping gestures cause static strain, especially to wrists, which makes long time touch screen usage impossible. Even using touchpad gets painful fast, my laptop has to have "nipple" controller. Also all keyboards I use has to have clear actuation point so I can use as little strength as possible to type.

Game controllers are not better. Excerpt from wikipedia: "RSI is also used as an umbrella term for non-specific illnesses popularly referred to as Blackberry thumb, iPod finger, gamer's thumb"

<comment><USER5> I've learned from this as a 'casual' user of computers.

What are the alternatives? Speech to text? DataHands? (<http://www.datahand.com/products/proii.htm>)?

Would you recommend a mechanical switch keyboard?

<comment><USER7> I'm still waiting for a biofeedback/brainwave based text input. Or a combined approach? Combine a few digital signals with eye tracking?

</comment></comment></comment></comment></comment></comment><comment><USER8> I like the way people are starting to look at alternative approaches to text editing. Light Table has some good ideas, for example. For me, multiple cursors and fast symbol navigation in Sublime Text has been a huge time saver.

Personally, I have never needed code folding (I prefer to have my own map of the code in my head, and anything that obscures that map just gets in the way), or Sublime Text's minimap, nor have I ever needed the symbol sidebar that is found in some IDEs (Eclipse, Netbeans). What I really want is _more efficient editing_.

For example, text editors like Sublime have zero language-sensitive refactoring support. I can't rename (variables, methods etc.) or extract methods, for example. Even some really simple operations like "select entire current nesting level" are unavailable. I remember using Eclipse 7 years ago and really liking the intelligence of the incremental compiler backend, even though I hated Java; it seems that with backends such as Clang, those tools can once again be applied outside big, annoying IDEs like Eclipse and Xcode.

Not sure if this particular approach is useful except to a small niche, but it looks pretty slick. Good luck with the effort!

<comment><USER9> Sublime's "Selection > Expand Selection to Brackets" (which can be repeated) is effectively nesting level selection for bracey languages. I do get what you're saying about the feeling of text manipulation vs. code-aware text manipulation though.

<comment><USER8> Indeed, although that one is useless if you want to do something like wrap the current statement in an "if" or "while" or similar. "Expand Selection to Brackets" will actually include the lines containing the brackets, so you can't use it to select the _contents_ of a block.

Sublime also has "Expand Selection to Scope", except it doesn't really work that well: First invocation it chooses the current symbol, on 2nd the current brace block except the braces, on 3rd the braces themselves, and so on.

And it also has "Expand Selection to Indentation", but I don't see use for it in cases where you want to manipulate blocks of code, since it nearly always doesn't select what you want.

What I'd like is a command, let's call it "Expand Selection to Statement or Block", that:

* On 1st invocation, selects the current line.

        int foo(int bar) {
            bar = mogrify(bar);

            if (bar > 0) {
                slartibartfast = 42;

                [[baz = bar + 1;]]    # <-- [[ selection ]]
                print_report();
            }
            return bar;
        }

* On 2nd invocation, expands to the current contiguous set of lines, bounded by either empty lines or language-specific block (usually braces, or in Ruby's case, "if/while/..." until "end"), but not including the boundary:

        int foo(int bar) {
            bar = mogrify(bar);

            if (bar > 0) {
                slartibartfast = 42;

                [[baz = bar + 1;
                print_report();]]
            }
            return bar;
        }

* On 3rd invocation, expands to the current contents of the block, excluding braces and excluding the lines containing the braces.

        int foo(int bar) {
            bar = mogrify(bar);

            if (bar > 0) {
                [[slartibartfast = 42;

                baz = bar + 1;
                print_report();]]
            }
            return bar;
        }

* On 4rd invocation, expands to the enveloping statement that uses the block:

        int foo(int bar) {
            bar = mogrify(bar);

            [[if (bar > 0) {
                slartibartfast = 42;

                baz = bar + 1;
                print_report();
            }]]
            return bar;
        }

* On 5th invocation, it would continue to step 2, ie., looking for more lines that are contiguous with the current selection:

        int foo(int bar) {
            bar = mogrify(bar);

            [[if (bar > 0) {
                slartibartfast = 42;

                baz = bar + 1;
                print_report();
            }
            return bar;]]
        }

* And so on. Eventually it will get to the entire function declaration.

Combined with a "wrap selection in braces"-type command (that indented the selection, wrapped it in braces, and placed the caret at the beginning so you could start typing something like "if (...) {") you would have a fairly powerful block-manipulating shortcut.

It would probably be quite trivial to write such a plugin. I might try my hand at this. Not sure how much language sensitivity it would need, might be doable without anything at all.

<comment><USER9> Good explanation. Thanks.

Talking of contiguous lines. I like macros of the following form for quickly hopping around vertically in a file:

        // .sublime-macro

        [
            {"command": "move", "args": {"by": "stops", "empty_line": true, "forward": false}}
        ]

        // .sublime-macro

        [
            {"command": "move", "args": {"by": "stops", "empty_line": true, "forward": false, "extend": true}}
        ]

        // .sublime-keymap

        { "keys": ["ctrl+up"], "command": "run_macro_file", "args": {"file": "Packages/User/HopUp.sublime-macro"} }
        { "keys": ["ctrl+shift+up"], "command": "run_macro_file", "args": {"file": "Packages/User/HopUpSelect.sublime-macro"} },

<comment><USER8> Very nice, I'm copying that one! You don't actually have to use macros for that. This will suffice (in your .sublime-keymap):

        {"keys": ["alt+up"], "command": "move", "args": {"by": "stops", "empty_line": true, "forward": false}},
        {"keys": ["alt+down"], "command": "move", "args": {"by": "stops", "empty_line": true, "forward": true}},
        {"keys": ["shift+alt+up"], "command": "move", "args": {"by": "stops", "empty_line": true, "forward": false, "extend": true}},
        {"keys": ["shift+alt+down"], "command": "move", "args": {"by": "stops", "empty_line": true, "forward": true, "extend": true}},

(Changed it to alt instead of ctrl because that's how I like it.)

<comment><USER9> Oops. Right enough. It was in its own file because before I knew about stops+empty_line, the macro was simply a compound equivalent to pressing up 4 times.

</comment></comment></comment></comment></comment></comment><comment><USER10> This is a cool toy but it doesn't really seem to address the main issue of writing code on a touch device; typing on a touch device sucks.

Moving code around is not a difficult problem to solve. Drag to highlight, grab it and move it somewhere else. You've done that elegantly.

But writing massive amounts of code on a device without a traditional keyboard is awful and that's the difficult problem to solve. Until that's solved I don't think anyone can claim to have made real progress enabling development on keyboardless devices.

<comment><USER11> On the contrary, selecting, cutting and pasting text is awfully cumbersome (on iPhone), together with placing the cursor in the desired spot, but typing is almost ok, and on the iPad I can type normally - it's the editing that doesn't work well.

<comment><USER12> If only your phone had an Xbox controller!

<comment><USER13> Are you thinking what I'm thinking? <http://i.imgur.com/1d2F6Ot.jpg>

_PD: Apple please don't sue me for the patent and copyright violation this may contain; I have no money and this image is just a non-profit parody so it is covered by "fair use" under US trademark law._

</comment></comment></comment></comment><comment><USER14> I'd love to see more editors/IDEs that operate at a higher semantic level than plain text. The biggest problem is of course interoperating with existing language/development ecosystems. I have pondered in the past about a language or platform where everything is stored internally as some form of AST, and text is just one of the possible representations. It would at least solve the coding-style (well, the formatting part at anyway) issue for once and for all; everyone just maintains their own CSS/XSLT-alike transforms with tabs or spaces and brackets and semicolons wherever they like.

I've come across occasional research projects in 'structural editors' which only allow semantically correct input (and, depending on the size of the input alphabet, can function through almost 100% autocomplete menu input)

Anastasia[1] is one that I know of, and this _Modeless Structure Editing_ by Sufrin et al.[2] looks interesting.

The main issue I can see, apart from the effort involved, is how to deal with incomplete documents, since almost by creation or editing process will have interim invalid structures. Emacs paredit can be pretty infuriating if you don't use its specialised operations and try to edit your code in a way that malforms the structure.

[1] <http://dream.inf.ed.ac.uk/projects/anastasia/>

[2] <http://www.cs.ox.ac.uk/bernard.sufrin/edit.pdf>

<comment><USER15> Here's another example of operation at a higher level: <http://subtextual.org/subtext2.html>

<comment><USER14> That was an interesting demo, thanks for the link. I can imagine it as a replacement or view onto the standard spreadsheet, and potentially as a learning tool for logics.

I'm not sure how it would scale though, perhaps in a collapse/expand fashion similar to the current 'focus' mechanism, or some sort of level-of-detail aware zoom that progressively replaces chunks with higher level representations.

The author also notes on the main subtextual.org site about issues of mutable state, but it's definitely an interesting take on language design, and may (hopefully) not share the same death-by-layout-complexity fate most visual languages eventually suffer.

</comment></comment></comment><comment><USER16> Could doctors use a gestural interface like this to write templated notes in an EMR on touch devices? Most of the notes that doctors write have repetitive structures. Hence, EMRs like Epic have come up with features like Smart Text, which expand special phrases into large templated sentences with certain bits of data prepopulated and keywords that can be toggled between values (present/absent, etc.) with the keyboard.

But the key complaint with these EMRs is that you need to type to use them, which is awkward and breaks the flow of conversation with a patient. Eye contact is important during patient interviews. Therefore, most doctors use paper and type them into the EMR later (waste of time).

A lot of people (and companies like drchrono) think that the way forward is to use tablets like the iPad mini or the Galaxy Tab, which balance the intrusiveness of the computer form factor against the ability to enter data. A pain point of tablet EMRs is text entry--but like I said, a lot of notes that doctors write have predefined structures, like code.

I think there is potentially a lot of money in elegantly solving this UI problem with a new interface like Tiled Text.

<comment><USER17> (Sorry this is so short/badly explained. I'm typing this from my phone) I've worked for an EHR company that has had a solution to this problem for at least a half decade. Basically, there's a specialized touch screen input interface that is customized to the specific text field the doctor is imputing ino. It works similarly to smart text, but is much quicker, as the doctor is just selecting an option on a touchscreen instead of having to begin by typing. It, of course, has programmed text sequences and can have custom values imputed. From what I know, it works really well in the field.

</comment></comment><comment><USER18> This is a very cool project, nice work. It seems to be very similar to an older project for Emacs named Versor[1]. There's an interesting document out there talking about how to operate Emacs and Versor using a gamepad[2], similar to how you're doing here. It seems that Versor eventually compromised on entering necessary text with a real keyboard and using the gamepad for all navigation and other editing purposes. I actually had a weeks-long thought experiment involving Versor and a 3d-printed gamepad with a chording keyboard on the back. It never went anywhere, but it was fun to think about.

[1]: <http://emacs-versor.sourceforge.net/>

[2]: <http://www.cb1.com/~john/computing/emacs/emacs-gamepad.html>

</comment><comment><USER19> I don't get it... He's trying to solve the problem of typing text in a touch device... with an XBox controller? why not better carry a small keyboard?

The program looks awesome, but i believe it would be more productive to have this features on a regular IDE where you can actually use the keyboard... All the movement between nodes looks terrific.

But anyway...

<comment><USER20> He has RSI from using the keyboard, so making the editor work with a controller first makes sense because he is the only person using his program at the moment.

</comment></comment><comment><USER21> This is really nice.

I'm working on a non-plaintext programming language that just needs a structural editor like this. I'll drop you a line.

<comment><AUTHOR> Sounds interesting. Look forward to hearing from you.

</comment></comment><comment><USER22> This is really neat, great work! I wonder, do people perform the kind of edits that this makes efficient very often?

For example, in the video it was predetermined _exactly_ what was going to be moving and where it was going to go to. From my observations, these sorts of large scale changes are rarely handled so easily. Context helps people map things cleanly, and the contextual change of zooming in and out forces you to constantly rebuild that map. It's an issue I've seen over and over again with any zoom-oriented interface.

Regardless, this is cool work. We need new and interesting interfaces for code - I'm hoping to show some fun things myself at the Live Programming Workshop [1] at ICSE[2].

[1]: <http://liveprogramming.github.com/2013/> [2]: <http://2013.icse- conferences.org/>

<comment><AUTHOR> Yes, the loss of context can be an issue--definitely. I hesitated to include the code collapsing/expanding aspects in the demo because it disguises something more important that's going on, which is unit selection. If I disable collapsed nodes, then when you 'enter' a function you would just see the tile boundaries change from being around each function to being around each line in the function.

Hadn't heard of those workshops -- will take a look.

</comment></comment><comment><USER23> The image at the top of the page almost made me close the tab instantly. It's the polar opposite of slick and intuitive.

I did stick around though and the video does look very nice, but I would recommend a more inviting first impression (I realize this is a library for developers, but still).

<comment><USER24> With all due respect, "slick and intuitive" is entirely the wrong requirement for a programmer's text editor. This is a tool that you will use for 60-100% of every day. There is absolutely zero value to "intuitive" with serious editors -- a feature that you can't use from muscle memory might as well not exist.

No one would ever call vim or emacs "slick", yet they own the market among the most expert users. That is not a coincidence.

</comment></comment><comment><USER9> > ... the Tiled Text engine will narrow down the possibilities of what can be > inserted at any given point so that the user can select textual constructs > from a grid of options, rather than inserting everything one character at a > time ...

The recently revamped PSN Store on PS3 has what I thought was quite a usable implementation of text entry. When searching the store, you select characters one at a time from a (vertical) strip, but that dynamic strip only contains characters for which there will continue to be search results after it's appended to your string. The current search results are shown as a live preview, so you need enter just enough to filter out the noise.

<comment><USER25> it reminds me of TomTom and other car GPS systems text input methods, in which keyboard keys are gradually grayed out as the user inputs their destination, if there are no matches for which that key is the next letter

</comment></comment><comment><USER26> I've just download Vim Touch ([https://play.google.com/store/apps/details?id=net.momodalo.a...](https://play.google.com/store/apps/details?id=net.momodalo.app.vimtouch)) and have been playing around with it for a bit. And I can attest to the fact that editing on a phone is incredibly painful. Once I realized that, though, I also realized that there is very little need for me to ever need to edit code on my phone. So, I see and acknowledge the conceptual problem that Tiled Text is trying to solve but I fear that the audience is far too small for it to be of much use.

<comment><AUTHOR> It's more general than for just editing code (a code editor is just all I've built so far): editing English documents by manipulating the units: paragraph, sentence, clause/phrase, word, character -- is the primary application I see for it (Unfortunately I didn't think of this until far into the code editor :)

</comment></comment><comment><USER27> It would be really cool to see an integration of this with the Leap Motion controller (<http://leapmotion.com/>). I can't imagine writing code exclusively with Tiled Text gestures, but the idea of moving around, navigating, and manipulating text with gestures when it make sense, then typing when that's the most effective - and going fluidly between the two - that sounds really incredible.

</comment><comment><USER28> Congrats on building this! I wonder, have you considered speech recognition as an alternative source for text generation? You could build some powerful voice commands this way, possibly rivaling Vim, TextMate etc.

We will eventually see some growth in demand for text editing on tablets and phones. With some further research and innovation, you may be able to turn this into a tool (possibly commercial) that is useful for a larger audience.

<comment><AUTHOR> Exactly! That's what I've had my eye on for a while, but most people I've spoken with don't see it this way. I have a good scheme for editing English documents using punctuation and newlines etc. for informing tile boundaries -- and using voice recog. or other (selectable) systems for insertion.

Thanks for the comment -- reassuring to hear someone else envisioning that path.

</comment></comment><comment><USER29> Blocks in 3D would be neat. Gives you an instant representation of the depth of inner loops/blocks/closures/function bodies.

I wonder if we'll have that at some point.

</comment><comment><USER30> Nice. Was vi-style modal editing a significant inspiration? It seems like it must have been. Definitely neat to see an approach to the same kind of limited-terminal constraints brought to modern devices. I don't know if I'd use it as a primary interface, but as a high level tool for code organization it could potentially justify having a touch screen on a code editing machine.

<comment><AUTHOR> I've been meaning to learn vi, but still haven't gotten around to it :) So I can't say that it was much of an inspiration for what's there. Interestingly though, the way that it sequences commands so that they could be described by a grammar has inspired important parts of the program that haven't been incorporated yet...

</comment></comment><comment><USER31> Although our company is from Lebanon, so we'd basically be pulling ourselves to compete with your groceries job, I believe I can convince our company to offer you a job. You can thank the sheer chutzpah of your person, that allowed you to create this editor. Let me know if you're interested, so that we can discuss the details :)

</comment><comment><USER32> This is very innovative. Constraint does force invention.

Often time I wish I can write some code on my phone but gave up after a while due to the painful editing process. It looks like it can help a lot. Looking forward to further development.

</comment><comment><USER33> Cool. Have you considered also tokenizing camelCase text into separate words?

</comment><comment><USER34> Congrats. A very interesting an innovative approach.

</comment><comment><USER35> It would be nice to have sound effects like that in Sublime Text. If anyone is interested, I'd be glad to write a plugin together.

</comment><comment><USER36> I watched the video and still have no idea what this is about - <USER2> explain it in english?

</comment><comment><USER37> oh wow. I was watching the video and thought, "oh whatever, it's just like a visualization of some vim style editing". Then I realized that you really did something amazing. "oh daaaaaamn, he just made a visual editor that could become the next vim."

<comment><AUTHOR> Thanks :D -- that's my hope!

</comment></comment><comment><USER38> have you considered using APL and its derivatives ? it's about 100x less typing than java.

<comment><USER39> It's also about 100x more cryptic.

<comment><USER38> .. for those who haven't tried to learn it. as cryptic as is your comment for non-english speaking people.

</comment></comment></comment><comment><USER40> I definitely want to try it with MYO wireless control, mostly for WOW effect.

</comment><comment><USER41> i like the debug mode. being able to manipulate the tree directly seems like it could be more efficient than a cursor.

</comment><comment><USER42> using the syntax tree for navigation was a brilliant insight. really nicely done.

</comment><comment><USER43> Not really innovative, but it has some sci-fi feeling in it due to the animations and sounds. He works in a grocery store?! I would hire him in no time.

<comment><USER43> Anyone who's downvoted my comment, you can stick you opinion into your ass.</comment></comment>


Ask HN: How can I being a developer help my girlfriend sell art online? - <AUTHOR> I have a girlfriend who I believe is a good artist. However, she doesn't know where and how to begin selling art online. Is there any way I could help her? Maybe I could build a small online shop? Or something? Thanks a lot. <comment><USER2> There are mature platforms out there that act as a platform to showcase and sell art out there. Building your own platform might be interesting as a project, but not economically sensible. An existing platform gives your girlfriend the tools to interact with people who like her art, and to experiment without having to wait for you to finish a new feature.

If her art is physical, consider Etsy; if it is digital, look at DeviantArt, Patreon, or one of the many order-to-print shops.

</comment><comment><USER3> Ebay. The hard part of selling art...or anything...isn't building a website. That's just pretend work that's easier than selling. Good luck.

</comment><comment><USER4> as shop platform you could use something simple like ebay but you need to get very good discoverability of her works to find buyers - probably good solutions is to use many social sites like Instagram, deviantart..., therefore you can build (or find) tools to automatize posting/managing images+descriptions to lot of places at same time.</comment>


Ios10 bricking devices - <AUTHOR> http://www.macrumors.com/2016/09/13/ios-10-update-bricking-iphones-and-ipads/ <comment><USER2> My phone appears stuck in some kind of recovery loop that I cannot get out of thus far and there's no progress indicator or anything else in the recovery mode.

Apple's hardware quality (with the exception of the insane evil idiot within Apple who fetishizes super thin power cables that keep breaking) is still mostly fantastically good, but their software keeps on really disappointing.

Hey, but at least they changed a pistol emoji to a water gun. Thanks for focusing on the important stuff Apple.

</comment><comment><USER3> First my iPhone (SE) restarted and was suddenly wiped (could restore most via iCloud backup), then the update bricked the phone and I have to restore an old version via iTunes. Not the greatest experience so far..

</comment><comment><USER4> Had this issue with my device (6s) as well.

I have to update iTunes, get the latest recovery image and restore.

Bad QC from Apple.</comment>


Ask HN: Why is AWS better than Azure (or vice versa)? - chupa-chups My own opinion is skewed due to some funny and not-so-funny experiences with Azure Germany (which claimed to be GDPR compliant but has since Oct '18 been discontinued, forcing us to migrate).<p>I am interested in your opinion regarding why (and how) Azure or AWS is more suited to your demands than the other. <comment><AUTHOR> IMO, it depends on what you want and what you need.

Azure is likely to be a good environment for you, if you use Windows exclusively or primarily. It's the native cloud platform from Microsoft, after all. You can certainly do Windows on AWS, but Microsoft will always treat AWS the same way they did Lotus 1-2-3, back in the day.

AWS has lots and lots of services that they make available to you, and lots of certifications to help your people be able to make sense of them all. But there can be a lot of overlap with some of those services, and some of them may not be as well supported as others. AWS is the king of taking open source software and adding features to it and injecting a lot of cloud-scale capabilities that even the original authors could never have dreamed of.

Google has a long history of building internal technology for themselves, and then publishing papers on stuff they were doing ten years ago, and which has already been completely superseded internally. They're also the king of launching new features or buying startup companies and then unceremoniously killing them shortly thereafter.

If you are a business, you can get differing levels of support contracts with all the major cloud providers, and some may be a better fit for you financially than others, depending on your particular circumstances.

For me, the de-facto standard cloud provider is AWS. They're the 8000lb gorilla in the room. But AWS has been around the longest and they're the most long-term stable cloud provider, whereas they might not be the fastest to adopt technologies like Kubernetes which they did not invent themselves.

The question you should ask yourself is whether or not you want to be building your business on top of that foundation, or if you want to work with someone else.

</comment><comment><USER2> I actually like GCP best. Least buggy and most DevOps out of the box. (In example, managing developer access and login keys is so so much better, automatic VM migration on hardware failure)

The right cloud also depends on your business. If trying to break into Fortune 500 enterprise software, Azure or IBM Clouds and partner programs is a good way to go.

<comment><USER3> GCP has a pretty bad reputation for shutting down accounts arbitrarily- there have been quite the horror stories from smaller companies.

<comment><USER2> I don't think there is much a reputation for killing accounts. Non-hn readers have no idea of the few isolated events that have been posted here. Most of these have to do with free tier.

I've moved more than a dozen accounts to GCloud with no billing or removal issues. It only seems to be recent, not ongoing over 6 years.

K8s is the best there too

<comment><USER3> It's just a risk the business owner should be aware of, best is to make sure you have a dedicated account manager.

<comment><USER2> The risk of being effected by hardware failure in AWS is greater than the risk of account closing in GCP. Readers beware of the relative risk ratio.

BTW, GCP automatically handles VM migration on hardware events, while AWS does not.

</comment></comment></comment></comment></comment><comment><USER4> Azure is less buggy, has better docs, has fewer confusingly overlapping services, and has a better UI. YMMV.</comment>


World Brain: The Idea of a Permanent World Encyclopædia (1937) - <AUTHOR> https://sherlock.ischool.berkeley.edu/wells/world_brain.html <comment><USER2> Wow, that's quite visionary. By the way, our startup is about doing exactly this: [https://arbital.com/p/Arbital/](https://arbital.com/p/Arbital/)

We are starting with mathematics, but plan to expand to all other topics as well. If you are interested in contributing, join our slack channel or newsletter ([https://arbital.com/newsletter/](https://arbital.com/newsletter/)). We are planning to roll out small projects soon, which people can contribute to.

<comment><USER3> Interesting. How does arbital see itself in relation to Wikipedia's math pages? It seems like you are trying to make it more accessible, like the Wikipedia simplified English descriptions

</comment></comment><comment><USER4> It'll never catch on.

On a more serious note, although it superficially sounds like he's talking about Wikipedia (in 1937... WHOAH) he probably isn't. The idea he's describing seems to be a very elite-driven technocratic idea, suffused with the sorts of imperialist ideals you'd expect an educated European in 1937 to expound.

<comment><USER5> _> The idea he's describing seems to be a very elite-driven technocratic idea_

Right, he imagined a _top-down_ organization that collected and curated information for the benefit of humanity. It seems like the trigger for HG Wells imagination was the "microfilm". Using that technology, he could see how vast quantities of information (old books in worldwide collections) could be photographed, compressed into organizable filing system, and centralized in one place.

The parallel of that to Wikipedia would be cheap hard drives holding terabytes of information.

However, that _real_ radical innovation with Wikipedia was the _bottom-up_ crowdsourced contributions. People thought an encyclopedia authored by _anybody_ without credentials would lead to useless trash. Amazingly, that prediction didn't happen.

Personal anecdote.... I have contributed to several wiki articles and in one entry about a novel, I corrected a paragraph that had incorrect information. I simply rewrote the entire paragraph. At first, I thought a subsequent editor would delete it since my edit came from an anonymous contributor. (I was not logged in and only the ip address is recorded in the revision history which means it might be flagged as "drive by vandalism"). It's been several years and I occasionally revisit that page. Not only has my prominent edit stood, but others have continued working around it. It's a weird accomplishment -- a 21st century version of "Kilroy was here."

<comment><USER6> What he's talking about actually seems like a sort of inevitability (which still hasn't happened yet, but will): it's basically the (technocratic, top- down) Dewey Decimal "filing" standard, but where each library has a copy of _every_ book (and other media), instead of having to request inter-library loans.

Soon enough, it won't make much sense to talk about "what's available at your local library branch", instead thinking about "what's available in The Library."

Of course, most things will only be available to be borrowed digitally, but that's not _usually_ a problem if you had a need for the information rather than a desire for the aesthetic experience of reading.

(And _hopefully_ that will include useful [e.g. 3D when necessary] digitizations of all the old documents and artefacts that are currently housed, for their own protection, in nobody-can-look-at-them archives _within_ libraries.)

</comment></comment></comment><comment><USER7> Oh, this is HG Wells. I was thinking of Vannevar Bush's Memex from 1945 when I saw the title.

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

<comment><USER8> [http://www.theatlantic.com/magazine/archive/1945/07/as-we- ma...](http://www.theatlantic.com/magazine/archive/1945/07/as-we-may- think/303881/)

The Memex was more of a personal brain, which still sounds amazing to me.

</comment></comment><comment><USER9> Vaguely related, I've just turned up a 19th century revision war in some related research.

[https://www.reddit.com/r/dredmorbius/comments/4xe2k1/chamber...](https://www.reddit.com/r/dredmorbius/comments/4xe2k1/chambers_encyclopaedia_editorial_statement/)

[https://archive.org/stream/chambersencyclo00unkngoog#page/n1...](https://archive.org/stream/chambersencyclo00unkngoog#page/n13/mode/1up)

TL;DR: The British publishers of Chamber's Encyclopaedia were outraged to find subtantial and ideological edits to numerous articles within their encyclopedia.

I found the topic of particular interest as the first article listed as among those changed was among the topics I was hoping to see detailed in the publication.

There's some additional history (I'm in the midst of compiling more background), but the fact that the American publisher was backing economic viewpoints strongly opposed to those gaining the upper hand in Britain may just possibly have had something to do with this.

</comment><comment><USER10> Are there any projects to build a decentralized Wikipedia? Perhaps using ipfs or similar technology. I did some brief searching but couldn't find anything. It would be a great step forward to ensuring we have a permanent indestructible knowledgebase anyone can access.

<comment> white-flame Wikipedia at least does offer full content torrents now & again so the internet can back up their work or have local mirrors, which would make it survive catastrophic failure of Wikipedia itself.

</comment></comment><comment><USER11> Before you jump to Bush, Licklider, "the internet", Wikipedia and the like for recent analogies, it's worth remembering that some years _before_ Wells actually wrote this, Paut Otlet's Mundaneum and other related "world brain" projects were underway. Their fruits were very much in place and functioning, and were tragically destroyed during the Second World War, ironically the enabler of the information technologies we so admire today.

</comment><comment><USER12> I love articles like this as it makes me wonder what article of today will be seen as profound or rudimentary a century from now - talk of DAO's, holidays on Mars, or how the Blockchain will cure all ills?

</comment><comment><USER13> aka the internet

</comment><comment><USER14> This just reminded me of the joke from HIMYM:

Marshall: Whats that?

Ted: A 1986 world book encyclopædia. Just the one I grew up with.

Marshall: An encyclopædia?

Ted: [laughing] Oh! You think it should be pronounced encyclo-pee-dia. I'ts a common mistake. But if you look at that squished together "ae" symbol in this here encyclopædia, you'll learn that it's a ligature derived from the Anglo- Saxon rune ash...

[shelf breaks and falls]

Marshall: You know, you're gonna have to pædia for that.</comment>


Jest – Painless JavaScript Testing - <AUTHOR> http://facebook.github.io/jest/ <comment><USER2> I'm a big fan of Jest - if you're using Jest with Visual Studios Code, I'd recommend looking at my extension that gives you a mode IDE-like experience.

[https://github.com/orta/vscode-jest](https://github.com/orta/vscode-jest)

<comment><USER3> Thank you for this! I've been patiently waiting for someone more motivated and intelligent than myself to create a free inline test runner. You are my hero. Keep the project open source, free, and plop a donations button on the page and I'll be quick to open my wallet.

</comment></comment><comment><USER4> Jest used to have a lot of problems and was poorly maintained.

Over the past few months, that has changed entirely. Improved speed, lots of bug fixes, snapshot tests and general ease of setup with React projects have all really helped.

Jest is now the test framework I would suggest for anyone starting a new React project.

<comment><USER5> Has the documentation improved? Last time I checked it (about a year or so ago) it was terrible.

<comment><USER6> It's but a click away (and yes it has :-)) [http://facebook.github.io/jest/docs/getting- started.html](http://facebook.github.io/jest/docs/getting-started.html)

</comment></comment></comment><comment><USER7> I have a strange history with JS test libraries. Of the 4 that I've used, I've fixed bugs in 3 of them within a week of first picking it up. QUnit, Sinon and Jest.

This isn't commentary on the quality of Jest. After turning off auto-mocking and instead only using the mocking when I really needed it, I ended up using it for a moderately successful side project and enjoyed the experience.

<comment><USER8> I switched to tape (the "Test anything protocol" from 1987) and never looked back: [https://medium.com/javascript-scene/why-i-use-tape- instead-o...](https://medium.com/javascript-scene/why-i-use-tape-instead-of- mocha-so-should-you-6aa105d8eaf4)

I use faucet for pretty-printing the output.

<comment><USER9> After discovering TAP a while back I switched a bunch of tests to output in that format, but found that it can't actually be consumed by anything, other than pretty printers (too trivial to bother) or smolder (Web server; too much overkill).

I think there's definitely space for some local commands which graph, analyse, etc. a bunch of TAP, but I haven't found anything like that :(

<comment><USER8> I never had the need to process the output, I just liked the simple structure of my tests and the plan/count/end system.

</comment></comment></comment></comment><comment><USER10> There's no such thing as painless testing.

<comment><USER11> But it hurts so good.

As opposed to the alternative, which is dealing with technical dept, spaghetti, legacy code, etc...

<comment><USER12> Testing and technical debt/spaghetti code/legacy code are not mutually exclusive.

<comment><USER13> you're right. But testing bad code is really really hard. So usually tested code is somewhat better overall, just because it's the easiest way to do it.

</comment></comment></comment></comment><comment><USER14> I've been working on a React Native project and I really enjoy how easy jest is to use. It's hard to tell from this post though, is there something new/specific about it? Or are we all just agreeing that it's awesome?

</comment><comment><USER15> I just migrated a project[1] to Jest. Now I totally think that Jest is AWESOME.

Before I was mangling with Grunt and PhantomJS, but due to PhantomJS version being back ages I couldn't really test ES6 so I had to do a hybrid and running mocha in an actual browser, and the rest of the dev stack in grunt. Now I am able to do it all automatically. Not only that, but jest includes a browser by default which supports ES6 and an assertion library, so just with 'jest' I am doing the same that I did before with mocha, chai and PhantomJS (+ the pain of installing PhantomJS separately).

I am not _so much_ into React, but I just fell in love with Jest. Testing will be something totally different from now on, thank you Facebook.

[1] [http://github.com/franciscop/superdom.js](http://github.com/franciscop/superdom.js)

PS, it was a bit more difficult to integrate Jest into Grunt and I get it without the colors, but I'm sure I'll find a solution soon-ish.

</comment><comment><USER16> Jest sounds good on paper, it's great it exists and it definitely has potential and even improved a lot recently (and I usually try every new version that come up), however I have two pain points with it that prevent me from switching to Jest for now:

\- it uses regexes instead of globs, so you can't just give it the list of tests like you would with Mocha or electron-mocha (e.g. something like "jest src/* * /*.tests.js")

\- it excludes paths that include "node_modules" and it's not just a default (which would be fine), it's hardcoded, so you can forget about local modules, or dependencies that use local modules

Fortunately, there are already open issues for both, so that might improve in the future :)

\---

Edit: I had to add extra spaces in the glob example (so it's slightly incorrect) because HN formatting seems to prevent using "double star".

<comment><USER17> I work on Jest at FB.

* I agree regexes suck but that's all we had five years ago when it was started. Would love to move to a glob system incrementally but most of that will have to come from the community. I'm also still concerned about performance. We match things against tens of thousands of files a lot and regex seems strictly faster to me but I'm happy to be proven wrong or shown that it won't be relevant. * There is one minor issue with create-react-app's recommended use of node_modules to split up things. I would recommend lerna for multi-package development ( [https://github.com/lerna/lerna](https://github.com/lerna/lerna) ) and we are hoping to put whatever fix in place here that will work well. There are workarounds but they aren't great.

<comment><USER18> node-glob was released in 2010

<comment><USER17> Thanks! That's great. Maybe you can help us upgrade then? Jest is fun to contribute to.

</comment></comment></comment></comment><comment><USER19> This might be a bit frivolous.

But

Jest has gotten a whole lot better over the last few months. It used to be slow, cryptic and dogmatic. Now it's fast, transparent and open to debate.

Great job Jest team!

I would qualify that but I started this comment saying it was going to be frivolous. If enough people care however I'll expand on this.

</comment><comment><USER20> I have used jest and i have used mocha. I use mocha because I got sick of having to "unmock" everything in jest tests. People have complained that jest is slow, that was never a problem I encountered.

The unmock becomes very annoying after a while.

<comment><USER21> When jest was first released, it was incredibly, glacially slow, buggy, poorly documented, and seemed to be largely unmaintained. Critical features were broken and stayed broken for months. I was an early adopter and I got burned hard, having to rewrite everything in Mocha.

Since then, apparently, it has changed hugely, and is now fast, reliable, and pleasant to use. Or so I've heard; I have no particular reason to change back to jest, since mocha is fine.

But if you're wondering why you've heard about it being slow, it's because for many, many months jest was absurdly, unbelievably slow; simple "hello world" tests would take seconds, and even a medium projects would take minutes. And there was no watch mode, nor any ability to re-run failing tests, or re-run tests on changed files. It was absurd.

Edit: See, eg, [https://github.com/facebook/jest/issues/116](https://github.com/facebook/jest/issues/116) opened 8 Aug 2014, and finally closed 17 Feb 2016. Quite a run.

Also, there were tons of bugs with the mocking and, especially, the `dontMock()` methods; many things could cause attempts to turn mocking off to silently, invisibly fail (or even more fun, to cause an attempt to disable mocking on one item to cause it to be silently, invisibly disabled on all items). It's amazingly hard to track down a failing test when a bug triggered by code in another test can cause items that should be mocked to not be mocked, and visa versa.

</comment></comment><comment><USER22> Two questions:

1\. What good books (or repos) that use JS can you recommend for writing good tests?

2\. What advantages does Jest have over Jasmine?

<comment><USER23> RE: 2. Jest bundles Jasmine. It's primarily a test runner (like karma[1]) more than a framework. Jest includes mocking capabilities at the function level (like sinon[2]) and module level (like rewire[3]). It supports parallel execution, custom source code transpiling, file extension mocks (for webpack requires) and file watching. It favors large ES6 projects -- takes a second to start up.

[1]: [https://github.com/karma-runner/karma](https://github.com/karma- runner/karma) [2]: [http://sinonjs.org/](http://sinonjs.org/) [3]: [https://github.com/jhnns/rewire](https://github.com/jhnns/rewire)

</comment></comment><comment><USER24> We use usually use a mocha/chai/sinon combo for our testing. Can anyone that has used this make a comparison with that?

Looks like jest tries to cover all three.

<comment><USER23> I was using that too, and switched over to Jest + Chai Assert. It was too difficult for me to replicate features like file watching, run only tests with changes for faster feedback loop, transpiling typescript and es6 in the same project, asset mocking, starting and stopping timers, etc. I only really used sinon.spy() so traded it for jest.fn().

</comment></comment><comment><USER25> The last versions are for us better than the other tool. The snapshot feature is pretty neat.

</comment><comment><USER26> Are you forced to use expect().to... or you can plugin any assert library ? (I get the benefits of expect but I still prefer assert style)

<comment><USER27> You can use any assertion library and it will just work. At one point I was using Jest with Chai when migrating a codebase that happened to use Chai for assertions.

</comment></comment><comment><USER28> Jest has taken great steps forward in the oast year and I see the momentum only going up. Kudos to the whole team!

</comment><comment><USER18> Snapshot testing overconstrains your tests, and encourages people who see tests breaking just to rerun the snapshot without thinking too much.

The painlessness comes with a cost.

<comment><USER17> Hi! I work on JavaScript Tools at FB.

There is a fantastic post by Ben McCormick about the up and downsides of this system: [http://benmccormick.org/2016/09/19/testing-with-jest- snapsho...](http://benmccormick.org/2016/09/19/testing-with-jest-snapshots- first-impressions/)

Snapshots aren't the only feature of Jest; it is simply one assertion in our assertion library. There is a ton of other stuff in the framework that makes setting up a test environment and writing tests easier.

My philosophy for building a test framework is to build a good feature set to help you out in any situation but the user should be in total control. This allows you to find the best way to test your code which I've found to be extremely subjective. The choice of test framework and test methodology seems almost religious at times and I've deliberately tried to stay away from these conversations.

<comment><USER18> Indeed, I'm not criticising Jest which most of our developers really like, merely criticising snapshot testing, which is one of the ways we are using jest.

The Ben McCormick post does cover some of the issues with snapshot testing, particularly around lack of communication of developer intent.

If you wrote a unit test that asserted that a tree of data looked exactly a particular way, when the only correctness/incorrectness criteria was whether or not a particular prop was present on one of the branches, then you've written a bad test.

Using a snapshot means that your test fails when your code changes in ways that are still correct. It's a test that invites lots of false negatives, and the reason that is considered acceptable is because it makes it easy to update the test when it predictably gives you the false negative.

Normally writing tests that depend on the exact implementation details of the code under test is considered a bad thing. I can't help but think that there are better solutions to this problem.

Almost immediately after one of our teams started using snapshot testing, we had test breakages because an entirely different component that we used in an ancillary way had a semver minor change (added a new prop that was defaulted) and that broke tests (but not the app) in our component. Perhaps we're doing it wrong, but adding tests to packages that can trivially be incorrectly broken by your dependencies changing is fairly painful (and makes a mockery of semver).

<comment><USER29> I implemented the snapshot functionality in Jest and I work on Jest at FB.

> Almost immediately after one of our teams started using snapshot testing, we > had test breakages because an entirely different component that we used in > an ancillary way had a semver minor change (added a new prop that was > defaulted) and that broke tests (but not the app) in our component. Perhaps > we're doing it wrong, but adding tests to packages that can trivially be > incorrectly broken by your dependencies changing is fairly painful (and > makes a mockery of semver).

Snapshots should make you more confident when making changes.

In the case you just described they correctly caught that something changed.

Imagine a minor semver update that works in 99% of the cases but has a very tricky edge case scenario they didn't consider when bumping to the new version, and you're super lucky and you have that scenario in your codebase, but only in a single page of your app under a certain condition.

Snapshot failures highlights subtle dependencies between seemingly unrelated components, making you aware of it. I think at snapshot failures as warnings: those are potential breakages and I can now check that everything works, and with a good coverage I know exactly what changed and where, so I can go and check case by case. Once I'm absolutely sure everything is fine I can safely update the snapshots, which as you correctly stated is easy to do, I've just to pass a `-u` flag.

<comment><USER18> I realise that it can occasionally be useful to have a canary that says 'something has changed' as long as its easy to reset. Personally, I'd rather such a canary operated on the visual representation plus interactions, since that is what the user experiences, rather than error on tree differences that produce no effective difference to the end user.

I do think though that neither of these should replace tests that test the actual postconditions of your code, and that the preponderance of false negatives and ease of resetting the canary discourages developers from spending the effort required to properly understand what is going on.

Almost all programming is about erecting firewalls to contain changes, so that as they ripple out from the change site, they hit boundaries beyond which things no longer need to be modified. As part of that, modules document what you can and cannot rely on. If you have a test that breaks because it's relying on some feature of a modules output that is not considered public behaviour, the bug is in your test, not the module that causes the failure.

> In the case you just described they correctly caught that something changed.

It is not the job of tests to tell you that something changed, but that something broke.

Perhaps I'd have less problem if people talked about them as canaries rather than as tests. 'Test' implies that there's something wrong if you fail.

</comment></comment></comment></comment></comment><comment><USER30> This doesn't do browser testing (like Karma), it's just an alternative to mocha, right?

<comment><USER19> It comes with jsDom baked into it for browser behaviour. Using a full headless browser to test with is not ideal, however I trust that you have a good reason to want that. If that is a requirement for you, you can tie jest up to karma :), but I beseech you to have a very good reason to test against a headless browser first :)

<comment><USER30> Depends on what you want to test, I guess. If you want to test UI widget behaviour (not just business logic), then jsDom probably isn't the right tool and you need a browser. E.g. if you need CSS measurements or more tricky DOM behaviour.

It's not entirely clear to me why you'd want a headless browser though. Once you're already running a browser, you might as well run a full one, and also get the debugging capabilities.

</comment></comment></comment><comment><USER31> Still sticking to Jasmine. Simple and efficient and no need for nodejs to run tests.

</comment><comment><USER32> do we really need MORE testing frameworks? the devs should join jasmine instead

</comment><comment><USER33> i'm surprised this does not use Yarn</comment>


Digg is Rolling Back to V1 - <AUTHOR> http://digg.com/v1

<comment><USER2> If only they did it back in 2010.

</comment><comment><USER3> ...but still no comments.</comment>


Microservices and Biological Systems - <AUTHOR> https://battlepenguin.com/tech/microservices-and-biological-systems/ <comment><USER2> I can't find it now but there was a presentation by a Googler on the things they had to do to be reliable at their scale that included a bullet list of ~10 things. I remember going down that list and thinking, "Yeah, that's what life does." for most of them. FWIW. (I'll try to find the list and post a link if so.)

</comment><comment><USER3> ``` You should always start with a monolith. Ensure that it is well tested, well designed and developed with several iterations from the core developers. ```

Upgrading services can be a pain, but starting with a monolith is not a requirement. Architecture can happen before any code is written, and it can illustrate a need for SOA (or not). Difficulty in changing your services as your product matures or as requirements change will be hit at the beginning, but there is not hard stop to that either. Vague statements like the above leave us in the monolith culture indefinitely. It does, however, speak to the need to understand/form patterns for service upgrades.

</comment><comment><USER4> Don't think of it as your business "failing" because you pursued microservices. You are just participating in an evolutionary process. It's all good.</comment>


Google+ Activity on WebGL Rendered Globe = Beautiful - <AUTHOR> http://www.gplusglobe.com/

<comment><USER2> Another three.js globe project, pulling from the site's Google Analytics:

<http://superfad.com/missioncontrol/>

<comment><AUTHOR> Ok that is _stunning_ but as far as the functionality it seems totally lacking... like they could do so much more with such a beautiful platform.

</comment></comment><comment><USER3> This is based off of the dat.globe, a project from Google's Data Vis people: <http://code.google.com/p/webgl-globe/>

</comment><comment><USER4> Interestingly, Paris is where G+ is more used!

<comment><USER5> It's just a map of people who have added themselves, it has little if nothing to do with the actual distribution of G+ users. The project was created by three people in Paris which explains why it's the leader.

<comment><USER6> Looks like there are only a few thousand people. If HN'ers add themselves, we'll probably skew it. In fact, it might become of a HN Globe.

</comment></comment></comment><comment><USER7> I find these visualizations pretty cool, and I forked the original WebGL globe demo to support real time activity. Check it out at <https://github.com/zsolt/globestats> . It uses node.js + socket.io for the sample server.

</comment><comment><USER8> This is beautiful. We did similar stuff using a Flash globe a long while ago. I know that a firm I worked with did this for Bob Dylan's site as well.

If animated, it'd make a good lobby visualization somewhere.

</comment><comment><USER9> Well, this completely crashed my MacBook Pro. Although to be fair, I think it has to do with the fairly unreliable graphics card/drivers than anything else.

<comment><USER10> Runs beautifully on mine. How old is yours?

<comment><USER9> Late 2008. Soon to be replaced, and a bit behind on the OS too.

I've had no end of problems with the graphics card and graphics card drivers on this model-- both times I've brought it in to be serviced the Apple techs have simply nodded and had the machine sent in for a new logic board without even testing. I guess NVida produced a terrible batch of GPU's that Apple used on these models.

</comment></comment></comment><comment><USER11> this is actually like <https://mozillademos.org/demos/globetweeter/demo.html>

which has been released a few month ago

<comment><USER12> That's not quite as polished and visually stunning, though.

<comment><USER13> maybe it doesn't look as visually impressive, but actually in that twitter globe all the country borders are vector mapped.. whereas the google+ one is just a bitmap map of the world. Either way I'm liking that there are more of these WebGL 3D apps popping up.

</comment></comment></comment><comment><USER14> Nice. By the looks of it Paris is by far the city with the most g+ users..

</comment><comment><USER15> Cool - worked great in Firefox 8 Beta on my Ubuntu laptop.

</comment><comment><USER16> It would be interesting to also see activity per capita.

</comment><comment><USER17> Wouldn't load on my MacBook Pro under in Chrome.

<comment><USER18> Just out of curiosity, what kind of video card is your MacBook running (integrated or discrete)?

<comment><USER17> No integrated graphics, NVidia 9400M / NVidia 9600M GT</comment></comment></comment>


Student Robotics - <AUTHOR> https://www.studentrobotics.org <comment><AUTHOR> We challenge teams of 16 to 18 year-olds to design, build and develop autonomous robots to compete in our annual competition. After announcing the year's game, we give teams six months to engineer their creations. We mentor teams throughout this time, as well as supply them with a kit which provides a framework they can build their robot around. Thanks to our sponsors, we provide this all for free to our teams.

</comment><comment><USER2> One competition location, in the UK. Appears less complex engineering than US FIRST Tech Challenge, perhaps more programming.

A comparison with the FLL - FTC - FRC would be welcome. I believe at least FTC and FRC are global events.

<comment><AUTHOR> We are a UK based competition, although we've had teams from France and Germany compete in the past.

The main difference with those other competitions is that the teams are able to take part for free, and we even give them a budget to purchase materials. This allows teams from schools who would not usually have the means or opportunity to take part in these sorts of competitions to take part. This year we have around 45 teams entering robots on the day.

</comment></comment><comment><USER3> SR2017 is now over with a well deserved 1st place win from CATS College Cambridge! Followed closely by Systemetric (Hills Road College Cambridge) and Collyer's in 2nd and 3rd place respectively. After a close fought final against 3 very strong teams CATS College emerged victorious.

Congratulations and well done to all of the teams!</comment>


Hail a cab with YO - <AUTHOR> http://yo.cabsolutely.co/

<comment><USER2> This is fake; it's just a survey asking "would you be interested in such an idea."</comment>


The Seed Investment Market in 2015 - <AUTHOR> http://tomtunguz.com/seed-investment-market-2015/

<comment><AUTHOR> I really wish the std dev was included with the average seed round size numbers - or at least a median.</comment>


Microsoft forced to provide Windows users with a browser choice screen - <AUTHOR> http://my.opera.com/chooseopera/blog/2009/12/16/the-microsoft-case-comes-to-an-end

<comment><USER2> Isn't "monopoly" supposed to refer to a market where there is only _one_ seller? I know that MS is still the biggest, but clearly there are alternatives. I feel that these trials made more sense 10 years ago.

</comment><comment><USER3> What about that other company with the closed operating system and a bundled browser?

Why haven't they been taken to court as well?

<comment><USER4> Because Apple doesn't have a dominant position in the market. (that is the reason MS was sued, stated in the article).

</comment></comment><comment><AUTHOR> Incidentally, how hard is it to remove Safari on a Mac?

</comment><comment><USER5> As web developers everywhere fall to their knees and give thanks.</comment>


Slack Manager – Open Source and Free Agile Bot - <AUTHOR> https://github.com/anonrig/slack-manager <comment><USER2> This is great!

Add in some triggers for if people updated the board, or their time sheets... let the project managers focus on consulting and product ownership.

Nobody likes being a nag, let the robot do it. (=

<comment><AUTHOR> Thanks! Let's open an issue on Github for this.</comment></comment>


Twitter Picks Russia Over the U.S - <AUTHOR> http://www.wsj.com/articles/twitter-picks-russia-over-the-u-s-1463346268 <comment><USER2> _> This is nonsense: Dataminr performs no surveillance, because there is nothing private about the tweets it mines for data._

This doesn't make sense: Surveillance is surveillance even when conducted in public, say with surveillance cameras.

<comment><USER3> The WSJ Editorial page is oft the home of tortured logic.

</comment></comment><comment><AUTHOR> Unpaywalled: [http://archive.is/isI5v](http://archive.is/isI5v)

</comment><comment><USER4> This look highly opinionated, I'd take it with a bag of salt

<comment><USER4> my bad, it's actually filed under "opinion | columnists". must be some trump supporter</comment></comment>


Research: an outsider's perspective - <AUTHOR> http://poincare101.herokuapp.com/post/33

<comment><USER2> Making the situation even more absurd, none of that money is actually going to the people who do the research. In fact, many scientific journals charge the researchers to publish their work, then turn around and charge anyone who wants to buy a copy. Ridiculous.</comment>


From South Africa, a faster and easier way to apply condoms - <AUTHOR> http://www.springwise.com/health_wellbeing/south-africa-faster-easier-apply-condoms/

<comment><USER2> Is the low rate of condom use really related to the time demands of putting one on? I've seen a few things like this and it seems rather more likely that any reason like that is dwarfed by cultural ones.

<comment><USER3>
      Is the low rate of condom use really related to the time demands of putting one on?

I suspect it is not related at all, this article is just a piece of very silly marketing. Condom use in developing countries seems to be hampered by several factors: most prominently religion, access to the condoms, and basic knowledge of how to use them. You'd assume the last point isn't a problem, but it turns out they do really weird stuff with free condoms in the absence of training courses, like hanging them on a wire over the bed instead of putting them on (as a kind of talisman) and re-using them multiple times.

<comment><USER4> Oh, I don't know. In developed countries at least, condom use is sometimes hampered by the fact that putting one on "breaks the mood", so shaving valuable seconds off the process would seem to be helpful there.

I have no idea if it will work for African subsistence farmers, but I can certainly see it increasing condom use among horny American college students.

<comment><USER5> _but I can certainly see it increasing condom use among horny American college students._

Most likely. Although, to be fair, condom use is a lot easier after multiple applications. The first time is difficult, but after a while you get pretty fast at it.

<comment><USER6> If you're on the fence about condom use, and your first few times are failures, it might lead you to high risk behavior or in a country like South Africa you may contract HIV in these first few times. The Pronto condom could be a huge invention.

</comment></comment></comment></comment></comment><comment><USER7> If this saves me say, 10 seconds, I'd love to say that it would add up over the course of a year...

But in reality, I'm probably saving about ten seconds a year.

</comment><comment><USER8> This is hardly news. See the same video from 2006:

<http://www.yourdailymedia.com/video/watch/5462/>

</comment><comment><USER9> [http://www.smbc-comics.com/index.php?db=comics&id=2335#c...](http://www.smbc- comics.com/index.php?db=comics&id=2335#comic)

much better

<comment><USER10> lol, however cutting slits in a condom packaging would cause it to dry out, and more importantly you could end up ripping the condom itself... but couldn't someone do a perforated version?

</comment></comment><comment><USER11> We were taught in school that you're supposed to squeeze the tip (of the condom) as you put it on, to allow room for the semen. Apparently this reduces chance of breakage.

I dont see any tip squeezing in this new application method.. thats a worry.

<comment><USER12> I have a hard time believing this. You can pump liters of air in a condom. A couple of milliliters of semen is hardly going to cause breakage. I'd be much more worried about sharp objects (split fingernails) and slippage. Furthermore, anecdotal evidence would suggest that (1) the built-in reservoir in condoms is not large enough anyway and (2) condoms slip/stretch a centimeter or two from application to ejaculation, effectively creating a reservoir that's large enough regardless of whether the built-in reservoir contained air or not.

<comment><USER13> You don't want an inflated reservoir tip because it increases the risk of breakage _during intercourse_. It has nothing to do with ejaculation and everything to do with friction between two layers of latex.

Short version: it's far easier for latex to tear when rubbing against another piece of latex, than as a single layer sandwiched between two pieces of skin. Thus anything that you do that increases the incidence of latex rubbing against latex increases the chance of breakage.

That's why you _roll_ condoms on, keeping the material taut (to minimize chances of folds/wrinkles) and that's why you don't want air in the reservoir tip.

<comment><USER12> I don't see how a non-inflated tip would _decrease_ latex rubbing against other latex. If anything it is _increased_. Take a non-inflated plastic balloon and rub it against your hand => plastic rubbing plastic. Now take an inflated balloon and rub it against your hand => no plastic touching other plastic.

> to minimize chances of folds/wrinkles

Have you used a condom? The chance of lots folds/wrinkles during usage is pretty much 100%.

</comment></comment></comment></comment><comment><USER14> It's not the packaging that needs work, its the product. Popular forms of effective male pregnancy prevention are pretty limited. There really hasn't been any innovation in the field in a long time. Really we can launch people into space but we still have to put some sort of poly vinyl silicone sleeve on ding dongs? That's the best it gets?

<comment><USER15> Pregnancy prevention is not the issue, it's STI transmission that must be prevented, especially in africa.

I doubt we will have a viable substitute for a latex barrier in that regard until some sort of pathogen-hunting nanotechnology becomes mainstream. By that point we may well have transcended our present notions of sex/gender altogether.

With regard to pregnancy prevention for men, there has indeed been recent innovation in this area: <http://www.theregister.co.uk/2011/06/06/male_pill_boffinry/>

</comment></comment><comment><USER16> all i need is a way to tell which way is "up". preferably a way that will also work in the dark, using one hand.

i'm sure there's statistically significant evidence of telepathic (in-)ability in the number of times i put the damn thing on upside down and then can't unroll it.

and easier opening packages. fix the basics already.

<comment><USER17> Amen. It doesn't matter if it takes a second or ten seconds of manipulation as long as the process is straight-forward and you don't have to distract yourself from the actual love-making.

A condom that can be mounted with one hand, correct side up, and preferably through one continuous movement would probably remove 95% of the annoying and frustrating condom usage problems, at least in countries with average Western education or better. (No hanging of the rubber above bed or anything, like somebody said.)

<comment><USER18> >A condom that can be mounted with one hand, correct side up, and preferably through one continuous movement would probably remove 95% of the annoying and frustrating condom usage problems

use correct size. When condom is smaller than needed - then you have all these problems (and in addition it still leaves enough uncovered skin for direct skin-to-skin contact thus potentially decreasing the STD protection efficiency).

<comment><USER12> Standard condom size should be good for virtually all people. They are extremely stretchable in width, e.g. you shouldn't have a problem putting one on your head (by which I mean the head that sits on your torso). Soft tissue is the real danger for STIs, which is well covered with a condom of any size. No matter the size of the condom, normal skin will always be exposed. Condom size also has no effect on doing the correct side up.

<comment><USER18> >Standard condom size should be good for virtually all people.

that a very overstretched (pun intended) statement.

>They are extremely stretchable in width, e.g. you shouldn't have a problem putting one on

with pretty much any condom able to hold a bucket of water, it is theoretically possible for any human male to put it on. On practice, when condoms are noticeably smaller that your size, it wouldn't roll over using one hand and it requires so much frustrating both hands finger acrobatics that it just becomes a separate activity on its own which understandably may affect the mood in some cases. Among the "standard size" i personally met wide variations in elasticity and size to the extent that some [rare] of them i couldn't practically put on (and i'm biologically pretty average). Correct condom size does matter.

<comment><USER12> I can't say I share your experience. Why is using two hands a problem? I always use two hands and it never takes longer than a couple of seconds. Putting a standard condom on a dildo that's well above the average human penis size is equally easy. Putting on a condom on a (partially) flaccid penis is indeed very hard though since you need one hand to hold it and trying to put it on will push the blood out.

Use which size suits you best, but be aware that a looser condoms will cause more slippage.

</comment></comment></comment></comment></comment></comment><comment><USER19> All of the examples in the video seemed really large. Does anyone know if it also works on smaller ones too?

</comment><comment><USER20> Ouch. That foil package looks like it could really scratch up the shaft.

</comment><comment><USER21> I can't really tell if I trust the packaging.

</comment><comment><USER22> these do, however, look like they would be tougher to fill with air for bachelorette parties.

</comment><comment><USER23> Silly video. Everyone knows that abstinence education has been working flawlessly to prevent the spread of HIV/AIDS and unwanted pregnancy.

<comment><USER24> Abstinence works however at 100% effectiveness (for both prevention of conception and prevention of spreading disease) whilst condoms work at, what is it, about 97% prevention of pregnancy for experienced users and much lower for inexperienced users. I don't know the figures for disease spread but presumably things like genital warts and pubic lice aren't hindered much by condom use.

I don't think this is really the place for this discussion/ your snide remarks.

<comment><USER23> Abstinence _education_ was the point of my comment. South Africa, the origin of this product, has been subjected to various abstinence-only education programs from outside sources and these are known to have negligible results[1]. Anything that instead acknowledges that people want to continue having sex and instead prepares them for the event - such as this product, and the accompanying video - is going to be far more useful in the long run.

[1] "...once people had established sexual patterns it was difficult to ask them to abstain. The condom message then had to be emphasised." <http://www.bhfglobal.com/bhf-news/abstinence-only-programmes>

"At present there does not exist any strong evidence that any abstinence program delays the initiation of sex, hastens the return to abstinence or reduces the number of sexual partners" <http://www.msnbc.msn.com/id/21670758/>

<comment><USER24> > _is going to be far more useful in the long run_ //

This is the point were you assume what is useful and dictate that to us.</comment></comment></comment></comment>


Uniting Tech and Charity for Impact - <AUTHOR> http://hashtagcharity.org/

<comment><AUTHOR> Learn how to give back to the community with your tech skills.</comment>


Show HN: Trello Clone template built without code - <AUTHOR> https://zeroqode.com/trelloclone <comment><USER2> Demo login: email@example.com (zeroqode#1)

Doesn't work for me. I assume the password is: zeroqode#1</comment>


Stephen Hawking to retire from prestigious post - <AUTHOR> http://www.newsvine.com/_news/2008/10/24/2035422-stephen-hawking-to-retire-from-prestigious-post

<comment><USER2> Prof. Hawking is probably one of three thinkers that have had the greatest influence on me, the other two being Prof. Richard Dawkins and Charles Darwin.

And for what it is worth, personally, I agree with his 2005 solution to the black hole information paradox, in non-technical terms, that universes (euclidean metrics) with no black hole solutions essentially cancel out those with black hole solutions in the quantum gravity path integral, so from the point of view of the path integral, there effectively are "no black holes", and therefore no information paradox. Cute I know, but if somebody has a better answer I'd like to hear it! (I like it because for example in string theory I have read there are dualities involved by virtue of which one can grab information back out of black holes, which may well be true, but Hawking's solution does not depend on string theory being true, which I like because it is more conservative, i.e., it is in the world of ordinary quantum gravity and not in the world of string theory which for my money the jury is still out on.)

Anyway, my personal best wishes to Prof. Hawking!!</comment>