Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×

Comment Re:Can't find anything on Youtube anymore (Score 4, Interesting) 78

It is hard. Producing a new creative work, be it a film, piece of software, book, or whatever, is hard and often expensive. Copying a creative work is cheap to the point that it's barely worth measuring the cost. Lots of influential companies have business models that revolve around doing the difficult thing for free and then charging for the easy thing to make up for it. They're eventually going to be displaced by companies that realise that it makes more sense to charge for the difficult thing - we're seeing this in software already, with open source companies giving away code that's already written for free and charging for writing new features or customisation (or, in some cases, entirely new programs).

In 100 years, people are going to look back on DRM and restrictive copyright in much the same way that we look back at the laws that required motor cars to have someone walk in front of them with a red flag. Regulations that can't possibly work in the long term, designed to prop up an industry that's suddenly found itself obsoleted by new technology.

Comment Re: Why bother? (Score 1) 421

Uh, yes? Because that's how you write code that handles errors correctly. Exceptions come from three sources:
  • Runtime exceptions. These don't need to be caught or declared by Java code, but you can generally avoid them by making sure you have null reference checks and using iterators for collections.
  • Exceptions that you throw yourself. You know you're throwing these and the odds are that you want the caller to handle them (if you're using exceptions for intraprocedural flow control, then you're an idiot). So advertise them on your method. Done.
  • Exceptions thrown by methods that you call. These are all advertised by those methods and checked by the compiler (or your IDE), so there's no excuse for not knowing that they're expected.

This stuff isn't hard. You know at every call site what the possible exceptions are, and you know this because the compiler won't let you explicitly throw or fail to handle any exceptions in your methods. The exceptions that a method can throw are in the JavaDoc and are checked at compile time, so you'll get a compile error if you don't either handle or advertise the exception.

Good error handling is one of the key things that differentiates good developers from bad. If it's something that you find hard, in a language that goes out of its way to make it easy, then you might want to consider other careers.

Comment Re:Yet another clueless story on automation (Score 1) 628

Most of the developing world just doesn't have this problem.

Actually that's not true. India and China did very well out of being a cheap place to manufacture things because of the low labour cost. Now, factories that are almost entirely automated are replacing those staffed by unskilled workers. This means that no one is building them in developing countries and creating jobs there. The only reason that companies like Foxconn have for picking places in Africa for manufacturing now is the the lack of environmental regulation: a few politicians get paid off, but the local economy doesn't benefit and the local environment gets polluted. The path Japan took, of cheaply copying things, being a cheap place to build factories, developing local skills, and then competing internationally with original products, doesn't exist anymore.

Comment Re:It's hard to take this article seriously (Score 1) 628

Exactly. Few workers would complain about automation if they owned a share in the company proportionate to their contribution to the profits. If a robot means that the company can produce more without their going to work then their income would go up and so would their leisure time. Instead, they become redundant in a shrinking job market and the owners get richer.

Comment Re:Why bother? (Score 1) 421

Java doesn't require you to catch every exception, it requires that, for every exception that cam be generated in a method, you must either catch it or advertise that your method can throw it. This makes static analysis and reasoning about exception much easier, because you know exactly what exceptions a particular method can throw. Handling exceptions at the wrong place is a problem with the programmers, not with the language or VM.

Comment Re:Ugh, WordPress (Score 1) 31

I recently moved from hand-written HTML for my personal site to Jekyll, which is the engine that powers GitHub pages. It does exactly what I want from a CMS:
  • Cleanly separate content and presentation.
  • Provide easy-to-edit templates.
  • Allows all of the content to be stored in a VCS.
  • Generates entirely static content, so none of its code is in the TCB for the site.

The one thing that it doesn't provide is a comment system, but I'd be quite happy for that to be provided by a separate package if I need one. In particular, it means that even if the comment system is hacked, it won't have access to the source for the site so it's easy to restore.

Comment Re:Validating a self-signed cert (Score 1) 396

That's the best way of securing a connection, but it doesn't scale. You need some out-of-band mechanism for distributing the certificate hash. It's trivial for your own site if you're the only user (but even then, the right thing for the browser to do is warn the first time it sees the cert), but it's much harder if you have even a dozen or so clients.

Comment Re:The web is shrinking (Score 1) 396

The 'brought to you by' box on that site lists Mozilla, Akamai, Cisco, EFF, and IdenTrust. I don't see Google pushing it. They're not listed as a sponsor.

That said, it is pushing Certificate Transparency, which is something that is largely led by Ben Laurie at Google and is a very good idea (it aims to use a distributed Merkel Tree to let you track what certificates other people are seeing for a site and what certs are offered for a site, so that servers can tell if someone is issuing bad certs and clients can see if they're the only one getting a different cert).

Comment Re:This again? (Score 1) 396

It depends on your adversary model. Encryption without authentication is good protection against passive adversaries, no protection against active adversaries. If someone can get traffic logs, or sits on the same network as you and gets your packets broadcast, then encryption protects you. If they're in control of one of your routers and are willing to modify traffic, then it doesn't.

The thing that's changed recently is that the global passive adversary has been shown to really exist. Various intelligence agencies really are scooping up all traffic and scanning it. Even a self-signed cert makes this hard, because the overhead of sitting in the middle of every SSL negotiation and doing a separate negotiation with the client and server is huge, especially as you can't tell which clients are using certificate pinning and so will spot it.

Comment Re:So perhaps /. will finally fix its shit (Score 2) 396

Every HTTP request I send to Slashdot contains my cookie, which contains my login credentials. When I do this over a public WiFi network, it's trivial for any passive member of the network to sniff it, as it is for any intermediary. Worse, because it uses AJAX stuff in the background, if I briefly connect to a malicious access point by accident, there's a good chance that it will immediately send that AP's proxy my credentials. I've been using this account for a decade or so. I don't want some random person to be able to hijack it so trivially.

Comment Re:Sly (Score 0) 396

Given hoe poorly most people secure their WiFi, having a warning if you're using a DVR on a LAN and it doesn't support end-to-end encryption sounds like a good plan to me. Of course, this raises an interesting question about built-in obsolescence, given that certificates have a valid-until date.

Comment Re:This is not the problem (Score 1) 688

You're right, but it's not always the devices within the same product category. A lot of stuff that's in consumer devices begins life in very niche applications (e.g. military or medical devices) to get the first bit of R&D funding and then needs another big chunk to become cheap enough for consumer devices.

Comment Re:This is not the problem (Score 5, Insightful) 688

It's not clear that Apple could survive in isolation. A lot of their components are only as cheap as they are because of other lower-margin companies paying a big chunk of the R&D costs. When Apple was using PowerPC processors and were the only customer for IBM or Motorola for a particular chip, they found it very difficult to compete. They're designing their own ARM cores now, but they're benefitting enormously from the thriving ARM software ecosystem.

Slashdot Top Deals

Receiving a million dollars tax free will make you feel better than being flat broke and having a stomach ache. -- Dolph Sharp, "I'm O.K., You're Not So Hot"

Working...