Month: December 2015

VMWARE ESXi host – Best Practice – Hardrive or SD card ?

Posted on Updated on

Good post on reddit from /r/kcbnac:


As with many things in IT – It Depends.

SD card is identified by ESXi/vSphere as being flash-based media, so it won’t log to it – you’d need another volume somewhere for logs and dumps to go (not a bad idea anyway; but then if THAT goes down you have no logs – which isn’t helpful when the Vendor Blame Game begins)

SD is cheaper in a large cluster, provided you can meet the above logging requirement. (Saved ~$10k on 8 blade hosts buying SD cards instead of a RAID-1 mirror’d pair of drives for each; and nothing big/fancy either – would’ve been 300GB 10K SAS in Gen8 HP blades)

HDD/SSD gives you room on not-shared-storage to put some critical VMs in a pinch, or just ones that can’t live on the SAN. (I’m picturing the VMs that assist the SAN that shouldn’t live on the arrays they support; or extra space in a shuffle)

HDD uses more power, generating more heat. Another moving part.

Its a choice of tradeoffs, as usual.


Good advice on learning programming from scratch

Posted on Updated on



I see similar advice over and over, learn one core language, C++ or Java; Learn one scripting language, python, etc; Learn Linux; Build Code; Get job: Im reposting this here because out it’s well layed out



I am 100% sure that if you are intelligent you can do this, and that it will likely be financially worth it.

I will teach you how to obtain the skills to get a job at an amazon or google type company (at LEAST 90k starting salary):

  1. You must be a competent programmer in a main stream lower level language (say c++ or java) as well as a scripting language (python, bash, etc.).

    -Learn C++ from C for dummies follow by something like “accelerated c++” or Stanley Lippman, Essential C++, or Absolute C++ -Learn python similarly and by simply reading the python docs online. -You must also practise using these languages which you will do by doing your own simple projects as well as programming solutions to contest problems as I outline in further steps.

  2. You must understand the unix operating system. -Install linux (say ubuntu) and use it as your primary operating system. Start using the command line as often as possible. -Read a basic book about unix “teach yourself unix in 24 hours” and “unix in a nutshell” should get you going. Make sure you know about grep and chmod
  3. Data structures. Understand and be able to describe: -binary search trees (including self balancing such as red-black and AVL) -hash tables -stack, queue, array, priority queue.

    -Read the relevant sections in Sedgwick’s “Algorithms in C” or any data structures in C book. (Internet reviews should help).

  4. You must be able to solve ‘difficult’ algorithmic problems using techniques such as: -dynamic programming -divide and conquer

Buy Algorithm Design Manual and Introduction to Algorithms by Cormen, et al (CLRS). Work through these books slowly. You will have to take time to master everything in them and ask questions as necessary. They are not simply understood.

  1. Understand basic networking (how the internet works). Key concept examples: DNS, tcp/ip

There’s probably an article on how stuff works or just get a book about this stuff if you have to.

  1. Understand how a program is built. What an assembler, compiler and linker are. Just google this stuff. To truly understand this fully you should disassemble a program. Ollydbg is a program that can do this. A good place to try out your skills is . They have a series of ‘reverser’ challenges that will teach you about this (passing even the first level or 2 is good enough).
  2. Object oriented Design and design patterns:
  3. You should have some sense of OOP (object oriented programming) from learning C++ through the books above. Learn more if necessary by finding an OOP specific book. -Read ‘head first design patterns’ (CRUCIAL BOOK)
  4. Other tidbits: SQL helps (a language used to query a database) should get you started. Functional programming (a language like Scheme or Haskell) is usually helpful in learning how to program well. Structure and interpretation of programs is a good book.

Projects I’d implement: -A simple mysql backed website. Just make it so you can click a button and that will initiate a python script which will insert something into your db as an example. Simple, but shows you how everything works together. -Work through the ‘geek’ challenges on as well as the ‘reverser’ challenges. -Try to work through about 1/5 or 1/10 of the challenges in ‘algorithm design manual’ -Enter a few programming contests online the ‘google ai challenge’ was really good. -Try to make a simple version of anything you are interested or anything you have ever wondered how it could/would work.

Remember practise, practise, practise. Everyday read and implement.

Identity: Change GIT author id and email

Posted on Updated on

Did you want to use a different author name and email then the default one GIT has for you?

Change Authorname:
git config --global "New Authorname"

Change email:
git config --global


“you need to do this only once if you pass the --global option, because then Git will always use that information for anything you do on that system. If you want to override this with a different name or email address for specific projects, you can run the command without the --global option when you’re in that project.”


Different schedules for weekday vs weekend for Veeam backup jobs

Posted on Updated on

Excellent writeup on having different schedules for weekday vs weekend for Veeam backup jobs



by cffit on veeam forums


It takes some time to setup, but after that it should work ongoing with minimal effort. However, I’m still frustrated this isn’t in the GUI as things that run as scripts and scheduled tasks tend to get forgotten about when changes are made.

VEEAM B&R installs the VEEAM PowerShell snap-in so you don’t have to do anything to get that. You can access it by going into the B&R software and clicking on the blue box with the dropdown arrow in the top left and choosing PowerShell.

I used the service account for VEEAM B&R to create the scheduled tasks and run the PowerShell scripts. For me, this account is a local admin on the server. If yours isn’t, you might have to adjust as necessary.

I created two text files named something like “WeekdayScheduleChange.txt” and “WeekendScheduleChange.txt”. I then edited them to read like this..

The WeekdayScheduleChange.txt file looks like this:

Add-PSSnapin VeeamPSSnapin
Set-VBRJobSchedule -Job "Exact_Name_of_Backup_Job01" -At "17:00" -Daily -DailyKind Weekdays
Set-VBRJobSchedule -Job "Exact_Name_of_Backup_Job02" -At "17:15" -Daily -DailyKind Weekdays
Set-VBRJobSchedule -Job "Exact_Name_of_Backup_Job03" -At "17:30" -Daily -DailyKind Weekdays
Set-VBRJobSchedule -Job "Exact_Name_of_Backup_Job04" -At "18:00" -Daily -DailyKind Weekdays

The WekendScheduleChange.txt file looks like this:

Add-PSSnapin VeeamPSSnapin
Set-VBRJobSchedule -Job "Exact_Name_of_Backup_Job01" -At "4:00" -Daily -DailyKind SelectedDays -Days Saturday
Set-VBRJobSchedule -Job "Exact_Name_of_Backup_Job02" -At "6:30" -Daily -DailyKind SelectedDays -Days Saturday
Set-VBRJobSchedule -Job "Exact_Name_of_Backup_Job03" -At "10:00" -Daily -DailyKind SelectedDays -Days Saturday
Set-VBRJobSchedule -Job "Exact_Name_of_Backup_Job04" -At "14:00" -Daily -DailyKind SelectedDays -Days Saturday

Obviously change the name of the backup jobs to what yours are named, exactly. Rename both files from .txt to .ps1

Setup two scheduled tasks, one to run each one of these files. I run the WeekendScheduleChange.ps1 script at 2AM Saturday morning and the WeekdayScheduleChange.ps1 script at noon on Monday.

In order to setup scheduled tasks to run PowerShell scripts there are a few ways to do this. I set the task to run as the VEEAM service account (which is a local admin). I set it to run whether logged in or not and to use highest privileges and also configure for the version of Windows I’m using. The trigger is the schedule which I mention a few lines above. For the Action, I find it’s easiest to create a new action of “Start a program” and then for Program/script I enter “powershell” (without quotes) and then under “Add arguments” I enter “-file C:\PathToScript\WeekendScheduleChange.ps1” (again without the quotes). If your path has spaces in it you will need to put quotes around the path only like -file “C:\PathToScript\WeekendScheduleChange.ps1”. That’s all I set. Enter the password for the account you are using for the task and you are good. I then tested by right clicking the task and running it.

Doing this will in essence just change the job schedule within the job. All the other parts of the job will remain the same such as whatever day you set for the full backup and methods. It only changes the checkmarks/time on the scheduling section. This way you can still have all your options set in the GUI and ONLY change when the job runs. I didn’t want to have to specify all the job options via PowerShell as I’m not super great with PowerShell and the VEEAM syntax added in makes it even more of a challenge for me.

Hope this makes sense and helps some people out. When I realized v9 wasn’t going to resolve this for me, I decided to put the time into figuring out how to do it with PowerShell.

Thanks to Tom and Vladimir from VEEAM for helping me with the syntax of PowerShell. Good luck everyone!

Free up space Mac OS X

Posted on Updated on

Someone asked if I could assist with getting some space back. They had 256mb free. WOW.

Looked at finder and they had 11gb of pics, but 36gb of other stuff

used the link below to free up space.

removed some stuff from ~/Library/Caches

deleted downloads


ended up having enough space to make the laptop usable.

Samsung watch brings down AIX servers on network

Posted on

Op connects his samsun watch to his wireless network, AIX servers stop working.


Problem 1: seems watch names itself “localhost”

Problem 2: DHCP overwrote localhost DNS entry of to samsung watch’s IP


Problem 3: Oracle changed the order of how they look up the local host by going to DNS first rather than it’s own host file entry.