Oh that's clever! What a cool way to do your personal site. Definitely makes it stand out
HN user
nickknw
http://nickknowlson.com
Or email me at nick at nickknowlson dot com
healthy primary income provided by the synergy between them and their community
Definitely interested in this.
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.
Well that's a bit disappointing, although probably pretty important to their business model.
Will make the news of a jailbreak for PS4 that much more exciting at least :)
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.
Digressing, were there any discussions about using var like in Swift (instead of let mut)? What is the rationale for not making that more minimalistic?
I was interested in the answer to this too. I found these which helped me understand:
It looks similar to Elm[1] to me. Which is great as far as I'm concerned, I'm a big fan of that approach - the more exposure it gets, the better!
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.
This exchange has really helped me understand more about Docker and why and when to use it. Thanks!
I agree, it is! I did a light comparison[0] between a logic programming solution to sudoku (Prolog) and one using constraint programming (Scala + JaCoP). I thought Prolog was a little nicer because it was shorter and more declarative, but the JaCoP solution was still great compared to any non CP-solution.
[0] http://nickknowlson.com/blog/2012/08/06/seven-languages-week...
I for one thought this was a fantastic article, and quite well-written.
I would say it used a dead simple function as a device to help explain a bunch of other things.
Checked out the debuggex tool. Impressive!
Thanks! And I'll make a note for myself to put CoffeeScript in there too.
Great to hear a real-world example of the concrete benefits, thanks!
Author here, that's it exactly.
Cool post! Love the illustrated approach you took.
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.
I took a long break from this series due to, well, cancer. But I'm cancer-free now and recovered enough to start blogging again, so here's the next part!
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.
This sounds like it was possibly some time ago. If so, don't discount the effect of having less resource-intensive sites too.
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.
If comics count, I think this one's pretty funny: http://www.explosm.net/comics/2083/
I had a problem, so I thought I'd use Java. Now I have a ProblemFactory.