Apr 272018

I don’t know if you’ve heard, but Facebook’s been in the news recently, specifically around the exposure of millions of users’ worth of data to a firm called Cambridge Analytica. Cambridge Analytica allegedly used this to help various Republicans, including Donald Trump, during the 2016 election cycle. And to hear a lot of people talk about it, that’s the last sign before the start of the apocalypse, or something like that. To be honest it’s been hard to find a calm take on the whole thing, which has been part of the problem. People are shocked at how much data Facebook has on them. They can’t believe that Facebook lets people use this data to target ads to others. Or that companies may use this targeting for political advertising to try to swing an election. Or Facebook was “breached” (everyone else’s word, not the correct one) and this data leaked out. The truth is that while there were some problems with Facebook, and some bad actors at play, we’re focusing on the wrong things here, and it’s inspiring us to hysterics instead of reasoned analysis and reasonable responses.

I’m going to pause here and just make a note that I work for an email marketing company that emphasizes segmentation and targeted marketing. I’ve also written a Facebook application to create custom audiences on Facebook and keep them synced with their source mailing list. None of this requires data from Facebook users, so I don’t capture any sort of profile information, and all the opinions I’m writing here are my own, but it’s probably worth bearing in mind that my employment revolves around targeted marketing and I have done work to help marketers sync some of their “targeting” over to Facebook, so clearly I’m not as bothered by the concept of targeted advertising as some people may be.

Continue reading »

 Posted by at 11:45 AM
Mar 262018

Probably 1 of the most difficult juggling acts in software development is scoping a minimum viable product. I’m pretty sure a lot of that comes from the juggling act and judgement calls that constitute defining said minimum viable product. It’s not easy to do, mostly because defining a minimum viable product involves balancing 2 mutually exclusive terms. That said, I think you can find the best set of tradeoffs en route to the minimum viable product by examining the principles behind each part and then combining them back together once we understand what we’re looking for to satisfy each keyword.

Continue reading »

 Posted by at 11:45 AM
Feb 262018

After attending a few different software conferences, I’ve begun to appreciate the skill involved in giving a good public presentation, and just how rare it is to encounter. I’m not claiming to be an expert, the extent of my formal public speaking “training” consists of a half-semester course in college, and I wouldn’t rate my ability as anything beyond “competent enough to present something to the office.” That said, I think we’ve all seen enough bad presentations to have noticed a few things they all have in common. My goal here is to offer some things that I’ve noticed from good presentations in the hopes of encouraging people to start emulating some better habits.

Continue reading »

 Posted by at 11:30 AM
Jan 312018

There’s a line that I wrote in my recent post on social networks that’s been sticking around my head ever since I typed it: “Venmo is a much more creative social application than Mastodon is.” That line got me thinking about just what makes a social application…”social”, and I’m starting to think that a lot of what we term “social” applications aren’t really “social,” but something else entirely.

Continue reading »

 Posted by at 6:00 AM
Dec 302017

I’ve been thinking about just what it would take to create the type of media operation I described in “The future of journalism won’t look anything like today’s journalism” – specifically what pieces are still needed to get this type of operation off the ground, what pieces already exist, etc. As I think more on it, the more it seems that most of the individual components, with the exception of delivering content in a format other than the article, already exist. The biggest impediment to adopting these tools is likely attitude, namely organizations being so used and attached to how they’ve been doing things that they’re not thinking about approaching this from a completely blank slate.

Continue reading »

 Posted by at 12:00 PM
Nov 272017

Following what’s probably a very predictable course of operational maturity, my team at work started out manually uploading jars onto VMs, maybe with a few simple services, scripts, and setup tricks to keep the manual steps for deploying software to a minimum. As the amount of code we wrote and maintained grew, we started to focus on automating more and more of our code deployments, with an emphasis both on rolling deployments (so there’s no visible downtime to users), and on increasing reliability by reducing the number of steps we could possibly mis-type or forget. Since our code was heavily deployed on AWS anyways, OpsWorks seemed like the perfect setup for us. So far, while it isn’t actually perfect, it’s been a good tool for getting our app deployments and instance configuration more automated, which is what we really needed.

Continue reading »

 Posted by at 9:00 PM
Oct 222017

So a while back I had a fondness for ranting about social networks on this blog. Lately, I’ve had the urge to revisit that trend and spend some more time ranting about social networks on this blog. Why? Well, I’ve been using Mastodon some recently, and that’s got me thinking about my whole concept of what social networks (and the apps built on top of them) should be. And while I’m not going to try to claim that a relatively minor (compared to the other social networking apps out there) app is the future of social networking, looking past the app to some of the design decisions show a lot of things that make me happy about the trend in how some of these newer apps are getting built.

Continue reading »

 Posted by at 12:05 AM
Sep 292017

Automatic software testing is an interesting thing. Books have been written on the topic, libraries have been built to try to bring the practice to traditionally hard-to-automate sections of testing, and in some places, it’s so important it’s the first code that gets written. There’s a lot of different philosophies about how it should work, but in my experience, it’s probably an area where the less religious you are about it, the better it’s likely to work for you.

Continue reading »

 Posted by at 11:01 PM
Jul 292017

I’ve noticed several new blog posts on journalism and its future over the last couple of months. Couple this with listening to This Week In Google regularly along with following Jeff Jarvis’s blog, and the question of what journalism is going to evolve into (and the journalism that makes it to several years from now will have changed dramatically from how they operate today) has been on my mind of late. The more I consider it, the less I think journalism’s ultimate destination will be recognizable as what we have available today.

Continue reading »

 Posted by at 1:15 PM
Jun 262017

Java 8 introduced a lot of cool features, 1 of the most useful of which was the stream() method. This nifty little method lets you treat an Iterable as a stream, enabling cool things like lambdas operating over a list. Related to stream() is parallelStream(). This lets you group your stream into smaller streams that are run in, you guessed it, parallel. Specifically, your data is processed in a thread pool the size of the number of cores on your machine, minus the one running your app. That’s a handy piece of information you’re going to want to keep in mind before you start throwing this nifty little call around in your code.  Continue reading »

 Posted by at 2:44 PM