Nirvana - MTV Unplugged in New York

Recorded 31 years ago (to the day), MTV Unplugged in New York by Nirvana hit #1 on its first week on the charts. This was the first Nirvana album released after Kurt Cobain's death in April, 1994.

According to last.fm I have listened to this album over 160 times, so I know it quite well. In one sense, since I know this album so well, and have heard it for 30 years, listening to it now gives me no surprises. In another sense, this is the kind of album I truly look forward to during this project, the albums that bring me back to being a teenager. Obviously when I listen to albums from 30 years ago that are mostly new, it's more interesting, but a good fraction of the more interesting albums I don't like, and they're more work for me.

Nirvana is one of the most important bands of the last 35 years. If you haven't already heard Unplugged, I'm surprised, and you should go about fixing that right away. Listen on headphones or in a quiet room so you can pick up Cobain's mutterings between songs. Too many albums I review belong in the dustheap of history, Unplugged is the exact opposite, and will remain relevant for decades to come.

more ...

Madonna - Bedtime Stories

Released the day I turned 15, Bedtime Stories by Madonna is in my opinion not one of her stronger albums. It's not a bad album per se, but compared to her other efforts, it's nothing special. Prior to listening to the full album, I think I had only heard two songs off of Bedtime Stores, Secret and Take a Bow. I'm pretty certain that it's been years since I heard either song on the radio. Looking at the most played Madonna songs played on Tidal and Spotify, the highest ranked song off this album is in the 30s, which shows that most of the public agrees with my opinion.

I actually do like Madonna, and I encourage listening to her music. This album can be ignored unless you really want to explore the full catalog of Madonna.

more ...

Murder Was The Case Soundtrack

Debuting at #1, we have another movie soundtrack. I've reviewed soundtracks before and in a few ways it's different.

As far as I can tell, all of the big songs on the album (Murder Was The Case, What Would U Do?) appeared on other albums released before this album. Previous chart-topping soundtracks featured songs only available on the album.

Another difference is the album is longer than the movie for which it's named. The movie is only 18 minutes long, while the album is over an hour long.

As I looked through the track listing, I took a double take at the artist on the 6th and 11th tracks, Jewell. I had to check it wasn't Jewel. Both Wiki pages have "Not to be confused with Jewel(l) (singer)." at the top for obvious reasons.

Overall, I find this album fairly boring. Like the Above The Rim Soundtrack I previously reviewed, most of this is typical mid-90s rap. I think this album can be left to history.

more ...

New Road Bike

New Bike

In late 2013 I built a road bike (not pictured) from individual parts. I built it using a 2012 Fuji Altamira frame and fork, 11 speed Campagnolo Chorus, and Mavic Wheels. It was a fun project to source all the parts and put it together. I have enjoyed riding this bike in the 11 years since I built it.

The bike has not been without issues. A few years ago the rear derailleur broke. What broke is not important to mention here, except that in the end my father in law was able to weld a fix, and I remain appreciative of that. The bigger problem is that very shortly after I built up my bike, Campagnolo made a small change to their 11 speed products that broke backwards compatibility. A replacement to my 11 speed rear derailleur was basically impossible to find, hence the need to fix the derailleur with welding. Since then, I've known that if anything broke again, I'd either have to buy a whole new component group, or a whole new bike. In a sense, I've been on borrowed time.

In the intervening decade since I built the bike, there have been a few major changes to road bikes:

  • Rim brakes have been replaced with disc brakes. I think that disc brakes are wonderful on mountain bikes, I have them on my MTB. For road bikes I think they are less crucial. The stopping power of rim brakes is more than enough for road bikes. However, disc brakes on road bikes is the direction the market has gone, probably for better (on balance) than worse.
  • Electronic shifting replaced the cable actuated shifting with batteries, wires (or radio signals), and servos. Instead of levers, the shifters on the handlebars are simply buttons and moving the derailleurs is handled by a computer. I have been manually shifting for over 35 years without too many problems, but I am also not a luddite and the precision and speed of electronics are hard to beat.
  • Internal cable routing runs cables inside as much of the bike structure as possible. There are aerodynamic advantages to this, and it also prevents dirt from accumulating on the cables. It also makes installing and servicing the cables much, much harder. Personally, I like the look of a bike with internal cabling.
  • Tire clearance has inflated (ha!) dramatically. My Fuji can only handle 25C tires, while many modern road bikes can handle 32C or higher. Partially enabled by disc brakes (because rim brakes struggle to reach around large tires), larger tires allow for lower tire pressures that make riding more comfortable.
  • Tubless tires remove the tubes inside tires. This is similar to tires on cars, except that bike tires typically have liquid sealant inside. On a mountain bike the advantages of tubeless are many, not least of which they eliminate the possibility of pinch flats. I have tubeless tires on my mountain bike and I think that they are well worth the hassle. On road bikes the advantages are less clear. The tire sealant only works at lower pressures, around 40 PSI. This means that a tubeless tire inflated to 90 PSI that gets a small leak will simply hiss out sealant (spraying it everywhere) until around 40 PSI, at which point the sealant can do its job. But then the tire is at 40 PSI, and you're squishing along on a really soft tire that's better than a fully flat tire, but not by much.

In summary, there have been a number of changes to road bikes in the last decade, most of which my Fuji either couldn't take advantage of, or wasn't worth doing. I decided it was time to get a new bike that had some or all of the new technologies.

After thinking about it for many (many) months, looking at lots of options (there is a spreadsheet), in early August 2024 I ordered a custom painted Orbea Orca road bike from a local shop. I have always liked Orbea bikes, and Orbea custom painted bikes cost the same as off-the-shelf models. Many other manufacturers charge extra for custom painting. The three month wait is fine if you already have a bike. I've always wanted a yellow and black bike, and that's what I got. I even have my name on the bike!

Top Tube

Of all the technologies mentioned above, the only one my bike doesn't have is tubeless tires. It is "tubeless capable," but I don't think I will do that. It has 12 speed Shimano Di2 electronic shifting with hydraulic disc brakes. The tires are 32C, quite a bit bigger than what I have on my Fuji.

The Shimano Di2 system is semi-wireless. Each shifter has a coin battery and communicates wirelessly with the derailleurs, and the derailleurs share a rechargeable battery that's stored in the seat tube. As shown below, the shifters can connect to my Garmin 530 and it can show what gear I'm in and the state of the batteries. Supposedly for average usage the derailleur battery lasts a few months, but having this view will be useful.

Gears Gears and Battery

As I write this, I have only gone on one short ride to acquaint myself with the bike and adjust things. I think I will probably change the saddle and I may also change the seat post. I think the bike looks wonderful, it rides great, and I'm excited to ride it more. Of course, it's heading into winter here, and opportunities to ride will be less than in the summer. But that's okay, it will allow me to make sure it's set up the way I want in time for the spring and summer.

more ...

Sheryl Crow - Tuesday Night Music Club

Hitting #8 on the charts after 33 weeks, Tuesday Night Music Club is Sheryl Crow's debut album. According to last.fm, I've listened to 12 Sheryl Crow tracks in the last 18 years, the majority off this album for this blog post. Clearly she is not one of my favorite artists. I don't think her music is bad, but I just don't choose to listen to it. I suspect the few random plays in the past were because of some algorithmic mix I was listening to.

The album does have two big hits: Strong Enough and All I Wanna Do, which I have heard before. I'm not entirely confident that I've heard any of the other songs on this album before.

Long story short, TL;DR, yadda yadda, my opinion of Sheryl Crow hasn't changed. I'll probably never listen to this album again. Finally, I'd rather go to Tuesday Night Racing than listen to this album.

more ...

Smashing Pumpkins - Pisces Iscariot

I've listened to a fair amount of Smashing Pumpkins over the last 18 years, but before now I had never listened to this album. This album is actually a compilation which might be why I never checked it out until now. Perhaps another reason is that this album is not one of their most popular. This week it hit #4 but in the coming weeks it plunges down the order pretty quickly.

The only song off the album that was released as a single was a cover of Landslide originally by Fleetwood Mac. That cover did quite well and I remember hearing it on the radio 30 years ago, and I'm pretty sure I've heard it on the radio since then fairly consistently.

According to Wikipedia, this is one of the better reviewed Smashing Pumpkins albums. I think that the songs in isolation are all pretty good, but being a compilation the cohesion between songs isn't the best. I don't think I'll listen to this album all that much going forward mostly because other Pumpkins albums are better.

more ...

R.E.M. - Monster

In the summer of 2001 I spent a couple months participating in a Research Experience for Undergraduates (REU) in the Physics Department at the University of Georgia (UGA). UGA is in Athens, Georgia, which is a wonderful little college town about two hours away from Atlanta. There are many things I remember about my time there. Having grown up in the Bay Area and it's notoriously cold summers, that was the first summer I spent in a genuinely hot place. I brought a bike and I spent a fair amount of time exploring the countryside around Athens — and this was before smartphones with GPS! The group of REU students I was in and a few faculty members took a trip to see a Space Shuttle launch, which was amazing.

As part of my preparation for spending a summer in Athens, I made a bunch of MiniDisc recordings (I had a Sharp MD-MS722), including the R.E.M. catalog. R.E.M. were students at UGA and got their start in Athens. I wanted to listen to their music while spending time in Athens.

Included in my MiniDisc library was Monster which shot to #1 in its first week on the charts. Monster doesn't have as many hits as Out of Time or Automatic for the People, really only the first track, What's the Frequency Kenneth got big radio airplay.

This is one of those albums that makes the 30 Years On project fun. Listening to this album brings me back to being in Athens, being in a new place, doing new things. It's a great album and I recommend it.

more ...

Anita Baker - Rhythm of Love

Sitting at #3, Rhythm of Love by Anita Baker made zero impression on me. Nothing negative, nothing positive, nothing. That's all I really have to say about it.

more ...

Eric Clapton - From The Cradle

Debuting at #1, From the Cradle by Eric Clapton is 100% blues. This album was released on the heels of "Tears in Heaven" which likely contributed to the popularity of this album. According to this fan ranking site it's one of his best albums. While other people may find it great, it doesn't make a big impression on me. For me, Slowhand and Unplugged are much more interesting. Certainly, From the Cradle is well done, but it just doesn't make me feel the things some of his other work does.

My recommendation is to check it out, you may like it, or not.

more ...

Switzerland Trail

Here's a nice photo from a ride I did last month.

Switzerland Trail

more ...

The Three Tenors In Concert 1994

It takes a rare thing for an album by three(*) opera singers to make the top ten in album sales. It takes a cultural moment where an opera singer, or singers, is widely enough known to garner the kind of attention required to sell enough albums to make the top ten. It also takes a certain kind of album; a whole opera would not be able to sell as well as a "greatest hits" collection, which is what this album is. This week, The Three Tenors in Concert 1994 is in the seventh position on the charts. It looks like this album will rise to as high as fourth in sales, which in 1994 is a fair number of copies sold.

Curiously, the only streaming services that appear to have rights to this album are YouTube (and its eponymous music service), and SoundCloud. Notably Spotify and Tidal do not have it. Luckily I have access to YouTube Music so I listened to it there.

As mentioned above, this album is mix of "greatest hits" of opera and popular music. I am not a big opera afficionado, but even I can tell that these tenors are far more comfortable singing opera than popular songs. The opera songs are clearly very well sung. Unfortunately, the popular songs, like My Way, are halting and impacted by the fact that english is not these singers first language. I think that if they had stuck to singing only opera's greatest hits, it would have made the album better at the expense of its popularity. But as it is, the popular songs are not good. If you care to, listen to Sinatra's My Way, and then My Way off this album to hear what I mean.

Honestly, it appears that even the rights holders to this album are content to let this album fade into history. Streaming services are where the listeners are, and by keeping it off of most services, they are making it almost impossible to find. If I didn't have access to YouTube Music, I would not have put in the effort to listen to it. I think that you, dear reader, can safely leave this album in the past.

(*) There are four men on the album cover. I guess the fourth is the conductor of the orchestra. Still, it's incongruous to have "Three Tenors" and four people in the picture.

more ...

Boyz II Men - II

Shooting to #1 in its first week on the charts, II by Boyz II Men arrived a bit too late for my (pre-)teenaged angst, which I feel peaked during middle school. During middle school the Boyz II Men hit End of the Road was huge and listening to it now evokes memories of awkward middle school feelings. By the time I got to high school I think my angst (which was probably lower than many of my peers) was already subsiding. I think because of this, II and the songs on it, don't quite have the same impact as those off of Boyz II Men's first album Cooleyhighharmony.

There are two huge hits off of II, I'll Make Love To You and On Bended Knee, which me and most of my readers have surely heard before and continue to get radio airplay.

Boyz II Men are squarely in the R&B genre, and while I like R&B, it's not my main go-to. If I were to listen to some Boyz II Men, I would probably listen to Cooleyhighharmony before listening to II. II is high quality 90's R&B with record-breaking hit songs, but for me it just doesn't hit the same.

more ...

The Offspring - Smash

It was over 20 years ago, but if my memory is correct, I've seen The Offspring in concert twice. Needless to say, Smash is one of my favorite albums. On my streaming service (which is Tidal at the moment) it was already added to my list of favorite albums long before I wrote this review. According to last.fm, I've listened to this album almost 350 times.

This album is their breakthrough album into worldwide popularity. The song Come Out and Play reached #1 on the charts and received extensive radio airplay. It's likely, therefore, that I heard that song and the other big hit off the album, Self Esteem, on the radio when this album came out. However, I admit that I didn't really get into the band until I was in college.

I recommend this album very highly, especially if you're in the mood for some high energy punk rock. I recommend memorizing the string of curses in the bridge of Bad Habit; it's useful when you want to let off some steam.

more ...

Setting Hadoop Node Types on AWS EMR

Amazon Web Services (AWS) offers dozens (if not over one hundred) different services. I probably use about a dozen of them regularly, including Elastic Map Reduce (EMR) which is their platform for running big-data things like Hadoop and Spark.

EMR runs your work on EC2 instances, and you can pick which kind(s) you want when the job starts. You can also pick the "lifecycle" of these instances. This means you can pick some instances to run as "on-demand" where the instance is yours (barring a hardware failure), and other instances to run as "spot" which costs much less than on-demand but AWS can take away the instance at any time.

Luckily, Hadoop and Spark are designed to work on unreliable hardware, and if previously done work is unavailable (e.g. because the instance that did it is no longer running), Hadoop and Spark can re-run that work again. This means that you can use a mix of on-demand and spot instances that, as long as AWS doesn't take away too many spot instances, will run the job for lower cost than otherwise.

A big issue with running Hadoop on spot instances is that multi-stage Hadoop jobs save some data between stages that can't be redone. This data is stored in HDFS, which is where Hadoop stores (semi)permanent data. Because we don't want this data going away, we need to run HDFS on on-demand instances, and not run it on spot instances. Hadoop handles this by having two kind of "worker" instances: "CORE" instances that run HDFS and have the important data, and "TASK" types that do not run HDFS and store easily reproduced data. Both types share in the computational workload, the difference is what kind of data is allowed to be stored on them. It makes sense, then, to confine "TASK" instances to spot nodes.

The trick is to configure Hadoop such that the instances themselves know what kind of instance they are. Figuring this out was harder than it should have been because AWS EMR doesn't auto-configure nodes to work this way; the user needs to configure the job to do this including running scripts on the instances themselves.

I like to run my Hadoop jobs using mrjob which makes development and running Hadoop with Python easier. I assume that this can be done outside of mrjob, but its up to the reader to figure out how to do that.

There are three parts to this. The first two are two Python scripts that are run on the EC2 instances, and the third is modifying the mrjob configuration file. The Python scripts should be uploaded to a S3 bucket because they will be downloaded to each Hadoop node (see the bootstrap actions below).

With the changes below, you should be able to run a multi-step Hadoop job on AWS EMR using spot nodes and not lose any intermediate work. Good luck!

make_node_labels.py

This script tells yarn what kind of instance types are available. This only needs to run once.

#!/usr/bin/python3
import subprocess
import time

def run(cmd):
    proc = subprocess.Popen(cmd,
        stdout = subprocess.PIPE,
        stderr = subprocess.PIPE,
    )
    stdout, stderr = proc.communicate()

    return proc.returncode, stdout, stderr

if __name__ == '__main__':

    # Wait for the yarn stuff to be installed
    code, out, err = run(['which', 'yarn'])
    while code == 1:
        time.sleep(5)
        code, out, err = run(['which', 'yarn'])

    # Now we wait for things to be configured
    time.sleep(60)

    # Now set the node label types
    code, out, err = run(["yarn",
        "rmadmin",
        "-addToClusterNodeLabels",
        '"CORE(exclusive=false),TASK(exclusive=false)"'])

get_node_label.py

This script tells Hadoop what kind of instance this is. It is called by Hadoop and run as many times as needed.

#!/usr/bin/python3
import json
k='/mnt/var/lib/info/extraInstanceData.json'
with open(k) as f:
    response = json.load(f)
    print("NODE_PARTITION:", response['instanceRole'].upper())

mrjob.conf

This is not a complete mrjob configuration file. It shows the essential parts needed for setting up CORE/TASK nodes. You will need to fill in the rest for your specific situation.

runners:
  emr:

    instance_fleets:
    - InstanceFleetType: MASTER
      TargetOnDemandCapacity: 1
      InstanceTypeConfigs:
      - InstanceType: (smallish instance type)
        WeightedCapacity: 1
    - InstanceFleetType: CORE
      # Some nodes are launched on-demand which prevents the whole job from
      # dying if spot nodes are yanked
      TargetOnDemandCapacity: NNN (count of on-demand cores)
      InstanceTypeConfigs:
      - InstanceType: (bigger instance type)
        BidPriceAsPercentageOfOnDemandPrice: 100
        WeightedCapacity: (core count per instance)
    - InstanceFleetType: TASK
      # TASK means no HDFS is stored so loss of a node won't lose data
      # that can't be recovered relatively easily
      TargetOnDemandCapacity: 0
      TargetSpotCapacity: MMM (count of spot cores)
      LaunchSpecifications:
        SpotSpecification:
          TimeoutDurationMinutes: 60
          TimeoutAction: SWITCH_TO_ON_DEMAND
      InstanceTypeConfigs:
      - InstanceType: (bigger instance type)
        BidPriceAsPercentageOfOnDemandPrice: 100
        WeightedCapacity: (core count per instance)
      - InstanceType: (alternative instance type)
        BidPriceAsPercentageOfOnDemandPrice: 100
        WeightedCapacity: (core count per instance)

    bootstrap:
    # Download the Python scripts to the instance
    - /usr/bin/aws s3 cp s3://bucket/get_node_label.py /home/hadoop/
    - chmod a+x /home/hadoop/get_node_label.py
    - /usr/bin/aws s3 cp s3://bucket/make_node_labels.py /home/hadoop/
    - chmod a+x /home/hadoop/make_node_labels.py
    # nohup runs this until it quits on its own
    - nohup /home/hadoop/make_node_labels.py &

    emr_configurations:
      - Classification: yarn-site
        Properties:
          yarn.node-labels.enabled: true
          yarn.node-labels.am.default-node-label-expression: CORE
          yarn.node-labels.configuration-type: distributed
          yarn.nodemanager.node-labels.provider: script
          yarn.nodemanager.node-labels.provider.script.path: /home/hadoop/get_node_label.py
more ...

Neil Young - Sleeps With Angels

Hitting #9, Sleeps with Angels by Neil Young and Crazy Horse is mostly unremarkable. I am pretty sure I had never heard any of the songs on this album before listening to it for this project. I like some of Neil Young's earlier albums and some of them are legitimately all time greats. This album is not, and surely hit #9 only on the strength of Neil Young's past work.

The one track I will remark upon is the 11th song on the album, Piece of Crap. This song is Neil Young complaining about things he purchased that broke almost immediately. What is it with middle-aged male rock stars writing songs like this? We've previously seen this with Jimmy Buffet. No one cares about your opinion!

In summary, if you want some Neil Young, try some of his better albums and ignore this one.

more ...