Posts

Featured Post

Exploring the world on-the-go using Google Cloud Vision and Twilio

Image
Getting a computer to see and understand stuff is hard. Way hard. Like, hard for a long time. For a bit of context, slide 15 seems to be the definitive abbreviated history, dating all the way back to 1966. If you want to dig into the details, there's a free Udacity course on computer vision offered by Georgia Tech. However, you can add computer vision and intelligence capabilities to your applications without the deep understanding of machine learning by using Google Cloud Vision . The Vision API lets you send across an image, along with instructions of what you're looking to find, and will return what it "sees" in your image. You can look for labels, logos, landmarks, along with other things that don't start with the letter "l". If you're processing images that include people, you can look for faces or detect sentiment. My first project with the Vision API is quite simple: let people text an image, and receive a reply with up to three things that

Containers & Compute Engine: creating Minecraft Roulette with Kubernetes

Image
In the last few entries on creating a containerized Minecraft server, we created the container, launched the server, moved data to a volume, created regular backups of our world, took a look at customizing the server's properties, and updated changes to the container. Right now, our setup is pretty solid! So, let's get to that fun and impractical thing I mentioned that we'd be doing with Kubernetes.What we want to buildThis has been something that I've wanted to build for a while now, especially as I've become bored with my existing world(s). I thought that it would be awesome to create a way to join a random Minecraft world, with different players and different seeds. For obvious reasons, I've nicknamed this concept Minecraft Roulette.So, what does this entail?From the user's side of things, they should simply access their server the same way as always: through their client. However, with Minecraft Roulette, this will instead drop the user into a random wo…

Minecraft, Docker, Compute Engine: an interlude

Image
Last time, I said that in the next entry in this series I would do something fun (and likely impractical) with kubernetes. I lied; sorry. Since then, I received several great questions that I didn't manage to cover, so I thought that I'd address a couple of them now. This entry will be rather piecemeal, but hopefully much shorter than the prior ones!Customizing the server.properties fileMinecraft uses a simple configuration file to store many of its default settings. This is called the server.properties file. Let's take a look at the one running in our Docker container:ftb-server $ sudo docker exec -ti <container name> /bin/bash root@baea2dfbd18f:/opt/ftb# more server.properties #Minecraft server properties < snip! > server-port=25565 level-type=DEFAULT enable-rcon=false level-seed= force-gamemode=false server-ip= max-build-height=256 spawn-npcs=true white-list=false spawn-animals=true hardcore=false snooper-enabled=true online-mode=true resource-pack= pvp=true…

Saving the world: using persistent storage with a containerized Minecraft server

Image
This is Part II in a series on running a Minecraft server in a container on Google Cloud Platform. If you missed Part I, make sure to glance over it for context.Last timeLast time, you took an existing application (a modded Minecraft server) and containerized it, using the Debian base image. You used a Google Cloud Platform container-optimized image to build our image and run the resulting container on Google Compute Engine (GCE). Along the way, you learned how to use docker run, you got familiar with the functionality and syntax of the Dockerfile, and learned how to pass and use environment variables with Docker containers.Persistent storageHowever, a major drawback of our setup was the lack of persistence: if the container went away, so would all of our progress in our Minecraft world. As serious Minecrafters know, the loss of even a few hours can set you back days. Containers are generally thought of and treated as ephemeral -- that is, containers based off of the same image can be…

Running a Minecraft server on Google Compute Engine with Docker

Image
I only started playing Minecraft a couple of years ago, and rage quit after I set my house on fire due to a misunderstanding of lava dynamics. It reentered my life when I saw an article on qCraft, a mod that incorporates elements of quantum physics into gameplay. From there, I discovered the amazing world of Minecraft mods, accompanied by YouTube videos and collections on imgur showing off creations.However, once you dig into some of the more extensive modpacks, you run into the unfortunate problem of setting your actual house on fire, sparked by your overheating laptop. So, my partner-in-Minecraft and I stopped hosting the world off of our laptops and moved it onto Google Compute Engine (GCE). We weren't running a complicated server, and our setup was even less complicated than the vanilla whitepaper detailed.As happens to many Minecraft players, the modpack we were using was deprecated, and we were faced with once again rolling out another server. We created yet another special …

Engineering: a first run experience

Image
My first job as a software engineer nearly drove me out of the field forever.Manyefforts focus on keeping girls and women interested in technology from elementary school through 4-year computer science programs in order to “fill the pipeline” with qualified female engineers. My all-women's education never dissuaded me from pursuing computer science, but that’s the exception to the norm. Education is but a sliver of a woman’s career.However, what happens after those women graduate and get their first job? What happens to those women in the pipeline? As Julie Pagano candidly states:“The pipeline is leaky and full of acid. The pipeline leads to a sewage treatment plant. The pipeline ends in a meat grinder.”I’d like to talk about one such meat grinder.The environmentMy first job out of undergrad was as a software engineer at a major company. When I joined, my immediate team was approximately 15-20 people, all of whom were male. Oddly enough, coming from the women-only environment of B…

Of account settings, templates, and what comes next

Image
Deep in the dark recesses of Google account settings is one we’d prefer to ignore. It’s one that gives those of us who live our lives online a way to bequeath our digital file cabinet to another. It’s the setting that I recalled -- in a blind panic -- at 4am on this past Halloween.Rewind
The cause for this panic? Well, it started over a year and a half ago in 2013, when I was slotted to attend OSCON. I flew into PDX, excited to attend workshops the next day. I had signed up for a data science with R workshop -- long before I started my flirtation with Julia. While I was unpacking, my back gave out, and I never made it to the workshop.

That event kicked off one of the best and worst years of my life (cue the Tale of Two Cities jokes).  My health kept deteriorating, in strange ways. It affected my ability to keep plans with friends, enjoy my life, keep up with day-to-day chores, and eventually my ability to do my job. I remember standing at my desk, staring at my screen, completely blanki…