10 January 2017

How Data Caps Hurt the Internet

Data Caps (also called Bandwidth Caps) are a limit on how much you can upload and download through your Internet provider, often on a monthly basis. Most of us are familiar with data caps from cell phone data plans, although data caps on home Internet also exist. Usually, they’re sold as a quality and fairness measure, so that no one person can hog the service provider’s network. Whether or not that’s widely believed is questionable, since customer protest usually causes ISPs to roll out data caps as a voluntary way to reduce bills or as “tests” in a certain area. In modern networks, data caps are not necessary to ensure quality of service for everyone on the network and actually have little to nothing to do with actual usage. It turns out that data caps are more profit driven and actually influence consumers to s...

04 January 2017

Net Neutrality and Access to Information

The Internet is a major source of information, providing digital outlets for nearly any information. Almost 40% of Americans get their news online, according to a Pew Research study in 2016, making the Internet a news source second only to television. In addition, a majority of adults happened to get news from social media - which is a problem because social media provides only a curated view of the news. These statistics underscore the need for open access to news and information online. Limiting access to information - fake news is a different issue - makes it much more difficult to stay informed. Easy access to information is empowering.

Many news sources tend to have a political bias, to the point where continue reading

23 December 2016

Why Internet Providers Don't Compete

In the United States, most people have access to only one or two Internet Service Providers. Only 28% had access to three or more for speeds one might consider tolerable, and 9% for speeds one might consider “fast” as of 2014. Since that data was collected, some providers have merged with others so there are fewer options available. Mobile Internet is better, as most people have access to more than three providers for standard speeds.

The lack of options isn’t surprising. Unlike most other industries, building an Internet service provider (ISP) is prohibitively difficult. It requires large, expensive installations of equipment, and requires ...

05 December 2016

Explaining Net Neutrality

Net Neutrality is the idea that all data on the Internet, regardless of who it comes from, its political affiliation, company, or who’s consuming it, should be treated the same way and should move at the same speed. We’ve enjoyed a mostly-neutral Internet for some time now, which is what has allowed the Internet to become an important means for moving information around the world. A neutral Internet is also the reason it’s easy for new companies to get up and running online and find their customers. It’s difficult to explain well in a short blog post the importance of a neutral Internet, so be sure to take a look at the links throughout for more information.

At a glance, it can be difficult to understand why Net Neutrality matters, in particular because we’ve never seen a non-neutral Internet. A non-neutral Internet can even seem appealing from the marketing suggestions that service providers publish, in that you can pay only for what you need. Unfortunately, service prov...

28 August 2016

Encryption is not the enemy

Encryption is a well-understood and well-known technology in the world of computing. Though the media would have us believe otherwise, encryption is not much more than fairly basic math involving some large, random numbers. There’s a little more to it than that, but it’s based around the fact that modern computers take a really long time to do certain things. That’s not that it’s complicated, just that it’s something computers happen to be fairly bad at. Most things that use encryption use methods that are widely used and known; it’s the keys (or passwords) that are not. No dark magic, and no weird science, just a little math and some keys. If you felt inclined, you could do the tedious job of encrypting something without a computer as long as you had some notes on the math and a calculator.

While it isn’t always made clear, encryption is imperative when doing almost anything...

13 June 2016

On Orlando

When I woke up yesterday morning, I saw that there had been a mass shooting in Orlando. It’s really telling that when I saw the headline, my reaction was “ugh, again?” and I kept scrolling. We’ve reached the point as a country where my generation considers mass shootings to be so common that we hardly react to the headlines and we forget about them quickly. Earlier this month, there was a murder-suicide at UCLA that we’ve already stopped talking about and others we haven’t even heard about. It’s clear that we need to do more, both legislatively and culturally, to work towards a resolution of these issues. When we politicize human rights and safety, this is the result and will continue to be the result.

The attack on Pulse was a direct attack against LGBTQ+ individuals as well as U.S. citizens, Latinos, and Muslims. At least forty-nine innocent people died in the attack and fifty-three were injured, some in critical condition as of last night. Over 100 circles of families ...

16 March 2016

Explaining Software to Non-Engineers

If certain stock images are to be believed, software engineering is equivalent to reading the source code of the Matrix. It’s not tremendously surprising to see it depicted that way. Software is a very abstract concept that is frequently communicated very poorly by the people who build it.

As we learn about the world, we develop what are called mental models, which are thought processes surrounding how something works. When we learn about something new, we look for ways to apply our existing mental models to it, sometimes incorrectly. A great example of a mis-applied mental model is someone experienced with film cameras equating a digital camera’s memory card to film and replacing it when full. Mental models are usually functional so they don’t work as well when applied to something abstract such as software construction. Most people also don’t have a mental model that can be applied to software so they’re m...

09 February 2016

Blogging with Git and Jekyll

With most blog platforms, the process of creating a blog post is pretty similar. It usually looks something like: log into your blog, click the “create post” or equivalent button, fill out the title, write the post, add tags, and click save. Of course, it varies a little bit across platforms because some platforms offer niceties that others don’t. However, other than a few niceties here and there blogging using most platforms is pretty much the same. The workflow for a static site is a departure from that: open a new file in a text editor, write a few pieces of data at the top, write your post, save it, and use your tool to regenerate your site. The simplicity is great because it means you can adjust the process and the tools to make it your own.

My website is hosted on Github Pages which means it’s version controlled using Git. Git, and version control in general, keeps track of everything you noted that you changed, effectively allowing you to time travel and “undo” bac...

13 January 2016

Creativity in Coding

As a culture, we tend to have a difficult time seeing technical disciplines as creative. It can sometimes be hard to imagine engineering as something creative because it frequently comes in the form of exact results and is spoken of in terms that are sometimes difficult to understand. This divide is imaginary because the technical and the creative are perfectly capable of coexisting. Working within the constraints of an engineering project does not restrict creativity, it tends to encourage more of it. Engineering products are creative works even though it’s sometimes hard to see them as such.

Examining the technical/creative mix from a software standpoint, there is a lot of room for and a lot of need for creativity. Source code can be written many ways to solve the same problem. Developers frequently have their own style and their own method of solving problems. In fa...

02 November 2015

Taking Time Off From Software Engineering

A lot of us in the software field live, breathe, and even dream software. We love what we do so we surround ourselves with it; we join massive groups of software engineers where we constantly ask for critiques of our websites and resumes and show off our new thing we’re building from something new we’re learning that we’re sure is going to change the world while we flaunt our startup ideas because we want to create the next big thing but often we put things on hold “to come back to” (except we never get back to them) to play with the new new thing so we don’t fall behind while the live stream of someone programming or the most recent Hackathon sits on our second screen so we can learn something else new or to look at the latest high stakes in competitive coding then we get home from work or school and immediately dive into our personal software scene so we don’t miss a beat while we’re awake and later we get woken up at 3AM by our phone because someone we once talked to online a ...

Newer Posts

Older Posts