Community Room at The Avant

A Half-Century of a TimeHorse

In one month, I will be celebrating my half-century of existence. What’s more, I will, for the first time in a quarter century, single. After much hemming and hawing over my continued love for the woman who was my wife, with the frustration over so many things I can’t discuss, the coup de gras being things like Nowhere to run? and Sheltered in Place with a Domestic Abuser? and incessant unnecessary forced to sanitize when we really should just Relax—you actually don’t need to sanitize your food!

The thing is, these days I need to physically leave my premises 3 days a week because I’m required in the office. I’m typically the only one wearing a mask there because I do believe in being cautious—especially since the recent SARS-CoV-2 outbreak. It’s not like I’m endangering myself when I go to a writing group or an electric car event. I use due caution every time I’m out, typically 5 days a week. I’ve even tested negative, and triple vaccinated!

You’d think that’d be enough, but nope. Every time I return to the house, I have to do the four S‘s. I’m effectively forced to Surrender all of my items—iPhone, Apple Watch, wallet, even my glasses and wait for them to be Sanitized! Then I need to Strip to my underwear because my clothes “must be contaminated”. Finally, I’m supposed to Shower, but and only when I come home, never in the morning or before I go out.

I put up with a lot for all these years, from a profound lack of physical intimacy to constant threats of divorce whenever she was cross with me. I put up with it for all these years because I truly believed she was the best woman I could ever hope to be with. The truth is, she may still be the best, but with all I have to deal with, I would quite frankly rather be alone—though I’m not dead yet, so we’ll see what the future holds.

Now, you may be wondering why it’s taking me so long to move to my new apartment, especially since I’ve been paying rent since 30 January. Well, for the last 11 years, I have been enjoying extremely inexpensive charging at my house on the Dominion Schedule EV with my Clipper Creek CS-100. But, when I got #CO2Fre, my first Tesla #P三D, it came with free, unlimited SuperCharging. The plan was, I could take advantage of the free fuel, move to an apartment, and just charge up the vehicle on my way to work at the Sterling Supercharger.

But then, while coming back from a Star Wars cosplay event, where I was cosplaying Grand Moff Tarkin, running late for a barbeque with my brother, I found myself on the most evil road in all of Fairfax County. Braddock Road is mostly a straight road, but it makes this one incongruous bend which is the bane of all my existence. I had just paid off #CO2Fre 24 days earlier, when, on 25 July 2021, the same year I watched my mother die and attended my dear Aunt’s funeral, the greatest car I’ll ever own, and my ticket out of here was totaled. I was taken to the hospital and, because of the airbag deployment, I was even left in a cast—which you can see on my TikTok. To top it all off, my uncle died on 31 December 2021 to cap off an utterly tragic year.

GEICO and Tesla refused to fix it. I lost my ride, my free fuel, and my free celular entertainment system, the later a $99 per year value. Supercharging I can’t even begin to estimate, because I wasn’t using it during the Pandemic, and I knew I would need it when I moved to an apartment.

As it was, I did find an apartment with EV Charging. However, if you don’t move your car within 4 hours, you will be charged an arm and a leg, meaning you’d have to get home, and set an alarm to remind you to go back down and move your car. What’s more, while charging under Schedule EV costs me about 7.5¢ per kWh, the apartment costs 15¢ per kWh, double the price. And, if I wanted to use the Supercharger, it would cost 30¢ per kWh, four times what I’m used to paying. And that cost is constantly increasing!

People seriously lambasted me on social networks when I lost #CO2Fre. Of course, it’s just a car, but my whole plan went up in ashes with that loss, and here I am, 123 days with an empty apartment, stuck with the quadruple S‘s, because I just want keep saving on fuel. That’s why I was so sad when I lost my ride, because I knew life would be more expensive and I would end up staying longer than I needed. I wish folks could have understood—I had to take whole 2 month hiatus from social networks to avoid the vitriol.

However, here we are, today. I now have #NoSO2, I pay for Supercharging and Premium Connectivity, but I got rid of GEICO, who grossly undervalued my precious ride, and now am insured by Tesla, constantly trying to improve my Safety Score to lower my insurance rate, as well as finally qualify to beta test my $14,000 investment in the Full Self-Driving Beta. And my wife is working with my to get the divorce finalized as soon as possible as a final birthday present to me.

And you know what? Imma have a party! A party to celebrate a half-century of existence, a party to celebrate my divorce and freeness, a part to play board games and sing karaoke and cosplay at your leisure, to grill with my brother and have pizza aplenty with plenty of vegetarian and other dietary options as requested. And unlike Jeffrey’s Jammin Birthday Bash 2 years ago, this party will be in person, on the third floor and community space of my new apartment in Reston Town Center. I’m hoping maybe even the Metro will open by then, but then, I’ll be lucky to just have you show up.

Get your free tickets here! Please remember to RSVP so I can let the concierge know you’re coming.

The Hourlings Podcast—Episode 5: Happy Hour

For fun, we decided to make our fifth episode about chewing the fat and spinning some yarns about what we write and how we get our ideas. Then again, maybe that sounded pretentious. After all, here I am talking about how I love #CO2Fre, my Tesla #P三D. But then, what folks don’t know I spent over a decade writing about electric cars on the Affordable Electric Car NOW site. I struggled and even had to quit my job to afford the car I drive now. It was through a lot of pain and suffering that gave me the chance to drive my dream car—or, more to the point, have my dream car drive me.

Of course, that’s all non-fiction, and these days I prefer to write fiction. Indeed, I’ve been writing published fiction since 2013, and I have so much more left to write.

Another Finely Structured meeting, if I do say so myself.

Anyway, have a drink with us, be it beer, whine, spirits, tea, or just plain Hydrogen Hydroxide, also known as water. Stay thirsty my friends and see you next week.

Tesla OS 2020.16.2.1

Finally!

TeslaFi had been spamming me with news about TeslaOS 2020.16 for a while and I’ve been itching to see what, after giving us the amazing stop at a stop sign in the last minor update.

Turns out, not much. I am mostly unimpressed by Tesla with this update, though nonetheless very appreciative. Autoformatting a DashCam drive—I wonder if it supports 2TB yet—and a better layout for Easter Eggs are, after all, improvements, even if the Easter Eggs aren’t really hidden gems anymore.

The coolest new feature, though, is the new SuperCharger filter, allowing the driver to only see Version 3 stations and filter out all the slower ones. I love the fact that I have free, lifetime SuperCharging, and one of these days, I’m gonna cross the continents with that perk.

Overall, I’m not disappointed despite being underwhelmed. And one rumor is that this, or a soon to be released version will add V2G to the Tesla. I can’t wait until that rolls out as the Tesla Battery Pack may make for a new, mobile Powerwall. Mind you, even if #CO2Fre could do V2G, my house isn’t equipped for it anyway. So, even if it doesn’t have V2G, it’s still a cool update!

Tesla OS 2020.16.2.1
Tesla OS 2020.16.2.1 adds a new toy box interface, a SuperCharger filter, and auto-formatting of DashCam media. © 2020, Jeffrey C. Jacobs

Gentle reader, if you have been keeping up with me since 11 February of this year, you know that I have been posting once a day since then. As such, today marks a hundred days of a hundred daily posting. Through that, I’ve shared with you exciting electric car news, updated to the National Popular Vote Interstate Compact, my struggles to get the Equal Rights Amendment to be our Twenty-Eighth Amendment to the Constitution, written about my many works of fiction, and the many books of nonfiction I voraciously read to be a better scientist. I’ve shared with you my cosplay adventures, and my love of Doctor Who, my love of games, and a bit of my speaking in tongues as well as delivering speeches and singing to my heart’s content. I’ve talked about international travel and how I love to fly there in my own plane, discussed my acting and my dietary needs. And most of all I’ve told you I’m an excellent coder who is always keen for new work. Thanks for riding with me as we cruise upon the cloud to another one hundred posts!

I’m Running Late Setback: Can’t Send Texts in the Background

Originally, I wanted to implement an texting in the background for the I’m Running Late iOS app. After all, the whole idea of the app is that you may be stuck in traffic and not really in any position to send the I’m Running Late while you’re driving or otherwise indisposed in transit. If you in the car, for instance, sending that text, even if it just means clicking the Send Button, is dangerous. It totally defeats the purpose.

The idea of I’m Running Late is it’s a background process like cron for the iPhone. It just programs events based on the clock and your calendar, then, when the grace period begins, if your Sat Nav notices you’re not within a prescribed number of meters from your event location, it automatically informs the host—or your boss—that you’re running late.

How is this not a thing?

It’s not a thing because Apple‘s philosophy is, if you can send one text without consent, you will be able to spam infinite texts without consent. But, the thing is, the App Review team should be able to detect of an app was abusing the option to text without consent, so why prevent this safety feature when you could just stop it from being abused?

For the record, texting without consent is a safety feature. When you’re driving to an Event, it’s dangerous to have to look at your phone and hit a consent button. Forcing the user to do so may even violate some state laws. Yet, you want to send the text because you are running late, yet you can’t because you’re stuck in traffic.

Sadly, you need a user interaction to send an email too.

With both options stupidly closed by Apple, making this very important use case at first impossible to solve, the only option left is to send the text via a GET Query, for example, to a web service, and rely on the web service to send the text.

One such service is Twilio. Twilio seems to be the leader in Web to SMS transactions. Unfortunately, as far as I can tell, Twilio is a paid service and I’m still trying to figure out how this service works. I created an account and want to test it, but if all users of I’m Running Late are going to be using the service, I’m sure I will have to set it up as a business account.

One possibility I’m considering is having a monthly fee to use I’m Running Late, that I can use to pay Twilio for the use of their service. However, I want the fee to be small, like 15¢ per user per month. And then, say if Twilio costs $15 per month for one hundred users, then one hundred I’m Running Late users would completely cover the cost and I won’t need to let TimeHorse, LLC go further into debt.

The question is, though, what if I have less than one hundred users. In that case, I may have to disable the service or come up with some poor-man version on this very server. Initially, all text message requests could come here, and when the numbers crack one hundred, I can tell I’m Running Late to switch to the Twilio server.

On the other hand, maybe I’m going about this all wrong. IIRC, all Teslas are running Linux. And if the Tesla is connected to the driver’s Phone, and it knows the time, and it has the Phone’s calendar, then surely it could have an app that texts the Event organizer when the driver is running late.

And I could write that code!

Hear that Tesla? You could be bidding on me, because I’m still available for hire but my rates are going up with all the offers!

Stop at Stop Signs, and record, under 1TB

The third time’s the charm. After over a week of trying to get the Tesla DashCam to work, a USB Stick arrived yesterday. After again formatting with a GUID Partition Table, a FAT32 file system, and adding the /TeslaCam directory, I plugged it into #CO2Fre.

USB Stick
Installed a USB Stick with GUID Partition Map, FAT32 drive format and /TeslaCam in its root folder.It worked! © 2020, Jeffrey C. Jacobs

When I then looked at the screen, lo and behold, the DashCam was restored!

DashCam Restored
The TeslaCam is back! The USB Stick did the trick © 2020, Jeffrey C. Jacobs

But that wasn’t all! Turns out I also got the 2020.12.6 TeslaOS. Eager to install, I hit the install now button because I knew this update would be adding auto-stop at stop signs and stop lights. The quirk with the update is that it will even stop at green lights, so if you want it to keep going you need to keep your foot on the accelerator to get it to run the green light. It’s probably okay, though, to let it stop on yellow or red. Also, it won’t turn for you; to do that, you need to take control of the wheel.

Finally, once that was installed and Stop at Traffic Lights was activated, I decided to have another go with my 2TB SanDisk Extreme SSD. Because it was also formatted properly and had the same directory structure as the USB Stick, I had a hunch it was because the drive was a whopping 2TB that the Tesla couldn’t recognize it.

With a little work, I re-formatted the drive as GUID, with one FAT32 partition with 996GB and another 1TB of free space. After adding the /TeslaCam directory, it worked like a charm!

In conclusion, although the 2TB SanDisk Extreme SSD drive works with Tesla, Tesla cannot understand drives above at least 1TB. This seems like a failing of the TeslaOS, but one I can live with. After all, my long-term plan is to have a Raspberry Pi Zero W installed and use the 2TB drive for portable backups.

Now that I have my DashCam back, and have the automatic stopping at stop signs, I can’t wait to take #CO2Fre for a spin. I hope to be cruising on a cloud soon!

DashCam Fail Code

TeslaCam, Tesla Can’t, 2.0

I really wanted to have my DashCam fixed by today. I really did. But then the hypochondriac got involved, called Tesla, and have them tell me some least common denominator information information that they wouldn’t accept there was a problem with my Tesla unless I tested it with a USB Key [sic]. As I didn’t have any USB Sticks handy, I ordered one that was Tesla branded, as well as a faster, High Endurance MicroSD Card and new adaptor.

The USB Stick won’t arrive until later in the week but the flimsy excuse from the hypochondriac threatened to call the police if I didn’t cancel my service request and wait for my USB Stick order to arrive. She said some lawn care folks would be here today but of course they didn’t come, so I ended up cancelling my appointment for nothing.

However, not wanting to give up, I got my MicroSD Card and tried it in #CO2Fre. It was formatted as exFAT so I formatted it as FAT32 and plugged it into #CO2Fre. Nothing.

I did some more research and realized that most drives come formatted with an MBR to allocate its partitions. I pulled the SanDisk Extreme SDD #CO2Fre and it too had an MBR. Since Tesla recommends using a GUID Partition Table, I opened up DiskUtility and reformatted the entire drive with a GUID Partition Table and a FAT32 File System.

GUID Drive
This is what DiskUtility shows for the SanDisk Extreme SDD 2TB Drive. Under the heading, you can clearly see the drive is formatted as a GUID Partition Map, as requested by Tesla

This went quickly and in the end I had the system correctly formatted as per Tesla’s specifications. The drive was formatted with 2TB of free space.

FAT32 Partition
This is what DiskUtility shows for the one partition on my SanDisk. The Partition is called TESLACAM as FAT32 only supports uppercase names. Below that, you can see the format is indeed FAT32, as requested by Tesla

Finally, I added the TeslaCam folder.

Drive Contains TeslaCam Folder
This is the root folder of the SanDisk drive. You can clearly see a TeslaCam folder in the root, as required by Tesla

With the drive reconfigured to Tesla’s specifications, I donned the rubber gloves and tried the SanDisk SDD in #CO2Fre. Finally, I got a camera in the toolbar. Only there was an X on the Camera and a warning label. When I clicked the warning, #CO2Fre gave me a mysterious UI_a078 error,

DashCam Fail Code
Despite doing everything right, using an externally verified SanDisk Extreme SDD with a GUID Partition Map and a FAT32 filesystem with a TeslaCam folder, this is what #CO2Fre tells me. I was unable to verify what the UI_a078 message means and more conversations with Tesla recommend I schedule another appointment

Because the hypochondriac doesn’t want them to come to my house to fix #CO2Fre, she insisted I call Tesla’s tech support. I reiterated the issue to the support staff, including the note about UI_a078, and told him about my problems obtaining a USB Stick, and he recommended I make a new appointment as the Tesla Mobile Team Member would have a USB Stick he or she could use to test the USB ports of #CO2Fre.

Of course, the hypochondriac vetoed this idea and instead she ordered a couple, cheap USB Stick that should get here by Sunday. If they don’t work, I may be able to get support to come out next week to help me finally resolve this most vexing issue.

Alas, until then, I won’t be cruising on the cloud.

TeslaCam, Tesla Can’t

I haven’t been able to use the TeslaCam since 27 July 2019. That’s because, around TeslaOS 2019.28.1, Tesla broke most USB Sticks used for Dashcam functionality, because, it claimed, they were too slow.

Not having a DashCam and having such a mysterious and incomprehensible error—my USB stick was fast enough—I was afraid to buy a new USB stick to see if I could get it working again. For months I dithered on the issue, totally unsure what Tesla wanted, and wanting so badly not to waste money on a device that would fail with Tesla.

Compound that with, in December, 2019, thanks to an AutoPilot, #CO2Fre failed to stop when a vehicle with California plates cut me off by jumping into the exit lane ahead of me at the last minute, causing $4,000 worth of damage I can’t remotely afford to pay. The scratches, therefore, remain to this day. And as no solace, I don’t even have the Dashcam video to go over the details even if I wanted to make an Insurance claim. So, I have scratches but still no Dashcam.

Then TeslaOS 2020.12.5 came out, which added support for watching Dashcam videos within #CO2Fre. Since I had the time off thanks to Covidapolis, I decided to try again with the Dashcam, and found this neat video:

Thanks to that video I decided to buy a 2TB SanDisk Extreme Portable SSD drive, a SamSung SXDC UHS-I EVO Select Card, and a Raspberry Pi Zero W.

I didn’t have access to my car because of the hypochondriac until the day of my #CO2Fre demo. I plugged in the SanDisk drive with its USB-C to USB-A adaptor and… nothing. I had the drive plugged in, but no camera was showing, and I couldn’t show off any of the Dashcam features during my entire presentation, including Dashcam footage of the speed test on the main screen after I parked, despite having the drive plugged in. The demo still went well, but I’m annoyed how hard I tried to get this working and still failed.

No Camera Icon
Sometimes the Camera with an X appears, but usually there’s no camera icon whatsoever, as can be seen here. © 2020, Jeffrey C. Jacobs

Afterwards, I tried to play around some more. Doing so requires me to go through decontamination because, for some reason, the hypochondriac thinks #CO2Fre has SARS-CoV-2. Meaning, I have to keep changing my clothes every time I go to the car because sitting in my car contaminates my clothes.

The drive was exFAT, so I reformatted it as FAT32. The drive did flash on the screen after some cord giggling, but it said it wasn’t formatted properly despite having the TeslaCam folder and being named TeslaCam. Since I’ve read that Tesla supports exFAT, I formatted it back as that, and it sits now, unable to connect.

2TB SanDisk
I have a 2TB SanDisk Solid-State Drive USB 3.1 compatible 10GB/s Drive plugging into #CO2Fre with a USB-C connector and a USB-C to USB-A adaptor hooked into #CO2Fre, yet #CO2Fre can’t see it! © 2020, Jeffrey C. Jacobs

I also tried my MicroSD chip with an adaptor. Originally, the chip was supposed to be part of the Raspberry Pi, but I wanted to test to see if it could be used as the TeslaCam directly. No dice. I’d hook up the Raspberry Pi and try with that, but I have to finish updating my Résumé and fix my broken Zone File updater for Reston Writers first. I just have too much going on to worry about going any further with this nightmare of Tesla‘s.

The way I see it, the drive works in a PC, the drive works in a Mac, it just doesn’t work in #CO2Fre. When you’ve tried everything else, the simple answer it so blame Tesla. So, I made a Mobile Service Request and they should be here Friday morning.

Why must Tesla make this so hard!?!?

In any case, unless I find another set of clothes to wear, even without my Dashcam, I shall very much miss cruising on a cloud.

#CO2Fre come Home

Last week I mentioned my struggles about eliminating the squeak from #CO2Fre. Then, of course, I was forced into a one-room cell as a hypochondriac put me into lockdown. On Sunday, I was released. I would say I finally had a clean bill of health but the truth is I was always healthy and just had to deal with irrationality. But that’s yesterday’s story and today I want to talk about how I wanted to finally pick up #CO2Fre… and couldn’t.

I got a ride to the Tyson’s Corner Service Center and used the Tesla app to find #CO2Fre. She was parked in the back, against the side of the building. I had to open it with my ancient iPhone 5S. We sanitized #CO2Fre and then my ride left. There was a large Tesla Model X in front of her. Much as I try to inch her out of the space, I can’t do it. I get within a couple centimeters of the car next to me only to have to give up as impossible.

Trapped #CO2Fre
#CO2Fre is trapped at the Tyco Blvd Tesla Dealership. Her service plan was agreed to, her repairs made, but she couldn’t escape the clutches of Tesla. © 2020, Jeffrey C. Jacobs.

I scanned the QR Code and indicated I was there for pickup. I also called Tesla and left a message. I told them I couldn’t move #CO2Fre and my key wasn’t inside. Then I asked my ride to return as I waited for the callback that never came. I figured it wouldn’t because it was Sunday, but then it never came on Monday either, so I was rather distressed.

Finally, I called them on Monday and they agreed to move #CO2Fre to an accessible area where I could pick her up Tuesday morning before opening. They also arranged where I could pick up the key. I just hope my ride wakes up in time. After all, she was also my jailer…

#CO2Fre Moved
#CO2Fre was moved on Monday to a location where she could be safely retrieved and finally come home.

Hopefully soon, I can get back to cruising on a cloud.

The danger of Upgrading WordPress

Late last night, just as I completed my post about Tesla trying to scam me, I decided to upgrade WordPress to version 5.4. Normally, this shouldn’t be an issue, but for me, since I run a multisite system, there are extra security issues and directory layout complications that must be taken into account.

The first step was, apparently, to backup my database. Since I’ve never backed up the mysql database before, I felt this seemed like a reasonable approach. I certainly didn’t want to pay JetPack to do it; I’m a genuine code jockey, I can do my own backups. After some digging around, I found mysqldump. Unfortunately, all the instructions on how to use it were incorrect.

After some further poking around, I finally came across the correct syntax. Essentially, the user name and host have to come before the --all-databases command. Also, the host can’t be localhost, it must be the IP for the local host. Unfortunately, I was not able to find a way to get it to prompt for my password which meant I had to type my password in the command line, leaving all there in the open for any history recall to see. Not very secure at all.

mysqldump -h 127.0.0.1 --user=<uid> --password=<pw> --all-databases > mysql.2020.03.31.bak

mysqldump command; note <uid> and <pw> are placeholders for the user name and password; you must replace this with your own values.

Alas, I was not able to find a way to get mysqldump to prompt for a password. I think if I have more time, I may write a python script which builds the command by first prompting for the password. At least that way, the password wouldn’t be stored in the command line history.

The mysqldump command is quite clever. It just stores the list of sql commands that would be required to recreate the databases you have stored. However, the file is rather big and being text, it compresses nicely with bzip2 -9, which is what I did.

Once I did this, I was ready for the main Upgrade. I held my breath and pulled the trigger…

Wordpress
This site is built with WordPress… and a very skilled programmer who has been writing HTML since 1993 and hacking UNIX for even longer.

The install progressed along nicely until it tried to write a file to the wordpress directory. 🤦🏻‍♂️ I logged into my server and sure enough, the permissions on the wordpress directory were 755, which meant the user could add and remove files, but the group and anyone else could not. You see, with my multisite, I try to have all wordpress files with user wp-user and group as www-data, to work with apache. And apache runs all web processes as www-data for both user and group. Thus, when WordPress asked to add a file to its codebase, apache could not write it because the www-data group didn’t have permission, only wp-user did.

find /usr/share/wordpress -type 'd' -print0 | xargs -0 sudo chmod 775

Change all the wordpress directors to allow www-data to add and remove files from them.

Realizing my mistake, I changed the permissions on all directories to be 775 (both wp-user and www-data could add and remove files). Unfortunately, it was too late. Instead, I had no choice but to blow away my current install and replace it with a fresh, new install of WordPress 5.4. At least, that’s what I did on a high level. The details, though, are a bit more complex.

Once I extracted all the wordpress files, I needed to get their ownership to match the settings for my wordpress install. I was able to do this quite easily with the chown command.

sudo chown -R wp-user:www-data wordpress/

Command to set the right file ownership for wordpress.

Next, I set the directories as above. Finally, the files themselves had to have the right permissions. Namely, they should be readable and writable by wp-user and the www-data group, but only readable to others, not writable. Namely, they needed to be set to permission 664.

find wordpress/ -type 'f' -print0 | xargs -0 sudo chmod 664

Change all the wordpress files to allow www-data to modify them.

Next, I had to copy over the active wordpress configuration file. This file is actually fairly spartan as all the active site configurations are actually stored in /etc/wordpress; my wp-config.php actually just scans this directory for configurations. The configurations, in turn, point to directories in /srv/www/wp-content with the site-specific files. I thuns needed to bring that file over to the new install.

cp /usr/share/wordpress/wp-config.php wordpress

Copy the configuration to the new wordpress install.

Next, I wanted to preserve the Languages I had installed. I just copied the entire directory over to the local install.

cp -r /usr/share/wordpress/wp-content/languages wordpress/wp-content/

Copy the Languages directory to the wordpress install.

I also have an upgrades directory that I wanted to preserve.

cp -r /usr/share/wordpress/wp-content/upgrades/ wordpress/wp-content/

Copy the Upgrades directory to the wordpress install.

Finally, I needed to move the links to my shared, dynamic contents that are for all the sites on my server. Specifically, the uploads, themes, and plugins folders all rest in /var/lib/wordpress/wp-content. (Technically, Uploads rests in blog.restonwriters.org site-specific Uploads directory, but that’s something I’ll fix later to conform with the same layout Themes and Plugins use.) Since these are already symbolic links, they can be moved to the new wordpress install directory to replace the defaults.

One caveat however, is the default install for wordpress comes with one plugin and three themes. In order to preserve those, I renamed the default plugins directory to plugins-default, and the default themes directory to themes-default. This was necessary before the symbolic links could be moved since those directories were in the way.

mv /usr/share/wordpress/wp-content/uploads wordpress/wp-content
mv /usr/share/wordpress/wp-content/plugins wordpress/wp-content
mv /usr/share/wordpress/wp-content/themes wordpress/wp-content

Move the symbolic links to the plugins, themes, and uploads directories.

Finally, the apache permissions file needed to be moved as it was also a link, pointing to /etc/wordpress/htaccess. I store the file there because it makes it easier to maintain in case I accidentally bow the .htaccess file away.

cp /usr/share/wordpress/.htaccess wordpress

Move the symbolic link to the .htaccess file.

Once all this is done, it’s a good idea to run the chown and chmod commands from above on the wordpress install directory once more to make sure the copied files and moved links are also properly attributed.

Finally, it was time to perform the brain transplant and move my staged wordpress install to the active /usr/share/ directory. I moved the current install to a temporary directory and then moved my staging install to the /usr/share/ directory to replace it.

mv /usr/share/wordpress /usr/share/wordpress-old
mv wordpress /usr/share/wordpress

Replace the installed wordpress with the new version.

Once all this was done, I was able to get to my web page, and wordpress prompted me to upgrade my database. Once this was done my sites were back online. In total, this site and its sister sites were down for a total of about forty-five minutes. It was a long day yesterday and I was exhausted but I did get it done and you can now see the results.

I hope you enjoyed my story about hacking UNIX. Please note, I am available for hire if you like what you see!

Tesla tried to bankrupt me during Covidapolis

Recall back at the beginning of the month, I had to deal with a nearly $2,000 tyre bill from Tesla? Well, that’s not the end of the story…

After I got #CO2Fre back from Tesla, my coworker and I noticed some squeaking sounds as I would drive the car at low speeds, making turns under humid conditions. So, I made the soonest appointment available to both me and Tesla, which was today, 31 March, 2020, which is therefore going to be the topic of my 50th day in of quotidian postings.

Of course, then SARS-CoV-2 happened, and all the crazy things that came with it. I haven’t left the house since my job went to 100% telework apart from a couple outings to the grocery story and stroll inside my housing community. So, when Tesla reminded me of my appointment, it wasn’t so much that I was eager to get out (at least I don’t have to fear a physical abuser) as I was eager to finally get this over with in terms of having to deal with Tesla and a potential fault in their repair.

I got up early this morning, ready to head over to Tesla. I was, alas, so tired, I ended up locking my CAC Card. The details aren’t important, but I will just add that resetting it required a long drive to work and a long drive back just to restore access. But that had to wait until after I dropped #CO2Fre off.

Anyway, I got in #CO2Fre and noticed a software update. Not wanting to delay my appointment at the Tyson’s Corner Service Center, I headed straight over and initiated the update as I arrived.

Arrived at Tesla, March 2020
I arrived at Tesla a little past 08:00 for my schedule appointment to resolve a squeaking in my steering and suspension, mainly observed in highly humid weather. What are those signs, covering the windows? © 2020, Jeffrey C. Jacobs.

I arrived at Tesla a little after my 08:00 appointment and spotted some interesting signs on the windows. After waiting a bit for folks to pass, keeping a social distance from anyone, I made my way over to the door.

Use the QRCode to Login
Sorry this picture is blurry as I took it from inside a ziplock bag. But you can see the notes on the windows advising customers to scan the QR Code and fill out the form to register their arrival. © 2020, Jeffrey C. Jacobs

The signed contains a QR Code that I could scan with my phone in order to check into my appointment. I scanned the code and opened the web page associated with it. The page contained a list of questions: who I was, why I was there, and did I have an appointment. I filled it out and got a message saying I should wait for a call to confirm my appointment.

Tesla Service Registration Complete
Registration for service was easy as cake. Just fill in your name and your reason and if you have an appointment and they’ll call you when they’re ready.

I went back to #CO2Fre; the software was still updating. I got the call and we agreed to leave the car where it was. I got some Uber credits but had a ride home already and so used that to get home, then get a ride to work to fix my CAC, and then back home again. Phew.

Then I got a text from Tesla saying they sent me over an estimate and said I needed to replace some tyres. Are you freaking kidding me!? Didn’t I just drop almost $2,000 on tyres at the beginning of the month!?

Needless to say, I was not amused.

Tesla Service Estimate, Inflated Estimate, March 2020
When I got this in my mail, I was shocked. I took the car in, after waiting 3 weeks for a follow appointment to the tyre replacement at the beginning of March, to resolve a squeaking issue with my tyres and front suspension. I thought it’s be just, at most, $100 to do the diagnosis, only to be sent this behemoth of a bill for just over $2,000. Having just paid almost that amount at the beginning of the month and facing a 1 week suspension in addition to docked pay, I could never in a million years afford this estimate and I complained to Tesla until I was blue in the face. Not shown is the $84 in tax and the total of $2,043.75. Oy, gevalt!

Looking over the estimate I saw they recommended replacing all four tyres! Seriously? I had just replaced two rims at the beginning of the month, but, as I looked over my meticulous history of tyre replacements, it turns out I replaced a tyre just three months ago on 3 January 2020, and another on 4 November 2019. Both tyres were relatively new and there could be no possible way they could both be so worn to need replacing. It was bad enough the other two tyres were April and May of last year, but some of the tyres were less than six months old!

Looking over the costs, not only were they charging me for four tyres, but they were also charging me for a $160 Tyre Setting and a $302.25 Tyre Alignment, for a total of $1946.25 in tyre repairs! That would have been a total of $9,647.95 on tyres for 42,695 miles of driving over 19½ months!

It took a number of texts for me to get through to Tesla. I was quite frank. I didn’t agree to any tyre replacement and demanded they generate a new invoice for me without the tyre replacements. Furthermore, if they though my tyres were showing wear, I demanded they show my the tread depth to prove they had wear given one tyre was just three months old, and another only five. Thankfully, the obliged.

Tesla Service Estimate, without Tyres, March 2020
After many irate texts, they agreed to remove the tyres from the invoice which made it a manageable $97.50. I did ask them for Tread Depth readings though, just to verify that maybe some of the tyres needed replacing.

The new invoice was quite reasonable. Less than $100 for a diagnostic check which so far turned up nothing. I agreed to that and then my service advisor sent me photos of the tyres with the tread measurements.

Clearly, two tyres were at around 8/32 inch depth, which is pretty nearly as good as new. The other two hovered around 5/32 and I agreed they probably should be replaced. I therefore agreed to a new invoice where only those two more worn tyres would be replaced. Tesla kindly obliged.

Tesla Service Estimate (Revised), March 2020
This is the revised service estimate for the two low-tread 5/38 depth tyre replacements. Not included is the $42 tax, which was the perfect answer to this issue, for a total of $939.50.

Although the cost jumped to nearly $1,000, I agreed to it as the best course of action. They dropped the wheel setting and alignment which also lowered the cost quite a bit. I’m hoping I can get the alignment done elsewhere when the Covidapolis is over. It still brings my total lifetime tyre costs to $8543.70, with seven tyres and seven rims, but it’s much better than $9,647.95!

Plus, I got a software update.

Tesla OS 2020.12.1
The morning of my drop-off I noticed there was a software update. I set it going when I got to the dealership and it was done by the time I got home.

I’m not happy that it will take me a month an a half to pay for this repair as I sink further into debt, but mainly I miss driving #CO2Fre. Die SARS-CoV-2, die!

Until next time, I’ll be cruising on a cloud.