11 Months

We have been taking photos of our daughter at every month for the first twelve months. Over Christmas, I acquired a really cheap fixed lighting set, which I believe is for video, but decided to use it as some fill lighting for our daughter’s 11 month old pictures.

I used one of the lights facing her on the left, and had my strobe positioned overhead just off to the right. It worked really well, and among all the photos, one random one became my favorite the instant I saw it. Has a very artsy vibe, like it could be hung in an art gallery.

As my sister titled it: “Baby with Rattle, 2018”


Louis Cole. So much wow.

Louis Cole is among one of my favorite musicians of all time. He’s been around for at least 8 years, but his work with his band Knower, and his recent solo work is starting to go off the charts good.

Need evidence? The backing band for this video is comprised of some of the top musicians alive right now, and they just showed up to be part of it. (Kneebody just hanging out and playing background, that’s high level. Just crazy.) Also, this is just generally amazing.

Happy Halloween

I have always mostly done basic natural light photography, never really busted out the flash. In my younger years, it seemed almost as if using a flash was somehow cheating. You’d see trendy blogs where everyone was shooting HDR, and seeking cameras with higher and higher ISO settings. Photo blogs would publish headlines like “If you want to learn to be a great Photographer, learn to use available light!” It never ended.

Then, I found a blog called “The Strobist”. There is a series of now legendary blog posts outlining using a basic flash setup to get very professional results. I would recommend the Lighting 101 series as a good starting point. There he outlines a very inexpensive flash setup to get started. So I got a little setup. A flash stand, wireless triggers, and an umbrella.

I have used this setup a few times now to take pictures of my daughter. The more time I spend with setting it up, the better it’s working out. Over the last weekend, we did some photos of our daughter, and our friend’s son. They came out really nice, and I’m certainly glad I invested in the flash setup.

Vacation. It's been awhile.

I went on vacation with the family down to Oak Island, NC. It's been a while since I took some time off. But I took some pictures. Here they are. I'm sure there are more. But this is a good start.

You have a CSV file that has data that needs to be added to Active Directory you say?

You aren't going to believe this, but today's your lucky day. Funnel that CSV file into this script, and you're on your way to happiness.

But seriously, this is something I assembled and cleaned up from the remnants of another script. Simple, easy to understand, and quick. I processed records for just over 300 users in 42 seconds. That'll do.

# Update AD User Data
# Source data in CSV format
# 2018 - Joel Spangler
# Bell and Evans

# Get script Start Time
$startTime = (Get-Date)

# set path to input file
$csvfile = "C:\scripts\ADImport\adexport.csv"

# Specify Domain
$ADServer = 'farmerspride.com'

# Import the AD Module
Import-Module ActiveDirectory

# Create Function to import data from CSV and perform corresponding AD Updates

Function Update-ADUsers {

    Import-Csv -path $csvfile | `
    ForEach-Object {
        # Each of the following corresponds to the Fields defined in the CSV file
        $DisplayName = $_.Name
        $Description = $_.Description
        $Department = $_.Department
        $Title = $_.'Job Title'
        $Office = $_.Office
        $Mobile = $_.'Mobile Phone Number'
        $Phone = $_.Telephone
        $sam = $_.Username
        $Address = $_.StreetAddress
        $State = $_.State
        $Company = $_.Company
        $Country = $_.Country
        $City = $_.City

        # Manager Field takes some extra work.
        $Manager = $_.Manager
        if ($Manager -ne $null){$Manager = Get-ADUser -Filter {Name -like $Manager} | select -Expand DistinguishedName}

        # Verify AD Account
        Try { $SAMinAD = Get-ADUser -server $ADServer -LDAPFilter "(sAMAccountName=$sam)"} 
        Catch { }

        # If statement - Valid If AD user exists
            If($SAMinAD -ne $null -and $sam -ne '') {

            # evaluate each field - if data us present - update corresponding field - match each field to ADSI attribute name
            If ($DisplayName -ne '') { Set-ADUser -server $ADServer -Identity $sam -Replace @{displayName=$DisplayName} }
            If ($DisplayName -ne '') { Set-ADUser -server $ADServer -Identity $sam -Replace @{cn=$DisplayName} }
            If ($Description -ne '') { Set-ADUser -server $ADServer -Identity $sam -Replace @{description=$Description} }
            If ($Department -ne '') { Set-ADUser -server $ADServer -Identity $sam -Replace @{department=$Department} }
            If ($Title -ne '') { Set-ADUser -server $ADServer -Identity $sam -Replace @{title=$Title} }
            If ($Manager -ne '') { Set-ADUser -server $ADServer -Identity $sam -Replace @{manager=$Manager} }
            If ($Office -ne '') { Set-ADUser -server $ADServer -Identity $sam -Replace @{physicalDeliveryOfficeName=$Office} }
            If ($Mobile -ne '') { Set-ADUser -server $ADServer -Identity $sam -Replace @{mobile=$Mobile} }
            If ($Phone -ne '') { Set-ADUser -server $ADServer -Identity $sam -Replace @{telephoneNumber=$Phone} }
            If ($Address -ne '') { Set-ADUser -server $ADServer -Identity $sam -Replace @{streetAddress=$Address} }
            If ($State -ne '') { Set-ADUser -server $ADServer -Identity $sam -Replace @{st=$State} }
            If ($Company -ne '') { Set-ADUser -server $ADServer -Identity $sam -Replace @{company=$Company} }
            If ($Country -ne '') { Set-ADUser -server $ADServer -Identity $sam -Replace @{co=$Country} }
            If ($City -ne '') { Set-ADUser -server $ADServer -Identity $sam -Replace @{l=$City} }


            Else { 
            #Error - AD User does not exist
            " User $sam not found in AD "


#End Function

#Run Function

# Set End Time
$endTime = (Get-Date)

# Calcualate total time to run. Unnecessary, but fun.
"Elapsed Time: $(($endTime-$startTime).totalseconds) seconds"
"Elapsed Time: $(($endTime-$startTime).totalminutes) minutes"