Thursday, October 22, 2020

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.

Wednesday, July 08, 2020

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 deep learning. I also copied the material on anomaly detection from my Power Java book that is now discontinued and updated that material. Lastly, I am revisiting how readers install, run, and experiment with the code examples. I am still using maven but I am being more consistent, all of the examples are also installable libraries, and now some of the examples use the libraries developed in other examples.

For fun, I have been buying more material for my Oculus Quest VR device. Favorites include ping pong, racket ball, the Star Wars Darth Vader Immortal 3 volume set, and I enjoy a lot of 3D art that people post.

For exercise I try to hike every morning from 5:30am to about 6:30am (I live in the mountains of Central Arizona and even at high altitude it gets warmer later in the day). My wife and I cancelled our gym memberships so I bought myself some weights that I keep in my home office. I am a huge fan of the Apple Watch and I use it to track health and fitness activities.

I hope that you, dear reader, are doing well in these crazy times we are living in.

Tuesday, February 18, 2020

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:

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:

./ --with-sb-thread --with-sb-core-compression

When I now build my KGCreator application with:

(sb-ext:save-lisp-and-die "KGcreator" :toplevel #'kgcreator :executable t :compression t)

then the size of the standalone executable is reduced from 93MB to 19MB. I don't notice any extra startup time which is important for command line utilities.

Monday, February 10, 2020

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 web
  • Prefer to access the web on an iOS or  Chromebook - probably more secure than a laptop or PC.
  • Logout from web apps like Facebook, LinkedIn, Amazon, Google, Twitter, etc. to avoid active sessions.
  • This takes some time, but on mobile devices, Apple/Windows laptops, etc. turn off tracking on as many apps as possible.

Thursday, January 02, 2020

My hopes and predictions for the next 10 years

Hello everyone,  I wish everyone a happy and healthy new year!

Here are my predictions for the next ten years:

  • Wearable devices like the Apple Watch will become widely used and because of user pushback we will see company’s like Apple, Google, Toshiba, Huawei, Samsung, etc. start to support standards that allow, for example, an Apple Watch to interact with a Samsung TV. Further, I expect a single personal device (watch or phone) to be for most users a connection hub that interacts with public kiosks, displays, input devices, etc.
  • Deep learning architectures and techniques will rapidly improve and will continue to rule the world, at least for a while. I expect at least one new dramatic paradigm shift for AI beyond current deep learning, reinforcement learning, etc. models.
  • The world economies will get hit hard and wealth will be in a larger part measured in terms of ownership of water and food production, manufacturing, technology IP, and hopefully hard assets like gold, silver, and secure cryptocurrencies. I expect most currencies will eventually be backed by about 20% gold and this will enforce some stability and help eliminate wild printing of fiat currencies. I expect SDRs, or something like them, to be the reserve currency. In ten years, I would expect SDRs to be about equally made up of US dollars, Euros, and Chinese currency.
  • Politically, world elites will continue to assume almost total control of news media and governments but they as a group will start to share more resources with highly trained and educated workers and allow the creation of a secure safety net that will provide a safer society because almost all people will have food and shelter needs met (this may take more than ten years). We all have to live on planet earth and everyone’s life improves with fewer wars and higher productivity.