Shaun Cassells at MyITForum.com

Systems Management Server (SMS) 2003, System Center Configuration Manager (SCCM or ConfigMan) 2007, PowerShell, scripting and security (including patching), Finance, Fitness and Fun

January 2008 - Posts

Money: Max out your 401k Company Match or How to get every matched penny for retirement

Do you have a company provided 401k or 403b?

Does your company offer you free money? 

What free money? 

 

Most companies that provide a 401k or 403b also provide some form of employer match. 

 

Roth 401k Note:

Roth 401k is very new for most companies (made permanent in 2006).  I will be talking about this in later posts.  The reason I bring it up here: Most company matches do NOT apply to Roth 401k … yet.  Check with your employer!

 Employer Match Example:

For the first 6% of your pretax dollars you contribute to a 401k or 403b, your company will match 50%.  Translation, if you save 6% your company will give you 3%.  A total of 9%.  Neat. 

 

The article title had something to do with Max out company match and get every penny for retirement… aren’t those one in the same?  Not really.  Here’s why:

 

Company match is outside of the max personal contribution limits.  In 2008 you are able to save a total of $15,500.  However if your company does a match, that means you get to save $15,500 + 3% of your total salary.  This is how you can legally save more than $15,500.  Neat indeed, go Google to double check against other sources, I’ll wait.

 

Your company only gives you the match during your pay period where you are deferring money to your 401k or 403b.  This means if you don’t spread out your contributions over every pay period in a year to take advantage of dollar cost averaging you also don’t get the company match. 

Huh?  You lost me

 

Example:

            Person 1 has a bi weekly pay schedule (26 pay checks a year).Person 1 gets a year end bonus of 15,500 (I want that job) and deposits it all into their employer 401k to avoid the 42% tax on bonus (note your tax rate will vary from state to state, but it is way higher than normal salary).  Person 2, paid bi monthly saves enough to max out early.  So they can have more money for xmas shopping.   Person 3, does a little math to put in the correct amount of money so every pay period is the same.

 

 

Person 1 Person 2 Person 3
Pay Frequency

Bi weekly (26)

Bi Monthly (24)

Bi Monthly (24)

Salary

50,000

50,000

50,000

Contributions

15,500 lump sump

775 per pay period.  Will max out after 20 pay periods

645 per pay period with an increase in last period to max out

 

$15,500 + ((50k * .03)/26)

(775 * 20) + ((50k * .03)/24) * 20

645*24 + extra = max 15,500 + (50k * .03)

Total invested in 401k

$15,557.69

$16,750

$17,000

 

Summary:

            Person 1 – Maxes out personal contribution but leaves money from company on the table

            Person 2 – Maxes out personal contribution but leaves $250 from the company on the table

            Person 3 – Maxes out both personal and company contributions as well as has best dollar cost averaging for greatest return on compound interest investing.

 

Review: 

            Make sure you save at least the minimum amount your company matches.

            Best Case: Save enough to get the entire company match as well as max out your 401k (if possible)

Posted: Jan 18 2008, 05:22 PM by scassells | with 6 comment(s) |
Filed under: ,
VNext (next version of VMM) will manage VMware - Microsoft System Center Virtual Machine Manager

Sources: www.bink.nu www.activewin.com and Rakeshm's blog on technet

 

Since we announced a few months back that our next release of VMM (VNext) would manage VMware, I've received lots of questions with respect to why we made this decision and what "manage VMware" really means. Let me walk you through some of the reasoning and thinking.

1) Customers - The primary reason that we decided to manage VMware was, quite frankly, because customers were asking for it. Personally I take this as a compliment to our management suite given that most if not all VMware customers are already using VMware's management tools. The fact that they want our tools to work on top of VMware's OS platform ( BInk: afaik, VMM will work on top of Virtual Center, so on top Vmware's management tools (Virtual Center) and not direct on ESX, so customers already need to have virtual center licensend and in place) tells me that there's a definite opportunity to innovate and do a better job and we're fully committed to doing this....which leads to my next point.

2) We think we can do a better job - At the end of the day, it's not about managing virtual machines. It's about managing applications and services and today, many if not most of those run on Windows. Understanding the application in detail is absolutely critical to making intelligent management decisions. For example, migrating a VM when the CPU spikes to 80% for 10 minutes is not a particularly smart way to make that decision but if the VM is a 'black box' to you, it's the only choice that you have. With our management tools, you'll be able to set policies and rules based on application specific criteria. For example, if the average amount of time it takes for your order entry system to process an order exceeds 10 seconds and CPU is the reason, add more CPU capacity to the VM. Our customers are telling us that this is much more powerful and relevant. We feel strongly that with Hyper-V, our platform and our management tools provide an excellent end to end solution. With that said, we know that you have investments in VMware but even in that case, our management 'engine' can make better decisions on the VMware platform. In addition, the System Center family of products gives you the ability to manage physical servers right alongside your virtual machines with a single set of integrated tools rather than creating a new silo or island within your organization.

3) Flexibility in Hypervisors with a single management solution - As I said above, we feel very confident that our hypervisor provides the best platform in the vast majority of customer use cases (that's for you to decide of course) but regardless, customers want to use a single management tool in mixed environments. You'll also be able to automate across hypervisors using a single Powershell interface that we provide. VMM will abstract the difference in hypervisor APIs for you. You simply run the "Stop-VM" cmdlet and we make sure that regardless of the hypervisor platform, the VM is stopped. No more code blocks that read "If (VMware)....elseif (VirtualServer)......elseif (Hyper-V)......"

Finally, I want to emphasize that when we say "manage VMware", we mean that day to day, you'll be able to use our console and command line interface to fully manage your Virtual Infrastructure environment (including live migration), Virtual Server and Hyper-V environments seamlessly. In addition, we'll be able to extend the management capabilities that VMware offers today so you'll get an enhanced solution even on a non-Windows OS.

We'll share more details, screenshots and demos very soon....

Money: Step one – Emergency Fund and High Interest Direct Banks

No matter how much debt, no matter how many things you want… one thing everyone needs is an emergency fund of readily accessible cash.  Plus Shaun’s smart move, put it into a high interest FDIC insured electronic savings account.

 Why do I need an emergency fund? 
  • Unexpected car problems
  • Trips to the doctor where insurance will reimburse you… someday
  • Losing your job!
  • Worst case scenario, the unknown other
 How much do you need?

Generally speaking 3 to 6 months of total expenses saved is adequate.  What are total expenses?

  • Rent / Mortgage
  • Car Insurance
  • Health Insurance
  • Car Payment
  • Gas
  • Food
  • Debt – School / Credit Cards / Alimony
  • Other stuff I have to have

Take all the expenses above plus others that you pay and multiply x3.  Do not be conservative; you want to make sure you have enough for the unknown case.

  

Okay, you convinced me (after I did a Google search on your advice and see it repeated everywhere) I have decided I want to save up for emergencies.  Now what do I do with the money? 

 

High Yield Direct Savings accounts.  These differ from Money Market Accounts. 

 

Direct Savings MMA
Fees

$0

Depends on Account, usually 1% yearly

FDIC

Yes

Depends on provider

Rate

Linked to Fed Prime Rate

Adjustable daily

Either type of account will earn you money.  However, as this is a savings account, I would recommend the Electronic Savings account. 

Where did these come from?  The US Federal government passed an act that provided for online savings accounts and protection of those banks by the FDIC.   There is no physical location that you can visit, however they do have superb phone and digital communication channels. 

This lack of a walk up location can be disconcerting for the more traditional bank customer.  However, when you consider, you check your accounts online and pay bills electronically it isn’t that strange.  Plus, think, when was the last time you visited your local bank?

How do these direct accounts provide 4% or 5% interest rates?  Lower costs, no physical location, no snail mail paper trail.  Plus, the banks earn a small amount of interest above what they pay you monthly. 

 Choosing the best direct savings account:
  • You should always choose an institution that is FDIC insured
  • You should always choose an institution with a long track record of banking
 

Two notes about direct banks:

  • Money you deposit will earn interest but generally will not be available for withdrawal for 5 business days
  • You are limited to no more than 6 withdrawals per billing period (1 month)
    • No big deal you are supposed to be saving!
  

Shaun’s recommended institutions:

  

In summary, save enough for unexpected expenses and place your cash in a high interest federally insured direct savings banks.

 

Emigrant Direct savings rate is 4.55% as of 1/11/2008

Posted: Jan 11 2008, 11:25 AM by scassells | with 1 comment(s)
Filed under: ,
IE7 Bug – Unexpected Effect - Spawn new window in the same process

The following are the steps to force a new window open instead of a tab in your current IE7 process:

  1. Open IE 7
  2. Navigate to any webpage
  3. right click and open properties
  4. go to an external resource and click a hyper link
    1. WinKey + R (open run prompt)
    2. www.myitforum.com

Desired feature would be to open new link as a tab in your current main window.  Instead a new window is spawned.  IE7 continues as a single process.  The same effect can be achieved by the key combination of Ctrl + N in IE7. 

 

Firefox effect: Firefox does not exhibit the same unexpected behavior.  If you open a property tab in Firefox and click and external link, a new tab is opened as expected.

 

Remember bugs are not optional, they are built in.

Posted: Jan 11 2008, 09:10 AM by scassells | with no comments
Filed under:
Financial: Start of a series of posts on fanical adivce - Savy Saving

Hey all,

  I am going to start a series of posts for tips on saving or making money while we wait for the next bill to pay.

  A couple of teaser topics

  • Federal Eletronic Savings accounts - or how to earn 4+% interest on a savings account
  • 10 free stock trades a month - Great for EFT
  • What is an EFT?
  • Roth 401K versus 401K
  • Roth IRA versus IRA
  • and whatever else I remember

Enjoy

Posted: Jan 09 2008, 01:49 PM by scassells | with no comments
Filed under:
See you all in Vegas - MMS 2008

Morning,

   I just recieved approval to attend MMS 2008.  See you all in April!

Best

Posted: Jan 09 2008, 07:49 AM by scassells | with 3 comment(s) |
Filed under: ,
Make the MMS 2007 DVD playable off a network share

The following are the steps needed to modify your Microsoft Managment Summit 2007 DVD playable from a network share.  Note: the content of the DVD is protected.  As such make sure this content is only available to those approved to view the DVD (translation leave me alone DCMA zealots)

The reason for this post, is if you do not make the change in step 6.  you will get an error like \\booker\mms-2007\dvd not able to be played.

  1. Grab your trust (and now dusty) MMS 2007 DVD
  2. Create a network share somewhere (default rights of read are great)
  3. Copy the entire contents of the DVD to the Share
  4. On the network share open the bin directory
  5. Right click on engine.js and remove the read only attribute (make it writeable)
  6. Scroll down to line 50
    1. Orginal Line:
      • var LocalTestPath = 'File:\\\\Booker\\MMS-2007\\DVD';
    2. Modify the line to your share location
      • var LocalTestPath = 'File:\\\\SERVER\\Share';
  7. Distribute link to your coworkers and have them execute the default.hta

Enjoy

Determining if a discovered resource is in Bounds and steps to make that eaiser.

This article details the methods necessary to make roaming boundaries readable from the SMS table by creating a View, a function to convert an IP address to Decimal, and a code snippet to identify machines boundaries based machine name from SMS.

Below is an easy way to read Site Boundaries; SQL View Definition:


USE [ENTER DATABASE NAME HERE]
GO
/****** Object:  View [dbo].[v_SiteRoamingBoundary_IPRange_Readable]    Script Date: 01/02/2008 11:56:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER VIEW [dbo].[v_SiteRoamingBoundary_IPRange_Readable]
AS
SELECT SiteCode, CONVERT(VARCHAR,
CONVERT(INT, SUBSTRING(CONVERT(VARBINARY(4), CAST(StartingIP AS BIGINT)), 1, 1)))
+ '.' +
CONVERT(VARCHAR, CONVERT(INT, SUBSTRING(CONVERT(VARBINARY(4), CAST(StartingIP AS BIGINT)), 2, 1)))
+ '.' +
CONVERT(VARCHAR, CONVERT(INT, SUBSTRING(CONVERT(VARBINARY(4), CAST(StartingIP AS BIGINT)), 3, 1)))
+ '.' +
CONVERT(VARCHAR, CONVERT(INT, SUBSTRING(CONVERT(VARBINARY(4), CAST(StartingIP AS BIGINT)), 4, 1))) AS StartingIP,
CONVERT(VARCHAR, CONVERT(INT, SUBSTRING(CONVERT(VARBINARY(4), CAST(EndingIP AS BIGINT)), 1, 1)))
+ '.' +
CONVERT(VARCHAR, CONVERT(INT, SUBSTRING(CONVERT(VARBINARY(4), CAST(EndingIP AS BIGINT)), 2, 1)))
+ '.' +
CONVERT(VARCHAR, CONVERT(INT, SUBSTRING(CONVERT(VARBINARY(4), CAST(EndingIP AS BIGINT)), 3, 1)))
+ '.' +
CONVERT(VARCHAR, CONVERT(INT, SUBSTRING(CONVERT(VARBINARY(4), CAST(EndingIP AS BIGINT)), 4, 1))) AS EndingIP, DownloadExecute
FROM   dbo.v_SiteRoamingBoundary_IPRange

Below is an easy function to convert IP to Decimal.  Some Boundaries in SMS are stored as Decimal

Private Function ConvertIPtoDecimal(oct1 As Integer, oct2 As Integer, oct3 As Integer, oct4 As Integer) As Variant
    ConvertIPtoDecimal = (oct1 * (256 ^ 3)) + (oct2 * (256 ^ 2)) + (oct3 * 256) + oct4
End Function

Below is a code snippet to determine if a given workstation name is either Site Boundaries or Roaming site boundaries. (make sure you modify the SQL Query)


Function InBounds(IPAddress As String, wksname As String) As String

    Set cn = New Connection
    Set cmd = New ADODB.Command
    'HARD CODED SERVER
    ConnectReadOnlyString = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=" & <SQLReaderIDHERE> & _
         ";Password=" & <PwdHERE> & ";Initial Catalog=SMS_" & <ServerDBHERE> & ";Data Source=" & <ServerHERE>
    cn.ConnectionString = ConnectReadOnlyString
    cn.Open
    Set cmd.ActiveConnection = cn
    cmd.CommandType = adCmdText
    cmd.Prepared = True
   
    'Site Code Query
    strsql = " SELECT dbo.v_RA_System_SMSAssignedSites.SMS_Assigned_Sites0 AS SiteCode " & _
          " FROM dbo.System_DISC INNER JOIN dbo.v_RA_System_SMSAssignedSites ON” & _
             “ dbo.v_RA_System_SMSAssignedSites.ResourceID = dbo.System_DISC.MachineID  " & _
                 " WHERE (dbo.System_DISC.Name0 LIKE '" & wksname & "') "

    Set rs = CreateObject("ADODB.Recordset") 'Create the recordset object
    rs.CursorType = 0 'adOpenForwardOnly
    cmd.CommandText = strsql
    Set rs = cmd.Execute
    Do While Not rs.EOF
        Debug.Print rs(0).Value
        rs.MoveNext
    Loop
   
    If IPAddress <> "" Then
        'Take full address and split it up
        splitipaddress = Split(IPAddress, ".")
        'Take first 3 octets
        PartialIPAddress = splitipaddress(0) & "." & splitipaddress(1) & "." & splitipaddress(2) & "."
       
       
        'Full Boundary Query
        strsql = " SELECT SiteCode, IPSubnet FROM dbo.v_SiteBoundary_IPSubnet WHERE (IPSubnet LIKE '" & PartialIPAddress & "%') "
        Set rs = CreateObject("ADODB.Recordset") 'Create the recordset object
        rs.CursorType = 0 'adOpenForwardOnly
        cmd.CommandText = strsql
        Set rs = cmd.Execute
        Do While Not rs.EOF
            SplitIPSubnet = Split(rs(1).Value, ".")
            'check to see if value returned
            If rs(0).Value <> "" And CDec(splitipaddress(3)) > CDec(SplitIPSubnet(3)) Then
                InBounds = rs(0).Value
            End If
            rs.MoveNext
        Loop
        'Check partial bounds
        'check roaming boundry
        If Len(InBounds) < 1 Then
            strsql = " SELECT SiteCode, StartingIP, EndingIP FROM dbo.v_SiteRoamingBoundary_IPRange_Readable WHERE “ & _
        (StartingIP LIKE '" & PartialIPAddress & "%') "
            cmd.CommandText = strsql
            Set rs = cmd.Execute
            Do While Not rs.EOF
                'split apart starting and ending points
                SplitStartingIP = Split(rs(1).Value, ".")
                SplitEndingIP = Split(rs(2).Value, ".")
                If (rs(0).Value <> "") And (CDec(splitipaddress(3)) > CDec(SplitStartingIP(3))) And (CDec(splitipaddress(3)) < CDec(SplitEndingIP(3))) Then
                    InBounds = rs(0).Value
                End If
                rs.MoveNext
            Loop
        End If
        If Len(InBounds) < 1 Then
            InBounds = "Out Of Bounds"
        End If
Wscript.Echo InBounds
    Else
  Wscript.Echo "???"
    End If
   
    cn.Close
    Set cn = Nothing
    Set cmd = Nothing
End Function


Note: You could easily modify the above  function to only need a workstation name.
Using a query like (thanks Michael P Handley):

SELECT      dbo.System_DISC.Name0, dbo.System_IP_Address_ARR.IP_Addresses0
FROM         dbo.System_DISC INNER JOIN
                      dbo.System_IP_Address_ARR ON dbo.System_DISC.ItemKey = dbo.System_IP_Address_ARR.ItemKey
WHERE     (dbo.System_DISC.SMS_Unique_Identifier0 IS NULL)