Slashdot stories can be listened to in audio form via an RSS feed, as read by our own robotic overlord.


Forgot your password?

Comment: SMB, eh? (Score 1) 177

by KagatoLNX (#48640117) Attached to: Hackers Used Nasty "SMB Worm" Attack Toolkit Against Sony

<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

by KagatoLNX (#48518583) Attached to: Which Programming Language Pays the Best? Probably Python

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

by KagatoLNX (#46711721) Attached to: Mozilla CEO Firestorm Likely Violated California Law

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

by KagatoLNX (#46709011) Attached to: In-Flight Wi-Fi Provider Going Above and Beyond To Help Feds Spy

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.

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

Submitted by alphadogg
alphadogg (971356) 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."
Link to Original Source

Comment: Actors and State (Score 2) 598

by KagatoLNX (#45066643) Attached to: What Are the Genuinely Useful Ideas In Programming?

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

by KagatoLNX (#41453463) Attached to: Accelerator Driven Treatment of Nuclear Waste

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:

Comment: Re:No Surprise There (Score 1) 405

by KagatoLNX (#40585015) Attached to: Apple Exits "Green Hardware" Certification Program

This is entirely true. Apple is content to let the Nokia's of the world go out of business serving a market segment that pays less.

Is this socially irresponsible? Possibly. However, survival trumps social responsibility (in business as much as life). Apple almost died once, its success is effectively built on that core lesson.

What is now proved was once only imagin'd. -- William Blake