GitHub

As WordPress tends to mangle code that I post, I’ve started moving it to GitHub. As I move code to GitHub, I will replace the code within the article to a link to the code on GitHub.

You can find my GitHub here.

Installing GIMP on Mac OS X with ELA Script-Fu

This article will walk you through installing GIMP on OS X with an ELA (Error Level Analysis) plugin to detect editing.

To learn more about reading ELA results, read this:
http://fotoforensics.com/tutorial-ela.php

First, download GIMP from here: https://www.gimp.org/downloads/

Next, grab elsamuko-error-level-analysis.scm from the bottom of this page: https://sites.google.com/site/elsamuko/forensics/ela – Save it for later.

After downloading this .scm file, open it in your favorite text editor and locate the following line:

SF-STRING      "Temporary File Name"   "error-level-analysis-tmp.jpg"

Change it to the following:

SF-STRING      "Temporary File Name"   "/tmp/error-level-analysis-tmp.jpg"

And save the file. This fixes an issue with images not being able to be processed as the default location is not writable by GIMP.

Now double-click the GIMP .dmg file you downloaded, and copy GIMP to your Applications folder as shown:

Once you have it copied over, you will want to open the package contents by alt-clicking and selecting “Show Package Contents“.

From here, navigate to Contents > Resources > share > gimp > 2.0 > scripts and drop in the elsamuko-error-level-analysis.scm file you download earlier.

Now, run GIMP. Because of security-related things and stuff, the first time you run you will have to alt-click on GIMP and select Open. After doing this for the first time, you won’t have to do it again.

GIMP will appear to freeze for about 5 minutes while it builds its initial caches. This will cause GIMP to appear unresponsive. Do not force-kill it during this time, simply be patient until it opens.

Now, you can perform ELA on an image by opening it, and selecting Image > Error Level Analysis from the menu.

Once you’ve done that, running it against an image will produce an ELA mask as an additional layer, which you can use to analyze an image.

You can toggle the ELA layer visibility by clicking the eye shown in the following screenshot.

(Sample image from http://fotoforensics.com/tutorial-ela.php, retrieved April 11th, 2016)

Changing Piwik delimeters

If you wish to change the Piwik delimiters to break away from any treeing of your pages on the action and titles reports, you can use the method described on http://piwik.org/faq/how-to/faq_62/, but that method doesn’t describe both of the delimiter tags you may wish to apply.

There are two delimiter settings that you may wish to change, which get added to your config.ini.php file under [General]

action_title_category_delimiter = "::"
action_url_category_delimiter = "::"


Installing Munin on Linux

I read several articles on how to install the Munin monitoring tool for Linux, and they all seem to over-complicate the install, or end up with an install that doesn’t work.

This article will walk you through installing Munin for a local monitor/node setup on Debian 8 64-bit. Tweak it to your liking. This also assumes that you are running as root. Prefix commands with sudo where appropriate.

Start by making sure your system is up to date:

apt-get update
apt-get upgrade

Next, install apache, munin, munin-node, munin-plugins-extra and dependencies.

apt-get install apache2 apache2-utils libcgi-fast-perl libapache2-mod-fcgid munin munin-node munin-plugins-extra

Now, edit the munin config file /etc/munin/apache24.conf

nano /etc/munin/apache24.conf

Change the <Directory /var/cache/munin/www> section as follows:

...
Require all granted
Options FollowSymLinks SymLinksIfOwnerMatch
...

Do the same with the <Location /munin-cgi/munin-cgi-graph> section, adding the Options line if it’s not preset.

Now restart both apache and munin-node.

/etc/init.d/apache2 restart
/etc/init.d/munin-node restart

You can now view munin data at http://<server IP>/munin

Sound not working in Java apps in Ubuntu Linux

I tested Ubuntu 14.04 LTS in VMware. I started with a clean install. I made sure sound was working in the VM, then updated everything using this command:

sudo apt-get update && sudo apt-get upgrade

I then checked Software Updater and found a few more packages that didn’t get updated, and updated them.

I then made a backup of the VM to have a good baseline. I then installed OpenJDK 7 and the icedtea-7-plugin, using the following command:

sudo apt-get install openjdk-7-jre icedtea-7-plugin

I did not have openjdk-6, icedtea 6, or Oracle Java installed. If you do have any of those installed, try removing them to prevent any conflicts.

You can test your Java sound output any trying any Java applet that produces sound, such as this SoundApplet demo. If you don’t hear sound from it, you have an issue. If you have more than 1 sound device, check the other sound device for the sound output. In my case I only had 1 device (through virtualization), but it worked fine.

I also tried AllStar and was able to hear audio from the node announcements just fine, albeit with occasional crackle, perhaps due to the limited resources of the VM. I tried transmitting but did not get a reply from the few nodes I tried.

If you have something to add, please feel free to comment below.

Weather Underground forecast data in text display

One of the uses I found for my Raspberry Pi was using it to display weather data. I retrieved the weather data from Weather Underground using their API, parsed it, and displayed it on my RPi’s small LCD. This gave me an always-on view of the weather, which was nifty, and it was done all in bash scripting with a few external programs to parse the data.

This script is very customizable and extensible. You could use it to do any number of weather-related tasks.

I reduced the font size on the LCD to Terminus 6×12 using the following command:

sudo dpkg-reconfigure console-setup

This helped make room for all the forecast data on the tiny LCD. If you are running this on a PC, it’s not necessary.

For the smoothest updates, I have found it ideal to run the script under ‘watch’, as so:

watch ./weather.sh

I tired doing a ‘while true; do… clear… done’ loop, but the refresh rate was too low and the updates were not smooth.

Here is the script:

UPDATE : This has moved to github, here.

Last updated: 11-21-2015

Installing and configuring Samba on Raspberry Pi

If you want your Raspberry Pi to share its files and folders over the network, you want to install and configure Samba.

Start off by installing the basic Samba requirements:

sudo apt-get install samba samba-common-bin

Edit the samba config file

sudo nano /etc/samba/smb.conf

edit the workgroup= line to match your network. workgroup=WORKGROUP is the default and usually fine. It needs to match what your Windows PCs are set to.

[pi]
path=/home/pi
browseable=Yes
writeable=Yes
only guest=no
create mask=0777
directory mask=0777
public=no

Add the pi user to samba. Use the same password for the pi user:

sudo smbpasswd -a pi

It takes about 2 minutes for the changes to take effect, but after this you should have no problem exploring files over the network. Note that some may be owned by root and you may have an issue writing to them.

If you have trouble logging in under Windows (password errors), try using “raspberrypi\pi” (raspberrypi-backslash-pi) as your username (without the quotes)

Disable screen blanking on Raspberry Pi

sudo nano /boot/cmdline.txt

add the following to the end of the line:

consoleblank=0

reboot

Setting up the SainSmart WaveShare SpotPear 3.2 inch Raspberry Pi LCD (V3)

I picked this inexpensive LCD up at MicroCenter for my Raspberry Pi, but getting it to work was a bit of a chore.

I wanted to install it onto a Raspberry Pi 2 which is already set up and running some software of mine. Therefore, I wanted to install it in as few steps as possible. Fortunately, WaveShare provides some drivers (but they don’t clearly document the setup process).

Here’s now to set it up:

Do the normal update/upgrade procedure:

sudo apt-get update && sudo apt-get upgrade

Download the correct “LCD-show-*” driver for your version of Raspbian Jessie from the Drivers section of the product page on WaveShare, and transfer it to your Pi, or use the following example commands from your Pi to download it directly:

wget http://www.waveshare.com/w/upload/9/9d/LCD-show-151020.tar.gz
tar xvzf LCD-show-151020.tar.gz
cd LCD-show/

and run this command to set up the 3.2″ screen. :

./LCD32-show

Note: You may need to have the SPI interface already turned up via raspi-config before this will work.

Important note: The LCD32-show and LCD-hdmi scripts will overwrite several system files. If you have customized them, or have concerns, you are strongly advised to read through the scripts before running, and consider merging the changes in manually. Here is the list of touched files:

• /boot/overlays/waveshare*-overlay.dtb
• /etc/X11/xorg.conf.d/99-calibration.conf
• /usr/share/X11/xorg.conf.d/99-fbturbo.conf
• /boot/cmdline.txt
• /etc/inittab
• /boot/config.txt

After a few seconds, you Pi will reboot, and the screen should be active. You can refer back to the WaveShare page to see documentation on how to switch to HDMI and back to the LCD.

Follow these steps to download and install xinput_calibrator to calibrate the touchscreen. I noticed that on my panel, the touchscreen does not respond well to input; I suspect I have a defective panel.

sudo apt-get install libx11-dev libxext-dev libxi-dev x11proto-input-dev
wget http://github.com/downloads/tias/xinput_calibrator/xinput_calibrator-0.7.5.tar.gz
./configure
make
sudo make install

Now, following the directions from WaveShare, you can run this command to calibrate the touchscreen:

DISPLAY=:0.0 xinput_calibrator

Refer to WaveShare’s page on how to edit 99-calibration.conf to save the calibration data so it persists over reboots.

Comments are welcome.

Raspberry Pi heartbeat LED

The Raspberry Pi has two LEDs on the front: One hardwired as a power indicator, and the other is (by default) an SD card activity indicator. This second LED can be changed via software to anything (even a GPIO), but for this, I’m going to show you how to set it as a heartbeat indicator.

sudo su
modprobe ledtrig_heartbeat
echo heartbeat > /sys/class/leds/led0/trigger

The Pi’s led should now start blinking as a heartbeat indicator. If you want to restore the default behavior, you can do so:

echo mmc0 > /sys/class/leds/led0/trigger

That’s all there is to it.