Good day for privacy thanks to Viacom, although it could have been much worse

This article saddens me :'(

Google will have to turn over every record of every video watched by YouTube users, including users' names and IP addresses, to Viacom, which is suing Google for allowing clips of its copyright videos to appear on YouTube, a judge ruled Wednesday.

Is Viacom crazy? What do they hope to gain from this besides public outrage if they act upon this data? When will big business learn that it is impossible to regulate user generated content? Reading the judges ruling [PDF] also makes me frown. Here is Viacom's complaint with my comments interleaved:

Defendants encourage individuals to upload videos to the YouTube site, where YouTube makes them available for immediate viewing by members of the public free of charge. Although YouTube touts ( nice word choice ) itself as a service for sharing home videos, the well-known reality ( logical falicy? I believe "Ad Populum" ) of YouTube’s business is far different. YouTube ( you mean users Youtube's users ) has filled its library with entire episodes and movies and significant segments of popular copyrighted programming from Plaintiffs and other copyright owners, that neither YouTube nor the users who submit the works are licensed to use in this manner ( It doesn't make sense for YouTube as an entity to watch their own videos, but by Viacom including them, it suggests YouTube as a conspirator or an accomplice with the user ). Because YouTube users contribute pirated copyrighted works to YouTube by the thousands, including those owned by Plaintiffs, the videos “deliver[ed]” by YouTube include a vast unauthorized collection of Plaintiffs’ copyrighted audiovisual works. YouTube’s use of this content directly competes with uses that Plaintiffs have authorized and for which Plaintiffs receive valuable compensation.

If you continue reading the court document, hilarity ensues:

Viacom: "Plaintiffs [ Viacom ] seek copies of all videos that were once available for public viewing on YouTube.com but later removed for any reason" ( pp9 ) Oh man... ignorance can be funny.

Youtube: We cannot give you media, how about a list, even though "the total number of removed videos is intimidating (millions, according to defendants)... " ( pp11 ).

Viacom: "Plaintiffs seek all data from the Logging database concerning each time a YouTube video has been viewed on the YouTube website or through embedding on a third-party website" ( pp11,12 ). There goes everyone's privacy! Whoosh... out the window.

Youtube: And now for the common sense from Youtube, "Defendants argue that the data should not be disclosed because of the users’ privacy concerns, saying that 'Plaintiffs would likely be able to determine the viewing and video uploading habits of YouTube’s users based on the user’s login ID and the user’s IP address'"

Viacom: "Plaintiffs move to compel production of copies of all those private videos..." Yikes!

Youtube: "Defendants are prohibited by the Electronic Communications Privacy Act (“ECPA”) (18 U.S.C. § 2510 et seq.) from disclosing to plaintiffs the private videos and the data which reveal their contents because ECPA §2702(a)(2)" THANK YOU!

Viacom: "Plaintiffs claim that users have authorized disclosure of the contents of the private videos pursuant to ECPA §2702(b)(3)" DOH!

There are many other requests not shown above, but for the sake of brevity, here is the conclusion:

  1. Request for Youtube's search source code: DENIED
  2. Request for Youtube's Video ID source code: DENIED
  3. Request for all removed videos: GRANTED (?!?!)
  4. Request for user usage and viewing data: GRANTED (!?!?!)
  5. Request for data concerning relevant videos posted: DENIED
  6. Request for Advertising database scheme: DENIED
  7. Request for Google Video Content database schema: GRANTED (?!?!)
  8. Request for Private Videos: DENIED

So Viacom will get information about all removed videos, viewing data on all users, and the database schema for google's video content database. Sign of the times I suppose. Actually, I shouldn't be so defeated! I'm the consumer and I should revolt! How about I boycott all things Viacom... but what does that consist of?

Comedy Central? That means no Daily Show or Colbert Report. Nick At Nite and TV Land? There goes my classics like the Cosby Show and Leave it to Beaver. Paramount Pictures? There goes a lot of movies. Maybe I can rationalize that one out and stick to old Paramount omovies. But dreamworks? Come on. I write this only as a jocular reflection; I already knew the Viacom octopus has its arms in every facet of enterainment. It is this fact about big business which makes it difficult for one to fight. Who wants to bored? Where do you go for entertainment? Nevertheless, I am going to try my best to stop or at least limit my consumption of Viacom based entertainment. I invite others to do the same.

The need for a version control system

I have a new personal rule, although it might seem like a no brainer to others: for any project you expect to last more than a week, track changes with a versioning system. Last week I hit the quintessential  scenario whose remedy screamed versioning:

You decide to refactor a project to add a level of abstraction. The refactoring takes a few days to a week. Something breaks in the process. You try to backtrack, but the only parchment recording your changes was your Etch-A-Sketch brain. So you try to recall the responsible delta but the magnet drawn lines of your etch is already 3 days worn and you falter to isolate your mistake. Now all you're left with is an assert and a damning feeling that your should have installed that versioning system at the project's instantiation. Damn!

Damn indeed. That small anecdote is a quick regurgitation of what I've been stuck on for the past week. Being stuck on an easily preventable bug is such a motivational killer sometimes.

I was working on refectoring the filter plug-in system on my vzn subproject so that image surface sampling can be done independent of the surface format. Previously, to work with specific pixels within am image buffer, one had to calculate the pixel's offset within the buffer given the buffer's format. I initially did it like this just for expediency with the intention to go back and abstract out this unnecessary burden on the filter writer. Unfortunately I goofed in the process and introduced a bug somewhere in the refactoring. Sounds similar to above doesn't it? Rule created and lesson learned :)

Right now I'm thinking about Perforce. I've heard some very good things about it. I was first introduced to them at GDC last year and, after talking with a few friends, I decided to try out their product.  I believe they have free version available for a group with <= 5 developers.  I have used cvs and svn in the past, so I thought this would be a good time to try a new item. My next post will cover the installation process, if not for someone else's benefit, for my own reference. I've used my Qt installation post several times.

Wish me luck on finding that bug...

Image border policies

In the interest of improving my robot's vision, I started reading up on computer vision and image processing papers. However, I quickly realized that much of the verbiage went over my head because I do not have enough experience in the area. I decided it would be prudent of me to start small and follow some online courses in the subject. The current course I am working through is a graduate course offered at the University of Maryland ( course website ). Even the first set of lecture notes ( pdf ) is quite enlightening.

One of the first things I encountered when writing an image filter for the robot is how to handle processing an image's border where adjacent pixels are undefined. Here are some of the common choices with accompanying 1D images.

  • All zeros - any coordinate sampled outside the valid image signal range returns 0. This is what I initially did for some of my blurring filters. However, I noticed that processing the same image several times with this policy causes the black border to bleed into the final image.
  • -2 -1 0 1 2 ... N-2 N-1 N N+1 N+2
    0 0 5 3 8 ... 1 6 9 0 0
  • First/last pixel - any sample has its coordinates clamped against the image's boundaries, effectively making any out of bounds sample sample the nearest pixel.
  • -2 -1 0 1 2 ... N-2 N-1 N N+1 N+2
    5 5 5 3 8 ... 1 6 9 9 9
  • Cyclical - any out of bounds sample wraps around to the farthest side of the image.
  • -2 -1 0 1 2 ... N-2 N-1 N N+1 N+2
    6 9 5 3 8 ... 1 6 9 5 3

    if
    i = -1, i = N
    i = -2, i = N - 1
    ...
    i = -k, i = N + k + 1
    I'm not sure how why/when this would be better than the last/first pixel.

  • Simply undefined - any processing which requires out of bounds pixel data is undefined and possibly ignored. The question mark indicates a possibly skipped pixel assuming a 3x1 box filter centered at the pixel currently being processed.
  • -2 -1 0 1 2 ... N-2 N-1 N N+1 N+2
    n/a n/a 5 (?) 3 8 ... 1 6 9 (?) n/a n/a

After the instructor mentions these 4 policies, he states that unless instructed otherwise, his class will use the first/last pixel border decision. This is one choice I intuitively chose for my robot's vision component.

One method which I thought may produce better results is to computer the local derivate around an out of bounds sample and use the gradient to approximate a border value. It would add a few more cycles to the computation, but maybe it would produce more accurate results. Maybe I will test it within my image filters when I get the chance.

Google Trends on more than just canidates

A couple days ago I used Google Trends to look at the search frequency of various candidates on Google. Today I caught an article on Slashdot which linked to an article titled "Google Trends Predicts Primary". The author describes the case study:

In order to determine what kind of applications Google Trends may have to politics, I decided to compare the Republican candidates' last names for the 2008 primary season, and see how the Google search volume corresponds to voting behavior. After all, if someone is going to vote for a candidate, it's very likely that he or she will Google the candidate beforehand to learn more about the candidate's platform.

After running through several democratic primaries, comparing the results with Good Trend's candidate search volume, he reached this conclusion about the democratic primaries:

Of the remaining 32 states, 27 were completely, correctly predicted, or a success rate of 84.375%! That's certainly not bad, especially considering that no political knowledge was used for the predictions; they could be done completely by machines.

It is a good quick read. Check it out. He also did the Republican primaries.

Google Trends on candidates

Google Trends is a cool front end which lets you compare user search term frequency within Google search. I ran through the electoral candidates and code. What else?

Here are the electoral candidates:

The first graph I generated had Obama below everyone. I was surprised by this until I realized that I didn't include the 'c' in his first name. Doh! Now this graph makes more sense. For the people on the left who like to spout the 'bush third term' rhetoric, you will immediately notice that George Bush and John McCain have the same search frequency. Too close for coincidence (comfort)? Maybe and maybe not. Actually not.  These are just user search behaviors. The only interesting note a person can draw from this relationship is that there might be some correlation to how frequent a user searches for George Bush and John McCain, although that doesn't imply policy similarities *cough*.  The truth is it is mostly likely because they share the same party and that intrinsically mean the share a common policy belief.

I just realized I made a mistake. Hillary isn't a candidate...


Obama, McCain, and their websites

With Obama now the presumptive democrat nominee, I thought I would take a quick look at their websites. I suppose I should say that I support Obama, but I am also a fair person and will remain objective in my opinions. Also, I don't suggest that website design should be a criterion to which one should choose a president. Also also, I'm clearly not a web designer ( see blog design ). With that, lets do McCain's website first.

McCain

To stay consistant with McCain's design, I fired up Internet Explorer 6. Just kidding. Actually, his design does seem a bit dated compared with current style. The menu system doesn't work correctly when hovering over the items from right to left. Either the menu delay between the white and orange menu items is different or the two menus are entirely different objects/classes. Also, can you find the search field? Its there in the bottom right corner where no one ever think to look. A visual attention heat map suggests this might not be the best place.

Finally, what is up with different editions for different voter stances? I investigated this a little more to find that based upon your selection, if you revisit the main page, you will be redirected to a different homepage. When you select your option, the website stores a cookie called 'q1' with a value based upon your selection.

  • Supporter => 94a559c5-04bb-4867-a4e8-725d9d1ae7c9
  • Undecided => bcebbdea-732d-4ef4-9d4b-252c3b7534d9
  • UnRegistered =>00cdd5f6-d052-41fb-a226-a944966fb7b7
  • Unsupported => ????

These look like some pirated software serial numbers. Anyway, upon reload, this nice piece of javascript redirects you.

if(get_cookie("q1").toUpperCase() == "BCEBBDEA-732D-4EF4-9D4B-252C3B7534D9")
{
    go_to = "http://www.johnmccain.com/Home1.htm";
}
else if(get_cookie("q1").toUpperCase() == "94A559C5-04BB-4867-A4E8-725D9D1AE7C9")
{
    go_to = "http://www.johnmccain.com/Home2.htm";
}
else if(get_cookie("q1").toUpperCase() == "00CDD5F6-D052-41FB-A226-A944966FB7B7")
{
    go_to = "http://www.johnmccain.com/Home3.htm";
}
else
{
    go_to = "http://www.johnmccain.com/";
}

I went to each homepage, but couldn't find a difference. Moreover, I could not find in any other page where they use this stance to change the provided information. Odd.

Obama

And now for Obama's. If you visit Obama's website for the first time, you will be immediately redirected to a donation page. I was initially turned off by this because I find it presumptuous to ask for a donation before I do anything else. If a visitor knows very little about Obama, he or she might find it rude that he is asking for money so quickly. This is obviously a subjective point, but one that many other mights share. If even if you don't care, the tiny button in the upper right is not immediately apparent and somewhat annoying. I would expect it near the big red donation button, but maybe that would make it too easy.


After declining to donate, the "real" main page is a refreshing look compared to McCain's 2000'ish, block-ish appearance. You can see from the design that his campaign hired modern web designers. For instance, the menus actually work correctly! There is a better use of whitespace for clarity and a more consistent color palette. The shadows and lighting hide some of the block like sections and make it easier on the eyes. It is almost as if the design suggests a "change" over the old traditional style. Alright that was pushing it, haha.

At the very bottom there is a double column list of every web2.0 website on which Obama resides. Wow! He is everywhere! He sure has a lot of time to dedicate to the internet. More realistically his campaign just took a grab bag of the most popular social networking websites and created an account the top 16 to make him appear tech-savvy. I could be wrong, but thats the skeptic in me.


Overall, Obama wins my award. No coincidence.

Slander Heapmap

Both candidates have some slander. Here is the heat map to compare. Since both parties had a tab which might expose a greater slander area, I included that into the image.

Both candidates dedicate a tab to some sort of smear text. The only real difference is that McCain dedicates almost all of his news to slander where as Obama does not resort to that. To be fair, both layouts will most likely change dramatically once the general election picks up speed. Obama's news section might begin to look more like McCain's once Obama can brush off Hillary ( jab jab jab ).

SimCity Societies Review

How did I go to the store to buy Crysis and come home with SimCity Societies (EA)? I think it was a combination of price and fond memories of playing SimCity 2000. Unfortunately, it did not live up the standards set from version I played some years ago.

There are many negatives with this release, so I'll keep it brief:

  1. Horrible Engine - the game gets very slow very fast. I have two 8800GTS in SLI, capable of smoothly running Crysis, so why is it when I build a city about 3/5 of the map my frame rate drops to the 10-15fps?
  2. Buggy Release - did they release this too quickly? maybe to catch Christmas sales? Possibly. I did not have many problems on XP, but my girlfriend who played it on Vista, had several issues with crashing or the game not running at all. Moreover, it seemed there were bi-weekly patches to install. A quick google returns results suggesting the problems were not endemic to us.
  3. Dumbed Down - no water system, easier power distribution, very easy subway installation, no statistical heat maps for metrics ( crime, city services, etc ), and easy financial management are just a few things which make the game extremely easy to play. You can make a good city without almost no planning or thought. The goals are very easy to achieve with a modest city.

So what are the pros?

  1. Extensible - almost everything in the game can be controlled via C# files. After quickly browsing the source code, you could easily change a few constants here and there to make the game behave differently.
  2. Themes - I thought the themed approach to city styles was neat. SCS will detect the theme you're building and award new buildings in accordance with that theme as you meet different milestones. For instance, if you start designing a directorship, you will get such structures as brainwashing media stations or undercover secret police.

I think EA had some creative ideas for SCS with the themes and extensibility support, but with a horrible engine and dumbed down game play, I doubt it will attract much of an audience. I say avoid it until it costs next to nothing. I lost interest in the game after a day.