Sunday, January 27, 2013

Running The MTConnect Agent and Simulator on VMWare's Ubuntu

There is often a good reason to have your own agent and your own simulator running for testing MTConnect.  Below is how to do it with VMWare using Linux.  Note that the source code is out at github under MTConnect under the cppagent directory.

The overall key to this is that BOTH the simulator and the agent must be running for this to work AND you must have an Internet connection EVEN if you are running the simulator and agent you will still need access to .xsd file at

Below is from:

Make sure that VMware Network Adapter is set to Bridged (autodetect) and NOT NAT or you will NOT be able to see it outside of the Mac  remember to the ifconfig to get the IP address

If your host computer is on an Ethernet network, this is often the easiest way to give your virtual machine access to that network. Linux and Windows hosts can use bridged networking to connect to both wired and wireless networks.
If you use bridged networking, your virtual machine needs to have its own identity on the network. For example, on a TCP/IP network, the virtual machine needs its own IP address. Your network administrator can tell you whether IP addresses are available for your virtual machine and what networking settings you should use in the guest operating system. Generally, your guest operating system may acquire an IP address and other network details automatically from a DHCP server, or you may need to set the IP address and other details manually in the guest operating system.

If you use bridged networking, the virtual machine is a full participant in the network. It has access to other machines on the network and can be contacted by other machines on the network as if it were a physical computer on the network.

You can install it anywhere you like. if you want to set up an ubuntu tiny you will need the following pieces from aptget:

1. gcc
2. ruby  (had to do an apt-get in order to load this)
3. cmake
4. libxml2
5. libxml2-dev (had to do an apt-get in order to load this)
5. cppunit

create a directory for the build

you need to get libxml2-dev

apt-get install ruby
apt-get install libxml2   (likely will tell you that it is installed
apt-get install libxml2-dev
apt-get update

ubuntu:/MTConnect_Agent_Simulator_DIR#   history |grep apt

     1     12:03     apt-get install libxml2
     2     12:04     apt-get update
     4     12:05     apt-cache search libxml
     5     12:05     apt-cache search libxml2
     6     12:13     apt-get install libxml2-dev
    98     13:03     history | grep apt
#cmake -i  

   * NOTE:  that just doing regular cmake  -- if you just keep hit return on the questions, it will do a proper cmake
   * run this as root
   * I also noticed that you can run cmake -i from the top


Now you can run the simulator using the ruby run_scenario.rb script. There is help built in. The default agent.cfg will also startup using the VMC3Axis.xml devices file and the VMC3Axis-Log.txt file will give you the same scenario as we have on the site. Any other scenarios can be saved by capturing adapter output into a file.

Will Sobel, MTConnect Chief Architect, told me:
"40 students can hit the agent at the same time, probably can support more than 100. if we wanted to have more than than 1000, i would need to rewrite the internals to use epoll and edge-triggered instead of select and remove the service threads with custom context management. never been an issue."

Ubuntu:/MTConnect_Agent_Simulator_DIR# pwd/home/dave/MTConnect_cppagent-version_1.2.0.14_DIR/mtconnect-cppagent-a100593

ubuntu:/MTConnect_Agent_Simulator_DIR# ls

agent             BUILD.TXT        CMakeFiles          lib      simulator  unix
agent_startup_DIR  ChangeLog        cmake_install.cmake     LICENSE.TXT  README.pdf  test         win32
assets             CMakeCache.txt  CMakeLists.txt     Makefile     samples      tools

ubuntu:/MTConnect_Agent_Simulator_DIR/agent_startup_DIR# ls

agent  agent.cfg

ubuntu:/MTConnect_Agent_Simulator_DIR/agent_startup_DIR# more agent.cfg

Devices = ../simulator/VMC-3Axis.xml
AllowPut = true
ReconnectInterval = 1000

Adapters {
   VMC-3Axis {
      Host = localhost
      Port = 7878

# Logger Configuration
    logging_level = debug
    output = cout

NOTICE the two changes in that I made (HOWEVER, I did NOT run the, just ran the agent directly)

ubuntu:/MTConnect_Agent_Simulator_DIR/unix# pwd

ubuntu:/MTConnect_Agent_Simulator_DIR/unix# cp

ubuntu:/MTConnect_Agent_Simulator_DIR/unix# cat

# init.d script with LSB support.
# Copyright (c) 2007 Javier Fernandez-Sanguino
# This is free software; you may redistribute it and/or modify
# it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2,
# or (at your option) any later version.
# This is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License with
# the Debian operating system, in /usr/share/common-licenses/GPL;  if
# not, write to the Free Software Foundation, Inc., 59 Temple Place,
# Suite 330, Boston, MA 02111-1307 USA
# Provides:          agent
# Required-Start:    $network $local_fs
# Required-Stop:
# Should-Start:      $named
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: MTConnect agent
# Description:       Provides MTConnect web server functionality

# NOTE: I ran this successfully WITHOUT using this schell script, but I did modify in case I need to use it
# I changed below

# I changed below
DAEMON_OPTS="daemonize $AGENT_DIR/agent.cfg"

test -x $DAEMON || exit 0

. /lib/lsb/init-functions

DIETIME=10                   # Time to wait for the server to die, in seconds
                            # If this value is set too low you might not
                            # let some servers to die gracefully and
                            # 'restart' will not work

# Include mongodb defaults if available
if [ -f /etc/default/$NAME ] ; then
        . /etc/default/$NAME

# make sure the log directory exists
[ ! -d "$LOGDIR" ] || mkdir -p $LOGDIR

# Check that the user exists (if we set a user)
# Does the user exist?
if [ -n "$DAEMONUSER" ] ; then
    if getent passwd | grep -q "^$DAEMONUSER:"; then
        # Obtain the uid and gid
        DAEMONUID=`getent passwd |grep "^$DAEMONUSER:" | awk -F : '{print $3}'`
        DAEMONGID=`getent passwd |grep "^$DAEMONUSER:" | awk -F : '{print $4}'`
        log_failure_msg "The user $DAEMONUSER, required to run $NAME does not exist."
        exit 1

set -e

running_pid() {
# Check if a given process pid's cmdline matches a given name
    [ -z "$pid" ] && return 1
    [ ! -d /proc/$pid ] &&  return 1
    cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1 |cut -d : -f 1`
    # Is this the expected server
    [ "$cmd" != "$name" ] &&  return 1
    return 0

running() {
# Check if the process is running looking at /proc
# (works for all users)

    # No pidfile, probably no daemon present
    [ ! -f "$PIDFILE" ] && return 1
    pid=`cat $PIDFILE`
    running_pid $pid $DAEMON || return 1
    return 0

start_server() {
# Start the process using the wrapper
        if [ -z "$DAEMONUSER" ] ; then
            start-stop-daemon --background --start --quiet --pidfile $PIDFILE \
                        --make-pidfile --exec $DAEMON -- $DAEMON_OPTS

# if we are using a daemonuser then change the user id
            start-stop-daemon --background --start --quiet --pidfile $PIDFILE \
                        --make-pidfile --chuid $DAEMONUSER \
                        --exec $DAEMON -- $DAEMON_OPTS
        return $errcode

stop_server() {
# Stop the process using the wrapper
        if [ -z "$DAEMONUSER" ] ; then
            start-stop-daemon --stop --quiet --pidfile $PIDFILE
            rm $PIDFILE
# if we are using a daemonuser then look for process that match
            start-stop-daemon --stop --quiet --pidfile $PIDFILE \
                        --user $DAEMONUSER \
                        --exec $DAEMON

        return $errcode

reload_server() {
    [ ! -f "$PIDFILE" ] && return 1
    pid=pidofproc $PIDFILE # This is the daemon's pid
    # Send a SIGHUP
    kill -1 $pid
    return $?

force_stop() {
# Force the process to die killing it manually
        [ ! -e "$PIDFILE" ] && return
        if running ; then
                kill -15 $pid
        # Is it really dead?
                sleep "$DIETIME"s
                if running ; then
                        kill -9 $pid
                        sleep "$DIETIME"s
                        if running ; then
                                echo "Cannot kill $NAME (pid=$pid)!"
                                exit 1
        rm -f $PIDFILE

case "$1" in
        log_daemon_msg "Starting $DESC $NAME"
        # Check if it's running first
        if running ;  then
            log_progress_msg "apparently already running"
            log_end_msg 0
            exit 0
        if start_server ; then
            # NOTE: Some servers might die some time after they start,
            # this code will detect this issue if STARTTIME is set
            # to a reasonable value
            [ -n "$STARTTIME" ] && sleep $STARTTIME # Wait some time
            if  running ;  then
                # It's ok, the server started and is running
                log_end_msg 0
                # It is not running after we did start
                log_end_msg 1
            # Either we could not start it
            log_end_msg 1
        log_daemon_msg "Stopping $DESC" "$NAME"
        if running ; then
            # Only stop the server if we see it running
            stop_server || errcode=$?
            log_end_msg $errcode
            # If it's not running don't do anything
            log_progress_msg "apparently not running"
            log_end_msg 0
            exit 0
        # First try to stop gracefully the program
        $0 stop
        if running; then
            # If it's still running try to kill it more forcefully
            log_daemon_msg "Stopping (force) $DESC" "$NAME"
            force_stop || errcode=$?
            log_end_msg $errcode
        log_daemon_msg "Restarting $DESC" "$NAME"
        stop_server || errcode=$?
        # Wait some sensible amount, some server need this
        [ -n "$DIETIME" ] && sleep $DIETIME
        start_server || errcode=$?
        [ -n "$STARTTIME" ] && sleep $STARTTIME
        running || errcode=$?
        log_end_msg $errcode

        log_daemon_msg "Checking status of $DESC" "$NAME"
        if running ;  then
            log_progress_msg "running"
            log_end_msg 0
            log_progress_msg "apparently not running"
            log_end_msg 1
            exit 1
  # Use this if the daemon cannot reload
        log_warning_msg "Reloading $NAME daemon: not implemented, as the daemon"
        log_warning_msg "cannot re-read the config file (use restart)."
  # And this if it cann
          # If the daemon can reload its config files on the fly
          # for example by sending it SIGHUP, do it here.
          # If the daemon responds to changes in its config file
          # directly anyway, make this a do-nothing entry.
          # log_daemon_msg "Reloading $DESC configuration files" "$NAME"
          # if running ; then
          #    reload_server
          #    if ! running ;  then
          # Process died after we tried to reload
          #       log_progress_msg "died on reload"
          #       log_end_msg 1
          #       exit 1
          #    fi
          # else
          #    log_progress_msg "server is not running"
          #    log_end_msg 1
          #    exit 1
          # fi

        echo "Usage: $N {start|stop|force-stop|restart|force-reload|status}" >&2
        exit 1

exit 0

ubuntu:/MTConnect_Agent_Simulator_DIR/agent_startup_DIR# ./agent debug
MTConnect Agent Version - built on Mon Jul 30 09:41:08 2012
2012-07-30T15:57:01.307850Z: INFO  [0] init.config: Starting agent on port 5000
2012-07-30T15:57:01.317817Z: INFO  [0] init.config: Adding adapter for VMC-3Axis on localhost:7878
2012-07-30T15:57:01.318606Z: DEBUG [1] input.connector: Connecting to data source: localhost on port: 7878
2012-07-30T15:57:01.325697Z: DEBUG [1] input.connector: Sending initial PING
2012-07-30T15:57:01.362692Z: DEBUG [1] input.connector: Received PONG, starting heartbeats every 10000ms

http://localhost:5000/sample  in the browser  (note port 5000)

ubuntu:/MTConnect_Agent_Simulator_DIR/simulator# ls

run_scenario.rb  simple_scenario_1.txt     simulator.rb  VMC-3Axis-Log.txt  VMC-3Axis.xml

ubuntu:/MTConnect_Agent_Simulator_DIR/simulator# ruby -v run_scenario.rb -l VMC-3Axis-Log.txt
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]
Waiting on 7878
Client connected


   * -v is verbose
   * run_scenario.rb   is exactly that a run scenario
   *  -l VMC-3Axis-Log.txt is to run that long file for simulator data

ubuntu:~dave# ln -s /home/dave/MTConnect_cppagent-version_1.2.0.14_DIR/mtconnect-cppagent-a100593 /MTConnect_Agent_Simulator_DIR

 netstat -anp | grep "LIST"  to see what ports are open

ubuntu:/MTConnect_Agent_Simulator_DIR/simulator# netstat -anp | grep "LIST"
tcp        0      0  *               LISTEN      1328/dnsmasq  
tcp        0      0    *               LISTEN      4121/inetd    
tcp        0      0 *               LISTEN      595/cupsd     
tcp        0      0  *               LISTEN      3622/ruby     
tcp        0      0  *               LISTEN      3627/agent    
tcp6       0      0 :::80                   :::*                    LISTEN      1024/apache2  
tcp6       0      0 ::1:631                 :::*                    LISTEN      595/cupsd  

 to make things easier, here are some simple startup scripts:

Simulator_DIR/simulator# more start_simulator
ruby -v run_scenario.rb -l VMC-3Axis-Log.txt

ubuntu:/MTConnect_Agent_Simulator_DIR/agent_startup_DIR# more start_agent_debug_mode

./agent debug

ubuntu:/MTConnect_Agent_Simulator_DIR/simulator# ./start_simulator
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]
Waiting on 7878
Client connected

MTConnect Agent Version - built on Mon Jul 30 09:41:08 2012
2013-01-27T15:57:13.055418Z: INFO  [0] init.config: Starting agent on port 5000
2013-01-27T15:57:13.060496Z: INFO  [0] init.config: Adding adapter for VMC-3Axis on localhost:7878
2013-01-27T15:57:13.061009Z: DEBUG [1] input.connector: Connecting to data source: localhost on port: 7878
2013-01-27T15:57:13.069044Z: DEBUG [1] input.connector: Sending initial PING
2013-01-27T15:57:13.108968Z: DEBUG [1] input.connector: Received PONG, starting heartbeats every 10000ms

I love how Will sends out a ping and then gets a pong back :-)

Friday, January 25, 2013

Four Year Anniversary of Thanks and Goodbye Evie....

Thanks and Goodbye Evie.

This is the four year anniversary of the passing of my Aunt Evie which was initially posted on Jan 25, 2009

My Aunt Evie passed away on Friday January 16th, 2009 in her home in Zumbrota, Minnesota.

Evelyn Gloria Irene Husbyn was born March 10, 1929, in Minneola Township, Goodhue County.    She grew up on the family farm, attended country school, and graduated from Zumbrota High School in 1947.   On Jan. 17, 1948, she married Stanley "Tat" Thompson in Zumbrota.

Below is Evie and me at my sister's Ph.D. graduation at George Mason University in 2006.  Evie is the lady in the white hair second from the left.

They owned their own businesses and were extremely successful.  I remember working at their Skelly Gas Station in Zumbrota, Minnesota with my cousin Richard Franklin while our Grandpa (Melvin Thompson) would oversee our duties. My Grandpa would give discounts to all customers when they filled up their cars or trucks, but it was a total to mystery to me on his percentage discount logic.    When I asked Tat and Evie on what math logic that Grandpa was using they just laughed.  They told me, "Dave, Pa does not have any logic, he simply makes it up as he goes."   Neither Tat nor Evie would tell my Grandpa to stop, because they knew that it made Grandpa feel good to give the people of Zumbrota a discount on their gas.

Tat and Evie epitomized the smart, caring and cool couple.  
Tat and Evie always had the coolest cars.  There was a time in 1970 when Tat owned a 1969 Dodge Charger R/T that had  7.2 litre engine at 375hp, 0-60 in 6 seconds, 0-100 in 13.3 seconds and top speed of 150mph.  That year and model car was voted the best muscle car of all time.   Evie had a 1970 Ford Torino Cobra Jet that had the 429 cubic inch engine with 370hp, 0-60 in 6 seconds and was Motor Trend's Car of the Year in 1970.   Tat and Evie's love of cars, trucks and motorcycles (Tat owned Harley-Davidson's long before it was fashionable to do so) really created a love of cars, trucks and motorcycles in everyone's lives they touched.   One of my life goals was to have a car faster than anything that Tat or Evie owned.  Finally, at age 42, I bought a Corvette that as faster than anything Tat or Evie owned.  But, Tat and Evie had more cool in their little fingers than I have in my whole body :-)  You can not buy cool.
 My family moved around lot growing up.   When Tat and Evie would come visit us, the excitement level was palpable.  Tat always had a big wad of cash in his pocket.   No one on planet earth knew more jokes or stories than Tat Thompson.  What always amazed me about Evie is that no matter how many times she heard Tat tell a story, Evie would always laugh out loud like it was the first time.  One time when Tat and Evie came to visit I was in the process of buying a 1972 240Z and need to pay cash to the owner so I had $2,100 on me.   After Tat and Evie were there for awhile, I said to Tat, "Tat, I don't have any clue on how much money I have in my wallet right now, but I will bet you $100 that I have more than you do."   Tat said, "well, I don't want to bet you, but let's find out."   Tat had about $700 or so.  After I got to about $1,000 Evie just started laughing.  It was like that MasterCard commercial - pricelesss.

 Evie was extremely smart in dealing with people and had a level of common sense that was unmatched.  Evie's mother, Ida, was the same way.   I remember when I was 18, I was giving Ida a hard time because she had (literally) $3,000 in a freezer in Tat and Evie's cellar.   When I told her that she was not making any interest by doing that, she simply responded with two sentences that put me in my place and I am reminded of that conversation today.

Ida asked me, "Dave, let me ask you one question.  If you went to the bank to get your money and that bank was closed down and you lost all of your money, how long will you remember that day?" With our economy in the toilet and getting worse, I think of Ida's advice often....

Evie will be greatly missed among all who knew and loved her....  

Wednesday, January 23, 2013

Floor Plan Videos For [MC]2 2013 at The Millennium Hotel Cincinnati

Part of any conference, such as [MC]2 2013, there is a walk through to make sure we understand the physical logistics.   Instead of taking pictures and trying to explain what is where, I thought it would be much easier for the exhibitors, vendors, attendees, speakers and the great folks at AMT, who make this conference all happen, to simply be able to watch videos of the different ballrooms, rooms and areas that we are using.

After reviewing these videos, I am convinced this is the absolute best way to see what a given venue looks like.  I really think this will help all of those involved understand the layout to limit the many questions we get on conference physical layout at the hotel.  We are going to include the link to this blog post in the package and on the website to help folks understand the layout.

The hotel we are using is The Millennium Hotel Cincinnati. I was fortunate to get a detailed tour of the hotel and it looks great and the folks at the Millennium Hotel Cincinnati could not be any nicer or more professional! Thanks Maria!

Below is the floor plan of the second floor so when you watch the videos you know exactly what area you are viewing:

Here is the list of videos that will take you through the specific rooms where we are having the various events at [MC]2 2013.

Any questions on this [MC]2 2013 participants, you can send a note to dedstrom  at   (Trying to keep the mail spam bots from grabbing my email )

Also, if you have not registered, signed up to be a sponsor or signed up to be an exhibitor, DO IT NOW!!!

CECIMO MTConnect Article

CECIMO is the European Association of the Machine Tool Industries, and they were kind enough to ask the MTConnect Institute to write an article for their Fall 2012 magazine that comes out in both electronic and hard copy.  I am always thrilled to get the word out on MTConnect especially in other parts of the globe as we want MTConnect to truly be a global standard.  My article starts on page 25.

This October marks the sixth anniversary of the conference that laid out the foundation for MTConnect. MTConnect is an open and royalty-free standard that is dramatically changing manufacturing around the globe.

The beginning of MTConnect goes back to the end of 2006, when AMT held its annual meeting in Lake Las Vegas. This is where MTConnect was born. I worked with Dr. David Patterson of the University of California at Berkeley (UCB). Dave and I worked closely together on our back-to-back keynotes, laying out the business and technical framework, and it was there that by AMT – The Association For Manufacturing Technology. decided to fund MTConnect.

What exactly is MTConnect? It’s is an open, royalty-free standard that converts the many different proprietary manufacturing equipment data formats into the common language of the Internet that all applications speak. Think of a protocol as the “rules of the road” on how information will be shared. MTConnect is the Manufacturing Technology Connection between manufacturing equipment and applications. Another way to think of MTConnect is like a “Bluetooth for manufacturing equipment”. Bluetooth works when two different devices support it, such as your cellphone and your car, or your computer and other peripherals. MTConnect works when both the manufacturing equipment and the software applications support MTConnect.

 The diagram below shows how a typical application retrieves information from an MTConnect enabled device on the shop floor. In this diagram, the application could be any application that is MTConnect enabled.  MTConnect enabling an application is straight forward as MTConnect uses proven Internet protocols. The diagram shows the MTConnect agent and the optional adapter. It is this combination that takes the proprietary information from a manufacturing device, combines the information with an MTConnect data dictionary and makes it available for applications to easily retrieve and use.

An area of confusion sometimes is that people think MTConnect is an application such as Microsoft Office. MTConnect is not an application, MTConnect is a standard that connects manufacturing equipment to applications.

Companies, organizations, and even individuals can join the MTConnect Institute for free. Additionally, it is free to deploy the MTConnect standard. MTConnect is also open source. We do this because we strongly believe a common standard is the equivalent of a “rising tide lifting all ships”. In other words, everyone wins when manufacturing equipment can easily be connected. MTConnect Institute members may take the MTConnect protocol and bundle it with their software or manufacturing equipment. They are free to sell it or include free with their software or systems – that is their decision. We have over 100 companies that are MTConnect members with companies joining every day.

Today, only 4 to 5 percent of machine tools around the globe are monitored. MTConnect is changing that and changing manufacturing in countless ways. You cannot manage what you cannot measure and MTConnect is making it very easy for shops and plants to get manufacturing equipment data and therefore manage their business in an intelligent fashion.

Where is MTConnect today in its history? We working on our fourth release and there are many exciting things going on with MTConnect. In November 2011, we had our first ever [MC]2 MTConnect Connecting Manufacturing Conference, which was a huge success. We have made 23 hours of videos available on a number of topics, including help for the first-time MTConnect user, end-user discussions on lessons learned, and even how to write MTConnect-enabled software. I would encourage everyone to go to our site,, to learn more or to ask questions.

John Byrd, former president of AMT, has said that, “MTConnect will do more for manufacturing in the 21st century than CNC did in the 20th century”. Mr. Byrd is being proven correct every day.

At the MTConnect Institute our mantra is “MTConnect is Different Devices, Common Connection”. As the president and Chairman of the Board for the MTConnect Institute, my final message is that MTConnect is REAL, it is a revolution in manufacturing and you should investigate it today to help improve productivity in your shop or plant!

Tuesday, January 22, 2013

Press Release: Registration Open for [MC]2 2013MTConnect: Connecting Manufacturing Conference

For Immediate Release: January 14, 2013

David A. Edstrom
Chairman of the Board and President,
MTConnect Institute

Registration Open for [MC]2 2013MTConnect: Connecting Manufacturing Conference

McLean, Va. … Registration is now open for the second [MC]2 2013 MTConnect: Connecting Manufacturing Conference. [MC]2 2013 will be held in Cincinnati, Ohio April 10 11 at the Millennium Hotel Cincinnati.

MTConnect is a set of open, royalty-free standards intended to foster greater interoperability between controls, devices and software applications by publishing data over networks using the Internet Protocol. Since its introduction in 2008 MTConnect has become the standard for manufacturing connectivity. The manufacturing technology community commonly uses MTConnect to connect the shop floor to monitoring applications and to integrate the shop floor with the entire manufacturing enterprise.

The conference promotes both the benefits and implementation of MTConnect, as well as showcasing commercially available products that utilize the standard. Attendees who could benefit from this important event include end users – shop owners, plant managers, industry thought leaders, MTConnect® Institute participants, equipment suppliers, students, educators,software developers, distributors, ISVs, integrators, and consultants.

“[MC]2 2013 will build upon the huge success of the inaugural conference in 2011 where we had industry thought leaders, 175 attendees, numerous speakers, hands-on labs and 24 exhibitors,” said

 David Edstrom, MTConnect Institute Chairman of the Board and President. “MTConnect is a true game changer that is revolutionizing manufacturing and this conference will once again provide business and technical content for everyone who participates.”

To learn more about this event and register, visit


AMT – The Association For Manufacturing Technology

AMT – The Association For Manufacturing Technology represents and promotes U.S.-based manufacturing technology and its members—those who design, build, sell, and service the continuously evolving technology that lies at the heart of manufacturing. Founded in 1902 and based in Virginia, the association specializes in providing targeted business assistance, extensive global support, and business intelligence systems and analysis. AMT is the voice that communicates the importance of policies and programs that encourage research and innovation, and the development of educational initiatives to create tomorrow’s Smartforce.  AMT owns and manages IMTS — The International Manufacturing Technology Show, which is the premier manufacturing technology event in North America.

Note to the Media: Registration to the [MC]2 2013MTConnect: Connecting Manufacturing Conference is complimentary for the Media.

Sunday, January 20, 2013

Congratulations Sandy Grimes - Incredible Career

This past week there was a very nice article by Ian Shapira at the Washington Post on Sandy Grimes and her colleague at the CIA - Jeanne Vertefeuille titled:

CIA sisterhood: One spy cared for her dying colleague, an agency pioneer

Together, the two of them wrote a book called:  Circle of Treason: A CIA Account of Traitor Aldrich Ames and the Men He Betrayed.  This is a very touching article on long time friends detailing Sandy taking care of her friend during her final fight with cancer.

The article brought out many interesting facts and this one on Sandy's background I found particularly fascinating:

"Grimes, the daughter of parents who’d worked on the Manhattan Project, joined the agency at the urging of an ex-boyfriend who thought she’d make a “perfect spy.”  "

I first met Sandy in 1988 at a Sun Microsystems Christmas party.   Sandy was/is the wife of Gary Grimes.  Gary was a Sales Director at the time at Sun and later would become VP at Sun in a number of important leadership roles.  Both Gary and Sandy are absolute class acts.    It seems like when I see Gary and Sandy these days it is at funerals for Sun employees or their spouses.  We do see each other at Sun reunions - which are always fun.

The reason for this post, beyond congratulating Sandy on a great career, is that it reminded me of when I did work with Sandy on a "sort of" spy exercise.  OK, it was getting some photos of Gary and the sports cars he had over the years for an April 1st prank we pulled on Gary :-)  I had no idea that when I reached out to Sandy and said to her, "don't tell Gary" that keeping secrets was not a problem for Sandy :-)

Below is part of the April Fool's prank that Sandy helped us pull together.  I grabbed the entire site that John Meyer keeps on his server, just in case John does not do backups :-)  - as this is a very creative prank.  You should check out the entire site at John's server here - including the FAQ.


robotic mid-frame
Gary Grimes, Southern Area Vice President for Sales, has been promoted to President of Sun's newest subsidiary, SunCLONE.  It was extremely important to SMI that we select the right person to lead SunCLONE.  We needed a fast-moving leader to master this dynamic market.  Gary Grimes was selected because, after careful examination, we have determined that Gary is not only the fastest VP at Sun but also on planet Earth.  Gary is the only VP at Sun to have a racing license and could have been a world class driver if he had chosen to pursue a racing career. Gary has driven and owns some of the fastest cars ever produced and we know that the stress of a very fast-moving market would not be a problem for him.  We needed someone who would not be distracted by some of the religious, ethical, privacy, and consumer issues that will undoubtedly crop up with this announcement.  With his laser-like focus on execution, we feel that Gary is the right man for this job.
Read the complete announcement e-mail.
Visit the live Web Cam.

Building the SunCLONE ONE
For thousands of years, philosophers have pondered the central question of our existence: Are we simply the product of our biological inheritance or do the experiences of our lifetime shape who we are? Today, with the complete mapping of the human genome and the cloning of Dolly, this question has also captured the popular imagination. People from all walks of life -- insurance agents, hot dog vendors, shoe salesmen, water-cooler louts, ignorant drunks and even fans of Temptation Island and AM talk show hosts -- are debating genes vs. learning, DNA vs. experience, Darwin vs. Skinner. In short, Nature vs. Nurture.
Dolly (on right) with
unnamed lamb
Throughout history the Nature vs. Nurture debate has occupied and stumped brilliant scholars and crackpots alike. It took the incendiary brilliance of the super-geniuses at Sun's SundEnPjMsF subsidiary to realize that this question deserved not an answer, but a rebuttal. Nature and Nurture are two sides of the same coin and, when trying to capture the entire human, both sides must be considered.
It was this philosophical, metaphysical breakthrough which made the SunCLONE ONE possible. By combining both Nature, in the form of JDNA Enterprise Java Beans (EJBs), and Nurture, in the form of JMRI brain scans, the SunCLONE ONE achieves a holistic synthesis, exactly replicating its human base unit.

JDNA - Nature and Java Together For The First Time

Human Chromosome Number 3,
showing the sales rep gene
The making of a SunCLONE ONE starts with the painless extraction of the 23 chromosome pairs which comprise the complete DNA code of the human base unit. This DNA is then amplified using the Nobel Prize-winning Polymerase Chain Reaction (PCR) process. After amplification, the human base unit's DNA is passed to a nucleotide sequencing machine which reads the code's base pairs. This nucleotide sequence is then stored in a central 2435-dimensional data warehouse which is used for cutting edge scientific and marketing research (see our Privacy Policy).
DNA extraction
via micro-needle
DNA for the SunCLONE ONE is extracted using a micro-needle probe no larger than 1/42 the width of a human hair. The micro-needle pierces the donor cell's nucleus and gently sucks out its chromosomes. Previously, this delicate procedure could only be performed by highly-trained technicians in a clean-room environment. But in an amazing display of eating our own dog food, the SunCLONE ONE Home DNA Extraction kit uses robotic technology developed for the SunCLONE ONE product to allow easy and painless DNA sucking in the privacy of your own home.
import javax.jdna.Genome;

public class GaryGrimes extends Genome {
        Genome genes = new Genome(
JDNA Source Code
Using jdnac, Sun's patented DNA-to-Java compiler, the organic DNA is converted into Java source code. The resulting Java class files use the JDNA Java extension to map the function of human biological processes onto the bio-robotic SunCLONE ONE device.
JDNA EJBs, which were developed using the highly successful Java Community Process, are part of the Java 2 Biological Edition (J2BE). Each SunCLONE ONE includes an iPlanet J2BE application server which executes in a massively parallel fashion on the 340x1036 MAJC processors comprising the SunCLONE ONE midframe. This amazing assemblage exactly duplicates the human base unit's biologic make-up, without any of the inconvenient drawbacks of biological instantiation: hunger, thirst, pain, and so forth.

JMRI - Yes, We Can Read Your Mind

Duplicating the human base unit's DNA is relatively straightforward, but how could we possibly capture the lifetime of learning that makes even genetically identical twins unique human beings? One way would be to exactly duplicate the human base unit's life, exposing the SunCLONE ONE to the same experiences and formative factors. While that might succeed, it's way too much work and it lacks the instant gratification so important in today's fast-changing markets. Instead, we simply "rip" those experiences from the human, using a process analogous to "ripping" a music CD into an MP3 file.
Actual scan of Gary Grimes's
brain, not actual size.
JMRI brain scans enable this ripping process. Extremely high-detail MRI scans of the human's brain allow us to exactly map the web of neural connections which encode his personality. In less than 0.4 seconds, an entire lifetime of hopes, dreams, loves and disappointments are converted into a simple and easily manipulated Java source file using the JMRI extention. This JMRI code, when combined with the appropriate JDNA EJBs and SunCLONE ONE's distributed, massively parallel MAJC-based architecture, forms the "brain" of the SunCLONE ONE.

Mass Market Cloning Today!

Bulky MRI Dinosaur
Traditional MRI scanners are large, uncomfortable and expensive. Since the SunCLONE ONE is intended to be a mass market, consumer product, SundEnPjMsF was forced to find an innovative, new way of capturing the needed brain scans. Working through the Java Community Process, Sun and major MRI and point-of-sales device manufacturers were able to miniaturize the traditional MRI scanner and incorporate it into a common checkout line cash register.

cash register
Today, over 93% of all stores in the United States are equipped with these sophisticated devices. Every time you complete a credit card purchase at one of these registers, a new, up-to-date scan of your brain is transmitted to Sun's central data warehouse (see our Privacy Policy). You don't have to do anything else. In fact, chances are your brain scan is already on file with Sun (see our Privacy Policy). By continually updating your SunCLONE ONE brain profile, we ensure that your SunCLONE ONE is equipped with the most complete and accurate representation of your personality possible.

Putting It All Together

Actual photo-micrograph of
Gary Grimes's DNA
Duplicating the mind of the human base unit is only half the problem. We must also build a suitable body. While early beta units used a human body, for the production SunCLONE ONE we have chosen a bio-robotic technology which offers many advantages over the hundreds of pounds of meat typically used to house a human intellect. For example, your SunCLONE ONE requires neither food nor rest and is totally exempt from most labor and human rights laws. The SunCLONE ONE's body uses the latest in self-organizing criticality, atto-technology and molecular self-assembly to create the perfect merger of human creativity and relentless machine perfection (see our Disclaimer). With Nature and Nurture housed in a perfect, nigh-invulnerable body, the SunCLONE ONE is the perfect answer to many questions which man was not meant to ask!

Meet SMI's newest subsidiary, SundEnPjMsF, the brilliant minds behind the SunCLONE ONE (from left to right):
  • Neil Pierson, Java MRI Real-Time Imaging Architect (JMRIA)
  • John Meyer, Java Physicist and Quantum Computing Architect (JPQCA);
  • Dave Edstrom, Chief Genius and Technology Architect (CGTA);
  • Steve Fritzinger, Java DNA Neurosurgeon Architect (JDNAC)
  Not pictured are the persons formerly known as "Sandy Grimes", "Dick Bowman", "Steve Ferry", "Jim Clifton", "Pat Cox", "Sue", "Tal" and "Marty" "Walls" and the entire Viva Robotics corporation who have all entered the Federal Witness Protection Program. Also not pictured is Julie Edstrom, former Chief MRI Imaging Scientist and the only one in the group with any ethics at all.

Happy 70th Birthday Chris Easter!

Julie and I went to LaPlata, Maryland yesterday afternoon for a surprise birthday party for Chris Easter.   Chris and I worked together at Sun Microsystems back in the late 90s and early 00s.   Chris and I both worked for Sue Walls back then as well.

Chris and I got along great from day one because we both loved a great story.  Chris, however, could take things to a whole new level as was pointed out yesterday at her surprise 70th birthday party at Grace Lutheran Church in LaPlata. 

As Sue pointed out when she shared a few stories on Chris, Chris has no problem telling even her grandchildren remarkable stories about herself.

For example:

Chris is taking her nine year old granddaughter to New York City to see the famous Rockettes.  On the way there, Chris mentions to her granddaughter that when Chris was young, she was a Rockette.  Her granddaughter could not be more proud!  They had a great time.  A few weeks later Chris's daughter Lynn calls Chris.  The conversation goes like this, "Mom, your granddaughter got an "A" on a paper she wrote."   Chris, said "that's great!"   Lynn went on to say, "Yes, she wrote about you being a Rockette.   Mom, you can't keep telling my kids these stories about yourself that just aren't true."

Another example of Chris telling her grandchildren story was when they were young, Chris convinced that she was the only gold medal winner at the olympics in both figure skating and swimming.  

At a Blue Angels Air Show, two young boys sitting behind Chris said they could not see the person speaking before the jets were to take off and do their incredible array of aerial stunts.   Chris turned around and said to the boys and their parents, "do you know who I am?"   "No", the boys replied.  Chris then said, "I am the first woman Admiral in the Navy and the first woman pilot of the Blue Angels."   The young boys and their parents were very impressed!

That is me and Chris above.  Sue and Lynn gave nice talks discussing Lynn's many "exploits" and gave her medals and pins to honor her. 

It was a great time and there is not a nicer or funnier lady on planet earth than Chris Easter.  Happy 70th Birthday Chris and many, many more!

Thursday, January 17, 2013

Reminder: [MC]2 2013 Registration is OPEN!

 [MC]2 2013 MTConnect: Connecting Manufacturing Conference is OPEN!!!

[MC]2 MTConnect: Connecting Manufacturing Conference

By Dave Edstrom
NOTE: I wrote this for Jan 10, 2013 IMTS Insider

It is with great excitement to announce to the readers of the IMTS Insider that registration is now open for [MC]2 2013 MTConnect: Connecting Manufacturing Conference! [MC]2 2013 will be held in Cincinnati, Ohio on April 10th and 11th at the Millennium Hotel Cincinnati.

[MC]2 2013 will build upon the huge success of the inaugural conference in 2011 where we had industry thought leaders, 175 attendees, numerous speakers, hands-on labs and 24 exhibitors. The exhibitors were displaying commercially available MTConnect-enabled products and giving demonstrations of MTConnect applications in action, some of them for the first time ever.

MTConnect is a true game changer that is revolutionizing manufacturing. [MC]2 2013 will have business and technical content to suit everyone’s needs.

Who Should Attend [MC]2 2013?
  • End Users – shop owners, plant managers and anyone in manufacturing interested in improving productivity
  • Industry thought leaders
  • MTConnect® Institute Participants
  • Equipment Suppliers
  • Students
  • Professors
  • Software Developers
  • Distributors
  • ISVs
  • Integrators
  • Consultants
  • Anyone wanting to learn more about MTConnect
As we all know, technology is a means to an ends and not an end in itself. MTConnect is a set of open, royalty-free standards intended to foster greater interoperability between controls, devices and software applications by publishing data over networks using the Internet Protocol. MTConnect is becoming the de facto standard for manufacturing connectivity. The most obvious application of MTConnect is to connect the shop floor to monitoring applications. It is not unusual for companies that enable their shop floor with MTConnect to see an ROI in months and not years. It is also not unusual for those same companies to integrate the shop floor with the rest of the manufacturing enterprise to have further productivity gains. At [MC]2 2013 you will meet people from the shops and plants who have done this as well as the companies who sell MTConnect-enabled equipment and solutions.
There is a sea change happening with manufacturing and MTConnect is at the epicenter of this technology disruption. You cannot manage what you cannot measure and MTConnect provides the plug-n-play mechanism to get real time data off the shop or plant floor so it can be managed effectively. There are many manufacturing conferences to attend each, IMTS being the granddaddy of them all in even numbered years. IMTS is in the “change your schedule to be there” category of trade shows. [MC]2 2013 is in the same category for conferences that you absolutely should attend.
If you are interested in [MC]2 2013, everyone in manufacturing should be interested, then please go to the [MC]2 2013 homepage and register today!

 If you are not sure about attending and have questions, please drop me at note at and I will be happy to answer any of your questions regarding [MC]2 2013. [MC]2 2013 is a CAN’T-MISS event of the year!

Sunday, January 13, 2013

2014 Corvette Stingray Announced! Codename C7

All I can say is very bold!  Chevrolet just introduced the new 2014 Corvette Stingray at 6pm Central in Detroit tonight.

That Chevrolet brought back the name Stingray is pretty impressive as stated at the National Corvette Museum on the C7.
“Stingray is one of the hallowed names in automotive history,” said Ed Welburn, GM vice president of global design. “We knew we couldn’t use the Stingray name unless the new car truly lived up to the legacy. The result is a new Corvette Stingray that breaks from tradition, while remaining instantly recognizable as a Corvette the world over.”
The article goes on to point out:
“Like the ’63 Sting Ray, the best Corvettes embodied performance leadership, delivering cutting-edge technologies, breathtaking design and awe-inspiring driving experiences,” said General Motors North America President Mark Reuss. “The all-new Corvette goes farther than ever, thanks to today’s advancements in design, technology and engineering.”

The all-new Corvette Stingray shares only two parts with the previous generation Corvette. It incorporates an all-new frame structure and chassis, a new powertrain and supporting technologies, as well as completely new exterior and interior designs. Highlights include:
  • An interior that includes real carbon fiber, aluminum and hand-wrapped leather materials, two new seat choices – each featuring a lightweight magnesium frame for exceptional support – and dual eight-inch configurable driver/infotainment screens
  • Advanced driver technologies, including a five-position Drive Mode Selector that tailors 12 vehicle attributes to the fit the driver’s environment and a new seven-speed manual transmission with Active Rev Matching that anticipates gear selections and matches engine speed for perfect shifts every time
  • An all-new 6.2L LT1 V-8 engine combines advanced technologies, including direct injection, Active Fuel Management, continuously variable valve timing and an advanced combustion system that delivers more power while using less fuel
  • Lightweight materials, including a carbon fiber hood and removable roof panel; composite fenders, doors and rear quarter panels; carbon-nano composite underbody panels and a new aluminum frame help shift weight rearward for an optimal 50/50 weight balance that supports a world-class power-to-weight ratio
  • A sculptured exterior features advanced high-intensity discharge and light-emitting diode lighting and racing-proven aerodynamics that balance low drag for efficiency and performance elements for improved stability and track capability
  • Track-capable Z51 Performance Package including: an electronic limited-slip differential, dry-sump oiling system, integral brake, differential and transmission cooling, as well as a unique aero package that further improves high-speed stability.
 The performance numbers look pretty impressive as well:
"The 2014 Corvette Stingray is the most powerful standard model ever, with an estimated 450 horsepower (335 kW) and 450 lb.-ft. of torque (610 Nm). It is also the most capable standard model ever, able to accelerate from 0-60 in less than four seconds and achieve more than 1g in cornering grip. It is expected to be the most fuel-efficient Corvette, exceeding the EPA-estimated 26 mpg of the current model. "
The best set of hi-res and complete photos are here at Corvette Forum in the C7 section.

I really like everything about the car, but the tail lights are a little Camaro looking to me.  I am looking forward to checking it out live.  I would never buy a 1.0 version of any vehicle though.  Hopefully this will be a big seller for Chevrolet.

The Absolute Easiest Way To Move Your iPhone iTunes Library [From/To] a PC [To/From] A Mac

Here is the absolute easiest way to move an iPhone that is syncing from a Windows PC (XP in this example) to a Mac (this works as well if you do it from a Mac to a PC)  (I know, I personally did this)

First a story on how I got here :-)

I had not done this in awhile, so I did the usual google for the answer and found the typical 15,897,325 hits on the right way to do this.  Since I had AppleCare,  I thought I would just go to Apple Support and have them send me the link.  Right.....   What I was doing was very, very straightforward and frequent event, or so I thought.  I had an old Windows XP box that runs my sprinkler system (don't ask) and was the place where I connected all my devices for syncing including my iPod, iTouch and new iPhone 5.  

I bought a Mac mini with 16GB of RAM and a 1TB hard drive last week (which I love) , so I naturally I wanted to move all those devices over to this new Mac mini.  I went through Apple Care Hell!  The conversation was always the same with the first eight Apple employees I spoke with:

Me:   "I have this old Windows XP box that I used for my iPod, iTouch and new iPhone 5.  I simply want to move those devices over to my new Mac mini, can you send me the link as I can not find it on your Apple Support pages.  Just send me the link so I can do it the most efficient way possible the first time."

Apple Care:  Each of the first 8 Apple Care employees I spoke with basically said the same thing, "You know what Dave, I am not familiar with that, you need to speak to the [insert group they are not currently part of here]

  • Mac mini Group
  • iTunes Group
  • iTouch Group
  • iPod Group
  • iPhone Group
  • Desktop Group
  • Mac OS X Group
  • Applications Group
I kid you not.  Or, they gave me half baked advice that did not work.  Or, they asked me inane questions like, "are you interested in keeping what you have?"    No, I want to lose everything that I paid for and buy it again was what I wanted to say.  What part of I want to keep everything was so hard to grasp?

After person number 4 (I was feeling unusually patient) I started to press them on if they had ACTUALLY DONE THIS.  If the answer was no, the I asked to be transferred.   My second person in Advanced Support gives me WRONG instructions and then asks, "can we call you back to see how it went?"   Sure, I tell them, call me tomorrow.

Tomorrow comes.  The 9th person calls.  I tell them what the 8th person says and they say, "yeah, they gave you bad advice Dave, let me tell how to do this."  At this point I am livid.   I then go through the entire history and ask the person for their qualifications.  25 years in the computer industry, four at Apple and they have done this countless times.  Great, I tell them.  Finally a competent Apple Care Support employee!

Below are the instructions from Apple Care person #9 with my additional notes.   His name was Gary and he was great.  He was very nice and apologized for the other 8 Apple Care Support employees.  I like Apple, but this experience was absolutely ridiculous!  Apple sent me their, "How did we do?" survey.   Really Apple?   Your data shows that your customer went through nine calls and you are asking how did it go?  Take a wild guess Tim Cook.

Anyway, below absolutely works to move your iPhone from a Windows XP box to a new Mac because I did it:
  1. goto Windows XP box
  2. Startup iTunes and go into File-->Library-->Consolidate
    • this will consolidate EVERYTHING including your CDs that you moved over to this system  - this step is KEY!
    • this might take a few seconds to a few minutes depending on the amount of CDs you have that you moved over and did not buy from iTunes
  3. You need to copy the ENTIRE folder on the XP box that is (typically) in My Documents/My Music/iTunes to a drive, USB or network location so it can be copied into your home directory called Music on the new Mac.  Below is from Apple Support:

    • Mac OS X: /Users/username/Music/iTunes/
    • Windows XP: C:\Documents and Settings\username\My Documents\My Music\iTunes\
    • Windows Vista: C:\Users\username\Music\iTunes\
    • Windows 7: C:\Users\username\My Music\iTunes\
    • Windows 8: C:\Users\username\My Music\iTunes\
     See What are the iTunes Library files? for more information.
    About the iTunes Media folder

    Note: You may have an "iTunes Music" folder instead of an iTunes Media folder.
    By default, your iTunes Media folder is located within your iTunes folder and it contains all your media files including:
  1. goto the Mac
  2. startup iTunes
  3. login to iTunes
  4. authorize this computer in iTunes
  5. quit iTunes and make sure iTunes is not running by doing the [apple key] Q  to get it completely out of the process table - this is important you can verify it is not running by looking at your Activity Monitor and look for iTunes running.  Do not worry if you iTunes Helper, as that is always running and is ok to run during this process.
  6. in a terminal window on the Mac (yes, this is for geeks :-)
  • cd ~Music    (Note: this is Music directory in your home folder, NOT iTunes Music  Yes, this is counter-intuitive
  • mv iTunes iTunes.ORIG
  • cp the iTunes directory above to the ~/Music on your Mac    (I had to do this over the net since it was 47GB in size and I did not feel like cleaning things up, nor did I have a big enough USB drive nor did I have an external hard drive lining around
       If you are not a geek and do not use terminal window on Mac

  • Start up Finder
  • click on the Music directory in your home folder
  • rename iTunes to iTunes.ORIG or something else beside iTunes
  • copy that Folder (which will have a number of Folders and files in it) from whatever device you used in step 3 above to the Music directory aka Folder 
    • When you have completed this, you should be able to click on your Music folder and see iTunes.  When you click on iTunes you should see a variety of folders and files such as:

      Album Artwork                         iTunes Library.itl
      Previous iTunes Libraries           iTunes Music
      Temp File.tmp                          iTunes Music Library.xml
      iTunes Library Extras.itdb          sentinel
      iTunes Library Genius.itdb

      Don't worry if it does not match directly, the point is most of these files will be there.
  1. restart iTunes on your Mac and it SHOULD just find everything.  If you get a strange error (for example, "no pairing record for iPhone), then the best cure is to reboot your system and go back into iTunes).  You will receive the following:

    • Updating iTunes Library
    • it will ask you to authorize non-iTunes accounts like Audible
      • The trick here was that Audible requires the Amazon login/password even though it specifically states it wants the Audible login/password.  I called Audible and Amazon owns Audible, so Amazon is considered the Audible account for iTunes.  If you try to use your Audible only account, it will fail.
    • this is a good time to setup iCloud if you have not and want to.
    • goto iTunes-->Store-->Preferences-->Automatic Downloads and select Music, Apps and Books
    • on your iPhone, goto Settings-->iTunes & App Store -->Automatic Downloads and select Music and Apps
      • If you have an iPhone 5 and the unlimited data option, you might want to also turn on Use Cellular Data because of the speed of LTE/4G
      • iTunes match stores all of your music (copied over from CDs to your library) in the cloud, but currently costs $24.99 a year to store it in the cloud to have it available on any device
    • If you want to import your photos in, the first time you plugin your iPhone into your Mac and will ask you to import them in.  Obviously this will take as long as necessary for the amount of photos that you have.
    • After everything is up fine, you can go ahead and remove the iTunes.orig directory/folder to save space.  One could argue you could have deleted it right away, but that is a topic for a different discussion :-)
  2. Go deauthorize your old Windows XP box

    You should now be good to go with using your iPhone on your new Mac system!