ThinkUp keeps track of your social media
Community managers, professional marketers, and active social media users want to know the effect their messages have on followers. ThinkUp can help.
Keeping track of what was said, the time of day it was said, and how the audience responded to it can be essential for marketers and community managers, and perhaps mildly interesting to the rest of us.
ThinkUp  is a free software platform that collects and culls data from your social media and keeps you informed of what's going on, which messages your followers find interesting, and which are duds.
ThinkUp will tell you, for example, what your most popular posts are in a given period of time, allow you to keep track of whether you are speeding up or slowing down your posts, and advise you of the best moment to post by analyzing the time of day your users react to your tweets or Facebook updates. It does all this by tracking posts and responses across a broad range of social networks, including Twitter, Facebook, Google+, Foursquare, YouTube, and more (Figure 1).
ThinkUp is most likely not available in your distro's repositories. That said, as a PHP application, it is not too hard to install (no configuring, linking, and compiling). As usual, I'll be using a clean Debian install to start with the cleanest slate possible.
And, as usual, you first have to install Git, as follows,
$ su # apt-get update # apt-get install git
to grab the latest version from the GitHub repo:
$ git clone https://github.com/ginatrapani/ThinkUp.git
Once downloaded, the first step of the installation consists of copying the contents of the
ThinkUp/webapp/ directory to the location your web server expects it. In our lab, I use Debian and Apache, so I copied the file to
# mkdir /var/www/thinkup # cp -Rv ThinkUp/webapp/* /var/www/thinkup/
You will need a typical LAMP setup for things to work. Because I assume you are already using Linux and have installed Apache, you now have to install an instance of the MySQL database engine and the PHP module for Apache:
# apt-get install mysql-server mysql-common php5 php5-mysql
You will also want to install
# apt-get install sendmail sendmail-base sendmail-bin sendmail-cf sensible-mda rmail
because ThinkUp needs it later to send email to its users.
If you now visit http://yourserver.com/thinkup, you should see something like Figure 2. ThinkUp needs read/write access to all files and subdirectories under the
thinkup/ directory, which means passing ownership over to the user that runs your server.
You can find out who owns the running instance(s) of your server with:
$ ps aux | grep [server]
For example, running Apache on Debian, you'll get something like Listing 1. This tells you that the user you are looking for is www-data.
Running Apache on Debian
$ ps aux | grep apache root 2294 0.0 0.9 152260 9460 ? Ss 05:32 0:00 /usr/sbin/apache2 -k start www-data 2347 0.0 0.5 152284 5972 ? S 05:32 0:00 /usr/sbin/apache2 -k start www-data 2348 0.0 0.5 152284 5972 ? S 05:32 0:00 /usr/sbin/apache2 -k start www-data 2349 0.0 0.5 152284 5972 ? S 05:32 0:00 /usr/sbin/apache2 -k start www-data 2350 0.0 0.5 152284 5972 ? S 05:32 0:00 /usr/sbin/apache2 -k start www-data 2351 0.0 0.5 152284 5972 ? S 05:32 0:00 /usr/sbin/apache2 -k start
To change ownership, it's just a matter of using
# chown -R www-data:www-data /var/www/thinkup/
Reloading the page will tell you that you have to install ThinkUp. Click on the Installing ThinkUp link to proceed.
In the next screen, ThinkUp shows the packages you're missing (Figure 3). Here, it's the PHP5 library for the file transfer tool cURL and the PHP GD graphics library. On Debian, you install them with:
# apt-get install php5-curl php5-gd
Reloading again shows you the ThinkUp configuration screen (Figure 4). In the top half of the screen, you set up the admin account and, at the bottom, the database. Before you do that, though, you have to create an empty MySQL database and a MySQL user who has all the privileges for said database.
The easiest way is probably using PHPMySQLAdmin, installable with:
# apt-get install phpmyadmin
The Debian install process will also help you set up a root account correctly for MySQL, which is always a good idea. Once installed, visit http://yourserver.com/phpmyadmin, and log in and choose the Privileges tab. Now, click on Add new user and name it thinkup, then set the Server box to localhost and set a password.
Scrolling down and selecting the Create database with the same name and grant all privileges radio button creates the user and database you need all at once.
If you can only access your MySQL instance from the command line, you will have to create the
thinkup database, then the
thinkup user, and finally grant privileges in three separate steps, as shown in Listing 2. Now you are ready to configure the database part of the ThinkUp configuration screen.
Setting Up the Think Databases
01 $ mysql -u root -p 02 Enter password: 03 mysql> CREATE DATABASE thinkup; 04 mysql> CREATE USER 'thinkup'@'localhost' IDENTIFIED BY 'somepassword'; 05 mysql> GRANT ALL PRIVILEGES ON thinkup.* TO 'thinkup'@'localhost';
Use localhost in the Database host field, thinkup in the Database name and User name fields, and the password you set in the Password field. Hit Set It Up.
sendmail comes in useful. If you have installed sendmail, ThinkUp will send you an email with an activation link you can click and use to log in. If you don't get it, there's something wrong with your sendmail installation. It is beyond the scope of this article to troubleshoot sendmail, but you will find your lost message, along with the activation link, in
/var/mail/www-data – that is, if you are using Debian Wheezy – or a similar location.
Once activated (Figure 5) you can try to log in. I say try, because the current ThinkUp version seems to have an undocumented bug that, regardless of what you write in the login text boxes, always dumps you back at the login screen. Apparently this is solved "updating migrations on your dataset."
To do this, enter the root directory of your ThinkUp setup. (If you have been following this article, that will be
/var/www/thinkup.) Then, as root enter:
# cd install/cli/ # php upgrade.php --with-new-sql
You should now be able to log in to your ThinkUp site.
Getting ThinkUp is only the first step of the installation/configuration process. Now you have to hook up the site so it starts culling information from your social networks. Note that for everything to work, ThinkUp must be available from the web. If you are behind a firewall, you will have to open a tunnel to your site.
ThinkUp connects to your social networks via plugins. Click on the down-pointing arrow in the upper left-hand corner of the screen to drop down a short menu and select Settings (Figure 6).
ThinkUp was originally designed to cull information from Twitter, so I'll configure that first by clicking on the Configure button next to the Twitter plugin (Figure 7). The Twitter setup is elementary: Click on the link, fill in the fields with ThinkUp's suggestions, and get a Consumer key and a Consumer secret code so ThinkUp's crawler can access your account data.
Buy this article as PDF
Bug database has a bug of its own that could allow an intruder to create an unauthorized account.
Report focuses federal resources on achieving universal Internet access.
Leading browser makers say “no” to porous encryption algorithm
Report from the X-Force group says attackers are using TOR to hide their crimes
Future Firefox extensions will be compatible with Chrome.
Better read this if you bought your computer before 2011
Users should upgrade to the new version as soon as possible
Xen project announces a privilege escalation problem for Qemu host systems
Attackers can compromise an Android phone just by sending a text message
PC vendor will pre-install Ubuntu on portables in India.