bonus! I put together the finished renders into one video using the video editor (which parallelizes great out of the box). There are some issues with the graph videos being shorter than the others, so I slowed them down.

Day 52: We put some final touches on the code, then started the render for overnight. The render actually finished in a few minutes, but that was without all the intermediate results, which make it take much longer. But tomorrow I'll have some awesome videos of the plots and stuff!

Day 51: I cleaned up the code and merged the video processing code with the rest of the improvements. I also moved it to a git repo (I'm calling it BoggleCV :) gitlab.com/johanvandegriff/Bog And here's a bonus GIF of one of the videos!

Day 50: I used a row and column sum from and a peak finding algorithm from to split up the board into individual letters. Getting closer!

same old manjaro on my laptop, nothing fancy. I guess the only weird thing is that it has a pentium processor and yet it works for my daily driver. Also downloading wikipedia with today

Day 49: We only got a little bit done: implementing a center difference equation. Then we ran into trouble setting up 2 GPU's with Manjaro. We wanted to use the AMD for display and the Nvidia for CUDA processing, but after we installed the Nvidia drivers, it would refuse to display from the AMD card...

Day 48: My friend applied the algorithm to videos, and I fixed some bugs and tweaked the algorithm.

Day 47: We took some more pictures at a different resolution, then added a transform to correct for perspective and copy the board to its own square image.

Day 46: My friend and I started using OpenCV to locate the boggle board in the image. We used HSV to threshold based on the color of the board, then found the contours, approximated the largest contour with 4 lines, and found the intersections of those lines.

Day 45: With dask, I was able to speed up my algorithm by about 25-50% (on 4 cpu cores). Then, I thought of a new algorithm that is an order of magnitude faster (even on 1 cpu core)! It iterates through all the words rather than traversing the board recursively. (Also, missed a few days since I was a bit sick.)

I have not seen it mentioned by @PINE64 or anybody else here, but a few days ago the Brave Heart edition of the sold out. Three thousand units were made available. Now it took a little more time than I would have thought, on the other hand, the PINE64 people were pretty clear that it didn't come with an OS, and that it wasn't intended for end users yet.

I think this is great news, 3,000 people were ready to get one anyway. This bodes well for the next phase!

Me selling paintings I made, boosts help me find clients

So I was recently asked why I prefer to use free and open source software over more conventional and popular proprietary software and services.

A few years ago I was an avid Google user. I was deeply embedded in the Google ecosystem and used their products everywhere. I used Gmail for email, Google Calendar and Contacts for PIM, YouTube for entertainment, Google Newsstand for news, Android for mobile, and Chrome as my web browser.

I would upload all of my family photos to Google Photos and all of my personal documents to Google Drive (which were all in Google Docs format). I used Google Domains to register my domain names for websites where I would keep track of my users using Google Analytics and monetize them using Google AdSense.

I used Google Hangouts (one of Google’s previous messaging plays) to communicate with friends and family and Google Wallet (with debit card) to buy things online and in-store.

My home is covered with Google Homes (1 in my office, 1 in my bedroom, 1 in the main living area) which I would use to play music on my Google Play Music subscription and podcasts from Google Podcasts.

I have easily invested thousands of dollars into my Google account to buy movies, TV shows, apps, and Google hardware devices. This was truly the Google life.

Then one day, I received an email from Google that changed everything.

I nearly had a heart attack, until I saw that the Google account that had been suspended was in fact not my main personal Google account, but a throwaway Gmail account that I created years prior for a project. I hadn’t touched the other account since creation and forgot it existed. Apparently my personal Gmail was listed as the recovery address for the throwaway account and that’s why I received the termination email.

Although I was able to breathe a sigh of relief this time, the email was wake up call. I was forced to critically reevaluate my dependence on a single company for all the tech products and services in my life.

I found myself to be a frog in a heating pot of water and I made the decision that I was going to jump out.

Today there are plenty of lists on the internet providing alternatives to Google services such as this and this. Although the “DeGoogle” movement was still in its infancy when I was making the move.

The first Google service I decided to drop was Gmail, the heart of my online identity. I migrated to Fastmail with my own domain in case I needed to move again (hint: glad I did, now I self host my email). Fastmail also provided calendar and contacts solutions so that took care of leaving Google Calendar and Contacts.

Here are some other alternatives that I moved to:

Gmail → Fastmail → Self-hosted (via Cloudron)
Google Maps → Bing MapsOpenStreetMaps and OsmAnd
Google Docs → Collabora Office (Nextcloud integration) and LibreOffice
Google Play Music → Spotify / PlexSpotify / Jellyfin
Google Play Store (apps) → F-Droid / Aurora Store
Google Android → Lineage OSUbuntu Touch on PinePhone (coming soon?)
Google’s Android Apps → Simple Mobile Tools
Google Hangouts → Matrix and Nextcloud Talk
Google Wallet → PayPal and Cash App

Migrating away from Google was not a fast or easy process. It took years to get where I am now and there are still several Google services that I depend on: YouTube and Google Home.

Eventually, my Google Home’s will grow old and become unsupported at which point hopefully the Mycroft devices have matured and become available for purchase. YouTube may never be replaced (although I do hope for projects like PeerTube to succeed) but I find the compromise of using only one or two Google services to be acceptable.

At this point losing my Google account due to a mistake in their machine learning would largely be inconsequential and my focus has shifted to leaving Amazon which I use for most of my shopping and cloud services.

The reason that I moved to mostly FOSS applications is that it seems to be the only software ecosystem where everything works seamlessly together and I don’t have to cede control to any single company. Alternatively I could have simply split my service usage up evenly across Google, Microsoft, Amazon, and Apple but I don’t feel that they would have worked as nicely together.

Overall I’m very happy with the open source ecosystem. I use Ubuntu with KDE on all of my computers and Android (no GApps) on my mobile phone. I’ve ordered the PinePhone “Brave Heart” and hope to one day be able to use it or one of its successors as a daily driver with Ubuntu Touch or Plasma Mobile.

I don’t want to give the impression that I exclusively use open source software either, I do use a number of proprietary apps including: Sublime Text, Typora, and Cloudron.

Day 44: I took some pictures of the boggle game to use for training for machine learning (more about that later!) I also taught my friend some python basics, and started learning dask.

A true YouTube killer will probably need to be an alternative front end for watching YouTube videos with the added ability to host videos directly as well. that way people could continue to watch youtube channels that have not moved yet but those who have moved or are hosting on both platforms can gain the benefits of the new platform. if the platform had the ability to show local content before youtube content when the content is the same that would be even better.

Day 43: I dealt with some edge cases like "what if 2 people put the same username" and "what happens if you join a game and type some words, but leave before the game ends?"

Privacy shouldn't be a luxury. We’ve joined with @privacyint and over 50 other orgs to ask Google to take action against the exploitative practices of pre-installed apps.