Stock Valuation

The US stock market over the past decade to establish an expected rate of return for our investment. The CAGR of the S&P 500 over the last one hundred years is roughly 10%, so that will be our starting point. A fairly priced stock will return 10% a year to investors – no more, no less.

Now the question becomes, at what valuation will our hypothetical zero growth company return 10%? A company with no growth prospects will be expected to return all its earnings to shareholders in dividends at a 100% payout ratio. After all, there’s no point in retaining and reinvesting earnings if your company has reached absolute maturity and growth is no longer possible.

Since the company will never grow, capital appreciation of its stock is expected to remain pretty much flat over the long run. Therefore, the only way for our hypothetical company to generate shareholder value is through dividend distributions (and share buybacks, but since a buyback is the same as a reinvested dividend when the shares are purchased at fair value, we’ll ignore them for now). For a no growth company paying out 100% of its earnings, the total return of its investors will be equal to its yield. To achieve a 10% yield at a 100% payout ratio, the company’s P/E must be equal to 10. And there we have it: a no growth company, all other factors being equal, is fairly valued at a P/E of 10.

Installing Subversion Edge 2.2.0 on CentOS 6

Should be easy, right?  It is, but I spent a good bit of time discovering how things really work.  Don’t get me wrong, the installation instructions are a good start, but things don’t working the way they should with Subversion Edge 2.2.0.

IN A NUTSHELL

  1. Install CentOS 6
  2. Prep CentOS 6 for Subversion Edge
  3. Install Subversion Edge
  4. Configure Subversion Edge in the GUI

Continue reading

Integrating JIRA and MS Project

A couple of weeks ago I was tasked with setting up an environment where our Project Manager, working with MS Project is able to setup all of the software development tasks and then sync that data with JIRA, the tools used by the development, technical services and QA teams to track their work.  On top of that the executive team wants the ability to monitor progress using MS Project.  They’d like it to work on iPads, Windows, Macs, Androids.  Pretty much everywhere.  Oh, and it should be too costly.

You can do this with MS Project Server and Sharepoint, but as soon as you start down that road there are all kinds of problems not the least of which is the cost which will be well into 5 figures.  So didn’t didn’t go there.

THE PARTS

  • R/W JIRA Users – Using JIRA, Dev, QA and TS log progress and time spent with a browser connection.
  • JIRA Server – We are adding The Connector to the JIRA server to enable synchronization of data between a MS Project and JIRA.
  • R/W Project Manager – A virtual workstation with MS Project 2010 loaded with a JIRA connector.  This system is the only system allowed to write to the .MPP files on Mercury (the file server) and synchronize those files to the JIRA server.
  • File/HTTP Server – The location of the project files.  We will be loading a .NET framework Project Viewer by Housatonic that allows 5 concurrent users read-only access the active files.  The project viewer works just like project, but runs on Mac, Windows, iPhone, iPad, etc.  That data is updated by the PM who pulls progress updates from JIRA.
  • R/O Executive – Management with read-only access to the project plan as served up on Mercury.  These user may also access JIRA directly
THE PROCESS
This outlines the workflow.
  1. Project Creation – The PM creates projects in MS Project 2010 on a single workstation and updates JIRA which replicates all of the components of the project onto the JIRA Server.  The project files live on Mercury and are now visible to the executive team through a web browser.
  2. Working on the Project – As users work on the project they use JIRA to log their time and tasks completed sharing notes with other users as needed.
  3. JIRA / Project Synchronization - The data on Mercury does not automatically reflect the data in JIRA. Periodically, the PM will open MS Project and sync up the data.  This will pull the task completed and time worked from JIRA into MS Project.
  4. Reporting – The PM will periodically create reports that include links to the project.  The hyperlinks will cause a project viewer to open allowing management to drill down into details as necessary.
THE COSTS
  • JIRA Connector ($500) – Licence for a single user.
  • JIRA Runs on a CentOS server which we already own.
  • Project Viewer ($400) 5 concurrent licenses.
  • Runs on a Windows Server that we already own. ($0)

OPINION

I love this setup.  I’ll enumerate my thoughts:

  1. I don’t like MS Project, but I understand that Project Managers feel comfortable with it and over time executives have grown up using it.  So I see the need.  I just don’t like paying for multiple copies of MS Project when I don’t have to.
  2. The Project Viewer looks very much like MS Project, but it runs through the web on OSX, Windows, iOS etc.  So, when the executive team are being cool, they can work on iPads.
  3. The JIRA Connector works surprising well.  There are some procedural things you need to keep in mind when working with it due to fact that we have read-write users in both JIRA and MS Project.  These sorts of things are common sense to sysadmins, but need to be discussed with your team.
  4. JIRA is a great tool for software development.  Period.

 

Reset mySQL password

Simple stuff assuming you haven’t forgotten your password.  If you have lost the password then read on below after the two methods

mysql -uroot
USE mysql;
UPDATE user
SET password = password
WHERE user = “root”;
flush privileges;
exit;

# or is you have a password – change it
mysqladmin -h localhost -u root password newpassword

I LOST MY PASSWORD

Easy enough, you have to start in safe mode and then use the first method above.  Safe mode is invoked by skipping hte grant table load:

/usr/bin/mysqld_safe –skip-grant-tables&

Working with ILOM on a Sun/Oracle System

#### STARTING STOPPING
The ILOM allows you to manage the system (SYS) with a few simple commands:

-> start /SYS
-> stop /SYS
-> reset /SYS

#### MANAGING AUTO BOOT MODE
-> set /HOST/bootmode script=”setenv auto-boot? false”
-> reset /SYS

#### FORCING A BREAK COMMAND
-> set /HOST send_break_action=break command
-> start /SP/console

#### GRAB A CONSOLE CONNECTION
-> start /SP/console

#### CREATE ILOM USER
-> create /SP/users/<username>
Creating user…
Enter new password: ********
Enter new password again: ********
Created /SP/users/<username>

#However, I want my team to be able to use this system just like they did the old ALOM systems
because it simplifies management for me when I’m on vacation.  Create the user as shown below
to have an old school ALOM experience.

-> create /SP/users/admin role=aucro cli_mode=alom
Creating user…
Enter new password: ********
Enter new password again: ********
Created /SP/users/admin

#### SET A PASSWORD
set /SP/users/root password

#### CHANGING THE IP
-> cd /SP/Network
-> set pendingipaddress=<ip_address>
-> set pendingipdiscovery=static
-> set pendingipnetmask=255.255.255.0
-> set pendingipgateway=<ip_address>
-> set commitpending=true

Remote Access in Solaris with the ALOM

Resetting the ALOM’s network setting is a little un-intuitive.

cd /usr/platform/`uname -i`/sbin

./scadm set netsc_ipaddr 172.16.3.27
./scadm set netsc_ipnetmask 255.255.0.0
./scadm set netsc_ipgateway 172.16.0.8

# Check your work
./scadm show | grep netsc

netsc_tpelinktest=”true”
netsc_dhcp=”false”
netsc_ipaddr=”172.16.3.27″
netsc_ipnetmask=”255.255.0.0″
netsc_ipgateway=”172.16.0.8″

You really need to have tpelinktest=”true” before proceeding.

# Reset the interface and then look at the settings.

./scadm resetrsc
./scadm shownetwork

keyword: solaris, eeprom, Sunfire

Installing Spacewalk on CentOS 6

DISCUSSION
I’m installing Spacewalk (1.5) along with postgreSQL (8.4) on a fresh installation of CentOS 6.  This would be pretty straight forward except the CentOS team did not release updates for the selinux-policy and that leaves you with the error below.  I’m guessing that if youa re reading this you encountered this error while running your yum command to install spacewalk.  If so this should guide you through things:

Finished Dependency Resolution
Error: Package: spacewalk-common-1.5.1-1.el6.noarch (spacewalk)
Requires: selinux-policy-base >= 3.7.19-93
Installed: selinux-policy-targeted-3.7.19-54.el6_0.5.noarch (@updates)
selinux-policy-base = 3.7.19-54.el6_0.5
Available: selinux-policy-minimum-3.7.19-54.el6.noarch (base)
selinux-policy-base = 3.7.19-54.el6
Available: selinux-policy-minimum-3.7.19-54.el6_0.3.noarch (updates)
selinux-policy-base = 3.7.19-54.el6_0.3
Available: selinux-policy-minimum-3.7.19-54.el6_0.5.noarch (updates)
selinux-policy-base = 3.7.19-54.el6_0.5
Available: selinux-policy-mls-3.7.19-54.el6.noarch (base)
selinux-policy-base = 3.7.19-54.el6
Available: selinux-policy-mls-3.7.19-54.el6_0.3.noarch (updates)
selinux-policy-base = 3.7.19-54.el6_0.3
Available: selinux-policy-mls-3.7.19-54.el6_0.5.noarch (updates)
selinux-policy-base = 3.7.19-54.el6_0.5
Available: selinux-policy-targeted-3.7.19-54.el6.noarch (base)
selinux-policy-base = 3.7.19-54.el6
Available: selinux-policy-targeted-3.7.19-54.el6_0.3.noarch (updates)
selinux-policy-base = 3.7.19-54.el6_0.3
You could try using –skip-broken to work around the problem
You could try running: rpm -Va –nofiles –nodigest

HOW DID I GET THE ERROR
Frankly, the instructions for install spacewalk on fedorahosted.org are awesome.  I followed those for the basic install along with the notes for setting up postgresql.  They are repeated here pulling out all of the notes for other OSes and leaving just CentOS 6.  Finally, I found the source code while reading a post from a nice fellow here.

PROCEDURE
Configure you prerequisites, I’m using 120GB for disk space and 4GB of RAM for the buildout, then I’ll reduce the RAM to 2GB for operation. I have a virtual environment so this is very simple for me.  I installed CentOS-6 as a minimal install setting up a DNS record for the system name.  After that I just start up upgrading the system.  The rest is just the facts.

yum upgrade -y

# Install some repos that make the install much easier
rpm -Uvh http://spacewalk.redhat.com/yum/1.5/RHEL/6/x86_64/spacewalk-repo-1.5-1.el6.noarch.rpm
rpm -Uvh http://download.fedora.redhat.com/pub/epel/6/i386/epel-release-6-5.noarch.rpm
rpm -ihv http://spacewalk.redhat.com/yum/1.5-client/RHEL/6/x86_64/spacewalk-client-repo-1.5-1.el6.noarch.rpm

# Get your GPG keys for redhat
yum install -y wget
wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release http://www.redhat.com/security/37017186.txt
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

# Setup to use available java packages (paste into the command line)
cat > /etc/yum.repos.d/jpackage-generic.repo << EOF
[jpackage-generic]
name=JPackage generic
baseurl=http://mirrors.dotsrc.org/jpackage/5.0/generic/free/
enabled=1
gpgcheck=1
gpgkey=http://www.jpackage.org/jpackage.asc
EOF

# Work on PostgreSQL 8.4 or better
yum install -y ‘postgresql-server > 8.4′
chkconfig postgresql on
service postgresql initdb
service postgresql start

# Setup the PostgreSQL DB
su – postgres -c ‘PGPASSWORD=spacepw; createdb spaceschema ; createlang plpgsql spaceschema ; yes $PGPASSWORD | createuser -P -sDR spaceuser’

#Setup the security in the file below adding the lines show _before_ the lines that mention ‘all’ users
vi /var/lib/pgsql/data/pg_hba.conf

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
local   spaceschema     spaceuser                       md5
host    spaceschema     spaceuser       127.0.0.1/8     md5
host    spaceschema     spaceuser       ::1/128         md5

# Reload the server
service postgresql reload

# Test the connection (exit with \q)
PGPASSWORD=spacepw psql -a -U spaceuser spaceschema
PGPASSWORD=spacepw psql -h localhost -a -U spaceuser spaceschema

# Make sure you don’t have any conflicting packages
yum remove cobbler-web
vi /etc/yum.conf and make sure you exclude=cobbler-web

# Build the RPM that is missing from CentOS
# This means we need some tools for the build environment and
# specifically, some tools for the RPM (policycoreutils-python)
yum install rpm-build redhat-rpm-config make gcc policycoreutils-python

wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/selinux-policy-3.7.19-93.el6.src.rpm
rpm -ivv selinux-policy-3.7.19-93.el6.src.rpm
cd ~/rpmbuild
rpmbuild –rebuild ../selinux-policy-3.7.19-93.el6.src.rpm
yum localinstall –nogpgcheck /root/rpmbuild/RPMS/noarch/*.rpm

# Install Spacewalk
yum install spacewalk-postgresql

I have some other notes about setting up Spacewalk on this site.  I found that more complicated than working through the above steps and hope they may be useful to you

How to Get a Solid Price on Equipment

I’m not entirely sure how they do it, but BuyMyTronics.com seems to consistently offer the best pricing in this space.   What space?  They buy used equipment.  If you have Mac equipment they are definitely the best place.

I recently confirmed this after looking at Apple’s own buyback/reconditioning program.

While on the subject, PaceButler.com has a phone buyback program.  I have successfully sent them old junk phones from where which they recycled as well as not so old iPhones.  Pace and all of these companies are going to handle the shipping costs and they make everything very simple arranging for pickup (UPS) for you.  Your responsibility is the boxing of the equipment.

NOTE: I recently sent BMT a spreadsheet with my available used equipment.  They got back to me promptly and with reasonable prices.  They made offers on stuff that their website did not have listed as well.  Shortly, after that we got a check.  Nice company, nice employees, nice CEO and the best value.

Installing a System with Spacewalk

I am not going to cover the installation of Spacewalk in this article as there are nice articles on the spacewalk site detailing most of what you need to install it properly.  Yes, it’s tricky and yes, if you have any install questions I’ll do my best to help with those.  However, the goal of this document is to talk about using Spacewalk after you have it installed and configured it.  So this is more of and end user’s guide.  The links directly below are how I got were I was going.

# Installing Spacewalk – The installation
https://fedorahosted.org/spacewalk/wiki/HowToInstall
http://wiki.centos.org/HowTos/PackageManagement/Spacewalk

# Setting up DHCP in Windows
http://unattended.sourceforge.net/pxe-win2k.html

# Setting up Spacewalk – Post install
https://fedorahosted.org/spacewalk/wiki/HowToKickstartCobbler 

IN A NUTSHELL

There are  three ways to force a system rebuild.

  1. Interacting with the PXE menu – Yes, actually touching the system.
  2. Using the System Record in Cobbler
  3. Using Koan from the system to rebuild the system.

Terminology

Cobbler – Uses DHCP, TFTP and DNS to enable network-based installs.  Spacewalk does a lot of writing to cobbler to get things done, but there is a handy command line too.

Koan – A traditional koan is a story told by a Zen master to help enlighten a student.  Little things like “What is the sound of one hand clapping, grasshopper?”  In our case koan is an RPM package that is installed to enable us to request a system rebuild from within the system.

PXE – is the Preboot eXecution Environment that loads on any decent server prior to the OS.  With PXE we can boot from the network and give cobbler and spacewalk a chance at guiding the installation

Spacewalker – Spacewalk is an open source system management system that is upstream from the Redhat Satellite Server.  This means that you and I can run the same software distribution system they use at Redhat which is nice.  For one thing you get a web interface, and a robust system that was built for work in vary large organizations.

HOW TO DO IT

Assuming you have Spacewalk all setup and working this is all pretty simple, but I’ll be editing this article a bit until I’ve worked out all the issues.  Please help me to learn for your experiences as well.

From the PXE Menu – On my Dell servers generally hitting the F12 key on boot will invoke the PXE menu.  Once you invoke the PXE menu and having done nothing else you will see a menu of potential profiles.  Select one and you system will rebuild with that kickstart.

Using Cobbler – This can be done remotely, but you’ll need to ……

sorry, I have to work on other things at the moment.  No more documentation time.

cobbler system add –name <nameOfYourSystem> –mac <mac addr of netboot interface> –profile <a profile from ‘cobbler profile list’>

koan –replace-self –server=cobbler.example.org [--profile=profile-name] [--system=system-name]