Recent submissions

Comment · 10 years ago
It's more about status than utility. As long as Go and Chess can maintain some sort of high status (as games or as historical points of interest) among the intelligent or ruling classes, they'll be remembered. Diseases seem to get status a different way. Humanity will probably remember the Plague for a long time still. Or if a biologically engineered supervirus was unleashed that killed a significant fraction of humanity over a short period of time, that too would be remembered. Quick mass death is the status currency of disease. If we ever get around to ending aging, probably one of the lowest-status problems on the to-do list, death by aging will be forgotten too.
Comment · 10 years ago
Tyranny of the majority is a major concern for democratic systems, hence the many protections against it. A system based on pure population majority is no less manipulable, you would end up seeing candidates campaign hard in the ~25 most dense cities and ignore the rest of the country.
Comment · 10 years ago
And as long as you don't lose the USB drive, or sit on it wrongly, or otherwise make it unusable.

The best and most durable solution is really some RFID tags embedded in your wrists and forehead.

Comment · 10 years ago
Zuck 3 (paraphrasing): "We're building tools to help states censor things they don't like, independent of the truth of those things."

Consistent with 1, not really with 2. Agree that 2's not a huge deal in the grand scheme of issues with Facebook but yeah, best not to assume good faith lightly.

Comment · 10 years ago
There's probably no reason for you to go around disabling hardware etc. You're aware enough of the implications and risks, it's possible you'll get pwned but not too likely. (Honestly I'm more personally worried about the inconvenience of Google nuking my gmail for no reason than anything the NSA might be up to.) Some of my coworkers cover up their work laptop webcams by default. I don't, the realistic threat model is IT or some other company representative spying on me, and I don't really care about that. If I find out I'll quit and I'm sure there will be lawsuits anyway.

All that said, I never liked the "well one day the government will accuse you of a crime somehow or otherwise severely limit your speech" argument. To me the better counter-argument is: "Fine, you don't care at all, you don't have to care. Similarly some people are super paranoid and live in a faraday cage etc., they can do that all they want. But a lot of people care to some degree in between, and a lot of other people are uneducated or unaware of the actual risks so aren't even aware of the problem that they could decide to care/not care about. If you don't care at all, again that's fine, just get out of our way as we try to protect people by default. Mass education of every issue is infeasible."

Comment · 10 years ago
How is anyone supposed to distinguish the first 10 BTC from the last 10 BTC when the underlying satoshis might not even be the same? e.g. I might transfer those 10 BTC to an online store (web wallet, other trading, whatever) but then transfer them back, except I'll likely get a different 10 BTC. Seems like all you can determine is that you once bought $x and once sold $y. Since you can also exchange btc for goods, or mine it (which I believe even the IRS has different rules for), you can't say with certainty whether it must be $y <= $x or $y >= $x. So when you sell 5 BTC, it's either mining income (or other income) or a capital gain, but it seems like there's nothing stopping someone from always taking the least expensive taxes first.
Comment · 10 years ago
The cardboard and marbles aren't self-aware, they just encode a configuration that sees itself as self-aware when left alone to execute. Just like the atoms of your body. Self-awareness isn't a static property, since it's hard to call someone under anesthetic self-aware, but just another thing an agent in motion perceives.

You ought to read Permutation City.

Comment · 10 years ago
lol can't even hang from a bar for over 3 seconds. I'm a coding machine regardless though.
Comment · 10 years ago
Seconded. Some of it feels a bit dated, and it doesn't cover tools you can use like PowerMock if your codebase is Java and you really just need to get a piece of hairy code under coverage as quick as you can without having to refactor it all to be testable the 'normal' or 'clean' way. Nor does it cover refactoring for a functional and immutable approach (its approach is much more OO). Still a great resource to have on hand and be inspired by.

The most important thing is to follow its advice and just start doing it little by little, even small refactors of other people's code. A friend's company had a Book Club and some testing book got on the list at one point, and as they were discussing it they kept having arguments over how effective various things were, so they resolved the arguments by starting a Testing Club where every week everyone would put in at least an hour into getting some part of the system under test, or trying out a testing technique, and discussing it. Over time they got most of the product under test and fixed a lot of previously unknown bugs.

Comment · 10 years ago
Judging from their account age I hope so.
Comment · 10 years ago
After almost a decade of building Firefox from source I finally bit the bullet to switch to a precompiled binary last month. It's fixed all the issues that have started to crop up but leaves a bad taste in the mouth.
Comment · 10 years ago
I think the third party situation is unlikely, unless they're shipping a fork like IceWeasel or stripping out all branding information. At the end of the compilation process in Gentoo it helpfully tells you (if you enabled the Firefox Branding) that you cannot legally redistribute a branded version of Firefox.
Comment · 10 years ago
I interpret a lot of AGPL projects I see as "we're willing to negotiate a secondary license to your private business". If you're the best in class (or just the only available public option) it can make sense as a way to try and make money. If there's a more liberally licensed substitution, however, it's probably best read as a "don't use me for your business" flag...
Comment · 10 years ago
I like to tell this to people when they start gushing about Japan because of their cleanliness or law and order or whatever, but they didn't make private possession illegal until a couple years ago. Before then it was just production or possession with commercial intent that was illegal. And the new law still doesn't apply to manga/anime. Is Japan a hell-hole? Are Japan's children all psychologically ruined or at a much higher threat of abuse because of the prevalence of anime/manga porn? (Some quick googling on opened investigations suggests a mere 0.0075% of Japan's children are affected per year.) To me Japan seems fine. (Another odd behavior is that daughters bathe with their fathers, sometimes (like 6-10%) all the way up to high school age.)
Comment · 10 years ago
I see nothing false in rewording your statement to "a long-maintained large codebase requires continuous vigilance". Typing doesn't seem to matter with this. At least to the extent that we believe typing doesn't have a meaningful impact on the expected size, lifetime, and complexity of a codebase to solve an arbitrary problem. (With better type systems around it is neat to see statically typed languages quite significantly narrow the gaps in expressiveness though, and in some cases beat out 'trivially dynamic' languages.)

I know I've wasted time tracking down simple issues a static type system would have caught (or just due diligence by the coder -- and some of these issues I've caused myself! Though I really can't remember any insidious to find but quick to fix typo or type fail I caused, but I'm willing to admit to a possible selective memory bias), I've also wasted time tracking down simple issues a type system wouldn't catch -- even ones like Rust's, Haskell's, and dare I say maybe even Shen's? I also spend/waste a lot of time, probably the most time in total, tracking down complex issues that got past the type system and existing tests and code reviews and personal or team diligence, and these days most often in either Java or JavaScript, neither of which are particularly great poster children for their respective type systems. (I don't want to get into the strong/weak axis.)

Issues from NPEs or divide-by-zeros or undefined function calls, or stuff that goes through the type system's mechanisms to escape the type guarantees like reflection, casts to Object, void * , unsafe, serializing class names instead of values, etc., are annoying, a sudden power outage is also annoying. Some of that can be caught and prevented by more powerful languages, but still the time to fix those is nothing compared to more complex issues resulting in all sorts of incorrect behavior. There are so many more causes than type mismatches. It seems in your career the trivial bugs from typos are rare for you too. I'm not convinced the possibility of slight inconvenience those rare issues can create is worth the certain tradeoff in losing expressive power (especially if I can't use the most expressive static languages for whatever non-tech reasons) and possibly more, nor am I convinced a static approach is even the best one when you have languages like Lisp which support types well enough to error out when you call COMPILE on a bad form but still have huge flexibility.

I wonder if all this sounds like I'm a diehard C++ fan and don't need no stinking safe memory management tools because I never get segfaults or security problems. If it does I don't think it should, but it's really hard to explain why my perceived utility of static type systems is low without just appealing to preference, firsthand, or wise authority's experiences. The argument has been going on for decades by smarter people than me on both sides. In the end maybe it's just preference as arbitrary as a favorite color but rationalized to kingdom come. I at least don't draw my preference line so narrowly at static vs dynamic, there are plenty of static languages I'd use over JavaScript, and plenty of dynamic languages I'd use over C++.

I will ask about your experience though: how does it square with people like the author of Clojure? Is he just a god-tier outlier? I don't think one could argue he hasn't done his homework, or doesn't have enough real-world experience. It reminds me of a quip graphic I saw once, it was something like a venn diagram showing an empty intersection of "dynamic typing enthusiasts" and "people who have read Pierce's Types/Advanced Types books".

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton