Drupal 8 https://janezurevc.name/ en Results of the Drupal 8 media sprint https://janezurevc.name/results-drupal-8-media-sprint <span>Results of the Drupal 8 media sprint</span> <span><span lang="" about="https://janezurevc.name/users/slashrsm" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">slashrsm</span></span> <span>Mon, 02.01.2017 - 17:20</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>In December media team met in Berlin and sprinted on Drupal core media improvements for a week.</p> <blockquote class="twitter-tweet tw-align-center" data-lang="en"><p lang="en" dir="ltr" xml:lang="en" xml:lang="en">Today's <a href="https://twitter.com/DrupalMedia">@drupalmedia</a> sprinters. Awesome group that is making <a href="https://twitter.com/hashtag/Drupal?src=hash">#Drupal</a> the best media management CMS! <a href="https://t.co/G2LqD603pH">pic.twitter.com/G2LqD603pH</a></p>— Janez Urevc (@slashrsm) <a href="https://twitter.com/slashrsm/status/809396116269703168">December 15, 2016</a></blockquote> <script async="" src="//platform.twitter.com/widgets.js" charset="utf-8"></script><p>I demonstrated the results of the sprint in a short video.</p> <p class="embed-responsive embed-responsive-16by9"> <iframe width="560" height="315" src="https://www.youtube.com/embed/4Q9fE043GIM" frameborder="0" allowfullscreen=""></iframe> </p> <p>Demo is based on the <a href="https://www.drupal.org/sandbox/slashrsm/2838118">sandbox project</a> that includes the following patches:</p> <ul><li><a href="https://drupal.org/comment/11833188#comment-11833188" title="Status: Fixed">#2836381-13: Seven's entity-add-list template omits link attributes</a></li> <li><a href="https://drupal.org/comment/11825596#comment-11825596" title="Status: Needs work">#2834777-6: Refactor Drupal\system\Plugin\views\field\BulkForm to support a select form as well</a></li> <li><a href="https://drupal.org/comment/11831066#comment-11831066" title="Status: Needs work">#2834729-12: Create an MVP for adding and re-using Media</a></li> <li><a href="https://drupal.org/comment/11835063#comment-11835063" title="Status: Needs work, Assigned to: seanB">#2831940-8: Create file field widget on top of media entity</a></li> <li><a href="https://drupal.org/comment/11829584#comment-11829584" title="Status: Needs work">#2831944-4: Implement media type plugin for remote video</a></li> <li><a href="https://drupal.org/comment/11831210#comment-11831210" title="Status: Needs work, Assigned to: pguillard">#2831943-6: Re-create image and file field-like formatters on top of media entity</a></li> <li><a href="https://drupal.org/comment/11829154#comment-11829154" title="Status: Needs work, Assigned to: mtodor">#2831937-23: Add "Image" media type plugin</a></li> <li><a href="https://drupal.org/comment/11827805#comment-11827805" title="Status: Needs work">#2831936-40: Add "File" media type plugin</a></li> <li><a href="https://drupal.org/comment/11834970#comment-11834970" title="Status: Needs review, Assigned to: slashrsm">#2831274-170: Bring Media entity module to core as Media module</a></li> </ul></div> <div class="field field--name-field-related field--type-entity-reference field--label-above"> <div class="field--label">Enjoyed this post? There is more!</div> <div class="field--items"> <div class="field--item"><a href="https://janezurevc.name/call-for-drupal-8-media-ecosystem-co-maintainers" hreflang="en">Call for Drupal 8 media ecosystem co-maintainers</a></div> <div class="field--item"><a href="https://janezurevc.name/releases-of-various-drupal-8-media-modules" hreflang="en">Releases of various Drupal 8 media modules</a></div> <div class="field--item"><a href="https://janezurevc.name/a-lot-of-exciting-drupal-8-media-news" hreflang="en">A lot of exciting Drupal 8 media news!</a></div> <div class="field--item"><a href="https://janezurevc.name/drupal-dev-environment-on-docker" hreflang="en">Drupal dev environment on Docker</a></div> </div> </div> Mon, 02 Jan 2017 16:20:42 +0000 slashrsm 103 at https://janezurevc.name Drupal community, please meet Vijay https://janezurevc.name/drupal-community-please-meet-vijay <span>Drupal community, please meet Vijay</span> <span><span lang="" about="https://janezurevc.name/users/slashrsm" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">slashrsm</span></span> <span>Tue, 24.05.2016 - 10:40</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p><a href="https://groups.drupal.org/node/510665">Google summer of code 2016</a> started with a full swing this week. <a href="https://twitter.com/isthegeek">Vijay</a> is one of the students participating in it. He is working on the Media module for Drupal 8.</p> <p>He wrote <a href="https://isthegeek.svbtle.com/gsoc-16-with-drupal">an introduction blog post</a>. I'd like to invite you to read it, say hi and follow his work as it progresses through the summer.</p> <p>Welcome in the Drupal community Vijay!</p> </div> <div class="field field--name-field-related field--type-entity-reference field--label-above"> <div class="field--label">Enjoyed this post? There is more!</div> <div class="field--items"> <div class="field--item"><a href="https://janezurevc.name/media-entity-reaches-8-x-1-0" hreflang="en">Media entity reaches 8.x-1.0!</a></div> <div class="field--item"><a href="https://janezurevc.name/entity-browser-got-configuration-ui" hreflang="en">Entity browser got configuration UI </a></div> <div class="field--item"><a href="https://janezurevc.name/image-effects-module-for-drupal-8" hreflang="en">Image effects module for Drupal 8</a></div> </div> </div> Tue, 24 May 2016 08:40:41 +0000 slashrsm 91 at https://janezurevc.name Media entity reaches 8.x-1.0! https://janezurevc.name/media-entity-reaches-8-x-1-0 <span>Media entity reaches 8.x-1.0!</span> <span><span lang="" about="https://janezurevc.name/users/slashrsm" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">slashrsm</span></span> <span>Mon, 02.05.2016 - 10:00</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>More than two years ago I gave <a href="https://www.youtube.com/watch?v=4giCe2GNnLQ">a session about the future of media at DrupalCon Prague</a>. The outcome of that session was <a href="https://groups.drupal.org/node/327768">a planning sprint</a> that happened two days after it. One of the ideas that was born on that sprint was <a href="https://drupal.org/project/media_entity">Media entity</a>, storage layer for media-related information built with simplicity and support for remotely hosted media in mind. It's development started shortly after that and got significantly accelerated in the spring of the next year, when the core of the media initiative met at NYC Camp and <a href="https://groups.drupal.org/node/418803">agreed on the common battle plan for Drupal 8</a>.</p> <p>Media entity and it's plugins have been pretty stable for the last few months. It seemed to be almost ready for it's first release, but there were few tickets in the issue queue which I wanted to resolve first. In the last few days I found some time to look at those. Together with <a href="https://drupal.org/u/paranojik">Tadej Baša (@paranojik)</a> we managed to finish all of the most important patches, which allowed me to tag 8.x-1.0 yesterday. I am thrilled and extremely proud. A lot of individuals and organizations invested many hours to make this possible and I would like to thank every single one of them. Special thanks go to <a href="https://nyccamp.org/">NYC Camp organizers</a>, who organized two sprints and have been supporting us from the beginning, <a href="https://examiner.com">Examiner.com</a>, my ex employer who allowed me to spend significant amount of my time to work on many media-related modules and <a href="https://www.md-systems.ch/">MD Systems</a>, who organized two media sprints and let part of their <a href="https://www.md-systems.ch/en/blog/2016-02/media-management-in-drupal-8">team to work on Drupal 8 media for 3 months</a>.</p> <p>Along with the main module I released some of it's plugins too: <a href="https://drupal.org/project/media_entity_image">Image</a>, <a href="https://drupal.org/project/media_entity_slideshow">Slideshow</a>, <a href="https://drupal.org/project/media_entity_twitter">Twitter</a> and <a href="https://drupal.org/project/media_entity_instagram">Instagram</a>. There are also plugins that handle <a href="https://drupal.org/project/video_embed_field">Video</a>, <a href="https://drupal.org/project/media_entity_audio">Audio</a> and <a href="https://drupal.org/project/media_entity_document">Documents</a>, which are also quite ready to be used.</p> <p>Media entity and it's plugins offer many interesting features:</p> <ul><li>simple and lean storage for local and remote media,</li> <li>out of the box integration with standard Drupal's tools,</li> <li>pluggable architecture that allows easy implementation of additional plugins,</li> <li>100% automatic delivery of thumbnails,</li> <li>delivery of remote metadata and</li> <li>mapping of remote metadata with entity fields.</li> </ul><p>I encourage you to try it and let us know what you think. We are looking for co-maintainers too. If you'd like to spend some time in contrib and have ideas for new features <a href="https://janezurevc.name/contact">let me know</a>.</p> <p>In the next few weeks we're planning releases of the other media modules. Stay tuned!</p> </div> <div class="field field--name-field-related field--type-entity-reference field--label-above"> <div class="field--label">Enjoyed this post? There is more!</div> <div class="field--items"> <div class="field--item"><a href="https://janezurevc.name/goodbye-examiner-hello-md-systems" hreflang="en">Goodbye Examiner, hello MD Systems</a></div> <div class="field--item"><a href="https://janezurevc.name/a-lot-of-exciting-drupal-8-media-news" hreflang="en">A lot of exciting Drupal 8 media news!</a></div> <div class="field--item"><a href="https://janezurevc.name/when-will-media-be-ready-for-drupal-8" hreflang="und">When will media be ready for Drupal 8?</a></div> </div> </div> Mon, 02 May 2016 08:00:00 +0000 slashrsm 90 at https://janezurevc.name Zurich Drupal 8 media sprint was a success! https://janezurevc.name/zurich-drupal-8-media-sprint-was-a-success <span>Zurich Drupal 8 media sprint was a success!</span> <span><span lang="" about="https://janezurevc.name/users/slashrsm" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">slashrsm</span></span> <span>Mon, 04.01.2016 - 22:42</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Almost exactly two months ago <a href="https://www.md-systems.ch/en">MD Systems</a> announced the <a href="https://www.md-systems.ch/en/blog/2015-10/join-the-drupal-8-media-initiative">Media initiative program</a> that they initiated in cooperation with <a href="https://www.ringier.ch/">Ringier</a>, <a href="https://gassmann.ch/">Gassmann media</a> and <a href="https://www.suedostschweiz.ch/">Südostschweiz</a>. Initiative was kicked off with a <a href="https://www.md-systems.ch/en/blog/2015-12/the-media-sprint-week-was-a-big-success">week long sprint, which happened at first week of December in Zurich</a>.</p> <p><em>Note nr. 1: <a href="https://www.md-systems.ch/en">MD Systems</a> are funding part of my time to work on Drupal 8 media. They are constantly investing in Drupal core and many contrib modules. They are <a href="https://www.drupal.org/drupal-services">one of the greatest Drupal service providers</a> and number 1 Drupal organizational contributor taking their size into consideration. You need a site built? You should definitely <a href="https://www.md-systems.ch/en/node/19">get in touch with them</a>.</em></p> <p><em>Note nr. 2: <a href="https://www.examiner.com">Examiner.com</a> (my employer and very well know enterprise Drupal 7 site) gives every developer a so-called "Drupal day" every other week. This allows me to work on Drupal 8 media components. We have been <a href="https://2015.drupalcamp.at/session/how-we-built-enterprise-media-publishing-platform-d8">working on a Drupal 8 project</a> for a while now, which also allowed me to do a lot of contrib work during my work hours. Thank you! You are great!</em></p> <p style="text-align: center;"> <img src="https://pbs.twimg.com/media/CVOhXenWcAAAXsg.jpg" title="Photo by Stefanie Gupta" alt="Media sprint attendees" /><br /> Photo by <a href="https://twitter.com/StefanieGupta">Stefanie Gupta</a></p> <p>Sprint was a success! We pushed forward many parts of the media ecosystem, but I'd like expose few things I am very excited about.</p> <ol><li> <strong>Image cropping:</strong> along with few minor improvements to the <a href="https://drupal.org/project/crop">Crop API</a> we did a lot of work on first UI module based on it, <a href="https://www.drupal.org/sandbox/woprrr/2571403">Image widget crop</a>. <div class="video-wrapper"> <iframe width="560" height="315" src="https://www.youtube.com/embed/Ioo_bYnCOOg" frameborder="0" allowfullscreen=""></iframe></div> </li> <li> <strong>Entity embed:</strong> <a href="https://drupal.org/project/entity_embed">our embedding component</a> got many low-level improvements, general consolidation and clean-up. On top of that we finally added integration with the <a href="https://drupal.org/project/entity_browser">Entity browser</a>, which significantly improves user experience when selecting an entity for embedding. Instead of just the auto-complete field now we're finally able to use an arbitrary Entity browser for the job. <div class="video-wrapper"> <iframe width="560" height="315" src="https://www.youtube.com/embed/TnbudkNKdcU" frameborder="0" allowfullscreen=""></iframe></div> </li> <li> <strong><a href="https://drupal.org/project/field_formatter">Field formatter:</a></strong> this module provides formatters for entity reference fields. It allows us to represent a referenced entity with one of it's fields. At the sprint we committed an initial implementation of the module, which is still very rough around the edges. However, we are actively, as part of the announced Media initiative program, working on it. We'd like to encourage everyone to give it a try and let us know what you think. </li> <li> <strong>File entity:</strong> very well known module from Drupal 7 world. At the sprint we more or less achieved feature parity with it's D7 version. We also moved it the official <a href="https://github.com/drupal-media/file_entity">Drupal media group on GitHub</a> and we hope to bring it back to <a href="https://drupal.org/project/file_entity">drupal.org</a> as soon as possible. </li> <li> <strong>Entity browser:</strong> we finally managed to start working on configuration UI. It is almost there and we are doing our best to finish it as soon as possible. We also improved UX of the default field widget that comes with the module. Additional to the "Remove" operation we added support for editing selected entities. <div class="video-wrapper"> <iframe width="560" height="315" src="https://www.youtube.com/embed/R3tM7hqAIiQ" frameborder="0" allowfullscreen=""></iframe></div> </li> <li> <strong>Media entity and friends:</strong> entire family of <a href="https://drupal.org/project/media_entity">Media entity</a> modules has seen many improvements. We improved test coverage, fixed many bugs and added field formatters for many media types. </li> </ol><p>There is much more work that was done, but unfortunately I'm unable to mention everything here. We consistently tagged all issues that were touched during that week. We encourage everyone to check the <a href="https://www.drupal.org/project/issues/search?projects=&project_issue_followers=&issue_tags_op=%3D&issue_tags=Zurich+media+sprint+2015">complete list of issues</a> or our <a href="https://trello.com/b/EQwsjrbi/drupal-8-media">public sprint board</a> to learn more. </p> <p>I'd like to thank to everyone that helped us to make this sprint come true: <a href="https://www.md-systems.ch/en">MD Systems</a>, <a href="https://www.ringier.ch">Ringier</a>, <a href="https://www.suedostschweiz.ch/">Südostschweiz</a>, <a href="https://gassmann.ch/">Gassmann media</a>, <a href="https://drupal.org/u/miro_dietiker">Miro Dietiker (@miro_dietiker)</a>, <a href="https://twitter.com/J_Zech">Jerome Zech (@J_Zech)</a>, <a href="https://drupal.org/u/berdir">Sascha Grossenbacher (@berdir)</a>, <a href="https://drupal.org/u/webflo">Florian Weber (@webflo)</a>, <a href="https://drupal.org/u/dawehner">Daniel Wehner (@dawehner)</a>, <a href="https://drupal.org/u/sanja_m">Sanja Milanović (@sanja_m)</a>, <a href="https://drupal.org/u/devlada">Vladimir Mitrović (@devlada)</a>, <a href="https://drupal.org/u/denchev">Miloš Denčev (@denchev)</a>, <a href="https://drupal.org/u/lukas-von-blarer">Lukas von Blarer (@lukas-von-blarer)</a>, <a href="https://drupal.org/u/pheadeaux">Tassilo Groeper (@pheadeaux)</a>, <a href="https://drupal.org/u/edurenye">Eduard Reñé Claramunt (@edurenye)</a>, <a href="https://drupal.org/u/sasanikolic">Saša Nikolič (@sasanikolic)</a>, <a href="https://drupal.org/u/mbovan">Miloš Bovan (@mbovan)</a>, <a href="https://drupal.org/u/tdoung">Tram Anh Duong (@tduong)</a>, <a href="https://drupal.org/u/WimLeers">Wim Leers (@WimLeers)</a>, <a href="https://drupal.org/u/cgalli">Christophe Galli (@cgalli)</a>, <a href="https://drupal.org/u/woprrr">Alexandre Mallet (@woprrr)</a>. You are awesome!</p> <h3>How to help?</h3> <p>Start contributing. You can write documentation, test modules in the ecosystem and report bugs, fixing bugs or work on new features, design UX, write automated tests, share ideas and much, much more. You have a skill, we have a task for you.</p> <p>We are available on IRC. Join us on <a href="irc://irc.freenode.net/drupal-media">#drupal-media channel on Freenode.net</a> and get involved. We always publish general announcements on <a href="https://groups.drupal.org/media">groups.drupal.org/media</a>.</p> <p>If you prefer more personal communication you can always ping me on <a href="https://twitter.com/slashrsm">Twitter (@slashrsm)</a> or use the <a href="https://janezurevc.name/contact">contact form</a> on my blog to get in touch.</p> <h3>About me</h3> <p><em>I (<a href="https://www.drupal.org/u/slashrsm">Janez Urevc - @slashrsm</a>) am one of the architects of media ecosystem for Drupal 8. If you like what I am doing please consider donating to <a href="https://blockchain.info/address/1Xqe6gYWEbF1iKsy3Mr5SbAyebNyucj5t">my Bitcoin address: 1Xqe6gYWEbF1iKsy3Mr5SbAyebNyucj5t</a>.</em></p> <p>Together with some colleagues I'm <strong>building a small team of professionals that will be providing top-level consulting, training and development related to media in Drupal 8</strong>. If you're interested or you'd like to work with us please <a href="https://janezurevc.name/contact">get in touch</a>.</p> </div> <div class="field field--name-field-related field--type-entity-reference field--label-above"> <div class="field--label">Enjoyed this post? There is more!</div> <div class="field--items"> <div class="field--item"><a href="https://janezurevc.name/when-will-media-be-ready-for-drupal-8" hreflang="und">When will media be ready for Drupal 8?</a></div> <div class="field--item"><a href="https://janezurevc.name/janezurevc-name-runs-on-drupal-8" hreflang="en">janezurevc.name runs on Drupal 8!</a></div> </div> </div> Mon, 04 Jan 2016 21:42:46 +0000 slashrsm 83 at https://janezurevc.name When will media be ready for Drupal 8? https://janezurevc.name/when-will-media-be-ready-for-drupal-8 <span>When will media be ready for Drupal 8?</span> <span><span lang="" about="https://janezurevc.name/users/slashrsm" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">slashrsm</span></span> <span>Mon, 09.11.2015 - 14:00</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p><em>Disclaimer: This post ended up being quite long and I apologize for that. Media is a complex problem and there is a lot to be said. If you have better things to do in your life skip directly to the most important part: <a href="#list-modules">list of modules in D8 media space and their status</a>. Would you like to help? <a href="#focus">See what is our current focus</a>. Would you like to get in touch? <a href="#help">We will be happy to talk to you!</a></em></p> <p>OK. Now we're ready to start!</p> <p>With Drupal 8 around the corner a lot of people started asking me when will media be ready. It was quite reasonable to expect this to start happening. Unfortunately there is no simple answer to this question. Shortest would be: <em>"It depends.... What exactly do you need?"</em>. I know what you're thinking now... <em>"Are you joking with me!?"</em></p> <h2>First things first</h2> <div class="video-wrapper"> <iframe width="220" height="135" src="https://www.youtube.com/embed/YjGbCVuNE3U" frameborder="0" allowfullscreen=""></iframe><div style="text-align: center;"><em>Screencast displays WYSIWYG embedding in D8 core.</em></div> </div> <p>Quite some things happened since Drupal 8 release cycle started. Initially we focused on improving core itself. Improvements that were added to core are not many, but some of them are still very nice. Most noticeable for a day to day user are WYSIWYG embedding of images, multi-upload with drag'n drop support and listing of files in the system.</p> <div class="video-wrapper"> <iframe width="220" height="135" src="https://www.youtube.com/embed/umthSptaX6E" frameborder="0" allowfullscreen=""></iframe><div style="text-align: center;"><em>Screencast displays multi upload in Drupal 8.</em></div> </div> <p>Good stuff, you have to admit that. :) I hope that you already feel better... While those won't cover every possible use case are still nice improvements that most of sites will leverage from.</p> <p class="video-wrapper" style="text-align: center;"> <a title="Drupal 8 file listing" href="https://drupal-media.github.io/d8-status-update/img/d8-file-listing.png" class="colorbox-load"><img src="https://drupal-media.github.io/d8-status-update/img/d8-file-listing.png" title="Drupal 8 file listing" alt="Drupal 8 file listing" /></a><br /><span><em>Drupal 8 file listing.</em></span> </p> <p>At some point during the D8 cycle it became clear that we won't be able to include any more major improvements in core. It was necessary to start thinking about contrib space. <a href="https://groups.drupal.org/node/327768">Discussions were started</a>. We tried to identify what went wrong in the past and proposed ideas to make things better.</p> <p>At NYCCamp 2014 we finally met in person and <a href="https://groups.drupal.org/node/418803">came with an ambitious plan</a>. A lot of work was invested into it since then. We had two successful Google Summer of code projects, many volunteers invested 100s of hours and many companies invested significant funds to reach our goal.</p> <p style="text-align: center;"> <a title="Core media team at NYC Camp 2014" href="https://groups.drupal.org/files/_GEN1706.jpg" class="colorbox-load"><img title="Core media team at NYC Camp 2014" alt="Core media team at NYC Camp 2014" src="https://groups.drupal.org/files/_GEN1706.jpg" /></a><br /><span><em>Core media team at NYC Camp 2014.</em></span> </p> <h2>Where are we going?</h2> <p>Most important decision that was made in New York is division of media ecosystem into smaller and independent components. Until now media solutions mostly came as full-featured solutions that were hard to maintain and almost completely unable to integrate and collaborate. This approach comes with many benefits. Let's list just few of them:</p> <ol><li>Smaller pieces are easier to maintain.</li> <li>Independent components with clear focus are useful even outside of media.</li> <li>Components can be shared among many media solutions which simplifies development and maintenance.</li> <li>Media can re-use components that might already exist in the community.</li> </ol><p>I often use <a href="https://drupal.org/project/commerce">Drupal Commerce</a> ecosystem as an example. Instead of going down the "one big module that does all and even more" its architects decided to divide the problem space into many smaller pieces. As a result of that we have core commerce module that builds foundation and many plugins that build on top of that. Every e-commerce site is different and this approach allows us to adjust each individual site to the client's needs.</p> <p style="text-align: center;"> <a title="Ryan and Bojan, two of the masterminds behind Drupal Commerce" href="https://farm8.staticflickr.com/7451/10686725845_4a10d64377_z_d.jpg" class="colorbox-load"><br /><img title="Ryan and Bojan, two of the masterminds behind Drupal Commerce" alt="Ryan and Bojan, two of the masterminds behind Drupal Commerce" src="https://farm8.staticflickr.com/7451/10686725845_4a10d64377_z_d.jpg" /></a><br /><span><em>Ryan and Bojan, two of the masterminds behind Drupal Commerce.</em></span> </p> <p><em>"But, everything that shines ain't gold..."</em>, you say. <em>"If you divide the ecosystem into many parts, how will I know where to look for things?"</em></p> <p>You are right. Fragmentation does indeed come with some level of complexity. But we think that this can be fixed. I'll give commerce example once again. <em>"Ah! Not again!", you say. Well... yes. Those guys did many things right!</em> Anyone heard about <a href="https://www.drupal.org/project/commerce_kickstart">Commerce Kickstart</a>? No? It is a <a href="https://www.drupal.org/project/project_distribution">Drupal distribution</a> for e-commerce. It bundles Commerce core and many of it's plugins to build a full-featured solution. It can be used as a plug'n play solution, foundation to start building a project on or as a demonstration of possibilities that Commerce ecosystem has to offer.</p> <p>Our plan is to offer something similar. Either a distribution or a few "full-featured solution" modules that will bundle components and come with some default functionality. Those solutions will serve similar purpose than Kickstart.</p> <p><em>Did you really make it this far?! You must be insane! :) Now you really deserve some <strong>really</strong> useful info...</em></p> <h2 id="list-modules">Where are we?</h2> <p>OK... There will be many components. But is there anything ready at all? There is. Not everything, but there are pieces you can start using today.</p> <ul><li><strong><a href="https://drupal.org/project/file_entity">File entity:</a></strong> you might be familiar with this module from Drupal 7. It improves core files, makes them fieldable, lets you configure how they're displayed, etc. There is no official port yet, but you can check the <a href="https://github.com/drupal-media/file_entity">unofficial one that lives on GitHub</a>. It will hopefully become official soon (<em>/me looks at maintainers</em> :)).</li> <li> <div class="video-wrapper"> <iframe width="220" height="135" src="https://www.youtube.com/embed/c1918uIrCTI" frameborder="0" allowfullscreen=""></iframe><div style="text-align: center;"><em>Media entity handling Tweets and their metadata.</em></div> </div> <p><strong><a href="https://drupal.org/project/media_entity">Media entity:</a></strong> this alternative media storage approach doesn't directly extend core files. Instead of that creates new entity type from scratch. It uses unchanged core files for local media and handles remote media (<a href="https://drupal.org/project/media_entity_embeddable_video">Youtube</a>, <a href="https://drupal.org/project/media_entity_twitter">Twitter</a>, <a href="https://drupal.org/project/media_entity_instagram">Instagram</a>, ...) differently. It knows how to handle each individual type of media and it able to map metadata (tags, captions, credit info, thumbnails, ...) with entity fields. </p></li> <li><strong><a href="https://drupal.org/project/entity_browser">Entity browser:</a></strong> our browsing and selecting tool. Again, it knows how to work with any entity type. You can use it with entity reference fields, in your custom forms, as a standalone tool and we're planning to integrate it with Entity embed. Entity browser is extremely flexible. It comes with many default plugins and you can write your own. It is still in quite heavy development but some people use it already. There is also <a href="https://drupal-media.gitbooks.io/drupal8-guide/content/modules/entity_browser/intro.html">some basic documentation in our D8 media guide</a>.</li> <li> <div class="video-wrapper"> <iframe width="220" height="135" src="https://www.youtube.com/embed/p8cF525kEkM" frameborder="0" allowfullscreen=""></iframe><div style="text-align: center;"><em>Media embed in action.</em></div> </div> <p><strong><a href="https://drupal.org/project/entity_embed">Entity embed:</a></strong> embedding solution that can swallow any entity that you throw at it. It is very flexible and powerful. It is able to track embedded entities and can modify appearance on the render time. It integrates with CKEditor which gives users a nice UI to select entities to embed and configure their display. This will create a custom HTML element with data attributes that define all configuration. This configuration is picked by the text filter on the display time and converted to a rendered version of the entity. Very mature and useful. You should really give it a try!</p></li> <li> <div class="video-wrapper"> <iframe width="220" height="135" src="https://www.youtube.com/embed/tZer3Gf5d0s" frameborder="0" allowfullscreen=""></iframe><div style="text-align: center;"><em>Entity browser with DropzoneJS image uploader and image library.</em></div> </div> <p><strong><a href="https://drupal.org/project/dropzonejs">DropzoneJS:</a></strong> this module provides Drupal integration for the great multi-upload library. It gives you form element that can be used on custom forms and uses it to provide a widget for Entity browser. File/image field widget is still in development. </p></li> <li><strong><a href="https://drupal.org/project/crop">Crop API:</a></strong> provides storage for all cropping solution. Is able to handle crops based on region and focal point concepts. Also comes with some very basic image effects.</li> <li><strong><a href="https://www.drupal.org/sandbox/woprrr/2571403">Image widget crop:</a></strong> first UI module that builds on top of Crop API. Brings nice cropping experience to core image fields.</li> <li> <div class="video-wrapper"> <iframe width="220" height="135" src="https://www.youtube.com/embed/bPMXM5LJu0U" frameborder="0" allowfullscreen=""></iframe><div style="text-align: center;"><em>Entity browser and Inline entity form working together.</em></div> </div> <p><strong><a href="https://drupal.org/project/inline_entity_form">Inline entity form:</a></strong> born in Drupal Commerce world quickly became standard tool for advanced manipulation of referenced entities. It turns out it works great with media too! </p></li> <li><strong><a href="https://drupal.org/project/fallback_formatter">Fallback formatter:</a></strong> provides a field formatter that can attempt multiple formatters and the first one that returns output wins.</li> <li><strong><a href="https://drupal.org/project/file_browser">File entity browser:</a></strong> one of the first "example" modules. Uses Entity browser to provide nice multi-upload experience and ability to reuse files from the library. Uses <a href="https://masonry.desandro.com/">Masonry grid layout library</a> to make things look nice. Can be used as a starting point if you want to start exploring Entity browser. More features will be added soon.</li> <li><strong><a href="https://drupal.org/project/media_pinkeye">Media pinkeye:</a></strong> another "example" module. Comes with some default configuration that displays what can be done with Media entity and its plugins.</li> </ul><p>As you can see there is a lot of pieces that you can start using today. Are full-featured modules like <a href="https://drupal.org/project/media">Media</a>, <a href="https://drupal.org/project/scald">Scald</a> and <a href="https://drupal.org/project/mediabox">MediaBox</a> ready? No. Are you able to start building good stuff today? Definitely! Those modules will be using same components as I listed above. Can you expect issues and bugs? Yes! <a href="#help">Get in touch</a> and we'll fix stuff together.</p> <h2 id="focus">What remains to be done?</h2> <p>A lot! :) We consistently tag all our issues with "Media Initiative" and "D8Media". Search for this two tags and you'll get <a href="https://bit.ly/d8-media-issues">the list of issues</a> we need to solve at some point. Additionally we add "Novice" tag to indicate issues that are <a href="https://bit.ly/d8-media-novice-issues">suitable for new contributors</a>.</p> <p>We also maintain roadmaps for some of the individual modules:</p> <ul><li>Media entity: <a href="https://www.drupal.org/node/2577453">https://www.drupal.org/node/2577453</a></li> <li>Entity browser: <a href="https://www.drupal.org/node/2576683">https://www.drupal.org/node/2576683</a></li> <li>Inline entity form: <a href="https://www.drupal.org/node/2576445">https://www.drupal.org/node/2576445</a></li> </ul><p>Check those for the current focus.</p> <h2 id="help">How to help?</h2> <p>Start contributing. You can write documentation, test modules in the ecosystem and report bugs, fixing bugs or work on new features, design UX, write automated tests, share ideas and much, much more. You have a skill, we have a task for you.</p> <p>We are available on IRC. Join us on <a href="irc://irc.freenode.net/drupal-media">#drupal-media channel on Freenode.net</a> and get involved. We always publish general announcements on <a href="https://groups.drupal.org/media">groups.drupal.org/media.</a></p> <p>If you prefer more personal communication you can always ping me on <a href="https://twitter.com/slashrsm">Twitter (@slashrsm)</a> or use the <a href="https://janezurevc.name/contact">contact form</a> on this site to get in touch.</p> <p>We are sprinting too. Join us on one of the sprints in the near future:</p> <ol><li><a href="https://groups.drupal.org/node/489203">2nd Drupal 8 media virtual sprint</a> (13. November 2015)</li> <li><a href="https://2015.drupalcamp.at/">Sprint at DrupalCamp Vienna</a> (29. November 2015)</li> <li><a href="https://groups.drupal.org/node/488488">Week long media sprint in Zurich</a> - part of the broader <a href="https://www.md-systems.ch/en/blog/2015-10/join-the-drupal-8-media-initiative">D8 Media initiative program</a> started by <a href="https://www.md-systems.ch/en">MD Systems</a> (30. November - 4. December 2015)</li> </ol><h2>I want to start building D8 site and I need media. What to do?</h2> <p>There are several things you can do:</p> <ol><li>Check components that we already have and see if you can use them to build what you want.</li> <li>Encourage your team to get involved with the initiative and help us pushing media forward.</li> <li>Don't start building your own custom solution. Please. Even if it sounds like a good idea it is not. Believe me. This is never a good idea. You will have problems maintaining your custom solution. Invest time in common efforts. You will get what you need and community will help you maintaining it. We don't provide solutions for your problems? <a href="#help">Talk to us!</a> We will listen. I promise! Read this paragraph again.</li> <li>You don't have in-house knowledge/skills? You have the team that needs just a bit of guidance? We can provide some level of commercial support, coaching and consulting. <a href="https://janezurevc.name/contact">Get in touch and we'll see what can be done</a>.</li> </ol><h2>Conclusion</h2> <p>Our goal is to make <strong>Drupal the best media handling solution for the internet</strong>. As you can see there's still a long way to reach that. However, we have a plan and we're working heavily. Some things are there and you can start using them today.</p> <p>Are you missing something? Join us. Only together we'll make Drupal media shine. Share this post with a co-worker or friend. <a href="#help">Let us know what you think</a>. Get involved and help us reach our goal.</p> <p><em>I would like to thank the people who preliminary reviewed this post and suggested improvements (in random order): my wife Nataša, <a href="https://drupal.org/u/chx">Károly Négyesi (@chx)</a>, <a href="https://drupal.org/u/primsi">Primož Hmeljak (@Primsi)</a>, <a href="https://drupal.org/u/paranojik">Tadej Baša (@paranojik)</a>, <a href="https://www.drupal.org/u/miro_dietiker">Miro Dietiker</a> and <a href="https://www.drupal.org/u/berdir">Sascha Grossenbacher (@berdir)</a>. I would also like to thank everybody that contributed to the initiative in past years.</em></p> </div> <div class="field field--name-field-related field--type-entity-reference field--label-above"> <div class="field--label">Enjoyed this post? There is more!</div> <div class="field--items"> <div class="field--item"><a href="https://janezurevc.name/zurich-drupal-8-media-sprint-was-a-success" hreflang="und">Zurich Drupal 8 media sprint was a success!</a></div> <div class="field--item"><a href="https://janezurevc.name/janezurevc-name-runs-on-drupal-8" hreflang="en">janezurevc.name runs on Drupal 8!</a></div> </div> </div> Mon, 09 Nov 2015 13:00:00 +0000 slashrsm 82 at https://janezurevc.name 1st Drupal 8 media virtual sprint was a success! https://janezurevc.name/1st-drupal-8-media-virtual-sprint-was-success <span>1st Drupal 8 media virtual sprint was a success!</span> <span><span lang="" about="https://janezurevc.name/users/slashrsm" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">slashrsm</span></span> <span>Sat, 03.10.2015 - 09:51</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>On Friday, 2nd Oct 2015, we organized the first virtual media sprint. Four sprinters showed up and worked on D8 media issues.</p> <h2>First a bit of background</h2> <p><img alt="Examiner.com logo" data-entity-type="file" data-entity-uuid="30e95254-03d7-46ba-8a00-c30126dfbb49" src="https://janezurevc.name/sites/default/files/examiner.png" /></p> <p>At <a href="https://www.examiner.com">Examiner.com</a> we get an entire day to spend (along with contributions that we do as part of our regular work) on community contributions every other week. We call it <strong>"Drupal day"</strong> and we love it! It is our way of saying "Thank you!" to the community. We understand that we wouldn't be as successful as we are without incredible efforts that are invested in Drupal and other free software projects we use.</p> <p>We are currently working on a very cool D8 project where we heavily use modules from media ecosystem. I might write another post solely about that in the near future. My companies' need for solid media handling solution aligns very nicely with my personal interest in the same field. As a result of that I spend most of my Drupal days on improving media ecosystem and thinking about it. Having a day to focus on things that excite you is great, but what if there would be more people joining?</p> <p>This is when idea for virtual sprint was born. I published <a href="https://groups.drupal.org/node/483588">the event on our group</a> and invited everyone to join me.</p> <h2>Results</h2> <p>On the actual date three other sprinters joined me:</p> <ul><li><a href="https://drupal.org/u/primsi">@primsi</a> was converting <a href="https://drupal.org/project/entity_browser">Entity browser's</a> modal display <a href="https://www.drupal.org/node/2569569">to use iFrame internally</a>. We decided for this step back in July at NYC Camp sprint. It will hopefully make Entity browser much more robust and stable. Pull request is almost ready. We still need to figure out some things in part of the JS code that deals with modal manipulation. We could use some help from people that are better in JS development than we are.</li> <li><span style="font-size: 13.008px; line-height: 1.538em;"><a href="https://drupal.org/u/woprrr">@woprrr</a> was working on his <a href="https://github.com/woprrr/image_widget_crop">Image widget crop</a> module which creates nice image cropping experience on top of <a href="https://drupal.org/project/crop">Crop API</a>, which provides common storage for all cropping solutions. Module is already working very well and I'll encourage everyone to give it a look. <a href="https://drupal.org/u/woprrr">@woprrr</a> also used this module for his<a href="https://www.drupal.org/node/2573087"> Drupal.org project application</a>. Helping him with pushing his issue forward would be nice way of thanking him for his work ;).</span></li> <li><span style="font-size: 13.008px; line-height: 1.538em;"><a href="https://drupal.org/u/dragan-eror">@Dragan Eror</a> reviewed and tested <a href="https://github.com/woprrr/image_widget_crop">Image widget crop</a> module and started working on <a href="https://www.drupal.org/node/2336157">Media entity metadata mapping configuration UI</a>.</span></li> <li><span style="font-size: 13.008px; line-height: 1.538em;">I (<a href="https://drupal.org/u/slashrsm">@slashrsm</a>) spent most of the day converting <a href="https://www.drupal.org/node/2529178">Media entity validation UI to constraints</a> and implementing this change in <a href="https://www.drupal.org/node/2578927">Media entity Twitter provider module</a>. I also created follow-ups in all other provider modules (<a href="https://www.drupal.org/node/2578935">Instagram</a>, <a href="https://www.drupal.org/node/2578947">Embeddable video</a>, <a href="https://www.drupal.org/node/2578941">Image</a>, <a href="https://www.drupal.org/node/2578945">Slideshow</a>) which are suitable for any new contributors looking for issues to get involved in media initiative.</span></li> </ul><h2>How to contribute?</h2> <p><span style="font-size: 13.008px; line-height: 1.538em;">Anyone is invited to contribute also outside of official sprints. We tag all our issues with "D8Media", which helps us maintain <a href="https://bit.ly/d8-media-issues">list of all issues we need to work on</a>. We also maintain a list of issues <a href="https://bit.ly/b8-media-novice-issues">suitable for new contributors</a>. You can find us on IRC (#drupal-media @ Freenode) and a lot of Drupal events (<a href="https://2015.badcamp.net">BADCamp</a> and <a href="https://2015.drupalcamp.at/">Drupal camp Vienna</a> in the nearest future).</span></p> <p><span style="font-size: 13.008px; line-height: 1.538em;">In order to get an idea about the focus of individual modules we also invite you to check module-specific roadmap planning meta-issues:</span></p> <ul><li><a href="https://www.drupal.org/node/2576445">Inline entity form</a></li> <li><a href="https://www.drupal.org/node/2577453"><span style="font-size: 13.008px; line-height: 1.538em;">Media entity</span></a></li> <li><span style="font-size: 13.008px; line-height: 1.538em;"><a href="https://www.drupal.org/node/2576683">Entity browser</a>.</span></li> </ul><p><span style="font-size: 13.008px; line-height: 1.538em;">We will be adding more of those soon. </span></p> <h2>Will there be more?</h2> <p>We'd certainly like to organize more virtual (and non-virtual) sprints in the future if we'll see interest from the community/sprinters. Do you think there should be more events like this? Would you like to join us next time? Let us know in the comments section below. You can also follow <a href="https://groups.drupal.org/media">our group</a> as we publish all events and other updates there.</p> </div> Sat, 03 Oct 2015 07:51:53 +0000 slashrsm 81 at https://janezurevc.name Drupal 8 from my media perspective - update #2 https://janezurevc.name/drupal-8-my-media-perspective-update-2 <span>Drupal 8 from my media perspective - update #2</span> <span><span lang="" about="https://janezurevc.name/users/slashrsm" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">slashrsm</span></span> <span>Fri, 10.10.2014 - 12:20</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>It's been a while since <a href="https://janezurevc.name/drupal-8-my-media-perspective-update-1">my last post</a> and with <a href="https://amsterdam2014.drupal.org">DrupalCon Amsterdam</a> behind us it seems a good timing for another update.</p> <p><em>Note: <a href="https://www.examiner.com">Examiner.com</a> (my employer and very well know enterprise Drupal 7 site) gives every developer a so-called "Drupal day" every other week. I am writing this blog post as part of it as I do some of my code contributions.</em></p> <h2>Core</h2> <p>Since last post we fixed:</p> <ul><li><a href="https://www.drupal.org/node/2204325">[#2204325] The "rendered entity" formatter breaks for entity types with out a ViewBuilder</a> (thanks to <a href="https://www.drupal.org/u/arla">@Arla</a>)</li> <li><a href="https://www.drupal.org/node/2239413">[#2239413] Split FilterCaption into FilterAlign (for data-align) and FilterCaption (for data-caption)</a> (thanks to <a href="https://www.drupal.org/u/wim-leers">@Wim Leers</a> and <a href="https://www.drupal.org/u/blueminds">@blueminds</a>)</li> <li><a href="https://www.drupal.org/node/2271349">[#2271349] Node and Comment ops links should be display components (which can be disabled)</a> (thanks to <a href="https://drupal.org/u/Berdir">@Berdir</a>, <a href="https://drupal.org/u/arla">@Arla</a>, <a href="https://drupal.org/u/blueminds">@blueminds</a>, <a href="https://drupal.org/u/larowlan">@larowlan</a> and <a href="https://www.drupal.org/u/dave-reid">@Dave Reid</a>)</li> </ul><p>We are currently focusing on few issues:</p> <ul><li><a href="https://www.drupal.org/node/2278073">[#2278073] Files with spaces in URIs fail entity TypedData validation</a> - this issue turns out to be quite tricky. We had some discussions about possible solutions in Amsterdam.</li> <li><a href="https://www.drupal.org/node/2148353">[#2148353] File access (hook_file_download) does not use an EntityAccessController</a> - should be almost there; needs just a bit more work</li> <li><a href="https://www.drupal.org/node/1308152">[#1308152] Add module://, theme:// and profile:// stream wrappers to access system files</a> - RTBC at the moment; it seems to be almost there. Yay! Thank you all that worked on it during Amsterdam and after it.</li> </ul><h2>Contrib</h2> <p>We've been chasing HEAD a lot during past months. We can't guarantee that everything works at any given time, but we're trying to follow changes in core as frequently as we can.</p> <ul><li><a href="https://drupal.org/project/entity_embed">entity_embed</a> is practically ready (thanks to our <a href="https://www.google-melange.com/gsoc/homepage/google/gsoc2014">GSoC</a> student <a href="https://www.drupal.org/u/cs_shadow">@cs_shadow</a>). We are planning to split it's general functionality <a href="https://drupalmedia.hackpad.com/Embed-module-71ubAT132P3">into embed module</a> that would allow other modules to embed various types of content (not just Drupal entities). entity_embed will become just one of the modules in this group. <a href="https://www.drupal.org/u/dave-reid">@Dave Reid</a>, <a href="https://www.drupal.org/u/cs_shadow">@cs_shadow</a> and <a href="https://www.drupal.org/u/eaton">@eaton</a> did most work on planning this split.</li> <li><a href="https://drupal.org/project/entity_browser">entity_browser</a> is not progressing as fast as we'd like, but it gained some momentum recently. <a href="https://www.drupal.org/u/kmoll">@kmoll</a> and myself have been working on base APIs during last two weeks or so. We are hoping to have first working demo in a month or so.</li> <li><a href="https://drupal.org/project/media_entity">media_entity</a> is also progressing well. Besides HEAD chasing <a href="https://github.com/drupal-media/media_entity/commit/ecfafc7510ac6d8eb4997bf107060dc05cd57c93">I implemented media type provider plugins</a>, which are responsible for business logic behind media (validation and providing additional fields ATM - we will add more responsibilities as we go). There is also sample implementation (not finished at all, but ready to play with) for <a href="https://drupal.org/project/media_entity_youtube">YouTube videos</a>. <a href="https://www.drupal.org/u/primsi">@Primsi</a> is currently working on <a href="https://www.drupal.org/project/media_entity_twitter">Twitter implementation</a> and <a href="https://www.drupal.org/user/854012">@designesse</a> on Instagram implementation.</li> </ul><h2>Core conversation in Amsterdam</h2> <p><a href="https://drupal.org/u/dave-reid">@Dave Reid</a> and myself gave a talk about the current state of media in D8 on DrupalCon Amsterdam. <a href="https://amsterdam2014.drupal.org/session/drupal-8-media">Recording is available</a> for all of you that missed our session.</p> <p> </p><div class="video-wrapper"> <iframe allowfullscreen="" frameborder="0" height="360" src="//www.youtube.com/embed/Hd-jPrEcAn8" width="480"></iframe></div> <p> </p> <h2>Other stuff</h2> <p><a href="https://www.drupal.org/u/willyk">@willyk</a> has been working on initiative funding and organizational efforts.</p> <p>In Amsterdam we decided that we want to organize 4 dedicated media sprints in 2015 (one in each quarter). Sprinting at events is great, but there are too many distractions to really focus on complex problems we're trying to solve. Organizing a dedicated sprint that focuses on media only should help us to focus and achieve some good progress. We will also set quarterly goals and clearly communicate them with the community. This will help us to focus on most important things at any given time.</p> <p>Would you like to help organize, provide funds or attend one of those sprints? Make sure you let us know sooner rather than later!</p> <h2>How to get involved?</h2> <p>We have weekly scrums every Tuesday at 15:30 UTC (we are considering alternate time/date, check g.d.o group for updates). You can also find us on #drupal-media on Freenode or follow our updates on <a href="https://groups.drupal.org/media">groups.drupal.org/media</a>. You can find us at <a href="https://drupalcamp.rs/">DrupalCamp Serbia</a> and  <a href="https://2014.badcamp.net/">BADCamp</a>.</p> <h2> </h2> </div> Fri, 10 Oct 2014 10:20:50 +0000 slashrsm 78 at https://janezurevc.name