Guide to JavaScript Frameworks - <AUTHOR> https://javascriptreport.com/the-ultimate-guide-to-javascript-frameworks/ <comment><USER3> I come from a pure HTML + CSS + JS (mostly via jQuery) background. My career has headed in a direction that focusses a lot less in the frontend web, but every 2 months or so I read one of these guides and I get giddy - "Finally, I will teach myself angular/vue/react/backbone/knockout". After about 10 minutes I am filled with dread. I expect to learn about a specific piece of software, instead, I am greeted with requirements of previous knowledge on a whole bouquet of other technologies: node, webpack, babel, grunt...

It's just discouraging. This whole thing feels like a farce. I watch colleagues investing time in this and I feel sorry for them.

<comment><USER4> I learnt a lot from the article _Modern JavaScript Explained For Dinosaurs_ [0] (featured on HN recently), which explains the history of developments from vanilla JS to 2017, "a historical context of how JavaScript tools have evolved to what they are today". I thought it was brilliant at making sense of the jungle you describe.

I'm pretty sure it will remove the dread.

[0] [https://medium.com/the-node-js-collection/modern- javascript-...](https://medium.com/the-node-js-collection/modern-javascript- explained-for-dinosaurs-f695e9747b70)

<comment><USER5> Thank you for this, this is fantastic. Exactly what I was looking for (not a dinosaur, just a back-end dev who's curious about a lot of front-end tech).

</comment></comment></comment><comment><USER6> The rumours of Ember's demise are greatly exaggerated.

I have yet to hear of people making the same amount in any other framework. Seniors are making $200k to $500k in _remote_ positions (the people I know live in Toronto, but they could be anywhere).

It is hard to learn, and I'm far from an expert, but the highest I've heard another JS developer who knew both Angular _and_ React completely and he was responsible for migrating a company from one to the other and he was just starting to get into that range.

Large SPA JS applications are easier to structure in Ember because there are so many best practices. The problem with Ember is the learning curve because it doesn't usually let you take shortcuts.

<comment><USER7> I'd point out that often rare and often unused skills get higher pay due to simple supply and demand. I've heard similar salary ranges for Assembly programmers for example.

Angular and React are widely used, and there are many people out there that know them. No need to pay a ton.

> The problem with Ember is the learning curve because it doesn't usually let > you take shortcuts.

I'm guessing that's precisely one of the main why it's not used widely. Why train an entire dev team on it only to have half leave in a year and have to be constantly retraining on a language with a large learning curve?

<comment><USER8> It's not a language, it's a framework. You can take any experienced JS developer and make them proficient in either Ember or any framework mentioned in the article within days.

People overexaggerate how difficult each framework is. They're all front end frameworks made to do one job. Yes, each of them have their own nuances, but nothing that cannot be understood spending few days coding, reading docs and speaking with someone experienced in this particular framework.

<comment><USER9> Completely untrue. I was at Bocoup and we wanted to standardize on Ember. It took weeks to get devs doing the basics in a large app. Ember isn't gone because its misunderstood. Its gone because we can build the same apps using more suitable libs/frameworks, in a fraction of the time, with less code, less magic, and less upgrade burden. Ember sucked at upgrades, even though they tried to make it better.

<comment><USER10> Ember isn't gone or anything close to it.

<comment><USER11> Not to be a jerk, but can you provide any links to large sites or apps that use Ember? Again,this is a serious question, as I like to keep tabs on trends for JS stuff like this.

<comment><USER12> LinkedIn uses ember, but other than that I have not heard about big examples either.

<comment><USER6> Netflix, FreshBooks, Apple Music, Square (the Dashboard), many others.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> It doesn't mention [http://vanilla-js.com/](http://vanilla-js.com/)

:-P

I know it's just a joke, but maybe there should be a section about not using frameworks at all? I'm also curious about the weight of these frameworks. Once you minify and treeshake everything, what's the minimum you can get down to in order to deliver an app?

Also, do any of these frameworks have a way to degrade for people without Javascript enabled? From what I understand, the only way to do this seems to involve some server-side rendering (and it looks like JS is still required).

I'm also really curious how heavy React/Vue/etc are compared to the original gmail implementation back in 2004 (only of the oldest major javascript/ajax applications that minimized page refreshes).

</comment><comment><USER14> Wow, Dojo is still alive and kicking! I'm going to have to find some time to take it for a spin. I really like the idea of framework that looks to address a few needs, making framework selection easier and less reliant on "Oh Framework X is popular now? Let's use that and hire a bunch of devs for it..."

While Dojo is there, I'm surprised ExtJS is not. I haven't worked with it directly for quite a few years but I know it is still being supported. I seem to recall some backlash around licensing issues so maybe that's caused a dip in market/mindshare?

I liked Elm when I played with it, especially the similarities with Haskell. Unfortunately they had moved away from some of the Haskell like syntax shortly after I started with it, and I didn't feel like I fully understood how to use JSON properly.

Kind of surprised to not see Meteor on there. Haven't used it for awhile, and iirc there were concerns around security, deployment, MongoDB lock in (which I thought they were moving away from?) at the time. For smaller, personal use projects I felt I got moving quicker and easier with Meteor than anything else.

I'd love to see something like this for libraries and tooling. Really feels like a lot of worthy choices, and therefore a lot of high-level knowledge needed to understand which to choose and when.

<comment><USER15> Dojo is literally Satan. Stay far away!

</comment></comment><comment><USER16> Purely from an outsider perspective, it's interesting to see all the different frameworks out there, but for front end devs I can't help but feel that this type of comprehensive list hinders more than it helps. One key thing JS needs less of is fragmentation. If I were in the front end dev community I'd want to see people making the front runners more mature and flexible, not endlessly fragmenting just because they slightly disagree with what a more established framework does.

Looking through a number of the entries in this list you read that it was "inspired by React". Why not just make React more flexible so that your alternative way of handling code fits within it? Does each of these new approaches really require a whole new framework?

Contrast this with something like the .NET Framework (which is something I'm more familiar with). Whilst the CLR has the potential to run frameworks other than the .NET Framework, you don't see the same churn in frameworks that you see with JS. I'd suggest this is due to a mixture of two things:

1\. A greater focus on getting things done over code elegance.

2\. The more mature a framework becomes, the more work is required to match its feature set.

On this second point, if JS continues its constant framework churn, it'll be stuck with immature frameworks. I'd suggest that JS devs should be doing what they can to get past this stage, and if that means (for a few years) treating new frameworks as interesting experiments rather than the next big thing, then that may be a cost worth paying.

<comment><USER11> I actually think fragmentation is ideal, it demonstrates the failures in a system more cleanly. For example, I started with Protoype.js many years ago, after a bunch of research at the time. But then later switched to jQuery, because it was simply better in every way.

There simply was no fixing the problems with Prototype.js, they were inherent in the system.

I think when a fragmentation occurs in every framework, its for the same reason. Consider Angular 1 to Angular 2, they broke backwards compatibility because they had too. Angular 2 could have been called something else, and it would be viewed as "fragmentation" not an "upgrade", but in effect, it was fragmentation.

This is the exact reason why I think all of these frameworks will ultimatly end up in the dustbin of history. Does any major programming language in the last 30 years use a framework that requires multiple build systems, multiple "dialects" of differing syntax just to do what is inherently available already? (but just faster and easier?)

This sounds like the end result is Webassembly, not the "perfect framework".

<comment><USER16> The end result may be development without a 3rd party frameworks, perhaps in a way that allows you to mix and match libraries without needing to use a large underlying framework. However, as things stand now there is clearly a need for JS frameworks. They are plugging gaps in vanilla JS.

My argument isn't that frameworks do not have any utility (right now), my argument is, if you stick to a smaller selection of frameworks and work on both polish and flexibility, you'll have frameworks that make people want to develop in JS. At the very least it'll mean that the basics would be easy, and design decisions could be deferred until later in the site design.

</comment></comment></comment><comment><USER17> Did you learn Jan2018.js yet?

If not your behind and your skills are outdated.....

<comment><USER18> I know people love to shit on JS for being blisteringly fast, but does it really apply here?

All 3 of "the big 3" are over 4 years old, making all of them older than windows 10...

And of the notable category:

Aurelia: around 2014

Elm: around 2013

Inferno: around 2015

Polymer: 2014

Preact: 2016

ReasonML: 2016

Svelte: late 2016

So most a few years old. Yes, it's faster than older technology stacks, because the web is still evolving quite quickly, but it's not as blisteringly fast as many make it out to be.

<comment><USER19> They appear and disappear as fast as startups and projects which use them:)

<comment><USER18> Do you have any information or statistics or studies to add, or did you just want to post your quippy oneliner?

<comment><USER11> I would actually like to know if there's a list of systems, apps, sites, whatever, that are using any particular framework. Using data from Stackoverflow or NPM downloads just isn't the same as real-world examples of actual use.

<comment><USER20> Have you tried [https://stackshare.io/](https://stackshare.io/) ?

</comment></comment></comment></comment></comment></comment><comment><USER21> How did ReasonML (a dialect of a language), or Elm (a language) end up in the list of JavaScript frameworks? Whereas ClojureScript (a language) or Purescript (a language) didn't make it, but libraries/frameworks built on Purescript did.

It doesn't make sense :-/

</comment><comment><USER22> I'm still using Jquery and some of the millions js libraries available only when you do not bind yourself to a SPA framework taking control of the DOM. And it work pretty well I must say!

My opinion is that for 80% of the websites out there, a SPA framework is not only overkill, but is also a bad choice. Your website is probably not Gmail or Facebook. Server side rendering is perfectly fine.

We should start a competition where any framework/no-framework could be used to develop a project and judge the winners using metrics such as : time it took to develop it, compatibility, accessibility, fun to interact with.

<comment><USER19> Web 1.0 (html and hyperlinks) is still valid and working perfectly. Web 2.0 (AJAX and DHTML) is still valid and working perfectly. Web 3.0 ([MVC][MVC][MVC][MVC]) is basically a fully client side application. It takes a professional to identify which solution will be the most optimal given the requirements.

...and yeah - most likely you don't need React+Rxjs+Redux for a wizard-like prev/next multi-select online-quiz, but it's me looking for a job so you're right. Hell - let's throw in async/await as well. You'll need a space shuttle to debug this thing.

<comment><USER11> Nope, I think regular people are completely able to judge.

Which do you prefer, Youtube from a couple years ago, where every page was a page? Or now, where every page is 15 weird loads of something with blank blocks and comments taking a minute or more to display?

Regular users' opinions should matter more than a developers, as they are the ones who use it.

<comment><USER19> In case of youtube the clients are copyright owners and advertisers, not users/viewers. Apparently for the former two this is the perfect experience.

</comment></comment></comment></comment><comment><USER23> Shameless plug, but I think Stencil should be on this list: [https://github.com/ionic-team/stencil](https://github.com/ionic-team/stencil)

It's going to be running behind all Ionic apps in the near future, that's hundreds of thousands of apps in the app stores and the web.

Also, SkateJS is missing. Both Stencil and Skate are Web Component libraries, "frameworks" insofar as React is a framework.

</comment><comment><USER24> > What is less apparent is that Vue has had roughly double the growth rate > over the past year compared to Angular.

Given that you cannot see its growth over the past year in in the chart this guide shows, some might say it's "not apparent at all".

</comment><comment><USER25> I am trying to transition from Ember to React, but calling Ember "historically significant" is odd given adoption by big name companies (including Apple and LinkedIn) and very active development (3.0 should be out in a few weeks).

<comment><USER26> You are totally right... Ember is adopted and actively used by more and more places, people loves it and very easy to work with. Ember evolve a lot all the time, definitely one of the best choice nowadays.

</comment></comment><comment><USER27> I like that the only con for Vue is there's no jobs for it. Having done two major projects in React and Vue, Vue is my preference. While vue is supposedly faster, speed has never been an issue for either. I think the biggest thing for me is it's just easy. While I like React, I think vue is nicer and often more concise, and if you really want jsx, it also supports that.

I also use Bulma for the visual side which works nicely with vue.

<comment><USER28> i mean its also because the author is obviously biased toward vue. see the other comments here for why people actively pick react over vue. dont confuse the printed word for fact.

<comment><USER27> also don't be confused that even when biased it doesn't change the facts.

I built major things with both react and vue, I like both, but I like vue more.

</comment></comment></comment><comment><USER29> The Ultimate Guide to JavaScript Frameworks: Use pure HTML, CSS and JS.

<comment><USER30> What is pure HTML and when does it become impure?

<comment><USER29> When you build a browser insider a browser (aka React), it's impure.

<comment><USER30> So JavaScript dom manipulations are pure? but one specific technique of dom manipulations are not?

<comment><USER29> It's not specifically the DOM modification but the way those frameworks are designed. With React you have hundreds of dependencies, which have hundreds of dependencies. You lost me right there.

<comment><USER30> React has zero dependencies to use it, actually.

[https://github.com/facebook/react/blob/master/package.json](https://github.com/facebook/react/blob/master/package.json)

<comment><USER11> Can you use react without Node or NPM or a compiler/transpiler or build tool?

<comment><USER30> Of course - just pop it in a script tag and use the React object functions to render your DOM (which is exactly what transpiled code does)

<comment><USER11> I've looked into Vue.js, and they seem to indicate that it's easier to get up an running than react (using what you describe here). Are you suggesting vue.js and react work exactly the same?

<comment><USER30> I don't know because I don't use Vue. What you'd be missing if you dropped in the react library and did no compilation at all is the ability to use JSX. I'm guessing vue's argument is their attribute tags still work in their minimal deployment whereas with React you'd be manually wiring up things to the React object functions.

So, with React, instead of:

        return
My component!

You use:

        return React.createElement('div', {}, 'My component!);

Some people like the more implicit style anyways (although I don't and I don't know anybody who does at this point)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER31> Ember isn't anywhere close to dead.

LinkedIn, Apple, Microsoft Store, DigitalOcean, Twitch.tv... Still actively developing on Ember.js. Version 3.0 is coming soon.

Unlike React/Vue EmberJS has LTS support releases as well which is less risky for corporations.

</comment><comment><USER32> > Vue.js: Current job market is less than that for React and Angular

Sounds more like a pro to me as it is the up-coming alternative.

<comment><USER33> This is good for Vue

</comment></comment><comment><USER34> Choo is pretty underrated IMO. Very small and fast, vanilla js, real DOM node diff, simple state management and routes built in. Also a very supportive community, esp Yosh.

</comment><comment><USER35> SEO friendly? Server-side rendering support?

<comment><USER36> Vue and react have SSR frameworks, as I'm sure many others do as well.

I'm not sure if it's a big enough feature to include in the tags this site uses. ¯\\_(ツ)_/¯

<comment> http-teapot For React, could you link a few? I am genuinely interested

<comment><USER36> I don't actually use any of this, so I'm not intimately familiar, but I found a promising looking framework and a help article on redux itself.

[https://github.com/zeit/next.js/](https://github.com/zeit/next.js/) [https://redux.js.org/docs/recipes/ServerRendering.html](https://redux.js.org/docs/recipes/ServerRendering.html)

</comment></comment></comment></comment><comment><USER37> Whats the right choice for building a repacement for an existing app that has survived for 15 years and you want the replacement to last at least another 10? Whats the long term hedge?

<comment><USER38> If you think Facebook will still be there in 10 years, then you can safely pick React.

<comment><USER39> > If you think Facebook will still be there in 10 years, then you can safely > pick React.

At the same time, you could've made that same argument at some point with Google and AngularJS, Dart, Polymer, etc.

Not necessarily a safe bet.

<comment><USER37> I completely agree re: sponsoring company - although react seems to be orders of magnitude more popular, so someone is going to have to be supporting these apps that people are creating now you'd expect, right?

</comment></comment></comment></comment><comment><USER40> Ember is the PostgreSQL of JavaScript frameworks.

Similar to the way Postgres has deep roots that trace back to Ingres[1] in the days before SQL was a solidly established standard, Ember traces it roots back to SproutCore[2] in the JS framework pre-historic era of 2010.

And the same way PostgreSQL was seen as a second-tier or only "historically significant" open source database, the PostgreSQL team just kept at it, toiling away year after year, steading churning out awesome code and excellent documentation, getting better and better with each release. Like clockwork.

In the same way PostgreSQL is now, finally, enjoying more popularity and getting the recognition (long overdue in my opinion) for the awesome platform that it is, I expect that in time more developers will come around to appreciating Ember. The Ember leadership is definitely approaching the project and the processes around it like they intend to be not just relevant but pushing the boundaries for a long time to come.

For one example this boundary pushing, you should not miss @tomdale's talk at ReactConf about GlimmerJS (the view layer extracted from EmberJS). It is, in my humble opinion, simultaneously mind-blowing and and inspiring.[3]

[1] [https://www.postgresql.org/about/history/](https://www.postgresql.org/about/history/) [2] [http://yehudakatz.com/2011/12/12/amber-js-formerly- sproutcor...](http://yehudakatz.com/2011/12/12/amber-js-formerly- sproutcore-2-0-is-now-ember-js/) [3] [https://www.youtube.com/watch?v=nXCSloXZ- wc](https://www.youtube.com/watch?v=nXCSloXZ-wc)

</comment><comment><USER41> Starting from fresh, I would honestly recommend PureScript or Elm (and eventually Haskell/GHCJS when that moves to WASM).

The benefit you get from the amazing type systems and compilers these have, is worth so much when it comes to refactoring, and later on boarding new people, giving them the confidence to make changes thanks to the help of the compilers.

<comment><USER38> If you want type-checking, going with React + Flow/Typescript is a wiser decision than choosing Elm. Better support, better ecosystem, much bigger community by a huge difference.

<comment><USER42> If you want strong static typing on par with haskell, check out reasonml.

</comment></comment></comment><comment><USER43> Here is a guide: All of them suck (with the exception of react which is not actually a framework). Wait for 10 more years.

</comment><comment><USER44> What are the "clear best practices" for Angular? I'm just starting in Angular 5 and I'm starting down the ngrx path. From what I can tell there's many different ways to structure the project and ngrx is in version hell - <USER2> current docs on master reflect an unreleased version.

</comment><comment> bcit-cst Honest Question. What is breakdown of market share angular versions market share? does anyone have these stats? I know not a lot of new projects are being done in angular 1 but I am under the impression that majority of jobs are still for angular 1.

</comment><comment><USER45> domvm is the most underrated in this list. one of the fastest and smallest out there that's dependency free.

[https://github.com/leeoniya/domvm](https://github.com/leeoniya/domvm)

<comment><USER46> I concur! I've been going knee deep in experimenting with this over the weekend. I like the ala carte approach if that's the right way to describe it.

</comment></comment><comment><USER47> Since when does a small library or even a single function count as a framework? Shouldn't a framework provide some sort of structure and I just plug in my app-specific code?

</comment><comment><USER48> Today I was playing around with a webpage, and realized it was the first time I had directly touched the dom in like a year and a half. It was so simple and joyful. I miss it.

</comment><comment><USER49> I'd like to see pro and cons for all the lower 'smaller' frameworks and methods. Maybe we can contribute? I have used many of them. Seems like the ones with pros and cons, React, Vue, Angular etc everyone already knows. I think there is opportunity here to give more depth to lesser known frameworks. The top 5 are pretty well discussed at this point.

</comment><comment><USER50> What do you think is the long term prospects of frontend development?

I have come to terms with continuous learning in frontend but I can't help but feel that I am standing on unstable ground. That one day, all the knowledge that I have accumulated would become irrelevant.

I have come to the point that I am learning backend using Python just to have a fallback.

</comment><comment><USER51> Not really sure I get the constant Vue v React debate. They both do basically the same thing and each support almost all the concepts the other does. Both are great, neither is significantly better (after about a year full time with both in various projects).

</comment><comment><USER52> [https://jrsinclair.com/articles/2018/react-redux- javascript-...](https://jrsinclair.com/articles/2018/react-redux-javascript- architecture/)

<comment><USER52> That link was recommended to me as a simple, clear explanation of React. I'm a real minimalist - just plain vanilla Javascript serves my purposes - but I'm glad I read parts of that explanation, as I got familiarity with the term "render" and could see that React is the go-to framework for mobile.

</comment></comment><comment><USER53> Yes, it's a lot. But imagine the opposite. Imagine nothing new came out, and everything just stagnated. Evolution, experimentation, testing things out, this is a _good_ thing.

</comment><comment><USER54> Read with interest to see what it said about Vue: better performance than React and Angular. Is this true? Any real world benchmarks to back it up?

<comment><USER55> Linked at the top of the article: [https://rawgit.com/krausest/js-framework- benchmark/master/we...](https://rawgit.com/krausest/js-framework- benchmark/master/webdriver-ts-results/table.html)

</comment></comment><comment><USER56> Come on. Where the heck is Mithril.

</comment><comment><USER57> to me the war is already over, for new projects, just start with react, react- ecosystem probably will become the dominant framework from 2018 on.

</comment><comment><USER58> Mithril is a good one

<comment><USER59> I second Mithril as a great choice. Two things I wrote in it:

[https://narrafirma.com/try-narrafirma/](https://narrafirma.com/try- narrafirma/)

[https://github.com/pdfernhout/Twirlip7](https://github.com/pdfernhout/Twirlip7)

Combining Mithril ( [https://mithril.js.org/](https://mithril.js.org/) ) with Tachyons ( [http://tachyons.io/](http://tachyons.io/)) or a similar CSS approach is also a great option to avoid having to write that much CSS. That way almost all your code can be in one language and easy to refactor -- especially if you use TypeScript.

</comment></comment><comment><USER60> Reasons why Vue will rock your socks off

\- Don't need to know jsx!

\- Sane way of scripting puts the script in an object and each component is <template>html</template>

\- Event buses allow sharing of variables between child components without either redux or pushing variables down one child at a time (finally!)

\- v-for looping is saner than reacts mapping

\- v-if allows v-if statements without renderIf component or multiple render statements in react (antipatterns boo!).

\- two way data binding with vue-model

\- native vuex with an index file that holds state sanely, rather than just having state held in each reducer as done in react

\- Great documentation!

\- Yay !

<comment><USER61> The points you've listed are the very reasons why i would prefer React actually ...

\- JSX _fixed_ all the templating issues from 10 years ago, i see no reason to go back to dependency injection, scope loss, arbitrary code-in-html expression and a semi-javascript accent

\- Presentational view logic belongs to the controller while business logic is elegantly abstracted in React: view=fn(state). There's no point in ripping view creation from the presentational layer.

\- Context and higher order components. Can't have those in an imperative architecture.

\- v-for is not sane to me. Also odd, being forced to mix-in extensions for the simplest basics that go beyond the few presets Vue provieds: [https://github.com/Krizzu/vue-for-range](https://github.com/Krizzu/vue-for- range) A React user doesn't solve problems by searching the internet for framework specific solutions, they import _ from 'lodash' and use _.range, like everyone else does.

\- {condition &&
hello javascript
}

\- We have suffered through two-way data bindings with Angular already

\- Vuex is not native. It mutates state by aggressively transforming state into setter/getters, with nasty edge-cases. Once Vue switches to version 3 using proxies, you'll maintain two incompatible codebases. React has Mobx, even though Redux is great. Also lots of lean and promising alternatives like Unistore.

\- Knowing React you don't rely on documentation (though official docs are on point). It is simple enough to grasp it after looking at a view examples once. The api surface and cognitive overhead of React is a tiny fraction of Vues. Coming from Angular it is amazing that one month of learning and half a year of consulting docs turned into a week and a couple of months consulting with Vue. Yet, you can learn React fully in the shortest amount of time while simply remembering the few things you'd need to know. A generic round-trip, for instance the one at egghead, costs you 60 minutes total.

\- [http://www.npmtrends.com/angular-vs-react-vs-vue- vs-@angular...](http://www.npmtrends.com/angular-vs-react-vs-vue- vs-@angular/core)

<comment><USER62> These are exactly the same reasons that I think React is the best. Vue looks like it's going backwards compared to React. Furthermore, you get native mobile apps for free with React Native. Also, React has a much, much bigger community and bigger companies supporting it.

<comment><USER61> Not just mobile apps:

Windows: [https://github.com/Microsoft/react-native- windows](https://github.com/Microsoft/react-native-windows)

Macos: [https://github.com/ptmt/react-native- macos](https://github.com/ptmt/react-native-macos)

Linux (Qt): [https://github.com/status-im/react-native- desktop](https://github.com/status-im/react-native-desktop)

AR: [https://github.com/HippoAR/react-native- arkit](https://github.com/HippoAR/react-native-arkit)

VR: [https://facebook.github.io/react-vr/](https://facebook.github.io/react- vr/)

TV: [https://github.com/react-tv/react-tv](https://github.com/react-tv/react- tv)

Shell consoles: [https://github.com/Yomguithereal/react- blessed](https://github.com/Yomguithereal/react-blessed)

Word: [https://github.com/nitin42/redocx](https://github.com/nitin42/redocx)

Pdf: [https://github.com/diegomura/react- pdf](https://github.com/diegomura/react-pdf)

3d: [https://github.com/Izzimach/react- three](https://github.com/Izzimach/react-three)

Sketchapp: [http://airbnb.io/react-sketchapp/](http://airbnb.io/react- sketchapp/)

Keynote: [https://twitter.com/nishb1/status/913744410537537536](https://twitter.com/nishb1/status/913744410537537536)

Hardware: [https://github.com/iamdustan/react- hardware](https://github.com/iamdustan/react-hardware)

Samplers: [https://twitter.com/GabeRicard/status/911989894267973633](https://twitter.com/GabeRicard/status/911989894267973633)

And so on ...

Finally being able to transfer knowledge and code, and due to the generic nature of React in some cases even everyday eco-system packages can be applied. For instance: [https://github.com/gaearon/react-blessed-hot- motion](https://github.com/gaearon/react-blessed-hot-motion) (native console app using plain react-motion to move stuff around).

<comment><USER63> wew dude o.o

</comment></comment></comment></comment></comment><comment><USER64> One non-trivial thing my team has experienced using Angular over the past year; the decision to abandon version numbers makes searching for answers or documentation a nightmare. Ironically the company that should understand search the best hobbled the ability for developers to search for answers.

TypeScript is nice. Actually writing code in angular is a fine experience. It's all the stuff around that which isn't great. We recently upgraded our app from Angular 4 to 5 without much fuss and that was nice. But the team should really go back to using version numbers. They exist for good reason.

</comment><comment><USER65> "Polymer is a Google-backed libary focused on Web Components, a proposed group of technologies that are currently not well-supported in browsers."

Ha ha ha ha ha ha ha. Wow.

<comment><USER66> I gave up on Polymer. I can't really explain it well but nothing worked as you expected it to. v2 was just hacked v1 (hybrid?) and so trying to actually figure out how to use v2 was impossible since every major custom element was hybrid. The documentation was bad, and the things you might want to use were somewhat depreciated, but you had to figure that out on your own. Then the standard glacial pace of development means that v3 was announced over half a year ago and as far as I can see, nothing has happened.

</comment></comment><comment><USER67> It's lacking the best - Imba. The rest are just funny toys. Sad it's lacking documentation. Hope it will change soon because it kills with performance and developer experience.

<comment><USER68> Hmm, "lacking documentation" and "great developer experience" seem mutually exclusive to me.

<comment><USER67> Some people read documentation, some tests (lol) to know what's going on. I read code - and Imba has really nice code to read. Also they are responsive on Gitter. But as I said. It's a pity.

</comment></comment></comment><comment><USER69> Author of CxJS here, which is also missing from the list. Please consider CxJS if you're looking for an enterprise-grade framework with ready to use form elements, form validation, advanced grid (data-table) control, navigational elements, tooltips, overlays, charts, routing, context-sensitive layouts, theming, drag & drop, culture dependent formatting and more.

[https://cxjs.io](https://cxjs.io)

[https://github.com/codaxy/cxjs](https://github.com/codaxy/cxjs)</comment>


Apple TV Project Is Said To Be Led By iTunes Creator Jeff Robbin - <AUTHOR> http://www.bloomberg.com/news/2011-10-24/apple-effort-to-develop-tv-is-said-to-be-led-by-itunes-creator-jeff-robbin.html

<comment><USER2> I hate to say it, but this isn't a good sign. iTunes is one of the worst abominations of user interface, design, and intuitiveness I've ever used.

</comment><comment><USER3> There isn't a technology problem with tv. There is a business problem. The infrastructure for creating content costs more than users want to pay. Bad UIs are a symptom, not the disease.

<comment><USER4> The cost thing is a fallacy. Companies just want to make more money by forcing you into paying for their other channels.

As a platform, TV is horrible. I can't get the content I want and the content that is available is sporadic and often unavailable because of having only two tuners and scheduling conflicts.

The real problem is that it's a cartel. Easy money for the big companies. Why the heck do I need 15 religious channels and 20 home shopping channels? Let alone sports etc etc.

<comment><USER3> The TV business model is that customers pay for more than they consume. The bill keeps running while you're at work. The bill is the same if you go on vacation. It doesn't matter, because you pay in advance for more content than you can possibly ever consume.

That is the business model. That is the way it works. That you pay for shopping channels that you don't care for allows them to pay for expensive shows like Mad Men.

So what we need is _real_ disruption in the TV business but that is _not_ a new UI. It's a fundamental change in the way TV programming is financed.</comment></comment></comment>


Malcolm Gladwell rips into Stanford University's request for donations - <AUTHOR> http://www.businessinsider.com/malcolm-gladwell-rips-into-stanford-universitys-request-for-donations-2017-2 <comment><USER2> I think that tax exemptions for universities should come with a lot more strings attached. These exemptions are actually worth considerably more per undergraduate that even the best state funded public institutions receive per undergraduate.

[http://www.slate.com/articles/business/moneybox/2015/09/harv...](http://www.slate.com/articles/business/moneybox/2015/09/harvard_yale_stanford_endowments_is_it_time_to_tax_them.html)

Here's the report

[http://www.slate.com/articles/business/moneybox/2015/09/harv...](http://www.slate.com/articles/business/moneybox/2015/09/harvard_yale_stanford_endowments_is_it_time_to_tax_them.html)

Personally, I think one condition should be to increase the scale of undergraduate admission. Berkeley and UCLA, for instance, enroll around 25,000 undergraduates, whereas Harvard and Stanford are in the 6,000-8,000 range. This is of course a favorable arrangement for Stanford - enrolling very few undergraduates keeps the US News numbers happy, and allows them to focus mainly on research and graduate students. They shower a massive amount of money on a small and largely affluent student body, and enjoy a huge tax advantage because they benefit the public.

Although these institutions are generous with low income students, keep in mind that they 1) enroll a much lower percentage of low income students than UCLA or Berkeley, and 2) enroll far fewer students overall. As a result, Berkeley enrolls more low income students than the entire Ivy League combined. This is true of UCLA and several other UC campuses.

Why are we giving Harvard and Stanford a huge tax break in order to shower benefits on a tiny and largely affluent student body? The state funding for Berkeley and UCLA comes with all kinds of strings attached, and it's considerably less per undergrad than the value of this tax break.

We have, through policy, put our public institutions at a severe financial disadvantage. This isn't just a result of market forces or choice, this is built into our tax code and regulatory state.

</comment><comment><USER3> Anyone knows why rich universities keep that amount of money lying in the bank?

<comment><USER4> I imagine banked money isn't taxed, but any spent would be, so every expenditure shoots up a bonus 20-40% relative to the value of just leaving it alone. Which means any revenue has to match, and exceed, the tax to actually be profitable (versus sitting on it)

Same way, I think, apple keeps $800bn unspent; not spending is simply more profitable than spending

And i guess at that level of money, its generally not worth doing much unless its big (due to all the overhead necessary to keep such funds available and tracked).

<comment><USER5> Apple is different than Stanford. Stanford's fund is not an IRA - there is no tax either when they withdraw from the fund. Apple has all that money stashed because they can't repatriate it to the United States and their shareholders, without realizing corporate income tax on it in the US. So as long as they keep it overseas, the value of their stock goes up because they control the cash, but they can't award it back to their shareholders as dividends without biting the dividend tax bullet.

</comment></comment></comment><comment><USER5> Okay, Malcom, let's tax private universities so nobody gets a great education. You're insane if you think those dollars should be taken from private universities and be spent on public schools!

<comment><USER6> I went to a state school and received a great education that was very cheap. Not sure what your comment was meant to imply?</comment></comment>


Qt for Chrome / Native Client - <AUTHOR> http://lists.qt-project.org/pipermail/development/2015-June/022063.html

<comment><USER2> Good news.

Another solution is to use emscripten: [http://vps2.etotheipiplusone.com:30176/redmine/emscripten- qt...](http://vps2.etotheipiplusone.com:30176/redmine/emscripten-qt- examples/scribble.html)</comment>


Facing possible expulsion from the US, many former DREAMers could come to Canada - <AUTHOR> https://www.thestar.com/news/canada/2018/06/21/facing-possible-expulsion-from-the-us-many-former-dreamers-could-qualify-to-come-to-canada-trudeau-told.html <comment><AUTHOR> Title edited to fit.</comment>


First ever color X-ray on a human - <AUTHOR> https://www.yahoo.com/news/first-ever-colour-x-ray-human-005837590.html <comment><USER2> Photon counting sensors have been available for quite a while. This is unfortunately not new. It's not 'color' it's multi channel imaging. X-ray tubes produce wide spectrum of x-rays, these type of sensors are able to put different bands to different buckets.

Coloring is arbitrary and conveniently chosen in the example to look like visible wavelength response as if the patient was dissected. It does not work for more complicated anatomy and even in this case needs very likely post processing.

I wish we could have a peek inside the patient as if we had opened it up but this is not yet that.

<comment><USER3> Which similar to images we see of space where they have altered detectors' responses from different wavelengths of light to be images in the visible spectrum. So we produce beautiful images, but they aren't accurate to what space would look like to the naked eye.

<comment><USER4> Probably more useful than the naked eye in many cases. The colors our eyes can see mostly evolved to detect ripe fruit, not diseased tissue.

<comment><USER5> Why did fruit evolve to change colors when ripe?

<comment><USER6> In many cases so animals would eat them, digest the seeds, and poop them out somewhere else.

<comment><USER5> Why did animals evolve an attraction to ripe-colored fruit?

</comment></comment></comment></comment></comment></comment><comment><USER7> There are slightly more details on the product page [0]. It looks like they have a small bore version right now, they're working on making a human sized one. There is one test image that shows part of a wrist, a watch, and part of a hand.

[0] [https://www.marsbioimaging.com/mars/overview/](https://www.marsbioimaging.com/mars/overview/)

<comment><USER8> Oh yeah, and if you scroll down, there's a lot more detail. Sounds like you can customize the color mapping somewhat in their software -- there's mention of adjustable binning and customizable energy thresholds.

</comment></comment><comment><USER9> Another article at [http://www.eurekamagazine.co.uk/design-engineering- news/firs...](http://www.eurekamagazine.co.uk/design-engineering- news/first-3d-colour-x-ray-of-a-human-using-cern-technology/176081/) It sounds like the chips are detecting the energy of each xray, which is equivalent to a wavelength, and that data is then used to synthesize a 3D image.

<comment><USER10> The 3D nature of the output is still generated using tomography (CT). The colour comes from the x-ray energy which is detected using two thresholds giving effectively two channels of data.

</comment></comment><comment><USER11> [https://en.wikipedia.org/wiki/Medipix](https://en.wikipedia.org/wiki/Medipix)

After much searching I found the energy resolution here [1], stated as <2 keV. For comparison, a modern silicon drift diode fluorescence detector will have an energy resolution of ~130 eV.

[1] [http://dpnc.unige.ch/seminaire/talks/campbell.pdf](http://dpnc.unige.ch/seminaire/talks/campbell.pdf)

Also: [http://iopscience.iop.org/article/10.1088/1748-0221/8/02/C02...](http://iopscience.iop.org/article/10.1088/1748-0221/8/02/C02016/pdf)

</comment><comment><USER12> "The new device, based on the traditional black-and-white X-ray, incorporates particle-tracking technology developed for CERN's Large Hadron Collider."

Now i have an easy to understand example to make my skeptical friends understand how CERN's research benefits us in myriad ways.

<comment><USER13> Fundamental science research always has applications decades in the future. It's pretty rare that practical applications are found "now".

<comment><USER14> Famously Hertz claimed there would be no application of radio waves.

</comment></comment></comment><comment><USER15> This feels like a real black swan event to me. I guess I just assumed that black-and-white x-rays were as good as it gets, and that there wasn't any room for improvement. I've never even thought about the idea of a color x-ray. It's very exciting to see something that could change the entire field of radiology.

<comment><USER16> OsiriX (and others) have been rendering radiology imaging in color and 3D for quite a while.

[https://www.osirix-viewer.com/osirix/osirix-md/](https://www.osirix- viewer.com/osirix/osirix-md/)

[https://www.osirix-viewer.com/resources/dicom-image- library/](https://www.osirix-viewer.com/resources/dicom-image-library/)

Patients can even download the lite version and review their own images.

<comment><USER17> While the title is disingenuous because it's easy to misunderstand it's actually very close to the truth. Xrays are just a very energetic form of light or electromagnetic radiation, above the spectrum of visible light.

Until now we only measure the general brightness of the xrays, and osirix translates (even marginal) differences in brightness into different colors. This makes features of the same brightness easier to spot for a human.

This new technique actually measures different wavelengths of the xrays on our detectors and since we call the different wavelengths in visual light "color" it's a good analogy to call them the same for xrays. It can differentiate different colors of xrays.

This is really promising, nuances in chemical composition may lead to differences in opacity for different wavelengths.

</comment></comment></comment><comment><USER18> Article is short on details. Do they take pictures with X-rays at three different wavelengths, and then render the three resulting images as individual color channels?

<comment><USER19> And get 3 times the does of radiation? Seems impractical, but possibly true.

<comment><USER20> A chest x-ray will give you 0.1 millisieverts. That's the 60th of the dose limit used in scientific facilities like cern. And 200 times less than for radiation workers.

It's still ok, it's not supposed to be that of a regular procedure.

<comment><USER21> It actually looks like it's a CT scan, which is a type of x-ray. A chest CT scan is 7 mSv.

</comment></comment></comment></comment><comment><USER22> The GDPR consent screen for this is scary. They want to share your data with around 200 different "partners".

<comment><USER23> And a year ago they wouldn't even tell you that.

</comment></comment><comment><USER24> I remember discussing this as a possibility with Phil and Anthony in CERN Cafetera in 2007/2008 when they had first licensed some imaging tech from CERN. It is absolutely thrilling to see how far the team have come since then and to see them start to get the wider coverage their achievements deserve. Seeing this on HN just made my day.

</comment><comment><USER25> Direct link to the source:

[https://home.cern/about/updates/2018/07/first-3d-colour-x- ra...](https://home.cern/about/updates/2018/07/first-3d-colour-x-ray-human- using-cern-technology)

</comment><comment><USER26> How much exposure to radiation is needed for this? Their brochure indicates 20-80 mGy/mSv. But a typical clinical head CT is only 2 mGy. AFAIK, exposures that high would not be acceptable for clinical human use.

It's probably inevitable that a 'spectral' scanner requires greater exposure than clinical CT scanners since the intensity of a spectral X-ray source apparently varies during the scan. This implies slower scans and more X-ray exposure than a conventional CT.

Apparently that's why MARS' current product is intended for preclinical (non- human) use only.

<comment><USER4> I think regular CT already causes cancer in ~1/2000 uses. So 10x that dose would probably cause cancer in ~1/200 uses? That's pretty scary.

<comment><USER27> That's assuming dosage has a linear relationship with instances of cancer. Scary regardless, though.

</comment></comment></comment><comment><USER28> This is very interesting! I can't wait to learn more about it. There are, however, some questions to consider:

\- For a given procedure, will the radiation dose be higher than its corresponding 'black and white' X-Ray?

\- If the radiation dose is higher, does the color add additional information or does it increase the diagnostic capabilities? Traditional X-rays (CT) already distinguish between soft-tissue, bone, fat, cartilage... so will the color distinguish structures within soft-tissue?

</comment><comment><USER29> The videos on their press page are stunning. Especially the ankle rotation video.

[https://www.marsbioimaging.com/mars/media- pack/](https://www.marsbioimaging.com/mars/media-pack/)

[https://drive.google.com/file/d/1JyRdqyU-j5PambGUgfs4Cx5uKf3...](https://drive.google.com/file/d/1JyRdqyU-j5PambGUgfs4Cx5uKf3wdSG4/view)

<comment><USER30> Doesn't look that much better than a thin slice CT with custom colormaps ("CLUTs"), using a regular greyscale for the high density tissue (bone), and a reduced alpha channel for the low density tissue rendered in yellow.

You can get that with a Dicom station and 5 minutes, or for free using Osirix at home and trial/error if you are not used to CTs.

Ask for the CD next time you get a scan, or download one of the many examples, and play with Osirix.

<comment><USER31> That may be, but an X-ray is a simpler and cheaper procedure. To achieve "feature parity" with something more expensive is an advance.

I'm looking up the things you mentioned and they're interesting, though. I'd love to see imaging and home-computed assessments become a bigger part of the "quantified self" movement.

<comment><USER32> What you linked to _is_ a type of CT scan (CT uses X-rays).

</comment></comment></comment></comment><comment><USER14> Do you need a different detector? Can't you just do multiple exposures at different energies like dexa?

</comment><comment><USER33> This honestly seems like raw black magic. How is this possible?

<comment><USER34> I mean, all color is is your brain's perception of 3 input channels. Your eye can detect (roughly) the amount of stimulation from blue light, green light, and red light... your brain interprets this as a color.

You can do the same thing for X-rays, or any 3-channel data source.

(Fun fact: because of this, there are colors that your brain can understand but aren't wavelengths of light. Magenta is seen when your blue and red sensors are activated... but there is no single wavelength of light that can do this. Meanwhile, your eye can't tell the difference between monochromatic yellow light, or red and green light being received simultaneously. This is why RGB monitors work, and why you can't represent every color you can see on a computer screen.)

</comment></comment><comment><USER35> TL;DR it's CT with false colors

</comment><comment><USER36> Every now and then a question pops as to why we have to invest billions in researching particle physics and how can it improve our lives. Well this is how.

<comment><USER16> Surely much more to come too.</comment></comment>


Secret European deals to hand over private data to America - <AUTHOR> http://www.guardian.co.uk/world/2013/jun/29/european-private-data-america

<comment><USER2> Since this Snowden story broke, there has been a lot of (justified) criticism of the US government. And rightly so. But I think anyone - living in the US or not - would be foolish to think that most (if not all) other world governments don't do similar things. Especially the more advanced, "first world" governments. Maybe the government of Botswana or Nicaragua or Kenya doesn't have such well developed intelligence facilities as those of the USA, but I expect their governments are spying on people as well.

It's just that this story is particularly galling to Americans since we like to think that the 4th Amendment to our Constitution provides some measure of protection against indiscriminate snooping by our government... so finding out (well, really, _confirming_ ) that they are doing this, points out a hole in our system.

Other countries may not have the explicit wording in their founding documents that would seem to protect against this stuff... but then, maybe some do. I'm not familiar enough with every world government to say. But regardless of what your nation's charter says, I'd pretty much be willing to be money that they are doing things in the name of "national security" that you wouldn't approve of if you knew about them.

</comment><comment><USER3> "This article has been taken down pending an investigation."

WHAT?

In any case, here's the google cache: [http://webcache.googleusercontent.com/search?q=cache:www.gua...](http://webcache.googleusercontent.com/search?q=cache:www.guardian.co.uk/world/2013/jun/29/european- private-data-america)

</comment><comment><USER4> When Merkel tried to defend Obama (but not in a completely obvious way), I realized Germany must be up to no good, too. It reminded me of when Obama made a speech about Egypt, when the revolution was going on. It was pretty obvious he didn't want to criticize the leader (the one the people were creating a revolution against) _too much_ , because they had huge ties with Egypt, and they supported him a lot in the past (like US does with Saudi Arabia, and other dictatorships around the world).

Hopefully Merkel loses her position over this at the next election, but I want her to lose it over _this_ issue, so the ones coming after her know not to repeat her mistake.</comment>


Ask HN: Creative direction as a service? - <AUTHOR> I've been designing products for large co's and smaller Startups. And I run a design shop. Was thinking of a new service where I would offer creative direction to entrepreneurs for a 250/mo subscription fee.
Basically when ever you need creative / design help, you can ask for directions and advice.
Things like: what colors to use, why your newly codes webpage looks like crap, how to improve the UX of your landing page, etc.
I would then reply in 24h with clear and practical directions that you can pick up and implement.
Question is, would this service be helpful? <comment><USER2> I've been curious about the viability of this sort of advisory retainer model for other areas. Has anybody tried something similar?

I think of it like a stripped-down agency model. From a customer perspective, you have no long-term contracts or commitments, and you can get normally cost- prohibitive expertise at a steep discount. The catch is that the execution falls squarely on your shoulders.

But for a startup with a limited budget and lots of sweat to offer, in certain areas that can be totally fine as the difficult part isn't necessarily in the building but in making sure the right thing is being built.

To the OP, I have a few questions:

1\. How would you define your ToS so as to ensure profitability? I could see people taking advantage if it were all you can eat and constantly asking for answers on slightly different designs to make sure they had you making the bulk of the decisions.

2\. Time=money in this case. How scaleable is this model? Or do you not plan on it scaling to a large number and would be happy if you only had a relatively small number of customers to pay the bills?

3\. What would your deliverables look like? Would you provide actual sketches/comps? Detailed write-ups? Or just brief written responses to very specific questions?

4\. To add to #3, if you limit it to answering questions, how will you keep user satisfaction high if you get a lot of overly broad questions/asks that you then need to push back on to keep the scope limited and profitable?

5\. 24h turnaround is nice in theory, but do you really plan on being available during weekends and holidays? What if you get sick? If this is in essence a productized one-person consultancy, how do you manage expectations around that?

6\. In general, what's your game plan for needy customers? If you fire them, you get a bad reputation. If you give in, you kill your margins. If you push back, you risk churn.

</comment><comment><USER3> Isn't this just UX/UI freelancing with some marketing thrown in?

<comment><AUTHOR> No its an advisory service. Im used to designing the UI and UX at a much higher price point. The idea here is to offer a cheaper package where I would provide instructions on how to diy.

<comment><USER3> Interesting. I'm no entrepreneur, but I imagine this might be more useful if available as a one-off instead of, or in addition to, a subscription.</comment></comment></comment>


Ask HN: Open Source project (Python) - <AUTHOR>

Hi,
I am interested in contributing to open source projects that are using Python.
I never contributed to open source project before but I would like to start now. Nevertheless, I know that there are a lot of libraries and frameworks in Python so I am not interested in those. I am more interested in maintaining/contributing an application(eg: Blender)
Do you know where can I start? <comment><USER2> Check <https://openhatch.org/>

There are a few end user apps written in Python that are seeking contributors (Serpentine, MV3D...)

<comment><AUTHOR> This is awesome. Thanks!

</comment></comment><comment><USER3> I'd start by looking at Github and Pycoder's Weekly for some possibilities. If you see something that catches your interest, send the author a message!

<comment><AUTHOR> Thanks! Already on Github and subscribed to PyCoder!

</comment></comment><comment><USER4> guake! (:</comment>


Hackers Take Down the Most Wired Country in Europe - <AUTHOR> http://www.wired.com/politics/security/magazine/15-09/ff_estonia

<comment><USER2> Bruce Schneier suggests that this article is a little too sensationalist: [http://www.schneier.com/blog/archives/2007/08/cyberwar_in_es...](http://www.schneier.com/blog/archives/2007/08/cyberwar_in_est.html)

</comment><comment><USER3> WE refer to them as 'hackers' too? :-(

<comment><USER4> I think innovative and exploratory cracking can properly be called hacking, but this article refers to the crackers in question as "script kiddies," ergo not hackers.

<comment><USER3> Yeah. Journalists seem to have done a really good job of tainting the word 'hacker' that even the submission-titles here show the effect.</comment></comment></comment>


Getting Things Done for Developers - <AUTHOR> http://ahmetalpbalkan.com/blog/getting-things-done-for-developers/ <comment><USER2> I strongly disagree that developers should stop whatever they're doing just to do any 2-minute task that comes up. This would be a huge distraction. When you're a developer, you need long chunks of quiet time to focus on your project. Constantly interrupting that focus to do 2-minute tasks is a sure way to make sure you can never get "in the zone" and concentrate on anything.

Personally, unless a 2-minute task is time-sensitive, I let a bunch of them pile up, then take 30 minutes or so to do them all at once.

<comment><USER3> Agreed. One of my worst productivity killers at work is the "hey, could you do this little thing? I know it'll only take you two minutes" type of request.

It might only take two minutes to do, but it's also just botched a nice hour long flow with the context switch.

</comment></comment><comment><USER4> Another item to add: Be good at filtering tasks when they come in.

A lot of people are not good at simply discarding work when it comes in, which is the best time to say 'No' or do the quick analysis to see whether it will actually add value.

Unfortunately, this takes some time and intuition to build up. You have to trust yourself that you can make decisions that are fast and accurate.

</comment><comment><USER5> Does it really work to (try to) split your tasks in to 15 minutes chunks?

I often feel this kind of approach just ends up consuming more of my time as I'm constantly organising and splitting my tasks instead of just doing them.

</comment><comment><USER6> This is similar to what I'm doing. I want to add, that there is always a rule - there are no strict rules.</comment>


Ask HN: Which technical interview process would you prefer? - <AUTHOR> 1. White boarding, algorithms. (aka. Google style)
2. Pair programming on site with the team on the actual product for half a day.
3. Take home assignment, with a follow up, extending code onsite.
4. Look at my github profile.
5. something else? <comment><USER2> 5\. No technical interview. I understand there are lots of fakers and people that overestimate their abilities, but all my degrees and experience should be enough for you. So lets skip to the part about whether we like each other enough to work together. If you don't like me it's probably because my qualifications are threatening to you or the expert beginner(s) you hired to be your top dog(s). A technical interview is only going to make that situation worse.

</comment><comment><USER3> Any interview which is about: "I don't care what you already know. I care about how you approach things that you don't know about".</comment>


Show HN: Chext – a shell utility to change file extensions - <AUTHOR> https://github.com/joe-antognini/chext <comment><USER2> In zsh:

      autoload zmv
      zmv '(*).baz' '$1.bar'

</comment><comment><USER3> How is it more convenient than `mv foo.bar foo.baz`?

<comment><USER4> Now try with more than one file like this:

        mv *.bar *.baz

This is one place where Windows CMD works:

        ren *.bar *.baz

It can't work on Unix shells because wildcard expansion is done before the program (mv) is invoked.

<comment><USER5> While not quite as convenient, it's not that tough in bash:

      ls *.bar | while read f; do mv $f ${f%.bar}.baz; done

<comment><USER4> Your version above has at least two bugs I see (will fall over with various forms of white space in the filenames). And it would be nice to have interactivity and verboseness (admittedly just flags to mv). It would also be better to work with plain portable shell, rather than requiring bash, so you'll need to include some basename calls. Also should it stop on the first rename failure, or just keep ploughing on no matter what?

Before you know it, you have a script you've debugged and tested.

<comment><USER5> The command I whipped up is, by definition, a one-liner meant for situations where the file movement is known by the person wishing to perform it and done interactively.

As to the portability of it, yes this is not portable as the syntax relies on substitution syntax supported by a limited number of Unix shells (bash and ksh spring to mind, others may support it too though).

Since the OP specifically mentioned:

      mv foo.bar foo.baz

And you pointed out CMD's 'ren' command, the incantation I put forth seemed apropos. YMMV.

<comment><USER4> Dealing with one file is no problem. A regular rename on the command line or gui file manager of choice works well. The difficulties come when trying to work with multiple files, and why you'd resort to the command line. Amusingly, the rename on Windows just works.

UNIX makes it difficult because of the wildcard expansion. You can start writing some script, but there are gotchas galore such as correct escaping, IFS, shell portability, dry runs, interactivity, error handling and the list goes on. Having something that works as well as the simple Windows command is hard work, and before you know it end up publishing a github repository!

<comment><USER5>
      Dealing with one file is no problem. ...
      The difficulties come when trying to work with
      multiple files, and why you'd resort to the
      command line.

Maybe we just have a different perception regarding these workflows. Not that either is superior or anything, just different. My background is one where the command line is not something I turn to, but instead one where I begin.

      UNIX makes it difficult because of the wildcard expansion.

In this specific situation, your point is spot on. I submit that in many other situations, the wildcard expansion employed by many Unix shells is very helpful. Not every tool is applicable for every situation and the specific case of renaming multiple files to those with different extensions highlights a shortcoming of many Unix shells. Perhaps an explanation is due to file extensions being of little importance to the vast majority of Unix programs.

      Having something that works as well as the
      simple Windows command is hard work ...

Here, I will respectfully disagree and step away from this thread :-).

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> Try `rename`

[http://linux.die.net/man/1/rename](http://linux.die.net/man/1/rename)

If on OSX:

        brew install rename</comment>


Darpa slaps $2m on the bar for the ultimate security bug killer - <AUTHOR> http://www.theregister.co.uk/2013/10/22/darpa_sets_2_million_cash_prize_for_the_ultimate_vulnerability_scanner/

<comment><AUTHOR> I am not optimistic this will succeed. Reasoning about programs is much harder than, say, driving a car. (Consider the number of humans who can do each competently.)

I am glad to see DARPA taking an interest in this problem, but I think they need to take a longer view. Fundamental breakthroughs are needed; it's not just a matter of gluing together existing technologies.

Full disclosure: I work for HP Fortify, one of the existing businesses that would certainly be negatively impacted by a technology such as DARPA describes here.</comment>


20+ Books you should read if you want to be in venture capital - <AUTHOR> https://medium.com/me/stats/post/b71d9442fbc7 <comment><USER2> This submit pretty well encapsulates all that is wrong with Medium, in my view.

First of all, they seem to have some new loginwall interface that makes you provide an email address (or authentication through a social media provider, so hello to all the Facebook adware instrumentation crap. That process includes a photo interpretation captcha with images that, on mobile, are blurry to the point of uselessness. Next, assuming you DO successfully navigate a captcha set, it dumps you too the generic Medium landing page, NOT to the specific article you originally clicked on.

Then, trying to _find_ said article by its title puts you through a fuzzy search algorithm that qualifies far, far more articles that actually contain just your search terms. It's almost as bad as Netflix in that regard.

Finally, by narrowing down the search term as much as possible, I find an article with a very similar but not the exact same title. I drill down into that article, and it ends up being just a typical Medium book list full of Amazon affiliate-tag links.

Result? Accelerating Medium abandonment rates.</comment>


Toybox lands in Android AOSP - <AUTHOR> https://android.googlesource.com/platform/external/toybox/

<comment><USER2> See also the comment section in "The ongoing fight against GPL enforcement" <[http://lwn.net/Articles/478249/>](http://lwn.net/Articles/478249/>) which contains discussion from Robert Landley, the author of Toybox and former contributor to BusyBox, for some details about some of the motivations for the project.</comment>


Hipsters mostly look alike. There's math to prove it - <AUTHOR> https://www.bostonglobe.com/business/2019/03/11/hipsters-mostly-look-alike-there-math-prove/qjISEcE3G5hCUNB159hPtI/story.html <comment><USER2> I know this so wrong, but my friends and play a game "hipster or homeless". Where we attempt from pure subjective observation try to determine if the person is down on their luck, or intentionally dressing the way they look.

There is a fine line, between the two.

Full disclosure I have been homeless, but just because I was in an unfortunate situation, I still tried to be a presentable human being. The situation I was in should also not take my dignity as the two were not related.</comment>


Ask HN: Are you still using TrueCrypt? What alternatives are there? - <AUTHOR>

<comment><USER2> I am still using TrueCrypt. I am not planning on moving on just yet.

These are some alternatives for windows:

* CipherShed (Fork of truecrypt) [https://ciphershed.org/](https://ciphershed.org/)

* Bitlocker

* Symantec Drive Encryptor

<comment><USER3> Since people are forking Truecrypt now. Has anyone made it possible to use plausible deniability on a Linux OS?

I've never understood the point of using plausible deniability with Windows when Windows has the ability to force update your computer even when you disable it.</comment></comment>


Canada's artificial trans fats ban comes into effect – with a phase-out period - <AUTHOR> https://www.cbc.ca/news/health/trans-fats-health-heart-disease-canada-1.4824852 <comment><USER2> If only we hadn't listened to Phil Sokolof and had kept using beef tallow and lard for everything, this never would have happened.

Or at least, it wouldn't have been so prevalent.

</comment><comment><USER3> Glad to see them continue to be phased out. At one point, a convenience store / gas station here in the US called Sheetz had baked goods with obscene levels of trans fats. Their cake donuts, as an example, had 14g each.

</comment><comment><USER4> The real question is how many comments will end up here talking about how they want the choice to eat whatever they want, not realizing that trans fats are nothing more than a preservative and don't affect taste.

<comment><USER5> Don't affect taste? What do you mean by that?

"7 Foods That Won't Be the Same If Trans Fats Are Banned

1\. Doughnuts: Without trans fats, they may become more oily. Many desserts, like cookies, cakes and doughnuts rely on trans fats to give them a lighter texture. "Only partially hydrogenated oils continue to stay a part of the matrix and don't exude out of the food," says Kantha Shelke, a food scientist at Corvus Blue LLC and spokesperson for the Institute of Food Technologists (IFT)."

[http://healthland.time.com/2013/11/07/7-foods-that-wont- be-t...](http://healthland.time.com/2013/11/07/7-foods-that-wont-be-the-same- if-trans-fats-are-banned/)

<comment><USER4> What I mean by that is many fast food companies like KFC have already switched away from using trans fats and no one noticed.

<comment><USER6> Plenty noticed, most either didn't care, or had no power in the matter. The phenomenon of people going to get "real" kfc across state lines was so popular a south park episode was loosely based on the premise. There is a clear difference in taste, for those that taste their food before swallowing it with a gulp of soda. It's never really been a debate.</comment></comment></comment></comment>


Stop Unit Testing Everything - <AUTHOR> https://medium.com/@puppybits/stop-unit-testing-everything-e1afb20a5ab3#.pp5ym2hq1 <comment><USER2> Great post! I totally agree that quality of tests is more important than code coverage, but the author does a great job of really explaining what that means, why it's important, and shares some great practical examples.</comment>


On the Trail of the RoboCall King - <AUTHOR> https://www.wired.com/story/on-the-trail-of-the-robocall-king/ <comment><USER3> Seems to me that the FCC doesn't actually want to stop these. Watch the senate commission deposition(?) of Adrian Abramavich. He says all these calls are routed through 5 or 6 tier-2+ VOIP firms who openly solicit robocall business and then blend the traffic to prevent the most obvious red flags. Just pull their licenses(?). Unless there's more to the story and everyone in the industry is getting rich from this, which sounds like is the case. Remember this is the same FCC that couldn't detect millions of fake anti-net neutrality comments. C'mon. Are we really dumb enough to think that they're that dumb?

If everyone in the industry is getting rich from this and the FCC is serving industry and not the people, then the plan of action would quite probably look like this:

1\. Pass laws that make robocalls illegal to pacify the populace.

2\. Charge one or two operators a year in civil court max, but not enough to actually deter people from doing it. And make sure to brand them names like "the robocall king" so that people think you've actually made a huge dent in robo-calling. Again, to pacify the populace.

3\. Don't actually enforce the laws you passed on any meaningful scale and don't require technological changes which would stop this. Despite the fact that it doesn't happen in any other country, even third world ones, pretend that this is just a technologically intractable problem.

Pathetic.

<comment><USER4> Under Obama they made steps forward to stop these, penalties were drastically increased, and an actual investigation team was put together, but Trump defunded the efforts and now the complaint form leads to a massive master in pile with no hope of a single message being read.

The phone companies ARE able to stop the caller ID spoofing with a simple notch filter placed at the right point on the line, or packet filter on the right place on the firewall.

They could easily force businesses to give a valid return number on their calls and prevent jamming based caller ID spoofing, but instead they don't want to because these calls mean more money for them.

<comment><USER5> _The phone companies ARE able to stop the caller ID spoofing with a simple notch filter placed at the right point on the line, or packet filter on the right place on the firewall._

T-mobile already does, along with some other magic logic they have stopped almost all of the spam calls from reaching me. ...Occasionally they block my mom for a day or two, but it's worth it.

<comment><USER6> I have a t-mobile line and a Google voice number, I don't give out the T-Mobile number so 100% of legitimate calls come through Google Voice, but 100% of spam calls come through T-Mobile. Also I'm not sure when you're saying they added this magical filtering but I've tested spoofing calls to myself and other T-Mobile phones within the last few months and it works fine.

</comment></comment></comment></comment><comment><USER7> I wonder if one should not use a dialer to call them back, sending an automated message until someone listens and acknowledges? They have a huge outbound capability, but their weak spot is inbound and call completion - <USER2> expect basically no call to complete. So anything that keeps their agents busy will immediately reflect on the number of calls they make. Would it be legal?

<comment><USER8> I answer most robo calls and usually try to call back after I get them to hang up on me. The number is almost never in service. When it is and it leads to the scammer I'll sometimes continue calling and messing with them until my number is blocked by them. I've been messing with spam callers for more than 20 years. I wish more people would answer these calls and waste as much of their time as possible.

<comment><USER7> Sometimes they leave a message on the voicemail, and in this case you do have a number to be called back. I wonder if it would be legal for you to recall them using a robodialer.

Say you implement something like this: [https://www.wombatdialer.com/blog/blog/2017/03/17/outbounds-...](https://www.wombatdialer.com/blog/blog/2017/03/17/outbounds- IVR-tutorial/) this is a reverse IVR, that keeps calling until it gets an explicit acknowledgement. It is cheap to run (you set up a FreePBX somewhere), it does not tire, and can go on until it gets a confirmation.

<comment><USER9> It would need to be paired with something like Jolly Roger, above, which is darn good at spoofing a human for a while. It would need a variety of voices and scripts so the recipient humans wouldn't get trained on it too fast.

<comment><USER7> You could simply play a message of your voice that says "My number is 555-123-4444 please get me immediately off your list - press 7 to confirm". They will hang up and the dialer will call again. And again.

</comment></comment></comment></comment></comment><comment><USER4> The "in the wild" hack of the caller ID jammer is probably openly available if you look hard enough.

There are also likely phone system commands to quickly verify the incoming phone number a second time utilizing out of band signals. If how to derive how to do this, one might be able to detect spoofed caller ID and retrieve the actual source line information.

I wonder if either of these technologies could be used to detect robocalls.

Personally if I had the time and ability to write such a system, what I would do to incoming robocalls is go and route them (and pressing one if it is necessary) to an AI voice system just smart enough to pull the person's leg for a few hours making the person run in circles trying to explain the deal to what they think is a person who can't understand it. You know, robo the robo- call.

<comment><USER10> Something like [https://jollyrogertelephone.com/](https://jollyrogertelephone.com/) ?

If you haven't heard a few, listen to some of the calls on [https://www.youtube.com/channel/UC3OxCWLEmoIhNMm- hnvBm9Q](https://www.youtube.com/channel/UC3OxCWLEmoIhNMm-hnvBm9Q)

</comment></comment><comment><USER11> For $20 US a year for an app, robocalls are down to a few a month from several a day on each of a VOIP and cell line. Nomorobo, Robokiller, and several more - do some research, read some reviews, and pick one. I only wish it was as easy to filter email spam for a 25-year-old email address. Telephone service providers may offer robocall filtering as well. One can deal with the problem now, or wait for Shaken/Stir, whichever.

<comment><USER12> Be super careful as you do that research - check the Terms of Service. Some, like Truecaller, are harvesting your call activity and network and reselling it.

It appears Hiya and Nomorobo have sensible policies.

However...

The problem is the completely randomized neighbor calls.

They are "calling from" real numbers belonging to real people.

Hiya Premium has neighbor blocking, but only prefix by prefix, and you can't bulk add the prefixes.

It appears adding a prefix adds every individual number within that prefix to the phone's block list, and each call block plugin can only block so many numbers, so the more prefixes you have, the more plugins have to be enabled.

"WideProtect" aims to simplify this, your mileage may vary:

[https://itunes.apple.com/us/app/wideprotect-spam-call- blocke...](https://itunes.apple.com/us/app/wideprotect-spam-call- blocker/id1171024059?mt=8)

<comment><USER13> WideProtect almost looks like what I want, I wish you could just do regex filtering on the incoming numbers instead of this individual number crap.

</comment></comment></comment><comment><USER14> Why are robocalls not a thing in my country? (Sweden)

<comment><USER15> Because (at least in Germany) it's illegal and comes with very high fines.

> telephone calls to consumers for sales purposes are illegal if the calling > company is not in possession of an explicit and effective declaration of > consent by the consumer

[https://www.limegreenipnews.com/2017/08/germany-federal- netw...](https://www.limegreenipnews.com/2017/08/germany-federal-network- agency-imposes-record-fine-for-cold-call-advertising/)

<comment><USER16> Since a lot of the robo calls are part of scams and illegal, I don't think it's the fear of fines. I believe that market size and language barrier are a bigger issue: Plenty of people speak english, few speak german and even fewer are fluent enough in swedish to convince people to hand over their money.

<comment><USER17> The reason the number of robocalls exploded recently in the US is because the FCC's order defining what an autodialer is was overruled.

There is an interesting reply all episode about it: [https://gimletmedia.com/shows/reply- all/awhk76/135-robocall-...](https://gimletmedia.com/shows/reply- all/awhk76/135-robocall-bang-bang)

</comment></comment></comment></comment><comment><USER18> Developer of RoboStop here. If anybody here in the comments section happen to use an Android phone and are plagued by telemarketing calls from Indian dev shops offering to build you a website, check out my app! [http://robostop.org](http://robostop.org). It's pretty simple, just hangs up on anyone not listed in your contacts. Very effective. Just make sure to turn it off when you order an Uber.

P.S. it's not on the Play Store anymore because I got booted off along with all of the other apps which access users CALL_LOG(s).

<comment><USER19> This morning cops called me to tell me I had 5 min to move my car or it would get towed.

When my wife was pregnant the hospital called me to say she'd been admitted after falling in the street.

Surely hanging up on anyone not in your contacts is a bad idea?

<comment><USER13> I have to ignore numbers not in my contact list, I get 10+ scam calls a day.

I kind of worry about those situations but I'm just as likely to miss a call being on the phone to these arseholes anyway.

I really want the ability to block certain country codes on my phone, 99% of the scam calls are from outside of NZ.

</comment></comment></comment><comment><AUTHOR> I'm getting daily calls where they leave a voicemail in Chinese. I live in a metro area where at most there are 0.05% Chinese speakers. The costs must be so low they just do not care.

Course I block the numbers but they seem to have an almost endless supply. Interestingly my Pixel doesn't report the call ever as suspected spam.

<comment><USER20> Calling to (continental) US numbers is easy to find for $0.01/minute, billed to the second. If you've got volume, it's cheaper.

Blocking numbers of spam calls is like blocking numbers of spam email; most of them are spoofed so it's most likely not to help.

</comment></comment><comment><USER21> I don't understand why the robocalls are a thing. Why are robocalls able to cause such a stir? Why are they referred to as " _robocalls_ " in the first place, when this is such a lowbrow term that it might imply that the victims are part of the problem, due to an inability to adequately cope with something that requires very little effort to deflect.

To give them a special name, in and of itself, raises phonecall spam to a new level of shenanigans, when this is something of a script kiddie skill. Same as email, this is a mild nuisance. It's not some crisis tearing at the fabric of society.

It's sort of like complaining about how windows are transparent, and that you shouldn't need curtains to prevent people from looking inside. It's like there's this expectation that it should just be illegal to look inside any window.

If it's a phone number, people are going to call it. If you don't want to be disturbed, don't let your phone ring? If you only want to be disturbed by familiar individuals, only ring for those numbers, or screen voice mail?

Seems... almost too easy to deflect this sort of thing.

<comment><USER22> From TFA: Emergency room doctors, nurses, and first responders were getting delayed alerts. This was not just an annoyance; it was a matter of life and death.

What is your "almost too easy" solution? Block all local calls? Have you applied for a job and expected a call back only to be directed to a cruise/timeshare?

<comment><USER23> Or they're showing up a bit groggier on their next shift because their sleep/nap got disjointed.</comment></comment></comment>


Show HN: Concurrently Logging HTTP Requests - <AUTHOR> https://github.com/PabloSichert/concurrency-logger <comment><USER2> beautiful ASCII visualization! In theory class we called it "interval arithmetic"

[https://en.wikipedia.org/wiki/Interval_arithmetic](https://en.wikipedia.org/wiki/Interval_arithmetic) (2+2)-free posets, ascent sequences and pattern avoiding permutations [https://arxiv.org/abs/0806.0666](https://arxiv.org/abs/0806.0666)

<comment><AUTHOR> Sorry, I couldn't quite follow - could you break it down in simple sentences what the connection between those links you provided and the visualization is?

The coloring depending on response time happens in intervals, that much I can say.

<comment><USER2> I am not saying anything very deep. We can try to count all the different ways 5 (or 100) people can have sessions on a website

      #1 |</comment></comment></comment><comment></comment><comment></comment><comment>--|
      #2        |</comment><comment></comment><comment>---|      |</comment><comment>---|
      #3   |</comment><comment></comment><comment>|          |---|
      #4      |----|             |</comment><comment>|      |--|
      #5   |</comment><comment></comment><comment></comment><comment>---|

Each of these channels have overlapping event. Some sessions happen strictly before the other. Sometimes, one logs on before the other one logs of. Etc. The more channels we have the more complex behavior. That is all the paper is saying.

Sorry about that.

<comment><AUTHOR> Thanks for making that example!

Assuming I am looking at your sketch with the x-axis being time, I just want to note that specific to this library there won't be two events (request start, end or log) at the same time. (The "concurrency" here comes from coroutines, not parallel threads)

<comment><USER2> My mistake. I only see a few outcomes then. #1 happens then #2

      #1 |</comment></comment></comment><comment>|
      #2             |</comment><comment>--|

and #2 happens before #1

      #1                  |</comment><comment>-|
      #2   |</comment><comment>---|

or #1 starts then #2 starts:

      #1   |</comment><comment></comment><comment>-|
      #2           |</comment><comment></comment><comment>|

or #1 starts before #2 and finishes before #2

      #1  |</comment><comment></comment><comment></comment><comment>---|
      #2       |</comment><comment>----|

For two channels are are 8 possibilities in all. [https://oeis.org/A079144](https://oeis.org/A079144)

</comment><comment><USER3> This is really cool! I'm tempted to try and write something generic for this same concept, so i can use it in whatever lang and logging framework desired.

Concept: A simple pattern match against each line to link their respective contexts. Eg, if you log each request with an id `[timestamp] [request-id] some module: some message`, then theoretically you could parse a log to show visual relation between all request ids.

Furthermore, you could filter out request ids with generic tools like grep/etc.

There must be logging viewer tools that work generically like this though, so perhaps i'd be wasting my time :)

<comment><AUTHOR> I'd be interested in such a solution, also in regard to the input from another commenter to make this work with nginx.

If you have a concrete idea and eventually a project on GitHub, feel free to contact me! Would like to contribute

</comment></comment><comment><USER4> Nice. Could imagine this as a realtime renderer for [http://zipkin.io/](http://zipkin.io/)

</comment><comment><USER5> This is cool! I wonder how it looks for really busy servers (hundreds or thousands of req/sec).

<comment><AUTHOR> That's an interesting question!

I wrote this mainly for the need of better debugging in development, and never inspected live traffic on a production server.

If you balance your application across servers/workers and keep the log on a per-worker basis I think there shouldn't be a problem in doing so.

Otherwise - you could make a middleware that collects requests that require attention (response time above some threshold, non-200 status codes, errors).

Then you could "replay" the logger on those requests.

(You can't do it live, since you can't know in advance which requests will be of interest.)

Maybe I find a way to incorporate this into the project, so that you can use it out of the box :-)

</comment></comment><comment><USER6> Really nice! I wish it could hook up to for example an Nginx as a command line tool.</comment>


A DOS JavaScript Canvas with Sound - <AUTHOR> https://github.com/SuperIlu/DOjS <comment><USER2> Really impressive, kudos to the authors!

What are some possible use cases for this tech aside from learning these ancient platforms in a modern environment?

<comment><USER3> A low impact, reliable virtual machine with a fixed spec. Sounds like a Silverlight killer. Maybe I should do all web programming in that thing instead of React or whatever is the fancy of the day.

<comment><USER4> Thanks to things like DOSBox, targeting DOS ensures your applications will run on almost any platform.

</comment></comment></comment><comment><USER5> This seems great!

I just got some ancient laptop (386SX, 1.5MB RAM) running windows 3.11, and I was trying to find some modern programming launguage to hack on it. This seems perfect (as there are no modern C++11 compiler avalible for DOS[newest djgpp doesn't work properly at least in DOSBOX], no Python 3, no Java etc.

ps. Why there is 4MB requriment? Will it work with enough swap space?

<comment><USER6> I recommend you to look here: [https://github.com/andrewwutw/build- djgpp](https://github.com/andrewwutw/build-djgpp) and [https://github.com/tkchia/gcc-ia16](https://github.com/tkchia/gcc-ia16)

Using that DJGPP toolchain, I've have developed some DOS games in the last couple of years (one of those, using C++14 and EASTL, no less!).

<comment><USER5> Thank you.

Did you develop those games ON the DOS machine as well or just cross compile? I would love to see your games.

Does that gcc-ia16 works on 386SX (non 64bit CPU)?

"""These FreeDOS packages do not contain support for C++ or link-time optimization (LTO)."""

So there is working C++14 compiler able to run under DOS or not?

</comment></comment></comment><comment><USER7> No screenshots? :(

<comment><USER8> This needs a video.

<comment><USER5> [https://twitter.com/tunguska82/status/1228713076607922176](https://twitter.com/tunguska82/status/1228713076607922176)</comment></comment></comment>