Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?

Comment: Re:Lots of highly paid folks (Score 1) 109

Of course there's a lot of people who are highly paid. Chances are that those people are highly skilled, or at least have highly specialized skills as well.

FWIW, at least at Google it isn't about specialization. Google SWEs are expected to be generalists, able to specialize as needed.

In fact, it's generally recommended that SWEs change teams within the company every few years, and that they intentionally look for a change that requires them to learn new skills. The belief in the company is that this approach serves both engineers and teams, providing fresh perspectives and insights to both, and spreading knowledge across teams (by moving it) and within teams (by reallocating responsibilities).

There are exceptions, of course. Some skills are rare enough that people stay within that field, even as they move between teams. On the other hand, even those exceptions have exceptions. I won't mention his name, but Google employs a famous cryptographer who recently decided that after many years of breaking the world's encryption systems he wanted to work on image compression. So he is. Another engineer I know has a PhD in computational mathematics, with a specialty in image processing. After a few years extracting building details (exterior shape, mostly) from merged aerial and street view photography, he now works on UI frameworks.

The choice of when or if to move to another team, and which, is the engineer's. The destination team also has a say, but most teams are perpetually short-staffed. Unless the team in need of some deep skill (e.g. a PhD in computational mathematics with specialization in image processing), or unless the engineer hasn't been performing well in the previous role, they're unlikely to refuse. This is why apparently-odd moves aren't uncommon; people decide they'd like to do something different, so they do.

Comment: Re:Save in conversion, pay for copper (Score 1) 504

by bluefoxlucid (#49791135) Attached to: How Tesla Batteries Will Force Home Wiring To Go Low Voltage

So you move the cost of losses from the DC to AC conversion to the cost of significant increases in the amount of copper needed to wire a house and the internals of power-hungry appliances.

Yeah I've been wishing it wasn't so ridiculously hard to change mains voltage. If only we could distribute at 220V, or get 220V feed lines to build 220V circuits. Europe has all these 15 amp appliances like steam irons that you can't get in the US because you'd need 30-35 amps to run them--they're 15A at 220V. Same appliances in America are low-power (1800W), and operate as if they're severely defective.

High-voltage, low-current is the way to go. We have 20 amp bedroom circuits; we don't need 20V 120A circuits.

Comment: Re:Thanks, Obama (Score 1) 376

by swillden (#49787651) Attached to: Obama Asks Congress To Renew 'Patriot Act' Snooping

The courts found the bulk collection as "justified" under section 215 as unconstitutional and wholly illegal.

Utter nonsense. Please don't spread such misinformation.

Bulk collection may indeed be unconstitutional, but the court said nothing about that. What they said was that section 215 did not authorize bulk collection, so if Congress wants to authorize bulk collection they have to pass a law to say so. If Congress does that, then the court will eventually have to rule on constitutionality.

Comment: Re:For C++, there is no standard answer (Score 1) 323

by swillden (#49786699) Attached to: How Much C++ Should You Know For an Entry-Level C++ Job?

Without any programming experience it's not likely you'd get hired. While specific language doesn't matter, you have to have sufficient knowledge and ability to be able to have a detailed discussion about solving problems in software design and implementation, and prove that you can write clean, accurate code, and do it quickly.

My recommendation is that you first spend some time working through many of the problems provided by Project Euler, or the Top Coder challenges, or similar. Or maybe one of the coding interview books, like this one.

When you're comfortable that you can take on a not-completely-trivial software problem, design an algorithm to solve it, accurately characterize the big O time and space complexity of your solution (not prove it... though you should be able to prove it, given more time), explain why there aren't any more efficient solutions, code it up on a whiteboard, and explain how you'd go about testing it, all in the course of a 45-minute interview, then you're probably ready.

Comment: This wasn't delayed by injustice (Score 0) 128

by bluefoxlucid (#49785007) Attached to: A Ph.D Thesis Defense Delayed By Injustice 77 Years

Her defense wasn't delayed by injustice; it was delayed by assholes. Injustice is a thing, a concept, one not entirely tied to reality; it is an abstract aligned to our moral beliefs. We don't consider the vicious treatment of pedophiles in America injustice because we hate them, even though empirically we can make some arguments about mental health and the fermentation of social pressures forcing people with an internal sickness into hiding, stress, and then the shape of something they could have avoided with proper social support. We consider victimization of Jews injustice because we've started this moral narrative about how hating on Jews is bad.

The fact of the matter is it's people who made decisions about their regards toward and actions about race that delayed this Ph.D. defense. It's assholes. It's people who decided to bar this from being heard. Injustice is a diffuse thing, like the injustice of a court system which executes more blacks than whites on similar evidence; it lifts blame off the participants and onto the mode of society or of misfortune. We pretend these actors don't exist, or at least that they aren't directly responsible for their actions, even though the victims are directly burdened by them. That nebulous ideal is immaterial to the consequences of society; the fact that people went along with it instead of using their human reason and empathy to decide against these happenings is squarely the fault of those people, not the fault of the speculation about what those people did.

What happened wasn't wrong; *you* were wrong for doing it.

Comment: Re:You know what would REALLY motivate kids? (Score 1) 204

The only way to ensure the possibility of a good paying job is to match labor supply with labor demand; that is, to make sure there aren't 100,000,000 computer programmers and 4,000,000 programming jobs.

"Keeping the US Economy competitive" is ludicrous. It's like eating shitloads of donuts to keep a sumo wrestler competitive: your body gets sick and you die, and all you really need is good sumo skills to wrestle people in your weight class successfully.

The US economy won't be competitive if it's completely and totally ill from a glut of computer science specialists and the constant suppression of salaries by state-subsidized college education. If the US economy runs well, a well-tuned machine with all of the parts correctly built and sized for need, it will outperform any other economy on earth. An arms race to stockpile perishable goods we have no intent nor ability to use before they expire is only going to make us a poor and shaky economy weak in the things we sacrifice for stacking up tons of tomatoes that are going to rot away next month.

Comment: For C++, there is no standard answer (Score 5, Insightful) 323

by swillden (#49784235) Attached to: How Much C++ Should You Know For an Entry-Level C++ Job?

For C++ there is no standard answer, because every C++ shop uses a different subset of the language. There are probably a few things that all of them have in common, but it's unreasonable to expect that any entry level C++ programmer can be productive without support from senior programmers while they learn the local ropes. Even experienced C++ programmers will need a little time to get up to speed on the local style guidelines.

C++ doesn't have an extensive set of standard libraries, either, which means that every shop has its own set. So senior programmers have to expect that new people are going to spend a lot of time getting up to speed on those.

Finally, I think the question is fundamentally bad, because it implies a misguided expectation of immediate productivity. That's a common expectation (hope?) throughout much of the industry, but unless you're hiring contractors for six-month jobs, its stupid. What matters in the longer run isn't what your new hires know coming in the door, it's how well they learn, and think. Because whatever they know coming in is invariably inadequate in both short and long term. One of the things I found very refreshing when I joined Google is that they don't much care what you know in terms of languages, libraries and tool sets. It's assumed that capable people will learn what they need to when they need to learn it, and that any new project involves some ramp-up time before people are productive. On the other hand, given a little time to get up to speed capable people will become very productive. Much more so than the less capable person who happened to know the right set of things when hired.

Comment: Re:get the phone apps syncing with desktop Firefox (Score 1) 90

Even the small payload becomes a big logistical challenge when you're looking at doing it globally, for large numbers of devices and want to make it fast (means having data centers in all regions), and make it reliable (means having redundancy, at multiple levels). Oh, and the "all the data is encrypted" bit may expose regulatory problems, too.

I really want an alternative to Android, but it's an even bigger challenge than I thought.

What specifically are you looking for? As an alternative, are there some ways that Android could be improved to alleviate whatever concerns you have? If your concerns are non-technical and primarily about insufficient ecosystem diversity (i.e. insufficient fragmentation), then there's probably not much to do. If your concerns are related to technical problems with Android, or privacy concerns about its relationship with Google, there may well be.

I'm an engineer on Google's Android Security team, and I'm actively looking for things that we can do to address security and privacy concerns. One of the ideas I've been kicking around is a "pre-encryption network tap"... basically, what if you could turn on a mode that logs a copy of everything your device transmits and receives? Most of that data is (and should be!) encrypted, but since most apps and all system services use the framework implementations (yes, plural... sigh) of SSL/TLS it should be possible to hook in and grab the plaintext. My goal here is to enable users to examine what their device is sending, and to whom, because I think right now it's too hard to tell, and because specifically I think there are a lot of erroneous assumptions that Google is receiving a lot of data from Android devices without user permission.

The downside, of course, is that adding such a hook into the system makes it a prime target for various sorts of attacks. So I don't think we would want to do that, not as stated, anyway. Though there may be some variant of the idea that isn't too risky.

Anyway, given a system like that, it should be possible to build an alternative ecosystem of apps and services that run on Android and don't use Google's infrastructure, and that would be much easier than building an entirely new platform. You'd still need to address the problems I mentioned at the top, but at least those could be the bulk of the challenge rather than just another piece of it.

As another alternative, I think if Google became more transparent about how it manages user data and what it does with it, many peoples' concerns would be addressed. But although I make that argument regularly, I don't have the same degree of influence there as I do over platform technology.

Or if you have other concerns, what are they, and do you have any ideas about how the platform could address them?

Comment: Re:Stupid (Score 1) 387

Brainstorming sessions don't require large, complex diagrams because large, complex diagrams come out of decision-making processes, and brainstorming is an idea-generating process. Generating ideas in the same meeting in which you make decisions inevitably leads to poor decisions; meetings are for exactly one of exchanging information, generating alternatives, or making decisions.

Comment: Re:get the phone apps syncing with desktop Firefox (Score 1) 90

That's my 2 cents, it merely takes $20M to implement.

Plus a lot more to operate the data centers needed to store and sync all that data around. For Mozilla to build that they'd have to find some way to pay for it. Given that people are generally not willing to pay monthly fees for that sort of service, advertising is the obvious option. But to make the advertising effective, it needs to be targeted, so...

Comment: Re: Why do this in the first place? (Score 1) 90

I have a better idea: Just use Android, only write a drop in replacement for Play Services. Pull an Amazon, only invite other OEMs to the party so that they sell your devices, and no walled garden.

How would this be attractive to OEMs? Google already offers an extremely well-developed open ecosystem. Amazon wanted to have their own walled garden, but you're assuming there are OEMs that don't want to do that, but want to have a different ecosystem, and want it enough to be willing to accept smaller sales numbers. What would make them want to do that?

"If a computer can't directly address all the RAM you can use, it's just a toy." -- anonymous comp.sys.amiga posting, non-sequitir