Michael Evans

A bunch of technobabble.

Building OBS Studio for OS X

| Comments

Recently I’ve been watching a bunch of streams on Twitch, and was investigating the best options to stream from OS X. Sadly most of the ones I found were very expensive, until I saw that Open Broadcaster Software, which was previously only for Windows, was being rewritten to work with OS X and Linux. However, it’s still highly beta/under development and as a result, there’s not a lot of documentation on how to build it.

Here’s how I did it:

1
2
3
4
5
6
7
brew install ffmpeg glew cmake qt5
git clone https://github.com/jp9000/obs-studio.git
cd obs-studio
mkdir cmbuild && cd cmbuild
export CMAKE_PREFIX_PATH=/usr/local/Cellar/qt5/5.2.1/lib/cmake
cmake .. && make
cpack

This will leave you with a disk image named obs-studio-x64-<sha1-hash>.dmg, which you can mount and install, just like any other OS X application.

Happy Streaming!

Embedding Google+ Posts in Octopress

| Comments

A few months back I wrote a blog post about my 2013 in Review. One thing I wanted to add to the post was a link to the #AutoAwesomed video, which was generated from photos and videos I took during the year, which were backed up to Google+.

Fortunately for me, Google allows you to embed posts into your pages using a technique which is documented here. The problem with this method, for me at least, is that my blog is created using Octopress, and posts are written in Markdown and then rendered to HTML. Octopress does, however, allow you to write plugins which can help us with this issue.

Here’s the plugin in all it’s glory:

ADB Over WiFi

| Comments

I haven’t updated my blog in a while, but this is a tip/trick that’s so good that I had to share. It’s not a very widely known feature, but once you try it, you’ll wonder how you lived with out it: using ADB over WiFi! That’s right, no more plugging in all your devices to your computer to debug/etc. Best of all, no root required.

It’s also ingeniusly simple. First, connect the device you want to use via a USB cable.

1
2
3
adb tcpip 5555
(Feel free to unplug it now)
adb connect <IP address of your device>

That’s it! Enjoy your tether-free development.

2013 in Review

| Comments

Today is December 31st, and I decided to write up a blog post, reflecting on the year that I’ve had. I’ve learned a lot over the last twelve months, and done a lot of interesting things (okay, at least interesting to me). Here’s a brief overview of what happened:

Using a ViewPager in a ScrollView

| Comments

For a new app that I’m working on, I wanted to use a ViewPager inside a ScrollView in order to make a simple image carousel. The only problem is, ScrollViews don’t seem to play nicely with horizontally swiping Views. As soon as the user moves their finger even slightly up or down, the ViewPager page change is cancelled, and the page snaps back to the current item. This can lead to an extremely frustrating user experience, because it is difficult for the user to understand why the views won’t swipe.

My Newest App: Bike Finder

| Comments

Last week I released my newest Android app, Bike Finder. It’s a fairly straight forward application that allows you to find bikes and stations for use with Washington DC’s Capital Bikeshare system. For those of you not local to DC, Capital Bikeshare is a system that lets you use bikes that are available at docking stations all over the city, as well as parts of northern Virginia. The app is free, and I’m looking into adding additional cities that have companies that make their bike sharing data available (currently investigating New York City, Montreal and the Bay Area). If you’d like to get your city added, let me know, and I’ll see if the data is available, and add it to the to-do list.

Parse Android To-do App Tutorial - Part Two - Users

| Comments

Last week I posted a tutorial on how to create a really basic Android To-do list application using Parse. It allowed a user to create tasks, and then toggle their completion status. Then, this information was synced to a server, so that the tasks will be kept up to date on multiple devices. The biggest issue with this app so far, was that there was no concept of users, so all tasks were shared among everyone. This week, we’re going to introduce two new screens (which are very similar to one another), the registration and login screens.