DeepDream images

May 26, 2021

These images were generated using Alexander Mordvintsev’s simplified implementation of his DeepDream algorithm on GitHub. This uses Google’s neural net architecture called Inception to modify images in a way that amplifies areas that vaguely resemble something that matches a known pattern.

Self-directed online education

May 25, 2021

Would you like to expand your education without having to sit in an expensive college classroom?

If you feel motivated to pursue self-directed education and you don’t need official college documentation for your efforts, then this article is for you.

This article describes how you can use free online resources to enrich your education in almost any subject.

Types of media

The modern world has plenty of online source material for your self-education. For certain topics, you might want to pay money to get the very highest quality educational materials. But the internet is awash in all the free resources you need to learn almost any subject.

Why not just pay for an online course? By paying for educational materials, you may feel motivated to stick with the program to get your money’s worth. If you lack self-discipline, then you might find value in buying some motivation. On the other hand, if you pay for educational material, then you may feel obligated to stick with that curriculum even if it turns out to be the wrong education level for you. When using free resources, you may feel more free to abandon an unproductive course of study and redirect your efforts to something more enjoyable and productive.

If you’re a visual learner, start with YouTube. Over 500 hours of video gets uploaded to YouTube every minute, some of which is produced by reputable colleges and universities. There are thousands of graduate students around the world who derive their own personal benefits from sharing what they know with you, and some who actually make their living at it.

If you’re an audio learner, you can find podcasts on any subject. Sometimes you can use a YouTube educational video like a podcast. If the video is nothing more than one or more experts sitting around a table discussing a topic, then you can set your video viewer’s bit rate to something very low to conserve bandwidth and just listen to the audio.

If you learn by reading, you can find textbooks, journal articles, and blogs on any topic. Much educational material is in PDF format, so find a document reader that is easy to use for PDF files and get familiar with it. Learn how to download PDF files for offline reading. Learn how to organize your PDF files in a folder structure so you can find what you’ve downloaded.


It’s hard to be serious about learning when you’re using a tiny mobile device. Use a laptop or desktop computer with a real keyboard and plenty of screen real estate. You need enough screen space for your documents, videos, notes, and web searcher. Attach a second monitor if you can.

There is no need to turn off all social media while studying at home. Just choose what social media to enable while studying. With a bit of research, you can find fellow students to connect with. Or start your own social media channel to engage with other students studying the same topics.

Get very acquainted with your web searcher

A web searcher is your friend. Choose one and learn its features. At the time of this writing, Google is the most popular web search engine in the Western world and it works well for exploring educational resources.

Search for your topic of interest. If the results are overwhelming, use the web search filters to limit your search to a recent time frame, such as the past year.

You can also limit your search to specific web domains. For example, if you’re interested in learning about space exploration, you can add the filter “” to your search to limit your search to NASA’s web domain.

You can also limit your search to specific types of media. If you’re a visual person, you can filter your search to see only videos. Or you can add a filter such as “” to limit your search to a specific video host platform. If you prefer to read PDF documents in a reader, you can add “filetype:pdf” to find PDF files or use the searcher’s “Advanced” search interface to specify a file type.

When your search produces many irrelevant results and it seems that your searcher is ignoring your search terms, put your search terms inside quotation marks.

Start anywhere

When you’re in a college classroom surrounded by students and teachers, it makes sense to stay with the curriculum to the final exam. But when self-educating with no guide to hold your hand, you will have to forge your own path through the forest. When you encounter obstacles, you’ll need to be flexible enough to find a detour or a whole new path. But no matter what may happen, the first step on the journey is the first step.

Start anywhere. Select a book, article, video, or podcast and consume it. Take it in — as much as feels comfortable — and let it digest for a while.

Note taking and self exams

There are several ways to help your brain retain the information it learns. One way is to repeat what you’ve learned by taking notes. Don’t just transcribe what you read using the same words. Write a description of what you learned as if it you were explaining it to someone else in your own words.

You can retain information by discussing it with others. Tell your friends, family members, or pets all about the things you learned.

Notes can be recorded in any form you feel comfortable with. If you keep notes on your computer in a text file or in a note-taking app, you can search them for words and phrases. You can create your own study aids with flash card apps. If you’re feeling nerdy, find a mind mapping app and create artful pages of what you’ve learned.

One of the most powerful ways to retain information in the long term is to try to recall things you have learned but partially forgotten. As you are taking notes along the way, put some of your notes in the form of questions. Then later, review your notes and see if you can answer your own questions. Optimal learning happens when your brain has to struggle a little bit to recall the full answer.


At the very moment you encounter something confusing — stop. If unchecked, confusion can grow like a tumbling snowball. When the material no longer makes sense, learning is no longer fun. The moment you feel confused, find some way to proceed without the confusion. You will continue to learn as long as it’s fun.

Often this means simply opening a web search window and searching for definitions or discussions about a word or phrase. Other times it means putting aside the material you were studying in order to learn about an underlying concept and take a substantial detour through a different part of the forest.

Every topic worth learning is built on underlying knowledge that you may or may not already have. The optimal education level for you is where some of the material is new to you, some of it you already know, and a bit of it assumes you know something you don’t already know but you can look it up and learn it along the way.

If your material assumes too much about your background knowledge and you feel discouraged, then set it aside. Find a different line of inquiry and different learning material that will give you the background you need. Perhaps in a month or a year you can revisit that material that you once found discouraging and find that it’s easier to understand.

Have fun

It feels good to exercise your brain and to learn about the amazing world we live in. Pursue subjects that you find meaningful and satisfying. Learn from your fellow learners, and if you’re so inclined, share with others what you have learned.

Evolution: a simulation

December 14, 2020

This is a video report of a software project that created the conditions for evolution in an attempt to learn something about how evolution works in nature. This is for the programmer looking for ideas for interdisciplinary programming projects, or for anyone interested in how evolution and natural selection work. 56 mins. It’s available on YouTube and Vimeo:



Linux Mint 20/Xfce boots with no desktop icons or background

September 21, 2020

Symptom: Occasionally Linux Mint 20 with Xfce boots up with no desktop icons and no background. The operating system works, but you have to use means other than the usual desktop icons to invoke programs.

Solution: On this computer, we can correct the problem if we invoke a terminal (with ctrl-alt-T or ctrl-alt-F2), delete the contents of ~/.cache/sessions/, then reboot.

Leave a comment if you have an explanation why this problem occurs or why this solution works.

Linux Mint 20 runs on X570 Aorus Elite motherboard

June 22, 2020

Linux Mint 20 Beta is performing surprisingly well on a Gigabyte Aorus Elite X570 motherboard. A Recommended combination.

The components that are working include: Ryzen 9 3900X, 32GB of DDR4-3600 RAM, Samsung 970 EVO NVMe M.2 SSD, Samsung 860 EVO SATA III SSD, USB, gigabit Ethernet, Nvidia RTX-2070 Super. This is an EFI installation.

XMP must be enabled in the BIOS to get the full rated speed of Corsair LPX DDR4-3600 RAM.

CPU and Nvidia temperature sensors work.

Virtualization for Virtualbox works after enabling SVM in the BIOS.

I did not test on-board audio because I use simple USB audio adapter instead, which is well-supported by Linux. Jackd2 works.

(Sorry, comments disabled because of spammers. Feel free to contact me for discussion.)

How we got involved making word search puzzles

May 28, 2020

A colleague gave us a $100 gift certificate for Digital Ocean, provider of cloud computing and storage. The certificate was good for 60 days — use it or lose it.

Our first use of the gift certificate was to set up a virtual server for some of my wife’s domains. That server has been humming along nicely, serving six domains, two of which are WordPress sites. That cost only $7 per month, so we still had a large balance on the gift certificate. We’ll continue paying for that server even after the gift certificate expires.

Next we created another virtual server and installed an open-source photo organizing application, but it was so confusing to use that we deleted that server after just one day.

We created another virtual server and installed video conferencing software for my wife to use for business purposes, but within ten minutes it became clear that it didn’t meet her needs, so we deleted that server.

We only had a few weeks left to think of some way to use the rest of our $100 cloud computing gift certificate.

Several years ago I experimented with algorithms to create word search puzzles. They required a lot of CPU resources back then, so I thought I’d try making a large enough puzzle to keep a server busy for a while. Perhaps we could make a huge novelty puzzle that we could sell.

I extracted a vocabulary list of Shakespeare’s works from and discovered that it only took a few minutes for my laptop to generate a puzzle from those 26,000 words without any additional CPU resources. My wife converted the puzzle into a marketable poster, I made a video advertisement for it, and it’s now available for sale on

We still had time left on that Digital Ocean gift certificate. I knew that my algorithm for generating word puzzles gets exponentially slower for longer word lists, so I thought we might keep some servers busy if we just had enough words. I found a huge list of 163,000 city and place names at, and that did take a few hours of CPU time to create a puzzle.

We had up to three Digital Ocean servers simultaneously generating puzzles from the list of city and place names. Each server tried to fit the words into a different size of letter grid. Each attempt took about seven hours; sometimes the algorithm finished, other times it aborted after failing to fit all the words.

In the end, it was my own laptop that succeeded in fitting all the words into the smallest size letter grid, so we didn’t use the results from the cloud servers after all.

We did, however, end up with what we think is the world’s largest word search puzzle.

My wonderful wife converted the raw text file of letters into a printable poster. Together we wrote an article about how we made the puzzle. I created a PDF of the article using LaTex and she created a pretty WordPress page from that. Together we printed the puzzle on letter-size sheets and taped them to a wall.

She liked the idea of applying to the Guinness Book of World Records, so we’re pursuing that, a process that will span several months.

We still have a balance of $83.90 on our Digital Ocean gift certificate that will expire in one week, and no more ideas on how to spend it.

And that’s the story of how we got involved in word puzzles.

Triggering Alexa from TV sound

May 13, 2020

There’s a rumor on the internet that Alexa ignores commands if it hears audio that is missing frequencies between 3000 and 6000 Hertz. That’s how TV commercials can say “Alexa” without triggering the Alexa devices in the room. So I fact-checked it.

I recorded my voice saying “Alexa, what is the date today?” and made two copies, one full-spectrum and one with frequencies between 3000 and 6000 Hz removed. Below is the frequency spectrum for each file, and the audio clips are attached.

I played each audio clip using an external speaker about five feet from our Alexa device.

Results: Our Alexa device responded to both clips. The rumor is unconfirmed.

The WAV audio clips can be downloaded from here and here.

The corresponding spectra are:

Installing Xubuntu 16.04 on a Sager NP8952 laptop (Clevo P950HR)

November 25, 2017

Here are some notes for anyone attempting to install Xubuntu 16.04 on a Sager NP8952 laptop (Clevo P950HR). Most things work well enough. The initial installation onto the primary SSD along side Windows 10 was uneventful, from a live USB created with unetbootin.

System components:

CPU: Intel Kaby Lake i7-7700HQ
GPU: GTX 1070 (8GB) MAX-Q, with Optimus
Primary drive: WD M.2 SSD, with Windows 10 preinstalled
Wireless: Intel AC8265
Audio: Intel HD + Sound BlasterX

Here is the status so far:

Bluetooth – works.

Camera – untested.

conky display

Dave’s conky display, Xubuntu, Sager NP8952 laptop

Card reader – untested

CPU frequency scaling – seems to work with Intel p-state driver after some fiddling. There were times when the driver unnecessarily kept the CPU frequency at maximum, so I tried a variety of fixes including installing and configuring laptop-mode-tools, xfce4-indicator-plugin, cpufrequtils, and perhaps others. Not using cpufreqd, nor tlp. cpufrequtils is currently disabled in /etc/init.d/cpufrequtils. Frequency scaling seems to be working now and I’m no longer sure which tweaks were necessary.

External monitor – works with HDMI.

Fingerprint reader – untested.

Keyboard backlight – permanently on, steady blue, no way to control it.

Keyboard hotkeys – some work: screen brightness, volume, suspend, external monitor, and others.

Nvidia proprietary driver – works (384.90).

Shutdown – (1) use “systemctl edit cups-browsed.service” to reduce the CUPS timeout to a few seconds as described in; (2) add acpi=force to linux command line to allow shutdown to finish.

Sleep/restore – the headphone jack is inoperative after suspend/restore.

Sound – (1) the speakers were muted at first: use alsamixer to unmute the speakers; only need to do this once; (2) the headphone jack is inoperative after suspend/restore.

Touchpad – works.

Wifi – works

You can get a copy of my conkyrc file here. Just rename it to .conkyrc.

Announcing neural2d, a neural net optimized for image processing

November 24, 2014
Neural2d is an open-source neural net simulator with features for image processing.


Video introduction (YouTube, 11 min.):
Landing page with links:


✔ Optimized for 2D image data — input data can be read from .bmp image files
✔ Neuron layers can be abstracted as 1D or 2D arrangements of neurons
✔ Network topology is defined in a text file
✔ Neurons in layers can be fully or sparsely connected
✔ Selectable transfer function per layer
✔ Adjustable or automatic training rate (eta)
✔ Optional momentum (alpha) and regularization (lambda)
✔ Any layer(s) can be configured as convolution filters
✔ Standalone console program
✔ Simple, heavily-commented code, < 3000 lines, suitable for prototyping, learning, and experimentation
✔ Optional web-browser-based GUI controller

Installing Xubuntu 14.04 on a Sager NP8268-S laptop (Clevo P150SM-A)

October 5, 2014

Here are some notes for anyone else attempting to install Xubuntu 14.04 on a Sager NP8268-S laptop (Clevo P150SM-A).

System components:

CPU: Intel i7-4810MQ
GPU: Nvidia GTX 870M
Primary drive: Samsung EVO SSD, with Windows 7 preinstalled
Wireless: Intel AC7260
Audio: Intel HD + Realtec ALC892

The installation along side Windows 7 went fairly smoothly and the end result is a beast of a machine. But there were a few rough spots, documented below.

Continue Reading »

Powered by Wordpress and MySQL. Theme by Shlomi Noach,