Posts

My Dad's work with Robert Oppenheimer and Edward Teller

Robert Oppenheimer and Edward Teller facilitated my Dad getting a professorship at UC Berkeley when I was 3 years old. Oppenheimer left Berkeley but Teller was a good friend of my father and I remember him being in our home. Three weeks ago, my wife and I were just leaving to see the new Oppenheimer movie when my Dad called. He mentioned that when I was in grade school he was invited to give a talk at Princeton. After his talk Oppenheimer talked with my Dad and invited him to have dinner at his house. My Dad said Oppenheimer was not well (I think he died of throat cancer soon afterwards) but his wife Kitty carried the conversation. My Dad, Ken Watson, passed away 10 days ago on August 18, 2023.

Time and Attention Fragmentation in Our Digital Lives

  As humans we have evolved over a few million years to be both attentive and reactive to danger, live in social communities, and spend much of our time being in the present moment gathering and eating food and socializing. The behavior of rapidly changing short attention to content on social media, too many good short form things to watch on streaming video entertainment platforms, are all rewiring our brains in an unnatural and unhealthy way. I fight back, but in really simple ways that entail little ceremony: Almost every morning I spend 30 minutes scanning Hacker News (about 10 minutes), Apple News (about 5 minutes), and the remaining time on Twitter and Mastodon finding interesting new (mostly tech) things. I make notes in a temporary Apple Note: links of things I may want to research, try, or simply read that day. I like to get this all done at once, and then not feel like I need to interrupt my activities during the day to “catch up” on what is happening in the world. In a way,

ChatGPT as part of the evolution of programming languages

In the 1940s von Neumann and his colleagues created conceptual models for computer architectures that were oriented toward the engineering problems of building computing devices, and not for making it easier for humans to write programs. The Lambda Calculus and also the design of the Prolog programming language are the first real efforts that I am aware of to place emphasis on how we humans think and solve problems. I  had a thought earlier today that I keep coming back to: there are concise programming languages that can be more difficult to write code with, but once done the code is more valuable because of its conciseness that yields better readability. I have been fascinated by, and use Copilot and ChatGPT to write code and sometimes it works well enough. What will the effects of ChatGPT and future LLMs be on the popularity of niche languages like Prolog and APL? All things considered I would often rather have a concise program in Prolog or a flavor of Lisp than a much larger prog

Elon Musk & Twitter, Tech job market, my writing projects

I find it sad that Musk's purchase of Twitter is turning out so badly. I read that advertisement pre-sales for next year are very low, thus the urgent need to cut expenses. I don't dissagree with Elon Musk's original idea of having an uncensored platform, but the execution is not good. My best wishes to everyone at Twitter (and other tech companies) who have lost their jobs recently. The job market was crazy-good for a few years, and now I expect it to more like after the 2000 dot-com-crash, at least for a few years. I advise people to take a different approach to managing their careers. As fantastic as online (often free) classes are for teaching useful stuff like machine learning, front end development, etc., this has also greatly expanded the global talent pool. Now more than ever, I advise learning through doing your own projects. I have literally done this myself for the last 40 years: I spend my own time experimenting with tech that both fascinates me and might be u

Not really retired 😀

I read with some humor my last blog post from 6 months ago, saying that I was retired. Ha! As I mentioned 6 months ago, my wife has chronic health problems but those have stabalized, and life is now fairly good. I did start a very much part time (15 hours/week) advisory gig with Mind AI about 4 months ago. Enjoyable work on an interesting product. I am not performing any substantial development work, rather spending most of my time as an architect and advisor. I am 71 years old, and leaving heavy lifting development work to younger and more energetic co-workers is for the best. I have a huge backlog of writing projects, mostly on hold for the moment because of my work at Mind AI: A new book "Artificial Intelligence Programming in Python: Exploring the Boundaries of Deep Learning, Symbolic AI, and Knowledge Representation". Edits for my Common Lisp book, adding new examples. Ideas and some new code for my Swift AI book. For the last year I have been basically giving a

I retired yesterday: my list of things to do in retirement

What does an intelligent person do in retirement? That is a question of individual tastes but I will share my list of 20 things. Yesterday was my last day working on a recommendation model at Babylist. Babylist is a great company to work for but I decided to retire in order to spend more time helping my wife who now has chronic health problems. When I write books, my wife enjoys editing my work so we will keep doing that. I also plan on being a gentleman computer scientist by working on open source deep learning applications and semantic web/linked data tools and applications. I may end up not doing all of these things, but generally I plan on spending more time on current interests and starting some new hobbies: Retirement Activities Join an Internet Chess club **DONE** Get a fishing license Video Games Improve my cooking/recipe web site Reading Release new editions for my 3 most popular eBooks Practice guitar, Native American Flute, and didgeridoo Eco-b

My productivity hacks

Like most people, there are many more things that I would like to do than I have time to do. I believe that learning to identify action items that simply should not be done is valuable, but not easy to do. I am mildly attention deficit in the sense that I can only think about or attend to one thing at a time. For a computer scientist, this has been a super power, but is personally inconvenient. I keep 3 TODO lists: TODO high priority - I tend to have 1 to 3 things on this list. I time box my activities so this list is the actions that I will rotate through. I usually work in 60 to 90 minute sprints, but for deep coding this may be 3 or 4 hours. TODO open - everything that I would like to do, but a lot of stuff on this list gets deleted with no further effort (the all important decisions on what not to do). TODO done - instead of deleting completed actions on "TODO high priority" I cut the text and paste the action text to the top of this list. I really like the F

DBPedia Natural Language Interface Using Huggingface Transformer

I prototyped a simple natural language question answering demo in about 90 minutes. I accept a query like “where does Bill Gates work?”, find the likely URI for Bill Gates, collect some comment text for this DBPedia entity, and then pass the original query to the transformer model with the “context” being the comment text collected via a SPARQL query. I run this on Google Colab. Note that I saved my Jupyter Notebook as a python file that is in the listing below. Note the use of ! to run shell commands (e.g., !pip install transformers). # -*- coding: utf-8 -*- """DbPedia QA system.ipynb Automatically generated by Colaboratory. Original file is located at      https://colab.research.google.com/drive/1FX-0eizj2vayXsqfSB2ONuJYG8BaYpGO **DBPedia Question Answering System** Copyright 2021 Mark Watson. All rights reserved. License: Apache 2 """ !pip install transformers !pip install SPARQLWrapper from transformers import pipeline qa = pipeli

I have a new job helping to build a Knowledge Graph at Olive AI

 I retired (my last job was Master Software Engineer and the manager of a deep learning team at Capital One) a year ago April and was enjoying time with friends and family, doing personal research in hybrid AI, lots of writing, and volunteering at our local food bank. I stopped my volunteer work with COVID-19 and welcomed the opportunity last month to start work at Olive AI  working on a very strong Knowledge Graph team. I believe in their mission and the work and the people are great! It is refreshing to leave the deep learning field, at least for a while. My heart is in developing stronger AI that can explain its actions and adapt flexibly to help people in their lives. I always take a humans-first stand on technology. AI systems should help us get our work done efficiently and remove tedium, allow us more time for creative activities, and generally enjoy our own humanity.

I have tried to take advantage of extra time during the COVID-19 pandemic

My wife Carol and I have been practicing social distancing and wearing masks for shopping for over 5 months now. Welcome to the new normal and a crazy world in which entertaining and seeing friends is done by meeting in people's yards and everyone bringing their own "meal in a bag." I enjoy writing so I have been updating my recent books, starting with Loving Common Lisp, or the Savvy Programmer's Secret Weapon and  A Lisp Programmer Living in Python-Land: The Hy Programming Language . These are free to read online and licensed with Creative Commons Share and Share Alike, No Commercial Reuse, so you can also find copies on the web (hopefully up to date copies!). Last month I started a much larger project: I have not updated my book Practical Artificial Intelligence Programming With Java since the fourth edition was published in 2013. I have discarded a lot of older material like exert systems, and have three new chapters on the semantic web and also a new chapter on

Custom built SBCL and using spaCy and TensorFlow in Common Lisp

Here are some of my of my recent notes that might save you some time, or teach you a new trick. I have had good results using the py4cl library if I wrap API calls to TensorFlow or spaCy in a short Python library that calls Python libraries and returns results in simple types like strings and dictionaries. I just committed a complete example (Python library and Common Lisp client code) to the public repo for my book  Loving Common Lisp, or the Savvy Programmer's Secret Weapon that will be added to the next edition of my book. Here is a link to the subdirectory with this new example in my repo: https://github.com/mark-watson/loving-common-lisp/tree/master/src/spacy I frequently make standalone executable programs using SBCL and I just noticed a great tip from  Zach Beane for compressing the size of standalone executables. Start with rebuilding SBCL from source to add the compression option; get the source code and: ./make.sh --with-sb-thread --with-sb-core-compression sh in

Protecting oneself from surveillance capitalism

As an author I find occasional use of Facebook and Twitter to be useful for “broadcasting” notifications of my new books, open source projects, etc. I also find gmail to be useful for some types of email. Still, I do like to take a few easy steps to push back a little against the free use of my web behavioral data to profit corporations who I don’t do business with (and those I do): Use ProtonMail as my primary email Use Firefox on my Linux and macOS laptops with individual containers for Google, FaceBook, etc. On iOS devices, favor browsing with private tabs. Use a VPN when I am traveling and when I  need to use public WiFi  Limit use of my gmail address to a backup email and as a junk email address. For online purchases from Amazon, etc. use a secure email service that does not use the contents of your email to market to you and as data to sell to 3rd parties. Frequently delete all cookies from web browsers that you use. Use private browsing windows for routine use of the