<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Music</title><link>https://jwheel.org/tags/music/</link><description>Homepage of Justin Wheeler, an Open Source contributor and Free Software advocate from Georgia, USA.</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><managingEditor>Justin Wheeler</managingEditor><lastBuildDate>Thu, 01 Jul 2021 00:00:00 +0000</lastBuildDate><atom:link href="https://jwheel.org/rss/tags/music/index.xml" rel="self" type="application/rss+xml"/><item><title>Computer human.</title><link>https://jwheel.org/blog/2021/07/computer-human/</link><pubDate>Thu, 01 Jul 2021 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2021/07/computer-human/</guid><description><![CDATA[<p>Recently a <a href="https://open.spotify.com/playlist/37i9dQZF1DXaRycgyh6kXP?si=18f5bb6a3aba46de">Spotify playlist</a> curated into my feed. The playlist was a perfect match for my soul when I needed it most. This led me to wonder, who or what curated this playlist? What caused it to appear in my feed that day?</p>
<p>The era of disc jockeys and long LPs are past. While human-curated playlists continue to exist, they are in steep competition with weekly playlists of tailored content. Every week, a personal digital deejay runs your music life. This digital deejay knows what you are vibing right now, what were the hot skips, and <a href="https://docs.google.com/document/d/16GrJwWch0untSZ6tc77GmhauYtlLTrCJSz_JwrHSXXo/edit?usp=sharing">what might be your new moods</a> for the week. It is hard for any human to compete with that level of curated music <em>freshness</em>.</p>
<p>But this did not answer my question. Who curated <em>this</em> playlist, that I felt so intently in my heart? In this way, I realized it did not matter if it were a real human being who hand-dragged the songs from one album to another, or if it were a machine learning algorithm that uniquely picked songs only for me. The algorithm is still human, in a world which is also structured, shaped, and changed by humans.</p>
<p>Perhaps it was the human essence of this algorithm that compelled the playlist into my feed. A long time ago, someone would have called something like this fate. But I felt a warmth that this playlist helped me feel a sense of my own humanity, in a time where I was feeling so many different things. Call it machine learning, call it fate, call it biased human activity, and you are right.</p>
<p>The break-up of robot humans known as Daft Punk earlier this year was heart-wrenching. Two humans who conveyed the humanity of machines to me through their music. They shared a perspective in my life that I did not know I was looking to hear. Despite the break-up, their message remains clear in my heart. Their message is an acknowledgement that what is robot is also human.</p>
<p>So if algorithms and computers are human by their association to humans, what does this speak of the humans who create the robots? Are there computer humans? Computer humans who live their life as if on a script? Computer humans who struggle with memory storage or retention? If Daft Punk claims the title to being robot human / human robot, then it might also be inferred that there are robotic, programmed humans who take calculated steps to create the world they want, irrespective of others.</p>
<p>Indeed, computer human.</p>
<p>I hope we may aspire to Daft Punk&rsquo;s vision of human-is-robot/robot-is-human instead.</p>]]></description></item><item><title>Rosie</title><link>https://jwheel.org/blog/2021/04/rosie/</link><pubDate>Thu, 08 Apr 2021 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2021/04/rosie/</guid><description><![CDATA[<p><em>Read more of <a href="/categories/poems/">my poetry</a> on my blog.</em></p>
<hr>
<p>I put on our playlist,<br>
Pure poetry to untrained ears.</p>
<p>My heart taken by the hand,<br>
But led back to the Atlantic blue,<br>
Wondering if I am singing your tune?</p>
<p>Will I continue to wait here,<br>
Under the early April showers?</p>
<p><em>Am I ready to let someone new in?</em></p>]]></description></item><item><title>Tergiversate: El Ten Eleven self-titled debut</title><link>https://jwheel.org/blog/2020/09/tergiversate-el-ten-eleven/</link><pubDate>Sun, 20 Sep 2020 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2020/09/tergiversate-el-ten-eleven/</guid><enclosure url="https://jwheel.org/blog/2020/09/tergiversate-el-ten-eleven-self-titled.png" length="296817" type="image/png"/><description><![CDATA[<img src="https://jwheel.org/blog/2020/09/tergiversate-el-ten-eleven-self-titled.png" alt="Tergiversate: El Ten Eleven self-titled debut"><p><em>This El Ten Eleven article is part of my <a href="/tags/tergiversate-music-column/">Tervigersate column</a> on my blog, where I review albums by musicians spanning multiple genres. Articles introduce an album and give my interpretation of their meaning.</em></p>
<hr>
<p>El Ten Eleven is a duo consisting of Kristian Dunn on strings and Tim Fogarty and drums. Plus <a href="https://youtu.be/dNiimjX5Pxg">several loop pedals</a>! El Ten Eleven&rsquo;s <a href="https://fakerecordlabel.bandcamp.com/album/el-ten-eleven-album">debut self-titled album</a> released on September 20th, 2005 (even though Dunn says the album released in late 2004). This makes 2020 the 16th anniversary of their debut album in the twenty-first century post-rock scene.</p>
<p>This entry in <em>Tergiversate</em> reviews the history and background of the album and offers a personal perspective on one of my favorite music albums. Let&rsquo;s take a look at <em>El Ten Eleven</em>!</p>

<h2 id="my-background-on-el-ten-eleven">My background on <em>El Ten Eleven</em>&nbsp;<a class="hanchor" href="#my-background-on-el-ten-eleven" aria-label="Anchor link for: My background on El Ten Eleven">🔗</a></h2>
<p>If Last.fm is trustworthy, I have 39,355 listens of El Ten Eleven, out of a total listen count of 348,043. 18,605 listens were of the self-titled album specifically. It takes two lead positions in my music library: my most-listened artist <em>and</em> album of all-time. I discovered <em>El Ten Eleven</em> on December 19th, 2012.</p>
<p>In 35 minutes, <em>El Ten Eleven</em> tells a great story. It is an album that means a great deal to me.</p>

<h2 id="el-ten-eleven-track-by-track"><em>El Ten Eleven</em>, track-by-track&nbsp;<a class="hanchor" href="#el-ten-eleven-track-by-track" aria-label="Anchor link for: El Ten Eleven, track-by-track">🔗</a></h2>
<p>El Ten Eleven songs have no lyrics (not counting Emile Mosseri collaborations). The only given meaning is in the song titles. The rest is up for audible interpretation.</p>
<p>But if you are a curious music nerd like me, the artist&rsquo;s thinking behind a song is interesting to understand. This blog post documents what I know about this album. My experiences come from reading other music journalism sites on the Internet and even talking to Kristian Dunn after concerts time to time! (He is a cool dude. He signed <a href="https://twitter.com/jflory7/status/840247825862672384">my brick</a>.)</p>

<h3 id="1-my-only-swerving">1: My Only Swerving&nbsp;<a class="hanchor" href="#1-my-only-swerving" aria-label="Anchor link for: 1: My Only Swerving">🔗</a></h3>
<p>This song was written in tribute to <a href="https://www.poetryfoundation.org/poems/42775/traveling-through-the-dark"><em>Traveling through the Dark</em></a>, a 1998 poem by William E. Stafford (confirmed <a href="https://twitter.com/ElTenEleven/status/36619600065994752">here</a>). The track title gets its name from a line towards the end of the poem.</p>
<blockquote>
<p><code>I thought hard for us all—my only swerving—,</code></p>
<p><code>then pushed her over the edge into the river.</code></p>
<p><a href="https://www.poetryfoundation.org/poems/42775/traveling-through-the-dark"><em>Traveling through the Dark</em></a>, William E. Stafford</p>
</blockquote>
<p>Dunn ran an &ldquo;Ask Me Anything&rdquo; (A.M.A.) on Jan 22, 2018 <a href="https://www.patreon.com/posts/ama-questions-16556847">via Patreon</a>. In the A.M.A., Dunn lamented how the song failed as a tribute to the poem. He believed the song was not dark enough to match the poem.</p>

<h3 id="3-lorge">3: Lorge&nbsp;<a class="hanchor" href="#3-lorge" aria-label="Anchor link for: 3: Lorge">🔗</a></h3>
<p>Dunn&rsquo;s mother passed a short time before the album was recorded. The album is dedicated to her memory. Lorge is the middle name of Dunn&rsquo;s mother. The album reflects on the emotions that follow the death of a loved one.</p>

<h3 id="4-1969">4: 1969&nbsp;<a class="hanchor" href="#4-1969" aria-label="Anchor link for: 4: 1969">🔗</a></h3>
<p>In a <a href="https://youtu.be/pw6EZiCpmDE?t=24m18s">phone interview</a> with Fogarty, he believed this song title came from Dunn’s birth year, 1969.</p>

<h3 id="7-fanshawe">7: Fanshawe&nbsp;<a class="hanchor" href="#7-fanshawe" aria-label="Anchor link for: 7: Fanshawe">🔗</a></h3>
<p>The song is a tribute to The New York Trilogy’s <a href="https://archive.nytimes.com/www.nytimes.com/books/99/06/20/specials/auster-locked.html"><em>The Locked Room</em></a> novel, which features a character named Fanshawe. In the Patreon A.M.A., he acknowledged the connection to the character and book.</p>

<h3 id="8-connie">8: Connie&nbsp;<a class="hanchor" href="#8-connie" aria-label="Anchor link for: 8: Connie">🔗</a></h3>
<p>Connie is the shortened form of Dunn&rsquo;s mother&rsquo;s first name, Constance.</p>

<h2 id="why-i-care">Why I care&nbsp;<a class="hanchor" href="#why-i-care" aria-label="Anchor link for: Why I care">🔗</a></h2>
<p><em>El Ten Eleven</em> deals with loss. As the album transitions from beginning to end, it moves towards acceptance. But acceptance of loss is not easily attained. Loss also comes with difficult emotions.</p>
<p>In psychology, there are five stages of grief. They can happen in any order and go between each other, but it always ends with acceptance. The abbreviated five stages are regret, denial, anger, sadness, and acceptance. <em>El Ten Eleven</em> offers a musical experience of the life-cycle of grief.</p>
<p><em>El Ten Eleven</em> empowered me. In times of discomfort or anxiety, this album is always my go-to. It continues to be a cornerstone for me in challenging moments in my life.</p>

<h2 id="where-to-find-el-ten-eleven">Where to find <em>El Ten Eleven</em>&nbsp;<a class="hanchor" href="#where-to-find-el-ten-eleven" aria-label="Anchor link for: Where to find El Ten Eleven">🔗</a></h2>
<p>Check below for links. If you have no preference, Bandcamp purchases are the most effective way for your money to go to supporting the band.</p>
<ul>
<li><a href="https://fakerecordlabel.bandcamp.com/album/el-ten-eleven-album">Bandcamp</a></li>
<li><a href="https://open.spotify.com/album/6bv070I2PgzwGLgYGBxaJW">Spotify</a></li>
<li><a href="https://itunes.apple.com/us/album/el-ten-eleven/1069707474">iTunes</a></li>
<li><a href="https://play.google.com/store/music/album?id=Bncxvdbskbxaqb3boxv5nkg5ane">Google Play</a></li>
<li><a href="https://www.amazon.com/El-Ten-Eleven/dp/B019JO3CFC">Amazon</a></li>
</ul>
<p>If you would be kind, please drop some claps to my friend&rsquo;s <a href="https://medium.com/@mattcoutu/el-ten-eleven-a-power-duo-of-post-rock-5aab5d15923b">interview with the band</a> on Medium!</p>
<hr>
<p><em>Curious where the name &ldquo;Tergiversate&rdquo; came from? Check out the <a href="http://www.dictionary.com/browse/tergiversate">dictionary definition</a>.</em></p>]]></description></item><item><title>How five Queen songs went mainstream in totally different ways</title><link>https://jwheel.org/blog/2018/10/five-queen-songs-mainstream/</link><pubDate>Tue, 16 Oct 2018 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2018/10/five-queen-songs-mainstream/</guid><enclosure url="https://jwheel.org/blog/2018/10/five-queen-songs-mainstream.jpg" length="270917" type="image/jpeg"/><description><![CDATA[<img src="https://jwheel.org/blog/2018/10/five-queen-songs-mainstream.jpg" alt="How five Queen songs went mainstream in totally different ways"><p><a href="http://blog.musicbrainz.org/2018/10/16/five-queen-songs-mainstream/"><em>Originally published on the MusicBrainz blog.</em></a></p>
<p><a href="http://blog.musicbrainz.org/2018/10/16/five-queen-songs-mainstream/"></a></p>
<hr>
<p>Making graphs is easy. Making intuitive, easy-to-understand graphs? It&rsquo;s harder than most people think. At the <a href="https://www.rit.edu/">Rochester Institute of Technology</a>, the ISTE-260 (Designing the User Experience) course teaches the language of design to IT students. For an introductory exercise in the class, students are tasked to visualize any set of data they desire. Students <a href="https://www.linkedin.com/in/davidkim18/">David Kim</a>, <a href="https://www.linkedin.com/in/jathan-a/">Jathan Anandham</a>, <a href="https://www.linkedin.com/in/jwwheel/">Justin Wheeler</a>, and <a href="https://www.linkedin.com/in/scott-tinker-216962129/">Scott Tinker</a> used the MusicBrainz database to look at how five different Queen songs went mainstream in different ways.</p>

<h2 id="five-factors-of-queen">Five factors of Queen&nbsp;<a class="hanchor" href="#five-factors-of-queen" aria-label="Anchor link for: Five factors of Queen">🔗</a></h2>
<p>Our mini data science experiment decided to look at five unique data points available to us via <a href="https://musicbrainz.org/doc/Work">MusicBrainz Works</a>:</p>
<ul>
<li>Number of recorded covers</li>
<li>Number of artists who covered a song</li>
<li>Release year</li>
<li>Year of last recorded cover</li>
<li>Time elapsed between release year and year of last recorded cover</li>
</ul>
<p>Originally, we looked at songs from different artists, but decided to look at five recordings from the same artist. With Queen being a notoriously famous band, there were several data points to work with in terms of how often a song was covered.</p>
<p>
<figure>
  <img src="/blog/2018/10/Queen-data-visualization.png" alt="How five Queen songs went mainstream in totally different ways" loading="lazy">
  <figcaption><strong><em>Studying five Queen songs</em></strong>: Another One Bites the Dust, Bohemian Rhapsody, Don’t Stop Me Now, Fat Bottomed Girls, We Will Rock You</figcaption>
</figure>
</p>

<h2 id="making-sense-of-the-data">Making sense of the data&nbsp;<a class="hanchor" href="#making-sense-of-the-data" aria-label="Anchor link for: Making sense of the data">🔗</a></h2>
<p>A few explanations are necessary for some of the data, especially the difference in number of covers and number of artists. <em>Don&rsquo;t Stop Me Now</em>, <em>Fat Bottomed Girls</em>, and <em>We Will Rock You</em> had the same number of recorded covers as number of artists who have covered the song. Why were <em>Another One Bites the Dust</em> and <em>Bohemian Rhapsody</em> different?</p>
<p>As it turns out, <em>Another One Bites the Dust</em> had more covers than the number of artists who have covered the song. This happens because some artists have covered the song twice (e.g. once on a studio release and another on a live recording release). On the other hand, Bohemian Rhapsody had more artists covering it than number of covers because some recordings featured multiple artists on the same cover (e.g. the 1992 live performance with Elton John and Axl Rose).</p>
<p>The data opens many interesting questions. Why have some songs persisted longer than others (in terms of recent covers)? Have these songs impacted culture and society in different ways? How have they permeated culture? Is there geographical bias in the data?</p>
<p>This exercise was an exploratory assignment, but we had fun visualizing it and ended up learning an interesting pattern in music data.</p>

<h2 id="check-out-the-presentation-and-paper">Check out the presentation and paper&nbsp;<a class="hanchor" href="#check-out-the-presentation-and-paper" aria-label="Anchor link for: Check out the presentation and paper">🔗</a></h2>
<p>If you&rsquo;re interested for the full details, the <a href="https://docs.google.com/presentation/d/1sMgwgo5dxi2n0j1elnlfZgk3OU5QnwsZfcrNwQYmmCQ/edit?usp=sharing">slides</a> and a <a href="https://docs.google.com/document/d/1sLXBK2uUCpBazBUe_EiRdHOGlKUcBMwP7CG1XX9-Aiw/edit?usp=sharing">short paper</a> about the presentation are available online. They provide deeper context for the research and the visualization details based on different design concepts.</p>
<p>You can see what else <a href="https://www.linkedin.com/in/davidkim18/">David Kim</a>, <a href="https://www.linkedin.com/in/jathan-a/">Jathan Anandham</a>, <a href="https://www.linkedin.com/in/jwwheel/">Justin Wheeler</a>, and <a href="https://www.linkedin.com/in/scott-tinker-216962129/">Scott Tinker</a> are up to on LinkedIn. Thanks for tuning in to this adventure into music data analysis, powered by MusicBrainz!</p>
<hr>
<p><em>Photo by <a href="https://unsplash.com/photos/QrqeusbpFMM?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Matthias Wagner</a> on <a href="https://unsplash.com/search/photos/microphone?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</em></p>]]></description></item><item><title>Tergiversate: Abysma by Geotic</title><link>https://jwheel.org/blog/2018/03/abysma-geotic/</link><pubDate>Mon, 19 Mar 2018 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2018/03/abysma-geotic/</guid><enclosure url="https://jwheel.org/blog/2018/03/tergiversate-abysma-geotic.png" length="223800" type="image/png"/><description><![CDATA[<img src="https://jwheel.org/blog/2018/03/tergiversate-abysma-geotic.png" alt="Tergiversate: Abysma by Geotic"><p><em>This article is part of my <a href="/tags/tergiversate-music-column/">Tervigersate column</a> on my blog, where I review albums by musicians spanning multiple genres. Articles introduce an album and give my interpretation of their meaning.</em></p>
<hr>
<p>The next album to spotlight in <a href="https://geotic.bandcamp.com/">Tergiversate</a> is <strong>Abysma</strong> by Los Angeles-based <a href="https://geotic.bandcamp.com/">Geotic</a>, a.k.a. <a href="https://en.wikipedia.org/wiki/Baths_%5C%28musician%5C%29">Will Wiesenfeld</a>. Abysma is the ninth studio album released by Geotic. It debuted on March 31, 2017. The album could be described as a cross between an electronica and indie pop. For Wiesenfeld&rsquo;s first début on a record label with his side project Geotic, he makes a bold and eccentric presence with <em>Abysma</em>.</p>

<h2 id="why-abysma">Why <em>Abysma</em>?&nbsp;<a class="hanchor" href="#why-abysma" aria-label="Anchor link for: Why Abysma?">🔗</a></h2>
<p><em>Abysma</em> was an accidental discovery during a significant experience of my life. At the time, I subscribed to Google Play Music and I would sometimes receive recommendations for new music to listen to. On March 31, 2017, Google Play suggested <em>Abysma</em> as a new release I might like.</p>
<p>At the time, I was living in Dubrovnik, Croatia on a <a href="/blog/2018/02/2017-year-review/">study abroad exchange</a>. The album quickly became one of my favorites for the remaining two months I spent abroad. After returning to the US, I chose not to renew my subscription. Since I never purchased the album, it was conveniently forgotten after I returned.</p>
<p>Months later, in October, I reviewed some of my <a href="https://www.last.fm/user/jflory7/library/artists">top albums from 2017</a> on Last.fm. I came across Geotic on the list and remembered <em>Abysma</em>. I decided to buy the album and add it to my library. Since then, the album returned to a regular spot on my listening queue.</p>
<p>Thus, perhaps it makes sense that I strongly associate this album to my time living abroad. Frequently, this album was the backdrop to afternoon walks near the <a href="https://whc.unesco.org/en/list/95">Old City of Dubrovnik</a>, long bus rides to Bosnia or Albania, or for studying the week before final exams. Regardless, this album rekindles my imagination for some of my own unique experiences. Therefore, it made sense to include this album in a Tergiversate column.</p>

<h2 id="themes">Themes&nbsp;<a class="hanchor" href="#themes" aria-label="Anchor link for: Themes">🔗</a></h2>
<p>Deciphering <em>Abysma</em> is a challenge. Most of the record is ambient, with some songs featuring brief, synthesized, and heavily modified vocals. The album artwork is the next biggest hint to themes and meanings of the album.</p>
<p>The following are two themes I identified in <em>Abysma</em>:</p>
<ul>
<li>Own worst enemy</li>
<li>Overcoming hardship</li>
</ul>
<p>Both themes play a supporting role in each other,.</p>

<h4 id="own-worst-enemy">Own worst enemy&nbsp;<a class="hanchor" href="#own-worst-enemy" aria-label="Anchor link for: Own worst enemy">🔗</a></h4>
<p>One of the primary themes of the album is recognizing our least desirable qualities of ourselves and letting them overpower our other positive qualities.</p>

<h6 id="artwork">Artwork&nbsp;<a class="hanchor" href="#artwork" aria-label="Anchor link for: Artwork">🔗</a></h6>
<p>The album artwork sets the foundation for this theme, combined with various hints from song titles and mood from each track. The artwork features a sun-bathed, empty room with a rainbow-colored body lain across the floor.</p>
<p>The body appears lifeless as it peers outside the bright window. The body is a metaphor for the bright and wonderful qualities we own, but the room represents a trap. Despite the wonderful qualities inside, we lock ourselves into boxes or rooms where we are unable to see past the walls. We only have a window into the great wonders of life – yet somehow we are not in that picture.</p>

<h6 id="songs">Songs&nbsp;<a class="hanchor" href="#songs" aria-label="Anchor link for: Songs">🔗</a></h6>
<p>The mood of the album contributes to that idea. Sunspell, the opening track, creates the initial view of the album. The album is reminiscent of a bright, cheery atmosphere, but it seems remote and disconnected at the same time. The sunlight captivates us and puts us under a spell – in the spell, the bright lights of others and the world we see strike us and blind us.</p>
<p>The following tracks continue to build this atmosphere, leaning towards an introspective and oblique feel. Echoing words of &ldquo;it all makes sense&rdquo; on <em>Nav</em> feed this idea of deep, intrinsic wonder to ourselves. As the album grows in its mysterious nature, so does the feeling of mental isolation. As <em>Abysma</em> progresses, Geotic puts on a lens of closer and closer self-introspection.</p>
<p>Admittedly, not all the qualities in this lens are the best ones. The theme reaches its climax in <em>Perish Song</em>. The song title leaves little room for second guessing. In the long, drawn-out waves of the synthesizer and delicate piano keystrokes, a listener is left with understanding of a type of depression. It&rsquo;s reminiscent of the days when our thoughts are self-destructive and harmful.</p>

<h6 id="what-it-all-means">What it all means&nbsp;<a class="hanchor" href="#what-it-all-means" aria-label="Anchor link for: What it all means">🔗</a></h6>
<p>Whether by design or by accident, Geotic forces the listener to find a level of acceptance of their own mind. Throughout life, we sometimes make ourselves our own biggest enemy and showstoppers. Even though we are all filled with a natural bright and illuminating nature (like a child), we can lose sight of that version of our self. This theme is present because we become aware of ourselves when listening. Everyone has been their own hardest critic, and Abysma is a gentle reminder that sometimes we are hardest on ourselves.</p>
<p>Lingering thoughts remain whether the harsh self-criticism is worthy or not, but this is quickly answered at the close of the record.</p>

<h4 id="overcoming-hardship">Overcoming hardship&nbsp;<a class="hanchor" href="#overcoming-hardship" aria-label="Anchor link for: Overcoming hardship">🔗</a></h4>
<p>In a quick turnaround, the last song of the album, <em>Valiance</em>, introduces the second theme and integrates into the different pieces of the previous theme.</p>
<p>The second theme builds on the idea that even in our worst qualities and lowest moments (e.g. <em>Perish Song</em>), we are able to overcome the battle with our mind and find our own peace. After all, the body on the album cover reflects light and echoes the colors of the rainbow – we always possessed the qualities, but perhaps did not recognize them within us.</p>

<h6 id="valiance"><em>Valiance</em>&nbsp;<a class="hanchor" href="#valiance" aria-label="Anchor link for: Valiance">🔗</a></h6>
<p>The high notes and intense energy of <em>Valiance</em> are a contrast to some of the introspective atmospheres earlier in the album. While <em>Valiance</em> is also introspective, it changes the lens. Instead of looking in at our worst qualities, it&rsquo;s a change in perspective to look at our better qualities. The song almost seems to externalize the hidden energy inside the body on the album cover.</p>
<p><em>Valiance</em> is a reminder of our ability to find peace with our mind and create our own happiness. It tells and affirms that we can overcome our hardships, whether imposed on us by ourselves or by others.</p>

<h6 id="what-it-all-means-1">What it all means&nbsp;<a class="hanchor" href="#what-it-all-means-1" aria-label="Anchor link for: What it all means">🔗</a></h6>
<p>One line from the lyrics of <em>Perish Song</em> are significant. It plays back into the second theme:</p>
<blockquote>
<p>The heat of the sun,</p>
<p>Is there if you want.</p>
</blockquote>
<p>We decide whether we want to feel the warmth and heat of the sun in our life. We are the ones that make a choice to how we receive the world and our experiences in life.</p>
<p>As a whole, this theme plays into the previous theme because it takes a stark change in direction. But it plays together beautifully. The negative and difficult recognition of our own self as an enemy is challenging. It reminds of our shortcomings, our regrets, our missed opportunities. It becomes easy to pin the blame on ourselves. Not only that, but the awareness can introduce a concern of not being able to overcome our failures.</p>
<p>Yet, the album ends elegantly, brightly, and brilliantly. The closing reminds us that we should always choose the heat of the sun in our life. When we shape our perspective of the world and the people around us, we make a choice for how we receive and interact with it. To make a positive impression of the world and those around us, we must become comfortable with ourselves first. We have to find peace with our own mind before we can find peace with any others.</p>
<p>The closing of <em>Abysma</em> reminds us of that, in a layered progression from recognizing our worst qualities to acknowledging they can always be overcome. Recognizing our worst qualities is challenging, but it&rsquo;s a challenge we can overcome when we live in the light and warmth. When we choose happiness, love, and compassion, these qualities reflect and echo back to us in life.</p>

<h2 id="where-to-find-abysma">Where to find <em>Abysma</em>&nbsp;<a class="hanchor" href="#where-to-find-abysma" aria-label="Anchor link for: Where to find Abysma">🔗</a></h2>
<p>Most albums reviewed in Tergiversate focus on the complete album, not each song. Consider making your first listen from top to bottom instead of picking single songs. My experience in music is that great albums offer the most when enjoyed in a single, immersive experience.</p>
<ul>
<li><a href="https://geotic.bandcamp.com/album/abysma">Bandcamp</a> (<em>preferred, directly supports artist</em>)</li>
<li><a href="https://open.spotify.com/album/4EJX0zVSDXQaeQHL21ekHv">Spotify</a></li>
<li><a href="https://itunes.apple.com/us/album/abysma/1196432031">iTunes</a></li>
<li><a href="https://play.google.com/store/music/album/Geotic_Abysma?id=Bda3vkuwuaf2h43lwe5cqubrcrq">Google Play</a></li>
<li><a href="https://www.amazon.com/gp/product/B01N9T6VVK">Amazon</a></li>
<li><a href="https://soundcloud.com/ghostly/sets/geotic-abysma-hype-machine-exclusive">SoundCloud</a></li>
</ul>
<hr>
<p><em>Curious where the name &ldquo;Tergiversate&rdquo; came from? Check out the <a href="http://www.dictionary.com/browse/tergiversate">dictionary definition</a>.</em></p>]]></description></item><item><title>Tergiversate: Demon Days by Gorillaz</title><link>https://jwheel.org/blog/2018/01/demon-days-gorillaz/</link><pubDate>Tue, 16 Jan 2018 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2018/01/demon-days-gorillaz/</guid><enclosure url="https://jwheel.org/blog/2018/01/tergiversate-demon-days-gorillaz.jpg" length="127592" type="image/jpeg"/><description><![CDATA[<img src="https://jwheel.org/blog/2018/01/tergiversate-demon-days-gorillaz.jpg" alt="Tergiversate: Demon Days by Gorillaz"><p>The first album to début in my <a href="/tags/tergiversate-music-column/">Tergiversate music column</a> isn&rsquo;t a new album, but it&rsquo;s an album with a meaning that evolves and changes over time into something new. <a href="https://en.wikipedia.org/wiki/Demon_Days"><em>Demon Days</em></a> is the second studio album released by <a href="https://en.wikipedia.org/wiki/Gorillaz">Gorillaz</a> in 2005. <em>Demon Days</em> is officially classified as alternative hip hop, but it&rsquo;s better described as a fusion of styles and genres, rolled together. Some tracks hang true to the underground hip hop sounds from the first album, others to a pop-ish sound found in their third album, and others are completely unique to <em>Demon Days</em>.</p>

<h2 id="why-demon-days">Why <em>Demon Days</em>?&nbsp;<a class="hanchor" href="#why-demon-days" aria-label="Anchor link for: Why Demon Days?">🔗</a></h2>
<p><em>Demon Days</em> has a sentimental value to me. When I was younger, a close friend gifted me a copy of the album on CD, marking the first physical piece of music merchandise in my collection. Ever since the first CD, my collection has expanded across many artists, genres, and mediums, from CDs, to 7&quot; and 12&quot; vinyl records, and even a signed brick (a story to save for another time).</p>
<p>More importantly, Gorillaz represents a distinct departure in my music listening habits from my youth. Gorillaz opened my perspective to new sounds and genres, and the diverse range of sounds that Damon Albarn uses in the Gorillaz albums helped me discover new music. Gorillaz is the root of my independent music discovery, when I began to explore the rich palettes of sound, passion, and insight that music offers.</p>
<p>Even though <em>Demon Days</em> was the first album that felt like my own finding, its meaning and purpose have grown with me over time. Every year, there&rsquo;s a period of my life where I find the album on repeat, or I&rsquo;ll suddenly realize that I need to listen to a <em>very specific song from the album immediately</em>. I departed from other artists and albums from my youth, but <em>Demon Days</em> is one that clings on with a contemporary relevance, captures my imagination, and fills my heart with hope.</p>
<p>Thus, no other album felt worthy of receiving the title of &ldquo;first&rdquo; in this series.</p>

<h2 id="themes">Themes&nbsp;<a class="hanchor" href="#themes" aria-label="Anchor link for: Themes">🔗</a></h2>
<p>The album sits at a pivotal moment in human history: the dawn of the 21st century is still breaking. A world of technology begins to immerse our culture, the world is at a war with questionable purpose, and an air of suspense hangs above for the thoughtful philosopher.</p>
<p>Damon Albarn attacks this moment in a poetic and creative genius that addresses four themes, but doesn&rsquo;t paint a picture of despair. The four themes, as aptly detailed by the <a href="http://gorillaz.wikia.com/wiki/Demon_Days">Demon Days Wikia page</a>, are…</p>
<ol>
<li>Desensitizing children / the innocent</li>
<li>The Iraq war</li>
<li>Environmental damage</li>
<li>Defacement of mass culture</li>
</ol>

<h4 id="new-direction">New direction&nbsp;<a class="hanchor" href="#new-direction" aria-label="Anchor link for: New direction">🔗</a></h4>
<p>Unlike the earlier album, this album marks the beginning of a new era for Damon Albarn and Gorillaz. Albarn&rsquo;s music reaches a new level of maturity that was not as present in previous works.</p>
<p>Another <a href="https://www.reddit.com/r/gorillaz/comments/35bchy/its_about_drugs_obviously_demon_days_album/cr2t5b5/">analysis of the album</a> from Reddit pins a deep insight into the meaning of the album. One exceptional excerpt from that thread:</p>
<blockquote>
<p>Within this album, which is a popular music album, Damon spins a soundscape which explores the world in true existential crisis and tries, genuinely tries, to instruct the listener towards a positive outlook. It is unflinchingly hateful and rejecting of the forces at work which prevent personal growth and one by one exposes the Orwellian nightmare of living under a violent government and an apathetic society.</p>
</blockquote>

<h4 id="one-piece">One piece&nbsp;<a class="hanchor" href="#one-piece" aria-label="Anchor link for: One piece">🔗</a></h4>
<p>Perhaps the most powerful part of <em>Demon Days</em> is its composition as a singular unit. While many of the songs stand up on their own as mainstream singles, the album is best received as the sum of its parts. Albarn described the album in an interview as a story that takes the listener through the night. <em>Intro</em> sets the tone at the beginning of the darkness, and the self-titled track at the end paints a bright, luminescent color for the album.</p>

<h2 id="powerful-ending">Powerful ending&nbsp;<a class="hanchor" href="#powerful-ending" aria-label="Anchor link for: Powerful ending">🔗</a></h2>
<p>The ending of the album remains the most powerful part of the album for me, particularly <em>Don&rsquo;t Get Lost in Heaven</em> and <em>Demon Days</em>. The album deals with themes of a world in decline. It is not discreet in its implied meaning and Albarn offers his perspective on the pitfalls that humanity sets for itself.</p>
<p>Yet, the ending of the album isn&rsquo;t a reflection on the hateful, spiteful, and damaging parts of society and culture.</p>
<p>The ending reminds the listener of the breaking rays of sunlight, cutting through the darkness of the night. In line with its storyline of journeying through the night and facing different demons, the album closes itself with a positive picture of hope, love, and inspiration. I believe Albarn was aware that the message of urgency and themes of darkness in other songs from the album were difficult to swallow. But he was acutely aware that the embers of hope and love should never be extinguished if these demons of the world are to be overcome.</p>
<p>The ending of the album is what took me through 2017. One of the highlights of my year was seeing Gorillaz live in Chicago in July, as they started their international tour for the <em>Humanz</em> album. I was speechless and filled with a boundless joy when the concert ended with <em>Don&rsquo;t Get Lost in Heaven</em> and <em>Demon Days</em>. These two songs aged and were reborn with new meaning and passion for the world we explore in 2017 and beyond. I&rsquo;ve felt that for some time, but seeing Gorillaz perform at their first show in years and also ending with these songs? It only confirmed this resolve in meaning to me.</p>

<h2 id="where-to-find-demon-days">Where to find <em>Demon Days</em>&nbsp;<a class="hanchor" href="#where-to-find-demon-days" aria-label="Anchor link for: Where to find Demon Days">🔗</a></h2>
<p>If you only know some of the singles from the album, or if you have never listened at all, please consider a full listen from top to bottom. Some albums can be enjoyed in pieces, but <em>Demon Days</em> is a package deal, and it offers the most when it&rsquo;s listened to in a single, immersive experience.</p>
<ul>
<li><a href="https://open.spotify.com/album/0bUTHlWbkSQysoM3VsWldT">Spotify</a></li>
<li><a href="https://itunes.apple.com/us/album/demon-days/850571319">iTunes</a></li>
<li><a href="https://play.google.com/store/music/album/Gorillaz_Demon_Days?id=By4ucvl4dgvq6uphk7y54iiwecy&amp;hl=en">Google Play</a></li>
<li><a href="https://www.amazon.com/Demon-Days-Gorillaz/dp/B000TENKEK/">Amazon</a></li>
<li><a href="https://www.youtube.com/playlist?list=PLFBaDo-wGWHqLRzGiaPFUMEF-iP4UEvg1">YouTube</a></li>
</ul>
<hr>
<p><em>Curious where the name &ldquo;Tergiversate&rdquo; came from? Check out the <a href="http://www.dictionary.com/browse/tergiversate">dictionary definition</a>.</em></p>]]></description></item><item><title>Tergiversate: Introducing music review column</title><link>https://jwheel.org/blog/2017/12/tergiversate-music-review/</link><pubDate>Wed, 27 Dec 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/12/tergiversate-music-review/</guid><enclosure url="https://jwheel.org/blog/2017/12/tergiversate-music-column.png" length="105444" type="image/png"/><description><![CDATA[<img src="https://jwheel.org/blog/2017/12/tergiversate-music-column.png" alt="Tergiversate: Introducing music review column"><p>Music is a key part of my life. I spend a lot of time listening and analyzing music. However, music is as much a personal experience as it is a social one too. In music, an artist shares their perspective and experience with the listener. The listener, in turn, shares music with others. In my experience, some of the best music recommendations have come from friends or from other music fans. Thus, I&rsquo;m happy to announce <strong>Tergiversate</strong>, a new column on my blog that celebrates great music and the role it plays in documenting culture and society.</p>

<h2 id="tergiversate-new-articles-in-2018">Tergiversate: New articles in 2018&nbsp;<a class="hanchor" href="#tergiversate-new-articles-in-2018" aria-label="Anchor link for: Tergiversate: New articles in 2018">🔗</a></h2>
<p>Tergiversate takes the form of a column on my blog. New posts will appear in the <a href="/categories/music/"><em>Music</em> category</a>. Since this is a personal undertaking, I did not want to commit to a publishing schedule, but I hope to cover one to two albums a month.</p>
<p>The album columns will not always be a review or an analysis, but rather a spotlight or highlight on albums that have a special or intrinsic value to me. I hope to cover both new releases from current-day artists as well as introduce older albums from some of my favorite artists.</p>
<p>The first articles in the series will appear in January 2018.</p>

<h2 id="recommendation-swapping-welcome">Recommendation swapping welcome&nbsp;<a class="hanchor" href="#recommendation-swapping-welcome" aria-label="Anchor link for: Recommendation swapping welcome">🔗</a></h2>
<p>I plan to start with music that I&rsquo;m familiar with. However, if you want me to consider an album, I&rsquo;m happy to swap recommendations. I&rsquo;m always looking for new music, so if you want to point something out to me, you&rsquo;re welcome to leave a comment or reach out to me somewhere else.</p>
<p>I&rsquo;m excited to launch Tergiversate. Music is an important part of my life and I&rsquo;m excited to extract the best highlights from a world polluted by noise.</p>
<hr>
<p><em>Curious where the name &ldquo;Tergiversate&rdquo; came from? Check out the <a href="http://www.dictionary.com/browse/tergiversate">dictionary definition</a>.</em></p>
<p><em><a href="https://thenounproject.com/term/music/1187007/">Music</a> by <a href="https://thenounproject.com/sandyduankz">Sandy Priyasa</a> from <a href="https://thenounproject.com/">the Noun Project</a>.</em></p>]]></description></item><item><title>Statistics proposal and self-hosting ListenBrainz</title><link>https://jwheel.org/blog/2017/12/statistics-hosting-listenbrainz/</link><pubDate>Mon, 18 Dec 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/12/statistics-hosting-listenbrainz/</guid><enclosure url="https://jwheel.org/img/listenbrainz-rit-independent-study.png" length="423053" type="image/png"/><description><![CDATA[<img src="https://jwheel.org/img/listenbrainz-rit-independent-study.png" alt="Statistics proposal and self-hosting ListenBrainz"><p><em>This post is part of a series of posts where I contribute to the ListenBrainz project for my independent study at the Rochester Institute of Technology in the fall 2017 semester. For more posts, find them in <a href="/tags/rit-2171/">this tag</a>.</em></p>
<hr>
<p>This week is the last week of the fall 2017 semester at RIT. This semester, I spent time with the MetaBrainz community working on ListenBrainz for an independent study. This post explains what I was working on in the last month and reflects back on my <a href="/blog/2017/10/contributing-listenbrainz/">original objectives</a> for the independent study.</p>

<h2 id="running-my-own-listenbrainz">Running my own ListenBrainz&nbsp;<a class="hanchor" href="#running-my-own-listenbrainz" aria-label="Anchor link for: Running my own ListenBrainz">🔗</a></h2>
<p>The <a href="http://ritlug.com/">RIT Linux Users Group</a> hosts various virtual machines for our projects. I requested one to set up and host a &ldquo;production&rdquo; ListenBrainz site. The purpose of doing this was to…</p>
<ol>
<li>Test my changes in a &ldquo;production&rdquo; environment</li>
<li>Offer a service for the RIT Linux Users Group to poke around with</li>
</ol>
<p>I spent most of this time working with our system administrator to set up the machine and adjust hardware specs for ListenBrainz. Once we fixed storage space and memory issues, it was easy to set it up and get ListenBrainz running. My experience writing the <a href="https://listenbrainz.readthedocs.io/en/latest/dev/devel-env.html">development guide</a> made it easy to get set up and get working. On the first run, it worked!</p>
<p>Now, <a href="http://listen.ritlug.com/">listen.ritlug.com</a> is live.</p>

<h4 id="figuring-out-https">Figuring out HTTPS&nbsp;<a class="hanchor" href="#figuring-out-https" aria-label="Anchor link for: Figuring out HTTPS">🔗</a></h4>
<p>My next challenge for the site is to set up HTTPS. I tried using a <a href="https://www.nginx.com/resources/admin-guide/nginx-https-upstreams/">reverse proxy in nginx</a> to set up HTTPS, but I received <em>502 Bad Gateway</em> errors. I realized I spent too much time figuring this out on my own and decided to <a href="https://community.metabrainz.org/t/how-does-metabrainz-use-https-on-listenbrainz/347319">ask for help</a> in the MetaBrainz community forums.</p>

<h2 id="proposing-new-statistics">Proposing new statistics&nbsp;<a class="hanchor" href="#proposing-new-statistics" aria-label="Anchor link for: Proposing new statistics">🔗</a></h2>
<p>Halfway through the independent study, I realized I would fall short of my original objective of implementing basic statistics in ListenBrainz. To compromise, I wrote a <a href="https://docs.google.com/document/d/1kByAgC9kbuDHNbsEJDkYkTMJ-wAoouWj0qNyi2UPb2Y/edit?usp=sharing">proposal for new statistics</a> to start in the project. My proposal looked at other proprietary platforms that compete with ListenBrainz to see some of their statistics. I also came up with some of my own.</p>
<p>I <a href="https://community.metabrainz.org/t/feedback-needed-listenbrainz-statistics-proposal/347327">proposed this to the MetaBrainz community</a> on the community forums. I&rsquo;m awaiting feedback on my ideas. Once I get feedback, I plan to file new tickets for each statistic to track their implementation over time.</p>
<p>I don&rsquo;t expect statistics being at the forefront of ListenBrainz for some time. A lot of work is going towards other areas of the project. But later in 2018, I expect more focus on the user-facing side of the project.</p>

<h2 id="my-statistic-and-google-bigquery">My statistic and Google BigQuery&nbsp;<a class="hanchor" href="#my-statistic-and-google-bigquery" aria-label="Anchor link for: My statistic and Google BigQuery">🔗</a></h2>
<p>My biggest blocker over the last month was <a href="https://cloud.google.com/bigquery/">Google BigQuery</a>. I wrote a statistic to <a href="https://github.com/metabrainz/listenbrainz-server/pull/318/commits/c1c08ce7f8d207591daeb288087872616d5063a4">calculate play counts</a> over a time period, but was asked to test my statistic. To test my statistic, I needed real data to work with.</p>
<p>Originally, I tried using the <a href="https://github.com/tgwizard/sls">Simple Last.fm Scrobbler</a> to submit listens to the local IP address for my development environment, but I wasn&rsquo;t able to get the app to reach my ListenBrainz server. To get the data, I had to set up Google BigQuery credentials so I could make queries against data on the production site, <a href="https://listenbrainz.org/">listenbrainz.org</a>.</p>
<p>I tried working through the <a href="https://cloud.google.com/bigquery/docs/">Google BigQuery documentation</a>. There&rsquo;s a lot of documentation for using BigQuery as a developer, but it was confusing where to find the information I needed to set it up in my development environment. I tried creating a new project in the Google Cloud Platform, but I was confused because it prompted me to upload my own data instead of accessing data already in BigQuery.</p>
<p>Too late, I realized I spent too much time on my own and not asking for help. I <a href="https://github.com/metabrainz/listenbrainz-server/pull/318">submitted a pull request</a> with the statistic I made and <a href="https://community.metabrainz.org/t/how-to-set-up-google-bigquery-in-a-listenbrainz-development-environment/347307">asked for help</a> in the MetaBrainz community. I also offered to write documentation for setting this up once I learn how to do it.</p>

<h2 id="reflecting-back">Reflecting back&nbsp;<a class="hanchor" href="#reflecting-back" aria-label="Anchor link for: Reflecting back">🔗</a></h2>
<p>I looked back on my <a href="/blog/2017/10/contributing-listenbrainz/">original objectives</a> for the independent study, and I was satisfied and dissatisfied.</p>

<h4 id="not-enough-programming">Not enough programming&nbsp;<a class="hanchor" href="#not-enough-programming" aria-label="Anchor link for: Not enough programming">🔗</a></h4>
<p>I wanted this independent study to enhance my programming knowledge. I especially wanted to focus on Python because I wanted to become more familiar with the language. However, I actually didn&rsquo;t do much programming during the independent study, to my own fault.</p>
<p>My biggest challenge was I bit off more than I could chew. I wanted to write code, and made a big goal before I knew the code base of the project. Even now, I still am not completely comfortable with the code yet. It&rsquo;s a big project with a lot of things going on. I was able to understand the things I did work on, but there&rsquo;s still a lot.</p>
<p>I realized that next time, I need to spend more time evaluating the code base of a project before writing out my milestones. I wish I set more realistic, smaller milestones for myself. My milestone of implementing basic reports was lofty given my existing programming knowledge.</p>

<h4 id="successes">Successes&nbsp;<a class="hanchor" href="#successes" aria-label="Anchor link for: Successes">🔗</a></h4>
<p>One of my other objectives was to write documentation for the project. I felt I succeeded in this milestone, and actually found it enjoyable and interesting to do! I helped separate out documentation from the README into the dedicated <a href="https://listenbrainz.readthedocs.io/en/latest/">ReadTheDocs site</a>. I wrote the <a href="https://listenbrainz.readthedocs.io/en/latest/dev/devel-env.html">development environment guide</a> and helped fix some build issues with the docs site. I also plan to write more for some of the other pain points I found, like Google BigQuery.</p>
<p>My last milestone was to create a use case for a data visualization course at RIT. While I didn&rsquo;t implement my basic reports, I did create the proposal and make an effort to write new statistics. There&rsquo;s a lot of potential now to work with the data in Google BigQuery and do front-end work with tools like <a href="https://d3js.org/">D3.js</a> and <a href="https://plot.ly/javascript/">Plotly.js</a>. I believe there&rsquo;s significant potential to use ListenBrainz as a hands-on project for students to explore data visualization with real data. I hope to support my independent study professor, Prof. Roberts, with questions and logistics of using it as a tool for learning in the future.</p>

<h4 id="unexpected-success">Unexpected success&nbsp;<a class="hanchor" href="#unexpected-success" aria-label="Anchor link for: Unexpected success">🔗</a></h4>
<p>I also think I had an unplanned success too. I immersed myself in the community for ListenBrainz too. Over the last few months, I realized that many of my strengths are in community management and tooling. During my time in the community, I did the following:</p>
<ul>
<li><a href="https://github.com/metabrainz/listenbrainz-server/pull/290">Fixed SELinux labels in Docker</a></li>
<li><a href="https://github.com/metabrainz/listenbrainz-server/pull/288">Contributed a pull request template</a></li>
<li><a href="https://github.com/metabrainz/listenbrainz-server/pull/287">Drafted contributing guidelines</a></li>
<li><a href="https://github.com/metabrainz/listenbrainz-server/pull/294">Fixed a PostgreSQL bug</a></li>
<li><a href="https://github.com/metabrainz/listenbrainz-server/pulls?utf8=%E2%9C%93&amp;q=is%3Apr&#43;author%3Ajflory7&#43;">And more…</a></li>
</ul>

<h2 id="to-the-future">To the future!&nbsp;<a class="hanchor" href="#to-the-future" aria-label="Anchor link for: To the future!">🔗</a></h2>
<p>This ends my independent study with ListenBrainz, but it doesn&rsquo;t end my time contributing! I chose ListenBrainz because it&rsquo;s a project I&rsquo;m passionate about. An independent study allowed me to justify more time on it than a side project in my free time. I&rsquo;m happy to have that opportunity, but I don&rsquo;t want to end here!</p>
<p>I want to follow through on the statistics because I&rsquo;m passionate about understanding music listening trends. I think there&rsquo;s a lot of power for psychological research through music data. To this point, I filed a ticket to request <a href="https://tickets.metabrainz.org/browse/LB-243">tagging listens with &ldquo;emotion&rdquo; words</a> that are synced back to <a href="https://musicbrainz.org/doc/MusicBrainz_Database">MusicBrainz entities</a>.</p>
<p>I won&rsquo;t have as much time to work on the project without the course credit, but I hope to stay involved for the future. I love the project and I love the community. I&rsquo;m thankful for the opportunity to work on this project as an independent study, and learn some things along the way.</p>]]></description></item><item><title>Exploring Google Code-In, ListenBrainz easyfix bugs, D3.js</title><link>https://jwheel.org/blog/2017/10/google-code-in-listenbrainz-d3-js/</link><pubDate>Sat, 21 Oct 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/10/google-code-in-listenbrainz-d3-js/</guid><enclosure url="https://jwheel.org/img/listenbrainz-rit-independent-study.png" length="423053" type="image/png"/><description><![CDATA[<img src="https://jwheel.org/img/listenbrainz-rit-independent-study.png" alt="Exploring Google Code-In, ListenBrainz easyfix bugs, D3.js"><p><em>This post is part of a series of posts where I contribute to the ListenBrainz project for my independent study at the Rochester Institute of Technology in the fall 2017 semester. For more posts, find them in <a href="/tags/rit-2171/">this tag</a>.</em></p>
<hr>
<p>Last week moved quickly for me in ListenBrainz. I submitted multiple pull requests and participated in the weekly developer&rsquo;s meeting on Monday. I was also invited to take part as a mentor for ListenBrainz for the upcoming round of Google Code-In! In addition to my changes and new role as a mentor, I&rsquo;m researching libraries like D3.js to help build visualizations for music data.  Suddenly, everything started moving fast!</p>

<h2 id="last-week-recap">Last week: Recap&nbsp;<a class="hanchor" href="#last-week-recap" aria-label="Anchor link for: Last week: Recap">🔗</a></h2>
<p>The ListenBrainz team accepted my <a href="https://github.com/metabrainz/listenbrainz-server/pull/257">development environment improvements</a> and <a href="https://github.com/metabrainz/listenbrainz-server/pull/259">documentation</a>. This gave me an opportunity to better explore project documentation tools. I experimented with <a href="http://www.sphinx-doc.org/en/stable/">Sphinx</a> and <a href="https://readthedocs.org/">Read the Docs</a>. Sphinx introduced me to <a href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> for documentation formats. I&rsquo;ve avoided it in favor of Markdown for a long time, but I see where reStructuredText is stronger for advanced documentation.</p>
<p>Since ListenBrainz is a new project, I plan to contribute documentation for any of my work and improve documentation for pre-existing work. One of the goals for this independent study is to make ListenBrainz a viable candidate for a future data analysis course. To make it easy to use and understand, ListenBrainz needs excellent documentation. Since one of my strengths is technical writing, I plan to contribute more documentation this semester.</p>
<p>You can see some of the <a href="https://listenbrainz.readthedocs.io/en/master/">new documentation</a> already!</p>

<h2 id="google-code-in-mentor">Google Code-In mentor&nbsp;<a class="hanchor" href="#google-code-in-mentor" aria-label="Anchor link for: Google Code-In mentor">🔗</a></h2>
<p>The MetaBrainz community manager, <a href="https://musicbrainz.org/user/Freso">Freso Olesen</a>, approached me to mentor for Google Code-In. <a href="https://codein.withgoogle.com/">Google Code-In</a> is an opportunity for teenagers to meaningfully contribute to open source projects. Google describes Google Code-In as…</p>
<blockquote>
<p>Pre-university students ages 13 to 17 are invited to take part in Google Code-in: Our global, online contest introducing teenagers to the world of open source development. With a wide variety of bite-sized tasks, it’s easy for beginners to jump in and get started no matter what skills they have.</p>
<p>Mentors from our participating organizations lend a helping hand as participants learn what it’s like to work on an open source project. Participants get to work on real software and win prizes from t-shirts to a trip to Google HQ!</p>
</blockquote>
<p>MetaBrainz is a participating organization of Google Code-In this cycle. Because of my work with ListenBrainz, I will contribute a few hours a week to help mentor participating students with ListenBrainz. Beginner problems should be easy to help with since I&rsquo;m still beginning too, and as I spend more time with ListenBrainz, I can help with harder problems.</p>
<p>I&rsquo;m excited to give back to one of my favorite open source projects in this way! I&rsquo;m grateful to have this chance to help out during Google Code-In.</p>

<h2 id="choosing-easyfix-bugs">Choosing easyfix bugs&nbsp;<a class="hanchor" href="#choosing-easyfix-bugs" aria-label="Anchor link for: Choosing easyfix bugs">🔗</a></h2>
<p>After I figured out the development environment issues, I went through <a href="https://tickets.metabrainz.org/projects/LB/issues/">open tickets</a> filed against ListenBrainz to find some to work on. I made a preliminary pass through all open tickets and left some comments for more information, when needed. The tickets I highlighted to look into next were</p>
<ul>
<li><a href="https://tickets.metabrainz.org/browse/LB-85"><strong>LB-85</strong></a>: Username in the profile URL should be case insensitive</li>
<li><a href="https://tickets.metabrainz.org/browse/LB-124"><strong>LB-124</strong></a>: Install messybrainz as a a python library from requirements</li>
<li><a href="https://tickets.metabrainz.org/browse/LB-176"><strong>LB-176</strong></a>: Add stats module and begin calculating some user stats from BigQuery</li>
<li><strong><a href="https://tickets.metabrainz.org/browse/LB-206">LB-206</a></strong>: &ldquo;playing_now&rdquo; submissions not showing on profile</li>
<li><a href="https://tickets.metabrainz.org/browse/LB-212"><strong>LB-212</strong></a>: Show the MetaBrainz logo on the listenbrainz footer.</li>
</ul>
<p>Of these five, LB-124 and LB-212 are already closed. While drafting this article, I completed LB-124 in <a href="https://github.com/metabrainz/listenbrainz-server/pull/266">PR #266</a>. This was part of a test to get the documentation building again because of odd import errors. Later, a new student also learning the project for the first time asked to work on LB-212. Since it was a good first task to explore the project code, I passed the ticket to him.</p>
<p>I want to do one more &ldquo;easyfix&rdquo; bug before going into the main part of my independent study timeline. I don&rsquo;t yet feel comfortable with the code and one more bug solved will help. After this, I plan to pursue the heavier lifting of the independent study to explore data operations and queries to make.</p>

<h2 id="researching-d3js">Researching D3.js&nbsp;<a class="hanchor" href="#researching-d3js" aria-label="Anchor link for: Researching D3.js">🔗</a></h2>
<p>Prof. Roberts introduced <a href="https://d3js.org/">D3.js</a> as a library to build interactive, dynamic charts and visual representations of data. I haven&rsquo;t yet looked into much front-end work, but this was a cool project that I wanted to highlight in my weekly report. This feels like it could be a powerful match for ListenBrainz, especially since the data has high detail.</p>

<h2 id="upcoming-activity">Upcoming activity&nbsp;<a class="hanchor" href="#upcoming-activity" aria-label="Anchor link for: Upcoming activity">🔗</a></h2>
<p>This next week, I won&rsquo;t have as much time to contribute to ListenBrainz. On October 21, I&rsquo;m traveling to Raleigh, NC for <a href="https://allthingsopen.org/">All Things Open</a>. On October 24, I <a href="https://allthingsopen.org/speakers/justin-w-flory/">present my talk</a>, &ldquo;<em>What open source and J.K. Rowling have in common</em>&rdquo;. Since I&rsquo;ll be out of Rochester and missing other classwork, I expect less time on my ListenBrainz work.</p>
<p>This next week will be slower than the last two weeks. Hopefully I&rsquo;ll learn something at the conference too to bring back for ListenBrainz.</p>
<p>Until then… keep the FOSS flag high.</p>]]></description></item><item><title>How to set up a ListenBrainz development environment</title><link>https://jwheel.org/blog/2017/10/listenbrainz-development-environment/</link><pubDate>Wed, 04 Oct 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/10/listenbrainz-development-environment/</guid><enclosure url="https://jwheel.org/img/listenbrainz-rit-independent-study.png" length="423053" type="image/png"/><description><![CDATA[<img src="https://jwheel.org/img/listenbrainz-rit-independent-study.png" alt="How to set up a ListenBrainz development environment"><p><em>This post is part of a series of posts where I contribute to the ListenBrainz project for my independent study at the Rochester Institute of Technology in the fall 2017 semester. For more posts, find them in <a href="/tags/rit-2171/">this tag</a>.</em></p>
<hr>
<p>One of the first rites of passage when working on a new project is creating your development environment. It always seems simple, but sometimes there are bumps along the way. The first activity I did to begin contributing to ListenBrainz was create my development environment. I wasn&rsquo;t successful with the documentation in the README, so I had to play around and work with the project before I was even running it.</p>
<p>The first part of this post details how to set up your own development environment. Then, the second half talks about the solution I came up with and my first contribution back to the project.</p>

<h2 id="install-dependencies-docker">Install dependencies: Docker&nbsp;<a class="hanchor" href="#install-dependencies-docker" aria-label="Anchor link for: Install dependencies: Docker">🔗</a></h2>
<p>This tutorial assumes you are using a Linux distribution. If you&rsquo;re using a different operating system, install the necessary dependencies or packages with your preferred method.</p>
<p>ListenBrainz ships in Docker containers, which helps create your development environment and later deploy the application. Therefore, to work on the project, you need to install Docker and use containers for building the project. Containers save you from installing all of this on your own workstation! Since I&rsquo;m using Fedora, I run this command.</p>
<pre tabindex="0"><code>sudo dnf install docker docker-compose
</code></pre>
<h2 id="register-a-musicbrainz-application">Register a MusicBrainz application&nbsp;<a class="hanchor" href="#register-a-musicbrainz-application" aria-label="Anchor link for: Register a MusicBrainz application">🔗</a></h2>
<p>Next, you need to register your application and get a OAuth token from MusicBrainz. Using the OAuth token lets you sign into your development environment with your MusicBrainz account. Then, you can import your plays from somewhere else.</p>
<p>To register, visit the <a href="https://musicbrainz.org/account/applications">MusicBrainz applications page</a>. There, look for the option to <a href="https://musicbrainz.org/account/applications/register">register your application</a>. Fill out the form with these three options.</p>
<ul>
<li><strong>Name</strong>: (any name you want and will recognize, I used <code>listenbrainz-server-devel</code>)</li>
<li><strong>Type</strong>: <code>Web Application</code></li>
<li><strong>Callback URL</strong>: <code>http://localhost/login/musicbrainz/post</code></li>
</ul>
<p>After entering this information, you&rsquo;ll have a OAuth client ID and OAuth client secret. You&rsquo;ll use these for configuring ListenBrainz.</p>

<h4 id="update-configpy">Update config.py&nbsp;<a class="hanchor" href="#update-configpy" aria-label="Anchor link for: Update config.py">🔗</a></h4>
<p>With your new client ID and secret, update the ListenBrainz configuration file. If this is your first time configuring ListenBrainz, copy the sample to a live configuration.</p>
<pre tabindex="0"><code>cp listenbrainz/config.py.sample listenbrainz/config.py
</code></pre><p>Next, open the file with your favorite text editor and look for this section.</p>
<pre tabindex="0"><code># MusicBrainz OAuth
MUSICBRAINZ_CLIENT_ID = &#34;CLIENT_ID&#34;
MUSICBRAINZ_CLIENT_SECRET = &#34;CLIENT_SECRET&#34;
</code></pre><p>Update the strings with your client ID and secret. After doing this, your ListenBrainz development environment is able to authenticate and log in from your MusicBrainz login.</p>

<h2 id="initialize-listenbrainz-databases">Initialize ListenBrainz databases&nbsp;<a class="hanchor" href="#initialize-listenbrainz-databases" aria-label="Anchor link for: Initialize ListenBrainz databases">🔗</a></h2>
<p>Your development environment needs some databases present to work. Before proceeding, run these three commands to initialize the databases.</p>
<pre tabindex="0"><code>docker-compose -f docker/docker-compose.yml -p listenbrainz run --rm web python3 manage.py init_db --create-db
docker-compose -f docker/docker-compose.yml -p listenbrainz run --rm web python3 manage.py init_msb_db --create-db
docker-compose -f docker/docker-compose.yml -p listenbrainz run --rm web python3 manage.py init_influx
</code></pre><p>Your development environment is now ready. Now, let&rsquo;s actually see ListenBrainz load locally!</p>

<h2 id="run-the-magic-script">Run the magic script&nbsp;<a class="hanchor" href="#run-the-magic-script" aria-label="Anchor link for: Run the magic script">🔗</a></h2>
<p>Once you have done this, run the <code>develop.sh</code> script in the root of the repository. Using <code>docker-compose</code>, the script creates multiple Docker containers for the different services and parts of the ListenBrainz server. Running this script will start Redis, PostgreSQL, InfluxDB, and web server containers, to name a few. But this also makes it easy to stop them all later.</p>
<pre tabindex="0"><code>./develop.sh
</code></pre><p>You will see the containers build and eventually run. Leave the script running to see your development environment. Later, you can shut it down by pressing <code>CTRL^C</code>. Once everything is running, visit your new site from your browser!</p>
<p><a href="http://localhost/">http://localhost/</a></p>
<p>Now, you are all set to begin making changes and testing them in your development environment!</p>

<h2 id="making-my-first-pull-request">Making my first pull request&nbsp;<a class="hanchor" href="#making-my-first-pull-request" aria-label="Anchor link for: Making my first pull request">🔗</a></h2>
<p>As mentioned earlier, my first attempt at a development environment was unsuccessful. My system kept denying permission to the processes in the containers. After looking at system audit logs and running a temporary <code>setenforce 0</code>, I tried the script one more time. Everything suddenly worked! So the issue was mostly with SELinux.</p>
<p>With my goal to get my environment set up, I figured out a few issues with the configuration offered by the project developers. I eventually made <a href="https://github.com/metabrainz/listenbrainz-server/pull/257">PR #257</a> against <code>listenbrainz-server</code> with my improvements.</p>

<h4 id="labeling-selinux-volume-mounts">Labeling SELinux volume mounts&nbsp;<a class="hanchor" href="#labeling-selinux-volume-mounts" aria-label="Anchor link for: Labeling SELinux volume mounts">🔗</a></h4>
<p>To diagnose the issue, I started with a quick search and found a <a href="https://stackoverflow.com/questions/24288616/permission-denied-on-accessing-host-directory-in-docker">StackOverflow question</a> with my same problem. There, the question was about Docker containers and denied permissions in the container. The answers explained it was an SELinux error and the context for the containers was not set. However, temporarily changing context for a directory didn&rsquo;t seem too effective and doesn&rsquo;t persist across reboots.</p>
<p>Continuing the search, I found an issue filed against <code>docker-compose</code> about the <code>:z</code> and <code>:Z</code> flags for volume mounts. These flags set SELinux context for containers, with the best explanation I found coming from <a href="https://stackoverflow.com/a/35222815/2497452">this StackOverflow answer</a>.</p>
<blockquote>
<p>Two suffixes :z or :Z can be added to the volume mount. These suffixes tell Docker to relabel file objects on the shared volumes. The &lsquo;z&rsquo; option tells Docker that the volume content will be shared between containers. Docker will label the content with a shared content label. Shared volumes labels allow all containers to read/write content. The &lsquo;Z&rsquo; option tells Docker to label the content with a private unshared label.</p>
</blockquote>
<p>Therefore, I added the <code>:z</code> flag to all the volume mounts in the <code>docker-compose.yml</code> file. I submitted a fix upstream for this in <a href="https://github.com/metabrainz/listenbrainz-server/pull/257">listenbrainz-server#257</a>!</p>

<h4 id="correct-the-startup-port">Correct the startup port&nbsp;<a class="hanchor" href="#correct-the-startup-port" aria-label="Anchor link for: Correct the startup port">🔗</a></h4>
<p>In the README, it says the server will start on port 8000, but the <code>docker-compose.yml</code> file actually started the server on port 80. I included a fix for this in <a href="https://github.com/metabrainz/listenbrainz-server/pull/257">my pull request</a> as well.</p>

<h2 id="git-push">git push!&nbsp;<a class="hanchor" href="#git-push" aria-label="Anchor link for: git push!">🔗</a></h2>
<p>This post makes a debugging experience that actually took hours look like it happened in minutes. But after getting over this hurdle, it was awesome to finally see ListenBrainz running locally on my workstation. It was an even better feeling when I could take my improvements and send them back in a pull request to ListenBrainz. Hopefully this will make it easier for others to create their own development environments and start hacking!</p>]]></description></item><item><title>On the data refrain: Contributing to ListenBrainz</title><link>https://jwheel.org/blog/2017/10/contributing-listenbrainz/</link><pubDate>Mon, 02 Oct 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/10/contributing-listenbrainz/</guid><enclosure url="https://jwheel.org/img/listenbrainz-rit-independent-study.png" length="423053" type="image/png"/><description><![CDATA[<img src="https://jwheel.org/img/listenbrainz-rit-independent-study.png" alt="On the data refrain: Contributing to ListenBrainz"><p>A unique opportunity of attending an open source-friendly university is when course credits and working on open source projects collide. This semester, I&rsquo;m participating in an independent study at the <a href="https://www.rit.edu/">Rochester Institute of Technology</a> where I will contribute to the <a href="https://listenbrainz.org/">ListenBrainz</a> project.</p>
<p>Many students take part in independent studies where they work on their own projects. However, in the spirit of open source collaboration, I wanted to contribute to a project that already existed. That way, my work would be helpful to a real-world project where it would have a value even after the end of the semester. Additionally, I wanted  a project to help me sharpen my Python skill. And ListenBrainz was a fun, exciting candidate for this.</p>

<h2 id="objectives">Objectives&nbsp;<a class="hanchor" href="#objectives" aria-label="Anchor link for: Objectives">🔗</a></h2>
<p>The independent study proposal included three primary goals I hoped to meet during this independent study:</p>
<ol>
<li><strong>Add basic reports</strong> to ListenBrainz from listening history data for top songs / artists / albums of week, month, year, etc.</li>
<li><strong>Create documentation</strong> to improve ease to use and develop for the ListenBrainz project</li>
<li>Offer as a <strong>use case for the data visualization course</strong> in fall 2018 with instructions on how to use the data</li>
</ol>

<h4 id="add-basic-reports">Add basic reports&nbsp;<a class="hanchor" href="#add-basic-reports" aria-label="Anchor link for: Add basic reports">🔗</a></h4>
<p>Methods for generating basic reports, charts, and statistics about listening history are important. They help make ListenBrainz a more interesting platform for a casual music listener, not just a developer. Therefore, my goal was to add a way to add basic reports or specific metrics for presenting to the user in the front-end.</p>
<p>As a stretch goal, if I have extra time, I would work on generating content (e.g. charts / graphs / statistics) to show the user in the front-end.</p>

<h4 id="documentation">Documentation&nbsp;<a class="hanchor" href="#documentation" aria-label="Anchor link for: Documentation">🔗</a></h4>
<p>Documentation is something near and dear to me. I enjoy making it easier for other people to use a project or get started with contributing. Therefore, I will contribute some time as a technical writer and help improve documentation on the project. This includes improving existing documentation, like how to set up a development environment, or creating new content.</p>
<p>As an end deliverable, it would be nice to have someone who has never worked with the project run get a development environment set up, import some data, and see something presented to them. Good documentation is key to making something like this possible.</p>

<h4 id="use-case-for-data-course">Use case for data course&nbsp;<a class="hanchor" href="#use-case-for-data-course" aria-label="Anchor link for: Use case for data course">🔗</a></h4>
<p>RIT will offer a data visualization course in future semesters and it would be helpful if ListenBrainz could be a use case or even tool for the course. Then, students could work with ListenBrainz for creating different visualizations for the music data. And maybe contribute some of their visualizations back upstream! For this to happen, we need comprehensive documentation and complete features.</p>
<p>A focus includes making ListenBrainz a good fit for this course.</p>

<h2 id="learn-more-about-listenbrainz">Learn more about ListenBrainz&nbsp;<a class="hanchor" href="#learn-more-about-listenbrainz" aria-label="Anchor link for: Learn more about ListenBrainz">🔗</a></h2>
<p>For the next few months, until December, I will blog regularly about contributing to the ListenBrainz project and my progress. Additionally, more posts about MusicBrainz, other MetaBrainz projects, or music data may follow. I&rsquo;m hoping to either create new or improve old documentation as well, so I plan to write often anyways!</p>
<p>For now, you can learn a bit more about ListenBrainz and other projects in the MetaBrainz family, like MusicBrainz.</p>
<ul>
<li><a href="https://listenbrainz.org/">ListenBrainz</a></li>
<li><strong>GitHub</strong>: <a href="https://github.com/metabrainz/listenbrainz-server">metabrainz/listenbrainz-server</a></li>
<li><a href="https://musicbrainz.org/doc/About">About MusicBrainz</a></li>
<li><a href="https://metabrainz.org/about">About MetaBrainz</a></li>
</ul>]]></description></item><item><title>Converting sounds into words: All of a Sudden I Miss Everyone</title><link>https://jwheel.org/blog/2016/10/converting-sounds-words-sudden-miss-everyone/</link><pubDate>Thu, 20 Oct 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/10/converting-sounds-words-sudden-miss-everyone/</guid><enclosure url="https://jwheel.org/blog/2016/10/All-of-a-Sudden-I-Miss-Everyone.jpg" length="830031" type="image/jpeg"/><description><![CDATA[<img src="https://jwheel.org/blog/2016/10/All-of-a-Sudden-I-Miss-Everyone.jpg" alt="Converting sounds into words: All of a Sudden I Miss Everyone"><p>The dancer gracefully glides across the stage, with a slow but determined gait radiant with purpose. The movement is not her own, but neither is it forced. The sound uncoils itself as a rope and instructs the dancer forward, synchronizing her movement with the delicate pressure of the pianist&rsquo;s fingers. There is no consciousness, no concept of time. The moment is forever captured in the combination of auditory and visual perception. Without a single spoken word, an emotion is tearing at the seams of the casual observer.</p>
<p>Converting the sounds of music into words is a difficult task. It is more difficult task when the sounds of the music lack lyrics. It is possible, but a difficult task even for the most skilled linguist. Yet the embedded meaning, value, and transmission of emotion present in the music speaks a thousand words in the human heart. What makes this so difficult to describe? I am still searching for an answer to this question, but <a href="http://explosionsinthesky.com/">Explosions in the Sky</a> makes it easier for me by providing <a href="https://en.wikipedia.org/wiki/All_of_a_Sudden_I_Miss_Everyone"><em>All of a Sudden I Miss Everyone</em></a>, their fourth album. Originally released in 2007, the Texas-based band shares an irreplaceable part of human psyche and emotional strength through their six-track escapade. More solemn than my <a href="/blog/2016/05/tribute-halo-3-odst-soundtrack/">previous musical tribute</a>, I take my own interpretation of this timeless album.</p>

<h2 id="visual-clues">Visual clues&nbsp;<a class="hanchor" href="#visual-clues" aria-label="Anchor link for: Visual clues">🔗</a></h2>
<p>Explosions in the Sky (further referred to as EITS) leaves the listener with the album artwork to shape the mood and direction of the album. The artwork features a man peering over a boat amidst what appears to be a flooded city. His lantern dimly lights a reflection in the water. Fallen electricity poles and flooded buildings scatter the horizon. A mix of other artwork is accompanied in the full album artwork with the vinyl edition. Surrounding the image of the man in the boat are various other images, circling around the center like memories. One is of a ghostly-colored woman playing a piano, another of two children watching television late at night. Another is a dog with a flashlight running towards a person, one final basketball match lit by the sunset, and a man celebrating alone with a cake.</p>
<p>
<figure>
  <img src="/blog/2016/10/All-of-a-Sudden-I-Miss-Everyone-sleeve-cover.jpg" alt="Additional artwork from &ldquo;All of a Sudden I Miss Everyone&rdquo; sleeve cover by Explosions in the Sky" loading="lazy">
  <figcaption>Additional artwork from \&#34;All of a Sudden I Miss Everyone\&#34; sleeve cover</figcaption>
</figure>
</p>
<p>These images seem irrelevant to each other, but all of them connect back to the main image in the center: the primary cover of <em>All of a Sudden I Miss Everyone</em>. Each of the six additional images accompanies one of the six tracks on the album. The man is searching for these lost memories in the sea of regret and desire. The tides have risen far beyond normal and now he is the only survivor. Even though he does not drown in the waves of &ldquo;have-nots&rdquo; and wistful wishing, he is lost. Like a mountaineer without a compass, the protagonist of this album is seeking to rid himself of the loneliness that he finds himself immersed in.</p>
<p>The adventurous story of escape and breaking free of the sea is the plot buried within this album.</p>

<h2 id="track-titles">Track titles&nbsp;<a class="hanchor" href="#track-titles" aria-label="Anchor link for: Track titles">🔗</a></h2>
<p>If the album title and artwork serves as the front cover of the book, the track titles serve as the table of contents for the listener. Each track of <em>All of a Sudden I Miss Everyone</em> represents an important milestone on the adventure to escape the sea of regret and tides of loneliness. Some tracks are defeated submission while others are bittersweet victories. Each track itself could be put into a powerful, hundred-page story. I have summarized my interpretation of each track below as briefly as possible. The purpose of this is to serve as pointers for interpretation, not definitive and irrefutable interpretations. That is a unique experience that you, the listener, must determine on your own.</p>
<ol>
<li><strong>The Birth and Death of the Day</strong>: Representative of the intangibility of time; the day begins and ends within a momentary flash. The time you wished to have spent doing things that matter to you is lost in the fading light of dusk. It rises again at dawn, only to start an endless cycle of hope followed by crushing disappointment.</li>
<li><strong>Welcome, Ghosts</strong>: The ghosts are the ghosts of memories past. This track deals with losing your present mind in the past. Memories of smiles, happy moments, albums of pictures… all of these things are the ghosts that haunt us in the present. In the times where the present is too much to bear, we welcome the ghosts of past to haunt us as a way to numb the present.</li>
<li><strong>It&rsquo;s Natural to Be Afraid</strong>: Longest track on the album. The track begins with a fearful self-monologue about the current condition of the self. Whether it&rsquo;s overcoming an addiction, leaving behind a painful memory, or winning the fight over your own internal chemical balance, the fear is overwhelming and daunting. As the song progresses, it gives way to a glimmer of hope… a way out of the vicious cycle that traps you with your own ghosts. When the hope becomes more clear and defined, it becomes the only thing that matters to you. You cling and grasp onto it, fighting and hoping this solution is the answer you are looking for. You have no way to be certain if this is the answer, but that only drives your fear forward. It is expected… natural. The music abruptly changes as you find it isn&rsquo;t what you expected. Your fear gives way to embarrassed defeat as you pick up the shards of your attempt to recover to a normal state. The defeat slowly gives way to neglect, and neglect gives way to habit. Despite the momentary glimmer of something better, you are no farther ahead or behind than from the start.</li>
<li><strong>What Do You Come Home To?</strong>: Reflective of the deepest state of loneliness and depression. This home is a place of solitude and prison. Trapped in a cycle of despair and immobility, the daily retreat and commute from daily obligations to the home is a voluntary prison sentence. Alone you sit each night, faced with the same thoughts and the same ghosts. In the end, you realize that the only escape out of this cycle is a complete and drastic change before it becomes irreversible.</li>
<li><strong>Catastrophe and the Cure</strong>: The time for change is now. The critical point of the album surges in a powerful burst of energy and desperation in this eight minute ballad. Life was not meant to feel like a daily disaster, you were not meant to feel powerless of the actions in your own life! The ghosts must be shaken away. Value isn&rsquo;t given, it is taken. It is taken by you, the interpreter. There is value you must take in your own existence. The cure to the catastrophe of you is a change of mind and a change of heart. To find the worth in life, you have to fight for it and make it worthy. <em>You are in charge of your own cure</em>. Don&rsquo;t remain passive… be active. Don&rsquo;t wait for a solution… be a part of it.</li>
<li><strong>So Long, Lonesome</strong>: Like a dream, you emerge. Ghosts are no longer of the past. The people and smiles are here now. They always were. The tides of your tears, waves of wallowing, sea of sadness… all drain away. Back into the ocean, back into the sea. You emerge. You hold a great power of knowledge: of your cure. You are entrusted to share it and make this message grow in volume and in power. So long, to your lonesome self… you were never alone to begin with.</li>
</ol>

<h2 id="the-moral">The moral&nbsp;<a class="hanchor" href="#the-moral" aria-label="Anchor link for: The moral">🔗</a></h2>
<p>The moral to this album is broad and widely open to personal perspective. But the moral that stands out to me seems clear.</p>
<p>It&rsquo;s easy to become a victim of a system that feeds off of desire and material value. Desire leads to suffering from a longing to always have more. In the daylight hours, you always wish to do more, to have more. Everywhere around you, material wealth defines the value in the world. It shapes perspectives, it gives or lessens power. Trying to be above this is staying afloat amidst a flood. It&rsquo;s unavoidable because it&rsquo;s everywhere.</p>
<p>You have to build a boat to get a clear picture of everything. It&rsquo;s hard to see around you when you&rsquo;re submerged in the water. From this new perspective, you are able to see what matters most to you. Desire should be staved off. You have to give value to the things, to the people, that matter to you. Take all of this to heart and don&rsquo;t let the indecisive nature of desire control your heart and your mind.</p>
<p>It may feel like your problems cannot be traversed. They are too much for a single person to bear. But you are never alone. When you least expect it, there is someone who cares more than you ever realized. There are resources available you had not seen before. There is always a way to getting better. Even in the darkest moments, there is a path to light.</p>

<h2 id="get-all-of-a-sudden-i-miss-everyone">Get &ldquo;<em>All of a Sudden I Miss Everyone</em>&rdquo;&nbsp;<a class="hanchor" href="#get-all-of-a-sudden-i-miss-everyone" aria-label="Anchor link for: Get &ldquo;All of a Sudden I Miss Everyone&rdquo;">🔗</a></h2>
<p>The album is available in countless places. I hope my analysis has compelled you to at least listen to the beautiful sounds within the album, or possibly even have convinced you to support the work of <a href="http://explosionsinthesky.com/">Explosions in the Sky</a>. They deserve every dime.</p>
<p>You can find this album at any of the following sources… happy listening.</p>
<ul>
<li><a href="https://explosionsinthesky.merchline.com/collections/music/products/all-of-a-sudden-i-miss-everyone">Official store</a></li>
<li><a href="https://play.spotify.com/album/34RLNUE77WOvP9na4nf7Ua">Spotify</a></li>
<li><a href="https://www.amazon.com/ALL-SUDDEN-MISS-EVERYON-Vinyl/dp/B000MCH54U/">Amazon</a></li>
<li><a href="https://itunes.apple.com/us/album/all-of-a-sudden-i-miss-everyone/id319136556">iTunes</a> (pls no)</li>
</ul>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube-nocookie.com/embed/Gq681aDM53U?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>]]></description></item><item><title>Thirteen Year Legacy: Last.fm Downfall?</title><link>https://jwheel.org/blog/2015/12/thirteen-year-legacy-last-fm-downfall/</link><pubDate>Fri, 11 Dec 2015 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2015/12/thirteen-year-legacy-last-fm-downfall/</guid><description><![CDATA[<p>
<figure>
  <img src="/blog/2015/11/Lastfm-Logo.png" alt="Last.fm logo" loading="lazy">
  <figcaption>The Last.fm logo. Source: Xfdr (<a href="http://www.xfdrmag.net/ive-had-the-last-of-this-why-the-new-last-fm-layout-sucks/" class="bare">http://www.xfdrmag.net/ive-had-the-last-of-this-why-the-new-last-fm-layout-sucks/</a>)</figcaption>
</figure>
</p>
<p><a href="http://www.last.fm/">Last.fm</a> is a web service for users to track and share their music tastes with friends in an easy, simple way. A single play of a song is known as a &ldquo;Scrobble&rdquo;. Listening to music and recording the listen with Last.fm is known as &ldquo;Scrobbling&rdquo;. This is a service that has existed since 2002, originally under the name of Audioscrobbler. In 2015, Last.fm rolled out their <a href="http://www.digitalspy.com/tech/news/a664005/lastfm-unveils-brand-new-site-design-and-most-users-are-really-upset-about-it/">new website beta</a>, originally optional, but later forced upon all users.</p>
<p>Last.fm&rsquo;s site redesign is criticized widely by users, but nobody seems to be listening on the other side in CBS Interactive London offices. What went wrong with the redesign and what can be learned going forward?</p>

<h2 id="lastfm-wasnt-listening">Last.fm wasn&rsquo;t listening&nbsp;<a class="hanchor" href="#lastfm-wasnt-listening" aria-label="Anchor link for: Last.fm wasn&rsquo;t listening">🔗</a></h2>
<p>Perhaps the greatest, singular point of failure with the new Last.fm redesign (and the many months leading up to the redesign) was lack of communication and transparency with users. As someone who signed up in 2009 but only started really using the service in 2013, I never saw major interaction between employees of CBS Interactive and users of Last.fm. Usually, it has always been community volunteers speaking the voice of Last.fm and appearing as the public face of the site. The employees may have commented from time to time, but they were otherwise invisible to most users.</p>
<p>The new site redesign was the epitome of this continued state of &ldquo;non-listening&rdquo;. Without warning, the optional beta that had been available for months was forcibly rolled out, forever replacing the old layout that had existed for many years. While the new appearance certainly could be defined as &ldquo;modern&rdquo; and mobile-friendly, it was missing many of the key features users had come to know, like groups and friends. Navigating was difficult and at times buggy. The redesign felt like it was still in beta testing, but now forced as the default. There is an <a href="https://www.change.org/p/cbs-interactive-bring-old-last-fm-back">online petition</a> that has attracted over 11,000 signers to go back to the original user interface.</p>
<p>Even with 11,000 voices of protest, word from CBS Interactive is minimal. Not many people seem to know what&rsquo;s going on, if anything. This is never a good sign for any website or service. Are the doors closing soon for this thirteen year old service? Is a buyout in the cards? Nobody knows. Nobody will likely ever know until the day of an announcement, because nothing is transparent or open about Last.fm or its management.</p>

<h2 id="lastfms-small-staff">Last.fm&rsquo;s small staff&nbsp;<a class="hanchor" href="#lastfms-small-staff" aria-label="Anchor link for: Last.fm&rsquo;s small staff">🔗</a></h2>
<p>Another issue with this service (and perhaps an issue for a longer time) is that the Last.fm staff is a very small team. Even now, they&rsquo;re hiring for new web developers and Java developers - if you live in the UK, you could even <a href="http://www.last.fm/about/jobs">work for CBS Interactive today</a> (although I don&rsquo;t know if this is a job with a good outlook).</p>
<p>So what would the solution be? If the development team behind Last.fm is small, then there are better ways to create a more productive environment. Perhaps the software development model employed by the company needs reconsideration. Maybe Last.fm needs to make a larger <a href="https://github.com/lastfm">foray into open source</a>. In either case, from the outside, there it looks like a major disconnect between corporate management and the Last.fm team. Because of how opaque Last.fm is managed, it&rsquo;s impossible to know what happens behind closed doors, but something isn&rsquo;t working with their team size - that much is clear.</p>

<h2 id="now-what">Now what?&nbsp;<a class="hanchor" href="#now-what" aria-label="Anchor link for: Now what?">🔗</a></h2>
<p>Because of these decisions made over the past few months, the future of Last.fm is unclear. Many dedicated users are just Scrobbling and using <a href="http://nicholast.fm">other services</a> to use their data in a meaningful way, according to <a href="https://www.reddit.com/r/lastfm/comments/3u2ic3/lastfm_any_hope_left/cxbegwl">Reddit</a>.</p>

<h4 id="librefm">Libre.fm&nbsp;<a class="hanchor" href="#librefm" aria-label="Anchor link for: Libre.fm">🔗</a></h4>
<p>As for myself, I&rsquo;m preparing for a move to a new service. The future for Last.fm is bleak. I want to stay on the boat for as long as possible, but I don&rsquo;t know if this is a sustainable idea for any longer, and I have invested too much time, music, and data into Last.fm to willingly part with it. I was recently made aware to an awesome, open source <a href="https://github.com/kabniel/last2libre">Python toolset</a> that lets users back up any user&rsquo;s Scrobbles to a text file and export it to a service such as <a href="https://libre.fm/">Libre.fm</a>. Libre.fm isn&rsquo;t the most aesthetically pleasing or the most powerful site, but it&rsquo;s stable and open. Anyone who wants to hack on a new feature has access to the source code to do whatever they&rsquo;d like. A platform such as this is much more collaborative and allows for a more positive future than what Last.fm has now.</p>
<p>If you&rsquo;re a developer, you can have a hand in building the future by contributing to <a href="https://git.gnu.io/gnu/gnu-fm">GNU FM</a>, the platform powering Libre.fm. If there&rsquo;s a feature you want, you can add a request on their <a href="https://git.gnu.io/gnu/gnu-fm/issues">issue tracker</a>. Or if you&rsquo;re a system administrator, you can even <a href="https://git.gnu.io/gnu/gnu-fm/blob/master/gnufm_install.txt">install GNU FM yourself</a> and run your own &ldquo;private Last.fm&rdquo; site.</p>
<p>Hopefully there is something to be learned about everything that went wrong with Last.fm and we can look forward to a more open future with the availability of options such as Libre.fm.</p>]]></description></item><item><title>Echoes of Mine (M83)</title><link>https://jwheel.org/lyrics/m83/echoes-of-mine/</link><pubDate>Tue, 18 Oct 2011 00:00:00 +0000</pubDate><guid>https://jwheel.org/lyrics/m83/echoes-of-mine/</guid><description><![CDATA[<div class="sect1">
<h2 id="francais">Français</h2>
<div class="sectionbody">
<div class="quoteblock">
<blockquote>
<div class="paragraph">
<p>Il est tard.
Je cherche à rentrer chez moi, et je prends un chemin que je ne connais pas, un petit sentier qui longe les usines et la ville en coupant par la forêt.
Je commence à peine à entrevoir la nature, lorsque tout d’un coup, la nuit tombe.
Je suis plongée dans le noir et le silence.
Pourtant, je n’ai pas peur. Je m’endors, quelques minutes tout au plus, et quand je me réveille, le soleil est là, et la forêt brille d’une lumière éclatante.</p>
</div>
<div class="paragraph">
<p>Je reconnais cette forêt.
Ce n’est pas une forêt ordinaire.
C’est une forêt de souvenirs.
Mes souvenirs.
Cette rivière blanche et sonore, mon adolescence.
Ces grands arbres, les hommes que j’ai aimés.
Cet oiseau qui vole, au loin, mon père disparu.
Mes souvenirs ne sont plus des souvenirs, ils sont là, vivants, près de moi, ils dansent et m’enlacent, chantent et me sourient.</p>
</div>
<div class="paragraph">
<p>Je regarde mes mains, je caresse mon visage, j’ai 20 ans, et j’aime comme je n’ai jamais aimé.</p>
</div>
</blockquote>
</div>
</div>
</div>
<div class="sect1">
<h2 id="english-human">English (<em>Human-translated</em>)</h2>
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://web.archive.org/web/20171001211423/http://lyricstranslate.com/en/echoes-mine-echoes-mine.html">See original translations</a>.</p>
</div>
<div class="quoteblock">
<blockquote>
<div class="paragraph">
<p>It’s late.
I’m searching for my other home, and I’m taking a path I don’t know: a little path that runs alongside the factories and the city intersecting through the forest.
I’m just starting to get a glimpse of nature, when all of a sudden, night falls.
I’m immersed in a world of silence, though I’m not scared.
I fall asleep a few minutes, at most; and when I wake up, the sun is there and the forest shines a radiant light.</p>
</div>
<div class="paragraph">
<p>I know this forest.
It’s not an ordinary forest, it’s a forest of memories.
My memories.
This white and resonant river, my adolescence.
These big trees, the men I’ve loved.
These birds that fly, in the distance, my lost father.
My memories are no longer memories.
They’re here, alive, close to me, they dance and embrace me, sing and smile at me.</p>
</div>
<div class="paragraph">
<p>I look at my hands. I caress my face, and I’m twenty years old. And I love like I’ve never loved before.</p>
</div>
</blockquote>
</div>
</div>
</div>
<div class="sect1">
<h2 id="english-google">English (<em>Google Translate</em>)</h2>
<div class="sectionbody">
<div class="quoteblock">
<blockquote>
<div class="paragraph">
<p>It is late.
I try to go home, and I take a road I do not know, a small path along the factories and the city cutting through the forest.
I just beginning to understand the nature, when all of a sudden, night falls.
I plunged into darkness and silence.
Yet I am not afraid.
I fell asleep a few minutes at most, and when I woke up, the sun is there, and the forest shines a bright light.</p>
</div>
<div class="paragraph">
<p>I recognize that forest.
This is no ordinary forest.
It is a forest of memories.
My memories.
This white noise and river, my adolescence.
These tall trees, the men I loved.
This bird flying in the distance, my father disappeared.
My memories are not memories, they are there, living near me, hug me and they dance, sing and smile at me.</p>
</div>
<div class="paragraph">
<p>I look at my hands, I stroked my face, I’m twenty, and I love like I never loved.</p>
</div>
</blockquote>
</div>
<div class="paragraph">
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube-nocookie.com/embed/Aw73wifRdXo?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

</div>
</div>
</div>
]]></description></item></channel></rss>