So I’m about 8 months late to posting this. Granted, I’m quite behind on posting a lot of developments (sleep deprivation puns). Anyway, Seachem Doser is an Android app that I developed a while ago that serves as a “dosage/quantity calculator” for various products Seachem offers.

Seachem, for those who don’t know/have lives, is a company that offers various products geared towards maintaining freshwater and marine aquariums. Personally, I use a lot of their products for my high-tech planted aquariums.

They offer calculators on their site that allow you to calculate how much you should dose specific fertilizers, buffers, conditioners, the amount of gravel needed per a specific volume, etc. Sadly, these calculators are all Flash-based. So I decided to make one that’s a bit more flexible. I should note that all of the values for these calculations were pulled from their official calculators, after a bit of reverse-engineering. At first I just made a Windows-based calculator/library that you can find on GitHub. Eventually the issue of convenience took hold and I decided to make it mobile.

As of today, I just updated it to work on tablets and polished things up a bit since I had some free time.

As with the Windows version, the Android version is also open source on GitHub.

If you happen to be somebody who will find it useful, feel free to download it through the Play Store.



Recently, there has been an article circulating around with a pretty damning accusation. To summarize the post, they claim Dropbox is transferring data on the entire computer, not just folders that are designated to be synced.

This is clearly a bold accusation, with seemingly little evidence to back it.  This speculation is based entirely on filesystem events and unverified network traffic..yep.

At the time of writing this, the author has not disclosed what “unnamed DLP agent” software he is using nor has he provided any real evidence to support his claims.

Let’s explain the filesystem activity:

Just to run a simple test, I’ll be using Process Monitor and setting basic filters to check Explorer and Dropbox filesystem events.

After creating a new file outside of my designated Dropbox directory, you can see it fires filesystem events to query the file. In particular, QueryDirectory operations which involve checking the file path to see if it belongs to a synced directory.

I’d expect another culprit to the the shell integration. Personally, I don’t use the sync indicators myself, as I have other programs that use shell integration and it can cause conflicts. However, I’d imagine that the shell integration in Explorer requires the files/directories to be queried as well to check for sync status.

As for the network activity…the author has not even bothered to check the length of the data and compared it to the suspected files nor has he compared the timestamps between the two. Keep in mind that network activity from a program such as Dropbox is perfectly normal, how else would it be able to sync things in realtime?

So no, based off the limited (see: hardly any) “evidence” provided by the original author, it does not appear that Dropbox is transferring data outside of the designated dirctories.

“Pretend You’re Xyzzy” is a Cards Against Humanity clone that allows you to play online with others. It consists of a Tomcat/JSP server and web page clients.

At the time of writing this, the main server located at appears to be down, so I decided to set up my own server for a group of friends and myself to play. Initially, there didn’t seem to be much info on setting up the server. The GitHub had a very brief explanation:

This project has only been tested in Tomcat 7 and is known to not work in Tomcat 6 without some finagling. Currently, the only automated way to build is is using the Eclipse project.

While the setup isn’t terribly complicated or anything, I figured I’d post some instructions on how to set things up since a lot of people seem to be having issues doing so and there don’t seem to be any concise instructions on how to do so.

These instructions are for a Debian-based installation, but are easily applicable to other distros/platforms as well.

First you’ll need Apache Tomcat 7 and you’ll want to install the admin panel as well:

sudo apt-get install tomcat7 tomcat7-admin

Next, stop the Tomcat server for the time being so we can modify some permissions:

service tomcat7 stop

Next, we’ll edit the users config so we can administrate the server:

sudo nano /etc/tomcat7/tomcat-users.xml

Add the following line in between the and tags, replacing ‘admin’ and ‘password’ with your own secure credentials:

<user username="admin" password="password" roles="manager-gui,admin-gui"/>

Start the service back up:

service tomcat7 start

Now we want to install PostgreSQL for our database:

sudo apt-get install postgresql

Change over to the postgres user (already set up via the installation process):

sudo -i -u postgres

Then, run the following, replacing ‘password’ with a secure password of your choice:

createdb cahdb
psql template1

Finally, we need to download the cards database and import it:

psql -h localhost -d cahdb -U cah -f cah_cards.sql

Now navigate to http://your_host:8080/manager/html and login.

From here, you can upload your WAR file and deploy it.

If your server does not seem to be loading/seems to be stalling, a possible reason could be Tomcat using a blocking entropy source for session IDs. To implement a non-blocking (and slightly less secure) entropy source, open/create a script in /usr/share/tomcat7/bin and add the following line:


Save and restart Tomcat.

service tomcat7 restart
Finally, you can access the app via http://your_host:8080/cah.

You can download a pre-built/zipped version of cah.war here. The PostgreSQL parameters are as follows:

Username: cah
Password: password
Database: cahdb

NOTE: Since this version uses insecure/public credentials, make sure to take necessary precautions to secure your server.

If you’d prefer to build your own version, follow the instructions below.

Building the .war file is fairly straightforward. Just download the source from Github via Git or just use the zip functionality.

You will need the JRE v7u75 installed.

Open Eclipse (Java EE) and open the project.

Install Luna if you don’t already have it buy going to Help->Install New Software. Choose “Luna”. Select “Web, Xml, Java EE and OSGi Enterprise Development”, install it and restart.

Set Tomcat 7 as your runtime environment server.

Make sure your build path uses the correct runtime environment as well.

Database credentials can be changed in the hibernate.cfg.xml file.

When all is well, you can go to File->Export->Web->WAR File.

You can upload and deploy that file through the Tomcat admin panel and you’re good to go!