Sunset in The Broads

A few days away up Norfolk way and this is tonight’s sunset, this time lapse was taken on my Google Pixel phone using the DJI Osmo 2.

As I have not taken my laptop the video was editing using Adobe clip with the music being added and the watermark all on the phone, it it quite impressive that all of this has been done on a phone without any expensive software you can download from the play store.

DJI Osmo Mobile 2

So time for a new toy I think, I have just had a DJI Osmo Mobile 2 delivered to help me with some time lapsed photos and videography.

This is the first two time lapsed videos, one with and one without motion, just setup on a tripod in the back garden, next time I will be out and about.

DJI Osmo Mobile 2 time-lapse test

The first outing of the DJI Osmo Mobile 2 time-lapse test taken with a Google Pixel phone with the video being captured at 4K.
A single image every 5 seconds to make the video.

 

DJI Osmo Mobile 2 time-lapse with motion test

The first outing of the DJI Osmo Mobile 2 time-lapse with motion test taken with a Google Pixel phone with the video being captured at 4K.
A single image every .5 seconds to make the video.

Leather project 1 – Coin purse

My first leather project is a coin purse that can be hooked over a belt keeping the change out of your pocket so it does not cause any rips in the pocket lining.

The step by step process is detailed in both the video & the photos below.

You can donwload the template from this .PDF file >> Leather Project 1 Coin Purse Template

 

 

 

 

Web Widget 1st Cut

BloomSky Dashboard – Unofficial Web Widget 1st Cut

The first attempt looks like this:

To add this into your page please take the following code inserting your BloomSky API Key:

Change this line:

GetBloomSkyHTML('<YourAPIKey>', '1');

<script src='http://code.jquery.com/jquery-latest.min.js' type='text/javascript'></script>
<link href="http://pcst.co.uk/BloomSkyUnofficial/style.css" rel="stylesheet">
<script src='http://pcst.co.uk/BloomSkyUnofficial/BloomSkyUnofficial.js' type='text/javascript'></script>
<div id="BloomSkyUnoffical"></div>
<script type="text/javascript">
    GetBloomSkyHTML('<YourAPIKey>', '1');
</script>
    
       

We will be adding more refinements into the widget over the coming days.

BloomSky Dashboard – Unofficial

Welcome to the BloomSky Dashboard – Unofficial project pages.

After my weather station gave up the ghost I decided to try a BloomSky from https://www.bloomsky.com and while I love the photos I was not too impressed with the ability to store data and serve up the information on personal websites so I have decided to use the APIs that they provide to fill the gap.

This following pages will detail the project & progress.

If you would like to get involved please let me know.

Enjoy.

PowerShell Arrays and that annoying number on the screen

When you create an array and populate it in PowerShell the number of elements is written out to the screen, very annoying.

e.g.

function Array-Error() 
{ 
    $Array = New-Object System.Collections.ArrayList 
    $Return = "ReturnValue" 
 
    $Array.Add("Value1") 
    $Array.Add("Value2") 
    $Array.Add("Value3") 
    $Array.Add("Value4") 
 
    return $return 
}
 
$display = Array-Error 
write-host -ForegroundColor Red $display

Output

0 1 2 3 ReturnValue

So how do we stop the numbers from being displayed to the screen, while Fix 2 is the proper way I like fix 1 as it reminds me of passing things over to “/dev/null” when I was a UNIX chap.

function Array-Fix1() 
{ 
    $Array = New-Object System.Collections.ArrayList 
    $Return = "ReturnValue" 
 
    $Array.Add("Value1") > $null 
    $Array.Add("Value2") > $null 
    $Array.Add("Value3") > $null 
    $Array.Add("Value4") > $null 
 
    return $return 
} 
 
$display = Array-Fix1 
write-host -ForegroundColor Magenta $display

Output

ReturnValue

or

function Array-Fix2() 
{ 
    $Array = New-Object System.Collections.ArrayList 
    $Return = "ReturnValue" 
 
    $Array.Add("Value1") | Out-Null 
    $Array.Add("Value2") | Out-Null 
    $Array.Add("Value3") | Out-Null 
    $Array.Add("Value4") | Out-Null 
 
    return $return 
} 
 
$display = Array-Fix2 
write-host -ForegroundColor Magenta $display

Output

ReturnValue

Gary Numan – 24 September 2016

Today I got to go to a Gary Numan gig in Portsmouth and t was fantastic.

He was revisiting the Replicas, The Pleasure Principle & Telekon albums bringing them bang up to date and he did a fantastic job, I also get to see the same just up the coast in Bexhill on Monday evening as well, I was able to get a few shots tonight but with a bit of luck on Monday I should be able to get some better ones.

Once in a blue moon

So for the second night on the trot the moon has been out and I have had the time to take some photos, tonight I thought I would add some filters to see if it would define the craters and ridges in more detail, still not too sure about it’s success.

Luna photography – second attempt

So way back in 2014 I tried my hand at taking some photos of the moon take a looa at: Luna photography for an idea of what I was doing.

Tonight I thought I would give it a second attempt and I think the photos are much much better with quite a bit more detail to show.

To see a larger version of the image please click on the photo.

Hallvik – Dive site

This is Hallvik in Iceland, not too far from the Silfra fissure and just as stunning, the photos do not do the viability and blues justice, the best things is the water was quite warm rangeing from 3 – 9 degrees.

We where guided by Dave from http://magmadive.is a guide that I could not recommend highly enough so if you are looking to go over then look them up.

Silfra – Dive 2

After the first dive my wife being the sensible woman she is decided to get out of her diving kit and get warm me on the other hand could not help but go back in, this is the second dive.

We where able to dive the Silfra fissure crack between the North American and Eurasian continents where the continental plates meet, one truly unique place.

We where guided by Dave from http://magmadive.is a guide that I could not recommend highly enough so if you are looking to go over then look them up.

Silfra – Dive 1

I had the absolute pleasure of diving on my wedding anniversary with my wife in Iceland this weekend.

We where able to dive the Silfra fissure crack between the North American and Eurasian continents where the continental plates meet, one truly unique place.

We where guided by Dave from http://magmadive.is a guide that I could not recommend highly enough so if you are looking to go over then look them up.

 

Ebony and burning

Woodturning project #7 – Burning and ebonising

Well this weekend I have been playing with a couple of news items, a blow torch & ebonising spray and the results are below.

They are not too bad for a first attempt but I should have built up the ebony  layers much slower and a lot thinner.

 

Today’s inspiration has come from both Mike Waldt and Martin Saban-Smith both have fantastic videos to go through and gain some inspiration.

 

I am in Turner’s Rest

It looks like two of my turnings have been included in Turner’s Rest.

Turner’s Rest is a paper.li content aggregator run my Martin Saban-Smith and it has picked up on two pieces of work that I did last weekend, quite exciting.

Pop over to www.turnersrest.com and take a look and subscribe it hits your email inbox on Friday’s.

Turner's Rest 16 April 2016
Turner’s Rest 16 April 2016

Wooden box - Cherry

Woodturning project #4 – A wooden box

This weekend I have had the pleasure of being taught how to turn some wood.

I spent two days with Tom Pockley and have learned so very much that I hope I don’t forget. I guess the best way is to get some more practice in during the week all I need to do is finish work on time so I can play in the garage / wood shop.

This is project number 4 a wooden box from cherry wood, it box is 90 mm high with the lid being 50 mm high.

Wooden bowl

Woodturning project #3 – A wooden bowl

This weekend I have had the pleasure of being taught how to turn some wood.

I spent two days with Tom Pockley and have learned so very much that I hope I don’t forget. I guess the best way is to get some more practice in during the week all I need to do is finish work on time so I can play in the garage / wood shop.

This is item project 3 for me and I am quite happy with it, I also turned a box but that will be in the next post.

Misadventures in wood turning

So we are in March 2016 and the time has come to begin a new woodworking related hobby I have chosen wood turning.

This section will document my misadventures in wood turning from photos of my first pieces to eventually videos to detail my journey, I am sure I will make many many mistakes but a log of what I am / have been doing should help me get better and if anyone else gets a kick out of my misadventures then all the better.

Blank in the lathe

Woodturning project #1 – 8 inch sycamore bowl

So I have taken up a new hobby to go with all of the others, and this is my first attempt to make something.

This in an 8 inch sycamore bowl.

I am in preparation of a turning course in two weekends time and thought I should give things a go before I went, this is the first thing I have put on a lathe and the first bit of woodwork in over 25 years.

This is my attempt, sorry about the quality of the photos I was using the camera on the back of a tablet.

I followed this tutorial from Keith Barrow on YouTube:

Hastings by night

So some fun tonight in Hastings with long exposures.

I need to bring the time down quite a bit as they are a little too light in places and the images are suffering as a result, I will go back to the spot and play again in a few evenings times and hopefully the outcome will be better.

The nice thing about mistakes is the ability to learn a little more.

Water droplet photography

So after an age I have been able to start with doing some water droplet photography, this is my first try and a few lessons learned.

Firstly the boring bits:

  • Shutter speed: 1/250
  • ISO: 400
  • F-Stop: f16
  • Camera: Cannon Eos 700D
  • Post editing
    • With the exception of cropping there was no post editing, so what you see if what you get.

 

Lessons learned

Focus:

I need to work on the focus a little more, the water is fine but the droplets are not as clear as they should be, perhaps I need to move the focus up a little.

Background:

While black is doing the job I may need to have a play with other colours but we will see for next time.

Lighting:

The lighting is not as simple as it appears to be, I need to work on that quire a bit.

 

That x64 setting.

Today the following error was being thrown by a new SharePoint c# application,

“An unhandled exception of type ‘System.Runtime.InteropServices.COMException’ occurred in Microsoft.SharePoint.dll” with the following detail:

“Additional information: Retrieving the COM class factory for component with CLSID {BDEADF26-C265-11D0-BCED-00A0C90AB50F} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).”

The application is being written in Visual Studio 2013, c# for SharePoint 2013 on a Microsoft Server 2012 R2 server.

To get over the issue just change the platform target in the build settings of the project to x64.

 

Diving at Holbrough Lakes

Went for a little dive over at Holbrough lakes this afternoon / this evening trying out a Liquid Image video camera mask, pleasantly surprised with the video.

We found the bus that was sunk at Holbrough lakes a couple of weeks ago.

 

 

Star trail photography

I have loved star trail photos for quite some time now so I thought I would have a play.

This image of from a set of images taken last night, not the best night for star trails as there was a almost full moon but I needed to try out the theory.

The image below is a composite image from 55 photos stitched together, each photo was taken with a Nikon D5100 using the inbuilt “interval timer shooting” option.

The camera was mounted on a tripod and set up to take images with the following settings.

F-stop : 5.6

Exposure time : 15 seconds

ISO Speed : 1600

Focal length : 22mm ( I was aiming for 20 but hay ho)

The images where then stacked using StarStaX a fantastic little freeware application.

This is the resulting image:

StarTrail-Try1

Now there is lots wrong with this image, there is too much light pollution from the street lamps but it was able to prove the concept.

The next time I do this there will be no moon in the sky and I will be in a more remote location without street lamps and with a bit of luck it will be a lot nicer.

 

Luna photography

I thought I would try my hand at Luna photography and after a little messing around with the settings I was able to get a few shots off.

The following are the four that I have selected out of the 9 in focus photos that I was able to take tonight.

Uncropped Luna Photo 2
Uncropped Luna Photo 1

ISO : 400
F-stop : F3.5
Focal length : 23mm
Flash : None
Shutter timing : 1/80 second.

 

Uncropped Luna Photo 3
Uncropped Luna Photo 2

ISO : 200
F-stop : F2.8
Focal length : 23mm
Flash : None
Shutter timing : 1/80 second.

Uncropped Luna Photo 1
Uncropped Luna Photo 3

ISO : 200
F-stop : F2.8
Focal length : 23mm
Flash : None
Shutter timing : 1/125 second.

Uncropped Luna Photo 4
Uncropped Luna Photo 4

ISO : 200
F-stop : F2.8
Focal length : 23mm
Flash : None
Shutter timing : 1/125second.

I then went on to crop with the, with different degrees of success, I think that cropped image 3 is the best one.

Cropped Luna Photo 1
Cropped Luna Photo 1

Cropped Luna Photo 2
Cropped Luna Photo 2

Cropped Luna Photo 3
Cropped Luna Photo 3

 

Fireworks 2014

It has been a while since I had the time to play with the manual mode of a camera as as the local school was having a fireworks night in my back garden I thought I would have a play.

So I set my Nikon D5100 up on a tripod got out the IR shutter release and had a play.

The base settings are:

ISO : 100

F-stop : F11

Focal length : 18mm

Flash : None

Shutter timing : 1.9 – 5 seconds.

With the exception of some cropping I have not done any post editing at the moment, I plan this week to take one or two of the images and play with them in GIMP / Photoshop and see what I can do with them.

Virtual box to Hyper-V is one easy step

Tip of the day, this tip has been shamelessly stolen from Diary of a SharePoint consultant like many others I run Virtual Box and have lots of different environments ready to run to aid development & migration and the thought of re-creating them in Hyper-V has filled me me dread for quite a while now.

I do run Hyper-V on a couple of servers that I use but not on my portable development laptop that I carry around and I have been feeling increasingly hypercritical recommending that people run Hyper-V when I have not been running it on my laptop.

So a few days ago I decided to take the plunge and find a way forward moving over to Hyper-V on my laptop and I came across the posting that has made my life much easier, so I have put it on my blog so I can find it again.

'C:\Program Files\Oracle\Virtual Box\vboxmanage.exe' clonehd 'C:\VMs\VirtualBox\Server2012R2\SP2012r2.vdi' 'C:\VMs\Hyper-V\Server2012R2\SP2012r2.vhd' –format VHD

So far the conversions have gone well, I have converted:

Linux, IIS & MySQL, IIS & SQL Server 2012 / 2014, SharePoint 2003, SharePoint 2007, SharePoint 2010 & a SharePoint 2013 servers.

The only hiccup is that you will need to use Generation 1 hardware to mount the .vhd format disk but that is not a worry to me.

Office 365, ADFS & SSO

So you have made the move into Office 365, you have ADFS so you can have a single sign on so your user do not need to worry about logging in when they are in the office but it is not working, you check your ADFS setup and it looks good once you users logon in the morning they are good for the day so what are you missing?

There are a couple of setting that you may need to look at.

You will need to add the following into the “Local Intranet” zone in IE:

  • *.microsoftonline.com
  • *.office.com
  • Your ADFS server

You will also need to change one of the settings in the advance settings tab in IE.

Internet Options >> Security >> Click on the Local Internet zone >> click on the “Custom level…” >> User Authentication >> Logon >> Automatic log-on only in Intranet zone.

IE Settings for Office 365, ADFS & SSO
IE Settings for Office 365, ADFS & SSO (click for a bigger image)

This set of settings can be deployed via an AD group policy if needed.

Keeping your PowerShell tidy

I am quite a fan of Powershell but miss the ability to include other files in a simple and clean way.

I quite like the idea that as you run scripts in the different environments dev, test, UAT, staging and production they should never change, the only thing that should change are the variables in each environment to this end I will end up with at least three files per script.

  1. variables – This file contains the things that should and do change in each environment from service accounts, DNS names, environment names & descriptions.
  2. functions – This file will contain reusable blocks of code.
  3. process – This file will contain the process that should not change from environment to environment.

Now the chances are that the variables will be called variables.ps1, functions will be functions.ps1 & process will be called whatever is needed, and if the truth is told the functions.psq1 will be split into different files reflecting the different areas as needed.

The point of this post is not to bore you to death with the way I do work but to show you how to include the variables & functions files into your process script, and how to stop the script if there is an issue, copy and past the following into your Powershell script change as needed and you will be away.

$thisScript = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent
 
try
{
    #Load the common variables script. 
    . ($thisScript + '.\variables.ps1')
}
catch
{
    write-host -f red "---------------------------------------------------------------"	
    write-host -f red "|       The variables.ps1 file can not be loaded.             |"
    write-host -f red "|             This script will stop as a result.              |"
    write-host -f red "---------------------------------------------------------------"	
	Break
}
 
try
{
    #Load the common variables script. 
    . ($thisScript + '.\functions.ps1')
}
catch
{
    write-host -f red "---------------------------------------------------------------"	
    write-host -f red "|       The functions.psq file can not be loaded.             |"
    write-host -f red "|             This script will stop as a result.              |"
    write-host -f red "---------------------------------------------------------------"	
	Break
}
 
 

 

PowerShell script to create an AD group in an OU

Active directory you have got to love it, using it as a base to secure up access to SharePoint is quite an important thing to understand but who wants to create the groups, better pass it over to a script to do.

This script is a starter and will create an AD group in a specified OU priming it ready to be linked to the SharePoint group (I will post up a script to do this in the future – search for it and if I remember I will link to it), as with all thing sI tend to do this script is a building block, it can use used in isolation but it is better to use it  as part of an automated process when provisioning sharePoint sites.

The function CreateADGroup would be best housed in an global functions file that you can include into other PowerShell scripts as you need, giving you reusability, the function is included in this script just so it can be stand alone.

Download file : CreateADGroup as a text file

#---------------------------------------------------------------------------------------
#Script name :- CreateADGroup.ps1
#
#Script author :- Ian Ballard
#Version history.
#Version number | Date | Author | Comments
#1.00 | 07/11/2014 | Ian Ballard | Initial version. 
#---------------------------------------------------------------------------------------
 
$ver = $host | select version
if ($ver.Version.Major -gt 1) {$Host.Runspace.ThreadOptions = "ReuseThread"}
#Include the PowerShell snap-ins & imports that will be needed. 
Import-Module ActiveDirectory
 
function CreateADGroup( [string] $ADGroup, [string] $ADGroupDisplayName, [string] $ADGroupDescription, [string] $ADOUPath )
{
 try 
 { 
 get-adgroup $ADGroup | out-null 
 if ( $debug -eq $true )
 {
 write-host -f $debugColourStepIgnored "The AD Group $ADGroup is already in Active directory, skipping this step."
 }
 
 }
 catch 
 {
 New-ADGroup -Name $ADGroup -GroupCategory Security -GroupScope Global -DisplayName $ADGroupDisplayName -Description $ADGroupDescription -path $ADOUPath
 if ( $debug -eq $true )
 {
 write-host -f $debugColour "The AD Group $ADGroup has been created in Active directory."
 }
 }
}
 
 
$ConfirmPreference = "None"
 
#
#Debug option. 
#
$debug = $true
$debugColour = "green"
$debugColourStepIgnored = "yellow"
#
#
#
 
#AD Group information for the owners of the site. 
$ADGroup = "New AD group"
$ADDisplayName = "New AD group display name"
$ADDisplayDescription = "This AD group was created via a PowerShell script."
$ADOUPath = "OU=DEV,OU=Development-Managed Applications,OU=Security,OU=Groups,DC=development,DC=local"
 
CreateADGroup ($ADGroup) ($ADDisplayName) ($ADDisplayName) ($ADOUPath)

SQL Server Audit

Who did what and when did they do it?

SQL Servers has some fantastic audit capability but sometimes a client will want to hand craft their own and this script can act as a place to start.

The script will create audit tables that will audit what your users are up to.

The script has some options:

set @Author = SUSER_NAME()
set @SPPrefix = ‘usp_’
set @Schema = ‘dbo’

set @DisplaySQL = 1
set @ExecuteSQL = 0

–@CreationStyle
–1 – Create only audit tables where no audit tables are in existence.
–2 – Create all audit tables by dropping existing audit tables.
–3 – Create all audit tables and place current audit tables into archive e.g. _Archive to _Archive_+@DateStyle

set @CreationStyle = 1

–The date style for the _Archive rename as follows.
set @DateStyle = convert(varchar, getdate(), 9)

Use the different creation styles to hive off audit tables on a regular basis you don’t want the size of the tables to become an issue, run them daily, weekly or monthly depending on the needs of your system & users but archive them off.

There are two scripts for this one, there is the creation script and the drop script, use them as needed.

Download file : Audit.sql as a text file

Download file : DropAudit.sql as a text file

 

Database documentation

Documentation is the bane of my life you design a fantastic database and someone tells you that they would like to know how it works, so the task begins.

This script will take a look at the database and do the graft for you, if you have been well behaved and added descriptions to objects you will be golden as the script will go over your database and document the thing for you, of you then export the output to Excel you have a nice document to put into the document folder.

Download file : DocumentDatabase.sql as a text file

Database CRUD scripts

The use of a database is always a good idea and not giving users any direct access to the tables is an even better idea but wrapping the tables with stored procedures that you can secure up by group membership is a little bit of a pain, this script will enable you to create all of the CRUD stored procedures, you can control how the script runs via the options.

You can set all of the following:

set @Author = SUSER_NAME()
set @SPPrefix = ‘usp_’
set @Schema = ‘dbo’

set @createInsert = 1
set @createUpdate = 1
set @createDelete = 1
set @createSelect = 1
set @createSelectByPrimaryKey = 1

set @DisplaySQL = 0
set @ExecuteSQL = 1

Use the @ExecureSQL & @DisplaySQL options to generate a script that you can look at and run later.

Download file : CRUD.sql as a text file

 

What site template did that SharePoint site start as?

Sometimes you need to figure out what template was used when creating a SharePoint site,  you can mess about in the database (not recommended) you can look in the HTML of an output page as long as your master page has not changed some of the default options or you can open up the SharePoint management shell and use the following.

$web = Get-SPWeb -Identity "http://SharePointSiteURL"
$Template = $web.WebTemplate
$Template = $Template + "#"
$SiteTemplate = $Template + $web.WebTemplateID
 
Write-Host $SiteTemplate

Move that SharePoint SubSite into its own site collection.

So it seemed like a good idea at the time, all of the sites on the root site collection but now you are beginning to regret that the content database is getting a little on the large side and managing the security is getting to be a pain.

So how do you move this subsite into it’s own site collection?

You can go ahead and pick up a migration tool from ShareGate of Metalogix both very good tools but you only want to move the site, feel free to grab this PowerShell script that will do it for you.

All you need to do is change the “script options” to reflect your needs and you should be away.

Remember that you use this script at your own risk and  you should backup ad test everything before you commit to running it.

The script can run the commands or build a script for you to use at a later date, your choice just look at the $debug  & $execute  options.

Download file : ConvertSubSiteToSiteCollection as a text file

 

Finding that SharePoint Correlation ID

So you have an issue in SharePoint and a screenshot form a user in a production environment.

You have asked the production support team to put SharePoint log viewer onto the server and they have submitted the request to the change group and will get back to you in a couple of days and in the mean time your user is going up the wall.

So you have the Correlation ID and need to find out what is going on, you can use the Get-SPEventLog cmdlet and filter things but remembering the syntax is more that you can do after the day you are having.

Feel free to grab this script that you can put on the server pass the Correlation ID to it along with some other things and you will have the information you are looking for to help you get to the bottom of the problem.

Download file: GetSPError as a text file

Examples of usage:

GetSPError.ps1 -GUIDToFind 00000000-0000-0000-0000-000000000000 -NumberOfMinutes 10
This will only look in the last 10 minutes of the log.

GetSPError.ps1 -GUIDToFind 00000000-0000-0000-0000-000000000000 -NumberOfMinutes 0
This will look at all of the the log.

GetSPError.ps1 -GUIDToFind 00000000-0000-0000-0000-000000000000 -NumberOfMinutes 10 -FileName error.txt
This will only look in the last 10 minutes of the log and send the output to the error.txt file.

GetSPError.ps1 -GUIDToFind 00000000-0000-0000-0000-000000000000 -NumberOfMinutes 0 -FileName error.txt
This will look at all of the the log and send the output to the error.txt file.

Get-Help GetSPError.ps1
This will list the help for this file.

PowerShell script template

This file is the Powershell template file that I use when creating PowerShell scripts.

The code below is a functioning PowerShell script for you to build on, it has the syntax for the Get-Help cmdlet to function correctly and takes three parameters some mandatory some not, it also outputs to the screen the script execution start & end time along with elapsed time.

Download file : Powershell Template as a text file.

  1. <#
  2. .SYNOPSIS
  3. This script will ....
  4.  
  5. .DESCRIPTION
  6. A Script description & version history.
  7.  
  8.  
  9. --------------------------------------------------------
  10. History
  11. Version number | Data | Comment
  12. 1.00 | <date> | Initial script.
  13. --------------------------------------------------------
  14.  
  15. .LINK
  16. http://www.glossover.co.uk/archives/322
  17.  
  18. .EXAMPLE
  19. <scriptName> -Param1 value -Param2 value
  20. <scriptName> -Param1 value -Param2 value -Param3 (optional) value
  21.  
  22. #>
  23.  
  24.  
  25. Param (
  26. [Parameter(Mandatory=$true, HelpMessage="Please enter a string value")]
  27. [alias("Param1")]
  28. [ValidateNotNull()]
  29. #String value.
  30. [string]$stringValue,
  31.  
  32. [Parameter(Mandatory=$true, HelpMessage="Please enter a numeric value.")]
  33. [alias("Param2")]
  34. [ValidateNotNull()]
  35. #Number value.
  36. [int]$intValue,
  37.  
  38. [Parameter(Mandatory=$false, HelpMessage="Please enter a string value (Optional).")]
  39. [alias("Param3")]
  40. [ValidateNotNull()]
  41. #Optional string value.
  42. [string]$optionalStringValue
  43.  
  44. )
  45.  
  46. $startTime = Get-Date
  47. Write-Host "Start time : $startTime"
  48.  
  49.  
  50. #Passed values
  51. Write-Host "Param1 : " $stringValue
  52. Write-Host "Param2 : " $intValue
  53. Write-Host "Param3 (optional) : " $optionalStringValue
  54.  
  55.  
  56. $endTime = Get-Date
  57. Write-Host "Script execution time : $( New-TimeSpan $startTime $endTime)."
  58. Write-Host "End time : $endTime"

One of my favorite dives

I have wanted to dive all of my life and not too long ago I finally took the plunge and went for it, I have loved every moment of it but one dive stands out for me.

So while I was more than happy to make bubbles my other half was not quite so keen, in fact her exact words where “who in their right mind would want to do that”, after a couple of months of me having fun she decided that she would give it a try in the pool, a few weeks later she did her open water and we where booking a holiday to Egypt together.

This dive happened in Holbrough Lake in May 2014, it was the first dive we did together after my other half qualified as an Open Water diver and was just fantastic.

Scraping Back Time

I have always liked the “Scraping Back Time” photos that I have seen around so I thought I would give it a go.

I am currently working in Guernsey one of the Channel Islands and the only part of the UK that was successfully occupied during the Second World War so I thought I would try to create one of the time images, I only have my phone with me for the of the modern image but it did quite a good job.

I need a better understanding of post image manipulation in GIMP / PhotoShop (I still have not decided what one to use) but this is the outcome, it could do with a little more of what is going on today in the image but it’s not too bad for a first try.

Scraping Back Time
Scraping Back Time

 

New image
New image

 

Old image
Old image

Note: I do not know who took the original photo of the march but if you do I would be happy to credit them.

Holbrough lakes dive map

Unfortunately for me my underwater navigation is not the best so in an attempt to get better I have decided to map out Holbrough Lakes and then use a custom Google map to show my work.

Lets hope it go’s well.

I am going to use different layers in the map so you can see the guide ropes  & places of interest but not necessary all at once its your choice.

Each of the pins in the map will have some textual information, photos and video if needed.

To see a bigger version of the map just click on the top right icon next to the sign in link inside the map and it will pop out into a new window.

Egypt 2014

Some photos from a trip to Egypt in 2014.

Fantastic diving and so very warm.

Holgrough Lakes

A nice dive at Holbrough Lakes 6 October 2014.

Stoney Cove

A few shots of diving in Stoney Cove 24 June 2013.

Spitfire BM597

On 6th March 2011 I was treated to a flight in a helicopter while one of the few remaining spitfires fly around us, it has to be one on the most wonderful experiences I have had.

This is a set of photos from the day.

 

Harrow Lane from 200ft up

This is the view from the DJI at about 200ft in the air.

One of the issues with the camera is the distortion that the camera picks up so there is a need to flatten the image, in this tutorial you are shown remove the distortion using GIMP.

This is my before & after.

Bodiam Castle

This is a few moments over Bodiam Castle.

 

Along with the video the DJI can also take photos.

 

Photography

When I first left school I trained to become a photographer and after 3 years  I decided it was not for me.

I have still had an interest in photography and I plan to start up again, so this is where my photos will be for everyone to see, lets hope they are OK.

Aerial video & photos

I own a DJI Phantom Vision 2 that enables me to take aerial photos & video.

This is the clever little thing hovering a few feet from the air.

DJI Phantom 2

If you have an unmanned aircraft then this video if well worth a watch.

 

https://www.youtube.com/watch?v=A6uU1LTdI8M#t=49