<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.mediagoblin.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Joar</id>
	<title>GNU MediaGoblin Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mediagoblin.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Joar"/>
	<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/Special:Contributions/Joar"/>
	<updated>2026-04-30T10:59:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=GSOC_2013&amp;diff=1253</id>
		<title>GSOC 2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=GSOC_2013&amp;diff=1253"/>
		<updated>2013-04-22T13:56:24Z</updated>

		<summary type="html">&lt;p&gt;Joar: Wikilinked my name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We are participating in [http://www.google-melange.com/gsoc/homepage/google/gsoc2013 GSOC 2013] via the [http://www.gnu.org/software/soc-projects/ideas-2013.html#mediagoblin GNU umbrella]!&lt;br /&gt;
&lt;br /&gt;
We are also participating in [[Outreach Program for Women 2013]]... see that page for specific information about that program, but the projects suggested on this page are the same as those for OPW 2013 :)&lt;br /&gt;
&lt;br /&gt;
To both students and mentors, please read up on the [http://www.google-melange.com/document/show/gsoc_program/google/gsoc2013/help_page GSOC 2013 help page]!&lt;br /&gt;
&lt;br /&gt;
= How do I apply as a student? =&lt;br /&gt;
&lt;br /&gt;
Well, we need to be accepted as a mentoring org first :)&lt;br /&gt;
&lt;br /&gt;
But then:&lt;br /&gt;
* Submit your application (details coming soon)&lt;br /&gt;
* [http://mediagoblin.org/pages/join.html Join us] on IRC and on our mailing lists.&lt;br /&gt;
* Set up a development environment via our [[HackingHowto]]&lt;br /&gt;
* If you have never done web development in python before, MediaGoblin is a pretty good place to start!  However, we highly recommend going through the [https://docs.djangoproject.com/en/1.5/intro/tutorial01/ Django tutorial]... this isn&#039;t a requirement, but it will help you be better prepared.&lt;br /&gt;
* Work on a small task, and mention it in your application.  The [http://issues.mediagoblin.org/query?status=!closed&amp;amp;keywords=~bitesized bitesized list] is often helpful.&lt;br /&gt;
&lt;br /&gt;
It&#039;s important that you communicate... most MediaGoblin communication happens on IRC, so you should [http://webchat.freenode.net/?channels=mediagoblin join us there] and discuss (#mediagoblin on irc.freenode.net)!  Please, please join our channel and introduce yourself.  We&#039;d love to hear from you!&lt;br /&gt;
&lt;br /&gt;
= Possible projects =&lt;br /&gt;
&lt;br /&gt;
Here are a list of projects that students may wish to apply for for GSOC 2013:&lt;br /&gt;
&lt;br /&gt;
== Blogging system ==&lt;br /&gt;
&lt;br /&gt;
We&#039;ve had an increasing number of people ask if MediaGoblin would be a useful blogging system.  The answer is that at present, it isn&#039;t: even though we support an ascii art media type, media types aren&#039;t really the right way to handle blogging since they don&#039;t really fit with the &amp;quot;gallery&amp;quot; style of editing things in MediaGoblin.&lt;br /&gt;
&lt;br /&gt;
But people are interested in something that&#039;s more along the lines of Tumblr: a blogging platform with good media embedding integration.  In many ways, MediaGoblin is perfect for this!&lt;br /&gt;
&lt;br /&gt;
Some thoughts:&lt;br /&gt;
&lt;br /&gt;
* Blogs might go at /u/foo-user/b/ and individual blogposts at /u/foo-user/b/blogpost-slug/&lt;br /&gt;
* Also take a look at Chris&#039; post about this, it has some important design notes: http://lists.mediagoblin.org/pipermail/devel/2013-April/000491.html&lt;br /&gt;
* Blogging should be a plugin&lt;br /&gt;
* To make blogging more useful (either to the blogging plugin or to external blogging engines) it would be good to have much better embedding support in MediaGoblin. So improving embedding support should be mentioned in the proposal.&lt;br /&gt;
* HTML with something like TinyMCE integration would be good.  HTML would need to be cleaned on the backend.&lt;br /&gt;
* Maybe other types would be allowed (markdown, restructured text) though I&#039;m not sure how much more complex that makes cleaning HTML output.&lt;br /&gt;
* What about commenting?  Would we need a seaparate comments table?&lt;br /&gt;
&lt;br /&gt;
Possible Mentor: spaetz&lt;br /&gt;
&lt;br /&gt;
== Pluggable user authentication &amp;amp; implementations ==&lt;br /&gt;
&lt;br /&gt;
We&#039;d like a pluggable user authentication module.  Some people want to use things like LDAP.  Some people would also like BrowserID integration.&lt;br /&gt;
&lt;br /&gt;
With our new work toward pluginification it would be good to see the structure for user authentication to be interface&#039;ified.  It would also be good to have implementation for several types of logins such as BrowserID, LDAP, and central authentication system stuff.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Possible mentors:&#039;&#039;&#039; Nathan Yergler, [[User:Joar|Joar Wandborg]], [[User:Cwebber|Chris Webber]]&lt;br /&gt;
&lt;br /&gt;
== Administrative interface / moderation tools ==&lt;br /&gt;
&lt;br /&gt;
At present there isn&#039;t much as in terms of tooling to deal with things as an administrator.  Several things would be greatly of help to admins at present:&lt;br /&gt;
&lt;br /&gt;
* Views to search for users and take actions upon them&lt;br /&gt;
* Tools to deal with handling problematic content/users&lt;br /&gt;
* More generalized panel for looking at things being processed&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Possible mentors:&#039;&#039;&#039; --[[User:Copiesofcopies|Copiesofcopies]] ([[User talk:Copiesofcopies|talk]]) 15:02, 1 April 2013 (EDT), [[User:Joar|Joar Wandborg]], [[User:Cwebber|Chris Webber]]&lt;br /&gt;
&lt;br /&gt;
== Processing panel improvements ==&lt;br /&gt;
&lt;br /&gt;
While media is being uploaded, there&#039;s not very good and clear indications of this, though we have some basics.&lt;br /&gt;
&lt;br /&gt;
* Show the number of entries that are currently in processing in the dropdown user panel at the top of mediagoblin instances&lt;br /&gt;
* In media entries that are currently in progress, give clearer information about amount of work left?  (Note, showing percentages might be hard)&lt;br /&gt;
* Nicer looking demonstrations of what failed.&lt;br /&gt;
&lt;br /&gt;
Note: this one might require a lot of graphic design and discussion; anyone interested in it would have to work closely with people on IRC before submitting a real proposal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Possible mentors:&#039;&#039;&#039; --[[User:Copiesofcopies|Copiesofcopies]] ([[User talk:Copiesofcopies|talk]]) 15:03, 1 April 2013 (EDT), [[User:Joar|Joar Wandborg]], [[User:Cwebber|Chris Webber]]&lt;br /&gt;
&lt;br /&gt;
== Pluginifying media types ==&lt;br /&gt;
&lt;br /&gt;
Media types currently have their own way of being configured separately.  It would be good to be able to make them into bona-fide plugins (if anything with some special case metadata).  This will also allow media types to define things like special-case views, etc.&lt;br /&gt;
&lt;br /&gt;
Possible mentors: --[[User:Copiesofcopies|Copiesofcopies]] ([[User talk:Copiesofcopies|talk]]) 15:02, 1 April 2013 (EDT), [[User:Joar|Joar Wandborg]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Possible mentors:&#039;&#039;&#039; [[User:Joar|Joar Wandborg]], [[User:Cwebber|Chris Webber]]&lt;br /&gt;
&lt;br /&gt;
== User upload account limits ==&lt;br /&gt;
&lt;br /&gt;
It would be great to have the ability to set limits on the amount of stuff people can upload.  This would involve both hooks to track the space of media as it&#039;s saved (maybe this should be fairly core?) as well as the ability to refuse an upload because a limit has been already hit.  Tools to change limits would also be good, especially via an administrative interface and ./bin/gmg&lt;br /&gt;
&lt;br /&gt;
--[[User:Joar|Joar]] ([[User talk:Joar|talk]]) 07:41, 30 March 2013 (EDT) &amp;lt;code&amp;gt;mediagoblin.storage.StorageInterface&amp;lt;/code&amp;gt; should probably implement a &amp;lt;code&amp;gt;get_size&amp;lt;/code&amp;gt; method or similar.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Possible mentors:&#039;&#039;&#039; [[User:Joar|Joar Wandborg]], [[User:Cwebber|Chris Webber]]&lt;br /&gt;
&lt;br /&gt;
== Search interface ==&lt;br /&gt;
&lt;br /&gt;
We don&#039;t have any sort of search for media whatsoever at present.  Obviously people want this!&lt;br /&gt;
&lt;br /&gt;
There&#039;s been some discussion of a search interface that would be federated, but for the scope of this, we don&#039;t need to worry about that.  It would be enough to investigate a search engine that would allow for searching across the subjects/titles/descriptions of media.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Possible mentors:&#039;&#039;&#039; Nathan Yergler, Aeva NTSC, [[User:Cwebber|Chris Webber]]&lt;br /&gt;
&lt;br /&gt;
== Media type reprocessing framework ==&lt;br /&gt;
&lt;br /&gt;
This one is tricky!  Basically, allowing media to go back into processing... ie, resizing an image to a new size, re-transcoding video, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Possible mentors:&#039;&#039;&#039; [[User:Joar|Joar Wandborg]], [[User:Cwebber|Chris Webber]]&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=GSOC_2013&amp;diff=1209</id>
		<title>GSOC 2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=GSOC_2013&amp;diff=1209"/>
		<updated>2013-03-30T11:41:44Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* User upload account limits */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We are participating in [http://www.google-melange.com/gsoc/homepage/google/gsoc2013 GSOC 2013] (if we&#039;re accepted, that is!)&lt;br /&gt;
&lt;br /&gt;
= How do I apply as a student? =&lt;br /&gt;
&lt;br /&gt;
Well, we need to be accepted as a mentoring org first :)&lt;br /&gt;
&lt;br /&gt;
But then:&lt;br /&gt;
* Submit your application (details coming soon)&lt;br /&gt;
* [http://mediagoblin.org/pages/join.html Join us] on IRC and on our mailing lists.&lt;br /&gt;
* Set up a development environment via our [[HackingHowto]]&lt;br /&gt;
&lt;br /&gt;
It&#039;s important that you communicate... most MediaGoblin communication happens on IRC, so you should [http://webchat.freenode.net/?channels=mediagoblin join us there] and discuss (#mediagoblin on irc.freenode.net)!&lt;br /&gt;
&lt;br /&gt;
= Possible projects =&lt;br /&gt;
&lt;br /&gt;
Here are a list of projects that students may wish to apply for for GSOC 2013:&lt;br /&gt;
&lt;br /&gt;
== Blogging system ==&lt;br /&gt;
&lt;br /&gt;
We&#039;ve had an increasing number of people ask if MediaGoblin would be a useful blogging system.  The answer is that at present, it isn&#039;t: even though we support an ascii art media type, media types aren&#039;t really the right way to handle blogging since they don&#039;t really fit with the &amp;quot;gallery&amp;quot; style of editing things in MediaGoblin.&lt;br /&gt;
&lt;br /&gt;
But people are interested in something that&#039;s more along the lines of Tumblr: a blogging platform with good media embedding integration.  In many ways, MediaGoblin is perfect for this!&lt;br /&gt;
&lt;br /&gt;
Some thoughts:&lt;br /&gt;
&lt;br /&gt;
* Blogs might go at /u/foo-user/b/ and individual blogposts at /u/foo-user/b/blogpost-slug/&lt;br /&gt;
* Blogging should be a plugin&lt;br /&gt;
* HTML with something like TinyMCE integration would be good.  HTML would need to be cleaned on the backend.&lt;br /&gt;
* Maybe other types would be allowed (markdown, restructured text) though I&#039;m not sure how much more complex that makes cleaning HTML output.&lt;br /&gt;
* What about commenting?  Would we need a seaparate comments table?&lt;br /&gt;
&lt;br /&gt;
== Document / presentation system ==&lt;br /&gt;
&lt;br /&gt;
There&#039;s some work toward a [http://issues.mediagoblin.org/ticket/391 document type] in MediaGoblin, but to get a *really nice* document type, it might take some work.&lt;br /&gt;
&lt;br /&gt;
* Conversion from various documents to PDF via libreoffice on the backend&lt;br /&gt;
* On-page reading with pdf.js&lt;br /&gt;
* Preservation of original file, with ability to download&lt;br /&gt;
* Other things???&lt;br /&gt;
&lt;br /&gt;
== Pluggable user authentication &amp;amp; implementations ==&lt;br /&gt;
&lt;br /&gt;
We&#039;d like a pluggable user authentication module.  Some people want to use things like LDAP.  Some people would also like BrowserID integration.&lt;br /&gt;
&lt;br /&gt;
With our new work toward pluginification it would be good to see the structure for user authentication to be interface&#039;ified.  It would also be good to have implementation for several types of logins such as BrowserID, LDAP, and central authentication system stuff.&lt;br /&gt;
&lt;br /&gt;
== Administrative interface / moderation tools ==&lt;br /&gt;
&lt;br /&gt;
At present there isn&#039;t much as in terms of tooling to deal with things as an administrator.  Several things would be greatly of help to admins at present:&lt;br /&gt;
&lt;br /&gt;
* Views to search for users and take actions upon them&lt;br /&gt;
* Tools to deal with handling problematic content/users&lt;br /&gt;
* More generalized panel for looking at things being processed&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
== Processing panel improvements ==&lt;br /&gt;
&lt;br /&gt;
While media is being uploaded, there&#039;s not very good and clear indications of this, though we have some basics.&lt;br /&gt;
&lt;br /&gt;
* Show the number of entries that are currently in processing in the dropdown user panel at the top of mediagoblin instances&lt;br /&gt;
* In media entries that are currently in progress, give clearer information about amount of work left?  (Note, showing percentages might be hard)&lt;br /&gt;
* Nicer looking demonstrations of what failed.&lt;br /&gt;
&lt;br /&gt;
Note: this one might require a lot of graphic design and discussion; anyone interested in it would have to work closely with people on IRC before submitting a real proposal.&lt;br /&gt;
&lt;br /&gt;
== Pluginifying media types ==&lt;br /&gt;
&lt;br /&gt;
Media types currently have their own way of being configured separately.  It would be good to be able to make them into bona-fide plugins (if anything with some special case metadata).  This will also allow media types to define things like special-case views, etc.&lt;br /&gt;
&lt;br /&gt;
== User upload account limits ==&lt;br /&gt;
&lt;br /&gt;
It would be great to have the ability to set limits on the amount of stuff people can upload.  This would involve both hooks to track the space of media as it&#039;s saved (maybe this should be fairly core?) as well as the ability to refuse an upload because a limit has been already hit.  Tools to change limits would also be good, especially via an administrative interface and ./bin/gmg&lt;br /&gt;
&lt;br /&gt;
--[[User:Joar|Joar]] ([[User talk:Joar|talk]]) 07:41, 30 March 2013 (EDT) &amp;lt;code&amp;gt;mediagoblin.storage.StorageInterface&amp;lt;/code&amp;gt; should probably implement a &amp;lt;code&amp;gt;get_size&amp;lt;/code&amp;gt; method or similar.&lt;br /&gt;
&lt;br /&gt;
== Search interface ==&lt;br /&gt;
&lt;br /&gt;
We don&#039;t have any sort of search for media whatsoever at present.  Obviously people want this!&lt;br /&gt;
&lt;br /&gt;
There&#039;s been some discussion of a search interface that would be federated, but for the scope of this, we don&#039;t need to worry about that.  It would be enough to investigate a search engine that would allow for searching across the subjects/titles/descriptions of media.&lt;br /&gt;
&lt;br /&gt;
== Media type reprocessing framework ==&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=GSOC_2013&amp;diff=1208</id>
		<title>GSOC 2013</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=GSOC_2013&amp;diff=1208"/>
		<updated>2013-03-30T11:41:25Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* User upload account limits */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We are participating in [http://www.google-melange.com/gsoc/homepage/google/gsoc2013 GSOC 2013] (if we&#039;re accepted, that is!)&lt;br /&gt;
&lt;br /&gt;
= How do I apply as a student? =&lt;br /&gt;
&lt;br /&gt;
Well, we need to be accepted as a mentoring org first :)&lt;br /&gt;
&lt;br /&gt;
But then:&lt;br /&gt;
* Submit your application (details coming soon)&lt;br /&gt;
* [http://mediagoblin.org/pages/join.html Join us] on IRC and on our mailing lists.&lt;br /&gt;
* Set up a development environment via our [[HackingHowto]]&lt;br /&gt;
&lt;br /&gt;
It&#039;s important that you communicate... most MediaGoblin communication happens on IRC, so you should [http://webchat.freenode.net/?channels=mediagoblin join us there] and discuss (#mediagoblin on irc.freenode.net)!&lt;br /&gt;
&lt;br /&gt;
= Possible projects =&lt;br /&gt;
&lt;br /&gt;
Here are a list of projects that students may wish to apply for for GSOC 2013:&lt;br /&gt;
&lt;br /&gt;
== Blogging system ==&lt;br /&gt;
&lt;br /&gt;
We&#039;ve had an increasing number of people ask if MediaGoblin would be a useful blogging system.  The answer is that at present, it isn&#039;t: even though we support an ascii art media type, media types aren&#039;t really the right way to handle blogging since they don&#039;t really fit with the &amp;quot;gallery&amp;quot; style of editing things in MediaGoblin.&lt;br /&gt;
&lt;br /&gt;
But people are interested in something that&#039;s more along the lines of Tumblr: a blogging platform with good media embedding integration.  In many ways, MediaGoblin is perfect for this!&lt;br /&gt;
&lt;br /&gt;
Some thoughts:&lt;br /&gt;
&lt;br /&gt;
* Blogs might go at /u/foo-user/b/ and individual blogposts at /u/foo-user/b/blogpost-slug/&lt;br /&gt;
* Blogging should be a plugin&lt;br /&gt;
* HTML with something like TinyMCE integration would be good.  HTML would need to be cleaned on the backend.&lt;br /&gt;
* Maybe other types would be allowed (markdown, restructured text) though I&#039;m not sure how much more complex that makes cleaning HTML output.&lt;br /&gt;
* What about commenting?  Would we need a seaparate comments table?&lt;br /&gt;
&lt;br /&gt;
== Document / presentation system ==&lt;br /&gt;
&lt;br /&gt;
There&#039;s some work toward a [http://issues.mediagoblin.org/ticket/391 document type] in MediaGoblin, but to get a *really nice* document type, it might take some work.&lt;br /&gt;
&lt;br /&gt;
* Conversion from various documents to PDF via libreoffice on the backend&lt;br /&gt;
* On-page reading with pdf.js&lt;br /&gt;
* Preservation of original file, with ability to download&lt;br /&gt;
* Other things???&lt;br /&gt;
&lt;br /&gt;
== Pluggable user authentication &amp;amp; implementations ==&lt;br /&gt;
&lt;br /&gt;
We&#039;d like a pluggable user authentication module.  Some people want to use things like LDAP.  Some people would also like BrowserID integration.&lt;br /&gt;
&lt;br /&gt;
With our new work toward pluginification it would be good to see the structure for user authentication to be interface&#039;ified.  It would also be good to have implementation for several types of logins such as BrowserID, LDAP, and central authentication system stuff.&lt;br /&gt;
&lt;br /&gt;
== Administrative interface / moderation tools ==&lt;br /&gt;
&lt;br /&gt;
At present there isn&#039;t much as in terms of tooling to deal with things as an administrator.  Several things would be greatly of help to admins at present:&lt;br /&gt;
&lt;br /&gt;
* Views to search for users and take actions upon them&lt;br /&gt;
* Tools to deal with handling problematic content/users&lt;br /&gt;
* More generalized panel for looking at things being processed&lt;br /&gt;
* ???&lt;br /&gt;
&lt;br /&gt;
== Processing panel improvements ==&lt;br /&gt;
&lt;br /&gt;
While media is being uploaded, there&#039;s not very good and clear indications of this, though we have some basics.&lt;br /&gt;
&lt;br /&gt;
* Show the number of entries that are currently in processing in the dropdown user panel at the top of mediagoblin instances&lt;br /&gt;
* In media entries that are currently in progress, give clearer information about amount of work left?  (Note, showing percentages might be hard)&lt;br /&gt;
* Nicer looking demonstrations of what failed.&lt;br /&gt;
&lt;br /&gt;
Note: this one might require a lot of graphic design and discussion; anyone interested in it would have to work closely with people on IRC before submitting a real proposal.&lt;br /&gt;
&lt;br /&gt;
== Pluginifying media types ==&lt;br /&gt;
&lt;br /&gt;
Media types currently have their own way of being configured separately.  It would be good to be able to make them into bona-fide plugins (if anything with some special case metadata).  This will also allow media types to define things like special-case views, etc.&lt;br /&gt;
&lt;br /&gt;
== User upload account limits ==&lt;br /&gt;
&lt;br /&gt;
It would be great to have the ability to set limits on the amount of stuff people can upload.  This would involve both hooks to track the space of media as it&#039;s saved (maybe this should be fairly core?) as well as the ability to refuse an upload because a limit has been already hit.  Tools to change limits would also be good, especially via an administrative interface and ./bin/gmg&lt;br /&gt;
&lt;br /&gt;
--[[User:Joar|Joar]] ([[User talk:Joar|talk]]) 07:41, 30 March 2013 (EDT) &amp;lt;code&amp;gt;mediagoblin.storage.StorageInterface&amp;lt;/code&amp;gt; should implement a &amp;lt;code&amp;gt;get_size&amp;lt;/code&amp;gt; method or similar.&lt;br /&gt;
&lt;br /&gt;
== Search interface ==&lt;br /&gt;
&lt;br /&gt;
We don&#039;t have any sort of search for media whatsoever at present.  Obviously people want this!&lt;br /&gt;
&lt;br /&gt;
There&#039;s been some discussion of a search interface that would be federated, but for the scope of this, we don&#039;t need to worry about that.  It would be enough to investigate a search engine that would allow for searching across the subjects/titles/descriptions of media.&lt;br /&gt;
&lt;br /&gt;
== Media type reprocessing framework ==&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Triage_Bugs&amp;diff=1191</id>
		<title>Triage Bugs</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Triage_Bugs&amp;diff=1191"/>
		<updated>2013-03-11T21:15:14Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Bug keywords */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The triage process involves reviewing bugs, removing duplicates, validating that the issues described are reproducible, ensuring that the exact behavior is properly documented, diagnosing the cause of each issue, and working with developers to ensure that critical bugs get addressed. In many cases, developers do this kind of work as a matter of course, but one need not be able to code in order to help working with bugs.&lt;br /&gt;
&lt;br /&gt;
To triage bugs, go to the bug tracker and begin reviewing the open issues. If you are able, attempt to:&lt;br /&gt;
&lt;br /&gt;
* ensure that one or two people in addition to the initial reporter have been able to reproduce the issue.&lt;br /&gt;
* document the issue more clearly. If you had any trouble reproducing the issue, provide any elucidating information that you can to help others solve the problem more effectively.&lt;br /&gt;
* find a way to resolve the problem or provide a workaround.&lt;br /&gt;
&lt;br /&gt;
For help, instructions, and suggestions be in touch with the development community on the list or in the IRC channel for more information. With many eyes, all bugs are shallow.&lt;br /&gt;
&lt;br /&gt;
=== Bug keywords ===&lt;br /&gt;
* &amp;quot;bitesized&amp;quot; for bugs that should be easy to fix, even for beginners.&lt;br /&gt;
* &amp;quot;review&amp;quot; for bugs, that have a patch (branch!) associated and someone should look at that branch and likely merge it into master&lt;br /&gt;
* &amp;quot;sql&amp;quot; for things relating to our sql data model.&lt;br /&gt;
* &amp;quot;video&amp;quot; for things relating to the video media type&lt;br /&gt;
* &amp;quot;audio&amp;quot; for things relating to the audio media type&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Triage_Bugs&amp;diff=1190</id>
		<title>Triage Bugs</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Triage_Bugs&amp;diff=1190"/>
		<updated>2013-03-11T21:15:05Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Bug keywords */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The triage process involves reviewing bugs, removing duplicates, validating that the issues described are reproducible, ensuring that the exact behavior is properly documented, diagnosing the cause of each issue, and working with developers to ensure that critical bugs get addressed. In many cases, developers do this kind of work as a matter of course, but one need not be able to code in order to help working with bugs.&lt;br /&gt;
&lt;br /&gt;
To triage bugs, go to the bug tracker and begin reviewing the open issues. If you are able, attempt to:&lt;br /&gt;
&lt;br /&gt;
* ensure that one or two people in addition to the initial reporter have been able to reproduce the issue.&lt;br /&gt;
* document the issue more clearly. If you had any trouble reproducing the issue, provide any elucidating information that you can to help others solve the problem more effectively.&lt;br /&gt;
* find a way to resolve the problem or provide a workaround.&lt;br /&gt;
&lt;br /&gt;
For help, instructions, and suggestions be in touch with the development community on the list or in the IRC channel for more information. With many eyes, all bugs are shallow.&lt;br /&gt;
&lt;br /&gt;
=== Bug keywords ===&lt;br /&gt;
* &amp;quot;bitesized&amp;quot; for bugs that should be easy to fix, even for beginners.&lt;br /&gt;
* &amp;quot;review&amp;quot; for bugs, that have a patch (branch!) associated and someone should look at that branch and likely merge it into master&lt;br /&gt;
* &amp;quot;sql&amp;quot; for things relating to our sql data model.&lt;br /&gt;
* &amp;quot;video&amp;quot; for things relating to the video media type&lt;br /&gt;
+ &amp;quot;audio&amp;quot; for things relating to the audio media type&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Meeting&amp;diff=1120</id>
		<title>Meeting</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Meeting&amp;diff=1120"/>
		<updated>2013-02-11T21:19:54Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Next Meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== MediaGoblin Monthly Meeting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;When:&#039;&#039;&#039; 9:00 am Pacific Time first Saturday of the month. [http://www.timeanddate.com/worldclock/converter.html Convert time to your timezone].  Print current UTC time: &amp;lt;code&amp;gt;date -u +&amp;quot;It&#039;s %F %T UTC&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where:&#039;&#039;&#039; IRC #mediagoblin on irc.freenode.net&lt;br /&gt;
&lt;br /&gt;
Always announced several days in advance on the [http://lists.mediagoblin.org/pipermail/devel/ mailing list] as is date adjustments, agenda discussion and other meeting preparation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Purpose:&#039;&#039;&#039; The idea is to discuss the past month, what happened, what was good, what should be done better. And to create roadmap for the upcoming month and assign tasks to people willing to handle them.&lt;br /&gt;
&lt;br /&gt;
Typical Agenda topics:&lt;br /&gt;
&lt;br /&gt;
* What happened in the last month, what was good, what could be better next time?&lt;br /&gt;
* What should be done next month?&lt;br /&gt;
&lt;br /&gt;
Meetings are logged. [http://mediagoblin.org/irclogs/ Logs for past meetings.]&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
* 0.3.3 milestone!  What about our next release? :)&lt;br /&gt;
* Where to put Developer docs?&lt;br /&gt;
*: Our Documentation for developers is currently a bit split. Some are on the wiki, some in the main docs. There are pros and cons for both. We should consider where to put things. One place? Which? Or decide on an individual basis?&lt;br /&gt;
*: Good about main docs: Easy to integrate source code doc strings. That way internal api docs can be kept mostly up to date.&lt;br /&gt;
*: Good about wiki: Doesn&#039;t feel so &amp;quot;set in stone&amp;quot;.&lt;br /&gt;
* wiki spam: Do we want to change something?&lt;br /&gt;
* [http://lists.mediagoblin.org/pipermail/devel/2012-November/000307.html Designing features!]&lt;br /&gt;
* Plugins, and architecting for plugins&lt;br /&gt;
* Chris Webber gives updates on how he&#039;s settling into his role ;)&lt;br /&gt;
* Consider moving to GStreamer 1.0&lt;br /&gt;
** Debian - 1.0 in sid&lt;br /&gt;
** Ubuntu - 1.0 in 12.10&lt;br /&gt;
*** Possibly backports for 12.04&lt;br /&gt;
** Fedora - 1.0 in 18&lt;br /&gt;
&lt;br /&gt;
== Past Meetings ==&lt;br /&gt;
&lt;br /&gt;
=== October 13th, 2012, 9:00 am Pacific Time (2012-10-13 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
* 0.3.2 release&lt;br /&gt;
** What existing features need to be wrapped up?&lt;br /&gt;
*** Werkzeug switch&lt;br /&gt;
** What time might we do the release?&lt;br /&gt;
* Fundraising campaign&lt;br /&gt;
** Keeping things going mid-campaign&lt;br /&gt;
** You have questions?  I have answers, kinda :)&lt;br /&gt;
* Getting new contributors involved&lt;br /&gt;
* Plugins?  New features?&lt;br /&gt;
&lt;br /&gt;
==== Etherpad ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AGENDA&lt;br /&gt;
&lt;br /&gt;
     0.3.2 release &lt;br /&gt;
&lt;br /&gt;
     What existing features need to be wrapped up? &lt;br /&gt;
&lt;br /&gt;
     Werkzeug switch &lt;br /&gt;
&lt;br /&gt;
     What time might we do the release? &lt;br /&gt;
&lt;br /&gt;
    Congrats to Deb from the mediagoblin team! Congrats de Deb!&lt;br /&gt;
&lt;br /&gt;
     Fundraising campaign &lt;br /&gt;
&lt;br /&gt;
     Keeping things going mid-campaign &lt;br /&gt;
&lt;br /&gt;
     You have questions?  I have answers, kinda :) &lt;br /&gt;
&lt;br /&gt;
     Getting new contributors involved &lt;br /&gt;
&lt;br /&gt;
     Plugins?  New features? &lt;br /&gt;
&lt;br /&gt;
-- http://wiki.mediagoblin.org/Meeting#Next_Meeting&lt;br /&gt;
Fundraising stuff&lt;br /&gt;
Things are going great mostly when people check it out!&lt;br /&gt;
But how to spread the word?&lt;br /&gt;
&lt;br /&gt;
    should contact more podcasts, etc&lt;br /&gt;
&lt;br /&gt;
    currently working with FSF on this&lt;br /&gt;
&lt;br /&gt;
    need community to spread the word!&lt;br /&gt;
&lt;br /&gt;
    List of places already spreaded list and contacted&lt;br /&gt;
&lt;br /&gt;
VideoThumbnailerMarkII&lt;br /&gt;
New video thumbnailer, rewritten to try to eliminate a bug in the old one where processing would stall.&lt;br /&gt;
New bugs introduce (of course ;)&lt;br /&gt;
Collections&lt;br /&gt;
Merged - Thanks aaronw!&lt;br /&gt;
WebOb =&amp;gt; Werkzeug switch&lt;br /&gt;
Made some things break. Need help with testing + bugfixes&lt;br /&gt;
borked stuffs:&lt;br /&gt;
&lt;br /&gt;
    Accessing paths without trailing slashes, e.g. /submit (instead of /submit/)&lt;br /&gt;
&lt;br /&gt;
    Still a lot of legacy WebOb responses (such as webob.exc.HTTPFound() HTTPForbidden() left)&lt;br /&gt;
&lt;br /&gt;
API&lt;br /&gt;
Delivered to mrn.is, tryggvib will test it and get back with feedback.&lt;br /&gt;
Working, still a lot of room for improvements.&lt;br /&gt;
Mostly done, usable, still room for improvements. Example applications:&lt;br /&gt;
&lt;br /&gt;
    https://github.com/jwandborg/automgtic&lt;br /&gt;
&lt;br /&gt;
    https://github.com/jwandborg/omgmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== September 1st, 2012, 9:00 am Pacific Time (2012-09-01 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-09-01.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* FIXME - can someone type in summary here?&lt;br /&gt;
&lt;br /&gt;
=== August 4th, 2012, 9:00 am Pacific Time (2012-08-04 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-08-04.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Release schedule&lt;br /&gt;
* Plugins and themes! Who&#039;s working on one? What problems are you having? -- Please write up issues for problems so they can get fixed!&lt;br /&gt;
* Should we namespace plugins? If so, how should we namespace plugins?&lt;br /&gt;
** Python 3.3 will have support for namespace plugins. [http://www.python.org/dev/peps/pep-0420/#namespace-packages-today]&lt;br /&gt;
** In Python &amp;gt;=2.3, &amp;lt;3.3 it&#039;s a hack [http://www.python.org/dev/peps/pep-0402/#the-problem][http://www.python.org/dev/peps/pep-0420/#namespace-packages-today]&lt;br /&gt;
** Flask has a workaround[https://github.com/mitsuhiko/flask/blob/master/flask/ext/__init__.py]&lt;br /&gt;
&lt;br /&gt;
=== July 7th, 2012, 9:00 am Pacific Time (2012-07-07 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-07-07.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
Announcements:&lt;br /&gt;
&lt;br /&gt;
* Anyone who wants to edit the wiki needs to be in the goblin army group. Ask Will or Chris to get added.&lt;br /&gt;
* Plugin infrastructure landed. If you&#039;re interested in writing plugins, talk to Will. Some documentation at http://docs.mediagoblin.org/#part-2-plugin-writer-s-guide&lt;br /&gt;
&lt;br /&gt;
Agenda:&lt;br /&gt;
&lt;br /&gt;
* Keyboard shortcuts ([http://issues.mediagoblin.org/ticket/346 #346])&lt;br /&gt;
* Ticket triaging?&lt;br /&gt;
* Base plugin stuff!&lt;br /&gt;
* Theming&lt;br /&gt;
* Conference: OSCON&lt;br /&gt;
* Chris Webber&#039;s new &amp;quot;office hours&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== June 2nd, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-06-02.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* docs changes&lt;br /&gt;
** Will split the docs/ guide into a Site Administrator&#039;s Guide and a Plugin Writer&#039;s Guide&lt;br /&gt;
** Has anyone looked at the Plugin Writer&#039;s Guide, yet?&lt;br /&gt;
** Will wants to add a &amp;quot;Contributor&#039;s Guide&amp;quot; to docs/ which he&#039;d update from the wiki before every release&lt;br /&gt;
* Is there a way to improve our unit tests and motivation to write them?&lt;br /&gt;
** Simulating a browser by the way of [http://phantomjs.org/ PhantomJS], [http://seleniumhq.org/ Selenium] instead of having code simulating other code against itself might be more natural to write and even more testing the actual application. I have a good feeling about this, please prove me wrong if I&#039;d be. --[[User:Joar|Joar]] 08:53, 28 May 2012 (EDT)&lt;br /&gt;
* Administrative panel/tools and user uploads panel&lt;br /&gt;
* Git and tickets &lt;br /&gt;
* Plugins&lt;br /&gt;
** What&#039;s the state of things?&lt;br /&gt;
** Documentation&lt;br /&gt;
** What plugins might we want to build for this upcoming release?&lt;br /&gt;
** What things do we currently have that we might want to pluginify?&lt;br /&gt;
* State of kuneco/federation mini-update (Chris)&lt;br /&gt;
&lt;br /&gt;
=== May 5th, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-05-05.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Post-release reflections&lt;br /&gt;
** Woohoo, release!&lt;br /&gt;
** How did this release process go?&lt;br /&gt;
*** We should talk about that conference.&lt;br /&gt;
** What&#039;s left to clean up?&lt;br /&gt;
*** Mongokit-&amp;gt;SQL &amp;quot;style&amp;quot; query conversion?&lt;br /&gt;
*** Other cruft code?&lt;br /&gt;
* What are our next goals?&lt;br /&gt;
** Plugins&lt;br /&gt;
** Federation&lt;br /&gt;
** Favoriting&lt;br /&gt;
*** Take that, Pinterest! ;)&lt;br /&gt;
** Galleries&lt;br /&gt;
** Theming&lt;br /&gt;
*** Using sass would be neat&lt;br /&gt;
** Access restrictions&lt;br /&gt;
*** User management, or having a &amp;quot;secret url&amp;quot; that is not in the photo index that you can share with friends and generate as needed for any media type&lt;br /&gt;
** What about traffic? Some of us will host GMG on limited plans.&lt;br /&gt;
** Some kind of coding guidelines? Do we have a philosophy like &amp;quot;Keep it Simple, Stupid&amp;quot;&lt;br /&gt;
*** This concerns things like: Should plugins land in core eventually, do we want to support ALL THE MEDIA TYPES, ...&lt;br /&gt;
** Podcasting support?&lt;br /&gt;
** Things that have been hanging???&lt;br /&gt;
** Bugtrackers and milestone?&lt;br /&gt;
** More??? We should organize things!&lt;br /&gt;
* jancborchardt and his team of UX wizard-students&lt;br /&gt;
* Website redesign&lt;br /&gt;
* OpenShift?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== April 7th, 2012, 4:00 pm UTC ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-04-07.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Post-SQL stuff&lt;br /&gt;
* Pending 0.0.3 release!&lt;br /&gt;
* Are there stray patches/branches to be merged?&lt;br /&gt;
* Our glorious upcoming plugin future! (Update from Will)&lt;br /&gt;
&lt;br /&gt;
=== March 3rd, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-03-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* [[GSOC 2012]]&lt;br /&gt;
* State of the SQL transition (preview: it&#039;s super close, but we need help!)&lt;br /&gt;
* Plugin discussion (Will can&#039;t make this, but we should talk about use cases)&lt;br /&gt;
* MediaGoblin at upcoming conferences&lt;br /&gt;
* PageKite accounts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2012-02 (held on 2012-02-04) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-02-04.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Code style guide?  See also: http://issues.mediagoblin.org/ticket/197&lt;br /&gt;
* Kuneco/federation&lt;br /&gt;
* API&lt;br /&gt;
* More testing discussion?&lt;br /&gt;
* Theming?&lt;br /&gt;
* Preliminary plugin discussion&lt;br /&gt;
* Status update from the &amp;quot;SQL Team&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some of the decisions:&lt;br /&gt;
&lt;br /&gt;
* file an issue about proper &amp;amp;lt;audio&amp;amp;gt; support.&lt;br /&gt;
* some TODOs recorded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-12 (held on 2011-12-03) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-12-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* We plan to create a plugin system.  Do we want to create that soon or push it off until things settle a bit more?  ([[User:Willkg|Willkg]] 08:54, 10 November 2011 (EST))&lt;br /&gt;
* [[Feature Ideas]]: What should we do about the wiki page? Keep it and have it as a monthly topic for &amp;quot;what next&amp;quot;? Convert everything to long waiting bugs?&lt;br /&gt;
* Possibility of an [[SQL Database Backend]]?&lt;br /&gt;
*: &#039;executive summary&#039; (well, you should read the long docs): &amp;quot;We could move to sql. It&#039;s probably replacing one type of pain by another type of pain, but those are somewhat comparable. Leaving the main question: Do we want to occupy our main devs for some long time with this task and loose momentum?&amp;quot;&lt;br /&gt;
* Schendje&#039;s [http://wiki.mediagoblin.org/Feature_Ideas/Activities activities proposal]&lt;br /&gt;
* &amp;quot;Coming up next&amp;quot; blogpost draft by Deb Nicholson&lt;br /&gt;
* Jef&#039;s requests:&lt;br /&gt;
** Ticket #466 &amp;quot;Use of &amp;quot;Submit&amp;quot; in site copy is sterile and not as friendly and welcoming as it could be&amp;quot;. I&#039;d really like to change this soon to something more suitable. How can we improve the wording here? Some alternatives have been mentioned in the bug report, but which one should we pick? Link: http://bugs.foocorp.net/issues/466&lt;br /&gt;
** The concept and naming of &amp;quot;favourites&amp;quot;. We&#039;ll (hopefully) be able to &amp;quot;favourite&amp;quot; media soon, which I *think* means that 1) it&#039;ll work like a &amp;quot;I like this&amp;quot; comment, a quick token of appreciation, 2) it&#039;ll be added to your list of favourites so you can save and promote it, and 3) we could maybe use the number of favourites as a ranking. What I&#039;d like to know is: is that the intended purpose? If so, should we name them favo(u)rites or something else? &amp;quot;Like&amp;quot;, &amp;quot;love&amp;quot;, &amp;quot;save&amp;quot;, &amp;quot;appreciate&amp;quot;, &amp;quot;heart&amp;quot;, &amp;quot;high five&amp;quot; and many more could all be contenders. And the name should be consistent with the action and purpose, of course. So I&#039;d like to clear up how and why we will use favourites and what we should call them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-11 (held on 2011-11-05) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-11-05.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* What happened in the last month, what was good, what could be better next time?&lt;br /&gt;
** Release:&lt;br /&gt;
*** Good: 0.1.0 released!&lt;br /&gt;
*** Bad: postponing vs not postponing&lt;br /&gt;
** Sites and deployment documentation:&lt;br /&gt;
*** Good: new mediagoblin.org&lt;br /&gt;
*** Good: deployment documentation&lt;br /&gt;
*** Bad: py-bcrypt’s site was down just after the release, so the virtualenv deployment didn’t work, and it wasn’t clear how to fix it.&lt;br /&gt;
** Live instances:&lt;br /&gt;
*** Joar has a live instance!&lt;br /&gt;
*** But what does it mean? Should ordinary users start using it?&lt;br /&gt;
**** Details at [[User:Joar/mg.wandborg.se]] -- [[User:Joar|Joar]] 17:01, 6 November 2011 (EST)&lt;br /&gt;
*** nyergler added a note about &amp;quot;heartbeat&amp;quot;/status to API notes&lt;br /&gt;
* What should be done next month?&lt;br /&gt;
* Starting real work on federation (via OStatus)... and do we split any of this work out into its own library?&lt;br /&gt;
* An API&lt;br /&gt;
* Creative Commons licensing tools&lt;br /&gt;
* Merging in the multimedia/video branch&lt;br /&gt;
*: (this is *very close* already actually thanks to the hard work of Joar Wandborg!  But we need some help on the gstreamer front to fix a few issues... if you or someone you know is an expert in this area we could really use their help to make the videos that come out smoother!)&lt;br /&gt;
* Rollover items from 0.1.0&lt;br /&gt;
* Multiple file upload interface&lt;br /&gt;
* Drag and drop uploads interface (probably related!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-10 (held on 2011-10-01) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-10-01.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
This month&#039;s meeting was a quickly announced short meeting. The project is getting back on track and next month&#039;s meeting will be scheduled more properly. A bunch of people were around.&lt;br /&gt;
&lt;br /&gt;
The most important decisions:&lt;br /&gt;
* The project will keep monthly releases. They&#039;re the heartbeat of the project.&lt;br /&gt;
* Release 0.1.0 this sunday/monday.&lt;br /&gt;
* New website will hopefully be deployed in the next few days.&lt;br /&gt;
* And the following things are planned to happen during this month: Most importantly federation. The developers have decided to make up their minds on what federation aactually should mean for MediaGoblin. Concerning code, probably &amp;quot;activity streams&amp;quot; are the first goal. If there is no (good) python library for this, a new stand alone library may be created. If so, a name for it has to be found. It should have something about communication in it. And the other thing to happen during this month is an ongoing discussion about &amp;quot;bus factor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-09 (held on 2011-09-03) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-09-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-08 (held on 2011-08-06) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-08-06.txt IRC log]&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=User:Joar&amp;diff=1087</id>
		<title>User:Joar</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=User:Joar&amp;diff=1087"/>
		<updated>2013-01-28T19:56:04Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Misc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Joar&lt;br /&gt;
&amp;lt;dd&amp;gt;GNU MediaGoblin contributor&lt;br /&gt;
&amp;lt;dd&amp;gt;http://wandborg.se&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Like what I do? [https://flattr.com/thing/422997/Joar-Wandborg Give me a hug].&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[User:Joar/Multimedia|Joar/Video support]] - Help with multimedia support in GMG.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[User:Joar/mg.wandborg.se|Joar/mg.wandborg.se]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[https://github.com/joar/mediagoblin github.com/jwandborg/mediagoblin] - Public repo&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
04/22:53.54 &amp;lt;@paroneayea&amp;gt; joar: just go ahead and claim that bug :)&lt;br /&gt;
04/22:54.35 &amp;lt; joar&amp;gt; paroneayea: done ;)&lt;br /&gt;
04/22:54.54 &amp;lt;@paroneayea&amp;gt; jawesome&lt;br /&gt;
04/22:55.09 &amp;lt; joar&amp;gt; paroneayea: How&#039;s your TAB button feeling today? :)&lt;br /&gt;
04/22:55.38 &amp;lt;@paroneayea&amp;gt; oh that&#039;s intentional&lt;br /&gt;
04/22:55.46 &amp;lt;@paroneayea&amp;gt;   _.-._&lt;br /&gt;
04/22:55.46 &amp;lt;@paroneayea&amp;gt;   \.   \_.--___--&lt;br /&gt;
04/22:55.46 &amp;lt;@paroneayea&amp;gt;   __\    ( o\  c/&lt;br /&gt;
04/22:55.46 &amp;lt;@paroneayea&amp;gt;  /        .-____   JAWESOME&lt;br /&gt;
04/22:55.49 &amp;lt;@paroneayea&amp;gt; /       /v v vv&lt;br /&gt;
04/22:55.54 &amp;lt;@paroneayea&amp;gt;          ^^ ^&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
26/19:26.48 &amp;lt;@paroneayea&amp;gt; AAAAAAA&lt;br /&gt;
26/19:27.02 &amp;lt;@paroneayea&amp;gt; AAAAA&lt;br /&gt;
26/19:27.02 &amp;lt;@paroneayea&amp;gt;       \/            .------&lt;br /&gt;
26/19:27.02 &amp;lt;@paroneayea&amp;gt;       o o ;;       /\\     \    $  __&lt;br /&gt;
26/19:27.02 &amp;lt;@paroneayea&amp;gt;       &#039; C ||      // \\     #     /_/&lt;br /&gt;
26/19:27.05 &amp;lt;@paroneayea&amp;gt;         \//      // //\\     \&lt;br /&gt;
26/19:27.08 &amp;lt;@paroneayea&amp;gt;          )             \\     \   %&lt;br /&gt;
26/19:27.12 &amp;lt;@paroneayea&amp;gt;         \\              \\_____\&lt;br /&gt;
26/19:27.15 &amp;lt;@paroneayea&amp;gt;         | )            //-------&lt;br /&gt;
26/19:27.18 &amp;lt;@paroneayea&amp;gt;        /_/_           //     //&lt;br /&gt;
26/19:27.21 &amp;lt;@paroneayea&amp;gt;  &lt;br /&gt;
26/19:27.23 &amp;lt;@paroneayea&amp;gt;            LOSE YOUR SHIT&lt;br /&gt;
26/19:27.26 &amp;lt;@paroneayea&amp;gt;          FLIP A FUKKEN TABLE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
28/13:37.46 &amp;lt; joar&amp;gt; ________: Yeah, I understand that. Unless you want my soul &lt;br /&gt;
                    or facebook password I think it will be fine.&lt;br /&gt;
28/13:39.03 &amp;lt; ________&amp;gt; awww you mean I have to rewrite the contract, erase the &lt;br /&gt;
                        &amp;quot;soul clause&amp;quot; and push a new version through our case &lt;br /&gt;
                        management system... do you know how hard it is to make &lt;br /&gt;
                        changes around here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=User:Joar&amp;diff=1086</id>
		<title>User:Joar</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=User:Joar&amp;diff=1086"/>
		<updated>2013-01-28T19:55:53Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Tasks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Joar&lt;br /&gt;
&amp;lt;dd&amp;gt;GNU MediaGoblin contributor&lt;br /&gt;
&amp;lt;dd&amp;gt;http://wandborg.se&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Like what I do? [https://flattr.com/thing/422997/Joar-Wandborg Give me a hug].&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[User:Joar/Multimedia|Joar/Video support]] - Help with multimedia support in GMG.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[User:Joar/mg.wandborg.se|Joar/mg.wandborg.se]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[https://github.com/joar/mediagoblin github.com/jwandborg/mediagoblin] - Public repo&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
04/22:53.54 &amp;lt;@paroneayea&amp;gt; joar: just go ahead and claim that bug :)&lt;br /&gt;
04/22:54.35 &amp;lt; joar&amp;gt; paroneayea: done ;)&lt;br /&gt;
04/22:54.54 &amp;lt;@paroneayea&amp;gt; jawesome&lt;br /&gt;
04/22:55.09 &amp;lt; joar&amp;gt; paroneayea: How&#039;s your TAB button feeling today? :)&lt;br /&gt;
04/22:55.38 &amp;lt;@paroneayea&amp;gt; oh that&#039;s intentional&lt;br /&gt;
04/22:55.46 &amp;lt;@paroneayea&amp;gt;   _.-._&lt;br /&gt;
04/22:55.46 &amp;lt;@paroneayea&amp;gt;   \.   \_.--___--&lt;br /&gt;
04/22:55.46 &amp;lt;@paroneayea&amp;gt;   __\    ( o\  c/&lt;br /&gt;
04/22:55.46 &amp;lt;@paroneayea&amp;gt;  /        .-____   JAWESOME&lt;br /&gt;
04/22:55.49 &amp;lt;@paroneayea&amp;gt; /       /v v vv&lt;br /&gt;
04/22:55.54 &amp;lt;@paroneayea&amp;gt;          ^^ ^&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
26/19:26.48 &amp;lt;@paroneayea&amp;gt; AAAAAAA&lt;br /&gt;
26/19:27.02 &amp;lt;@paroneayea&amp;gt; AAAAA&lt;br /&gt;
26/19:27.02 &amp;lt;@paroneayea&amp;gt;       \/            .------&lt;br /&gt;
26/19:27.02 &amp;lt;@paroneayea&amp;gt;       o o ;;       /\\     \    $  __&lt;br /&gt;
26/19:27.02 &amp;lt;@paroneayea&amp;gt;       &#039; C ||      // \\     #     /_/&lt;br /&gt;
26/19:27.05 &amp;lt;@paroneayea&amp;gt;         \//      // //\\     \&lt;br /&gt;
26/19:27.08 &amp;lt;@paroneayea&amp;gt;          )             \\     \   %&lt;br /&gt;
26/19:27.12 &amp;lt;@paroneayea&amp;gt;         \\              \\_____\&lt;br /&gt;
26/19:27.15 &amp;lt;@paroneayea&amp;gt;         | )            //-------&lt;br /&gt;
26/19:27.18 &amp;lt;@paroneayea&amp;gt;        /_/_           //     //&lt;br /&gt;
26/19:27.21 &amp;lt;@paroneayea&amp;gt;  &lt;br /&gt;
26/19:27.23 &amp;lt;@paroneayea&amp;gt;            LOSE YOUR SHIT&lt;br /&gt;
26/19:27.26 &amp;lt;@paroneayea&amp;gt;          FLIP A FUKKEN TABLE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
28/13:37.46 &amp;lt; joar&amp;gt; ________: Yeah, I understand that. Unless you want my soul &lt;br /&gt;
                    or facebook password I think it will be fine.&lt;br /&gt;
28/13:39.03 &amp;lt; ________&amp;gt; awww you mean I have to rewrite the contract, erase the &lt;br /&gt;
                        &amp;quot;soul clause&amp;quot; and push a new version through our case &lt;br /&gt;
                        management system... do you know how hard it is to make &lt;br /&gt;
                        changes around here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=User:Joar&amp;diff=1085</id>
		<title>User:Joar</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=User:Joar&amp;diff=1085"/>
		<updated>2013-01-28T19:55:42Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Joar&lt;br /&gt;
&amp;lt;dd&amp;gt;GNU MediaGoblin contributor&lt;br /&gt;
&amp;lt;dd&amp;gt;http://wandborg.se&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Like what I do? [https://flattr.com/thing/422997/Joar-Wandborg Give me a hug].&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[User:Joar/Multimedia|Joar/Video support]] - Help with multimedia support in GMG.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[User:Joar/mg.wandborg.se|Joar/mg.wandborg.se]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[https://github.com/joar/mediagoblin github.com/jwandborg/mediagoblin] - Public repo&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tasks ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;del&amp;gt;Video/multimedia support&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;[http://bugs.foocorp.net/issues/298 Feature #298 - Create envball]&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Look into WebDAV support for public storage backends.&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;New: Support source file attachments to uploads&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
04/22:53.54 &amp;lt;@paroneayea&amp;gt; joar: just go ahead and claim that bug :)&lt;br /&gt;
04/22:54.35 &amp;lt; joar&amp;gt; paroneayea: done ;)&lt;br /&gt;
04/22:54.54 &amp;lt;@paroneayea&amp;gt; jawesome&lt;br /&gt;
04/22:55.09 &amp;lt; joar&amp;gt; paroneayea: How&#039;s your TAB button feeling today? :)&lt;br /&gt;
04/22:55.38 &amp;lt;@paroneayea&amp;gt; oh that&#039;s intentional&lt;br /&gt;
04/22:55.46 &amp;lt;@paroneayea&amp;gt;   _.-._&lt;br /&gt;
04/22:55.46 &amp;lt;@paroneayea&amp;gt;   \.   \_.--___--&lt;br /&gt;
04/22:55.46 &amp;lt;@paroneayea&amp;gt;   __\    ( o\  c/&lt;br /&gt;
04/22:55.46 &amp;lt;@paroneayea&amp;gt;  /        .-____   JAWESOME&lt;br /&gt;
04/22:55.49 &amp;lt;@paroneayea&amp;gt; /       /v v vv&lt;br /&gt;
04/22:55.54 &amp;lt;@paroneayea&amp;gt;          ^^ ^&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
26/19:26.48 &amp;lt;@paroneayea&amp;gt; AAAAAAA&lt;br /&gt;
26/19:27.02 &amp;lt;@paroneayea&amp;gt; AAAAA&lt;br /&gt;
26/19:27.02 &amp;lt;@paroneayea&amp;gt;       \/            .------&lt;br /&gt;
26/19:27.02 &amp;lt;@paroneayea&amp;gt;       o o ;;       /\\     \    $  __&lt;br /&gt;
26/19:27.02 &amp;lt;@paroneayea&amp;gt;       &#039; C ||      // \\     #     /_/&lt;br /&gt;
26/19:27.05 &amp;lt;@paroneayea&amp;gt;         \//      // //\\     \&lt;br /&gt;
26/19:27.08 &amp;lt;@paroneayea&amp;gt;          )             \\     \   %&lt;br /&gt;
26/19:27.12 &amp;lt;@paroneayea&amp;gt;         \\              \\_____\&lt;br /&gt;
26/19:27.15 &amp;lt;@paroneayea&amp;gt;         | )            //-------&lt;br /&gt;
26/19:27.18 &amp;lt;@paroneayea&amp;gt;        /_/_           //     //&lt;br /&gt;
26/19:27.21 &amp;lt;@paroneayea&amp;gt;  &lt;br /&gt;
26/19:27.23 &amp;lt;@paroneayea&amp;gt;            LOSE YOUR SHIT&lt;br /&gt;
26/19:27.26 &amp;lt;@paroneayea&amp;gt;          FLIP A FUKKEN TABLE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
28/13:37.46 &amp;lt; joar&amp;gt; ________: Yeah, I understand that. Unless you want my soul &lt;br /&gt;
                    or facebook password I think it will be fine.&lt;br /&gt;
28/13:39.03 &amp;lt; ________&amp;gt; awww you mean I have to rewrite the contract, erase the &lt;br /&gt;
                        &amp;quot;soul clause&amp;quot; and push a new version through our case &lt;br /&gt;
                        management system... do you know how hard it is to make &lt;br /&gt;
                        changes around here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=User:Joar&amp;diff=1083</id>
		<title>User:Joar</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=User:Joar&amp;diff=1083"/>
		<updated>2013-01-28T19:47:03Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Misc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Joar&lt;br /&gt;
&amp;lt;dd&amp;gt;GNU MediaGoblin contributor&lt;br /&gt;
&amp;lt;dd&amp;gt;http://wandborg.se&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Like what I do? [https://flattr.com/thing/422997/Joar-Wandborg Give me a hug].&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[User:Joar/Multimedia|Joar/Video support]] - Help with multimedia support in GMG.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[[User:Joar/mg.wandborg.se|Joar/mg.wandborg.se]]&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;[https://github.com/jwandborg/mediagoblin github.com/jwandborg/mediagoblin] - Public repo&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tasks ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;del&amp;gt;Video/multimedia support&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;[http://bugs.foocorp.net/issues/298 Feature #298 - Create envball]&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;Look into WebDAV support for public storage backends.&amp;lt;/del&amp;gt;&lt;br /&gt;
* &amp;lt;del&amp;gt;New: Support source file attachments to uploads&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Misc ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
04/22:53.54 &amp;lt;@paroneayea&amp;gt; joar: just go ahead and claim that bug :)&lt;br /&gt;
04/22:54.35 &amp;lt; joar&amp;gt; paroneayea: done ;)&lt;br /&gt;
04/22:54.54 &amp;lt;@paroneayea&amp;gt; jawesome&lt;br /&gt;
04/22:55.09 &amp;lt; joar&amp;gt; paroneayea: How&#039;s your TAB button feeling today? :)&lt;br /&gt;
04/22:55.38 &amp;lt;@paroneayea&amp;gt; oh that&#039;s intentional&lt;br /&gt;
04/22:55.46 &amp;lt;@paroneayea&amp;gt;   _.-._&lt;br /&gt;
04/22:55.46 &amp;lt;@paroneayea&amp;gt;   \.   \_.--___--&lt;br /&gt;
04/22:55.46 &amp;lt;@paroneayea&amp;gt;   __\    ( o\  c/&lt;br /&gt;
04/22:55.46 &amp;lt;@paroneayea&amp;gt;  /        .-____   JAWESOME&lt;br /&gt;
04/22:55.49 &amp;lt;@paroneayea&amp;gt; /       /v v vv&lt;br /&gt;
04/22:55.54 &amp;lt;@paroneayea&amp;gt;          ^^ ^&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
26/19:26.48 &amp;lt;@paroneayea&amp;gt; AAAAAAA&lt;br /&gt;
26/19:27.02 &amp;lt;@paroneayea&amp;gt; AAAAA&lt;br /&gt;
26/19:27.02 &amp;lt;@paroneayea&amp;gt;       \/            .------&lt;br /&gt;
26/19:27.02 &amp;lt;@paroneayea&amp;gt;       o o ;;       /\\     \    $  __&lt;br /&gt;
26/19:27.02 &amp;lt;@paroneayea&amp;gt;       &#039; C ||      // \\     #     /_/&lt;br /&gt;
26/19:27.05 &amp;lt;@paroneayea&amp;gt;         \//      // //\\     \&lt;br /&gt;
26/19:27.08 &amp;lt;@paroneayea&amp;gt;          )             \\     \   %&lt;br /&gt;
26/19:27.12 &amp;lt;@paroneayea&amp;gt;         \\              \\_____\&lt;br /&gt;
26/19:27.15 &amp;lt;@paroneayea&amp;gt;         | )            //-------&lt;br /&gt;
26/19:27.18 &amp;lt;@paroneayea&amp;gt;        /_/_           //     //&lt;br /&gt;
26/19:27.21 &amp;lt;@paroneayea&amp;gt;  &lt;br /&gt;
26/19:27.23 &amp;lt;@paroneayea&amp;gt;            LOSE YOUR SHIT&lt;br /&gt;
26/19:27.26 &amp;lt;@paroneayea&amp;gt;          FLIP A FUKKEN TABLE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
28/13:37.46 &amp;lt; joar&amp;gt; ________: Yeah, I understand that. Unless you want my soul &lt;br /&gt;
                    or facebook password I think it will be fine.&lt;br /&gt;
28/13:39.03 &amp;lt; ________&amp;gt; awww you mean I have to rewrite the contract, erase the &lt;br /&gt;
                        &amp;quot;soul clause&amp;quot; and push a new version through our case &lt;br /&gt;
                        management system... do you know how hard it is to make &lt;br /&gt;
                        changes around here&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Main_Page&amp;diff=1061</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Main_Page&amp;diff=1061"/>
		<updated>2013-01-23T11:14:27Z</updated>

		<summary type="html">&lt;p&gt;Joar: Reverted spam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Want to Join the MediaGoblin Community? =&lt;br /&gt;
&lt;br /&gt;
We’re really glad that you want to join the MediaGoblin community!&lt;br /&gt;
&lt;br /&gt;
There are a variety of ways to help and support MediaGoblin and to join the team.  If you want to code, great, if not, even better!  MediaGoblin interested contributors in many different roles: users, system administrators, technical writers, testers, evangelists, UI/UX and graphics designers, cheerleaders, and dreamers.&lt;br /&gt;
&lt;br /&gt;
This wiki covers a variety of ways that you can get involved with MediaGoblin as well as instructions on how to get started.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hang out with the MediaGoblin folk ==&lt;br /&gt;
&lt;br /&gt;
MediaGoblin has a mailing list and an IRC channel where we hang out.  See [http://mediagoblin.org/pages/join.html our join page] for links.&lt;br /&gt;
&lt;br /&gt;
Please drop by and say “Hi!”  And, if you’re looking for something to do, just ask---there’s always work to be done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Take Part in the Monthly Meetings ==&lt;br /&gt;
&lt;br /&gt;
Each month is a [[Meeting]]. You can take part and help decide on the future of MediaGoblin. Or just be around and see what&#039;s happening live!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== File Bugs / Triage Bugs ==&lt;br /&gt;
&lt;br /&gt;
Issue reports are critical for all projects.  Identified bugs give developers a basis for beginning work, and providing an idea of what features and issues are most important to users and the overall usability of the software.  If you identify errors, flaws, unexpected behaviors, or deficits that impede use, file a bug.&lt;br /&gt;
&lt;br /&gt;
* [[File Bugs]] -- notes on filing new bugs/issues/feature requests&lt;br /&gt;
* [[Feature Ideas]] -- notes on possible features&lt;br /&gt;
* [[Triage Bugs]] -- notes on triaging&lt;br /&gt;
* [[BugTriageDay]] -- every other Thursday is bug triage day where anyone can help out triaging bugs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Write Code / Fix Code ==&lt;br /&gt;
&lt;br /&gt;
If you are a coder and you would like to write code, the repository is hosted on gitorious. Clone or fork the repository and start poking around. Become familiar with this manual for an overview of how the software works and is used. Consider the contributor wiki for more information about the project, our preferred methods, and guides for developing MediaGoblin. We even have tips on becoming a coder and we’re willing to help!&lt;br /&gt;
&lt;br /&gt;
* [[HackingHowto|Hacking]] - notes on making and sending in code contributions&lt;br /&gt;
** [[BeginnersCorner|Beginner&#039;s Corner]] - resources for those who are new to Python or Git.&lt;br /&gt;
** &#039;&#039;Started from an older version of the Hacking Howto?  We switched from buildout-&amp;gt;virtualenv, so look at [[Moving from buildout to virtualenv]] for information on how to move over.&#039;&#039;&lt;br /&gt;
* [[Git workflow]] - How to go about submitting patches via git.&lt;br /&gt;
* [[Templating]] - How our templating structure is set up&lt;br /&gt;
* [[Code overview]] - Overview of the structure of the codebase&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Send Encouragement / Spread the Word ==&lt;br /&gt;
&lt;br /&gt;
Sometimes, a nice word, simple encouragement, and interest in the work we’re doing is enough to inspire a tizzy of productive work.  Just a bit more interest and encouragement can even make the difference between a complete feature and limited functionality; between a completed milestone and lost momentum.&lt;br /&gt;
&lt;br /&gt;
Similarly, MediaGoblin, and the movement for free network services, is always in need of encouragement.  Use free network services, understand the principals behind the movement, be able to articulate the benefits of free network services and the problems with psudo-free applications that don’t respect the users’ freedom.&lt;br /&gt;
&lt;br /&gt;
Write a blog post, post a status update, drop by the listserv or join #mediagoblin on freenode.net and let us know.  See [http://mediagoblin.org/join/ our join page] for links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Write Documentation / Edit Documentation ==&lt;br /&gt;
&lt;br /&gt;
* [[Documentation quick start]] - How to contribute to the documentation effort.&lt;br /&gt;
* [[ManualStandards]] - covers the standards for writing the user manual (forthcoming.) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test MediaGoblin ==&lt;br /&gt;
&lt;br /&gt;
Do you have access to the web? Do you like sharing your opinions? If so, we need your help to test MediaGoblin! Testers play around with the current test instance, note what operating system and browser they use (notes on multiple set-ups are also helpful) and take some notes. That&#039;s it! It&#039;s a very important task that doesn&#039;t require any special knowledge and you&#039;re done in under an hour. Ready to help?  &lt;br /&gt;
&lt;br /&gt;
* [[User Experience]] - user experience testing.  Includes link to an instance you can try!&lt;br /&gt;
* [[UnitTests|Unit Tests]] - all about the unit tests&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Translate MediaGoblin ==&lt;br /&gt;
&lt;br /&gt;
If you know English and another language and feel comfortable translating elements of the interface or even the documentation, we’d love to have help translating the software and resources.&lt;br /&gt;
Translating MediaGoblin is very easy with a web interface, so there is no programming knowledge required at all.&lt;br /&gt;
&lt;br /&gt;
* [[Translations]] - How to translate stuff or update the translations&lt;br /&gt;
&lt;br /&gt;
== Become a User ==&lt;br /&gt;
&lt;br /&gt;
Coming soon!&lt;br /&gt;
&lt;br /&gt;
We’re building MediaGoblin for us and for you but really you’re one of us and I am you and we are we and MediaGoblin is the walrus.&lt;br /&gt;
&lt;br /&gt;
We&#039;re planning to launch our own public instance of MediaGoblin in the near future--probably in the September/October 2011 time frame.  When we do, sign up for an account, use the service and relish in the thought that this service comes with a heaping side of Freedom and you can salt and pepper it to your liking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Help Others ==&lt;br /&gt;
&lt;br /&gt;
Have you spent time with MediaGoblin?  If so, your experience and wisdom are invaluable and you’re the best person we can think of to help other users with their questions.&lt;br /&gt;
&lt;br /&gt;
Hang out on the IRC channel and help answer new peoples&#039; questions.  See [http://mediagoblin.org/join/ our join page] for links.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Run your own MediaGoblin Instance ==&lt;br /&gt;
&lt;br /&gt;
Are there things about our instance you want to change?  Are there things about other instances you wish were different?  Want to test upcoming changes?  Want to create patches to implement things you need?  That’s great—you can run your own instance!&lt;br /&gt;
&lt;br /&gt;
* [[Configure_MediaGoblin|Configuration]] - Learn about MediaGoblin configuration files and file options.&lt;br /&gt;
* [[Deployment]] - General deployment advice&lt;br /&gt;
* [[Scaling Down]] - Minimizing MediaGoblin&#039;s resource requirements&lt;br /&gt;
* [[Virtual Machine Hosting]] - Deploy your own publicly available MediaGoblin server using [http://aws.amazon.com/free/?utm_source=adwords&amp;amp;utm_medium=cpc&amp;amp;utm_campaign=CPC_Google_AWS_ec2&amp;amp;utm_content=TextV01_PP_V01_EC2&amp;amp;trk=CPC_Google_AWS_ec2 Amazon&#039;s free EC2 tier].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create a Theme ==&lt;br /&gt;
&lt;br /&gt;
Coming soon!&lt;br /&gt;
&lt;br /&gt;
MedaGoblin development is premised on the idea that the entire interface for the platform be completely theme-able.  If you have a design or theming background, consider developing themes for MediaGoblin.  New themes help test the theming system, provide attractive and appealing interfaces for prospective users.  If you want to start a new theme but don’t know where to start, touch base with the development community on the list or in the IRC channel for more information.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Technical project documentation =&lt;br /&gt;
&lt;br /&gt;
* [[DesignDecisions]] - covers design decisions (FIXME - this needs to be split up)&lt;br /&gt;
* [[Storage]] - How MediaGoblin&#039;s internal storage system works.&lt;br /&gt;
* [[Processing]] - What happens after you submit your image/video/etc?  Processing!  More about that.&lt;br /&gt;
* [https://gitorious.org/mediagoblin/mediagoblin/blobs/master/extlib/README External Library Policy] - covers use of external libraries&lt;br /&gt;
* [[User:Cwebber/braindumps]] - Chris Webber&#039;s braindumps (you can help refactoring these into real sections of the site!)&lt;br /&gt;
* [[Multiple media support]] - Design plan for multiple media support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Inner workings of the secret sanctum =&lt;br /&gt;
&lt;br /&gt;
* [[IRCBot]] - covers our irc bot&lt;br /&gt;
* [[ReleaseProcess|Release Process]] - covers the release process&lt;br /&gt;
* [[Update the website]] - Learn how to update mediagoblin.org!&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=MediaTypeRefactor/DesignDoc&amp;diff=1058</id>
		<title>MediaTypeRefactor/DesignDoc</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=MediaTypeRefactor/DesignDoc&amp;diff=1058"/>
		<updated>2013-01-22T16:29:19Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Media Types Design =&lt;br /&gt;
&lt;br /&gt;
This document is based on requirements/wishes listed in http://wiki.mediagoblin.org/MediaTypeRefactor&lt;br /&gt;
&lt;br /&gt;
*Note*:   * Attachments have deliberately been excluded from this document to reduce complexity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Publishing clients =&lt;br /&gt;
&lt;br /&gt;
These are described optimal behaviours of different types of publishing clients.&lt;br /&gt;
&lt;br /&gt;
== CLI ==&lt;br /&gt;
&lt;br /&gt;
=== Single-file ===&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
gmg submit FILE&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
=== *n*-file ===&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
gmg submit FILE_1 FILE_2 [...] FILE_N&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
=== *n*-file with media metadata ===&lt;br /&gt;
&lt;br /&gt;
GStreamer `gst-launch` inspired exclamation-mark-separated &amp;quot;elements&amp;quot; of media entries:&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
gmg submit FILE_1 title=TITLE_1 description=DESCRIPTION_1 ! \&lt;br /&gt;
    FILE_2 title=TITLE_2 ! \&lt;br /&gt;
    FILE_3 title=TITLE_3 tags=TAGS_3[...]&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
== WWW ==&lt;br /&gt;
&lt;br /&gt;
=== *n*-file ===&lt;br /&gt;
&lt;br /&gt;
*Note*: Requires browser [http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dnd drag and drop] support.&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
,-----------------------------------------------.&lt;br /&gt;
| S U B M I T   F I L E S                       |&lt;br /&gt;
|                                               |&lt;br /&gt;
|        Drag media from your desktop           |&lt;br /&gt;
|              and drop it here                 |&lt;br /&gt;
|                                               |&lt;br /&gt;
`-----------------------------------------------Â´&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
*Note*:   * What if there&#039;s folders in there?&lt;br /&gt;
  * What about publishing-metadata?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Single-file ===&lt;br /&gt;
&lt;br /&gt;
Could be used as fallback for browsers not supporting [http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dnd drag and drop].&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
,-----------------------------------------------.&lt;br /&gt;
| S U B M I T   F I L E                         |&lt;br /&gt;
|                                               |&lt;br /&gt;
| Source file: [ /home/joar/Pictures... Browse] |&lt;br /&gt;
|                                               |&lt;br /&gt;
| [Submit]                                      |&lt;br /&gt;
`-----------------------------------------------Â´&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
== API ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Media types =&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
pip install mediagoblin-video&lt;br /&gt;
echo &amp;quot;[[mediagoblin.media_types.video]]&amp;quot; &amp;gt;&amp;gt; mediagoblin_local.ini&lt;br /&gt;
gmg dbupdate&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
*Note*:   * We could build a wrapper around pip that performs the installation steps automatically.&lt;br /&gt;
  * What about dependencies such as GStreamer and related packages? We could include that in our wrapper, but it&#039;d have to take into account all the different distributions&#039; package managers out there.&lt;br /&gt;
&lt;br /&gt;
== Negotiation ==&lt;br /&gt;
&lt;br /&gt;
Media type negotiation is done per-file by iterating through a registry of enabled media type plugins. Several negotiation mechanisms may exists, such as a cheap file-extension based one and a more expensive file content sniffing negotiation step.&lt;br /&gt;
&lt;br /&gt;
== Output files ==&lt;br /&gt;
&lt;br /&gt;
Some media types such as ASCII art and images might have a very simple data structure:&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
This illustrates the output of the ``mediagoblin.media_types.image`` media&lt;br /&gt;
type:&lt;br /&gt;
&lt;br /&gt;
ORIGINAL IMAGE    -&amp;gt;    THUMBNAIL JPEG&lt;br /&gt;
                     MEDIUM SIZED JPEG&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
Media types such as `video` and `3D object` might have more complex output files:&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
ORIGINAL VIDEO  -&amp;gt;      THUMBNAIL JPEG&lt;br /&gt;
                       640px-wide WEBM # Displayed on media page&lt;br /&gt;
                             720p WEBM # Displayed in full-screen player&lt;br /&gt;
                            1080p WEBM # Displayed in full-screen player&lt;br /&gt;
                      640px-wide H.264 # Alternate container/stream formats&lt;br /&gt;
                            720p H.264&lt;br /&gt;
                           1080p H.264&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
we should therefore allow a lot of flexibility for the files&lt;br /&gt;
&lt;br /&gt;
= Media processing =&lt;br /&gt;
&lt;br /&gt;
Processing takes the original file and creates files of lesser size/quality that  The pipeline is as follows:&lt;br /&gt;
&lt;br /&gt;
  # The application receives a bytestream, optional byte stream metadata (i.e. filename) and publishing-metadata. The bytestream and bytestream metadata is sourced from the *original file*.&lt;br /&gt;
    * Possibly we could have &amp;quot;adapters&amp;quot; of some sort that provides this data consistently across publishing clients.&lt;br /&gt;
*Note*:  Some users have expressed a wish for mediagoblin to simply read a folder with files and create a &amp;quot;web album&amp;quot; from them.&lt;br /&gt;
&lt;br /&gt;
  * The media type negotiation mechanism decides one or more suitable media type plugins to handle the conversion of the *original file*, pushes task data to the task broker and creates a *MediaEntry* in the database and populates it with at least the media type.&lt;br /&gt;
  * The task handler now checks the task broker for a new task when received the task handler looks up the processing method for the selected media type and runs it.&lt;br /&gt;
  * The media processor converts the *original file* into smaller, displayable media. These media files are then placed in the *public storage*.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Note*:   * Are there cases where we should accept more than one input file?&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=MediaTypeRefactor/DesignDoc&amp;diff=1057</id>
		<title>MediaTypeRefactor/DesignDoc</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=MediaTypeRefactor/DesignDoc&amp;diff=1057"/>
		<updated>2013-01-22T16:28:50Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Contents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Media Types Design =&lt;br /&gt;
&lt;br /&gt;
This document is based on requirements/wishes listed in http://wiki.mediagoblin.org/MediaTypeRefactor&lt;br /&gt;
&lt;br /&gt;
*Note*:   * Attachments have deliberately been excluded from this document to reduce complexity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Publishing clients =&lt;br /&gt;
&lt;br /&gt;
These are described optimal behaviours of different types of publishing clients.&lt;br /&gt;
&lt;br /&gt;
== CLI ==&lt;br /&gt;
&lt;br /&gt;
=== Single-file ===&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
gmg submit FILE&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
=== *n*-file ===&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
gmg submit FILE_1 FILE_2 [...] FILE_N&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
=== *n*-file with media metadata ===&lt;br /&gt;
&lt;br /&gt;
GStreamer `gst-launch` inspired exclamation-mark-separated &amp;quot;elements&amp;quot; of media entries:&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
gmg submit FILE_1 title=TITLE_1 description=DESCRIPTION_1 ! \&lt;br /&gt;
    FILE_2 title=TITLE_2 ! \&lt;br /&gt;
    FILE_3 title=TITLE_3 tags=TAGS_3[...]&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
== WWW ==&lt;br /&gt;
&lt;br /&gt;
=== *n*-file ===&lt;br /&gt;
&lt;br /&gt;
*Note*: Requires browser [http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dnd drag and drop] support.&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
,-----------------------------------------------.&lt;br /&gt;
| S U B M I T   F I L E S                       |&lt;br /&gt;
|                                               |&lt;br /&gt;
|        Drag media from your desktop           |&lt;br /&gt;
|              and drop it here                 |&lt;br /&gt;
|                                               |&lt;br /&gt;
`-----------------------------------------------Â´&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
*Note*:   * What if there&#039;s folders in there?&lt;br /&gt;
  * What about publishing-metadata?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Single-file ===&lt;br /&gt;
&lt;br /&gt;
Could be used as fallback for browsers not supporting [http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dnd drag and drop].&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
,-----------------------------------------------.&lt;br /&gt;
| S U B M I T   F I L E                         |&lt;br /&gt;
|                                               |&lt;br /&gt;
| Source file: [ /home/joar/Pictures... Browse] |&lt;br /&gt;
|                                               |&lt;br /&gt;
| [Submit]                                      |&lt;br /&gt;
`-----------------------------------------------Â´&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
== API ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Media types =&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
pip install mediagoblin-video&lt;br /&gt;
echo &amp;quot;[[mediagoblin.media_types.video]]&amp;quot; &amp;gt;&amp;gt; mediagoblin_local.ini&lt;br /&gt;
gmg dbupdate&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
*Note*:   * We could build a wrapper around pip that performs the installation steps automatically.&lt;br /&gt;
  * What about dependencies such as GStreamer and related packages? We could include that in our wrapper, but it&#039;d have to take into account all the different distributions&#039; package managers out there.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Negotiation ==&lt;br /&gt;
&lt;br /&gt;
Media type negotiation is done per-file by iterating through a registry of enabled media type plugins. Several negotiation mechanisms may exists, such as a cheap file-extension based one and a more expensive file content sniffing negotiation step.&lt;br /&gt;
&lt;br /&gt;
== Output files ==&lt;br /&gt;
&lt;br /&gt;
Some media types such as ASCII art and images might have a very simple data structure:&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
This illustrates the output of the ``mediagoblin.media_types.image`` media&lt;br /&gt;
type:&lt;br /&gt;
&lt;br /&gt;
ORIGINAL IMAGE    -&amp;gt;    THUMBNAIL JPEG&lt;br /&gt;
                     MEDIUM SIZED JPEG&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
Media types such as `video` and `3D object` might have more complex output files:&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
ORIGINAL VIDEO  -&amp;gt;      THUMBNAIL JPEG&lt;br /&gt;
                       640px-wide WEBM # Displayed on media page&lt;br /&gt;
                             720p WEBM # Displayed in full-screen player&lt;br /&gt;
                            1080p WEBM # Displayed in full-screen player&lt;br /&gt;
                      640px-wide H.264 # Alternate container/stream formats&lt;br /&gt;
                            720p H.264&lt;br /&gt;
                           1080p H.264&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
we should therefore allow a lot of flexibility for the files&lt;br /&gt;
&lt;br /&gt;
= Media processing =&lt;br /&gt;
&lt;br /&gt;
Processing takes the original file and creates files of lesser size/quality that  The pipeline is as follows:&lt;br /&gt;
&lt;br /&gt;
  # The application receives a bytestream, optional byte stream metadata (i.e. filename) and publishing-metadata. The bytestream and bytestream metadata is sourced from the *original file*.&lt;br /&gt;
    * Possibly we could have &amp;quot;adapters&amp;quot; of some sort that provides this data consistently across publishing clients.&lt;br /&gt;
*Note*:  Some users have expressed a wish for mediagoblin to simply read a folder with files and create a &amp;quot;web album&amp;quot; from them.&lt;br /&gt;
&lt;br /&gt;
  * The media type negotiation mechanism decides one or more suitable media type plugins to handle the conversion of the *original file*, pushes task data to the task broker and creates a *MediaEntry* in the database and populates it with at least the media type.&lt;br /&gt;
  * The task handler now checks the task broker for a new task when received the task handler looks up the processing method for the selected media type and runs it.&lt;br /&gt;
  * The media processor converts the *original file* into smaller, displayable media. These media files are then placed in the *public storage*.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Note*:   * Are there cases where we should accept more than one input file?&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=MediaTypeRefactor/DesignDoc&amp;diff=1056</id>
		<title>MediaTypeRefactor/DesignDoc</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=MediaTypeRefactor/DesignDoc&amp;diff=1056"/>
		<updated>2013-01-22T16:28:38Z</updated>

		<summary type="html">&lt;p&gt;Joar: Created page with &amp;quot;= Media Types Design =  This document is based on requirements/wishes listed in http://wiki.mediagoblin.org/MediaTypeRefactor  *Note*:   * Attachments have deliberately been e...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Media Types Design =&lt;br /&gt;
&lt;br /&gt;
This document is based on requirements/wishes listed in http://wiki.mediagoblin.org/MediaTypeRefactor&lt;br /&gt;
&lt;br /&gt;
*Note*:   * Attachments have deliberately been excluded from this document to reduce complexity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contents ==&lt;br /&gt;
&lt;br /&gt;
  * Publishing clients&lt;br /&gt;
    * CLI&lt;br /&gt;
      * Single-file&lt;br /&gt;
      * *n*-file&lt;br /&gt;
      * *n*-file with media metadata&lt;br /&gt;
    * WWW&lt;br /&gt;
      * *n*-file&lt;br /&gt;
      * Single-file&lt;br /&gt;
    * API&lt;br /&gt;
  * Media types&lt;br /&gt;
    * Installation&lt;br /&gt;
    * Negotiation&lt;br /&gt;
    * Output files&lt;br /&gt;
  * Media processing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Publishing clients =&lt;br /&gt;
&lt;br /&gt;
These are described optimal behaviours of different types of publishing clients.&lt;br /&gt;
&lt;br /&gt;
== CLI ==&lt;br /&gt;
&lt;br /&gt;
=== Single-file ===&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
gmg submit FILE&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
=== *n*-file ===&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
gmg submit FILE_1 FILE_2 [...] FILE_N&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
=== *n*-file with media metadata ===&lt;br /&gt;
&lt;br /&gt;
GStreamer `gst-launch` inspired exclamation-mark-separated &amp;quot;elements&amp;quot; of media entries:&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
gmg submit FILE_1 title=TITLE_1 description=DESCRIPTION_1 ! \&lt;br /&gt;
    FILE_2 title=TITLE_2 ! \&lt;br /&gt;
    FILE_3 title=TITLE_3 tags=TAGS_3[...]&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
== WWW ==&lt;br /&gt;
&lt;br /&gt;
=== *n*-file ===&lt;br /&gt;
&lt;br /&gt;
*Note*: Requires browser [http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dnd drag and drop] support.&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
,-----------------------------------------------.&lt;br /&gt;
| S U B M I T   F I L E S                       |&lt;br /&gt;
|                                               |&lt;br /&gt;
|        Drag media from your desktop           |&lt;br /&gt;
|              and drop it here                 |&lt;br /&gt;
|                                               |&lt;br /&gt;
`-----------------------------------------------Â´&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
*Note*:   * What if there&#039;s folders in there?&lt;br /&gt;
  * What about publishing-metadata?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Single-file ===&lt;br /&gt;
&lt;br /&gt;
Could be used as fallback for browsers not supporting [http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dnd drag and drop].&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
,-----------------------------------------------.&lt;br /&gt;
| S U B M I T   F I L E                         |&lt;br /&gt;
|                                               |&lt;br /&gt;
| Source file: [ /home/joar/Pictures... Browse] |&lt;br /&gt;
|                                               |&lt;br /&gt;
| [Submit]                                      |&lt;br /&gt;
`-----------------------------------------------Â´&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
== API ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Media types =&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
pip install mediagoblin-video&lt;br /&gt;
echo &amp;quot;[[mediagoblin.media_types.video]]&amp;quot; &amp;gt;&amp;gt; mediagoblin_local.ini&lt;br /&gt;
gmg dbupdate&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
*Note*:   * We could build a wrapper around pip that performs the installation steps automatically.&lt;br /&gt;
  * What about dependencies such as GStreamer and related packages? We could include that in our wrapper, but it&#039;d have to take into account all the different distributions&#039; package managers out there.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Negotiation ==&lt;br /&gt;
&lt;br /&gt;
Media type negotiation is done per-file by iterating through a registry of enabled media type plugins. Several negotiation mechanisms may exists, such as a cheap file-extension based one and a more expensive file content sniffing negotiation step.&lt;br /&gt;
&lt;br /&gt;
== Output files ==&lt;br /&gt;
&lt;br /&gt;
Some media types such as ASCII art and images might have a very simple data structure:&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
This illustrates the output of the ``mediagoblin.media_types.image`` media&lt;br /&gt;
type:&lt;br /&gt;
&lt;br /&gt;
ORIGINAL IMAGE    -&amp;gt;    THUMBNAIL JPEG&lt;br /&gt;
                     MEDIUM SIZED JPEG&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
Media types such as `video` and `3D object` might have more complex output files:&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
ORIGINAL VIDEO  -&amp;gt;      THUMBNAIL JPEG&lt;br /&gt;
                       640px-wide WEBM # Displayed on media page&lt;br /&gt;
                             720p WEBM # Displayed in full-screen player&lt;br /&gt;
                            1080p WEBM # Displayed in full-screen player&lt;br /&gt;
                      640px-wide H.264 # Alternate container/stream formats&lt;br /&gt;
                            720p H.264&lt;br /&gt;
                           1080p H.264&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
we should therefore allow a lot of flexibility for the files&lt;br /&gt;
&lt;br /&gt;
= Media processing =&lt;br /&gt;
&lt;br /&gt;
Processing takes the original file and creates files of lesser size/quality that  The pipeline is as follows:&lt;br /&gt;
&lt;br /&gt;
  # The application receives a bytestream, optional byte stream metadata (i.e. filename) and publishing-metadata. The bytestream and bytestream metadata is sourced from the *original file*.&lt;br /&gt;
    * Possibly we could have &amp;quot;adapters&amp;quot; of some sort that provides this data consistently across publishing clients.&lt;br /&gt;
*Note*:  Some users have expressed a wish for mediagoblin to simply read a folder with files and create a &amp;quot;web album&amp;quot; from them.&lt;br /&gt;
&lt;br /&gt;
  * The media type negotiation mechanism decides one or more suitable media type plugins to handle the conversion of the *original file*, pushes task data to the task broker and creates a *MediaEntry* in the database and populates it with at least the media type.&lt;br /&gt;
  * The task handler now checks the task broker for a new task when received the task handler looks up the processing method for the selected media type and runs it.&lt;br /&gt;
  * The media processor converts the *original file* into smaller, displayable media. These media files are then placed in the *public storage*.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Note*:   * Are there cases where we should accept more than one input file?&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=MediaTypeRefactor&amp;diff=1045</id>
		<title>MediaTypeRefactor</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=MediaTypeRefactor&amp;diff=1045"/>
		<updated>2012-12-23T17:42:12Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Feature ideas / use cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We&#039;re planning to extend the media type system so that it&#039;s more like plugins.  This page is to document some of the things we wish media types to be able to accomplish.&lt;br /&gt;
&lt;br /&gt;
See also: [[Feature_Ideas/Reprocessing]]&lt;br /&gt;
&lt;br /&gt;
== Feature ideas / use cases ==&lt;br /&gt;
&lt;br /&gt;
Dumping some feature ideas that could affect the design of this here, but don&#039;t actually describe how they&#039;d be implemented necessarily.&lt;br /&gt;
&lt;br /&gt;
=== File &amp;quot;History&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
What if we would like files to have something like &amp;quot;design hub&amp;quot;, where you can upload revisions of a project as you go along:&lt;br /&gt;
&lt;br /&gt;
https://mairin.wordpress.com/2010/03/09/another-design-hub-mockup/&lt;br /&gt;
&lt;br /&gt;
=== media-type-specific views ===&lt;br /&gt;
&lt;br /&gt;
Maybe your media type benefits from submitting or adjusting some extra things after the fact?&lt;br /&gt;
&lt;br /&gt;
Maybe your media type has a &amp;quot;special type of gallery&amp;quot;, for example an audio playlist?&lt;br /&gt;
&lt;br /&gt;
=== submitting media from the command line ===&lt;br /&gt;
&lt;br /&gt;
Submission is very tied to the submit view.  What if someone wanted a tool like:&lt;br /&gt;
&lt;br /&gt;
  ./bin/gmg submitmedia moognu.gif&lt;br /&gt;
&lt;br /&gt;
(How would this work also if plugins add extra things to the submit process though?)&lt;br /&gt;
&lt;br /&gt;
=== supertypes of images (raw files) ===&lt;br /&gt;
&lt;br /&gt;
Raw files are also images. They&#039;d have all the usual JPEG variants plus the extra raw file. (The raw file could be connected as attachment though)&lt;br /&gt;
&lt;br /&gt;
=== multiple renders of the same source ===&lt;br /&gt;
&lt;br /&gt;
E.g. video: 240p, 360p, 480p, 640p, 720p, 1080p, WebM, x264, etc.&lt;br /&gt;
&lt;br /&gt;
=== separation between originals and renderers ===&lt;br /&gt;
&lt;br /&gt;
One of the files is special, because you can make every other asset from that one. It could make sense to split file storage from these cached files. In case you want to have the cached ones on volatile but fast storage for frequent access, and the originals on cheaper/more reliant/slower storage where they&#039;d still be accesible, just not as much.&lt;br /&gt;
&lt;br /&gt;
== Accurately describe mimetype ==&lt;br /&gt;
&lt;br /&gt;
In feeds and etc, we want to share the mimetype of the entry, and maybe of the individual files?  Should this be on a per-entry or a per-filetype basis?&lt;br /&gt;
&lt;br /&gt;
== Additional field types ==&lt;br /&gt;
===File size===&lt;br /&gt;
For MRSS atom feeds (and probably also in the media &amp;quot;home&amp;quot; page, we need the file size of the media. Currently it is not stored at all. spaetz has a branch that implements a MediaEntry().file_size property. This works OK with local storages as it pulls the files and gets the file size on demand. But on remote storages (Amazon S3), we don&#039;t want to pull all files just to create the atom feed. We will therefore need to store the file size for each main media. Should this simply become part of the main MediaEntry table? Should it be part of an &amp;quot;extended Media Entry&amp;quot; table that is only queried on demand? I guess as we need this for all file types, so it does not make sense to put it in the per-type meta data table...&lt;br /&gt;
Elrond says: I think, we should have filesizes stored in the MedaFiles table. Because each resolution has its own filesize.&lt;br /&gt;
&lt;br /&gt;
=== Mime type ===&lt;br /&gt;
Feeds etc need to be able to specify the mime type of a media file. Currently there is no way to get at the file&#039;s mime type. We&#039;ll need to think whether we store this per-file, simply in an extra field, or in an extra MimeType table? Or...?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  16:13 &amp;lt; Elrond&amp;gt; We had a discussion on mimetype detection from bytes:&lt;br /&gt;
  16:13 &amp;lt; Elrond&amp;gt; &amp;gt;&amp;gt;&amp;gt; import magic; ms = magic.open(magic.MAGIC_MIME_TYPE); ms.load(); &lt;br /&gt;
                  ms.file(&amp;quot;really_a_jpg.png&amp;quot;)&lt;br /&gt;
  16:13 &amp;lt; Elrond&amp;gt; &#039;image/jpeg&#039;&lt;br /&gt;
  16:14 &amp;lt; Elrond&amp;gt; Works also:&lt;br /&gt;
  16:14 &amp;lt; Elrond&amp;gt; &amp;gt;&amp;gt;&amp;gt; ms.buffer(file(&amp;quot;really_a_jpg.png&amp;quot;).read(20))&lt;br /&gt;
  16:14 &amp;lt; Elrond&amp;gt; &#039;image/jpeg&#039;&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Deployment&amp;diff=1024</id>
		<title>Deployment</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Deployment&amp;diff=1024"/>
		<updated>2012-12-11T17:06:44Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Init scripts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page could use a lot of work.  For now, a few smaller deployment tips!&lt;br /&gt;
&lt;br /&gt;
See also: http://docs.mediagoblin.org/deploying.html (some of which may belong here)&lt;br /&gt;
&lt;br /&gt;
= FCGI script =&lt;br /&gt;
&lt;br /&gt;
This works great with the apache config example below :)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/path/to/mediagoblin/bin/python&lt;br /&gt;
&lt;br /&gt;
# Written in 2011 by Christopher Allan Webber&lt;br /&gt;
#&lt;br /&gt;
# To the extent possible under law, the author(s) have dedicated all&lt;br /&gt;
# copyright and related and neighboring rights to this software to the&lt;br /&gt;
# public domain worldwide. This software is distributed without any&lt;br /&gt;
# warranty.&lt;br /&gt;
# &lt;br /&gt;
# You should have received a copy of the CC0 Public Domain Dedication along&lt;br /&gt;
# with this software. If not, see&lt;br /&gt;
# &amp;lt;http://creativecommons.org/publicdomain/zero/1.0/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
from paste.deploy import loadapp&lt;br /&gt;
from flup.server.fcgi import WSGIServer&lt;br /&gt;
&lt;br /&gt;
CONFIG_PATH = &#039;/path/to/mediagoblin/paste.ini&#039;&lt;br /&gt;
&lt;br /&gt;
## Uncomment this to run celery in &amp;quot;always eager&amp;quot; mode... ie, you don&#039;t have&lt;br /&gt;
## to run a separate process, but submissions wait till processing finishes&lt;br /&gt;
# import os&lt;br /&gt;
# os.environ[&#039;CELERY_ALWAYS_EAGER&#039;] = &#039;true&#039;&lt;br /&gt;
&lt;br /&gt;
def launch_fcgi():&lt;br /&gt;
    ccengine_wsgi_app = loadapp(&#039;config:&#039; + CONFIG_PATH)&lt;br /&gt;
    WSGIServer(ccengine_wsgi_app).run()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    launch_fcgi()&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Apache 2 Config with fcgid =&lt;br /&gt;
&lt;br /&gt;
Note that the libapache2-mod-fcgi in Debian is in the nonfree section, and MediaGoblin users will want to avoid that. Instead, libapache2-mod-fcgid can be used, but requires a slightly different configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName media.example.com&lt;br /&gt;
ServerAlias www.media.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /path/to/mediagoblin&lt;br /&gt;
&lt;br /&gt;
Alias /mgoblin_static/ /path/to/mediagoblin/mediagoblin/static/&lt;br /&gt;
Alias /mgoblin_media/ /path/to/mediagoblin/user_dev/media/public/&lt;br /&gt;
&lt;br /&gt;
# Rewrite all URLs to fcgi, except for static and media urls&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteRule ^(mgoblin_static|mgoblin_media)($|/) - [L]&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteRule ^/(.*)$ /mg.fcgi/$1 [QSA,L]&lt;br /&gt;
&lt;br /&gt;
# Allow access to static and media directories&lt;br /&gt;
&amp;lt;Directory /mgoblin_static&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Allow from all&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Directory /mgoblin_media&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Allow from all&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Directory /path/to/mediagoblin/&amp;gt;&lt;br /&gt;
        SetHandler fcgid-script&lt;br /&gt;
        Options +ExecCGI&lt;br /&gt;
        FcgidWrapper /path/to/mediagoblin/mg.fcgi&lt;br /&gt;
        order allow,deny&lt;br /&gt;
        allow from all&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Apache Config Example =&lt;br /&gt;
This configuration example uses mod_fastcgi.&lt;br /&gt;
&lt;br /&gt;
To install and enable mod_fastcgi on a Debian/Ubuntu based system:&lt;br /&gt;
&amp;lt;pre&amp;gt;# apt-get install libapache2-mod-suexec libapache2-mod-fastcgi&lt;br /&gt;
# a2enmod suexec&lt;br /&gt;
# a2enmod fastcgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sample configuration:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName mediagoblin.yourdomain.tld&lt;br /&gt;
ServerAdmin webmaster@yourdoimain.tld&lt;br /&gt;
DocumentRoot /var/www/&lt;br /&gt;
# Custom log files&lt;br /&gt;
CustomLog /var/log/apache2/mediagobling_access.log combined&lt;br /&gt;
ErrorLog /var/log/apache2/mediagoblin_error.log&lt;br /&gt;
&lt;br /&gt;
# Serve static and media files via alias&lt;br /&gt;
Alias /mgoblin_static/ /path/to/mediagoblin/mediagoblin/static/&lt;br /&gt;
Alias /mgoblin_media/ /path/to/mediagoblin/user_dev/media/public/&lt;br /&gt;
&lt;br /&gt;
# Rewrite all URLs to fcgi, except for static and media urls&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteRule ^(mgoblin_static|mgoblin_media)($|/) - [L]&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteRule ^/(.*)$ /mg.fcgi/$1 [QSA,L]&lt;br /&gt;
&lt;br /&gt;
# Allow access to static and media directories&lt;br /&gt;
&amp;lt;Directory /path/to/mediagoblin/mediagoblin/static&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Allow from all&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;Directory /path/to/mediagoblin/mediagoblin/user_dev/media/public&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Allow from all&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Connect to fcgi server&lt;br /&gt;
FastCGIExternalServer /var/www/mg.fcgi -host 127.0.0.1:26543&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then, you need to make sure mediagoblin is running in fcgi mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /path/to/mediagoblin&lt;br /&gt;
./lazyserver.sh --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: there may be several ways to improve this configuration&lt;br /&gt;
&lt;br /&gt;
= Juju =&lt;br /&gt;
&lt;br /&gt;
There is a juju [https://juju.ubuntu.com/Charms charm] available for deploying mediagoblin into EC2 or on your local box.  [https://juju.ubuntu.com/ juju] is available in Ubuntu 11.10 and later, though it is recommended that you pull it from [https://launchpad.net/~juju/+archive/pkgs| the juju PPA], which includes backported packages going back to Ubuntu 11.10. To use the juju charm, install juju and configure either the [https://juju.ubuntu.com/docs/provider-configuration-local.html local provider] or one of the cloud API providers, currently the [https://juju.ubuntu.com/docs/provider-configuration-ec2.html EC2 provider] is the best supported and works not only with Amazon Web Services but also OpenStack clouds. There is also a newer native OpenStack API provider which is known to support HP Cloud.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# if you have not bootstrapped&lt;br /&gt;
juju bootstrap&lt;br /&gt;
mkdir ~/charms&lt;br /&gt;
bzr init-repo ~/charms/precise&lt;br /&gt;
bzr branch lp:~clint-fewbar/charms/precise/mediagoblin/trunk ~/charms/precise/mediagoblin&lt;br /&gt;
juju deploy --repository ~/charms local:mediagoblin&lt;br /&gt;
juju expose mediagoblin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently the charm is volatile, deploying from trunk, and deploys a single-server version of MediaGoblin only. It will eventually relate to the existing juju charms for other supported data stores to allow one to scale out their MediaGoblin instance.&lt;br /&gt;
&lt;br /&gt;
= Init scripts =&lt;br /&gt;
&lt;br /&gt;
== Debian init scripts ==&lt;br /&gt;
&lt;br /&gt;
Joar has some scripts for running celery and mediagoblin separately that are designed for Debian.&lt;br /&gt;
&lt;br /&gt;
https://github.com/joar/mediagoblin-init-scripts&lt;br /&gt;
&lt;br /&gt;
== Arch Linux init scripts ==&lt;br /&gt;
&lt;br /&gt;
[http://whird.jpope.org/2012/04/14/mediagoblin-archlinux-rcd-scripts Jeremy Pope has written a nice blogpost] on how to add init scripts to deploy MediaGoblin with both the python paste http server and the celery deployments separated.&lt;br /&gt;
&lt;br /&gt;
If you want a simpler setup and don&#039;t want to deploy celery separately, consider either turning CELERY_ALWAYS_EAGER to true in the paste init script described above, or check out [http://chimo.chromic.org/2012/03/01/mediagoblin-init-script-on-archlinux/ Chimo&#039;s guide].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Generic, simple init script ==&lt;br /&gt;
&lt;br /&gt;
This is a super stupidly simple init script that was used for mediagoblin.com... note that this has Celery running in always eager mode.&lt;br /&gt;
&lt;br /&gt;
You will need to adjust the paths appropriately.  This could probably be better written!&lt;br /&gt;
&lt;br /&gt;
  #! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
  ## Stupidly simple mediagoblin init script.&lt;br /&gt;
  # &lt;br /&gt;
  # Written in 2012 by Christopher Allan Webber&lt;br /&gt;
  #&lt;br /&gt;
  # To the extent possible under law, the author(s) have dedicated all&lt;br /&gt;
  # copyright and related and neighboring rights to this software to the&lt;br /&gt;
  # public domain worldwide. This software is distributed without any&lt;br /&gt;
  # warranty.&lt;br /&gt;
  # &lt;br /&gt;
  # You should have received a copy of the CC0 Public Domain Dedication along&lt;br /&gt;
  # with this software. If not, see&lt;br /&gt;
  # &amp;lt;http://creativecommons.org/publicdomain/zero/1.0/&amp;gt;.&lt;br /&gt;
  &lt;br /&gt;
  PASTER=/srv/mediagoblin.com/bin/paster&lt;br /&gt;
  PASTE_CONFIG=/srv/mediagoblin.com/paste.ini&lt;br /&gt;
  OPTIONS=&amp;quot;--pid-file=/tmp/mediagoblin.pid \&lt;br /&gt;
   --log-file=/srv/mediagoblin.com/paster.log \&lt;br /&gt;
   --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  CELERY_ALWAYS_EAGER=true su -pc &amp;quot;$PASTER serve $PASTE_CONFIG $1 $OPTIONS&amp;quot; webadmin&lt;br /&gt;
&lt;br /&gt;
= Running on Dreamhost.com =&lt;br /&gt;
&lt;br /&gt;
===Set up your python virtualenv===&lt;br /&gt;
&lt;br /&gt;
dreamhost.com servers come with python 2.4 and 2.5 installed which is too old for mediagoblin. This means you need to compile and install a newer python (don&#039;t worry this is really not difficult on dreamhost servers). In order to be able to install python packages for a local user without touching system files, we need to setup a python &#039;&#039;virtualenv&#039;&#039;. Fortunately, this is not too tricky either. If your server has python 2.6 or 2.7 installed already, you can skip the [[#Install a local python|python installation stuff]] and you&#039;ll only need to [[#Setup virtualenv to install local python packages|install virtualenv]].&lt;br /&gt;
&lt;br /&gt;
====Install a local python====&lt;br /&gt;
# Download the latest python: http://python.org/ftp/python/XXX/Python-XXX.tar.bz2&lt;br /&gt;
# Unpack with &amp;lt;pre&amp;gt;tar xvjf Python-XXX.tar.bz2&amp;lt;/pre&amp;gt;&lt;br /&gt;
# &#039;&#039;cd&#039;&#039; into the directory and compile and install python locally:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;./configure --prefix=$HOME/local&lt;br /&gt;
make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:This will install python (I used 2.7.3) into /home/&amp;lt;USERNAME&amp;gt;/local/bin/python. You might get warnings about some modules not being able to compile. :It was tcl/tk and bzip2 mainly, but things still worked out overall.&lt;br /&gt;
:&lt;br /&gt;
:You should now be able to invoke &amp;lt;tt&amp;gt;~/local/bin/python&amp;lt;/tt&amp;gt; and fall into a shell of your new python (exit with ctrl-d). Congrats, you have now a new python 2.7 that you can use. However, you will need to be able to install additional packages as a user and this is what virtualenv allows.&lt;br /&gt;
&lt;br /&gt;
====Setup virtualenv to install local python packages====&lt;br /&gt;
# Download the latest virtualenv: http://pypi.python.org/packages/source/v/virtualenv/XXX&lt;br /&gt;
# Install the virtualenv: &amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;~/local/bin/python ~/virtualenv-1.8/virtualenv.py  $HOME/local/virtenv&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:: You will now have: ~/local/virtenv/bin/python&lt;br /&gt;
# In  ~/.bash_profile add: &amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;PATH=~/local/virtenv/bin:~/local/bin:${PATH}&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:: so that your local python will be preferred.&lt;br /&gt;
:: Log out, log in again and test python&amp;quot; to see which version will be invoked. It should be the new python. Check &amp;quot;which easy_install&amp;quot; to see if the one in local/virtenv would be executed.&lt;br /&gt;
::  &lt;br /&gt;
:: You have now 1) a local &#039;&#039;python&#039;&#039; installation that you can use, and 2) &#039;&#039;easy_install&#039;&#039; will also work with your local user installation. From now on you can e.g. locally install the nose testing framework (&#039;&#039;easy_install nose&#039;&#039;) and use it (&#039;&#039;python -c &amp;quot;import nose&amp;quot;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
===Install mediagoblin as a site package===&lt;br /&gt;
&lt;br /&gt;
# Check out mediagoblin from git to e.g. ~/mediagoblin&lt;br /&gt;
# Install MediaGoblin and all dependencies for MediaGoblin with easy_install.&lt;br /&gt;
:* In the mediagoblin directory issue:&lt;br /&gt;
:&amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;python setup.py&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:* You will also need to: easy_install lxml&lt;br /&gt;
:* Python-image was trickier to install: &amp;lt;pre&amp;gt;easy_install --find-links http://www.pythonware.com/products/pil/ Imaging&amp;lt;/pre&amp;gt;&lt;br /&gt;
::Test by leaving the mediagoblin directory and see if you can import it: &amp;lt;pre&amp;gt;python -c &amp;quot;import mediagoblin&amp;quot;&amp;lt;/pre&amp;gt; looking for error messages.&lt;br /&gt;
&lt;br /&gt;
===Set up an WSGI environment on Dreamhost===&lt;br /&gt;
&lt;br /&gt;
# Enable the mod_passenger setting for ruby/python in the domains web panel&lt;br /&gt;
# &#039;&#039;cd&#039;&#039; into the domain directory (e.g. ~/media.sspaeth.de for me)&lt;br /&gt;
# Copy mediagoblin.ini and paste.ini from the ~/mediagoblin directory here&lt;br /&gt;
# Create passenger_wsgi.py in your domain directory (e.g. ~/media.sspaeth.de for me):&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;import sys, os&lt;br /&gt;
INTERP = &amp;quot;/home/&amp;lt;username&amp;gt;/local/virtenv/bin/python&amp;quot;&lt;br /&gt;
#INTERP is present twice so that the new python interpreter knows the actual executable path&lt;br /&gt;
if sys.executable != INTERP: os.execl(INTERP, INTERP, *sys.argv)&lt;br /&gt;
&lt;br /&gt;
from paste.deploy import loadapp&lt;br /&gt;
application = loadapp(&#039;config:/home/mediagoblin/media.sspaeth.de/paste.ini&#039;)&lt;br /&gt;
&lt;br /&gt;
#If in case of errors, all you get are mysterious error 500, you can set debug=true in paste.ini to see stack traces&lt;br /&gt;
# Otherwise, add this:&lt;br /&gt;
#from paste.exceptions.errormiddleware import ErrorMiddleware&lt;br /&gt;
#application = ErrorMiddleware(application, debug=True)&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# Set up the database by issueing: &amp;lt;pre&amp;gt;gmg dbupdate&amp;lt;/pre&amp;gt;&lt;br /&gt;
# (optional but recommended) Serve the static files directly from the webserver.&lt;br /&gt;
:In paste.ini in this section: [composite:routing] comment out the static files:&lt;br /&gt;
   #/mgoblin_static/ = mediagoblin_static&lt;br /&gt;
   #/theme_static/ = theme_static&lt;br /&gt;
:and symlink the mediagobin/mediagoblin/static directoy to public/mgoblin_static&lt;br /&gt;
:           and mediagoblin/mediagoblin/themes to public/theme_static&lt;br /&gt;
:&lt;br /&gt;
:so it is displayed directly. This step might be different depending on your web server configuration. There is no reason that static&lt;br /&gt;
:files need to go through all the python indirection when they can be served directly by nginx/apache/...&lt;br /&gt;
:&lt;br /&gt;
:In case you want to delete your git checkout after the installation (you don&#039;t need it, since you installed the mediagoblin package to ~/local/virtenv/lib/python2.7/mediagoblin... you should do the symlinking from there.&lt;br /&gt;
===Open Issues===&lt;br /&gt;
Please fill in the blanks if you find them out:&lt;br /&gt;
* How to enable logging to a file or standard html logs? Console output just disappears.&lt;br /&gt;
* How to set up things not using sqlite. What&#039;s wrong with mySQL?&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
* First of all: invoke &amp;lt;pre&amp;gt;python passenger_wsgi.py&amp;lt;/pre&amp;gt; directly from the shell. This will tell you if there are import errors etc. If this command exits without any output on the console, you have already achieved a lot.&lt;br /&gt;
* In &#039;&#039;paste.ini&#039;&#039; set debug=true. This will show you python backtraces directly in the web page&lt;br /&gt;
* You will need to configure an smtp user/passwd/server in mediagoblin.ini, so you actually get the account creation token mailed out. Hint, the relevant settings are: &amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;email_debug_mode = false&lt;br /&gt;
email_sender_address = postmaster@sspaeth.de&lt;br /&gt;
email_smtp_host = SMTP.DOMAIN.TLD&lt;br /&gt;
email_smtp_user = USERNAME&lt;br /&gt;
email_smtp_pass = WEIRDPASSWORD&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
* In case you can upload media, but it does not appear. You don&#039;t have the celery server running. Add &amp;lt;pre&amp;gt;CELERY_ALWAYS_EAGER = true&amp;lt;/pre&amp;gt; to the &#039;&#039;[celery]&#039;&#039; section in mediagoblin.ini&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Deployment&amp;diff=1023</id>
		<title>Deployment</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Deployment&amp;diff=1023"/>
		<updated>2012-12-11T17:06:00Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Init scripts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page could use a lot of work.  For now, a few smaller deployment tips!&lt;br /&gt;
&lt;br /&gt;
See also: http://docs.mediagoblin.org/deploying.html (some of which may belong here)&lt;br /&gt;
&lt;br /&gt;
= FCGI script =&lt;br /&gt;
&lt;br /&gt;
This works great with the apache config example below :)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/path/to/mediagoblin/bin/python&lt;br /&gt;
&lt;br /&gt;
# Written in 2011 by Christopher Allan Webber&lt;br /&gt;
#&lt;br /&gt;
# To the extent possible under law, the author(s) have dedicated all&lt;br /&gt;
# copyright and related and neighboring rights to this software to the&lt;br /&gt;
# public domain worldwide. This software is distributed without any&lt;br /&gt;
# warranty.&lt;br /&gt;
# &lt;br /&gt;
# You should have received a copy of the CC0 Public Domain Dedication along&lt;br /&gt;
# with this software. If not, see&lt;br /&gt;
# &amp;lt;http://creativecommons.org/publicdomain/zero/1.0/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
from paste.deploy import loadapp&lt;br /&gt;
from flup.server.fcgi import WSGIServer&lt;br /&gt;
&lt;br /&gt;
CONFIG_PATH = &#039;/path/to/mediagoblin/paste.ini&#039;&lt;br /&gt;
&lt;br /&gt;
## Uncomment this to run celery in &amp;quot;always eager&amp;quot; mode... ie, you don&#039;t have&lt;br /&gt;
## to run a separate process, but submissions wait till processing finishes&lt;br /&gt;
# import os&lt;br /&gt;
# os.environ[&#039;CELERY_ALWAYS_EAGER&#039;] = &#039;true&#039;&lt;br /&gt;
&lt;br /&gt;
def launch_fcgi():&lt;br /&gt;
    ccengine_wsgi_app = loadapp(&#039;config:&#039; + CONFIG_PATH)&lt;br /&gt;
    WSGIServer(ccengine_wsgi_app).run()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &#039;__main__&#039;:&lt;br /&gt;
    launch_fcgi()&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Apache 2 Config with fcgid =&lt;br /&gt;
&lt;br /&gt;
Note that the libapache2-mod-fcgi in Debian is in the nonfree section, and MediaGoblin users will want to avoid that. Instead, libapache2-mod-fcgid can be used, but requires a slightly different configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName media.example.com&lt;br /&gt;
ServerAlias www.media.example.com&lt;br /&gt;
&lt;br /&gt;
DocumentRoot /path/to/mediagoblin&lt;br /&gt;
&lt;br /&gt;
Alias /mgoblin_static/ /path/to/mediagoblin/mediagoblin/static/&lt;br /&gt;
Alias /mgoblin_media/ /path/to/mediagoblin/user_dev/media/public/&lt;br /&gt;
&lt;br /&gt;
# Rewrite all URLs to fcgi, except for static and media urls&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteRule ^(mgoblin_static|mgoblin_media)($|/) - [L]&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteRule ^/(.*)$ /mg.fcgi/$1 [QSA,L]&lt;br /&gt;
&lt;br /&gt;
# Allow access to static and media directories&lt;br /&gt;
&amp;lt;Directory /mgoblin_static&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Allow from all&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Directory /mgoblin_media&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Allow from all&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Directory /path/to/mediagoblin/&amp;gt;&lt;br /&gt;
        SetHandler fcgid-script&lt;br /&gt;
        Options +ExecCGI&lt;br /&gt;
        FcgidWrapper /path/to/mediagoblin/mg.fcgi&lt;br /&gt;
        order allow,deny&lt;br /&gt;
        allow from all&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Apache Config Example =&lt;br /&gt;
This configuration example uses mod_fastcgi.&lt;br /&gt;
&lt;br /&gt;
To install and enable mod_fastcgi on a Debian/Ubuntu based system:&lt;br /&gt;
&amp;lt;pre&amp;gt;# apt-get install libapache2-mod-suexec libapache2-mod-fastcgi&lt;br /&gt;
# a2enmod suexec&lt;br /&gt;
# a2enmod fastcgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sample configuration:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
ServerName mediagoblin.yourdomain.tld&lt;br /&gt;
ServerAdmin webmaster@yourdoimain.tld&lt;br /&gt;
DocumentRoot /var/www/&lt;br /&gt;
# Custom log files&lt;br /&gt;
CustomLog /var/log/apache2/mediagobling_access.log combined&lt;br /&gt;
ErrorLog /var/log/apache2/mediagoblin_error.log&lt;br /&gt;
&lt;br /&gt;
# Serve static and media files via alias&lt;br /&gt;
Alias /mgoblin_static/ /path/to/mediagoblin/mediagoblin/static/&lt;br /&gt;
Alias /mgoblin_media/ /path/to/mediagoblin/user_dev/media/public/&lt;br /&gt;
&lt;br /&gt;
# Rewrite all URLs to fcgi, except for static and media urls&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
RewriteRule ^(mgoblin_static|mgoblin_media)($|/) - [L]&lt;br /&gt;
RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
RewriteRule ^/(.*)$ /mg.fcgi/$1 [QSA,L]&lt;br /&gt;
&lt;br /&gt;
# Allow access to static and media directories&lt;br /&gt;
&amp;lt;Directory /path/to/mediagoblin/mediagoblin/static&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Allow from all&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;Directory /path/to/mediagoblin/mediagoblin/user_dev/media/public&amp;gt;&lt;br /&gt;
  Order allow,deny&lt;br /&gt;
  Allow from all&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Connect to fcgi server&lt;br /&gt;
FastCGIExternalServer /var/www/mg.fcgi -host 127.0.0.1:26543&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then, you need to make sure mediagoblin is running in fcgi mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /path/to/mediagoblin&lt;br /&gt;
./lazyserver.sh --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: there may be several ways to improve this configuration&lt;br /&gt;
&lt;br /&gt;
= Juju =&lt;br /&gt;
&lt;br /&gt;
There is a juju [https://juju.ubuntu.com/Charms charm] available for deploying mediagoblin into EC2 or on your local box.  [https://juju.ubuntu.com/ juju] is available in Ubuntu 11.10 and later, though it is recommended that you pull it from [https://launchpad.net/~juju/+archive/pkgs| the juju PPA], which includes backported packages going back to Ubuntu 11.10. To use the juju charm, install juju and configure either the [https://juju.ubuntu.com/docs/provider-configuration-local.html local provider] or one of the cloud API providers, currently the [https://juju.ubuntu.com/docs/provider-configuration-ec2.html EC2 provider] is the best supported and works not only with Amazon Web Services but also OpenStack clouds. There is also a newer native OpenStack API provider which is known to support HP Cloud.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# if you have not bootstrapped&lt;br /&gt;
juju bootstrap&lt;br /&gt;
mkdir ~/charms&lt;br /&gt;
bzr init-repo ~/charms/precise&lt;br /&gt;
bzr branch lp:~clint-fewbar/charms/precise/mediagoblin/trunk ~/charms/precise/mediagoblin&lt;br /&gt;
juju deploy --repository ~/charms local:mediagoblin&lt;br /&gt;
juju expose mediagoblin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently the charm is volatile, deploying from trunk, and deploys a single-server version of MediaGoblin only. It will eventually relate to the existing juju charms for other supported data stores to allow one to scale out their MediaGoblin instance.&lt;br /&gt;
&lt;br /&gt;
= Init scripts =&lt;br /&gt;
&lt;br /&gt;
== Joar&#039;s gobblin.se scripts ==&lt;br /&gt;
&lt;br /&gt;
Joar has some scripts for running celery and mediagoblin separately that are designed for Debian.&lt;br /&gt;
&lt;br /&gt;
https://github.com/joar/mediagoblin-init-scripts&lt;br /&gt;
&lt;br /&gt;
== Arch Linux init scripts ==&lt;br /&gt;
&lt;br /&gt;
[http://whird.jpope.org/2012/04/14/mediagoblin-archlinux-rcd-scripts Jeremy Pope has written a nice blogpost] on how to add init scripts to deploy MediaGoblin with both the python paste http server and the celery deployments separated.&lt;br /&gt;
&lt;br /&gt;
If you want a simpler setup and don&#039;t want to deploy celery separately, consider either turning CELERY_ALWAYS_EAGER to true in the paste init script described above, or check out [http://chimo.chromic.org/2012/03/01/mediagoblin-init-script-on-archlinux/ Chimo&#039;s guide].&lt;br /&gt;
&lt;br /&gt;
== Debian init scripts ==&lt;br /&gt;
&lt;br /&gt;
Joar has written some that are posted on [https://github.com/joar/mediagoblin-init-scripts]&lt;br /&gt;
&lt;br /&gt;
== Generic, simple init script ==&lt;br /&gt;
&lt;br /&gt;
This is a super stupidly simple init script that was used for mediagoblin.com... note that this has Celery running in always eager mode.&lt;br /&gt;
&lt;br /&gt;
You will need to adjust the paths appropriately.  This could probably be better written!&lt;br /&gt;
&lt;br /&gt;
  #! /bin/sh&lt;br /&gt;
  &lt;br /&gt;
  ## Stupidly simple mediagoblin init script.&lt;br /&gt;
  # &lt;br /&gt;
  # Written in 2012 by Christopher Allan Webber&lt;br /&gt;
  #&lt;br /&gt;
  # To the extent possible under law, the author(s) have dedicated all&lt;br /&gt;
  # copyright and related and neighboring rights to this software to the&lt;br /&gt;
  # public domain worldwide. This software is distributed without any&lt;br /&gt;
  # warranty.&lt;br /&gt;
  # &lt;br /&gt;
  # You should have received a copy of the CC0 Public Domain Dedication along&lt;br /&gt;
  # with this software. If not, see&lt;br /&gt;
  # &amp;lt;http://creativecommons.org/publicdomain/zero/1.0/&amp;gt;.&lt;br /&gt;
  &lt;br /&gt;
  PASTER=/srv/mediagoblin.com/bin/paster&lt;br /&gt;
  PASTE_CONFIG=/srv/mediagoblin.com/paste.ini&lt;br /&gt;
  OPTIONS=&amp;quot;--pid-file=/tmp/mediagoblin.pid \&lt;br /&gt;
   --log-file=/srv/mediagoblin.com/paster.log \&lt;br /&gt;
   --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  CELERY_ALWAYS_EAGER=true su -pc &amp;quot;$PASTER serve $PASTE_CONFIG $1 $OPTIONS&amp;quot; webadmin&lt;br /&gt;
&lt;br /&gt;
= Running on Dreamhost.com =&lt;br /&gt;
&lt;br /&gt;
===Set up your python virtualenv===&lt;br /&gt;
&lt;br /&gt;
dreamhost.com servers come with python 2.4 and 2.5 installed which is too old for mediagoblin. This means you need to compile and install a newer python (don&#039;t worry this is really not difficult on dreamhost servers). In order to be able to install python packages for a local user without touching system files, we need to setup a python &#039;&#039;virtualenv&#039;&#039;. Fortunately, this is not too tricky either. If your server has python 2.6 or 2.7 installed already, you can skip the [[#Install a local python|python installation stuff]] and you&#039;ll only need to [[#Setup virtualenv to install local python packages|install virtualenv]].&lt;br /&gt;
&lt;br /&gt;
====Install a local python====&lt;br /&gt;
# Download the latest python: http://python.org/ftp/python/XXX/Python-XXX.tar.bz2&lt;br /&gt;
# Unpack with &amp;lt;pre&amp;gt;tar xvjf Python-XXX.tar.bz2&amp;lt;/pre&amp;gt;&lt;br /&gt;
# &#039;&#039;cd&#039;&#039; into the directory and compile and install python locally:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;./configure --prefix=$HOME/local&lt;br /&gt;
make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:This will install python (I used 2.7.3) into /home/&amp;lt;USERNAME&amp;gt;/local/bin/python. You might get warnings about some modules not being able to compile. :It was tcl/tk and bzip2 mainly, but things still worked out overall.&lt;br /&gt;
:&lt;br /&gt;
:You should now be able to invoke &amp;lt;tt&amp;gt;~/local/bin/python&amp;lt;/tt&amp;gt; and fall into a shell of your new python (exit with ctrl-d). Congrats, you have now a new python 2.7 that you can use. However, you will need to be able to install additional packages as a user and this is what virtualenv allows.&lt;br /&gt;
&lt;br /&gt;
====Setup virtualenv to install local python packages====&lt;br /&gt;
# Download the latest virtualenv: http://pypi.python.org/packages/source/v/virtualenv/XXX&lt;br /&gt;
# Install the virtualenv: &amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;~/local/bin/python ~/virtualenv-1.8/virtualenv.py  $HOME/local/virtenv&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:: You will now have: ~/local/virtenv/bin/python&lt;br /&gt;
# In  ~/.bash_profile add: &amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;PATH=~/local/virtenv/bin:~/local/bin:${PATH}&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:: so that your local python will be preferred.&lt;br /&gt;
:: Log out, log in again and test python&amp;quot; to see which version will be invoked. It should be the new python. Check &amp;quot;which easy_install&amp;quot; to see if the one in local/virtenv would be executed.&lt;br /&gt;
::  &lt;br /&gt;
:: You have now 1) a local &#039;&#039;python&#039;&#039; installation that you can use, and 2) &#039;&#039;easy_install&#039;&#039; will also work with your local user installation. From now on you can e.g. locally install the nose testing framework (&#039;&#039;easy_install nose&#039;&#039;) and use it (&#039;&#039;python -c &amp;quot;import nose&amp;quot;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
===Install mediagoblin as a site package===&lt;br /&gt;
&lt;br /&gt;
# Check out mediagoblin from git to e.g. ~/mediagoblin&lt;br /&gt;
# Install MediaGoblin and all dependencies for MediaGoblin with easy_install.&lt;br /&gt;
:* In the mediagoblin directory issue:&lt;br /&gt;
:&amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;python setup.py&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
:* You will also need to: easy_install lxml&lt;br /&gt;
:* Python-image was trickier to install: &amp;lt;pre&amp;gt;easy_install --find-links http://www.pythonware.com/products/pil/ Imaging&amp;lt;/pre&amp;gt;&lt;br /&gt;
::Test by leaving the mediagoblin directory and see if you can import it: &amp;lt;pre&amp;gt;python -c &amp;quot;import mediagoblin&amp;quot;&amp;lt;/pre&amp;gt; looking for error messages.&lt;br /&gt;
&lt;br /&gt;
===Set up an WSGI environment on Dreamhost===&lt;br /&gt;
&lt;br /&gt;
# Enable the mod_passenger setting for ruby/python in the domains web panel&lt;br /&gt;
# &#039;&#039;cd&#039;&#039; into the domain directory (e.g. ~/media.sspaeth.de for me)&lt;br /&gt;
# Copy mediagoblin.ini and paste.ini from the ~/mediagoblin directory here&lt;br /&gt;
# Create passenger_wsgi.py in your domain directory (e.g. ~/media.sspaeth.de for me):&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;import sys, os&lt;br /&gt;
INTERP = &amp;quot;/home/&amp;lt;username&amp;gt;/local/virtenv/bin/python&amp;quot;&lt;br /&gt;
#INTERP is present twice so that the new python interpreter knows the actual executable path&lt;br /&gt;
if sys.executable != INTERP: os.execl(INTERP, INTERP, *sys.argv)&lt;br /&gt;
&lt;br /&gt;
from paste.deploy import loadapp&lt;br /&gt;
application = loadapp(&#039;config:/home/mediagoblin/media.sspaeth.de/paste.ini&#039;)&lt;br /&gt;
&lt;br /&gt;
#If in case of errors, all you get are mysterious error 500, you can set debug=true in paste.ini to see stack traces&lt;br /&gt;
# Otherwise, add this:&lt;br /&gt;
#from paste.exceptions.errormiddleware import ErrorMiddleware&lt;br /&gt;
#application = ErrorMiddleware(application, debug=True)&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# Set up the database by issueing: &amp;lt;pre&amp;gt;gmg dbupdate&amp;lt;/pre&amp;gt;&lt;br /&gt;
# (optional but recommended) Serve the static files directly from the webserver.&lt;br /&gt;
:In paste.ini in this section: [composite:routing] comment out the static files:&lt;br /&gt;
   #/mgoblin_static/ = mediagoblin_static&lt;br /&gt;
   #/theme_static/ = theme_static&lt;br /&gt;
:and symlink the mediagobin/mediagoblin/static directoy to public/mgoblin_static&lt;br /&gt;
:           and mediagoblin/mediagoblin/themes to public/theme_static&lt;br /&gt;
:&lt;br /&gt;
:so it is displayed directly. This step might be different depending on your web server configuration. There is no reason that static&lt;br /&gt;
:files need to go through all the python indirection when they can be served directly by nginx/apache/...&lt;br /&gt;
:&lt;br /&gt;
:In case you want to delete your git checkout after the installation (you don&#039;t need it, since you installed the mediagoblin package to ~/local/virtenv/lib/python2.7/mediagoblin... you should do the symlinking from there.&lt;br /&gt;
===Open Issues===&lt;br /&gt;
Please fill in the blanks if you find them out:&lt;br /&gt;
* How to enable logging to a file or standard html logs? Console output just disappears.&lt;br /&gt;
* How to set up things not using sqlite. What&#039;s wrong with mySQL?&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
* First of all: invoke &amp;lt;pre&amp;gt;python passenger_wsgi.py&amp;lt;/pre&amp;gt; directly from the shell. This will tell you if there are import errors etc. If this command exits without any output on the console, you have already achieved a lot.&lt;br /&gt;
* In &#039;&#039;paste.ini&#039;&#039; set debug=true. This will show you python backtraces directly in the web page&lt;br /&gt;
* You will need to configure an smtp user/passwd/server in mediagoblin.ini, so you actually get the account creation token mailed out. Hint, the relevant settings are: &amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;email_debug_mode = false&lt;br /&gt;
email_sender_address = postmaster@sspaeth.de&lt;br /&gt;
email_smtp_host = SMTP.DOMAIN.TLD&lt;br /&gt;
email_smtp_user = USERNAME&lt;br /&gt;
email_smtp_pass = WEIRDPASSWORD&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
* In case you can upload media, but it does not appear. You don&#039;t have the celery server running. Add &amp;lt;pre&amp;gt;CELERY_ALWAYS_EAGER = true&amp;lt;/pre&amp;gt; to the &#039;&#039;[celery]&#039;&#039; section in mediagoblin.ini&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Personas&amp;diff=989</id>
		<title>Personas</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Personas&amp;diff=989"/>
		<updated>2012-11-19T11:16:00Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Bio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Personas&#039;&#039;&#039; in MediaGoblin development (not to be confused with [https://persona.org/ Mozilla Persona], formerly known as BrowserID) are a way to identify a specific target group of users via anthropomorphic goblins. This allows for a quick identification of a particular MediaGoblin user, e.g. in user stories.&lt;br /&gt;
&lt;br /&gt;
Personas should never be regarded as &#039;&#039;the&#039;&#039; only way to identify users and MediaGoblin developers should take care when using them since they might drive new developers off (instead of encouraging them to contribute). However these personas do make development more fun which in turn can encourage more people to participate. Ideally when using these personas in an environment accessible to &#039;&#039;would-be-developers&#039;&#039;, they should always be accompanied by their titles (user group) for clarification, i.e. &#039;&#039;Gavroche the artist uploads a new SVG image&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Gavroche =&lt;br /&gt;
&lt;br /&gt;
== Title (user group) ==&lt;br /&gt;
&lt;br /&gt;
Artist&lt;br /&gt;
&lt;br /&gt;
== Bio ==&lt;br /&gt;
&lt;br /&gt;
Gavroche is an independent artist living in a suburb of Paris, France. Gavroche creates audible, text, visual and moving pictures often under the CC-BY-SA license.&lt;br /&gt;
&lt;br /&gt;
Gavroche is currently a GNOME3 user. Gavroche uses desktop applications such as&lt;br /&gt;
&lt;br /&gt;
* Blender, for animations and VFX&lt;br /&gt;
* Shotwell/digiKam, for digital photo development&lt;br /&gt;
* GIMP, for photo editing&lt;br /&gt;
* Vim/Emacs/$EDITOR &lt;br /&gt;
&lt;br /&gt;
Gavroche would like to be able to submit stuff directly from any of these applications, but he should not be required to launch any of them to be able to upload anything.&lt;br /&gt;
&lt;br /&gt;
= Shaquannah =&lt;br /&gt;
&lt;br /&gt;
== Title (user group) ==&lt;br /&gt;
&lt;br /&gt;
System administrator / sysadmin&lt;br /&gt;
&lt;br /&gt;
== Bio ==&lt;br /&gt;
&lt;br /&gt;
Shaquannah lives in a castle upon a hill, surrounded by farms and fields where lowly, plebeian goblins live. Contrary to the stereotypical castle-dweller she does not rule over her poor, neighbouring goblins. She tries to help and support them by the only charitable way imaginable. She runs a MediaGoblin instance for them. Thanks to Shaquannah the famished goblins, who live off the lands surrounding her castle, can take pictures and videos on their spiffy, expensive smartphones and upload them to a MediaGoblin instance where they serve as a documentation, a proof, of the tyranny of the other castle-dwelling neighbour (a weird little goblin who goes by the nickname &#039;&#039;The government&#039;&#039; - probably because he&#039;s the big brother of some lucky goblin).&lt;br /&gt;
&lt;br /&gt;
Shaquannah runs her MediaGoblin instance on a Debian based system. Shaquannah is able to write some code but she absolutely loves fiddling around with configurations and enabling this or that in the system (she goes all giddy when a small change from &amp;quot;false&amp;quot; to &amp;quot;true&amp;quot; allows for some breathtaking features that get her penniless neighbours to worship her all over again).&lt;br /&gt;
&lt;br /&gt;
In her spare time, Shaquannah enjoys kicking people out of her castle... they&#039;re interfering with her highly artistic sysadmin work!&lt;br /&gt;
&lt;br /&gt;
= Spencer =&lt;br /&gt;
&lt;br /&gt;
== Title (user group) ==&lt;br /&gt;
&lt;br /&gt;
Visitor / website viewer / guest&lt;br /&gt;
&lt;br /&gt;
== Bio ==&lt;br /&gt;
&lt;br /&gt;
Spencer lives in cyberspace. Does he have a home in meatspace? Nobody knows. His goal in life is to become a living, breathing goblin Google (his IRC handle is &#039;&#039;Goobln&#039;&#039;). To achieve this goal Spencer spends his entire day visiting all the websites he can find and memorizes its contents. He even visits the websites in different browsers just to be sure that the website developers don&#039;t serve up different content based on the user&#039;s browser.&lt;br /&gt;
&lt;br /&gt;
Spencer&#039;s favorite browsers are &#039;&#039;&#039;Mozilla Firefox&#039;&#039;&#039; and &#039;&#039;&#039;Google Chromium (Chrome)&#039;&#039;&#039; because they make cyberspace a better home for him, but he also secretly enjoys checking how websites handle &#039;&#039;restricted&#039;&#039; browsers, e.g. how the website is presented in a standards in-compliant browser such as Internet Explorer, how the website is presented in a text based browser such as Lynx, and how responsive the website is by visiting it via the smallest smartphone he can get his hands on (because everybody knows smartphones and hands exist in cyberspace).&lt;br /&gt;
&lt;br /&gt;
Websites that support all browsers score extra in Spencer&#039;s mental search engine ranking system.&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=User:Joar/Proposed_usecase&amp;diff=970</id>
		<title>User:Joar/Proposed usecase</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=User:Joar/Proposed_usecase&amp;diff=970"/>
		<updated>2012-11-04T20:23:58Z</updated>

		<summary type="html">&lt;p&gt;Joar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the proposed default usecase for newly deployed GNU MediaGoblin applications.&lt;br /&gt;
&lt;br /&gt;
I learned that this kind of writing is called a &amp;quot;persona&amp;quot;, some might find it creepy. Personas help me to look beyond my own needs, to design the system for someone else rather than myself.&lt;br /&gt;
&lt;br /&gt;
= Gavroche =&lt;br /&gt;
&lt;br /&gt;
Gavroche is an independent artist living in a suburb of Paris, France. Gavroche creates audible, text, visual and moving pictures often under the CC-BY-SA license.&lt;br /&gt;
&lt;br /&gt;
Gavroche is &#039;&#039;currently&#039;&#039; a GNOME3 user. Gavroche uses desktop applications such as &lt;br /&gt;
&lt;br /&gt;
* Blender, for animations and VFX&lt;br /&gt;
* Shotwell/digiKam, for digital photo development&lt;br /&gt;
* GIMP, for photo editing&lt;br /&gt;
* Vim/Emacs/$FOO&lt;br /&gt;
&lt;br /&gt;
Gavroche would like to be able to submit stuff directly from any of these applications, but he should not be required to launch any of them to be able to upload anything.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Desktop application integration is certainly possible sine the API. The main limitation would be the desktop application itself.&amp;lt;/p&amp;gt;&lt;br /&gt;
--[[User:Joar|Joar]] ([[User talk:Joar|talk]]) 07:24, 3 November 2012 (EDT)&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Submitting via the web ==&lt;br /&gt;
&lt;br /&gt;
Gavroche uses Firefox or Chromium/Chrome, he might use IE10, but that&#039;s a rare occasion. He avoids IE &amp;lt;= 9 because he has a feeling that they might not be usable everywhere on the web.&lt;br /&gt;
&lt;br /&gt;
Gavroche might have several files, or even a folder of files that he wants to upload. The files might be videos, images, audio, ascii, source files such as .xcf, .blend, etc.&lt;br /&gt;
&lt;br /&gt;
Gavroche drags and drops the files from nautilus to his browser window where the MediaGoblin instance is running.&lt;br /&gt;
&lt;br /&gt;
First he drops the files &#039;&#039;flight.ogv&#039;&#039;, &#039;&#039;superman-wallpaper.png&#039;&#039; and &#039;&#039;swoosh.ogg&#039;&#039; in the browser window, this causes three boxes to be shown to him, each box representing one of the files.&lt;br /&gt;
&lt;br /&gt;
Gavroche then navigates to his project folder for the &#039;&#039;superman-wallpaper.png&#039;&#039; file then selects &#039;&#039;superman-wallpaper.blend&#039;&#039;, &#039;&#039;README.txt&#039;&#039; and &#039;&#039;superman-glasses-texture.png&#039;&#039; then drops them onto the box representing &#039;&#039;superman-wallpaper.png&#039;&#039; in the browser window, this causes three smaller boxes representing each additional file to be shown.&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=User:Joar/Proposed_usecase&amp;diff=969</id>
		<title>User:Joar/Proposed usecase</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=User:Joar/Proposed_usecase&amp;diff=969"/>
		<updated>2012-11-03T22:03:51Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Submitting via the web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the proposed default usecase for newly deployed GNU MediaGoblin applications.&lt;br /&gt;
&lt;br /&gt;
= Gavroche =&lt;br /&gt;
&lt;br /&gt;
Gavroche is an independent artist living in a suburb of Paris, France. Gavroche creates audible, text, visual and moving pictures often under the CC-BY-SA license.&lt;br /&gt;
&lt;br /&gt;
Gavroche is &#039;&#039;currently&#039;&#039; a GNOME3 user. Gavroche uses desktop applications such as &lt;br /&gt;
&lt;br /&gt;
* Blender, for animations and VFX&lt;br /&gt;
* Shotwell/digiKam, for digital photo development&lt;br /&gt;
* GIMP, for photo editing&lt;br /&gt;
* Vim/Emacs/$FOO&lt;br /&gt;
&lt;br /&gt;
Gavroche would like to be able to submit stuff directly from any of these applications, but he should not be required to launch any of them to be able to upload anything.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Desktop application integration is certainly possible sine the API. The main limitation would be the desktop application itself.&amp;lt;/p&amp;gt;&lt;br /&gt;
--[[User:Joar|Joar]] ([[User talk:Joar|talk]]) 07:24, 3 November 2012 (EDT)&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Submitting via the web ==&lt;br /&gt;
&lt;br /&gt;
Gavroche uses Firefox or Chromium/Chrome, he might use IE10, but that&#039;s a rare occasion. He avoids IE &amp;lt;= 9 because he has a feeling that they might not be usable everywhere on the web.&lt;br /&gt;
&lt;br /&gt;
Gavroche might have several files, or even a folder of files that he wants to upload. The files might be videos, images, audio, ascii, source files such as .xcf, .blend, etc.&lt;br /&gt;
&lt;br /&gt;
Gavroche drags and drops the files from nautilus to his browser window where the MediaGoblin instance is running.&lt;br /&gt;
&lt;br /&gt;
First he drops the files &#039;&#039;flight.ogv&#039;&#039;, &#039;&#039;superman-wallpaper.png&#039;&#039; and &#039;&#039;swoosh.ogg&#039;&#039; in the browser window, this causes three boxes to be shown to him, each box representing one of the files.&lt;br /&gt;
&lt;br /&gt;
Gavroche then navigates to his project folder for the &#039;&#039;superman-wallpaper.png&#039;&#039; file then selects &#039;&#039;superman-wallpaper.blend&#039;&#039;, &#039;&#039;README.txt&#039;&#039; and &#039;&#039;superman-glasses-texture.png&#039;&#039; then drops them onto the box representing &#039;&#039;superman-wallpaper.png&#039;&#039; in the browser window, this causes three smaller boxes representing each additional file to be shown.&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=User:Joar/Proposed_usecase&amp;diff=968</id>
		<title>User:Joar/Proposed usecase</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=User:Joar/Proposed_usecase&amp;diff=968"/>
		<updated>2012-11-03T21:59:51Z</updated>

		<summary type="html">&lt;p&gt;Joar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the proposed default usecase for newly deployed GNU MediaGoblin applications.&lt;br /&gt;
&lt;br /&gt;
= Gavroche =&lt;br /&gt;
&lt;br /&gt;
Gavroche is an independent artist living in a suburb of Paris, France. Gavroche creates audible, text, visual and moving pictures often under the CC-BY-SA license.&lt;br /&gt;
&lt;br /&gt;
Gavroche is &#039;&#039;currently&#039;&#039; a GNOME3 user. Gavroche uses desktop applications such as &lt;br /&gt;
&lt;br /&gt;
* Blender, for animations and VFX&lt;br /&gt;
* Shotwell/digiKam, for digital photo development&lt;br /&gt;
* GIMP, for photo editing&lt;br /&gt;
* Vim/Emacs/$FOO&lt;br /&gt;
&lt;br /&gt;
Gavroche would like to be able to submit stuff directly from any of these applications, but he should not be required to launch any of them to be able to upload anything.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Desktop application integration is certainly possible sine the API. The main limitation would be the desktop application itself.&amp;lt;/p&amp;gt;&lt;br /&gt;
--[[User:Joar|Joar]] ([[User talk:Joar|talk]]) 07:24, 3 November 2012 (EDT)&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Submitting via the web ==&lt;br /&gt;
&lt;br /&gt;
Gavroche uses Firefox or Chromium/Chrome, he might use IE10, but that&#039;s a rare occasion. He avoids IE &amp;lt;= 9 because he has a feeling that they might not be usable everywhere on the web.&lt;br /&gt;
&lt;br /&gt;
Gavroche might have several files, or even a folder of files that he wants to upload. The files might be videos, images, audio, ascii, source files such as .xcf, .blend, etc.&lt;br /&gt;
&lt;br /&gt;
Gavroche drags and drops the files from nautilus to his browser window where the MediaGoblin instance is running.&lt;br /&gt;
&lt;br /&gt;
First he drops the files &#039;&#039;flight.ogv&#039;&#039;, &#039;&#039;superman-wallpaper.png&#039;&#039; and &#039;&#039;swoosh.ogg&#039;&#039; in the browser window, this causes three boxes to be shown to him, each box representing one of the files.&lt;br /&gt;
&lt;br /&gt;
Gavroche then navigates to his project folder for the &#039;&#039;superman-wallpaper.png&#039;&#039; file then selects &#039;&#039;superman-wallpaper.blend&#039;&#039;, &#039;&#039;README.txt&#039;&#039; and &#039;&#039;superman-glasses-texture.png&#039;&#039; then drops them onto the box in the browser window representing &#039;&#039;superman-wallpaper.png&#039;&#039;, this causes three smaller boxes representing each additional file to be shown.&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=User:Joar/Proposed_usecase&amp;diff=967</id>
		<title>User:Joar/Proposed usecase</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=User:Joar/Proposed_usecase&amp;diff=967"/>
		<updated>2012-11-03T11:29:14Z</updated>

		<summary type="html">&lt;p&gt;Joar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the proposed default usecase for newly deployed GNU MediaGoblin applications.&lt;br /&gt;
&lt;br /&gt;
= Gavroche =&lt;br /&gt;
&lt;br /&gt;
Gavroche is an independent artist living in a suburb of Paris, France. Gavroche creates audible, text, visual and moving pictures often under the CC-BY-SA license.&lt;br /&gt;
&lt;br /&gt;
Gavroche is &#039;&#039;currently&#039;&#039; a GNOME3 user. Gavroche uses desktop applications such as &lt;br /&gt;
&lt;br /&gt;
* Blender, for animations and VFX&lt;br /&gt;
* Shotwell/digiKam, for digital photo development&lt;br /&gt;
* GIMP, for photo editing&lt;br /&gt;
* Vim/Emacs/$FOO&lt;br /&gt;
&lt;br /&gt;
Gavroche would like to be able to submit stuff directly from any of these applications, but he should not be required to launch any of them to be able to upload anything.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Desktop application integration is certainly possible sine the API. The main limitation would be the desktop application itself.&amp;lt;/p&amp;gt;&lt;br /&gt;
--[[User:Joar|Joar]] ([[User talk:Joar|talk]]) 07:24, 3 November 2012 (EDT)&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Submitting via the web ==&lt;br /&gt;
&lt;br /&gt;
Gavroche uses Firefox or Chromium/Chrome, he might use IE10, but that&#039;s a rare occasion. He avoids IE &amp;lt;= 9 because he has a feeling that they might not be usable everywhere on the web.&lt;br /&gt;
&lt;br /&gt;
Gavroche might have several files, or even a folder of files that he wants to upload. The files might be videos, images, audio, ascii, source files such as .xcf, .blend, etc.&lt;br /&gt;
&lt;br /&gt;
Gavroche drags and drops the files from nautilus to his browser window where the MediaGoblin instance is running. He starts with the finished works, then he drops the source files from them onto them. He might drop several files at a time, but only on one soon-to-be mediaentry at a time.&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=User:Joar/Proposed_usecase&amp;diff=966</id>
		<title>User:Joar/Proposed usecase</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=User:Joar/Proposed_usecase&amp;diff=966"/>
		<updated>2012-11-03T11:24:54Z</updated>

		<summary type="html">&lt;p&gt;Joar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the proposed default usecase for newly deployed GNU MediaGoblin applications.&lt;br /&gt;
&lt;br /&gt;
== Gavroche ==&lt;br /&gt;
&lt;br /&gt;
Gavroche is an independent artist living in a suburb of Paris, France. Gavroche creates audible, text, visual and moving pictures often under the CC-BY-SA license.&lt;br /&gt;
&lt;br /&gt;
Gavroche is &#039;&#039;currently&#039;&#039; a GNOME3 user. Gavroche uses desktop applications such as &lt;br /&gt;
&lt;br /&gt;
* Blender, for animations and VFX&lt;br /&gt;
* Shotwell/digiKam, for digital photo development&lt;br /&gt;
* GIMP, for photo editing&lt;br /&gt;
* Vim/Emacs/$FOO&lt;br /&gt;
&lt;br /&gt;
Gavroche would like to be able to submit stuff directly from any of these applications, but he should not be required to launch any of them to be able to upload anything.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Desktop application integration is certainly possible sine the API. The main limitation would be the desktop application itself.&amp;lt;/p&amp;gt;&lt;br /&gt;
--[[User:Joar|Joar]] ([[User talk:Joar|talk]]) 07:24, 3 November 2012 (EDT)&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Submitting from a recent browser ===&lt;br /&gt;
&lt;br /&gt;
* Gavroche uses Firefox or Chromium/Chrome, he might use IE10, but that&#039;s a rare occasion. He avoids IE &amp;lt;= 9 because he has a feeling that they might not be usable everywhere on the web.&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=User:Joar/Proposed_usecase&amp;diff=965</id>
		<title>User:Joar/Proposed usecase</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=User:Joar/Proposed_usecase&amp;diff=965"/>
		<updated>2012-11-03T09:50:03Z</updated>

		<summary type="html">&lt;p&gt;Joar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the proposed default usecase for newly deployed GNU MediaGoblin applications.&lt;br /&gt;
&lt;br /&gt;
== Gavroche ==&lt;br /&gt;
&lt;br /&gt;
Gavroche is an independent artist living in a suburb of Paris, France. Gavroche creates audible, text, visual and moving pictures often under the CC-BY-SA license.&lt;br /&gt;
&lt;br /&gt;
Gavroche is &#039;&#039;currently&#039;&#039; a GNOME3 user. Gavroche uses desktop applications such as &lt;br /&gt;
&lt;br /&gt;
* Blender, for animations and VFX&lt;br /&gt;
* Shotwell/digiKam, for digital photo development&lt;br /&gt;
* GIMP, for photo editing&lt;br /&gt;
* Vim/Emacs/$FOO&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=User:Joar/Proposed_usecase&amp;diff=964</id>
		<title>User:Joar/Proposed usecase</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=User:Joar/Proposed_usecase&amp;diff=964"/>
		<updated>2012-11-03T09:49:47Z</updated>

		<summary type="html">&lt;p&gt;Joar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the proposed default usecase for newly deployed GNU MediaGoblin applications.&lt;br /&gt;
&lt;br /&gt;
== Gavroche ==&lt;br /&gt;
&lt;br /&gt;
Gavroche is an independent artist living in a suburb of Paris, France. Gavroche creates audible, text, visual and moving pictures often under the CC-BY-SA license.&lt;br /&gt;
&lt;br /&gt;
Gavroche is &#039;&#039;currently&#039;&#039; a GNOME3 user&lt;br /&gt;
&lt;br /&gt;
Gavroche uses desktop applications such as &lt;br /&gt;
&lt;br /&gt;
* Blender, for animations and VFX&lt;br /&gt;
* Shotwell/digiKam, for digital photo development&lt;br /&gt;
* GIMP, for photo editing&lt;br /&gt;
* Vim/Emacs/$FOO&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=User:Joar/Proposed_usecase&amp;diff=963</id>
		<title>User:Joar/Proposed usecase</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=User:Joar/Proposed_usecase&amp;diff=963"/>
		<updated>2012-11-03T09:48:10Z</updated>

		<summary type="html">&lt;p&gt;Joar: Created page with &amp;quot;This is the proposed default usecase for newly deployed GNU MediaGoblin applications.  == Gavroche ==  Gavroche is an independent artist living in a suburb of Paris, France. G...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the proposed default usecase for newly deployed GNU MediaGoblin applications.&lt;br /&gt;
&lt;br /&gt;
== Gavroche ==&lt;br /&gt;
&lt;br /&gt;
Gavroche is an independent artist living in a suburb of Paris, France. Gavroche creates audible, text, visual and moving pictures often under the CC-BY-SA license.&lt;br /&gt;
&lt;br /&gt;
Gavroche uses desktop applications such as &lt;br /&gt;
&lt;br /&gt;
* Blender, for animations and VFX&lt;br /&gt;
* Shotwell/digiKam, for digital photo development&lt;br /&gt;
* GIMP, for photo editing&lt;br /&gt;
* Vim/Emacs/$FOO&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=User_Experience&amp;diff=957</id>
		<title>User Experience</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=User_Experience&amp;diff=957"/>
		<updated>2012-10-22T19:09:05Z</updated>

		<summary type="html">&lt;p&gt;Joar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We need help doing user experience testing!  This means users testing our software, observing what does and doesn&#039;t work for them, and recording that.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re here to help (HOORAY!) go to the testing instance set up by Caleb Davis: http://omgmg.dyndns.org:6543/ [EDIT: This link has been down since 2011 something, take a look at the [[Live instances]] instead]&lt;br /&gt;
&lt;br /&gt;
Sign up for an account&#039;&#039;&#039;*&#039;&#039;&#039;, add some pictures&#039;&#039;&#039;**&#039;&#039;&#039; and play around. Take some notes and then either set up an account on this wiki and add your thoughts to this page or email them to press@mediagoblin.org. Please include your operating system and what browser you&#039;re using. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; Your email validation link may be in your spam folder!&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; NOTHING ON THIS INSTANCE IS PERMANENT.  This is for user experience testing only... your pics will be wiped!&lt;br /&gt;
&lt;br /&gt;
You&#039;ll be able to give us the best feedback if you don&#039;t look at anyone else&#039;s notes before you start. Thanks for helping us with usability!! We really appreciate it!&lt;br /&gt;
&lt;br /&gt;
= User notes go in this section =&lt;br /&gt;
&lt;br /&gt;
=== From Jenny on Google Chrome 13.0.782.220 in Mac OSX 10.6.8 ===&lt;br /&gt;
* login ok, uploading file ok.&lt;br /&gt;
* can enter profile description but it doesn&#039;t seem to show up anywhere?&lt;br /&gt;
* no crash after attemping to upload a non-image and then uploading a real image (jpg)&lt;br /&gt;
* uploaded a sideways image and there is no way to rotate it.&lt;br /&gt;
&lt;br /&gt;
=== From Jenny on Safari 5.1 in Mac OSX 10.6.8 ===&lt;br /&gt;
* login ok, uploading ok&lt;br /&gt;
* same problem with profile description - it&#039;s filled in but doesn&#039;t appear in the profile.&lt;br /&gt;
* everything seems to work ok.&lt;br /&gt;
&lt;br /&gt;
=== From Deb using Ubuntu 10.04, Lucid Lynx (Netbook remix version on an Aspire One) with Firefox version 3.6.18 for Ubuntu on 9.8.2011 ===&lt;br /&gt;
&lt;br /&gt;
* could still use a little note explaining how tags work&lt;br /&gt;
* submission is easy&lt;br /&gt;
* seems odd that I can&#039;t add a picture of myself to my profile on a picture site&lt;br /&gt;
* will people be able to search by pic tags? or search for users? &lt;br /&gt;
* will people be able to group pics into albums? &lt;br /&gt;
* maybe we could have something that is more obviously a dashboard than clicking on the username&lt;br /&gt;
&lt;br /&gt;
=== From Jenny on Google Chrome 14.0.835.124 beta-m in Windows XP Professional ===&lt;br /&gt;
*Log in ok, comments ok, deleting files works now.&lt;br /&gt;
*Profile info only shows up if the website is filled in.&lt;br /&gt;
*Adding a .bmp crashes chrome.&lt;br /&gt;
*Other image types seem to work - tif, gif, png, jpg.&lt;br /&gt;
*Adding other non-images give a message that it is not an image (txt, pdf, mdi).&lt;br /&gt;
*The &amp;lt;- -&amp;gt; buttons say &#039;Temporary button holder&#039; beneath them.&lt;br /&gt;
*The .tif image doesn&#039;t display when browsing individual photos, just in the overall view.&lt;br /&gt;
&lt;br /&gt;
=== From Jenny on IE7 in Windows XP Professional ===&lt;br /&gt;
*Log in ok, comments ok, editing and deleting ok, uploading ok.&lt;br /&gt;
*Display - the profile website runs into the photos. The photos line up exactly with no space between them. Everything is top-justified rather than centered.&lt;br /&gt;
*The tif image doesn&#039;t display on the page for that image (where you can comment on it) - it does display on all other pages though.&lt;br /&gt;
*The save changes button is cut off so you only see the letters &#039;SAVE CHA&#039;.&lt;br /&gt;
*The &amp;quot;Profile Edited&amp;quot; or &amp;quot;Posted Comment&amp;quot; comment dialog box displays over the username and logout buttons, as does the &amp;lt;- -&amp;gt; arrows. These also say &#039;Temporary button holder&#039; which seems wrong.&lt;br /&gt;
&lt;br /&gt;
= Past notes =&lt;br /&gt;
&lt;br /&gt;
Are here, http://wiki.mediagoblin.org/User_Experience_Past_Notes&lt;br /&gt;
&lt;br /&gt;
= General thoughts on running a user experience test =&lt;br /&gt;
&lt;br /&gt;
Could someone with experience with this fill in info here? ;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I (Jan-Christoph Borchardt) write a thesis at the moment on [http://owncloud.iuk.hdm-stuttgart.de/apps/files_publiclink/get.php?token=6c766212ba094bea08bf1bb800b3e1e7c785388e Coordinating low-cost usability testing in independent free &amp;amp; open source software projects]&amp;lt;br&amp;gt;&lt;br /&gt;
There are many small tips and recipes on how to do your own testing. Especially look into the &#039;&#039;Methods&#039;&#039; part.&amp;lt;br&amp;gt;&lt;br /&gt;
Please let me know if you have any other experiences with testing, I intend on regularly updating that document and release the full version freely licensed once it’s done as well as some kind of a &#039;&#039;quick start guide&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=User_Experience&amp;diff=956</id>
		<title>User Experience</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=User_Experience&amp;diff=956"/>
		<updated>2012-10-22T19:08:35Z</updated>

		<summary type="html">&lt;p&gt;Joar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We need help doing user experience testing!  This means users testing our software, observing what does and doesn&#039;t work for them, and recording that.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re here to help (HOORAY!) go to the testing instance set up by Caleb Davis: http://omgmg.dyndns.org:6543/ [EDIT: This link has been down since 2011 something]&lt;br /&gt;
&lt;br /&gt;
Sign up for an account&#039;&#039;&#039;*&#039;&#039;&#039;, add some pictures&#039;&#039;&#039;**&#039;&#039;&#039; and play around. Take some notes and then either set up an account on this wiki and add your thoughts to this page or email them to press@mediagoblin.org. Please include your operating system and what browser you&#039;re using. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; Your email validation link may be in your spam folder!&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; NOTHING ON THIS INSTANCE IS PERMANENT.  This is for user experience testing only... your pics will be wiped!&lt;br /&gt;
&lt;br /&gt;
You&#039;ll be able to give us the best feedback if you don&#039;t look at anyone else&#039;s notes before you start. Thanks for helping us with usability!! We really appreciate it!&lt;br /&gt;
&lt;br /&gt;
= User notes go in this section =&lt;br /&gt;
&lt;br /&gt;
=== From Jenny on Google Chrome 13.0.782.220 in Mac OSX 10.6.8 ===&lt;br /&gt;
* login ok, uploading file ok.&lt;br /&gt;
* can enter profile description but it doesn&#039;t seem to show up anywhere?&lt;br /&gt;
* no crash after attemping to upload a non-image and then uploading a real image (jpg)&lt;br /&gt;
* uploaded a sideways image and there is no way to rotate it.&lt;br /&gt;
&lt;br /&gt;
=== From Jenny on Safari 5.1 in Mac OSX 10.6.8 ===&lt;br /&gt;
* login ok, uploading ok&lt;br /&gt;
* same problem with profile description - it&#039;s filled in but doesn&#039;t appear in the profile.&lt;br /&gt;
* everything seems to work ok.&lt;br /&gt;
&lt;br /&gt;
=== From Deb using Ubuntu 10.04, Lucid Lynx (Netbook remix version on an Aspire One) with Firefox version 3.6.18 for Ubuntu on 9.8.2011 ===&lt;br /&gt;
&lt;br /&gt;
* could still use a little note explaining how tags work&lt;br /&gt;
* submission is easy&lt;br /&gt;
* seems odd that I can&#039;t add a picture of myself to my profile on a picture site&lt;br /&gt;
* will people be able to search by pic tags? or search for users? &lt;br /&gt;
* will people be able to group pics into albums? &lt;br /&gt;
* maybe we could have something that is more obviously a dashboard than clicking on the username&lt;br /&gt;
&lt;br /&gt;
=== From Jenny on Google Chrome 14.0.835.124 beta-m in Windows XP Professional ===&lt;br /&gt;
*Log in ok, comments ok, deleting files works now.&lt;br /&gt;
*Profile info only shows up if the website is filled in.&lt;br /&gt;
*Adding a .bmp crashes chrome.&lt;br /&gt;
*Other image types seem to work - tif, gif, png, jpg.&lt;br /&gt;
*Adding other non-images give a message that it is not an image (txt, pdf, mdi).&lt;br /&gt;
*The &amp;lt;- -&amp;gt; buttons say &#039;Temporary button holder&#039; beneath them.&lt;br /&gt;
*The .tif image doesn&#039;t display when browsing individual photos, just in the overall view.&lt;br /&gt;
&lt;br /&gt;
=== From Jenny on IE7 in Windows XP Professional ===&lt;br /&gt;
*Log in ok, comments ok, editing and deleting ok, uploading ok.&lt;br /&gt;
*Display - the profile website runs into the photos. The photos line up exactly with no space between them. Everything is top-justified rather than centered.&lt;br /&gt;
*The tif image doesn&#039;t display on the page for that image (where you can comment on it) - it does display on all other pages though.&lt;br /&gt;
*The save changes button is cut off so you only see the letters &#039;SAVE CHA&#039;.&lt;br /&gt;
*The &amp;quot;Profile Edited&amp;quot; or &amp;quot;Posted Comment&amp;quot; comment dialog box displays over the username and logout buttons, as does the &amp;lt;- -&amp;gt; arrows. These also say &#039;Temporary button holder&#039; which seems wrong.&lt;br /&gt;
&lt;br /&gt;
= Past notes =&lt;br /&gt;
&lt;br /&gt;
Are here, http://wiki.mediagoblin.org/User_Experience_Past_Notes&lt;br /&gt;
&lt;br /&gt;
= General thoughts on running a user experience test =&lt;br /&gt;
&lt;br /&gt;
Could someone with experience with this fill in info here? ;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I (Jan-Christoph Borchardt) write a thesis at the moment on [http://owncloud.iuk.hdm-stuttgart.de/apps/files_publiclink/get.php?token=6c766212ba094bea08bf1bb800b3e1e7c785388e Coordinating low-cost usability testing in independent free &amp;amp; open source software projects]&amp;lt;br&amp;gt;&lt;br /&gt;
There are many small tips and recipes on how to do your own testing. Especially look into the &#039;&#039;Methods&#039;&#039; part.&amp;lt;br&amp;gt;&lt;br /&gt;
Please let me know if you have any other experiences with testing, I intend on regularly updating that document and release the full version freely licensed once it’s done as well as some kind of a &#039;&#039;quick start guide&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=User_Experience&amp;diff=955</id>
		<title>User Experience</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=User_Experience&amp;diff=955"/>
		<updated>2012-10-22T19:08:10Z</updated>

		<summary type="html">&lt;p&gt;Joar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We need help doing user experience testing!  This means users testing our software, observing what does and doesn&#039;t work for them, and recording that.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re here to help (HOORAY!) go to the testing instance set up by Caleb Davis: [EDIT: This link has been down since 2011 something] http://omgmg.dyndns.org:6543/ (was down, is back up!)&lt;br /&gt;
&lt;br /&gt;
Sign up for an account&#039;&#039;&#039;*&#039;&#039;&#039;, add some pictures&#039;&#039;&#039;**&#039;&#039;&#039; and play around. Take some notes and then either set up an account on this wiki and add your thoughts to this page or email them to press@mediagoblin.org. Please include your operating system and what browser you&#039;re using. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; Your email validation link may be in your spam folder!&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;**&#039;&#039;&#039; NOTHING ON THIS INSTANCE IS PERMANENT.  This is for user experience testing only... your pics will be wiped!&lt;br /&gt;
&lt;br /&gt;
You&#039;ll be able to give us the best feedback if you don&#039;t look at anyone else&#039;s notes before you start. Thanks for helping us with usability!! We really appreciate it!&lt;br /&gt;
&lt;br /&gt;
= User notes go in this section =&lt;br /&gt;
&lt;br /&gt;
=== From Jenny on Google Chrome 13.0.782.220 in Mac OSX 10.6.8 ===&lt;br /&gt;
* login ok, uploading file ok.&lt;br /&gt;
* can enter profile description but it doesn&#039;t seem to show up anywhere?&lt;br /&gt;
* no crash after attemping to upload a non-image and then uploading a real image (jpg)&lt;br /&gt;
* uploaded a sideways image and there is no way to rotate it.&lt;br /&gt;
&lt;br /&gt;
=== From Jenny on Safari 5.1 in Mac OSX 10.6.8 ===&lt;br /&gt;
* login ok, uploading ok&lt;br /&gt;
* same problem with profile description - it&#039;s filled in but doesn&#039;t appear in the profile.&lt;br /&gt;
* everything seems to work ok.&lt;br /&gt;
&lt;br /&gt;
=== From Deb using Ubuntu 10.04, Lucid Lynx (Netbook remix version on an Aspire One) with Firefox version 3.6.18 for Ubuntu on 9.8.2011 ===&lt;br /&gt;
&lt;br /&gt;
* could still use a little note explaining how tags work&lt;br /&gt;
* submission is easy&lt;br /&gt;
* seems odd that I can&#039;t add a picture of myself to my profile on a picture site&lt;br /&gt;
* will people be able to search by pic tags? or search for users? &lt;br /&gt;
* will people be able to group pics into albums? &lt;br /&gt;
* maybe we could have something that is more obviously a dashboard than clicking on the username&lt;br /&gt;
&lt;br /&gt;
=== From Jenny on Google Chrome 14.0.835.124 beta-m in Windows XP Professional ===&lt;br /&gt;
*Log in ok, comments ok, deleting files works now.&lt;br /&gt;
*Profile info only shows up if the website is filled in.&lt;br /&gt;
*Adding a .bmp crashes chrome.&lt;br /&gt;
*Other image types seem to work - tif, gif, png, jpg.&lt;br /&gt;
*Adding other non-images give a message that it is not an image (txt, pdf, mdi).&lt;br /&gt;
*The &amp;lt;- -&amp;gt; buttons say &#039;Temporary button holder&#039; beneath them.&lt;br /&gt;
*The .tif image doesn&#039;t display when browsing individual photos, just in the overall view.&lt;br /&gt;
&lt;br /&gt;
=== From Jenny on IE7 in Windows XP Professional ===&lt;br /&gt;
*Log in ok, comments ok, editing and deleting ok, uploading ok.&lt;br /&gt;
*Display - the profile website runs into the photos. The photos line up exactly with no space between them. Everything is top-justified rather than centered.&lt;br /&gt;
*The tif image doesn&#039;t display on the page for that image (where you can comment on it) - it does display on all other pages though.&lt;br /&gt;
*The save changes button is cut off so you only see the letters &#039;SAVE CHA&#039;.&lt;br /&gt;
*The &amp;quot;Profile Edited&amp;quot; or &amp;quot;Posted Comment&amp;quot; comment dialog box displays over the username and logout buttons, as does the &amp;lt;- -&amp;gt; arrows. These also say &#039;Temporary button holder&#039; which seems wrong.&lt;br /&gt;
&lt;br /&gt;
= Past notes =&lt;br /&gt;
&lt;br /&gt;
Are here, http://wiki.mediagoblin.org/User_Experience_Past_Notes&lt;br /&gt;
&lt;br /&gt;
= General thoughts on running a user experience test =&lt;br /&gt;
&lt;br /&gt;
Could someone with experience with this fill in info here? ;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I (Jan-Christoph Borchardt) write a thesis at the moment on [http://owncloud.iuk.hdm-stuttgart.de/apps/files_publiclink/get.php?token=6c766212ba094bea08bf1bb800b3e1e7c785388e Coordinating low-cost usability testing in independent free &amp;amp; open source software projects]&amp;lt;br&amp;gt;&lt;br /&gt;
There are many small tips and recipes on how to do your own testing. Especially look into the &#039;&#039;Methods&#039;&#039; part.&amp;lt;br&amp;gt;&lt;br /&gt;
Please let me know if you have any other experiences with testing, I intend on regularly updating that document and release the full version freely licensed once it’s done as well as some kind of a &#039;&#039;quick start guide&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Meeting&amp;diff=943</id>
		<title>Meeting</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Meeting&amp;diff=943"/>
		<updated>2012-10-13T18:23:50Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* October 13th, 2012, 9:00 am Pacific Time (2012-09-01 16:00 UTC) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== MediaGoblin Monthly Meeting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;When:&#039;&#039;&#039; 9:00 am Pacific Time first Saturday of the month. [http://www.timeanddate.com/worldclock/converter.html Convert time to your timezone].  Print current UTC time: &amp;lt;code&amp;gt;date -u +&amp;quot;It&#039;s %F %T UTC&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where:&#039;&#039;&#039; IRC #mediagoblin on irc.freenode.net&lt;br /&gt;
&lt;br /&gt;
Always announced several days in advance on the [http://lists.mediagoblin.org/pipermail/devel/ mailing list] as is date adjustments, agenda discussion and other meeting preparation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Purpose:&#039;&#039;&#039; The idea is to discuss the past month, what happened, what was good, what should be done better. And to create roadmap for the upcoming month and assign tasks to people willing to handle them.&lt;br /&gt;
&lt;br /&gt;
Typical Agenda topics:&lt;br /&gt;
&lt;br /&gt;
* What happened in the last month, what was good, what could be better next time?&lt;br /&gt;
* What should be done next month?&lt;br /&gt;
&lt;br /&gt;
Meetings are logged. [http://mediagoblin.org/irclogs/ Logs for past meetings.]&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Nothing here yet!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Past Meetings ==&lt;br /&gt;
&lt;br /&gt;
=== October 13th, 2012, 9:00 am Pacific Time (2012-10-13 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
* 0.3.2 release&lt;br /&gt;
** What existing features need to be wrapped up?&lt;br /&gt;
*** Werkzeug switch&lt;br /&gt;
** What time might we do the release?&lt;br /&gt;
* Fundraising campaign&lt;br /&gt;
** Keeping things going mid-campaign&lt;br /&gt;
** You have questions?  I have answers, kinda :)&lt;br /&gt;
* Getting new contributors involved&lt;br /&gt;
* Plugins?  New features?&lt;br /&gt;
&lt;br /&gt;
==== Etherpad ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AGENDA&lt;br /&gt;
&lt;br /&gt;
     0.3.2 release &lt;br /&gt;
&lt;br /&gt;
     What existing features need to be wrapped up? &lt;br /&gt;
&lt;br /&gt;
     Werkzeug switch &lt;br /&gt;
&lt;br /&gt;
     What time might we do the release? &lt;br /&gt;
&lt;br /&gt;
    Congrats to Deb from the mediagoblin team! Congrats de Deb!&lt;br /&gt;
&lt;br /&gt;
     Fundraising campaign &lt;br /&gt;
&lt;br /&gt;
     Keeping things going mid-campaign &lt;br /&gt;
&lt;br /&gt;
     You have questions?  I have answers, kinda :) &lt;br /&gt;
&lt;br /&gt;
     Getting new contributors involved &lt;br /&gt;
&lt;br /&gt;
     Plugins?  New features? &lt;br /&gt;
&lt;br /&gt;
-- http://wiki.mediagoblin.org/Meeting#Next_Meeting&lt;br /&gt;
Fundraising stuff&lt;br /&gt;
Things are going great mostly when people check it out!&lt;br /&gt;
But how to spread the word?&lt;br /&gt;
&lt;br /&gt;
    should contact more podcasts, etc&lt;br /&gt;
&lt;br /&gt;
    currently working with FSF on this&lt;br /&gt;
&lt;br /&gt;
    need community to spread the word!&lt;br /&gt;
&lt;br /&gt;
    List of places already spreaded list and contacted&lt;br /&gt;
&lt;br /&gt;
VideoThumbnailerMarkII&lt;br /&gt;
New video thumbnailer, rewritten to try to eliminate a bug in the old one where processing would stall.&lt;br /&gt;
New bugs introduce (of course ;)&lt;br /&gt;
Collections&lt;br /&gt;
Merged - Thanks aaronw!&lt;br /&gt;
WebOb =&amp;gt; Werkzeug switch&lt;br /&gt;
Made some things break. Need help with testing + bugfixes&lt;br /&gt;
borked stuffs:&lt;br /&gt;
&lt;br /&gt;
    Accessing paths without trailing slashes, e.g. /submit (instead of /submit/)&lt;br /&gt;
&lt;br /&gt;
    Still a lot of legacy WebOb responses (such as webob.exc.HTTPFound() HTTPForbidden() left)&lt;br /&gt;
&lt;br /&gt;
API&lt;br /&gt;
Delivered to mrn.is, tryggvib will test it and get back with feedback.&lt;br /&gt;
Working, still a lot of room for improvements.&lt;br /&gt;
Mostly done, usable, still room for improvements. Example applications:&lt;br /&gt;
&lt;br /&gt;
    https://github.com/jwandborg/automgtic&lt;br /&gt;
&lt;br /&gt;
    https://github.com/jwandborg/omgmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== September 1st, 2012, 9:00 am Pacific Time (2012-09-01 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-09-01.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* FIXME - can someone type in summary here?&lt;br /&gt;
&lt;br /&gt;
=== August 4th, 2012, 9:00 am Pacific Time (2012-08-04 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-08-04.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Release schedule&lt;br /&gt;
* Plugins and themes! Who&#039;s working on one? What problems are you having? -- Please write up issues for problems so they can get fixed!&lt;br /&gt;
* Should we namespace plugins? If so, how should we namespace plugins?&lt;br /&gt;
** Python 3.3 will have support for namespace plugins. [http://www.python.org/dev/peps/pep-0420/#namespace-packages-today]&lt;br /&gt;
** In Python &amp;gt;=2.3, &amp;lt;3.3 it&#039;s a hack [http://www.python.org/dev/peps/pep-0402/#the-problem][http://www.python.org/dev/peps/pep-0420/#namespace-packages-today]&lt;br /&gt;
** Flask has a workaround[https://github.com/mitsuhiko/flask/blob/master/flask/ext/__init__.py]&lt;br /&gt;
&lt;br /&gt;
=== July 7th, 2012, 9:00 am Pacific Time (2012-07-07 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-07-07.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
Announcements:&lt;br /&gt;
&lt;br /&gt;
* Anyone who wants to edit the wiki needs to be in the goblin army group. Ask Will or Chris to get added.&lt;br /&gt;
* Plugin infrastructure landed. If you&#039;re interested in writing plugins, talk to Will. Some documentation at http://docs.mediagoblin.org/#part-2-plugin-writer-s-guide&lt;br /&gt;
&lt;br /&gt;
Agenda:&lt;br /&gt;
&lt;br /&gt;
* Keyboard shortcuts ([http://issues.mediagoblin.org/ticket/346 #346])&lt;br /&gt;
* Ticket triaging?&lt;br /&gt;
* Base plugin stuff!&lt;br /&gt;
* Theming&lt;br /&gt;
* Conference: OSCON&lt;br /&gt;
* Chris Webber&#039;s new &amp;quot;office hours&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== June 2nd, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-06-02.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* docs changes&lt;br /&gt;
** Will split the docs/ guide into a Site Administrator&#039;s Guide and a Plugin Writer&#039;s Guide&lt;br /&gt;
** Has anyone looked at the Plugin Writer&#039;s Guide, yet?&lt;br /&gt;
** Will wants to add a &amp;quot;Contributor&#039;s Guide&amp;quot; to docs/ which he&#039;d update from the wiki before every release&lt;br /&gt;
* Is there a way to improve our unit tests and motivation to write them?&lt;br /&gt;
** Simulating a browser by the way of [http://phantomjs.org/ PhantomJS], [http://seleniumhq.org/ Selenium] instead of having code simulating other code against itself might be more natural to write and even more testing the actual application. I have a good feeling about this, please prove me wrong if I&#039;d be. --[[User:Joar|Joar]] 08:53, 28 May 2012 (EDT)&lt;br /&gt;
* Administrative panel/tools and user uploads panel&lt;br /&gt;
* Git and tickets &lt;br /&gt;
* Plugins&lt;br /&gt;
** What&#039;s the state of things?&lt;br /&gt;
** Documentation&lt;br /&gt;
** What plugins might we want to build for this upcoming release?&lt;br /&gt;
** What things do we currently have that we might want to pluginify?&lt;br /&gt;
* State of kuneco/federation mini-update (Chris)&lt;br /&gt;
&lt;br /&gt;
=== May 5th, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-05-05.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Post-release reflections&lt;br /&gt;
** Woohoo, release!&lt;br /&gt;
** How did this release process go?&lt;br /&gt;
*** We should talk about that conference.&lt;br /&gt;
** What&#039;s left to clean up?&lt;br /&gt;
*** Mongokit-&amp;gt;SQL &amp;quot;style&amp;quot; query conversion?&lt;br /&gt;
*** Other cruft code?&lt;br /&gt;
* What are our next goals?&lt;br /&gt;
** Plugins&lt;br /&gt;
** Federation&lt;br /&gt;
** Favoriting&lt;br /&gt;
*** Take that, Pinterest! ;)&lt;br /&gt;
** Galleries&lt;br /&gt;
** Theming&lt;br /&gt;
*** Using sass would be neat&lt;br /&gt;
** Access restrictions&lt;br /&gt;
*** User management, or having a &amp;quot;secret url&amp;quot; that is not in the photo index that you can share with friends and generate as needed for any media type&lt;br /&gt;
** What about traffic? Some of us will host GMG on limited plans.&lt;br /&gt;
** Some kind of coding guidelines? Do we have a philosophy like &amp;quot;Keep it Simple, Stupid&amp;quot;&lt;br /&gt;
*** This concerns things like: Should plugins land in core eventually, do we want to support ALL THE MEDIA TYPES, ...&lt;br /&gt;
** Podcasting support?&lt;br /&gt;
** Things that have been hanging???&lt;br /&gt;
** Bugtrackers and milestone?&lt;br /&gt;
** More??? We should organize things!&lt;br /&gt;
* jancborchardt and his team of UX wizard-students&lt;br /&gt;
* Website redesign&lt;br /&gt;
* OpenShift?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== April 7th, 2012, 4:00 pm UTC ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-04-07.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Post-SQL stuff&lt;br /&gt;
* Pending 0.0.3 release!&lt;br /&gt;
* Are there stray patches/branches to be merged?&lt;br /&gt;
* Our glorious upcoming plugin future! (Update from Will)&lt;br /&gt;
&lt;br /&gt;
=== March 3rd, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-03-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* [[GSOC 2012]]&lt;br /&gt;
* State of the SQL transition (preview: it&#039;s super close, but we need help!)&lt;br /&gt;
* Plugin discussion (Will can&#039;t make this, but we should talk about use cases)&lt;br /&gt;
* MediaGoblin at upcoming conferences&lt;br /&gt;
* PageKite accounts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2012-02 (held on 2012-02-04) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-02-04.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Code style guide?  See also: http://issues.mediagoblin.org/ticket/197&lt;br /&gt;
* Kuneco/federation&lt;br /&gt;
* API&lt;br /&gt;
* More testing discussion?&lt;br /&gt;
* Theming?&lt;br /&gt;
* Preliminary plugin discussion&lt;br /&gt;
* Status update from the &amp;quot;SQL Team&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some of the decisions:&lt;br /&gt;
&lt;br /&gt;
* file an issue about proper &amp;amp;lt;audio&amp;amp;gt; support.&lt;br /&gt;
* some TODOs recorded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-12 (held on 2011-12-03) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-12-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* We plan to create a plugin system.  Do we want to create that soon or push it off until things settle a bit more?  ([[User:Willkg|Willkg]] 08:54, 10 November 2011 (EST))&lt;br /&gt;
* [[Feature Ideas]]: What should we do about the wiki page? Keep it and have it as a monthly topic for &amp;quot;what next&amp;quot;? Convert everything to long waiting bugs?&lt;br /&gt;
* Possibility of an [[SQL Database Backend]]?&lt;br /&gt;
*: &#039;executive summary&#039; (well, you should read the long docs): &amp;quot;We could move to sql. It&#039;s probably replacing one type of pain by another type of pain, but those are somewhat comparable. Leaving the main question: Do we want to occupy our main devs for some long time with this task and loose momentum?&amp;quot;&lt;br /&gt;
* Schendje&#039;s [http://wiki.mediagoblin.org/Feature_Ideas/Activities activities proposal]&lt;br /&gt;
* &amp;quot;Coming up next&amp;quot; blogpost draft by Deb Nicholson&lt;br /&gt;
* Jef&#039;s requests:&lt;br /&gt;
** Ticket #466 &amp;quot;Use of &amp;quot;Submit&amp;quot; in site copy is sterile and not as friendly and welcoming as it could be&amp;quot;. I&#039;d really like to change this soon to something more suitable. How can we improve the wording here? Some alternatives have been mentioned in the bug report, but which one should we pick? Link: http://bugs.foocorp.net/issues/466&lt;br /&gt;
** The concept and naming of &amp;quot;favourites&amp;quot;. We&#039;ll (hopefully) be able to &amp;quot;favourite&amp;quot; media soon, which I *think* means that 1) it&#039;ll work like a &amp;quot;I like this&amp;quot; comment, a quick token of appreciation, 2) it&#039;ll be added to your list of favourites so you can save and promote it, and 3) we could maybe use the number of favourites as a ranking. What I&#039;d like to know is: is that the intended purpose? If so, should we name them favo(u)rites or something else? &amp;quot;Like&amp;quot;, &amp;quot;love&amp;quot;, &amp;quot;save&amp;quot;, &amp;quot;appreciate&amp;quot;, &amp;quot;heart&amp;quot;, &amp;quot;high five&amp;quot; and many more could all be contenders. And the name should be consistent with the action and purpose, of course. So I&#039;d like to clear up how and why we will use favourites and what we should call them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-11 (held on 2011-11-05) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-11-05.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* What happened in the last month, what was good, what could be better next time?&lt;br /&gt;
** Release:&lt;br /&gt;
*** Good: 0.1.0 released!&lt;br /&gt;
*** Bad: postponing vs not postponing&lt;br /&gt;
** Sites and deployment documentation:&lt;br /&gt;
*** Good: new mediagoblin.org&lt;br /&gt;
*** Good: deployment documentation&lt;br /&gt;
*** Bad: py-bcrypt’s site was down just after the release, so the virtualenv deployment didn’t work, and it wasn’t clear how to fix it.&lt;br /&gt;
** Live instances:&lt;br /&gt;
*** Joar has a live instance!&lt;br /&gt;
*** But what does it mean? Should ordinary users start using it?&lt;br /&gt;
**** Details at [[User:Joar/mg.wandborg.se]] -- [[User:Joar|Joar]] 17:01, 6 November 2011 (EST)&lt;br /&gt;
*** nyergler added a note about &amp;quot;heartbeat&amp;quot;/status to API notes&lt;br /&gt;
* What should be done next month?&lt;br /&gt;
* Starting real work on federation (via OStatus)... and do we split any of this work out into its own library?&lt;br /&gt;
* An API&lt;br /&gt;
* Creative Commons licensing tools&lt;br /&gt;
* Merging in the multimedia/video branch&lt;br /&gt;
*: (this is *very close* already actually thanks to the hard work of Joar Wandborg!  But we need some help on the gstreamer front to fix a few issues... if you or someone you know is an expert in this area we could really use their help to make the videos that come out smoother!)&lt;br /&gt;
* Rollover items from 0.1.0&lt;br /&gt;
* Multiple file upload interface&lt;br /&gt;
* Drag and drop uploads interface (probably related!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-10 (held on 2011-10-01) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-10-01.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
This month&#039;s meeting was a quickly announced short meeting. The project is getting back on track and next month&#039;s meeting will be scheduled more properly. A bunch of people were around.&lt;br /&gt;
&lt;br /&gt;
The most important decisions:&lt;br /&gt;
* The project will keep monthly releases. They&#039;re the heartbeat of the project.&lt;br /&gt;
* Release 0.1.0 this sunday/monday.&lt;br /&gt;
* New website will hopefully be deployed in the next few days.&lt;br /&gt;
* And the following things are planned to happen during this month: Most importantly federation. The developers have decided to make up their minds on what federation aactually should mean for MediaGoblin. Concerning code, probably &amp;quot;activity streams&amp;quot; are the first goal. If there is no (good) python library for this, a new stand alone library may be created. If so, a name for it has to be found. It should have something about communication in it. And the other thing to happen during this month is an ongoing discussion about &amp;quot;bus factor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-09 (held on 2011-09-03) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-09-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-08 (held on 2011-08-06) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-08-06.txt IRC log]&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Meeting&amp;diff=942</id>
		<title>Meeting</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Meeting&amp;diff=942"/>
		<updated>2012-10-13T18:23:18Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Next Meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== MediaGoblin Monthly Meeting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;When:&#039;&#039;&#039; 9:00 am Pacific Time first Saturday of the month. [http://www.timeanddate.com/worldclock/converter.html Convert time to your timezone].  Print current UTC time: &amp;lt;code&amp;gt;date -u +&amp;quot;It&#039;s %F %T UTC&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where:&#039;&#039;&#039; IRC #mediagoblin on irc.freenode.net&lt;br /&gt;
&lt;br /&gt;
Always announced several days in advance on the [http://lists.mediagoblin.org/pipermail/devel/ mailing list] as is date adjustments, agenda discussion and other meeting preparation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Purpose:&#039;&#039;&#039; The idea is to discuss the past month, what happened, what was good, what should be done better. And to create roadmap for the upcoming month and assign tasks to people willing to handle them.&lt;br /&gt;
&lt;br /&gt;
Typical Agenda topics:&lt;br /&gt;
&lt;br /&gt;
* What happened in the last month, what was good, what could be better next time?&lt;br /&gt;
* What should be done next month?&lt;br /&gt;
&lt;br /&gt;
Meetings are logged. [http://mediagoblin.org/irclogs/ Logs for past meetings.]&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Nothing here yet!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Past Meetings ==&lt;br /&gt;
&lt;br /&gt;
=== October 13th, 2012, 9:00 am Pacific Time (2012-09-01 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
* 0.3.2 release&lt;br /&gt;
** What existing features need to be wrapped up?&lt;br /&gt;
*** Werkzeug switch&lt;br /&gt;
** What time might we do the release?&lt;br /&gt;
* Fundraising campaign&lt;br /&gt;
** Keeping things going mid-campaign&lt;br /&gt;
** You have questions?  I have answers, kinda :)&lt;br /&gt;
* Getting new contributors involved&lt;br /&gt;
* Plugins?  New features?&lt;br /&gt;
&lt;br /&gt;
==== Etherpad ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AGENDA&lt;br /&gt;
&lt;br /&gt;
     0.3.2 release &lt;br /&gt;
&lt;br /&gt;
     What existing features need to be wrapped up? &lt;br /&gt;
&lt;br /&gt;
     Werkzeug switch &lt;br /&gt;
&lt;br /&gt;
     What time might we do the release? &lt;br /&gt;
&lt;br /&gt;
    Congrats to Deb from the mediagoblin team! Congrats de Deb!&lt;br /&gt;
&lt;br /&gt;
     Fundraising campaign &lt;br /&gt;
&lt;br /&gt;
     Keeping things going mid-campaign &lt;br /&gt;
&lt;br /&gt;
     You have questions?  I have answers, kinda :) &lt;br /&gt;
&lt;br /&gt;
     Getting new contributors involved &lt;br /&gt;
&lt;br /&gt;
     Plugins?  New features? &lt;br /&gt;
&lt;br /&gt;
-- http://wiki.mediagoblin.org/Meeting#Next_Meeting&lt;br /&gt;
Fundraising stuff&lt;br /&gt;
Things are going great mostly when people check it out!&lt;br /&gt;
But how to spread the word?&lt;br /&gt;
&lt;br /&gt;
    should contact more podcasts, etc&lt;br /&gt;
&lt;br /&gt;
    currently working with FSF on this&lt;br /&gt;
&lt;br /&gt;
    need community to spread the word!&lt;br /&gt;
&lt;br /&gt;
    List of places already spreaded list and contacted&lt;br /&gt;
&lt;br /&gt;
VideoThumbnailerMarkII&lt;br /&gt;
New video thumbnailer, rewritten to try to eliminate a bug in the old one where processing would stall.&lt;br /&gt;
New bugs introduce (of course ;)&lt;br /&gt;
Collections&lt;br /&gt;
Merged - Thanks aaronw!&lt;br /&gt;
WebOb =&amp;gt; Werkzeug switch&lt;br /&gt;
Made some things break. Need help with testing + bugfixes&lt;br /&gt;
borked stuffs:&lt;br /&gt;
&lt;br /&gt;
    Accessing paths without trailing slashes, e.g. /submit (instead of /submit/)&lt;br /&gt;
&lt;br /&gt;
    Still a lot of legacy WebOb responses (such as webob.exc.HTTPFound() HTTPForbidden() left)&lt;br /&gt;
&lt;br /&gt;
API&lt;br /&gt;
Delivered to mrn.is, tryggvib will test it and get back with feedback.&lt;br /&gt;
Working, still a lot of room for improvements.&lt;br /&gt;
Mostly done, usable, still room for improvements. Example applications:&lt;br /&gt;
&lt;br /&gt;
    https://github.com/jwandborg/automgtic&lt;br /&gt;
&lt;br /&gt;
    https://github.com/jwandborg/omgmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== September 1st, 2012, 9:00 am Pacific Time (2012-09-01 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-09-01.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* FIXME - can someone type in summary here?&lt;br /&gt;
&lt;br /&gt;
=== August 4th, 2012, 9:00 am Pacific Time (2012-08-04 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-08-04.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Release schedule&lt;br /&gt;
* Plugins and themes! Who&#039;s working on one? What problems are you having? -- Please write up issues for problems so they can get fixed!&lt;br /&gt;
* Should we namespace plugins? If so, how should we namespace plugins?&lt;br /&gt;
** Python 3.3 will have support for namespace plugins. [http://www.python.org/dev/peps/pep-0420/#namespace-packages-today]&lt;br /&gt;
** In Python &amp;gt;=2.3, &amp;lt;3.3 it&#039;s a hack [http://www.python.org/dev/peps/pep-0402/#the-problem][http://www.python.org/dev/peps/pep-0420/#namespace-packages-today]&lt;br /&gt;
** Flask has a workaround[https://github.com/mitsuhiko/flask/blob/master/flask/ext/__init__.py]&lt;br /&gt;
&lt;br /&gt;
=== July 7th, 2012, 9:00 am Pacific Time (2012-07-07 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-07-07.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
Announcements:&lt;br /&gt;
&lt;br /&gt;
* Anyone who wants to edit the wiki needs to be in the goblin army group. Ask Will or Chris to get added.&lt;br /&gt;
* Plugin infrastructure landed. If you&#039;re interested in writing plugins, talk to Will. Some documentation at http://docs.mediagoblin.org/#part-2-plugin-writer-s-guide&lt;br /&gt;
&lt;br /&gt;
Agenda:&lt;br /&gt;
&lt;br /&gt;
* Keyboard shortcuts ([http://issues.mediagoblin.org/ticket/346 #346])&lt;br /&gt;
* Ticket triaging?&lt;br /&gt;
* Base plugin stuff!&lt;br /&gt;
* Theming&lt;br /&gt;
* Conference: OSCON&lt;br /&gt;
* Chris Webber&#039;s new &amp;quot;office hours&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== June 2nd, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-06-02.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* docs changes&lt;br /&gt;
** Will split the docs/ guide into a Site Administrator&#039;s Guide and a Plugin Writer&#039;s Guide&lt;br /&gt;
** Has anyone looked at the Plugin Writer&#039;s Guide, yet?&lt;br /&gt;
** Will wants to add a &amp;quot;Contributor&#039;s Guide&amp;quot; to docs/ which he&#039;d update from the wiki before every release&lt;br /&gt;
* Is there a way to improve our unit tests and motivation to write them?&lt;br /&gt;
** Simulating a browser by the way of [http://phantomjs.org/ PhantomJS], [http://seleniumhq.org/ Selenium] instead of having code simulating other code against itself might be more natural to write and even more testing the actual application. I have a good feeling about this, please prove me wrong if I&#039;d be. --[[User:Joar|Joar]] 08:53, 28 May 2012 (EDT)&lt;br /&gt;
* Administrative panel/tools and user uploads panel&lt;br /&gt;
* Git and tickets &lt;br /&gt;
* Plugins&lt;br /&gt;
** What&#039;s the state of things?&lt;br /&gt;
** Documentation&lt;br /&gt;
** What plugins might we want to build for this upcoming release?&lt;br /&gt;
** What things do we currently have that we might want to pluginify?&lt;br /&gt;
* State of kuneco/federation mini-update (Chris)&lt;br /&gt;
&lt;br /&gt;
=== May 5th, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-05-05.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Post-release reflections&lt;br /&gt;
** Woohoo, release!&lt;br /&gt;
** How did this release process go?&lt;br /&gt;
*** We should talk about that conference.&lt;br /&gt;
** What&#039;s left to clean up?&lt;br /&gt;
*** Mongokit-&amp;gt;SQL &amp;quot;style&amp;quot; query conversion?&lt;br /&gt;
*** Other cruft code?&lt;br /&gt;
* What are our next goals?&lt;br /&gt;
** Plugins&lt;br /&gt;
** Federation&lt;br /&gt;
** Favoriting&lt;br /&gt;
*** Take that, Pinterest! ;)&lt;br /&gt;
** Galleries&lt;br /&gt;
** Theming&lt;br /&gt;
*** Using sass would be neat&lt;br /&gt;
** Access restrictions&lt;br /&gt;
*** User management, or having a &amp;quot;secret url&amp;quot; that is not in the photo index that you can share with friends and generate as needed for any media type&lt;br /&gt;
** What about traffic? Some of us will host GMG on limited plans.&lt;br /&gt;
** Some kind of coding guidelines? Do we have a philosophy like &amp;quot;Keep it Simple, Stupid&amp;quot;&lt;br /&gt;
*** This concerns things like: Should plugins land in core eventually, do we want to support ALL THE MEDIA TYPES, ...&lt;br /&gt;
** Podcasting support?&lt;br /&gt;
** Things that have been hanging???&lt;br /&gt;
** Bugtrackers and milestone?&lt;br /&gt;
** More??? We should organize things!&lt;br /&gt;
* jancborchardt and his team of UX wizard-students&lt;br /&gt;
* Website redesign&lt;br /&gt;
* OpenShift?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== April 7th, 2012, 4:00 pm UTC ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-04-07.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Post-SQL stuff&lt;br /&gt;
* Pending 0.0.3 release!&lt;br /&gt;
* Are there stray patches/branches to be merged?&lt;br /&gt;
* Our glorious upcoming plugin future! (Update from Will)&lt;br /&gt;
&lt;br /&gt;
=== March 3rd, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-03-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* [[GSOC 2012]]&lt;br /&gt;
* State of the SQL transition (preview: it&#039;s super close, but we need help!)&lt;br /&gt;
* Plugin discussion (Will can&#039;t make this, but we should talk about use cases)&lt;br /&gt;
* MediaGoblin at upcoming conferences&lt;br /&gt;
* PageKite accounts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2012-02 (held on 2012-02-04) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-02-04.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Code style guide?  See also: http://issues.mediagoblin.org/ticket/197&lt;br /&gt;
* Kuneco/federation&lt;br /&gt;
* API&lt;br /&gt;
* More testing discussion?&lt;br /&gt;
* Theming?&lt;br /&gt;
* Preliminary plugin discussion&lt;br /&gt;
* Status update from the &amp;quot;SQL Team&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some of the decisions:&lt;br /&gt;
&lt;br /&gt;
* file an issue about proper &amp;amp;lt;audio&amp;amp;gt; support.&lt;br /&gt;
* some TODOs recorded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-12 (held on 2011-12-03) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-12-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* We plan to create a plugin system.  Do we want to create that soon or push it off until things settle a bit more?  ([[User:Willkg|Willkg]] 08:54, 10 November 2011 (EST))&lt;br /&gt;
* [[Feature Ideas]]: What should we do about the wiki page? Keep it and have it as a monthly topic for &amp;quot;what next&amp;quot;? Convert everything to long waiting bugs?&lt;br /&gt;
* Possibility of an [[SQL Database Backend]]?&lt;br /&gt;
*: &#039;executive summary&#039; (well, you should read the long docs): &amp;quot;We could move to sql. It&#039;s probably replacing one type of pain by another type of pain, but those are somewhat comparable. Leaving the main question: Do we want to occupy our main devs for some long time with this task and loose momentum?&amp;quot;&lt;br /&gt;
* Schendje&#039;s [http://wiki.mediagoblin.org/Feature_Ideas/Activities activities proposal]&lt;br /&gt;
* &amp;quot;Coming up next&amp;quot; blogpost draft by Deb Nicholson&lt;br /&gt;
* Jef&#039;s requests:&lt;br /&gt;
** Ticket #466 &amp;quot;Use of &amp;quot;Submit&amp;quot; in site copy is sterile and not as friendly and welcoming as it could be&amp;quot;. I&#039;d really like to change this soon to something more suitable. How can we improve the wording here? Some alternatives have been mentioned in the bug report, but which one should we pick? Link: http://bugs.foocorp.net/issues/466&lt;br /&gt;
** The concept and naming of &amp;quot;favourites&amp;quot;. We&#039;ll (hopefully) be able to &amp;quot;favourite&amp;quot; media soon, which I *think* means that 1) it&#039;ll work like a &amp;quot;I like this&amp;quot; comment, a quick token of appreciation, 2) it&#039;ll be added to your list of favourites so you can save and promote it, and 3) we could maybe use the number of favourites as a ranking. What I&#039;d like to know is: is that the intended purpose? If so, should we name them favo(u)rites or something else? &amp;quot;Like&amp;quot;, &amp;quot;love&amp;quot;, &amp;quot;save&amp;quot;, &amp;quot;appreciate&amp;quot;, &amp;quot;heart&amp;quot;, &amp;quot;high five&amp;quot; and many more could all be contenders. And the name should be consistent with the action and purpose, of course. So I&#039;d like to clear up how and why we will use favourites and what we should call them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-11 (held on 2011-11-05) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-11-05.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* What happened in the last month, what was good, what could be better next time?&lt;br /&gt;
** Release:&lt;br /&gt;
*** Good: 0.1.0 released!&lt;br /&gt;
*** Bad: postponing vs not postponing&lt;br /&gt;
** Sites and deployment documentation:&lt;br /&gt;
*** Good: new mediagoblin.org&lt;br /&gt;
*** Good: deployment documentation&lt;br /&gt;
*** Bad: py-bcrypt’s site was down just after the release, so the virtualenv deployment didn’t work, and it wasn’t clear how to fix it.&lt;br /&gt;
** Live instances:&lt;br /&gt;
*** Joar has a live instance!&lt;br /&gt;
*** But what does it mean? Should ordinary users start using it?&lt;br /&gt;
**** Details at [[User:Joar/mg.wandborg.se]] -- [[User:Joar|Joar]] 17:01, 6 November 2011 (EST)&lt;br /&gt;
*** nyergler added a note about &amp;quot;heartbeat&amp;quot;/status to API notes&lt;br /&gt;
* What should be done next month?&lt;br /&gt;
* Starting real work on federation (via OStatus)... and do we split any of this work out into its own library?&lt;br /&gt;
* An API&lt;br /&gt;
* Creative Commons licensing tools&lt;br /&gt;
* Merging in the multimedia/video branch&lt;br /&gt;
*: (this is *very close* already actually thanks to the hard work of Joar Wandborg!  But we need some help on the gstreamer front to fix a few issues... if you or someone you know is an expert in this area we could really use their help to make the videos that come out smoother!)&lt;br /&gt;
* Rollover items from 0.1.0&lt;br /&gt;
* Multiple file upload interface&lt;br /&gt;
* Drag and drop uploads interface (probably related!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-10 (held on 2011-10-01) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-10-01.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
This month&#039;s meeting was a quickly announced short meeting. The project is getting back on track and next month&#039;s meeting will be scheduled more properly. A bunch of people were around.&lt;br /&gt;
&lt;br /&gt;
The most important decisions:&lt;br /&gt;
* The project will keep monthly releases. They&#039;re the heartbeat of the project.&lt;br /&gt;
* Release 0.1.0 this sunday/monday.&lt;br /&gt;
* New website will hopefully be deployed in the next few days.&lt;br /&gt;
* And the following things are planned to happen during this month: Most importantly federation. The developers have decided to make up their minds on what federation aactually should mean for MediaGoblin. Concerning code, probably &amp;quot;activity streams&amp;quot; are the first goal. If there is no (good) python library for this, a new stand alone library may be created. If so, a name for it has to be found. It should have something about communication in it. And the other thing to happen during this month is an ongoing discussion about &amp;quot;bus factor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-09 (held on 2011-09-03) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-09-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-08 (held on 2011-08-06) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-08-06.txt IRC log]&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Meeting&amp;diff=941</id>
		<title>Meeting</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Meeting&amp;diff=941"/>
		<updated>2012-10-13T18:22:58Z</updated>

		<summary type="html">&lt;p&gt;Joar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== MediaGoblin Monthly Meeting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;When:&#039;&#039;&#039; 9:00 am Pacific Time first Saturday of the month. [http://www.timeanddate.com/worldclock/converter.html Convert time to your timezone].  Print current UTC time: &amp;lt;code&amp;gt;date -u +&amp;quot;It&#039;s %F %T UTC&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where:&#039;&#039;&#039; IRC #mediagoblin on irc.freenode.net&lt;br /&gt;
&lt;br /&gt;
Always announced several days in advance on the [http://lists.mediagoblin.org/pipermail/devel/ mailing list] as is date adjustments, agenda discussion and other meeting preparation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Purpose:&#039;&#039;&#039; The idea is to discuss the past month, what happened, what was good, what should be done better. And to create roadmap for the upcoming month and assign tasks to people willing to handle them.&lt;br /&gt;
&lt;br /&gt;
Typical Agenda topics:&lt;br /&gt;
&lt;br /&gt;
* What happened in the last month, what was good, what could be better next time?&lt;br /&gt;
* What should be done next month?&lt;br /&gt;
&lt;br /&gt;
Meetings are logged. [http://mediagoblin.org/irclogs/ Logs for past meetings.]&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
== Past Meetings ==&lt;br /&gt;
&lt;br /&gt;
=== October 13th, 2012, 9:00 am Pacific Time (2012-09-01 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
* 0.3.2 release&lt;br /&gt;
** What existing features need to be wrapped up?&lt;br /&gt;
*** Werkzeug switch&lt;br /&gt;
** What time might we do the release?&lt;br /&gt;
* Fundraising campaign&lt;br /&gt;
** Keeping things going mid-campaign&lt;br /&gt;
** You have questions?  I have answers, kinda :)&lt;br /&gt;
* Getting new contributors involved&lt;br /&gt;
* Plugins?  New features?&lt;br /&gt;
&lt;br /&gt;
==== Etherpad ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AGENDA&lt;br /&gt;
&lt;br /&gt;
     0.3.2 release &lt;br /&gt;
&lt;br /&gt;
     What existing features need to be wrapped up? &lt;br /&gt;
&lt;br /&gt;
     Werkzeug switch &lt;br /&gt;
&lt;br /&gt;
     What time might we do the release? &lt;br /&gt;
&lt;br /&gt;
    Congrats to Deb from the mediagoblin team! Congrats de Deb!&lt;br /&gt;
&lt;br /&gt;
     Fundraising campaign &lt;br /&gt;
&lt;br /&gt;
     Keeping things going mid-campaign &lt;br /&gt;
&lt;br /&gt;
     You have questions?  I have answers, kinda :) &lt;br /&gt;
&lt;br /&gt;
     Getting new contributors involved &lt;br /&gt;
&lt;br /&gt;
     Plugins?  New features? &lt;br /&gt;
&lt;br /&gt;
-- http://wiki.mediagoblin.org/Meeting#Next_Meeting&lt;br /&gt;
Fundraising stuff&lt;br /&gt;
Things are going great mostly when people check it out!&lt;br /&gt;
But how to spread the word?&lt;br /&gt;
&lt;br /&gt;
    should contact more podcasts, etc&lt;br /&gt;
&lt;br /&gt;
    currently working with FSF on this&lt;br /&gt;
&lt;br /&gt;
    need community to spread the word!&lt;br /&gt;
&lt;br /&gt;
    List of places already spreaded list and contacted&lt;br /&gt;
&lt;br /&gt;
VideoThumbnailerMarkII&lt;br /&gt;
New video thumbnailer, rewritten to try to eliminate a bug in the old one where processing would stall.&lt;br /&gt;
New bugs introduce (of course ;)&lt;br /&gt;
Collections&lt;br /&gt;
Merged - Thanks aaronw!&lt;br /&gt;
WebOb =&amp;gt; Werkzeug switch&lt;br /&gt;
Made some things break. Need help with testing + bugfixes&lt;br /&gt;
borked stuffs:&lt;br /&gt;
&lt;br /&gt;
    Accessing paths without trailing slashes, e.g. /submit (instead of /submit/)&lt;br /&gt;
&lt;br /&gt;
    Still a lot of legacy WebOb responses (such as webob.exc.HTTPFound() HTTPForbidden() left)&lt;br /&gt;
&lt;br /&gt;
API&lt;br /&gt;
Delivered to mrn.is, tryggvib will test it and get back with feedback.&lt;br /&gt;
Working, still a lot of room for improvements.&lt;br /&gt;
Mostly done, usable, still room for improvements. Example applications:&lt;br /&gt;
&lt;br /&gt;
    https://github.com/jwandborg/automgtic&lt;br /&gt;
&lt;br /&gt;
    https://github.com/jwandborg/omgmg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== September 1st, 2012, 9:00 am Pacific Time (2012-09-01 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-09-01.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* FIXME - can someone type in summary here?&lt;br /&gt;
&lt;br /&gt;
=== August 4th, 2012, 9:00 am Pacific Time (2012-08-04 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-08-04.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Release schedule&lt;br /&gt;
* Plugins and themes! Who&#039;s working on one? What problems are you having? -- Please write up issues for problems so they can get fixed!&lt;br /&gt;
* Should we namespace plugins? If so, how should we namespace plugins?&lt;br /&gt;
** Python 3.3 will have support for namespace plugins. [http://www.python.org/dev/peps/pep-0420/#namespace-packages-today]&lt;br /&gt;
** In Python &amp;gt;=2.3, &amp;lt;3.3 it&#039;s a hack [http://www.python.org/dev/peps/pep-0402/#the-problem][http://www.python.org/dev/peps/pep-0420/#namespace-packages-today]&lt;br /&gt;
** Flask has a workaround[https://github.com/mitsuhiko/flask/blob/master/flask/ext/__init__.py]&lt;br /&gt;
&lt;br /&gt;
=== July 7th, 2012, 9:00 am Pacific Time (2012-07-07 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-07-07.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
Announcements:&lt;br /&gt;
&lt;br /&gt;
* Anyone who wants to edit the wiki needs to be in the goblin army group. Ask Will or Chris to get added.&lt;br /&gt;
* Plugin infrastructure landed. If you&#039;re interested in writing plugins, talk to Will. Some documentation at http://docs.mediagoblin.org/#part-2-plugin-writer-s-guide&lt;br /&gt;
&lt;br /&gt;
Agenda:&lt;br /&gt;
&lt;br /&gt;
* Keyboard shortcuts ([http://issues.mediagoblin.org/ticket/346 #346])&lt;br /&gt;
* Ticket triaging?&lt;br /&gt;
* Base plugin stuff!&lt;br /&gt;
* Theming&lt;br /&gt;
* Conference: OSCON&lt;br /&gt;
* Chris Webber&#039;s new &amp;quot;office hours&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== June 2nd, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-06-02.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* docs changes&lt;br /&gt;
** Will split the docs/ guide into a Site Administrator&#039;s Guide and a Plugin Writer&#039;s Guide&lt;br /&gt;
** Has anyone looked at the Plugin Writer&#039;s Guide, yet?&lt;br /&gt;
** Will wants to add a &amp;quot;Contributor&#039;s Guide&amp;quot; to docs/ which he&#039;d update from the wiki before every release&lt;br /&gt;
* Is there a way to improve our unit tests and motivation to write them?&lt;br /&gt;
** Simulating a browser by the way of [http://phantomjs.org/ PhantomJS], [http://seleniumhq.org/ Selenium] instead of having code simulating other code against itself might be more natural to write and even more testing the actual application. I have a good feeling about this, please prove me wrong if I&#039;d be. --[[User:Joar|Joar]] 08:53, 28 May 2012 (EDT)&lt;br /&gt;
* Administrative panel/tools and user uploads panel&lt;br /&gt;
* Git and tickets &lt;br /&gt;
* Plugins&lt;br /&gt;
** What&#039;s the state of things?&lt;br /&gt;
** Documentation&lt;br /&gt;
** What plugins might we want to build for this upcoming release?&lt;br /&gt;
** What things do we currently have that we might want to pluginify?&lt;br /&gt;
* State of kuneco/federation mini-update (Chris)&lt;br /&gt;
&lt;br /&gt;
=== May 5th, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-05-05.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Post-release reflections&lt;br /&gt;
** Woohoo, release!&lt;br /&gt;
** How did this release process go?&lt;br /&gt;
*** We should talk about that conference.&lt;br /&gt;
** What&#039;s left to clean up?&lt;br /&gt;
*** Mongokit-&amp;gt;SQL &amp;quot;style&amp;quot; query conversion?&lt;br /&gt;
*** Other cruft code?&lt;br /&gt;
* What are our next goals?&lt;br /&gt;
** Plugins&lt;br /&gt;
** Federation&lt;br /&gt;
** Favoriting&lt;br /&gt;
*** Take that, Pinterest! ;)&lt;br /&gt;
** Galleries&lt;br /&gt;
** Theming&lt;br /&gt;
*** Using sass would be neat&lt;br /&gt;
** Access restrictions&lt;br /&gt;
*** User management, or having a &amp;quot;secret url&amp;quot; that is not in the photo index that you can share with friends and generate as needed for any media type&lt;br /&gt;
** What about traffic? Some of us will host GMG on limited plans.&lt;br /&gt;
** Some kind of coding guidelines? Do we have a philosophy like &amp;quot;Keep it Simple, Stupid&amp;quot;&lt;br /&gt;
*** This concerns things like: Should plugins land in core eventually, do we want to support ALL THE MEDIA TYPES, ...&lt;br /&gt;
** Podcasting support?&lt;br /&gt;
** Things that have been hanging???&lt;br /&gt;
** Bugtrackers and milestone?&lt;br /&gt;
** More??? We should organize things!&lt;br /&gt;
* jancborchardt and his team of UX wizard-students&lt;br /&gt;
* Website redesign&lt;br /&gt;
* OpenShift?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== April 7th, 2012, 4:00 pm UTC ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-04-07.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Post-SQL stuff&lt;br /&gt;
* Pending 0.0.3 release!&lt;br /&gt;
* Are there stray patches/branches to be merged?&lt;br /&gt;
* Our glorious upcoming plugin future! (Update from Will)&lt;br /&gt;
&lt;br /&gt;
=== March 3rd, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-03-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* [[GSOC 2012]]&lt;br /&gt;
* State of the SQL transition (preview: it&#039;s super close, but we need help!)&lt;br /&gt;
* Plugin discussion (Will can&#039;t make this, but we should talk about use cases)&lt;br /&gt;
* MediaGoblin at upcoming conferences&lt;br /&gt;
* PageKite accounts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2012-02 (held on 2012-02-04) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-02-04.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Code style guide?  See also: http://issues.mediagoblin.org/ticket/197&lt;br /&gt;
* Kuneco/federation&lt;br /&gt;
* API&lt;br /&gt;
* More testing discussion?&lt;br /&gt;
* Theming?&lt;br /&gt;
* Preliminary plugin discussion&lt;br /&gt;
* Status update from the &amp;quot;SQL Team&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some of the decisions:&lt;br /&gt;
&lt;br /&gt;
* file an issue about proper &amp;amp;lt;audio&amp;amp;gt; support.&lt;br /&gt;
* some TODOs recorded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-12 (held on 2011-12-03) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-12-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* We plan to create a plugin system.  Do we want to create that soon or push it off until things settle a bit more?  ([[User:Willkg|Willkg]] 08:54, 10 November 2011 (EST))&lt;br /&gt;
* [[Feature Ideas]]: What should we do about the wiki page? Keep it and have it as a monthly topic for &amp;quot;what next&amp;quot;? Convert everything to long waiting bugs?&lt;br /&gt;
* Possibility of an [[SQL Database Backend]]?&lt;br /&gt;
*: &#039;executive summary&#039; (well, you should read the long docs): &amp;quot;We could move to sql. It&#039;s probably replacing one type of pain by another type of pain, but those are somewhat comparable. Leaving the main question: Do we want to occupy our main devs for some long time with this task and loose momentum?&amp;quot;&lt;br /&gt;
* Schendje&#039;s [http://wiki.mediagoblin.org/Feature_Ideas/Activities activities proposal]&lt;br /&gt;
* &amp;quot;Coming up next&amp;quot; blogpost draft by Deb Nicholson&lt;br /&gt;
* Jef&#039;s requests:&lt;br /&gt;
** Ticket #466 &amp;quot;Use of &amp;quot;Submit&amp;quot; in site copy is sterile and not as friendly and welcoming as it could be&amp;quot;. I&#039;d really like to change this soon to something more suitable. How can we improve the wording here? Some alternatives have been mentioned in the bug report, but which one should we pick? Link: http://bugs.foocorp.net/issues/466&lt;br /&gt;
** The concept and naming of &amp;quot;favourites&amp;quot;. We&#039;ll (hopefully) be able to &amp;quot;favourite&amp;quot; media soon, which I *think* means that 1) it&#039;ll work like a &amp;quot;I like this&amp;quot; comment, a quick token of appreciation, 2) it&#039;ll be added to your list of favourites so you can save and promote it, and 3) we could maybe use the number of favourites as a ranking. What I&#039;d like to know is: is that the intended purpose? If so, should we name them favo(u)rites or something else? &amp;quot;Like&amp;quot;, &amp;quot;love&amp;quot;, &amp;quot;save&amp;quot;, &amp;quot;appreciate&amp;quot;, &amp;quot;heart&amp;quot;, &amp;quot;high five&amp;quot; and many more could all be contenders. And the name should be consistent with the action and purpose, of course. So I&#039;d like to clear up how and why we will use favourites and what we should call them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-11 (held on 2011-11-05) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-11-05.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* What happened in the last month, what was good, what could be better next time?&lt;br /&gt;
** Release:&lt;br /&gt;
*** Good: 0.1.0 released!&lt;br /&gt;
*** Bad: postponing vs not postponing&lt;br /&gt;
** Sites and deployment documentation:&lt;br /&gt;
*** Good: new mediagoblin.org&lt;br /&gt;
*** Good: deployment documentation&lt;br /&gt;
*** Bad: py-bcrypt’s site was down just after the release, so the virtualenv deployment didn’t work, and it wasn’t clear how to fix it.&lt;br /&gt;
** Live instances:&lt;br /&gt;
*** Joar has a live instance!&lt;br /&gt;
*** But what does it mean? Should ordinary users start using it?&lt;br /&gt;
**** Details at [[User:Joar/mg.wandborg.se]] -- [[User:Joar|Joar]] 17:01, 6 November 2011 (EST)&lt;br /&gt;
*** nyergler added a note about &amp;quot;heartbeat&amp;quot;/status to API notes&lt;br /&gt;
* What should be done next month?&lt;br /&gt;
* Starting real work on federation (via OStatus)... and do we split any of this work out into its own library?&lt;br /&gt;
* An API&lt;br /&gt;
* Creative Commons licensing tools&lt;br /&gt;
* Merging in the multimedia/video branch&lt;br /&gt;
*: (this is *very close* already actually thanks to the hard work of Joar Wandborg!  But we need some help on the gstreamer front to fix a few issues... if you or someone you know is an expert in this area we could really use their help to make the videos that come out smoother!)&lt;br /&gt;
* Rollover items from 0.1.0&lt;br /&gt;
* Multiple file upload interface&lt;br /&gt;
* Drag and drop uploads interface (probably related!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-10 (held on 2011-10-01) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-10-01.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
This month&#039;s meeting was a quickly announced short meeting. The project is getting back on track and next month&#039;s meeting will be scheduled more properly. A bunch of people were around.&lt;br /&gt;
&lt;br /&gt;
The most important decisions:&lt;br /&gt;
* The project will keep monthly releases. They&#039;re the heartbeat of the project.&lt;br /&gt;
* Release 0.1.0 this sunday/monday.&lt;br /&gt;
* New website will hopefully be deployed in the next few days.&lt;br /&gt;
* And the following things are planned to happen during this month: Most importantly federation. The developers have decided to make up their minds on what federation aactually should mean for MediaGoblin. Concerning code, probably &amp;quot;activity streams&amp;quot; are the first goal. If there is no (good) python library for this, a new stand alone library may be created. If so, a name for it has to be found. It should have something about communication in it. And the other thing to happen during this month is an ongoing discussion about &amp;quot;bus factor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-09 (held on 2011-09-03) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-09-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-08 (held on 2011-08-06) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-08-06.txt IRC log]&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Meeting&amp;diff=940</id>
		<title>Meeting</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Meeting&amp;diff=940"/>
		<updated>2012-10-13T15:40:49Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Next Meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== MediaGoblin Monthly Meeting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;When:&#039;&#039;&#039; 9:00 am Pacific Time first Saturday of the month. [http://www.timeanddate.com/worldclock/converter.html Convert time to your timezone].  Print current UTC time: &amp;lt;code&amp;gt;date -u +&amp;quot;It&#039;s %F %T UTC&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where:&#039;&#039;&#039; IRC #mediagoblin on irc.freenode.net&lt;br /&gt;
&lt;br /&gt;
Always announced several days in advance on the [http://lists.mediagoblin.org/pipermail/devel/ mailing list] as is date adjustments, agenda discussion and other meeting preparation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Purpose:&#039;&#039;&#039; The idea is to discuss the past month, what happened, what was good, what should be done better. And to create roadmap for the upcoming month and assign tasks to people willing to handle them.&lt;br /&gt;
&lt;br /&gt;
Typical Agenda topics:&lt;br /&gt;
&lt;br /&gt;
* What happened in the last month, what was good, what could be better next time?&lt;br /&gt;
* What should be done next month?&lt;br /&gt;
&lt;br /&gt;
Meetings are logged. [http://mediagoblin.org/irclogs/ Logs for past meetings.]&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
* 0.3.2 release&lt;br /&gt;
** What existing features need to be wrapped up?&lt;br /&gt;
*** Werkzeug switch&lt;br /&gt;
** What time might we do the release?&lt;br /&gt;
* Fundraising campaign&lt;br /&gt;
** Keeping things going mid-campaign&lt;br /&gt;
** You have questions?  I have answers, kinda :)&lt;br /&gt;
* Getting new contributors involved&lt;br /&gt;
* Plugins?  New features?&lt;br /&gt;
&lt;br /&gt;
== Past Meetings ==&lt;br /&gt;
&lt;br /&gt;
=== September 1st, 2012, 9:00 am Pacific Time (2012-09-01 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-09-01.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* FIXME - can someone type in summary here?&lt;br /&gt;
&lt;br /&gt;
=== August 4th, 2012, 9:00 am Pacific Time (2012-08-04 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-08-04.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Release schedule&lt;br /&gt;
* Plugins and themes! Who&#039;s working on one? What problems are you having? -- Please write up issues for problems so they can get fixed!&lt;br /&gt;
* Should we namespace plugins? If so, how should we namespace plugins?&lt;br /&gt;
** Python 3.3 will have support for namespace plugins. [http://www.python.org/dev/peps/pep-0420/#namespace-packages-today]&lt;br /&gt;
** In Python &amp;gt;=2.3, &amp;lt;3.3 it&#039;s a hack [http://www.python.org/dev/peps/pep-0402/#the-problem][http://www.python.org/dev/peps/pep-0420/#namespace-packages-today]&lt;br /&gt;
** Flask has a workaround[https://github.com/mitsuhiko/flask/blob/master/flask/ext/__init__.py]&lt;br /&gt;
&lt;br /&gt;
=== July 7th, 2012, 9:00 am Pacific Time (2012-07-07 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-07-07.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
Announcements:&lt;br /&gt;
&lt;br /&gt;
* Anyone who wants to edit the wiki needs to be in the goblin army group. Ask Will or Chris to get added.&lt;br /&gt;
* Plugin infrastructure landed. If you&#039;re interested in writing plugins, talk to Will. Some documentation at http://docs.mediagoblin.org/#part-2-plugin-writer-s-guide&lt;br /&gt;
&lt;br /&gt;
Agenda:&lt;br /&gt;
&lt;br /&gt;
* Keyboard shortcuts ([http://issues.mediagoblin.org/ticket/346 #346])&lt;br /&gt;
* Ticket triaging?&lt;br /&gt;
* Base plugin stuff!&lt;br /&gt;
* Theming&lt;br /&gt;
* Conference: OSCON&lt;br /&gt;
* Chris Webber&#039;s new &amp;quot;office hours&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== June 2nd, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-06-02.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* docs changes&lt;br /&gt;
** Will split the docs/ guide into a Site Administrator&#039;s Guide and a Plugin Writer&#039;s Guide&lt;br /&gt;
** Has anyone looked at the Plugin Writer&#039;s Guide, yet?&lt;br /&gt;
** Will wants to add a &amp;quot;Contributor&#039;s Guide&amp;quot; to docs/ which he&#039;d update from the wiki before every release&lt;br /&gt;
* Is there a way to improve our unit tests and motivation to write them?&lt;br /&gt;
** Simulating a browser by the way of [http://phantomjs.org/ PhantomJS], [http://seleniumhq.org/ Selenium] instead of having code simulating other code against itself might be more natural to write and even more testing the actual application. I have a good feeling about this, please prove me wrong if I&#039;d be. --[[User:Joar|Joar]] 08:53, 28 May 2012 (EDT)&lt;br /&gt;
* Administrative panel/tools and user uploads panel&lt;br /&gt;
* Git and tickets &lt;br /&gt;
* Plugins&lt;br /&gt;
** What&#039;s the state of things?&lt;br /&gt;
** Documentation&lt;br /&gt;
** What plugins might we want to build for this upcoming release?&lt;br /&gt;
** What things do we currently have that we might want to pluginify?&lt;br /&gt;
* State of kuneco/federation mini-update (Chris)&lt;br /&gt;
&lt;br /&gt;
=== May 5th, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-05-05.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Post-release reflections&lt;br /&gt;
** Woohoo, release!&lt;br /&gt;
** How did this release process go?&lt;br /&gt;
*** We should talk about that conference.&lt;br /&gt;
** What&#039;s left to clean up?&lt;br /&gt;
*** Mongokit-&amp;gt;SQL &amp;quot;style&amp;quot; query conversion?&lt;br /&gt;
*** Other cruft code?&lt;br /&gt;
* What are our next goals?&lt;br /&gt;
** Plugins&lt;br /&gt;
** Federation&lt;br /&gt;
** Favoriting&lt;br /&gt;
*** Take that, Pinterest! ;)&lt;br /&gt;
** Galleries&lt;br /&gt;
** Theming&lt;br /&gt;
*** Using sass would be neat&lt;br /&gt;
** Access restrictions&lt;br /&gt;
*** User management, or having a &amp;quot;secret url&amp;quot; that is not in the photo index that you can share with friends and generate as needed for any media type&lt;br /&gt;
** What about traffic? Some of us will host GMG on limited plans.&lt;br /&gt;
** Some kind of coding guidelines? Do we have a philosophy like &amp;quot;Keep it Simple, Stupid&amp;quot;&lt;br /&gt;
*** This concerns things like: Should plugins land in core eventually, do we want to support ALL THE MEDIA TYPES, ...&lt;br /&gt;
** Podcasting support?&lt;br /&gt;
** Things that have been hanging???&lt;br /&gt;
** Bugtrackers and milestone?&lt;br /&gt;
** More??? We should organize things!&lt;br /&gt;
* jancborchardt and his team of UX wizard-students&lt;br /&gt;
* Website redesign&lt;br /&gt;
* OpenShift?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== April 7th, 2012, 4:00 pm UTC ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-04-07.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Post-SQL stuff&lt;br /&gt;
* Pending 0.0.3 release!&lt;br /&gt;
* Are there stray patches/branches to be merged?&lt;br /&gt;
* Our glorious upcoming plugin future! (Update from Will)&lt;br /&gt;
&lt;br /&gt;
=== March 3rd, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-03-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* [[GSOC 2012]]&lt;br /&gt;
* State of the SQL transition (preview: it&#039;s super close, but we need help!)&lt;br /&gt;
* Plugin discussion (Will can&#039;t make this, but we should talk about use cases)&lt;br /&gt;
* MediaGoblin at upcoming conferences&lt;br /&gt;
* PageKite accounts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2012-02 (held on 2012-02-04) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-02-04.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Code style guide?  See also: http://issues.mediagoblin.org/ticket/197&lt;br /&gt;
* Kuneco/federation&lt;br /&gt;
* API&lt;br /&gt;
* More testing discussion?&lt;br /&gt;
* Theming?&lt;br /&gt;
* Preliminary plugin discussion&lt;br /&gt;
* Status update from the &amp;quot;SQL Team&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some of the decisions:&lt;br /&gt;
&lt;br /&gt;
* file an issue about proper &amp;amp;lt;audio&amp;amp;gt; support.&lt;br /&gt;
* some TODOs recorded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-12 (held on 2011-12-03) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-12-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* We plan to create a plugin system.  Do we want to create that soon or push it off until things settle a bit more?  ([[User:Willkg|Willkg]] 08:54, 10 November 2011 (EST))&lt;br /&gt;
* [[Feature Ideas]]: What should we do about the wiki page? Keep it and have it as a monthly topic for &amp;quot;what next&amp;quot;? Convert everything to long waiting bugs?&lt;br /&gt;
* Possibility of an [[SQL Database Backend]]?&lt;br /&gt;
*: &#039;executive summary&#039; (well, you should read the long docs): &amp;quot;We could move to sql. It&#039;s probably replacing one type of pain by another type of pain, but those are somewhat comparable. Leaving the main question: Do we want to occupy our main devs for some long time with this task and loose momentum?&amp;quot;&lt;br /&gt;
* Schendje&#039;s [http://wiki.mediagoblin.org/Feature_Ideas/Activities activities proposal]&lt;br /&gt;
* &amp;quot;Coming up next&amp;quot; blogpost draft by Deb Nicholson&lt;br /&gt;
* Jef&#039;s requests:&lt;br /&gt;
** Ticket #466 &amp;quot;Use of &amp;quot;Submit&amp;quot; in site copy is sterile and not as friendly and welcoming as it could be&amp;quot;. I&#039;d really like to change this soon to something more suitable. How can we improve the wording here? Some alternatives have been mentioned in the bug report, but which one should we pick? Link: http://bugs.foocorp.net/issues/466&lt;br /&gt;
** The concept and naming of &amp;quot;favourites&amp;quot;. We&#039;ll (hopefully) be able to &amp;quot;favourite&amp;quot; media soon, which I *think* means that 1) it&#039;ll work like a &amp;quot;I like this&amp;quot; comment, a quick token of appreciation, 2) it&#039;ll be added to your list of favourites so you can save and promote it, and 3) we could maybe use the number of favourites as a ranking. What I&#039;d like to know is: is that the intended purpose? If so, should we name them favo(u)rites or something else? &amp;quot;Like&amp;quot;, &amp;quot;love&amp;quot;, &amp;quot;save&amp;quot;, &amp;quot;appreciate&amp;quot;, &amp;quot;heart&amp;quot;, &amp;quot;high five&amp;quot; and many more could all be contenders. And the name should be consistent with the action and purpose, of course. So I&#039;d like to clear up how and why we will use favourites and what we should call them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-11 (held on 2011-11-05) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-11-05.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* What happened in the last month, what was good, what could be better next time?&lt;br /&gt;
** Release:&lt;br /&gt;
*** Good: 0.1.0 released!&lt;br /&gt;
*** Bad: postponing vs not postponing&lt;br /&gt;
** Sites and deployment documentation:&lt;br /&gt;
*** Good: new mediagoblin.org&lt;br /&gt;
*** Good: deployment documentation&lt;br /&gt;
*** Bad: py-bcrypt’s site was down just after the release, so the virtualenv deployment didn’t work, and it wasn’t clear how to fix it.&lt;br /&gt;
** Live instances:&lt;br /&gt;
*** Joar has a live instance!&lt;br /&gt;
*** But what does it mean? Should ordinary users start using it?&lt;br /&gt;
**** Details at [[User:Joar/mg.wandborg.se]] -- [[User:Joar|Joar]] 17:01, 6 November 2011 (EST)&lt;br /&gt;
*** nyergler added a note about &amp;quot;heartbeat&amp;quot;/status to API notes&lt;br /&gt;
* What should be done next month?&lt;br /&gt;
* Starting real work on federation (via OStatus)... and do we split any of this work out into its own library?&lt;br /&gt;
* An API&lt;br /&gt;
* Creative Commons licensing tools&lt;br /&gt;
* Merging in the multimedia/video branch&lt;br /&gt;
*: (this is *very close* already actually thanks to the hard work of Joar Wandborg!  But we need some help on the gstreamer front to fix a few issues... if you or someone you know is an expert in this area we could really use their help to make the videos that come out smoother!)&lt;br /&gt;
* Rollover items from 0.1.0&lt;br /&gt;
* Multiple file upload interface&lt;br /&gt;
* Drag and drop uploads interface (probably related!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-10 (held on 2011-10-01) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-10-01.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
This month&#039;s meeting was a quickly announced short meeting. The project is getting back on track and next month&#039;s meeting will be scheduled more properly. A bunch of people were around.&lt;br /&gt;
&lt;br /&gt;
The most important decisions:&lt;br /&gt;
* The project will keep monthly releases. They&#039;re the heartbeat of the project.&lt;br /&gt;
* Release 0.1.0 this sunday/monday.&lt;br /&gt;
* New website will hopefully be deployed in the next few days.&lt;br /&gt;
* And the following things are planned to happen during this month: Most importantly federation. The developers have decided to make up their minds on what federation aactually should mean for MediaGoblin. Concerning code, probably &amp;quot;activity streams&amp;quot; are the first goal. If there is no (good) python library for this, a new stand alone library may be created. If so, a name for it has to be found. It should have something about communication in it. And the other thing to happen during this month is an ongoing discussion about &amp;quot;bus factor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-09 (held on 2011-09-03) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-09-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-08 (held on 2011-08-06) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-08-06.txt IRC log]&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Fundraising_campaign&amp;diff=917</id>
		<title>Fundraising campaign</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Fundraising_campaign&amp;diff=917"/>
		<updated>2012-10-13T09:45:06Z</updated>

		<summary type="html">&lt;p&gt;Joar: Created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Lorem ipsum&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Fundraising_campaign/article-ru&amp;diff=914</id>
		<title>Fundraising campaign/article-ru</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Fundraising_campaign/article-ru&amp;diff=914"/>
		<updated>2012-10-13T09:43:12Z</updated>

		<summary type="html">&lt;p&gt;Joar: Created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Foo&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=HackingHowto&amp;diff=905</id>
		<title>HackingHowto</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=HackingHowto&amp;diff=905"/>
		<updated>2012-09-17T09:19:21Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Microsoft Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hacking HOWTO =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== So you want to hack on GNU MediaGoblin? ==&lt;br /&gt;
&lt;br /&gt;
First thing to do is check out the [http://mediagoblin.org/join/ web site] where we list all the project&lt;br /&gt;
infrastructure including:&lt;br /&gt;
&lt;br /&gt;
* the IRC channel&lt;br /&gt;
* the mailing list&lt;br /&gt;
* the issue tracker&lt;br /&gt;
&lt;br /&gt;
Additionally, we have information on how to get involved, who to talk&lt;br /&gt;
to, what needs to be worked on, and other things besides!&lt;br /&gt;
&lt;br /&gt;
Second thing to do is take a look at [http://docs.mediagoblin.org/codebase.html codebase chapter] where&lt;br /&gt;
we&#039;ve started documenting how GNU MediaGoblin is built and how to add&lt;br /&gt;
new things.  If you&#039;re planning on contributing in python, you should be aware&lt;br /&gt;
of [http://www.python.org/dev/peps/pep-0008/ PEP-8], the official Python style guide,&lt;br /&gt;
which we follow.&lt;br /&gt;
&lt;br /&gt;
Third you&#039;ll need to get the requirements.&lt;br /&gt;
&lt;br /&gt;
Fourth, you&#039;ll need to build a development environment.  We use an&lt;br /&gt;
in-package checkout of virtualenv.  This isn&#039;t the convenional way to&lt;br /&gt;
install virtualenv (normally you don&#039;t install virtualenv inside the&lt;br /&gt;
package itself) but we&#039;ve found that it&#039;s significantly easier for&lt;br /&gt;
newcomers who aren&#039;t already familiar with virtualenv.  If you *are*&lt;br /&gt;
already familiar with virtualenv, feel free to just install&lt;br /&gt;
mediagoblin in your own virtualenv setup... the necessary adjustments&lt;br /&gt;
should be obvious.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Getting requirements ==&lt;br /&gt;
&lt;br /&gt;
First, you need to have the following installed before you can build&lt;br /&gt;
an environment for hacking on GNU MediaGoblin:&lt;br /&gt;
&lt;br /&gt;
* Python 2.6 or 2.7  - http://www.python.org/ (You&#039;ll need Python as well as the dev files for building modules.)&lt;br /&gt;
* python-lxml        - http://lxml.de/&lt;br /&gt;
* git                - http://git-scm.com/&lt;br /&gt;
* SQLAlchemy 0.7.0 or higher   - http://www.sqlalchemy.org/&lt;br /&gt;
* Python Imaging Library (PIL) - http://www.pythonware.com/products/pil/&lt;br /&gt;
* virtualenv         - http://www.virtualenv.org/&lt;br /&gt;
* Python GStreamer Bindings - http://gstreamer.freedesktop.org/modules/gst-python.html&lt;br /&gt;
&lt;br /&gt;
=== GNU/Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Debian and derivatives ====&lt;br /&gt;
&lt;br /&gt;
If you&#039;re running Debian GNU/Linux or a Debian-derived distribution&lt;br /&gt;
such as Debian, Mint, or [http://bugs.foocorp.net/issues/478 Ubuntu 10.10+], running the following should install these&lt;br /&gt;
requirements:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|sudo apt-get install git-core python python-dev python-lxml python-imaging python-virtualenv python-gst0.10 libjpeg8-dev}}&lt;br /&gt;
&lt;br /&gt;
==== Fedora / RedHat(?) ====&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|yum install python-paste-deploy python-paste-script git-core python python-devel python-lxml python-imaging python-virtualenv gstreamer-python}}&lt;br /&gt;
&lt;br /&gt;
=== Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X Lion:&lt;br /&gt;
&lt;br /&gt;
Download the Newest Python.&lt;br /&gt;
&lt;br /&gt;
Git is already installed.&lt;br /&gt;
&lt;br /&gt;
Python-lxml: http://muffinresearch.co.uk/archives/2009/03/05/install-lxml-on-osx/ with sudo&lt;br /&gt;
&lt;br /&gt;
Python Imaging Library (PIL): http://code.google.com/appengine/docs/python/images/installingPIL.html#mac&lt;br /&gt;
&lt;br /&gt;
Libjpeg &amp;amp; Libpng: http://ethan.tira-thompson.org/Mac_OS_X_Ports.html Combo Installer&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Windows ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Thanks wctype!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Getting requirements ====&lt;br /&gt;
&lt;br /&gt;
* Python 2.7  -  [http://www.python.org/download/ Download] &amp;lt;!-- http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi --&amp;gt;&lt;br /&gt;
* git - [https://github.com/msysgit/git/downloads Download] &amp;lt;!-- https://github.com/downloads/msysgit/git/Git-1.7.11-preview20120620.exe --&amp;gt;&lt;br /&gt;
* python-lxml - [http://pypi.python.org/pypi/lxml/2.3.5#downloads Tarball] [http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil Binaries] &amp;lt;!-- http://pypi.python.org/packages/source/l/lxml/lxml-2.3.5.tar.gz, http://www.lfd.uci.edu/~gohlke/pythonlibs/z8sp4uqu/lxml-2.3.5.win32-py2.7.exe --&amp;gt;&lt;br /&gt;
* Python Imaging Library (PIL) - [http://www.pythonware.com/products/pil/ Download] &amp;lt;!-- http://effbot.org/downloads/PIL-1.1.7.win32-py2.7.exe] --&amp;gt;&lt;br /&gt;
* virtualenv - [http://pypi.python.org/pypi/virtualenvwrapper-win/1.0.8#downloads Download] &amp;lt;!-- http://pypi.python.org/packages/source/v/virtualenvwrapper-win/virtualenvwrapper-win-1.0.8.zip --&amp;gt;&lt;br /&gt;
* OSSBuild project provides reasonably up-to-date binaries of GStreamer - [https://code.google.com/p/ossbuild/downloads/list Download] &amp;lt;!-- http://ossbuild.googlecode.com/files/GStreamer-WinBuilds-GPL-x86.msi --&amp;gt;&lt;br /&gt;
* py-bcrypt - [https://bitbucket.org/alexandrul/py-bcrypt/downloads/ Download] &amp;lt;!-- https://bitbucket.org/alexandrul/py-bcrypt/downloads/py-bcrypt-0.2.post1.win32-py2.7.exe --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can help:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you have instructions for other GNU/Linux distributions, Windows, or Mac OS X to set&lt;br /&gt;
up requirements, [http://mediagoblin.org/join/ let us know]!&lt;br /&gt;
&lt;br /&gt;
== How to set up and maintain an environment for hacking with virtualenv ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
No additional requirements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Create a development environment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After installing the requirements, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Clone the repository: {{Cmd|git clone &amp;lt;nowiki&amp;gt;git://gitorious.org/mediagoblin/mediagoblin.git&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
* Change directories to your new checkout: {{Cmd|cd mediagoblin}}&lt;br /&gt;
* Set up the in-package virtualenv:&lt;br /&gt;
  (virtualenv --system-site-packages . || virtualenv .) &amp;amp;&amp;amp; ./bin/python setup.py develop&lt;br /&gt;
* Init the database:&lt;br /&gt;
  {{Cmd|./bin/gmg dbupdate}}&lt;br /&gt;
&lt;br /&gt;
That&#039;s it!&lt;br /&gt;
&lt;br /&gt;
(If you have troubles in the remaining steps, consider try installing&lt;br /&gt;
virtualenv with one of the flags --setuptools, --distribute or possibly --no-site-packages.  Additionally, if your system has python3.X as the default, you might need to do virtualenv --python=python2.7 or --python=python2.6)&lt;br /&gt;
&lt;br /&gt;
If you have problems, please [http://mediagoblin.org/join/ let us know]!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Updating an existing environment ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating for dependency changes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While hacking on GNU MediaGoblin over time, you&#039;ll eventually have to&lt;br /&gt;
update your development environment because the dependencies have&lt;br /&gt;
changed.&lt;br /&gt;
&lt;br /&gt;
To do that, run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./bin/python setup.py develop --upgrade &amp;amp;&amp;amp; ./bin/gmg dbupdate}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating for code changes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Cmd|git pull -u}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running the server ==&lt;br /&gt;
&lt;br /&gt;
If you want to get things running quickly and without hassle, just&lt;br /&gt;
run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./lazyserver.sh}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This will start up a python server where you can begin playing with&lt;br /&gt;
mediagoblin, listening on 127.0.0.1:6543.  It will also run celery in &amp;quot;always eager&amp;quot; mode so you&lt;br /&gt;
don&#039;t have to start a separate process for it.&lt;br /&gt;
&lt;br /&gt;
By default, the instance is not sending out confirmation mails. Instead they are redirected to the standard output (the console) of lazyserver.sh.&lt;br /&gt;
&lt;br /&gt;
You can change this behavior setting &amp;lt;code&amp;gt;email_debug_mode&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; in mediagoblin.ini&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is fine in development, but if you want to actually run celery&lt;br /&gt;
separately for testing (or deployment purposes), you&#039;ll want to run&lt;br /&gt;
the server independently:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./bin/paster serve paste.ini --reload}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running celeryd ==&lt;br /&gt;
&lt;br /&gt;
If you aren&#039;t using &amp;lt;tt&amp;gt;./lazyserver.sh&amp;lt;/tt&amp;gt; or otherwise aren&#039;t running celery&lt;br /&gt;
in always eager mode, you&#039;ll need to do this if you want your media to&lt;br /&gt;
process and actually show up.  It&#039;s probably a good idea in&lt;br /&gt;
development to have the web server (above) running in one terminal and&lt;br /&gt;
celeryd in another window.&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_celery ./bin/celeryd&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running the test suite ==&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./runtests.sh}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running a shell ==&lt;br /&gt;
&lt;br /&gt;
If you want a shell with your database pre-setup and an instantiated&lt;br /&gt;
application ready and at your fingertips....&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./bin/gmg shell}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Problems with PIL ===&lt;br /&gt;
&lt;br /&gt;
Some users have claimed they&#039;ve had trouble with PIL working nicely on their system.  You could try installing Pillow:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./bin/pip install pillow}}&lt;br /&gt;
&lt;br /&gt;
... note that we don&#039;t &amp;quot;officially&amp;quot; support pillow at this time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wiping your user data ==&lt;br /&gt;
&lt;br /&gt;
You can completely wipe all data from the instance by doing:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rm -rf mediagoblin.db kombu.db celery.db user_dev; ./bin/gmg dbupdate}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unless you&#039;re doing development and working on and testing creating&lt;br /&gt;
a new instance, you will probably never have to do this.&lt;br /&gt;
&lt;br /&gt;
== Quickstart for Django programmers ==&lt;br /&gt;
&lt;br /&gt;
We&#039;re not using Django, but the codebase is very Django-like in its&lt;br /&gt;
structure.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;routing.py&amp;lt;/tt&amp;gt; is like &amp;lt;tt&amp;gt;urls.py&amp;lt;/tt&amp;gt; in Django&lt;br /&gt;
* &amp;lt;tt&amp;gt;models.py&amp;lt;/tt&amp;gt; has SQLAlchemy ORM definitions&lt;br /&gt;
* &amp;lt;tt&amp;gt;views.py&amp;lt;/tt&amp;gt; is where the views go&lt;br /&gt;
&lt;br /&gt;
We&#039;re using SQLAlchemy, which is semi-similar to the Django ORM, but&lt;br /&gt;
not really because you can get a lot more fine-grained.  The&lt;br /&gt;
[http://docs.sqlalchemy.org/en/latest/orm/tutorial.html SQLAlchemy ORM tutorial] is a great place to start.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;YouCanHelp&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If there are other things that you think would help orient someone&lt;br /&gt;
new to GNU MediaGoblin but coming from Django, let us know!&lt;br /&gt;
&lt;br /&gt;
== Showing off your work with PageKite ==&lt;br /&gt;
&lt;br /&gt;
If you&#039;re doing development with MediaGoblin, it&#039;s sometimes helpful to show off your work to gather feedback from other contributors.  A number of the MediaGoblin developers use something called [http://pagekite.net PageKite], which is a fellow free software web service which makes temporarily showing off work on your machine easy.  There&#039;s a [http://pagekite.net/wiki/Howto/UsePageKiteWithMediaGoblin/ tutorial on how to use PageKite and MediaGoblin together] available on the PageKite wiki.&lt;br /&gt;
&lt;br /&gt;
If you are doing a lot of MediaGoblin development, the PageKite people have graciously offered us a good amount of bandwidth at no cost in an effort to help out fellow free software projects.  If you&#039;ve been making significant contributions, PM Chris Webber on freenode (who is paroneayea there) and ask if you can be added to our group plan.&lt;br /&gt;
&lt;br /&gt;
== Bite-sized bugs to start with ==&lt;br /&gt;
&lt;br /&gt;
Now you should visit our latest list of [http://issues.mediagoblin.org/query?status=!closed&amp;amp;keywords=~bitesized bite-sized issues] because squishing bugs is messy fun. If you&#039;re interested in other things to work on, or need help getting started on a bug, let us know on [http://mediagoblin.org/join/ the mailing list] or on the [http://mediagoblin.org/join/ IRC channel].&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Media_Types&amp;diff=893</id>
		<title>Media Types</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Media_Types&amp;diff=893"/>
		<updated>2012-08-11T22:30:43Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* File structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Media types are plugin-like &lt;br /&gt;
&lt;br /&gt;
== File structure ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mediagoblin/media_types/video&lt;br /&gt;
├── __init__.py      # Contains the MEDIA_MANAGER&lt;br /&gt;
├── migrations.py    # DB migrations&lt;br /&gt;
├── models.py        # DB models&lt;br /&gt;
├── processing.py    # De-facto standard main file&lt;br /&gt;
├── ....             # Additional files&lt;br /&gt;
└── ....             # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MEDIA_MANAGER ==&lt;br /&gt;
&lt;br /&gt;
The media manager contains metadata about the media type,&lt;br /&gt;
along with a reference to the method used to process the media.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MEDIA_MANAGER = {&lt;br /&gt;
    &amp;quot;human_readable&amp;quot;: &amp;quot;Video&amp;quot;,&lt;br /&gt;
    &amp;quot;processor&amp;quot;: process_video,&lt;br /&gt;
    &amp;quot;sniff_handler&amp;quot;: sniff_handler,&lt;br /&gt;
    &amp;quot;display_template&amp;quot;: &amp;quot;mediagoblin/media_displays/video.html&amp;quot;,&lt;br /&gt;
    &amp;quot;default_thumb&amp;quot;: &amp;quot;images/media_thumbs/video.jpg&amp;quot;,&lt;br /&gt;
    &amp;quot;accepted_extensions&amp;quot;: [&lt;br /&gt;
        &amp;quot;mp4&amp;quot;, &amp;quot;mov&amp;quot;, &amp;quot;webm&amp;quot;, &amp;quot;avi&amp;quot;, &amp;quot;3gp&amp;quot;, &amp;quot;3gpp&amp;quot;, &amp;quot;mkv&amp;quot;, &amp;quot;ogv&amp;quot;, &amp;quot;m4v&amp;quot;]}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== human_readable ====&lt;br /&gt;
&lt;br /&gt;
A human-readable name for the media type.&lt;br /&gt;
&lt;br /&gt;
==== processor ====&lt;br /&gt;
&lt;br /&gt;
A reference to the media processing method for the media type.&lt;br /&gt;
&lt;br /&gt;
==== sniff_handler ====&lt;br /&gt;
&lt;br /&gt;
A reference to the sniffing handler for the media type.&lt;br /&gt;
&lt;br /&gt;
==== display_template ====&lt;br /&gt;
&lt;br /&gt;
A path to the [[Media Types/Display|display template]], relative to &amp;lt;code&amp;gt;mediagoblin/templates&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== defailt_thumb ====&lt;br /&gt;
&lt;br /&gt;
No current use.&lt;br /&gt;
&lt;br /&gt;
==== accepted_extensions ====&lt;br /&gt;
&lt;br /&gt;
A list containing file extensions that should be associated to this media type. This is used as a fast way to get the media type based on an uploaded file before MediaGoblin falls back to sniffing.&lt;br /&gt;
&lt;br /&gt;
== Negotiating media type based on a file upload ==&lt;br /&gt;
&lt;br /&gt;
To decide which of the available media types that should handle a file upload, we first match the file extension to extensions in the available [[Media Types#MEDIA_MANAGER|MEDIA_MANAGERS]], then we resort to sniffing.&lt;br /&gt;
&lt;br /&gt;
=== Sniffing ===&lt;br /&gt;
&lt;br /&gt;
As a second step in media type negotiation, if the file-extension based lookup fails, &amp;lt;code&amp;gt;mediagoblin.media_types.get_media_type_and_manager&amp;lt;/code&amp;gt; will call &amp;lt;code&amp;gt;mediagoblin.media_types.sniff_media&amp;lt;/code&amp;gt;, which will iterate and run all the enabled media types&#039;s sniffing handlers.&lt;br /&gt;
&lt;br /&gt;
The sniffing handlers can respond with either true or false, responding with true indicates that the media type believes it can parse the file.&lt;br /&gt;
&lt;br /&gt;
This is mediagoblin.media_types.video.processing.sniff_handler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def sniff_handler(media_file, **kw):&lt;br /&gt;
    transcoder = transcoders.VideoTranscoder()&lt;br /&gt;
    data = transcoder.discover(media_file.name)&lt;br /&gt;
&lt;br /&gt;
    _log.debug(&#039;Discovered: {0}&#039;.format(data))&lt;br /&gt;
&lt;br /&gt;
    if not data:&lt;br /&gt;
        _log.error(&#039;Could not discover {0}&#039;.format(&lt;br /&gt;
                kw.get(&#039;media&#039;)))&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
    if data[&#039;is_video&#039;] == True:&lt;br /&gt;
        return True&lt;br /&gt;
&lt;br /&gt;
    return False&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=HackingHowto&amp;diff=892</id>
		<title>HackingHowto</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=HackingHowto&amp;diff=892"/>
		<updated>2012-08-06T08:55:00Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Microsoft Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hacking HOWTO =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== So you want to hack on GNU MediaGoblin? ==&lt;br /&gt;
&lt;br /&gt;
First thing to do is check out the [http://mediagoblin.org/join/ web site] where we list all the project&lt;br /&gt;
infrastructure including:&lt;br /&gt;
&lt;br /&gt;
* the IRC channel&lt;br /&gt;
* the mailing list&lt;br /&gt;
* the issue tracker&lt;br /&gt;
&lt;br /&gt;
Additionally, we have information on how to get involved, who to talk&lt;br /&gt;
to, what needs to be worked on, and other things besides!&lt;br /&gt;
&lt;br /&gt;
Second thing to do is take a look at [http://docs.mediagoblin.org/codebase.html codebase chapter] where&lt;br /&gt;
we&#039;ve started documenting how GNU MediaGoblin is built and how to add&lt;br /&gt;
new things.  If you&#039;re planning on contributing in python, you should be aware&lt;br /&gt;
of [http://www.python.org/dev/peps/pep-0008/ PEP-8], the official Python style guide,&lt;br /&gt;
which we follow.&lt;br /&gt;
&lt;br /&gt;
Third you&#039;ll need to get the requirements.&lt;br /&gt;
&lt;br /&gt;
Fourth, you&#039;ll need to build a development environment.  We use an&lt;br /&gt;
in-package checkout of virtualenv.  This isn&#039;t the convenional way to&lt;br /&gt;
install virtualenv (normally you don&#039;t install virtualenv inside the&lt;br /&gt;
package itself) but we&#039;ve found that it&#039;s significantly easier for&lt;br /&gt;
newcomers who aren&#039;t already familiar with virtualenv.  If you *are*&lt;br /&gt;
already familiar with virtualenv, feel free to just install&lt;br /&gt;
mediagoblin in your own virtualenv setup... the necessary adjustments&lt;br /&gt;
should be obvious.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Getting requirements ==&lt;br /&gt;
&lt;br /&gt;
First, you need to have the following installed before you can build&lt;br /&gt;
an environment for hacking on GNU MediaGoblin:&lt;br /&gt;
&lt;br /&gt;
* Python 2.6 or 2.7  - http://www.python.org/ (You&#039;ll need Python as well as the dev files for building modules.)&lt;br /&gt;
* python-lxml        - http://lxml.de/&lt;br /&gt;
* git                - http://git-scm.com/&lt;br /&gt;
* SQLAlchemy 0.7.0 or higher   - http://www.sqlalchemy.org/&lt;br /&gt;
* Python Imaging Library (PIL) - http://www.pythonware.com/products/pil/&lt;br /&gt;
* virtualenv         - http://www.virtualenv.org/&lt;br /&gt;
* Python GStreamer Bindings - http://gstreamer.freedesktop.org/modules/gst-python.html&lt;br /&gt;
&lt;br /&gt;
=== GNU/Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Debian and derivatives ====&lt;br /&gt;
&lt;br /&gt;
If you&#039;re running Debian GNU/Linux or a Debian-derived distribution&lt;br /&gt;
such as Debian, Mint, or [http://bugs.foocorp.net/issues/478 Ubuntu 10.10+], running the following should install these&lt;br /&gt;
requirements:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|sudo apt-get install git-core python python-dev python-lxml python-imaging python-virtualenv python-gst0.10 libjpeg8-dev}}&lt;br /&gt;
&lt;br /&gt;
==== Fedora / RedHat(?) ====&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|yum install python-paste-deploy python-paste-script git-core python python-devel python-lxml python-imaging python-virtualenv gstreamer-python}}&lt;br /&gt;
&lt;br /&gt;
=== Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X Lion:&lt;br /&gt;
&lt;br /&gt;
Download the Newest Python.&lt;br /&gt;
&lt;br /&gt;
Git is already installed.&lt;br /&gt;
&lt;br /&gt;
Python-lxml: http://muffinresearch.co.uk/archives/2009/03/05/install-lxml-on-osx/ with sudo&lt;br /&gt;
&lt;br /&gt;
Python Imaging Library (PIL): http://code.google.com/appengine/docs/python/images/installingPIL.html#mac&lt;br /&gt;
&lt;br /&gt;
Libjpeg &amp;amp; Libpng: http://ethan.tira-thompson.org/Mac_OS_X_Ports.html Combo Installer&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Windows ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Thanks wctype!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Getting requirements ====&lt;br /&gt;
&lt;br /&gt;
* Python 2.7  -  [http://www.python.org/download/ Download] &amp;lt;!-- http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi --&amp;gt;&lt;br /&gt;
* git - [https://github.com/msysgit/git/downloads Download] &amp;lt;!-- https://github.com/downloads/msysgit/git/Git-1.7.11-preview20120620.exe --&amp;gt;&lt;br /&gt;
* python-lxml - [http://pypi.python.org/pypi/lxml/2.3.5#downloads Tarball] [http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil Binaries] &amp;lt;!-- http://pypi.python.org/packages/source/l/lxml/lxml-2.3.5.tar.gz, http://www.lfd.uci.edu/~gohlke/pythonlibs/z8sp4uqu/lxml-2.3.5.win32-py2.7.exe --&amp;gt;&lt;br /&gt;
* Python Imaging Library (PIL) - [http://www.pythonware.com/products/pil/ Download] &amp;lt;!-- http://effbot.org/downloads/PIL-1.1.7.win32-py2.7.exe] --&amp;gt;&lt;br /&gt;
* virtualenv - [http://pypi.python.org/pypi/virtualenvwrapper-win/1.0.8#downloads Download] &amp;lt;!-- http://pypi.python.org/packages/source/v/virtualenvwrapper-win/virtualenvwrapper-win-1.0.8.zip --&amp;gt;&lt;br /&gt;
* OSSBuild project provides reasonably up-to-date binaries of GStreamer - [https://code.google.com/p/ossbuild/downloads/list Download] &amp;lt;!-- http://ossbuild.googlecode.com/files/GStreamer-WinBuilds-GPL-x86.msi --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Additional changes ====&lt;br /&gt;
&lt;br /&gt;
Change line 50 (may be subject to change) of {{Cmd|mediagoblin\setup.py}}  from {{Cmd|&#039;py-bcrypt&#039;}} to {{Cmd|&#039;cryptacular&#039;}} then run {{Cmd|python setup.py develop}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can help:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you have instructions for other GNU/Linux distributions, Windows, or Mac OS X to set&lt;br /&gt;
up requirements, [http://mediagoblin.org/join/ let us know]!&lt;br /&gt;
&lt;br /&gt;
== How to set up and maintain an environment for hacking with virtualenv ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
No additional requirements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Create a development environment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After installing the requirements, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Clone the repository: {{Cmd|git clone &amp;lt;nowiki&amp;gt;git://gitorious.org/mediagoblin/mediagoblin.git&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
* Change directories to your new checkout: {{Cmd|cd mediagoblin}}&lt;br /&gt;
* Set up the in-package virtualenv:&lt;br /&gt;
  (virtualenv --system-site-packages . || virtualenv .) &amp;amp;&amp;amp; ./bin/python setup.py develop&lt;br /&gt;
* Init the database:&lt;br /&gt;
  {{Cmd|./bin/gmg dbupdate}}&lt;br /&gt;
&lt;br /&gt;
That&#039;s it!&lt;br /&gt;
&lt;br /&gt;
(If you have troubles in the remaining steps, consider try installing&lt;br /&gt;
virtualenv with one of the flags --setuptools, --distribute or possibly --no-site-packages.  Additionally, if your system has python3.X as the default, you might need to do virtualenv --python=python2.7 or --python=python2.6)&lt;br /&gt;
&lt;br /&gt;
If you have problems, please [http://mediagoblin.org/join/ let us know]!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Updating an existing environment ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating for dependency changes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While hacking on GNU MediaGoblin over time, you&#039;ll eventually have to&lt;br /&gt;
update your development environment because the dependencies have&lt;br /&gt;
changed.&lt;br /&gt;
&lt;br /&gt;
To do that, run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./bin/python setup.py develop --upgrade &amp;amp;&amp;amp; ./bin/gmg dbupdate}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating for code changes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Cmd|git pull -u}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running the server ==&lt;br /&gt;
&lt;br /&gt;
If you want to get things running quickly and without hassle, just&lt;br /&gt;
run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./lazyserver.sh}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This will start up a python server where you can begin playing with&lt;br /&gt;
mediagoblin, listening on 127.0.0.1:6543.  It will also run celery in &amp;quot;always eager&amp;quot; mode so you&lt;br /&gt;
don&#039;t have to start a separate process for it.&lt;br /&gt;
&lt;br /&gt;
By default, the instance is not sending out confirmation mails. Instead they are redirected to the standard output (the console) of lazyserver.sh.&lt;br /&gt;
&lt;br /&gt;
You can change this behavior setting &amp;lt;code&amp;gt;email_debug_mode&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; in mediagoblin.ini&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is fine in development, but if you want to actually run celery&lt;br /&gt;
separately for testing (or deployment purposes), you&#039;ll want to run&lt;br /&gt;
the server independently:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./bin/paster serve paste.ini --reload}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running celeryd ==&lt;br /&gt;
&lt;br /&gt;
If you aren&#039;t using &amp;lt;tt&amp;gt;./lazyserver.sh&amp;lt;/tt&amp;gt; or otherwise aren&#039;t running celery&lt;br /&gt;
in always eager mode, you&#039;ll need to do this if you want your media to&lt;br /&gt;
process and actually show up.  It&#039;s probably a good idea in&lt;br /&gt;
development to have the web server (above) running in one terminal and&lt;br /&gt;
celeryd in another window.&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_celery ./bin/celeryd&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running the test suite ==&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./runtests.sh}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running a shell ==&lt;br /&gt;
&lt;br /&gt;
If you want a shell with your database pre-setup and an instantiated&lt;br /&gt;
application ready and at your fingertips....&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./bin/gmg shell}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Problems with PIL ===&lt;br /&gt;
&lt;br /&gt;
Some users have claimed they&#039;ve had trouble with PIL working nicely on their system.  You could try installing Pillow:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./bin/pip install pillow}}&lt;br /&gt;
&lt;br /&gt;
... note that we don&#039;t &amp;quot;officially&amp;quot; support pillow at this time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wiping your user data ==&lt;br /&gt;
&lt;br /&gt;
You can completely wipe all data from the instance by doing:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rm -rf mediagoblin.db kombu.db celery.db user_dev; ./bin/gmg dbupdate}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unless you&#039;re doing development and working on and testing creating&lt;br /&gt;
a new instance, you will probably never have to do this.&lt;br /&gt;
&lt;br /&gt;
== Quickstart for Django programmers ==&lt;br /&gt;
&lt;br /&gt;
We&#039;re not using Django, but the codebase is very Django-like in its&lt;br /&gt;
structure.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;routing.py&amp;lt;/tt&amp;gt; is like &amp;lt;tt&amp;gt;urls.py&amp;lt;/tt&amp;gt; in Django&lt;br /&gt;
* &amp;lt;tt&amp;gt;models.py&amp;lt;/tt&amp;gt; has SQLAlchemy ORM definitions&lt;br /&gt;
* &amp;lt;tt&amp;gt;views.py&amp;lt;/tt&amp;gt; is where the views go&lt;br /&gt;
&lt;br /&gt;
We&#039;re using SQLAlchemy, which is semi-similar to the Django ORM, but&lt;br /&gt;
not really because you can get a lot more fine-grained.  The&lt;br /&gt;
[http://docs.sqlalchemy.org/en/latest/orm/tutorial.html SQLAlchemy ORM tutorial] is a great place to start.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;YouCanHelp&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If there are other things that you think would help orient someone&lt;br /&gt;
new to GNU MediaGoblin but coming from Django, let us know!&lt;br /&gt;
&lt;br /&gt;
== Showing off your work with PageKite ==&lt;br /&gt;
&lt;br /&gt;
If you&#039;re doing development with MediaGoblin, it&#039;s sometimes helpful to show off your work to gather feedback from other contributors.  A number of the MediaGoblin developers use something called [http://pagekite.net PageKite], which is a fellow free software web service which makes temporarily showing off work on your machine easy.  There&#039;s a [http://pagekite.net/wiki/Howto/UsePageKiteWithMediaGoblin/ tutorial on how to use PageKite and MediaGoblin together] available on the PageKite wiki.&lt;br /&gt;
&lt;br /&gt;
If you are doing a lot of MediaGoblin development, the PageKite people have graciously offered us a good amount of bandwidth at no cost in an effort to help out fellow free software projects.  If you&#039;ve been making significant contributions, PM Chris Webber on freenode (who is paroneayea there) and ask if you can be added to our group plan.&lt;br /&gt;
&lt;br /&gt;
== Bite-sized bugs to start with ==&lt;br /&gt;
&lt;br /&gt;
Now you should visit our latest list of [http://issues.mediagoblin.org/query?status=!closed&amp;amp;keywords=~bitesized bite-sized issues] because squishing bugs is messy fun. If you&#039;re interested in other things to work on, or need help getting started on a bug, let us know on [http://mediagoblin.org/join/ the mailing list] or on the [http://mediagoblin.org/join/ IRC channel].&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=HackingHowto&amp;diff=891</id>
		<title>HackingHowto</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=HackingHowto&amp;diff=891"/>
		<updated>2012-08-06T08:54:40Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Microsoft Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hacking HOWTO =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== So you want to hack on GNU MediaGoblin? ==&lt;br /&gt;
&lt;br /&gt;
First thing to do is check out the [http://mediagoblin.org/join/ web site] where we list all the project&lt;br /&gt;
infrastructure including:&lt;br /&gt;
&lt;br /&gt;
* the IRC channel&lt;br /&gt;
* the mailing list&lt;br /&gt;
* the issue tracker&lt;br /&gt;
&lt;br /&gt;
Additionally, we have information on how to get involved, who to talk&lt;br /&gt;
to, what needs to be worked on, and other things besides!&lt;br /&gt;
&lt;br /&gt;
Second thing to do is take a look at [http://docs.mediagoblin.org/codebase.html codebase chapter] where&lt;br /&gt;
we&#039;ve started documenting how GNU MediaGoblin is built and how to add&lt;br /&gt;
new things.  If you&#039;re planning on contributing in python, you should be aware&lt;br /&gt;
of [http://www.python.org/dev/peps/pep-0008/ PEP-8], the official Python style guide,&lt;br /&gt;
which we follow.&lt;br /&gt;
&lt;br /&gt;
Third you&#039;ll need to get the requirements.&lt;br /&gt;
&lt;br /&gt;
Fourth, you&#039;ll need to build a development environment.  We use an&lt;br /&gt;
in-package checkout of virtualenv.  This isn&#039;t the convenional way to&lt;br /&gt;
install virtualenv (normally you don&#039;t install virtualenv inside the&lt;br /&gt;
package itself) but we&#039;ve found that it&#039;s significantly easier for&lt;br /&gt;
newcomers who aren&#039;t already familiar with virtualenv.  If you *are*&lt;br /&gt;
already familiar with virtualenv, feel free to just install&lt;br /&gt;
mediagoblin in your own virtualenv setup... the necessary adjustments&lt;br /&gt;
should be obvious.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Getting requirements ==&lt;br /&gt;
&lt;br /&gt;
First, you need to have the following installed before you can build&lt;br /&gt;
an environment for hacking on GNU MediaGoblin:&lt;br /&gt;
&lt;br /&gt;
* Python 2.6 or 2.7  - http://www.python.org/ (You&#039;ll need Python as well as the dev files for building modules.)&lt;br /&gt;
* python-lxml        - http://lxml.de/&lt;br /&gt;
* git                - http://git-scm.com/&lt;br /&gt;
* SQLAlchemy 0.7.0 or higher   - http://www.sqlalchemy.org/&lt;br /&gt;
* Python Imaging Library (PIL) - http://www.pythonware.com/products/pil/&lt;br /&gt;
* virtualenv         - http://www.virtualenv.org/&lt;br /&gt;
* Python GStreamer Bindings - http://gstreamer.freedesktop.org/modules/gst-python.html&lt;br /&gt;
&lt;br /&gt;
=== GNU/Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Debian and derivatives ====&lt;br /&gt;
&lt;br /&gt;
If you&#039;re running Debian GNU/Linux or a Debian-derived distribution&lt;br /&gt;
such as Debian, Mint, or [http://bugs.foocorp.net/issues/478 Ubuntu 10.10+], running the following should install these&lt;br /&gt;
requirements:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|sudo apt-get install git-core python python-dev python-lxml python-imaging python-virtualenv python-gst0.10 libjpeg8-dev}}&lt;br /&gt;
&lt;br /&gt;
==== Fedora / RedHat(?) ====&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|yum install python-paste-deploy python-paste-script git-core python python-devel python-lxml python-imaging python-virtualenv gstreamer-python}}&lt;br /&gt;
&lt;br /&gt;
=== Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X Lion:&lt;br /&gt;
&lt;br /&gt;
Download the Newest Python.&lt;br /&gt;
&lt;br /&gt;
Git is already installed.&lt;br /&gt;
&lt;br /&gt;
Python-lxml: http://muffinresearch.co.uk/archives/2009/03/05/install-lxml-on-osx/ with sudo&lt;br /&gt;
&lt;br /&gt;
Python Imaging Library (PIL): http://code.google.com/appengine/docs/python/images/installingPIL.html#mac&lt;br /&gt;
&lt;br /&gt;
Libjpeg &amp;amp; Libpng: http://ethan.tira-thompson.org/Mac_OS_X_Ports.html Combo Installer&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Windows ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Thanks wctype!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Getting requirements ====&lt;br /&gt;
&lt;br /&gt;
* Python 2.7  -  [http://www.python.org/download/ Download] &amp;lt;!-- http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi --&amp;gt;&lt;br /&gt;
* git - [https://github.com/msysgit/git/downloads Download] &amp;lt;!-- https://github.com/downloads/msysgit/git/Git-1.7.11-preview20120620.exe --&amp;gt;&lt;br /&gt;
* python-lxml - [http://pypi.python.org/pypi/lxml/2.3.5#downloads Tarball] [http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil Binaries] &amp;lt;!-- http://pypi.python.org/packages/source/l/lxml/lxml-2.3.5.tar.gz, http://www.lfd.uci.edu/~gohlke/pythonlibs/z8sp4uqu/lxml-2.3.5.win32-py2.7.exe --&amp;gt;&lt;br /&gt;
* Python Imaging Library (PIL) - [http://www.pythonware.com/products/pil/ Download] &amp;lt;!-- http://effbot.org/downloads/PIL-1.1.7.win32-py2.7.exe] --&amp;gt;&lt;br /&gt;
* virtualenv - [http://pypi.python.org/pypi/virtualenvwrapper-win/1.0.8#downloads Download] &amp;lt;!-- http://pypi.python.org/packages/source/v/virtualenvwrapper-win/virtualenvwrapper-win-1.0.8.zip --&amp;gt;&lt;br /&gt;
* OSSBuild project provides reasonably up-to-date binaries of GStreamer - [https://code.google.com/p/ossbuild/downloads/list Download] &amp;lt;!-- http://ossbuild.googlecode.com/files/GStreamer-WinBuilds-GPL-x86.msi --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Additional changes ====&lt;br /&gt;
&lt;br /&gt;
Change line 50 (may be subject to change) of {{Cmd|mediagoblin\setup.py}}  from {{Cmd|&#039;py-bcrypt&#039;}} to {{Cmd|&#039;cryptacular&#039;}} then run {{Cmd|python setup.py develop}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can help:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you have instructions for other GNU/Linux distributions, Windows, or Mac OS X to set&lt;br /&gt;
up requirements, [http://mediagoblin.org/join/ let us know!]&lt;br /&gt;
&lt;br /&gt;
== How to set up and maintain an environment for hacking with virtualenv ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
No additional requirements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Create a development environment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After installing the requirements, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Clone the repository: {{Cmd|git clone &amp;lt;nowiki&amp;gt;git://gitorious.org/mediagoblin/mediagoblin.git&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
* Change directories to your new checkout: {{Cmd|cd mediagoblin}}&lt;br /&gt;
* Set up the in-package virtualenv:&lt;br /&gt;
  (virtualenv --system-site-packages . || virtualenv .) &amp;amp;&amp;amp; ./bin/python setup.py develop&lt;br /&gt;
* Init the database:&lt;br /&gt;
  {{Cmd|./bin/gmg dbupdate}}&lt;br /&gt;
&lt;br /&gt;
That&#039;s it!&lt;br /&gt;
&lt;br /&gt;
(If you have troubles in the remaining steps, consider try installing&lt;br /&gt;
virtualenv with one of the flags --setuptools, --distribute or possibly --no-site-packages.  Additionally, if your system has python3.X as the default, you might need to do virtualenv --python=python2.7 or --python=python2.6)&lt;br /&gt;
&lt;br /&gt;
If you have problems, please [http://mediagoblin.org/join/ let us know]!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Updating an existing environment ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating for dependency changes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While hacking on GNU MediaGoblin over time, you&#039;ll eventually have to&lt;br /&gt;
update your development environment because the dependencies have&lt;br /&gt;
changed.&lt;br /&gt;
&lt;br /&gt;
To do that, run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./bin/python setup.py develop --upgrade &amp;amp;&amp;amp; ./bin/gmg dbupdate}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating for code changes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Cmd|git pull -u}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running the server ==&lt;br /&gt;
&lt;br /&gt;
If you want to get things running quickly and without hassle, just&lt;br /&gt;
run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./lazyserver.sh}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This will start up a python server where you can begin playing with&lt;br /&gt;
mediagoblin, listening on 127.0.0.1:6543.  It will also run celery in &amp;quot;always eager&amp;quot; mode so you&lt;br /&gt;
don&#039;t have to start a separate process for it.&lt;br /&gt;
&lt;br /&gt;
By default, the instance is not sending out confirmation mails. Instead they are redirected to the standard output (the console) of lazyserver.sh.&lt;br /&gt;
&lt;br /&gt;
You can change this behavior setting &amp;lt;code&amp;gt;email_debug_mode&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; in mediagoblin.ini&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is fine in development, but if you want to actually run celery&lt;br /&gt;
separately for testing (or deployment purposes), you&#039;ll want to run&lt;br /&gt;
the server independently:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./bin/paster serve paste.ini --reload}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running celeryd ==&lt;br /&gt;
&lt;br /&gt;
If you aren&#039;t using &amp;lt;tt&amp;gt;./lazyserver.sh&amp;lt;/tt&amp;gt; or otherwise aren&#039;t running celery&lt;br /&gt;
in always eager mode, you&#039;ll need to do this if you want your media to&lt;br /&gt;
process and actually show up.  It&#039;s probably a good idea in&lt;br /&gt;
development to have the web server (above) running in one terminal and&lt;br /&gt;
celeryd in another window.&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_celery ./bin/celeryd&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running the test suite ==&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./runtests.sh}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running a shell ==&lt;br /&gt;
&lt;br /&gt;
If you want a shell with your database pre-setup and an instantiated&lt;br /&gt;
application ready and at your fingertips....&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./bin/gmg shell}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Problems with PIL ===&lt;br /&gt;
&lt;br /&gt;
Some users have claimed they&#039;ve had trouble with PIL working nicely on their system.  You could try installing Pillow:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./bin/pip install pillow}}&lt;br /&gt;
&lt;br /&gt;
... note that we don&#039;t &amp;quot;officially&amp;quot; support pillow at this time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wiping your user data ==&lt;br /&gt;
&lt;br /&gt;
You can completely wipe all data from the instance by doing:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rm -rf mediagoblin.db kombu.db celery.db user_dev; ./bin/gmg dbupdate}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unless you&#039;re doing development and working on and testing creating&lt;br /&gt;
a new instance, you will probably never have to do this.&lt;br /&gt;
&lt;br /&gt;
== Quickstart for Django programmers ==&lt;br /&gt;
&lt;br /&gt;
We&#039;re not using Django, but the codebase is very Django-like in its&lt;br /&gt;
structure.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;routing.py&amp;lt;/tt&amp;gt; is like &amp;lt;tt&amp;gt;urls.py&amp;lt;/tt&amp;gt; in Django&lt;br /&gt;
* &amp;lt;tt&amp;gt;models.py&amp;lt;/tt&amp;gt; has SQLAlchemy ORM definitions&lt;br /&gt;
* &amp;lt;tt&amp;gt;views.py&amp;lt;/tt&amp;gt; is where the views go&lt;br /&gt;
&lt;br /&gt;
We&#039;re using SQLAlchemy, which is semi-similar to the Django ORM, but&lt;br /&gt;
not really because you can get a lot more fine-grained.  The&lt;br /&gt;
[http://docs.sqlalchemy.org/en/latest/orm/tutorial.html SQLAlchemy ORM tutorial] is a great place to start.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;YouCanHelp&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If there are other things that you think would help orient someone&lt;br /&gt;
new to GNU MediaGoblin but coming from Django, let us know!&lt;br /&gt;
&lt;br /&gt;
== Showing off your work with PageKite ==&lt;br /&gt;
&lt;br /&gt;
If you&#039;re doing development with MediaGoblin, it&#039;s sometimes helpful to show off your work to gather feedback from other contributors.  A number of the MediaGoblin developers use something called [http://pagekite.net PageKite], which is a fellow free software web service which makes temporarily showing off work on your machine easy.  There&#039;s a [http://pagekite.net/wiki/Howto/UsePageKiteWithMediaGoblin/ tutorial on how to use PageKite and MediaGoblin together] available on the PageKite wiki.&lt;br /&gt;
&lt;br /&gt;
If you are doing a lot of MediaGoblin development, the PageKite people have graciously offered us a good amount of bandwidth at no cost in an effort to help out fellow free software projects.  If you&#039;ve been making significant contributions, PM Chris Webber on freenode (who is paroneayea there) and ask if you can be added to our group plan.&lt;br /&gt;
&lt;br /&gt;
== Bite-sized bugs to start with ==&lt;br /&gt;
&lt;br /&gt;
Now you should visit our latest list of [http://issues.mediagoblin.org/query?status=!closed&amp;amp;keywords=~bitesized bite-sized issues] because squishing bugs is messy fun. If you&#039;re interested in other things to work on, or need help getting started on a bug, let us know on [http://mediagoblin.org/join/ the mailing list] or on the [http://mediagoblin.org/join/ IRC channel].&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=HackingHowto&amp;diff=890</id>
		<title>HackingHowto</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=HackingHowto&amp;diff=890"/>
		<updated>2012-08-06T08:52:28Z</updated>

		<summary type="html">&lt;p&gt;Joar: Added wctype&amp;#039;s Windows directions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hacking HOWTO =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== So you want to hack on GNU MediaGoblin? ==&lt;br /&gt;
&lt;br /&gt;
First thing to do is check out the [http://mediagoblin.org/join/ web site] where we list all the project&lt;br /&gt;
infrastructure including:&lt;br /&gt;
&lt;br /&gt;
* the IRC channel&lt;br /&gt;
* the mailing list&lt;br /&gt;
* the issue tracker&lt;br /&gt;
&lt;br /&gt;
Additionally, we have information on how to get involved, who to talk&lt;br /&gt;
to, what needs to be worked on, and other things besides!&lt;br /&gt;
&lt;br /&gt;
Second thing to do is take a look at [http://docs.mediagoblin.org/codebase.html codebase chapter] where&lt;br /&gt;
we&#039;ve started documenting how GNU MediaGoblin is built and how to add&lt;br /&gt;
new things.  If you&#039;re planning on contributing in python, you should be aware&lt;br /&gt;
of [http://www.python.org/dev/peps/pep-0008/ PEP-8], the official Python style guide,&lt;br /&gt;
which we follow.&lt;br /&gt;
&lt;br /&gt;
Third you&#039;ll need to get the requirements.&lt;br /&gt;
&lt;br /&gt;
Fourth, you&#039;ll need to build a development environment.  We use an&lt;br /&gt;
in-package checkout of virtualenv.  This isn&#039;t the convenional way to&lt;br /&gt;
install virtualenv (normally you don&#039;t install virtualenv inside the&lt;br /&gt;
package itself) but we&#039;ve found that it&#039;s significantly easier for&lt;br /&gt;
newcomers who aren&#039;t already familiar with virtualenv.  If you *are*&lt;br /&gt;
already familiar with virtualenv, feel free to just install&lt;br /&gt;
mediagoblin in your own virtualenv setup... the necessary adjustments&lt;br /&gt;
should be obvious.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Getting requirements ==&lt;br /&gt;
&lt;br /&gt;
First, you need to have the following installed before you can build&lt;br /&gt;
an environment for hacking on GNU MediaGoblin:&lt;br /&gt;
&lt;br /&gt;
* Python 2.6 or 2.7  - http://www.python.org/ (You&#039;ll need Python as well as the dev files for building modules.)&lt;br /&gt;
* python-lxml        - http://lxml.de/&lt;br /&gt;
* git                - http://git-scm.com/&lt;br /&gt;
* SQLAlchemy 0.7.0 or higher   - http://www.sqlalchemy.org/&lt;br /&gt;
* Python Imaging Library (PIL) - http://www.pythonware.com/products/pil/&lt;br /&gt;
* virtualenv         - http://www.virtualenv.org/&lt;br /&gt;
* Python GStreamer Bindings - http://gstreamer.freedesktop.org/modules/gst-python.html&lt;br /&gt;
&lt;br /&gt;
=== GNU/Linux ===&lt;br /&gt;
&lt;br /&gt;
==== Debian and derivatives ====&lt;br /&gt;
&lt;br /&gt;
If you&#039;re running Debian GNU/Linux or a Debian-derived distribution&lt;br /&gt;
such as Debian, Mint, or [http://bugs.foocorp.net/issues/478 Ubuntu 10.10+], running the following should install these&lt;br /&gt;
requirements:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|sudo apt-get install git-core python python-dev python-lxml python-imaging python-virtualenv python-gst0.10 libjpeg8-dev}}&lt;br /&gt;
&lt;br /&gt;
==== Fedora / RedHat(?) ====&lt;br /&gt;
&lt;br /&gt;
On Fedora:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|yum install python-paste-deploy python-paste-script git-core python python-devel python-lxml python-imaging python-virtualenv gstreamer-python}}&lt;br /&gt;
&lt;br /&gt;
=== Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
On Mac OS X Lion:&lt;br /&gt;
&lt;br /&gt;
Download the Newest Python.&lt;br /&gt;
&lt;br /&gt;
Git is already installed.&lt;br /&gt;
&lt;br /&gt;
Python-lxml: http://muffinresearch.co.uk/archives/2009/03/05/install-lxml-on-osx/ with sudo&lt;br /&gt;
&lt;br /&gt;
Python Imaging Library (PIL): http://code.google.com/appengine/docs/python/images/installingPIL.html#mac&lt;br /&gt;
&lt;br /&gt;
Libjpeg &amp;amp; Libpng: http://ethan.tira-thompson.org/Mac_OS_X_Ports.html Combo Installer&lt;br /&gt;
&lt;br /&gt;
=== Microsoft Windows ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Thanks wctype!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Getting requirements ====&lt;br /&gt;
&lt;br /&gt;
* Python 2.7  -  [http://www.python.org/download/ Download] &amp;lt;!-- http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi --&amp;gt;&lt;br /&gt;
* git - [https://github.com/msysgit/git/downloads Download] &amp;lt;!-- https://github.com/downloads/msysgit/git/Git-1.7.11-preview20120620.exe --&amp;gt;&lt;br /&gt;
* python-lxml - [http://pypi.python.org/pypi/lxml/2.3.5#downloads Tarball] [http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil Binaries] &amp;lt;!-- http://pypi.python.org/packages/source/l/lxml/lxml-2.3.5.tar.gz, http://www.lfd.uci.edu/~gohlke/pythonlibs/z8sp4uqu/lxml-2.3.5.win32-py2.7.exe --&amp;gt;&lt;br /&gt;
* Python Imaging Library (PIL) - [http://www.pythonware.com/products/pil/ Download] &amp;lt;!-- http://effbot.org/downloads/PIL-1.1.7.win32-py2.7.exe] --&amp;gt;&lt;br /&gt;
* virtualenv - [http://pypi.python.org/pypi/virtualenvwrapper-win/1.0.8#downloads Download] &amp;lt;!-- http://pypi.python.org/packages/source/v/virtualenvwrapper-win/virtualenvwrapper-win-1.0.8.zip --&amp;gt;&lt;br /&gt;
* OSSBuild project provides reasonably up-to-date binaries of GStreamer - [https://code.google.com/p/ossbuild/downloads/list Download] &amp;lt;!-- http://ossbuild.googlecode.com/files/GStreamer-WinBuilds-GPL-x86.msi --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Additional changes ====&lt;br /&gt;
&lt;br /&gt;
Change line 50 (may be subject to change) of {{Cmd|mediagoblin\setup.py}}  from {{Cmd|&#039;py-bcrypt&#039;}} to {{Cmd|&#039;cryptacular&#039;}} then run {{Cmd|python setup.py develop}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can help:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you have instructions for other GNU/Linux distributions, Windows, or Mac OS X to set&lt;br /&gt;
up requirements, let us know!&lt;br /&gt;
&lt;br /&gt;
== How to set up and maintain an environment for hacking with virtualenv ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
No additional requirements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Create a development environment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After installing the requirements, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Clone the repository: {{Cmd|git clone &amp;lt;nowiki&amp;gt;git://gitorious.org/mediagoblin/mediagoblin.git&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
* Change directories to your new checkout: {{Cmd|cd mediagoblin}}&lt;br /&gt;
* Set up the in-package virtualenv:&lt;br /&gt;
  (virtualenv --system-site-packages . || virtualenv .) &amp;amp;&amp;amp; ./bin/python setup.py develop&lt;br /&gt;
* Init the database:&lt;br /&gt;
  {{Cmd|./bin/gmg dbupdate}}&lt;br /&gt;
&lt;br /&gt;
That&#039;s it!&lt;br /&gt;
&lt;br /&gt;
(If you have troubles in the remaining steps, consider try installing&lt;br /&gt;
virtualenv with one of the flags --setuptools, --distribute or possibly --no-site-packages.  Additionally, if your system has python3.X as the default, you might need to do virtualenv --python=python2.7 or --python=python2.6)&lt;br /&gt;
&lt;br /&gt;
If you have problems, please [http://mediagoblin.org/join/ let us know]!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Updating an existing environment ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating for dependency changes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
While hacking on GNU MediaGoblin over time, you&#039;ll eventually have to&lt;br /&gt;
update your development environment because the dependencies have&lt;br /&gt;
changed.&lt;br /&gt;
&lt;br /&gt;
To do that, run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./bin/python setup.py develop --upgrade &amp;amp;&amp;amp; ./bin/gmg dbupdate}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating for code changes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Cmd|git pull -u}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running the server ==&lt;br /&gt;
&lt;br /&gt;
If you want to get things running quickly and without hassle, just&lt;br /&gt;
run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./lazyserver.sh}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This will start up a python server where you can begin playing with&lt;br /&gt;
mediagoblin, listening on 127.0.0.1:6543.  It will also run celery in &amp;quot;always eager&amp;quot; mode so you&lt;br /&gt;
don&#039;t have to start a separate process for it.&lt;br /&gt;
&lt;br /&gt;
By default, the instance is not sending out confirmation mails. Instead they are redirected to the standard output (the console) of lazyserver.sh.&lt;br /&gt;
&lt;br /&gt;
You can change this behavior setting &amp;lt;code&amp;gt;email_debug_mode&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; in mediagoblin.ini&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is fine in development, but if you want to actually run celery&lt;br /&gt;
separately for testing (or deployment purposes), you&#039;ll want to run&lt;br /&gt;
the server independently:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./bin/paster serve paste.ini --reload}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running celeryd ==&lt;br /&gt;
&lt;br /&gt;
If you aren&#039;t using &amp;lt;tt&amp;gt;./lazyserver.sh&amp;lt;/tt&amp;gt; or otherwise aren&#039;t running celery&lt;br /&gt;
in always eager mode, you&#039;ll need to do this if you want your media to&lt;br /&gt;
process and actually show up.  It&#039;s probably a good idea in&lt;br /&gt;
development to have the web server (above) running in one terminal and&lt;br /&gt;
celeryd in another window.&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|&amp;lt;nowiki&amp;gt;CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_celery ./bin/celeryd&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running the test suite ==&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./runtests.sh}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running a shell ==&lt;br /&gt;
&lt;br /&gt;
If you want a shell with your database pre-setup and an instantiated&lt;br /&gt;
application ready and at your fingertips....&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./bin/gmg shell}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Problems with PIL ===&lt;br /&gt;
&lt;br /&gt;
Some users have claimed they&#039;ve had trouble with PIL working nicely on their system.  You could try installing Pillow:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|./bin/pip install pillow}}&lt;br /&gt;
&lt;br /&gt;
... note that we don&#039;t &amp;quot;officially&amp;quot; support pillow at this time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wiping your user data ==&lt;br /&gt;
&lt;br /&gt;
You can completely wipe all data from the instance by doing:&lt;br /&gt;
&lt;br /&gt;
{{Cmd|rm -rf mediagoblin.db kombu.db celery.db user_dev; ./bin/gmg dbupdate}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unless you&#039;re doing development and working on and testing creating&lt;br /&gt;
a new instance, you will probably never have to do this.&lt;br /&gt;
&lt;br /&gt;
== Quickstart for Django programmers ==&lt;br /&gt;
&lt;br /&gt;
We&#039;re not using Django, but the codebase is very Django-like in its&lt;br /&gt;
structure.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;routing.py&amp;lt;/tt&amp;gt; is like &amp;lt;tt&amp;gt;urls.py&amp;lt;/tt&amp;gt; in Django&lt;br /&gt;
* &amp;lt;tt&amp;gt;models.py&amp;lt;/tt&amp;gt; has SQLAlchemy ORM definitions&lt;br /&gt;
* &amp;lt;tt&amp;gt;views.py&amp;lt;/tt&amp;gt; is where the views go&lt;br /&gt;
&lt;br /&gt;
We&#039;re using SQLAlchemy, which is semi-similar to the Django ORM, but&lt;br /&gt;
not really because you can get a lot more fine-grained.  The&lt;br /&gt;
[http://docs.sqlalchemy.org/en/latest/orm/tutorial.html SQLAlchemy ORM tutorial] is a great place to start.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;YouCanHelp&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If there are other things that you think would help orient someone&lt;br /&gt;
new to GNU MediaGoblin but coming from Django, let us know!&lt;br /&gt;
&lt;br /&gt;
== Showing off your work with PageKite ==&lt;br /&gt;
&lt;br /&gt;
If you&#039;re doing development with MediaGoblin, it&#039;s sometimes helpful to show off your work to gather feedback from other contributors.  A number of the MediaGoblin developers use something called [http://pagekite.net PageKite], which is a fellow free software web service which makes temporarily showing off work on your machine easy.  There&#039;s a [http://pagekite.net/wiki/Howto/UsePageKiteWithMediaGoblin/ tutorial on how to use PageKite and MediaGoblin together] available on the PageKite wiki.&lt;br /&gt;
&lt;br /&gt;
If you are doing a lot of MediaGoblin development, the PageKite people have graciously offered us a good amount of bandwidth at no cost in an effort to help out fellow free software projects.  If you&#039;ve been making significant contributions, PM Chris Webber on freenode (who is paroneayea there) and ask if you can be added to our group plan.&lt;br /&gt;
&lt;br /&gt;
== Bite-sized bugs to start with ==&lt;br /&gt;
&lt;br /&gt;
Now you should visit our latest list of [http://issues.mediagoblin.org/query?status=!closed&amp;amp;keywords=~bitesized bite-sized issues] because squishing bugs is messy fun. If you&#039;re interested in other things to work on, or need help getting started on a bug, let us know on [http://mediagoblin.org/join/ the mailing list] or on the [http://mediagoblin.org/join/ IRC channel].&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=User:Joar/mg.wandborg.se&amp;diff=889</id>
		<title>User:Joar/mg.wandborg.se</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=User:Joar/mg.wandborg.se&amp;diff=889"/>
		<updated>2012-08-05T22:39:58Z</updated>

		<summary type="html">&lt;p&gt;Joar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://gobblin.se gobblin.se] &#039;&#039;(previously mg.wandborg.se)&#039;&#039; - GNU MediaGoblin master branch instance managed &amp;amp; owned by [[User:Joar|Joar]]&lt;br /&gt;
&lt;br /&gt;
== Registration ==&lt;br /&gt;
* Registration on the mg.wandborg.se instance is open.&lt;br /&gt;
&lt;br /&gt;
== Uptime ==&lt;br /&gt;
mg.wandborg.se is hosted on a linode 512 instance and will be online as long as there are no necessary extra costs. Details about the linode 512 plan can be found at the bottom of http://www.linode.com/.&lt;br /&gt;
&lt;br /&gt;
As of 2011-11-06 22:31 CET the linode 512 plan includes&lt;br /&gt;
&lt;br /&gt;
* 20 GB data storage&lt;br /&gt;
* 200 GB monthly bandwidth &#039;&#039;[http://blog.linode.com/2011/09/01/linode-reduces-transfer-pricing/ Only outbound]&#039;&#039;&lt;br /&gt;
* 512 MB RAM&lt;br /&gt;
&lt;br /&gt;
I have email alerts for CPU, bandwidth and IO enabled.&lt;br /&gt;
&lt;br /&gt;
=== Usage as of 2011-11-06 22:31 CET ===&lt;br /&gt;
&lt;br /&gt;
* 2.3 GB data storage (including the OS)&lt;br /&gt;
* 321 MB bandwidth&lt;br /&gt;
* Load: mostly idle&lt;br /&gt;
&lt;br /&gt;
=== Usage as of 2012-03-29 12:40 CET ===&lt;br /&gt;
&lt;br /&gt;
* 7.9 GB data storage (including the OS)&lt;br /&gt;
* 7.49 GB outgoing bandwidth (current month)&lt;br /&gt;
* 2.53 GB incoming bandwidth (current month)&lt;br /&gt;
* RAM is an issue. ~438/512M RAM and almost 255M swap full.&lt;br /&gt;
* Load: 0.06 0.11 0.13&lt;br /&gt;
&lt;br /&gt;
=== Usage as of 2012-08-06 ===&lt;br /&gt;
&lt;br /&gt;
* RAM has been upgraded to 1024M&lt;br /&gt;
&lt;br /&gt;
=== Persistance of data ===&lt;br /&gt;
The data on the instance is backed with linode&#039;s backup service.&lt;br /&gt;
&lt;br /&gt;
Database migrations provided by the master branch will run whenever I pull new code from the MediaGoblin master.&lt;br /&gt;
&lt;br /&gt;
I reserve the right to remove the mg.wandborg.se instance.&lt;br /&gt;
&lt;br /&gt;
I reserve the right to moderate the content of the mg.wandborg.se instance.&lt;br /&gt;
&lt;br /&gt;
In the case that the instance is removed, an environment dump of the entire instance will be provided via this page in a .torrent file. The environment dump will be cleaned from sensitive information such as password hashes and email addresses.&lt;br /&gt;
&lt;br /&gt;
== Abuse ==&lt;br /&gt;
To report abuse, contact me via http://wandborg.se&lt;br /&gt;
&lt;br /&gt;
[[User:Joar|Joar]] 16:43, 6 November 2011 (EST)&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=User:Joar/mg.wandborg.se&amp;diff=888</id>
		<title>User:Joar/mg.wandborg.se</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=User:Joar/mg.wandborg.se&amp;diff=888"/>
		<updated>2012-08-05T22:39:46Z</updated>

		<summary type="html">&lt;p&gt;Joar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://gobblin.se gobblin.se] &#039;&#039;(previously mg.wandborg.se)&#039;&#039; - GNU MediaGoblin master branch instance managed &amp;amp; owned by [[User:Joar|Joar]]&lt;br /&gt;
&lt;br /&gt;
== Registration ==&lt;br /&gt;
* Registration on the mg.wandborg.se instance is open.&lt;br /&gt;
&lt;br /&gt;
== Uptime ==&lt;br /&gt;
mg.wandborg.se is hosted on a linode 512 instance and will be online as long as there are no necessary extra costs. Details about the linode 512 plan can be found at the bottom of http://www.linode.com/.&lt;br /&gt;
&lt;br /&gt;
As of 2011-11-06 22:31 CET the linode 512 plan includes&lt;br /&gt;
&lt;br /&gt;
* 20 GB data storage&lt;br /&gt;
* 200 GB monthly bandwidth &#039;&#039;[http://blog.linode.com/2011/09/01/linode-reduces-transfer-pricing/ Only outbound]&#039;&#039;&lt;br /&gt;
* 512 MB RAM&lt;br /&gt;
&lt;br /&gt;
I have email alerts for CPU, bandwidth and IO enabled.&lt;br /&gt;
&lt;br /&gt;
=== Usage as of 2011-11-06 22:31 CET ===&lt;br /&gt;
&lt;br /&gt;
* 2.3 GB data storage (including the OS)&lt;br /&gt;
* 321 MB bandwidth&lt;br /&gt;
* Load: mostly idle&lt;br /&gt;
&lt;br /&gt;
=== Usage as of 2012-03-29 12:40 CET ===&lt;br /&gt;
&lt;br /&gt;
* 7.9 GB data storage (including the OS)&lt;br /&gt;
* 7.49 GB outgoing bandwidth (current month)&lt;br /&gt;
* 2.53 GB incoming bandwidth (current month)&lt;br /&gt;
* RAM is an issue. ~438/512M RAM and almost 255M swap full.&lt;br /&gt;
* Load: 0.06 0.11 0.13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Usage as of 2012-08-06 ===&lt;br /&gt;
&lt;br /&gt;
* RAM has been upgraded to 1024M&lt;br /&gt;
&lt;br /&gt;
=== Persistance of data ===&lt;br /&gt;
The data on the instance is backed with linode&#039;s backup service.&lt;br /&gt;
&lt;br /&gt;
Database migrations provided by the master branch will run whenever I pull new code from the MediaGoblin master.&lt;br /&gt;
&lt;br /&gt;
I reserve the right to remove the mg.wandborg.se instance.&lt;br /&gt;
&lt;br /&gt;
I reserve the right to moderate the content of the mg.wandborg.se instance.&lt;br /&gt;
&lt;br /&gt;
In the case that the instance is removed, an environment dump of the entire instance will be provided via this page in a .torrent file. The environment dump will be cleaned from sensitive information such as password hashes and email addresses.&lt;br /&gt;
&lt;br /&gt;
== Abuse ==&lt;br /&gt;
To report abuse, contact me via http://wandborg.se&lt;br /&gt;
&lt;br /&gt;
[[User:Joar|Joar]] 16:43, 6 November 2011 (EST)&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=User:Joar/mg.wandborg.se&amp;diff=887</id>
		<title>User:Joar/mg.wandborg.se</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=User:Joar/mg.wandborg.se&amp;diff=887"/>
		<updated>2012-08-05T22:23:42Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://gobblin.se gobblin.se] &#039;&#039;(previously mg.wandborg.se)&#039;&#039; - GNU MediaGoblin master branch instance managed &amp;amp; owned by [[User:Joar|Joar]]&lt;br /&gt;
&lt;br /&gt;
== Registration ==&lt;br /&gt;
* Registration on the mg.wandborg.se instance is open.&lt;br /&gt;
&lt;br /&gt;
== Uptime ==&lt;br /&gt;
mg.wandborg.se is hosted on a linode 512 instance and will be online as long as there are no necessary extra costs. Details about the linode 512 plan can be found at the bottom of http://www.linode.com/.&lt;br /&gt;
&lt;br /&gt;
As of 2011-11-06 22:31 CET the linode 512 plan includes&lt;br /&gt;
&lt;br /&gt;
* 20 GB data storage&lt;br /&gt;
* 200 GB monthly bandwidth &#039;&#039;[http://blog.linode.com/2011/09/01/linode-reduces-transfer-pricing/ Only outbound]&#039;&#039;&lt;br /&gt;
* 512 MB RAM&lt;br /&gt;
&lt;br /&gt;
I have email alerts for CPU, bandwidth and IO enabled.&lt;br /&gt;
&lt;br /&gt;
=== Usage as of 2011-11-06 22:31 CET ===&lt;br /&gt;
&lt;br /&gt;
* 2.3 GB data storage (including the OS)&lt;br /&gt;
* 321 MB bandwidth&lt;br /&gt;
* Load: mostly idle&lt;br /&gt;
&lt;br /&gt;
=== Usage as of 2012-03-29 12:40 CET ===&lt;br /&gt;
&lt;br /&gt;
* 7.9 GB data storage (including the OS)&lt;br /&gt;
* 7.49 GB outgoing bandwidth (current month)&lt;br /&gt;
* 2.53 GB incoming bandwidth (current month)&lt;br /&gt;
* RAM is an issue. ~438/512M RAM and almost 255M swap full.&lt;br /&gt;
* Load: 0.06 0.11 0.13&lt;br /&gt;
&lt;br /&gt;
=== Persistance of data ===&lt;br /&gt;
The data on the instance is backed with linode&#039;s backup service.&lt;br /&gt;
&lt;br /&gt;
Database migrations provided by the master branch will run whenever I pull new code from the MediaGoblin master.&lt;br /&gt;
&lt;br /&gt;
I reserve the right to remove the mg.wandborg.se instance.&lt;br /&gt;
&lt;br /&gt;
I reserve the right to moderate the content of the mg.wandborg.se instance.&lt;br /&gt;
&lt;br /&gt;
In the case that the instance is removed, an environment dump of the entire instance will be provided via this page in a .torrent file. The environment dump will be cleaned from sensitive information such as password hashes and email addresses.&lt;br /&gt;
&lt;br /&gt;
== Abuse ==&lt;br /&gt;
To report abuse, contact me via http://wandborg.se&lt;br /&gt;
&lt;br /&gt;
[[User:Joar|Joar]] 16:43, 6 November 2011 (EST)&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Meeting&amp;diff=886</id>
		<title>Meeting</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Meeting&amp;diff=886"/>
		<updated>2012-08-05T21:03:04Z</updated>

		<summary type="html">&lt;p&gt;Joar: I don&amp;#039;t think we held the meeting at 4 am UTC, looks like a confusion between AM/PM&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== MediaGoblin Monthly Meeting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;When:&#039;&#039;&#039; 9:00 am Pacific Time first Saturday of the month. [http://www.timeanddate.com/worldclock/converter.html Convert time to your timezone].  Print current UTC time: &amp;lt;code&amp;gt;date -u +&amp;quot;It&#039;s %F %T UTC&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where:&#039;&#039;&#039; IRC #mediagoblin on irc.freenode.net&lt;br /&gt;
&lt;br /&gt;
Always announced several days in advance on the [http://lists.mediagoblin.org/pipermail/devel/ mailing list] as is date adjustments, agenda discussion and other meeting preparation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Purpose:&#039;&#039;&#039; The idea is to discuss the past month, what happened, what was good, what should be done better. And to create roadmap for the upcoming month and assign tasks to people willing to handle them.&lt;br /&gt;
&lt;br /&gt;
Typical Agenda topics:&lt;br /&gt;
&lt;br /&gt;
* What happened in the last month, what was good, what could be better next time?&lt;br /&gt;
* What should be done next month?&lt;br /&gt;
&lt;br /&gt;
Meetings are logged. [http://mediagoblin.org/irclogs/ Logs for past meetings.]&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Nothing here yet&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Past Meetings ==&lt;br /&gt;
&lt;br /&gt;
=== August 4th, 2012, 9:00 am Pacific Time (2012-08-04 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-08-04.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Release schedule&lt;br /&gt;
* Plugins and themes! Who&#039;s working on one? What problems are you having? -- Please write up issues for problems so they can get fixed!&lt;br /&gt;
* Should we namespace plugins? If so, how should we namespace plugins?&lt;br /&gt;
** Python 3.3 will have support for namespace plugins. [http://www.python.org/dev/peps/pep-0420/#namespace-packages-today]&lt;br /&gt;
** In Python &amp;gt;=2.3, &amp;lt;3.3 it&#039;s a hack [http://www.python.org/dev/peps/pep-0402/#the-problem][http://www.python.org/dev/peps/pep-0420/#namespace-packages-today]&lt;br /&gt;
** Flask has a workaround[https://github.com/mitsuhiko/flask/blob/master/flask/ext/__init__.py]&lt;br /&gt;
&lt;br /&gt;
=== July 7th, 2012, 9:00 am Pacific Time (2012-07-07 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-07-07.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
Announcements:&lt;br /&gt;
&lt;br /&gt;
* Anyone who wants to edit the wiki needs to be in the goblin army group. Ask Will or Chris to get added.&lt;br /&gt;
* Plugin infrastructure landed. If you&#039;re interested in writing plugins, talk to Will. Some documentation at http://docs.mediagoblin.org/#part-2-plugin-writer-s-guide&lt;br /&gt;
&lt;br /&gt;
Agenda:&lt;br /&gt;
&lt;br /&gt;
* Keyboard shortcuts ([http://issues.mediagoblin.org/ticket/346 #346])&lt;br /&gt;
* Ticket triaging?&lt;br /&gt;
* Base plugin stuff!&lt;br /&gt;
* Theming&lt;br /&gt;
* Conference: OSCON&lt;br /&gt;
* Chris Webber&#039;s new &amp;quot;office hours&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== June 2nd, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-06-02.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* docs changes&lt;br /&gt;
** Will split the docs/ guide into a Site Administrator&#039;s Guide and a Plugin Writer&#039;s Guide&lt;br /&gt;
** Has anyone looked at the Plugin Writer&#039;s Guide, yet?&lt;br /&gt;
** Will wants to add a &amp;quot;Contributor&#039;s Guide&amp;quot; to docs/ which he&#039;d update from the wiki before every release&lt;br /&gt;
* Is there a way to improve our unit tests and motivation to write them?&lt;br /&gt;
** Simulating a browser by the way of [http://phantomjs.org/ PhantomJS], [http://seleniumhq.org/ Selenium] instead of having code simulating other code against itself might be more natural to write and even more testing the actual application. I have a good feeling about this, please prove me wrong if I&#039;d be. --[[User:Joar|Joar]] 08:53, 28 May 2012 (EDT)&lt;br /&gt;
* Administrative panel/tools and user uploads panel&lt;br /&gt;
* Git and tickets &lt;br /&gt;
* Plugins&lt;br /&gt;
** What&#039;s the state of things?&lt;br /&gt;
** Documentation&lt;br /&gt;
** What plugins might we want to build for this upcoming release?&lt;br /&gt;
** What things do we currently have that we might want to pluginify?&lt;br /&gt;
* State of kuneco/federation mini-update (Chris)&lt;br /&gt;
&lt;br /&gt;
=== May 5th, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-05-05.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Post-release reflections&lt;br /&gt;
** Woohoo, release!&lt;br /&gt;
** How did this release process go?&lt;br /&gt;
*** We should talk about that conference.&lt;br /&gt;
** What&#039;s left to clean up?&lt;br /&gt;
*** Mongokit-&amp;gt;SQL &amp;quot;style&amp;quot; query conversion?&lt;br /&gt;
*** Other cruft code?&lt;br /&gt;
* What are our next goals?&lt;br /&gt;
** Plugins&lt;br /&gt;
** Federation&lt;br /&gt;
** Favoriting&lt;br /&gt;
*** Take that, Pinterest! ;)&lt;br /&gt;
** Galleries&lt;br /&gt;
** Theming&lt;br /&gt;
*** Using sass would be neat&lt;br /&gt;
** Access restrictions&lt;br /&gt;
*** User management, or having a &amp;quot;secret url&amp;quot; that is not in the photo index that you can share with friends and generate as needed for any media type&lt;br /&gt;
** What about traffic? Some of us will host GMG on limited plans.&lt;br /&gt;
** Some kind of coding guidelines? Do we have a philosophy like &amp;quot;Keep it Simple, Stupid&amp;quot;&lt;br /&gt;
*** This concerns things like: Should plugins land in core eventually, do we want to support ALL THE MEDIA TYPES, ...&lt;br /&gt;
** Podcasting support?&lt;br /&gt;
** Things that have been hanging???&lt;br /&gt;
** Bugtrackers and milestone?&lt;br /&gt;
** More??? We should organize things!&lt;br /&gt;
* jancborchardt and his team of UX wizard-students&lt;br /&gt;
* Website redesign&lt;br /&gt;
* OpenShift?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== April 7th, 2012, 4:00 pm UTC ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-04-07.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Post-SQL stuff&lt;br /&gt;
* Pending 0.0.3 release!&lt;br /&gt;
* Are there stray patches/branches to be merged?&lt;br /&gt;
* Our glorious upcoming plugin future! (Update from Will)&lt;br /&gt;
&lt;br /&gt;
=== March 3rd, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-03-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* [[GSOC 2012]]&lt;br /&gt;
* State of the SQL transition (preview: it&#039;s super close, but we need help!)&lt;br /&gt;
* Plugin discussion (Will can&#039;t make this, but we should talk about use cases)&lt;br /&gt;
* MediaGoblin at upcoming conferences&lt;br /&gt;
* PageKite accounts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2012-02 (held on 2012-02-04) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-02-04.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Code style guide?  See also: http://issues.mediagoblin.org/ticket/197&lt;br /&gt;
* Kuneco/federation&lt;br /&gt;
* API&lt;br /&gt;
* More testing discussion?&lt;br /&gt;
* Theming?&lt;br /&gt;
* Preliminary plugin discussion&lt;br /&gt;
* Status update from the &amp;quot;SQL Team&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some of the decisions:&lt;br /&gt;
&lt;br /&gt;
* file an issue about proper &amp;amp;lt;audio&amp;amp;gt; support.&lt;br /&gt;
* some TODOs recorded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-12 (held on 2011-12-03) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-12-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* We plan to create a plugin system.  Do we want to create that soon or push it off until things settle a bit more?  ([[User:Willkg|Willkg]] 08:54, 10 November 2011 (EST))&lt;br /&gt;
* [[Feature Ideas]]: What should we do about the wiki page? Keep it and have it as a monthly topic for &amp;quot;what next&amp;quot;? Convert everything to long waiting bugs?&lt;br /&gt;
* Possibility of an [[SQL Database Backend]]?&lt;br /&gt;
*: &#039;executive summary&#039; (well, you should read the long docs): &amp;quot;We could move to sql. It&#039;s probably replacing one type of pain by another type of pain, but those are somewhat comparable. Leaving the main question: Do we want to occupy our main devs for some long time with this task and loose momentum?&amp;quot;&lt;br /&gt;
* Schendje&#039;s [http://wiki.mediagoblin.org/Feature_Ideas/Activities activities proposal]&lt;br /&gt;
* &amp;quot;Coming up next&amp;quot; blogpost draft by Deb Nicholson&lt;br /&gt;
* Jef&#039;s requests:&lt;br /&gt;
** Ticket #466 &amp;quot;Use of &amp;quot;Submit&amp;quot; in site copy is sterile and not as friendly and welcoming as it could be&amp;quot;. I&#039;d really like to change this soon to something more suitable. How can we improve the wording here? Some alternatives have been mentioned in the bug report, but which one should we pick? Link: http://bugs.foocorp.net/issues/466&lt;br /&gt;
** The concept and naming of &amp;quot;favourites&amp;quot;. We&#039;ll (hopefully) be able to &amp;quot;favourite&amp;quot; media soon, which I *think* means that 1) it&#039;ll work like a &amp;quot;I like this&amp;quot; comment, a quick token of appreciation, 2) it&#039;ll be added to your list of favourites so you can save and promote it, and 3) we could maybe use the number of favourites as a ranking. What I&#039;d like to know is: is that the intended purpose? If so, should we name them favo(u)rites or something else? &amp;quot;Like&amp;quot;, &amp;quot;love&amp;quot;, &amp;quot;save&amp;quot;, &amp;quot;appreciate&amp;quot;, &amp;quot;heart&amp;quot;, &amp;quot;high five&amp;quot; and many more could all be contenders. And the name should be consistent with the action and purpose, of course. So I&#039;d like to clear up how and why we will use favourites and what we should call them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-11 (held on 2011-11-05) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-11-05.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* What happened in the last month, what was good, what could be better next time?&lt;br /&gt;
** Release:&lt;br /&gt;
*** Good: 0.1.0 released!&lt;br /&gt;
*** Bad: postponing vs not postponing&lt;br /&gt;
** Sites and deployment documentation:&lt;br /&gt;
*** Good: new mediagoblin.org&lt;br /&gt;
*** Good: deployment documentation&lt;br /&gt;
*** Bad: py-bcrypt’s site was down just after the release, so the virtualenv deployment didn’t work, and it wasn’t clear how to fix it.&lt;br /&gt;
** Live instances:&lt;br /&gt;
*** Joar has a live instance!&lt;br /&gt;
*** But what does it mean? Should ordinary users start using it?&lt;br /&gt;
**** Details at [[User:Joar/mg.wandborg.se]] -- [[User:Joar|Joar]] 17:01, 6 November 2011 (EST)&lt;br /&gt;
*** nyergler added a note about &amp;quot;heartbeat&amp;quot;/status to API notes&lt;br /&gt;
* What should be done next month?&lt;br /&gt;
* Starting real work on federation (via OStatus)... and do we split any of this work out into its own library?&lt;br /&gt;
* An API&lt;br /&gt;
* Creative Commons licensing tools&lt;br /&gt;
* Merging in the multimedia/video branch&lt;br /&gt;
*: (this is *very close* already actually thanks to the hard work of Joar Wandborg!  But we need some help on the gstreamer front to fix a few issues... if you or someone you know is an expert in this area we could really use their help to make the videos that come out smoother!)&lt;br /&gt;
* Rollover items from 0.1.0&lt;br /&gt;
* Multiple file upload interface&lt;br /&gt;
* Drag and drop uploads interface (probably related!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-10 (held on 2011-10-01) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-10-01.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
This month&#039;s meeting was a quickly announced short meeting. The project is getting back on track and next month&#039;s meeting will be scheduled more properly. A bunch of people were around.&lt;br /&gt;
&lt;br /&gt;
The most important decisions:&lt;br /&gt;
* The project will keep monthly releases. They&#039;re the heartbeat of the project.&lt;br /&gt;
* Release 0.1.0 this sunday/monday.&lt;br /&gt;
* New website will hopefully be deployed in the next few days.&lt;br /&gt;
* And the following things are planned to happen during this month: Most importantly federation. The developers have decided to make up their minds on what federation aactually should mean for MediaGoblin. Concerning code, probably &amp;quot;activity streams&amp;quot; are the first goal. If there is no (good) python library for this, a new stand alone library may be created. If so, a name for it has to be found. It should have something about communication in it. And the other thing to happen during this month is an ongoing discussion about &amp;quot;bus factor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-09 (held on 2011-09-03) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-09-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-08 (held on 2011-08-06) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-08-06.txt IRC log]&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Meeting&amp;diff=885</id>
		<title>Meeting</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Meeting&amp;diff=885"/>
		<updated>2012-08-05T21:01:27Z</updated>

		<summary type="html">&lt;p&gt;Joar: Moved last two meetings one level down in the header hierarchy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== MediaGoblin Monthly Meeting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;When:&#039;&#039;&#039; 9:00 am Pacific Time first Saturday of the month. [http://www.timeanddate.com/worldclock/converter.html Convert time to your timezone].  Print current UTC time: &amp;lt;code&amp;gt;date -u +&amp;quot;It&#039;s %F %T UTC&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where:&#039;&#039;&#039; IRC #mediagoblin on irc.freenode.net&lt;br /&gt;
&lt;br /&gt;
Always announced several days in advance on the [http://lists.mediagoblin.org/pipermail/devel/ mailing list] as is date adjustments, agenda discussion and other meeting preparation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Purpose:&#039;&#039;&#039; The idea is to discuss the past month, what happened, what was good, what should be done better. And to create roadmap for the upcoming month and assign tasks to people willing to handle them.&lt;br /&gt;
&lt;br /&gt;
Typical Agenda topics:&lt;br /&gt;
&lt;br /&gt;
* What happened in the last month, what was good, what could be better next time?&lt;br /&gt;
* What should be done next month?&lt;br /&gt;
&lt;br /&gt;
Meetings are logged. [http://mediagoblin.org/irclogs/ Logs for past meetings.]&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Nothing here yet&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Past Meetings ==&lt;br /&gt;
&lt;br /&gt;
=== August 4th, 2012, 9:00 am Pacific Time (2012-08-04 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-08-04.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Release schedule&lt;br /&gt;
* Plugins and themes! Who&#039;s working on one? What problems are you having? -- Please write up issues for problems so they can get fixed!&lt;br /&gt;
* Should we namespace plugins? If so, how should we namespace plugins?&lt;br /&gt;
** Python 3.3 will have support for namespace plugins. [http://www.python.org/dev/peps/pep-0420/#namespace-packages-today]&lt;br /&gt;
** In Python &amp;gt;=2.3, &amp;lt;3.3 it&#039;s a hack [http://www.python.org/dev/peps/pep-0402/#the-problem][http://www.python.org/dev/peps/pep-0420/#namespace-packages-today]&lt;br /&gt;
** Flask has a workaround[https://github.com/mitsuhiko/flask/blob/master/flask/ext/__init__.py]&lt;br /&gt;
&lt;br /&gt;
=== July 7th, 2012, 9:00 am Pacific Time (2012-07-07 16:00 UTC) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-07-07.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
Announcements:&lt;br /&gt;
&lt;br /&gt;
* Anyone who wants to edit the wiki needs to be in the goblin army group. Ask Will or Chris to get added.&lt;br /&gt;
* Plugin infrastructure landed. If you&#039;re interested in writing plugins, talk to Will. Some documentation at http://docs.mediagoblin.org/#part-2-plugin-writer-s-guide&lt;br /&gt;
&lt;br /&gt;
Agenda:&lt;br /&gt;
&lt;br /&gt;
* Keyboard shortcuts ([http://issues.mediagoblin.org/ticket/346 #346])&lt;br /&gt;
* Ticket triaging?&lt;br /&gt;
* Base plugin stuff!&lt;br /&gt;
* Theming&lt;br /&gt;
* Conference: OSCON&lt;br /&gt;
* Chris Webber&#039;s new &amp;quot;office hours&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== June 2nd, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-06-02.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* docs changes&lt;br /&gt;
** Will split the docs/ guide into a Site Administrator&#039;s Guide and a Plugin Writer&#039;s Guide&lt;br /&gt;
** Has anyone looked at the Plugin Writer&#039;s Guide, yet?&lt;br /&gt;
** Will wants to add a &amp;quot;Contributor&#039;s Guide&amp;quot; to docs/ which he&#039;d update from the wiki before every release&lt;br /&gt;
* Is there a way to improve our unit tests and motivation to write them?&lt;br /&gt;
** Simulating a browser by the way of [http://phantomjs.org/ PhantomJS], [http://seleniumhq.org/ Selenium] instead of having code simulating other code against itself might be more natural to write and even more testing the actual application. I have a good feeling about this, please prove me wrong if I&#039;d be. --[[User:Joar|Joar]] 08:53, 28 May 2012 (EDT)&lt;br /&gt;
* Administrative panel/tools and user uploads panel&lt;br /&gt;
* Git and tickets &lt;br /&gt;
* Plugins&lt;br /&gt;
** What&#039;s the state of things?&lt;br /&gt;
** Documentation&lt;br /&gt;
** What plugins might we want to build for this upcoming release?&lt;br /&gt;
** What things do we currently have that we might want to pluginify?&lt;br /&gt;
* State of kuneco/federation mini-update (Chris)&lt;br /&gt;
&lt;br /&gt;
=== May 5th, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-05-05.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Post-release reflections&lt;br /&gt;
** Woohoo, release!&lt;br /&gt;
** How did this release process go?&lt;br /&gt;
*** We should talk about that conference.&lt;br /&gt;
** What&#039;s left to clean up?&lt;br /&gt;
*** Mongokit-&amp;gt;SQL &amp;quot;style&amp;quot; query conversion?&lt;br /&gt;
*** Other cruft code?&lt;br /&gt;
* What are our next goals?&lt;br /&gt;
** Plugins&lt;br /&gt;
** Federation&lt;br /&gt;
** Favoriting&lt;br /&gt;
*** Take that, Pinterest! ;)&lt;br /&gt;
** Galleries&lt;br /&gt;
** Theming&lt;br /&gt;
*** Using sass would be neat&lt;br /&gt;
** Access restrictions&lt;br /&gt;
*** User management, or having a &amp;quot;secret url&amp;quot; that is not in the photo index that you can share with friends and generate as needed for any media type&lt;br /&gt;
** What about traffic? Some of us will host GMG on limited plans.&lt;br /&gt;
** Some kind of coding guidelines? Do we have a philosophy like &amp;quot;Keep it Simple, Stupid&amp;quot;&lt;br /&gt;
*** This concerns things like: Should plugins land in core eventually, do we want to support ALL THE MEDIA TYPES, ...&lt;br /&gt;
** Podcasting support?&lt;br /&gt;
** Things that have been hanging???&lt;br /&gt;
** Bugtrackers and milestone?&lt;br /&gt;
** More??? We should organize things!&lt;br /&gt;
* jancborchardt and his team of UX wizard-students&lt;br /&gt;
* Website redesign&lt;br /&gt;
* OpenShift?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== April 7th, 2012, 4:00 am UTC ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-04-07.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Post-SQL stuff&lt;br /&gt;
* Pending 0.0.3 release!&lt;br /&gt;
* Are there stray patches/branches to be merged?&lt;br /&gt;
* Our glorious upcoming plugin future! (Update from Will)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== March 3rd, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-03-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* [[GSOC 2012]]&lt;br /&gt;
* State of the SQL transition (preview: it&#039;s super close, but we need help!)&lt;br /&gt;
* Plugin discussion (Will can&#039;t make this, but we should talk about use cases)&lt;br /&gt;
* MediaGoblin at upcoming conferences&lt;br /&gt;
* PageKite accounts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2012-02 (held on 2012-02-04) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-02-04.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Code style guide?  See also: http://issues.mediagoblin.org/ticket/197&lt;br /&gt;
* Kuneco/federation&lt;br /&gt;
* API&lt;br /&gt;
* More testing discussion?&lt;br /&gt;
* Theming?&lt;br /&gt;
* Preliminary plugin discussion&lt;br /&gt;
* Status update from the &amp;quot;SQL Team&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some of the decisions:&lt;br /&gt;
&lt;br /&gt;
* file an issue about proper &amp;amp;lt;audio&amp;amp;gt; support.&lt;br /&gt;
* some TODOs recorded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-12 (held on 2011-12-03) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-12-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* We plan to create a plugin system.  Do we want to create that soon or push it off until things settle a bit more?  ([[User:Willkg|Willkg]] 08:54, 10 November 2011 (EST))&lt;br /&gt;
* [[Feature Ideas]]: What should we do about the wiki page? Keep it and have it as a monthly topic for &amp;quot;what next&amp;quot;? Convert everything to long waiting bugs?&lt;br /&gt;
* Possibility of an [[SQL Database Backend]]?&lt;br /&gt;
*: &#039;executive summary&#039; (well, you should read the long docs): &amp;quot;We could move to sql. It&#039;s probably replacing one type of pain by another type of pain, but those are somewhat comparable. Leaving the main question: Do we want to occupy our main devs for some long time with this task and loose momentum?&amp;quot;&lt;br /&gt;
* Schendje&#039;s [http://wiki.mediagoblin.org/Feature_Ideas/Activities activities proposal]&lt;br /&gt;
* &amp;quot;Coming up next&amp;quot; blogpost draft by Deb Nicholson&lt;br /&gt;
* Jef&#039;s requests:&lt;br /&gt;
** Ticket #466 &amp;quot;Use of &amp;quot;Submit&amp;quot; in site copy is sterile and not as friendly and welcoming as it could be&amp;quot;. I&#039;d really like to change this soon to something more suitable. How can we improve the wording here? Some alternatives have been mentioned in the bug report, but which one should we pick? Link: http://bugs.foocorp.net/issues/466&lt;br /&gt;
** The concept and naming of &amp;quot;favourites&amp;quot;. We&#039;ll (hopefully) be able to &amp;quot;favourite&amp;quot; media soon, which I *think* means that 1) it&#039;ll work like a &amp;quot;I like this&amp;quot; comment, a quick token of appreciation, 2) it&#039;ll be added to your list of favourites so you can save and promote it, and 3) we could maybe use the number of favourites as a ranking. What I&#039;d like to know is: is that the intended purpose? If so, should we name them favo(u)rites or something else? &amp;quot;Like&amp;quot;, &amp;quot;love&amp;quot;, &amp;quot;save&amp;quot;, &amp;quot;appreciate&amp;quot;, &amp;quot;heart&amp;quot;, &amp;quot;high five&amp;quot; and many more could all be contenders. And the name should be consistent with the action and purpose, of course. So I&#039;d like to clear up how and why we will use favourites and what we should call them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-11 (held on 2011-11-05) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-11-05.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* What happened in the last month, what was good, what could be better next time?&lt;br /&gt;
** Release:&lt;br /&gt;
*** Good: 0.1.0 released!&lt;br /&gt;
*** Bad: postponing vs not postponing&lt;br /&gt;
** Sites and deployment documentation:&lt;br /&gt;
*** Good: new mediagoblin.org&lt;br /&gt;
*** Good: deployment documentation&lt;br /&gt;
*** Bad: py-bcrypt’s site was down just after the release, so the virtualenv deployment didn’t work, and it wasn’t clear how to fix it.&lt;br /&gt;
** Live instances:&lt;br /&gt;
*** Joar has a live instance!&lt;br /&gt;
*** But what does it mean? Should ordinary users start using it?&lt;br /&gt;
**** Details at [[User:Joar/mg.wandborg.se]] -- [[User:Joar|Joar]] 17:01, 6 November 2011 (EST)&lt;br /&gt;
*** nyergler added a note about &amp;quot;heartbeat&amp;quot;/status to API notes&lt;br /&gt;
* What should be done next month?&lt;br /&gt;
* Starting real work on federation (via OStatus)... and do we split any of this work out into its own library?&lt;br /&gt;
* An API&lt;br /&gt;
* Creative Commons licensing tools&lt;br /&gt;
* Merging in the multimedia/video branch&lt;br /&gt;
*: (this is *very close* already actually thanks to the hard work of Joar Wandborg!  But we need some help on the gstreamer front to fix a few issues... if you or someone you know is an expert in this area we could really use their help to make the videos that come out smoother!)&lt;br /&gt;
* Rollover items from 0.1.0&lt;br /&gt;
* Multiple file upload interface&lt;br /&gt;
* Drag and drop uploads interface (probably related!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-10 (held on 2011-10-01) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-10-01.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
This month&#039;s meeting was a quickly announced short meeting. The project is getting back on track and next month&#039;s meeting will be scheduled more properly. A bunch of people were around.&lt;br /&gt;
&lt;br /&gt;
The most important decisions:&lt;br /&gt;
* The project will keep monthly releases. They&#039;re the heartbeat of the project.&lt;br /&gt;
* Release 0.1.0 this sunday/monday.&lt;br /&gt;
* New website will hopefully be deployed in the next few days.&lt;br /&gt;
* And the following things are planned to happen during this month: Most importantly federation. The developers have decided to make up their minds on what federation aactually should mean for MediaGoblin. Concerning code, probably &amp;quot;activity streams&amp;quot; are the first goal. If there is no (good) python library for this, a new stand alone library may be created. If so, a name for it has to be found. It should have something about communication in it. And the other thing to happen during this month is an ongoing discussion about &amp;quot;bus factor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-09 (held on 2011-09-03) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-09-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-08 (held on 2011-08-06) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-08-06.txt IRC log]&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Meeting&amp;diff=884</id>
		<title>Meeting</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Meeting&amp;diff=884"/>
		<updated>2012-08-05T21:00:28Z</updated>

		<summary type="html">&lt;p&gt;Joar: Moved 2012-08-04 meeting to past meetings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== MediaGoblin Monthly Meeting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;When:&#039;&#039;&#039; 9:00 am Pacific Time first Saturday of the month. [http://www.timeanddate.com/worldclock/converter.html Convert time to your timezone].  Print current UTC time: &amp;lt;code&amp;gt;date -u +&amp;quot;It&#039;s %F %T UTC&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where:&#039;&#039;&#039; IRC #mediagoblin on irc.freenode.net&lt;br /&gt;
&lt;br /&gt;
Always announced several days in advance on the [http://lists.mediagoblin.org/pipermail/devel/ mailing list] as is date adjustments, agenda discussion and other meeting preparation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Purpose:&#039;&#039;&#039; The idea is to discuss the past month, what happened, what was good, what should be done better. And to create roadmap for the upcoming month and assign tasks to people willing to handle them.&lt;br /&gt;
&lt;br /&gt;
Typical Agenda topics:&lt;br /&gt;
&lt;br /&gt;
* What happened in the last month, what was good, what could be better next time?&lt;br /&gt;
* What should be done next month?&lt;br /&gt;
&lt;br /&gt;
Meetings are logged. [http://mediagoblin.org/irclogs/ Logs for past meetings.]&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Nothing here yet&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Past Meetings ==&lt;br /&gt;
&lt;br /&gt;
== August 4th, 2012, 9:00 am Pacific Time (2012-08-04 16:00 UTC) ==&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-08-04.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Release schedule&lt;br /&gt;
* Plugins and themes! Who&#039;s working on one? What problems are you having? -- Please write up issues for problems so they can get fixed!&lt;br /&gt;
* Should we namespace plugins? If so, how should we namespace plugins?&lt;br /&gt;
** Python 3.3 will have support for namespace plugins. [http://www.python.org/dev/peps/pep-0420/#namespace-packages-today]&lt;br /&gt;
** In Python &amp;gt;=2.3, &amp;lt;3.3 it&#039;s a hack [http://www.python.org/dev/peps/pep-0402/#the-problem][http://www.python.org/dev/peps/pep-0420/#namespace-packages-today]&lt;br /&gt;
** Flask has a workaround[https://github.com/mitsuhiko/flask/blob/master/flask/ext/__init__.py]&lt;br /&gt;
&lt;br /&gt;
== July 7th, 2012, 9:00 am Pacific Time (2012-07-07 16:00 UTC) ==&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-07-07.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
Announcements:&lt;br /&gt;
&lt;br /&gt;
* Anyone who wants to edit the wiki needs to be in the goblin army group. Ask Will or Chris to get added.&lt;br /&gt;
* Plugin infrastructure landed. If you&#039;re interested in writing plugins, talk to Will. Some documentation at http://docs.mediagoblin.org/#part-2-plugin-writer-s-guide&lt;br /&gt;
&lt;br /&gt;
Agenda:&lt;br /&gt;
&lt;br /&gt;
* Keyboard shortcuts ([http://issues.mediagoblin.org/ticket/346 #346])&lt;br /&gt;
* Ticket triaging?&lt;br /&gt;
* Base plugin stuff!&lt;br /&gt;
* Theming&lt;br /&gt;
* Conference: OSCON&lt;br /&gt;
* Chris Webber&#039;s new &amp;quot;office hours&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== June 2nd, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-06-02.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* docs changes&lt;br /&gt;
** Will split the docs/ guide into a Site Administrator&#039;s Guide and a Plugin Writer&#039;s Guide&lt;br /&gt;
** Has anyone looked at the Plugin Writer&#039;s Guide, yet?&lt;br /&gt;
** Will wants to add a &amp;quot;Contributor&#039;s Guide&amp;quot; to docs/ which he&#039;d update from the wiki before every release&lt;br /&gt;
* Is there a way to improve our unit tests and motivation to write them?&lt;br /&gt;
** Simulating a browser by the way of [http://phantomjs.org/ PhantomJS], [http://seleniumhq.org/ Selenium] instead of having code simulating other code against itself might be more natural to write and even more testing the actual application. I have a good feeling about this, please prove me wrong if I&#039;d be. --[[User:Joar|Joar]] 08:53, 28 May 2012 (EDT)&lt;br /&gt;
* Administrative panel/tools and user uploads panel&lt;br /&gt;
* Git and tickets &lt;br /&gt;
* Plugins&lt;br /&gt;
** What&#039;s the state of things?&lt;br /&gt;
** Documentation&lt;br /&gt;
** What plugins might we want to build for this upcoming release?&lt;br /&gt;
** What things do we currently have that we might want to pluginify?&lt;br /&gt;
* State of kuneco/federation mini-update (Chris)&lt;br /&gt;
&lt;br /&gt;
=== May 5th, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-05-05.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Post-release reflections&lt;br /&gt;
** Woohoo, release!&lt;br /&gt;
** How did this release process go?&lt;br /&gt;
*** We should talk about that conference.&lt;br /&gt;
** What&#039;s left to clean up?&lt;br /&gt;
*** Mongokit-&amp;gt;SQL &amp;quot;style&amp;quot; query conversion?&lt;br /&gt;
*** Other cruft code?&lt;br /&gt;
* What are our next goals?&lt;br /&gt;
** Plugins&lt;br /&gt;
** Federation&lt;br /&gt;
** Favoriting&lt;br /&gt;
*** Take that, Pinterest! ;)&lt;br /&gt;
** Galleries&lt;br /&gt;
** Theming&lt;br /&gt;
*** Using sass would be neat&lt;br /&gt;
** Access restrictions&lt;br /&gt;
*** User management, or having a &amp;quot;secret url&amp;quot; that is not in the photo index that you can share with friends and generate as needed for any media type&lt;br /&gt;
** What about traffic? Some of us will host GMG on limited plans.&lt;br /&gt;
** Some kind of coding guidelines? Do we have a philosophy like &amp;quot;Keep it Simple, Stupid&amp;quot;&lt;br /&gt;
*** This concerns things like: Should plugins land in core eventually, do we want to support ALL THE MEDIA TYPES, ...&lt;br /&gt;
** Podcasting support?&lt;br /&gt;
** Things that have been hanging???&lt;br /&gt;
** Bugtrackers and milestone?&lt;br /&gt;
** More??? We should organize things!&lt;br /&gt;
* jancborchardt and his team of UX wizard-students&lt;br /&gt;
* Website redesign&lt;br /&gt;
* OpenShift?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== April 7th, 2012, 4:00 am UTC ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-04-07.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Post-SQL stuff&lt;br /&gt;
* Pending 0.0.3 release!&lt;br /&gt;
* Are there stray patches/branches to be merged?&lt;br /&gt;
* Our glorious upcoming plugin future! (Update from Will)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== March 3rd, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-03-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* [[GSOC 2012]]&lt;br /&gt;
* State of the SQL transition (preview: it&#039;s super close, but we need help!)&lt;br /&gt;
* Plugin discussion (Will can&#039;t make this, but we should talk about use cases)&lt;br /&gt;
* MediaGoblin at upcoming conferences&lt;br /&gt;
* PageKite accounts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2012-02 (held on 2012-02-04) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-02-04.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Code style guide?  See also: http://issues.mediagoblin.org/ticket/197&lt;br /&gt;
* Kuneco/federation&lt;br /&gt;
* API&lt;br /&gt;
* More testing discussion?&lt;br /&gt;
* Theming?&lt;br /&gt;
* Preliminary plugin discussion&lt;br /&gt;
* Status update from the &amp;quot;SQL Team&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some of the decisions:&lt;br /&gt;
&lt;br /&gt;
* file an issue about proper &amp;amp;lt;audio&amp;amp;gt; support.&lt;br /&gt;
* some TODOs recorded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-12 (held on 2011-12-03) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-12-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* We plan to create a plugin system.  Do we want to create that soon or push it off until things settle a bit more?  ([[User:Willkg|Willkg]] 08:54, 10 November 2011 (EST))&lt;br /&gt;
* [[Feature Ideas]]: What should we do about the wiki page? Keep it and have it as a monthly topic for &amp;quot;what next&amp;quot;? Convert everything to long waiting bugs?&lt;br /&gt;
* Possibility of an [[SQL Database Backend]]?&lt;br /&gt;
*: &#039;executive summary&#039; (well, you should read the long docs): &amp;quot;We could move to sql. It&#039;s probably replacing one type of pain by another type of pain, but those are somewhat comparable. Leaving the main question: Do we want to occupy our main devs for some long time with this task and loose momentum?&amp;quot;&lt;br /&gt;
* Schendje&#039;s [http://wiki.mediagoblin.org/Feature_Ideas/Activities activities proposal]&lt;br /&gt;
* &amp;quot;Coming up next&amp;quot; blogpost draft by Deb Nicholson&lt;br /&gt;
* Jef&#039;s requests:&lt;br /&gt;
** Ticket #466 &amp;quot;Use of &amp;quot;Submit&amp;quot; in site copy is sterile and not as friendly and welcoming as it could be&amp;quot;. I&#039;d really like to change this soon to something more suitable. How can we improve the wording here? Some alternatives have been mentioned in the bug report, but which one should we pick? Link: http://bugs.foocorp.net/issues/466&lt;br /&gt;
** The concept and naming of &amp;quot;favourites&amp;quot;. We&#039;ll (hopefully) be able to &amp;quot;favourite&amp;quot; media soon, which I *think* means that 1) it&#039;ll work like a &amp;quot;I like this&amp;quot; comment, a quick token of appreciation, 2) it&#039;ll be added to your list of favourites so you can save and promote it, and 3) we could maybe use the number of favourites as a ranking. What I&#039;d like to know is: is that the intended purpose? If so, should we name them favo(u)rites or something else? &amp;quot;Like&amp;quot;, &amp;quot;love&amp;quot;, &amp;quot;save&amp;quot;, &amp;quot;appreciate&amp;quot;, &amp;quot;heart&amp;quot;, &amp;quot;high five&amp;quot; and many more could all be contenders. And the name should be consistent with the action and purpose, of course. So I&#039;d like to clear up how and why we will use favourites and what we should call them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-11 (held on 2011-11-05) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-11-05.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* What happened in the last month, what was good, what could be better next time?&lt;br /&gt;
** Release:&lt;br /&gt;
*** Good: 0.1.0 released!&lt;br /&gt;
*** Bad: postponing vs not postponing&lt;br /&gt;
** Sites and deployment documentation:&lt;br /&gt;
*** Good: new mediagoblin.org&lt;br /&gt;
*** Good: deployment documentation&lt;br /&gt;
*** Bad: py-bcrypt’s site was down just after the release, so the virtualenv deployment didn’t work, and it wasn’t clear how to fix it.&lt;br /&gt;
** Live instances:&lt;br /&gt;
*** Joar has a live instance!&lt;br /&gt;
*** But what does it mean? Should ordinary users start using it?&lt;br /&gt;
**** Details at [[User:Joar/mg.wandborg.se]] -- [[User:Joar|Joar]] 17:01, 6 November 2011 (EST)&lt;br /&gt;
*** nyergler added a note about &amp;quot;heartbeat&amp;quot;/status to API notes&lt;br /&gt;
* What should be done next month?&lt;br /&gt;
* Starting real work on federation (via OStatus)... and do we split any of this work out into its own library?&lt;br /&gt;
* An API&lt;br /&gt;
* Creative Commons licensing tools&lt;br /&gt;
* Merging in the multimedia/video branch&lt;br /&gt;
*: (this is *very close* already actually thanks to the hard work of Joar Wandborg!  But we need some help on the gstreamer front to fix a few issues... if you or someone you know is an expert in this area we could really use their help to make the videos that come out smoother!)&lt;br /&gt;
* Rollover items from 0.1.0&lt;br /&gt;
* Multiple file upload interface&lt;br /&gt;
* Drag and drop uploads interface (probably related!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-10 (held on 2011-10-01) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-10-01.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
This month&#039;s meeting was a quickly announced short meeting. The project is getting back on track and next month&#039;s meeting will be scheduled more properly. A bunch of people were around.&lt;br /&gt;
&lt;br /&gt;
The most important decisions:&lt;br /&gt;
* The project will keep monthly releases. They&#039;re the heartbeat of the project.&lt;br /&gt;
* Release 0.1.0 this sunday/monday.&lt;br /&gt;
* New website will hopefully be deployed in the next few days.&lt;br /&gt;
* And the following things are planned to happen during this month: Most importantly federation. The developers have decided to make up their minds on what federation aactually should mean for MediaGoblin. Concerning code, probably &amp;quot;activity streams&amp;quot; are the first goal. If there is no (good) python library for this, a new stand alone library may be created. If so, a name for it has to be found. It should have something about communication in it. And the other thing to happen during this month is an ongoing discussion about &amp;quot;bus factor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-09 (held on 2011-09-03) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-09-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-08 (held on 2011-08-06) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-08-06.txt IRC log]&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Meeting&amp;diff=880</id>
		<title>Meeting</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Meeting&amp;diff=880"/>
		<updated>2012-08-01T01:30:57Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* Next Meeting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== MediaGoblin Monthly Meeting ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;When:&#039;&#039;&#039; 9:00 am Pacific Time first Saturday of the month. [http://www.timeanddate.com/worldclock/converter.html Convert time to your timezone].  Print current UTC time: &amp;lt;code&amp;gt;date -u +&amp;quot;It&#039;s %F %T UTC&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Where:&#039;&#039;&#039; IRC #mediagoblin on irc.freenode.net&lt;br /&gt;
&lt;br /&gt;
Always announced several days in advance on the [http://lists.mediagoblin.org/pipermail/devel/ mailing list] as is date adjustments, agenda discussion and other meeting preparation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Purpose:&#039;&#039;&#039; The idea is to discuss the past month, what happened, what was good, what should be done better. And to create roadmap for the upcoming month and assign tasks to people willing to handle them.&lt;br /&gt;
&lt;br /&gt;
Typical Agenda topics:&lt;br /&gt;
&lt;br /&gt;
* What happened in the last month, what was good, what could be better next time?&lt;br /&gt;
* What should be done next month?&lt;br /&gt;
&lt;br /&gt;
Meetings are logged. [http://mediagoblin.org/irclogs/ Logs for past meetings.]&lt;br /&gt;
&lt;br /&gt;
== Next Meeting ==&lt;br /&gt;
&lt;br /&gt;
August 4th, 2012, 9:00 am Pacific Time (2012-08-04 16:00 UTC)&lt;br /&gt;
&lt;br /&gt;
* How should we namespace plugins?&lt;br /&gt;
** Python 3.3 will have support for namespace plugins. [http://www.python.org/dev/peps/pep-0420/#namespace-packages-today]&lt;br /&gt;
** In Python &amp;gt;=2.3, &amp;lt;3.3 it&#039;s a hack [http://www.python.org/dev/peps/pep-0402/#the-problem][http://www.python.org/dev/peps/pep-0420/#namespace-packages-today]&lt;br /&gt;
** Flask has a workaround[https://github.com/mitsuhiko/flask/blob/master/flask/ext/__init__.py]&lt;br /&gt;
&lt;br /&gt;
== Past Meetings ==&lt;br /&gt;
&lt;br /&gt;
== July 7th, 2012, 9:00 am Pacific Time (2012-07-07 16:00 UTC) ==&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-07-07.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
Announcements:&lt;br /&gt;
&lt;br /&gt;
* Anyone who wants to edit the wiki needs to be in the goblin army group. Ask Will or Chris to get added.&lt;br /&gt;
* Plugin infrastructure landed. If you&#039;re interested in writing plugins, talk to Will. Some documentation at http://docs.mediagoblin.org/#part-2-plugin-writer-s-guide&lt;br /&gt;
&lt;br /&gt;
Agenda:&lt;br /&gt;
&lt;br /&gt;
* Keyboard shortcuts ([http://issues.mediagoblin.org/ticket/346 #346])&lt;br /&gt;
* Ticket triaging?&lt;br /&gt;
* Base plugin stuff!&lt;br /&gt;
* Theming&lt;br /&gt;
* Conference: OSCON&lt;br /&gt;
* Chris Webber&#039;s new &amp;quot;office hours&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== June 2nd, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-06-02.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* docs changes&lt;br /&gt;
** Will split the docs/ guide into a Site Administrator&#039;s Guide and a Plugin Writer&#039;s Guide&lt;br /&gt;
** Has anyone looked at the Plugin Writer&#039;s Guide, yet?&lt;br /&gt;
** Will wants to add a &amp;quot;Contributor&#039;s Guide&amp;quot; to docs/ which he&#039;d update from the wiki before every release&lt;br /&gt;
* Is there a way to improve our unit tests and motivation to write them?&lt;br /&gt;
** Simulating a browser by the way of [http://phantomjs.org/ PhantomJS], [http://seleniumhq.org/ Selenium] instead of having code simulating other code against itself might be more natural to write and even more testing the actual application. I have a good feeling about this, please prove me wrong if I&#039;d be. --[[User:Joar|Joar]] 08:53, 28 May 2012 (EDT)&lt;br /&gt;
* Administrative panel/tools and user uploads panel&lt;br /&gt;
* Git and tickets &lt;br /&gt;
* Plugins&lt;br /&gt;
** What&#039;s the state of things?&lt;br /&gt;
** Documentation&lt;br /&gt;
** What plugins might we want to build for this upcoming release?&lt;br /&gt;
** What things do we currently have that we might want to pluginify?&lt;br /&gt;
* State of kuneco/federation mini-update (Chris)&lt;br /&gt;
&lt;br /&gt;
=== May 5th, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-05-05.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Post-release reflections&lt;br /&gt;
** Woohoo, release!&lt;br /&gt;
** How did this release process go?&lt;br /&gt;
*** We should talk about that conference.&lt;br /&gt;
** What&#039;s left to clean up?&lt;br /&gt;
*** Mongokit-&amp;gt;SQL &amp;quot;style&amp;quot; query conversion?&lt;br /&gt;
*** Other cruft code?&lt;br /&gt;
* What are our next goals?&lt;br /&gt;
** Plugins&lt;br /&gt;
** Federation&lt;br /&gt;
** Favoriting&lt;br /&gt;
*** Take that, Pinterest! ;)&lt;br /&gt;
** Galleries&lt;br /&gt;
** Theming&lt;br /&gt;
*** Using sass would be neat&lt;br /&gt;
** Access restrictions&lt;br /&gt;
*** User management, or having a &amp;quot;secret url&amp;quot; that is not in the photo index that you can share with friends and generate as needed for any media type&lt;br /&gt;
** What about traffic? Some of us will host GMG on limited plans.&lt;br /&gt;
** Some kind of coding guidelines? Do we have a philosophy like &amp;quot;Keep it Simple, Stupid&amp;quot;&lt;br /&gt;
*** This concerns things like: Should plugins land in core eventually, do we want to support ALL THE MEDIA TYPES, ...&lt;br /&gt;
** Podcasting support?&lt;br /&gt;
** Things that have been hanging???&lt;br /&gt;
** Bugtrackers and milestone?&lt;br /&gt;
** More??? We should organize things!&lt;br /&gt;
* jancborchardt and his team of UX wizard-students&lt;br /&gt;
* Website redesign&lt;br /&gt;
* OpenShift?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== April 7th, 2012, 4:00 am UTC ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-04-07.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Post-SQL stuff&lt;br /&gt;
* Pending 0.0.3 release!&lt;br /&gt;
* Are there stray patches/branches to be merged?&lt;br /&gt;
* Our glorious upcoming plugin future! (Update from Will)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== March 3rd, 2012, 9:00 am Pacific Time ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-03-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* [[GSOC 2012]]&lt;br /&gt;
* State of the SQL transition (preview: it&#039;s super close, but we need help!)&lt;br /&gt;
* Plugin discussion (Will can&#039;t make this, but we should talk about use cases)&lt;br /&gt;
* MediaGoblin at upcoming conferences&lt;br /&gt;
* PageKite accounts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2012-02 (held on 2012-02-04) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2012-02-04.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* Code style guide?  See also: http://issues.mediagoblin.org/ticket/197&lt;br /&gt;
* Kuneco/federation&lt;br /&gt;
* API&lt;br /&gt;
* More testing discussion?&lt;br /&gt;
* Theming?&lt;br /&gt;
* Preliminary plugin discussion&lt;br /&gt;
* Status update from the &amp;quot;SQL Team&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Some of the decisions:&lt;br /&gt;
&lt;br /&gt;
* file an issue about proper &amp;amp;lt;audio&amp;amp;gt; support.&lt;br /&gt;
* some TODOs recorded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-12 (held on 2011-12-03) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-12-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* We plan to create a plugin system.  Do we want to create that soon or push it off until things settle a bit more?  ([[User:Willkg|Willkg]] 08:54, 10 November 2011 (EST))&lt;br /&gt;
* [[Feature Ideas]]: What should we do about the wiki page? Keep it and have it as a monthly topic for &amp;quot;what next&amp;quot;? Convert everything to long waiting bugs?&lt;br /&gt;
* Possibility of an [[SQL Database Backend]]?&lt;br /&gt;
*: &#039;executive summary&#039; (well, you should read the long docs): &amp;quot;We could move to sql. It&#039;s probably replacing one type of pain by another type of pain, but those are somewhat comparable. Leaving the main question: Do we want to occupy our main devs for some long time with this task and loose momentum?&amp;quot;&lt;br /&gt;
* Schendje&#039;s [http://wiki.mediagoblin.org/Feature_Ideas/Activities activities proposal]&lt;br /&gt;
* &amp;quot;Coming up next&amp;quot; blogpost draft by Deb Nicholson&lt;br /&gt;
* Jef&#039;s requests:&lt;br /&gt;
** Ticket #466 &amp;quot;Use of &amp;quot;Submit&amp;quot; in site copy is sterile and not as friendly and welcoming as it could be&amp;quot;. I&#039;d really like to change this soon to something more suitable. How can we improve the wording here? Some alternatives have been mentioned in the bug report, but which one should we pick? Link: http://bugs.foocorp.net/issues/466&lt;br /&gt;
** The concept and naming of &amp;quot;favourites&amp;quot;. We&#039;ll (hopefully) be able to &amp;quot;favourite&amp;quot; media soon, which I *think* means that 1) it&#039;ll work like a &amp;quot;I like this&amp;quot; comment, a quick token of appreciation, 2) it&#039;ll be added to your list of favourites so you can save and promote it, and 3) we could maybe use the number of favourites as a ranking. What I&#039;d like to know is: is that the intended purpose? If so, should we name them favo(u)rites or something else? &amp;quot;Like&amp;quot;, &amp;quot;love&amp;quot;, &amp;quot;save&amp;quot;, &amp;quot;appreciate&amp;quot;, &amp;quot;heart&amp;quot;, &amp;quot;high five&amp;quot; and many more could all be contenders. And the name should be consistent with the action and purpose, of course. So I&#039;d like to clear up how and why we will use favourites and what we should call them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-11 (held on 2011-11-05) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-11-05.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
* What happened in the last month, what was good, what could be better next time?&lt;br /&gt;
** Release:&lt;br /&gt;
*** Good: 0.1.0 released!&lt;br /&gt;
*** Bad: postponing vs not postponing&lt;br /&gt;
** Sites and deployment documentation:&lt;br /&gt;
*** Good: new mediagoblin.org&lt;br /&gt;
*** Good: deployment documentation&lt;br /&gt;
*** Bad: py-bcrypt’s site was down just after the release, so the virtualenv deployment didn’t work, and it wasn’t clear how to fix it.&lt;br /&gt;
** Live instances:&lt;br /&gt;
*** Joar has a live instance!&lt;br /&gt;
*** But what does it mean? Should ordinary users start using it?&lt;br /&gt;
**** Details at [[User:Joar/mg.wandborg.se]] -- [[User:Joar|Joar]] 17:01, 6 November 2011 (EST)&lt;br /&gt;
*** nyergler added a note about &amp;quot;heartbeat&amp;quot;/status to API notes&lt;br /&gt;
* What should be done next month?&lt;br /&gt;
* Starting real work on federation (via OStatus)... and do we split any of this work out into its own library?&lt;br /&gt;
* An API&lt;br /&gt;
* Creative Commons licensing tools&lt;br /&gt;
* Merging in the multimedia/video branch&lt;br /&gt;
*: (this is *very close* already actually thanks to the hard work of Joar Wandborg!  But we need some help on the gstreamer front to fix a few issues... if you or someone you know is an expert in this area we could really use their help to make the videos that come out smoother!)&lt;br /&gt;
* Rollover items from 0.1.0&lt;br /&gt;
* Multiple file upload interface&lt;br /&gt;
* Drag and drop uploads interface (probably related!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-10 (held on 2011-10-01) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-10-01.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
This month&#039;s meeting was a quickly announced short meeting. The project is getting back on track and next month&#039;s meeting will be scheduled more properly. A bunch of people were around.&lt;br /&gt;
&lt;br /&gt;
The most important decisions:&lt;br /&gt;
* The project will keep monthly releases. They&#039;re the heartbeat of the project.&lt;br /&gt;
* Release 0.1.0 this sunday/monday.&lt;br /&gt;
* New website will hopefully be deployed in the next few days.&lt;br /&gt;
* And the following things are planned to happen during this month: Most importantly federation. The developers have decided to make up their minds on what federation aactually should mean for MediaGoblin. Concerning code, probably &amp;quot;activity streams&amp;quot; are the first goal. If there is no (good) python library for this, a new stand alone library may be created. If so, a name for it has to be found. It should have something about communication in it. And the other thing to happen during this month is an ongoing discussion about &amp;quot;bus factor&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-09 (held on 2011-09-03) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-09-03.txt IRC log]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2011-08 (held on 2011-08-06) ===&lt;br /&gt;
&lt;br /&gt;
[http://mediagoblin.org/irclogs/irc_meeting_2011-08-06.txt IRC log]&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Media_Types&amp;diff=835</id>
		<title>Media Types</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Media_Types&amp;diff=835"/>
		<updated>2012-06-23T00:14:25Z</updated>

		<summary type="html">&lt;p&gt;Joar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Media types are plugin-like &lt;br /&gt;
&lt;br /&gt;
== File structure ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mediagoblin/media_types/video&lt;br /&gt;
├── __init__.py      # Contains the MEDIA_MANAGER&lt;br /&gt;
├── migrations.py    # DB migrations&lt;br /&gt;
├── models.py        # DB models&lt;br /&gt;
├── processing.py    # De-facto standard main file&lt;br /&gt;
└── transcoders.py   # Additional python models for video&lt;br /&gt;
                     # specifically, name it appropriately&lt;br /&gt;
                     # for your media type.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MEDIA_MANAGER ==&lt;br /&gt;
&lt;br /&gt;
The media manager contains metadata about the media type,&lt;br /&gt;
along with a reference to the method used to process the media.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MEDIA_MANAGER = {&lt;br /&gt;
    &amp;quot;human_readable&amp;quot;: &amp;quot;Video&amp;quot;,&lt;br /&gt;
    &amp;quot;processor&amp;quot;: process_video,&lt;br /&gt;
    &amp;quot;sniff_handler&amp;quot;: sniff_handler,&lt;br /&gt;
    &amp;quot;display_template&amp;quot;: &amp;quot;mediagoblin/media_displays/video.html&amp;quot;,&lt;br /&gt;
    &amp;quot;default_thumb&amp;quot;: &amp;quot;images/media_thumbs/video.jpg&amp;quot;,&lt;br /&gt;
    &amp;quot;accepted_extensions&amp;quot;: [&lt;br /&gt;
        &amp;quot;mp4&amp;quot;, &amp;quot;mov&amp;quot;, &amp;quot;webm&amp;quot;, &amp;quot;avi&amp;quot;, &amp;quot;3gp&amp;quot;, &amp;quot;3gpp&amp;quot;, &amp;quot;mkv&amp;quot;, &amp;quot;ogv&amp;quot;, &amp;quot;m4v&amp;quot;]}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== human_readable ====&lt;br /&gt;
&lt;br /&gt;
A human-readable name for the media type.&lt;br /&gt;
&lt;br /&gt;
==== processor ====&lt;br /&gt;
&lt;br /&gt;
A reference to the media processing method for the media type.&lt;br /&gt;
&lt;br /&gt;
==== sniff_handler ====&lt;br /&gt;
&lt;br /&gt;
A reference to the sniffing handler for the media type.&lt;br /&gt;
&lt;br /&gt;
==== display_template ====&lt;br /&gt;
&lt;br /&gt;
A path to the [[Media Types/Display|display template]], relative to &amp;lt;code&amp;gt;mediagoblin/templates&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== defailt_thumb ====&lt;br /&gt;
&lt;br /&gt;
No current use.&lt;br /&gt;
&lt;br /&gt;
==== accepted_extensions ====&lt;br /&gt;
&lt;br /&gt;
A list containing file extensions that should be associated to this media type. This is used as a fast way to get the media type based on an uploaded file before MediaGoblin falls back to sniffing.&lt;br /&gt;
&lt;br /&gt;
== Negotiating media type based on a file upload ==&lt;br /&gt;
&lt;br /&gt;
To decide which of the available media types that should handle a file upload, we first match the file extension to extensions in the available [[Media Types#MEDIA_MANAGER|MEDIA_MANAGERS]], then we resort to sniffing.&lt;br /&gt;
&lt;br /&gt;
=== Sniffing ===&lt;br /&gt;
&lt;br /&gt;
As a second step in media type negotiation, if the file-extension based lookup fails, &amp;lt;code&amp;gt;mediagoblin.media_types.get_media_type_and_manager&amp;lt;/code&amp;gt; will call &amp;lt;code&amp;gt;mediagoblin.media_types.sniff_media&amp;lt;/code&amp;gt;, which will iterate and run all the enabled media types&#039;s sniffing handlers.&lt;br /&gt;
&lt;br /&gt;
The sniffing handlers can respond with either true or false, responding with true indicates that the media type believes it can parse the file.&lt;br /&gt;
&lt;br /&gt;
This is mediagoblin.media_types.video.processing.sniff_handler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def sniff_handler(media_file, **kw):&lt;br /&gt;
    transcoder = transcoders.VideoTranscoder()&lt;br /&gt;
    data = transcoder.discover(media_file.name)&lt;br /&gt;
&lt;br /&gt;
    _log.debug(&#039;Discovered: {0}&#039;.format(data))&lt;br /&gt;
&lt;br /&gt;
    if not data:&lt;br /&gt;
        _log.error(&#039;Could not discover {0}&#039;.format(&lt;br /&gt;
                kw.get(&#039;media&#039;)))&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
    if data[&#039;is_video&#039;] == True:&lt;br /&gt;
        return True&lt;br /&gt;
&lt;br /&gt;
    return False&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Media_Types&amp;diff=834</id>
		<title>Media Types</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Media_Types&amp;diff=834"/>
		<updated>2012-06-22T22:33:28Z</updated>

		<summary type="html">&lt;p&gt;Joar: /* File structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Media types are plugin-like &lt;br /&gt;
&lt;br /&gt;
== File structure ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mediagoblin/media_types/video&lt;br /&gt;
├── __init__.py      # Contains the MEDIA_MANAGER&lt;br /&gt;
├── migrations.py    # DB migrations&lt;br /&gt;
├── models.py        # DB models&lt;br /&gt;
├── processing.py    # De-facto standard main file&lt;br /&gt;
└── transcoders.py   # Additional python models for video&lt;br /&gt;
                     # specifically, name it appropriately&lt;br /&gt;
                     # for your media type.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MEDIA_MANAGER ==&lt;br /&gt;
&lt;br /&gt;
The media manager contains metadata about the media type,&lt;br /&gt;
along with a reference to the method used to process the media.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MEDIA_MANAGER = {&lt;br /&gt;
    &amp;quot;human_readable&amp;quot;: &amp;quot;Video&amp;quot;,&lt;br /&gt;
    &amp;quot;processor&amp;quot;: process_video,&lt;br /&gt;
    &amp;quot;sniff_handler&amp;quot;: sniff_handler,&lt;br /&gt;
    &amp;quot;display_template&amp;quot;: &amp;quot;mediagoblin/media_displays/video.html&amp;quot;,&lt;br /&gt;
    &amp;quot;default_thumb&amp;quot;: &amp;quot;images/media_thumbs/video.jpg&amp;quot;,&lt;br /&gt;
    &amp;quot;accepted_extensions&amp;quot;: [&lt;br /&gt;
        &amp;quot;mp4&amp;quot;, &amp;quot;mov&amp;quot;, &amp;quot;webm&amp;quot;, &amp;quot;avi&amp;quot;, &amp;quot;3gp&amp;quot;, &amp;quot;3gpp&amp;quot;, &amp;quot;mkv&amp;quot;, &amp;quot;ogv&amp;quot;, &amp;quot;m4v&amp;quot;]}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== human_readable ====&lt;br /&gt;
&lt;br /&gt;
A human-readable name for the media type.&lt;br /&gt;
&lt;br /&gt;
==== processor ====&lt;br /&gt;
&lt;br /&gt;
A reference to the media processing method for the media type.&lt;br /&gt;
&lt;br /&gt;
==== sniff_handler ====&lt;br /&gt;
&lt;br /&gt;
A reference to the sniffing handler for the media type.&lt;br /&gt;
&lt;br /&gt;
==== display_template ====&lt;br /&gt;
&lt;br /&gt;
A path to the [[Media Types/Display|display template]], relative to &amp;lt;code&amp;gt;mediagoblin/templates&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== defailt_thumb ====&lt;br /&gt;
&lt;br /&gt;
No current use.&lt;br /&gt;
&lt;br /&gt;
==== accepted_extensions ====&lt;br /&gt;
&lt;br /&gt;
A list containing file extensions that should be associated to this media type. This is used as a fast way to get the media type based on an uploaded file before MediaGoblin falls back to sniffing.&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
	<entry>
		<id>https://wiki.mediagoblin.org/index.php?title=Media_Types/Display&amp;diff=833</id>
		<title>Media Types/Display</title>
		<link rel="alternate" type="text/html" href="https://wiki.mediagoblin.org/index.php?title=Media_Types/Display&amp;diff=833"/>
		<updated>2012-06-22T22:32:42Z</updated>

		<summary type="html">&lt;p&gt;Joar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Media type display pages are media type-specific&lt;br /&gt;
[http://jinja.pocoo.org/docs/ Jinja2] templates defined in the media type&#039;s &amp;lt;code&amp;gt;MEDIA_MANAGER[&#039;display_template&#039;]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Set the template path ==&lt;br /&gt;
&lt;br /&gt;
The path for the media type display template is configured in&lt;br /&gt;
the &amp;lt;code&amp;gt;MEDIA_MANAGER&amp;lt;/code&amp;gt; object for each media type.&lt;br /&gt;
The &amp;lt;code&amp;gt;MEDIA_MANAGER&amp;lt;/code&amp;gt; is configured in&lt;br /&gt;
&amp;lt;code&amp;gt;(mediagoblin/)media_types/$MEDIA_TYPE/__init__.py&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* The path to the template should be relative to the &amp;lt;code&amp;gt;mediagoblin/templates/&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
* The standard directory for media templates is &amp;lt;code&amp;gt;mediagoblin/templates/mediagoblin/media_displays&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is an example of a &amp;lt;code&amp;gt;MEDIA_MANAGER&amp;lt;/code&amp;gt; dict, see the &amp;lt;code&amp;gt;display_template&amp;lt;/code&amp;gt; key.&lt;br /&gt;
&lt;br /&gt;
 MEDIA_MANAGER = {&lt;br /&gt;
     &amp;quot;human_readable&amp;quot;: &amp;quot;Video&amp;quot;,&lt;br /&gt;
     &amp;quot;processor&amp;quot;: process_video,&lt;br /&gt;
     &amp;quot;sniff_handler&amp;quot;: sniff_handler,&lt;br /&gt;
     &amp;quot;display_template&amp;quot;: &amp;quot;mediagoblin/media_displays/video.html&amp;quot;,&lt;br /&gt;
     &amp;quot;default_thumb&amp;quot;: &amp;quot;images/media_thumbs/video.jpg&amp;quot;,&lt;br /&gt;
     &amp;quot;accepted_extensions&amp;quot;: [&lt;br /&gt;
         &amp;quot;mp4&amp;quot;, &amp;quot;mov&amp;quot;, &amp;quot;webm&amp;quot;, &amp;quot;avi&amp;quot;, &amp;quot;3gp&amp;quot;, &amp;quot;3gpp&amp;quot;, &amp;quot;mkv&amp;quot;, &amp;quot;ogv&amp;quot;, &amp;quot;m4v&amp;quot;]}&lt;br /&gt;
&lt;br /&gt;
== Create the template ==&lt;br /&gt;
&lt;br /&gt;
The medie templates are [http://jinja.pocoo.org/docs/ Jinja2]&lt;br /&gt;
templates that extend upon the&lt;br /&gt;
&amp;lt;code&amp;gt;mediagoblin/templates/mediagoblin/user_pages/media.html&amp;lt;/code&amp;gt;&lt;br /&gt;
template. They contain media-type-specifig markup used to display&lt;br /&gt;
the media.&lt;br /&gt;
&lt;br /&gt;
This is an example of such a template.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{#&lt;br /&gt;
# GNU MediaGoblin -- federated, autonomous media hosting&lt;br /&gt;
# Copyright (C) 2011, 2012 MediaGoblin contributors.  See AUTHORS.&lt;br /&gt;
#&lt;br /&gt;
# This program is free software: you can redistribute it and/or modify&lt;br /&gt;
# it under the terms of the GNU Affero General Public License as published by&lt;br /&gt;
# the Free Software Foundation, either version 3 of the License, or&lt;br /&gt;
# (at your option) any later version.&lt;br /&gt;
#&lt;br /&gt;
# This program is distributed in the hope that it will be useful,&lt;br /&gt;
# but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;
# GNU Affero General Public License for more details.&lt;br /&gt;
#&lt;br /&gt;
# You should have received a copy of the GNU Affero General Public License&lt;br /&gt;
# along with this program.  If not, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;.&lt;br /&gt;
#}&lt;br /&gt;
&lt;br /&gt;
{% extends &#039;mediagoblin/user_pages/media.html&#039; %}&lt;br /&gt;
&lt;br /&gt;
{% block mediagoblin_head %}&lt;br /&gt;
  {{ super() }}&lt;br /&gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&lt;br /&gt;
  	src=&amp;quot;{{ request.staticdirect(&#039;/js/extlib/video-js/video.js&#039;) }}&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;link href=&amp;quot;{{ request.staticdirect(&#039;/css/vjs-mg-skin.css&#039;) }}&amp;quot; rel=&amp;quot;stylesheet&amp;quot;&amp;gt;&lt;br /&gt;
{% endblock %}&lt;br /&gt;
&lt;br /&gt;
{% block mediagoblin_media %}&lt;br /&gt;
  &amp;lt;div class=&amp;quot;video-player&amp;quot; style=&amp;quot;position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;video class=&amp;quot;video-js vjs-mg-skin&amp;quot;&lt;br /&gt;
	   width=&amp;quot;{{ media.media_data.width }}&amp;quot;&lt;br /&gt;
	   height=&amp;quot;{{ media.media_data.height }}&amp;quot;&lt;br /&gt;
	   controls=&amp;quot;controls&amp;quot;&lt;br /&gt;
	   preload=&amp;quot;metadata&amp;quot;&lt;br /&gt;
	   data-setup=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;source src=&amp;quot;{{ request.app.public_store.file_url(&lt;br /&gt;
		   media.media_files[&#039;webm_640&#039;]) }}&amp;quot; &lt;br /&gt;
	      type=&amp;quot;video/webm; codecs=&amp;amp;quot;vp8, vorbis&amp;amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
	  &amp;lt;div class=&amp;quot;no_html5&amp;quot;&amp;gt;&lt;br /&gt;
	    {%- trans -%}Sorry, this video will not work because &lt;br /&gt;
	    your web browser does not support HTML5 &lt;br /&gt;
	    video.{%- endtrans -%}&amp;lt;br/&amp;gt;&lt;br /&gt;
	    {%- trans -%}You can get a modern web browser that &lt;br /&gt;
	    can play this video at &amp;lt;a href=&amp;quot;http://getfirefox.com&amp;quot;&amp;gt;&lt;br /&gt;
	    http://getfirefox.com&amp;lt;/a&amp;gt;!{%- endtrans -%}&lt;br /&gt;
	  &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  {% if &#039;original&#039; in media.media_files %}&lt;br /&gt;
  &amp;lt;p&amp;gt;&lt;br /&gt;
    &amp;lt;a href=&amp;quot;{{ request.app.public_store.file_url(&lt;br /&gt;
	     media.media_files[&#039;original&#039;]) }}&amp;quot;&amp;gt;&lt;br /&gt;
      {%- trans -%}&lt;br /&gt;
        Original&lt;br /&gt;
      {%- endtrans -%}&lt;br /&gt;
    &amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;/p&amp;gt;&lt;br /&gt;
  {% endif %}&lt;br /&gt;
{% endblock %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joar</name></author>
	</entry>
</feed>