HN user

nickknw

605 karma

http://nickknowlson.com

Or email me at nick at nickknowlson dot com

Posts10
Comments107
View on HN

Haven't tried Reflux but I would recommend trying Redux before it. It is heavily inspired by Elm and has been very pleasant to work with. Reflux also bypasses the 'unidirectional data flow' part of Flux, which gives you added convenience for some things at the cost of more complexity.

Oh I see - you just needed to be a licensed developer to get their version of it before, is that it?

You still can't do anything with it if you aren't a licensed developer.

Not sure I follow - what is stopping non-licensed developers from developing and testing games on their own PS4s now that this has happened?

Well this is pretty exciting. This opens up the door for PS4 games to be written in any language that uses LLVM as a backend, right? So in the future, PS4 games could be written in D, Rust, Ada, ActionScript...

Especially with the indie focus Sony has had, this could make it much much easier for people used to creating games with ActionScript to get their game on a console.

Is there something I'm missing? This seems too good.

Glad to see another language that has chosen to avoid NullPointerExceptions. Some of you might take issue with the way it is implemented (special syntax vs general type), but IMO it is still much better than having NPEs.

Here is a practical everyday example where languages that can represent emptiness in the type system come in handy.

He ends up using pointers and mentions: "Using pointers also means that clients of the library will need to perform their own nil checks where appropriate to prevent panics."

Looking forward to using Rust :)

Ahh, now that makes sense, thanks! The HTML5Rocks article cleared up my concerns.

For anyone reading this later, it was the section starting with this paragraph:

Inline Code Considered Harmful

It should be clear that CSP is based on whitelisting origins, as that’s an unambiguous way of instructing the browser to treat specific sets of resources as acceptable and to reject the rest. Origin-based whitelisting doesn’t, however, solve the biggest threat posed by XSS attacks: inline script injection. If an attacker can inject a script tag that directly contains some malicious payload (<script>sendMyDataToEvilDotCom();</script>), the browser has no mechanism by which to distinguish it from a legitimate inline script tag. CSP solves this problem by banning inline script entirely: it’s the only way to be sure.

How would you like to be largely invulnerable to XSS? No matter if someone managed to trick your server into writing <script>alert(1);</script>, have the browser straight up refuse it?

I don't quite get how this header makes you invulnerable to XSS, would someone mind explaining?

It seems like it only prevents XSS attacks from loading remote javascript files. What's to stop the attacker from just injecting the entire script inline? If you can get a small piece of javascript to execute you should be able to get a larger piece to execute just fine.

I can see how it makes XSS more inconvenient, but I don't understand how it makes you largely invulnerable to it.

It sure sounds like it is!

I'm a far cry from a Haskell expert unfortunately, so I'll have to leave it to someone else.

Still, it would be nice to have these results independently verified and put alongside all the rest.

What do you think, bhauer? :)

> As a negative person, I focus on all the way things can go wrong. I've envisioned what would happen with each one. But as a positive person, you don't see them. Or, if you do see them, you think they're so unlikely that you don't consider them serious.

That's interesting, we seem to have wildly different definitions for these words. I view it like this:

As a programmer, I plan for things to go wrong. As a positive person, I try to express it in a constructive way. Caution and forward thinking is not necessarily tied to being negative!!

Planning for when things go wrong isn't just something a negative person would do, it's also something a cautious or sensible person would do. Or an experienced software developer! If I've learned anything from programming it's that no matter how unlikely an error condition seems, it WILL happen sooner or later.

I HAVE seen the kind of person you are talking about though - there are the people who think that just being positive will make bad things less likely to happen, and then people who are just overly optimistic about everything. Not every person who identifies as positive thinks this way though! :)

> Personally, I feel the whole "positive attitude" thing is a detriment. People with "positive attitudes" tend to ignore problems because they don't want to upset others or make waves.

I think I know the kind of people you're talking about, but please don't think all "positive" people are in that same category. I think constructive criticism is great, and in no way do I want to stop giving it or receiving it.

But there's a lot of criticism that goes out of its way to be mean or condescending. And there's a lot of criticism with only one purpose: to make the criticizer look smart. These are not useful and they drown out the constructive feedback.

Sometimes being negative is appropriate! I'm not happy all the time. But it SHOULDN'T be a habit - negativity like that is not helpful to the person doing it and it's not helpful to those around them.

Awesome job on this!

How does it decide which word to use initially? From what I can tell it picks the first one. I think the experience would be greatly enhanced if it did just a little extra processing and picked the most used word first. Or if it showed a list of the most used words that was selectable.