The Hourlings Podcast—Episode 4: Marketing Madness

I was pretty excited about this episode as many of my writing friends are great marketers. Of course our host, Martin Wilsey is, my good friend Emma G. Rose is, my wonderful friend Stephanie Mirro is, and of course my dear friend C. J. Ellisson is. I was all ready to sit this one out for all these great authors to talk about their marketing prowess, but alas, C. J. couldn’t make it so I was happy to step in and fill her lovely shoes. In the end, this TimeHorse thinks it turned out rather nicely!

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

Now, go out there and buy more of my books! You’ve been marketed to; see you next week!

The Twelve Doctors and the TimeHorse

Doctor Who: 57 Years Young

The Twelve Doctors and the TimeHorse
A version of the 50th Anniversary background with the TimeHorse Logo. Hence, some currently beloved Doctors are missing.

Today is Doctor Who Day, the anniversary of the first ever episode of Doctor Who. And seeing as it’s also the day that my Reston Writers’ Review meets, I decided I should try my hand a fan fiction once again.

Yes, I did say once again. In fact, my first ever written work was from when I was 14 or so years old, and a huge fan of the program. Colin Baker was the Doctor back then and his companion was Perpugilliam ‘Peri’ Brown. I wrote it to take place during the mysterious disappearance of the Roanoke Colony in Virginia (Modern North Carolina) and involved the Terrible Zodin, a character never appearing on camera, created by Terrance Dicks. Indeed, the character is only mentioned in two off-handed comments in The Five Doctors and Attack of the Cybermen.

For 2020, I wanted to use the Sixth Doctor again only this time with his second companion, Melanie ‘Mel’ Bush, a software engineer—and in my story, a cyber-security expert. I teamed her up with Yasmin ‘Yaz’ Khan and the Thirteenth Doctor. And for fun, I had them fight Missy, with cameos from all the other Masters. Of course, I did need one final cameo to make the multi-Doctor story complete. I added the Doctor’s Granddaughter, Susan Campbell and her husband David as well.

But, let me be honest. The story was total rubbish. I rushed to write the whole thing on my phone on Sunday night just to get it uploaded in time, and like my feeble attempt at a Halloween story with only 101 words, it sunk like a lead balloon. I guess I’m just not on my writing A-game these days. I just need to find the time… does anyone have a TARDIS!

EDIT 2020-12-10: Forgot to post this on Doctor Who day. It was originally scheduled for posting on Monday, 23 November, 2020. Sorry for the delay.

The Hourlings Podcast—Episode 3: Finding the Time

For this episode, I’m back, but our intrepid host Martin Wilsey was unable to attend so the Toastmaster extraordinaire David Keener to host us as we talk about how to find time between work, and home, and all the other things you have to do with life. Believe me, I barely even find the time to update this site, never mind write.

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

I hope you find the time to watch it and keep writing. I hope to see you next week!

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!

The Hourlings Podcast, Episode 2: World Building

This episode of the Hourlings Podcast was one I could only contribute to in indirectly. We have a new YouTube channel, Channel 137—which I hope you will follow—and you may be wondering where the 137 comes from.

As an author, as well as a Physicist and Scientist, I have an affinity for the wonders of the physical world—and so does host Martin Wilsey. The number 137, or more specifically it’s approximate reciprocal, 0.007 297 352 569 3(11), which is about , is important to Physicists. It represents the Fine Structure Constant, ⍺, a ratio between the square of the Fundamental Charge and Planck’s Constant, the Speed of Light, and the Permittivity of Free Space:

The derivation of Alpha
This is the most common formula for calculating Alpha.

Originally, it was a was of defining the distance between spectral lines but has been found in many other physical properties. It’s quite a number!

Which is why we will be ending each meeting with a note about how it was so finely structured!

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

Hope you enjoy the episode despite my lack of tales of intelligent octopuses and planetary colonists suffering technological attrition. Oh, well.

I’ll be back next week though so keep writing and hope to see you there!

The National Popular Vote, Virginia, and then…?

Earlier this year, the Virginia House of Delegates voted to pass the National Popular Vote Interstate Compact. It then went to the Virginia Senate where it was tabled in the Senate Privileges and Elections committee where it now remains. Unlike most tabled legislation, we have it on good authority the Senate P&E will vote on it in early December. If we win there and then in then, assuming we get at least Twenty of the Twenty-One Democrats and—worst case—no Republicans, we can pass the Senate and the General Assembly with the Lieutenant Governor breaking the tie. Governor Northam has promised to sign the bill when and if we do!

But then what?

Minnesota!

Starting now begins our #PopularVote2024 strategy where we look to shore up the last five or six states to get us to 270. One of those states will almost certainly be Minnesota, land of 10,000 lakes! I’ve been to Minnesota, it’s absolutely gorgeous, and the Mall of America is a sight to be seen, as is the Mary Tyler Moore house.

Today, I worked with some fellow NPVIC advocates to find some likely soft Republican districts we could target to get voters to call their State Representative and ask them to support the National Popular Vote Interstate Compact. Of the 134 House Districts, we selected 4 that were battleground districts and one that was a hail-mary pass for any Republican challenger.

Minnesota Legislative Districts
The 134 paired legislative districts of Minnesota; we hope voters in these districts can help Minnesota to be the next state after Virginia to join the National Popular Vote Interstate Compact

We don’t know how well this will go but nothing ventured, nothing gained, eh? And we must try anything that gets us to #PopularVote2024!

Got Melk

Stift Melk
Melk Abbey, a full view. The photo is out of focus as the focus lock on an iPhone 3G was wonky. Friday, 22 October, 2010. © 2020 Jeffrey C. Jacobs

Melk, Austria, is a small, monastery town in North-Central Austria. I visited there in ten years ago today, in 2010, on a trip across Austria. Melk was our first stop as we left for there right after landing in Wien.

2010 was kind of a melancholy year for me since I decided to become a Vegetarian for just that year. I wasn’t ready so reverted back to meat in 2011, but a couple years ago I stopped liking the taste of meat so I went back to vegetarianism. The sad thing was that here I was in Austria and I couldn’t eat authentic Wiener Schnitzel.

The sky was clear that day, perhaps too clear, and the buildings of the abbey shown beautify. I wish the photo could give it justice but the iPhone 3G back then was just not up to snuff.

That said, the Chapel was lovely and I did like how that photo turned out. I love Austria and hope to return someday. Grüß Gott!

Stift Melk, Kapelle
Melk Abbey Chapel. Photo from Friday, 22 October, 2010. © 2020 Jeffrey C. Jacobs

EDIT 2020-12-12: Forgot to post this on the day in question. It was originally scheduled for posting on Thursday, 22 October, 2020. Sorry for the delay.

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!