New Amazon Fire TV Cube

Amazon has new Fire TV device called the Fire TV Cube.  I Pre-Ordered mine today for $89.99.  I’m an owner of the original Fire TV for my main TV in our house.  I’ve wanted to upgrade my Fire TV for quite some time b/c it was lacking many of the features that the Fire TV 4k had to offer but I did not want a dongle hanging from my TV but rather a piece of hardware that  had more horse power and performance like the original Fire TV had vs the Fire TV Stick.

The retail price of this unit is $119.99 but if you pre-order you can get it now for $89.99.  The ship date for this new device is June 21st.

Here is full description of the product from Amazon site:

  • Fire TV Cube is the first hands-free streaming media player with Alexa, delivering an all-in-one entertainment experience. From across the room, just ask Alexa to turn on the TV, dim the lights, and play what you want to watch.
  • With far-field voice recognition, eight microphones, and beamforming technology, Fire TV Cube hears you from any direction. Enjoy hands-free voice control—search, play, pause, fast forward, and more. Plus, control your TV, sound bar, cable or satellite box, receiver, and more with just your voice.
  • Do more with Alexa. Fire TV Cube has a built-in speaker that lets you check the weather, listen to the news, control compatible smart home devices, and more—even with the TV off. Fire TV Cube is always getting smarter with new Alexa skills and voice functionality.
    Experience true-to-life picture quality and sound with access to vivid 4K Ultra HD up to 60 fps, HDR, and the audio clarity of Dolby Atmos.
  • Enjoy tens of thousands of channels, apps, and Alexa skills. Get over 500,000 movies and TV episodes from Netflix, Prime Video, Hulu, HBO, SHOWTIME, NBC, and more.
  • Access YouTube, Facebook, Reddit, and more websites with Silk and Firefox browsers.

Rolling Reboot of VMware ESXi Cluster

Ran into situation where I needed to reboot a full cluster of ESXi hosts. In most cases when I need to reboot Cluster full of hosts I would utilize VUM (VMware Update Manager) to use VMware DRS to move VMs off the host, place the host in maintenance mode, reboot host and when host completes the reboot take server back out of maintenance mode, then move to next host and does for each host in cluster.

I did not need to patch the hosts this time. And Since the cluster had 32 hosts and several VMs I did not want to do this by hand. So used google and was found this script that I wanted to share. I wish I could give credit to the creator but the was on in an archived word press blog.

The script does the following:
Goes through the cluster one host at a time and puts ESXi server maintenance mode, reboots the server and the puts it back online. If VMs are running on the host DRS will need to be enabled in fully automated mode to allow VMs to VMotion off to other hosts (There should also be enough HA capacity in cluster to have 1 host taken offline at a time.

###################
## reboot-vmcluster.ps1 
## Supply the hostname/FQDN for you vcenter server and the name of the cluster you want rebooted
## Script reboots each ESXi server in the cluster one at a time
###################
##################
## Args
##################
# Check to make sure an argument was passed
if ($args.count -ne 2) {
Write-Host “Usage: reboot-vmcluster.ps1 ”
exit
}

# Set vCenter and Cluster name from Arg
$vCenterServer = $args[0]
$ClusterName = $args[1]

##################
## Connect to infrastructure
##################
Connect-VIServer -Server $vCenterServer | Out-Null

##################
## Get Server Objects from the cluster
##################
# Get VMware Server Object based on name passed as arg
$ESXiServers = @(get-cluster $ClusterName | get-vmhost)

##################
## Reboot ESXi Server Function
## Puts an ESXI server in maintenance mode, reboots the server and the puts it back online
## Requires fully automated DRS and enough HA capacity to take a host off line
##################
Function RebootESXiServer ($CurrentServer) {
# Get Server name
$ServerName = $CurrentServer.Name

# Put server in maintenance mode
Write-Host “#### Rebooting $ServerName ####”
Write-Host “Entering Maintenance Mode”
Set-VMhost $CurrentServer -State maintenance -Evacuate | Out-Null

$ServerState = (get-vmhost $ServerName).ConnectionState
if ($ServerState -ne “Maintenance”)
{
Write-Host “Server did not enter maintanenace mode. Cancelling remaining servers”
Disconnect-VIServer -Server $vCenterServer -Confirm:$False
Exit
}
Write-Host “$ServerName is in Maintenance Mode”

# Reboot blade
Write-Host “Rebooting”
Restart-VMHost $CurrentServer -confirm:$false | Out-Null

# Wait for Server to show as down
do {
sleep 15
$ServerState = (get-vmhost $ServerName).ConnectionState
}
while ($ServerState -ne “NotResponding”)
Write-Host “$ServerName is Down”

$j=1
# Wait for server to reboot
do {
sleep 120
$ServerState = (get-vmhost $ServerName).ConnectionState
Write-Host “… Waiting for reboot”
$j++
}
while ($ServerState -ne “Maintenance”)
$RebootTime=$j/2
Write-Host “$ServerName is back up. Took $RebootTime minutes”

# Exit maintenance mode
Write-Host “Exiting Maintenance mode”
Set-VMhost $CurrentServer -State Connected | Out-Null
Write-Host “#### Reboot Complete####”
Write-Host “”
}

##################
## MAIN
##################
foreach ($ESXiServer in $ESXiServers) {
RebootESXiServer ($ESXiServer)
}

##################
## Cleanup
##################
# Close vCenter connection
Disconnect-VIServer -Server $vCenterServer -Confirm:$False

Example of Script Output:

>.\reboot-vmcluster.ps1 vcenter.domain.com demo-cluster
#### Rebooting esxi06.domain.com ####
Entering Maintenance Mode
Rebooting
esxi06.domain.com is Down
Waiting for Reboot ...
Waiting for Reboot ...
Waiting for Reboot ...
esxi06.domain.com is back up
Exiting Maintenance mode
#### Reboot Complete####


#### Rebooting esxi05.domain.com ####
Entering Maintenance Mode
Rebooting
esxi05.domain.com is Down
Waiting for Reboot ...
Waiting for Reboot ...
Waiting for Reboot ...
Waiting for Reboot ...
esxi05.domain.com is back up
Exiting Maintenance mode
#### Reboot Complete####

Dashlane the perfect password manager for me!

DashLaneMany people have asked me which password manager do I use? I’ve been using Dashlane password manager since 2014. I first started using Dashlane’s free version of the product. (which it allows password managment on a single device) Shortly I discovered the value of having passwords synced across all my devices (mobile and multiple desktops).

Never forget another password.
Add or import passwords, or save them as you browse the web. However you get them in Dashlane, you’ll never lose track of them again.

Never forget another password.
Never type another password.
Dashlane’s powerful autofill types your passwords on any website

Password autofill
Never type another password.
Instant security alerts.
Instant security alerts are sent straight to your computer or phone when sites suffer breaches.

Security alerts
Instant security alerts.
Generate strong passwords.
Dashlane’s strong password generator creates and saves passwords right on the web.

Strong password generator
Generate strong passwords.
Auto-change passwords in a click (or a tap).
Our one-and-only Password Changer updates passwords instantly and with the touch of a button.

Password Changer
Have your passwords, wherever you go.
Dashlane backs up your passwords and keeps them up to date across your phone, computer or tablet.

Secure backup and sync
Have your passwords, wherever you go.

Excel Macro to Merge multiple Spreadsheets to one Workbook

Have you ever had several spreadsheets that have different content but they have have same characteristics (Rows different but columns are same)

This is an excel macro that will import all spreadsheets in a given directory into s single spreadsheet with all the data in one workbook.

To execute the code in excel (from a bland spreadsheet) from the Excel Ribbon:  View > Macros  > Provide Macro Name > Create

Sub simpleXlsMerger()
Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object
Application.ScreenUpdating = False
Set mergeObj = CreateObject("Scripting.FileSystemObject")


'change folder path of excel files here
Set dirObj = mergeObj.Getfolder("c:\folder\path")
Set filesObj = dirObj.Files
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)


'change "A2" with cell reference of start point for every files here
'for example "B3:IV" to merge all files start from columns B and rows 3
'If you're files using more than IV column, change it to the latest column
'Also change "A" column on "A65536" to the same column as start point
Range("A2:IV" & Range("A65536").End(xlUp).Row).Copy
ThisWorkbook.Worksheets(1).Activate


'Do not change the following column. It's not the same column as above
Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial
Application.CutCopyMode = False
bookList.Close
Next
End Sub

Then Run the Macro and all the excel files located in the c:\folder\path will be merged into one worksheet

Update Ubuntu from command line

Instead of using the UI I do a lot of the administration from command line.  These are the commands you must enter a Ubuntu Linux Command Prompt to update/patch your server.


sudo apt-get update                # Fetches the list of available updates
sudo apt-get upgrade               # Strictly upgrades the current packages
sudo apt-get dist-upgrade          # Installs updates (new ones)