This is Why We Can't Have Nice (Free) Things  

There was a little internet kerfuffle last week when Matt Mullenweg from WordPress correctly pointed out that Wix was violating the GPL. Now, he did it in maybe not the nicest way (“If I were being honest, I’d say that Wix copied WordPress without attribution, credit, or following the license”), but at it’s core, his argument was true.

A core part of Wix’s mobile editor is forked from WordPress’ GPL licensed editor library.

And that’s pretty much all there is to it. In the end, if you use something that is GPL’d in your application, you walk a fine line of needing to open source and offer your source code under the GPL as well. The GPL is a viral license (GPLv3 particularly so), and including code licensed under it is, at best, something you should do with a close reading of the license. At worst, you simply just shouldn’t include any GPL code.

Wix’s CEO posted a response and completely missed the point. As did one of their engineers. They both seem to think that intent matters. While it does matter in that it helps us understand that there was probably not any malicious intent, the GPL is the GPL and it’s pretty clear.

As Daniel Jalkut says:

if you want to link your software with GPL code, you must also make your software’s source code available … You have to give your code away. That’s the price of GPL.

Many developers understand, and view the price of GPL as perfectly justified, while others (myself included) find it unacceptable. So what am I supposed to do? Not use any GPL source code at all in any of my proprietary products? Exactly. Because the price of GPL is too much for me, and I don’t steal source code.

In my office, we’ve basically made the same rule. Even though we don’t ship code, we still stay away from GPL’d code as much as possible, simply to avoid any chance of impropriety.

I look at the GPL like Dave Matthews Band. It sucks, there’s lots of other licenses just like it that are much, much better, and it’s fans are so annoying as to make it that much worse.

Trump's Economic Advisor  

At some point in the next day or so, I’ll write up my quick thoughts on this election (i.e. please vote Hillary, don’t vote Trump).

If you need more reason to not trust Trump and the people who are guiding his campaign, this New Yorker article by Adam Davidson should be more than enough:

This is an appealing fantasy for some. But Navarro’s view is not just simplistic, it is wrong and dangerous. There’s no reason to think China would acquiesce to Trump’s threats; doing so would all but guarantee that China would face an unending series of similar threats from America and others. Instead, it would most likely respond with tariffs of its own, shutting down American imports. China already trades more with the European Union than it does with the U.S., and would shift its trading strategy even more decisively away from us. It is hard to find a major American exporter who doesn’t see China as its most promising area of growth. A trade war would shatter General Motors, all of Hollywood, the music industry, Boeing, and the entire state of Washington, which exports more goods to China than any other.

There’s more:

These are just the easily predicted first-order effects of a massive tariff increase on all Chinese imports. There are many terrifying second-order impacts. Trump and Navarro focus on America’s manufacturing-trade deficit. But the global economy has also brought the U.S. a tremendous investment surplus. Foreign governments, companies, and citizens spend much of their savings on U.S. government bonds and the stock of American companies. While this investment has not always led to benign outcomes (the financial crisis of the previous decade was, in part, caused by all that cash from all over the world seeking returns in the U.S.), shutting down global trade would, necessarily, also shut down this investment. Interest rates would skyrocket, and the U.S. would enter a painful recession, possibly a depression.

This is the reason almost all economists are against a Trump presidency. This isn’t elites from their ivory towers; these are the people who understand how global economies work. And very few of them support Trump. What he’s selling, at best, isn’t possible; at worst, it’ll cause massive economic problems in the US.

742 Evergreen Terrace  

It took me about 2 years, a Patriots bye week, and some beer, but I finally put together the Lego set my wife got me for my birthday.

IMG 4159

Not bad.

Ah-gee-lay ... it must be Italian!  

Like all things that become the standard, agile[1]/scrum is seeing a bit of a backlash. I just happened across a couple of interesting posts that lay out interesting arguments against the new standards.

First, a long article from OK I Give Up:

This is actually my biggest gripe about Scrum. As mentioned above, in Scrum, the gods of story points per sprint reign supreme. For anything that doesn’t bring in points, you need to get the permission of the product owner or scrum master or someone who has a say over them. Refactoring, reading code, researching a topic in detail are all seen as “not working on actual story points, which is what you are paid to do”. Specialization is frowned upon. Whatever technology you develop or introduce, you are not allowed to become an expert at it, because it is finishing a story that brings the points, not getting the gist of a technology or mastering an idea. These are all manifestations of the control mania of Scrum.

I do think there is something nefarious to the godliness of points in the Scrum process (and the immediate, inarguable counter-argument that if it isn’t working for you, you’re doing it wrong).

Put in a slightly more graphical way:

Tasks

(Hilarious image from RobBomb)


  1. “Ah-gee-lay” – if you don’t get the reference, check out this video:  ↩

Privilege  

During an election when one of the most divisive issues is how to help groups that have been left behind by a globalized/information economy, privilege is a topic that comes up frequently. It’s a challenging situation, where (in my slightly naïve view) a group of predominantly white, rural and suburban, lower-middle class people are feeling a lack of support from the government in protecting their traditional jobs and roles in the economy. Whether or not protecting their jobs is the right approach (or whether we should be investing in training/re-training) is up for debate.

What’s I don’t think is up for debate is that this has lead to an uncomfortable schism between that group and other groups who have also been held back in the economy for various reasons (gender, race, economic status, etc). Ironically, as this weekend’s SNL showed, those groups actually have more in common than not.

But things seem to get caught up on the concept of privilege and whether or not certain groups should be getting an “advantage”.

This is a long prelude to what I think is a really great way to describe privilege, from an article by Toria Gibbs and Ian Malpass:

Privilege does not mean you had it easy. It means you had it easier. If a man grows up in poverty, and drags himself out of it, that’s impressive. That’s hard. If he’d been a woman, he’d have had to do all the same things, while also fighting society’s expectations of what women can or should do. Privilege is what you don’t have to deal with.

Apple Music Killer Feature: My Favorites Mix  

There was a lot of noise about Apple Music competing with Spotify in iOS 10 with the algorithmically generated New Music playlist. I’ve been doing more driving than usual lately and got a chance to check out the New Music playlists. There’s been some gems, but there’s a lot of stuff I don’t like. That’s alright though—you want to have your boundaries pushed.

The Favorites Mix playlists, however, have been amazing. And that really makes sense. I’ve been putting music into iTunes since 2002, and I’ve been a stickler about rating songs over the years. When Apple Music came out, I took everything I’d rated 4 or 5 stars and “loved” it.

Apple has my ratings, songs I’ve loved, everything I’ve bought from the iTunes Store, and (if they pass this data to the cloud) my play counts and last played data. That’s almost 15 years of data, probably somewhere north of 100,000 played songs (last.fm has me at about 64k plays, but that doesn’t cover everything).

So, yeah, Apple should be able to make good playlists of my favorites. They’ve done a pretty good job. There’s some exceptions (interstitial tracks from albums I like), but they’ve been unearthing songs I may not have listened to in years. When I’m not sure what to listen to, the Favorites Mix has been a go-to, and it hasn’t really missed yet.

I just need to make sure I leave room for the New Music mixes …

Mac OS Sierra Not Cleanly Unmounting USB Drives  

They always warn you about upgrading to the first release. “Let them fix the bugs in the .1 before you upgrade,” they say.

I never listen.

In Sierra, I’ve run into an interesting problem where the first time I mount my Time Machine USB backup drive post-launch, it mounts and works just fine. I can then tell the OS to eject the disk, which it seems to. Except, in Disk Utility, it still thinks it’s there. And now this phantom disk prevents it from ever being mounted again, until I reboot.

I’ve tried command line mojo (diskutil and hdiutil), and both will say they’ve unmounted the drive, but it still shows up. Eventually, diskutil stops responding.

Reading online, there’s lots of folks reporting similar issues, but no one seems to have found a particularly good solution, other than “reboot.”

We’ll see if it gets fixed up in the .1 release. Until then, off to reboot.

Yeah, That's About Right  

Sometimes you feel like the forgotten man ...

Screen Shot 2016 10 04 at 4 56 49 AM

30 Days of Running  

Last year, I got reinvested in running. I’ve always been an ok runner, but never particularly great. I’d go out and run 2–3 miles at a decent pace, consider it a good workout, and be done. Then it’d get cold out, or rainy, and I’d go a few weeks (or months) without really running, and I’d lose a lot of my progress.

But, last year, as I mentioned, I got reinvested. I asked for cold weather running clothes, I bought new running shoes, and really started working with the Runkeeper app on my phone. I was trying to run at least 4–5 days a week, and then working up to a decent 4–5 mile run on the weekends. I felt pretty good about things, but I wasn’t really getting in better shape or improving my endurance or times.

Then I got sick. I traveled abroad, came back, traveled some more, and then traveled some more. I was sick for almost two months. After a couple doctor’s visits, I had finally kicked the lingering cold. It was time to get back out running.

I could barely run a mile; a slow mile.

I assumed something was wrong with me, so I went back to the doctor and had them check me out. They didn’t find anything.

Over the course of a couple of months, I’d regressed back to basically square one.

I remembered reading about Matt Cutt’s 30 day challenges where you do something every day for 30 days. Could I run every day for 30 days? A friend of mine had gone running every day for years, so I knew it was possible.

I started out slow—moderately paced 1–2 miles runs. I built up to faster paced runs. Then I built up to 3–4 miles. And that’s where I left it, because that felt comfortable.

My wife (who’s run multiple marathons) put it all in perspective one day: “Why do you stop at 4 miles? Why don’t you stop when you’re done? Why don’t you finish?”

It sounds stupid, but it really was a perspective shift for me. The next day, I did 6 miles. I took my 4 mile route and just kept going until my legs hurt.

I started aiming for longer runs on weekends. I signed up for a half marathon.

Towards the end of my 30 days, I aimed for a 10 mile run. It sucked, but I finished it. Since I’d been running every day, my pace for longer runs was close to my pace for shorter runs. For the first time ever, I was able to keep pace with my wife on a long run.

Why am I sharing this? Honestly, it’s to keep myself motivated to keep running. And, if anyone comes across it, maybe they won’t feel so daunted about getting started running.

There were a handful days I didn’t run more than .25 miles. Those were days when I didn’t run in the morning, got home, and just needed to get out to keep the streak going. I threw on my shoes and ran around the block. I think I averaged about 2.5 miles/day over the month.

The key: just get going. Don’t push yourself too hard[1]. Just try to run a little one week, then run a little more the next week. Mix up city running with country running. Do whatever you need to just check off that day.


  1. Pretty much on day 31 (or 32), I had to stop running because my knees and feet hurt. So, after 30 days, I’m moving to trying to workout every day, but maybe not put the pounding on my body that running every day will. I’ll mix in light jogging and some other physical workouts.  ↩

Changes to the SSH keys and Keychain in macOS Sierra  

If you were used to storing your ssh keys in your Keychain, you may have noticed that your ssh agent forwarding wasn’t working when you updated to macOS Sierra.

According to jirsbek on GitHub:

ssh-add -K in macOS Sierra no longer saves SSH keys in OS’s keychain. As Apple Developer stated: “That’s expected. We re-aligned our behavior with the mainstream OpenSSH in this area.”

I’m actually ok with the change in behavior. To resolve it, call ssh-add -A to add your identities into your ssh-agent. I’m doing that as part of my .bashrc (though I haven’t rebooted yet, I assume it’ll work).

(Via jirsbek on GitHub.)