Tuesday, December 26, 2017

Things I've worked on in the past

Here's a list of things I've worked on in the past.
I'll add to this as I remember them and have time to add to it.

Spoken Word Recognizer or Altair 8080

In college, my senior project was a spoken word recognizer. It was supposed to recognize spoken words for each of ten numbers: zero through 9. It didn't work. It was programmed on an Altair 8800
(another post about the Altair 8800 computer). The professor who taught the class was the only one who could pull the paper tape through the paper tape reader (it was pulled manually) without getting an error.

Univac in Fortran using Punchcards and later a Teletype

Used punchcards for a FORTRAN class and later as a help desk for students taking Computer Science classes including FORTRAN programming classes that most engineering students were required to take. Also, took several classes to learn languages: COBOL, and SNOBOL.

I then found out that if I asked a teaching assistant for a class, I could be able to work on a teletype
https://en.wikipedia.org/wiki/Teletype_Model_33
When he had the class with me (a one-on-one) it malfunctioned and paper started shooting out the back!  Years later, when I was working in the "real world" I bought one from the local Morris County College when they were getting rid of them. I used it with CompuServe (an early online community before the internet and facebook). The whole house shook when I used it!  It had an acoustic coupler that was used over the phone line.

At home, I worked on hobby computers: Kim-1, RCA VIP

While in college, I bought an 8080 kit. I never had a chance to build it, because I quickly sold it to buy a Kim-1 computer that just had six 8-segment digital displays. I started a company to sell software for it http://oldcomputers.net/kim1.html
I traded it in for an RCA COSMAC VIP (based on 1802 processes)
http://oldcomputers.net/rca-cosmac-vip.html
And then later for an Atari 400 and then traded that for an Atari 800 (which I still have)

IBM-PC XT and AT

Later I bought an IBM PC compatible computer which cost in excess of $1500! That was a lot of money back then.


Military Avionics Software - Embedded software and Computer Engineering


At work, I was developing microprocessor-based solutions for a military subcontractor called Conrac (later Smith industries) for the F/A-18 fighter/attack jet and the AV8B Harrier Jump-Jet on a very large intel development system (one of the following, but I'm not certain which one:  MDS-80, or MDS-800) for the intel 8080 microprocessor. At the time I had either the RCA-VIP, or the Atari 400 or 800 and would tell folks at work that while I was taking months to develop programming code for these microprocessors at work, I had more powerful computers at home!

Atari VCS 2600 Video Games

At one point, while out at a local computer store looking at some add-on parts for my computer hobby, I saw an advertisement to work for a company doing video games. I interviewed and got the job to work on video games for the Atari VCS: http://oldcomputers.net/atari-vcs.html
(see my video games page for more info about the games I worked on)

While there, I worked on toys too, like games for the Etch-a-Sketch Animator 2000. Colleagues of mine worked on the Fisher-Price PXL2000 video camera for children and the video camera inside the Lionel Train - I think called "Railscope")

I worked on a multiyear research project for a Vettest Veterinarian Blood Chemistry Analyzer (which was still being used in 2017 and was a 3.2 Billion dollar product family) for which I was awarded 3 patents (see my patent page for more info about patents I have).


I left there to work for a company where we made even more video games: Imagineering which later became Absolute Entertainment (see my "video games" page for more about that). At that time we didn't have the internet and would send files over a bulletin board system and FTP.

UNIX, Oracle SQL, and Java.

 I worked at a mailing/printing/fullment company called DMS (later merged into Vestcom) on Cadol and a HP-UX system where I learned Oracle, PL-SQL, C, C++, shell scripting, and taught myself Java. It was the beginning of the internet and I told the president that I could make an online ordering system which I did. I also led a large CRM program for Wunderman Cato Johnson for its customer Clairol.

Y2K and several industries


I worked as a solutions consultant for several years for a very large telecommunications company on Y2K as a project/program manager. I moved mostly into Project Management at that point and got my PMP certification. Then, I worked on the first legally binding internet election for the Arizona Democrats with election.com, leading a project for a transportation solution for GOD,  , Shaw carpeting in Dalton Georgia, Lebar Friedman publishers, a pension system for the Associated Federation of Musicians and Employers Pension Fund (AFMEPF),  and led a solution for Hartford Insurance livestock insurance.

Mortgage Industry, IOT, and IBM Watson

I then went to a Mortgage Company as an engagement manager. That company was purchased by IBM when they wanted to get into the mortgage business, but that was just before the 2008 collapse. At IBM, I was able to move to the Watson group as a Program manager. Since I was always keeping involved in technology, I was able to help lead a grassroots group of IBMers who shared information about Internet of Things (IOT). While working with IOT, I was able to speak at an IBM conference about a IOT product I created and also led a hands-on lab at the conference. Back at IBM, I participated in a hackathon where I used Watson. And, I built a TJBOT that used IBM Watson to listen to a users voice, figured out what they were asking, and respond in a spoken voice. I lead several major projects in Watson: one for Credit-Mutuel-CIC in France and another for a very large Telecommunications company.

More Artificial Intelligence

I then worked on a contract for a company doing AI for another very large telecommunications company. Then, I recently went to work for a Human Capital Management and Payroll company leading chatbot projects. I've been able to train AI and work with teams to tune the AI.



Tuesday, November 14, 2017

Notes for Watson and AI Presentation to PMI NJ Chapter

These are some additional notes for the presentation I'm giving to Project Managers gathered at the PMI NJ Chapter meeting on November 14, 2017. See pminj.org for more information.

The Story: Medical Seive


Watson Starting points

Watson starting point: ibm.com/watson
All the Watson services: https://www.ibm.com/watson/products-services/

Explore more here: https://www.ibm.com/watson/aworldwithwatson/ 

https://console.bluemix.net/catalog/?category=watson

13 year old uses Watson
https://www.ibm.com/blogs/watson/2017/07/13-year-old-prodigy-taking-ibm-artificial-intelligence-by-storm/

Is Watson Artificial Intelligence? What is Cognitive Computing?

https://www.ibm.com/cognitive/businesscoach/about-watson/is-cognitive-computing-artificial-intelligence

"A beginner's guide to artificial intelligence, machine learning, and cognitive computing"
https://www.ibm.com/developerworks/library/cc-beginner-guide-machine-learning-ai-cognitive/index.html

IBM Research : Cognitive Computing and AI
http://research.ibm.com/cognitive-computing/

Watson Cognitive Computing: Areas of Application

Watson areas of application: Health, Education, Driving, Banking/Financial, Law, Hospitality, Retail, Customer Care, and more.

Music: https://www.ibm.com/watson/music/


Watson Serves up Cognitive Highlights of US Open Tennis
https://www.ibm.com/blogs/client-voices/watson-serves-cognitive-highlights-us-open/

Listen to Kone Elevators “talk” with Watson : http://machineconversations.kone.com/

Customer Experience: https://www.ibm.com/blogs/watson/2017/02/staples-making-customer-service-easy-watson-conversation/ and https://www.ibm.com/watson/infographic/staples/

Employee Insights: Cognitive Knowledge https://www.ibm.com/watson/stories/woodside.html

Demos, Try It, Play with it!




Analyze your Twitter feed http://findyourwatsontalent.mybluemix.net/ 

Compare two twitter feeds: http://friendme.mybluemix.net/

Play a beat with "RemixIT"
https://www.ibm.com/it-infrastructure/us-en/remix-it-player/

TJBot

https://ibmtjbot.github.io/

http://research.ibm.com/tjbot/

http://henrywill4.blogspot.com/2017/06/tjbot-talks-4.html

More information on Watson


Watson Health:

Study by New York Genome Center and IBM Demonstrates Potential for AI and Whole Genome Sequencing to Scale Access to Precision Medicine
https://www-03.ibm.com/press/us/en/pressrelease/52770.wss

Watson Drug discovery
https://www.ibm.com/watson/health/life-sciences/drug-discovery/
Parkinson's
https://www.ibm.com/thought-leadership/passion-projects/parkinsons-watson-drug-discovery/

Cancer: Breast, Lung, Colon, Rectal and Prostrate soon.  MSK Memorial Sloan Kettering
cut time for clinical trial matching
https://www-03.ibm.com/press/us/en/pressrelease/52502.wss

Curb Substance Abuse Relapse
https://www-03.ibm.com/press/us/en/pressrelease/52371.wss

IBM Research and UC San Diego Collaborate to Advance the Use of Artificial Intelligence for Healthy Living
For aging populations
https://www-03.ibm.com/press/us/en/pressrelease/53185.wss

Watson for Oncology https://www.ibm.com/watson/health/oncology-and-genomics/oncology/ 

Drug discovery https://www.ibm.com/watson/health/life-sciences/drug-discovery/

Health imaging https://www.ibm.com/watson/health/imaging/ 

Watson Data

 Watson Data Platform:
https://www.ibm.com/analytics/us/en/watson-data-platform/

Watson Fashion and Art

https://www.ibm.com/blogs/think/2016/04/watson-and-marchesa/ 
Cognitive Marchesa dress lights up the night
https://www.ibm.com/blogs/internet-of-things/cognitive-marchesa-dress/This dress was lit up with colors by Tweets about the dress using Tone Analyzer.

Watson Music
https://www.ibm.com/watson/music/
 Watson Beat looks at song composition
"Training Watson To Be Your Musical Muse"  https://www.ibm.com/blogs/think/2016/06/training-watson-to-be-your-musical-muse/

IBM and Andrés Cepeda introduce First ‘Cognitive Music’ Project in Latin America
https://www-03.ibm.com/press/us/en/pressrelease/52330.wss
Tone Analyzer to Match sentiment of fans


New Exhibit, “Art with Watson: Hidden Portraits” Spotlights How Cognitive Computing Inspires Creativity
https://www-03.ibm.com/press/us/en/pressrelease/52140.wss

Other Watson Applications

Olli: Artificial Intelligence for the real world, in record time
Self-Driving / Autonomous vehicle
https://www.ibm.com/blogs/internet-of-things/olli-ai/

Crédit Mutuel and IBM Watson Put Technology at the Service of People
https://www-03.ibm.com/press/us/en/pressrelease/52108.wss




AI ETF Fund that uses Watson:
https://seekingalpha.com/article/4124004-new-ai-based-etf-uses-ibms-watson-technology

IBM and Ubisoft® Partner to Bring Voice Command with Watson to Virtual Reality in Star Trek™: Bridge Crew
https://www-03.ibm.com/press/us/en/pressrelease/52347.wss

Watson IoT

In South Africa (where 70% of the remaining world's Rhino population is found, using IoT sensors on other animals (such as Zebras) to thwart the threats of poaching of Rhinos for their prized horns.
https://www-03.ibm.com/press/us/en/pressrelease/53162.wss


Watson Education:

IBM Watson and Sesame Workshop Introduce Intelligent Play and Learning Platform on IBM Cloud
https://www-03.ibm.com/press/us/en/pressrelease/52532.wss

Free IBM Watson Teacher Advisor http://teacheradvisor.org

Watson Videos: 

https://www.ibm.com/watson-analytics

https://www.youtube.com/watch?v=_Xcmh1LQB9I

https://www.youtube.com/watch?v=ZPXCF5e1_HI

https://www.youtube.com/user/IBMWatsonSolutions

AI:

Google AI:
https://www.theverge.com/tldr/2017/7/10/15946542/deepmind-parkour-agent-reinforcement-learning

What's Your opinion on Artificial Intelligence? Space 10 & IKEA ask in an interesting presentation & survey http://doyouspeakhuman.com

Other options besides Watson:

OpenAI: openai.com

Tensor Flow: http://tensorflow.org
Microsoft Azure: 

Deepmind: https://deepmind.com/

What's the difference between Cognitive Computing and AI?
https://www.rtinsights.com/whats-the-difference-between-cognitive-computing-and-ai/

Monday, July 24, 2017

TJBot New Recipe (post #5 about TJBot)

TJBot has learned some new tricks!
 
I loaded a new recipe to show to the Children at the Vacation Bible School (VBS) at Church a few weeks ago! The Children and parents liked meeting TJBot!

 This is all mostly technical stuff for people who ask me questions about how I did it, so if you're not technically minded, you can skip this blog post.

 First, here are the links to previous posts on TJBot:  #1 order parts,  #2 test the hardware, #3 assemble the cardboard , #4 TJBot Talks


One thing I missed in the assembly instructions:
Use a screw to connect the TJBot Arm to the servo, otherwise it will keep falling off! (not mentioned in any of the instructions anywhere)





So, here are a bunch of my notes I took. They are sporadic because I stumbled on them over the course of trying to get this to work. 

I loaded a new recipe:
Recipe for TJdashboard - https://github.com/victordibia/tjdashboard
  
After done loading it, you can retrain Conversation to add more intents. I did this and added a bunch of intents and dialog entries to correspond to the Bible topics of the VBS week.
May need to get a new trial account since there is a limit to the number of services.
 
Booting up TJBot without a monitor and keyboard
I couldn't get auto boot up to work (see links below), so needed to ssh from laptop to get TJBot started, so used these instructions
https://www.raspberrypi.org/blog/use-your-desktop-or-laptop-screen-and-keyboard-with-your-pi/
those instructions are very complicated, so basically I just did the following:
Connect up a cable
arp -a
ssh pi@raspberrypi.local
Then, once connected, modify the wpa_supplicant.conf file for adding new wireless SSIDs and pwds
https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md
http://weworkweplay.com/play/automatically-connect-a-raspberry-pi-to-a-wifi-network/
do ifconfig to get IP address (see below), then Then to start TJbot Dashboard:
cd /home/pi/tjdashboard 
and 
sudo node dasshboard.js

Control-C will stop the dashboard program from running on tjbot.  You should do sudo shutdown to gracefully shut down the pi

To select the correct microphone
arecord -l
sudo config.js
modify it for the correct device ID
(can also flip the camera there too)

you may also need to Blacklist audio
https://github.com/ibmtjbot/tjbot/tree/master/recipes/speech_to_text#troubleshoot


to get to the "dashboard" from a browser...
ifconfig to get ip
http://192.168.1.2:8078/
 
Dashboard buttons: 
"See" will take a photo and tell what it sees
Text will take a photo and look for text in the picture that tells a color 
Dance: will dance and wave arm
Wave: will wave arm
LED: to change LED color


Turn "Listening" on and off then it will not respond

Faces: uses local Face detect and will load your picture in dashboard
Sentiment: only if you connect sentiment 

Note that Everything you say is sent to Watson Conversation Service (WCS), but only acted on if an intent is found

Here are some posts I used to try to boot into the dashboard at startup, but I can't get it to work
http://www.instructables.com/id/Nodejs-App-As-a-RPI-Service-boot-at-Startup/
https://raspberrypi.stackexchange.com/questions/44957/running-node-js-with-forever
http://www.linuxcircle.com/2013/12/30/run-nodejs-server-on-boot-with-forever-on-raspberry-pi/
Tried the comment at the beginingof /etc/rc.local:
node /home/pi/tjdashboard/dashboard.js < /dev/null &
It started up, but can't reach the dashboard URL without getting errors
 

Wednesday, July 12, 2017

Does Your Church Assume Folks are Visitors or Regular Attenders?

We've visited many various churches over the years.
We see two main types of communications styles. The styles seem to be based on what they believe about the types of people attending.

There are the Churches who are always Communicating for New People:
Some churches make the assumption that there are New Comers and Visitors. All of their communications are from this viewpoint.
When communications go out from these churches, they mention every single thing that is going on with excitement. They answer the questions of "who, what, where, when, and how" so everyone knows how to be involved. They tells stories of what's been accomplished so the excitement builds.

There are churches who are always communicating to regular attenders
Other churches communicate from the viewpoint that everyone knows everything and everyone. When these communications go out, they assume that you already know what's going on and how to get involved. Not all of the questions you would have are answered.  Sometimes, people who have gone to these churches for a long time don't even know what's going on. After a big event happens, there may not even be any mention of how well it went.

What do you think about this?
Have you experienced the same?






Thursday, June 08, 2017

TJBot Talks! #4



TJBot is Talking! See the video below!


 (Note: I posted a newer post with a new recipe and some pointers, tips, hints: http://henrywill4.blogspot.com/2017/07/tjbot-new-recipe-post-5-about-tjbot.html )

 I continued the work (see prior posts:  #1 order parts,  #2 test the hardware, and #3 assemble the cardboard ) by following this instructable starting at step 4 at the following link:

http://www.instructables.com/id/Build-a-Talking-Robot-With-Watson-and-Raspberry-Pi/

I used terminal on the Mac to ssh into the pi 2 in the TJBot (I think you can use putty on the pc which I understand can be downloaded )

I used the browser my mac (or you can use the pc) to get the credentials from each of the 3 services

To edit the config file I used "sudo nano config.js" you can then move your cursor around with keyboard keys and copy the credentials from the mac (or PC) browser and paste it into the config.js file (using control-C for copy and control-V for paste).

IMPORTANT NOTE: for the service credentials, they may not be presented in the same order, be careful to copy the password to the password entry in the config.js (i messed up because mine were in opposite order, so I was getting errors that Speech to Text STT wasn't working)

For step 6, if you're using ssh, you need the conversation file on your mac (or pc). You can get it from the zip at:
https://github.com/ibmtjbot/tjbot/archive/master.zip

For the workspace ID, I somehow copied the wrong information and pasted it there in the config.js file at first. TJBot was not returning anything to pass to Text to Speech (TTS). I was getting an error that nothing was sent for TJBot to speak. So, I had to go pull that workspace ID again from the conversation tool and put it into the config file. I restarted the conversion.js and TJBot was talking!

Here's a copy of the verbose output to the console that I see when starting up TJBot Conversation:

sudo node conversation.js
verbose: TJBot initializing microphone
verbose: TJBot initializing conversation service
verbose: TJBot initializing speech_to_text service
verbose: TJBot initializing text_to_speech service
info: Hello from TJBot! My name is Watson.
verbose: TJBot library version v1.3.0
You can ask me to introduce myself or tell you a joke.
Try saying, “Watson, please introduce yourself” or “Watson, who are you?”
You can also say, “Watson, tell me a joke!”
verbose: TJBot initializing microphone
info: TJBot heard: Watson who are you
verbose: TJBot response from conversation id xyz Hi, I’m TJBot! :
verbose: TJBot speaking with voice en-US_MichaelVoice
verbose: TJBot speaking: Hi, I’m TJBot!
{ filename: ‘/tmp/tjbot11756-2013-811zkh’,
  gain: 100,
  debug: true,
  player: ‘aplay’,
  device: ‘plughw:0,0’ }

I then went in and modified the conversation training to add information about the local high school where I'm going to demonstrate it today. I added intents for the school and answers (in the dialog) that I pulled from information I found about the school.

It's so great to hear TJBot talk! I hope to set up to move it's arm and change the color of the LED for a Church Vacation Bible School coming up soon. I will probably use the Dashboard recipe for that. So, maybe you'll see another post here about that soon!

(A special tip-of-the-hat and word of thanks to the folks at IBM Research for their help, especially Victor Dibia for his many answers to my questions).

Please comment with your thoughts!


Monday, May 29, 2017

TJBot #3 : Assembling the Cardboard



In the past two posts, I ordered the parts and tested them. for a TJBot that I'm building
In this post, we assembled the cardboard body of TJBot.  My wife helped since she's great at puzzles.

Before you start, we have the following advice:
1. If you ordered a laser cut cardboard like we did, try wiping it off with a cloth or paper towel that is moistened ever so slightly.  We didn't do this and found our hands black after a bit. This is probably residue from the burning of the laser cutting.
2. Have tape and a hobby knife ready.  We found that some pieces were very difficult to pop out of the cardboard and we had to cut them with a knife first.  We also found that just from the normal required bending, one of the bent edges broke.  You may find a straight edge (such as a ruler) may help with the bending.
3.  Keep in mind that you might have to watch the video a few times and rewind it to watch parts over as you go. We found that we had to do this quite often.
4. Make certain that you have all the parts ready because they will be used in the assembly.

It took us about an hour or so to build the body.

To assemble TJBot, we followed the directions in step 3 on this instructable page.
You can also find the video here on YouTube:
https://www.youtube.com/watch?v=bLt3Cf2Ui3o&feature=youtu.be


In the next session, we'll install the software and get TJBot working!
(Click here for the next posting where TJBot talks)

Here are some photos of our assembly in process.

We unfolded the cardboard to have it in the same position as the YouTube video. Read the notes above about what we suggest that you do before you start.

So far, so good!

When folding the top of the head, because it folds in over another side, the cardboard split, but we didn't need to tape this part.

One of these two uprights snapped apart at the bend and we had to tape it back together (my bad)

It still worked find to hold the Raspberry Pi 2 in place

The Camera was a bit tricky
One other thing, we found that TJBot's "Arm" was very tricky to fold. We couldn't get it to be exactly correct when folding the tabs together. And, when we placed it on the servo, it seems that the arm falls off way too easily because the white "wing" or "arm" piece that comes with the servo hardly reaches the servo.  But, it works, so we're happy with the results (which are shown at the top of this blog post).
What do you think?  Doesn't TJBot look great!




Wednesday, May 24, 2017

TJBot #2 - Testing the Parts especially the Hardware



In our last episode (TJBot Episode 1), TJBot was just a bunch of ordered parts. I ordered the parts on April 18,2017 and received them all by May 8, 2017.
Now it's time for the parts to come together and do something.
In this episode, we'll test out the hardware.  (click here to see a future post where TJBot speaks)

1. First, we need to put noobs on the microsd card. The download file and directions are available here.  You can follow the software setup guide on this page.

2.  Connect the hardware according to the diagram on this page (also available here)

3. Connect the camera (this video shows how and shows how to test it too)

4. install the packages on the Pi
I did this by following step 2 on the instructables page which included these steps:
sudo apt-get update

sudo apt-get dist-upgrade

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

sudo apt-get install -y nodejs

sudo apt-get install alsa-base alsa-utils libasound2-dev
5. I followed the steps in the TJBot bootstrap manual steps here, but I skipped the steps that I had done from the instructable above. I also did not do the section titled "Notice about Watson credentials" and I did not do the section titled "Running your first recipe."  I skipped down to the section "Running hardware tests" - I ran the tests and they all worked!

6. I realized that there wasn't a test for the microphone.  Someone at IBM pointed me to this test for the microphone.

So, once all the hardware tests out alright, then we're ready for the next part of the assembly.

In our next episode we'll try to assemble TJBot cardboard and the parts.