Thoughts on Improving Online Communities

Many months ago I picked up a fantastic book at a neighborhood flea market: “Community Building on the Web : Secret Strategies for Successful Online Communities” by Amy Jo Kim.

Flipping through, the screenshots of a very early eBay.com and iVillage signalled that this title was dated, but the topic was right in my wheelhouse, so I picked it up.

Published in 2000, this book is 20 years old, but having spent some time with it, I can say that an astonishing amount of its advice and recommendations on community building are still applicable today. What struck me moreso was how many of it’s suggestions are not reflected in the current market. Let me share an example:

Think of all of the online communities you are a part of. When you joined, did you have to go through any welcoming/inroductory process, or were you just dropped right into the thick of it?


It’s an important point. In any real life community situation, you’re going to feel most comfortable joining and participating when you’ve been welcomed in and ‘shown the ropes’. Alternatively, if you were to be dropped into an environment that you had no context for and in which you did not know any other people, you’d probably feel a bit awkward or out of place. In a real life scenario, you’d probably be likely to leave and at worst, not become a contributor to that community.

Most online community platforms don’t allow/encourage an onboarding procedure, even though the stakes are much higher. When an online user is not able to sync their expectations with those of the community, their anonymity affords them the option to participate in ways that are inappropriate. I know there are online community managers that are aware of this, and I have seen processes along these lines take shape, but on a large scale, there is no standard of welcoming.

This made me think- if I were to create a community building platform in the present day, what features should it have?

  • Community builders should be able to create an onboarding flow that sets expectations for what is acceptable behavior. Onboarding for most companies is about getting someone to buy into a product/vision/service with their money or eyeballs. For communities, I think a good onboarding is not about extracting more from the user, but providing them with something of value that sets the stage for what is expected of community members. That could be a warm welcome or initiation of some kind, but I think it should be an experience, not a product or something of monetary value.
  • Community members that see innappropriate behavior from another user should be shown that reporting has positive impact. Sometimes a lack of action from the community management devalues the act of reporting and discourages its future use.
  • Keep the moderation process transparent with tools like: (1) a moderation blotter that documents moderations similar to how a police blotter documents crime (2) a warning at the time of content creation that lets the user know if the content is seen as inappropriate by any of the moderation algorithms being employed. This provides an opportunity to correct their mistakes, point out algorithmic mistakes, or (in the worst case) provide insight to how the algorithms are being fooled (3) Display a moderator precense through their positive contributions and moderation actions. Moderators should not exist solely to remove bad content, but to encourage positive content.
  • Highlight the best contributions and conversations to encourage more of their kind.
  • A high performing search engine that keeps content+conversations alive as long as it they are relevant, to discourage duplicate conversations.

I’ll add to the list as I think on this further…

Make Slack Smaller

Slack is awesome. It’s visually pleasing & my not-technically-savvy friends have no trouble using it. It’s nice (or not nice?) to have one app that would handle personal messages and work conversations.

But I’ve been working strictly on my 15” Macbook Pro, without additional screen real estate, and it’s clear that Slack takes up much more screen area than it needs to do it’s job.

I’ve blurred out the messages/channels for privacy, but I don’t see any reason why the sidebar should be non-collapsible. Certainly, a lot of enterprise clients have enough screen space (2+ monitors) to not have a worry about thus, but at this point, with so many users and success, Slack should have the bandwidth to make their applications responsive.

If I want my Slack window to be non-intrusive, I should be able to shrink it and see something like this:

With the introduction of iOS apps running on Apple Silicon, at the least we’ll be able to run the Slack iOS app, which is very close to what I’ve sketched out.

Constantly dismissing Reminders.

Last week I read a tweet that really hit me:

I am a heavy user of Apple Reminders. For a time I relied on the reminders in Clear , which I still use occasionally, but either way, everything I need be reminded of finds its way into my Reminders App.

It’s got a very low barrier to entry – I can quickly launch it on my Mac or my iPhone, and it’s the #1 thing I use Siri for (I don’t trust her for much else).

But I absolutely swipe away reminder notifications every single day, to the point that it’s natural. Reading this tweet made me realize it shouldn’t be that way. The way the app currently works, it doesn’t seem to care how you use it.

I use Reminders in at least two different ways.

  1. Critical reminders / Important Deadlines. For example, I need to move my car before a certain time or else I get a huge ticket (or towed) and it’s very important I take action on this reminder.
  2. Passive reminders / Todos. For example, I set a reminder for this afternoon to look into something specific in the codebase I’m currently working in. If I get to it tomorrow or Friday, it’s not a big deal.

It’d be really useful if I could tell Apple Reminders to treat each of these types differently, with respect to how to handle notifications.

Critical/Deadline reminders would be handled exactly like all reminders are handled today. They require some response: either completing or snoozing.

Passive/Todo reminders would be handled with the understanding that I’m most likely to get to them when I am available. Rather than notifying me on an individual basis, what if the app bundled together the 4 Passive reminders and every 2-3 hours on that day, pinged me, asking if I was “available”. If I’m not, I can snooze on everything passive. If I am, it presents me with the individual items, and I can deal with as many as I’d like.

If anyone knows of a reminders app that works this way, please reach out!

Making more space in a studio apartment.

One of my favorite things to do is rearrange my living space. You know the phrase “If it ain’t broke, don’t fix it”? Well, my room is always broken in some way, and I am in a constant state of fixing. There’s some misplaced item of furniture, something unorganized, or maybe over-organized, that makes my day to day more work than it needs to be. It’s not immediately clear what’s out of place, which is why most people never re-arrange furniture after they first bring it into their home. For better and worse, I am constantly observing and moving things about. Usually it’s not much more than cleaning my desk or moving the books from this shelf to that shelf or to the closet.

Yesterday, my partner and I re-arranged our entire studio apartment. What started out as an endeavor that “shouldn’t take any more than 20-30 minutes” took at least 5 hours. But the space looks so amazing I had to write about it. I want to compile some of my takeaways from this experience. And maybe this will help someone else who lives in a 400-500 SF studio.

Before.

Here’s layout of the room, from yesterday morning.

Some of the problems with this layout:

  • The projector sits on an upturned wooden box right next to my half of the bed. When it’s on, it blows hot air right at me. There’s very little surface area left for me to use as a night stand, meaning I use the arm of the couch as well. It looks very crammed between the bed and the couch.
  • The two chairs opposite the couch take up a lot of space in the room, but they mostly function as storage. One is the “plant chair” and the other ends up carrying things that need to be moved off the table when we eat dinner.
  • We can watch movies in the projector from in bed or sitting on the couch, and we find that option means we usually prefer to lay in bed. This encouraged us to lay down more than we should.
  • The closet door could not be shut, because there was not enough room between the bed and the wall for it to swing out.

After.

Here’s what the room looks like now.

What’s improved?

  • The door can swing shut, which hides the hanging clothes, and provides more wall space.
  • The projector is a little further away from us when watching, so no uncomfortable hot air.
  • The desk can function as my nighstand
  • Because the plants against the window are lower and the chairs in the middle of the room have been moved, the entire window is visible, making the view from the couch more enjoyable.
  • Sitting on the couch, we are no longer in line of sight of our neighbor’s kitchen window.
  • There’s enough room on the dresser for a large mirror that’s been hiding in the closet. It makes the room seem brighter. It’s so big, and you’d expect it in a larger space. I think that makes this space seem larger too.
  • The tree serves to cover up the projector a bit. The bright green also contrasts with the white projector nicely.
  • There’s a comfortable amount of space on either side of the bed.
  • The floor lamp can dual function as a reading lamp and a desk lamp.

What’s lost?

  • The couch received a lot of sunlight where it was, and the leg of the L was a perfect spot for photosynthesizing. Now that the couch has been moved, it does not receive direct sunlight.
  • An extra chair is now stuffed in the closet.

Takeaways

Wall Visibility

The more covered your walls are, the smaller the space feels. I have a hunch the bottom of the wall is most important- being able to see the molding and where it meets the floor. When furniture is crammed together, you end up with less wall visibility. Certain furniture that’s open underneath (desks, tables) should be distributed around the room so that wall wall-meets-floor space is visible everywhere you turn.

Window Visibility

Similarly, don’t block any window space! Things can look good in front of windows (ie plants), but there’s an effect gained from having an entire window frame clear and free, like a picture frame. Even if the window itself is unblocked, make sure the line of sight to the window from important parts of the room is also unblocked.

Plant Cover

Somewhere in your room, especially if it’s a studio, there’s likely something that has to be there, even if it doesn’t look so great. A router, an extension cord, a projector, something like that. Use your plants to keep those items accessible but hidden from view! In our room, I’ve hidden most of the desk wires in the corner plant chair, and the projector is less of a focal point thanks to the tree beside it. In fact, the projector looks good now that it has a plant partner.

Oversized Piece

In a studio apartment, where space is limited, there’s not much space for anything big. That also, I think, makes anything big stand out. Use something big, like a picture, a painting, or in my case, a mirror, to draw your eyes and fool your eyes into thinking you’re in a much bigger room.

Comfortable Spacing

Leave some space between furniture! Anything pushed together will act like a single piece, so if it doesn’t match and serve or extend the same purpose, think again.

Balance of Use

We were spending nearly all of our time on one end of the room. The only exception was my desk, which wasn’t the only place I did my work. Moving the couch to the other side means we’ll be distributing our time in different areas, and it will probably feel bigger just because we’ll have different perspectives than we’re used to having.


This was a lot of fun and has truly made a huge difference in the enjoyment of our space. I encourage everyone to examine their interior layout more critically. There’s a lot you can accomplish with just some re-arranging!

Concept: Find trivia events in your area.

I enjoy playing trivia. It’s an opportunity to flex my competitive muscles, test my knowledge, and enjoy a night out. But finding out where you can play trivia is unnecessarily complicated. Bars and restaurants often do not list details about trivia nights on their website, nor on their social media profiles. They either rely on word of mouth, or they don’t care.

That trivia players, on a wild goose chase, exploring the deep caverns of bar websites left unchanged since 2006, searching through Yelp reviews, and reading out of date lists of trivia spots (only to find that most of the spots have shut down).

So here’s a concept for a website called Trivia Knight. I’m definitely most proud of the name and the color scheme! Here’s a few screenshots of a partially built frontend:

Likes and retweets of Donald Trump tweets.

Every tweet has (at minimum) three numerical data points associated with it:

  1. the number of retweets
  2. the number of replies
  3. and the number of favorites it has received.

Several days ago I looked at a Donald Trump tweet and questioned if there were any insight to be gained from examining the ratios between those three numbers. My hypothesis was that those ratios could allow me to classify the public’s response to that tweet. For example:

  • a tweet that has a higher ratio of replies to favorites was perceived as more controversial and elicited more backlash.
  • a tweet with a higher ratio of likes to retweets was perceived as agreeable but insensitive enough that people might not want to share it.

Unfortunately Twitter’s API doesn’t provide the number of replies to a tweet, but here are just some findings after an hour playing in a Python notebook.

Each of Trump’s 200 most recent tweets has been plotted on the graph below. Tweets posted from an iOS device are shown in red, while those from an Android device are shown in blue. It has been suggested that iOS tweets are strictly his staff, while Android tweets are strictly Trump’s personal thoughts. The lower popularity of iOS tweets could support that notion.

You can see the ratio between favorites and retweets is approximately 5:1, but what I was interested to see is which tweets strayed the furthest from the line of best fit. Here are snippets of the 7 tweets with highest ratio of favorites to retweets.

THANK YOU!
#JointSession #MAGA??\nhttps://t.co/RDO6Jt2pip
Join me live at 9:00 P.M. \n#JointAddress http...
I will be interviewed on @foxandfriends at 6:0...
Big dinner with Governors tonight at White Hou...
Going to CPAC!

These are certainly not dividing or controversial statements.

Let’s look at the 7 tweets with the fewest favorites per retweet.

How low has President Obama gone to tapp my ph...
Terrible! Just found out that Obama had my "wi...
I hereby demand a second investigation, after ...
We should start an immediate investigation int...
Venezuela should allow Leopoldo Lopez, a polit...
RT @Scavino45: LIVE Joint Statement by Preside...
Iran is playing with fire - they don't appreci...

These are clearly more aggressive messages.

A baseball hackathon In Chicago? Yes, please!

On October 18th, I woke up to a notification on my phone for an email titled “2016 MLBAM Bases Coded.” The preview read

We are pleased to inform you that your Team’s entry has been selected as a potential Finalist entry in the 2016 MLBAM Bases Coded Technology Challenge

Two weeks earlier on October 7th, I rounded up two of my friends and applied last minute, literally with minutes to spare, to Major League Baseball’s Bases Coded Challenge. I had first heard of this challenge only a few hours before, through a promotional email sent by Major League Baseball. Why their first email blast came just before the entry deadline, I can’t tell you. Thinking that an entry entailed submitting some sort of project, I was pretty bummed to have missed on out on a competition involving software and baseball, two of my passions!

Luckily I sat down later, after class, and took a closer look at the submission requirements. In fact, MLB only wanted an idea, not a completed piece of software. Winners would be selected based on the potential of their idea, and the experience of their team. With a couple hours left before the deadline, I started filling out the entry form as best I could. I began filling out profiles of my team, who we are, why we wanted to compete- along with links to and descriptions of our previous projects.

Thankfully, I had been brainstorming a baseball app during the months prior, and it was fresh on my mind. Though technically complex, the basic idea for the app was simple enough to fit into the 500 character limit the form required. I enlisted the assistance of my two teammates (Jon and Gio) to help fill out the rest of the entry form. At this point they agreed to help, and to be on the team (I knew they’d say yes). We ended up submitting our entry with 12 minutes left until the deadline, though to be honest, the last 15 minutes were spent deciding on a team name and mascot. We ended up with Benny ‘The Jet’ Rodriguez as our mascot, and our team name was decidedly, C the Ball.

And then we forgot about it.

When the email woke me up, I ran into Jon’s room, threw my phone at him and asked to confirm I was not seeing things. Long story short, we had been selected by Major League Baseball to compete in their 24 hour hackathon during the World Series. We would be flown out from San Luis Obispo to Chicago, be put up in the Chicago Hilton, and compete for a chance to win tickets to Game 4 of the World Series at Wrigley Field.

Our flight left SLO early Wednesday morning, and we arrived in Chicago by early afternoon. During the flight, me and Jon had our first opportunity to start brainstorming/debating how the app would work. Because all 3 of us had to cram schoolwork and studying into the week before our trip, we had no time to bring our idea anything past just an idea. We sat next to an older gentleman who was very interested in our project and who spoke with us for most of the journey. He was even more interesting. He spoke of designing an entire city in Saudi Arabia, managing the Chicago Cubs spring training, and running a foundation for supporting first generation college students. I haven’t been able to verify any of that, but it sure made the trip interesting.

From Chicago Ohare, we took the Blue Line train to The Loop, the meeting grounds for Chicago’s transit lines, and one of the nicer parts of the city (also where our hotel was located). We spent the evening at the hotel making plans for the hackathon the next day.

The hackathon was held at a Marriott Hotel a 30 minute walk north of our hotel. When we walked into the lobby and saw signage for “World Series Distribution Headquarters”, we knew we were in the right place. This must have been the hotel where MLB officials were working out of. On the 7th floor, a large hall, fit to hold hundreds of people, had just several small tables, four of which were for competing teams, and we decided on one we’d be at for the next 24 hours straight. As time neared the actual start of the hackathon clock, we met the three other teams, organizers from MLB, representatives from a company called New Relic, as well as a Senior Developer and Director of Research for MLB’s technology arm, MLBAM. All were extremely welcoming, and many of them I’d love the opportunity to meet again in the future! And so it began…

Our application, later named Scout, was to be a mobile application with a purpose of removing the confusion of statistics from the baseball fan experience. By leveraging the data we were provided by MLB directly, our app would determine the most exciting things about each baseball game to be played on a given day. This would be done entirely on the backend, by comparing pitcher/batter matchups, recent pitching/hitting streaks, rivalries, team streaks, and many more factors. For each game, our app would determine the most important factors and assign a tag to it, such as “Pitcher’s Duel”, or “Top Rivalry.” We spent the first couple hours planning, both what the factors would be, how the data would be funneled through our system, and what we wanted to present to the user. I began working on the iOS app, while Gio and Jon teamed up on the backend side of things.

Having participated in several hackathons, I can say we had above average focus. Maybe because we spent less time on the idea, maybe because of the stakes, or maybe because we were so interested in the project. Whatever it was, we did a lot in a short amount of time. At many points through the night, we discussed how the backend would be hooking up with the app, come time. Nearer the morning there came a point where the format of the data returned by our API changed, but otherwise the connection between server and client was quite smooth. Our biggest problems seemed to stem from using an Amazon EC2 instance to host our backend. Jon and Gio encountered many problems, especially as first time users, and noted the lack of documentation/tutorials to achieve simple tasks. Another problem we encountered was having to incorporate the monitoring software of New Relic, one of the sponsors, and an MLB partner. New Relic monitors your application’s performance, which while useful, was overkill for a 24 hour hackathon. Installing New Relic in our Python backend was not too bad, but trying to add it to our iOS app was not so graceful. We ended up ripping it out completely, but the entire process unfortunately killed the final hour and half of the hackathon. Nevertheless, time was up. The 24 hours had been filled with focus sessions, food breaks (oh man was the food good), Gio dancing in front of the GoPro that had been set up, and working hard on building a product we’re very proud of. To finish off the day, each team informally presented their project in front of the MLB/New Relic folks, not to be judged. The real presentations would come the next day, Saturday, when we’d return to present in front of the panel of judges. With just an evening in front of us, we had to find time to make up some of the lost sleep, build a slide deck, and prepare for a presentation. We began walking back to the hotel, discussing our thoughts on the other projects, and our shot at winning the grand prize. We were confident that our technology was best designed and most efficient (thanks to some preliminary comments from New Relic), and that if we could kill the presentation, we might have a chance.

After reaching our hotel room, we fell into our beds and didn’t wake up until quite later that evening. Hungry, we went out for some Giordano’s pizza, and didn’t get back until just before midnight. Setting to work on Google Docs, we began working on our presentation, defining our message, and honing in on why our application could be a success amongst current baseball fans and in bringing in new fans to the sport. With a completed slide deck, we hit the hay once again, alarms set for early the next morning- we’d be required back at the Marriott not much later than 8:30.

And so we were there early the next morning. The judging panel was revealed to be a writer for Sports On Earth, the Senior VP of Mobile Product Development at MLBAM, the CEO of a sports startup accelerator, and a VP from New Relic. The crowd for the presentations was not much bigger than the group of people we had met over the previous few days, but the tone was a bit more serious now that presentations were to begin. We ended up presenting third of four teams.

The first team to present was our favorite competitor. This team of friends from the Deep South was extremely friendly and we had enjoyed chatting with them both before the competition and after. Having seen their project the day prior, we decided they would be our main competition, and as we later found out, they had the same opinion of us! They developed a mobile app that allowed friends to play a simplified version of fantasy baseball. Instead of having to manage a team over an entire season, their game required players to choose 5 teams each day that they think would win, and compared the results to those of friends. Their project was extremely polished visually, and I would definitely play if it were available in the app store!

The next team was a group of Chicago natives who were experienced Python developers. They too developed a mobile application, but one that would be used by a fan during a game, not before and after. Their app would understand exactly what would be happening in a baseball game, thanks to MLB data, and explain different plays, vocabulary, and confusing baseball concepts to the user. Visuals were not the strong point, but the concept certainly tackled the problem of baseball being confusing to newcomers.

Next it was our turn. Our presentation hit a snag when our app froze on Jon’s computer during the demo. This was thanks to a rogue error left behind by the New Relic integration that had gone wrong, but luckily the iOS simulator was running on my computer as well- so we were back up quickly. We didn’t kill the presentation as we had hoped, but we got our points across and did a swell job.

The first three teams were composed of three guys each, but the final team had just two. In fact, one of the two showed up late and didn’t seem to do any work on the project, so it was truly just one. This team made a Twitter bot that tweeted when a hit or an out was unexpected based on historic data.

As the judges deliberated, we started talking again with the first team who we had become friendly with. We discovered they too had run into complications with New Relic. After 15 minutes or so, we returned to our seats to hear the final decisions.

As Chad Evans, the Senior VP from MLBAM pointed out the judges comments on each of the projects, everyone listened intently. For our application, he pointed out the originality of our idea, and described how the tagging of games was something MLB themselves had been trying to figure out for a long time. While each team received nice feedback, I was very inspired by ours. Unfortunately, the Twitter bot won, so Game 4 tickets were not in our sights.

But Chicago was amazing, we met some really nice people, and on the plane home we ran into a part owner of the Arizona Diamondbacks who was wearing an enormous 2001 World Series Championship ring. The best part is that we’ll be continuing to work on our application and hopefully have it ready by the start of the next season!

Thanks to Major League Baseball for the incredible opportunity, and to our teachers who were kind enough to excuse our absence and extend some deadlines 🙂

Generating Drake Lyrics with a Markov Chain

One of my recent data science lab assignments was to choose a musical artist, scrape every one of his/her song lyrics from the web, and use the Markov Chain technique to generate new lyrics. The following program works by compiling a separate list for every word mentioned sung by Drake. Each list is a list of all words that have ever followed the word to which the list belongs. For example, “you” –> [“to”, “just”, “need”, “finish”, “boys”]. It then uses these connections and some random selection to generate new sentences/lines. I’ve used Drake as my test subject because I think his lyrical style is very recognizable, but you can run this script for any artist. All you need to do is to swap out the LyricsFreak URL. Note, the new URL must be identical in structure (i.e. .com/d/) or else the web scraping will not work.

import requests
import time
from bs4 import BeautifulSoup
import bs4
import time as t
import random

lyrics = []
links = []

songs = requests.get("http://www.lyricsfreak.com/d/drake/")
parser = BeautifulSoup(songs.text, "html.parser")

for song in parser.find_all("td", class_="colfirst"):
    link = song.find("a")['href']
    links.append("http://www.lyricsfreak.com" + link)

for link in links:
    song = requests.get(link)
    parser = BeautifulSoup(song.text, "html.parser")
    t.sleep(0.1)
    lines_dump = parser.find("div", class_="dn", id="content_h")
    if lines_dump is not None:
        lyrics.append( list(lines_dump.strings) )

def train_markov_chain(lyrics):
    transitions = {"<START>": [], 
                   "<END>": [],
                   "<N>": []}
    for lyric in lyrics:
        for lnum, line in enumerate(lyric):
            chopped = line.split()
            for wnum, word in enumerate(chopped):
                if word not in transitions:
                    transitions[word] = []
            
                if lnum == 0 and wnum == 0:
                    transitions["<START>"].append(word)
                elif wnum == 0:
                    transitions["<N>"].append(word)
                    
                if lnum == len(lyric) - 1 and wnum == len(chopped) - 1:
                    transitions[word].append("<END>")
                elif wnum == len(chopped) - 1:
                    transitions[word].append("<N>")
                else:
                    transitions[word].append(chopped[wnum+1])
        
    return transitions

chain = train_markov_chain(lyrics)

def generate_new_lyrics(chain):
    # a list for storing the generated words
    words = []
    # generate the first word
    words.append(random.choice(chain["<START>"]))

    done = False
    while done == False:
        ondeck = random.choice(chain[words[-1]])
        if ondeck == "<END>":
            done = True
        else:
            words.append(ondeck)
    
    # join the words together into a string with line breaks
    lyrics = " ".join(words[:-1])
    return "\n".join(lyrics.split("<N>"))

print(generate_new_lyrics(chain))

Here’s one of the songs the script spit back out:

She in it heals all, all, all, switch the ground off multi-platinum recordings 
Drinking watch is this is in here 
I see my pen up to know what she two up the rims on a little, why is in my day I got to who you strip for you just like the A&R; men never forget it poppin’ don’t make me there is for me who's it go that you might just show up... Damn. 
... on camera 
I can also raise one so well, this money til next to Texas back in, 
You ain't last season changed you gon' come back about her and screwed, I left your clothes 
We can tell the year 'round me and hotels that I mean one else's 
I need more (More) 
Twenty five o four, need you 
I don't know you wanna be, I say you need some dinner you hope you probably end getting right now that OvO that (Money) So much to check if you pass it anyways, 
Yeah, Tom Ford tuscan leather smelling like 
There ain't nothing 
I'mma do it... still fly though, 
I really have to the ceiling 
I give it start? The Tires Burnin 
I need it up in the morning 
Ever since I know I'm squeezin' in my thoughts of Four You Always gone 
Some Girls That I before I guess that's where you 
Somebody shoula told me. 
This Girl you bring us down and it's where it like oh-ah-oh-oh 
Tuck my whole city faded (the ride) 
My memories of baked ziti  
Let It Hurt Faces 
I see your friend 
No One Else 
Beat the past piss

Why is it important for our data to be encrypted and private?

Think back to a time when the computer did not exist. Now imagine you’d like to write a letter to a friend. You would have to write out your message on a piece of paper, get an envelope and a stamp, and put it all in a mailbox to be taken by your mailman the next day. Consider you may have your mom proofread the letter before you seal the envelope, or the roommate of the recipient may accidentally open the letter on arrival, thinking it is hers. Furthermore, at any point between you pressing the pen to paper and your friend reading it, the letter can be intercepted and read by anyone. A postal service worker could steal the dollar bill you sent along. A thief could steal it from your friend’s mailbox before she gets home from work on the day it is delivered. Maybe they even steal it from your mailbox before the mailman puts it in his truck (there is a flag on your mailbox screaming ‘stuff in here!’ after all). To improve security, senders might use envelopes lined with patterns to make it difficult to determine their contents. Think beyond the postal service. Every financial transaction related to you was recorded on paper or not all. At work, every paper, presentation, or drawing you produced was likely on paper.

This amounts to the sum total of all recorded information existing within large quantities of paper. Paper is tangible, so does that make it secure? One one hand, the storage of small amounts of paper probably does not include high security detail- to steal a file from a doctors office or rifle through someones recycling bin for their credit card statement would not be terribly difficult. On the other, it would be quite difficult to steal large amounts of paper from widespread locations. To steal all of the medical records from a hospital, or the credit card information of everyone who bought something from any Sears last weekend would require insane man-hours and would be impossible to do without drawing attention.

Imagine, now, all of this information has been digitized, making communications and transactions much simpler, but also opening doors to simplify the process of performing large scale interception. You wouldn’t be in ruin if a thief stole the birthday card and $20 from your aunt sent via snail mail, but you probably would be very upset if that thief intercepted every $20 gift to your Paypal account and the $300 your parents tried to direct deposit to your bank account so you can fly home to see them next weekend.


Every communication, transaction, or other piece of data you interact with today is recorded at some time, to some extent, on the internet. Even if your credit card statements are still mailed to you every month as a few sheets of paper, the company that sent them has all of that information recorded in their computer systems. Even if your grandma has never touched a keyboard in her life, all of her financial information, her grocery store purchase history, a log of her phone calls, even the number of miles she’s driven since her last oil change- it’s all stored on a computer. When many of us think of what information we have stored on the web, we think of Facebook pictures and emails we’ve sent to our coworkers, but in reality, other people/companies/governments probably have stored much more information about your life than you have about yourself.

At this point in our story, hopefully you see reason for concern. The legal collection of massive amounts of public and private information has allowed for new businesses to flourish, cities and governments to understand how to become more efficient, and scientists and researchers to learn more about how the world works. But it also leaves us vulnerable to people who are ready to use our private information, whether we ourselves have recorded/stored/transmitted it or not, for personal gain, hurting others in the act. What can be done to prevent a thief from tapping into these streams of information? One of the ways to counter any such effort is encryption.

Encryption is a method of turning words, numbers, pictures, or any sort of information, into a code that is only readable by the people who are supposed to read it. If you send an encrypted message to your brother, before that message leaves your device (laptop/phone/etc) it is translated into a jumble of numbers and letters that would not make sense to the human eye. To create the order of the numbers and letters in the jumble, your device will use a key. Think of a key as another jumble of letters and numbers that acts as a password of sorts for a piece of data. Based on the letters and numbers in the key, the original message to your brother will be turned into a final encrypted message. The software on your brother’s device will have its own key that will, in a similar manner, be able to decrypt the encrypted message you have sent him. When data is encrypted correctly (there are many different ways to encrypt), it is nearly impossible for an ordinary thief to crack/intercept, requiring automated computer programs potentially many years to solve- certainly not reasonable.

But not every interception attempt is ordinary. The National Security Agency has reportedly spent hundreds of millions of dollars building high speed computer systems that take advantage of flaws in common encryption techniques and can break them. That our own government is spending our money to weaken the security of our data is disheartening. Encryption (hopefully) secures all of the information held by our government, meaning he NSA is willfully working against our own interests. Devising methods to bypass encryption is dangerous, because preventing the techniques from leaking is no guarantee- the NSA does not have a good history of keeping information secret. It is also an incentive for computer scientists and cybersecurity experts to develop more stringent forms of encryption that can hold against larger and more powerful attempts from our government or any other organization.

Encryption is the best tool at our disposal to secure data and keep it out of the wrong hands. To a hacker, whether state-sponsored or amateur, good encryption is like a 3.5 foot thick vault door. It’s very difficult to get through and would require huge amounts of resources and time to drill through. But if someone with the time and resources, such as the NSA, were able to figure out how the door’s lock works, there now exists the ability for someone with fewer resource, less time, but with that knowledge, to break through. Is the answer to keep building thicker doors with more complex locks, or should other methods be used beyond encryption? Both.

To extend on the door analogy and to borrow from a professor I had, imagine a hacker is faced with such a thick, complex, daunting door, yet the walls around it are made of plywood. This is how most hacking occurs, by finding loopholes in a system, not necessarily technically complex wizardry.

It is this scenario that is relevant to the Apple vs. FBI case. The iPhone device in question has some information stored locally on the phone, meaning that even without an internet connection, such information would be accessible from the device. It also holds information that is stored on the internet, via iCloud. All of it is encrypted, but Apple has access to the iCloud data from its own servers, meaning it was able to hand it over to the FBI after shown a warrant. Whether you like it or not, by using iCloud, you agree to this possibility- though the data remains encrypted to keep it away from prying eyes, permission to view the data is given to Apple. No encryption was broken, nor any security bypassed to make this data available- Apple just has a backdoor to get to it, and they guard that backdoor with everything they have. But Apple does not have a backdoor for the information stored locally, and this is exactly what the FBI wanted Apple to create. The problem is that a backdoor to local information is not subject to warrant, and cannot be guarded if stolen from Apple or the government. Once it exists, it can be used to access millions of iOS devices in existence, all around the world, any time or place. Apple itself does not hold this privilege because there is no need to, and the mere existence of said backdoor is too risky.

If by this point you still are okay with weakening encryption and building backdoors, let us review. The following information is protected by cybersecurity methods the government employs but is attempting to weaken at the same time:

  • your SSN
  • all of your money in the bank
  • every stock market in the world
  • your location at any given time (if you use a smartphone)
  • all of your personal information that you would probably put through a shredder if it were on paper
  • top secret military documents
  • intellectual property from US businesses and individuals

 

My Twitter feed and me

I just went through my entire list of people I was following on Twitter and cleaned house. Even though my following count was only just over 100, I’ve begun to really dislike scrolling through my feed without having gained any useful knowledge. Did I really need to spend those few minutes looking at my feed? Did I gain anything of value besides finding a way to spend a few minutes (minimum) of my life?

In deciding who to unfollow, there were so many people that I thought were interesting but didn’t necessarily publish content on a day to day basis that I was interested in. There’s so much duplication of content that I need to sift through when scrolling through my feed. I love baseball and so I follow a lot of baseball related accounts, but that doesn’t necessarily mean that I want to see a majority of baseball content in my feed- it just means I want to see a variety of baseball content/sources in my feed. I ended up creating a baseball list devoted to baseball accounts that I followed. Now if I want to hear some baseball stuff, I’ll have to search the dark corners of Twitter to get to said baseball list; Seriously Twitter, why even have a Lists feature if it’s so hard to access?

The same is true for politics: I might follow a few Bernie Sanders related accounts but I don’t want to be bombarded with a Bernie tweet ever 15 minutes. I might just be following them because I think he’s an interesting guy and want some Bernie related content. Some people publish rich original content occasionally that I don’t want to miss out on, but I don’t want to have the added cost of having to sift through the remainder of what they publish.

Here’s my two cents on what I might like to see on Twitter instead of what it is today:

The most original content from each of the accounts I follow; If a person tweets once a week, show me what they’re saying. If they’re tweeting 10 times a day, don’t show me every tweet right off the bat. Try and predict which of their tweets, if any, will have the most value to me. I can always check to see every one of that person’s tweets if I wish to

A separate feed or sidebar that contains content either retweeted by people I follow, or recommended content based on who I follow and what I like. It’s interesting that some accounts with the most interesting content often retweet other interesting content, which I may also appreciate. The problem comes when 2 or 3 people are retweeting the same interesting content. Recognize when there’s duplication- only show me once.