MediaGoblin 0.3.0: Rise of the RoboGoblins

MediaGoblin 0.3.0: Rise of the RoboGoblins banner

It's our birthday!! A whole year of writing the decentralized media future. We can't wait for year two; new challenges, new opportunities and new technologies. We're rolling out a set of awesome features in this release to raise a legion of RoboGoblins! The three biggest milestones for the 0.3.0 release are:

  • The database switch is finished, YAY!
  • Audio support is achieved, YAY!
  • Mobile layout - take one!

Organizationally, we continue to grow. In particular, we have some exciting news about our level of professionality and for-realness. But first, let's take a look at all the new code.

The massive time-consuming Mongo to SQL database conversion is finished! SQL scales down more gracefully, making lighter-weight deployments possible -- a critical feature for federation. We also think that SQL's popularity will make it easier (or at least less daunting) for people to install and tweak their instances. A SPECIAL thanks to Elrond, without whom this Herculean task just would not have happened.

We have audio support! MediaGoblin can handle MP3, FLAC, Ogg, WAV, M4A. We convert them all to Vorbis and run them in a WebM container. All played through HTML5 audio!

The audio player!

We're on your phones, serving you media! We've written an alternate style sheet so users can reasonably check out media on the go. True mobile-app-dom for submitting media will have to wait for the completion of our API. In the meantime, here's our first stab at a mobile layout:

The mobile layout!

We worked hard to make video smoother and the look of MediaGoblin nicer. We added video.js which is basically a style sheet functionality for HTML5 video players. Then we made a custom skin so our player would match the rest of the site. Take a look:

The improved video player!

Video pre-buffering is also smarter now. A little bit loads (not the whole video) and then it waits for the user to press play. Numerous enhancements were also made to the theme for this release. For instance, the top bar is nicer and user comments render cleaner. Take a look:

Smoother looking theme

We made improvements to the testing and installation processes, all with the end goal of making it easy to set up and debug your own instance. Our new lazycelery.sh script should make testing and deploying with celery a bit easier. We've added ipython support in the gmg shell subcommand and removed the pygtk dependency. You don't have to install X Windows just to have video support on your server anymore, whoo! We also refactored the processing pipeline code (image resizing and transcoding, etc) which will make things easier to develop moving forward.

We also have release notes now! If upgrading from an older version of MediaGoblin you should check these out, especially given the recent database change.

Thanks to our wonderful and generous contributors! Jorge Araya Navarro, Elrond, Will Kahn-Greene, Deb Nicholson, Christopher Allan Webber, Jef van Schendel, Svavar Kjarrval, Luke Slater, Joar Wandborg, Sacha De'Angeli, Bassam Kurdali, Derek Moore, Brett Smith, Jacob Kramer, Hugo Boyer and chrono --thanks!

We also have our first paid contributor! Joar Wandborg is getting funding from the Icelandic government to build our API. We are officially a for-real, grown-up project. Congratulations to Joar, major thanks to Tryggvi Björgvinsson for coordinating things, and Takk fyrir to Iceland!

What's next as we write the RoboGoblin future? Our plugin system is getting close. Plus, there is loads to do to make federation a dreamy, bug-free user-experience. In the coming months we'll be working on better ActivityStreams and PubSubHubbub support. We're also working towards using the Salmon Protocol to handle comment notification, favoriting, and so on across instances. These are the nuts and bolts of federation and many of these bits need some creative tinkering to make them work flawlessly with media hosting. If that sounds like your kind of fun, then we would love to meet you.

Additionally, we need help testing social features like favoriting and other curation tools. MediaGoblin aims to be functional, gorgeous and user-savvy. If you have opinions about user experience and how media should be served, then we absolutely want to hear from you! As always, we're beeping and whirring away in #mediagoblin on freenode.net. You can also join the mailing list. One way or another we'd love to have you around, so join us!

permanent link to this entry

Very Busy Goblins

MediaGoblin's been very busy. It's almost like it was our birthday! We went to some parties, people said very nice things about us, there were gifts and there might even be some cake coming our way. (It's actually very close to our one year anniversary!)

We went to PyCon where we presented a poster. A video was shot very early in the morning. The MediaGoblin team had already consumed a good deal of free coffee and had been talking about dungeons and dragons while waiting for our turn in front of the camera, all of which somewhat explains my dumbfounded response about the "player." At any rate, I am happy to report that at least one of us is a morning person so the rest of the video is both energetic and informative. Check out the video about the poster on YouTube. We are such fine connoisseurs of irony that we'll be linking to them again later on in this very post!

You can also take a look at the actual poster which we would totally hang in the MediaGoblin office, if we had one.

The poster we presented at PyCon!

We gave out our brand new stickers, which people enjoyed quite a bit. If you are going to be at any events with any of us in the near future, be sure to get one! This is Chris giving one to Rob who works at Collabora on GStreamer.

Picture of Chris giving Rob a sticker

After the main conference, Will and Chris stuck around to sprint with folks. Thanks to Bassam Kurdali, Sacha De'Angeli, Derek Moore, Matt Bone, Michael Helland, Hugo Boyer and Mark Buttenhoff who stuck around to sprint with Will Kahn-Greene and Chris Webber! We made a lot of progress on ipython support and some nice improvements to look and feel of video player. We really appreciate everyone who pitched in or tried to get MediaGoblin going on their laptop. Swing by the channel anytime to say hi!

Here's a picture of the 3D printer we sprinted next to:

3D printer!

We also attended LibrePlanet, which is the Free Software Foundation's annual conference. Chris spoke about MediaGoblin briefly on the second day. Evan Prodromou from Status.net spoke about decentralized social web services. After the conference, Evan, Chris and Brett hacked on federation. There are more details and a diagram from that meeting of the minds if you're curious.

Chris gave a talk at Flourish in Chicago about MediaGoblin a week later which went really well. You can watch the whole talk here:

What's coming up? Deb will be at Linuxfest Northwest in Bellingham, Washington. She'll be giving a talk about the importance of decentralized web services. If you live in Seattle or Vancouver, make the trip and she will also hook you up with MediaGoblin stickers.

You don't have to wait for a sprint though, MediaGoblin is always on the lookout for more testers, translators, coders, documenters and bug filers. We're happy to get you up to speed anytime!

permanent link to this entry

Help us test the SQL move!

Hiya all!

We're currently in the process of moving MediaGoblin over from MongoDB over to SQL(alchemy). We're pretty close to landing it, and would like to do so for the next release. But we need help testing!

We can use both:

  • People who are already running mediagoblin (test) instances who are willing to help test conversion
  • People who are willing to help test setting up new environments
  • Interested in helping? Follow these docs and join us on IRC to help us get rolling!

    We appreciate it!

permanent link to this entry

Interviewed about MediaGoblin on Frostcast

Note: this post originally appeared on my personal blog.

I got interviewed about MediaGoblin on the excellent Frostcast of FrostbiteMedia. This happened over a month ago, but life has been intense, and better late than never in blogging it. Anyway, I talked to Jonathan Nadeau who runs the podcast, and even though FrostbiteMedia doesn't specifically say so, this episode is released under Creative Commons Attribution-Sharealike 3.0 Unported. (mirrored here)

Anyway, I've given it a few listens, and I'm super pleased with how it came out. We talk about the motivations behind MediaGoblin, the underlying architectural decisions, and even a bit of my own free software personal history. It went by really fast... hard to believe the show comes out to about an hour. (It was also my first time being interviewed on a podcast or anything of the like before, and I had some dumb self-inflicted technical difficulties. Luckily, Jonathan was very patient.)

By the way, I have a lot of respect for Jonathan Nadeau. Jonathan is not only a free software activist, but also a blind user of free software. He's also starting a nonprofit called the Accessible Computing Foundation which aims to make the life of computer users with various disabilities better by improving the state of accessibility in free software. Very cool and noble goal. There's a good interview with him on this Linux Outlaws episode. Best of luck to you, Jonathan!

permanent link to this entry

MediaGoblin 0.2.1: Gearing Up

MediaGoblin 0.2.1: Gearing Up banner

Welcome to MediaGoblin 0.2.1: Gearing Up! This release has largely been about paving the way forward for MediaGoblin's future and restructuring under the hood. Nonetheless, a good number of awesome features got implemented for this release.

We've brought some old-school awesomeness with ascii art support to go along with our video support (which you may remember we were pretty jazzed about adding in our last release). You have to specifically enable it, so see this documentation for details. In the future, you can expect to see support for all sorts of media types, including 3d models, slides, and presentations!

Ascii art example: Happy GNU Year!

There are plenty of nice UI tweaks, including nice, tidy-looking comment areas. You can now easily apply Creative Commons licenses to your MediaGoblin media.

CC Licensing Support (demoed with 'BBB Loves CC' video)

We're now able to provide a customizable EXIF metadata display. EXIF data means all the little tags that modern media recording devices include inside your image files. If your camera records it, you can display it: location, camera manufacturer, what the camera model was, the focal length, etc. If you took a sideways picture (and your camera is fancy enough to detect it) then MediaGoblin will rotate your image in the right direction for you. The default setting is hidden (but not scraped) metadata. Since this is MediaGoblin, it's easily customized for your instance -- just turn on exif_visible option in mediagoblin.ini.

GPS support is working! Does your camera have a GPS in it? Then you can haz maps. We worked hard to build compatibility with another great FLOSS project, OpenStreetMap. Again, this feature is off by default. You can enable option geolocation_map_visible in your mediagoblin.ini to show GPS info.

MediaGoblin & OpenStreetMap/GPS support

What about "under the hood" news? If MediaGoblin were a car we were building from scratch, then we recently decided to replace the engine. After significant discussion, we decided to switch from MongoDB to SQL using the python SQLAlchemy library. The SQL code is actually already very close to full deployment in the main repository and many parts have already performed well in tests. Huge props are due to Elrond who has made herculean efforts towards the Great Database Migration of 2012. The transition is already well on its way!

We're smoothing the way for federation. We're kicking off Kuneco (which means "togetherness" in Esperanto) is the collection of libraries we're building so that OStatus, the software that drives our inspiring forebears at StatusNet/identi.ca, will play nicely with python webapps. We also implemented PubSubHubbub (push) support in this release. We can now "push" notifications of our feeds out to the PubSubHubbub servers. One small step towards federation, in a series of many steps that will one day add up to a large step. More on this soon!

MediaGoblin is coming soon to a device near you! We want your phones, desktop applications and tablets to be able to submit media. We're putting together an API that will allow programmers to hook their applications into MediaGoblin. One day we'll be part of a massive decentralized ether and having a great API for interoperability is one way we start to get there.

So much amazing work happened to make this release possible! We could not have done without all of our amazing people. People worked over the holidays. Their paid jobs said, "Hey take a break this month." and our contributors took that time off and gifted it to the 0.2.1 release. Thanks so much to: Aleksej Serdjukov, Aaron Williamson, Christopher Allan Webber, Deb Nicholson, Elrond of Samba TNG, Jef van Schendel, Joar Wandborg, Karen Rustad, Michele Azzolari, Will Kahn-Greene! (If we missed you, let us know so we can correct the post!)

Get on board! MediaGoblin is actively seeking testers, translators, coders, and bug filers. We'll save you a seat as we set out on on the road to federation!

permanent link to this entry

MediaGoblin contributor drawings

Happy Holidays and a happy upcoming new year from the MediaGoblin team! Today I kick off something I've been planning for a while. Contributor drawings!

Contributor drawing: Machalus, Duke of Time
Machalus, Duke of Time. Contributor drawing for Matt Lee. Thanks, Matt!

This is the first contributor drawing I made, near the start of the project. It's been my intention since nearly the beginning to do artwork to thank various contributors for their hard work on the project. Recently I took the time to make several more:

Contributor drawing X11R25 Robot
X11R25 robot. Contributor drawing for Caleb Davis. Thanks, Caleb!

Contributor drawing: Shaquannah
Shaquannah, a magician of arts. Contributor drawing for Karen Rustad. Thanks, Karen!

Contributor drawing: Spencer
Spencer, a punkish goblin of sorts. Contributor drawing for Joar Wandborg. Thanks, Joar!
(Note, I don't endorse smoking, even if Spencer does it!)

If all goes well, I'll be making more and more of these for various contributors for various types of contributions. I think this could be a nice way to incentivize contributions (somewhat along the lines of the famous Knuth checks), but more importantly, to both give me a way to thank various people who have significantly helped the project and as a way for me to find an excuse to unwind a bit and spend some time on my artwork.

I'll put more formally what to expect about contributor drawings on the wiki, but here are the basic rules of it to keep things interesting both for contributors and myself... nothing too formal, but:

  • Originally, I intended to do these as incentivization for people to do copyright assignments to the FSF, but it turns out that optional copyright assignments are not presently an option with the FSF, it's all or nothing. So all you have to do to be eligible is to do some significant work on MediaGoblin.
  • Don't contact me, I'll contact you and let you know if I'm thinking of making a drawing for you.
  • To keep things from becoming a chore, drawings are not "made to order". You can't tell me precisely what you want in a drawing, I'd really like a lot of freedom here. But I'll probably give you a choice between a couple of themes. Right now I'm doing "unique creature" or "a brand new goblin". The themes might change at some point. I'll let you know.
  • The drawings are not made for you, but they will be dedicated to you. The drawing will not be intended to represent you... I might draw some sort of miscreant, and I don't want you to be offended thinking I'm insulting you. If I worry about that stuff, I'll spend too much time worrying about it and then my artwork will become terribly bland. (However, I might think of what sort of drawing you might like while making it, of course.)
  • When the drawing is done I'll email it to you and you can tell me if you like it or not and whether or not you're willing to have this drawing be dedicated to you. If so, great! If not, oh well, I'll dedicate it to someone else or possibly just post it without any dedication.
  • Lastly, I'm doing this for fun, so hopefully it will be fun! I'll do these as time permits, and I don't know how much that will be. Don't be offended if you've done quite a bit and I haven't gotten to you yet... I probably intend to. I hope this ends up being something enjoyable for everyone, and a nice way for me to combine a bit of artistic release with a community that I care about deeply.

If it stops being fun, I'll stop doing the drawings, but I suspect that won't happen for some time. In the meanwhile, hopefully I can put up some fun stuff, and people will enjoy it!

permanent link to this entry

MediaGoblin 0.2.0: Our Tubes

MediaGoblin 0.2.0: Our Tubes banner

Welcome to Our Tubes! The 0.2.0 release enables you to turn on video and run your own HTML5 video hosting site! Whose tubes? Our Tubes!

Sintel trailer!

Below is an example video that's been transcoded and uploaded using MediaGoblin. The magic comes from GStreamer!


Sintel, by the Blender Foundation, CC BY 3.0.

Our video hosting is html5 standards compliant! That means you need a standards-compliant browser like a recent Firefox or Chromium to see video. (If you aren't seeing anything, go upgrade your browser.) Video is resource intensive and requires extra dependencies like GStreamer so it's disabled by default. If you want to run a video hosting site for your friends and family, now you can! To enable video hosting on your site, check out these docs.

MediaGoblin's big picture goal is to support loads of different media types, so video is just the beginning. In the near future MediaGoblin will be able host slide sharing, three dimensional model uploading and viewing, even ascii art. You can already check out this experimental branch and showcase your rad ascii art.

What else? This month we fixed it so that when you resize an uploaded image, it retains the same file format. PNG images are still PNG images and GIFs are still GIFs. This is particularly good news for fans of semi-transparent PNGs. There were also some small styling improvements this month, including better navigation. Take a look:

Cat and Spider drawing, with transparent background

With our MediaGoblin instance hosters in mind, we made it a little easier to customize stuff and we also improved the documentation for larger volume instances, especially video hosters.

Thank you to everyone who helped with Our Tubes! We had some new folks join the project this month (Yay!!) and there was lots of great work and support from our returning contributors. We're especially grateful to the people who stepped up to review each other's code this month. Best. Team. EVER. Seriously! Give a round of applause to: Aaron Williamson, Christopher Allan Webber, Corey Farwell, Deborah Nicholson, Elrond of Samba TNG, Jakob Kramer, Jef van Schendel, Joar Wandborg, Larisa Hoffenbecker, Manuel Urbano Santos, Nathan Yergler, Pablo J. Urbano Santos, Sam Kleinman, Will Kahn-Greene, Pierre Geoffroy, Harry Chen, George Pop, Aleksej Serdjukov, osc (transifex.net), and martin (transifex.net). Thanks folks... we couldn't have done it without you. (PS: It's possible we missed you; if so let us know and we'll correct this post.)

What next? More media types! And we've got a roadmap for federation now. Look out uncharted territory of decentralized web, we're coming! In fact, enough new stuff is on the horizon at MediaGoblin to warrant its own whole post. Be sure to check back in with us soon. Or if you like spoilers, come see us in IRC (#mediagoblin on irc.freenode.net) and see who you can shake down for hints of what's coming next. Better yet, infiltrate us and find out from the inside. There's a ton to do and we would love your help!

permanent link to this entry

Version 0.1.0 - Living the Dream

MediaGoblin 0.1.0 banner

Can you believe we've only been working on MediaGoblin since March? The biggest news is that 0.1.0 is out! We want to take a few minutes to look back at how far we've come and how many people have been supportive and how many folks have become contributors. With all the excitement and positivity, you'd think we were shipping out bushels of free candy instead of building a free as in freedom media-hosting site. Fortunately, there are lots of folks who agree that a decentralized web is even better than a pillow case full of sugary treats.

We've completely redone the main website. We even have a new tour page! Thanks so much to Jef van Schendel for making our website a thing of beauty (and to Alex Camelio for adding the cute icons on the frontpage). Go ahead and check it out! Seriously, we'll be right here when you return.

You may find it invigorating to look at our Alpha goals to see how far we've come. While there are a few things we didn't get to (captchas and featured works) but there are many more big ideas that we were able to turn into reality. We have a sophisticated "unframework" which is working beautifully for our needs. We have a great, consistent (and dare I say suave?) theme. We have an abstracted storage system which already is being used to interface with OpenStack's Swift storage system. Comments and tagging are working. We're also well on our way toward supporting multiple media types. We are living the dream and the reality is even better than we'd expected. Welcome to our alpha release!

As we get ready to start coding up federation, aka world domination, we added brand-new deployment documentation — take a look! Better yet, install it and let us know how it went. Last month we added cross site request forgery protection and lost password functionality. There was some significant internal restructuring this month as we gear up for caching and supporting more media types in the next release or so. The translations crew continues to amaze us with their volume and diligence. Watch out world, here we come.

Thanks to all our contributors! Aaron Williamson, Alejandro Villanueva, Alex Camelio, Caleb Forbes Davis V, Christopher Allan Webber, Deb Nicholson, Elrond of Samba TNG, Jef van Schendel, Jim Campbell, Joar Wandborg, Nathan Yergler, Sam Kleinman, Shawn Khan, Thorsten Wilms, Will Kahn-Greene... this month's release wouldn't have happened without your help!

What's around the corner? For one thing, video is nearing usability:

Sintel video test
(Image from Sintel by the Blender Institute, released under Creative Commons Attribution 3.0 Unported)

and the exciting work on federation is in planning. We've got lots of small bugs for folks who are new to python, larger tasks for folks who want to immerse themselves in the challenge of federation and we are actively seeking opinionated web users to give us feedback on our test site. Join us on the journey!

permanent link to this entry

Version 0.0.5 - Visions of the Future

MediaGoblin 0.0.5 banner

The whole world is invited to our vision of the future. You know the one with decentralized services, open standards and customized media hosting? In preparation for the whole world, also known as our imminent public instance, we asked for more contributors, and boy did we get them! We also managed to further our internal vision a bit by making great strides on our migration and storage plans. This may have been our most exciting month yet, especially if you go by the lengthy list of thank yous!

uchoMay ogressPray! Transifex is fully set up to handle translations and MediaGoblin has already been translated into 14 languages.* (If you can help us by translating another, we'd be very grateful!)

Login screen, translated!

We've started conducting user experience testing -- many thanks to all the folks who responded to our call for testing! Caleb Davis is graciously hosting and running MediaGoblin's user experience testing server. We'll be collecting new data each month here. Got opinions? We'd absolutely love to hear them. Please ping us if you want in on the UX testing party.

There are a few new goodies for the users this time around, including the ability to delete media, and some smaller things (like now if you submitted an image wider than 640 pixels, clicking on the scaled down image brings you to the original size).

Screenshot of deleting media

We're also supporting media attachments as an optional (but not enabled-by-default for security reasons) feature. Assuming you're on a site that supports it, you can now attach source files to your works, etc.

Screenshot of downloading an attachment

The internal roadmap also got some nurturing in the form of media-processing changes, a new site export/import tool as well as docs and wiki improvements. On the literally visual front, we made some progress on our logo and there's a new favicon. You can also take a look at our new tidied up homepage:

New welcoming homepage and a favicon

Loads of storage stuff! We're now compatible with OpenStack's "swift" file storage system, (so you can use Rackspace CloudFiles, for example, or connect to some other instance of the software) and we worked on an experimental "MountStorage" system for mounting multiple storage systems at once. (Sorry, there are no pictures of the storage systems.) You can however take a look at our improved 404 (not found) and 500 (internal server error) pages when you want something we haven't stored where you thought we did or something breaks:

MediaGoblin 404 screenshot

MediaGoblin 500 screenshot

We wouldn't have been able to glimpse the future without all of our contributors, so a hearty thanks goes out to: Will Kahn-Greene, Deb Nicholson, Joar Wandborg, Christopher Allan Webber, Jef van Schendel, Osama Khalid, Elrond of Samba TNG, Alejandro Villanueva, Caleb Davis, Karen Rustad, Alex Camelio, Thorsten Wilms, Jarred de Beer, Sam Kleinman, Jim Campbell, Aleksej Serdjukov, Mark Holmquist, Jacobo Nájera Valdez, Vinzenz Vietzke, Benjamin Lebsanft, Odin Hørthe Omdal, Jure Repinc, Jan-Christoph Borchardt, Shawn Khan, Justin Mantell, Jordyn Bonds, Larisa Hoffenbecker, Avery Morrow, and Transifex usernames: lasconic, osc, harryhow, Arder, gap and aleksejrs.**

Stay tuned, because next month we'll be living this month's future... and it looks very bright indeed! And if you want us to help make these dreams a reality, please join us!

(*Pig Latin is not one of them.)

(**Transifex doesn't currently let us easily view translation history. If we didn't mention you, we're sorry and we still really, really appreciate your help! Drop in IRC and we'll fix the error.)

permanent link to this entry

Now open for translations!

Translations on transifex

MediaGoblin is now ready to accept translations! Do you speak a non-English language? We could use your help! Head on over to the MediaGoblin page on Transifex and join a team / request a new language team and start translating!

A big thank you to Osama Khalid who took the time to mark all our templates for translation! Between this and recent updates to our codebase MediaGoblin is fully ready for translators to jump in.

Login screen translated into Swedish

We already have one complete translation! Joar Wandborg has gotten Swedish translated to 100%. We could use more translations though, of course! Why not put your skills to use and jump in?

permanent link to this entry