Archive for August 27th, 2008

Transcoding Is Not A Crime, Says Court In Veoh Porn Case

Written by on Wednesday, August 27th, 2008 in Uncategorized.

Finally, a judge who may have actually visited the Internet once or twice before deciding a case. Judge Howard Lloyd, a judge on the U.S. District Court in the Northern District of California, threw out adult entertainment company IO Group’s 2006 copyright infringement case against Veoh today. At the time Veoh had some user-uploaded porn on its service that belonged to IO Group. Despite quick takedowns from DMCA notices, IO Group sued anyway.

A key issue of the case turned on whether or not Veoh should lose DMCA safe harbor protection because they transcoded user uploaded videos to the Flash format, something every online Flash video site does as a matter of course.

IO Group argued that the transcoding made Veoh a direct infringer and that the materials were under their direct control. Lloyd disagreed, saying “Here, Veoh has simply established a system whereby software automatically processes user-submitted content and recasts it in a format that is readily accessible to its users. Veoh preselects the software parameters for the process from a range of default values set by the thirdparty software…ButVeoh does not itself actively participate or supervise the uploading of files. Nor does it preview or select the files before the upload is completed. Instead, video files are uploaded through an automated process which is initiated entirely at the volition of Veoh’s users.”

In other words, nice try but no dice.

Viacom-YouTube and a host of other Internet video related lawsuits continue to rage on, but the good guys won this one. But those of you thinking you’ll find a little adult content on Veoh now that they’ve won the case will be dissapointed. Veoh banned it permanently back in 2006. This case was about nothing but money.

The full order is included below.

Veoh v IO Group - Free Legal Forms

Crunch Network: CrunchBoard because it’s time for you to find a new Job2.0

Source: TechCrunch
Original Article: http://feedproxy.google.com/~r/Techcrunch/~3/DukbcVWX3Pk/

We Need To Kill The Business Card Once And For All

Written by on Wednesday, August 27th, 2008 in Uncategorized.

The business card needs to die, and everyone knows it. They’re clumsy, easy to lose, and virtually useless unless you take the time to enter them into your computer’s address book (they kill trees, too). The cell phone market could easily put business cards out of their misery, but instead of conforming to a single standard for contact exchange, handset manufacturers offer proprietary solutions or none at all.

FriendBook, an iPhone application from Tapulous, looked like it might hold the answer. The app uses a physical “handshake” to swap information - users simply put their iPhones next to each other and shake them. Granted, this would only work on iPhones, but it could have paved the way for similar apps on other phones. But as of yesterday the fate of FriendBook is now in jeopardy due to the departure of its lead developer (and Tapulous cofounder) Mike Lee. So is all hope lost?

Gabe Zichermann, CEO of rmbrME (”remember me”), thinks that his startup holds the answer. The service uses standard SMS or a web app to initiate the transfer of contact information, so it should work on nearly any phone. rmbrME initially launched last spring under a paid model (you’d have to pay around 50 cents every time you wanted to add a new contact). But because of an immediate poor response to the model, rmbrME is now free, though it plans to offer a premium service in the future.

To begin using the rmbrME, you first set up a profile including your standard contact information as well as links to your presence across various social networks. After meeting a potential new contact, you send a text message containing either the contact’s email address or phone number to a designated rmbrME shortcode. rmbrME then sends your new contact a SMS or email message with a link to your details, and asks them to create their own profile so that you can receive theirs.

Zichermann says it only takes about 3 seconds to initiate the process - just send your contact’s email to rmbrME, and you can complete the rest later. That may be the case, but each user still needs to create an account, logon to the site, and download the contact information from there. People may be willing to jump through a few hoops for essential contacts, but the process is still too involved, especially when meeting a large number of people at once. rmbrME is a step up from the antiquated business card, but at this point it isn’t the ultimate solution.

So what is the answer? Handset manufacturers need to agree on a format for proximity-based exchange over the air between devices - whip out the phones, detect nearby acquaintances, and hit accept. Palm was doing this a decade ago (albeit with a proprietary format), yet we’re still fumbling with Email exchanges and workaround solutions.

Crunch Network: CrunchGear drool over the sexiest new gadgets and hardware.

Source: TechCrunch
Original Article: http://feedproxy.google.com/~r/Techcrunch/~3/O6Z8ztsQuW4/

Behind the scenes: Redesigning and coding the Highrise sidebar modules

Written by on Wednesday, August 27th, 2008 in Uncategorized.

I’ve wanted to redesign the Highrise sidebars for a long time. They’ve felt cluttered and messy to me, and as we add more features to Highrise the mess will only multiply. So I was glad to have the chance this week to redesign the sidebar modules. The visual side of the redesign was straightforward, but implementing the design in code required a few tricks. Here’s a look behind the scenes at the coding decisions we made for the new Highrise sidebars.

“Subjects” in Highrise

Which sidebar modules am I talking about? In Highrise you can keep track of People, Companies, and Cases. These all have the same basic code and UI. You can keep notes about them, set tasks for the future, and manage some common types of metadata. Since People, Companies and Cases share so much plumbing, we’ve abstracted them as subjects. A subject is anything in Highrise that you can attach notes and tasks to. When you look at a subject’s page, you see a sidebar with some modules for adding or editing metadata such as contact information, background information (a kind of static text description), dates to remember for that subject, and more. The screenshot below shows a subject page with the sidebar modules highlighted.

Redesigning the modules

Each module has a header like “Contact Bob” or “Dates to remember” and data below. In the original design, modules can be either “active” or “empty” based on whether they have any data in them. Empty modules have a grey header and an “add” link floated right. Active modules have a light blue header and an “edit” link on the right. We made this distinction so your eye would more easily catch active modules when you’re looking for information. The idea was good, but the original implementation looked messy with its mix of grey and blue, scattered red action links, and lack of separation between modules.

For the first redesign (above) we cleaned up the modules. Active modules are now wrapped entirely in a light grey box with a tiny drop shadow. We killed the blue header style, relying instead on the space between modules to separate them. Empty modules no longer have a header. They are grey boxes collapsed down to a single link to add the content relevant to that module. Finally we replaced all the red links with grey links in order to put the focus on the data within active modules rather than all the possible actions. One last tweak: we changed the text for “About [subject’s name]” to “Add background information.” We’ve gone back and forth a number of times on the language for this feature, and at this stage we decided to try “background info” on for size again.

The first redesign was a big improvement. But we didn’t like the way active and empty modules looked mixed together. The dim bar in between those two active modules creates a kind of striped look that we want to avoid. The problem was worse on subjects with more sidebar modules, like companies or cases. So we decided to group all the active modules together on the top, and then group the empty modules on the bottom. The result is much cleaner, and it’s easier to scan when you load up a subject in order to quickly grab some info like an email address or birthday.

The re-ordered sidebar was a winner. But it came at a price. We couldn’t just change the CSS and call it a day. Now we also had to write code to re-order the sidebar modules dynamically based on whether they were empty or active. Ruby’s power and flexibility really came in handy for this job.

The code

I said earlier that people, companies, and cases are handled by the same plumbing because we abstracted them as subjects. The result of this abstraction is that whether you are looking at a person, a company or a case, the sidebar is rendered by the same template: subjects/_sidebar.rhtml.

(This kind of “view polymorphism” has been subject to a lot of internal debate since we first released the app. It makes maintenance both easier and harder because the code has less repetition on one hand but on the other it is less intention-revealing due to the abstractions and indirection.)

This is what the original template code looked like to render the subject sidebars:

in app/views/subjects/_sidebar.rhtml:

  <% if @subject.is_a?(Party) %>
    <%= render(:partial => 'parties/contact_info') %>
  <% end %>

  <% if show_company_contact_info?(@subject) %>
    <%= render(:partial => 'parties/contact_info', :object => @subject.company) %>
  <% end %>

  <%= render :partial => 'backgrounds/show' %>
  <%= render :partial => 'contact_dates/index' %>

  <% if @subject.is_a?(Kase) %>
    <%= render :partial => 'kases/parties' %>
  <% end %>

  <% if @subject.is_a?(Company) %>
    <%= render :partial => 'companies/people' %>
  <% end %>

Don’t worry too much about the individual partials and conditions. The key point is that each partial is a sidebar module, and each module is conditioned based on the particular subject we are rendering. A different mixture of partials will be rendered depending on whether the subject is a person, a company or a case, but they’ll always render in the same order.

We want to re-order these partials dynamically based on whether each module is active or empty. That means we need to represent the possible partials, the conditions for displaying them, and also the conditions for determining whether they are active or empty within some kind of data structure. So we popped open our Rails subjects_helper.rb and represented this information in an array.

in app/views/helpers/subjects_helper.rb:

  def sidebar_modules_to_sort
    returning [] do |m|
            # partial to render       module_is_active?                 options                          render the module for this subject?
      m << ['parties/contact_info'  , show_contact_info_module_on_top?, {}                             ] if @subject.is_a?(Party)
      m << ['parties/contact_info'  , true                            , {:object => @subject.company}  ] if show_company_contact_info?(@subject)
                                        #necessarily true per the condition at right
      m << ['backgrounds/show'      , !@subject.background.blank?     , {}                             ]
      m << ['contact_dates/index'   , @contact_dates.any?             , {}                             ]
      m << ['collections/parties'   , @subject.parties.any?           , {}                             ] if looking_at_collection?
      m << ['companies/people'      , @subject.people.any?            , {}                             ] if @subject.is_a?(Company)
    end
  end

The helper method sidebar_modules_to_sort returns a parent array full of child arrays, one for each module with an element for the template path, a true/false value to show if it is active, and an options hash for the render method. The conditions that used to determine whether each partial should be rendered now determine whether each child array should be included in the parent array. Thanks to that boolean in the second element of each child array, we can partition the parent array into two groups: those where the second element which represents that the module is ‘active’ are true, and those were that element is false. We use another helper method to partition and reassemble the array into groups.

in app/views/helpers/subjects_helper.rb:

  def sidebar_modules_in_order
    active_group, empty_group  = sidebar_modules_to_sort.partition {|m| m[1]}
    active_group.concat empty_group
  end

Finally we return to our sidebar template to do the actual rendering.

in app/views/subjects/_sidebar.rhtml:

<%= sidebar_modules_in_order.map {|m| render sidebar_module_partial(m)}.join %>

This line in the template takes the sorted array of sidebar modules and replaces each element in the array with the rendered partial. Then the join method converts each element to a string and concatenates them. sidebar_module_partial is a call to one more helper. This helper assembles the arguments for render out of the elements provided in the array. It looks like this:

in app/helpers/subjects_helper.rb:

  def sidebar_module_partial(m)
    m[2].merge({:partial => m[0]})
  end

In the snippet above, sidebar_module_partial takes the third element of each module array, which is either an empty hash or some special options for render, and merges a key specifying the template path onto that hash.

We definitely could’ve hidden these rendering gymnastics behind a helper, perhaps called render_sidebar_modules or something similar. However we’ve decided for style reasons to avoid calling render from within our helpers. Therefore we decided to use a helper to merely fill in the arguments to the call to render within the template itself.

In the end, we have a new sidebar design and some clean and intention-revealing code. This was a fun chance for me to expand my Ruby knowledge by dipping into the nuts and bolts of arrays and hashes. Thanks to Jamis for reviews and advice when I knew there had to be “a better way.” We hope you enjoy the new sidebar modules in Highrise.

Related: What belongs in a helper method?

Source: Signal vs. Noise
Original Article: http://www.37signals.com/svn/posts/1220-behind-the-scenes-redesigning-and-coding-the-highrise-sidebar-modules

BackType, A Twitter For Comments

Written by on Wednesday, August 27th, 2008 in Uncategorized.

BackType is the newest YCombinator startup to launch from their summer program. They’re a blog-comment focused startup - founders Christoper Golda and Michael Montano are for the first time aggregating all comments from millions of blogs into a single, searchable, parsable stream. Think Twitter for all comments on the web.

They are not like the recent barrage of startups focusing on cleaning up the comment experience on blogs - see Disqus, SezWho, JS-Kit, etc. Blogs (and even commenters) don’t have to actively participate to be included. Instead BackType is grabbing all comments from millions of blogs (via feeds and scraping) and adding them to the site.

Like Twitter it’s a gold mine of information. I tried searches for TechCrunch50, Obama and Olympics and got back all kinds of content that I would normally miss. RSS feeds for searches are also available.

You can also track by commenter. BackType aggregates comments made by a name that matches to a linked URL. So if you, like most people, leave comments with the same URL across multiple blogs, they will be aggregated. You can also claim an account, like i did, and have your comments aggregated even if you use different URLs. Since there is not authentication other than what people type into comment boxes, there’s a big fake comment problem. That can be fixed by turning moderation on so that you have to approve anything that goes under your name.

I like this one a lot.

Crunch Network: CrunchBoard because it’s time for you to find a new Job2.0

Source: TechCrunch
Original Article: http://feedproxy.google.com/~r/Techcrunch/~3/gxpo8bQi1sM/

Internet Explorer 8 Beta 2 and Web Standards

Written by on Wednesday, August 27th, 2008 in Uncategorized.

Internet Explorer 8 Beta 2 was released today. There are several cool UI enhancements that this beta brings to the table that I won’t cover in this post, but you can learn more about them on the IEBlog. Instead, I want to talk about how beta 2 affects IE’s relationship to web standards.

First, CSS Expressions are no longer supported in Standards Mode:

Also known as ‘Dynamic Properties’, CSS expressions are a proprietary extension to CSS with a high performance cost. As of Internet Explorer 8 Beta 2, CSS expressions are not supported in IE8 standards mode. They are still supported in IE7 Strict mode and Quirks mode for backward compatibility.

In case you don’t know, CSS expressions were actual bits of JavaScript that you could run from CSS rules; this was commonly used to simulate the CSS max-width property for IE:

CSS:

  1.  
  2. div.someClass {
  3. /* Internet Explorer */
  4. width: expression(document.body.clientWidth&gt; 600) ? “600px” : “auto”;
  5. /* Standards-compliant browsers */
  6. max-width: 600px;
  7. }
  8.  

IE 8 beta 2 also now supports alternate style sheets:

Internet Explorer 8 now supports alternative style sheets as specified by HTML4 and CSS2.1. The alternative styles that are defined by the Web page author is available through the Style menu under the Page menu. The styles are also available through the Style menu under the View menu. The No Style option on either menu can be used to disable all authors styling.

In terms of the Known Issues with IE 8 Beta 2, the first is related to Ajax bookmarking and back button support and using window.location.hash to do cross-domain communication:

Internet Explorer 8 create entries in the travel log and back button for each instance of window.location.hash that is set. This is part of the behavior for Internet Explorer 8 AJAX Navigation. If you use this technique to communicate between documents, we recommend that you switch to the Internet Explorer 8 Cross Document Messaging feature that is based on Section 6.4 of the HTML 5.0 specification.

Finally, there are some issues with the onload event for IE’s XDomainRequest object that helps with cross-domain communication:

The onload event may not fire reliably. We recommend you use the onprogress events which continues to fire as the data is received.

Unfortunately this is it for this release. You can see the full Beta 2 release notes, or download it yourself.

On a related note, IE 8 Beta 2 includes cross-site scripting attack (XSS) protection:

The XSS Filter operates as an IE8 component with visibility into all requests / responses flowing through the browser. When the filter discovers likely XSS in a cross-site request, it identifies and neuters the attack if it is replayed in the server’s response. Users are not presented with questions they are unable to answer – IE simply blocks the malicious script from executing.

Finally, PPK has also published a post on IE 8 Beta 2 and its changes.

Source: Ajaxian » Front Page
Original Article: http://feeds.feedburner.com/~r/ajaxian/~3/376586141/internet-explorer-8-beta-2-and-web-standards

FriendFeed Releases New Set Of Customizable Widgets

Written by on Wednesday, August 27th, 2008 in Uncategorized.

FriendFeed, the social activity aggregator, has released a set of customizable widgets that will allow bloggers to make sure their readers can follow all of their activities across the web. While the site has provided some widgets in the past, this set includes some new widgets to facilitate story sharing and allows for more tweaking than was offered before.

Among the widgets offered are a new profile badge, a list of the most recent items in your feed, and a “Share on FriendFeed” chiclet that allows users to add an item to FriendFeed without leaving your site. You can grab the widgets here.

Here’s an example of the badge:

The new status widget:

The new features come only two days after FriendFeed rolled out support for photos and Friends List which have enabled the “Fake Follow“.

For more details, check out the FriendFeed blog.

Crunch Network: MobileCrunch Mobile Gadgets and Applications, Delivered Daily.

Source: TechCrunch
Original Article: http://feedproxy.google.com/~r/Techcrunch/~3/7xwVu79TUN8/

Mark Cuban Joins TechCrunch50 for a One-On-One Interview with Jason Calacanis

Written by on Wednesday, August 27th, 2008 in Uncategorized.

Mark Cuban will be joining the TechCrunch50 program on Tuesday, September 9 for a one-on-one interview with Jason Calacanis from the main stage. You probably know Mark as both the owner of the Dallas Mavericks and a serial entrepreneur who co-founded Broadcast.com with Todd Wagner. They then sold Broadcast.com to Yahoo in July of 1999 for $5.04 billion. Before Broadcast.com, Mark co-founded MicroSolutions, a leading National Systems Integrator, in 1983, and later sold it to CompuServe.

Mark has continued his work with Todd Wagner in another venture, 2929 Entertainment, which provides vertically integrated production and distribution of films and video. Additionally, Mark is a co-founder (with Philip Garvin) of HDNet, the first high-definition satellite television network.

Even with all of his entrepreneurial, sports and corporate experience, Mark recently found time to participate as one of the 12 contestants on the 5th season of the ABC Show Dancing with the Stars. Mark and his partner, Kym Johnson, were the fifth couple to be voted off of the show after welterweight boxing champion Floyd Mayweather and professional partner Karina Smirnoff.

You will not want to miss this live interview with Mark Cuban from TechCrunch50. Stay tuned for additional content updates – as we have a number of surprises yet to announce.

TechCrunch50 is right around the corner. Please register for your tickets before we sell out!! You will not believe what we have planned for you this year (September 8, 9 and 10).

As we move closer to the conference, we are encouraging everyone to book their hotel reservations (many hotels are already sold out) and register for the conference before we sell out. For companies seeking to launch and showcase products at TechCrunch50, please take a look at our Exhibitor Package. If you have questions about sponsorships, please reach out to Heather Harde or Dan Kimerling. All media inquiries should be sent to Sarah Ross.

Crunch Network: MobileCrunch Mobile Gadgets and Applications, Delivered Daily.

Source: TechCrunch
Original Article: http://feedproxy.google.com/~r/Techcrunch/~3/MQCVGvJfCY0/

Activation fees are obscene

Written by on Wednesday, August 27th, 2008 in Uncategorized.

Wanna feel ripped off today? Sign up for an online virtual service that charges a one-time activation fee. It’s a special feeling to hand over $35 for nothing.

I’d almost understand if there was actual work involved. Or hardware was manually set up. Or someone had to climb some stairs and walk down a few halls to flip something on.

But to charge me $35 to “activate” my account by adding a few records to a few databases, well, that feels like… You know what that feels like.

Source: Signal vs. Noise
Original Article: http://www.37signals.com/svn/posts/1222-activation-fees-are-obscene

More Yahoo Senior Exec Defections: Steve Boom and Todd Teresi

Written by on Wednesday, August 27th, 2008 in Uncategorized.

The mass exodus of both execs and rank and file employees at Yahoo continues. In fact the real defections may just be getting started at a high percentage of employees vest on lucrative restricted stock units this month.

Yahoo’s head of communications Jill Nash continues to try to keep the resignations as quiet as possible, and suggests informally to press that most of the high level departures are really just a cleaning house procedure.

What a housecleaning.

Two more SVPs are bailing out. Previously reported was Todd Teresi (pictured left), SVP of Network Business. Teresi is now the Chief Revenue Officer at Quantcast.

Now we’ve heard that the number 2 exec at Yahoo Mobile, ten year Yahoo’er Steve Boom (pictured right), has resigned as well. Boom started in Yahoo’s London office in a business development role. More recently he oversaw Yahoo’s broadband partnerships with AT&T, Rogers, BT and Verizon.

Crunch Network: CrunchBoard because it’s time for you to find a new Job2.0

Source: TechCrunch
Original Article: http://feedproxy.google.com/~r/Techcrunch/~3/GkVzTW7R4Bc/

Google Expands Its Wiki Approach to Map Making (India Edition)

Written by on Wednesday, August 27th, 2008 in Uncategorized.

When it comes to the availability of good mapping data, not all parts of the world are created equal. That’s why Google is taking a wiki approach to filling out the white spaces on its maps, particularly in developing nations. Back in June, it launched Map Maker for a small group of island nations where there isn’t great existing cartography data. But now it’s added India to the countries that can be modified on Google Maps. As Google gains more experience with this experiment, more countries may be added in the future. Although it is starting in regions that have poor map data, hopefully it will figure out a way to add this capability for every region of the world. (Even in the U.S., which is not yet editable in this fashion, Google Maps is not perfect).

Map Maker lets anyone add or edit roads, points of interests, and other features on Google Maps. You can mark tourist destinations (like the Taj Mahal), restaurants, factories, helipads, even shrubbery. There is a drop-down list of dozens of feature types to choose from for consistent tagging and easy searchability. Map Maker also lets you define particular regions and neighborhoods by drawing or tracing them using the satellite imagery as your guide. Unlike Google My Maps, any changes to Map Maker are automatically added to Google Maps for everyone to see (although Google reserves the right to moderate contributions).

Here is a video from Google India explaining the service and a list of the 57 countries that can now be edited in Map Maker (image below) .

Crunch Network: CrunchGear drool over the sexiest new gadgets and hardware.

Source: TechCrunch
Original Article: http://feedproxy.google.com/~r/Techcrunch/~3/ohkUcFC2Di4/



Site Navigation