How I Would Improve Popcorn Time (If I Were Working on It, Which I’m Not)

nw
Since its emergence a week ago on GitHub, the controversial web app Popcorn Time has become one of the most popular repositories on the entire site. Popcorn Time features a super-slick open-source UI for watching movie torrents. Information is pulled in from a variety of sources to create an experience that looks and feels like Netflix or Hulu. Popcorn Time is legal to download. It’s even legal to use it – as long as you’re not using it to watch pirated content. And since it’s open source (unlike Napster back in the early days of music file sharing) it’s pretty much out there on the internet for the long haul. As TechCrunch puts it, “Popcorn Time Is Hollywood’s Worst Nightmare, And It Can’t Be Stopped.” From a web developer perspective, I took a look under the hood to see what it’s made of. The user interface felt Backbone-y, and sure enough, the app is using a stack of Node.js / Backbone.js / Bootstrap. But right off the bat, I couldn’t help but notice this in the index.html file:

<-- Basic Dependencies -->
script src="js/vendor/jquery-2.1.0.min.js"
script src="js/vendor/underscore.js"
script src="js/vendor/backbone-1.1.0.js"
script src="js/vendor/marionette.1.6.4.js"
script src="js/vendor/bootstrap-tooltip.min.js"

<-- Settings Module and API Keys -->
script src="js/vendor/settings.js"
script src="js/vendor/config.js"

<-- App Initialization -->
script src="js/app.js"
script src="js/language.js"

<-- UI and UI-related Initialization -->
script src="js/frontend/ui.js"
script src="js/frontend/player.js"

<-- Backbone Models -->
script src="js/frontend/models/movie.js"

<-- Data Sources -->
script src="js/frontend/providers/cache.js"
script src="js/frontend/providers/themoviedb.js"
script src="js/frontend/providers/yifysubtitles.js"
script src="js/frontend/scrapers/yts.js"
script src="js/frontend/scrapers/scrapers.js"

<-- Backbone Views and Controllers -->
script src="js/frontend/models/movie.js"
script src="js/frontend/views/page.js"
script src="js/frontend/views/listview.js"
script src="js/frontend/views/movie.js"
script src="js/frontend/views/sidebar.js"
script src="js/frontend/controllers/home.js"
script src="js/frontend/controllers/search.js"
script src="js/frontend/controllers/filter.js"
script src="js/frontend/router.js"

<-- Other Dependencies -->
script src="js/vendor/video-js/video.dev.js"
script src="js/vendor/videojsplugins.js"
script src="js/vendor/dragwindow.js"

Yikes. That’s a lot of dependencies. I’m betting that using Require.js, so that the dependencies are only loaded when they are needed, would dramatically decrease page load time and speed things up. In other words, swapping out most of that with something like this:

script data-main="js/main" src="js/require.js"

I’m not working on this project, and I’m sure lots of other people could have pointed out the same thing. But the app is a slick example of using Backbone & Bootstrap together, and since the project is open source… the code could be repurposed for good, of course.

As for me, I’m still in the process of learning the ins and outs of Require.js. More on that to come.

Auto-Collapsing a Mobile Navbar in Twitter Bootstrap

bootstrap
A common complaint among developers who use the Twitter Bootstrap framework is that in mobile views, there’s no functionality for automatically collapsing the navbar when a same-page navigation link is clicked. The user has to manually close the menu, which I see as a UI drawback.  I’ve seen plenty of solutions on Stack Overflow and blogs, with varying degrees of complexity. I’d like to add my own, which is a simple three lines of code, and merely extends Bootstrap’s existing functionality.

$('.nav a').on('click', function(){
    if ($(document).width() <= 767){ 
 	$(".navbar-toggle").click();
    }
});

Basically this says that when a link inside the mobile navbar menu $('.nav a') is clicked, then also automatically click the toggle button $(".navbar-toggle"), which closes the navbar menu. The function will only execute when the document width is less than or equal to 767 ($(document).width() <= 767), the media breakpoint. This prevents weird behavior in desktop views - without it, you'll see the navbar flash as it tries to open or close a hidden element.

My Experience With Bay Area Bike Share

1236597_208901382607212_1920111432_n
Photos Courtesy Bay Area Bike Share

Bay Area Bike Share launched today, and I thought I’d post a review of my first ride. Anyone who knows me knows I’m an avid bike rider, and so I couldn’t wait to be one of the first to try out this new way of getting around San Francisco.
First a little about the program: It consists of more than 600 bikes scattered around 70 locations in San Francisco, Redwood City, Palo Alto, Mountain View and San Jose. It’s designed so that you can pick up a bike at one self-serve station and drop it off at any other. It’s $9 for 24 hours, $22 for 3 days, or $88-$99 for a full year membership. If you have a bike out for more than 30 minutes at a time, you have to pay a little extra. Otherwise, there are no additional costs. You have to have a credit card to use it.
San Francisco is just the latest city to join the worldwide bike share movement. The biggest programs are all overseas, mostly in China.
Today a friend dropped me off at work, so I thought it would be the perfect opportunity to try out the new program by biking home. There are multiple bike stations near my office, including one just yards away on the Embarcadero. However, it turns out the San Francisco bike stations are all clustered in the northeast quadrant of the city. The nearest one to my home was not very close – still another three-quarters of a mile short. I could only go as far as the MTA offices at Market and South Van Ness. So that would have to be my final destination, with either an uphill walk or a Muni ride after that the rest of the way to the Lower Haight.
During my lunch break, I signed up online as a member, pulling out my credit card for the $88 fee. I thought I’d be good to go immediately. But it turns out they have to mail you an electronic key before your membership becomes active. So I couldn’t use my membership on that evening’s ride, and would have to pay an additional $9 for the trip home. Still cheaper than a cab ride, I guess, but a lot more than the $2 Muni fare. I quickly calculated how many rides I would have to take to get ahead on the membership fee – 10 rides. That sounds like a reasonable goal, as it seems at least once a month I find myself without either car or bike in a convenient spot, and have to rely on Muni.
After work, I walked the few yards to the bike share station to let the fun begin. There’s a touch-screen user interface that’s simple to navigate. When you’ve paid, it gives you a code. You can pick any bike, enter the code where it’s docked, and the dock releases the bike.
The bikes, which are in an unmistakeable green and blue design, are getting a lot of attention. While I was getting my bike, a woman stopped and asked me some questions about how it works. Later, another bike rider started up a conversation during my ride.
I had remembered to bring my bike helmet to work, so I was good on that front. But I’ve seen lots of people riding without one, which I think is a bit dangerous. Perhaps there should be some way to rent helmets as well?

1149068_208901375940546_1448660941_n
Photos Courtesy Bay Area Bike Share

After I got my bike and had my helmet on, I was off. The ride was a lot different than what I was used to. It turns out the bike share bikes are heavy upright cruisers with fat tires, step-through frames and seven gears. I’m used to commuting on a more high-performance lightweight 24-gear road bike, so I got a much more of a workout on this ride than usual. I don’t know what I was expecting – it makes sense now that the bikes would be heavy duty to prevent wear and tear, and use a classic design geared toward people of all ages and shapes. You can’t really go too fast on them – I was mostly in 6th and 7th gear during the entire ride, and I could have easily used an 8th gear if it had one. The folks behind the program probably took safety in mind – you don’t want these bikes to reach racing speed.
Toward the end of my ride, it started to get a bit dusky and I began to see other cyclists with their lights on. I looked around for a switch on my bike, when suddenly the front and rear lights came on by themselves. Obviously there is some kind of light sensor built in. The bike stations are solar powered, so that means the bikes are too, which is pretty cool.
Finally I reached the end of my ride, which took almost the allotted half hour, as my ride was slower than usual. All I had to do was back into an empty spot in the station and I was done. There is an app that tells you how many bikes and how many empty spots are at each station, so you know what the situation is like before you arrive.
It was a nice night, so I decided to walk the rest of the way to my destination, which added on another 15 minutes.
One thing I would do differently next time is adjust the seat. It turns out it would have been fairly simple to do. More height would have given me more pedaling power and perhaps a bit faster and more comfortable ride.
I also had been wondering if San Francisco would see something like they’re experiencing in New York, where people are using the bikes heavily on weekend nights to go bar hopping. But now I don’t think that seems likely, at least for now, because of where the stations are located. There are no stations in the Mission, the Castro, Lower Haight, Polk Street or Marina/Cow Hollow, for example. Plus I don’t think I could have reached the Castro, for example, from my work, in the allotted half hour.
Still, all in all, I enjoyed it and I’d do it again in a pinch when I would otherwise have had to ride Muni… especially on the way home, since the locations are more convenient in that direction.

Will the Next Walter Cronkite Be A Twitter Robot?

Robot Cronkite
This is certainly an eye-opening article from Fast Company. Here in the television news industry, we’ve been working successfully with robocams in studios for about 15 years now. When they first came along, there were the usual growing pains, but the conventional wisdom was that content and editorial jobs could never be replaced by technology. Outsourced, maybe in some cases, but not replaced. Well, not so fast. :) Can you guess which of these two Forbes.com ledes was written by a robot:

“Take-Two Interactive Software (TTWO) is expected to book a wider loss than a year ago when it reports fourth quarter earnings on Tuesday, May 22, 2012 with analysts expecting a loss of 60 cents per share, down from a loss of 23 cents per share a year ago.”

“Take-Two Interactive shares are trading higher after hours Tuesday following the video game publisher’s financial results for the fiscal fourth quarter ended March 31.”

Check out the article for a fascinating look at robot-journalism technology and where it’s headed.

Flipboard & Prismatic

I’m checking out a couple of news discovery apps during what little free time I have this week.

The first is Flipboard, which I stumbled upon thanks to a tweet by Robert Scoble, mentioning how Google+ will soon be integrating with Flipboard. Flipboard is very visual, and uses your Facebook and Twitter feeds to give you what your friends are sharing along with what’s trending in a variety of news categories, all in a magazine style. It gives you nicely sized pictures and lets you literally flip the news stories up one by one. I’m not sure how much I’ll use it in the long run, but it’s a prettier and more visual format than Tweetdeck. I bet it looks great on an iPad for a casual read.

I also came this article about Prismatic, which has just opened up its service to the general public today, after being in invite-only mode for over a year. I have yet to try it out, but it looks interesting. It promises to “not just bolt social discovery onto existing products, which usually means presenting stuff that was already in your Twitter feed, but really use social and interest data to recommend content that you wouldn’t have seen otherwise.” Stay tuned.

How Big Brands Create Social Media Campaigns

Mashable has an interesting article up about how big brands are experimenting with advertising on social media. The takeaway quote:

In sum, it’s clear that there’s no consensus on how to run a social media campaign. That and the flood of would-be experts in social media make the process needlessly complicated. For all the trouble, though, there’s still not nearly as much money in social media as there is in traditional TV. For instance, General Motors‘ entire budget for Facebook marketing is now $30 million — about 7% of its overall $4.3 billion ad spend.

Despite the hassles, the lure of social media is strong, and a marketer in 2012 has no choice but to embrace it. “This is an always-on conversation,” the Coke rep says. “We continue to track results to this day and have no plans to stop.”

How Big Brands Create Social Media Campaigns

About Evelyn

Journalism, Television, Social Media

17 years experience in broadcast media, producing and writing daily live television news shows
Excellent writing skills
Calm under pressure and able to meet strict and tight deadlines
Extensive project management experience
Excellent skills marketing and tailoring content to specific audiences
Produced live broadcasts of major breaking news events, including: California same-sex marriage court rulings, Saddam Hussein capture, Sept. 11th attacks, three presidential elections
Two Emmy awards, three Emmy award nominations, one Radio Television Digital News Association award nomination
Early adopter of new technology
Strong social media skills
Extensive use of non-linear digital video and audio editing platforms

Rice University, Houston, TX
Bachelor of Arts in English, 1996