HNHacker News
TopNewBestAskShowJobs

Fr0styMatt

84 karma · joined October 29, 2013

submissionscomments
Fr0styMatt··on Scale of the Universe
For anyone with access to an Oculus Rift, I can't recommend "Titans of Space" highly enough. It brought me to tears. The sense of scale you get is utterly amazing.

http://www.crunchywood.com/

Fr0styMatt··on First 3D Commercial Web Game Powered By asm.js
In what way is using LLVM bitcode (PNaCL) at all similar to ActiveX?

Yeah yeah I get it. I like asm.js as much as the next person; I just wish this whole PNaCl-is-ActiveX meme would seriously go away. It's willful ignorance.

FWIW, I think it's fantastic that asm.js is turning out great. I also think that PNaCl is a worthy technical achievement. Two ways of solving the same problem given different constraints. I think Mozilla has a better chance and agree with their reasoning re- browser compatibility and third-party adoption. Still doesn't mean I'm going to go around calling PNaCl ActiveX when it clearly isn't.

Fr0styMatt··on Are Your Programmers Working Hard, Or Are They Lazy?
"Non-bricklayers can make relatively accurate comparisons between two wall-building projects. "

I would dispute the 'relatively accurate' assumption. My father works in construction and it's often the case that what me (as a non-construction worker) sees as a beautiful kitchen, he'll see as a nice-looking kitchen that's been cheaply made with quality and craftsmanship problems.

I would imagine that a bricklayer has a better chance of telling you whether a wall is likely to start cracking within five years than your average person off the street would, for example. You're assuming that non-bricklayers would know what to look for to assess the quality of the wall properly or that brick walls are so simple that any untrained person off the street could figure out what all those hidden factors are.

I think this is actually the exact same thinking mistake that people make when they assume that programming must be easy. It's seeing only what's on the surface and not realising there are deeper things (a previous poster mentioned 'hidden processes' when talking about laying down a hardwood floor, which is exactly what I mean here).

Fr0styMatt··on 23andMe Provides An Update Regarding FDA’s Review
I feel really sorry for them too, but from the FDA's letter I got the impression that 23andMe just stopped working with the regulator altogether, even though they were given the opportunity to do so. If that is the case, that's really what I don't understand.

Bummer, I was almost ready to order one of the kits. Would have been fascinating.

Fr0styMatt··on World of Mathematics
Do you have references? I'm curious; I've tried Googling but don't get a lot about the hoax part of it. Would be really interested in that story - the last I ever heard fractal compression being mentioned was to do with jpeg2000.
Fr0styMatt··on Notch, WebGL, Dart, and ramping up quickly
While it would seem that getters and setters vs public fields are very similar, there's a catch at least in the C# world - if you have a raw public field and later decide to change it to a property, that breaks your public interface and you have to rebuild stuff against your library.

Thankfully C# makes declaring getters and setters easy from the start, so it's not an issue to use them:

public int SomeField { get; private set; }

That gives you a public property called SomeField which can be retrieved, but which can only be set privately by the class. I'd hate having to write GetBlah and SetBlah; it's damn ugly.

Fr0styMatt··on Notch, WebGL, Dart, and ramping up quickly
Udacity has a nice looking WebGL intro course:

https://www.udacity.com/course/cs291

Fr0styMatt··on Notch, WebGL, Dart, and ramping up quickly
I've thought about that a lot as I also have the same tendency. What I've concluded (for me at least) is that it's just EASIER to get started writing an engine than to write a good game, so you end up working on the engine out of intellectual curiosity and because it's the path of least resistance.

(I've never really gotten far writing a 'from-scratch' engine here but I'm also thinking of things like integrating a scripting system into an existing engine, which is something I've done before).

With an engine, you don't start with such a nebulous spec. You know, for example, the various pieces that your engine will need and it's easy to get started. You can say "well I need an asset importer", "I need to integrate a scripting system for gameplay", "I need some kind of rendering pipeline", etc. These are generally well-defined things.

With a game, well, what is there? You start off with the question "what is a fun game idea?" but in comparison it's so free-range. The ideas of where to head next just don't come as easily. Not to mention a lot of the non-programmer things that need doing - drawing the graphics, writing the music, writing the dialog if appropriate, etc. These can be intimidating things to attempt to do.

Fr0styMatt··on Notch, WebGL, Dart, and ramping up quickly
I guess it's a balance between over and under-engineering. The thing is, more often that not the person coming along to do 'external modifications' to that code is actually you, a few months after you wrote it.

You can adopt some good coding practices that ensure that the code isn't a spaghetti mess that's hard to understand when you come back and look at it. That's different than designing a system to be pluggable from the start.

So, I haven't watched any of Notch's livecoding videos, but for those who have, what kind of bad is the code? Is it bad "this is a mess and I won't remember what these variables do in 3 months" or is it just simply designed to handle the most immediate case (coded well but not with plugins in mind)?

Fr0styMatt··on Notch, WebGL, Dart, and ramping up quickly
Since we're talking about Carmack in this thread.... Fabien Sanglard does some excellent reviews of code from ID... see for example:

http://fabiensanglard.net/doom3/

There's actually a movement that studies code in the way you'd examine a literary work (Critical Code Studies). Sure it's very abstract, but it can be fun, see for example this book:

http://10print.org/

You could also look at livecoding - they treat coding as a performance art. For example:

http://www.youtube.com/watch?v=GSGKEy8vHqg

Fr0styMatt··on String types are fine. How about your code?
This right here is where we start to mix up two totally different things by using the same words for them.

This thread is talking about two completely different types of Equals; we shouldn't be using the same word for them and certainly not the same function name in code:

- SomeString1.Equals(SomeString2) -> are all the bytes in array 1 equal to the bytes in array 2?

- HumanSimilarity(t1, t2) - given text s1 and text s2, give me a number that tells me how similar a person would perceive these strings to be. You could even go further:

SimilarityForReaderInLocale(locale, t1, locale1, t2, locale2) - for a human reader in locale, given text t1 written by a human in locale1 and text t2 written by a human in locale2, how similar would the reader perceive these two pieces of text?

When we talk about 'least surprise' in manipulations, what I think we really mean is that text manipulation should be defined by a locale; no actually, a superset of a locale. That superset being your typical human reader in that locale.

Fr0styMatt··on Why The Value of Bitcoin is Skyrocketing
Freaking zoom disable is the most pointless thing ever put in a mobile browser, ever.
Fr0styMatt··on Vi Hart: cramming G+ into YouTube has made comments even worse, I'm leaving
I think we can somewhat offer Google the benefit of the doubt here too. It's likely that there's someone else targeting Google's algorithm to get that spammy video suggested to as many people as possible.

As you (mcphilip) said you don't have a YouTube account, so presumably Google has less data on what you might like or dislike. Suggesting more relevant results to you means that Google needs more data about what you like individually. It's balancing that whole "tracking me is evil" vs "showing me stuff I actually want to see is good".

I stay logged into my G+/YouTube account and the suggestions I get are generally acceptable, sometimes even great. I've never found them outright obnoxious in my case.

Fr0styMatt··on Portable Native Client
Why do people keep saying that PNaCL is like ActiveX, when it's nothing of the sort? Is this a failing on Google's PR?
Fr0styMatt··on The BadBIOS Analysis is Wrong
He does address the high-frequency sound thing though. Basically, your laptop speaker will be lucky to transmit at near 20KHz and your laptop microphone would be even less likely to be able to pick up any ultrasonics that are supposedly being transmitted.

As for the specificity of the BIOS environment - he's saying you'd need to compile the BIOS code against the manufacturer's libraries AND make versions specific to board revisions. ESPECIALLY if you're doing stuff like initializing and using the soundcard (which he also addresses).

So for it to be true, this malware would be created by someone with access to several codebases and hardware docs, etc, of different motherboard manufacturers. Not to mention the test lab they must have to make sure this all works.

Not to mention the fact that in THREE YEARS none of this has been made open. OR a USB analyzer hasn't been tried, etc.

Way too many red flags here.

Fr0styMatt··on For modern development Javascript indeed is a shit language
FWIW by the way, I don't get all the JavaScript hate either, other than perhaps it's from people who erroneously think they don't have any choice except to use JavaScript on the client side. From what I've seen of JS as a language, I actually quite like it, but haven't used it for anything substantial.

I do like what we seem to be arriving at with asm.js; a subset of JS as the assembly language of the web, with people being able to choose the language that best fits their problem domain and target the JS machine.

Fr0styMatt··on For modern development Javascript indeed is a shit language
Ah, I stand corrected, thanks. Makes sense; I think I had something about private vars in JavaScript and closures running through my head and confused it with 'JavaScript does OO with closures' :)
Fr0styMatt··on Toyota's firmware: Bad design and its consequences
Ah, thanks for the link.

It's easy to forget how small the RAM budgets still are in some parts of the embedded world.

Fr0styMatt··on Toyota's firmware: Bad design and its consequences
So, a question.

Why does the industry use something like C? Even with the MISRA guidelines, it still seems like the wrong tool for the job when you have things out there like Erlang, which are designed for fault-tolerance and concurrency from the get go. I can imagine the requirement for hard real-time operation might be an issue (not sure enough about Erlang specifically to say if it does or doesn't address or hinder this, so I'll leave that to someone else).

What's that industry moving towards, software wise, to address this? Is Ada an alternative?

C (even MISRA) just seems like a horribly risky thing to use in this scenario.

Fr0styMatt··on For modern development Javascript indeed is a shit language
Not really, from what I gather it's closer to a functional language that lets you implement objects with private data by using closures.
Fr0styMatt··on For modern development Javascript indeed is a shit language
^THIS TIMES A MILLION! Static typing, with good type inference, is awesome. Old-school C static typing, is not.
← PreviousPage 2 of 2