Jun 12

moving the blog

Posted by Will Kahn-Greene

I’ve been blogging here for about two years. It’s a little hard since I have two blogs: one here for Miro things and one for everything else on a server that I own using blog software that I wrote.

I finally wrote the bits I needed to enable me to migrate from this WordPress blog over to my blog.

I’ll leave this blog here, but I’m shutting off comments. I plan to switch the subscription url on Planet Miro shortly.

Apr 28

Jaunty packages released

Posted by Will Kahn-Greene

I finished up a set of Miro 2.0.4 packages for Jaunty for amd64 and i386, pushed them out, and updated our download instructions page.

Two things to clarify:

  1. In the Ubuntu universe repository are Miro 2.0.3 packages, but these packages have a backported patch from Miro 2.0.4 so they’re essentially equivalent to the 2.0.4 packages I just built.
  2. I put out PCF-built packages because we support Ubuntu and not because Iain and others aren’t doing a fantastic job packaging Miro for Ubuntu.

I’m sorry it took so long, but I was gone most of last week, so I was a bit late to the party.

I’m currently working on getting Miro in trunk to work with Jaunty… there are a few other issues that need to be worked out still.

Instructions for installing the PCF-built Miro 2.0.4 packages are at http://www.getmiro.com/download/for-ubuntu/ .

Going forward I’ll continue to build packages for Hardy, Intrepid and Jaunty. I’m no longer building packages for older versions of Ubuntu.

Apr 16

Me for the next week

I’m going on a service trip for a week to help out rebuilding and such. When I get back, I’ll be spending quality time with Miro on Ubuntu Jaunty, Python 2.6 and a bunch of other support issues that have popped up and I’ll be back on Miro development duty helping Ben and Luc with the changes going into Miro 2.1.

Call for help

Also, if you are technical and use Gentoo, Arch Linux, or OpenSUSE, toss me a line either in the comments below, on #miro-hackers on irc.freenode.net or by email at will.guaraldi at pculture dot org. I’d really like to get help on supporting these three systems better for Miro–I just can’t do it myself.

Apr 7

db changes garner no response

Posted by Will Kahn-Greene

I’m surprised that Ben’s post didn’t garner any response. I thought there was a significant number of people chomping at the bit for these db changes.

If you’re one of the people that was looking forward to these changes but wasn’t aware they were happening, then definitely take a look at trunk. If there are use-cases you have that you don’t think are going to be handled, let us know as soon as possible.

Mar 26

I spent the greater part of today adding remote control support to the Miro Fullscreen project. I thought I’d do a write up on it because there are a lot of pieces involved and it took me ages to figure it out and I’m paranoid I’ll forget.

Quick caveats:

  • I’m doing this on Ubuntu Intrepid (8.10). If you want to translate this to your favorite distribution, feel free to add any notes in the comments.
  • If you’re using OSX or Windows and want to know how to get things working there, I have no idea how to do it and that’s not going to be covered here.
  • I used a StreamZap remote and didn’t try it with other remotes.
  • This is a set of notes; it’s not a good essay and I’m definitely not an expert.

Requirements

I installed three packages: lirc, python-pylirc, and gnome-lirc-properties.

sudo apt-get install lirc python-pylirc gnome-lirc-properties

LIRC

lirc has a web-site at http://lirc.org/. I had no idea what I was looking at while wandering aimlessly through that site. I think the important pages are these:

python-pylirc

The only useful site I could find for this project was at http://pylirc.mccabe.nu/. It says that Paul Hummer took over the project and moved it to http://pylirc.ironlionsoftware.com/, but that’s a dead link. I found Paul’s blog at http://theironlion.net/blog/. He uses tagging on his blog, but there’s only one article tagged as pylirc2 at http://theironlion.net/tag/pylirc2/. I couldn’t find anything useful about pylirc, the project, its status, or what’s going on. Paul suggests he was going to add LIRC support to Entertainer, but it doesn’t look like he ever did that.

Anyhow, so I ended up going with the documentation on http://pylirc.mccabe.nu/ and that seemed to work out ok.

gnome-lirc-properties

I don’t know if I really needed gnome-lirc-properties.

The .lircrc file

So you install the three (or two–depending on whether gnome-lirc-properties is really needed) packages and you create a .lircrc file like this:

begin
    prog   = mirofullscreen
    button = MUTE
    config = n
end
begin
    prog   = mirofullscreen
    button = VOL_UP
    config = Up
end
begin
    prog   = mirofullscreen
    button = VOL_DOWN
    config = Down
end
begin
    prog   = mirofullscreen
    button = UP
    config = Up
end
...

where prog is the string you pass to pylirc.init, button comes from the remote control lirc file and config is the string you add handling for in your application.

the Python code

The sample code at http://pylirc.mccabe.nu/?/article/articleview/Documentation/1426&themex=public gave me enough of an idea on how it worked to implement the code in Miro Fullscreen.

In closing

Hope that’s useful to someone at some point.

Feb 19

Who’s part of the team?

Posted by Will Kahn-Greene

I saw the Our wonderful team post just now. The PCF staff is great and, but “the team” constitutes a much larger group of great people without whom the magic could never happen.

There are hackers like Uwe, Nathan, Zach, Michael and others who have sent in patches that add new features, add test cases, and fix bugs.

There are testers like Keith, Pan, Sedat, Robbt, Sumana, and dozens of others whose work directly impacts the quality of Miro.

There are bug reporters who spend their time helping us work out complex problems that result in fixes and better experiences for future users. Some of these bug reports and comments are simply awe-inspiring.

There are translators like Karl, Lukasz, and Sedat who through their efforts have done some great translation work and also fixed issues smoothing the path for other translators.

There are packagers like Uwe (Debian), Iain (Ubuntu), Christian (Ubuntu), Alex (Fedora) and others that I’m either forgetting or haven’t interacted with who package Miro for other distributions, send bugs and fixes upstream to us, and help us generalize the code so that it works on as many systems as possible.

There are developers of libraries that Miro uses like Arvid who works on libtorrent, lurks on our bug system and IRC, and helps us with libtorrent issues.

There are developers and members of other projects that are actively seeking areas where we can help each other build better things like Nathan and Asheesh from Creative Commons, Gabriel Burt from Banshee, and Chris Blizzard, Aza Dotzler, and others from Mozilla.

There are thousands of users who use Miro, find and report issues, tell their friends about Miro, wax on about the importance of an open Internet and open media distribution, and give feedback that molds future versions of Miro.

There are thousands of content producers who benefit from and add to the infrastructure that we’re helping to facilitate.

This massive group of people is the team. The best part is that the team is getting bigger and better every day.

Feb 14

what I use Miro for

Posted by Will Kahn-Greene

One thing I’ve been meaning to write a post about was to list the things I use Miro for. There are probably other ways to do them, but that’s outside the scope of this post.

  1. Keeping track of government
    President Obama’s weekly address and key speeches – http://www.whitehouse.gov/rss/speeches.xml
    Metavid – http://metavid.org/wiki/

    The metavid one is really interesting. From their site:

    “Metavid is a community driven archive of legislative video from both houses of the U.S. Congress, spanning from early 2006 to the present. This archive is searchable by speaker name, spoken text, date, metadata we’ve scraped from outside sources and user contributions. Metavid is video wiki where users improve its accuracy by fixing transcripts and annotating speeches.”

    I can subscribe to an RSS feed of anything that has to do with “Kerry” or “Kennedy”. It’s ultra-convenient, fascinating and a really awesome use of the all these technologies.

  2. Continuing education
    Open Courseware Consortium – http://www.ocwconsortium.org/use/use-dynamic.html
    MIT OCW – http://ocw.mit.edu/OcwWeb/web/home/home/index.htm

    Video and audio lectures and other course materials to learn subjects you didn’t have time to take in college. The MIT OCW is a great site, but any of the other groups that participate in the Open Courseware Consortium are also really useful.

  3. Learning a new application
    InkScape – http://feeds.feedburner.com/Screencastersheathenxorg
    The Gimp – http://feeds2.feedburner.com/meetthegimp
    Blender – http://feeds2.feedburner.com/TheBlenderShow
    Microsoft Office on the Mac – http://mac.microsoft.com/macoffice/videos/en-us/xml/videopodcast.xml

    There are lots of podcasts out there that walk you through using specific applications to do the things you need to do. Watching how someone does something tends to be a lot easier to understand than reading about someone doing something.

  4. Learning new libraries, APIs, toolkits, whatever, …
    Git – http://feeds.feedburner.com/Gitcasts
    CSS – http://feeds.feedburner.com/CSS-Tricks-Screencasts

    Any time I need to come up to speed on something programming related (toolkits, utilities, APIs, libraries, …), I almost always do a Video Search on YouTube and Google Video. I go through the results and download the videos that seem relevant to what I’m doing. Often I tweak the search terms and search again. Doing this brings up tutorials, demos, presentations, tech talks, and a variety of other interesting bits. This greatly adds to what I can gather by looking through the project web-site and forums because it’s distilled in a different way.

  5. Keeping up with projects, communities, conventions, meetups …
    Ubuntu Developer Videos – http://gdata.youtube.com/feeds/api/users/ubuntudevelopers/uploads?orderby=updated
    Fedora TV – https://fedorahosted.org/releases/f/e/fedoratv/fedora-tv.xml
    BSD Conferences – http://gdata.youtube.com/feeds/api/videos?vq=bsdconferences&alt=rss

    These are useful to watch because you can see where these projects are going, who’s involved, and what they’re working on.

I’d love to know what other things people use Miro for. Add your uses in the comments.

Feb 7

Miro 2.0 rc3 released!

Posted by Will Kahn-Greene

I tagged and built Miro 2.0 rc3 builds and placed them in the sticky section of the nightlies page.

Pre-release release notes are at https://develop.participatoryculture.org/trac/democracy/wiki/2.0ReleaseNotes.

Changes since rc2:

  • updated translations as of today
  • bug 11329: decimal value for movie duration is never correct in channel view
  • bug 11327: os x crash, windows error – when selecting item (non-ascii) to share
  • bug 11149: New OSX DMG Background to replace current one
  • bug 11296: ‘show more’ jumps back to top of list on ‘Single Items’ and ‘New’
  • bug 11322: File “miro\feedupdate.pyc”, line 67, in update_finished KeyError: 26
  • bug 11262: python 2.6 support (preliminary and untested)
  • bug 11317: os x – crash after added torrent feed then selecting channel tab.
  • bug 11354: “Global name ‘time’ is not defined” death on laptop
  • bug 11348: os -x – automatic update failure
  • bug 11357: list view for new tab broken
  • bug 11027: Changing default guide on windows: AttributeError: ‘NoneType’ object has no attribute ‘url’
  • bug 11321: ValueError: I/O operation on closed file
  • bug 6179: Wrong Language (only some work done on this one)
  • bug 11360: os x r9142 – update notification is show release notes text.
  • bug 11362: Dissmising detached external playback dialog freezes Miro
  • OSX crashers and memory leaks
  • probably some other things I’m missing

The new Miro Guide will be launching very soon now. When that’s released, the second browser bar you see in Miro will go away.

I’ve synced translations, so rc3 has the latest translations. I will sync them one more time before we do a release. If you’re a translator, we sure could use your help! See more at https://translations.launchpad.net/democracy.

We think this release candidate is release-worthy. Assuming testers don’t hit any snags, there shouldn’t be any changes between now and the final Miro 2.0 release. We’re planning to follow Miro 2.0 with a 2.0.1 release in the near future to get the most updated translations and to fix minor issues that pop up.

To Ubuntu Hardy and Intrepid users: Some day I’ll get to learning how PPA works. When that happens, we’ll start building release candidate builds for the Ubuntu versions we support. Until then, you’ll have to download the tarball and build it yourself. If someone can spare some time to help us with this, I’d be much obliged.

Barring snags with this release candidate, we’re looking at a full on Miro 2.0 release some time in the next few days. Getting really super close now!

Feb 2

Miro 2.0 rc2 released!

Posted by Will Kahn-Greene

I tagged and built Miro 2.0 rc2 builds and placed them in the sticky section of the nightlies page.

Pre-release release notes are at https://develop.participatoryculture.org/trac/democracy/wiki/2.0ReleaseNotes.

Changes since rc1:

  • updated translations as of today
  • bug 11260: hover controls on OSX
  • bug 10552: memory leaks in Windows
  • bug 10299: re-enabled DailyMotion search (but it downloads 80×60 flv files so it still sucks)
  • bug 11269: audio visualisation still present when playing video on Windows
  • bug 11178: interface “hangs” when playing audio files
  • bug 11272: removing folders dialog didn’t show information about child feeds
  • bug 11267: errors when searching on OSX
  • bug 11266: videos play on OSX after dragging a video file onto Miro
  • bug 11275, 11301: toolbar for watched folders no longer shows irrelevant functionality
  • bug 11268: fix the save resume time functionality in regards to videos that have finished playback
  • bug 11291: make sure pop in/out label is hidden/shown along with icon
  • probably some other things I’m missing

When we release Miro 2.0, we’ll also be releasing a new version of the Miro Guide web-site. Amongst other things, this will remove the second browser bar that you see.

Also, prior to releasing Miro 2.0, I’ll sync translations from Launchpad. If you’re a translator, we sure could use your help! https://translations.launchpad.net/democracy

There are still some outstanding issues that are blocking Miro 2.0, so we’re still working. You can see the existing set of bugs to fix here.

To Ubuntu Hardy and Intrepid users: Some day I’ll get to learning how PPA works. When that happens, we’ll start building release candidate builds for the Ubuntu versions we support. Until then, you’ll have to download the tarball and build it yourself. If someone can spare some time to help us with this, I’d be much obliged.

Almost there!

Jan 29

Miro 2.0 rc1 released!

Posted by Will Kahn-Greene

I built and posted Miro 2.0 rc1 builds in the sticky section of the nightlies page (http://pculture.org/nightlies).

We have a set of pre-release 2.0 release notes that still need updating but are pretty up-to-date at https://develop.participatoryculture.org/trac/democracy/wiki/2.0ReleaseNotes.

Please post any bugs to http://bugzilla.pculture.org/ with the version as 2.0-rc1. Please include as much information as possible. See GoodBugReports for more details.

To put this in some context, this is a HUGE release for us. We’ve been working hard on Miro 2.0 since May or thereabouts. It’s good to get to the end of the development cycle. At the same time, there are things we’re leaving on the table that we’ll address in future versions.

Last call for translation help–if you’re a translator and familiar with Launchpad, we could use your help! https://translations.launchpad.net/democracy.

I want to send a huge thank you for all the people who have contributed to Miro development thus far especially people I’ve worked with like Alex, Uwe, Keith, Pan, Robbt, Sedat, Lukasz, Arvid, Elmargol, and others.

Also, thank you to my life partner, Sadie, who has put up with me fixing bugs and doing a release candidate on my birthday.

Finally, happy birthday to me! w00t!

Jan 26

I imported translation updates today. Anything done in since the 22nd should be available in tonight’s nightlies.

Since I originally posted this cry for help four days ago, twelve of the languages have been edited.

We now have four completed translations:

  • German
  • Finnish
  • Slovenian
  • Norwegian Nynorsk

Bravo!

We’ve got five more that are getting close:

  • Norwegian Bokmal
  • Polish
  • French
  • Swedish
  • Spanish

The rest of the languages have more than 100 untranslated strings.

If there’s anything I can do to help you out, let me know. If you know anyone else that can help with translations, I sure would appreciate the help!

https://translations.launchpad.net/democracy/trunk/+pots/democracyplayer

Jan 22

Miro needs your translation help!

Posted by Will Kahn-Greene

We’ve been pushing hard on Miro 2.0 development for a long time now. So far I’ve avoided making release date predictions, but looking at the Bugzilla queue and the rate at which we’re finishing things, we’re probably looking at a Miro 2.0 release in the next 3 or 4 weeks.

One thing that we desperately need help with is translation work. All translation work is done in Launchpad at https://translations.launchpad.net/democracy/trunk/+pots/democracyplayer. You can see the status of translations there, too. Right now it looks something like this:

language    # untranslated strings
--------    ----------------------
German      0 (Go German!)
Slovenian   28
Polish      39
Swedish     58
French      66

The rest of the languages have more than 100 untranslated strings.

I want to thank Lukasz, who’s been working on the Polish translations, for helping an enormous amount in the last few weeks. He’s identified and helped me fix a bunch of problems with the strings and also worked to make the strings easier to translate. Thank you!

If you can translate strings and/or have done Launchpad translations before, we need your help. We’ve got a 3 or 4 week window between now (January 22nd 2009) and a release. It’s not a lot of time, but hopefully it’s enough time for us all to get translations into a better state.

If you have any questions or find any problems, let me know.

Jan 22

parasite with miro on Linux

Posted by Will Kahn-Greene

I saw Chip’s blog entry announcing Parasite yesterday and checked it out. I had problems getting it to work with Miro, but he has since fixed the bug I was bumping into.

I think this will be a really useful tool, so I’m doing a short write up of how to use Parasite with Miro.

  1. Grab Parasite from git compile and install it. Instructions are on the Parasite web-site.
  2. When you run make install It’ll install libgtkparasite.so into /usr/local/lib/gtk-2.0/modules/ .
  3. Launch Miro like this:
    LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib/gtk-2.0/modules/ GTK_MODULES=parasite ./run.sh
    

That’ll launch Miro with Parasite showing you the widget hierarchy and widget properties and all that.

There’s a screencast on the Parasite site that shows off more things you can do.

Dec 11

new ui for rendered items

Posted by Will Kahn-Greene

I checked in the latest ui in r8671. I’ve been told that a number of tweak requests are on their way, but it’s looking pretty good and there weren’t any major bugs.

The new ui took me a week and a half to implement. There were a bunch of complexities that made it difficult. I thought I’d talk about some of those here so people who aren’t as intimate with the code can get an idea of how much work and what kind of work is involved.

First off, Miro 2.0 uses native widgets instead of HTML/CSS/Javascript for everything. The one place this isn’t quite true is in the item lists where we’re rendering our own widgets using a layout/cellpacking API that abstracts over a platform-dependent implementation layer. The platform-dependent implementation layer consists of two implementations: OSX (cocoa, pyobjc, …) and GTK (pygtk, pango, …). The abstraction layer is very similar in style to the GTK side of things. Ben wrote most of this as we needed it a few months ago.

The first problem I had was that I wasn’t familiar with the platform-independent layout/cellpacking API we had.

The second is that there are a bunch of variations on the theme. Depending on what the context is, the item gets rendered differently. In playlists, items have a “Remove from playlist” button, but in channels, the item has a “delete” button.

Additionally, items have two display modes: with details and without details. The without details mode is the easiest to render since it’s just a bunch of packed things and the resizing handling is easy to deal with. The with details mode is really difficult because we want to show the entire title and description for the item but the cells these bits are in expand as the window is resized. We get into this chicken-and-egg problem where we need to lay things out, but in order to lay things out we need to know the size of the space we’re laying things out in, but in order to know the size we need to lay things out….

On top of that, items are either selected or not selected–both of which look different.

The other set of problems I ran into were theming issues. The rendering code tries to “look” like the platform it’s running on: the OSX buttons look different than the GTK buttons; OSX uses Finder but Windows uses Explorer and the text needs to reflect that; …

All of this makes for very complex implementation code. Structuring that as I figured things out was difficult to do well and the result isn’t great structure-wise. Ben’s already done a pass at fixing the resizing issues which resulted in some structure fixes. It’s likely that other things will get fixed and massaged over the next week or so.

The end result of all this work is that we went from this:

to this:

Nov 2

intrepid, miro 2.0 status, et al

Posted by Will Kahn-Greene

First off, I put together a set of amd64 packages for Ubuntu Intrepid–they’re in our repository now.

Second, I want to point out that after working and playing with what will become Miro 2.0, it’s really hard to go back and develop on and play with the Miro 1.2 series. We’ve done a lot of work on the Miro codebase improving it, refactoring it, adding unit tests, re-writing the user interface, fixing behavior, and adding new features (detached playback ftw!).

We still have a handful of things that Miro 1.2.8 did that Miro 2.0 doesn’t do yet, but the list gets shorter every week. We also have a bunch of bugs that need to be looked at and worked on and some polish that needs to happen.

You can see the list of things we’re working on here. It’s loosely prioritized–we’re spending more time trying to get things tested and fixed than we are in mothering over the bug data. There are 85 bugs in the queue of things to do. To put that in some perspective, we’ve fixed over 350 bugs so far.

I want to thank Jason who interned with us over the summer. It was great to work with him and his contributions to the Miro project were really helpful. Also, he was instrumental in making the Miro monster. I hope they put it up on Etsy or some other online shop because they’re awesome!

I want to thank Pan, Davide, Bill, Markus, and Sedat for their work testing Miro over the last couple of months. Their efforts are invaluable and very much appreciated.

Oct 23

chris

Posted by Will Kahn-Greene

Earlier today or yesterday (time goes so fast these days I can’t remember when I did what), I added Chris’ blog to the planet.

He’s been contributing to Miro development for a while now and I mentioned him in a previous post. It’s good to have him on the team in a more permanent fashion.

Oct 23

detached playback

Posted by Will Kahn-Greene

Luc landed detached playback a little over a week ago in r8282 (and a bunch of checkins before that).

The interface for it is a little rough and might change a bit over the next few weeks. It’s something a lot of people have mentioned they wanted–David Ascher gave me a stern talking to about it at OSCON 2008. It’s going to be a kick-ass Miro 2.0 feature.

I need to spend some time to get it working fully on Linux and Windows, but most of the code is there now and it works pretty well on OSX. w00t!

Sep 26

your youtube four

Posted by Will Kahn-Greene

I like passively watching memes but not participating because I’m not into getting-to-know you blog posts. But… Chris has a “youtube four meme” that’s amusing.

I only have two that come up. I don’t visit Youtube often.

  1. Open your fancy Firefox 3 browser.
  2. Click on the awesomebar and type in ‘youtube’.
  3. Post the first four videos that come up.
Sep 3

status (6 or something)

Posted by Will Kahn-Greene

I haven’t written much in the last couple of weeks because I was on vacation. On the first day of vacation, I went to the beach and got knocked over by a wave, somersaulted for a while, jammed my shoulder somehow, skinned my knee, and finally came up for air. I said, “Screw this!” and went back to my beach chair where I sat around, bled, whined about how my shoulder hurt and ended up with a serious sunburn. I spent the next few days indoors–vacation is dangerous.

In the last couple of weeks, I threw together a preferences panel and a channel settings dialog which, while mostly functional, are “putrid looking”. Luc is going to spend some time fixing that. Ben spent time re-implementing itemlists and allowing for channel searches, saving channel searches, and some other things. We’ve been tweaking the widgets to make them more functional and pretty.

We still have a lot of other ui stuff that still needs fixing and tweaking. The dialogs that you sometimes see at startup when things are awry need reimplementing. The sort bars need to be reimplemented. There are some other tawdry odds and ends that also need to be redone. Generally, things are coming together and most of the big features are in, but there’s a bunch of work that still needs to happen.

This morning, we talked about where we want to draw the line and encourage people to start testing the nightlies again. We haven’t thus far because the laundry list of things that weren’t working was pretty long. Janet thinks it’s probably a good idea until most of her litmus tests pass. Otherwise you’ll all be wasting your time finding things we already know about.

However, I think if you’re interested in testing out Miro 2.0, we’ve hit a point where it’s stable enough to use. I think we’re at what other projects would deem an Alpha 2 state.

Definitely take the time to back up your database BEFORE you try testing a nightly.

We’ve got a laundry list of issues targeted for 2.0. If you encounter problems with a nightly, let us know. We hang out on #miro-hackers on freenode and on the develop mailing list, too.

If you’re interested in helping out, we sure could use the help: testing, translating, triaging existing bugs, writing patches, drawing a fancy 20 page comic describing how great Miro 2.0 is going to be, ….

Sep 3

everything i know i learned from bugzilla

Posted by Will Kahn-Greene

I did some bug triage today and then went through and fixed some old bug data (apologies to everyone for the bug spam). A couple of interesting things came out of that.

First off, it’s interesting to note that 2.0 so far has 163 bugs marked as FIXED. That’s more than any version of Miro since 0.9.5. Hard to know what happened before that because we have inadequate bug data. Go team!

Second, there are a total of 877 open bugs right now. 323 of those are targeted as Wishlist items. We’ve been around the 850 mark since September with a big bump between December and February in the 1000 range. I think that means generally speaking that we’re keeping up with bugs which is good.

Third, it’s pretty clear that the widget overhaul will clear out a lot of older bugs. Partially because we’re ditching the HTML interface and the issues that caused, but also because we’re re-implementing a lot of stuff and in doing that, fixing issues in the process.

Miro 2.0 is going to rock your socks!

WordPress. Theme based on Simplism, but without bits I found irritating. I'm still toying with it.