wms-plugin-auth-mysql: A Wowza Module for MySQL Authentication

I just finished publishing a new Wowza module: wms-plugin-auth-mysql – MySQL authentication for Wowza. This module is really tweakable and customizable. It basically allows you to authenticate all or a subset of clients connecting to your Wowza Media Server instance. The documentation goes into great detail about how to customize it and get things rolling.

Django Country/State/Province/Territory info with django-locality

I’ve just written a new Django app called django-locality. It’s a pretty simple Django application which includes a few key features:

  1. Country objects stored in the database.
  2. Territory objects stored in the database.
  3. Each country has 0 or more territories.
  4. View functions to get territories by country, all territories, all countries, or a country.
  5. Territories have abbreviations and names.
  6. Countries have ISO 3166-1 Alpha 2 Names (2 digit unique abbreviations), ISO 3166-1 Alpha 3 names (3 digit unique abbreviations), and each uses its country code number as its id.

This opens up a lot of possibilities. Simply add 'locality' to your INSTALLED_APPS in your settings.py file, run syncdb to install the models and the initial data, and off you go. You can tie your own custom classes to countries and territories like any other Django object.

It’s really simple, but it’s really refreshing to finally be able to do things in a way that makes sense. The module is available on PyPI, so you can integrate it into your build process with `setuptools`.

Run Wowza Media Server as a Non-root User on Linux

I recently had an interesting scenario where I needed to run Wowza as a non-root user in order to keep file permissions the same across a number of servers, as I was recording video on one server and serving it over VOD on another.

Unix Permissions have always seriously confused me and vexed me to no end, but I found that the actual Wowza Media Server User’s Guide gives instructions on how to run the server as non-root. For a given user user with a primary group of user:

chown user:user /usr/local/WowzaMediaServer
chown -R user:user /usr/local/WowzaMediaServer-2.2.4
chmod -R 775 /usr/local/WowzaMediaServer-2.2.4
rm -f /var/run/WowzaMediaServer.lock /var/run/WowzaMediaServer.pid

If you’re a l33t h4ck3r like me, you can combine the last line like:

rm -f /var/run/WowzaMediaServer.{lock,pid}

…but only if you’re using Bash.

After you do this, modify both /usr/local/WowzaMediaServer/bin/startup.sh and /usr/local/WowzaMediaServer/bin/wms.sh to prepend sudo -u user to the 24th (or last) line. Basically, for the line that starts with $_EXECJAVA ..., it should now start with sudo -u user $_EXECJAVA ....

I’ve also put the Wowza docs on my Google Docs account so as to make them a lot easier to access. Find them below:

Terminal Linux: Clipboard Magic

Just posted an awesome new little tutorial on TerminalLinux.org on getting your awesome on with the X clipboard on your Linux machine. Automate and mass-transform your clipboard contents from your handy-dandy terminal!

# insert a tab at the beginning of each line of the contents of the clipboard 
xclip -o | sed 's:^:\t:g' | xclip -selection clipboard

The State of Freedom on the Web

Before you write this off as a political/religious/philosophical rant… well, you should probably read it. As both a consumer who purchases hardware and as a producer who creates software and media, I deal with the concept of intellectual property and “free as in freedom” when it comes to ownership and licensing. While I’m not completely “frum” when it comes to using only free software, the issue of SaaS is a major issue today for intellectual freedom. This will be a multi-part article, covering the various facets of the issue. This first article will serve as the introduction to what freedom means in terms of the web and your content, meaning your media, when you share it on the web.

Continue reading

[Tutorial] Getting a SSH client and server working on CyanogenMod

I’ve had to do this a few times already on my Nexus One, so I thought I’d tutorialize it for the greater good. Basically, if you haven’t heard already, CyanogenMod is like the greatest thing to ever happen to Android. It provides a ton of goodies and really nice things that make your phone more powerful by an order of magnitude. It includes BusyBox, which is basically a really lightweight version of all of the core Linux/Unix utilities like “cp,” “mv,” “gcc,” and more. Importantly, CyanogenMod includes the DropBear SSH client and server.

Continue reading

New Site! Enter TerminalLinux.org

Ever wanted to learn to make the most out of your Linux? Enter TerminallLinux.org, a site dedicated to teaching you some of the most incredible things that can be done with Linux. This is a personal learning project for me and as I learn new commands, you will too. Be sure to subscribe to the RSS feed and to follow us on Twitter!

Terminal Linux: Tips, Tricks, and Code to Rock Your World.

Installing Adobe AIR 1.x on 64bit Linux

Adobe AIRAdobe currently offers an installer for AIR for almost all operating systems. Windows, Mac, and Linux, all of the major platforms are covered. However, one installer is missing… a 64bit one for Linux. For those of us who are die-hard Linux users who also prefer the speed and power of running 64bit operating systems, Adobe AIR won’t just install out of the box and work. This article is to help you get Adobe AIR installed and running on your 64bit Linux system in no time flat.

Continue reading