Creating an ETL for Apple iMessages: A Comprehensive Guide

Backing up iMessages has always been a challenge. Apple offers iCloud and its own opaque backup formats, but neither solution is ideal for those who need transparency and flexibility. While various tools exist to read the chat database, I found imessage-exporter to be the most feature-rich and complete solution. Here’s a detailed look at how I developed an ETL (Extract, Transform, Load) process to efficiently back up my Apple iMessages.

(more…)

Escaping the Google Photos Ecosystem: A Journey to Self-Hosted Photo Management

In the early days of cloud photo storage, Google Photos (and its predecessor, Picasa) seemed like a perfect solution for backing up our precious memories. With APIs similar to Google Drive, it was easy to use Google Photos as a backup solution. However, as time passed, many of us, myself included, began relying on it as our primary photo storage.

Fast forward to today, and I’ve come to a stark realization: I’m completely locked into the Google Photos ecosystem. The old Picasa APIs are gone, and the current ones come with significant limitations, including stripping EXIF data and resizing images. This realization led me on a journey to export my entire photo library and transition to a self-hosted solution using Immich server.

In this post, I’ll outline the process I used to liberate my photos from Google’s grasp and regain control over my digital memories.

(more…)

Facebook Group Search Web App

I have been working on my OpenSprinkler mobile web application and decided to port the new installer I developed over to my Facebook application. This allows an easier deployment of the web app. I also wanted to discuss recent changes that have occurred.

Facebook pushed new changes to the FB SQL methods that changed how comments were polled. These changes broke my older code but the code has been updated to support the current system. Also, I wanted to share some screenshots of the fully working application from my setup something I neglected to do in the past.

(more…)

OpenSprinkler with Custom Web App (Updated)

I recently purchased an OpenSprinkler from Ray’s Hobby and am very impressed thus far! The device has accomplished its primary task of moving the controls away from a central box in the garage to any networked device (iPhone, iPad, laptop, etc.). It comes provided with a wonderful web interface out of the box. The install was very easy! I already had a Hunter irrigation control system and simply unplugged everything from it and moved over the connections to the OpenSprinkler. I even used the housing of the old system to house the new system. Below is a picture of the final physical install:

(more…)

Configuring WCCPv2 with a Dynamic IP

Setting up squid on Debian is fairly straight forward and my previous post explored that topic in depth. This time I want to share how I configured squid to communicate with my ASA 5505 which has a dynamic IP address. If you followed the earlier suggested guide you will notice it requires the ASA’s outside IP address. For a dynamic IP this would require editing the configuration each time. To avoid this I did the following:

(more…)