2012
03.23

How thick are your users?

This is an honest-to-God snippet from a published User Guide for some technical documentation I’m reading. This is a user guide for some pretty sophisticated software but apparently they have a low expectation when it comes to their user base.

Navigation through the steps is accomplished by clicking on the Next and Back
buttons found at the bottom of each of the wizard panels. The Next button takes you to the next panel. The Back button takes you to the previously displayed panel. Navigating backward using the Back button will not cause you to loose any entries already made.
A Cancel button is available on all of the wizard panels. Click Cancel to close the wizard discarding any changes.
Click Finish to close the wizard saving any changes that have been made. No changes are saved until the Finish button is pressed.

I’m offended that they feel the need to write for me as if I’m stupid and left feeling a lack of respect for it’s publisher.

Note: I edited slightly to remove any product name references. If you need to know who it was, just ask me.

2012
03.15

Styling the Explicitly Styled

Every now and then I run into a site that has some explicit CSS styling on an element that really doesn’t fit with the site design. If the site is a one-off or ‘custom’ website, that’s easy to change but when it’s a 3rd party product or one that will need upgrading at some point, making changes to many files removing an explicit style is an unpalatable option.

I was working on a site that contained this bit of HTML in *many* files and having bits of red text splattered all over the website looked horrible.

<span style="color: #900; font-weight: bold;">

The last two times I ran into this I was able to fix the problem with a little JQuery script in the site header.

// Tweak span colors without modding all files in the website
$(document).ready(function () {
$('span').each(function(i){
if ($(this).css('color') == "rgb(153, 0, 0)") {
$(this).css('color', '#000');
}
});
});

The code above simply goes through all the Span’s in a page and checks the color that’s applied and if it’s Red (rgb(153, 0, 0)), it gets replaced with Black.

I expected to be able to see the colour change some time after the page rendering had completed but it’s fast enough that you never see it.  Perfect!

2012
03.12

OpenShot Video Editor

Coming back from a recent vacation I have reams of images and several video clips that are in serious need of editing. I thought I’d try using PhotoStory as my kids use it at school and I haven’t heard the end of how great it is and easy to use blah, blah blah. Problem is it’s a Microsoft product. That in itself isn’t so much of a problem but Microsoft has the gall to question the authenticity of my Windows license just for the pleasure of downloading the latest (2005!) version of the app. After jumping through the required hoops and installing countless service packs and the obligatory reboot, I got the software installed.  After a quick look around I realize that it won’t import videos and has a limit of 300 images.   Ok, we’re done here.  I have over 500 images and several videos.  That was the whole point of looking for something that could make a nice clean video compilation.

Enter OpenShot for Linux.

OpenShot Video Editor is a free, open-source video editor for Linux. OpenShot can take your videos, photos, and music files and help you create the film you have always dreamed of. Easily add sub-titles, transitions, and effects, and then export your film to DVD, YouTube, Vimeo, Xbox 360, and many other common formats. Check out the full feature list, view screenshots, or watch videos of OpenShot in action!

Now I’ve tried other Linux video editors and spent my share of time with iMovie on our mac but I didn’t expect quite this much.  It’s fast, simple yet capable and super easy to use.  In an hour of fiddling I didn’t run into anything it couldn’t do for me and I didn’t get bogged down with features I didn’t need.  Overall I’m very impressed.  Grab the latest build and give it a shot.  You’ll be uploading home movies to YouTube before you know it.

2012
02.20

Spamassassin

I’ve recently seen an influx of spam on several of the sites that I run. This led to a closer investigation of the default settings in Spamassassin.

You can automatically delete messages marked as spam. First set the number of hits required before mail is considered spam.

(Note: “5” is the default setting. The lower the number, the more conservative the setting.)

The description in CPanel isn’t as clear as it could be so I had to look further.

The numeric value is the measure at which Spam gets deleted.  Messages are assigned points based on how ‘spammy’ they appear.  Given that piece of info, the lower the number, the fewer messages get through.

2011
12.08

Hey, Where did my VBA Immediate Window go?

While debugging a grossly complicated Excel 2010 workbook my Immediate window disappeared completely. If it ever happens to you, here’s an easy way to get it back:

  • Open the VBE and select Tools, Options
  • Select the Docking tab and make sure the window in question has no checkmark in that tab
  • Close the options window. If you don’t see it yet, select Window, Cascade.
  • Now open the Options dialog again and check the docking property of the window you just (hopefully) got back.
  • Drag it to where you want it docked.

Done!  Now get back to work!

2011
11.17

Running through the Zend Framework quickstart on Ubuntu 11.10, I ran into a few issues. Granted they’re not huge issues, but they slowed me down nonetheless.

1) Make sure that the php.ini for the cli is updated to include the zend framework. See the /etc/apache2/php.ini for the changes required.

2) When creating the /data and /scripts folders, they need to be in the root of your quickstart app, beside your “public” folder.

3) I didn’t have the Sqlite driver installed on my machine so that had to be installed before I could create the database.

AN ERROR HAS OCCURED: The sqlite driver is not currently installed

To fix this, I installed the “php-mdb2-driver-sqlite” package from Synaptic.

After fixing these 3 problems, the data loading script worked like a charm!

There was one more glitch getting the Quickstart app completed. Apparently in Ubuntu 11.10, Sqlite has been upgraded to Sqlite3 where Zend is still using the older version. Here’s a workaround to add the prior version to get through: https://bugs.launchpad.net/ubuntu/+source/php5/+bug/875262/comments/10

2011
11.14

Gimp Plug-ins

I stumbled across this set of plugin’s today. It’s got a million ways to slice photos and it’s in the Debian repositories. Sweet!

sudo apt-get install gimp-plugin-registry

See the details.

2011
10.27

Easy Monitor calibration

I spend a lot of time in front of my monitor and if it’s too bright my eyes get tired quickly. As a result, I keep my brightness down so low that people have thought I had a broken monitor. However, when viewing pictures I need it to look as accurate as possible. Here’s a quick and dirty way to be sure that my Contrast and Brightness are set to reasonable values.

http://www.photofriday.com/calibrate.php

It won’t be perfect, but the price is right and you have nothing to lose but a few minutes of fiddling.

2011
10.06

Every now and then I need to write a block of Oracle PL/SQL that’s a little more involved. I’ve had this block of script put aside as an example of how to include functions and procedures in an anonymous block.

-- PLSQL code
BEGIN
   DECLARE
       -- Equivalent of a package level variable
       i   INTEGER := 0;

      PROCEDURE doStuff (description IN VARCHAR2)
      IS
         i   INTEGER;
      BEGIN
         DBMS_OUTPUT.put_line ('description is ' || description);

         i := i + 1;
      END;

      FUNCTION calcStuff (i_value IN INTEGER)
      return integer
      iS
         i_dummy   INTEGER;
      BEGIN
         i := i + 1;
         DBMS_OUTPUT.put_line ('Function called ' || i || ' time(s)' );

         return i_value + i; 
      END;

   BEGIN
      -- Call our shiny new procedure  
      doStuff ('one');
      doStuff ('two');
      doStuff ('three');
      
      -- Call our new function
      DBMS_OUTPUT.put_line ('Function returned: ' || calcStuff(100));
      DBMS_OUTPUT.put_line ('Function returned: ' || calcStuff(150));
      DBMS_OUTPUT.put_line ('Function returned: ' || calcStuff(200));
            
   END;
END;
2011
10.03

Dumping EXIF with exiftool and Nautilus

When sharing digital images online, I often find myself looking for an easy way to copy and paste the EXIF data. This little script when put into my ~/.gnome2/nautilus-scripts folder will create a text file of the most commonly used EXIF information.

 
#!/bin/bash
files=$#
count=1
message=`echo "Dumping EXIF from $files files"`

(while [ $# -gt 0 ]; do

	# Strip off the file extension, including the "."
	upperExt=`echo $1 | sed 's/.*\(\..*\)/\1/' | tr '[a-z]' '[A-Z]'`

	if [ -f "$1" ]
	then
		# Get the file name without the extension
		# trimmed=`echo $1 | sed 's/\(.*\)\..*/\1/'`

		if [ $upperExt = ".JPG" -o  $upperExt = ".JPEG" -o  $upperExt = ".PPM" -o $upperExt = ".CR2" -o $upperExt = ".NEF" -o $upperExt = ".OTHER_RAW_EXTENSION" ]
		then
			# Output EXIF data to a new text file named the same as the original image.
			exiftool -canon -S "$1" > "$1.txt"
		fi
	fi
	# Output the zenity progress bar
	sav=`echo "(($count / $files) * 100)" | bc -l`
	echo $sav
	count=`expr $count + 1`
shift
done) | zenity --progress --auto-close --auto-kill --text "$message"