1<!DOCTYPE html> 2<html> 3<head> 4 <title>MediaGoblin</title> 5 <meta charset="utf-8" /> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 8 <link rel="stylesheet" type="text/css" href="/css/extlib/reset.css"/> 9 <link rel="stylesheet" type="text/css" href="/css/extlib/text.css"/> 10 <link rel="stylesheet" type="text/css" href="/css/extlib/960_16_col.css"/> 11 <link rel="stylesheet" type="text/css" href="/css/base.css"/> 12 13 14 <!-- <link rel="stylesheet" href="theme/css/main.css" type="text/css" /> --> 15 16 <link href="https://mediagoblin.org/news/index.xml" type="application/atom+xml" rel="alternate" title="MediaGoblin Atom Feed" /> 17 <link rel="shortcut icon" href="/images/goblin.ico" /> 18 19<!-- 20<rdf:RDF xmlns="http://web.resource.org/cc/" 21 xmlns:dc="http://purl.org/dc/elements/1.1/" 22 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 23<Work rdf:about="http://mediagoblin.org/"> 24<dc:title>GNU MediaGoblin</dc:title> 25<dc:description></dc:description> 26<license rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/" /> 27</Work> 28<License rdf:about="http://creativecommons.org/licenses/by-sa/3.0/"> 29</License> 30</rdf:RDF> 31--> 32 33<style type="text/css"> 34 /* A quick lash-up to make the site partly readable on mobile. TODO: Fix this 35 properly by switching away from 960.css. */ 36 body { 37 min-width: auto; 38 } 39 .container_16 .grid_16 { 40 width: auto; 41 max-width: 960px; 42 float: none; 43 } 44 .container_16 { 45 width: auto; 46 max-width: 960px; 47 } 48 .mediagoblin_header { 49 display: flex; 50 justify-content: space-between; 51 flex-wrap: wrap; 52 } 53 .mediagoblin_content { 54 padding-left: 10px; 55 padding-right: 10px; 56 } 57</style> 58 59</head> 60 61<body id="index"> 62 <div class="mediagoblin_body"> 63 <div class="container_16"> 64 <div class="grid_16 mediagoblin_header"> 65 <a class="mediagoblin_logo" href="/"><img src="/images/logo.png" 66 alt="MediaGoblin logo" /></a> 67 68 <div class="mediagoblin_header_right"> 69 <a href="/news/">news</a> · 70 <a href="/pages/tour.html">tour</a> · 71 <a href="/pages/join.html">community</a> · 72 <a href="https://my.fsf.org/civicrm/contribute/transact?id=36">donate</a> · 73 <a href="https://docs.mediagoblin.org/en/stable/">documentation</a> · 74 <a href="https://wiki.mediagoblin.org/">wiki (legacy)</a> · 75 <a href="https://todo.sr.ht/~mediagoblin/mediagoblin">bug tracker</a> · 76 <a href="https://issues.mediagoblin.org/">bug tracker (legacy)</a> · 77 <a href="https://builds.sr.ht/~mediagoblin/mediagoblin" title="Continuous integration builds">CI</a> · 78 <a href="https://git.sr.ht/~mediagoblin/mediagoblin">code</a> 79 </div> 80 81 </div> 82 </div> 83 84 85 <div class="container_16 mediagoblin_content"> 86<div class="grid_16"> 87 <section> 88 <ol id="posts-list" class="hfeed" start="9"> 89 90 <article> 91 <header> 92 <h1 class="entry-title"> 93 <a href="/news/mediagoblin-0.15.0-release.html" 94 rel="bookmark" title="Permalink to MediaGoblin 0.15.0"> 95 MediaGoblin 0.15.0 96 </a> 97 </h1> 98 </header> 99 100 <div class="entry-content"> 101<footer class="asset-header"> 102 103 <div class="byline"> 104 By Ben Sturmfels on 105 <abbr class="published" title="2026-02-26T00:00:00-06:00">Thu 26 February 2026</abbr> 106 </div> 107 108 | 109 tags: <a href="/tag/release.html">release</a> 110 111 112</footer><!-- /.post-info --> <p>We're pleased to announce the release of GNU MediaGoblin 0.15.0. See the 113<a href="https://docs.mediagoblin.org/en/stable/siteadmin/relnotes.html">release notes</a>
114for full details and upgrading instructions.</p> 115<p>This is a relatively small release to resolve installation issues on Debian 116Trixie and Bookworm.</p> 117<p>This version has been tested on Debian Bookworm (12), Debian Trixie (13), Ubuntu 11822.04, Ubuntu 24.04 and Fedora 43. This release drops support for Debian 119Bullseye (11) and Ubuntu 20.04.</p> 120<p>To join us and help improve MediaGoblin, please visit our <a href="/pages/join.html">getting 121involved</a> page.</p> 122 </div><!-- /.entry-content --> 123 124 <hr/> 125 </article> 126 127 128 <article> 129 <header> 130 <h1 class="entry-title"> 131 <a href="/news/mediagoblin-0.14.0-release.html" 132 rel="bookmark" title="Permalink to MediaGoblin 0.14.0"> 133 MediaGoblin 0.14.0 134 </a> 135 </h1> 136 </header> 137 138 <div class="entry-content"> 139<footer class="asset-header"> 140 141 <div class="byline"> 142 By Ben Sturmfels on 143 <abbr class="published" title="2024-08-29T00:00:00-05:00">Thu 29 August 2024</abbr> 144 </div> 145 146 | 147 tags: <a href="/tag/release.html">release</a> 148 149 150</footer><!-- /.post-info --> <p>We're pleased to announce the release of GNU MediaGoblin 0.14.0. See the 151<a href="https://docs.mediagoblin.org/en/stable/siteadmin/relnotes.html">release notes</a> 152for full details and upgrading instructions.</p> 153<p>Highlights of this release are:</p> 154<ul> 155<li>Preliminary support for Docker installation</li> 156<li>Preliminary support for OS packaging on GNU Guix</li> 157<li>
157Major configure/build overhaul</li> 158<li>Extended configuration documentation</li> 159</ul> 160<p>This version has been tested on Debian Bookworm (12), Ubuntu 20.04, Ubuntu 16122.04, Ubuntu 24.04 and Fedora 39.</p> 162<p>Thanks go to co-maintainer Olivier Mehani for his major contributions in this 163release!</p> 164<p>To join us and help improve MediaGoblin, please visit our <a href="/pages/join.html">getting 165involved</a> page.</p> 166 </div><!-- /.entry-content --> 167 168 <hr/> 169 </article> 170 171 172 <article> 173 <header> 174 <h1 class="entry-title"> 175 <a href="/news/mediagoblin-0.13.0-release.html" 176 rel="bookmark" title="Permalink to MediaGoblin 0.13.0"> 177 MediaGoblin 0.13.0 178 </a> 179 </h1> 180 </header> 181 182 <div class="entry-content"> 183<footer class="asset-header"> 184 185 <div class="byline"> 186 By Ben Sturmfels on 187 <abbr class="published" title="2023-10-18T00:00:00-05:00">Wed 18 October 2023</abbr> 188 </div> 189 190 | 191 tags: <a href="/tag/release.html">release</a> 192 193 194</footer><!-- /.post-info --> <p>We're pleased to announce the release of MediaGoblin 0.13.0. See the <a href="https://docs.mediagoblin.org/en/stable/siteadmin/relnotes.html">release 195notes</a> for full 196details and upgrading instructions.</p> 197<p>This minor release adds support for Python 3.10 and 3.11 and drops support for
198Python versions prior to 3.7. It also upgrades a number of Python dependencies 199and adds a few small bug fixes and improvements.</p> 200<p>This version has been tested on Debian Bullseye (11), Debian Bookworm (12), 201Ubuntu 20.04, Ubuntu 22.04 and Fedora 39.</p> 202<p>Thanks go to Olivier Mehani, Michael McMahon, Andrew Dudash for their 203contributions in this release!</p> 204<p>To join us and help improve MediaGoblin, please visit our <a href="/pages/join.html">getting 205involved</a> page.</p> 206 </div><!-- /.entry-content --> 207 208 <hr/> 209 </article> 210 211 212 <article> 213 <header> 214 <h1 class="entry-title"> 215 <a href="/news/mediagoblin-0.12.1-release.html" 216 rel="bookmark" title="Permalink to MediaGoblin 0.12.1"> 217 MediaGoblin 0.12.1 218 </a> 219 </h1> 220 </header> 221 222 <div class="entry-content"> 223<footer class="asset-header"> 224 225 <div class="byline"> 226 By Ben Sturmfels on 227 <abbr class="published" title="2023-04-11T00:00:00-05:00">Tue 11 April 2023</abbr> 228 </div> 229 230 | 231 tags: <a href="/tag/release.html">release</a> 232 233 234</footer><!-- /.post-info --> <p>We're pleased to announce the release of MediaGoblin 0.12.1. See the <a href="https://docs.mediagoblin.org/en/stable/siteadmin/relnotes.html">release 235notes</a> for full 236details and upgrading instructions.</p> 237<p>This patch release fixes a number of Python dependency issues, allows us to 238support newer autoconf versions, fixes a few small bugs and improves the 239documentation. Support for Debian Bookwork, Ubuntu 22.04 and Fedora 36 is 240notably missing from this release, but will be addressed in the upcoming version 2410.13.0.</p> 242<p>Thanks go to Olivier Mehani, Elisei Roca, Jgart, Dan Helfman and Peter Horvath 243for their contributions in this release. Since our last release, long-time 244MediaGoblin user and contributor Olivier has joined me as co-maintainer on the 245project. Thanks for all your help Olivier!</p> 246<p>To join us and help improve MediaGoblin, please visit our <a href="/pages/join.html">getting 247involved</a> page.</p> 248 </div><!-- /.entry-content --> 249 250 <hr/> 251 </article> 252 253 254 <article> 255 <header> 256 <h1 class="entry-title"> 257 <a href="/news/mediagoblin-0.12.0-release.html" 258 rel="bookmark" title="Permalink to MediaGoblin 0.12.0: Potions"> 259 MediaGoblin 0.12.0: Potions 260 </a> 261 </h1> 262 </header> 263 264 <div class="entry-content"> 265<footer class="asset-header"> 266 267 <div class="byline"> 268 By Ben Sturmfels on 269 <abbr class="published" title="2021-09-18T00:00:00-05:00">Sat 18 September 2021</abbr> 270 </div> 271 272 | 273 tags: <a href="/tag/release.html">release</a> 274 275 276</footer><!-- /.post-info --> <figure> 277 <img src="/blog_images/0.12.0/20210130-4-potions.medium.jpg" 278 alt="Potions" /> 279 <figcaption><a href="https://art.dressupgeekout.com/u/charlotte/m/potions/">"Potions"</a> by <a href="https://dressupgeekout.com/">Charlotte Koch</a> 280 (reproduced with permission)</figcaption> 281</figure> 282 283<p>Happy Software Freedom Day! Today we're pleased to announce the release of 284MediaGoblin 0.12.0. See the <a href="https://docs.mediagoblin.org/en/stable/siteadmin/relnotes.html">release 285notes</a> for full 286details and upgrading instructions.</p> 287<p>This release resolves two significant issues in the Celery backend media 288processing. The first was causing processed media to be marked as failed and the 289second was inhibiting useful error messages. We've also resolved installation 290issues caused by deprecated upstream code in the Werkzeug and jsonschema 291libraries.</p> 292<p>We've added provisional <code>gmg serve</code> and <code>gmg celery</code> commands to simplify
293deployment. These commands may change in the future and are not yet recommended 294in the deployment documentation. If your deployment is already running smoothly, 295there's no reason to switch at this stage.</p> 296<p>Thanks to Rodrigo Martins, Marco Pessotto and Jgart for their contributions in 297this release. Thanks again to Charlotte for allowing us to feature her artwork.</p> 298<p>To join us and help improve MediaGoblin, please visit our <a href="/pages/join.html">getting 299involved</a> page.</p> 300 </div><!-- /.entry-content --> 301 302 <hr/> 303 </article> 304 305 306 <article> 307 <header> 308 <h1 class="entry-title"> 309 <a href="/news/mediagoblin-0.11.0-release.html" 310 rel="bookmark" title="Permalink to MediaGoblin 0.11.0: Punky Magmalian"> 311 MediaGoblin 0.11.0: Punky Magmalian 312 </a> 313 </h1> 314 </header> 315 316 <div class="entry-content"> 317<footer class="asset-header"> 318 319 <div class="byline"> 320 By Ben Sturmfels on 321 <abbr class="published" title="2021-03-10T00:00:00-06:00">Wed 10 March 2021</abbr> 322 </div> 323 324 | 325 tags: <a href="/tag/mediagoblin.html">mediagoblin</a> 326 <a href="/tag/release.html">release</a> 327 328 329</footer><!-- /.post-info --> <figure> 330 <img src="/blog_images/0.11.0/20210130-3-punky.jpg" 331 alt="Punky Magmalian Portrait" /> 332 <figcaption><a href="https://art.dressupgeekout.com/u/charlotte/m/punky-magmalian-portrait/">"Punky Magmalian Portrait"</a> by <a href="https://dressupgeekout.com/">Charlotte Koch</a> 333 (reproduced with permission)</figcaption> 334</figure> 335 336<p>This release of MediaGoblin removes support for Python 2 and marks the end of 337five years of concurrent support for both Python 2 and Python 3. That's a major 338achievement, so congratulations to everyone who contributed.</p> 339<p>As a bonus, the release also includes a completely rewritten replacement for 340the previously Python 2-only audio spectrograms feature. Thank you to Fernando 341Gutierrez for this contribution; it's a significant piece of work. The release 342also includes contributions from Jeremy Bowman, Jesús Eduardo Estupiñan Medina, 343Charlotte Koch, Olivier Mehani, milquetoast and Ben Sturmfels.</p> 344<p>On reflection, the Python 3 transition has been bitter-sweet. Without doubt, 345Python 3 is both technically and ergonomically superior to Python 2, but I don't 346think anyone in the Python community realised quite how long or how much work 347the transition would be. It's been an especially challenging time for small 348projects like MediaGoblin and for anyone supporting a significant Python 349codebase on limited resources. Looking forward though, ending support for Python 3502 significantly simplifies the maintenance of the project, making it easier to 351add new features and prevent bugs. We're really excited about this! Although 352we're not bug-free yet, as of this release our test suite is passing 100% and 353we'll be continuing with further quality improvements.</p> 354<p>We would like to take this opportunity to acknowledge Boris Bobrov, project 355maintainer and long-time contributor. Boris recently retired from his maintainer 356role which he began in 2016. Thanks Boris for all your hard work, contributions and 357leadership, we really appreciate it!</p> 358<p>This release is named Punky Magmalian after a character created by artist and 359MediaGoblin contributor Charlotte Koch. Take a look at <a 360href="http://dressupgeekout.com/">Charlotte's other work</a> on her MediaGoblin 361site.</p> 362<p>For more details on this release and on upgrading see the <a href="https://docs.mediagoblin.org/en/stable/siteadmin/relnotes.html">release 363notes</a>. To 364join us and help improve MediaGoblin, please visit our <a href="/pages/join.html">getting 365involved</a> page.</p> 366 </div><!-- /.entry-content --> 367 368 <hr/> 369 </article> 370 371 372 <article> 373 <header> 374 <h1 class="entry-title"> 375 <a href="/news/mediagoblin-0.10.0-release.html" 376 rel="bookmark" title="Permalink to MediaGoblin 0.10.0 released"> 377 MediaGoblin 0.10.0 released 378 </a> 379 </h1> 380 </header> 381 382 <div class="entry-content"> 383<footer class="asset-header"> 384 385 <div class="byline"> 386 By Ben Sturmfels on 387 <abbr class="published" title="2020-05-01T00:00:00-05:00">Fri 01 May 2020</abbr> 388 </div> 389 390 | 391 tags: <a href="/tag/mediagoblin.html">mediagoblin</a> 392 <a href="/tag/release.html">release</a> 393 394 395</footer><!-- /.post-info --> <p>We're pleased to announce the release of MediaGoblin 0.10.0!</p> 396<p>It's been a while between releases for MediaGoblin, but work has continued 397steadily. Highlights of this release include a new plugin for displaying video 398subtitles and support for transcoding and displaying video in multiple 399resolutions. There have also been a large number of smaller improvements and bug 400fixes which are listed in the <a href="https://docs.mediagoblin.org/en/v0.10.0/siteadmin/relnotes.html">release notes</a>.</p> 401<p>After enabling the new <a href="https://docs.mediagoblin.org/en/v0.10.0/plugindocs/subtitles.html">subtitles 402plugin</a>, 403you can upload and edit captions for your videos. Multiple subtitle tracks are 404supported, such as for different languages. This feature was added by Saksham 405Agrawal during Google Summer of Code 2016 and mentored by Boris Bobrov. The 406feature has been available for some time on the master branch, but it definitely 407deserves a mention for this release.</p> 408<figure> 409 <img src="/blog_images/0.10.0/video-subtitles.jpg" 410 alt="A screenshot showing MediaGoblin with subtitles shown on a video" />
411 <figcaption>A video with subtitles added</figcaption> 412</figure> 413 414<p>Videos are now automatically transcoded at various video qualities such as 360p, 415480p and 720p. You can choose your preferred quality while watching the video. 416This feature was added by Vijeth Aradhya during Google Summer of Code 2017 and 417mentored by Boris Bobrov. Again this feature has been available for some time on 418master, but is also worthy of a mention.</p> 419<figure> 420 <img src="/blog_images/0.10.0/video-quality.jpg" 421 alt="A screenshot showing the video quality selector in MediaGoblin" /> 422 <figcaption>Selecting a video quality</figcaption> 423</figure> 424 425<p>For details on installing MediaGoblin, see <a href="https://docs.mediagoblin.org/en/v0.10.0/siteadmin/deploying.html">Deploying 426MediaGoblin</a> 427and for tips on upgrading, see the <a href="https://docs.mediagoblin.org/en/v0.10.0/siteadmin/relnotes.html">release 428notes</a>. To 429join us and help improve MediaGoblin, please visit our <a href="/pages/join.html">getting 430involved</a> page!</p> 431 </div><!-- /.entry-content --> 432 433 <hr/> 434 </article> 435 436 437 <article> 438 <header> 439 <h1 class="entry-title"> 440 <a href="/news/still-here-in-2020.html" 441 rel="bookmark" title="Permalink to We're still here!"> 442 We're still here! 443 </a> 444 </h1> 445 </header> 446 447 <div class="entry-content"> 448<footer class="asset-header"> 449 450 <div class="byline"> 451 By Ben Sturmfels on 452 <abbr class="published" title="2020-04-07T00:00:00-05:00">Tue 07 April 2020</abbr> 453 </div> 454 455 | 456 tags: <a href="/tag/mediagoblin.html">mediagoblin</a> 457 458 459</footer><!-- /.post-info --> <p>Hello Goblin-Lovers! [tap tap] Is this thing still on? ... Great! Well, we've 460had a few polite questions as to what's happening in MediaGoblin-land, given our 461last blog post was a few years back. Let's talk about that.</p> 462<p>While development on MediaGoblin has slowed over the last few years, work has 463continued steadily, with significant improvements such as multi-resolution video 464(Vijeth Aradhya), video subtitles (Saksham) and a bunch of minor improvements 465and bug-fixes. Like most community-driven free software projects, progress only 466happens when people show up and make it happen. See below for a list of the 467wonderful people who have contributed over the last few years. Thank you all 468very much!</p> 469<p>In recent years, Chris Lemmer Webber has stepped back from the role of 470much-loved project leader to focus on ActivityPub and the standardisation of 471federated social networking protocols. That process was a lot of work but 472ultimately successful with <a href="https://www.w3.org/TR/activitypub/">ActivityPub becoming a W3C 473recommendation</a> in 2018 and going on to be 474adopted by a range of social networking platforms. Congratulations to Chris, 475Jessica and the other authors on the success of ActivityPub! In particular 476though, we would like to express our gratitude for Chris's charismatic 477leadership, community organising and publicity work on MediaGoblin, not to 478mention the coding and artwork contributions. Thanks Chris!</p> 479<p>During this time Andrew Browning, Boris Bobrov and Simon Fondrie-Teitler have 480led the MediaGoblin project, supported the infrastructure and worked with 481numerous new contributors to add new features and bug-fixes. More recently, I've 482stepped up to support them and deal with some of the project admin. I've also 483been working an exciting pilot project here in Australia using MediaGoblin to 484<a href="https://www.sturm.com.au/blog/preserving-indigenous-culture-using-mediagoblin/">publish culturally significant 485media</a> 486in remote indigenous communities.</p> 487<p>Back in February we held the first community meeting in quite a while. We met 488via a Mumble audio-conference and <a href="https://lists.gnu.org/archive/html/mediagoblin-devel/2020-02/msg00020.html">discussed short-term project 489needs</a> 490including problems with the issue tracker, urgent/blocking bugs, a release, a 491bug squashing party, and the need for this blog post. Next meeting we'll be 492diving into some of the longer-term strategy. Keep an eye on the mailing list 493for the announcement and please join us.</p> 494<p>Based on that meeting, our current short-term priorities are:</p> 495<ol> 496<li> 497<p>Improve/replace the issue tracker. There was general agreement that our 498 current issue tracker, Trac, is discouraging new contributions. Firstly, 499 registrations and notifications were not working properly. Secondly, the 500 process of submitting code is more complicated than other modern 501 collaboration tools. Our friends at FSF are currently working to select a <a href="https://libreplanet.org/wiki/Fsf_2019_forge_evaluation">new 502 collaboration tool</a>, 503 so we'll look forward to evaluating their recommendation when it is
504 announced. In the short-term, we've fixed the registration and notification 505 problems with Trac to keep us going.</p> 506</li> 507<li> 508<p>Make a minor release. A release is an important opportunity to highlight the 509 work that's been done over the last few years such as the multi-resolution 510 video and subtitles I mentioned, as well as important fixes such as to audio 511 upload in Python 3. This will likely also be our last Python 2-compatible 512 release. Many of MediaGoblin's dependencies are beginning to drop support for 513 Python 2, and time troubleshooting such installation issues takes away from 514 our forward-looking work.</p> 515</li> 516<li> 517<p>Organise a bug triage/fixing day. We're planning to nominate a day where a 518 group MediaGoblin contributors will make a concerted effort to resolve bugs. 519 This is aided by having a team across many timezones.</p> 520</li> 521<li> 522<p>Automate testing of the installation process and test suite. Many of the 523 questions we get to the mailing list are installation or dependency related. 524 By automating our testing, hopefully across a number of popular operating 525 systems, we should be able to reduce these issues and improve the 526 installation experience.</p> 527</li> 528</ol> 529<p>We'll look forward to telling you about our longer-term plans soon! For now 530though, from all of us hear at MediaGoblin, please take care of yourselves, your 531families and communities through the ongoing COVID-19 health crisis.</p> 532<p>Contributors in the last few years:</p> 533<ul> 534<li>Andrew Browning (aleph): bug fixes and improvements, merging contributions</li> 535<li>Boris Bobrov: bug fixes and improvements, merging contributions</li> 536<li>Chris Lemmer Webber: bug fixes and improvements, community organising, 537ActivityPub</li> 538<li>Jessica Tallon: bug fixes and improvements, ActivityPub</li> 539<li>Vijeth Aradhya: multiple-resolition video transcoding/switching</li> 540<li>Simon Fondrie-Teitler: upgraded/migrated/managed hosting for website, 541Trac, mailing lists and wiki</li> 542<li>Saksham: lightbox, video subtitles</li> 543<li>Amelia Rose: bug squashing parties</li> 544<li>Ben Sturmfels: bug fixes and improvements, migrated mailing lists</li> 545<li>Iyzsong: bug fixes</li> 546<li>Berker Peksag: Python 3 bug fixes</li> 547<li>Johnathan Sandoval: login validation improvement</li> 548<li>
548Leah Velleman: localisation</li> 549<li>Loic Dachary: cleanups</li> 550<li>Matt Dealsy: UI improments (PyCon AU 2016 sprint)</li> 551<li>Kesra: bug fixes (PyConAU 2016 sprint)</li> 552<li>Josh Crompton: UI improvements (PyCon AU 2016 sprint)</li> 553<li>Olivier Mehani (shtrom): OSM tiles, datetime format config</li> 554<li>Alexandre Frankie: docs improvements</li> 555<li>Stéphane Péchard: collection option to addmedia</li> 556<li>Robert Smith: bug fixes</li> 557<li>Simen Heggestøyl: bug fixes and improvements</li> 558<li>Romain Porte: tags in API</li> 559<li>Chrysn: EXIF rotation</li> 560<li>DPG: license option updates</li> 561<li>Dod: bug fixes</li> 562<li>Michael Lynch: dev setup improvements</li> 563<li>Ian Kelling: set up and imported our mailing lists (twice!)</li> 564<li>... and apologies to anyone else I've missed</li> 565</ul> 566 </div><!-- /.entry-content --> 567 568 <hr/> 569 </article> 570 571 572 <article> 573 <header> 574 <h1 class="entry-title"> 575 <a href="/news/tpac-2016-and-review-activitypub.html" 576 rel="bookmark" title="Permalink to ActivityPub and MediaGoblin at TPAC 2016 (or: ActivityPub needs your review!)"> 577 ActivityPub and MediaGoblin at TPAC 2016 (or: ActivityPub needs your review!) 578 </a> 579 </h1> 580 </header> 581 582 <div class="entry-content"> 583<footer class="asset-header"> 584 585 <div class="byline"> 586 By Christopher Allan Webber on 587 <abbr class="published" title="2016-10-05T11:45:00-05:00">Wed 05 October 2016</abbr> 588 </div> 589 590 | 591 tags: <a href="/tag/activitypub.html">activitypub</a> 592 <a href="/tag/standards.html">standards</a> 593 <a href="/tag/w3c.html">w3c</a> 594 <a href="/tag/tpac.html">tpac</a> 595 596 597</footer><!-- /.post-info --> 598 599<p class="centered"> 600 <a href="https://www.w3.org/TR/activitypub/"> 601 <img src="/blog_images/activitypub_wd_2016-09-04.png" alt="Screenshot of ActivityPub Working Draft" /> 602 </a> 603</p> 604 605<p> 606 Hello everyone! 607 We have a lot of news to cover, but I'm going to jump right into the 608 thick of it: we've been working hard on a new federation (as well as 609 client to server) standard called 610 <a href="https://www.w3.org/TR/activitypub/">ActivityPub</a> 611 (formerly ActivityPump). 612 We've made tremendous progress, and I was just recently at a face to 613 face meeting at <a href="https://www.w3.org/2016/09/TPAC/">TPAC</a>, 614 the W3C's big technical conference. 615</p> 616 617<p> 618 The good news: ActivityPub is aiming to hit Candidate Recommendation 619 status by October 11th. 620 (That's less than a week away!) 621 However, in order to enter that stage, we need <i>your review!</i> 622 If you have any interest in the decentralized web, you can help. 623 All you have to do is 624 <a href="https://w3c.github.io/activitypub/">read the latest editor's</a> 625 draft and provide feedback. 626 (The earlier the better... maybe a fun weekend project?) 627 You can do this by any of the following: 628</p> 629 630<ul> 631 <li> 632 Post 633 <a href="https://github.com/w3c-social/activitypub/issues">issues on the issue tracker</a> 634 (yes, I think it's ironic and problematic that we're using GitHub, 635 I picked my battles here, whether right or wrong). 636 </li> 637 <li> 638 Email the 639 <a href="http://lists.w3.org/Archives/Public/public-socialweb-comments/">social working group comments</a> 640 mailing list. 641 </li> 642 <li> 643 You can email me directly. 644 Email cwebber AT dustycloud DOT org, and include "ActivityPub" in 645 the subject. 646 Note that I will be publishing your comments publicly, probably 647 on the Social Working Group wiki! 648 </li> 649</ul> 650 651<p> 652 If you have feedback, we want to hear it! 653 (From anyone, but <i>especially</i> from those who are interested in 654 implementing ActivityPub!) 655 Thank you! 656</p> 657 658<h2>ActivityPub live</h2> 659 660<p><i> 661 Note, the rest of this post is a bit of a dive into behind the scenes 662 decisions and activity in MediaGoblin and ActivityPub... there's no need to 663 read this part to submit a review! 664</i></p> 665 666<p> 667 I'm kind of traveling through time in all the wrong order in this post... 668 but it's worth jumping forward a bit to see the results of what we've done. 669 Over the last many months there's been a huge push on ActivityPub as a 670 standard, as we'll talk about. 671 But in order to succeed, I also needed implementations, both of client to 672 server and server to server. 673 Well, I'm happy to say that those did come together... 674</p> 675 676<p class="blog_image"> 677 <a href="/blog_images/pubstrate-2016-09-14.png"> 678 <img src="/blog_images/pubstrate-2016-09-14-scaled.png" alt="Pubstrate in action!" /></a> 679</p> 680 681<p> 682 This is <a href="https://gitlab.com/dustyweb/pubstrate">Pubstrate</a>, 683 an implementation of ActivityStreams and ActivityPub for 684 <a href="https://www.gnu.org/software/guile/">GNU Guile</a>. 685 Sorry for the sappy embedded love-note, though what's nice about this 686 is that it's the first demo I gave to someone else of the client to 687 server functionality working in Pubstrate. 688 But wait, what was the client? 689</p> 690 691<p class="blog_image"> 692 <a href="/blog_images/soci-el-2016-09-14.png"> 693 <img src="/blog_images/soci-el-2016-09-14-scaled.png" alt="Soci-El in action!" /></a> 694</p> 695 696<p> 697 This is <a href="https://gitlab.com/dustyweb/soci-el">soci-el</a>, 698 an ActivityPub client written in... you guessed it... emacs lisp. 699 You can see the rendering of the user's outbox here as well as the 700 buffers from which the message was composed. 701</p> 702 703<p> 704 Pretty nerdy! 705 I don't expect everyone to be using emacs as an ActivityPub client of 706 course... I hope to see various desktop, web, and mobile clients 707 made available. 708 But, Emacs is the most fun for me, and I was time pressed, so 709 there we are. 710</p> 711 712<p> 713 Everyone loves seeing screenshots, but maybe not all of this stuff 714 makes sense without context. 715 What does this mean for MediaGoblin? 716</p> 717 718<h2>So what's been going on?</h2> 719 720<!-- - So what's been going on? 721 Talk about despite an appearance of absence, I've been working furiously... 722 --> 723 724<p> 725 It seems a recurring meme in MediaGoblin land to say "we've been quiet, because 726 we've been busy" (or maybe historically on every tech blog ever), but I guess 727 I can't resist repeating the mantra. 728 It's true! 729 Though the weight of my focus has been shifted from where I expected it to be. 730 From the 731 <a href="http://mediagoblin.org/news/mediagoblin-0.9.0-three-goblineers.html">last</a> 732 <a href="http://mediagoblin.org/news/stripe-retreat-state-of-the-goblin.html">few</a> 733 <a href="http://mediagoblin.org/news/state-of-the-goblin-september-2015.html">updates</a> 734 over the last year, you would be right to anticipate that the main thing I would 735 be working on would be merging the 736 <a href="http://mediagoblin.org/news/state-of-federation.html">federation code Jessica 737 has written</a> 738 and getting 1.0 out the door. 739 That was the plan, and we're still working towards that, but 740 priorities shifted as we realized the opportunities and time 741 pressures we were under with ActivityPub. 742 After the Social Working Group 743 <a href="https://www.w3.org/wiki/Socialwg/2016-06-06">face to face meeting in June</a>, 744 Jessica and I sat down and talked about what we should do. 745 Jessica had recently started working at 746 <a href="https://www.igalia.com/">Igalia</a> (great people!) and 747 was busy with that and other transitions in her life, so we discussed 748 whether we thought it was most sensible to focus my energy on MediaGoblin 749 or on ActivityPub. 750 It was clear that ActivityPub was shaping into a solid specification, 751 but it was also made clear that the Social Working Group's charter was 752 running out by the end of 2016. 753 We both think ActivityPub is key to MediaGoblin's success and didn't want 754 to see our invested time go to waste, so decided my immediate focus 755 should switch to ActivityPub so it could successfully make it as 756 a standard. 757</p> 758 759<p> 760 Which isn't doom and gloom for MediaGoblin! 761 MediaGoblin development has continued... the community is good enough that 762 people have been able to work while I've been busy. 763 I'm happy to say we also appointed longtime contributor Boris Bobrov as 764 co-maintainer to help reduce me being a bottleneck. 765 (Thank you Boris, and congrats!) 766 Other contributors have also stepped up to the plate. 767 I'm especially thankful of Ben Sturmfels for hosting MediaGoblin hackathons 768 and being so responsive to community members. 769 (And of course, there are many others to thank, too!) 770</p> 771 772<!-- + I realized I was going to have to go head down... so I spent my effort on 773 ActivityPub, and ActivityPub implementations... 774 --> 775<p> 776 Anyway, I'm not going anywhere, I've just been shifting focus to standards 777 work for a bit... but it's all for the greater good of MediaGoblin. 778 (Well, and the greater federated social web!) 779 Soon, we'll be putting the work we're doing on ActivityPub directly 780 into MediaGoblin. 781 When we merge Jessica's work on federation, we will also retool it so that 782 the first federated release of MediaGoblin will be blazing the trails with 783 ActivityPub. 784</p> 785 786<!-- + Amy visiting... --> 787 788<!-- TODO: Amy photo here --> 789 790<p> 791 Both ActivityPub and I personally got a significant boost by a happy visit 792 from friend and Social Working Group co-conspirator Amy Guy. 793 Amy dropped by for an intense four days of standards hacking and scheming, 794 and came up with several significant ways to restructure and improve the 795 document. 796 With her help, we now have much clearer distinction between the use of 797 ActivityPub as a client to server protocol (think mobile applications and 798 desktop applications connecting to your server) vs the server to server 799 protocol (federation). 800 Both of these are now clearly intertwined in the document, but are distinct 801 enough where they can be used and understood separately if desired. 802 We also more clearly established the connections between ActivityPub and 803 the linked data community by explaining ActivityPub's relationship with 804 <a href="https://www.w3.org/TR/ldn/">Linked Data Notifications</a>. 805</p> 806 807<p> 808 Amy has a gift for composing standards language, something I'm still 809 struggling to learn (but hopefully getting better with over time). 810 ActivityPub is much better with her hard work.
811 Thank you Amy! 812</p> 813 814<!-- + hopefully I could get them ready in time for... --> 815 816<p> 817 In addition to the standards side of things, in order to get ActivityPub to 818 the next level, we needed to be able to present real live demonstrations 819 of the standard in action. 820 Hence the work on Pubstrate and soci-el mentioned previously. 821 For most of the months before TPAC, I was working furiously day and night 822 to get things ready to show... 823 And then, it was time to head off, and hope it was good enough... 824</p> 825 826<!-- - TPAC! --> 827<h2>TPAC</h2> 828 829<p class="blog_image"> 830 <a href="https://www.w3.org/wiki/File:2016-09-21-socialwg-breakout.jpg"> 831 <img src="/blog_images/2016-09-21-socialwg-breakout-by-aaronpk-scaled.jpg" alt="Live demo image, by aaronpk" /> 832 </a> 833 <br /> 834 <em> 835 TPAC demo room photo by 836 <a href="https://aaronparecki.com/">Aaron Parecki</a> 837 </em> 838</p> 839 840<p> 841 Fortunately, all that hard work paid off. 842 The Social Working Group kicked off TPAC with live open-viewing 843 demonstrations of the various standards we've been working on. 844 We got in a really solid set of demos from everyone in the 845 group. 846</p> 847 848<!-- + Giving live demos --> 849 850<p> 851 From my end, I managed to demo all the core parts of the ActivityPub 852 spec: I wrote a note in my client (soci-el), fired it off to the server 853 (Pubstrate), where it rendered successfully. 854 Then I explained, well, what if you want someone on another machine to 855 see it? 856 So I had another user on a separate Pubstrate instance, added 857 the user over there to the recipients list on my message, shot 858 the message over to the server, crossed my fingers and hey! 859 The live demo of federation succeeded. 860 (Whew!) 861</p> 862 863<!-- + State of the specs post-meeting --> 864 865<p> 866 In the actual main Social Working Group meeting, we hammered things 867 forward pretty nicely. 868 As said, ActivityPub was positioned to move ahead towards 869 Candidate Recommendation by the 11th. 870 Again, your feedback is most valuable at this time! 871</p> 872 873<!-- + One more thing: at Amy Guy's suggestion, I showed off the 874 MediaGoblin campaign video --> 875 876<p class="blog_image"> 877 <a href="/pages/campaign.html"> 878 <img src="/images/campaign/video2_poster-surveillance.png" alt="Spying image from the campaign video" /></a> 879</p> 880 881<p> 882 Oh, one more thing. 883 On the second day of the main Social Working Group meetings, 884 at Amy's suggestion (apparently she was impressed when I showed her 885 at her visit), I showed off the MediaGoblin campaign video to 886 the group. 887 Apparently I had never done so previously, so it was really nice 888 to hear the reaction: "Holy cow, this is describing exactly the 889 type of stuff we're working on in the working group!" 890 Yep, exactly... all that stuff you see illustrated in that video, 891 we're working on putting into code and standards. 892 The dream lives! 893</p> 894 895<p> 896 So, all this Social Working Group stuff... things are happening! 897 We're not just goofing off! 898</p> 899 900<p class="blog_image"> 901 <video src="/blog_images/2016-09-23-socialwg-group-animated-by-aaronpk.webm" autoplay loop></video> 902 <br /> 903 <em> 904 Super serious TPAC group "photo" by 905 <a href="https://aaronparecki.com/">Aaron Parecki</a> 906 </em> 907</p> 908 909<p> 910 ... er, right. 911 Not <em>just</em> goofing off! :) 912</p> 913 914 915 </div><!-- /.entry-content --> 916 917 <hr/> 918 </article> 919 920 921 <article> 922 <header> 923 <h1 class="entry-title"> 924 <a href="/news/mediagoblin-0.9.0-three-goblineers.html" 925 rel="bookmark" title="Permalink to MediaGoblin 0.9.0: The Three Goblineers"> 926 MediaGoblin 0.9.0: The Three Goblineers 927 </a> 928 </h1> 929 </header> 930 931 <div class="entry-content"> 932<footer class="asset-header"> 933 934 <div class="byline"> 935 By Deb Nicholson on 936 <abbr class="published" title="2016-03-29T13:00:00-05:00">Tue 29 March 2016</abbr> 937 </div> 938 939 | 940 tags: <a href="/tag/mediagoblin.html">mediagoblin</a> 941 <a href="/tag/release.html">release</a> 942 943 944</footer><!-- /.post-info --> 945 946<p class="centered"> 947 <img src="/blog_images/0.9.0/three_goblineers-crop.png" alt="MediaGoblin 0.9.0: The Three Goblineers" /> 948 <br /> 949 <i> 950 "The Three Goblineers" by Christopher Allan Webber (pen and ink) 951 and Morgan Lemmer-Webber (colored pencils). 952 Licensed under 953 <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a>.
954 </i> 955</p> 956 957<p> 958 This release is called The Three Goblineers, because we are finally fully 959 embracing Python 3! 960 You could even think of this release as Py-oneering, which it definitely 961 is. 962 Many traditional web service tools are less-than-ideal for federation and 963 so we've had to do a lot of rebuilding and retooling. 964 This release represents lots of intense behind the scenes work to make 965 the user experience smoother, as well as some key improvements for 966 MediaGoblin developers and deployers. 967</p> 968 969<p> 970 Federated services use databases in a some fundamentally different 971 ways. 972 We had to make a traditional (rigid) database more friendly for more 973 flexible relationships. 974 The result is similar to the generic foreign key implementation used by 975 Django, but optimized especially for federation. 976 Jessica Tallon did the lion's share of this work and was aided by Andrew 977 Browning who did extensive testing. 978</p> 979 980<p> 981 We also updated how we handle comments and media collections. 982 On a multi-media service, people will naturally want to reply to comments 983 with videos and to ASCII art with songs so we had to make our commenting 984 function support all the available media types. 985 Also, the media collections aren't just for your personal gallery 986 anymore; they're also used now in federation and the API as the backbone 987 of a user's "inbox" and "outbox" feeds. 988 Also, to make life easier on those uploading whole albums of content, if 989 your user has some collections available, these will be presented as a 990 dropdown option while submitting media. 991</p> 992 993<p class="blog_image"> 994 <a href="/blog_images/0.9.0/select_collection.png"> 995 <img src="/blog_images/0.9.0/select_collection-scaled.png" alt="Selecting a collection during submit" /></a> 996</p> 997 998<p> 999 In the less visible but equally important department, we updated OAuth 1000 and created a "graveyard" system.
1001 We updated our code to make better and more secure use of OAuth so that 1002 my server and your server can be really sure we are actually talking to 1003 each other. 1004 The "graveyard" system uses tombstone icons to let you know that an 1005 object was removed by it's original poster. 1006 This makes it easy for users to remove media they no longer want to 1007 share, while creating as little confusion as possible for other users. 1008</p> 1009 1010<p><pre> 1011 * * 1012 * * _. * 1013 * * * < '. 1014 * ) ) * 1015 * <_.' * 1016 * * .-------------. 1017 .' '. * 1018 * | | * 1019 | TOMB OF THE | * 1020 * | UNKNOWN | * 1021 * | ACTIVITYSTREAMS | 1022 | OBJECT | 1023 .^. | | 1024 _ .+. _ |~| | ????-???? | .+. .-. _ .-. 1025 | | |~| |=| | | | | |=| |~| | | |"| 1026``'`'`''``'`'`'`'``'``'`'`''``'`'`'`'``'`''``''``'`'`'' 1027</pre></p> 1028 1029<p> 1030 Developers will be happy to know that we are keeping pace with the larger 1031 Python community and now have complete support for Python 3. 1032 We had 1033 <a href="http://mediagoblin.org/news/mediagoblin-0.8.0-gallery-of-fine-creatures.html">early 1034 and experimental Python 3 support in 0.8.0</a> 1035 but couldn't quite recommend it for production use. 1036 That work is finished! 1037 Now you can choose to hack in Python 3 or Python 2 and your code will be 1038 totally compatible with the main codebase. 1039 Since Python 2 won't be supported forever, Python 3 is the future. 1040 And we are all about the future. 1041</p> 1042 1043<p> 1044 We also switched our migration system over to 1045 <a href="https://alembic.readthedocs.org/en/latest/">Alembic</a>. 1046 Previously, we'd been using 1047 <a href="https://sqlalchemy-migrate.readthedocs.org/en/latest/">sqlalchemy-migrate</a>, 1048 but it also wasn't as good for updating the database layout when you upgrade, 1049 and lots of dragons be there. 1050 We think Alembic will make it less terrifying to update your MediaGoblin 1051 instance so you can stay current and without spending lots of time trying 1052 to sort what happened in the database. 1053 Alembic is also newer, fresher and better maintained! 1054</p> 1055 1056<p> 1057 Another thing that makes updating a little persnickety is finding out that 1058 the dependencies have changed. 1059 We are collaborating and experimenting with the 1060 <a href="http://www.gnu.org/software/guix/">Guix</a> community to fix 1061 this issue. 1062 Cleaner packaging will help people upgrade without fear, using 1063 deployments they can trust. 1064 Watch this space for a future post on how to use Guix and MediaGoblin 1065 together for worry-free upgrades. 1066</p> 1067 1068<p> 1069 For users upgrading from previous versions, as always, check the 1070 <a href="http://docs.mediagoblin.org/en/v0.9.0/siteadmin/relnotes.html"> 1071 release notes</a> for instructions on upgrading! 1072</p> 1073 1074<p> 1075 Our work to overthrow the red eminence of the centralized web continues! 1076 Between Python 3 support and laying down foundational changes to support 1077 federation, this release brings us much, much closer to our long term 1078 goals! 1079 Thanks to all our Goblineers and Py-oneers without whom this work would 1080 not be possible! 1081 Give a round of applause to Andrew Browning, Ben Sturmfels, Berker 1082 Peksag, Boris Bobrov, Christopher Allan Webber, Daniel Krol, Deb 1083 Nicholson, Duncan, jerome, Jessica Tallon, Loic Dachary, Sebastian 1084 Spaeth, Tom Fay, and 宿æ¦! 1085 You all helped make it happen! 1086</p> 1087 1088<p> 1089 And if you want to make it happen in our next exciting release, we'd love 1090 to have you <a href="/pages/join.html">get involved</a>! 1091 Visit us in IRC; 1092 <a href="http://webchat.freenode.net/?channels=mediagoblin">#mediagoblin on freenode.net</a>! 1093 Or sign up for regular updates 1094 <a href="https://lists.gnu.org/mailman/listinfo/mediagoblin-devel">on our mailing list</a>. 1095 Got ideas or questions about our work? 1096 Email us at <a href="[email protected]">[email protected]</a> 1097 -- we look forward to hearing from you! 1098</p> 1099 1100 </div><!-- /.entry-content --> 1101 1102 <hr/> 1103 </article> 1104 1105 </ol><!-- /#posts-list --> 1106<p class="paginator"> 1107 Page 1 / 8 1108 <a href="/news/index2.html">»</a> 1109</p> 1110 </section><!-- /#content --> 1111</div> 1112 <div class="clear"></div> 1113 </div> 1114 1115 <div class="container_16"> 1116 <div class="grid_16 mediagoblin_footer"> 1117 <p> 1118 MediaGoblin is released under the <a href="http://www.gnu.org/licenses/agpl.html">GNU AGPLv3</a>. Site design released under <a href="http://creativecommons.org/publicdomain/zero/1.0/">CC0</a>. Get and use the <a href="/pages/logo.html" title="Get and use the MediaGoblin logo">MediaGoblin logo</a>. 1119 </p> 1120 </div> 1121 </div> 1122 </div> 1123 1124<!-- Currently not working due to sourcehut CSP "default-src". --> 1125<!-- Matomo -->
1126<script> 1127 var _paq = window._paq = window._paq || []; 1128 /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ 1129 _paq.push(['trackPageView']); 1130 _paq.push(['enableLinkTracking']); 1131 (function() { 1132 var u="https://matomo.sturm.com.au/"; 1133 _paq.push(['setTrackerUrl', u+'matomo.php']); 1134 _paq.push(['setSiteId', '45']); 1135 var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; 1136 g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); 1137 })(); 1138</script>
1138 1139<noscript><p><img src="https://matomo.sturm.com.au//matomo.php?idsite=45&rec=1" style="border:0;" alt="" /></p></noscript> 1140<!-- End Matomo Code --> 1141</body> 1142</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.