Archive for the 'Miro Guide' Category

Some quick statistics on the Miro Guide codebase

     556 text files.
classified 538 files
     499 unique files.
     180 files ignored.

http://cloc.sourceforge.net v 1.04  T=61.0 s (6.0 files/s, 772.1 lines/s)
-------------------------------------------------------------------------------
Language          files     blank   comment      code    scale   3rd gen. equiv
-------------------------------------------------------------------------------
Python              185      4403      2428     25212 x   4.20 =      105890.40
HTML                 89       198        87      8411 x   1.90 =       15980.90
CSS                   4       616        24      2752 x   1.00 =        2752.00
Javascript            6       109       545       754 x   1.48 =        1115.92
SQL                  65        94       130       504 x   2.29 =        1154.16
XML                   6        10         0       359 x   1.90 =         682.10
Bourne Shell         12        54       135       274 x   3.81 =        1043.94
-------------------------------------------------------------------------------
SUM:                367      5484      3349     38266 x   3.36 =      128619.42
-------------------------------------------------------------------------------

Translate the Guide!

The Guide was just accepted into Launchpad, so now I need your help. I’m mono-lingual in human languages, so I can’t translate the strings we use into the 34 different languages for which we have videos.

That’s where you come in! Help out by translating some of the Guide over on the Miro Guide Launchpad page, and be the first on your block to see all the cool phrases that are used behind the scenes.

Data API!

The first iteration of the Miroguide API is out in the world! Visit https://develop.participatoryculture.org/trac/democracy/wiki/MiroGuideApi to check it out.

Request for User Stories: Language Switching

I’m starting to work on #9505 which allows a user to view the guide in a different language. This probably involves a couple things:

  • translating the Guide
  • only showing channels in the specified language
  • choosing the default language based on what language Miro is in

But I don’t really know what people want from this feature. So I’m opening the floor up to you. What would you like a language switcher to do? How would you like to interact with it? Either add a comment to the bug or to this post, and you can help direct this feature!

RSS Feeds for the Guide

I hacked together a quick feature that I’ve been wanting for a while: RSS feeds for the guide. Right now, there are three of them:

https://www.miroguide.com/feeds/features/
https://www.miroguide.com/feeds/new/
]https://www.miroguide.com/feeds/categories/[category name

Let me know what you think!

New Features: Adult Channels, Featured Queue

We just rolled out a couple new features onto the Guide.

  1. Featured Queue: This is mostly relevant for moderators. Previously, to feature a channel on the front page, moderators had to manually unfeature an older channel before featuring a new one. Now, when a channel is featured, it goes into a queue with all the other channels featured by moderators. Then, once a day, the oldest featured channel is removed from the front page (but still visible on the Featured page) and replaced by an entry from the queue. It picks the channel round-robin style so that all the moderators get channels on the front page.
  2. Adult Flagging: This is an oft-requested featured. Now moderators will be able to flag channels as Adult and they’ll be filtered (by default) from all views. If you want to see them, then you can visit the Adult category and agree to see them.

Matt moved the database onto its own server, which along with some new caching code has sped the site up a lot. Hopefully it’ll be able to handle the spike when Miro 1.0 comes out.

Guide API?

One thing that I’ve been thinking a lot about (esp. now that Miro is nearing 1.0) is an API for the Guide. I’d love for the Guide to be more directly useful from Miro (think rating channels, getting recommendations, etc), but also more useful for other projects. After all, the Guide is a great resource for Internet TV channels, regardless of the software ones uses.
So I’m posing a question to the developers/users out there: what would you like to see in a Guide API? What would you like to be able to do/access? And how would you like to be able to access it?

Lessons Learned from other sites

I’ve been reading some of the architecture articles on High Scalability (YouTube, Twitter, Amazon, Flickr) and while the descriptions of hardware aren’t particularly useful to me (Miro Guide is one, about to be two, servers; not that big), but a lot of the tips and lessons learned I think may be applicable.

  • Keep it Simple: I was a victim of this earlier, trying to make a system that was too complicated.
  • Don’t make the database the central bottleneck: We’re running into this problem now, where sometimes a simple insert will time out because the database is being hit so much.
  • Denormalize: I haven’t done this, nor do I have plans to in the near future, but it’s a least something to think about.
  • Avoid complex joins: Nor this, but it may be becoming a problem. The next item may help with this
  • Cache everything: We don’t do this very well, and it’s one of my goals. We just added a Squid server, so giving some hints to that about what’s changed will be good. Also, using memcached a bit more.
  • Make your website an open service by creating an API. After the 1.0 release, this is one of the big features I want to work on. I think it’ll make Miro Guide a lot more useful both inside and outside of Miro and allow some refactoring of the actual guide,
  • Measure, measure, measure: I starting doing this a couple weeks ago. Now I get an daily e-mail saying what parts of the Guide are running slowly. It’s both a good way to see what needs work, but also how well the caching is working.
  • Abstraction: again, something that I’d like to do in conjunction with the API.

Go rate some stuff!

We rolled out ratings a while ago, but we recently made a big push for them with a Top Rated page and a blog post. Now I’m throwing my hat in the ring.

Currently, there are about 950 ratings (100 of them are “Not Interested”). I’d like to start working on personalized recommendations, but I’d like to have some more data. A lot more data. I’d like about 2000 ratings so that I’ve got a good range for adding this new feature. If you all could rate some more channels, I’d really appreciate it. Also, you’ll appreciate it when the guide can tell you about new channels you’ll like. :)

Weekly Status Report: 9/26-10/2

This week I worked on fixing some display issues on Firefox and Safari. I also updated the donate bar when we broken $50k. I also finished up a couple scripts which check un-approved users. Old users were grandparented in, but new users have to give a valid e-mail address and confirm it with a code.

The rest of my time has been spent doing caching things. There’s some new code that’ll be going live in the Guide hopefully later tonight which will hopefully make things a little better. Then Ben and I will be discussing what we think the best way to make the guide keep going faster is. I’ve been doing some logging, and I’m getting some good data. Currently the slowest pages overall are the 1st channel submit step, the channel details pages and the subscription-hit pages. The slowest pages to render are the front page, the languages and popular pages, and the channel submit pages. Searching is also slow, but on average it takes about 1 fewer second to render than the popular page.