To Sleep, perchance to dream

Last year, I read the book Outlive by Peter Attia, MD in my Science Book Club, and although it is cliché, this book did indeed change my life. The TLDR is simply this: to live a healthy you need four pillars of living today to be ready for tomorrow: improved strength, good balance, cardiovascular improvements, and sleep! I have 10 lb / 4.5 kg weights I need to start pumping one of these days for strength. I need to do more yoga, like Saturdays at 11:00 in my apartment, but alas that’s during my Saturday Morning Review. But, for cardio, I climb all 15 flights every time I leave my apartment, typically at lease once a day, and have made a rule to never take the elevator up when I can find the staircase (though I do take it down).

As for sleep, I am epicly failing and it’s really getting to me. But, to fully lay this story out, let’s go back to March of 2024.

Eclipse Planning

I had been planning for the 2024 eclipse for years. I even wrote a presentation about it which I shared with my Toastmasters and Westminster Astronomy Society, Inc (WASI). In it, I talk about how back in 2023 I tried to get a hotel room on Lake Buchanan in Texas, and wasn’t able, but found this state park, right in the centerline of the Eclipse path, in the driest part of the county, just outside of Austin, TX. I worked out with my new job at CACI (which, BTW, is one of the best jobs I’ve ever had and a wonderful place to work and will always be my scheduling priority) that I could change my work location to Austin for the first two weeks of April 2024, and then booked a hotel in Cedar Park so that I would be close to work (actually two hotels were books and I only chose which one I would stay at in March), and got a TxTag so I could use the toll roads around Austin.

I spent March giving that presentation, scheduling a month of Green Pill Podcast episodes and posts (so I wouldn’t have to deal with them in Austin) and cleared my calendar for those two week, only allowing the most important commitments to bother me on my working-vacation. Since I was doing this myself, I used my own money to stay at the hotels, and wishing for adventure, I decided to take #NoSO2TeslaP三D down. (Fortunately, FSD (Supervised) V12 dropped just before I left.) And, I checked my Doctor Who watch log and prepared to watch the mostly missing The Mythmakers on the way there, The Dalek Masterplan while in Austin, and The Massacre of St Bartholomew’s Eve on the way back. My dad contacted me about borrowing his DJI Camera and I scheduled to pick it up two days before I left, the same day I tried to help a pregnant camper with the Green Cab group I’m a part of—which didn’t work out because I just couldn’t pick up the camera and get to the patient in time.

I put in my contacts and readied myself for the long drive.

Driving to Austin

I got up at 03:00 to watch my daily Doctor Who, and left at 04:00 on Friday, March 29. On the way, I attended many work meeting en route and nearly killing my hotspot fast-speed limit on the way. I first hit the Raphine, VA supercharger around 06:30, well before work began. Then, I drove to Atkins, VA, leaving around 10:30, and got my work computer set up for my work meetings. Around noon CDT—I’d crossed the time zone—there was some serious stop-and-go traffic on I40, in Kodak, TN, just outside of Knoxville, and I got rear-ended by an uninsured driver who didn’t leave me his name—I still have to get this fixed. I pulled into the Knoxville, TN supercharger about a half-hour later. I then attended the rest of my work meetings before arriving at Nashville/Charlotte, TN around 15:30, made it to Jackson, TN around 18:00. From there, I was lucky the Brinkley, AR was next to a hotel so I was able to sleep for 6 hours after charging my car to 100%.

I got back on the road around 04:00, arriving in Little Rock, AR around 05:00 with about 60%. I then hit Nash, AR before finally hitting Nash, TX, just outside Texarkana, around 07:15. I then drove a bit west of Dallas to the Royse City, TX supercharger at a Buc-ee’s, arriving around 09:45. I hit Abbott, TX around noon. Because I made such good time, and was looking to get to the hotel before check-in, I decided to instead head toward the Lake Buchanan park to scope it out for Eclipse photos, posting photos to instagram without revealing my location to keep it from being swarmed—and allow me to change my mind. Finally, I made it to the Cedar Park Supercharger, queued for a charge, and checked into my hotel around 17:30.

Working Vacation in Austin

Fortunately, I was able to cancel all my Saturday Morning Review meetings on transit days, committed to on the second Sunday morning there (the first Sunday was Easter and I just spent the day doing touristy things) and on my trip back to The Hourlings, attended my Reston Writers over Zoom (including one on the highway coming back from the Eclipse), attended my EVA/DC board meeting, my WASI meeting, a regularly scheduled Toastmasters meeting, and the Division E Toastmasters Evaluation Contest! I really didn’t want to participate in that while I was on vacation but I kind of fell into it by winning in March, so my Saturday morning before the Eclipse was toast. And that is, for me, a paired down commitment. I wanted to spend as much time as I could in Austin and focus on that, and not worry about what I would deal with when I got back, just in time to run the Science Book Club meeting in person. And I had to wash my car, twice.

I’m not going to talk about my actual eclipse experience here, just that I was not able to view the bats under the Congress Bridge in Austin and the Toastmasters contest and Testing the DJI Camera with a solar filter—which I hadn’t had a chance to test until that point—as well as getting enough charge for my ride, meant I really wasn’t able to do any tourism the weekend before the eclipse, and I was exhausted. But, I did get a call from our Toastmasters Area New Club Director about starting a club at CACI. Unfortunately, my reading glasses broke, the lens fell out, and I had to replace them, looking in H.E.B. and Walmart. I spent about a half-an-hour on the phone while I selected a pair I really liked for about $30.

I spend my last days in Austin meeting some of my awesome Austin colleagues, and attending drinks with the head of the office that Friday night, causing me to go to bed late.

Returning to Virginia

I got up at 03:00 on Saturday, 13 April, watched my daily Doctor Who, finished my Orange Juice, and hit the road around 04:30. I was too tired to take pictures at my first charging stop in Corsicana, TX, driving through the back roads of Texas. But I did get photos in Sulphur Springs, TX, in Hope, AR, in Little Rock, AR (again), in Memphis/Germantown, TN, in Dickson, TN, in Nashville/Charlotte, TN (again), and stopped at the Crossville Buc-ee’s. Unfortunately, the last stop was at a buc-ee’s and because I have mean old Tesla Insurance, it was 22:00, and I couldn’t drive anymore and had to sleep in my vehicle. My air mattress didn’t properly inflate for the first hour but, around 01:00 I hit the head in Buc-ee’s and got it properly inflated, getting a net of about 5 sleep before hitting the road again at 04:00.

I crossed the timezone and made it to Bristol, VA, at a lovely Royal Farms, right on the Tennessee border, around 07:30, just as the sun was rising. The sun looked amazing as I drove up I81 but when I got to Washington County, VA, I got my first speeding ticket in over a decade, all while going the same speed as the traffic around me. I guess the county is short on cash. Anyway, that delayed me arriving at the Sheetz station in Salem, VA, where I was subsequently late setting up the Hourlings Zoom, burning through the last of my hotspot bandwidth before they throttled me because the Sheetz wifi didn’t work. I got pulled over one more time outside of Salem because I accidently breezed passed a cop on FSD but I apologized as I didn’t get to the car and override in time, and he forgave me. Best cop ever! I’m glad he was safe. I then made it to the Mt. Jackson, VA supercharger around 14:45, which I had previously visited on my trip down Shenandoah National Park last Autumn—I was almost home! I didn’t have time to take a much needed shower, but I did have time to get to the car wash before attending my 17:00 meeting at the Panera. I finally had my shower when I got home, and I slept—fitfully.

A Killer Workweek

The main problem with not getting enough sleep is my productivity drops off. Combine that with 2 days of driving and looking at my calendar and seeing events not just 2 days the following week, not just 3 days. Not even 4 days, but 5 days, one every day of the week leading up to Earth Day and that weekend before Earth Day being chocablock with events too, about 3 per day! Combine that with 43 hours of work and you can see why I’m very frazzled.

My first day at work I did my best to move to my new cube (we moved cubes the day I got back) and was so tired, when I tried to recycle my soda and sandwich bag, I had the soda and my glasses in one hand and the sandwich back in the other, intending to recycle the soda and the bag but forgetting the glasses were in my hand too. When I tossed the soda bottle and everything else in my hand, I was confused to see the bag in my other hand. I stared at the trash, wondering what else was in that hand if not the sandwich bag. When I got home, I realized it was my reading glasses. I had to rush home to run Reston Writers’ Review, and I started cursing abominably because I was late and I needed my glasses to read the pieces and write my notes. I met one of my writers in the lobby and he tried to calm me down, but I had to trudge all the way up to my apartment, fetch my old, cellophane taped glasses to run the meeting. I then had to drive back to work, dig through trash, unsuccessfully, and then buy a cheap replacement in Walmart, driving home past the high insurance 22:00 point! That was just day one!?

The rest of the week wasn’t much better. Tuesday, I drove to Columbia for the April Tesla Tuesdays. Wednesday I met with my therapist, missing about half of a work meeting because I couldn’t get sound to work in the car, then drove to the EVA/DC monthly meeting. On Thursday I had Toastmasters, where I was the General Evaluator. And on Friday, I drove down to Regency Furniture Stadium for a secret Tesla event! Meanwhile, at work, my branch had gone out of sync with the main branch, and I had to soft reset it to get it back in sync, but when I did, I forgot to copy all my old commit messages, which had all my notes from my work up until that point. Again, I need sleep because my productivity sinks when I’m tired.

Insane Weekend

Next, I look at my weekend schedule for the first time because, when could I have looked at it sooner. I had a Tesla event in at the Starr Brewery at The Perch (to see a CyberTruck but I saw one in Texarkana so I was good), another in Clarksville Common, and a cosplay event in Ellicott City. I decided to attend all three but I screwed up royally because I forgot to pay for and get a ticket to the Cosplay event, and didn’t check the web page for where the munchie squad would be so I ended up crashing, uninvited, and almost got kicked out of the group which I had been one of the founding members. And thus, I wasn’t able to obtain any photos of that event. And that was just Saturday.

One Sunday, I had a writing seminar with The Hourlings, and then an event in Herndon to promote vegan and sustainable living. I attended the last two hours of the Herndon event, since I was double-booked, then went home for the movie discussion with the Maryland Science Book Club. I was going to meet my friend Lisa that evening but, since she was organizing a very important event taking place today, which I sadly can’t make because of work, we agreed that we were both too busy to make that happen. But, I hope to see her Saturday!

Overscheduling and Undersleeping

Needless to say I was even more exhausted after all that and was happy to cancel the Monday night Reston Writers meeting, quite sleepless, even forgetting my daily weigh-in! I went from a week where every day I had an event to a week where I only had one evening event. Bliss? No, because I have fallen behind with my work and my boss has noticed and put me on warning in our quarterly touchpoints. This is very not good. So, I’m going to shut up now, and get back to work because nothing, but nothing, right now, in my life is more important to me than my job!

My therapist sent my an article which exemplifies my conundrum: How to Stop Overscheduling Yourself.

Take care gentle reader and remember, tomorrow is another day, and another chance to get a good night’s sleep!

The Green Pill Podcast: Self-Sabotage

This episode hits a little bit close to home. There are many things in my life that I regret, and most of them I can only blame myself, for sometimes AITA, am I the Asshole, yes.

For instance, there are two gentlemen I admire, look up to, and wish to emulate, both of who shown too bright and no longer consider me a friend. And, in both cases, it was because I was the Asshole.

A.K.

I’d known A.K. since college and always admired his intelligence, maturity, and thoughtful Canadian who I very much enjoyed talking to and doing things like discussing MST3K, watching RiffTrax together, and coding Python sprints. However, as my marriage started to dissolve, and after a brutal 2021 where I lost so much, continuing to hurt, I was finally starting to see the light as I was stressing over the planning for my half-century birthday bash, when all hell broke loose like a erupting volcano! The week before the festivities, the Supreme Court cast the perhaps worst ruling since Plessy v. Ferguson and Buck v. Bell when the corrupt court decided Dobbs v. Jackson. Of course, as an ERA warrior, I was dismayed, but as a new bachelor, I was apoplectic! Here I was, coming out of a marriage where I didn’t have any access to the one thing that monogamous relations restrict to the relations, I was terrified, incorrectly, I was about to be a bachelor entering a world where physical intimacy was impossible. Unfortunately, I said some things publicly which were reprehensible following the ruling and thus I Self-Sabotaged. A.K. blocked me on social networks and greenpdidn’t come to my party and since then he refuses to even hang out with me apart from allowing me to attend his Maryland Science Book Club. Yes, I was the 100% asshole.

D.B. and L.B.

Then there was time I was ready to start my Bachelorship and looking forward to spend more time with D.B. and L.B. Unfortunately, L.B., who I still care about deeply, got very sick from a nasty chronic condition, the same condition my late Aunt used to suffer from, so it became increasingly impossible to spend time with her. It got to the point that unless it was a very good day, she couldn’t even leave the home she shared with D.B.

L.B. and I were really good friends—we even talked about divorcing at the same time (unfortunately, it took me much longer to realize I needed to go). But, the thing is, it was her boyfriend D.B. who I really admired and wished to emulate. D.B. started a Dungeons & Dragons game before the pandemic and was kind enough to invite me to join. I was thrilled to be a part of the campaign and really enjoyed having him as dungeon master. But, L.B. got sick, and then the pandemic came, and we could no longer play D&D except over Zoom. I missed the personal interactions but I accepted the pragmatic limitations.

The thing is, D.B. and L.B. lived about an hour drive away, so whenever I was going to be close to where they were, I would send them a message asking if they were up to meeting. I didn’t think at the time that L.B. may not be up to meeting and was just sad at the repeated refusals. And so, I became an Asshole. I misinterpreted the refusals D.B. saying he and L.B. didn’t want to hang around with me, and said so, and after that I was blocked by D.B. and kicked out of his D&D game.

That loss caused me to truly hit an all-time low, confused about how I could have done so wrong, and finally forced myself to find a new therapist, since my old one was no longer covered by my insurance. In many ways, I think my mind reeling and making bad assumptions is very typical of an ADHD brain, and as that was the best explanation for why we were no longer friends, I posted a video trying to explain how I tend to self-sabotage, thinking I have friends I don’t deserve, and saying and doing things that fulfill my inner demon’s predictions where I will ultimately always say the wrong thing. Of course, me being an asshole, I didn’t realise the video should be interpreted as someone whining about being hurt by rejection when I only saw it as apologizing for overreacting to rejection. I tagged L.B. on social media and she interpreted it in the former way and began crying profusely while I was at work in the SCIF. It was so bad that my hero D.B. unblocked me just to tell me I did this to L.B. I was mortified and knew I could not say anything to defend myself, that anything I would say would make it worse, and I had to return to the SCIF. And, I had to be an asshole.

E.P.

After I started living on my own, I started dating a friend of mine I met through Bumble‘s BFF feature. E.P. and I got along great and when she suggested we become more than just friends, I ended my relationship at the time and started dating her. We had some awesome experiences together and I even cooked her Lobster on her birthday. But, as the summer drifted into autumn, we started to see less of one another. Then, last November, I had tickets to one of Taylor Tomlinson‘s last two shows on her Have It All tour. I got the ticket months earlier, constantly refreshing the app to get them as soon as they opened, while sitting in the parking lot of my work since I didn’t want to be in the SCIF when I made the purchase. As the day loomed neerer, I went out with a greedy woman who clearly wanted to just get the ticket out of me, and my friend L.S., who I really wanted to go with, was part of a press conference in New York, so she couldn’t make it. So, I ended up inviting E.P. I found out later L.S.’s conference was cancelled, but by then it was too late, as I’d already invited E.P.

E.P. and I had fun, and she got me a nice gift, making me want to return the favour. We weren’t intimate that time, though we had been before, mainly because I didn’t want her to think I was quid pro quo with her. I remember her mentioning she liked some special socks and wanted some special tea so I went and got some inadvertently crappy socks and really nice tea from Ireland. I tried and tried to meet up with her again, but things kept coming up. Finally, we set a date where we could meet for two hours. In the runup to our date, she texted me that her husband—yes, she was married, but she told me she was ENM and I’d have ended it otherwise—said she couldn’t go out. I, of course, being the asshole that I am, misinterpreted this and the husband saying she couldn’t go out that Thursday, and assumed we were still meeting that weekend. So I texted her a few times over the weekend, asking when she was going to get here, and accepting she might not make it. She never replied because of course she had told me she wasn’t going to make it. My overthinking mind misinterpret things and she blocked me. The asshole strikes again.

L.S.

Back in January, L.S., who I am quite attracted to romantically, invited me to a play to raise money for the homeless. I was excited to go and wanted to sit with her. I got their early and scanned the audience, but didn’t spot her. I looked and looks but L.S. was nowhere to be seen. So I found a seat in the third row, right and began to enjoy the performance of Annie. Midway through the third act, one of the actors escorted in a woman—L.S. I didn’t know at the time that he was one of the performers but I decided if L.S. had company, I wasn’t going to disturb her. So, at intermission, I ignored her. I intentionally kept to myself, reading the playbill. Like an asshole. I met her after the play and we did have a nice chat and she seemed to want to continue chatting but I had to get home before my Safety Score went up for driving after 22:00, raising my Insurance. And so I said goodnight, and left as the asshole I was.

AITA?

Actually, it’s complicated. In those situations, yes, I was an asshole. But am I an asshole? No! Most assuredly not. I admit I make mistakes because to see our own mistakes is the only way we can learn from them. So, I accept my poor behavior as being poor, but I’m the better man for it, for I learn from my self-sabotage and I do things differently. And that’s the point. Sometimes you can’t avoid being the asshole—but, unless you learn from it, you’re going to be the asshole again.

All this and more is covered in our episode on Self-Sabatoge.

Allow Me to Choose Your Districts

In 2021, the United States performs its decennial process of drawing legislative districts. I, for one, have been very concerned about how this process will go and rather than sit by and let it happen, I want to be involved. This is why I am applying to the Virginia Redistricting Commission.

To that effect, here is my statement:

I feel that I would be an instrumental member of Virginia’s 2021 Redistricting Commission. I am a Progressive with a Conservative relations including members of my very close family. I also have a number of conservative friends. I feel being able to talk to the other party is key to choosing fair districts. I believe in ending Gerrymandering and stopping the practice of Packing and Cracking. I also am an ardent supporter of the Voting Rights Act and want to make sure our General Assembly and Congressional Delegation reflect the basic makeup of the citizenry of Virginia.

This can be accomplished by making sure some districts are biased toward those protected groups while avoiding packing too many and diluting voting power overall. I am a firm believer in the compactness and political efficiency of legislative districts. Compactness is just the perimeter divided by 4π times the area of a district with the fraction being the compactness measure, and 1.00 (100%) is perfectly compact. I also want to use political efficiency to choose our districts. Efficient districts are competitive districts. And the safer a seat, the more wasted votes on that seat. Any vote beyond the minimum needed to win is a wasted vote and I want all our districts to be as politically efficient as possible and waste as few votes as possible.

I am a software engineer and I know that with these 3 scoring algorithms weighted VRA above Efficiency above Compactness, and trying to get the best score overall, that a program can generate perfect, fair, and equal districts using machine learning and game theory. I also want to follow the 12-year rule to bias the result. If we look at the last 16 state-wide elections over the 12-year period from 2009–2020, we expect our House of Delegates to be 51 Democrats, 48 Republicans, and 1 Independent (perhaps Libertarian). Though districts of pure third party would be difficult, a split of about 51/48 ±1 seat does align well with the will of the Virginia people and should be an idea we espouse as a board. I’m here to make sure our board follows these ideals and I know I will be a very valuable member of the committee. I look forward to joining the team.

Application for Service on the Virginia Redistricting Commission, Jeffrey C. Jacobs

Please note, that I have redacted the list of conservative family members I have. I do list them in the application but wish to maintain their privacy as Trump voters.

EDIT 2020-12-05: I spoke to some of my family and we agreed that by changing the text to what’s above I could share with you the full text from my application. That said, there is something I am still considering adding of a personal nature.

In any case, I don’t know when I would have time to write such a program, but I know how I would do it and I would love the opportunity to try!

36 Hours…

I bought my current iPhone on 30 September 2013—over 7 years ago. My iPhone 5S has served me well throughout the years but for the last fourteen months or so, I have been chafing over the inability to upgrade my phone to the latest Operating System. I knew then that, despite preferring the finger login, it was time for an upgrade or the massive, up-front cost.

However, I wasn’t ready just yet. Then SARS-CoV-2 happened, I had to quit my job for more money. Then COVIDWISE was released, and yet totally incompatible with my phone! This wan’t even the first app I was unable to download requiring Bluetooth Low Energy (BLE) technology. I was becoming more and more distressed over my inability to install the apps I so desperately wanted—even more so having forgotten some of them with no way to bookmark or remember. And, as an App Developer, I really should have the latest gear to test out the latest technologies.

iPhone 12 Pro Max ½TB, Blue
iPhone 12 Pro Max ½TB, Blue

On 10 July, with my final vacation payout, I decided it was time to upgrade. I knew a new Phone was coming soon—and hoped it would add 5G support. I waited. The September Apple event came with no update. The October Apple event came with an announcement but you still couldn’t buy the iPhone 12 Pro. The date on the order page said I had to wait until 23 October for that. So I waited so more. I got up early on that Friday and, yes, the iPhone 12 Pro was available, but not the 12 Pro Max! I had to wait until 6 November for that!

And I did.

The phone is on its way. 36 hours and counting…

iPhone 12 Pro Max in Transit
iPhone 12 Pro Max in Transit

Keep coding my friends and write great software. I hope you will be as gainfully employed as me, soon!

How to Install Glassfish

Glassfish is a Java Library for creating Java Message Queues. Regular readers my be surprised to know I am also a Java coder since I usually talk about Python and C++, but just as I occasionally speak Italian, I am multilingual. In this case, though, this is all about Java.

Unfortunately, despite what it’s billed to be, Glassfish 5 isn’t as turn-key an application as it appears to be and therefore I wanted to fill in the gaps for would be message queuers—whatever the word is—who may be struggling.

First, let’s download Glassfish: https://javaee.github.io/glassfish/download

When you check out the readme file, you’ll see the following text:

2. Starting GlassFish
=====================
The 'asadmin' command-line utility is used to control and manage GlassFish (start, stop, configure, deploy applications, etc).

To start GlassFish, just go in the directory where GlassFish is located and type:
        On Unix: glassfish5/glassfish/bin asadmin start-domain
        On Windows: glassfish5\glassfish\bin asadmin start-domain

After a few seconds, GlassFish will be up and ready to accept requests. The default 'domain1' domain is configured to listen on port 8080. In your browser, go to http://localhost:8080 to see the default landing page.

To manage GlassFish, just go to web administration console: http://localhost:4848

The GlassFish README.txt file.

That’s all well and good, but, if you’ve never used Glassfish before, when you follow those steps, you’ll see the following cryptic error:

Exception in thread “main” java.lang.NullPointerException: Cannot invoke “org.glassfish.hk2.api.DynamicConfigurationService.createDynamicConfiguration()” because “dcs” is null
      at com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl.initializeServiceLocator(AbstractModulesRegistryImpl.java:152)
      at com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl.newServiceLocator(AbstractModulesRegistryImpl.java:144)
      at com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl.createServiceLocator(AbstractModulesRegistryImpl.java:218)
      at com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl.createServiceLocator(AbstractModulesRegistryImpl.java:224)
      at com.sun.enterprise.module.single.StaticModulesRegistry.createServiceLocator(StaticModulesRegistry.java:88)
      at com.sun.enterprise.admin.cli.CLIContainer.getServiceLocator(CLIContainer.java:217)
      at com.sun.enterprise.admin.cli.CLIContainer.getLocalCommand(CLIContainer.java:255)
      at com.sun.enterprise.admin.cli.CLICommand.getCommand(CLICommand.java:231)
      at com.sun.enterprise.admin.cli.AdminMain.executeCommand(AdminMain.java:371)
      at com.sun.enterprise.admin.cli.AdminMain.doMain(AdminMain.java:306)
      at org.glassfish.admin.cli.AsadminMain.main(AsadminMain.java:57)

$ glassfish5/glassfish/bin/asadmin start-domain

Clearly, Glashfish is not a turn-key installation.

From here, it was up to me. Google was no help. "dcs" is null as a search term was too generic and including the full, topmost error only gave a page with sample Java code, not how to actually start the server.

To the best of my ability, I believe the error is related to the DynamicConfigurationService object—that’s what dcs stands for.

Looking through the QuickStart document I thought maybe it’s because I didn’t install to my home directory, ~, but moving it there produced the same results.

The next thing to try is to downgrade to Java 8. I’m not fond of Java 8 as it was one of the last Java versions to be 32-bit—which is incompatible with MacOS Catalina—but fortunately, Oracle provides a 64-bit, Catalina-compatible version.

Once Java 8 was installed, I just needed to tell my terminal to use that version instead of the default one. First, I needed to get the location for Java 8 in the list of installed Java VMs:

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
    15, x86_64:         "OpenJDK 15" /Users/username/Library/Java/JavaVirtualMachines/openjdk-15/Contents/Home
    13.0.4, x86_64:     "Zulu 13.33.25" /Users/username/Library/Java/JavaVirtualMachines/azul-13.0.4/Contents/Home
    1.8.0_261, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home

/Users/username/Library/Java/JavaVirtualMachines/openjdk-15/Contents/Home
$

What Java VMs are available?

Finally, I had to set the local Terminal to use the Java 8 VM:

$ export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_261`
$

Set the Java VM to Java 8.

Success!

$ glassfish5/glassfish/bin/asadmin start-domain
Waiting for domain1 to start ......
Successfully started the domain : domain1
domain  Location: /Users/username/glassfish5/glassfish/domains/domain1
Log File: /Users/username/glassfish5/glassfish/domains/domain1/logs/server.log
Admin Port: 4848
Command start-domain executed successfully.
$

Starting Glassfish!

I hope that helps and I am so happy with my new job!

Jeffrey’s Jammin Birthday Bash

Join me to find out how I like my new job, the exciting plans I have for the upcoming year, and so I can give a personal thanks for your personal friendship!

Please note, the official start time is 20:00 because I want to make sure not to start it before I finish my first full day of work at the new job. If I finish sooner, I will open the room earlier. This is, after all, an exciting time for me. My first new job in 18 years, and the first of four steps on the route to make me a better man, and much, much happier!

This event is opened to everyone who claims to know me! All of my software colleagues, all of my fellow authors, fellow science readers, fellow Doctor Who fans, fellow cosplayers, fellow Electric Car drivers and enthusiasts, all of my Equal Rights Amendment sisters and brothers in arms, all of my National Popular Vote Interstate Compact supporters, all of my avid gaming friends, all of my friends abroad except those in Europe—have your kip, mates—all of my fellow Toastmasters, all of my fellow aviators, all of my fellow musicians, tous mes amis qui parle français oder Deutsch или по-русский o italiano, my acting friends and my friends who eschew meat!

The only thing I ask is you be respectful, kind, and know that I hope you all consider any friend of mine a potential friend of yours!

There is a password to this event. It’s not hard to guess if you know me but if you want to know, and you are reading this on from Twitter, message me, on Tumblr, message me, on LinkedIn, again, message me, or join me via the Facebook event. Or, just comment on this blog, with your email address, and I will mail it to you.

See you all next Wednesday!

Account does not enabled REST API.

18 Years and thanks for all the Fleets

Today I tendered my official resignation with the Naval Research Laboratory. I worked at the Laboratory for 18 years, under three Presidents and many Congresses. In that time, I pushed for at work EV Charging in the FAST Act, I started the NRL EV Group (link accessible within NRL), I sang with Polly and the Saccharides (no link available), and I even gave some Toastmasters speeches (NRL Link).

I very much enjoyed my time there and really am sad to go but I have been having so many problems paying for #CO2Fre and its maintenance that I have no choice but to accept a new job in the private sector. My only other solace—besides finally getting to write code again—is that I can finally use a part of my McGill degree that I’ve not been able to exercise beyond writing fiction.

Thus, it’s not so much an end, but a new beginning. And who knows what the future may bring! After all, I would like to return to Federal Service on day and accrue at least two more years to get my FERS to 1.1%. The only thing for sure is I’m a lot less available as a coder now.

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!

I’m Running Late

My boss doesn’t understand how hard it is to text when you’re stuck in traffic. That’s why he wants to fire me. That’s why I’m looking for a new job. And I will continue to consider a better offer and say goodbye to just under 18 years of Federal Service, but I think I’ve come up with a better way!

The thing is, if I’m running late because I’m stuck in traffic—or in a car with a lackadaisical Uber driver who won’t listen when I tell him I need to get to work on time—I might just have a solution. I could build an iOS app to text my boss for me!

I’m not actually sure I can do this. My app would have to always be running or at least be run at certain times when I would be expected to text. The idea would be, it would trigger at a fixed interval before the time I’m supposed to be at an Event, and if I’m not, say, within 100 m of that location, automatically send a text saying I was stuck in traffic and running late.

Phase one will be to build the app framework. Once that’s done, I want to see if I can have my app generate a text in the first place. I wouldn’t be surprised if iOS disallows that, so that’s why I want to determine that first.

Phase two will involve me setting a timer and providing a notification when the timer dings warning that, if the notification isn’t dismissed, the text will be sent.

Phase three will involve getting the GPS location of the phone and comparing it to the location of the Event to see if the phone is within 100 m, and if so, it will disable the text. I will then add a grace period where you must send the message by. For instance, if you’re due at the Event at 10:00, and you set the grace period to 15 minutes, the text goes out at 09:45, well before the Event is scheduled to begin.

Phase four will read your calendar to automatically generate alarms and warning texts. This will be filterable so that only events you choose will send out the text warnings. Each event will have to have a text number associated with it, but that shouldn’t be too hard if I also give the App access to the owner’s Contact List where you can select one or more numbers from.

I hope to have all that code complete, tested, and submitted to the App store by 1 July. I don’t know if I’ll have the time—or even if the texting is possible—but the beauty of this App is it’s extremely multi-functional. It doesn’t just need to be about getting to work, it can be for any appointment where you’re likely to be stuck in traffic or otherwise would have difficulty generating a text in a timely fashion.

I know for my part, when the world is collapsing on me and someone commits grand larceny against me or I get a $2,000 tyre repair bill for a slow leak, and thus am frazzled and having trouble remembering my name never mind to text when I’m running late, I won’t get fired because I arrive at 10:05. And that’s a very good thing!

Feel free to track my progress and remember, though job offers keep coming in, I remain available for hire!