Sorry

This feed does not validate.

In addition, interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: http://feeds.feedburner.com/sharedove/feed

  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">
  2.  
  3. <channel>
  4. <title>Adis Jugo blog</title>
  5. <atom:link href="https://blog.sharedove.com/adisjugo/index.php/feed/" rel="self" type="application/rss+xml"/>
  6. <link>https://blog.sharedove.com/adisjugo/</link>
  7. <description>The Southern Side</description>
  8. <lastBuildDate>Mon, 25 Jul 2022 08:58:01 +0000</lastBuildDate>
  9. <language>en-US</language>
  10. <sy:updatePeriod>
  11. hourly </sy:updatePeriod>
  12. <sy:updateFrequency>
  13. 1 </sy:updateFrequency>
  14. <generator>https://wordpress.org/?v=6.0.7</generator>
  15.  
  16. <image>
  17. <url>https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/cropped-cropped-aj-1-32x32.png</url>
  18. <title>Adis Jugo blog</title>
  19. <link>https://blog.sharedove.com/adisjugo/</link>
  20. <width>32</width>
  21. <height>32</height>
  22. </image>
  23. <itunes:explicit>no</itunes:explicit><itunes:subtitle>The Southern Side</itunes:subtitle><item>
  24. <title>Farewell, Nubelus, you were good to us</title>
  25. <link>https://blog.sharedove.com/adisjugo/index.php/2022/07/25/farewell-nubelus-you-were-good-to-us/</link>
  26. <dc:creator><![CDATA[adis.jugo]]></dc:creator>
  27. <pubDate>Mon, 25 Jul 2022 06:13:32 +0000</pubDate>
  28. <category><![CDATA[Uncategorized]]></category>
  29. <guid isPermaLink="false">https://blog.sharedove.com/adisjugo/?p=4259</guid>
  30.  
  31. <description><![CDATA[<p>Eight years ago, we have incorporated Nubelus with the main purpose to serve a single customer, and I was the only employee. This was a few years after I left daenet (the company I co-founded back in 1999), and after I was (for the first time in my life) working for someone else for a [&#8230;]</p>
  32. <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2022/07/25/farewell-nubelus-you-were-good-to-us/">Farewell, Nubelus, you were good to us</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  33. ]]></description>
  34. <content:encoded><![CDATA[
  35. <p>Eight years ago, we have incorporated <a href="https://www.nubelus.com" target="_blank" rel="noreferrer noopener">Nubelus </a>with the main purpose to serve a single customer, and I was the only employee. This was a few years after I left daenet (the company I co-founded back in 1999), and after I was (for the first time in my life) working for someone else for a few years. We didn’t even have time to properly think about the name, Nubelus (<em>Latin: clouds</em>) was quickly chosen because we thought it would be obvious for everyone (hint: it wasn’t &#x1f642;).</p>
  36.  
  37.  
  38.  
  39. <p>Soon after that, in 2017, we have decided to move the <a href="https://www.collabsummit.eu" target="_blank" rel="noreferrer noopener">European Collaboration Summit</a> to Germany, and we needed a new home for that conference, and Nubelus became that home. Those were the times when Nubelus got the second employee – Margit, who took over finances and attendee management, because there was no way that people who were involved in the conference could do that in their after-work hours and on weekends: it was just too much work for our pure community approach.</p>
  40.  
  41.  
  42.  
  43. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="576" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2022/07/Image-1024x576.jpeg" alt="" class="wp-image-4261" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2022/07/Image-980x552.jpeg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2022/07/Image-480x270.jpeg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure>
  44.  
  45.  
  46.  
  47. <p>Nubelus continued working for the customers in Microsoft 365 space, but also closely working with some top product companies (to name only SysKit and skybow). We have landed on the suppliers&#8217; lists of all major cloud platforms (Microsoft, AWS, Google), and all DAX-listed companies. The team was growing, that initial customer was still with us, and everything seemed to be just fine.</p>
  48.  
  49.  
  50.  
  51. <p>And then the pandemic massively hit us: while we have never considered the community-initiated European Collaboration Summit to be a profit-center, we have soon realized that it is very much a cost center, especially in the times when there can be no conference. Luckily, we were able to cover those costs from other income sources, but it became apparent for us that things do need to change.</p>
  52.  
  53.  
  54.  
  55. <p>In 2020, <a href="https://www.teamsconsulting.eu" target="_blank" rel="noreferrer noopener">SW Teams Consulting GmbH</a> (“Teams Consulting”) has been incorporated with the sole focus on delivering state of art Azure, Microsoft 365, Power Platform and WEBCON solutions, and it has taken over Nubelus’ consulting business. Soon after that, we have incorporated <a href="https://ecs.events" target="_blank" rel="noreferrer noopener">ecs.events OÜ</a>, as an Estonian limited liability company with the headquarters in Tallinn, which took over the European Collaboration Summit and <a href="https://www.cloudsummit.eu" target="_blank" rel="noreferrer noopener">European Cloud Summit</a> from Nubelus.</p>
  56.  
  57.  
  58.  
  59. <p>Besides those two areas of business, during the pandemic years we have started working on two separate software products: KORTO, a modern, AI-powered Records Management System (together with our partners from the Swiss financial software company <a href="https://www.insa-software.com/" target="_blank" rel="noreferrer noopener">INSA</a>), and run.events, a cloud-based enterprise-grade platform for managing conferences and other events.</p>
  60.  
  61.  
  62.  
  63. <p>During this time, the team was constantly growing, and besides headquarters in Bingen am Rhein (Germany), the new offices in Tallinn (Estonia) and Sarajevo (Bosnia and Herzegovina) were open. <strong>Twenty-one colleagues who are working with us today are coming from six different countries</strong>, making our work quite an enjoyable experience.</p>
  64.  
  65.  
  66.  
  67. <p><a rel="noreferrer noopener" href="https://korto.io" target="_blank">KORTO</a> was also incorporated in 2021 as a separate Estonian limited liability company (a joint venture with INSA Group), and so Nubelus remained “only” the home of run.events product development. So, it was only fair to acknowledge that fact.</p>
  68.  
  69.  
  70.  
  71. <p><strong>As of Friday, 22 July 2022, the new company name is officially <a href="https://run.events" target="_blank" rel="noreferrer noopener">run.events GmbH</a></strong>, and the headquarters have been moved to our <a href="https://goo.gl/maps/Qb5itgrpwSQ5A7qQ7" target="_blank" rel="noreferrer noopener">new office space in Bingen am Rhein</a>. With this change, we said farewell to the name Nubelus (it has served us good!), and the company is completely focused on bringing run.events platform to the market, which is envisioned for the Q4 this year. We are already using it for the European Cloud Summit, and some of our dear friends are using it for their conferences, but we still need to iron some rough edges before we hit the market.</p>
  72.  
  73.  
  74.  
  75. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="576" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2022/07/Picture1-1024x576.jpg" alt="" class="wp-image-4262" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2022/07/Picture1-980x551.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2022/07/Picture1-480x270.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /><figcaption><em>run.events dev team in Sarajevo is discussing the mobile app</em></figcaption></figure>
  76.  
  77.  
  78.  
  79. <p>And that first customer from eight years ago? They are still happily with us (with Teams Consulting), and we are just in process of delivering a state-of-art project for them, that – I am proud to say – not many other companies could do.</p>
  80.  
  81.  
  82.  
  83. <p>I personally will be devoting the most of my time to both products (where my passion really is) and to Teams Consulting customers. The other colleagues have already taken more prominent roles within both conferences (no worries, I am by no means leaving ECS, I am just making a step back &#x1f642;). Here is to the future!</p>
  84. <div class="fb-background-color">
  85.  <div
  86.   class = "fb-comments"
  87.   data-href = "https://blog.sharedove.com/adisjugo/index.php/2022/07/25/farewell-nubelus-you-were-good-to-us/"
  88.   data-numposts = "59"
  89.   data-lazy = "true"
  90. data-colorscheme = "light"
  91. data-order-by = "time"
  92. data-mobile=true>
  93.  </div></div>
  94.  <style>
  95.    .fb-background-color {
  96. background:  !important;
  97. }
  98. .fb_iframe_widget_fluid_desktop iframe {
  99.    width: 100% !important;
  100. }
  101.  </style>
  102.  <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2022/07/25/farewell-nubelus-you-were-good-to-us/">Farewell, Nubelus, you were good to us</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  103. ]]></content:encoded>
  104. </item>
  105. <item>
  106. <title>When people want to come together</title>
  107. <link>https://blog.sharedove.com/adisjugo/index.php/2022/02/01/when-people-want-to-come-together/</link>
  108. <dc:creator><![CDATA[adis.jugo]]></dc:creator>
  109. <pubDate>Tue, 01 Feb 2022 21:07:12 +0000</pubDate>
  110. <category><![CDATA[Random Thoughts]]></category>
  111. <category><![CDATA[run.events]]></category>
  112. <guid isPermaLink="false">https://blog.sharedove.com/adisjugo/?p=4222</guid>
  113.  
  114. <description><![CDATA[<p>Yesterday, on 1 Feb 2022, we have opened the ticket sales for the European Cloud Summit 2022, and for that we have used run.events &#8211; our own event management and ticketing platform &#8211; which went live on the very same day. Obviously, it was a big day both for our event team, and especially for [&#8230;]</p>
  115. <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2022/02/01/when-people-want-to-come-together/">When people want to come together</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  116. ]]></description>
  117. <content:encoded><![CDATA[
  118. <p>Yesterday, on 1 Feb 2022, we have opened the ticket sales for the <a href="https://www.cloudsummit.eu" target="_blank" rel="noreferrer noopener">European Cloud Summit 2022</a>, and for that we have used <strong><a href="https://nubel.us/reab0222" target="_blank" rel="noreferrer noopener">run.events</a></strong> &#8211; our own event management and ticketing platform &#8211; which went live on the very same day. Obviously, it was a big day both for our event team, and especially for our dev team.</p>
  119.  
  120.  
  121.  
  122. <p>Therefore, I would like to share the story of <a rel="noreferrer noopener" href="https://nubel.us/reab0222" target="_blank">run.events</a> with you here.</p>
  123.  
  124.  
  125.  
  126. <p>An average event organizer uses six different (disconnected!) tools for organization of only one event (this number can grow), in addition to using hundreds of Excel spreadsheets. Even this sentence alone is enough to make the brain go spinning. I know this very well from organizing <a rel="noreferrer noopener" href="https://www.collabsummit.eu" target="_blank">CollabSummit</a> and <a rel="noreferrer noopener" href="https://www.cloudsummit.eu" target="_blank">CloudSummit</a>. There are various event management platforms available on the market, we have used some of them, we have tried some of them, and we have got sales pitches and demos for the most of them. And all of them suffer from the same disease: they cover some aspects of the event organization (some better, some worse), and none of them is actually capable of helping us to manage our event business as a whole.</p>
  127.  
  128.  
  129.  
  130. <p>On top of that, all of the platforms that we have seen require high upfront payments, installation and configuration costs, and often even require external consultants (!) in order to ramp up a functioning system or even to be present (!!!) at the event.</p>
  131.  
  132.  
  133.  
  134. <h2 id="hello-run-events"><strong>Hello, run.events</strong>!</h2>
  135.  
  136.  
  137.  
  138. <p>Sometimes during the pandemic summer of 2021, after we realized that we cannot buy software which we need, the developer in me came up a crazy idea, which was effectively the only viable alternative left: we will make it ourselves. Isn’t it always crazy moments like that, which get great stories started?</p>
  139.  
  140.  
  141.  
  142. <p>Yesterday, after almost 200 000 lines of manually written code, <a rel="noreferrer noopener" href="https://nubel.us/reab0222" target="_blank">run.events</a> went live. “Dogfood” live, that is. We will be organizing CloudSummit 2022 on it, and we have already successfully sold our first tickets.</p>
  143.  
  144.  
  145.  
  146. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="451" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2022/02/run.events-screenshots-1024x451.png" alt="" class="wp-image-4224" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2022/02/run.events-screenshots-980x432.png 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2022/02/run.events-screenshots-480x211.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure>
  147.  
  148.  
  149.  
  150. <p>We have built <a href="https://nubel.us/reab0222">run.events</a> in the cloud. In Azure, to be more specific. It is built entirely as a SaaS platform: organizers, attendees, speakers, sponsors can visit the site, create an account, and start whatever they intend to do – organize an event, buy tickets, submit sessions. It will be instantly ready-to-use, without the need to reach out to our sales team for customized price offer, or software demo. We will not be haunting people with the dreadful sales calls. Create an account and try it. If you like it, use it. Event organizers will be able to start creating their event, or simply to test features by creating a free test event. A well-designed, user-friendly and clearly structured user interface (enriched by short explanatory videos) will guide them through all the features and help them to make the best possible use the platform.</p>
  151.  
  152.  
  153.  
  154. <p>For private events (your beloved one’s birthday party, family events, etc), <a href="https://nubel.us/reab0222" target="_blank" rel="noreferrer noopener">run.events</a> will forever be free to use. Actually, as long as people don’t earn money on their events, <a href="https://nubel.us/reab0222" target="_blank" rel="noreferrer noopener">run.events</a> will be free, including all of the the features. Furthermore, we will also make <a href="https://nubel.us/reab0222" target="_blank" rel="noreferrer noopener">run.events</a> free for charities, NGOs and community projects (they will have to reach to us for that). Commercial event organizers will be charged according to a pricing model which is based on ticket sales commission, with no upfront costs, similar to what well known ticketing tools do. There will be one crucial difference, though: we will be offering a fully integrated enterprise system, not just ticket sales. That pricing model will enable event organizers to avoid upfront costs and financial risks, and to pay for the software according to their financial success.</p>
  155.  
  156.  
  157.  
  158. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="676" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2022/02/runevents-onesolution-1024x676.png" alt="" class="wp-image-4223" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2022/02/runevents-onesolution-980x647.png 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2022/02/runevents-onesolution-480x317.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure>
  159.  
  160.  
  161.  
  162. <h2 id="re-virtual-run-events-goes-metaverse-for-us-it-is-not-just-a-buzzword">re:virtual &#8211; run.events goes metaverse. For us, it is not just a buzzword.</h2>
  163.  
  164.  
  165.  
  166. <p>Back in October 2020, we have organized the “Networking Day”, the first event in our industry which has been organized completely in VR. Again, we have used yet another (disconnected) technology which didn’t really work well for many reasons. Many events have been doing similar things after us, and they all suffered from the very issues we did.</p>
  167.  
  168.  
  169.  
  170. <p>However, it is the fact that event organizers’ problems have been further amplified by the global COVID-19 pandemic, which has overnight shifted most of the events towards digital format. As offered today, “standard” digital events focus on video streaming, and neglect all other aspects of events, such as business networking, meetings and casual conversations. That is reducing digital events merely to learning platforms (making them compete with YouTube channels!) and completely neglecting networking and trade show elements, mostly reducing sponsors’ digital presence to a web site with chat functionality.</p>
  171.  
  172.  
  173.  
  174. <figure class="wp-block-video"><video controls src="https://nubeluscollabandcloudweb.blob.core.windows.net/runeventsweb/bgvideo-onlyexpohall.mp4"></video></figure>
  175.  
  176.  
  177.  
  178. <p>So, if the most popular VR tool wasn’t really working for us (or for anyone else, really), and if standard digital events cannot provide the experience which would be satisfying for sponsors and attendees alike, what was the alternative?</p>
  179.  
  180.  
  181.  
  182. <p>I think you can guess the answer. &#x1f60a;</p>
  183.  
  184.  
  185.  
  186. <p>With our own <strong>re:virtual</strong> platform, <a href="https://nubel.us/reab0222" target="_blank" rel="noreferrer noopener">run.events</a> will offer a vision of future, and technological means for achieving that vision: exhibition halls, expo booths, and theaters in VR will be “one click away”, available and affordable for everyone, making events in metaverse and hybrid events a viable way to expand the customer base and to be prepared for the future of the events industry. <strong>There is a promise I need to make here: re:virtual avatars will always have both arms and legs, there will be no compromises on body parts.</strong> We actually made them look beautifully human.</p>
  187.  
  188.  
  189.  
  190. <figure class="wp-block-video"><video controls src="https://nubeluscollabandcloudweb.blob.core.windows.net/runeventsweb/ExpoHallEditor.mp4"></video></figure>
  191.  
  192.  
  193.  
  194. <p>From Q3/2022, re:virtual will be available to all event organizers who will be using <a rel="noreferrer noopener" href="https://nubel.us/reab0222" target="_blank">run.events</a>. In the future, we will look into offering it to all event organizers, regardless if they are using <a href="https://nubel.us/reab0222" target="_blank" rel="noreferrer noopener">run.events</a> or not.</p>
  195.  
  196.  
  197.  
  198. <blockquote class="wp-block-quote"><p>It is important to state that re:virtual is a complementary platform, fully integrated with <a href="https://nubel.us/reab0222" data-type="URL" data-id="https://nubel.us/reab0222" target="_blank" rel="noreferrer noopener">run.events</a>, but it does not have to be used for in-person-only events. However, it is our answer to problems with current digital and hybrid events, and our best bet for the future of travel-heavy event industry.</p></blockquote>
  199.  
  200.  
  201.  
  202. <h2 id="hugs-and-credits">Hugs and credits</h2>
  203.  
  204.  
  205.  
  206. <p>This all was only possible with the ninja-team spread between Bingen (Germany), Sarajevo (Bosnia), Nice (France) and Edinburgh (UK), and aided by the best possible partner that we could ever imagine: development house <a rel="noreferrer noopener" href="https://www.maus.ba/" target="_blank">MAUS</a> from Sarajevo, founded and managed by a brilliant young man whom I was privileged to employ to his first job 16 years ago, and with whom I am privileged to work again today – thanks for everything <a rel="noreferrer noopener" href="https://www.linkedin.com/in/davor-zlotrg/" target="_blank">Davor Zlotrg</a>, you have created a brilliant team. <a rel="noreferrer noopener" href="https://www.linkedin.com/in/afan-olovcic-48171b47/" target="_blank">Afan Olovčić</a> has, together with me, worked on the re:virtual project, and he is the creative brain behind re:virtual and all our metaverse efforts. <a rel="noreferrer noopener" href="https://www.linkedin.com/in/elena-kovacevic-21297292/" target="_blank">Elena</a>, <a rel="noreferrer noopener" href="https://twitter.com/harbars" target="_blank">Spence</a>, <a rel="noreferrer noopener" href="https://www.linkedin.com/in/margit-jugo-5064421a4/" target="_blank">Margit</a> and I spent countless hours on scoping it all, Emir happily took the role of database guru, and <a rel="noreferrer noopener" href="https://www.linkedin.com/in/amna-surkovic-158b7619b/" target="_blank">Amna</a> is the silent power behind documenting everything and managing Azure DevOps. Huge tip of the hat to the <a rel="noreferrer noopener" href="https://www.linkedin.com/company/microsoftforstartups/" target="_blank">Microsoft Founders Hub</a> for accompanying and supporting us along the way – for those who didn’t realize it, Microsoft is very much involved in supporting start-up scene nowadays.</p>
  207.  
  208.  
  209.  
  210. <p>You see, we have passionately created <a rel="noreferrer noopener" href="https://nubel.us/reab0222" target="_blank">run.events</a> to support us, and all the other professional event organizers out there, in our entire business: year on year, event after event. You are welcome to already create <a href="https://nubel.us/reab0222" target="_blank" rel="noreferrer noopener">run.events</a> accounts – you will anyways need them to register for the <a rel="noreferrer noopener" href="https://www.cloudsummit.eu" target="_blank">European Cloud Summit</a> (see you in Mainz!). In April, we will start a private beta programme for event organizers, starting with a few selected events (you can apply for it at <a href="https://blog.sharedove.com/adisjugo/index.php/2022/02/01/when-people-want-to-come-together/" target="_blank" rel="noreferrer noopener">https://run.events</a>).</p>
  211.  
  212.  
  213.  
  214. <p>And sometimes in Q3/2022, we will go live for everyone – organizers, speakers, sponsors &#8211; with only one mission: to be the only tool which event organizers will ever need to manage their event organization business.</p>
  215. <div class="fb-background-color">
  216.  <div
  217.   class = "fb-comments"
  218.   data-href = "https://blog.sharedove.com/adisjugo/index.php/2022/02/01/when-people-want-to-come-together/"
  219.   data-numposts = "59"
  220.   data-lazy = "true"
  221. data-colorscheme = "light"
  222. data-order-by = "time"
  223. data-mobile=true>
  224.  </div></div>
  225.  <style>
  226.    .fb-background-color {
  227. background:  !important;
  228. }
  229. .fb_iframe_widget_fluid_desktop iframe {
  230.    width: 100% !important;
  231. }
  232.  </style>
  233.  <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2022/02/01/when-people-want-to-come-together/">When people want to come together</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  234. ]]></content:encoded>
  235. <enclosure length="14547740" type="video/mp4" url="https://nubeluscollabandcloudweb.blob.core.windows.net/runeventsweb/bgvideo-onlyexpohall.mp4"/>
  236. <enclosure length="11817224" type="video/mp4" url="https://nubeluscollabandcloudweb.blob.core.windows.net/runeventsweb/ExpoHallEditor.mp4"/>
  237.  
  238. <itunes:explicit/><itunes:subtitle>Yesterday, on 1 Feb 2022, we have opened the ticket sales for the European Cloud Summit 2022, and for that we have used run.events &amp;#8211; our own event management and ticketing platform &amp;#8211; which went live on the very same day. Obviously, it was a big day both for our event team, and especially for [&amp;#8230;] The post When people want to come together appeared first on Adis Jugo blog.</itunes:subtitle><itunes:summary>Yesterday, on 1 Feb 2022, we have opened the ticket sales for the European Cloud Summit 2022, and for that we have used run.events &amp;#8211; our own event management and ticketing platform &amp;#8211; which went live on the very same day. Obviously, it was a big day both for our event team, and especially for [&amp;#8230;] The post When people want to come together appeared first on Adis Jugo blog.</itunes:summary><itunes:keywords>Random Thoughts, run.events</itunes:keywords></item>
  239. <item>
  240. <title>Hello, KORTO.</title>
  241. <link>https://blog.sharedove.com/adisjugo/index.php/2021/10/12/hello-korto/</link>
  242. <dc:creator><![CDATA[adis.jugo]]></dc:creator>
  243. <pubDate>Tue, 12 Oct 2021 05:07:05 +0000</pubDate>
  244. <category><![CDATA[KORTO]]></category>
  245. <category><![CDATA[korto]]></category>
  246. <guid isPermaLink="false">https://blog.sharedove.com/adisjugo/?p=4207</guid>
  247.  
  248. <description><![CDATA[<p>After all, everything is a about the passion. For many years now, I have been wondering why record management – as one of the crucial cornerstones of compliance – is so complicated. Collaboration, document management, and records management have been my core topic for many years (hence, decades!) now, and I fully appreciate how complex [&#8230;]</p>
  249. <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2021/10/12/hello-korto/">Hello, KORTO.</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  250. ]]></description>
  251. <content:encoded><![CDATA[
  252. <p>After all, everything is a about the passion.</p>
  253.  
  254.  
  255.  
  256. <p>For many years now, I have been wondering why record management – as one of the crucial cornerstones of compliance – is so complicated. Collaboration, document management, and records management have been my core topic for many years (hence, decades!) now, and I fully appreciate how complex and annoying on one side, and expensive for small and medium enterprises on another side, the whole topic is. I am totally au fait with attempts to bend Microsoft’s platform (SharePoint, and nowadays, Teams) to fit the EU compliance and records management laws. And more than that, I am aware that the vast majority of European small and medium enterprises are violating multiple compliance, records management, and privacy regulations – from the simple reason that fulfilling those regulations would include a colossal amount of software, hardware, internal human resources, and external consulting and implementation costs. After all, for many years <em>I</em> was one of those consultants.</p>
  257.  
  258.  
  259.  
  260. <p>One late night conversation with my friend and brother-in-arms <a href="https://www.linkedin.com/in/bernardin-katic-409b1121/" data-type="URL" data-id="https://www.linkedin.com/in/bernardin-katic-409b1121/" target="_blank" rel="noreferrer noopener">Bernard</a> – who has built a very successful financial software solutions company (INSA Investment Software AG), which operates globally from their HQ in Switzerland – led us to conclude that the compliance situation in that industry is nothing short of disastrous. Our passionate discussion ended with us coining a cunning plan: let’s make compliance and records management lovable. Sexy. First for the financial industry, and then for everyone else.</p>
  261.  
  262.  
  263.  
  264. <p>All that happened sometime during the crazy pandemic summer of 2020.</p>
  265.  
  266.  
  267.  
  268. <figure class="wp-block-image size-full"><img loading="lazy" width="600" height="197" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2021/10/korto_logo_standard.png" alt="" class="wp-image-4216" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2021/10/korto_logo_standard.png 600w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2021/10/korto_logo_standard-480x158.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 600px, 100vw" /></figure>
  269.  
  270.  
  271.  
  272. <p>From that moment on, we have been relying on the brilliant <a href="https://www.insa-software.com" data-type="URL" data-id="https://www.insa-software.com" target="_blank" rel="noreferrer noopener">Insa</a> and <strong>Teams Consulting</strong> teams, to make records management sexy. We have been analyzing the pain that our customers feel with the existing solutions. We have been hearing about their needs and their secret wishes. We have been discussing – sometimes calmly, and sometimes not calmly – what needs to be done. We have been talking to the industry and legal experts in the EU and in Switzerland, to be certain that we’re not missing something. We have been (mis)using our existing customers as guinea pigs, to make sure that they are loving it and finding it sexy, and we are very thankful to them for it (you know who you are!). We have been working with amazing teams from <em><a href="https://www.daenet.com" target="_blank" rel="noreferrer noopener">daenet</a></em> and <a href="https://piasys.com/" target="_blank" rel="noreferrer noopener">Pialorsi Sistemi</a> to assist us with the stuff for which we didn’t have our own resources, and we are very thankful for that.</p>
  273.  
  274.  
  275.  
  276. <p>Finally, last week, KORTO was born, as a joint effort of people in Zürich (Switzerland), Bingen am Rhein and Frankfurt am Main (Germany), Osijek (Croatia), Brescia (Italy), and Tallinn (Estonia). It was installed in the production to the first customer, and it feels very happy there. Purposely named by the famous dreamer sailor, Hugo Pratt’s legendary Corto Maltese, KORTO is a reliable anchor for customers’ records, helping them to achieve compliance in a seamless, non-intrusive, and lovable way. Its best friends are Microsoft Teams, SharePoint, and Exchange, Google Workplace – but also with any other application that’s willing to sail together, and shake hands, with KORTO using its APIs.</p>
  277.  
  278.  
  279.  
  280. <figure class="wp-block-image size-full"><img loading="lazy" width="834" height="673" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2021/10/kortoscree.jpg" alt="" class="wp-image-4208" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2021/10/kortoscree.jpg 834w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2021/10/kortoscree-480x387.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 834px, 100vw" /></figure>
  281.  
  282.  
  283.  
  284. <p>It lives as an SaaS in Microsoft Azure, and it uses Microsoft’s latest AI technologies to help customers get to know their records. Moreover, as a cloud-based SaaS application, it will be affordable and available to everyone within just a few clicks. Really, to everyone.</p>
  285.  
  286.  
  287.  
  288. <p>KORTO is nice and friendly. While all of the KORTO operations have been backed up by an independent company, it is obvious from the start that it is an <a href="https://www.insa-software.com">Insa Group</a> company on one side, and a <a href="https://www.nubelus.com">Nubelus</a> company on the other. We made our living from being passionate, nice, and friendly, and we passed those traits down to KORTO.</p>
  289.  
  290.  
  291.  
  292. <p>As a nice and friendly software, KORTO loves having friends. Therefore, it will have a strong partner ecosystem to support those customers who don’t have the time or resources to implement it on their own.</p>
  293.  
  294.  
  295.  
  296. <p>We will be proudly presenting KORTO to the outer world at the <a href="https://www.collabsummit.eu" target="_blank" rel="noreferrer noopener">European Collaboration Summit</a> in Düsseldorf/Germany, 29 November – 1 December, 2021. Look for the big sails when you enter the expo hall and come and chat to the team of KORTO sailors. They will happily show you how the anchor works, and why KORTO will become your best friend, if you just let it.</p>
  297. <div class="fb-background-color">
  298.  <div
  299.   class = "fb-comments"
  300.   data-href = "https://blog.sharedove.com/adisjugo/index.php/2021/10/12/hello-korto/"
  301.   data-numposts = "59"
  302.   data-lazy = "true"
  303. data-colorscheme = "light"
  304. data-order-by = "time"
  305. data-mobile=true>
  306.  </div></div>
  307.  <style>
  308.    .fb-background-color {
  309. background:  !important;
  310. }
  311. .fb_iframe_widget_fluid_desktop iframe {
  312.    width: 100% !important;
  313. }
  314.  </style>
  315.  <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2021/10/12/hello-korto/">Hello, KORTO.</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  316. ]]></content:encoded>
  317. </item>
  318. <item>
  319. <title>Using KY-040 rotary encoder on Raspberry Pi to control volume</title>
  320. <link>https://blog.sharedove.com/adisjugo/index.php/2020/05/10/using-ky-040-rotary-encoder-on-raspberry-pi-to-control-volume/</link>
  321. <dc:creator><![CDATA[adis.jugo]]></dc:creator>
  322. <pubDate>Sun, 10 May 2020 17:50:35 +0000</pubDate>
  323. <category><![CDATA[Development]]></category>
  324. <category><![CDATA[Random Thoughts]]></category>
  325. <guid isPermaLink="false">https://blog.sharedove.com/adisjugo/?p=4184</guid>
  326.  
  327. <description><![CDATA[<p>Understanding and setting up the rotary encoder with Raspberry Pi</p>
  328. <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2020/05/10/using-ky-040-rotary-encoder-on-raspberry-pi-to-control-volume/">Using KY-040 rotary encoder on Raspberry Pi to control volume</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  329. ]]></description>
  330. <content:encoded><![CDATA[
  331. <p>The last week I have been posting about <a href="https://blog.sharedove.com/adisjugo/index.php/2020/05/03/saving-grundig-mandello-e-st-the-next-generation-going-fully-digital-with-hifiberry-beocreate/">using Raspberry Pi, HiFiBerry BEOCREATE and Moode Audio to revive my vintage Grundig Mandello e/St</a> music cabinet. It is all working just fine, one last thing that had to be done is to put back to function a rotary controller. In the original box from 1969, it has been of course connected to the potentiometer. Well, that potentiometer was unfortunately the very first thing to die from the original equipment. </p>
  332.  
  333.  
  334.  
  335. <p>Why did I want a knob in the first place? I can control the volume through the app? First of all, there was already a hole drilled where rotary knob should come. I couldn&#8217;t just leave it there. Sure, I could cover it with a non-functional dummy knob, but that would be just lame. Plus, I really <em>wanted</em> to do it 🙂</p>
  336.  
  337.  
  338.  
  339. <p>I&#8217;ve got a Frei KY‑040 rotary encoder, which works well with the Raspberry Pi. A nice small piece of tech, well documented, and relatively easy to wire with the Pi.</p>
  340.  
  341.  
  342.  
  343. <figure class="wp-block-image"><img src="https://files2.elv.com//public/25/2504/250447/Internet/250447_w01_drehschalter.jpg" alt=""/></figure>
  344.  
  345.  
  346.  
  347. <p>It has got five pins &#8211; ground (GND), power (+), SW (push button switch), CLK (clock) and DT (direction). In theory, you need to connect those pins to the corresponding GPIO pins of the Raspberry PI, write a small Python script (or a C program) to fetch the input signals and control the volume, and the thing would work.</p>
  348.  
  349.  
  350.  
  351. <p>Well, of course things wouldn&#8217;t be that simple.</p>
  352.  
  353.  
  354.  
  355. <p>The main issue was that I did not want to send the vol+ and vol- signals directly to the BEOCREATE amplifier, since MoodeAudio software (which I am using as a media player) wouldn&#8217;t know anything about it, and those two would be out of sync. If someone would, for example, first change the volume with the knob (directly on the amplifier), and then through the app on Moode, the results would be very &#8220;interesting&#8221;, to say at least. No, I wanted my rotary knob to be sending instructions to the software, not to the amp. &#8220;All&#8221; what I wanted to do, is to send GET requests to the MoodeAudio APIs. </p>
  356.  
  357.  
  358.  
  359. <p>But wait &#8211; in that case, my rotary encoder did not even have to be connected to that Raspberry Pi, which was connected to the BEOCREATE! That way I didn&#8217;t have to fiddle with the &#8220;production&#8221; machine, fight for the processor time, or solder anything on the bottom side of the GPIO pins. So, another Raspberry Pi device was needed to join the setup!</p>
  360.  
  361.  
  362.  
  363. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="766" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200503_181145_2-1024x766.jpg" alt="" class="wp-image-4187" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200503_181145_2-980x733.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200503_181145_2-480x359.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure>
  364.  
  365.  
  366.  
  367. <p>In essence, an ultra cheap Raspberry Pi Zero would be more than enough for that, but, since I already had an old Pi 3 laying unused somewhere in a drawer, it was the time to power it up again. I have started with a fresh installation of Raspbian Lite (no need for a GUI here). Once that has been set up, it was a time to connect the rotary encoder to that Pi. This is the schema I was using:</p>
  368.  
  369.  
  370.  
  371. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="498" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/schema-1024x498.png" alt="" class="wp-image-4186" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/schema-1024x498.png 1024w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/schema-980x477.png 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/schema-480x233.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure>
  372.  
  373.  
  374.  
  375. <figure class="wp-block-table"><table><tbody><tr><td>GND </td><td>&#8220;GND&#8221; (physical PIN 6)</td><td>Ground</td></tr><tr><td>+</td><td>3v3 Power (physical PIN 1)</td><td>Power supply</td></tr><tr><td>SW</td><td>Pin 27 (physical PIN 13)</td><td>Push button switch control</td></tr><tr><td>CLK</td><td>Pin 18 (physical PIN 12)</td><td>Clock</td></tr><tr><td>DT</td><td>Pin 17 (physical PIN 11)</td><td>Direction</td></tr></tbody></table></figure>
  376.  
  377.  
  378.  
  379. <blockquote class="wp-block-quote"><p>The vast majority of schemas that you will find on internet does not include the &#8220;purple&#8221; line, which connecting the SW pin on the rotary control to the GPIO Pin 27. I have no idea why &#8211; the &#8220;switch push&#8221; gesture, when you &#8220;press&#8221; the knob can be used for a lot of interesting functions, such as mute/unmute, pause/resume, etc.</p></blockquote>
  380.  
  381.  
  382.  
  383. <p>The next step was to write a Python script for fetching those signals, and doing some work. First, I wrote a very basic script to test how the rotary encoder was working:</p>
  384.  
  385.  
  386. <div class="wp-block-syntaxhighlighter-code "><pre class="brush: python; title: Code sample:; notranslate">
  387. import os
  388. from RPi import GPIO
  389.  
  390. os.system('clear') #clear screen, this is just for the OCD purposes
  391.  
  392. step = 5 #linear steps for increasing/decreasing volume
  393. paused = False #paused state
  394.  
  395. #tell to GPIO library to use logical PIN names/numbers, instead of the physical PIN numbers
  396. GPIO.setmode(GPIO.BCM)
  397.  
  398. #set up the pins we have been using
  399. clk = 17
  400. dt = 18
  401. sw = 27
  402.  
  403. #set up the GPIO events on those pins
  404. GPIO.setup(clk, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
  405. GPIO.setup(dt, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
  406. GPIO.setup(sw, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
  407.  
  408. #get the initial states
  409. counter = 0
  410. clkLastState = GPIO.input(clk)
  411. dtLastState = GPIO.input(dt)
  412. swLastState = GPIO.input(sw)
  413.  
  414. #define functions which will be triggered on pin state changes
  415. def clkClicked(channel):
  416.        global counter
  417.        global step
  418.  
  419.        clkState = GPIO.input(clk)
  420.        dtState = GPIO.input(dt)
  421.  
  422.        if clkState == 0 and dtState == 1:
  423.                counter = counter + step
  424.                print (&quot;Counter &quot;, counter)
  425.  
  426. def dtClicked(channel):
  427.        global counter
  428.        global step
  429.  
  430.        clkState = GPIO.input(clk)
  431.        dtState = GPIO.input(dt)
  432.        
  433.        if clkState == 1 and dtState == 0:
  434.                counter = counter - step
  435.                print (&quot;Counter &quot;, counter)
  436.  
  437. def swClicked(channel):
  438.        global paused
  439.        paused = not paused
  440.        print (&quot;Paused &quot;, paused)            
  441.                
  442. print (&quot;Initial clk:&quot;, clkLastState)
  443. print (&quot;Initial dt:&quot;, dtLastState)
  444. print (&quot;Initial sw:&quot;, swLastState)
  445. print (&quot;=========================================&quot;)
  446.  
  447. #set up the interrupts
  448. GPIO.add_event_detect(clk, GPIO.FALLING, callback=clkClicked, bouncetime=300)
  449. GPIO.add_event_detect(dt, GPIO.FALLING, callback=dtClicked, bouncetime=300)
  450. GPIO.add_event_detect(sw, GPIO.FALLING, callback=swClicked, bouncetime=300)
  451.  
  452. raw_input(&quot;Start monitoring input&quot;)
  453.  
  454. GPIO.cleanup()
  455. </pre></div>
  456.  
  457.  
  458. <p>The Python script above &#8220;fetches&#8221; the impulses coming to the GPIO pins, and then increases or decreases the &#8220;counter&#8221; variable value, depending if the rotary encoder has been turned clockwise or counterclockwise. </p>
  459.  
  460.  
  461.  
  462. <p>But how do we know, when has it been turned clockwise, and when counterclockwise? It is important to know, that the &#8220;natural&#8221;, &#8220;default&#8221; state of all pins (CLK, DT, SW) is &#8220;1&#8221;. So we are checking when this value will change. </p>
  463.  
  464.  
  465.  
  466. <p>For a clockwise rotation, you will get two consecutive &#8220;signals&#8221;. After the first signal, CLK will be 0 (CLK has changed), whereas DT remains 1. After the second signal, both CLK and DT will be set to 0. </p>
  467.  
  468.  
  469.  
  470. <figure class="wp-block-table"><table><tbody><tr><td>Clockwise rotation</td><td>CLK State</td><td>DT State</td></tr><tr><td>1st signal</td><td>0</td><td>1</td></tr><tr><td>2nd signal</td><td>0</td><td>0</td></tr></tbody></table></figure>
  471.  
  472.  
  473.  
  474. <p>For a counterclockwise rotation, you will also get two consecutive signals. After the first signal, DT will be 0, whereas CLK remains 1. After the second signal, both CLK and DT will be set to 0.</p>
  475.  
  476.  
  477.  
  478. <figure class="wp-block-table"><table><tbody><tr><td>Counterclockwise rotation</td><td>CLK State</td><td>DT State</td></tr><tr><td>1st signal</td><td>1</td><td>0</td></tr><tr><td>2nd signal</td><td>0</td><td>0</td></tr></tbody></table></figure>
  479.  
  480.  
  481.  
  482. <p>In essence, we will catch the CLK and DT interrupts, and check for these combinations. As you are turning the knob clockwise or counterclockwise, you will see the Counter being increased or decreased by the step you have declared (5 in my case). </p>
  483.  
  484.  
  485.  
  486. <blockquote class="wp-block-quote"><p>You can of course get very playful here, and measure the time intervals between interrupts, and increase/decrease step based on the time difference. So, for example, when someone is turning the knob fast, you can use exponential volume increase/decrease, whereas if the knob is being turned slower, you can keep it linear. This way, you are making the feeling of the &#8220;fast&#8221; but also &#8220;fine&#8221; volume control change. </p></blockquote>
  487.  
  488.  
  489.  
  490. <p>Catching the push switch button event is easy. It has got its own interrupt, and you don&#8217;t need to check for the combination of the values, like with the knob turning gestures. In my scenario, I will be using it to pause/resume the music play. The source code for that interrupt is a very simple one. </p>
  491.  
  492.  
  493.  
  494. <p>But, we do not want just to increase/decrease the value of a &#8220;counter&#8221; variable, we actually want to turn the volume up or down. For Moode Audio, a media player which is based on the MPD server, those are the GET requests that you need to call in order to preform the volume and music control operations:</p>
  495.  
  496.  
  497.  
  498. <figure class="wp-block-table is-style-stripes"><table><tbody><tr><td>Play</td><td>http://moode/command?cmd=play</td></tr><tr><td>Skip to next song</td><td>http://moode/command?cmd=next</td></tr><tr><td>Stop</td><td>http://moode/command?cmd=stop</td></tr><tr><td>Pause / Resume</td><td>http://moode/command?cmd=pause</td></tr><tr><td>Volume up by 5%</td><td>http://moode/command?cmd=vol.sh up 5</td></tr><tr><td>Volume down by 5%</td><td>http://moode/command?cmd=vol.sh dn 5</td></tr><tr><td>Mute / Unmute</td><td>http://moode/command?cmd=vol.sh mute</td></tr><tr><td>Set volume to 25%</td><td>http://moode/command?cmd=vol.sh 25</td></tr></tbody></table></figure>
  499.  
  500.  
  501.  
  502. <blockquote class="wp-block-quote"><p>You will of course want to change the URL to the host name of your media player.</p></blockquote>
  503.  
  504.  
  505.  
  506. <p>The code then looks something like this:</p>
  507.  
  508.  
  509. <div class="wp-block-syntaxhighlighter-code "><pre class="brush: python; title: Code sample:; notranslate">
  510. import requests
  511.  
  512. #here we define the commands we want to send to the player
  513. urlmoode = &quot;http://moode-studio/command&quot;
  514. paramVolUp = {'cmd' : 'vol.sh up 5'}
  515. paramVolDn = {'cmd' : 'vol.sh dn 5'}
  516. paramMute = {'cmd' : 'vol.sh mute'}
  517. paramStop = {'cmd' : 'stop'}
  518. paramPlay = {'cmd' : 'play'}
  519. paramPause = {'cmd' : 'pause'}
  520.  
  521. #get request for volume down
  522. r = requests.get(url = urlmoode, params = paramVolDn)
  523.  
  524. #get request for volume up
  525. r = requests.get(url = urlmoode, params = paramVolUp)
  526.  
  527. #get request for pause/play
  528. r = requests.get(url = urlmoode, params = paramPause)
  529.  
  530. </pre></div>
  531.  
  532.  
  533. <blockquote class="wp-block-quote"><p>Now, one thing to consider here is, if you make those GET requests synchronously, they will necessarily slow down your code, because they need time to execute, and some of the interrupts from the rotary encoder might be skipped. That is not a pleasant user experience. This is why I am suggesting you either use multithreading, or async patterns here. That way, your script will remain &#8220;responsive&#8221;, even if another thread, or an async block of code is executing that GET request somewhere.</p></blockquote>
  534.  
  535.  
  536.  
  537. <p>These &#8220;delays&#8221;, caused by the web service calls, are in the same time the only reason why I would possibly think of sending the vol+ or vol- signals directly to the amplifier, instead of sending them to the software. In that case, the whole pause/resume use case would not be supported, the real volume would not be in sync to that what your player thinks it is, but it WOULD perform faster. I have still decided against it. But, if you are considering going down that path, please keep in mind that the GPIO pins 17, 18 and 27 are reserved by many amplifiers and DACs, for example BEOCREATE. In that case, think of using GPIO pins 5, 6, 12, 13 and 16 instead of the abovementioned ones &#8211; they are usually free. BEOCREATE, for example, exposes them through the own set of pins. </p>
  538.  
  539.  
  540.  
  541. <p>That would be all about rotary encoder and Pi. Once you grasp the concepts of clock and direction within the encoder, and once you understand the function of the GPIO pins on the raspberry board, it is a very simple procedure. The code itself can be made fancy (with exponential increase etc.), but the starter code here can get you going.</p>
  542. <div class="fb-background-color">
  543.  <div
  544.   class = "fb-comments"
  545.   data-href = "https://blog.sharedove.com/adisjugo/index.php/2020/05/10/using-ky-040-rotary-encoder-on-raspberry-pi-to-control-volume/"
  546.   data-numposts = "59"
  547.   data-lazy = "true"
  548. data-colorscheme = "light"
  549. data-order-by = "time"
  550. data-mobile=true>
  551.  </div></div>
  552.  <style>
  553.    .fb-background-color {
  554. background:  !important;
  555. }
  556. .fb_iframe_widget_fluid_desktop iframe {
  557.    width: 100% !important;
  558. }
  559.  </style>
  560.  <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2020/05/10/using-ky-040-rotary-encoder-on-raspberry-pi-to-control-volume/">Using KY-040 rotary encoder on Raspberry Pi to control volume</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  561. ]]></content:encoded>
  562. </item>
  563. <item>
  564. <title>Saving Grundig Mandello e/St, the next generation: Going fully digital with HiFiBerry BEOCREATE and Moode Audio</title>
  565. <link>https://blog.sharedove.com/adisjugo/index.php/2020/05/03/saving-grundig-mandello-e-st-the-next-generation-going-fully-digital-with-hifiberry-beocreate/</link>
  566. <dc:creator><![CDATA[adis.jugo]]></dc:creator>
  567. <pubDate>Sun, 03 May 2020 17:21:02 +0000</pubDate>
  568. <category><![CDATA[Random Thoughts]]></category>
  569. <guid isPermaLink="false">https://blog.sharedove.com/adisjugo/?p=4100</guid>
  570.  
  571. <description><![CDATA[<p>Using Raspberry Pi, HiFiBerry BEOCREATE, and Moode Audio to revive and repair an old music cabinet from 60s. </p>
  572. <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2020/05/03/saving-grundig-mandello-e-st-the-next-generation-going-fully-digital-with-hifiberry-beocreate/">Saving Grundig Mandello e/St, the next generation: Going fully digital with HiFiBerry BEOCREATE and Moode Audio</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  573. ]]></description>
  574. <content:encoded><![CDATA[
  575. <p>More than two years ago, I have wrote a blog post where I told the story of coming in possession of an old <a href="https://blog.sharedove.com/adisjugo/index.php/2017/12/31/saving-grundig-mandello-e-st/">Grundig Mandello e/St music cabinet from the late 60s</a>, and how did I repair / revitalize it to serve as a music device in Nubelus conference room. </p>
  576.  
  577.  
  578.  
  579. <p>The things were working really nice for some time. That beautiful old device, with a nice, warm sound coming from the old tubes-amp and old speakers, that was something really special. But, the fact that it was laying in a wet cellar for 2 decades, took its toll: first, the potentiometer started causing sound disturbances and ugly noise, first slightly, and then stronger and stronger, until it was at one point not bearable any more. Since those 5-poles potentiometers are not able to buy anymore, I have found an old-school electronic magician, who was ready to wind it again. And then it kind of worked (even if it was &#8220;stepping over&#8221; way too much when increasing and decreasing volume), and then two tubes died. That was the point where I had to decide if I am going to invest ever more money in repairing it, hoping that it would start working properly one day, or to make a clean cut and say goodbye to the amp. Even in 60ties, those amps in the music cabinets were never the &#8220;best ones&#8221;, it was a mass-produced radio and turntable for German families. Investing even more money did not seem as such a good idea. </p>
  580.  
  581.  
  582.  
  583. <figure class="wp-container-2 wp-block-gallery-1 wp-block-gallery columns-1 is-cropped"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img loading="lazy" width="1024" height="766" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200501_190339_2-1024x766.jpg" alt="" data-id="4116" data-full-url="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200501_190339_2-scaled.jpg" data-link="https://blog.sharedove.com/adisjugo/?attachment_id=4116" class="wp-image-4116" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200501_190339_2-980x733.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200501_190339_2-480x359.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure></li></ul><figcaption class="blocks-gallery-caption">Revived Grundig Mandello e/St from 1969</figcaption></figure>
  584.  
  585.  
  586.  
  587. <p>Now, since the loudspeakers were still ok, since I still needed a music device for my office, and especially since my friend Vahid made a beautiful walnut-wood cabinet for that, I decided to keep the most of it, but to replace the amp with something fully digital.</p>
  588.  
  589.  
  590.  
  591. <h2>Hello, BEOCREATE</h2>
  592.  
  593.  
  594.  
  595. <p>I have had already had a good experience with the products of the Swiss company <a rel="noreferrer noopener" href="https://www.hifiberry.com/" target="_blank">HiFiBerry</a>, which specializes in development of audio components for embedded computers. I used their DAC+ Pro in the original Mandello setup, to bring the sound from Raspberry Pi to that old tubes amp. For Christmas, I have made a small &#8220;jukebox&#8221; for a good friend, using their MiniAMP. Recently, I have read that they have made a combined DSP/DAC/AMP board in cooperation with Bang and Olufsen, called <a rel="noreferrer noopener" href="https://www.hifiberry.com/shop/beocreate/beocreate-4-channel-amplifier/" target="_blank">BEOCREATE</a>, for a pretty attractive price of under 160€.  Knowing the quality of their previous boards, I have decided to try that. It was a sad moment to throw away the old tubes amp, but it was a time to give BEOCREATE a go.</p>
  596.  
  597.  
  598.  
  599. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="766" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200503_153221_2-1024x766.jpg" alt="" class="wp-image-4118" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200503_153221_2-980x733.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200503_153221_2-480x359.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /><figcaption>HiFiBerry BEOCREATE</figcaption></figure>
  600.  
  601.  
  602.  
  603. <p>Before I start, a few important observations: It is a <strong>great </strong>little board, definitely a winner in value-for-money reviews, but somewhat complex to set up. While there is theoretically documentation available on the HiFiBerry site, it is pretty scattered, inconsistent, and without any end-to-end guide how to set it up properly. While I am not sure I have understand everything about it (it is a board for audiophiles, with quite some options, and very little documentation), I will try to describe an end to end process here, for my future reference, and maybe someone else will also find it useful.</p>
  604.  
  605.  
  606.  
  607. <p>Next, the power supply does not come with the board. The reason for that is, that you can supply the power to it from the other components of your system (e.g. if you are using BEOCREATE in one of those &#8220;music lines&#8221; from 80s). But, if you are not doing so, you will need to purchase a power supply separately. I have used <strong>MeanWell GST60A18-P1J</strong>, which works quite nice. </p>
  608.  
  609.  
  610.  
  611. <p>Last, It is important to understand that BEOCREATE can work without Raspberry Pi, as a standalone amp. But even so, you will need a Raspberry Pi to first set it up (to write a DSP program/filter on the board). At least I couldn&#8217;t figure out any other way to do that without a Pi. </p>
  612.  
  613.  
  614.  
  615. <h2>Connecting BEOCREATE to Raspberry Pi</h2>
  616.  
  617.  
  618.  
  619. <p>Connecting BEOCREATE to Raspberry Pi is as simple as it goes: stick Pi&#8217;s GPIO pins into BEOCREATE, and it will work. However, both boards together looked a little clumsy, plus I knew that I will be attaching an official Raspberry Pi screen to the whole setup, so I have decided to use a GPIO Extension cable with 40 pins. That way, I could have the both boards separated, and easily accessible on the board. </p>
  620.  
  621.  
  622.  
  623. <figure class="wp-block-image"><img src="https://www.hifiberry.com/wp-content/uploads/2018/02/hardware-jumpers-1024x687.jpg" alt=""/><figcaption>BEOCREATE GPIO CONNECTOR AND JUMPERS SCHEME</figcaption></figure>
  624.  
  625.  
  626.  
  627. <blockquote class="wp-block-quote"><p>IMPORTANT: Remove the &#8220;mute jumper&#8221; on &#8220;4&#8221; on the scheme above. If you don&#8217;t , you will never be able to hear any tone from the amp 🙂</p></blockquote>
  628.  
  629.  
  630.  
  631. <p>Jumper &#8220;1&#8221; should almost always be present, since it tells the board to autoload DSP programs. You will want to remove this only if you want to program DSP filter with your own tools. </p>
  632.  
  633.  
  634.  
  635. <p>Jumpers marked as &#8220;3&#8221; in the schema above define the internal sample rate. The official documentation says <em>&#8220;If you want to design your own DSP program that runs at higher sample rates, this jumper has to be set. This is only for very advanced users. Changing the sample rate of the DSP will require a lot of changes in the provides sample project!&#8221;</em> Right. Even if I had a R-Pi 4 dedicated for this purpose, and I would like to use sample rates higher than 48 kHz, I didn&#8217;t dare to touch anything here &#8211; there is simply no documentation what should be done, and how should it be done.</p>
  636.  
  637.  
  638.  
  639. <blockquote class="wp-block-quote"><p>Hey HiFiBerry guys: if you read this, please, pretty please, document the whole part about DSP programs and sample rates a bit better. Whole this part of documentation is &#8220;you could&#8221;, &#8220;there is a possibility&#8221;, and &#8220;here are 42 ways how to make a DSP program for your BEOCREATE&#8221;. I am a software developer, and audiophile with not inconsiderable knowledge about audio and electronic equipment, I know what DSP filters are, but I just gave up on this. You have a great board here, but lack of documentation and, foremost, inconsistent documentation is not making this easy 🙂 </p></blockquote>
  640.  
  641.  
  642.  
  643. <p>Since BEOCREATE will take all of your Pi&#8217;s GPIO pins, it is only fair to return some of those pins back to the other devices that should possibly connect to it. That is the part &#8220;2&#8221; marked on the schema above. The functionality of those pins can be found here: <a href="https://www.hifiberry.com/beocreate/beocreate-doc/beocreate-gpios/">https://www.hifiberry.com/beocreate/beocreate-doc/beocreate-gpios/</a></p>
  644.  
  645.  
  646.  
  647. <h2>Connecting BEOCREATE to the outside world</h2>
  648.  
  649.  
  650.  
  651. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="687" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/beocreate-schema-1024x687.jpg" alt="" class="wp-image-4102" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/beocreate-schema-1024x687.jpg 1024w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/beocreate-schema-980x657.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/beocreate-schema-480x322.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /><figcaption>BEOCREATE inputs and outputs scheme</figcaption></figure>
  652.  
  653.  
  654.  
  655. <p>As I mentioned before, I have used an external power supply to juice both BEOCREATE and Raspberry Pi (Raspberry Pi is getting power through the GPIO pin connections). On the schema above, it is position &#8220;1&#8221;. Please note that you can also supply power directly (screw terminal), 2 &#8211; 20V, through the position &#8220;4&#8221; on the schema above. <strong>You cannot use both 1 and 4</strong>, it has to be one of both. </p>
  656.  
  657.  
  658.  
  659. <p>You have also got Toslink In (e.g. connecting the Google cast to the board), position 2 on the schema, and Toslink out (position 3). You will connect your speakers either to channels 1 and 0 (30 W) or to channels 16 and 17 (60W), which largely depends on the speakers you will be using. I went with 16 and 17. </p>
  660.  
  661.  
  662.  
  663. <p>And that&#8217;s it about the hardware part, let&#8217;s see next how to power this all up.</p>
  664.  
  665.  
  666.  
  667. <h2>Powering it up: HiFiBerryOS, a hidden gem with three major flaws</h2>
  668.  
  669.  
  670.  
  671. <p>In order to make the BEOCREATE board work, you need to upload a DSP program to it. Otherwise, you will not be getting much out of it. I am again back to ranting about HiFiBerry&#8217;s documentation here: you will be hearing words like DSP toolset, Bang and Olufsen&#8217;s Sigma Studio, and a gazillion of other buzzwords, which will make you desparate. It took me some time to realize that it is all irrelevant, and that it can be done with <a rel="noreferrer noopener" href="https://www.hifiberry.com/hifiberryos/" target="_blank">HiFiBerryOS</a>. </p>
  672.  
  673.  
  674.  
  675. <p>After I have installed it (it is a very simple wizard-like process, there is really no need to describe that in detail), it took me a moment to realize how good that OS actually is. It has two major functions: to set up your BEOCREATE board properly (to write a DSP program to it), and to turn the Raspberry Pi which is attached to the BEOCREATE into a nearly perfect streaming box. </p>
  676.  
  677.  
  678.  
  679. <p>It is actually almost perfect. That is, if you didn&#8217;t have a few extra requirements which I had.</p>
  680.  
  681.  
  682.  
  683. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="549" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-2-1024x549.jpg" alt="" class="wp-image-4110" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-2-980x526.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-2-480x258.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /><figcaption>When installing BEOCREATE, you will have a choice to load a preset (DSP program) for one of numerous Bang and Olufsen&#8217;s old speakers. If you scroll down, you will have a &#8220;Generic speaker&#8221; preset. If you are not using B&amp;O, go for the generic speaker setup. </figcaption></figure>
  684.  
  685.  
  686.  
  687. <p>I have been talking to lot of people in-person how there was (until recently) no *really* good and stable media player software for Raspberry Pi. Well, welcome HiFiBerry OS: it is a MPD-based uPnP/DLNA, AirPlay, Bluetooth, Spotify Connect, Squeezelite, Rune and Radio streamer! The music library in our home is organized in a uPnP library, so that was our main criteria. We also have Spotify subscription, we listen to radio, and rarely, very rarely, we also use Bluetooth. I need to especially praise the shear number of radio stations: all major stations allover the world, all &#8220;niche stations&#8221; for special music genres, and even the local stations (yap, the local radio station from a 20000 soul small Bosnian city where I grew up was also there). Chapeau, HiFiBerry, awesomely done. </p>
  688.  
  689.  
  690.  
  691. <figure class="wp-container-4 wp-block-gallery-3 wp-block-gallery columns-3 is-cropped"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-1.jpg"><img loading="lazy" width="1024" height="549" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-1-1024x549.jpg" alt="" data-id="4105" data-full-url="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-1.jpg" data-link="https://blog.sharedove.com/adisjugo/?attachment_id=4105" class="wp-image-4105" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-1-980x526.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-1-480x258.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-7.jpg"><img loading="lazy" width="1024" height="549" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-7-1024x549.jpg" alt="" data-id="4106" data-full-url="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-7.jpg" data-link="https://blog.sharedove.com/adisjugo/?attachment_id=4106" class="wp-image-4106" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-7-980x526.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-7-480x258.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-8.jpg"><img loading="lazy" width="1024" height="549" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-8-1024x549.jpg" alt="" data-id="4107" data-full-url="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-8.jpg" data-link="https://blog.sharedove.com/adisjugo/?attachment_id=4107" class="wp-image-4107" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-8-980x526.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-8-480x258.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></figure></li></ul></figure>
  692.  
  693.  
  694.  
  695. <p>It was finally time to get some sound out of all of this 🙂 I have played me some Quincy Jones &#8220;Live in Ludwigshafen&#8221;, and man, it sounded really, really good. Now, it is not the &#8220;tubes amp sound&#8221; that it was there before, and I also wasn&#8217;t expecting it, but it was crystal clear and sharp, yet pleasant. You have a feeling that you can hear every instrument separately.</p>
  696.  
  697.  
  698.  
  699. <blockquote class="wp-block-quote is-style-default"><p>BEOCREATE sounds really good, even &#8220;out of the box&#8221; (without fiddling with DSP filters), especially considering that it is a 160€ device. I was very positively surprised by the sound, both on my test loud speakers (cheap Polks), and on the loudspeakers which were built into Grundig Mandello e/St (much better :). If you have any doubts about quality of this board, set them away. Of course, you need to consider what this board is meant to be, and which devices it is meant to power. You should not be comparing it with 4-digits priced amps. But, that what it is supposed to do, it does very, very well. </p><p>No, I am neither affiliated with HiFiBerry, nor paid by them, nor I have any other benefits from them. I paid for my BEOCREATE card with my own money 🙂</p></blockquote>
  700.  
  701.  
  702.  
  703. <p>Back to HiFiBerryOS. </p>
  704.  
  705.  
  706.  
  707. <p>So, if the OS is that good, what is missing, then? Not much, and probably this is not going to bother a vast majority of people, but it was crucial for my me for two reasons.  </p>
  708.  
  709.  
  710.  
  711. <p>The first is the UI: unfortunately, there is none. When you stream something to Raspberry Pi with HiFiBerryOS, the screen attached to that PI will just display the HiFiBerryOS logo. OK, I get it, this whole thing is meant to be hidden into an old Bang and Olufsen speaker, or an old music line, but I already have a built in screen in my media cabinet. Is it really that difficult to put up a HTML page with &#8220;Playing now&#8221;, and to display it on the screen? </p>
  712.  
  713.  
  714.  
  715. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="766" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200503_145638_2-1024x766.jpg" alt="" class="wp-image-4119" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200503_145638_2-980x733.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200503_145638_2-480x359.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure>
  716.  
  717.  
  718.  
  719. <p>The second problem with HiFiBerryOS is, it does not support the local data sources. You might think why is that needed at all, but just think of all the &#8220;Modern JukeBox&#8221; scenarios. I have a side project of building a JukeBox for my friend, and I was first delighted with everything I&#8217;ve seen with HiFiBerryOS and then had to sadly realize that such a simple thing, such as local data source, is not supported. </p>
  720.  
  721.  
  722.  
  723. <p>The third and the last problem is, it doesn&#8217;t register as Google Cast / Chromecast device. I am personally not using it, but a friend has decided not to go for HiFiBerryOS / BEOCREATE for this very reason. Google has some quite hood APIs for this, and that makes it difficult to explain why that is not supported.</p>
  724.  
  725.  
  726.  
  727. <h2>Using HiFiBerryOS to store DSP filters on the BEOCREATE</h2>
  728.  
  729.  
  730.  
  731. <p>So, even if I couldn&#8217;t use HiFiBerryOS for my media cabinet due to the reasons mentioned above, I was still pretty impressed by it. If those three things mentioned above don&#8217;t bother you, and HiFiBerryOS is feature-wise what you are looking for, don&#8217;t look further. </p>
  732.  
  733.  
  734.  
  735. <p>I had to look further though, but I needed HiFiBerryOS to store my DSP profile on the BEOCREATE, so that it can work without it. </p>
  736.  
  737.  
  738.  
  739. <figure class="wp-container-6 wp-block-gallery-5 wp-block-gallery columns-3 is-cropped"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-4.jpg"><img loading="lazy" width="1024" height="549" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-4-1024x549.jpg" alt="" data-id="4112" data-full-url="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-4.jpg" data-link="https://blog.sharedove.com/adisjugo/?attachment_id=4112" class="wp-image-4112" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-4-980x526.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-4-480x258.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-3.jpg"><img loading="lazy" width="1024" height="549" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-3-1024x549.jpg" alt="" data-id="4111" data-full-url="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-3.jpg" data-link="https://blog.sharedove.com/adisjugo/?attachment_id=4111" class="wp-image-4111" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-3-980x526.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-3-480x258.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-6.jpg"><img loading="lazy" width="1024" height="549" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-6-1024x549.jpg" alt="" data-id="4113" data-full-url="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-6.jpg" data-link="https://blog.sharedove.com/adisjugo/?attachment_id=4113" class="wp-image-4113" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-6-980x526.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/hifiberryos-6-480x258.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></a></figure></li></ul></figure>
  740.  
  741.  
  742.  
  743. <p>As I wrote before, BEOCREATE is a really good board, which let you create DSP filters and profiles as you want. Lot of that is badly documented piece of technology, but, for example, in the menus &#8220;sound design&#8221; and &#8220;measurement&#8221; you can play with your speakers and optimize the sound for them, and even measure the sound and make the profiles based on the measurement. Once you are satisfied with the sound, make sure to remove the volume limits, and to save that profile to the BEOCREATE board.  You *must* set the options from the screenshots above. All of that is available under the &#8220;SOUND&#8221; menu in the HiFiBerryOS. </p>
  744.  
  745.  
  746.  
  747. <p>Once you are done with that, you can use your BEOCREATE card with any other OS / media player.</p>
  748.  
  749.  
  750.  
  751. <h2>Hello Moode, my old friend</h2>
  752.  
  753.  
  754.  
  755. <p>I have been monitoring the development of <a href="https://moodeaudio.org/" target="_blank" rel="noreferrer noopener">Moode Audio</a> for quite some time now, it was always looking as a promising project, which had some children diseases. Similar to HiFiBerryOS, it is based on <a rel="noreferrer noopener" href="https://www.musicpd.org/" target="_blank">MPD</a> server. Well, the child grew up, and Moode Audio has in the meantime become a rock solid media system for Raspberry Pi. My main concern was how would it work with BEOCREATE board, since I was reading from the other people, that they were using HiFiBerry DAC+ audio profiles to work with BEOCREATE. </p>
  756.  
  757.  
  758.  
  759. <p>But nope, not needed at all: Moode recognizes BEOCREATE natively in the new versions. No need to fiddle manually with the config files, or anything. Similar to HiFiBerryOS, Moode will work well with UPnP/DLNA, Apple Airplay, Bluetooth, Spotify, and Squeezelite. It will also support local music files, which you can save on the RaspberryPi&#8217;s SD Card. Again, no Google Chromecast, but that was never my requirement in the first place 🙂 </p>
  760.  
  761.  
  762.  
  763. <p>By default, Moode also doesn&#8217;t have an UI, but it can be turned on. Now, that UI is not really touch friendly, and it is very difficult to control music from that UI, and that might easily be my largest and the only issue with Moode. Both, on the smartphone, and on the display attached to Raspberry Pi, the elements (songs, artists, albums) are too small to use, and it hurts that the default action is &#8220;queue&#8221;, and not &#8220;play&#8221;. </p>
  764.  
  765.  
  766.  
  767. <p>But, OK. I have not planned to use the Moode UI to control music anyways. I will be using the other apps to stream to Moode. I just need it to display *what* is playing.</p>
  768.  
  769.  
  770.  
  771. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="766" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200503_152224-1024x766.jpg" alt="" class="wp-image-4120" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200503_152224-980x733.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200503_152224-480x359.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /><figcaption>Moode Audio UI for controlling music playback</figcaption></figure>
  772.  
  773.  
  774.  
  775. <p>And that scenario works like charm. That moment when you play a song over uPnP (use any uPnP player, for any OS), album art is shown on the display, with all the music metadata. It works similarly for radio stations (all of them emit metadata, which Moode can show). Spotify Connect shows only the Spotify logo when streaming, but that is something I can live with. </p>
  776.  
  777.  
  778.  
  779. <p>What are the drawbacks of this approach with Moode audio? There are none, really. Moode is very stable, it works now for over a week without restart, or hiccups of any kind. It pays off to use the rock-solid MPD in the background. When used with uPnP (and that is what we are using it with in 80% of the cases) it works beautifully, plays without interruptions, shows music metadata and album covers, and everything else that you would expect from a good music player. Well done.</p>
  780.  
  781.  
  782.  
  783. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="766" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200501_190244-1024x766.jpg" alt="" class="wp-image-4121" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200501_190244-980x733.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2020/05/IMG_20200501_190244-480x359.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /><figcaption>Album art and music metadata displayed by Moode Audio</figcaption></figure>
  784.  
  785.  
  786.  
  787. <p>There is one more thing: programming a rotary knob to work with this complete setup and with Moode Audio. But that is not really connected wither with BEOCREATE or Moode, and it can really be used for anything else. For thatr reason, I will leave that for a separate blog post. </p>
  788.  
  789.  
  790.  
  791. <p>Stay safe during this pandemic times, and enjoy music!</p>
  792. <div class="fb-background-color">
  793.  <div
  794.   class = "fb-comments"
  795.   data-href = "https://blog.sharedove.com/adisjugo/index.php/2020/05/03/saving-grundig-mandello-e-st-the-next-generation-going-fully-digital-with-hifiberry-beocreate/"
  796.   data-numposts = "59"
  797.   data-lazy = "true"
  798. data-colorscheme = "light"
  799. data-order-by = "time"
  800. data-mobile=true>
  801.  </div></div>
  802.  <style>
  803.    .fb-background-color {
  804. background:  !important;
  805. }
  806. .fb_iframe_widget_fluid_desktop iframe {
  807.    width: 100% !important;
  808. }
  809.  </style>
  810.  <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2020/05/03/saving-grundig-mandello-e-st-the-next-generation-going-fully-digital-with-hifiberry-beocreate/">Saving Grundig Mandello e/St, the next generation: Going fully digital with HiFiBerry BEOCREATE and Moode Audio</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  811. ]]></content:encoded>
  812. </item>
  813. <item>
  814. <title>Holiday Season fun – Building a modern Juke Box from an old radio radio, Raspberry Pi, HiFiBerry, and Mopidy</title>
  815. <link>https://blog.sharedove.com/adisjugo/index.php/2019/12/23/holiday-season-fun-building-a-modern-juke-box-from-an-old-radio-radio-raspberry-pi-and-mopidy/</link>
  816. <dc:creator><![CDATA[adis.jugo]]></dc:creator>
  817. <pubDate>Mon, 23 Dec 2019 17:07:59 +0000</pubDate>
  818. <category><![CDATA[Random Thoughts]]></category>
  819. <category><![CDATA[audio]]></category>
  820. <category><![CDATA[RaspberryPi]]></category>
  821. <category><![CDATA[tech]]></category>
  822. <guid isPermaLink="false">https://blog.sharedove.com/adisjugo/?p=4059</guid>
  823.  
  824. <description><![CDATA[<p>How to build a modern Juke Box based on an old radio, Raspberry Pi. HiFiBerry, and Mopidy music server.</p>
  825. <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2019/12/23/holiday-season-fun-building-a-modern-juke-box-from-an-old-radio-radio-raspberry-pi-and-mopidy/">Holiday Season fun &#8211; Building a modern Juke Box from an old radio radio, Raspberry Pi, HiFiBerry, and Mopidy</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  826. ]]></description>
  827. <content:encoded><![CDATA[
  828. <p>One of the things that I am trying &#8211; and mainly succeeding &#8211; for few years now, is to use my free time for the things other than computer science. It all comes down to three things basically: cooking, guitar playing, and tinkering with audio tech. And what time in the year could be better suitable for it than the festive season? </p>
  829.  
  830.  
  831.  
  832. <p>Two years ago, I have was <a href="https://blog.sharedove.com/adisjugo/index.php/2017/12/31/saving-grundig-mandello-e-st/">trying to save the old Grundig Mandello from 1968</a>,  which is today proudly displayed (and functional!) in my home office.  This year, I got hold on the &#8220;Nostalgia radio&#8221; from eighties, <a href="https://www.radiomuseum.org/r/maximal_maximal_retro_pr_288e.html">model PR-288E</a>, built in Taiwan for German and Norwegian markets. If you think that retro/vintage is a fairly new phenomenon, you&#8217;re wrong! Basically the whole design of that radio was intended to remind on &#8220;<a href="https://www.radiomuseum.org/forum/1939_betriebsanleitung_volksempfaenger_ve_301_dyn.html">Volksempfänger</a>&#8221; devices from the 1930s in Nazi Germany, when the Nazi propaganda machinery decided that each household should have a radio (and later TV set), so the production of cheap radio and TV devices, affordable for average households, was encouraged and supported. The original Volksempfänger devices are on the market today for 250 or more Euros, which is way too much for a device with quite a crappy (tubes) amplifier and loudspeaker (crappy even for that time!). So, other than salvaging it somewhere for free, I am not planing on buying &#8220;the original&#8221;. I got this &#8220;eighties nostalgia radio replica&#8221; few months ago, for few Euros, so the Christmas time was the right time to take a look at what is inside. </p>
  833.  
  834.  
  835.  
  836. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="766" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-21-17.45.44-1024x766.jpg" alt="" class="wp-image-4060" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-21-17.45.44-980x733.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-21-17.45.44-480x359.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /><figcaption>Opening the PR-288F and checking if loudspeakers still works</figcaption></figure>
  837.  
  838.  
  839.  
  840. <p>And it isn&#8217;t much what is inside! True to the spirit of the original, there was only an ok-ish speaker (the radio was mono only), and a not so good FM receiver and solid state (transistor) amplifier inside. Almost the only thing worthwhile saving was the chassis, but since it would be a very difficult task to find a replacement speaker which would fit perfectly inside, and since the speaker was kind of ok, I have decided to keep it. Everything else had to be taken out from that chassis. I think this model features the thinnest copper audio-cables that I&#8217;ve seen in my life &#8211; the whole device is so cheaply made that it was even kind of cute! </p>
  841.  
  842.  
  843.  
  844. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="766" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-21-12.08.52-1024x766.jpg" alt="" class="wp-image-4061" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-21-12.08.52-980x733.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-21-12.08.52-480x359.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure>
  845.  
  846.  
  847.  
  848. <p>Since the loudspeaker was 4 Ω  5W, any &#8220;larger&#8221; Amp set would be an overkill, so it was an easy decision to go with Raspberry Pi supplemented with a <a href="https://www.hifiberry.com/shop/boards/miniamp/">HiFiBerry MiniAmp</a> board. Connecting it altogether was a very simple process. I just wanted to see if all of this works together as planned &#8211; it did, I was getting sound from the loudspeakers. Yay &#8211; I could proceed!</p>
  849.  
  850.  
  851.  
  852. <p>The main question was what would it be used for? Answer to that question would determine what kind of software I&#8217;d put on the Pi. I have decided to make a standalone &#8220;modern party jukebox&#8221; as a present to a dear friend, which means this new device would not consume music from any UPnP or DLNA server, but it would rather have to be &#8220;transportable&#8221; and to &#8220;provide its own music&#8221; at parties. Which means, it would have to be both music server and music renderer. Now, finding such a solution for Pi is not an easy one &#8211; Pi is not a powerful beast! All Pi ports of the &#8220;major&#8221; products, such as Kodi (XBMC) or Plex are way too heavy for Pi (I have tried that in the past), so I was made aware of <a href="https://mopidy.com/">Mopidy</a>, a lightweight and stable media server and renderer for Pi, and I have decided to give it a try.</p>
  853.  
  854.  
  855.  
  856. <p>Mopidy configuration was not an easy one, and to make it work, you need to think as a developer. Their documentation is there, but &#8220;sliced&#8221; and not coherently explained end-to-end. You need to make decisions such us do you want to run Mopidy as a service or in a context of current user (usually the Pi user), what kind of store you want to use for the  album/tracks database (JSON? SQLite? Something else?), and to put it all together. If you choose to go with a service (what you should!), the link for the corresponding documentation was quite hidden, and &#8211; oh joy &#8211; the Mopidy configuration file from the /etc/ directory was only the bare bones, so I needed to manually create sections for storage, audio output, web extensions etc etc. The funniest part was configuring the storage: in my case, since storage was not preset in the configuration file, it was falling back to default &#8211; a JSON file. Since with 2000 albums, that JSON file was becoming way too much to handle (committing and flushing does not work with FileStream here, obviously), the Raspberry Pi would just die on me during the initial scan, after 3000 indexed songs or so. I had to find and to install the Mopidy extension which enables SQLite store, and then it kind-of worked, since Mopidy wouldn&#8217;t free up the in-memory cache, but it would at least commit to the DB after every 50 songs, so the next full scan would continue where the last one died out. I had to restart the scan eight times, but on the end, it worked. </p>
  857.  
  858.  
  859.  
  860. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="766" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-21-20.20.28-1024x766.jpg" alt="" class="wp-image-4066" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-21-20.20.28-980x733.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-21-20.20.28-480x359.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure>
  861.  
  862.  
  863.  
  864. <p>In order to make it all work, you need to do following:</p>
  865.  
  866.  
  867.  
  868. <ul><li>On Raspberry Pi, install Raspbian Buster Lite image. This version of Raspbian does not have a desktop user interface, but you will not need one anyways.<br> </li><li>Attach and configure any DAC and/or AMP you want to use, in my case it was <a href="https://www.hifiberry.com/shop/boards/miniamp/">HiFiBerry MiniAmp</a>. Make sure it is configured properly, check Pi and ALSA config files. Make sure it is able to play music before you proceed with Mopidy. <br>&nbsp;</li><li>Install SSH (you will want to access the Raspberry Pi from another machine) and SUDO (you will want to allow access to external users to update the music library later). <br>&nbsp;</li><li>Install Mopidy:<br>&nbsp;<ul><li>Basic install:  <a href="https://docs.mopidy.com/en/latest/installation/raspberrypi/#how-to-for-raspbian">https://docs.mopidy.com/en/latest/installation/raspberrypi/#how-to-for-raspbian</a> <br>&nbsp;</li><li>Configure mopidy to run as a service:<br> <a href="https://docs.mopidy.com/en/latest/running/service/#service">https://docs.mopidy.com/en/latest/running/service/#service</a> <br>&nbsp;<br>Pay attention on creating appropriate users, and giving them appropriate permissions on the folders where you have stored the music which needs to be scanned. <br>&nbsp;</li></ul><ul><li> Configure Mopidy to run with SQLite instead with the JSON file. I was using the special SQLite extension for that, but while I was tinkering with it, the Mopidy team has (yesterday!) deprecated that extension, and merged the SQLite into their &#8220;local&#8221; extension. Furthermore, Mopidy documentation seems to have a few burps at the moment, and half of the documents are not accessible, other than through Google-Cache,  so you will have to search for yourself how to do it &#8211; I am not able to find that link anymore. This is what I mean when I say that there is no authoritative end-to-end configuration manual or documentation, a lot if it is simply tinkering, try and error.  <br>&nbsp;</li><li>Configure the appropriate audio device in Mopidy config file &#8211; this is not done automatically for you. Often will &#8220;output = alsasink&#8221; in the  section of your Mopidy config file be enough, if your audio has been set correctly (proper default audio card etc), but it is known to cause the configuration problems (I didn&#8217;t have any problems with it, though). <br>&nbsp;</li><li>Add all the additional extensions you want/need. I have added TuneIn audio extension, so I am able to play radio stations on the &#8220;Nostalgia Radio&#8221;. <br>&nbsp;</li><li>Run the full scan of your audio files. Note, if your music library is anything more than few albums, you will necessarily have to have SQLite enabled, and you will still probably need few runs to index it all. <br>&nbsp;</li><li>Add Iris extension. It adds a beautiful web interface for media browsing, playback and basic server actions. <br> <a href="https://mopidy.com/ext/iris/">https://mopidy.com/ext/iris/</a> <br> &nbsp;</li><li>Test it all. If it works, you are fine.<br>&nbsp;<br>It took me 4 hours to get to this point. <strong>Dear Mopidy people, if you ever get to read this: You have built a VERY GOOD software. But please, please, make the documentation reading and navigating a bit more pleasant experience. Include few end-to-end scenarios for few different use cases. Pretty please 🙂 </strong></li></ul></li></ul>
  869.  
  870.  
  871.  
  872. <p>After I got Mopidy working, and after Iris web interface was playing music in the way I wanted, it was time to close the box. </p>
  873.  
  874.  
  875.  
  876. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="766" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-22-19.03.05-1-1024x766.jpg" alt="" class="wp-image-4063" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-22-19.03.05-1-980x733.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-22-19.03.05-1-480x359.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure>
  877.  
  878.  
  879.  
  880. <p>Before I closed it &#8220;for good&#8221; (as we all know, there is NO &#8220;for good&#8221; in tinkering projects), I made sure to plug in a wireless USB keyboard and mouse stick into Pi, and to leave a HDMI out on the back of the Nostalgia radio (HDMI Out can be pushed inside and pulled out again &#8211; see the photo above). You never know when will you need to plug a monitor to it, for whatever reason it might be 🙂  <em>(who has ever heard of repairing the Linux installations, right?)</em></p>
  881.  
  882.  
  883.  
  884. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="766" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-22-18.41.41-1024x766.jpg" alt="" class="wp-image-4064" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-22-18.41.41-980x733.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-22-18.41.41-480x359.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure>
  885.  
  886.  
  887.  
  888. <p>The last piece of the puzzle was the controller software. Yes, you can navigate to Iris from your phone/tablet, but a controller mobile App would be a good idea! </p>
  889.  
  890.  
  891.  
  892. <p>For Android, there is &#8220;Mopidy Mobile&#8221; app, which really works well, and lets anyone who&#8217;s on the network browse, search and play the music!<br> <a href="https://play.google.com/store/apps/details?id=at.co.kemmer.mopidy_mobile&amp;hl=en_US">https://play.google.com/store/apps/details?id=at.co.kemmer.mopidy_mobile&amp;hl=en_US</a> <br><br>There are more apps and clients, for web, Android and iOS on this link:<br> <a href="https://mopidy.com/ext/">https://mopidy.com/ext/</a> </p>
  893.  
  894.  
  895.  
  896. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="1018" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-23-15.34.44-1024x1018.png" alt="" class="wp-image-4067" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-23-15.34.44-1024x1018.png 1024w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-23-15.34.44-980x974.png 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/2019-12-23-15.34.44-480x477.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure>
  897.  
  898.  
  899.  
  900. <p>So there it is. The juke box is finished, assembled, and working! You can put it any room, and as long as people are on the same network, they&#8217;ll be able to queue the songs, to listen to the music, and have their fun! </p>
  901.  
  902.  
  903.  
  904. <figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
  905. <iframe loading="lazy" title="Repurposing the PR-288E Nostalgia Radio" width="1080" height="608" src="https://www.youtube.com/embed/sbkI1sUxGE4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
  906. </div></figure>
  907.  
  908.  
  909.  
  910. <p>I am pretty sure that the person for whom this is intended as a present will have to open it few more times to &#8220;do stuff&#8221; (repair it!), but &#8211; luckily &#8211; that will not be my problem anymore 🙂 Until then, I&#8217;ll assume that it just works. 🙂</p>
  911.  
  912.  
  913.  
  914. <p>Happy Holidays everyone!</p>
  915. <div class="fb-background-color">
  916.  <div
  917.   class = "fb-comments"
  918.   data-href = "https://blog.sharedove.com/adisjugo/index.php/2019/12/23/holiday-season-fun-building-a-modern-juke-box-from-an-old-radio-radio-raspberry-pi-and-mopidy/"
  919.   data-numposts = "59"
  920.   data-lazy = "true"
  921. data-colorscheme = "light"
  922. data-order-by = "time"
  923. data-mobile=true>
  924.  </div></div>
  925.  <style>
  926.    .fb-background-color {
  927. background:  !important;
  928. }
  929. .fb_iframe_widget_fluid_desktop iframe {
  930.    width: 100% !important;
  931. }
  932.  </style>
  933.  <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2019/12/23/holiday-season-fun-building-a-modern-juke-box-from-an-old-radio-radio-raspberry-pi-and-mopidy/">Holiday Season fun &#8211; Building a modern Juke Box from an old radio radio, Raspberry Pi, HiFiBerry, and Mopidy</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  934. ]]></content:encoded>
  935. </item>
  936. <item>
  937. <title>A Decade of Change</title>
  938. <link>https://blog.sharedove.com/adisjugo/index.php/2019/12/07/a-dedade-of-change/</link>
  939. <dc:creator><![CDATA[adis.jugo]]></dc:creator>
  940. <pubDate>Sat, 07 Dec 2019 09:41:52 +0000</pubDate>
  941. <category><![CDATA[News]]></category>
  942. <category><![CDATA[Random Thoughts]]></category>
  943. <category><![CDATA[collabsummit]]></category>
  944. <category><![CDATA[Community]]></category>
  945. <category><![CDATA[daenet]]></category>
  946. <category><![CDATA[syskit]]></category>
  947. <guid isPermaLink="false">https://blog.sharedove.com/adisjugo/?p=4039</guid>
  948.  
  949. <description><![CDATA[<p>Exactly 3523 days have passed between the first session that I have delivered in this decade at Microsoft WinDays in Croatia, and the last session yesterday at ESPC, in Prague, Czechia. In these 10 years, I was speaking at 137 conferences, on three continents, delivering in total around 250 sessions. At the beginning of the decade, I was awarded the Microsoft Most Valuable Professional (MVP award), at the end of the decade I was awarded Microsoft Regional Director award. Both those Microsoft awards mean a lot to me in terms of recognition of the time and work I have been investing in the past ten years.</p>
  950. <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2019/12/07/a-dedade-of-change/">A Decade of Change</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  951. ]]></description>
  952. <content:encoded><![CDATA[
  953. <p>On Thursday, while I was flying back from Prague to home, from the last session that I have delivered in this decade, I couldn’t help thinking how much the things have changed in this past ten years in my life. <a href="https://twitter.com/harbars">Spence</a> was nudging me to comment about some of the newest Collabsummit session submissions that he was going through during the flight, but – admittedly so &#8211; my attention has been somewhere else. </p>
  954.  
  955.  
  956.  
  957. <h1>Community</h1>
  958.  
  959.  
  960.  
  961. <p>Exactly 3523 days have passed between the first session that I have delivered in this decade at <a href="http://www.windays.hr/">Microsoft WinDays</a> in Croatia, and the last session yesterday at <a href="https://www.sharepointeurope.com/">ESPC</a>, in Prague, Czechia. In these 10 years, I was speaking at 137 conferences, on three continents, delivering in total around 250 sessions. At the beginning of the decade, I was awarded the <a href="https://mvp.microsoft.com/">Microsoft Most Valuable Professional</a> (MVP award), at the end of the decade I was awarded <a href="https://rd.microsoft.com/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Microsoft Regional Director</a> award. Both those Microsoft awards mean a lot to me in terms of recognition of the time and work I have been investing in the past ten years.</p>
  962.  
  963.  
  964.  
  965. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="364" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/adis_header-1024x364.jpg" alt="A person standing in a room
  966.  
  967. Description automatically generated" class="wp-image-4040" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/adis_header-1024x364.jpg 1024w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/adis_header-980x349.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/adis_header-480x171.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure>
  968.  
  969.  
  970.  
  971. <h1>Day job</h1>
  972.  
  973.  
  974.  
  975. <p>At the beginning of the decade, I left the company I cofounded, to which I still feel attached to, and in which I spent a decade prior to it &#8211; <a href="https://www.daenet.com" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">daenet</a>. It fills me with pride when I see that they are thriving and doing very well, ten years later. That the foundation we have laid at the day one was rock solid. It was not an easy decision for me to make that move then, but it felt right, and in retrospective it was a right thing to do. In the past ten years, I was leading projects for some of the largest European and world companies, I was the lead architect for the projects in two of big four accounting companies, for the largest telecommunication operator in Europe, helped to deliver an intranet for one of the largest semiconductor companies in the world… this list could go on and on.</p>
  976.  
  977.  
  978.  
  979. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="266" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/speakerbadges-1024x266.jpg" alt="A picture containing text
  980.  
  981. Description automatically generated" class="wp-image-4041" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/speakerbadges-1024x266.jpg 1024w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/speakerbadges-980x255.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/speakerbadges-480x125.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure>
  982.  
  983.  
  984.  
  985. <p>Towards the end of the decade, I have accepted an offer from two people who are more than friends to me – <a href="https://twitter.com/fborozan" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Frane</a> and <a href="https://twitter.com/ToniFrankola" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Toni</a> &#8211; and joined <a href="https://www.syskit.com/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">SysKit</a> as a Chief Strategy Officer, where I am blessed to work in a group of extremely talented young people, helping to deliver the ultimate governance solution for the Microsoft 365 platform. I am not exaggerating when I say that I have never experienced such a passion, love and energy that SysKit invests into its products. When you walk into SysKit’s offices in Zagreb, you will see Toni’s famous “There is no time for bad software” slogan printed on the wall, and the company is truly living it. You will be hearing much more from us in the years to come. </p>
  986.  
  987.  
  988.  
  989. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="576" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/syskit-1024x576.jpg" alt="A group of people posing for the camera
  990.  
  991. Description automatically generated" class="wp-image-4042" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/syskit-980x551.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/syskit-480x270.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure>
  992.  
  993.  
  994.  
  995. <h1>Night job</h1>
  996.  
  997.  
  998.  
  999. <p>At the beginning of the decade, Toni, <a href="https://twitter.com/ntrajkovski" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Nenad</a> and me have started SharePoint and Project Conference Adriatics (SPC Adriatics), an annual conference focused – well – on SharePoint and Project – Microsoft’s products that we knew something about. It was a one-day event with 150 people, held in Zagreb, Croatia, in legendary Hotel Aristos. Our slogan for that conference was “Probably the best SharePoint Conference in the world”, which we chose more in a funny manner, inspired by a certain beer commercial. </p>
  1000.  
  1001.  
  1002.  
  1003. <p>As always in life, we tried to remain faithful to the slogans we choose. At the end of the decade, the <a href="https://www.collabsummit.eu/">European Collaboration Summit</a>, the conference that SPC Adriatics became, <strong>is</strong> the leading Microsoft 365 conference in the world. It is, with well over 2100 attendees, by far the largest conference in our industry in Europe, and one of the two largest in the world. But that doesn’t actually matter – our goal, as a community-initiated event, is to be inclusive, to be kind, and to be welcoming for everyone. We value the same way the big corporate customers (thank you for coming – you are the foundation of our industry!) and students who cannot afford two thousand Dollar or Euro tickets (thank you for coming – you are our future!). <a href="https://www.collabsummit.eu/en/code-of-conduct" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Inclusion starts with wealth – we feel that we could not call ourselves inclusive, or truly European, if we in the start exclude people based on their buying power.</a></p>
  1004.  
  1005.  
  1006.  
  1007. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="576" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/collabsummit-1024x576.jpg" alt="A crowd of people
  1008.  
  1009. Description automatically generated" class="wp-image-4043" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/collabsummit-1024x576.jpg 1024w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/collabsummit-980x551.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/collabsummit-480x270.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure>
  1010.  
  1011.  
  1012.  
  1013. <p>We are very well aware of our position, but also of our obligations. We are &#8211; and we will be – helping smaller community events all over Europe, in organizational way, through marketing activities, and financially – they are our family. The last year, we had dear friends from <a href="https://www.thriveconf.com/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Thrive Conference in Slovenia</a>, <a href="https://www.nccomms.com/conferences/office-365-and-sharepoint-connect/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Office 365 Connect Netherlands</a>, and<a href="https://www.sharepointeurope.com/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)"> ESPC</a> with us in Wiesbaden, even during the closing ceremony on our stage. We see it as our mission, but also as our duty as the leading and the largest conference in our industry in Europe, to be inclusive and helpful for other community and for-profit events. We will continue doing that, because we are one community, and only as such we are relevant and strong. </p>
  1014.  
  1015.  
  1016.  
  1017. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="660" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/OtherEventsOnTheStage-1024x660.jpg" alt="A group of people standing on a stage
  1018.  
  1019. Description automatically generated" class="wp-image-4044" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/OtherEventsOnTheStage-1024x660.jpg 1024w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/OtherEventsOnTheStage-980x632.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/OtherEventsOnTheStage-480x310.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure>
  1020.  
  1021.  
  1022.  
  1023. <p>On the personal note, I cannot stress enough how blessed I am to be working with <a href="https://www.linkedin.com/in/elena-kovacevic-21297292/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Elena</a>, <a href="https://twitter.com/mjugo45" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Margit</a>, <a href="https://twitter.com/magrom" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Martina</a>, <a href="https://www.linkedin.com/in/anita-magovac-8b0936ba/" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Anita</a>, <a href="https://twitter.com/harbars" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Spence</a>, <a href="https://twitter.com/ToniFrankola" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Toni</a>, <a href="https://twitter.com/ntrajkovski" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Nenad</a>, <a href="https://twitter.com/mikefitz" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Fitz</a>, <a href="https://twitter.com/vesajuvonen" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Vesa</a>, <a href="https://twitter.com/mattein" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Matthias</a>, <a href="https://twitter.com/adraskovic" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Aleks</a> and all the other people who are involved in the conference organization, some of them on day-to-day basis, and some as members of the content team, or on specific tasks. Those are the people that fill me with energy and motivate me every single day. They are the people who are making it all possible. We have six different languages as our mother-tongs within this team, but we understand each other without words. We don’t speak about our diversity – we are living it. And I couldn’t be prouder than I am, to lead such an extraordinary team. </p>
  1024.  
  1025.  
  1026.  
  1027. <figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="683" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/collabsummitteam-1024x683.jpg" alt="A group of people posing for the camera
  1028.  
  1029. Description automatically generated" class="wp-image-4045" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/collabsummitteam-1024x683.jpg 1024w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/collabsummitteam-980x653.jpg 980w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/12/collabsummitteam-480x320.jpg 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure>
  1030.  
  1031.  
  1032.  
  1033. <h1>And then?</h1>
  1034.  
  1035.  
  1036.  
  1037. <p>This decade
  1038. is winding up. I have a few more days of work, and then a longer break. I will
  1039. be using this time to recuperate, and to make some decisions and plans for the
  1040. next decade. </p>
  1041.  
  1042.  
  1043.  
  1044. <p>We have big
  1045. goals with SysKit. Nothing less than creating the best and the ultimate
  1046. governance tool for Microsoft 365, the only one customers will ever need. </p>
  1047.  
  1048.  
  1049.  
  1050. <p>European Collaboration Summit is partnering with <a href="https://teams.microsoft.com/start" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Microsoft Teams</a> group in Redmond, and becoming their strong partner in Europe. We could not be more excited about everything that this partnership is going to bring to our attendees – incredible things will happen in June 2020 in Wiesbaden, Germany. </p>
  1051.  
  1052.  
  1053.  
  1054. <p>Alongside the European Collaboration Summit, we are starting a new conference, <a href="https://www.cloudsummit.eu" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">European Cloud Summit</a>, which will focus solely on Azure technologies. We have set up the best possible team for that conference as well – beside Elena, Margit, Spence and me, that conference will be delivered by <a href="https://twitter.com/ddobric" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Damir</a> (Azure MVP, RD &#8211; my former business partner from daenet, and a person whom I blindly trust and often consult about various things), <a href="https://twitter.com/JussiRoine" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Jussi</a> (Azure MVP, RD – my dear crazy and trusted Finnish friend, who often functions as my feedback pillow, and with whom I can have long focused and productive conversations), <a href="https://twitter.com/toromust" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Mustafa</a> (Azure MVP, my lovely, crazy and insanely intelligent Bosnian friend, who is a win for every possible team) and <a href="https://twitter.com/jldeen" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Jessica</a> (Senior Cloud Advocate for Microsoft, former MVP, whose task will be to bring some sanity into our work &#x1f60a;).</p>
  1055.  
  1056.  
  1057.  
  1058. <p>Here is to
  1059. the next decade.</p>
  1060. <div class="fb-background-color">
  1061.  <div
  1062.   class = "fb-comments"
  1063.   data-href = "https://blog.sharedove.com/adisjugo/index.php/2019/12/07/a-dedade-of-change/"
  1064.   data-numposts = "59"
  1065.   data-lazy = "true"
  1066. data-colorscheme = "light"
  1067. data-order-by = "time"
  1068. data-mobile=true>
  1069.  </div></div>
  1070.  <style>
  1071.    .fb-background-color {
  1072. background:  !important;
  1073. }
  1074. .fb_iframe_widget_fluid_desktop iframe {
  1075.    width: 100% !important;
  1076. }
  1077.  </style>
  1078.  <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2019/12/07/a-dedade-of-change/">A Decade of Change</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  1079. ]]></content:encoded>
  1080. </item>
  1081. <item>
  1082. <title>Slight alignment in my MVP award categories: I am (as well) an Azure MVP now</title>
  1083. <link>https://blog.sharedove.com/adisjugo/index.php/2019/07/01/slight-alignment-of-my-mvp-award-categories-i-am-as-well-an-azure-mvp-now/</link>
  1084. <dc:creator><![CDATA[adis.jugo]]></dc:creator>
  1085. <pubDate>Mon, 01 Jul 2019 08:20:38 +0000</pubDate>
  1086. <category><![CDATA[News]]></category>
  1087. <category><![CDATA[Random Thoughts]]></category>
  1088. <guid isPermaLink="false">https://blog.sharedove.com/adisjugo/?p=4006</guid>
  1089.  
  1090. <description><![CDATA[<p>I have been privileged for eight years now to be a part of Microsoft Most Valuable Professional (MVP) program – it really is a great honor, which enabled me to meet so many great people, to be involved in tech as never before, and to be communicating and discussing the tech issues directly with Microsoft [&#8230;]</p>
  1091. <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2019/07/01/slight-alignment-of-my-mvp-award-categories-i-am-as-well-an-azure-mvp-now/">Slight alignment in my MVP award categories: I am (as well) an Azure MVP now</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  1092. ]]></description>
  1093. <content:encoded><![CDATA[
  1094. <p>I have been privileged for eight years now to be a part of <a href="https://mvp.microsoft.com">Microsoft Most Valuable Professional (MVP)</a> program – it really is a great honor, which enabled me to meet so many great people, to be involved in tech as never before, and to be communicating and discussing the tech issues directly with Microsoft people in Redmond. </p>
  1095.  
  1096.  
  1097.  
  1098. <p>Also, during all this time, I have seen program evolve and change. When I was accepted, I was a “SharePoint MVP”. It is still stunning how many of my MVP colleagues still write “SharePoint MVP” on their resumes, even if that category has not been called like that for ages. It was first merged into a big “Office 365 MVP” category, which was then renamed into “Office Servers and Services MVP” and finally into “Office Apps and Services MVP” category. That sticking to the “SharePoint MVP” label, however, shows the pride that former SharePoint MVPs still have in being SharePoint MVPs &#8211; that’s a very special bunch of people. And, in all honesty, nobody can create communities like us, SharePoint MVPs. Don’t even start me about parties that we make.</p>
  1099.  
  1100.  
  1101.  
  1102. <figure class="wp-block-image"><img loading="lazy" width="182" height="74" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/02/MVP_Horizontal_BlueOnly.png" alt="" class="wp-image-3927"/></figure>
  1103.  
  1104.  
  1105.  
  1106. <p>Since I am a developer, few years ago my former MVP lead has suggested me to be additionally awarded with “Office Development MVP”, when that award category was first introduced. I liked the idea &#8211; I am a dev after all. And since 2015, when multiple award categories became possible, I was one of the first 10 MVPs in the world who were awarded in two categories (Office Apps and Services, Office Dev).</p>
  1107.  
  1108.  
  1109.  
  1110. <p>And while that was nice, and I felt honored, me and Office Dev category were drifting more and more apart since then. Office Dev focuses nowadays on SPFx, and related technologies, which is neither bad nor wrong, but it is not what I do. I probably wrote 5 modern webparts and one extension in the past few years, and none of them was for production (all of them were for demos and showcases). While I make my point on following what is going with SPFx, and I always try to have the latest version installed on my machine, it is not what I do daily. And everyone who knows me is probably aware of my special “love” for JavaScript (which, btw, I use since 1998, and I am unfortunately very proficient in it).</p>
  1111.  
  1112.  
  1113.  
  1114. <p>What I do when I develop – heavily influenced by my work – is Azure AppService, to the largest degree. Azure Functions. Azure Active Directory. Sure, I use lot of Office 365 related APIs within those services (Graph, CSOM…), but honestly, it could be any API. If I look at my dev sessions in the past two years, all of it was about Azure dev. Architecture sessions, OAuth flows within AAD, using WebJobs and Functions as SharePoint Timer replacements, etc. This Saturday, in Vianen/Netherlands, I delivered a session on using Azure Cognitive Services for automated metadata extraction within SharePoint. Azure Again. </p>
  1115.  
  1116.  
  1117.  
  1118. <p>I was talking to my MVP lead recently about this, and the conclusion was that it makes the most sense to switch my second category from Office Dev into Azure, because it fits much more to what I actually do. So, that happened. From today, I am officially an Azure MVP as well. I am definitely not dissing my original SharePoint MVP award – I will want to keep that one as long as they want to have me. It is the probably the best community that ever existed in the IT world, and I am so proud to be a part of it. But I am also really looking forward to be a member of the Azure MVP community in the future.</p>
  1119.  
  1120.  
  1121.  
  1122. <ul class="wp-container-8 wp-block-gallery-7 wp-block-gallery columns-2 is-cropped"><li class="blocks-gallery-item"><figure><img loading="lazy" width="446" height="129" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/07/office-365-logo-1.png" alt="" data-id="4010" data-link="https://blog.sharedove.com/adisjugo/?attachment_id=4010" class="wp-image-4010" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/07/office-365-logo-1.png 446w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/07/office-365-logo-1-300x87.png 300w" sizes="(max-width: 446px) 100vw, 446px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" width="446" height="129" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/07/azurelogo-1.png" alt="" data-id="4011" data-link="https://blog.sharedove.com/adisjugo/?attachment_id=4011" class="wp-image-4011" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/07/azurelogo-1.png 446w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/07/azurelogo-1-300x87.png 300w" sizes="(max-width: 446px) 100vw, 446px" /></figure></li></ul>
  1123. <div class="fb-background-color">
  1124.  <div
  1125.   class = "fb-comments"
  1126.   data-href = "https://blog.sharedove.com/adisjugo/index.php/2019/07/01/slight-alignment-of-my-mvp-award-categories-i-am-as-well-an-azure-mvp-now/"
  1127.   data-numposts = "59"
  1128.   data-lazy = "true"
  1129. data-colorscheme = "light"
  1130. data-order-by = "time"
  1131. data-mobile=true>
  1132.  </div></div>
  1133.  <style>
  1134.    .fb-background-color {
  1135. background:  !important;
  1136. }
  1137. .fb_iframe_widget_fluid_desktop iframe {
  1138.    width: 100% !important;
  1139. }
  1140.  </style>
  1141.  <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2019/07/01/slight-alignment-of-my-mvp-award-categories-i-am-as-well-an-azure-mvp-now/">Slight alignment in my MVP award categories: I am (as well) an Azure MVP now</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  1142. ]]></content:encoded>
  1143. </item>
  1144. <item>
  1145. <title>Office 365 auditing includes SharePoint auditing – it is there, and it can be used now!</title>
  1146. <link>https://blog.sharedove.com/adisjugo/index.php/2019/06/05/office-365-auditing-includes-sharepoint-auditing-it-is-there-and-it-can-be-used-now/</link>
  1147. <dc:creator><![CDATA[adis.jugo]]></dc:creator>
  1148. <pubDate>Wed, 05 Jun 2019 17:11:29 +0000</pubDate>
  1149. <category><![CDATA[Governance]]></category>
  1150. <category><![CDATA[Office 365 admin audit logs]]></category>
  1151. <category><![CDATA[Office 365 auditing]]></category>
  1152. <guid isPermaLink="false">https://blog.sharedove.com/adisjugo/?p=3979</guid>
  1153.  
  1154. <description><![CDATA[<p>I am still often surprised about lot of Office 365 users who are not aware of the existence of Office 365 auditing, and who still rely mainly on SharePoint Audit Logs. Office 365 admin audit logs is a feature available through the security and compliance center, needs to be turned only once per tenant, and [&#8230;]</p>
  1155. <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2019/06/05/office-365-auditing-includes-sharepoint-auditing-it-is-there-and-it-can-be-used-now/">Office 365 auditing includes SharePoint auditing &#8211; it is there, and it can be used now!</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  1156. ]]></description>
  1157. <content:encoded><![CDATA[
  1158. <p>I am still often surprised about lot of Office 365 users who are not aware of the existence of <a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="https://blog.syskit.com/audit-logs-on-office-365" target="_blank">Office 365 auditing</a>, and who still rely mainly on SharePoint Audit Logs.  <a href="https://blog.syskit.com/audit-logs-on-office-365" target="_blank" rel="noreferrer noopener" aria-label="Office 365 admin audit logs (opens in a new tab)">Office 365 admin audit logs</a> is a feature available through the security and compliance center, needs to be turned only once per tenant, and it can be a real life saver in the situations where you need to prove/audit user activity on your tenant.</p>
  1159.  
  1160.  
  1161.  
  1162. <p>For all my SharePoint people: this feature can to a great deal replace what you were doing with SharePoint Audit logs. You will get standard events covered &#8211; file and list item actions, site actions etc, but you will also get data outside of SharePoint there. Think of OneDrive &#8211; you will also want to know what happens with these. Especially since Teams store the files from the private chats into OneDrive, this is a way how you can &#8211; at least partly &#8211; get insights what is going in your Microsoft Teams.</p>
  1163.  
  1164.  
  1165.  
  1166. <p>Another huge advantage of the <a rel="noreferrer noopener" aria-label="Office 365 admin audit logs (opens in a new tab)" href="https://blog.syskit.com/audit-logs-on-office-365" target="_blank">Office 365 admin audit logs</a> over SharePoint Audit logs is that you need to turn them only once per tenant, not such with SharePoint per site collection. Since Site Collections are in modern SharePoint Online mainly created through self-service operations, such as Group and Team creation, you, as a SharePoint admin, cannot really &#8220;run after&#8221; those site collections and turn the audit logs as they are being created (sometimes in thousands!). This is one problem that <a href="https://blog.syskit.com/audit-logs-on-office-365" target="_blank" rel="noreferrer noopener" aria-label="Office 365 auditing (opens in a new tab)">Office 365 auditing</a> solves.</p>
  1167.  
  1168.  
  1169.  
  1170. <p>True, there are some issues with <a rel="noreferrer noopener" aria-label="Office 365 auditing (opens in a new tab)" href="https://blog.syskit.com/audit-logs-on-office-365" target="_blank">Office 365 auditing</a> &#8211; sometimes it is clumsy to search, it is not context-specific (you always need to drill down from the top), and the logs are stored for 3 months for most of the Office 365 plans. There are ways around all these issues &#8211; <a href="https://www.syskit.com">SysKit</a> has created a product that solves all those issues, but your first step as a modern Office 365 / SharePoint online Admin is to actually get acquainted with <a href="https://blog.syskit.com/audit-logs-on-office-365">Office 365 auditing</a> and <a href="https://blog.syskit.com/audit-logs-on-office-365" target="_blank" rel="noreferrer noopener" aria-label="Office 365 admin audit logs (opens in a new tab)">Office 365 admin audit logs</a>, and to see what they are offering.</p>
  1171.  
  1172.  
  1173.  
  1174. <p>For more info, read the article of my colleague Tomislav Kunaj, which offers a deep dive into <a rel="noreferrer noopener" aria-label="Office 365 auditing (opens in a new tab)" href="https://blog.syskit.com/audit-logs-on-office-365" target="_blank">Office 365 auditing</a> and shows all the facets of the <a rel="noreferrer noopener" aria-label="Office 365 admin audit logs (opens in a new tab)" href="https://blog.syskit.com/audit-logs-on-office-365" target="_blank">Office 365 admin audit logs</a>: <a href="https://blog.syskit.com/audit-logs-on-office-365">https://blog.syskit.com/audit-logs-on-office-365</a> Furthermore, SysKit Security manager impoves by far the standard Office 365 Auditing functionality with unlimited time keeping audit log, contextual auditing and much more &#8211; take a short look here: <a href="https://blog.syskit.com/level-up-your-office-365-auditing-with-syskit-security-manager">https://blog.syskit.com/level-up-your-office-365-auditing-with-syskit-security-manager</a></p>
  1175. <div class="fb-background-color">
  1176.  <div
  1177.   class = "fb-comments"
  1178.   data-href = "https://blog.sharedove.com/adisjugo/index.php/2019/06/05/office-365-auditing-includes-sharepoint-auditing-it-is-there-and-it-can-be-used-now/"
  1179.   data-numposts = "59"
  1180.   data-lazy = "true"
  1181. data-colorscheme = "light"
  1182. data-order-by = "time"
  1183. data-mobile=true>
  1184.  </div></div>
  1185.  <style>
  1186.    .fb-background-color {
  1187. background:  !important;
  1188. }
  1189. .fb_iframe_widget_fluid_desktop iframe {
  1190.    width: 100% !important;
  1191. }
  1192.  </style>
  1193.  <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2019/06/05/office-365-auditing-includes-sharepoint-auditing-it-is-there-and-it-can-be-used-now/">Office 365 auditing includes SharePoint auditing &#8211; it is there, and it can be used now!</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  1194. ]]></content:encoded>
  1195. </item>
  1196. <item>
  1197. <title>Joining SysKit as Chief Strategy Officer</title>
  1198. <link>https://blog.sharedove.com/adisjugo/index.php/2019/04/01/joining-syskit-as-chief-strategy-officer/</link>
  1199. <dc:creator><![CDATA[adis.jugo]]></dc:creator>
  1200. <pubDate>Mon, 01 Apr 2019 01:00:11 +0000</pubDate>
  1201. <category><![CDATA[News]]></category>
  1202. <category><![CDATA[syskit]]></category>
  1203. <guid isPermaLink="false">https://blog.sharedove.com/adisjugo/?p=3968</guid>
  1204.  
  1205. <description><![CDATA[<p>Today I am joining SysKit – those lovely people who have created SPDocKit, SysKit Security Manager and SysKit Insights – as Chief Strategy Officer and a management board member.</p>
  1206. <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2019/04/01/joining-syskit-as-chief-strategy-officer/">Joining SysKit as Chief Strategy Officer</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  1207. ]]></description>
  1208. <content:encoded><![CDATA[
  1209. <p>Looking back on it now, skybow was one of the best experiences of my life. I am so proud that, as Director of Product Technology, I could lead and decisively influence today’s leading and most complete low-code/no-code platform for the development of business apps on top of SharePoint. </p>
  1210.  
  1211.  
  1212.  
  1213. <p>This was groundbreaking work. skybow was the first to offer an integrated app-building SaaS platform inside the SharePoint Online interface. It was the first to offer seamless integration between UI, processes, reporting, and document generation, and full lifecycle management for business apps. We were the first to offer full support for building business apps on top of the SharePoint modern interface. </p>
  1214.  
  1215.  
  1216.  
  1217. <p>That was all a lot of work, but it was good work. It was the kind of work that belongs in the “One day I will tell my grandchildren about this” category.</p>
  1218.  
  1219.  
  1220.  
  1221. <p>With the restructuring and its increased focus on the European and especially DACH and BENELUX markets, skybow will do well, and will continue to thrive. As for me, I felt that my work there had come to an end, and that it was the right time to take the next step. I will for sure stay in contact with skybow and recommend their technology whenever and wherever I can – the relations I have with skybow people go well beyond business &#8211; yesterday, when I returned home from the Microsoft Network Conference, there was a bottle of <em>Moi Primitivo Di Manduria</em> red wine waiting for me, sent by my dear skybow friends, accompanied with a <em>skybow veteran</em> pen. I think I spent a good quarter of an hour just looking at it. Those of you who have dealt with skybow over the past few years will know that this is the wine we always used as an example in our demos. It was such a nice touch by my former colleagues, and I am very, very thankful for the past three and a half years. </p>
  1222.  
  1223.  
  1224.  
  1225. <figure class="wp-block-image"><img loading="lazy" width="1024" height="647" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/04/2019-03-29-19.44.20-1024x647.jpg" alt="" class="wp-image-3971" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/04/2019-03-29-19.44.20-1024x647.jpg 1024w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/04/2019-03-29-19.44.20-300x190.jpg 300w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/04/2019-03-29-19.44.20-1080x682.jpg 1080w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Present from my skybow colleagues </figcaption></figure>
  1226.  
  1227.  
  1228.  
  1229. <p>However, it is time to move on. Today I am joining <a href="https://www.syskit.com/">SysKit</a> – those lovely people who have created <a href="https://www.syskit.com/products/spdockit/">SPDocKit</a>, <a href="https://www.syskit.com/products/security-manager/">SysKit Security Manager</a> and <a href="https://www.syskit.com/products/insights/">SysKit Insights</a> – as Chief Strategy Officer and a management board member. </p>
  1230.  
  1231.  
  1232.  
  1233. <p>To all of you who know me well, this should not really come as a great surprise. My good relations with SysKit were never a secret. Back in the early 2010s, I worked with the SysKit team on the design of the permissions documentation and permissions management modules for SPDocKit. There is some of my code in the IIS documentation module. I have been friends with this company, and the company leadership, since… well, always, really. </p>
  1234.  
  1235.  
  1236.  
  1237. <p>That’s the reason why, when Toni and Frane asked me to join the board, I didn’t need much persuading. My role will be to plan what comes next, together with them and the rest of the leadership team. My role will also be to strengthen the enterprise side of SysKit’s product portfolio, and to form strong partnerships within the industry. What we can promise you is that the story around SPDocKit and SysKit Security Manager isn’t nearly finished – there will be plenty of great new things coming from our kitchen in Zagreb, Croatia. Our mission is to be your platform of choice for the management, security, and governance of your Microsoft 365 portfolio. We want you, when you think of governance, to think of SysKit. </p>
  1238.  
  1239.  
  1240.  
  1241. <figure class="wp-block-image"><img loading="lazy" width="1024" height="655" src="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/04/2019-04-01-14.26.54-1-1024x655.jpg" alt="" class="wp-image-3975" srcset="https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/04/2019-04-01-14.26.54-1-1024x655.jpg 1024w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/04/2019-04-01-14.26.54-1-300x192.jpg 300w, https://blog.sharedove.com/adisjugo/wp-content/uploads/2019/04/2019-04-01-14.26.54-1-1080x691.jpg 1080w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Frane Borozan, Adis Jugo, Toni Frankola</figcaption></figure>
  1242.  
  1243.  
  1244.  
  1245. <p>On a side note, there will be no changes to my community work; I enjoy it way too much. You will still see me around at Office 365 and Azure conferences, and you might see me blogging more often. And, of course, my work on the <a href="https://www.collabsummit.eu">European Collaboration Summit</a> will not be affected. </p>
  1246.  
  1247.  
  1248.  
  1249. <p>See you around. And remember – when you think of Microsoft 365 governance, you should really be thinking of SysKit. 🙂</p>
  1250. <div class="fb-background-color">
  1251.  <div
  1252.   class = "fb-comments"
  1253.   data-href = "https://blog.sharedove.com/adisjugo/index.php/2019/04/01/joining-syskit-as-chief-strategy-officer/"
  1254.   data-numposts = "59"
  1255.   data-lazy = "true"
  1256. data-colorscheme = "light"
  1257. data-order-by = "time"
  1258. data-mobile=true>
  1259.  </div></div>
  1260.  <style>
  1261.    .fb-background-color {
  1262. background:  !important;
  1263. }
  1264. .fb_iframe_widget_fluid_desktop iframe {
  1265.    width: 100% !important;
  1266. }
  1267.  </style>
  1268.  <p>The post <a rel="nofollow" href="https://blog.sharedove.com/adisjugo/index.php/2019/04/01/joining-syskit-as-chief-strategy-officer/">Joining SysKit as Chief Strategy Officer</a> appeared first on <a rel="nofollow" href="https://blog.sharedove.com/adisjugo">Adis Jugo blog</a>.</p>
  1269. ]]></content:encoded>
  1270. </item>
  1271. </channel>
  1272. </rss>
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda