Follow Slashdot stories on Twitter


Forgot your password?
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 Internet speed test! ×

Comment Re:*sigh* (Score 5, Interesting) 796

I am not a lawyer. That said, here are a few comments on how I understand things and where I think they'd go. Your mileage may vary.

I always chuckle at this sort of thing. I like to call this "The Reiser Defense". If you ever followed the Hans Reiser trial, you'll note that he had a fundamental misunderstanding of how law works (or even is supposed to work). As a developer, he saw laws as a program. He thought that he had the program set up so as not to be able to convict him.

As it happens, the Law is not a program or set of mechanical rules. The Law may *appear* to be that way, but that's mostly a side effect of one of its goals. The Law is intended to be predictable so as not to be perverse when applied to people. The theory goes that people can only be held accountable for breaking laws if they can reasonably have been expected to know that they would fall afoul of it.

As it happens, this is not a blank check. You have responsibilities not to be entirely ignorant of the law. You have responsibilities to cooperate with law enforcement and the Court. You do not get to interpret the law any more than is necessary to mount your defense. All of your interpretations are subject to validation and endorsement by the Court. So the process surrounding justice use the trappings of a program or set of mechanical rules, but that is largely a construct to allow you to cooperate with the Court in executing the upholding the intent of the Law.

In fact, it's why it's called Contempt of Court. You have rights under the Law. It's the Court's responsibility to uphold those rights for you. Criminals do not respect the Law. If you behave in such a way as to prevent the Law from being applied by the Court, you show contempt for the rule of law and you hurt your chances in being able to exercise your rights under it. This is a fairly obvious social contract, and that contract--not some expectation that the law function as some sort of autistic machine--is what fundamentally underlies Due Process.

The Fifth Amendment is a law like any other. It's intention is to ensure that the parties involved in justice maintain separated duties. The theory is that you and the prosecution make claims and the court evaluates those claims. If the Court were permitted to compel you to make certain claims, then it's no longer really evaluating them and the integrity of the system breaks down. That's the context that Fifth Amendment lives in and that's the context within which Courts will evaluate it. It is not a "technicality" that gets you out of cooperating with warrants. So, while the law cannot force you to say something is true or false against your will, it *can* compel your cooperation in unlocking the filing cabinet containing the evidence that implies the same thing. That's the difference, evidence is different from testimony.

There is a bit of a grey area around combinations / passwords. This is largely due to prosecutors abusing your unwillingness to give them unfettered access to something as being parleyed into some kind of claim of guilt. That's what the Fifth Amendment addresses--your lack of a statement cannot be construed as a claim of guilt. This started with a dissent from the Supreme Court that mentioned that giving up the combination to a lock amounted to testimony that you had access to what it protects. It's similar to a different case where the prosecution subpoenaed "all of the papers that apply to " and the 5th was upheld as saying evaluating which papers were submitted papers would be tantamount to asking for testimony that some of the stuff was illegal. That fine line between testimony and your duty to comply with the collection of evidence by authorities is something best discussed with a lawyer, because it is not a silver bullet.

I believe that your unconventional take on copyright law isn't likely to get you anywhere. You're effectively claiming that Copyright Law puts you in a 'guilty until proven innocent' which is, more precisely, claiming a violation of due process. This blanket claim has never been supported by a court, mostly because Courts don't share your interpretation of Due Process or Property Law in general.

Consider by analogy that you're found in possession of someone else's car. It's legally registered to them. You're found in possession of it. You're allowed a defense. If you don't make the case, you're guilty. How is the copyright case any different? While I'm quite sympathetic that possession of a car is different because you can't flawlessly duplicate a car, I don't know that it addresses the fundamental fact that you possess it and you can't substantiate permission to have it. That's not so much a claim that the possession didn't happen but rather that it's so easy to do that the concept of possession is meaningless.

Less abstractly, a real case comes with real context that often prevents it from hinging on anything even half that abstract. Your claim that you can't prove purchase exists among a sea of verifiable facts. How much other possibly pirated software lives along with it? How is it packaged? Is there any evidence that you downloaded it from a site that pirates software? Can you show bank records of a purchase that's roughly the right amount? None of this stuff lives in a vacuum. There comes a point where there's enough context to convict you.

Circumstantial evidence isn't, by itself, prohibited. Judges largely exist to navigate this sort of thing. Outright defying otherwise legal warrants to gather the evidence to convict or exonerate you harms your case. Compelling you to say "I stole software" is illegal. Compelling you to allow search of your garage containing a half-a-dozen cars that aren't registered to you is not.

The simplest legal defenses are often the best. I think you'd get more traction out of the Fifth Amendment defense by itself than trolling Copyright Law. As a matter of law, I'd expect a judge to just blink a few times and call that defense irrelevant. More precisely, your opinions about Copyright Law aside, trolling the judge is always a bad idea, because (other than your lawyer) the judge is the only other person in the Court room who has a duty to protect you--and they're the last line of defense at that.

Comment SMB, eh? (Score 1) 177

<troll>Ah, Windows... the gift that keeps on giving.</troll>

Seriously, though... this is pretty ugly. It checks back every five minutes for each machine. You would think that Sony IT would notice that network traffic (or, say, the fact that all of their Windows desktops started listening on port 443). The moral of this story is run an IDS, scan your network, and pay attention to it all! :(

Comment Re:Why program in Python (Score 1) 277

A few notes:

Python's newer abstract base classes allow you to make types that specify the presence of abstract methods and properties and you can use isinstance(thing, base_class) to achieve something similar (and thereby making handling types more familiar to foreigners)

With respect to Java and call stacks; Java has no easy way to dispatch to a function by name. You either need to make a class hierarchy so that you can use virtual call dispatch; or you need an if-tree (which is ugly but underappreciated). I've seen a few Java brains melt when I give them something like:

        cast_spell[spell_type](spell_data, casting_context)

Of course, I could just make a base class for spells and grow a giant, sparse API; but the benefit of playing the default-implementation / function overriding game is suboptimal. At the end of the day, the class hierarchy is just a data structure to determine how different "types" of functions get dispatched. As it happens, it spreads things out in a way that makes them hard to visualize. It often forces me to shadow unrelated sections of other APIs that grow on the same base-class.

In short, it's a crappy data structure for the purpose and it makes a pain out of gathering the knowledge to know how that dispatch happens. Sure, the code is "type-correct", but that doesn't say very much about being logically correct. As it happens, type errors are easy errors--but figuring out how the class hierarchy isn't serving your logical needs is *not* an easy error.

Don't get me wrong, I'm not fundamentally opposed to a good type system. First-class functions in Haskell or the like could handle this with type-safety. However, our industry just isn't ready for all of the pipes, beards, and sweaters. So, given the choice between Python and Java, I pick the one that give me methods for dynamic dispatch that don't abuse an already incredibly limited inheritance mechanism. I'll take the language that allows extensible, generic function application instead of getting it as a side-effect of their implementation of an already stunted type-system.

Comment Re:Bu the wasn't fired (Score 1) 1116

So much this.

The statement was very carefully worded "'It's clear that Brendan cannot lead Mozilla in this setting." The thing is, CEOs can have their career end in a heartbeat. Bad quarter? Stupid mistake? Bam! No more jobs. They are trusted to execute; no more, no less. This compromised that. He very likely wanted to leave, not because he was coerced by any action or inaction of the company--just because staying would effectively end his career (i.e. he could win the battle but lose the war, as it were).

There are two issues here--staying at Mozilla and getting hired somewhere else. The latter would have only gotten worse the longer he stayed. The former, well, his job just got infinitely harder no matter how you slice it. The sooner he got out the spotlight, the better off he is (and Mozilla is).

Is it fair to him? No. However, fair is not in the CEOs vocabulary. It's very likely this was his decision so he could go on to salvage what he could of the rest of his life.

Comment CAPTCHA (Score 3, Interesting) 78

Interestingly, the article says that, at the request of law enforcement, they added CAPTCHA support. The article then goes on to say that this must be a deception because they used a plural, it "doesn't make sense", etc.

Actually, it makes a lot of sense. How is every IED detonated these days? Cell phone. Buy a cheap, anonymous phone, wire it up, and call it to detonate it. Wifi that wasn't resistant to automated signup would make this trivial. They could just sign up with an anonymous phone and pre-paid Visa. Then, when it's in the air, *BOOM*

It also makes a lot of sense that they don't want to talk about it. Don't want to give people ideas.

Submission + - Mexico Building Latin America's Largest Solar Farm

An anonymous reader writes: A thermoelectric plant in Mexico is being transformed into Latin America's largest solar farm. When complete, the Aura Solar farm will be capable of fulfilling the energy needs of 164,000 people, and it will be Mexico's first utility-scale photovoltaic project.

Submission + - Snowden's NSA leaks gave IETF a needed security wake-up call, Chairman says (

alphadogg writes: Security and how to protect users from pervasive monitoring will dominate the proceedings when members of Internet Engineering Task Force meet in London starting Sunday. For an organization that develops the standards we all depend on for the Internet to work, the continued revelations made by NSA whistleblower Edward Snowden have had wide-ranging repercussions. "It wasn't a surprise that some activities like this are going on. I think that the scale and some of the tactics surprised the community a little bit. ... You could also argue that maybe we needed the wake-up call," said IETF Chairman Jari Arkko. Part of that work will also be to make security features easier to use and for the standards organization to think of security from day one when developing new protocols.

Comment Actors and State (Score 2) 598

Most programming confusion I've had to combat in the workplace comes from a fundamental misunderstanding of the two most basic facts of your program:

1. Where is your program's state stored? (NOTE: 90% of the time it's "the call stack" and 90% of the time that's the wrong place to put it.)
2. Where in your code is execution happening?

Threaded program generating weirdness? It's probably because you can't answer those two questions. Distributed program a mess to debug? I bet your state is smeared all over the place. Is your code a pain to port to an evented architecture? Bet you modeled your state badly. Can't map some failure to a certain, detectable set of circumstances? I guarantee your answer starts there.

For me, the answer to understanding these problems was found in functional programming. The no-side-effects stuff causes you to make all of your state concrete and also deeply understand what the call-stack does for you (or, more often than not, *to* you). The cruel reality, though, is that applying this hard-won knowledge *doesn't* seem lie in functional programming (or, at least, not LISP, Schema, Haskell, and crew).

If you're an academic, start with Hoare's Communicating Sequential Processes (, then learn Erlang (or Go, with a heavy emphasis on GoRoutines). If you're less Ivory Tower, try to grok this blog entry (, then learn Erlang (or Go, with a heavy emphasis on GoRoutines).

Comment Re:Cue the hippies (Score 1) 226

I'm quite the proponent of researching molten salt nuclear. It's got some nice properties in terms of failure modes, is inherently anti-proliferation (so I hear), and has some nice options in the way of the thorium fuel cycle (the Chinese seem to have a real interest in this one, unsurprisingly).

Interestingly, molten salt SOLAR is actually quite nice for addressing the chief problem with solar (notably, the whole "sun goes down thing"). See here:

Slashdot Top Deals

We will have solar energy as soon as the utility companies solve one technical problem -- how to run a sunbeam through a meter.