Sunday, February 3, 2013

Visiting My Oldest John In San Francisco


Here are some photos of the apartment where John is staying in San Francisco.   I had to wear a Sun Microsystems CTO shirt and bring along my Sun Java leather jacket.  I am having lunch with John at the new Facebook Campus which they purchased from Sun Microsystems on Monday the 4th of February.  John is a Software Engineer at Facebook.


 Dinner at my favorite restaurant in San Francisco - Scoma's




 John in front of his apartment.

Below is John's main room with three bay windows.  It is a great apartment!

Below the photo below of John's bay windows are the views out of John's bay windows - first looking out the left and then on the right.








Above is John's HD tv and the TV stand we built before the Super Bowl.




Above is the view from John's door down his long hallway inside the apartment.


 Above is a view from John's kitchen.


John's bedroom.


John did not have a dresser and had his clothes on the closet floor.  I felt bad for him and bought him a $500 dress that was on sale for $349 at store in Emoryville.  We went to Ikea (my first time there) and I looked at the Ikea furniture and said, "yeah, this is not the quality I was thinking of  and the idea of building this by hand is even less appealing to me, let's find a real furniture store and I will buy you one as a apartment warming gift."  He eventually agreed.  I also paid for air mattress at REI since I would have had to pay for two nights out of my own pocket anyway as I came out here early for an MTInsight meeting on Tuesday.  It was a win/win.


John and I had a few beers and some food at The Chapel Bar in San Francisco.  The bar literally was an old chapel at one point.   We left at half time.






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 MTConnect.org

Below is from:  http://www.vmware.com/support/ws55/doc/ws_net_configurations_common.html

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


#make

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          README.md      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
logger_config
{
    logging_level = debug
    output = cout
}




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


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

ubuntu:/MTConnect_Agent_Simulator_DIR/unix# cp agent.sh agent.sh.ORIG

ubuntu:/MTConnect_Agent_Simulator_DIR/unix# cat agent.sh

#!/bin/sh
#
# 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
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# 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
#
### BEGIN INIT INFO
# 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
### END INIT INFO

# NOTE: I ran this successfully WITHOUT using this schell script, but I did modify in case I need to use it
# I changed below
#
AGENT_DIR=/home/dave/MTConnect_cppagent-version_1.2.0.14_DIR/mtconnect-cppagent-a100593/agent_startup_DIR/
#

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# I changed below
#
DAEMON=$AGENT_DIR/agent
#
#
DAEMON_OPTS="daemonize $AGENT_DIR/agent.cfg"
NAME=Agent
DESC=MTConnectAgent

test -x $DAEMON || exit 0


. /lib/lsb/init-functions

LOGDIR=/var/log/
PIDFILE=/var/run/agent.pid
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
fi

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

DAEMONUSER=si-admin
# 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}'`
    else
        log_failure_msg "The user $DAEMONUSER, required to run $NAME does not exist."
        exit 1
    fi
fi

set -e


running_pid() {
# Check if a given process pid's cmdline matches a given name
    pid=$1
    name=$2
    [ -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
            errcode=$?
        else
echo $DAEMONUSER

# 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
            errcode=$?
        fi
        return $errcode
}

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

        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
                        fi
                fi
        fi
        rm -f $PIDFILE
}


case "$1" in
  start)
        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
        fi
        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
            else
                # It is not running after we did start
                log_end_msg 1
            fi
        else
            # Either we could not start it
            log_end_msg 1
        fi
        ;;
  stop)
        log_daemon_msg "Stopping $DESC" "$NAME"
        if running ; then
            # Only stop the server if we see it running
                        errcode=0
            stop_server || errcode=$?
            log_end_msg $errcode
        else
            # If it's not running don't do anything
            log_progress_msg "apparently not running"
            log_end_msg 0
            exit 0
        fi
        ;;
  force-stop)
        # 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"
                        errcode=0
            force_stop || errcode=$?
            log_end_msg $errcode
        fi
        ;;
  restart|force-reload)
        log_daemon_msg "Restarting $DESC" "$NAME"
                errcode=0
        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
        ;;
  status)

        log_daemon_msg "Checking status of $DESC" "$NAME"
        if running ;  then
            log_progress_msg "running"
            log_end_msg 0
        else
            log_progress_msg "apparently not running"
            log_end_msg 1
            exit 1
        fi
        ;;
  # Use this if the daemon cannot reload
  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
  #reload)
          #
          # 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
                                                                                    #;;

  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|force-stop|restart|force-reload|status}" >&2
        exit 1
        ;;
esac

exit 0


ubuntu:/MTConnect_Agent_Simulator_DIR/agent_startup_DIR# ./agent debug
MTConnect Agent Version 1.2.0.14 - 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 0.0.0.0 7878
Client connected

NOTICE ABOVE: 

   * -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 127.0.0.1:53            0.0.0.0:*               LISTEN      1328/dnsmasq  
tcp        0      0 0.0.0.0:23              0.0.0.0:*               LISTEN      4121/inetd    
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      595/cupsd     
tcp        0      0 0.0.0.0:7878            0.0.0.0:*               LISTEN      3622/ruby     
tcp        0      0 0.0.0.0:5000            0.0.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:

ubuntu:/MTConnect_Agent_
Simulator_DIR/simulator# more start_simulator
#!/bin/sh
#
ruby -v run_scenario.rb -l VMC-3Axis-Log.txt

ubuntu:/MTConnect_Agent_Simulator_DIR/agent_startup_DIR# more start_agent_debug_mode
#!/bin/sh

#
#
./agent debug
    






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


./start_agent_debug_mode
MTConnect Agent Version 1.2.0.14 - 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   MTConnect.org   (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, MTConnect.org, to learn more or MTConnectForum.com 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

Contact:
Contact:
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 www.mtconnectconference.org.


###


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. www.AMTonline.org

###
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 :-)


http://www.wspot.net/sun/goofs/sunclone/GaryNewPoster.jpg

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 www.wspot.net, 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.


GARY GRIMES, FASTEST VICE PRESIDENT ON EARTH, HEADS UP SunCLONETM
 

SunCLONE ONE bio-
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(
"CGTACCGCGCTAATCGTTTCTGAAGCTCGA\
CTGTCTGATGCTCGTAAAGCCGATCTACTAG\
CCGCTAGATAATAGCTAGAAGTTGCAGCTGC\
CGTAAACCATGCTGGTAAGTAGCTAGCATGG\
CTCTCGATAGATCDAVESTINKSACAGTCAA\
CGCTGAATAACAGCATAGCATATTTCACGTA...
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.

JMRI-equipped
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!