2007-05-29

Star Wars Mashups

Two Star Wars posts in a row? Sure! Lucasfilm just introduced Star Wars mashups - basically they're licensing clips from the movie to fans who want to mess around with them (with major restrictions). In an era where fair use is under attack, this is a healthy breath of fresh air. Lucasfilm has been quite progressive about this for a while, when they introduced a fan film hosting service (although infamously zealous about their copyrights).

Here are some more stories on the topic:
  • WSJ
  • Ars Technica

    For a much more negative view on the Lucasfilm decision, read the Madisonian (don't know much about the site, but it looks interesting). They argue that by authorizing, but also limiting, what can be used in the parody clips, Lucasfilm is actually undermining fair use, since legally one can use any clip for parody purposes. There's definitely some truth to this, but with the many copyright holders behaving as if fair use doesn't even exist, Lucasfilm's is a welcome move.

    --YY
  • 2007-05-28

    Happy (Belated) Birthday, Star Wars!

    Sometimes it's hard to blog not when you don't have anything to write about, but when there's so much going on that it's impossible to pick something. Also, when you have no time or energy to blog in the first place.

    That said, I would be remiss in not mentioning that Friday was the 30th anniversary of the original Star Wars movie. Here's to 30 more! I'm not sure what that means either.

    --YY

    p.s. I'm starting a new job tomorrow - wish me luck!

    2007-05-14

    Lawsuits, Lawsuits, Lawsuits - Part 2

    Here's an interesting comment in Slashdot about frivolous lawsuits (comment author). I think it makes a lot of sense, and at the very least, food for thought:
    I think it's high time we had lawsuit reform.

    Reform #1: If lawsuit is deemed frivolous, plaintiff pays for defendant's legal fees, court costs, and some penalty to be divvied between the court and the defendant(s).

    Reform #2: Neither party is allowed to spend more on legal fees and/or time spent, in the case of pro bono.

    Reform #3: If a plaintiff has had 3 lawsuits deemed frivolous, they are barred from suing for one year. A fourth is 5 years. A fifth is 10 years.

    Reform #4: A lawyer who's had 3 or more lawsuits dismissed for frivolity is suspended for one year. A fourth is grounds for disbarment. A fifth is automatic disbarment.

    --YY

    Lawsuits, Lawsuits, Lawsuits

    Seems like everyone's suing somebody these days...
  • KFC is threatening a tiny little pub in England over their use of the phrase "Family Feast".
  • Microsoft wants to sue various Open Source projects over patent infringement.
  • Some idiot is suing his dry cleaners for $67 million over lost pants.
    And the biggest lawsuit of all time:
  • Bank of America threatened to sue LaSalle Bank's parent company for $220 billion dollars if it didn't let BoA buy them. BoA is on an acquisition spree, and I guess this is the sort of tantrum they throw if they don't get their way. BoA is a horrible bank - avoid them like the plague.

    --YY
  • 2007-05-08

    (Un)Happy Harassment

    I heard something quite weird today. A friend of mine recently celebrated a happy occasion (a Simcha, in Hebrew) in his family. Unlike many Orthodox Jews, however, he and his wife refrained from posting the news on OnlySimchas.com*. In his words, "We don't want our lives up on OnlySimchas". But in my friend's case, someone decided to post the news for them, despite their wishes. Apparently this person (or persons) keeps posting the news, even bumping up the date to make sure it stays on the front page. It could be someone well-meaning who wants to share the news, and doesn't know about my friend's feelings on the matter, or a creepy jerk who has it in for my friend. It could be the same person persistently putting it up, or different people who hear the news, and don't understand why it's not already on the site. Or maybe it was just a technical glitch?

    I've heard of OnlySimchas jokes ("Wedding of Brad Pitt and Angelina Jolie!") and OnlySimchas spam ("Birth of Low Prices at FooMart!"), but this is the first I've heard of OnlySimchas harassment. My friend seems to think it's common, but it seems to be a pretty weird way to harass someone. Although I could see how someone might want to mess with their ex by posting a fake "engagement" with pictures of the once happy couple. Hmmm - this could be a dangerous avenue of contemplation... I think I'll stop there.

    --YY

    2007-05-07

    Yitzi On Entropy

    It looks like I got Yitzi thinking - that's always dangerous... And he just had a kid! How does he have time to think? (Seriously speaking, I'd like to publicly wish Yitz a huge mazel tov on the birth of his first son :-D). Here's a taste:
    People like to think of entropy as a force in nature that is slowly ripping everything apart. Entropy is the force that works towards spreading energy evenly throughout the whole universe. Since we, as created beings, are pockets of a relatively large amount of energy packed into a relatively small space, it would seem that Entropy has it in for us.

    ...

    Entropy, rather than being seen as a destructive force, can be seen as an overly benevolent force: It is trying to evenly distribute God's blessing throughout the cosmos with complete impartiality. Entropy is actually the extreme expression of God's Kindness. Really, why should any space in the universe be devoid of God's light? Why should any space in the universe get preferential treatment over any other? Such is the logic behind the unbending Kindness inherent in Entropy.
    (emphasis his)

    Usual heads up for Yitzi's blog - it's fairly heavy Jewish mysticism, so you may find his post challenging if you're not up to speed on the terminology.

    --YY

    p.s. I still think "Entropy has it in for us", but Yitzi does make a convincing argument otherwise.

    It's Going To Take How Long?

    I recently got this in an e-mail from Verizon:
    Dear Customer,

    Thank you. We have received your enrollment form for the Recurring Credit Card Payment option.

    Your credit card billing should begin within 60 days of this date.
    Ummm are they using internet over carrier pigeons?

    --YY

    p.s. I always wanted to link that...

    2007-05-02

    School Is Hell

    It was only last week when a student was arrested for writing an essay, and a few weeks ago when another innocent kid was thrown into jail because of a Daylight Savings Time bug.

    now a student has been arrested for making a video game map of his school, something that is apparently quite common for people learning to make video game maps. Now granted, I can see how fuddy-duddy grown-ups with no understanding of video games might be freaked out by a kid (look out, he's Asian!) playing what appears to be a simulation of himself running around shooting inside his school. But any sane school administrator will simply talk to the kid and see if anything's up, as opposed to searching the kid's house and arresting him when they find a hammer, which he apparently needed to fix his bed.

    My high school wasn't much better. When I was a junior, several kids got caught with marijuana. In addition to getting the DEA involved, the administration told some of the kids that if they ratted out their friends, they would get suspended and not expelled. They ratted and got expelled anyway. This was not lost on the rest of us kids, nor our younger siblings, nor their friends... the administrators completely alienated their students as well as future students by betraying their trust. I don't see this getting better any time soon.

    --YY

    p.s. As a bonus, here's an excellent essay by Paul Graham: Why Nerds Are Unpopular: "If life seems awful to kids, it's neither because hormones are turning you all into monsters (as your parents believe), nor because life actually is awful (as you believe). It's because the adults, who no longer have any economic use for you, have abandoned you to spend years cooped up together with nothing real to do. Any society of that type is awful to live in. You don't have to look any further to explain why teenage kids are unhappy."

    War Is A Racket

    Yes it is.

    --YY

    Ruby Tip - Cleaner Object Inspection

    Here's a cute tip I picked up in Ruby a little while back. Ruby has some nice built-in inspection methods that let you discover some things about an object. The public_methods method will list all the public methods for a particular object:

    irb(main):001:0> ''.methods
    => ["methods", "instance_eval", "%", "rindex", "map", "<<", "split", "any?", "du
    p", "sort", "strip", "size", "instance_variables", "downcase", "min", "gsub!", "
    count", "include?", "succ!", "instance_of?", "extend", "downcase!", "intern", "s
    queeze!", "eql?", "*", "next", "find_all", "each", "rstrip!", "each_line", "+",
    "id", "sub", "slice!", "hash", "singleton_methods", "tr", "replace", "inject", "
    reverse", "taint", "sort_by", "lstrip", "frozen?", "instance_variable_get", "cap
    italize", "max", "chop!", "kind_of?", "capitalize!", "scan", "select", "to_a", "
    each_byte", "type", "casecmp", "gsub", "protected_methods", "empty?", "to_str",
    "partition", "tr_s", "tr!", "match", "grep", "rstrip", "to_sym", "instance_varia
    ble_set", "next!", "swapcase", "chomp!", "is_a?", "swapcase!", "ljust", "respond
    _to?", "between?", "reject", "to_s", "upto", "hex", "sum", "class", "method", "r
    everse!", "chop", "<=>", "insert", "<", "tainted?", "private_methods", "==", "de
    lete", "dump", "===", "__id__", "member?", "tr_s!", "unpack", ">", "concat", "re
    quire_gem", "nil?", "untaint", "succ", "find", "strip!", "each_with_index", ">="
    , "to_i", "rjust", "<=", "send", "display", "index", "collect", "inspect", "slic
    e", "oct", "all?", "gem", "clone", "length", "entries", "chomp", "=~", "public_m
    ethods", "upcase", "sub!", "squeeze", "__send__", "upcase!", "crypt", "delete!",
    "equal?", "freeze", "object_id", "detect", "require", "zip", "[]", "lstrip!", "
    center", "[]=", "to_f"]

    Above is an array of every method available for a String object. It's useful, but if you're trying to track down the name of a particular method, it's going to be hard to find. So the first step is to use sort on the resulting array:

    irb(main):003:0> ''.public_methods.sort
    (Picture the same output as above, but sorted ;-)

    Better, but we still have a lot of inherited methods that aren't specific to Strings, like object_id, clone, and inspect (not to mention public_methods itself). How do we filter those out? With the reject method:

    irb(main):014:0> ''.public_methods.reject {|m| Object.methods.index(m)}.sort
    => ["%", "*", "+", "<<", "[]", "[]=", "all?", "any?", "between?", "capitalize",
    "capitalize!", "casecmp", "center", "chomp", "chomp!", "chop", "chop!", "collect
    ", "concat", "count", "crypt", "delete", "delete!", "detect", "downcase", "downc
    ase!", "dump", "each", "each_byte", "each_line", "each_with_index", "empty?", "e
    ntries", "find", "find_all", "grep", "gsub", "gsub!", "hex", "index", "inject",
    "insert", "intern", "length", "ljust", "lstrip", "lstrip!", "map", "match", "max
    ", "member?", "min", "next", "next!", "oct", "partition", "reject", "replace", "
    reverse", "reverse!", "rindex", "rjust", "rstrip", "rstrip!", "scan", "select",
    "size", "slice", "slice!", "sort", "sort_by", "split", "squeeze", "squeeze!", "s
    trip", "strip!", "sub", "sub!", "succ", "succ!", "sum", "swapcase", "swapcase!",
    "to_f", "to_i", "to_str", "to_sym", "tr", "tr!", "tr_s", "tr_s!", "unpack", "up
    case", "upcase!", "upto", "zip"]

    The result are String-only public methods. Notice the list is much shorter (49 fewer methods, to be exact).

    One more step: if you want to filter out any inherited methods (not just Object's), use superclass:

    irb(main)> class A; def a; end; end;
    irb(main)> class B < A; def b; end; end
    irb(main> B.instance_methods.reject {|m| Object.methods.index(m)}
    => ["b", "a"]
    irb(main)> B.instance_methods.reject {|m| B.superclass.instance_methods.index(m)}
    => ["b"]

    In this contrived example, A is a class with one method (a), and B is a class inherited from A with its own method (b). If you filter out Object's methods from B's, it shows a and b. If you filter out A's methods from B's, it only shows b.

    I should just point out that I used instance_methods, not methods or public_methods, since a and b are both instance methods, and would not show up in B.methods. If I made an instance of B (using B.new), then it would show up for that.

    Whew! Hope this helped somebody...

    --YY

    2007-05-01

    Vista Breaks Everything

    Here's a whole writeup on just how bad Vista is, due its built-in DRM systems. In a nutshell problems crop up on multiple levels (software, hardware, performance, reliability), and the costs associated with those problems are all passed on to the consumer. Monitors and soundcards stop working, for example, because Vista is going out of its way to make them stop working. Stay away...

    --YY