• Activity
  • Votes
  • Comments
  • New
  • All activity
  • Showing only topics with the tag "recurring". Back to normal view
    1. What have you been listening to this week?

      Hi, I'm covering this week at Whom's request again. What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something! Feel free...

      Hi, I'm covering this week at Whom's request again.

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something!

      Feel free to give recs or discuss anything about each others' listening habits.

      You can make a chart if you use last.fm:

      http://www.tapmusic.net/lastfm/

      Remember that linking directly to your image will update with your future listening, make sure to reupload to somewhere like imgur if you'd like it to remain what you have at the time of posting.

      13 votes
    2. What are you reading these days? #9

      Edit: #9, not #8; sorry for messing the title up. Would be glad if someone can fix it for me, I can't edit it apparently. Thanks a lot, Deimos, for fixing it up! What are you reading currently?...

      Edit: #9, not #8; sorry for messing the title up. Would be glad if someone can fix it for me, I can't edit it apparently. Thanks a lot, Deimos, for fixing it up!

      What are you reading currently? Fiction or non-fiction, any genre, any language! Tell us what you're reading, and talk a bit about it.

      Past weeks: Week #1 · Week #2 · Week #3 · Week #4 · Week #5 · Week #6 · Week #7 · Week #8

      12 votes
    3. What have you been watching/reading this week? (Anime/Manga)

      Feel free to talk about something you saw that was cool, something that was bad, ask for recommendations, or anything else you can think of. If you want to, feel free to find the thing you're...

      Feel free to talk about something you saw that was cool, something that was bad, ask for recommendations, or anything else you can think of.

      If you want to, feel free to find the thing you're talking about and link to its Anilist, MAL, or any other anime/manga database you use!

      10 votes
    4. ~music Listening Club 24 - Intro to Shoegaze

      So, it's time to switch things up a little as discussed in the last thread. We're going to have multiple records a week from now on and follow themes rather than the alternating weeks we've had...

      So, it's time to switch things up a little as discussed in the last thread. We're going to have multiple records a week from now on and follow themes rather than the alternating weeks we've had until now.

      The first week of our new format is the beginning of a genre introduction series that I'm running: Intro to Shoegaze! We will likely have several different themes switching off each week, and I'll kick off a few over the next couple weeks. These aren't intended to be tailored for genreheads (at least not right now), but rather a way to have a conversation about the all-time greats of specific genres, scenes, labels, etc. while also having something fresh that those already into that kind of music might not already be familiar with.

      Shoegaze

      Shoegazing (or shoegaze, initially known as "dream pop") is a subgenre of indie and alternative rock that emerged in the United Kingdom in the late 1980s. It is characterised by its ethereal-sounding mixture of obscured vocals, guitar distortion and effects, feedback, and overwhelming volume. The term "shoegazing" was coined by the British music press to ridicule the stage presence of a wave of neo-psychedelic groups who stood still during live performances in a detached, introspective, non-confrontational state with their heads down. This was because the heavy use of effects pedals meant the performers were often looking down at the readouts on their effects pedals during concerts.

      Most shoegazing bands drew from the glide guitar template set by My Bloody Valentine on their early EPs and 1988 debut Isn't Anything. A loose label given to the shoegazing scene and other affiliated bands in London in the early 1990s was The Scene That Celebrates Itself. In the early 1990s, shoegazing groups were pushed aside by the American grunge movement and early Britpop acts such as Suede, forcing the relatively unknown bands to break up or reinvent their style altogether. In the 2000s, there was renewed interest in the genre among "nu gaze" bands.

      Essential Album: My Bloody Valentine - Loveless - Listen to it!

      The shoegaze genre has a pretty much univerally agreed-upon "Big 3" records, the most prominent and influential of which being My Bloody Valentine's Loveless, which is undoubtedly the #1 starting place if you're looking to check out shoegaze for yourself. It's the darling of the genre and of internet music nerdom in general for a reason.

      Loveless is the second studio album by English-Irish rock band My Bloody Valentine. It was released on 4 November 1991 in the United Kingdom by Creation Records and in the United States by Sire Records. The album was recorded over a two-year period between 1989 and 1991, with vocalist and guitarist Kevin Shields leading the recording sessions and experimenting with guitar tremolo techniques and tuning systems, samplers, and meticulous production methods. The band cycled through nineteen different studios and many engineers during the album's prolonged recording, with its production cost rumoured to have reached £250,000.

      Preceded by the EPs Glider (1990) and Tremolo (1991), Loveless peaked at number 24 on the UK Albums Chart and was widely praised by critics for its sonic innovations and Shields's "virtual reinvention of the guitar". However, after its release, Creation Records owner Alan McGee removed the band from the label, as he found Shields too difficult to work with, a factor alleged to have contributed to the label's eventual bankruptcy. My Bloody Valentine struggled to record a follow-up to the album and broke up in 1997, and Loveless was their last full-length release until MBV in 2013.

      Since its release, Loveless has been widely cited by critics as one the greatest albums of the 1990s, a landmark work of the shoegazing subgenre, and as a significant influence on various subsequent artists. In 2012, it was reissued as a two-CD set, including remastered tracks and a previously unreleased half-inch analogue tape version, and peaked on several international charts. In 2013, Loveless was certified silver by the British Phonographic Industry.

      Minor Album: Vyva Melinkolya - Vyva Melinkolya - Listen to it!

      This one is a shoegaze record which lies a little more on the dream pop / ethereal side of the genre than Loveless, and is my personal album of the year for 2018 so far by a longshot. I would suggest this for anyone who wants to to live in that wonderful dreamy yet noisy middle ground. The artist is also nonbinary, and while I can't speak for everyone, I find that this speaks to gender dysphoria in a way that only the best shoegaze can.

      Here's the place to discuss your thoughts on the records, your history with them or the artists, and basically talk about whatever you want to that goes along with Loveless and Vyva Melinkolya! Remember that this is intended to be a slow moving thing, feel free to take your time and comment at any point in the week!

      Again, if you'd like to stream or buy the albums, they can be found on most platforms here (Loveless) and here (Vyva Melinkolya).

      12 votes
    5. This Week's Releases 14/12 - Charlotte Gainsburg, Kodak Black, Vic Mensa and more.

      Releases of the week 8/12/2018 - 14/12/2018 Featured Release Charlotte Gainsburg - Take 2 - EP (Art Pop, Synth Pop) "Charlotte Gainsbourg has announced a new EP called Take 2. The five-track...

      Releases of the week 8/12/2018 - 14/12/2018


      Featured Release

      Charlotte Gainsburg - Take 2 - EP (Art Pop, Synth Pop)

      "Charlotte Gainsbourg has announced a new EP called Take 2. The five-track project, which features her cover of Kanye West’s “Runaway,” is out December 14 via Because Music. Today, she’s shared the EP’s first song “Such a Remarkable Day.” Check it out below with a video of Gainsbourg’s live performances.
      Take 2 is produced by Frank Ocean collaborator SebastiAn and mixed by Tom Elmhirst. See the artwork below. Last year, Gainsbourg released Rest, which featured on Pitchfork’s “50 Best Albums of 2017.”

      Source: Pitchfork

      Listen to single

      Stream

      Other Notable Relases

      Kodak Black - Dying To Live (Hip Hop, Trap)

      Listen to single
      Stream

      Vic Mensa - Hooligans EP (Conscious Hip Hop)

      Listen to single
      Stream

      $ilkMoney - *I Hate My Life and I Really Wish People Would Stop Telling Me Not To * (Hip Hop, Trap)

      Listen
      Stream

      Feel free to discuss or feature any and all other releases in the comments below

      Discussion Points

      Have you listened to any of these releases?
      What are your thoughts?
      What are you looking forward to listen to?
      What have you enjoyed from these artists in the past?

      // All feedback on this format welcome below.

      4 votes
    6. What have you been listening to this week?

      Whom couldn't make it today so here I am with the weekly post. What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something!...

      Whom couldn't make it today so here I am with the weekly post.

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something!

      Feel free to give recs or discuss anything about each others' listening habits.

      You can make a chart if you use last.fm:

      http://www.tapmusic.net/lastfm/

      Remember that linking directly to your image will update with your future listening, make sure to reupload to somewhere like imgur if you'd like it to remain what you have at the time of posting.

      10 votes
    7. ~music Listening Club 25 - 1992

      On the second week of the new format, we're going to try out themes based on periods of time, this time being the year of 1992. Themes, both years like this one or whatever else you think would...

      On the second week of the new format, we're going to try out themes based on periods of time, this time being the year of 1992. Themes, both years like this one or whatever else you think would work well for the listening club, can be suggested in this thread or if you join the unofficial Tildes Discord server in the #listening-club channel.

      Essential Album: Aphex Twin - Selected Ambient Works 85-92 - Listen!

      While a lot of excellent and long-lasting work was released in 1992, Selected Ambient Works 85-92 stands out as one of the most influential and has stood the test of time as well as any of them. As much as everyone hates the label of "Intelligent Dance Music" (IDM), there's no doubt that SAW is one of the cornerstone records of that genre that has an impact in the world of music at large that can't be ignored.

      Selected Ambient Works 85–92 is the debut studio album by the English electronic musician Richard D. James under the pseudonym of Aphex Twin, released as a very limited import in late November 1992 by Apollo Records, an imprint of the more prominent label R&S Records, and later widely in February 1993. The 1992 LP was James' third release overall, and collected tracks dating back as early as 1985. An analogue remaster was released in 2006, and a digital remaster in 2008.

      Selected Ambient Works 85–92 received widespread acclaim and has been characterised as a landmark of electronica, ambient music, and IDM. It was followed by Selected Ambient Works Volume II (1994). On the week ending 27 September 2014, the album entered at #30 in the UK Dance Albums Chart after the release of his 2014 album Syro.

      Widely regarded by critics as one of the pioneering works in early IDM and modern electronic music, retrospective reviews mention its influence on electronic artists. Warp Records refers to it as "the birthplace and the benchmark of modern electronic music" and has stated that "every home should have a copy." In 2003, the album was placed #92 in "NME's 100 Best Albums" poll. Nine years later, it was named the greatest album of the 1990s by FACT Magazine. The album was also featured in the book 1001 Albums You Must Hear Before You Die.

      Minor Album: Divine Styler - Spiral Walls Containing Autumns of Light - Listen!

      This is a strange one, possibly the strangest hip hop album released as of 1992. It's so disjointed and all over the place that instead of describing it myself, I'll steal the descriptors from RateYourMusic: "Islamic, psychedelic, anxious, cryptic, conscious, abstract, introspective, surreal, eclectic, male vocals, avant-garde, noisy, spiritual."

      Spiral Walls Containing Autumns of Light is the second album by hip hop artist Divine Styler, released in 1992 on Giant Records. This album marked a significant change in Divine Styler's musical direction, incorporating a much broader range of styles and influences than 1989's Word Power. Despite the album's unusual style, it was actually released by a major label but, perhaps inevitably, failed to sell as well as record executives expected. Although the album was largely regarded as a commercial failure, it has since developed a large cult following. Styler was signed to Giant because of Ice-T’s relationship with Warner Bros. Records.

      The album is notoriously experimental—Allmusic referred to the album as being like '"The Residents meets Funkadelic"—and takes influence from a wide variety of music genres such as hip hop, rock, electronic, funk and even elements of spoken word and noise.

      The majority of the album was produced and arranged by Divine Styler himself, which included him performing and processing all of the vocals, playing the guitar, drums (and drum programming), and keyboards, among other instruments. Due to the artist's dominance over the album's direction, it is generally regarded as a very introspective and personal album.

      Here's the place to discuss your thoughts on the records, your history with them, the artists, or music in 1992 in general and basically talk about whatever you want to that goes along with Selected Ambient Works 85-92 and Spiral Walls Containing Autumns of Light! Remember that this is intended to be a slow moving thing, feel free to take your time and comment at any point in the week!

      Again, if you'd like to stream or buy the albums, they can be found on most platforms here (Selected Ambient Works 85-92) and here (Spiral Walls Containing Autumns of Light).

      4 votes
    8. What have you been watching/reading this week? (Anime/Manga)

      Feel free to talk about something you saw that was cool, something that was bad, ask for recommendations, or anything else you can think of. If you want to, feel free to find the thing you're...

      Feel free to talk about something you saw that was cool, something that was bad, ask for recommendations, or anything else you can think of.

      If you want to, feel free to find the thing you're talking about and link to its Anilist, MAL, or any other anime/manga database you use!

      6 votes
    9. What are you reading these days? #8

      What are you reading currently? Fiction or non-fiction, any genre, any language! Tell us what you're reading, and talk a bit about it. Past weeks: Week #1 · Week #2 · Week #3 · Week #4 · Week #5 ·...

      What are you reading currently? Fiction or non-fiction, any genre, any language! Tell us what you're reading, and talk a bit about it.

      Past weeks: Week #1 · Week #2 · Week #3 · Week #4 · Week #5 · Week #6 · Week #7

      17 votes
    10. What have you been listening to this week?

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something! Feel free to give recs or discuss anything about each others'...

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something!

      Feel free to give recs or discuss anything about each others' listening habits.

      You can make a chart if you use last.fm:

      http://www.tapmusic.net/lastfm/

      Remember that linking directly to your image will update with your future listening, make sure to reupload to somewhere like imgur if you'd like it to remain what you have at the time of posting.

      12 votes
    11. What have you been watching/reading this week? (Anime/Manga)

      Feel free to talk about something you saw that was cool, something that was bad, ask for recommendations, or anything else you can think of. If you want to, feel free to find the thing you're...

      Feel free to talk about something you saw that was cool, something that was bad, ask for recommendations, or anything else you can think of.

      If you want to, feel free to find the thing you're talking about and link to its Anilist, MAL, or any other anime/manga database you use!

      8 votes
    12. This Week's Releases 30/11 - Earl Sweatshirt, The 1975, J.I.D., Jeff Tweedy

      Releases of the week 24/11/2018 - 30/11/2018 Featured Release Earl Sweatshirt - Some Rap Songs (Hip Hop, Abstract) It’s always been Earl versus the world. Fame found him at the age of 16, making...

      Releases of the week 24/11/2018 - 30/11/2018


      Featured Release

      Earl Sweatshirt - Some Rap Songs (Hip Hop, Abstract)

      It’s always been Earl versus the world. Fame found him at the age of 16, making him an internet sensation, then a meme, then an enigma, and finally, an icon. For an introverted kid who knew he could rap but was reluctant to accept the exposure and invasions of privacy that came with being a bona fide pop culture phenomenon, it’s been an uncomfortable evolution. Voracious fans threatened to consume not just his music but his personal life too. That same entitlement caused the “FREE EARL” campaign to mutate from eager appreciation to scary obsession and stoked fans’ demand for music during the three years since his last album—even as he was mourning his father’s death earlier this year. Rather than bask in the attention, he recoiled from it, setting himself apart from peers who maintain relevance through carefully strategized ubiquity. As he receded from the spotlight, his mystique grew—as did fans’ desire to hear him to do what he does best.

      Source: Pitchfork

      Listen to single

      Stream Links

      Other Notable Relases

      The 1975 - A Brief Inquiry Into Online Relationships (Pop, Synthpop)

      Listen to single

      J.I.D. - DiCaprio 2 (Hip Hop, Trap)

      Listen to single

      Jeff Tweedy - Warm (Indie, Alt-Country)

      Listen to single

      Meek Mill - CHAMPIONSHIPS (Hip Hop, Trap)

      Listen to single

      Feel free to discuss or feature any and all other releases in the comments below

      Discussion Points

      Have you listened to any of these releases?
      What are your thoughts?
      What are you looking forward to listen to?
      What have you enjoyed from these artists in the past?

      // All feedback on this format welcome below.

      6 votes
    13. What have you been watching/reading this week? (Anime/Manga)

      Feel free to talk about something you saw that was cool, something that was bad, ask for recommendations, or anything else you can think of. If you want to, feel free to find the thing you're...

      Feel free to talk about something you saw that was cool, something that was bad, ask for recommendations, or anything else you can think of.

      If you want to, feel free to find the thing you're talking about and link to its Anilist, MAL, or any other anime/manga database you use!

      8 votes
    14. What have you been listening to this week?

      Oops, just noticed I didn't post this week! My mistake. What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something! Feel...

      Oops, just noticed I didn't post this week! My mistake.

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something!

      Feel free to give recs or discuss anything about each others' listening habits.

      You can make a chart if you use last.fm:

      http://www.tapmusic.net/lastfm/

      Remember that linking directly to your image will update with your future listening, make sure to reupload to somewhere like imgur if you'd like it to remain what you have at the time of posting.

      11 votes
    15. ~music Weekly Music Tracks Thread 1 - Uplifting Earworms

      Some people have mentioned they'd like to have some sort of weekly track-sharing thread, so let's have a little fun and find some good music in the process. Everybody's got that playlist somewhere...

      Some people have mentioned they'd like to have some sort of weekly track-sharing thread, so let's have a little fun and find some good music in the process.

      Everybody's got that playlist somewhere with all of your favorite earworms - the songs you put on repeat to the point where you annoy the hell out of everyone else in the room because you love them so much. Let's collect some of those earworms here and see what we can come up with.

      In particular, let's go for the uplifting kind - feel good music. When the thread settles down I'll pull these all together in a nice playlist and share that here as a separate link submission.

      Any time period, any genre, any style, popular, obscure, or even your own music, it's all good - just as long as it's positive energy and you can't stop spinning it. If you're on mobile, don't worry about making it into links, others can linkify it for you (and eventually, Tildes can do that automatically to make this all easier in the future). Share as many as you've got. If you've already got a playlist like this for yourself, you can share that too. ;)

      Oh, and don't worry about nebulous 'standards' or if people will like it. If you like it, that's all that matters. Don't overthink it!

      Edit: Almost forgot, feel free to make suggestions for the topics of upcoming share threads in the next few weeks!

      13 votes
    16. An Alternative Approach to Configuration Management

      Preface Different projects have different use cases that can ultimately result in common solutions not suiting your particular needs. Today I'm going to diverging a bit from my more abstract,...

      Preface

      Different projects have different use cases that can ultimately result in common solutions not suiting your particular needs. Today I'm going to diverging a bit from my more abstract, generalized topics on code quality and instead focus on a specific project structure example that I encountered.


      Background

      For a while now, I've found myself being continually frustrated with the state of my project configuration management. I had a single configuration file that would contain all of the configuration options for the various tools I've been using--database, API credentials, etc.--and I kept running into the problem of wanting to test these tools locally while not inadvertently committing and pushing sensitive credentials upstream. For me, part of my security process is ensuring that sensitive access credentials never make it into the repository and to limit access to these credentials to only people who need to be able to access them.


      Monolithic Files Cause Monolithic Pain

      The first thing I realized was that having a single monolithic configuration file was just terrible practice. There are going to be common configuration options that I want to have in there with default values, such as local database configuration pointing to a database instance running on the same VM as the application. These should always be in the repo, otherwise any dev who spins up an instance of the VM will need to manually tread documentation and copy-paste the missing options into the configuration. This would be incredibly time-consuming, inefficient, and stupid.

      I also use different tools which have different configuration options associated with them. Having to dig through a single file containing configuration options for all of these tools to find the ones I need to modify is cumbersome at best. On top of that, having those common configuration options living in the same place that sensitive access credentials do is just asking for a rogue git commit -A to violate the aforementioned security protocol.


      Same Problem, Different Structure

      My first approach to resolving this problem was breaking the configuration out into separate files, one for each distinct tool. In each file, a "skeleton" config was generated, i.e. each option was given a default empty value. The main config would then only contain config options that are common and shared across the application. To avoid having the sensitive credentials leaked, I then created rules in the .gitignore to exclude these files.

      This is where I ran into problem #2. I learned that this just doesn't work. You can either have a file in your repo and have all changes to that file tracked, have the file in your repo and make a local-only change to prevent changes from being tracked, or leave the file out of the repo completely. In my use case, I wanted to be able to leave the file in the repo, treat it as ignored by everyone, and only commit changes to that file when there was a new configuration option I wanted added to it. Git doesn't support this use case whatsoever.

      This problem turned out to be really common, but the solution suggested is to have two separate versions of your configuration--one for dev, and one for production--and to have a flag to switch between the two. Given the breaking up of my configuration, I would then need twice as many files to do this, and given my security practices, this would violate the no-upstream rule for sensitive credentials. Worse still, if I had several different kinds of environments with different configuration--local dev, staging, beta, production--then for m such environments and n configuration files, I would need to maintain n*m separate files for configuration alone. Finally, I would need to remember to include a prefix or postfix to each file name any time I needed to retrieve values from a new config file, which is itself an error-prone requirement. Overall, there would be a substantial increase in technical debt. In other words, this approach would not only not help, it would make matters worse!


      Borrowing From Linux

      After a lot of thought, an idea occurred to me: within Linux systems, there's an /etc/skel/ directory that contains common files that are copied into a new user's home directory when that user is created, e.g. .bashrc and .profile. You can make changes to these files and have them propagate to new users, or you can modify your own personal copy and leave all other new users unaffected. This sounds exactly like the kind of behavior I want to emulate!

      Following their example, I took my $APPHOME/config/ directory and placed a skel/ subdirectory inside, which then contained all of the config files with the empty default values within. My .gitignore then looked something like this:

      $APPHOME/config/*
      !$APPHOME/config/main.php
      !$APPHOME/config/skel/
      !$APPHOME/config/skel/*
      # This last one might not be necessary, but I don't care enough to test it without.
      

      Finally, on deploying my local environment, I simply include a snippet in my script that enters the new skel/ directory and copies any files inside into config/, as long as it doesn't already exist:

      cd $APPHOME/config/skel/
      for filename in *; do
          if [ ! -f "$APPHOME/config/$filename" ]; then
              cp "$filename" "$APPHOME/config/$filename"
          fi
      done
      

      (Note: production environments have a slightly different deployment procedure, as local copies of these config files are saved within a shared directory for all releases to point to via symlink.)

      All of these changes ensure that only config/main.php and the files contained within config/skel/ are whitelisted, while all others are ignored, i.e. our local copies that get stored within config/ won't be inadvertently committed and pushed upstream!


      Final Thoughts

      Common solutions to problems are typically common for a good reason. They're tested, proven, and predictable. But sometimes you find yourself running into cases where the common, well-accepted solution to the problem doesn't work for you. Standards exist to solve a certain class of problems, and sometimes your problem is just different enough for it to matter and for those standards to not apply. Standards are created to address most cases, but edge cases will always exist. In other words, standards are guidelines, not concrete rules.

      Sometimes you need to stop thinking about the problem in terms of the standard approach to solving it, and instead break it down into its most abstract, basic form and look for parallels in other solved problems for inspiration. Odds are the problem you're trying to solve isn't as novel as you think it is, and that someone has probably already solved a similar problem before. Parallels, in my experience, are usually a pretty good indicator that you're on the right track.

      More importantly, there's a delicate line to tread between needing to use a different approach to solving an edge case problem you have, and needing to restructure your project to eliminate the edge case and allow the standard solution to work. Being able to decide which is more appropriate can have long-lasting repercussions on your ability to manage technical debt.

      16 votes
    17. What have you been listening to this week?

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something! Feel free to give recs or discuss anything about each others'...

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something!

      Feel free to give recs or discuss anything about each others' listening habits.

      You can make a chart if you use last.fm:

      http://www.tapmusic.net/lastfm/

      Remember that linking directly to your image will update with your future listening, make sure to reupload to somewhere like imgur if you'd like it to remain what you have at the time of posting.

      8 votes
    18. This Week's Releases 23/11 - Oneohtrix Point Never, Dipset, Rita Ora

      Releases of the week 17/11/2018 - 23/11/2018 Featured Release Oneohtrix Point Never - Love In The Time Of Lexapro (EP) (Prog Electronic, Ambient) Oneohtrix Point Never has dropped off his new EP,...

      Releases of the week 17/11/2018 - 23/11/2018


      Featured Release

      Oneohtrix Point Never - Love In The Time Of Lexapro (EP) (Prog Electronic, Ambient)

      Oneohtrix Point Never has dropped off his new EP, Love in the Time of Lexapro....
      The new effort follows producer Daniel Lopatin’s impressive 2018 album, Age Of, and The Station EP from July. It contains a pair of new songs and alternate, collaborative versions of two Age Of tracks.
      The two previously unreleased originals are titled, “Thank God I’m a Country Girl” and “Love in the Time of Lexapro”. The latter title track has been an audience favorite on Lopatin’s Age Of tour, but has never been properly recorded and released until now. Also included is a rework of Age Of’s “Last Known Image Of A Song” from veteran Japanese experimental musician and composer Ryuichi Sakamoto (The Revenant), as well as an updated take on Age Of highlight “Babylon” featuring additional contributions from (Sandy) Alex G.”

      Source: Consequence of Sound

      Stream Links

      Other Notable Relases

      Dipset - Diplomatic Ties (Trap, Hip Hop)

      Listen to single

      Rita Ora - Let You Love Me (Pop, Electropop)

      Listen to single

      Boosie Badass - Boosie Blues Cafe (Hip Hop, Blues)

      Listen

      Art Brut - Wham! Bang! Pow! Let’s Rock Out! (Indie, Rock)

      Listen to single

      Feel free to discuss or feature any and all other releases in the comments below

      Discussion Points

      Have you listened to any of these releases yet?
      What are your thoughts?
      What are you looking forward to listen to?
      What have you enjoyed from these artists in the past?

      // All feedback on this format welcome below.

      4 votes
    19. What are you reading these days? #7

      What are you reading currently? Fiction or non-fiction, any genre, any language! Tell us what you're reading, and talk a bit about it. Past weeks: Week #1 · Week #2 · Week #3 · Week #4 · Week #5 ·...

      What are you reading currently? Fiction or non-fiction, any genre, any language! Tell us what you're reading, and talk a bit about it.

      Past weeks: Week #1 · Week #2 · Week #3 · Week #4 · Week #5 · Week #6

      11 votes
    20. What have you been watching/reading this week? (Anime/Manga)

      Feel free to talk about something you saw that was cool, something that was bad, ask for recommendations, or anything else you can think of. If you want to, feel free to find the thing you're...

      Feel free to talk about something you saw that was cool, something that was bad, ask for recommendations, or anything else you can think of.

      If you want to, feel free to find the thing you're talking about and link to its Anilist, MAL, or any other anime/manga database you use!

      7 votes
    21. ~music Listening Club 23 - Dark Side of the Moon

      Welcome to the 23rd week, it had to come eventually...another classic record discussion: The Dark Side of the Moon by Pink Floyd! Posting a little early since I'll be busy celebrating...

      Welcome to the 23rd week, it had to come eventually...another classic record discussion: The Dark Side of the Moon by Pink Floyd! Posting a little early since I'll be busy celebrating Thanksgiving, have a great day everyone.

      The Dark Side of the Moon is the eighth studio album by English rock band Pink Floyd, released on 1 March 1973 by Harvest Records. It built on ideas explored in Pink Floyd's earlier recordings and performances, but without the extended instrumentals that characterised their earlier work. Its themes explore conflict, greed, time, and mental illness, the latter partly inspired by the deteriorating health of founding member Syd Barrett, who left in 1968.

      Developed during live performances, Pink Floyd premiered an early version of The Dark Side of the Moon several months before recording began. New material was recorded in two sessions in 1972 and 1973 at Abbey Road Studios in London. The group used advanced recording techniques at the time, including multitrack recording and tape loops; analogue synthesizers are prominent, and snippets from interviews with Pink Floyd's road crew and others provide philosophical quotations. Engineer Alan Parsons was responsible for many sonic aspects and the recruitment of singer Clare Torry, who appears on one track. The iconic sleeve was designed by Storm Thorgerson; following keyboardist Richard Wright's request for a "simple and bold" design, it depicts a prism spectrum, representing the band's lighting and the record's themes.

      The Dark Side of the Moon produced two singles: "Money" and "Us and Them". The album topped the Billboard chart for a week, and remained on the chart for 741 weeks from 1973 to 1988. Following a change in how Billboard counts sales in 2009, it re-entered the chart and has since appeared for over 900 weeks. With estimated sales of over 45 million, it is Pink Floyd's bestselling album and one of the bestselling worldwide. It has been remastered and rereleased several times, and covered in its entirety by several acts. It is regarded as one of the greatest albums of all time.

      Here's the place to discuss your thoughts on the record, your history with it or the artist, and basically talk about whatever you want to that goes along with The Dark Side of the Moon! Remember that this is intended to be a slow moving thing, feel free to take your time and comment at any point in the week!

      If you'd like to stream or buy the album, it can be found on most platforms here.

      Rather than get an obscure record this week, I'd love to hear from you in responses to this comment!

      9 votes
    22. What have you been listening to this week?

      Filling in again this week at Whom's request. What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something! Feel free to give...

      Filling in again this week at Whom's request.

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something!

      Feel free to give recs or discuss anything about each others' listening habits.

      You can make a chart if you use last.fm:

      http://www.tapmusic.net/lastfm/

      Remember that linking directly to your image will update with your future listening, make sure to reupload to somewhere like imgur if you'd like it to remain what you have at the time of posting.

      12 votes
    23. ~music Listening Club 22 - Survival

      Welcome to week 22! Here we've got this week's user-voted record: Survival by Bob Marley & The Wailers! Taken from @koan's pitch: Does Bob Marley have gold and platinum records? Definitely....

      Welcome to week 22! Here we've got this week's user-voted record: Survival by Bob Marley & The Wailers!

      Taken from @koan's pitch:

      Does Bob Marley have gold and platinum records? Definitely. Survival is not one of them, but in my opinion it is by far his greatest album -- hands down, no competition. Everybody has an opinion about Bob Marley, whether you've actually given him a shot or not. Reggae can be polarizing. Some love it, some think it's corny. But Survival is not corny. It's Marley's greatest roots reggae record.

      While some Bob Marley songs might make you want to relax on a beach and sip cold cocktails, the songs on Survival make you want to get up and do something about shit. When I was absolutely stewing in dissatisfaction with my corporate job, listening to Survival on my commute in the morning inspired me to change my life. Be careful, because listening to it too much might turn you into a revolutionary.

      If you're unfamiliar with reggae in general, or you think it's silly, give this record a chance. It might change your perspective about a very deep and varied genre of music.

      Here's the place to discuss your thoughts on the record, your history with it or the artist, and basically talk about whatever you want to that goes along with Survival. Remember that this is intended to be a slow moving thing, feel free to take your time and comment at any point in the week!

      If you'd like to stream or buy the album, it can be found on most platforms here.

      7 votes
    24. What have you been listening to this week?

      Filling in again this week. What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something! Feel free to give recs or discuss...

      Filling in again this week.

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something!

      Feel free to give recs or discuss anything about each others' listening habits.

      You can make a chart if you use last.fm:

      http://www.tapmusic.net/lastfm/

      Remember that linking directly to your image will update with your future listening, make sure to reupload to somewhere like imgur if you'd like it to remain what you have at the time of posting.

      14 votes
    25. This Week's Releases 16/11 - Anderson .Paak, The Smashing Pumpkins, Imagine Dragons

      Releases of the week 10/11/2018 - 16/11/2018 Featured Release Anderson .Paak - Oxnard (R&B, Hip Hop) Oxnard marks .Paak’s first release on Dre’s Aftermath Entertainment and last of “his beach...

      Releases of the week 10/11/2018 - 16/11/2018


      Featured Release

      Anderson .Paak - Oxnard (R&B, Hip Hop)

      Oxnard marks .Paak’s first release on Dre’s Aftermath Entertainment and last of “his beach series.” “You know, we went to Venice, we went to Malibu,” .Paak noted, “so it’s only right that we take it to the next place, up the coast, up to the next beach.” As hinted previously, Dre was “heavily” involved in the making of the LP, serving as executive producer. “His music was everything to me,” Paak said of his mentor. “It molded me.”
      Another famous name that pops up on Oxnard is Madlib, a veteran rapper and producer who is also known for his collaborations with DOOM, J Dilla, and Freddie Gibbs.
      The new album features “sprawling psychedelic grooves and confident verses,” according to Rolling Stone, and per .Paak, a special ingredient missing from the current musical landscape. “I feel like ambition is missing from today’s music,” he explained. “This is the album I dreamed of making in high school, when I was listening to [Jay-Z]’s The Blueprint, The Game’s The Documentary, and [Kanye West’s] The College Dropout.”

      Source: Consequence of Sound

      Listen

      Notable Relases

      The Smashing Pumpkins - Shiny and Oh So Bright, Vol. 1 / LP: No Past. No Future. No Sun. (Rock, Grunge)

      Imagine Dragons - Origins (Pop Rock)

      Mariah Carey - Caution (R&B, Pop)

      The Black Eyed Peas - Masters of the Sun, Vol. 1 (Hip Hop, Pop Rap)

      Feel free to discuss or feature any and all other releases in the comments below

      Discussion Points

      Have you listened to any of these releases?
      What are your thoughts?
      What are you looking forward to listen to?
      What have you enjoyed from these artists in the past?

      This is a new format I'm trying out to help immerse people into new album discussion. I welcome and look forward to any feedback!

      8 votes
    26. What have you been watching/reading this week? (Anime/Manga)

      Sorry for the late post. Anyway, what have you been watching/reading this week? Feel free to talk about something you saw that was cool, something that was bad, ask for recommendations, or...

      Sorry for the late post.

      Anyway, what have you been watching/reading this week?

      Feel free to talk about something you saw that was cool, something that was bad, ask for recommendations, or anything else you can think of.

      If you want to, feel free to find the thing you're talking about and link to its Anilist, MAL, or any other anime/manga database you use!

      5 votes
    27. Code Quality Tip: Wrapping external libraries.

      Preface Occasionally I feel the need to touch on the subject of code quality, particularly because of the importance of its impact on technical debt, especially as I continue to encounter the...

      Preface

      Occasionally I feel the need to touch on the subject of code quality, particularly because of the importance of its impact on technical debt, especially as I continue to encounter the effects of technical debt in my own work and do my best to manage it. It's a subject that is unfortunately not emphasized nearly enough in academia.


      Background

      As a refresher, technical debt is the long-term cost of the design decisions in your code. These costs can manifest in different ways, such as greater difficulty in understanding what your code is doing or making non-breaking changes to it. More generally, these costs manifest as additional time and resources being spent to make some kind of change.

      Sometimes these costs aren't things you think to consider. One such consideration is how difficult it might be to upgrade a specific technology in your stack. For example, what if you've built a back-end system that integrates with AWS and you suddenly need to upgrade your SDK? In a small project this might be easy, but what if you've built a system that you've been maintaining for years and it relies heavily on AWS integrations? If the method names, namespaces, argument orders, or anything else has changed between versions, then suddenly you'll need to update every single reference to an AWS-related tool in your code to reflect those changes. In larger software projects, this could be a daunting and incredibly expensive task, spanning potentially weeks or even months of work and testing.

      That is, unless you keep those references to a minimum.


      A Toy Example

      This is where "wrapping" your external libraries comes into play. The concept of "wrapping" basically means to create some other function or object that takes care of operating the functions or object methods that you really want to target. One example might look like this:

      <?php
      
      class ImportedClass {
          public function methodThatMightBecomeModified($arg1, $arg2) {
              // Do something.
          }
      }
      
      class ImportedClassWrapper {
          private $class_instance = null;
      
          private function getInstance() {
              if(is_null($this->class_instance)) {
                  $this->class_instance = new ImportedClass();
              }
      
              return $this->class_instance;
          }
      
          public function wrappedMethod($arg1, $arg2) {
              return $this->getInstance()->methodThatMightBecomeModified($arg1, $arg2);
          }
      }
      
      ?>
      

      Updating Tools Doesn't Have to Suck

      Imagine that our ImportedClass has some important new features that we need to make use of that are only available in the most recent version, and we're several versions behind. The problem, of course, is that there were a lot of changes that ended up being made between our current version and the new version. For example, ImportedClass is now called NewImportedClass. On top of that, methodThatMightBecomeModified is now called methodThatWasModified, and the argument order ended up getting switched around!

      Now imagine that we were directly calling new ImportedClass() in many different places in our code, as well as directly invoking methodThatMightBecomeModified:

      <?php
      
      $imported_class_instance = new ImportedClass();
      $imported_class_instance->methodThatMightBeModified($val1, $val2);
      
      ?>
      

      For every single instance in our code, we need to perform a replacement. There is a linear or--in terms of Big-O notation--a complexity of O(n) to make these replacements. If we assume that we only ever used this one method, and we used it 100 times, then there are 100 instances of new ImportClass() to update and another 100 instances of the method invocation, equaling 200 lines of code to change. Furthermore, we need to remember each of the replacements that need to be made and carefully avoid making any errors in the process. This is clearly non-ideal.

      Now imagine that we chose instead to use the wrapper object:

      <?php
      
      $imported_class_wrapper = new ImportedClassWrapper();
      $imported_class_wrapper->wrappedMethod($val1, $val2);
      
      ?>
      

      Our updates are now limited only to the wrapper class:

      <?php
      
      class ImportedClassWrapper {
          private $class_instance = null;
      
          private function getInstance() {
              if(is_null($this->class_instance)) {
                  $this->class_instance = new NewImportedClass();
              }
      
              return $this->class_instance;
          }
      
          public function wrappedMethod($arg1, $arg2) {
              return $this->getInstance()->methodThatWasModified($arg2, $arg1);
          }
      }
      
      ?>
      

      Rather than making changes to 200 lines of code, we've now made changes to only 2. What was once an O(n) complexity change has now turned into an O(1) complexity change to make this upgrade. Not bad for a few extra lines of code!


      A Practical Example

      Toy problems are all well and good, but how does this translate to reality?

      Well, I ran into such a problem myself once. Running MongoDB with PHP requires the use of an external driver, and this driver provides an object representing a MongoDB ObjectId. I needed to perform a migration from one hosting provider over to a new cloud hosting provider, with the application and database services, which were originally hosted on the same physical machine, hosted on separate servers. For security reasons, this required an upgrade to a newer version of MongoDB, which in turn required an upgrade to a newer version of the driver.

      This upgrade resulted in many of the calls to new MongoId() failing, because the old version of the driver would accept empty strings and other invalid ID strings and default to generating a new ObjectId, whereas the new version of the driver treated invalid ID strings as failing errors. And there were many, many cases where invalid strings were being passed into the constructor.

      Even after spending hours replacing the (literally) several dozen instances of the constructor calls, there were still some places in the code where invalid strings managed to get passed in. This made for a very costly upgrade.

      The bugs were easy to fix after the initial replacements, though. After wrapping new MongoId() inside of a wrapper function, a few additional conditional statements inside of the new function resolved the bugs without having to dig around the rest of the code base.


      Final Thoughts

      This is one of those lessons that you don't fully appreciate until you've experienced the technical debt of an unwrapped external library first-hand. Code quality is an active effort, but a worthwhile one. It requires you to be willing to throw away potentially hours or even days of work when you realize that something needs to change, because you're thinking about how to keep yourself from banging your head against a wall later down the line instead of thinking only about how to finish up your current task.

      "Work smarter, not harder" means putting in some hard work upfront to keep your technical debt under control.

      That's all for now, and remember: don't be fools, wrap your external tools.

      23 votes
    28. ~music Listening Club 21 - At Folsom Prison

      21 weeks and yet another classic record discussion: At Folsom Prison by Johnny Cash! At Folsom Prison is a live album and 27th overall album by Johnny Cash, released on Columbia Records in May...

      21 weeks and yet another classic record discussion: At Folsom Prison by Johnny Cash!

      At Folsom Prison is a live album and 27th overall album by Johnny Cash, released on Columbia Records in May 1968. After his 1955 song "Folsom Prison Blues", Cash had been interested in recording a performance at a prison. His idea was put on hold until 1967, when personnel changes at Columbia Records put Bob Johnston in charge of producing Cash's material. Cash had recently controlled his drug abuse problems, and was looking to turn his career around after several years of limited commercial success. Backed with June Carter, Carl Perkins and the Tennessee Three, Cash performed two shows at Folsom State Prison in California on January 13, 1968. The resulting album consisted of fifteen tracks from the first show and two tracks from the second.

      Despite little initial investment by Columbia, the album was a hit in the United States, reaching number one on the country charts and the top 15 of the national album chart. The lead single from the album, a live version of "Folsom Prison Blues", was a top 40 hit, Cash's first since 1964's "Understand Your Man". At Folsom Prison received positive reviews and revitalized Cash's career, becoming the first in a series of live albums recorded at prisons that includes "At San Quentin" (1969), "Pa Osteraker" (1973), and "A Concert Behind Prison Walls" (1976). The album was rereleased with additional tracks in 1999, a three-disc set in 2008, and a five LP box set with bonus rehearsals in 2018 for Record Store Day. It was certified three times Platinum on March 27, 2003 by the Recording Industry Association of America for US sales exceeding three million.

      Here's the place to discuss your thoughts on the record, your history with it or the artist, and basically talk about whatever you want to that goes along with At Folsom Prison! Remember that this is intended to be a slow moving thing, feel free to take your time and comment at any point in the week!

      If you'd like to stream or buy the album, it can be found on most platforms here.

      Don't forget to nominate and vote for next week's obscure record in response to this comment!

      8 votes
    29. What are you reading these days? #6

      What are you reading currently? Fiction or non-fiction, any genre, any language! Tell us what you're reading, and talk a bit about it. Notes: Do any one of you follow any literary magazines? How...

      What are you reading currently? Fiction or non-fiction, any genre, any language! Tell us what you're reading, and talk a bit about it.

      Notes: Do any one of you follow any literary magazines? How do you follow fresh pieces of literature, and grab hold of them "fresh out of the oven"?

      Past weeks: Week #1 · Week #2 · Week #3 · Week #4 · Week #5

      22 votes
    30. What have you been watching/reading this week? (Anime/Manga)

      Making the thread before I fall asleep edition. Anyway, what have you been watching/reading this week? Feel free to talk about something you saw that was cool, something that was bad, ask for...

      Making the thread before I fall asleep edition.

      Anyway, what have you been watching/reading this week?

      Feel free to talk about something you saw that was cool, something that was bad, ask for recommendations, or anything else you can think of.

      If you want to, feel free to find the thing you're talking about and link to its Anilist, MAL, or any other anime/manga database you use!

      9 votes
    31. ~music Listening Club 20 - Washing Machine

      Hey, we made it to week 20! Here we've got this week's user-voted record: Washing Machine by Sonic Youth! Washing Machine is the ninth studio album by the American experimental rock band Sonic...

      Hey, we made it to week 20! Here we've got this week's user-voted record: Washing Machine by Sonic Youth!

      Washing Machine is the ninth studio album by the American experimental rock band Sonic Youth, released on September 26, 1995 by DGC Records. It was recorded at Easley Studios in Memphis, Tennessee and produced by the band and John Siket, who also engineered the band's previous two albums. The album features more open-ended pieces than its predecessors and contains some of the band's longest songs, including the 20-minute ballad "The Diamond Sea", which is the lengthiest track to feature on any of Sonic Youth's studio albums.

      Taken from @Cleb's pitch:

      I listened to this fairly recently and after my previous experience with Sonic Youth (Daydream Nation, Sister), which I thought was mostly just okay, fine, whatever, I did not expect to get as much enjoyment out of this album as I did. Yeah, it's Sonic Youth going even less no-wave inspired than before, but I think they fit far better into that groove of noisy-ish alt rock without the no-wave coming in at times. Maybe I just think the writing is cooler. All I know is it made me finally able to say "I appreciate Sonic Youth."

      Here's the place to discuss your thoughts on the record, your history with it or the artist, and basically talk about whatever you want to that goes along with Washing Machine. Remember that this is intended to be a slow moving thing, feel free to take your time and comment at any point in the week!

      If you'd like to stream or buy the album, it can be found on most platforms here.

      7 votes
    32. What have you been watching/reading this week? (Anime/Manga)

      Last week I didn't realize I hadn't made the weekly post until it was a couple days too late, so I decided to just rollover to this week. Sorry, folks. Might have to get someone else to post...

      Last week I didn't realize I hadn't made the weekly post until it was a couple days too late, so I decided to just rollover to this week. Sorry, folks. Might have to get someone else to post sometimes.

      Anyway, what have you been watching/reading this week?

      Feel free to talk about something you saw that was cool, something that was bad, ask for recommendations, or anything else you can think of.

      If you want to, feel free to find the thing you're talking about and link to its Anilist, MAL, or any other anime/manga database you use!

      9 votes
    33. what creative projects are you working on?

      feels like we should probably have one of these in here since it doesn't appear we've had one of these as a community in ~creative in awhile--if ever. i've spent the better portion of my day today...

      feels like we should probably have one of these in here since it doesn't appear we've had one of these as a community in ~creative in awhile--if ever.

      i've spent the better portion of my day today working on a census form for the kryfona kingdom, which is one of the many countries in my fairly large worldbuilding effort. the first page actually came out really well, i think, so that was time well spent. i've considered making a post about some of its more intricate detail since i think some people on here might enjoy that, but for now i've opted to just make this general thread since i dunno how well it'd go as a discussion topic. maybe if y'all think it's worthy of one? idk.

      anyways, what creative things have you been working on recently?

      15 votes
    34. What have you been listening to this week?

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something! Feel free to give recs or discuss anything about each others'...

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something!

      Feel free to give recs or discuss anything about each others' listening habits.

      You can make a chart if you use last.fm:

      http://www.tapmusic.net/lastfm/

      Remember that linking directly to your image will update with your future listening, make sure to reupload to somewhere like imgur if you'd like it to remain what you have at the time of posting.

      14 votes
    35. What are you reading these days? #5 (Was: What are you reading this week?)

      What are you reading currently? Fiction or non-fiction, any genre, any language! Tell us what you're reading, and talk a bit about it. Notes: I've modified the title a bit, having it say "this...

      What are you reading currently? Fiction or non-fiction, any genre, any language! Tell us what you're reading, and talk a bit about it.

      Notes: I've modified the title a bit, having it say "this week" when it was never weekly (it's bi-weekly) was a bit weird.

      Past weeks: Week #1 · Week #2 · Week #3 · Week #4

      18 votes
    36. ~music Listening Club 19 - The Beatles (The White Album)

      19 weeks and there's another classic record discussion to be had: The Beatles by The Beatles! The Beatles, also known as "The White Album", is the ninth studio album by the English rock band the...

      19 weeks and there's another classic record discussion to be had: The Beatles by The Beatles!

      The Beatles, also known as "The White Album", is the ninth studio album by the English rock band the Beatles, released on 22 November 1968. A double album, its plain white sleeve has no graphics or text other than the band's name embossed, which was intended as a direct contrast to the vivid cover artwork of the band's previous LP Sgt. Pepper's Lonely Hearts Club Band. Although no singles were issued from The Beatles in Britain and the United States, the songs "Hey Jude" and "Revolution" originated from the same recording sessions and were issued on a single in August 1968. The album's songs range in style from British blues and ska to tracks influenced by Chuck Berry and by Karlheinz Stockhausen.

      Here's the place to discuss your thoughts on the record, your history with it or the artist, and basically talk about whatever you want to that goes along with the white album! Remember that this is intended to be a slow moving thing, feel free to take your time and comment at any point in the week!

      If you'd like to stream or buy the album, it can be found on most platforms here.

      Don't forget to nominate and vote for next week's obscure record in response to this comment!

      11 votes
    37. [Weekly] What'd You Munch This Week?

      hey all! i see these kinds of posts in ~music where people talk all about what they're listening to that week, what they checked out for the first time, what they really enjoyed or hated. i...

      hey all!

      i see these kinds of posts in ~music where people talk all about what they're listening to that week, what they checked out for the first time, what they really enjoyed or hated. i thought it'd be cool to do a food version!

      did you try a new recipe this week? how was it?

      eat at a cool new restaurant?

      try a new dish that you absolutely loved / hated?

      grab a plate and dive on in!

      7 votes
    38. Light Analysis of a Recent Code Refactor

      Preface In a previous topic, I'd covered the subject of a few small lessons regarding code quality. Especially important was the impact on technical debt, which can bog down developer...

      Preface

      In a previous topic, I'd covered the subject of a few small lessons regarding code quality. Especially important was the impact on technical debt, which can bog down developer productivity, and the need to pay down on that debt. Today I would like to touch on a practical example that I'd encountered in a production environment.


      Background

      Before we can discuss the refactor itself, it's important to be on the same page regarding the technologies being used. In my case, I work with PHP utilizing a proprietary back-end framework and MongoDB as our database.

      PHP is a server-side scripting language. Like many scripting languages, it's loosely typed. This has some benefits and drawbacks.

      MongoDB is a document-oriented database. By default it's schema-less, allowing you to make any changes at will without an update to schema. This can blend pretty well with the loose typing of PHP. Each document is represented using a JSON-like structure and is stored in something called a "collection". For those of you accustomed to using relational database, a "collection" is analogous to a table, each document is a row, and each field in the document is a column. A typical query in the MongoDB shell would look something like this:

      db.users.findOne({
          username: "Emerald_Knight"
      });
      

      The framework itself has some framework-specific objects that are held in global references. This makes them easily accessible, but naturally littering your code with a bunch of globals is both error-prone and an eyesore.


      Unexpected Spaghetti

      In my code base are a number of different objects that are designed to handle basic CRUD-like operations on their associated database entries. Some of these objects hold references to other objects, so naturally there is some data validation that occurs to ensure that the references are both valid and authorized. Pretty typical stuff.

      What I noticed, however, is that the collection names for these database entries were littered throughout my code. This isn't necessarily a bad thing, except there were some use cases that came to mind: what if it turned out that my naming for one or more of these collections wasn't ideal? What if I wanted to change a collection name for the sake of easier management on the database end? What if I have a tendency to forget the name of a database collection and constantly have to look it up? What if I make a typo of all things? On top of that, the framework's database object was stored in a global variable.

      These seemingly minor sources of technical debt end up adding up over time and could cause some serious problems in the worst case. I've had breaking bugs make their way passed QA in the past, after all.


      Exchanging Spaghetti for Some Light Lasagna

      The problem could be characterized simply: there were scoping problems and too many references to what were essentially magic strings. The solution, then, was to move the database object reference from global to local scope within the application code and to eliminate the problem of magic strings. Additionally, it's a good idea to avoid polluting the namespace with an over-reliance on constants, and using those constants for database calls can also become unsightly and difficult to follow as those constants could end up being generally disconnected from the objects they're associated with.

      There turned out to be a nice, object-oriented, very PHP-like solution to this problem: a so-called "magic method" named "__call". This method is invoked whenever an "inaccessible" method is called on the object. Using this method, a database command executed on a non-database object could pass the command to the database object itself. If this logic were placed within an abstract class, the collection could then be specified simply as a configuration option in the inheriting class.

      This is what such a solution could look like:

      <?php
      
      abstract class MyBaseObject {
      
          protected $db = null;
          protected $collection_name = null;
      
          public function __construct() {
              global $db;
              
              $this->db = $db;
          }
      
          public function __call($method_name, $args) {
              if(method_exists($this->db, $method_name)) {
                  return $this->executeDatabaseCommand($method_name, $args);
              }
      
              throw new Exception(__CLASS__ . ': Method "' . $method_name . '" does not exist.');
          }
      
          public function executeDatabaseCommand($command, $args) {
              $collection = $this->collection_name;
              $db_collection = $this->db->$collection;
      
              return call_user_func_array(array($db_collection, $command), $args);
          }
      }
      
      class UserManager extends MyBaseObject {
          protected $collection_name = 'users';
      
          public function __construct() {
              parent::__construct();
          }
      }
      
      $user_manager = new UserManager();
      $my_user = $user_manager->findOne(array('username'=>'Emerald_Knight'));
      
      ?>
      

      This solution utilizes a single parent object which transforms a global database object reference into a local one, eliminating the scope issue. The collection name is specified as a class property of the inheriting object and only used in a single place in the parent object, eliminating the magic string and namespace polluting issues. Any time you perform queries on users, you do so by using the UserManager class, which guarantees that you will always know that your queries are being performed on the objects that you intend. And finally, if the collection name for an object class ever needs to be updated, it's a simple matter of modifying the single instance of the class property $collection_name, rather than tracking down some disconnected constant.


      Limitations

      This, of course, doesn't solve all of the existing problems. After all, executing the database queries for one object directly from another is still pretty bad practice, violating the principle of separation of concerns. Instead, those queries should generally be encapsulated within object methods and the objects themselves given primary responsibility in handling associated data. It's also incredibly easy to inadvertently override a database method, e.g. defining a findOne() method on UserManager, so there's still some mindfulness required on the part of the programmer.

      Still, given the previous alternative, this is a pretty major improvement, especially for an initial refactor.


      Final Thoughts

      As always, technical debt is both necessary and inevitable. After all, in exchange for not taking the excess time and considering structuring my code this way in the beginning, I had greater initial velocity to get the project off of the ground. What's important is continually reviewing your code as you're building on top of it so that you can identify bottlenecks as they begin to strain your efficiency, and getting those bottlenecks out of the way.

      In other words, even though technical debt is often necessary and is certainly inevitable, it's important to pay down on some of that debt once it starts getting expensive!

      7 votes
    39. What have you been listening to this week?

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something! Feel free to give recs or discuss anything about each others'...

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something!

      Feel free to give recs or discuss anything about each others' listening habits.

      You can make a chart if you use last.fm:

      http://www.tapmusic.net/lastfm/

      Remember that linking directly to your image will update with your future listening, make sure to reupload to somewhere like imgur if you'd like it to remain what you have at the time of posting.

      14 votes
    40. ~music Listening Club 18 - Venture EP

      Hi, I'm filling in again! Welcome to week 18! Here we've got this week's user-voted record: Venture EP by Televisor! Taken from @Bauke's pitch: Televisor's Venture EP is a high-energy 4 track...

      Hi, I'm filling in again!

      Welcome to week 18! Here we've got this week's user-voted record: Venture EP by Televisor!

      Taken from @Bauke's pitch:

      Televisor's Venture EP is a high-energy 4 track nu-disco EP filled with synthesizers, heavy hitting basslines, and guitar licks all to make your head bounce. Together with some retro influences to make one hell of a funky beat in every track!

      Here's the place to discuss your thoughts on the record, your history with it or the artist, and basically talk about whatever you want to that goes along with Venture EP. Remember that this is intended to be a slow moving thing, feel free to take your time and comment at any point in the week!

      If you'd like to stream or buy the album, it can be found on most platforms here.

      8 votes
    41. What have you been watching/reading this week? (Anime/Manga)

      Guess this is the proper way to do the post without getting lost posters then. Anyway, what have you been watching/reading this week? Feel free to talk about something you saw that was cool,...

      Guess this is the proper way to do the post without getting lost posters then.

      Anyway, what have you been watching/reading this week?

      Feel free to talk about something you saw that was cool, something that was bad, ask for recommendations, or anything else you can think of.

      If you want to, feel free to find the thing you're talking about and link to its Anilist, MAL, or any other anime/manga database you use!

      16 votes
    42. What have you been listening to this week?

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something! Feel free to give recs or discuss anything about each others'...

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something!

      Feel free to give recs or discuss anything about each others' listening habits.

      You can make a chart if you use last.fm:

      http://www.tapmusic.net/lastfm/

      Remember that linking directly to your image will update with your future listening, make sure to reupload to somewhere like imgur if you'd like it to remain what you have at the time of posting.

      16 votes
    43. Weekly game discussion 1: Call of Duty: Black Ops 4

      Description: Call of Duty: Black Ops 4 features thrilling grounded multiplayer combat, three full zombies adventures at launch, and a massive battle royale experience. Note: I couldn't find a...

      Description:

      Call of Duty: Black Ops 4 features thrilling grounded multiplayer combat, three full zombies adventures at launch, and a massive battle royale experience.

      Note: I couldn't find a proper description anywhere so I just grabbed the text from battle.net


      Links:

      Battle.net Xbox PlayStation Amazon

      11 votes
    44. What are you reading this week? #4

      What are you reading currently? Fiction or non-fiction, any genre, any language! Tell us what you're reading, and talk a bit about it. Please also tell me if you think this is too frequent, in...

      What are you reading currently? Fiction or non-fiction, any genre, any language! Tell us what you're reading, and talk a bit about it.

      Please also tell me if you think this is too frequent, in which case I can switch to doing this once a month instead of every other week. I'll edit the post text to append the decision. Have a nice weekend!

      Past weeks: Week #1 · Week #2 · Week #3

      15 votes
    45. What have you been watching/reading this week? (Anime/Manga)

      New title to hopefully avoid people getting lost and posting the wrong media here, if you have a suggestion to make it less ugly then please say something. Anyway, what have you been...

      New title to hopefully avoid people getting lost and posting the wrong media here, if you have a suggestion to make it less ugly then please say something.

      Anyway, what have you been watching/reading this week?

      Feel free to talk about something you saw that was cool, something that was bad, ask for recommendations, or anything else you can think of.

      If you want to, feel free to find the thing you're talking about and link to its Anilist, MAL, or any other anime/manga database you use!

      12 votes
    46. What have you been listening to this week?

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something! Feel free to give recs or discuss anything about each others'...

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something!

      Feel free to give recs or discuss anything about each others' listening habits.

      You can make a chart if you use last.fm:

      http://www.tapmusic.net/lastfm/

      Remember that linking directly to your image will update with your future listening, make sure to reupload to somewhere like imgur if you'd like it to remain what you have at the time of posting.

      18 votes
    47. ~music Listening Club 17 - Unknown Pleasures

      17 weeks in and we have another classic record discussion: Unknown Pleasures by Joy Division! Unknown Pleasures is the debut studio album by English rock band Joy Division, released on 15 June...

      17 weeks in and we have another classic record discussion: Unknown Pleasures by Joy Division!

      Unknown Pleasures is the debut studio album by English rock band Joy Division, released on 15 June 1979 by Factory Records. The album was recorded and mixed over three successive weekends at Stockport's Strawberry Studios in April 1979, and was produced by Martin Hannett, who incorporated a number of unconventional production techniques into the group's sound. The cover artwork was designed by artist Peter Saville. It is the only Joy Division album released during lead singer Ian Curtis's lifetime.

      Factory Records did not release any singles from Unknown Pleasures, and the album did not chart despite the relative success of the group's non-album debut single "Transmission". It has since received sustained critical acclaim as an influential post-punk album, and has been named as one of the best albums of all time by publications such as NME, AllMusic, Select, and Spin.

      Here's the place to discuss your thoughts on the record, your history with it or the artist, and basically talk about whatever you want to that goes along with Unknown Pleasures! Remember that this is intended to be a slow moving thing, feel free to take your time and comment at any point in the week!

      If you'd like to stream or buy the album, it can be found on most platforms here.

      Don't forget to nominate and vote for next week's obscure record in response to this comment!

      12 votes
    48. ~music Listening Club 16 - Body, Mind & Spirit

      Hi, I'm filling in again at the request of @Whom! Welcome to week 16! Here we've got this week's user-voted record: *Body, Mind & Spirit * by Black Renaissance! Taken from @arghdos' pitch: What we...

      Hi, I'm filling in again at the request of @Whom!

      Welcome to week 16! Here we've got this week's user-voted record: *Body, Mind & Spirit * by Black Renaissance!

      Taken from @arghdos' pitch:

      What we have here is a masterpiece of a spiritual jazz album from Henry Whittaker (who is most-well known for his work with Roy Ayer's Ubiquity). Combining call and response styles of Sun Ra (or RRK), modal jazz of Coltrane, and some Herbie space jams into a funky, sinuous groove.

      Here's the place to discuss your thoughts on the record, your history with it or the artist, and basically talk about whatever you want to that goes along with Body, Mind & Spirit. Remember that this is intended to be a slow moving thing, feel free to take your time and comment at any point in the week!

      If you'd like to stream or buy the album, it can be found on most platforms here.

      7 votes
    49. What have you been listening to this week?

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something! Feel free to give recs or discuss anything about each others'...

      What have you been listening to this week? You don't need to do a 6000 word review if you don't want to, but please write something!

      Feel free to give recs or discuss anything about each others' listening habits.

      You can make a chart if you use last.fm:

      http://www.tapmusic.net/lastfm/

      Remember that linking directly to your image will update with your future listening, make sure to reupload to somewhere like imgur if you'd like it to remain what you have at the time of posting.

      15 votes
    50. ~music Listening Club 15 - Songs in the Key of Life

      It's week 15, and time for another classic record discussion: Songs in the Key of Life by Stevie Wonder! Songs in the Key of Life is the eighteenth album by American recording artist Stevie...

      It's week 15, and time for another classic record discussion: Songs in the Key of Life by Stevie Wonder!

      Songs in the Key of Life is the eighteenth album by American recording artist Stevie Wonder, released on September 28, 1976, by Motown Records, through its division Tamla Records. It was the culmination of his "classic period" albums. The album was recorded primarily at Crystal Sound studio in Hollywood, with some sessions recorded at the Record Plant in Hollywood, the Record Plant in Sausalito, and The Hit Factory in New York City. Final mixing was performed at Crystal Sound.

      An ambitious double LP with a four-song bonus EP, Songs in the Key of Life became the best-selling and most critically acclaimed album of Wonder's career. In 2003, it was ranked number 57 on Rolling Stone magazine's list of the 500 greatest albums of all time. In 2005, it was inducted into the National Recording Registry by the Library of Congress, which deemed it "culturally, historically, or aesthetically significant."

      Here's the place to discuss your thoughts on the record, your history with it or the artist, and basically talk about whatever you want to that goes along with Songs in the Key of Life! Remember that this is intended to be a slow moving thing, feel free to take your time and comment at any point in the week!

      If you'd like to stream or buy the album, it can be found on most platforms here.

      Don't forget to nominate and vote for next week's obscure record in response to this comment!

      15 votes