Friday, April 3, 2026

No, It's Not the Journey; It's the Destination

I don't hate vacations. I hate traveling. And the more complex the traveling, the more variables and uncontrollable vectors there are that will come into direct conflict with my plans and expectations, the more I will hate it.

We're not going to ever invent teleportation. That's just not ever going to be a thing. But if I subscribe to the belief that the world stops existing when I'm asleep, the next best thing would be to just knock myself the fuck out for an entire trip. Think the shuttle to Fhloston Paradise in The Fifth Element: you show up, get on the shuttle, get in your little sleep cupboard, and you're put to sleep for the entire trip. Nobody reclining their seat into your lap, no passive-aggressive armrest battles, no chump in the window seat squeezing by you 12 times to go to the bathroom--sounds like the ideal transit to me.

In fact, I'll go one better. Those pods that all the truck rental companies have now where they dump it in your driveway, you fill it up, and then they show up and haul it to wherever you're moving to? Yeah, do that, except with people. The travel company drops off the coffins at your house. (They're going to be called something less death-related, like "Somnus Capsules", but, yeah, everyone's going to call them "coffins".) At the appropriate time, you get in, the coffin gasses you to sleep, the transport picks up you and your family and takes you to the transit craft, you get shipped to your destination, and they wake you up with gentle music, a back rub, and a frozen margarita.

Now, I'm sure there are going to be concerns with human trafficking with this mode of transportation, but let's not throw the baby out with the bathwater. We'll figure out a way to ensure that anyone getting into a Somnus Capsule is doing so of their own free will, and is 100% aware of the location to which they're being transported.

I, for one, would LOVE to go to sleep in a coffin in my driveway, not regaining consciousness until I got to Europe. 

Saturday, January 31, 2026

What Comes After

One common misconception about atheists is that we're all convinced that we know for a fact that there is no god, that there is no heaven and no hell. That's not true.

As an atheist, I believe I have no reason to pretend that I know that there is a god, heaven, hell, or whatever. I also don't think there's any way I can say definitively that there isn't. So, what's left? Belief and hope.

What I believe is that if there is a heaven, it's not nearly as rules-based as humanity's religions pretend it is. If there is someone or something above everything that set things in motion, it's not at all as capricious,  cruel, vindictive, illogical, or even at all as concerned with our thoughts and actions as the typical myths of a god or gods profess.

What I hope, and this probably surprises most people who aren't atheists, is that there is something that comes after all this, and that we will retain memories, emotions, and the ability to recognize and interact with individuals from this plane of existence.

Simply put, I hope I'll get to see my mom again. I hope I get to snuggle the cats who have been an important part of my life but who have passed on. I look forward to these things; I simply have no inclination to act as if they are absolute certainties but only if I act a certain way or say a certain prayer to a certain deity.

Saturday, January 10, 2026

Who's Got Time for Memoirs?

I have no idea why I'm even doing this.

I found an old export I made from my blogging years before I closed my LiveJournal account, and I've been copy/pasting a few entries here. Just because.

I don't think I'm going to end up putting everything here (I wrote a lot of cringe self-pitying posts. Like, a lot a lot.) But every now and then, I may continue adding a handful of old blog posts. It's kind of fun.

Well, maybe not fun, but definitely interesting. To me. Somewhat.

Saturday, April 27, 2024

Overlap, Iowa

Overlap is the largest city in central Iowa right on the border, a rural metropolis and the smallest ghost town in the United States. It is known for its sprawling fields, bustling suburbs, desolate swamps, congested coastlines, abandoned territories, and for absolutely nothing at all.

The reason for its paradoxically muddled description is that Overlap, Iowa is the specific convergence point of all timelines, plot lines, parallel universes, and alternate realities.

There is no continuity in Overlap whatsoever. A particular person might be a sheriff one day and a custodian at a secret government research facility the next. Come next week, they might not even have ever existed.

The population of Overlap are not aware of their unique cosmic positioning. They simply go about their days as they always have, never realizing that their yesterday had no bearing at all on today, while tomorrow is a completely random concept.

Saturday, April 20, 2024

A Dewey Decimal System of My Own

 Since I abandoned the social media platform previously known as, well, as not a single-letter name, I've been using and enjoying Mastodon, a decentralized version of microblogging. In a nutshell, anyone can start a Mastodon server, and there's no corporate overlord making crappy decisions designed to tank its stock value on purpose. Also, there's no stock value.

Mastodon is part of what's been named the Fediverse, which is the umbrella term for all sorts of decentralized versions of popular web sites. Even better, these federated sites are designed to work in concert with each other, which in my opinion is one of the main goals of an altruistic version of what the Internet can be.

Another part of the Fediverse is BookWyrm, a federated version of Goodreads. I used to try to use Goodreads to track my books and my reading, but I fell out of using it for some reason. With an exploration of the Fediverse and my discovery of BookWyrm, I've found myself back in the world of obsessively tracking the books I own, and which ones I've read or not.

I think part of what caused me to drift away from Goodreads was that I felt like I was being too obsessive about tracking everything: what was wrong with just reading and enjoying a good book? Did I have to enter it into a database and categorize it and rate it and review it?

Getting back into tracking my books has made me realize I think I was growing embarrassed about how much I enjoyed sorting and updating my own library. It was weird, right? But now, I don't think I care. At least, I'm trying not to care.

Taking things that are disorganized (or poorly organized) and applying some kind of logical order to them actual gives me joy. I can admit that now. I like tidying up when my office gets overly cluttered. It not only gives me a sense of satisfaction, but I feel I've accomplished something by making it better. In this case, keeping better track of books I've read and books I want to read, and books I own or that I once owned and can't remember if I got rid of them for some reason.

It's kind of a large undertaking, since I possess far too many books (especially now that I've started using my Kindle more and more). But as long as I only do maybe a shelf a night, and only then if I feel like it and not because I have to keep at it until it's done, it's been pretty enjoyable.

And regarding the title of this post: I don't actually have any kind of self-created system for categorizing my books. I just liked the sound of it as the title of a blog entry. Again: possibly showing my weird to the world, but I care less and less about that. And that's good.

Sunday, April 14, 2024

Off.

 I finally get it.

I never really understood why people who were on medication would ever intentionally stop taking them, short of the medication making them feel worse than they did without it.

But what about making them feel less than they did without it?

I've noticed during the past few years that I wasn't crying at movies anymore, even movies that were once guaranteed to make me at least tear up, no matter how many times I'd seen them. I could sense the emotions present in YouTube videos of animals rescued from abusive situations or military personnel surprising their kids by returning from overseas and showing up at some school event. Both of those used to be automatic waterworks triggers but now, nothing.

I missed it. I missed the emotional release of letting tears flow, then gathering myself with a few breaths and moving on.

Wednesday, April 3, 2019

Creating and Updating Jira Issues with PowerShell

In attempting to find a way to programmatically manipulate Jira, I discovered that the information out there on the Internet is somewhat scattered. I couldn't find one central location that gave me everything I needed to move forward. After a period of trial and error, I managed to piece together the disparate parts into a PowerShell solution.

This is my basic function for getting a user's name and password.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

function IdentifyUser
    {
    # Prompt user for logon credentials.
    $script:MyCredential = Get-Credential -Message "Please enter your network user ID and password:" -UserName $env:UserName
    if ($script:MyCredential)
        {
        $script:attemptConnection = $true
        $script:username = $script:MyCredential.Username
        $script:password = $script:MyCredential.GetNetworkCredential().password
        }
    else
        {
        Write-Host ""
        Write-Host $script:equalsLine
        Write-Host "Logon canceled by user."
        Write-Host $script:equalsLine
        }
    }  #IdentifyUser


This function contains many of the fields associated with a Jira issue. This is where values would be altered for creating or updating a specific case.

function InitializeVariables
    {
    $script:target = "https://[your Jira base URL]"
    $script:projectKey = "[your Jira project key]";

#===================================
#   Available variables/Jira fields
#-----------------------------------

    $script:createOrUpdate = "update"
    $script:issueKey = "$script:projectKey-1" # this is ignored if creating an issue

    $script:acceptanceCriteria = "If you build it, they will come."
    $script:assignee = "[a Jira user name]"
    $script:description = "This issue was created from PowerShell using Jira REST API."
    $script:dueDate = "2020-01-01"
    $script:issueType = "Task"
    $script:label_1 = "Development"
    $script:label_2 = "Request"
    $script:priority = "Lowest"
    $script:summary = "Jira workflow examination"

#===================================

    $script:attemptConnection = $false
    $script:equalsLine = "=" * 130

    if ($script:createOrUpdate.ToLower() -eq "create")
        {
        $script:method = "POST"
        $script:requestUri = "$script:target/jira/rest/api/latest/issue"
        }
    elseif ($script:createOrUpdate.ToLower() -eq "update")
        {
        $script:method = "PUT"
        $script:requestUri = "$script:target/jira/rest/api/latest/issue/$script:issueKey"
        }
    else
        {
        $script:method = "[ error ]"
        $script:requestUri = "[ error ]"
        }
    }  #InitializeVariables


Here I create the JSON structure containing the field values and submit it to my Jira instance. The REST method invoked is POST for creating an issue, and PUT for updating one (this has been established in the InitializeVariables function.).

function PerformOperation
    {
    if ($script:attemptConnection)
        {
        $bodyString = @{
            update = @{
            }

            fields=@{

            project=@{key="$script:projectKey"} # can be omitted when updating an issue; or it can just "change" it to the value it already has

            #assignee = @{name = "$script:assignee"}
            description = "$script:description"
            duedate = "$script:dueDate"
            issuetype = @{name = "$script:issueType"}
            labels =  [string[]]"$script:label_1"
            priority = @{name = "$script:priority"}
            summary = "$script:summary"
            
            # comment out a line to omit it from item creation/update

            }}

        $bodyJSON = $bodyString | ConvertTo-Json -Depth 2 #-Compress

        try {
            $basicAuth = "Basic " + [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes("$($script:Username):$script:password"))
            $headers = @{
                "Authorization" = $basicAuth
                "Content-Type"="application/json"
                }

            $response = Invoke-RestMethod -Uri $script:requestUri -Method $script:method -Headers $headers -Body $bodyJSON -UseBasicParsing

            if ($script:createOrUpdate.ToLower() -eq "create")
                {
                Write-Output "ID: $($response.id)"
                Write-Output "Key: $($response.key)"
                Write-Output "Self: $($response.self)"    
                }
            }
        catch {
            Write-Warning "Remote Server Response: $($_.Exception.Message)"
            Write-Output "Status Code: $($_.Exception.Response.StatusCode)"
            }
        }
    }  #PerformOperation


All that's left is to call these functions in sequence.

InitializeVariables
IdentifyUser
PerformOperation