May 26th, 2009


What went wrong with Terminator: Salvation

The finished film opted to play utterly safe, and as a result it's a lump without buzz or excitement. Ironically Bale's demand to beef up John Connor, which led to a final film that is utterly distended, would have perfectly set up the character's demise. The biggest problem with Connor's death at the end of the original script is that it carried no weight because he's a nobody throughout the film. But in the current movie, which feels like it's building to that death, it would have been the kind of surprise that works, one that's had a foundation laid.

How We Learned to Stop Worrying and Let Dystopian SF movies Inspire our Military Bots

....which raises the inevitable Terminator question. Did you see anything that made you think of that film, particularly?

PWS: Oh, god. You know, what didn't? I mean, I can think of just wonderful layers of anecdotes upon anecdotes about that.

I'll give you four things that sort of jumped out at me and that I write about in the book. [...]

The fourth example is the role of what I call the refuseniks. The refuseniks are scientists working in robotics who are starting to worry that they are becoming too much like the Dyson character in the Terminator chronology. Dyson was the scientist who invents SkyNet and then learns to his horror what it did. And he has this wonderful quote: "You're judging me on things I haven't even done yet. Jesus. How were we supposed to know?" And that's in the world of fiction.

The refuseniks are also thinking about the world of history, most particularly what happened in the 1940s to the nuclear physicists who became so enamored of building this incredible technology - what became the atomic bomb - that they never took a step back and went, "Oh my gosh. What does this all mean?" And even more to the point, they tricked themselves into believing they were going to be the ones in charge of how it would be used. And, of course, after the Manhattan project, they weren't the ones in charge. And a lot of them asked themselves, "My god, what did I do?" And a lot of the people who invented the atomic bomb then became the founders of the arms control movement to ban the atomic bomb. So the refuseniks are real-world roboticists... a sort of small movement in the robotics field. As I joke, they're the roboticists who just say no. They're the ones who are saying, "You know what? I don't want to accept military funding for what I'm doing. I'm not going to work on war bots." And that's another Terminator-like parallel. But just like in the Terminator chronologies, just because you've got some people who decide to change their minds, it doesn't mean that the entire field isn't moving in that direction.

Collapse )

Industrial overfishing proves highly effective.

There will be virtually nothing left to fish from the seas by the middle of the century if current trends continue, according to a major scientific study.

Stocks have collapsed in nearly one-third of sea fisheries, and the rate of decline is accelerating.

Stuff like this scares the shit out of me. Some people worry about the ozone. I worry that my kids will never know what sashimi or fish sticks were. This is an issue that I think nobody knows about, and even if they did know they'd probably shrug. I don't believe there's a chance in hell that we'll fix this.

(Oh sure, there are sustainably raised fish populations. And the people who do know and do care try to only buy and eat those fish. But seriously, how many people is that? Have *you* ever heard of the concept of sustainably raised fish before I mentioned it just now?)

What are we going to do when there are no more fish in the oceans? Resort to land animals for our protein? Raising fish is inefficient enough, but raising cattle is just about the most energy-inefficient (per calorie created) process in the world. But I'm afraid I like hamburgers and steak way too much to seriously advocate everyone going vegan. (Even though I'm sure the health benefits would be fucking enormous.)

Hopefully NZ will be smart enough to protect their waters... and this'll be somebody else's problem and not mine.
  • Current Music
    Ten Years After - I'd Love To Change The World
  • Tags

Flash 8 and below communicating to Flash 9 and above via

Problem: You need to send stuff over sockets and have legacy code that must use Flash 8. Flash 8's XMLSocket doesn't come close to working for your purposes.

Solution: Make a Flash 9 container .swf that loads up the Flash 8 .swf. Have the flash 8 swf send strings to Flash 9 (which does have sockets) via a LocalConnection object.

Sub-problem: I coded it up and it doesn't work. Why not?

Answer: The docs on LocalConnection are badly written and/or omit required steps. You need a fully working example to show what all the necessary steps are.



Pitfalls I encountered:

1) Most of the docs and tutorials out on the net omit the localconn.client = receivingObject; step. Your callback function will never get called if you omit this. As is usual with code tutorials on the net, the stupid morans never actually compile and test the code they post to see if it works. But if you make this mistake, you at least get an error that says: "I can't call the callback".

2) I declared the LocalConnection a variable inside a function. As soon as the function exited, the garbage collector destroyed the variable. This causes recvString() to never get called. The LocalConnection variable needs to be a class variable or otherwise avoid going out of scope. This failure is completely silent - you won't get an error, it'll just not work. (Also for some reason fdb won't step into any of the LocalConnection functions, so you can't debug it that way either. Extremely frustrating.)

3) I didn't realize that there were no command-line tools for < Flash 9. I spent a full day trying to figure out how to compile my to a .swf with the Flex 2 SDK. Not happenin'. By the way, the flash8bridgetest.swf is a single frame .swf with a button, and the button's onclick just runs the two lines given. I had to get someone else to make it for me with commercial Flash authoring software. (Well, I suppose I could have tried FlashDevelop...)

Problems I expected but did not run into:

- I put in the localConn.allowDomain("localhost"); preemptively, and didn't have any problems with refused connections. Of course, both my .swfs were on the same machine. If you're trying to load the flash 8 swf from across the interwebs it will probably screw up.

- I'm using the free Flex 3.3 SDK, and thought there was a chance it might screw things up somehow. But nope, the above code works great for me under Flex 3.3.
  • Current Music
    George Strait - Four Down and Twelve Across