Over the past few weeks I’ve been using my knowledge as a developer to map the data the people over at deadspin are compiling. Their goal is to create a community powered database of all of the police to civilian shootings in the United States (you can contribute to the database here). This data does not include incidents which did not appear in the media, and incidents in which the civilian was shot at, but not hit.

This invaluable data is not available directly from any government agency. Since there is no nationally standardized way by which police officers logged when and why they use their weapons, there is no way to fully track this data. At the moment, the best we have is this valuable community powered data set. In the hopes to visualize this data and show just how often officers discharge their weapons on civilians, I am creating this map (this project is currently in progress, so expect to see all kinds of weird things on the page).

**For the techies following this blog: below, you’ll find some technical info on how the map was created.


The map was created using Leafletjs, “an open-source JavaScript library for mobile-friendly interactive maps.” Leaflet allows you to create quick Js maps with a lot of add-ons and flexibility. You can get unique tiles for your map at Mapbox and Stamen Design. In addition to customizing the look of the map, you can add useful functionality like popup with individualized information for each plotted point. Leafletjs has a great set of out-of-the-box tutorials, as well as links to many other add-on tutorials.


On the back end of the map is a Rails application with a Mongo database. This was my first time using Mongodb, and it proved challenging. You can install Mongodb using HomeBrew. Once Mongodb is installed in your machine, you can use a number of different gems to get Mongodb going in your Rails app. I chose to use the MongoMapper gem. The gem itself has decent, but not great, documentation for querying. Mongo is a schema-free database, meaning no need to run migrations. Unlike MySQL and traditional DBs, Mongodb stores data in a hash like object with key value pairs. This allows for a lot of flexibility in tacking on new data dynamically. For example, for this particular set of data, geo information (such as lat long values) is being tacked on after the DB creation. Since Mongodb is schemaless, it allows you to quickly add more “columns” without having to re-run migrations and compromise the other data in your DB.


The data was derived from this spreadsheet. It was saved as a csv, parsed using the Rails csv tools and saved to the DB.

CSV.foreach("data.csv", :headers => true).each do |shooting|
 Policeshootings.create( shooting.to_h )

Since the goal was to plot the data onto a map, I needed lat long values. These were obtained by using the Google Geocoding API and HTTParty gem. You can see a code snippet of that call below.

def self.add_locations
  Policeshootings.where(:city.ne => nil, :lat => nil).each do |incident|
  @path = (URI.encode("https://maps.googleapis.com/maps/api/geocode/json?address=#{incident.city.gsub!(" ", "-")||incident.city}&components=country:US|administrative_area:#{incident.state[0..1]}"))

  #since the API has some rate limits, it helps to give it a fraction of second between each call.
  sleep 0.2

  response = HTTParty.get(@path)
  incident.set(:lat =>
            ['lat'] )
  incident.set(:lng =>
            ['lng'] )

The **in-progress** map can be found here.

Latinas Fucking Code

It’s not just for geniuses. It’s not just for pubescent boys sneaking pics of princess Leia from their dad’s Star Wars collection.

Programming is FOR the people. All of the people. In an industry largely dominated by the white upper classes, it’s difficult to feel like programming IS for the people.

The numbers of PoC [people of color] who use the internet are statistically close to the number of white people who use the internet, despite PoC having less access to home broadband. In fact, black and hispanic/latinx populations actually outrank whites when it comes to cellphone ownership and use.

PoC are using technology just as much as, and in some cases more than, the white population. So why are we disproportionately underrepresented in a field that makes so much money off of us?

Educational opportunities are an obvious cause. We make less money, we go to worse schools, often schools whose tight budgets don’t allow for technological instruction. In our homes, we are less likely to own a desktop or laptop computer. These early childhood disadvantages contribute to the career choices we make in our future.

But there are more insidious obstacles at hand. Without mentors and role models to show us what we’re capable of, we are often convinced that computers, technology, and the sciences at large are simply something we just can’t do.

One of the biggest challenges we need to overcome in order to succeed in a field that routinely excludes us is to believe that we can and to actively seek out mentorship.

On Cultural Appropriation and Reverse Racism

Let’s talk about cultural appropriation and why it’s OK for me to call you out on it. 

The Difference Between Cultural Exchange and Cultural Appropriation

One of the reasons that cultural appropriation is a hard concept to grasp for so many is that Westerners are used to pressing their own culture onto others and taking what they want in return.

We tend to think of this as cultural exchange when really, it’s no more an exchange than pressuring your neighbors to adopt your ideals while stealing their family heirlooms.

True cultural exchange is not the process of “Here’s my culture, I’ll have some of yours” that we sometimes think it is. It’s something that should be mutual.

When I talk about this with people from a variety of cultures, their experiences and definitions of cultural appropriation naturally vary. I can only speak with credibility on my own experiences with cultural appropriation. I am a brown skinned Cuban-American woman with a thick Miami accent that people find sexy, cute, or funny. In other words, they see my “otherness” in my language. 


When I was living in Miami it was completely natural to code-switch amongst friends and family. However, even there, where more than 66% of the population is Spanish speaking, it was discouraged to code-switch in professional environments. This is probably due to a misconception that when you are code-switching it’s because of a lack of knowledge of one or both languages. (Obviously, this is an ignorant assessment that is not based on science. Science tells us that, in fact, code switching is a taxing mental process, and if anything, proves on some level heightened mental faculties.)

The use of  what linguists call “light l’s”, Miami slang, and spanish sounding vowels are unique characteristics of having been raised in the predominantly Latinx Miami. Even people raised in Miami who do not speak Spanish can find that their English is peppered with these distinguishable language features. 

This accent or dialect, although sometimes perceived as sexy, cute, or funny can actually be detrimental to my access to resources and social capital. In a professional environment, I never code switch, and I make a conscious effort to whiten my speech.

Unfortunately for me, as a Latinx woman, using my heritage tongue can be perceived as my lack of ability to assimilate to American culture or a lack of formal education, despite the fact that, up until now, I’ve been generally successful in my education and my career. I have to make a conscious effort to police my own language in order to ensure that I will get the promotion that I want at work or even the attention that I deserve in a conversation, simply because of the specific style of linguistic acrobatics my tongue is used to. 

I speak two languages. I have near native fluency in Spanish, and I am completely fluent in English. However, I actually stand to lose social capital from this. When a white, non-latinx, person uses Spanish, no one ever questions their ability to assimilate to American culture or their level of education. In fact, an English speaking white girl who is barely fluent in Spanish, can code switch, alter her accent, use a phrase in Spanish in a professional environment, and she will gain social capital by being “cultured” and “worldly”.


Recently, I was called “racist” for calling out a white non-latinx on using Spanish in a setting where the target audience was English speaking. The post was meant to be somewhat silly, but inspired a heated diatribe on “reverse racism.”Screen Shot 2014-08-01 at 10.27.51 AM

The culmination of the diatribe can be summarized in this comment:

Screen Shot 2014-08-01 at 10.30.04 AM

Calling a white person out on cultural appropriation is not racist. Again, racism would imply that what I am doing is contributing to the systemic oppression of white people. (Please see post on racism before getting defensive about this definition of racism.) There is no system in place that directly targets white people based on the color of their skin in order to prevent them from gaining access to education, housing, jobs, and also actively imprisons them. If there is no such system in place, then there is no way for me, a woman of color, to oppress white people based on the color of their skin. Again, calling a white person out on cultural appropriation is not racist. 


Rather than becoming hostile toward someone who is pointing out that you are playing into a system oppression, you should take a moment to try and analyze their point of view. This analysis involves more than just using your “common sense” to try to understand their concern. The analysis should involve reading literature on the topic and engaging in constructive conversations where you digest information before reacting with anger and insecurity. 

A Note on Racism

To be guilty of racism…one must have power, and power of a special sort. For the revisionists, racism is prejudice plus power leveraged at an institutional level to maintain the privileges of the dominant social group.

-Carlos Hoyt Jr, “The Pedagogy of the Meaning of Racism: Reconciling a Discordant Discourse

The linked article is worth a read if you plan on having discussions about racism. I’m a sucker for formulas, and I loved Hoyt’s formulation of racism:

R = P + P, meaning racism equals prejudice plus power

But if you’re feeling like TL;DR:

Racism is about more than not liking someone based on the color of their skin. If this was the case, then we would all be post-racial after elementary school.

Racism is a systemic denial of access to resources. When someone is being racist, it entails that they are contributing to a system that is designed to oppress an entire people. Racism requires for their to be prejudice and power. Without power, there is no racism. 


In an effort to help those who want to be allies, and also in an effort to be a better ally myself, I picked up this guide by Frances E. Kendall. Being an ally isn’t just for people with white privilege, but rather for privileged people. There are situations in which, someone like me, a Cuban-American woman, has a lot of privilege. One of several examples is the current immigration policy which does not affect the Cuban community the way that it affects Guatemala, for instance. Cuban immigrants are given automatic citizenship and refugee status as soon as their feet touch US soil. Because of this, I cannot directly relate to the experience of DREAMers, migrant workers, or families separated by the current policy. That means that in circles with Latinxs whose birth countries are affected by current policy (most), I have to subscribe to Kendall’s guide, too. I can support immigration reform, I can work to support organizations that help and bring change to the cause, but I can’t take leadership roles or dominate conversations about the matter.Most importantly, I steer clear of showboating my personal emotions on the matter. It’s more important that I focus my efforts on actual change rather than lament. Kendall’s guide makes it a point to highlight the following statement, “This is NOT about rescuing or grandstanding, making a show of our support so that we will look good or progressive or liberal.”

So what’s it all about? If you want to be a good ally, it’s about listening to the voices of the oppressed groups and taking action with them. 
It’s also important that we ALL keep our privilege in check at all times. Let that become second nature, and practice the art of listening to other people’s struggles.