Skip to content

2017🔗

Time With Family - Thanksgiving

I've made it my personal quest as a creative who has a passion for videography to try and capture simple moments during my life with family. There are plenty of epic indie films, and I can't commit this type of time with a day job, family, and other interests. I think this is a good start. Thanks to Robert & Steph for their hospitality and making this a special thanksgiving. Was a wonderful time with family

Delight in the Little Moments

This last Easter I had some fun with the kids at their grandparents. Remember the days of spinning until you were nauseous? Was fun to watch the kids enjoying this so I took a few clips, nothing fancy, just a snapshot of enjoying the little moments in life.

Thinking I'll try this approach for a while. Small 2 minute videos that aren't refined a lot are easy for me to produce. I typically only do a couple a year because I tend to work on them extensively, but maybe just like blogging, consistency and simplicity can be the key to keeping the momentum going.

{{< youtube H6hf6rna6gk >}}

Origami 101

My son and i have begun exploring origami.

Few things I've learned....

  • Patience is key

  • The right paper matters for trying intermediate models with lots of folds or 3d models needing some shape control. I wasted nearly 2 hours on one complex design with 2 hours of work left... And had to stop as the paper was almost splitting from the work I had put into it.

  • Advanced origami is insanely complex, and only in recent years morphed into a realistic portrayal of objects due to advances in mathematics in origami pioneers. (See Robert Lang, Eric Joisel for examples)

  • Advanced origami practitioners typically are wet folding paper to allow shaping flexibility

This is a fun start but definitely have a long way to go! I look forward to trying more soon, as it's been a great way to spend some relaxing time and more so to have a great connection with my son.

Welcome to the World Little Ella

Proud to announce Ella the newest addition to my family joined us today @ 6:19pm, weighing in at 6lbs and 11 ounces. Yes, that's 6lbs of cuteness. :-) I'm incredibly blessed to have this third addition to my family, and look forward to treasuring every moment with her. God sure knows how to give an amazing gift!

It was a rough 24 hours resulting in our first cesarean experience. This was a bit intense, but Sarah pulled through as a trooper, and we are now finished with post-operation recovery, and enjoying time with our new bundle of awesome.

{{< fancybox-gallery "GalleryElla" "Welcoming Ella" "Ella_18.jpg" "Ella_17.jpg" "Ella_16.jpg" "Ella_15.jpg" "Ella_14.jpg" "Ella_12.jpg" "Ella_13.jpg" "Ella_11.jpg" "Ella_10.jpg" "Ella_9.jpg" "Ella_8.jpg" "Ella_7.jpg" "Ella_6.jpg" "Ella_4.jpg" "Ella_5.jpg" "Ella_2.jpg" "Ella_3.jpg" "Ella_1.jpg"

}}

Thanks for all the prayers! Now for some sleep... or not ;-)

Shout out to Willowbrook Women's Center for their consideration and stellar care during the delivery. I left my camera in the other room, not knowing operating room rules, and wanted to respect that, and not complicate the moment. A nurse asked me where my camera was so I could capture a few of the precious first moments, and walked to the other side of the hospital section to go fetch it for me to make it happen. That's how considerate they were!

Thanks to their care I have a healthy baby girl, healthy wife, and some beautiful moments despite the complication of the delivery.

{{< youtube vB1EqN-WfkI >}}

Recovery is a Marathon, Not a Sprint - Hurricane Harvey

It's important to remember that the road to recovery is not an instant process. Right now we have a ton of volunteers and people working to help those in need. I'm reminding myself, as much as any readers here, the process to recovery for people most impacted is not a single week of effort event. In some cases, entire homes were lost and without flood insurance, the financial devastation can be profound.

Flood Impact

I'm proud to be part of the Vineyard Church association which is sending an equipped response team to the area to send volunteers and various professionals to aid in recovery. This will definitely help increase the impact we have as people have to go back to work and available time is reduced.

continued help

In the meantime, if you are helping with some giving @ nwvineyard.com/give please consider doing a recoccuring donation for a period of months to continue the help. I'm hoping that the impact the church community has in Houston is going to be a testimony to commitment as believers we have in serving those in suffering and in need.

not be forgetful

As a reminder to all my fellow followers-of-Christ, our actions are under scrutinity (just see the barrage of accusations against Joel Olsteen right now). As I was driving to a site on the first day back in my house, I saw a small church with a guy riding a lawnmower and trimming a lawn that already looked good.

It made me angry and sad at the same time.

Yes, I should not judge. That church may have had a large response team out serving, and I'm probably just seeing part of the picture.

However, that same part of the picture is what others would be seeing. Less than 1 mile up the road were houses devasted by the flood, ripping out drywall, furniture, and dealing with the loss of a lot of belongings. I pray that we all remember the hardship that others are going through and while we can enjoy and relish the moments of life we are given, let us strive to not forget those others those can't move on yet. Those who have lost everything, are in shelters, dealing with the emotional fallout of a disaster, and in the process of rebuilding a place they can call home for their family.

A Not-So Waterlogged Texan - Tuesday

{{< admonition type="warning" title="Updated: 2017-08 1:30pm Wednesday" >}} Better than expected, we are looking to be back in our house Thursday. Apparently some SUV's are just starting to gain access. Don't want to risk it so giving it a little extra time. That's much better than I expected at beginning of this whole situation!

Relief efforts mentioned at bottom are underway at nwvineyard.com so if you are looking to help the Tomball/Northwest Houston area that's one place to help or find out how to help. {{< /admonition >}}

Original Post

From my favorite "No Hype" weatherman:

We are probably about 24 hours away from a general cessation of rainfall, including for most of the eastern half of the Houston area. It's been an absolutely miserable four or five days, but it's almost over - > Space City Weater

Almost through it!

Message from neighbor reports that everything seems high and dry still after the rains last night, so pretty sure my house, along with a few of the houses high enough on our street are not going to have water enter. If the water keeps going down, I'm hoping to have the family back in the house Friday or Saturday.

There will definitely be people in our neighborhood that will be dealing with repairs and issues as the video I posted previously shows.

Walked over to the church today from our friends house. Figured I'd get some work done, and was doubtful of my ability to concentrate with my kiddos getting stir crazy. The walk was supposed to be 37 mins... an hour later I arrived. Gave me some extra time to pray at least :-)

a+longer+walk+than+intended...+but+i'm+a+guy

Projections for the area are never certain, but seems to point to being clear of anything that would cause water to get into the house.

For those interested in helping out in the area, my church is participating in relief efforts and starting to gather resources to help those in the community. Randy (the lead pastor at nwvineyard.com) will make sure that any donations made are used to impact the local area as this is a core passion of our small church plant.

... ** video no longer available on facebook - sorry **

A Waterlogged Texan Reporting In from Northpoint Tomball

Waterlogged

What a crazy weekend. Choose to evacuate the family as water was slowly creeping up closer to the house. I was ready today when I made it back to the house to see the water in the house, but to my astonishment it was only half-way up the driveway. Turning down the road 1 house away, many houses did not fare so well, and water looks to have made it in many homes.

The view from my driveway. I was seriously blessed, as many others were not as high

It has been a stressful time, and still not finished, but what a remarkable time to see people coming together. From a neighbor walking my family in a small boat to the front to ease the way for the kids and pregant wife in 4 ft of dirty water to the evacuation boats running all day to help get people out. I saw first responders from a surfer walking a raft in his wetsuit to Kemah volunteer firefighters walking the roads to check on people and confirm everyone wanting evacuation was taken care of.

Our area was not as devastated as downtown and other areas that have been on the news, but for us it was still a pretty nerveracking experience.

The hospitality and friendship shown by my church was encouraging, and without these friends we'd have been in a tough spot. From driving through some deeper water, to providing warm meals and hospitality (and giving up some rooms/space) for us. As it stands, thanks to my friends I've got my kids tucked in warm and safe and am able to sit back and think about the days' events without being in the rain. Being removed for our home for a week helps put the important things back in perspective for sure!

If we make it through tonight we should be fine with no water damage, but this storm has definitely given us surprises.

Prayers out there for those in worse situations from this storm. It's been a bit numbing to see just the little pieces I've seen in the last 2 days. The financial impact (no flood insurance for many in this storm, including us, as we are outside any normal flood areas) is going to be tough, along with the stress and rebuilding that will be required.

Ultrawide Monitor - Samsung CF971 - First impressions

As a developer, I've been a big fan of multiple monitors for a long time. I moved to a triple screen setup years ago, and up until recently, had no desire to try anything different.

Well... I've finally found the replacement. The holy grail of productivity, immersion, as well as usability. Ultrawides :-)

Don't you miss the extra screen?

No. The width of the screen is plenty for 2 full Visual Studio environments, or 3 text editors side by side. I've always had issues with effectively managing multiple IDE environmen with floating windows as those can tend to get pretty confusing on which parent they belong to. I've found I prefer to keep floating windows in the parent environment, and an ultrawide allows this type of workflow perfectly.

Do you need the curve?

I prefer it.the Samsung CF971 is curved at 1500R, which is one of the most curve displays as of the current time. Unlike TV, where this feature is pretty much useless, with an ultrawide monitor only a few feet from your face, the curve is welcome, and still subtle. I do videography, photography, and some gaming, and for my purposes I've found it to be perfect.

Do I need to get a 3440x1440 or can I save money and get 2560x1080?

Get the 3440x1440 if you are doing anything besides gaming. Then for gaming just toggle to the lower resolution. I way overthought this too, and thought the downscaling would be terrible. It's not. Don't listen to the naysayers. If you aren't a competitive ESports gamer, then it will serve you just fine at the lower resolution, and then you can toggle back up to the high resolution for anytype of productivity work. I recommend Display Fusion as you can setup some quick monitor profiles to toggle without delay.

Gaming on it?

Awesome! I still am running an old AMD 7950, and when I down the settings I'm still enjoying it. It's about time with Vega to upgrade, but until then, I'm still getting some life out of the current card, and still not leveraging the 100hz refresh rate with Freesync.

Any negatives?

I had 1 stuck pixel that I couldn't fix, so with black background this small dot can be seen (red). However, I'm still happy with the choice.

For Development

I plan on moving to this screen in the future for development as well. I included some images of the workspace you gain, so I have no complaints about my time at home working on it.

But I'm scared of moving away from IPS!

Me too. No regrets. The SVA panel beautiful. No complaints whatsoever, and no regrets about leaving behind my IPS display for this.

{{< fancybox-gallery "gallery1" "Samsung CF971 Gallery" "20170708+1304+2352134.jpg" "20170708+1429+2352140.jpg" "20170708+1445+2352144.jpg" "20170708+1446+2352147.jpg" "2017-07-08_14-52-53.png" "2017-07-08_16-34-48.png" "2017-07-08_14-51-59.png" "2017-07-08_16-04-20.png" "2017-07-08_15-16-31.png" "2017-07-08_16-03-25.png" "2017-07-20_12-45-12.png"

}}

Fixing VirtualBox Only Showing 32bit Windows OS Options

Original help was identified from this article Why is VirtualBox only showing 32 bit guest versions on my 64 bit host OS?

In browsing through the comments, I saw mention that the root issue is that Hypervisor running interferes with Virtualboxes virtual management, so I disabled Hypervisor service, repaired the install, and rebooted. I also disabled automatic start for Hypervisor. This resolved the issue without requiring the uninstallation of the Hypervisor feature in Windows.

SqlServer Powershell Cmdlets 2017 - Initialize Look

Diving into the Sql Server Management Objects library can be a pretty interesting process. You get to work with database objects as in a new way, and begin manipulating and execute code in a much different approach than purely using T-SQL. Powershell offers a unique way to interact with prebuilt cmdlets, and you can explore leveraging .NET in powershell as well to have a powerful toolkit of options. This post is a not focused on a full walk-through, but instead to communicate some of the exploration I've done, to help if you are beginning to explore more database automation and management. I plan on doing some basic walk-throughs for the powershell newbie in the future, so if you are confused about anything powershell related feel free to post a comment and I'll add it to my list of stuff to walk through.

cmdlets vs .NET approach

What I've found interesting is there are really 2 main approaches to interacting with SQL Server. You can directly invoke the SMO dlls and access the methods, properties, and extensibility this offers. This requires more .NET knowledge as you would be directly working with the SMO namespace, in a way that is almost the same as what you code in C#. The other approach is to leverage cmdlets. The cmdlets try to abstract away a lot of the complexities that working directly with the SMO namespace for ease of use and automation, and to simplify the process for those not as comfortable with coding in C# or directly leverage the SMO namespace in C#

If purely focused on automation and little experience working with .NET then cmdlet's will be by far the way to go. There is a serious learning curve in working with .NET directly vs prebuilt cmdlets. If desiring to expand your .NET knowledge, as well find that the prebuilt cmdlets don't offer the behavior you are trying to achieve, then exploring the SMO namespace for directly invoking the methods and accessing properties can be valuable. The learning curve is more intense, so just be prepared for that if you are new to working with .NET directly in Powershell.

dbatools.io & other sources

When possible, I personally am going to recommend to leverage a package like dbatools instead of rolling your own. Dbatools.io is a powerful project that I've recently begun to explore more. This well rounded package gives you a powerful powershell set of commands that can help you set server properties, obtain default paths, backup, restore, migrate entire sets of databases to a new location and more. To code all of this from scratch would be a massive project. I'd recommend considering dbatools.io and just getting involved in that project if you have something to contribute. I found it really helpful to quickly setup some default server options without having to configure manually myself.

Exploring SQL Path Provider

Trying to find the path initially can be challenging. However, by opening SSMS up, right clicking, and launching the powershell window you'll be able to easily find the correct path to get the server level object. This allows you to leverage default methods in powershell like Get-ChildItem for iterating through objects. It treats the navigated SQL server path basically as a "file structure" allowing some interesting actions to be performed. One of these is a different approach to killing connections to a particular database. I found this great pointer by reading Killing SPIDS in Powershell from MidnightDBA

Review that article for scripts focused on the termination of running spids. For an adhoc purpose the scripts MidnightDba provided are excellent and would allow quickly executing a kill script on connections from ssms > powershell prompt.

import-module -name sqlserver -disablenamechecking -verbose:$false -debug:$false
CD SQLSERVER:\SQL\$ServerName -Verbose:$false -Debug:$false
dir ' ?{$_.Name -eq "$DatabaseName"} ' %{$_.KillAllProcesses($DatabaseName)}

I approach this with a different method in one final script using just the SMO server method KillAllProcesses. For some tasks I've found it really helpful to have a simple 1 line kill statement thanks to MidnightDba's pointer with the statements similar to the one above. Using Microsoft's documented method shows another example of how to use to restart the service. This was one modified approach I took. I prefer not to use this type of approach as working with get-childitem with server objects to me as a little unintuitive.

<#
        .LINK https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/start-stop-pause-resume-restart-sql-server-services#PowerShellProcedure
#>
$ErrorActionPreference = 'continue'
if(-not (Get-InstalledModule SqlServer)) { install-package SqlServer -scope CurrentUser -verbose:$false -Force}

[datetime]$StepTimer = [datetime]::Now

$private:ServerName = $env:ServerName
import-module -name sqlserver -disablenamechecking -verbose:$false -debug:$false

# Get a reference to the ManagedComputer class.
CD SQLSERVER:\SQL\$private:ServerName -Verbose:$false -Debug:$false
$Wmi = (get-item -debug:$false -verbose:$false .).ManagedComputer
$DfltInstance = $Wmi.Services['MSSQLSERVER']

#Display the state of the service.
write-host "Stopping Instance: $($DfltInstance.ServiceState.value__)"
$DfltInstance.Stop()

while($DfltInstance.ServiceState.value__ -ne 1) #1 stopped
{
    Start-Sleep -seconds 5
    $DfltInstance.Refresh()
    write-host "... state: $($DfltInstance.ServiceState)"
}
## Start the service.
$DfltInstance.Refresh()
write-host "Current Service State: $($DfltInstance.ServiceState)"
write-host "Initiating Service Start"
$DfltInstance.Start()

while($DfltInstance.ServiceState.value__ -ne 4) #4 running
{
    Start-Sleep -seconds 5
    $DfltInstance.Start()
    $DfltInstance.Refresh()
    write-host "... state: $($DfltInstance.ServiceState)"
}
write-host( "{0:hh\:mm\:ss\.fff} {1}: finished" -f [timespan]::FromMilliseconds(((Get-Date)-$StepTimer).TotalMilliseconds),'SQL Service Restart')

Database as an Object

Getting the database as an object proved to be easy though, if a little confusing to navigate initially. $s = SqlServer\Get-SqlDatabase -ServerInstance $ServerInstance -Verbose

Once the object is obtained, you can begin scripting objects, change database properties and more very easily. I found this method an interesting alternative to invoking using .NET accelerators as it was a quick way to easily get a database level object to work with. However, some of the limitations of not having the server level object immediately available made me end up preferring the .NET accelerator version which could look like this.

param(
        $ServerName = 'localhost'
        ,$DatabaseName = 'tempdb'
)
$s = [Microsoft.SqlServer.Management.Smo.Server]::New($ServerName)
$d = [Microsoft.SqlServer.Management.Smo.Database]::New($s, $DatabaseName)
$s.EnumProcesses() ' format-table -AutoSize
$d.EnumObjects() ' Out-GridView

Interestingly, to actually access the many of the database properties you actually would call it via reference to the server object with SMO calls instead of the cmdlet. Trying $d.PrimaryFilePath doesn't work as I believe it's initiating the instance of a new database object for creation instead of referencing the initialization of a new object to an existing database. I found documentation a bit challenging to immediately sift through to get an answer, so YMMV. Someone coming from a .NET focused background might find the process a little more clear, but for me it did take some work to correctly identify the behavior.

#doesn't work.
Probably trying to initialize new object for creating a db
$d = [Microsoft.SqlServer.Management.Smo.Database]::New($s, $db)
$d.PrimaryFilePath

#works to access current existing object
$s.Databases[$db].PrimaryFilePath

Exploring Properties

If you want to explore properties of an object, try using the ever faithful get-member

Depending on the type of object, you can additionally explore them with GetEnumerator, GetProperties, etc. You'll find intellisense helpful as you explore more. For instance, here's a walkthrough on the various ways you might explore the object and find you need to dig into it to get the full detail of what you have access to.

Comparing Restoring a Database with Cmdlet vs SMO

using dbatools cmdlet

An example of how simple using dbatools cmdlet can make restoring a database copy

rolling your own wheel

Now compare this to the complexity of running your own invocation of the SMO namespace and requires a lot more coding. Since dbatools wraps up a lot of the functionality, I've actually migrated to leveraging this toolkit for these dba related tasks instead of trying to reinvent the wheel.