btrfs scrub complete

This was the status at the end of the scrub:

[root@supermario ~]# /usr/sbin/btrfs scrub start -Bd /media/Photos/
scrub device /dev/sdd1 (id 1) done
 scrub started at Tue Mar 21 17:18:13 2017 and finished after 05:49:29
 total bytes scrubbed: 2.31TiB with 0 errors
scrub device /dev/sda1 (id 2) done
 scrub started at Tue Mar 21 17:18:13 2017 and finished after 05:20:56
 total bytes scrubbed: 2.31TiB with 0 errors

I’m a bit perplexed at this information. Since this is a RAID1, I would expect it to be comparing info between disks – is this not so? If not, why? Because I would have expected both disks to end at the same time. Also, interesting to note that the 1TB/hr stopped being the case at some point.

Speed of btrfs scrub

Here’s the output of the status command:

[root@supermario ~]# btrfs scrub status /media/Photos/
scrub status for 27cc1330-c4e3-404f-98f6-f23becec76b5
 scrub started at Tue Mar 21 17:18:13 2017, running for 01:05:38
 total bytes scrubbed: 1.00TiB with 0 errors

So on Fedora 25 with an AMD-8323 (8 core, no hyperthreading) and 24GB of RAM with this hard drive and its 3TB brother in RAID1 , it takes about an hour per Terabyte to do a scrub. (Which seems about equal to what a coworker told me his system takes to do a zfs scrub – 40ish hours for about 40ish TB)

Finally have btrfs setup in RAID1

A little under 3 years ago, I started exploring btrfs for its ability to help me limit data loss. Since then I’ve implemented a snapshot script to take advantage of the Copy-on-Write features of btrfs. But I hadn’t yet had the funds and the PC case space to do RAID1. I finally was able to implement it for my photography hard drive. This means that, together with regular scrubs, I should have a near miniscule chance of bit rot ruining any photos it hasn’t already corrupted.

Here’s a documentation of some commands and how I got the drives into RAID1:

 

Before RAID:

# btrfs fi df -h /media/Photos
Data, single: total=2.31TiB, used=2.31TiB
System, DUP: total=8.00MiB, used=272.00KiB
System, single: total=4.00MiB, used=0.00B
Metadata, DUP: total=3.50GiB, used=2.68GiB
Metadata, single: total=8.00MiB, used=0.00B
GlobalReserve, single: total=512.00MiB, used=0.00B

# btrfs fi usage /media/Photos
Overall:
    Device size:                   2.73TiB
    Device allocated:              2.32TiB
    Device unallocated:          423.48GiB
    Device missing:                  0.00B
    Used:                          2.31TiB
    Free (estimated):            425.29GiB      (min: 213.55GiB)
    Data ratio:                       1.00
    Metadata ratio:                   2.00
    Global reserve:              512.00MiB      (used: 5.64MiB)

Data,single: Size:2.31TiB, Used:2.31TiB
   /dev/sdd1       2.31TiB

Metadata,single: Size:8.00MiB, Used:0.00B
   /dev/sdd1       8.00MiB

Metadata,DUP: Size:3.50GiB, Used:2.68GiB
   /dev/sdd1       7.00GiB

System,single: Size:4.00MiB, Used:0.00B
   /dev/sdd1       4.00MiB

System,DUP: Size:8.00MiB, Used:272.00KiB
   /dev/sdd1      16.00MiB

Unallocated:
   /dev/sdd1     423.48GiB

   
[root@supermario ~]# btrfs device add /dev/sda1 /media/Photos/
/dev/sda1 appears to contain an existing filesystem (btrfs).
ERROR: use the -f option to force overwrite of /dev/sda1
[root@supermario ~]# btrfs device add /dev/sda1 /media/Photos/ -f

[root@supermario ~]# btrfs fi usage /media/Photos
Overall:
    Device size:                   6.37TiB
    Device allocated:              2.32TiB
    Device unallocated:            4.05TiB
    Device missing:                  0.00B
    Used:                          2.31TiB
    Free (estimated):              4.05TiB      (min: 2.03TiB)
    Data ratio:                       1.00
    Metadata ratio:                   2.00
    Global reserve:              512.00MiB      (used: 0.00B)

Data,single: Size:2.31TiB, Used:2.31TiB
   /dev/sdd1       2.31TiB

Metadata,single: Size:8.00MiB, Used:0.00B
   /dev/sdd1       8.00MiB

Metadata,DUP: Size:3.50GiB, Used:2.68GiB
   /dev/sdd1       7.00GiB

System,single: Size:4.00MiB, Used:0.00B
   /dev/sdd1       4.00MiB

System,DUP: Size:8.00MiB, Used:272.00KiB
   /dev/sdd1      16.00MiB

Unallocated:
   /dev/sda1       3.64TiB
   /dev/sdd1     423.48GiB


[root@supermario ~]# btrfs balance start -dconvert=raid1 -mconvert=raid1 /media/Photos/

Done, had to relocate 2374 out of 2374 chunks

Post-RAID:

[root@supermario ~]# btrfs fi usage /media/Photos
Overall:
    Device size:                   6.37TiB
    Device allocated:              4.63TiB
    Device unallocated:            1.73TiB
    Device missing:                  0.00B
    Used:                          4.62TiB
    Free (estimated):            891.01GiB      (min: 891.01GiB)
    Data ratio:                       2.00
    Metadata ratio:                   2.00
    Global reserve:              512.00MiB      (used: 0.00B)

Data,RAID1: Size:2.31TiB, Used:2.31TiB
   /dev/sda1       2.31TiB
   /dev/sdd1       2.31TiB

Metadata,RAID1: Size:7.00GiB, Used:2.56GiB
   /dev/sda1       7.00GiB
   /dev/sdd1       7.00GiB

System,RAID1: Size:64.00MiB, Used:368.00KiB
   /dev/sda1      64.00MiB
   /dev/sdd1      64.00MiB

Unallocated:
   /dev/sda1       1.32TiB
   /dev/sdd1     422.46GiB
   
   
[root@supermario ~]# btrfs fi df -h /media/Photos
Data, RAID1: total=2.31TiB, used=2.31TiB
System, RAID1: total=64.00MiB, used=368.00KiB
Metadata, RAID1: total=7.00GiB, used=2.56GiB
GlobalReserve, single: total=512.00MiB, used=0.00B

And here’s the status of my first scub to test out the commands:

[root@supermario ~]# btrfs scrub status /media/Photos/
scrub status for 27cc1330-c4e3-404f-98f6-f23becec76b5
 scrub started at Tue Mar 21 17:18:13 2017, running for 00:09:10
 total bytes scrubbed: 145.57GiB with 0 errors

Podcasts I’m Listening to in 2017

I’ve both added and dropped some podcasts since last time around. Where I’m listing the same podcast as last year I may use the same description as in the past with slight (or no) variation.

Video Games

Giant Beastcast – The East Coast Giant Bomb crew. This podcast is more about video game culture and news stories. It spends a lot less time on the “what you’ve been playing” section. I’ve actually grown to enjoy this one way more than the Bombcast because of the focus on the cultural and news aspects.

Public Radio

Radiolab – Heard about them because sometimes their stories are used on This American Life. Radiolab is a lot like TAL except with a much bigger focus on sound effects. It is, in a way, the descendent of the old radio shows of the 30s and 40s. (Approx 30-45 min)

Marketplace – This is a really good economics show.  They talk about news that happened that day as well as stories that have been pre-prepared.  This podcast has really helped me to understand the recession and why it happened as well as whether it is getting any better.  (Approx 30 min long)

Codebreaker: A tech podcast. Season 1 asked the question “Is it Evil?” of various technologies.

On the Media –  Although not always perfect and although it leans a little more left than moderate, On the Media is a good podcast about media issues.  Examples include: truth in advertising, misleading news stories on the cable networks, debunking PR-speak from the White House, and other media literacy items.  I tend to enjoy it nearly all the time and it’s a good balance to news on both sides of the spectrum, calling out CNN as often as Fox News. (Approx 1 hour long)

Fresh Air – Fresh Air is one of NPR’s most famous shows.  It is similar in topic scope as Talk of the Nation, but without any listener call-in.  Also, it tends to have a heavier focus on cultural topics (books, movies, etc).  Terry Gross has been hosting Fresh Air for decades and is a master at interviewing her guests.  Every once in a while there is a guest host or the interview is conducted by a specialist in that industry.  (Approx 1 hour)

Freakonomics – Essentially an audio, episodic version of the eponymous book. If you enjoyed the insights of the book, you’ll really enjoy this podcast. (Approx 30 min)

The Infinite Monkey Cage – a BBC radio show about science. A panel of scientists (and one media star who is interested in science) talk about a topic. The only bummer is that the shows are quite infrequent. Something like 4 weekly episodes per quarter (Approx 30 min)

History

Dan Carlin’s Hardcore History – if you’re a history buff you really need to be listening to this podcast. Dan’s well-researched podcast presents bits of history you never heard of in ways you never thought of it. He does a great job of making ancient societies relate-able. The only bad thing is that there is a long gap between episodes due to the research involved. (Varies. Approx 1.5 – 4 hrs)

The Dollop – A very funny and very profane look at American history. The premise: The host tells a story of American history to the other guy, who doesn’t know ahead of time what the story’s about. It’s a premise that leads to some great reactions from the person not in the know (usually Gareth, but sometimes they do a Reverse Dollop). Also, listening to this podcast is a great reminder that the past is full of some really messed up people and situations.

Comedy

WTF with Marc Maron – This is a pretty solid podcast which mostly consists of Marc Maron interviewing comedians.  As with any interview-based show, the episodes are hit or miss, although more often than not they are really good.  Occasionally he does a live show in which he’s still interviewing people, but with 4-6 per episode it’s much less in-depth.  And, since it has an audience, the guest is performing more than being open.  The only irritating thing is that Marc starts off each episode with a rant/listener email reading.  Most of the time this is neither interesting nor funny.  Clearly the reason people are tuning is is to hear the interviews or they’d take up a minority of the show instead of the bulk of the show.  So I wish he’d do his rant at the end of the episode so that those of us who just want to hear a great interview with a comedian we like can easily skip the monologue.  (Approx 1.5 hours long)

Science Fiction Short Stories

Clarkesworld Magazine

Escape Pod

There isn’t much to differentiate these two podcasts.  They both feature great selections of short stories.  I added them to my podcatcher to get a dose of fiction among the more non-fiction podcasts I usually listen to.  Also, there’s something great about short-form fiction where you have to build the world AND tell the story in a very concise way.  The main difference between the two podcasts is that Clarkesworld has pretty much just one narrator who’s quite incredible.  Escape Pod tends to have a group of narrators.  Most of them are great – every once in a while there’s a less than stellar one.  Clarkesworld tends to end the story with the narrator’s interpretation and Escape Pod tends to end with reader comments from a few episodes ago. (varies. 15 min to 45 min)

Movies

How Did This Get Made – Paul Scheer, June Diane Raphael and Jason Mantzoukas (plus the occasional guest) watch movies from the last few decades that will probably be in the future’s version of Mystery Science Theatre 3000. The movies are often incredibly baffling and full of strange plot points. One of the best parts of the show is “Second Opinions” where Paul goes to Amazon.com to get 5 Star ratings for the movie they just spent about an hour lambasting. Every other episode is a mini episode that previews the next show, has a section called “Corrections and Omissions”, and Qs and As. The first two sections are great. The last one varies depending on the quality of the questions and answers. It can be pretty funny, but sometimes I just skip it. (Approx 1 hr)

News

The Bugle – Jon Oliver (from The Daily Show) and some other guy talk about the news. In a way, it’s like a How Did This Get Made for news. Also similar to The Daily Show in the incredulity of what people in the news are doing. (Approx 30 min)

Uh, Yeah Dude – tagline: “America through the eyes of two American Americans” If you like My Brother, My Brother, and Me, you’ll probably like this podcast’s style. They talk about both important news and cultural news and generally make fun of it. I call the commentary smart dumb commentary, it’s like Seth Rogan movies – the characters are providing smart insight through dumb commentary. (Approx 1 hour)

Political Gabfest (from Slate) – This has taken the role that Talk of the Nation’s Wednesday slot left vacant when the show went off the air. They talk about politics (usually swinging heavily left or sometimes libertarian while ToTN was more neutral) and I get a dose of what everyone’s talking about in politics. (Approximatly 1 hour)

Common Sense with Dan Carlin – If you like the attention Dan puts towards Hardcore History, then you’ll probably love this take on the news. Usually Dan takes one (max 2) topics from the news and by the time he’s done with it, I’ve seen 2-3 different points of view. Sometimes there’s a clearly right point of view (the sky is blue), but other times each side has valid points and neither one has the complete high ground. Dan is a complex creature, like many of us. On some topics he’s more likely to agree with Dems, other time Republicans, and sometimes neither. Other times he agrees with their Platonic Ideal Version, but not their RealPolitik version. Either way, I’m always overjoyed when it shows up – which is somewhere between biweekly and monthly. (Approximately 45 minutes)

FiveThirtyEight Elections – a great, wonky podcast from the guys that brought you the most accurate election predictions. Has continued beyond the elections due to the odd circumstances of the new administration.

Culture

Sword and Laser – A fantasy and sci-fi book club. They interview up-and-coming authors and discuss the book club’s monthly book. Also cover news and upcoming new releases. (Varies. Approx 30 min)

Rocket Talk (Tor.com) – The host speaks with one or two Science Fiction and Fantasy authors about various things: their latest book, trends in the genres, publishing trends, etc. Sometimes a great show and sometimes I skip it halfway through. (Approximately 45 min)

Give Me Fiction – A pretty hilarious (to my sense of humor) super short story podcast. It’s recorded live (which often spices up comedy) and seems to skew Gen X/Millenial in its humor.  (Varies, but usually under 15 minutes)

Talkin’ Toons with Rob Paulsen – The great voice actor behind two Ninja Turtles, Pinky, Yakko, and many, many other cartoon characters interviews other voice actors. It’s like WTF,  but without the annoying self-reflection 10-15 minutes that I always skip on Maron’s podcast. If you enjoy voice acting nerdom or want a place to start, check this out. It’s recorded in front of an audience which is often great, but once in a while leads them on tangents that take away from their great anecdotes. (Approximately 1 hour)

Boars, Gore, and Swords: A Game of Throne Podcast – two comedians (and sometimes some friends) discuss each episode of A Game of Thrones and each chapter of the books. While it’s primarily funny, it does sometimes lead me to some deeper insights into each episode.

The i Word: An Image Comics Podcast – different writers and artists working on a comic for Image Comics are interviewed about their comic as well as something unrelated to comics that they’re really into.

The Allusionist – a podcast about words, where they come from, and how we use them

Science

You Are Not So Smart – the host, who wrote an eponymous book, tackles topics of self-delusion. Examples include placebos, alternative medicine, and conspiracy theories. (Approximately 45 min)

Probably Science – some comedians who used to work in the science and tech fields bring on other comedians (of various levels of scientific knowledge) to discuss pop science and where the articles might be misleading.

Misc

99% Invisible – Similar in scope to the NPR podcast Invisibilia, this one was there first. It explores the things that are in the background of life. Examples include architectural details we often miss or stories that tell how regions came to be. Production is similar in sonic greatness to RadioLab.  (Approx 15 min)

Tell Me Something I don’t Know – a gameshow from the guys behind Freakonomics. Learn some new facts in a fun and often funny way.

GoodMuslimBadMuslim – a window into what it’s like to be a Muslim in modern America.

Politically Reactive – W. Kamau Bell and Hari Kondabolu discuss politics with some jokes and some interviews with people mostly on the left, but sometimes on the right. They are respectful and always provide context to what’s being said.

More Perfect – Explores Supreme Court rulings and how they affect America.

Song Exploder – they pick a song and a member from that band explains how they put it together. They usually look at each layer of the track – vocals, drums, guitar, etc and talk about why each decision was made. Can range from interesting to revealing.

 

LXC Project Part 3: Starting and logging into my first container

Continuing my LXC project, let’s list the installed containers:

lxc-ls

That just shows the name of the container – lemmy. For completion’s sake, I’m going to start it as a daemon in the background rather than being sent straight into the console:

lxc-start -n lemmy -d

As per usual Linux SOP, it produced no output. Now to jump in:

lxc-console -n lemmy

That told me I was connected to tty1, but did not present a login. Quitting out via Ctrl-a q let me go back to the VM’s tty, but trying again did not get me login. There’s some weird issue that doesn’t allow it to work, however, this did:

lxc-attach -n lemmy

I’m not 100% sure why it works and console doesn’t, but there seems to be discussion about systemd causing issues. At any rate, the only limitation of lxc-attach is that the user doing it has to also exist on the container. However, given that these are server boxes, root is fine and so it works.

Unfortunately, networking does not work. That’ll be for next time.

LXC Project Part 2: Setting up LXC

I’m continuing on from yesterday’s post to get the VM ready to host LXC. I’m starting with Centos 7 so the first thing I had to do was enable the epel repos:

yum install epel-release

Then, according to the guide I was following, I had to also install these package:

 yum install debootstrap perl libvirt

That installed a bunch of stuff. I also get that they’re trying to break out what they’re doing, but they probably could have installed both that and the LXC stuff below in one blow:

yum install lxc lxc-templates

Then start the services we just installed:

systemctl start lxc.service
systemctl start libvirtd

Then, a good thing to do to make sure everything’s working correctly is to run the following:

lxc-checkconfig

If you get all “enabled” (in Centos 7 it’s also green), then you’re in good shape. You can see which templates you have installed with the following command:

ls -alh /usr/share/lxc/templates/

When I did that, I had alpine, altlinux, busybox, centos, cirros, debian, fedora, gentoo, openmandriva, opensuse, oracle, ubuntu, and ubuntu-cloud.

As my last act of this post, I’ll create my first container:

lxc-create -n lemmy -t centos

This is going to run Cockpit to keep an eye on servers on my network. After running that command, it looked like a yum or dnf install was happening. Then it did some more stuff and then told me what the root password was. It also told me how to change it without having to start the container. So I did that. Next time…starting and running a container.

LXC Project Part 1: Bridging the Connection

As I mentioned before, I’m looking at Linux Containers (LXC) to have a higher density virtualization. To get ready for that, I had to create a network bridge to allow the containers to be accessible on the network.

First I installed bridge-utils:

yum install bridge-utils -y

After that, I had to create the network script:

vi /etc/sysconfig/network-scripts/ifcfg-virbr0

In there I placed:

DEVICE="virbr0"
BOOTPROTO="static"
IPADDR="192.168.1.35" #IP address of the VM
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1" 
DNS1="192.168.1.7"
ONBOOT="yes"
TYPE="Bridge"

Then, since my ethernet on this machine is eth0

vi /etc/sysconfig/network-scripts/ifcfg-eth0

and added

BRIDGE="virbr0"

and after a

 

systemctl restart network

it was supposedly working. I was able to ping www.google.com. We’ll see what happens when I start installing LXC Containers.

How did I not know about LXC Containers?

Back when I first was working on replacing my Pogoplug (the original BabyLuigi), I was looking at potentially using it to learn about Docker in addition to creating virtual machines that were actually useful instead of just playing around with VMs for looking at Linux distros. The benefit of Docker was to have the isolation of VMs without the overhead of VMs. Also, since it was trending pretty hard, I figured it’d be good for my career to have some experience with it. So I spent a few weeks researching Docker and playing around with some of the online demos. I read lots about how it was used and how to avoid the usual pitfalls. But in the end I went with a VM that did a bit more than I wanted; I’d wanted to separate services so that updating one thing wouldn’t cause me to lose everything. However, the more I looked into it, the more it looked like unnecessary headache without enough of a benefit. Dockers were SO isolated that if you wanted to run a LAMP stack you had to run at least 3 Docker containers and find a way to string them together and have a separate pool of storage they could all access.

Recently I’ve been hanging around in the Home Lab subreddit. There are a lot of people in there like me who enjoy learning about computing and using it to make things easier (if a bit more complex) at home. It pairs well with the Self Hosted subreddit, another thing that is important to me because of how many services have been changed or dropped (see Google Reader) from under me. I prefer to be in charge of things on my own. In that subreddit I heard about LXC – Linux Containers. I was intrigued and after I came across it again, I did some research. LXC is what I wanted Docker to be (which makes sense since Docker is forked from LXC). It allows you to run what is essentially a VM without the overhead of simulating hardware. I’ve seen some webpages that claim you can get 41 LXC containers where you’d be able to fit about 2 VMs. I haven’t seen anything that high in the Home Lab subreddit, but I HAVE seen some pretty impressive densities. Since I don’t have the money for a computer that could hold the number of VMs I’d love to run, I’m going to be exploring LXC containers. I’ll blog about my progress so you can learn along with me. I’m pretty excited about learning this new tech.

Using Flatpak to install LibreOffice on Fedora 24

After someone told me that a PDF I’d created in Calligra Office was illegible and having issues with spreadsheets loading slowly, I decided to install LibreOffice. However, rather than go with the version in the repos, I decided to go with Flatpak – which allows for a more advanced version via the usage of runtimes. First, I had to install Flatpak:

[code language=”bash”]

sudo dnf install flatpak

[/code]

Then I needed to install the runtimes. The LibreOffice page uses the –user tag, but I think that is just for installing it just to yourself rather than for the whole system. So I am omitting that.

[code language=”bash”]
wget https://sdk.gnome.org/keys/gnome-sdk.gpg
flatpak remote-add –gpg-import=gnome-sdk.gpg gnome https://sdk.gnome.org/repo/
flatpak install gnome org.gnome.Platform 3.20
[/code]

That took a bit and said things like “Writing Objects” on the terminal. Eventually that was done. Then it was time for LibreOffice. I grabbed the file from the website, then:

[code language=”bash”]

flatpak install –bundle LibreOffice.flatpak

[/code]

After doing that I did an alt-F2 to see if it could launch like a regularly installed application. It did not show up. Perhaps Flatpak only works well with Gnome for now?

[code language=”bash”]
flatpak run org.libreoffice.LibreOffice
[/code]

Worked, though.

In the future if I want to update it, I need to run:

[code language=”bash”]
flatpak update –user org.libreoffice.LibreOffice</pre>
[/code]

I do have to say that I’m disappointed it doesn’t appear in my alt-F2 menu.

SuperMario is at Fedora 24

My main computer is now on Fedora 24. This time around I only had to uninstall HDR Merge (which was from my COPR and I hadn’t built a Fedora 24 version yet) and OBS-Studio because there isn’t a Fedora 24 package for it yet. Not bad.

After rebooting, I didn’t have graphics. Then rebooting once more kicked the akmod into gear and now things appear to be working well. 2 more computers left to upgrade to Fedora 24 – the VM server and the Kodi living room box.

Fedora 24 is out!

Fedora 24 was released yesterday. I updated Daisy, my big laptop, first since it’s not critical. If the update broke something I wouldn’t care. The only hitch it had was that I had to reinstall the RPMFusion repos from the RPM for Fedora 24. Otherwise it was saying that one of the packages wasn’t signed and refused to do the upgrade. Probably has something to do with the fact that for the last release or two, RPMFusion wasn’t exactly in the best of conditions. I’m currently updating my netbook (Kuribo), but that’s more of an all-evening affair since it’s just running on an Intel Atom. There are three more Fedora machines in the house – SuperMario, TanukiMario, and BlueYoshi. I’ll probably save the livingroom Kodi (BY) for last since everyone in the house uses that to watch TV.

So far I haven’t noticed too many changes on KDE, but the icon indicating that I have updates is different. That seems to change with every release (or at least every other one).

Tomahawk – unify all your cloud and local audio

It’s been a long time since I last took a look at an innovative music player. Back in 2006 I explored Songbird ) and in 2008 I looked at some of the unique features over two posts: Taking Another Look at Songbird and Play the Web. The ability to grab MP3s off of sites, in particular seemed to be a great way to take advantage of the music blogs as a way to discover new music. Some of this has been superseded by certain browser plugins that can grab all files off a webpage based on regular expressions. In the last decade, there has been a big change in the way most people experience digital music. Most people have stopped buying music in favor of either using Youtube or a subscription service like Spotify, Rdio, Amazon Prime Music, or Google Music.

I continue to say that there is a benefit in owning music. For one thing, as we grow older, we tend to add less new bands and albums to our repertoire. So the cost of of albums is less than $10/month for these services. (Although, if they reach the predicted equilibrium price of $5/month, I think it becomes cheap enough that it becomes a “why not?” subscription). Second, some of the bigger artists have decided not to be on these services or to only be on one of them. If this balkanization becomes mainstream, it’ll be as annoying as the movie and TV business with a subscription needed to three or four services needed to get it all. So if you want Taylor Swift, you don’t have a choice – you need to own some music. But not only am I seemingly in the minority, with Google Music you can have access to all your purchased music and (for a fee) all the rest as well.

However, even I have been making big use of Spotify at work since their web-only free tier actually offers a lot of benefits. I can pick any song I want and Google Music is blocked at work. So I’ve become strategic in my purchases (which, I think, is why the music industry has been turning so negative against Spotify and its brethren). Can I satisfy my musical “needs” by listening to a song or artist on Spotify at work (at home I’d mostly be using mobile and without payments you’re stuck in random listening mode – which can be quite annoying) or do I want to buy the album so that I can listen to it whenever I want – including in the car via Google Music? On the assumption that Amazon Music has a lot of the same music (again, I have no idea how much balkanization there is in the music world), I’ve already got Prime. And there’s always Youtube if I want to go searching there. So if I want to listen to a song or an artist, do I want to have to remember where I can listen to it?

Enter Tomahawk. This music player has been around since 2011, when it acquired a lot of accolades and then everyone seemed to stop talking about it. The website stopped being updated about a year ago which is when they had their last official release, 0.8.4. However, I checked on github and development continues, even if it’s been forever since their last release. The reason I make a big deal about this is two-fold. First of all, projects (whether open source or closed source) can die. Programmers move on or the need it was trying to solve is eliminated. Second, most distros only package releases — Fedora is stuck on 0.8.4 in the repositories. And many people would rather use releases than nightlies.

So what Tomahawk does is to unify all your music sources so that if you search for, say, Five Iron Frenzy, it will look in your local music, Spotify, Amazon Prime Music, Soundcloud, Beats music, Youtube, and a bunch of other places to present you with all the music available. It’s pretty awesome. I don’t need to remember if I have a song purchased or in Spotify (or somewhere else). Also, importantly for me, it will also Scrobble the music no matter where it came from. (That is, send the stats to personal charts website, Last.fm)

More importantly for me, as a lover of music, is the music discovery aspect of Tomahawk. You can use it to discover music in a number of ways. (This could be its most powerful killer app if it could reach 1.0 and become accepted among the musical cognoscenti) First of all, you could become “friends” with someone and it shows you their library. This is the biggest thing I miss from the original Napter and Kazaa apps. Sure, it was amazing in those early days to have access to free music, but the thing I loved to do most was to explore users and see what music they had. I discovered a lot of music that way before it was all closed up because of the copyright infringement. Tomahawk re-enables this feature without the problematic copyright infringement. If I’m following my brother and notice something interesting, I can click on it and if it’s available on one of my services – Spotify, Google Music, etc – I’ll be able to listen to it and the artist still gets royalties! Win/Win!  And I have discovered a lot of new artists from my little brother as we tend to listen to different stuff so I miss out on artists from not following the scene. Also, it doesn’t have to be an active thing. They have a feature called “inbox” where Dan could place a song he wanted me to check out. Second, Tomahawk has a feature to see the charts from various places – iTunes, Billboard, Last.fm, etc – and it’ll find music based on that. So, as I mentioned before, as we get older we tend to disconnect from the places where people find out about new music. So I could periodically check out the top 200 on Billboard and see if I have a new favorite artist there. Finally, the day before I wrote this I was able to use Tomahawk to listen to some music from an artist I’d only heard one song from before. Then I looked at related artists and discovered even more artists I’d never heard of before, but which I liked.

A quick aside that I didn’t see fitting anywhere else – this program is actually pretty awesome for a non-tech person like my wife. The interface makes sense and it provides exactly the functionality she would want – find me this song – I don’t care from where. Right now she often complains about needing to switch from Google Music to Pandora to Youtube to find what she’s looking for.

Ok, so let’s look at my use of 0.8.4 on Fedora. (More on why I’m using an old version later)

Tomahawk - My Collection Strangely missing albums
Tomahawk – My Collection Strangely missing albums

This version has a bug with this view where my albums don’t show up. But when I go to song view, it’s all there:

Tomahawk - My Collection - Song View
Tomahawk – My Collection – Song View

Interestingly, in Google Music, the other view works perfectly:

Tomahawk - Google Music
Tomahawk – Google Music

I went and opened up Weird Al’s Bad Hair Day and here’s the view I got:

Tomahawk - Weird Al - Bad Hair Day
Tomahawk – Weird Al – Bad Hair Day

So, among the sources I was able to add in 0.8.4 – Google Music, Soundcloud, and Youtube – it was able to fill in the whole album. I only had about 3 or so of those songs. All the rest were found on Youtube. Only track 8 couldn’t be found in any of those sources. I wasn’t able to add Amazon Music or many of the others because they don’t work with older versions like 0.8.4. (Another reason they need more stable releases so we can have more up to date stuff in the Fedora repos)

Given the love the developers of Tomahawk have for music and music discovery, I have high hopes for their Last.fm replacement, Hatchet. For now, it just Scrobbles music and provides minimal ability to follow others and see what they’re listening to. It doesn’t have as many resolvers as the Android app or the desktop app – I don’t know if more are coming or of it’s a limitation of the API policies of the sites they’re collecting from. Still, if they can ever get it out of beta, it could potentially be what everyone is disappointed that Last.fm didn’t become – a great place to discover new music.

Speaking of the Android app, it works fairly well. It’s missing a couple key things. First of all, it needs to be able to Scrobble to Last.fm. Until Hatchet takes off a bit more, I’m not ready to abandon Last.fm in favor of it. Sure, Last.fm has been losing money for CBSi (which is dumb, they should be somehow making money off of all that play data) and might go away. But Hatchet isn’t even publicly launched yet. Second, it needs a few settings to, say, only use Wi-Fi if that’s important to me. (And with bandwidth restrictions on the cell network, it’s important to many).

I tried compiling the latest version in git for Fedora last night. I spent a couple hours at it and had to give up when I couldn’t figure out what was going wrong. Mostly it seems that the Linux devs are working on Ubuntu and/or Debian and so some of the libraries were in the wrong spot. In case any of the devs read this far, I’d like to advocate more releases with smaller dev cycles like Firefox/Chrome/etc so that we can get up-to-date packages on non-Debian platforms (or maybe have a git-based COPR repo). I’ve done quite a bit of compiling in my time (even creating RPMs) so if I couldn’t get it to compile, that means they’re limiting the reach of Tomahawk. To get Cmake to finish I had to create a symlink in /usr/lib/include for echonest with echonest5.

So, as we come to the end, I’d like to say that I’ve learned a lot and matured a lot in the decade since I covered Songbird. While Tomahawk is awesome and SHOULD end up the main music player for anyone who cares about music, I know that the best tech doesn’t always win. (See Amiga or BeOS) Additionally, Tomahawk only works by the grace of the APIs of others. After a nice near-decade when the Internet was being all awesome and open-sourcey, it seems that everyone wants to be proprietary again. Twitter took away its APIs. Facebook and Google have moved away from Jabber/XMPP. The current “truth” is that you have to trap everyone in your walled garden. We’re back in the era of AOL and keeping people off the real Internet. And so Facebook is making it so you can do everything from reading the news to ordering a pizza without ever leaving FB. The websites that Tomahawk uses for resolving where to grab music from mostly need you to have a subscription (Spotify, Amazon Prime Music, Tidal) or be signed in (Google Music). So they’re already getting money from you. And Tomahawk doesn’t hide where the music’s coming from. An icon lets you know that it’s from Spotify or Amazon. So if you know where the music’s from and you’re already paying, you’d think that the businesses wouldn’t care. But, like I said, they don’t seem to think rationally. If they were to remove that functionality, Tomahawk would fall apart.

In conclusion, this music player has a lot of awesome potential. It’s been working to get there for the past 4-5 years. If they can pick up the pace of releases and the APIs don’t close up to them, they could become THE music app to have on the desktop, tablet, and phone. I wish them luck.