We’ve got a laser (engraver)!!

You read that right, a laser!! The wife and I have actually had it for nearly year now and what a great toy piece of equipment it is, its about the size of a photocopier and can be used to either cut or engrave some really cool designs – scoll to the end to see what it looks like.

The reason we have the laser is because we setup an online business selling personalised chopping boards and other unquie wooden gifts (think engraved wooden spoons or wooden wine gift boxes)…..Here are a few examples:

Solar System Personalised Chopping board (available for sale from chompboards.com) Solar System Personalised Chopping board (available for sale from chompboards.com)

Solar System Personalised Chopping board (available for sale from chompboards.com)

MR & MRS Wedding Rings Personalised Chopping board (available for sale from chompboards.com)

MR & MRS Wedding Rings Personalised Chopping board (available for sale from chompboards.com)

Wedding/Anniversary Wooden Wine Gift Box (available for sale from chompboards.com)

Wedding/Anniversary Wooden Wine Gift Box (available for sale from chompboards.com)

Feel free to visit our website at www.chompboards.com to check out more designs available for sale. When I get some time I’ll write some follow up posts to show you the laser in action and share some of our learnings setting up the website and the business.

I’m sure you wanted to see the laser though, here’s a photo of the beast for you to enjoy:

Laser Engraver

Laser Engraver

Not exactly pretty is it! 🙂

Jason Vigus

Master Google Analytics & It’s Hidden Features In Less Than 5 Minutes

There is a little known hidden feature buried deep inside Google Analytics that is a goldmine of actionable ideas & insights.

If you are like most small website owners you probably use Google Analytics every now and then, poking about in random sections & looking at the graphs to give you anecdotal indicators about your users or trends. Did you know there is a mobile app too?

Most of use are not really scratching the surface with Google Analytics, let alone mastering it & using it for all it’s worth! Most of us honestly just don’t have (or make) the time needed to become a Google Analytics ninja.

Fortunately someone else has done all the hard work & with just a few clicks you can fill your Google Analytics account with useful reports & even an executive dashboard to tell you exactly how your site is doing. Just tell me how I hear you asking, well follow these easy steps…..

Login to your Google Analytics account now, click “Customization” (Google uses USA English spelling as you can see), then “Import from Gallery”.

Google Analytics Import From Gallery (custom reports)


The Google Analytics Solutions Gallery should be on screen now, there are lots of good ones to play with but we will try out “Occam’s Razor Awesomeness”, go ahead and click import.

Google Analytics Solutions Gallery (custom reports)

On the shared reports permissions page, choose which site you want to import the reports into, as you can see I’m applying this to the vigus.eu view.

Google Analytics Solutions Gallery Permissions (custom reports)

Once you’ve clicked create you will find a selection of new reports to play with in your Google Analytics account.

Google Analytics Custom reports

You will also find a fancy new executive dashboard.

Google Analytics Executive Dashboard

Another little gem that’s often left unused is the custom alerts function which can send you an email or text message based on defined criteria, such as an increase in 404 errors, or a % drop in traffic over a period of time.

Google Analytics Custom Alerts


So now you know how to supercharge your Google Anayltics use by creating custom reports, executive dashboards & alerts. It’s easier than you thought and can be setup in just a few minutes – enjoy!

Jason Vigus

Access you iCloud Photo Stream from your Mac

One of the best features of iCloud these days is it’s ability to automatically sync your photo’s between devices, so if you take a picture on your iPhone or IPad it will automatically appear on any other devices you have.

You can extend this functionality to your Mac too but unfortunately its not necessarily obvious how to do this at first glance.This quick guide will get you accessing your iCloud Photo Steam on your Mac in no time:

Turning on Photo Stream on in IOS (iPhone, iPod or iPad device)

The first step you will need to do is enable iCloud Photo Stream on your IOS device. To enable Photo Stream on your iOS device: Go to Settings > iCloud > Photo Stream. Slide the switch over so it reads “On.” That’s it!

Accessing Photo Stream on your Mac via iPhoto

This is the simplest way to access the iCloud Photo Steam on your Mac device, for this example I am using iPhoto 9.5.8:

1. Open iPhoto. On menu on the left at the bottom, click the “Photo Stream” option.
2. You will see a yellow notice on the screen that explaining what to do next.
3. Click the arrow icon at the end of the notice text, and click the box next to the “My Photo Stream” option. Your photos will begin to load into iPhoto, be patient – If you have a lot of photos already in your Photo Stream, it may take a while before for them all to sync.


Jason Vigus

How to easily disable WordPress pingbacks & comments for new & old posts

Today I decided to disable comments and pingbacks on my WordPress blog because the ratio of spam to real comments was in the region of 200:1, I’ve tried various anti-spam comment pluggin’s but with only limited success. So enough was enough & I’ve disabled pingbacks & comments on my WordPress blog now.

It’s easy enough to do this for new posts:
Screen Shot 2014-04-19 at 11.39.09

1. Click Settings
2. Uncheck “Allow link notification from other blogs (pingbacks and trackbacks)” & “Allow people to post comment on new articles”

You will also want to go and disable this for all your old posts, here is a quick & easy way to do that:
Screen Shot 2014-04-19 at 11.41.031. Go to your “Posts” page
2. Expand “Screen Options”
3. Change the options so you have a good number of posts displayed.
4. Apply the “Screen Options” change.
5. Select all posts.
6. Select “Edit” in the drop down option & click “Apply”.
7. Set “Comments” to “Do not allow” (this disables comments).
8. Set “Pings” to “Do not allow” (this disables pingbacks).
9. Click “Update” to apply changes.

Note: if you didn’t select a high enough number for option 3 you will need to repeat this process on Page 2, Page 3, Page 4 & so on.

Now you have turned off pingbacks & comments this will reduce the amount of spam that finds it’s way to your WordPress blog – that was easy wasn’t it!


Jason Vigus

Bear Grylls Fronts The Latest Air New Zeland In Flight Safety Video

The cleaver folks over at Air New Zeland have come up with another great in flight safety video called “The Bear Essentials of Safety “. Air New Zealand’s previous Hobbit Inspired Safety Video was a hit both in the air & across the web, this time their new video is fronted by Bear Grylls & for the first time its not even filmed in an aircraft:

I personally prefer the Hobbit inspired version but its great marketing whichever way you look at it & from a passenger safety point of view it will hold your interest so that can only be a good thing. Let me know your thoughts by leaving a comment below.

Jason Vigus

Did you see the Hobbit Safety Video by Air New Zealand yet?

I first saw this video (unsupringly) on an Air New Zealand flight from London to Los Angeles last month, its a completely new take on an in flight safety video that really captures your interest unlike most other airlines boring, but functional saftey videos.

This Hobbit inspired safety clip even features a cameo apperance of Sir Peter Jackson himself. Leave a comment and let me know what you think.

Jason Vigus

Bosch Rotak 34 Ergoflex Rotary Lawn Mower Review

I picked up the Bosch Rotak 34 Ergoflex rotary lawn mower today and having just completed its first lawn mowing session I’m very happy with the results and my purchase of this mower as it was a breeze to use and the lawn looks great.

Bosch Rotak 34 Ergoflex

Bosch Rotak 34 Ergoflex

Our back garden is not very large at all so I had been using a Flymo to keep it trimmed, however this was causing problems because unless your lawn is 100% flat (no bumps or dips) then a Flymo will loose its cushion of air leave you with a bald patch in the lawn. The Bosch Rotak 34 however has no problems in this department as it has wheels and allows you to very easily change the length of grass to cut too (a choice of 7 settings).

Ergoflex system

The Ergoflex system that Bosch have used on the Rotak 34 (Ergoflex) mower makes this lawn mower very easy to handle and provides the user with full control.

Ergoflex Control System

Ergoflex Control System

The “Ergo-grip” is a multigrip control system that allows simple operation of the lawn mower in varying situations, visually and ergonomically it actually reminds me of a mountain bike fitted with bar ends.

Powerdrive Motor System

The Powerdrive 1400 watt motor at the heart the Rotak 34 packs a punch and made light work of the overgrown grass today. The PowerDrive motor system is a powerful and intelligent system that is designed to keep the mower working at optimum levels at all times.

Grass Combes

The Rotak 34 has a pair of unique grass combes fitted to either side, & the wheels are slightly inset from these combs which allows you to mow right up to the edge of a wall or fence without any problems.

Grass Combs

Grass Combs

Using the Bosh Rotak 34 ErgoFlex

A very easy to operate mower. The Ergo-grip system with 4 buttons will offer you a choice of ways to hold the mower to ensure you have the most control and are comfortable. The first time you plug in and spin up the mower you will realise how quiet it is in operation, you will then find out how easy it is to manoeuvre due to how light it is (10.5 Kg actually). You will really notice the PowerDrive system kick in when you are working on long thick grass. The end result is a sharp cut with an even finish & the grass combs give edges a very professional look.


There isn’t really anything negative to say about the Bosch Rotak 34 Ergoflex. At this price range you will have a hard time trying to find something to match the Rotak 34 Ergoflex on performance, ease of use and features.

Where can I get one?

Amazon are doing them on a great deal currently here:

Jason Vigus

Transfer SQL Server Logins Between instances of SQL Server 2005, 2008 or 2008R2

If you find yourself needing to transfer your SQL Server Logins between instances or SQL servers (SQL Server 2005, 2008, and 2008R2) for migration purposes, or simply want to make a backup of your SQL Server Logins for disaster recovery purposes just follow these easy steps:

Step 1: On the source server launch SQL Management Studio & connect to the instance of SQL from which you moved the database.

Step 2: Open Query Editor and run the following:

USE master
IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL
  DROP PROCEDURE sp_hexadecimal
CREATE PROCEDURE sp_hexadecimal
    @binvalue varbinary(256),
    @hexvalue varchar (514) OUTPUT
DECLARE @charvalue varchar (514)
DECLARE @i int
DECLARE @length int
DECLARE @hexstring char(16)
SELECT @charvalue = '0x'
SELECT @i = 1
SELECT @length = DATALENGTH (@binvalue)
SELECT @hexstring = '0123456789ABCDEF'
WHILE (@i <= @length)
  DECLARE @tempint int
  DECLARE @firstint int
  DECLARE @secondint int
  SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))
  SELECT @firstint = FLOOR(@tempint/16)
  SELECT @secondint = @tempint - (@firstint*16)
  SELECT @charvalue = @charvalue +
    SUBSTRING(@hexstring, @firstint+1, 1) +
    SUBSTRING(@hexstring, @secondint+1, 1)
  SELECT @i = @i + 1

SELECT @hexvalue = @charvalue

IF OBJECT_ID ('sp_help_revlogin') IS NOT NULL
  DROP PROCEDURE sp_help_revlogin
CREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL AS
DECLARE @name sysname
DECLARE @type varchar (1)
DECLARE @hasaccess int
DECLARE @denylogin int
DECLARE @is_disabled int
DECLARE @PWD_varbinary  varbinary (256)
DECLARE @PWD_string  varchar (514)
DECLARE @SID_varbinary varbinary (85)
DECLARE @SID_string varchar (514)
DECLARE @tmpstr  varchar (1024)
DECLARE @is_policy_checked varchar (3)
DECLARE @is_expiration_checked varchar (3)

DECLARE @defaultdb sysname

IF (@login_name IS NULL)

      SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM 
sys.server_principals p LEFT JOIN sys.syslogins l
      ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND p.name <> 'sa'

      SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM 
sys.server_principals p LEFT JOIN sys.syslogins l
      ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND p.name = @login_name
OPEN login_curs

FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin
IF (@@fetch_status = -1)
  PRINT 'No login(s) found.'
  CLOSE login_curs
  DEALLOCATE login_curs
SET @tmpstr = '/* sp_help_revlogin script '
PRINT @tmpstr
SET @tmpstr = '** Generated ' + CONVERT (varchar, GETDATE()) + ' on ' + @@SERVERNAME + ' */'
PRINT @tmpstr
WHILE (@@fetch_status <> -1)
  IF (@@fetch_status <> -2)
    PRINT ''
    SET @tmpstr = '-- Login: ' + @name
    PRINT @tmpstr
    IF (@type IN ( 'G', 'U'))
    BEGIN -- NT authenticated account/group

      SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' FROM WINDOWS WITH DEFAULT_DATABASE = [' + @defaultdb + ']'
    ELSE BEGIN -- SQL Server authentication
        -- obtain password and sid
            SET @PWD_varbinary = CAST( LOGINPROPERTY( @name, 'PasswordHash' ) AS varbinary (256) )
        EXEC sp_hexadecimal @PWD_varbinary, @PWD_string OUT
        EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT

        -- obtain password policy state
        SELECT @is_policy_checked = CASE is_policy_checked WHEN 1 THEN 'ON' WHEN 0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name
        SELECT @is_expiration_checked = CASE is_expiration_checked WHEN 1 THEN 'ON' WHEN 0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name

            SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' WITH PASSWORD = ' + @PWD_string + ' HASHED, SID = ' + @SID_string + ', DEFAULT_DATABASE = [' + @defaultdb + ']'

        IF ( @is_policy_checked IS NOT NULL )
          SET @tmpstr = @tmpstr + ', CHECK_POLICY = ' + @is_policy_checked
        IF ( @is_expiration_checked IS NOT NULL )
          SET @tmpstr = @tmpstr + ', CHECK_EXPIRATION = ' + @is_expiration_checked
    IF (@denylogin = 1)
    BEGIN -- login is denied access
      SET @tmpstr = @tmpstr + '; DENY CONNECT SQL TO ' + QUOTENAME( @name )
    ELSE IF (@hasaccess = 0)
    BEGIN -- login exists but does not have access
      SET @tmpstr = @tmpstr + '; REVOKE CONNECT SQL TO ' + QUOTENAME( @name )
    IF (@is_disabled = 1)
    BEGIN -- login is disabled
      SET @tmpstr = @tmpstr + '; ALTER LOGIN ' + QUOTENAME( @name ) + ' DISABLE'
    PRINT @tmpstr

  FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin
CLOSE login_curs
DEALLOCATE login_curs

This script will create two SP’s (stored procedures) in your master database called “sp_hexadecimal” & “sp_help_revlogin“.

Step 3: Clear Query Editor & run the following statement:

EXEC sp_help_revlogin

Step 4: Copy the output script generated by sp_help_revlogin and either save to file or run this on your new server, this script creates logins that have the original SID (Security Identifier) and password.

If you want to read more check out the following Microsoft Knowledge Base article: http://support.microsoft.com/kb/918992

You’re done already – I told you it was easy!

Jason Vigus

Change SQL 2008R2 Server Collation Setting on Failover Cluster

Many people believe to change the default SQL Server collation setting from the one chosen when SQL Server was originally installed requires SQL Server to be re-installed again, this is not true from SQL 2005 onwards as I shall explain using SQL 2008R2 (in a cluster configuration) as an example.

To change the default SQL Server collation you can simply rebuild the system databases. When you rebuild the master, model, msdb and tempdb system databases, the databases are actually dropped and recreated in their original location. If a new collation is specified in the rebuild statement the system databases are rebuilt using that collation setting. Any user modifications to theses databases will be lost so it is important to backup any of this you wish to retain, eg SQL Server logins.

If you are running a non-clustered (standalone) SQL Server, you can simply skip step 3.

Step 1: Review the Microsoft MSDN documentation regarding “Before You Rebuild The System Databases” & complete the steps to backup your server configuration.

Step 2: Backup your SQL server logins. (How to Backup/Transfer your SQL Logins)

Step 3: Open Cluster Failover Administrator & put your SQL Server resource offline, I also recommend you pause the secondary node to prevent any accidental failovers & the resource coming online.

Step 4: Login to the active SQL node in the cluster & run the following command:

Note the following:
-The INSTANCENAME parameter takes only the SQL server instance, without any server/virtual name, the default instance will be MSSQLSERVER.
-The SA password must meet strong password requirements
-The SAPWD parameter is required if the instance it to use mixed mode authentication.
-The SQLCOLLATION parameter must be set to a correct SQL Collation: http://msdn.microsoft.com/en-us/library/ms180175.aspx 

Step 5: Apply the required service packs & cumulative updates to bring SQL server back to the correct patch level.

You can also simply change the database collation settings for individual databases, this is sometimes suitable rather than changing the default server collation for the entire SQL server.

If you run the command from “C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\SQLServer2008R2\” and experience the following error when rebuilding the system databases in SQL 2008R2 “Exception has been thrown by the target of an invocation”, the work around is to run the command using the setup.exe which exists on the local media (installation disc).

Jason Vigus