HNHacker News
TopNewBestAskShowJobs

vec

2,000 karma · joined August 9, 2012

submissionscomments
vec··on Five Minute Guide to Software Security
Without knowing anything about your software:

  * Build your software to stream data directly from Client A's API to Client B's API without it ever being at rest on a machine you control.
  * If your users want reports based off their data, then see if you can fetch the relevant data from the client on demand, build the report email in memory, then forget the raw data.
  * Tell your clients you prefer to use their oauth provider of choice to authorize instead of storing usernames and password hashes yourself.
  * Key your access logs off of an (arbitrary and short lived) session id instead of a user id.
Maybe none of that's appropriate for your use case. Maybe your company already stores the minimum viable dataset for its needs, and maybe that minimum viable dataset is still huge. But the fact remains that you can't leak what you don't have, and even marginal differences can still make the data you do hold a little less valuable to thieves and a little harder to deanonymize and collate with other leaks.

I use the term "code smell" in the same sense sense as "`if` statements are a code smell". It doesn't mean never to use them, it just means that solutions that don't use them tend to be consistently better than solutions that do. Solutions that store less (or no) data tend to be consistently more secure than solutions that do store more data. That doesn't mean those solutions always exist, just that one should prefer them when they do.

vec··on Five Minute Guide to Software Security
It's not actually a reasonable goal. Almost all pieces of software will need some nontrivial amount of data to fulfill their purpose.

I am convinced, however, that it is a very useful heuristic. The platonic ideal of a perfectly secure database is a completely empty one. Every step away from that requires individual justification. That doesn't mean your database will be small, but it should mean the database is as small as possible.

I treat permanently storing user data (any data, for any reason) as my solution of last resort. That doesn't mean I don't use it. It just means I have to convince myself I don't have any better ideas before I do.

vec··on Five Minute Guide to Software Security
No it doesn't. It just requires a shift in your thinking.

Having a database is a code smell.

If you absolutely have to have a database, then having a `users` table (or equivalent) is a code smell.

If you absolutely have to have a `users` table, having any columns in it other than `id`, `username`, and `password_hash` is a code smell.

...and so on.

Admittedly this isn't necessarily easy in a company setting. It's in direct conflict with what the sales & marketing people want, and unfortunately that means your job is sometimes to fight with the sales & marketing team. But it's not complicated.

vec··on Why Isn’t It a Crime to Kill a Cyclist with a Car?
> A cyclist could kill a pedestrian as well in an unfortunate accident, should we treat that as a crime?

Yeah, probably. If you're operating a dangerous piece of equipment the onus is on you to do it safely. Bikes are more dangerous than shoes, cars are more dangerous than bikes, and commercial vehicles are more dangerous than cars.

It's not actually that difficult to drive safely around cyclists. Go the speed limit, pay attention, and don't pass unless you can do so safely. Yes, this means sometimes you will go 15 in a 45mph zone for a couple of blocks. If someone finds that burdensome enough to risk killing someone else then I have no problem calling that criminal neglect.

vec··on Why Isn’t It a Crime to Kill a Cyclist with a Car?
A cheap used car costs a couple thousand dollars up front, plus license, insurance, maintenance, gas. Plus even cheap parking rental in a city can run to hundreds of dollars a month.

Taxi/Uber/Lyft is, what, $5-15 per one-way trip? That's between $10 and $50 per day to commute. And that's before errands, weekend activities, and unexpected emergencies.

My spouse and I have a six-figure household income and I'd have a hard time finding an extra ~$10k/yr for transportation costs. It would be a complete nonstarter on minimum wage. Snarky or no, "be rich enough you don't have to worry about it" is a really shitty piece of "advice".

vec··on Satoshi was wrong
The blockchain is a towering achievement in theoretical computer science, but that wasn't the question. What is bitcoin, the currency, actually useful for?
vec··on Satoshi was wrong
He's complaining that Satoshi did predict how his creation would evolve, he just guessed wrong in a lot of the particulars. Because of course he was. Predicting the future is hard.

But predicting the past is much easier. We have a privileged position to see that, as implemented, Bitcoin is a pretty shitty currency (and a decent high risk investment vehicle). It's way too volatile, transactions are very high friction, and both of those problems look like they'll continue to get worse as Bitcoin continues to mature. More over, it's looking like none of this will actually avoid state capture now that a state actor (China) has decided they care.

No piece of software in human history has been perfect on day one. The real world always has a few surprises. But Bitcoin doesn't have a viable mechanism for change. No central authority and no privileged user means all but the most glaring bugs are unfixable.

vec··on Senator to Ex-CEO: Equifax Can't Be Trusted with Americans' Personal Data
To my view, collecting and storing that much information is presumptively immoral. It creates a public hazard, in the same vein as stockpiling explosives or toxic chemicals.

There is, however, a degree of respect for that hazard, demonstrated in concrete safety practices, that can override that presumption.

I don't think Equifax has demonstrated that respect. To a layman's view, not many companies do. It's possible that the amount of respect necessary for a hazard as large as the one Equifax created is too onerous for a for-profit entity to realistically implement, but I don't know that there's a fundamental reason that sufficiently paranoid engineering practices couldn't make this moral.

vec··on Senator to Ex-CEO: Equifax Can't Be Trusted with Americans' Personal Data
> Also, as other commenters have pointed out, we don't want to discourage good people from running credit bureaus out of fear that innocent mistakes may get them hung.

I couldn't agree more with the rest of your comment, but I draw an almost opposite conclusion.

We should discourage people, good and otherwise, from running credit bureaus. Collecting and holding sensitive personal data on millions of people is inherently a mistake, and after the last few years of data breaches it's getting hard to argue that it's an innocent one.

Companies have proved time and again that they can't be trusted with huge datasets on the general public. They don't have much incentive to apply the level of paranoia necessary to actually protect data that valuable, and even when they do they rarely have the level of InfoSec skills and, more importantly, culture to actually pull it off. In practice we see 2 or 3 nines of reliability when we actually need about 5 nines.

We should stop waiting until leaks happen. Holding sensitive personal data on hundreds of millions of people ought to be congressional hearing level scandalous whether that data has leaked yet or not.

vec··on Stop the Border Surveillance Bills
Granted, arguendo, that South Korea has a right to defend its border, and that that right extends to killing any and all North Korean forces that cross said border. There's still a difference between a defense that can attempt to kill anyone and a defense that will attempt to kill anyone.

Automated defenses will attack North Korean troops. They could also attack lost North Korean children, South Korean military convoys moving to the new front 50 miles north a week after the bombing of Seoul in 2034, and hikers living in Unified Korea in 2067.

"Indiscriminate" doesn't necessarily mean "unjustified" or "illegal", but it's still enough of a marked category difference to be worth some separate ethical consideration.

vec··on Worldwide airport chaos after computer check-in systems crash
About 40 years, give or take.
vec··on Stop Calling it ‘Identity Theft’
CGP Gray did a really good video[1] about this recently. The short version is that it's the least terrible mechanism presently available for uniquely identifying and disambiguating American citizens.

[1] https://www.youtube.com/watch?v=Erp8IAUouus

vec··on Experian Site Can Give Anyone Your Credit Freeze PIN
I've got no issue with the IRS and/or the private sector continuing to use SSNs as surrogate IDs or usernames. Being public doesn't prevent it from being used to disambiguate similar users or associate records between datasets. In fact, having the mapping public would make it easier, since that's one less column you need to store securely.

What it would prevent is the illusion that providing my SSN on demand is in any way an indication that I am in fact the human being attached to that number and not some third party.

I don't see a problem with the IRS continuing to use it as-is. I would have no more incentive to lie about my SSN than I currently do about my legal name or my mailing address, for example. In fact, I might have a significant disincentive if I knew that my boss, my HR manager, the auditor at the IRS, and anyone else who cared could spot check whether it matched what I told them all my name was. Besides, the IRS has been dealing with endless attempts at tax fraud for a century and a half now. One more awkward but plausible avenue for cheating is likely to be background noise against their existing caseload.

vec··on Get Rid of Equifax
For the record, I'm not opposed to credit agencies buying data breach insurance on whatever terms they can negotiate. I'm just opposed to the idea that any amount of caution on their part should dissipate their (or their insurer's) legal liability in the event of a breach.

I do agree that would probably be a de facto ban on the industry, or at least a radical restructuring thereof. My suspicion is that the industry is actually not a profitable enterprise once all the externalities are properly accounted for. But I'd be happy to be proved wrong, and I'm more than willing to give the industry a chance to figure out a model that works.

Edit: Completely off topic, but this is the nicest internet argument I've had in a long time. Thanks, scrumper, for being an excellent debating partner!

vec··on Experian Site Can Give Anyone Your Credit Freeze PIN
No, the entire point of Experian et al is to reduce the number of loans that can't be collected on for any reason, including but not limited to fraud.

Assume a credit rating agency can lower a lender's default rate from X% to X'% but introduces an additional Y% of fraudulent loans. If X - X' > Y, that's a good deal for lenders no matter what the absolute size of Y is.

vec··on Get Rid of Equifax
> consider air travel

With air travel the people bearing the risk are the direct customers. If I'm uncomfortable with the safety record of airlines I can simply not fly. How do I opt out of the risks imposed by a credit rating agency?

The closer analogy, I think, would be if cargo planes were routinely crashing in populated areas. The air freight company and its clients may well be completely comfortable with their loss rate, but the unaffiliated third parties living underneath would have a pretty justifiable reason to complain.

> Truth is, nothing can be done safely. Not travel, not business. There is always a tradeoff between risk and benefit.

This is absolutely true, but as currently constructed credit agencies get to reap the benefits while pushing the risk off onto the general public. If we regulate to internalize that risk and the agencies still think it's a good risk/reward tradeoff then that's fine. If they no longer think it's a good tradeoff that's fine too.

> So you don't like the bureaux; well, nobody does really. But what is an alternative which allows lenders to compare applicants on a like-for-like basis with some degree of confidence?

There's several suggestions elsewhere in the thread, but I'm going to go out on a limb and suggest: nothing.

On a macroeconomic level, easy availability of credit increases average growth but also increases total risk, and therefore volatility. It's not apparent to me that that's a good trade.

On a microeconomic level, the benefits I receive from being able to get credit easily have to be weighed against both the suboptimal personal accounting I have to engage in to keep my credit score up and against the long tail risk that a third party can open a line of credit in my name. It's not apparent to me that that's a good trade either.

Maybe lenders should be much more conservative with who they loan to. Maybe they should price in a much higher default rate. Maybe individuals should seek a single line of credit from their bank of choice instead of expecting expenses to be financed individually. I don't know, I'm just some guy with 2 semesters of college-level economics. What I do know is that the status quo isn't sacred and the arguments explicitly in support of it seem to boil down to "growth is good and change is scary", which seems like really weak rationale for giving someone most of us don't even have a business relationship with essentially unilateral control of millions of people's financial fates.

vec··on Experian Site Can Give Anyone Your Credit Freeze PIN
This isn't going to stop until we stop treating SSNs like they're secret. Mine's not; it's been leaked at least once that I know of and I've given it freely to dozens of clerks and HR staffers over the years, any of whom had ample opportunity to jot it down for personal use.

I know this will never actually happen, but I sincerely wish the Social Security Administration would publish a complete official database of real name to SSN mappings. It wouldn't impede their use as Social Security Numbers, but it would make it extremely obvious how inappropriate they are as a proof of identity. Maybe then we'd finally be forced to come up with something a bit less insane.

vec··on Get Rid of Equifax
No, it needs to be strict liability. If an entity is as responsible as possible and still accidentally causes millions of dollars of damage, they've still caused millions of dollars of damage. Some things cannot be done safely, and if entities want to do them anyway they should be prepared to bear the consequences.

It may be the case that once all the privacy related externalities are pushed back onto credit reporting agencies then their business model is no longer viable. I, for one, am fine with that outcome. If that's the case then credit reporting agencies were never a net good for society in the first place, and all the regulations are doing is exposing that truth.

vec··on Get Rid of Equifax
Yes, technically this can be addressed by a class action suit. Which is better than nothing, I guess.

This has always struck me as an odd anti-regulatory argument, though. "Governments shouldn't use their power to distort the market. Therefore regulations are inherently bad. Instead we should distort the market using a different branch of the government, but in a much more capricious and unpredictable manner."

vec··on Get Rid of Equifax
Equifax doesn't lack accountability because they're bureaucratic. They just lack accountability, period. The customers aren't being hurt and the people being hurt aren't customers.

Adding accountability to the general public via regulation may make them more bureaucratic. It may make them less. That's up to the invisible hand to decide, once their incentive structure matches their real world impact.

vec··on Get Rid of Equifax
This is true, but it omits the extremely relevant third case.

When a private company has a massive failure that impacts someone other than its customers, then the impacted parties have no recourse whatsoever.

You're not an Equifax customer. Banks and big businesses are, and they don't really have a strong incentive to punish this sort of behavior.

vec··on American Democracy Is Drowning in Money
Because then the money just moves to whoever does have influence on how the republic is actually being run. Or, worse yet, the money just buys the power it was previously trying to influence and simply wields it directly.

Weakening the formal power of government officials doesn't make that power dissolve, it just displaces it to somewhere even less visible and answerable to the public.

vec··on Chelsea Manning: The Dystopia We Signed Up For
Where possible, distributed is almost always better. Comfort and convenience, like all forms of currency, have diminishing marginal utility. Therefore, distributing the costs minimizes the net human suffering.
vec··on Chelsea Manning: The Dystopia We Signed Up For
A system where everyone has to wade through a bureaucratic mess occasionally is certainly not dystopian.

A system where only a handful of people have to wade through a bureaucratic mess with alarming regularity can get very dystopian very fast for those few.

vec··on JSX in detail
PHP's everything-is-a-template philosophy is also a user experience enhancement for developers. React's nested components may provide a much saner rendering model than PHP's glorified string concatenation, but that's a separate question from how their templates are parsed.

PHP templates advertise, and do in fact provides, most of the same benefits as JSX. There are almost no new concepts to learn, the syntax is the same as the language proper, and developers have the full expressive power of that language at their disposal wherever they want it.

In practice, however, this seems to fail more often than not in a couple of ways. First, inexperienced developers (i.e. all developers at some point in their career) have a hard time resisting the urge to inline their business logic into their presentation logic. And second, the resulting templates are as often as not illegible, often requiring a reader to trace substantial chunks of tangentially related procedural logic in order to understand what will actually be rendered.

It's important to remember that PHP templates seemed like a good idea at the time. They did, and do, have real short-term benefits, and talented developers can leverage those benefits to great effect. But it turns out those benefits come with real long-term penalties, and besides, many developers are too green or too pressed for time or just don't care enough about the task at hand to wield that power consistently well enough to reliably reap the benefits in the first place. The PHP community has spent the last decade painfully crawling out of that tar pit; I'm not thrilled to see the JS community happily diving into it.

vec··on Why we moved from Angular 2 to Vue.js and why we didn’t choose React
This is probably true, but it's a really poor rationale for choosing a templating* solution. Sure, JSX is slightly easier to pick up than a pure templating solution would be, but that doesn't mean learning modern templating tools is hard. Making already easy things easier isn't much of a win in my book.

On the other hand, JSX is extremely difficult to read. I can glance at a relatively complex handlebars template I wrote two years ago and instantly understand what it renders. To do the same with a similar JSX component requires spending ten minutes to trace the control flow, understand all the helpers, and mentally re-inline all the loops and conditionals. It's conceptually simple, which is attractive, but in practice that seems to lead to noisy, nonlinear render functions that have little to no structural similarity to their final rendered DOM.

It's also worth noting that JSX is easy to pick up for javascript developers. It's next to impossible for the kind of design-focused frontend people who know HTML and CSS inside and out but only ever needed enough JS to write the occasional jQuery selector. If you're certain your project will never have any styling input from people who aren't first and foremost programmers then JSX might be a great fit, but the rest of us actually have to work with our teams.

* Yes, I know, JSX is technically not a template.

vec··on My Failed Attempt Switching to Linux
Disclaimer: I work for https://system76.com, and I make my living selling machines with Linux preinstalled.

Well, but when's the last time you installed Windows or OSX on clean hardware? Especially one where Windows needed a third-party driver to read the disk? Neither are difficult, mind you, but it's not a task that's suitable for "grandma".

As an apples-to-apples counterpoint, I've been a full-time Linux user for a decade now, but I recently had occasion built a Windows gaming rig for the family. Getting from zero to first boot wasn't difficult, but I was shocked and dismayed at how nothing Just Worked. Instead, I had to go manually download drivers for half a dozen common pieces of hardware.

I'm not an expert, but I'm definitely not a novice, and while there might have been a short window in which Windows had hit peak compatibility, it seems that the numerous hoops I had to jump through to accommodate a mainstream video card and a simple software RAID may well indicate that the moment has passed.

vec··on [dead]
Is this at all surprising? Are there any "white" Americans who don't assume they have a few percent worth of some second ethnicity in their ancestry?

We've been a multiethnic society since the first European boats landed and have redefined who counts as which race several dozen times since then. Even if there were some not insane standard for a "purebred" white person, it would be incredibly unlikely for any arbitrary bigot to happen to meet that standard.

vec··on Trump CEO Strategy Council Is Said to Disband After Exodus
This assumes he was actually absorbing the information in the first place.

On the one hand, I too would like our leaders to be as informed as possible, to have access to the most expert advisers available, and to have any tools that will aid them in understanding the choices they will have to make. Even the leaders I disagree with. Competence is a nonpartisan value.

On the other hand, advisers are only valuable if their advice is listened to. Past a certain point, one has to cope with the possibility that they aren't actually being called on to advise and inform, but merely to provide a sheen of respectability to whatever the leaders wanted to do in the first place. This is a gradient, not a bright line, but it's still a threshold that can be crossed.

I'd love to be corrected, but I've been paying fairly close attention and I can't think of a single issue, big or small, where this advisory council convinced the president to change his stance. If an advisory body can't do that, then what purpose does it serve?

vec··on [dead]
Nope, still Apple. There's no good reason that the iPod couldn't use a standard protocol. For that matter, there's not much reason not to just read it as a USB drive and let the car's internal music player do all the work, even if just as a fallback.

I can kind of understand why Apple would want the entire world to only work with their proprietary connector, but for the life of me I still can't figure out why anyone else, especially auto manufacturers, went along with it. It's a horribly short-sighted decision for products like cars which regularly have a useful lifetime measured in decades.

← PreviousPage 7 of 13Next →