HNHacker News
TopNewBestAskShowJobs

jbri

1,487 karma · joined December 20, 2010

submissionscomments
jbri··on Quark: A secure Web Browser with a Formally Verified Kernel
I think it's going to be a long time coming, since the negative effects of mostly-working-but-not-quite software tend to be borne by the purchaser and not the creator, which means the extra expense of formal verification is not commercially viable when compared to just having a rigorous (or not-so-rigorous) testing regime.

If we were able to get rid of the 'THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED' thing that graces virtually every software license agreement, so that software publishers were actually liable to some extent for the software they produced, that would help to improve things. I don't see that happening any time soon though.

jbri··on GNOME Developers Hate the Mouse, Remove Middle-Click Paste
Most mice I've used require a substantial amount of pressure on the scroll wheel in order to depress it and count as a click. Additionally, there's a noticeable (both tactile and audible) response when a click on the scroll wheel happens.

If the mice you're trying don't have those, and it's very easy for you to inadvertently press the middle button, then that does seem like a pretty major design flaw. If you're always buying mice from the same manufacturer, perhaps investigating a different brand is in order?

If getting better-designed hardware isn't an option, then I guess the alternatives would be improving your finger control so that you don't accidentally click the button while scrolling, or disabling it in software so that it doesn't matter. Honestly though disabling it and missing out on that functionality entirely seems like the worst of those choices.

jbri··on Has Carl June Found a Key to Fighting Cancer?
> reputation systems could replace much of their most important functionality.

I'll start believing this once you show that a "reputation system" (don't these already exist?) actually does anything to stop quacks from peddling diluted water as a cure-all.

If you relied on reputation alone to regulate the medical market, feel-good snake oil treatments would prosper at the expense of legitimate medical advancement.

jbri··on NASA calls off attempts to fix Kepler space telescope
In general, I'd expect that you learn a lot in the process of building and flying a spacecraft, even if it ultimately fails to meet its objective.

If you're going to have to launch a new spacecraft anyway, why not take some of those lessons into account when you build the next one?

jbri··on Electrical signatures of consciousness in the dying brain
I'm not saying that it is - but research for its own sake is worthwhile, even if you don't know beforehand how earthshaking the results will be.

Sure, sometimes you swing and you miss, but if that makes you too scared to swing at all then you're never going to hit anything.

jbri··on Electrical signatures of consciousness in the dying brain
Demanding that research show immediate practicality is a good way to end up doing no meaningful research whatsoever.

Virtually every major discovery in the past hundred years (if not more) stems from research that had no obvious direct application. The biggest benefit of the post-industrial society is being able to spend time on things that aren't immediately useful, but potentially have greater benefits further down the road.

jbri··on How online ratings affect your judgment
Come to think of it, at one point in the not-too-distant past I did see a fair few new-ish comments with zero points instead of one, where I couldn't see anything about the comment that was objectionable enough to be worth downvoting.

I don't remember what my response to those was - probably I just figured that someone was having a bad day or read something into the comment that I wasn't seeing or something.

jbri··on How negative app reviews from iOS beta users could be prevented
You think all developers should have already updated their apps to work with the latest iOS beta release, quite literally the day they (and all the non-tech-savvy people who have been conditioned by Gmail et al. to think of "Beta" as "Latest and greatest") get their hands on that version of the OS for the first time?
jbri··on Ask PG: Why is everybody hellbanned?
Vague wording in legislation ends up as an excuse for doing bad things because when you get enough people together to call them a government, you're bound to end up with a few bad eggs. Online discussion sites are small enough that that's not necessarily the case - it's quite feasible to maintain a core group of people who don't abuse that power.

Especially since, unlike in government, that core group of people is beholden only to whoever is operating the site, and not to a popularity contest that sees them being replaced with an entirely new group every so often. This is also why you absolutely can have poorly-defined rules and opaque moderation - the operator of the discussion site shapes what they want it to look like, and if too many people disagree with that vision then another discussion site springs up tailored to what those people want. And if the original operator is too arbitrary or capricious in their moderation, their own site dies or becomes an insular hugbox or something like that.

--

Ultimately, when people say they want stricter interpretation of the rules and more accountability on an online discussion board, what they really mean is "I disagree with some of these decisions and I want them to make the decision that I would make next time". Which is fine, but having seen a lot of the proposed alternatives in action I can't really see them as being an improvement.

jbri··on Ask PG: Why is everybody hellbanned?
I disagree with the idea of having a strict code of rules. Coming up with rules and sticking to them to the letter doesn't do anything to encourage meaningful discussion.

All you end up are the trolls who do their best to toe the line while provoking other people to step over it, and the sort of people who think a conversation where everybody follows the rules yet no-one says anything of substance is preferable to a lively discussion. You end up driving away the people who just want to talk about things they enjoy or are interested in, and don't particularly care about adhering to your rigid social system.

People are people, not automatons, and the system of curating discussions should reflect that. If someone is acting in bad faith, waiting for them to violate the letter of a rule that's been written down before you do anything about it just allows that person to drive away more of your actual desired userbase.

jbri··on The Hardest Logic Puzzles
The difference between an "easy" and a "hard" sudoku (and other problems of that ilk) is essentially how many steps ahead you need to think in order to derive useful information.

An "easy" sudoku is one solvable by mechanical application of the rules of the game - if there's only number that can be placed in a cell, fill it in, and similarly if there's only one cell in a given row, column, or box that a given number fits in, fill it in there.

As things get harder, other logical steps are required. For example, if there are two cells in a line, and both of them can only accept the numbers 5 and 9, you can conclusively say that no other cell in that line can be a 5 or a 9. That's looking one step ahead, and (depending on how often it's necessary) makes for a medium-difficulty puzzle.

As you move up difficulties things get more complex, and thinking several steps ahead becomes necessary if you want to make meaningful headway.

--

I would expect the "hardest" sudoku would not be one that's only solvable by brute force - that's a rather uninteresting puzzle, for a start. Instead, the hardest (in my opinion) would be one that requires making the trickiest insights in order to make headway without resorting to guess-and-check style exhaustive search.

jbri··on The Hardest Logic Puzzles
So I just got sucked into that Killer Sudoku puzzle - and ugh, now I have a burning desire to print it out on a big A2 spread to work on it.

After the first couple of "gimme" squares, the interface is completely worthless for tracking the information you actually need to remember. There's no good way to express "This square is three more than that square, and also can only be one of these possibilities", which makes it a pain to correlate that with similar information about other squares, but at the same time (at least at this, admittedly early stage) it still feels like you can always make another logical step to another piece of information.

I don't even want to look at the others until I've either finished or given up on this one.

jbri··on Haskell Lenses In Pictures
Why do you need to mutate things in order to write a program? Operational programming may have damaged your brain.

(With regards to lenses, note that: This isn't mutating anything, and it's not a metaprogramming "hack" either. Functions as first-class entities instead of opaque blobs of code is one of the big wins of functional programming.)

jbri··on Why Nissan.com Isn’t a Car Website
Truly, think of how benefit would be gained if we were to eat the rich and redistribute their property!
jbri··on Why We Can No Longer Trust Microsoft
As I understand it, getting a security clearance doesn't especially care about whether you've done anything illegal, it cares about:

1. Whether you're likely to voluntarily leak any secure information.

2. Whether someone who dug up some dirt on you could blackmail you into leaking secure information.

Or as the saying goes, it's fine to have a mistress, but having a mistress that your wife doesn't know about is a problem...

jbri··on U.S. government recognizes gamers as athletes
Spending all your time playing games at the expense of your education is about as good a strategy as spending all your time playing sports in the hopes of becoming a professional athlete.

Only a few people become good enough to get paid to play sports, and of those people even fewer can get paid enough to turn it into a viable career. Banking your life on getting lucky like that without any kind of fallback plan is not a particularly sound decision.

jbri··on 5D ‘Superman memory’ crystal could lead to unlimited lifetime data storage
Sure, but you can't store the contents of an arbitrary volume, which is what people generally mean when they talk about storage capacity.
jbri··on Ask HN: Why don't companies open-source the source code of their old products?
A number of reasons come to mind:

1. They might not have the source any more. There's a depressingly large amount of software that was created, that no-one has the source code to. It might have been lost in a server crash, it might have been stored on a medium which is now unreadable, or people might have just not cared about it after the product was shipped and who knows where it is now?

2. There might be legal reasons preventing them from releasing it. For example, be a software patent covering part of the code which they licensed for their commercial use, but which prevents them from releasing it as open-source. An example here would be Doom 3's shadow volume code - the open-source release didn't actually include the code that shipped with the game, instead it included a slower (yet not patent-encumbered) algorithm. Unless you built absolutely everything in-house and licensed nothing from anyone else, it can be tricky to work out whether you're actually allowed to release the source to your product.

3. It might reveal other things that should be private to the company. Often source code has overly-tight integration with things like your in-house version control, or your build system, or other things of that nature. Perhaps your debug build automatically uploads crash logs to your bug tracker, and includes credentials for doing that which were stripped out of the release build? In order to do an open-source release, you need to look through your entire code to figure out if there is anything sensitive there, and remove it (in a way that doesn't stop the product working).

And finally...

4. What benefit does it get them? Gathering up, scrubbing, testing, and releasing an open-source product takes a substantial amount of effort, and hence a substantial amount of money. And you'd be hard-pressed to see a return on that investment in anything except vague, largely-meaningless "community good will".

jbri··on DecryptoCat
And ultimately the biggest thing to do is that when you find a bug, don't just fix that one bug and call it a day.

If you find a bug in your crypto code through your testing and validation, that means your development process screwed up and allowed that bug to slip through. What you need to do is figure out how that bug got through your development process, change your development process so it wouldn't slip through next time, and then have a thorough audit of your already-written code to make sure no other bugs have slipped through the same way.

Developing must-not-fail critical software is the exact opposite of the traditional launch-fast-and-iterate model that most people use to produce web applications and such. This is a big reason that when web app developers try their hand at developing critical software like cryptography, they get it horribly wrong.

jbri··on How to build (and how not to build) a secure “remember me” feature
How do you tell if the user's session has expired so you know to ask them to re-authenticate before doing anything sensitive?
jbri··on Plants do sums to get through the night, researchers show
Night coming unexpectedly early is just one thing that could cause the amount of starch stored to vary.

There's only factor changing here.

jbri··on Plants do sums to get through the night, researchers show
It would seem to me that no explicit arithmetic is being done - it's simply a consequence of natural behaviour.

Consider the case of a starch channel, the size of which is governed by two factors - the quantity of stored starch, and the time since nightfall. (Other factors may also affect the size, but are irrelevant to this discussion). This seems like a construct that could quite feasibly appear in a plant. No arithmetic is being performed by the plant, but simply these two factors working in concert cause the rate of starch consumption to appear to be based on whatever the starch level was when night fell.

The fact that the observed rate of consumption is such that nearly all the starch is consumed by morning is easily explained by natural selection - plants that consume starch too fast obviously starve overnight, while plants that consume it too sparingly are using their resources inefficiently and so would tend to be out-competed by plants that make better use of them. Over many generations, the base rate of consumption would become tuned to how long nights last in that region.

jbri··on The Internet Just Made Microsoft Kill a Car for a Faster Horse
You still have a choice! "Can play Game X" is a feature of the platform just as much as as its hard-drive space or lack of DRM or whatever. Luxuries always have an element of consumer choice involved.

It's only, in fact when you start talking about essentials such as food, housing and basic services where you can claim you're forced to buy something. And I'm not even sure where you were trying to go with that music comparison (It's not like I can buy an album but choose to give the money to a different record company).

jbri··on The Internet Just Made Microsoft Kill a Car for a Faster Horse
In general, making up security schemes off the top of your head doesn't go so well.

Case in point: You forgot to ensure that Console A actually finds out that a particular game has been disabled.

jbri··on Ultimate Tic Tac Toe
Of course, there's a cascading effect where it's now possible to also overflow the board you chose with your free move.
jbri··on Ultimate Tic Tac Toe
Instead of filling the center square on the last board, you can fill the corresponding square and then start forcing your opponent to win that board.
jbri··on The 1-bit interface
If you wanted morse code for entire messages, that would require a much larger storage ROM just to hold them. Instead of a two-byte error code holding the entire failure indication, those same two bytes now only hold maybe a word in the error message at most. And when you're troubleshooting an error, now you have to sit through the entirety of the word "Missing " after trying a fix before you can tell whether it's the same error or something different this time.

Besides, you didn't need the internet to look up the error codes when you typically had the dead-tree edition of the same information.

jbri··on Surviving under water in an air bubble
Especially since if you're doing an emergency ascent, it's quite likely that it's due to having problems with getting air from your cylinder (if your air supply was fine, you'd probably be doing a controlled ascent instead). It's very difficult to avoid holding your breath when you know you won't be able to breathe in again until you reach the top.
jbri··on The history of curly braces
The first 32 ASCII code points are literally control codes, which are used to interface with computer hardware that makes use of ASCII - for example teletype machines.

To that extent, it's very much worthwhile to have a control code for a carriage return - setting the cursor to the start of the line without advancing to a new one. This lets you, for example, tell an electronic typewriter to double-strike a line for a boldface effect, or strikethrough a line of text.

And once you have that, you might as well have the control character that advances the output to the next line not move the cursor at all, since the operator can just send a carriage return if they do want to start at the beginning of the next line instead of where they left off on the previous one.

With regards to bitness, computers weren't always strictly power-of-2 based (quick example: the PDP-8 was a 12-bit machine). While today, memory is cheap enough that "rounding up" 30 bits to 32, or 7 bits to 8, is definitely worth it in terms of how it simplifies your other logic, back when ASCII was developed that wasn't really the case.

jbri··on Native equivalents of jQuery functions
Why not use a polyfill to get the same functionality on older browsers? That also gives you the benefits of better performance on browsers that do support the native version.
← PreviousPage 2 of 13Next →