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.

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.

Used punchcards for a fortran class

I then found out that if I asked a teaching assistant for a class, I could be able to work on a teletype
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
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 and started a company to sell software for it
I traded it in for a RCA VIP
And then later for an Atari 400 and then traded that for an Atari 800 (which I still have)

Later I bought an IBM PC compatible computer which costed in excess of $1500 - I have never bought a computer as expensive of that since then!

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!

At one point, while out at a local computer store looking at some add-on parts, I saw an advertisement to work for a company. 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 is still being used in 2017 and is 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 (see my "video games" page for more about that)

I'll try to add more to this later.

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/ 


13 year old uses Watson

Is Watson Artificial Intelligence? What is Cognitive Computing?


"A beginner's guide to artificial intelligence, machine learning, and cognitive computing"

IBM Research : Cognitive Computing and AI

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

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"





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

Watson Drug discovery

Cancer: Breast, Lung, Colon, Rectal and Prostrate soon.  MSK Memorial Sloan Kettering
cut time for clinical trial matching

Curb Substance Abuse Relapse

IBM Research and UC San Diego Collaborate to Advance the Use of Artificial Intelligence for Healthy Living
For aging populations

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:

Watson Fashion and Art

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
 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
Tone Analyzer to Match sentiment of fans

New Exhibit, “Art with Watson: Hidden Portraits” Spotlights How Cognitive Computing Inspires Creativity

Other Watson Applications

Olli: Artificial Intelligence for the real world, in record time
Self-Driving / Autonomous vehicle

Crédit Mutuel and IBM Watson Put Technology at the Service of People

AI ETF Fund that uses Watson:

IBM and Ubisoft® Partner to Bring Voice Command with Watson to Virtual Reality in Star Trek™: Bridge Crew

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.

Watson Education:

IBM Watson and Sesame Workshop Introduce Intelligent Play and Learning Platform on IBM Cloud

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

Watson Videos: 






Google AI:

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?

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
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
do ifconfig to get IP address (see below), then Then to start TJbot Dashboard:
cd /home/pi/tjdashboard 
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

to get to the "dashboard" from a browser...
ifconfig to get ip
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
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:


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:

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:

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.

Monday, May 08, 2017

Watson and Art - Hidden Portraits

IBM had an exhibit at the Cadillac House in New York City. It just ended on May 7th. It was only there for a few days. I wanted to get a chance to see it, so I drove in on Saturday May 6th. 
Note: I am having issues with the videos in this blog post. Come back in a few days to allow me time to figure out what the issue is.
Here is the Cadillac House from across the street. I got there early, so there weren't many people around yet.

Here is the entry to the Cadillac House

There are several of the latest Cadillac models on display.

And, there is a coffee bar

And, some nice places to sit and relax

The cars are quite impressive and displayed well.

I liked the old photos of Cadillacs and this nice table

Turning to the side of the table there was the entrance to the exhibit

The exhibit is titled Hidden Portraits

There was a good explanation of the exhibit at the entrance

And, the required legal information

As you walked in, you saw the center piece. A large white booth with rounded corners and the artwork around it. Each of the pieces of art were created by using Watson to obtain information about the person being depicted.

Paul Rand was one of the persons that the art depicted. Paul Rand is well known and he created some logos for IBM.

It wasn't easy to capture a photo of the artwork with the lighting

Thomas Watson was the First Chairman  CEOs of IBM

This artwork was a slide puzzle

The line started to get longer for Watson. Each person took about 7 minutes to be analyzed by Watson, so I got in line.

Watson Asked about 5 questions. One asked who my childhood best friend was and why I selected them 

At first, I couldn't figure out why the media would stop. Then I realized that it reacted to my movements.

There were mirrors all around, so it was just right for a selfie!

After seeing all 7 pieces, I went back to the Watson Booth and collected the poster of myself that Watson created. 

I walked down to the Hudson River afterwards

I decided to walk over to SoHo and walked right by the Trump SoHo building

I walked by a bakery and got some treats to take back home.

I hope you liked the photos. Please comment!