The Collapsing Empire: Goodreads Review

The Collapsing Empire (CE) is a breezy fun to read space opera. Because I rate books on Goodreads mostly on how much I enjoyed them I gave CE a solid four. If you’re looking for a few hours away from planet moron (Earth) CE is worth the time investment. While I enjoyed CE it’s unlikely I will be following this series as it unfolds in however many books the author and his publisher manage to flog in the future. I’ve reached the point in my life where entertainment is no longer sufficient. I demand new ideas and different ways of looking at things from what I read. By this standard CE barely rates a one.

The only moderately new notion here is that of “The Flow.” The Flow is CE’s magic element. It’s the story element that enables a human interstellar civilization. The Flow plays the same role in CE that the ocean does in Moby Dick. The ocean is not considered a character in Moby Dick but try imagining the novel without it! Remove The Flow from CE and you are left with stock characters, stock court politics, stock predictable disputes, and a tiny little universe that, trust me, feels more stunted than a night spent under a clear dark sky looking at real stars.

As a final note: I’d advise the author to refrain from dispensing his opinions about real-world politics. Nothing ruins a book faster than conflating actual authors with their fictional characters. Many years ago I was on the verge of reading Anne Rice’s vampire books but then I had the good luck to see an interview of Anne Rice going on about how her characters were her lovers. She wasn’t being metaphorical; the woman is nuts. I decided right on the spot that it was unlikely such a delusional nitwit was worthy of my sustained attention. Authors labor under an unspoken Fight Club rule. “The first rule of fiction writing is: stay the Hell out of your fiction writing!”

FCC Follies and Monkey Browsing

There is much wailing on the intertubes about proposed changes to FCC Internet privacy rules. That horrible orange Russian stooge is desecrating the Lightbringer’s enlightened decrees and the usual suspects are having boringly predictable conniption fits. Apparently, our Internet privacy is now under attack and horrible things will ensue. You poor dumb fucks. You have no Internet privacy; you never did! I’m amused by Obama worshippers wetting their pants over Internet privacy; didn’t that entire Snowden thing happen while The One was pushing back the seas? Isn’t it a tad hypocritical to whine about the FCC, a very little fish, when great whites, the NSA, CIA, et cetera, are feasting on fools?

Now pay attention, I am only going to explain this once. If you are concerned about Internet privacy you have to look out for yourself. The FCC is not going to help you. Congress will not rush to your aid. The President, orange or black, will not defend your interests. Government, as it is currently constipated, only serves the donor class. Unless you are injecting large bribes into “the political system” you do not have effective representation. I realize it sucks to be a peon but all is not lost. You don’t have any Internet privacy but you are not powerless.

The proposed change in FCC rules is predicated on the assumption that your browsing history is valuable? It seems there are profit driven corporations out there that care about how many cat videos you watch and whether you swipe left or right. They presume that with enough data mining of your clicks, tweets, and pokes they can craft cruise missile adds that will fly under your bullshit radar and score direct hits on your “buy our shit buttons.” This entire shaky premise can be trivially undermined by simple cheap peon countermeasures.

There are two basic approaches: VPN and Dirty Data.

If you want to stop Verizon, CenturyLink, Charter, Comcast or some other evil mega-corp ISP from recording your browsing history start using a VPN service. There are many VPN providers available now and this FCC ruling will probably encourage the formation of even more. See, the FCC is making VPN great again!

VPN prevents the man-the-middle from being able to view your browsing history but unfortunately, all this does is transfer your browsing history from a mega-corp ISP to a mega-corp VPN. If your VPN is in the good old fuck-You-S-A it could still sell your porn rights to the highest bidder. If you go with a VPN provider choose one that’s based outside the US.

I’m a fan of VPN but if many peons start bypassing their mega-corp ISPs with VPN our ever-helpful government will probably amend the abominable DMCA act and declare the personal use of VPN an act of domestic terrorism! I know this sounds crazy but these days it’s a criminal act in the United States for farmers to fix their own damn tractors if the repairs bypass or replace embedded device software. Yes, intellectual property rights are that screwed up!

VPN is a viable countermeasure for now but Dirty Data is a countermeasure for the ages. Dirty Data works by sabotaging data. The idea is simple, cheap and extremely effective. Before data miners can extract digital gold they have to purge the garbage in their databases. For most corporations cleaning data is an ongoing struggle. It’s always time-consuming, expensive, and it always threatens the ROI of analytic projects. If there’s too much shit in the ice cream the mixture tastes more like shit than ice cream. So how do you mix browsing history shit into mega-corp ISP ice cream?

If you have lots of free time and you really, really, hate your ISP, you can strike back with monkey browsing. Monkey browsing is an updated version of that famous monkey on the typewriter. To monkey browse, visit random websites and randomly click crap on each site. With judicious keystroke timing, it will be a royal pain for your ISP to extract your real browsing history from your monkey browsing.

Of course, most of us can’t devote a few hours a day to monkey browsing but fear not; the monkey-browser-bots are coming! It wouldn’t be all that hard to automate monkey browsing. Many techniques would work. Trust me, in short order, an army of monkey-browser-bots will be delicately stirring shit into mega-corp ISP ice cream. When the signal to noise ratio exceeds mega-corp ISP ROI thresholds they’ll stop trying to filter shit out of ice cream and move to the next corporate delusion. Peon poop is powerful people!

Only cartoons and comedians are allowed, to tell the truth in our grievance seeking culture. It’s not your grandmother’s Internet anymore. Surveillance is a fact of life, and as sad as this sorry fact is cheer up! Half the idiots monitoring you are barely capable of locating their own buttholes with both hands and a flashlight. American intelligence agencies have been so wrong, so often, that it’s a good idea to always discount whatever they’re saying until there is overwhelming independent corroborating evidence. In the meanwhile, you can cheaply punk the “data” they are collecting. Remember, you can whine or undermine!

What is Required: Hybrid Books

It’s time for another product suggestion. Last year I threw out the need for caption printing on the back of photographs. It’s an obvious thing to do but only a few vendors partly support backside caption printing. Eventually, the masses will notice this glaring deficiency, grab their pitchforks, and demand backside captions. We’re not a very smart species but we can learn; especially if we’re motivated by fear. Today’s suggestion is little more esoteric and lacks the “aha-ness” of backside captions.

The world needs a way to combine the virtues of Books and eBooks.

If you read at all I don’t need to convince you that books are nearly perfect. The near perfection of the printed book was brilliantly highlighted in Isaac Asimov’s famous 1973 essay The Ancient and the Ultimate. Asimov’s essay is not readily available on-line and that’s too damn bad because he completely nailed it. The Ancient and the Ultimate should be required reading in English classes worldwide; it’s that good!

Plain old printed books are nearly perfect but nearly perfect is not perfect! eBooks do three things better than printed books.

  1. Duplication: It’s easy to copy eBooks.1
  2. Portability: You can carry entire eBook libraries around on your phone.
  3. Multimedia: eBooks can easily embed sound recordings and video.

Printed books reign supreme when it comes to:

  1. Durability: There are printed books that are hundreds of years old that are still human-readable. Binary formats and media are infuriatingly unstable. I’ve complained about this in the past and I will continue bitching until the long-term binary storage problem is solved.
  2. Privacy and Security: eBook readers, cell phones, tablets, and laptops can be hacked. Plain old printed books do not spy on you or mutate while you’re reading them. They also don’t bombard you with hard to ignore advertisements.
  3. Aesthetics and Beauty: Great printed books are extremely valuable works of art. It’s going to be a long time before eBooks command such respect.

Given that eBooks have a few virtues that printed books do not the obvious question is, “Can we combine the two and form a more perfect book?” Of course, the answer is yes but, like I warned you with backside captions, don’t hold your breath!

A proper Hybrid Book, or hyBook, will look, smell, and taste like a printed book. It will have all the glorious heft of a thick well-bound tome but embedded within it’s covers will be a machine readable version of the book. Ideally, the embedded digital version would be something like an RFID capable of storing a few gigabytes of data for at least two centuries without bit rot.2 To maintain a high level of privacy and security the digital version must be completely off-line, passive, battery-free, immutable, and hashed with the hash prominently printed on a number of pages of the printed version. Such a hyBook would combine the virtues of the printed and digital worlds.

hyBooks, like their conventional printed cousins, would be durable and human-readable over long periods. This sharply contrasts with eBooks. eBooks, with their lamentable DRM policies, geographic restrictions, user monitoring, oligopolistic pricing, and built in obsolescence are essentially self-burning books. You cannot depend on eBook longevity because you don’t control them; they can be conveniently memory-holed without warning. With hyBooks you are in control.

Finally, hyBooks mitigate the most important limitation of printed works: duplication difficulty. As we move into an increasing DRM’ed and censored future with every aggrieved party screaming for limitations on free speech it will become more important to preserve, duplicate, and distribute offensive, blasphemous, pornographic, and opprobrious wrongthink! With well-distributed and hidden hyBooks functioning as highly redundant off-line backups it will be extremely difficult for authorities to suppress ideas. Whenever some twad3 forces the content of a hyBook off-line it will pop up again somewhere else. To memory-holing censors everywhere hyBooks will be like floating turds; one flush will never suffice. Is there any better recommendation than that?


  1. This only applies to non-DRM’ed eBooks. DRM‘ed eBooks are broken. They should be avoided at all costs and their publishers should be tarred and feathered and stuffed head first into septic tanks.
  2. Currently, (March 2017), there is no cost-effective durable and passive technology that can store a digital image of a book within its covers for two centuries.
  3. Twit asshole and dolt: pejorative invention is one of my many specialties.

Affinity Photo Review

There’s a new image processor on my computers. Recently the chief developer of one of my favorite image editors, Picture Window Pro (PWP), sent out a sad email letting all PWP users know that he is stopping PWP development. He thanked us for over twenty years of support and as a last gift converted the final version of PWP to freeware. You can now download and run Picture Window Pro without a key. PWP is a superb program! It’s still the fastest and meanest image editor I have ever used and I am constantly trying image editors. If you’re interested in getting a free copy of PWP download the program before the distribution website shuts down.

I was saddened by this news but all good things eventually end. With PWP going away I decided, for the nth time, to look for alternatives. I reconsidered Photoshop. I’ve used full-blown Photoshop but frankly, I’ve never been impressed. It’s expensive and slow! I use an old copy of Photoshop Elements, mainly to remove blemishes on film scans, but in my opinion, the only Adobe image processing product worth paying for is Lightroom. Adobe is the evil image processing empire. They squeeze you with sluggish performance and abusive subscription payment models and then act like they’re doing you a favor. It didn’t take me very long to abandon Photoshop (again) and keep looking for PWP alternatives. Lucky for me there’s this thing called DuckDuckGo that quickly led me to Affinity Photo.

Affinity Photo is a relatively new image editor that got started in the Mac world and, as of November 2016, is also available for 64 bit Windows systems. Affinity has snagged dozens of positive reviews and, unlike Photoshop, is reasonably priced. I decided to give myself a little Christmas present and bought Affinity Photo.

The Affinity Windows download file is large: over 200 megabytes. Affinity Windows depends on  .Net 4.6.2 which is also installed if it’s not on your machine. It took a few minutes to suck down and install all the required bytes but things went smoothly and I eagerly started the program.

Before relating my impressions of Affinity Photo I will describe my binary image format philosophy. Image editors typically create and manipulate vendor specific proprietary binary image files. Binary image files like PSDs, NEFs, DNGs, and now Affinity’s AFPHOTOs, have a nasty tendency to evolve on vendor whim. This poses fundamental long-term image storage problems. Even if you conscientiously backup and archive your original image files you may discover, a decade hence, that you can no longer load them with current software. I hate this! Photography is for the ages, not the marketing cycles of software and camera companies! If you have ever wondered why the lowly JPG image format still reigns supreme despite its abundant technical deficiencies stop wondering. The JPG format is an open and well described eight-bit channel format. Any competent programmer can write software to read and write JPGs. The same holds for TIFs, PNGs and a few other open formats. This is not true for vendor dominated formats. The specifications, even if disclosed, can change on a moment’s notice.

How can photographers deal with transient binary image formats? There are two basic approaches. You can convert all your images to an open image format. Some photographers convert camera RAW files to high bit TIFs. Converting large numbers of image files is a tedious and resource hungry process but it’s probably the best bet for long-term storage. I use the second lazier approach: maintain at least two independent image programs that can read and write the binary image formats you work with. I use Nikon cameras; they crank out proprietary NEF binaries. Currently, I have four programs on this machine that can read NEFs: PWP, Lightroom, Affinity and ThumbsPlus. I will tolerate proprietary binaries if and only if I have options. Don’t let software and camera companies box you in.

I started using image editors about fifteen years ago. My first editor came with my first digital camera: a one megapixel HP. I cannot remember the name of this program; I only used it long enough to discover its appalling deficiencies. Within a week I had purchased my first version of Photoshop Elements (PE). I was happy with PE until I encountered posterization (read the link for the gory technical details). Posterization wreaks prints and it’s easy to posterize eight-bit channel images. The answer then, as it is now, is to increase your working bit depth. Adobe recommended upgrading from PE to full Photoshop. Why fork over $70 bucks when you can fork over $500? Photoshop Elements has a long history of half-assed support for sixteen-bit channel images and the reason is painfully obvious. If Photoshop Elements fully embraced sixteen-bit channel images there would be very little need for full Photoshop. You could save yourself hundreds of dollars. Adobe decided not to compete with themselves and adopted the time-tested pseudo-monopolistic practice of sodomizing the customer. I did not embrace the butthurt! I started looking for low-cost programs that properly handled sixteen-bit images. It didn’t take me long to find PWP.

This early experience shaped my entire image processing approach. Instead of adopting a single monolithic “industry standard” program and joining the nerd herd I decided to go my way and use many small programs. Instead of a Goliath, I went with many Davids.1 When you take the David approach interoperability moves to the top of the stack. The output of one program must effortlessly become the input of another. How programs play together matters. Additionally, when you apply the David approach, you never look to completely replace your tool set. General purpose tools like Affinity may be able to do all the things more specialized tools can do but probably not as efficiently or as well.

So, before adding Affinity to my trusted tools I asked:

  1. Does Affinity play nice with others?
  2. Is Affinity’s user interface (UI) tolerable?
  3. Does Affinity streamline common tedious tasks?
  4. What new capabilities does Affinity offer?

With these points in mind let’s look at Affinity Photo.

Does Affinity play nice with others?

One of the first things I look for in image processors is tolerable loading times. Part the reason I’ve never been able to stick with full Photoshop is because it takes forever to get the damn thing up. Affinity on Windows easily beats full Photoshop but it’s still slower than good old C coded PWP. PWP comes up in a flash. It’s one of the many reasons I stuck with it for over a decade. Affinity’s loading speed is comparable to GIMP, Photoshop Elements and Lightroom: fast enough to not drive me crazy.

After loading Affinity, I immediately started testing the program’s ability to read and write sixteen-bit TIF files. The basic single layer sixteen-bit TIF file format is one of the best supported lossless image formats. It’s often the only way to move information from one program to another without trashing bits. JPGs are universal, but every time you write a JPG you lose data: that’s the lossy part of JPG compression. Lossy image formats are fine for the web and final presentation but are a total disaster for image editing. Affinity can read and write sixteen-bit TIFs. It can also read and write a number of other important formats like Photoshop Elements PSDs. Affinity converts PSD layers to AFPHOTO layers. It also handles JPGs, PNGs and many RAW formats like Nikon’s NEFs. Affinity plays well with others.

Is Affinity’s user interface UI tolerable?

Once I had satisfied myself that I could slosh bits through Affinity I started evaluating the program’s user interface. UIs have ruined many editors. I’m immediately suspicious when reviewers start lauding a program’s UI before spending a few hundred hours using it. UIs either help or hinder. Affinity’s UI is decent. If you have ever used a layer oriented image editor you will quickly adjust to how Affinity works. I strongly recommend watching the Affinity tutorial videos; they are among the best video tutorials I’ve seen and quickly show what the program can do.

Once Affinity is loaded it’s pretty zippy. Common image handling operations are fast enough to fly under my annoyance radar. Image processing can be very demanding. Don’t expect to stitch 500-megabyte panoramas from original RAW files instantly. With current hardware and software, some things will take time. It’s fair to say that Affinity’s performance compares favorably to other image processors. I can put up with Affinity’s user interface.

Does Affinity streamline common tedious tasks?

After playing with Affinity for a few days I used the program to help restore some old scanned slides. Old pictures are always damaged; they all need a bit, or a lot, of retouching. The problems most people associate with old pictures, tears, color changes, and loss of tone are usually easily fixed in most editors. The biggest job is removing thousands of scratches, spots, and stains. Most restorers give up and crop or blur away such defects but I’m with Lady Macbeth: “out, out damn spots.” Any tool that helps me hunt down and exterminate spotty pests will be lovingly embraced.

The Affinity inpainting brush works a lot better than the corresponding Photoshop Elements healing brush. In particular, it crosses linear backgrounds, buildings, fabric patterns, and so forth without unduly destroying detail. Removing long linear scratches that cross regular structured detail is a soul draining chore. Whenever I see such defects I typically give up and find another picture to restore; I have a big backlog of scans awaiting restoration! This slide of the southern end of Beirut Lebanon, taken by my

I am still exploring the Affinity Photo image editor. I used it to restore this scan of a Kodachrome slide my father shot from a hotel window of the south coast of Beirut Lebanon in 1968. The Continental Hotel is visible in the lower left corner of this image. My mother often stayed in the Continental when she visited me in Beirut. I fondly remember having continental breakfast in the Continental. The original slide was overexposed and covered with splotches and sky fingerprints. The retouching tools in Affinity Photo are better than corresponding tools in Photoshop Elements. I particularly like the Affinity inpainting brush; it works well on textured and linear subjects. I was able to remove long scratches cutting through the buildings in this image without unduly wreaking building detail. I also used the inpainting tool to remove a cutoff street light and a car it was shading on the bottom of the image. It's easier to remove objects with Affinity Photo than it is in Photoshop Elements.

I am still exploring the Affinity Photo image editor. I used it to restore this scan of a Kodachrome slide my father shot from a hotel window of the south coast of Beirut Lebanon in 1968. The Continental Hotel is visible in the lower left corner of this image. My mother often stayed in the Continental when she visited me in Beirut. I fondly remember having continental breakfast in the Continental. The original slide was overexposed and covered with splotches and sky fingerprints. The retouching tools in Affinity Photo are better than corresponding tools in Photoshop Elements. I particularly like the Affinity inpainting brush; it works well on textured and linear subjects. I was able to remove long scratches cutting through the buildings in this image without unduly wreaking building detail. I also used the inpainting tool to remove a cutoff street light and a car it was shading on the bottom of the image. It’s easier to remove objects with Affinity Photo than it is in Photoshop Elements.

father in 1968, is typical of many images in my backlog. There were dozens of long linear scratches running through the buildings. It would have taken hours to fix them with PE. All it took was a few passes with Affinity’s inpainting brush to remove them. I was impressed. This single tool significantly speeds up restoring scratched and spotted images and justifies Affinity’s purchase price all by itself.

Another Affinity tool that streamlines common image processing tasks is the Affinity panorama tool. Most modern image editors have fairly decent panorama tools and building a panorama is easier than it used to be. In the image editing Dark Age, you had to manually select control points and master blend masks to build decent panoramas. It could take hours to align a single image. Current editors use effective automatic control point detection and advanced blending algorithms. In most cases, it’s a simple matter of using good capture technique followed by loading the individual images into a panorama tool to generate decent to excellent results.

We are living in a panoramic golden age but there are still problems. I shoot entirely in RAW because RAW preserves the most information and affords the greatest post processing options. Panoramas often encompass scenes of high contrast. Image tones will vary from extremely bright to very dark. It’s not uncommon for ordinary panoramas to span twelve or more stops of dynamic range. When processing high dynamic range pictures it’s extremely advantageous to do all your work on sixteen-bit or thirty-two-bit channel images. Blending eight-bit panoramas can release the posterization Kraken; trust me, you don’t want that monster savaging your scenes.

Unfortunately, the Photoshop Elements panorama tool is inherently eight-bit. This means I must do all my major tone adjustments in Lightroom before panorama stitching. Adjusting the tones of a single image is tedious, doing it for many panorama frames is cruel and unusual punishment. Adobe’s answer is always the same; give us a lot of money and we’ll release you from eight-bit Hell! Lucky for us Affinity gets us out of eight-bit panorama Hell for a lot less.

The following panorama of the mountains near the eastern entrance of Glacier National Park was directly generated from Nikon NEF RAW files. All feature detection and blending calculations were high-bit. Tone adjustments were aided by regular tone mapping. Tone mapping is like an automatic Zone System. Compared to what I used to put up with ten years ago Affinity panorama building is almost as easy as scanning scenes with an iPhone. Affinity significantly streamlines routine retouching and panorama building.

Looking west from just outside the eastern side of Glacier National Park near Saint Mary. The weather was grim and dark, just the way I like it, when I braved the rain to snap the frames that went into this panorama. I built this panorama directly from Nikon NEF files in the Windows version of Affinity Photo. My favorite image processor, Picture Window Pro, is being retired and I am exploring alternatives. I rather like this result.

Looking west from just outside the eastern side of Glacier National Park near Saint Mary. The weather was grim and dark, just the way I like it when I braved the rain to snap the frames that went into this panorama. I built this panorama directly from Nikon NEF files in the Windows version of Affinity Photo. My favorite image processor, Picture Window Pro, is being retired and I am exploring alternatives. I rather like this result.

What new capabilities does Affinity offer?

So far, the features I’ve discussed are common to most image editors. Does Affinity offer anything new or special? There is one Affinity feature, the FFT (Fast Fourier Transform) Denoise filter, that greatly mitigates one of my long-standing retouching nightmares: regular patterns.

Many old portraits were printed on patterned paper. The following is a crop of an old (1935) baby picture of my mother.

evelynpattern

My mother as a seven-week-old baby. This 1935 picture was printed on patterned paper. Patterned paper often adds luster and depth to photographs but it also makes it more difficult to retouch them. The Affinity Photo FFT (Fast Fourier Transform) Denoise filter can remove regular patterns without unduly softening images.

As you can see the entire picture is covered with tiny regular hexagons. Patterned prints were popular in the early and mid-20th century. The pattern adds depth and luster and has the nice side effect of making prints difficult to copy. Patterns also make retouching difficult. Retouching spots and scratches on patterned backgrounds tends to make them more, not less conspicuous. If only there was some way to remove the damn pattern before retouching. Affinity’s FFT Denoise filter does just that.

I applied the FFT Denoise filter to my mother’s baby picture and then ran through my regular retouching regime: see the following before and after diptych.

For some restorations, the ones that please or annoy me, I create a before and after diptych. I want to convince myself that my restoration work was worthwhile. Most of the time the restored image is better but in more cases than I would like the original scan is superior. And, every now and then, I cannot decide which one I like the best. This rendering of an old faded patterned print of my mother as a baby is one of those images. The original print is on patterned paper. The pattern imparts a quality that the restoration lacks. Ansel Adams once wrote that the negative is the score and the print is the performance. For restorers, the scan is the score and the restoration is the performance. Sometimes the music is glorious and clear and sometimes it's rap – rhymes with crap!

For some restorations, the ones that please or annoy me, I create a before and after diptych. I want to convince myself that my restoration work was worthwhile. Most of the time the restored image is better but in more cases than I would like the original scan is superior. And, now and then, I cannot decide which one I like the best. This rendering of an old faded patterned print of my mother as a baby is one of those images. The original print is on patterned paper. The pattern imparts a quality that the restoration lacks. Ansel Adams once wrote that the negative is the score and the print is the performance. For restorers, the scan is the score and the restoration is the performance. Sometimes the music is glorious and clear and sometimes it’s rap – rhymes with crap!

Affinity Conclusion

Affinity, like PWP, is a great value. The first Windows version is already superior to every version of Photoshop Elements I’ve ever used. It’s not as comprehensive as full Photoshop, but if you subtract the marginal features of Photoshop and keep the essential core elements, you’ve basically described Affinity’s feature set. Affinity is a layer editor but it’s not a Photoshop clone. The UI is completely modern, RAW development is built in, sixteen-bit layers are the default, and useful stack operations like automatic alignment are a click away. Affinity also supports thirty-two-bit HDR file formats and high dynamic range composites. There’s a lot of bang for the buck: strongly recommended!


  1. If you remember what happened to Goliath siding with David doesn’t seem like much of a risk.

My Final Facebook Fuckoff

It’s the start of a new year and much has changed. This week we moved into a new house. Our move has been an eight month and four state ordeal but I am hoping we will be here for some time. I am tired of moving and our frequent moves are confusing our self-appointed digital overlords. This afternoon, after unpacking and assembling the table I am now writing on, I tried to login to Facebook using a borrowed library hotspot. The Boise Library consortium is now lending out Internet Hotspot devices. My wife put one on hold about a month ago and she got an email the other day that the device was ready to be picked up at the Eagle branch. It will be a week or two before our local broadband supplier can wire up our new house so the hotspot perfectly hit our Internet dead spot. We picked it up and I’m using it now.

Getting back to Facebook. My login attempt failed. Facebook detected yet another change in my connection IP address and asked me to verify my account. I’ve done this before. I was expecting a text or reset email but no, this time the bastards had the sheer unmitigated gall to ask for proper government ID. They want scans of driver’s licenses, passports, social security cards and so forth. This was the last straw. I couldn’t even login to delete my account so I sent this message to security@facebookmail.com.

Dear Security at Facebook,

It’s so good of you to ask if I was trying to access my account from a new IP.  Yes, that new login attempt was me. For reasons that do not concern you I move around a lot. It’s irritating that you track IPs and harass users when they go to another coffee shop or library.

This has happened in the past and I have jumped through your irritating hoops to reset the account. Prior to, today you did not ask for PROPER GOVERNMENT ID! There is no fucking way in hell I will be uploading scans of driver’s licenses, passports, social security numbers, or any other form of official ID. It’s bad enough that proper authorities force us to use these documents but, the last time I looked Facebook is not an authority! We don’t have to show proper ID to vote in many states but apparently it’s required to browse your steaming pile of distracting rubbish.

me

My Facebook profile image. Apparently, it is no longer ok to use avatar images on Facebook. I started using this image a few years ago primarily to screw with their facial recognition programs. I will not aid and abet Facebook user profiling. I am not hiding you can browse scores of my pictures by clicking on the gorrilla. Of course, these images are not under the legal purview of Facebook so they cannot legally use them for profiles.

I have always hated Facebook and the only reason I have maintained my tiny footprint in your sewer is to catch a little gossip from real friends and family members. I have done my best to keep my friend list short, my security options on maximum, and my profile information scant and useless. I know you are a giant data mining operation. You entice idiots with cat videos then quietly monitor their mostly boring and pointless lives with the sole aim of selling this information to third parties. Well, count me out! This will be the last byte stream from moi. If I could login I would delete my account but I since I will not change my lovely gorilla profile picture or give proper ID I will have to simply orphan my account. I have already deleted my phone app and purged my browsers of your vile links. I will never login to Facebook again.

I always knew this day was coming. I had long ago decided to drop Facebook when a few family members tired of your trash. I don’t waste a lot of time on Facebook, but be honest, even you know it’s nothing but a complete waste of time.

In this case, parting is not sweet sorrow, it’s like being released from an insane asylum. 

Anonymously yours 
John D. Baker

A Bloggy Christmas Letter

It’s been a year of blogging badly so I might as well end it with a Christmas letter. I won’t excuse my absence from these bloggy pages; I have repeatedly warned my readers that I blow hot and cold. I am either all in or all out. For most of 2016 blogging has been off the agenda.

In April, I traded my secure well-paying job in St. Louis Missouri for a risky venture in Santa Fe New Mexico. It was a crazy move. The money was about the same, but everything else, benefits, long-term prospects, working conditions, and career opportunities were worse. I didn’t care. I was coming up on six years in St. Louis: my longest stretch in any job, and I was looking for any opportunity to move.

I’ve changed jobs a lot over my long so-called career. I’ve left voluntarily, I’ve been downsized, and I’ve been fired. Being fired is the most dramatic and educational of the three. I was fortunate to be fired from my first “serious” job. I was young, dumb, fearful, and easily taken advantage of. Getting fired fixed all that. You don’t understand the working world until you’ve been fired. I’d recommend it for everyone. Getting fired provides lifetime immunity to one of mankind’s most crippling conditions: fear of change. I don’t fear change; I seek it out. Moving to New Mexico was a change for change’s sake. The only thing unusual about this move was a fixed destination.

In the past, I went where the money was. This time my wife was largely responsible for the location. She was tired of apartment living in St. Louis. We considered buying a house in the area but we didn’t view St. Louis as “home.” I wanted to live somewhere in the affordable mountain west and she wanted somewhere warm. Santa Fe was warm, mountainous, and, if my new job went well, just barely affordable. So we sold off our bags, packed up my photography gear, and moved west.

Things did not work out. My new job imploded a week before closing on the house we were building. For months we had watched the construction and we were just about to move in when the deal collapsed. I almost enjoyed the predicament. On my birthday, I found myself, unemployed, homeless and uninsured, but at least I had my health! Never undervalue your health.

Resting on a petrified stump on the trail. Old farts require more rest stops on the way up. I am so glad that trail running was not a thing when I was young. I didn’t see any trail runners in Yellowstone today. The presence of bears, wolves and mountain lions, all of which can run trails a lot faster than millennial showoffs, puts the brakes on such behavior.

Resting on a petrified stump on the trail. Old farts require more rest stops on the way up. I am so glad that trail running was not a thing when I was young. I didn’t see any trail runners in Yellowstone today. The presence of bears, wolves and mountain lions, all of which can run trails a lot faster than millennial showoffs, puts the brakes on such behavior.

We scrambled and quickly moved to Bozeman Montana to stay with my father. Since my mother’s death three years ago he has spent his summers in Bozeman alone. He was glad to have some company and we were glad to have a place to stay while I resumed the chore of looking for another job. I didn’t mind our summer in Bozeman. We hiked a lot, visited Yellowstone a few times, drove up to Glacier National Park, visited Missoula and Butte, and took lots of pictures. I also spent many hours scanning, restoring, and annotating old family slides. I found some real gems like this shot of my mother as a young teenager with baby “Tommy.”

Evelyn, my mother as a teenager, holding baby Tommy. I have no idea who baby Tommy is but I am pleased with the restoration of this old slide of Hazel’s. I am generally dissatisfied with most of my restoration work but every now and then you come close to the image in your head.

Evelyn, my mother as a teenager, holding baby Tommy. I have no idea who baby Tommy is but I am pleased with the restoration of this old slide of Hazel’s. I am generally dissatisfied with most of my restoration work but every now and then you come close to the image in your head.

It took me a few months to find another job because I refused to consider contracting or benefit free employers. Programming jobs are plentiful but programming jobs with stable employers that offer good benefits are not as plentiful as they used to be. Programming’s halcyon days are over. Modern trends are all negative and I fear that Trump will not make programming great again. In thirty years AI systems will replace all but the most brilliant and creative of programmers. Corporate IT drones, like moi, will join the dinosaurs.

Fortunately, being an old fart, I no longer care about long-term trends. I will be comfortably dead before global warming melts the ice caps and drowns coastal cities. I will also be retired and parasitically feasting on a plethora of millennial and gen-X funded social security programs when AIs decimate the ranks of ordinary programmers. My only concerns are short term. So I was pleased to find a good, benefit endowed, job in Meridian Idaho. Meridian is a growing suburb of Boise. Meridian is not as attractive as Santa Fe but the beauty of Idaho’s landscape matches New Mexico’s. Idaho is actually more mountainous than New Mexico and housing is more affordable. The funds we were about to plow into a New Mexico house will instead buy a larger fraction of a larger house in Idaho. It’s not the mountain state we aimed for but the skiing is better, (it’s a winter freaking wonderland outside as I write), plus the Pacific coast and Yellowstone are both within an easy drive. It will do for now.

In the coming year, I will strive to blog more often. I see many stark raving diatribes in your future, but as Hillary voters just painfully discovered,1 the worm does not always turn as expected.


  1. It was tempting to use the word “learned” but deplorables of the left have no need of learning; they already know it all?

Falling Colors Technology a BHSD Crony that needs Competition

BHSD (Behavioral Health Services Division) is a New Mexico state agency that doles out federal and state funds to a variety of small, ostensibly health related, programs. For example, in the state of New Mexico, BHSD runs a program called Synar1 that attempts to cut down on merchants selling cigarettes to minors. One Falling Colors employee characterized the program as “mostly stick and no carrots.” Synar funds a stable of ambush inspectors that descend on merchants hoping to catch them selling to minors. It’s a standard bit of well-intentioned government coercion. If you are wondering what’s in it for the merchants stop wondering: it’s all stick. They lose sales and face fines. If you are wondering why the state of New Mexico supports Synar follow the money. Depending on the dubious statistics compiled by Synar administrators the state could lose millions of dollars of federal grants if the percentage of offending merchants exceeds an arbitrary threshold. Synar, in the twisted minds of state bureaucrats, “generates revenue.”

In addition to saving the state from the unconscionable scourge of teenage smoking BHSD also funds a mishmash of programs to prevent drug addiction, help the mentally ill, subsidize methadone treatments and reimburse psychologists, psychiatrists and other health professionals for counseling and other services. BHSD’s budget for all these operations is, according to Mindy Hale, roughly fifty million dollars per year. In the greater wasteful schemes of government this is small beans, even for New Mexico, but, it’s still fifty million public dollars so it’s not out-of-bounds to ask, what are the taxpayers getting for their money?

If you are naïve enough to think the intended clients of BHSD’s largesse, the teenage smokers, the mentally ill, and the drug addicts, garner the lion’s share of that fifty million dollars you’re probably a statist or a moron, but I repeat myself. Many years ago a wise old wag, when badgered about the high cost of landing a man on the moon, chirped, “None of that money was spent on the moon!” While some of BHSD’s fifty million is directed to clients, the moon, the lion’s share goes to contractors, service providers, and BHSD internals. Whether the state of New Mexico and the federal government are getting good value for their money is debatable; what’s not debatable is that some IT service providers are doing very well from themselves.

Two IT providers consume a significant share of BHSD IT funds: Optum New Mexico and Falling Colors Technology. The founders of Falling Colors, Mindy Hale and Pamela Koster3, claim Optum bills the state of New Mexico roughly four million dollars per year for the onerous job of cutting checks. It’s important to understand that Optum is not dispensing their own money. They are simply managing a pool of funds that are replenished by state and federal tax dollars. Yes, it takes money to manage money. You have to pay auditors, comptrollers, and other financial professionals to make sure the funds are not redirected into questionable pockets. Surely you don’t think New Mexico’s corruption free government would abscond with unwatched dollars?

fctlogo

The Falling Colors Technology Logo. This logo was designed by a competent graphic designer. I’ve observed an inverse relationship between the quality of company logos and the products and services they offer.

Still, four million seems a bit steep for providing a routine service that any experienced financial entity like a bank could do, and to the state’s credit, they have recognized this and are in the process of renegotiating Optum’s four million dollar fee. Optum has responded with a “this isn’t worth the damn hassle” attitude. If they cannot get their four million they’re threatening to pull out of the state and cede the check cutting business to others. How much of this is hardball negotiating, corporate whining, or even the truth, is hard to determine. The only thing that seems certain is that there is a business opportunity for an IT provider if Optum makes good on their threat and leaves New Mexico.

Falling Colors Technology, a little company that is already extracting about one million dollars per year from the state, is angling to take over Optum’s fund disbursement role. In standard insider crony fashion, they hope to keep this transfer quiet and elude potential competitors. Why go through all that messy inefficient public bidding? There’s only one problem with their business plan. Falling Colors has absolutely no experience managing funds. There is nobody on their staff that could be considered a financial professional. They are planning to hire staff, but I have to wonder why BHSD, and the state of New Mexico, are considering flushing millions of dollars through an entity that has no financial expertise and has already received a formal letter of warning for shoddy IT work.

Instead of branching out into lines of business that they have no experience with Falling Colors efforts would be better invested in fixing their core problems and they have lots of core problems. Let’s look at what nearly one million dollars or public funds per year buys from Falling Colors Technology.

Your one million is buying a few unreliable, crash prone, insecure, low volume websites geared towards BHSD staff and service providers. When I first ran the following SQL query on the database that backs many Falling Colors websites I was alarmed at the results.

SELECT  iq.WeekNumber ,
        AVG(iq.ErrorCount) AS AvgWeekErrors ,
        MIN(iq.ErrorCount) MinWeekErrors ,
        MAX(iq.ErrorCount) AS MaxWeekErrors ,
        STDEV(iq.ErrorCount) AS StdDevWeekErrors
FROM    ( SELECT    CAST(CONVERT(VARCHAR(8), TimeUtc, 112) AS INTEGER) AS DayNumber ,
                    COUNT(1) AS ErrorCount ,
                    MIN(DATEPART(iso_week, TimeUtc)) AS WeekNumber
          FROM      dbo.ELMAH_Error
          GROUP BY  CAST(CONVERT(VARCHAR(8), TimeUtc, 112) AS INTEGER)
        ) iq
GROUP BY iq.WeekNumber

Falling Colors websites were crashing about twenty times per day. On some days the crash count exceeded fifty. I thought to myself, “If this doesn’t dramatically improve this little company is doomed.” I’ve worked with lots of bug infested software over my long career but twenty to fifty crashes per day, distributed over a few dozen users, was an entirely new level of unreliability.

Why is it so bad? The developers at Falling Colors, like developers everywhere, bitched about “inherited code.” Basically, this means they’re working with code that they didn’t entirely write themselves. Developers complaining about inherited code is so common that software managers rightly label it whining. Software developers bitching about inherited code is like civil engineers griping about inherited bridges. The world is not created fresh every day. The inherited code base is a source of problems but the main reason Falling Colors exhibits such a high crash rate is simply a lack of formal quality control.

Testing at Falling Colors is mostly performed by one beleaguered Business Analyst. She runs through a series of basic web page checks after significant new releases. This is a very low standard of testing for modern software development. Falling Colors does not practice many common quality control techniques. For example, most development environments support a variety of internal testing tools. Falling Colors is a Visual Studio shop and Visual Studio has built-in unit testing tools and supports a host of third-party add-ons. Developers focused on quality, spend as much time implementing internal units test as they do writing production code. There is an entire coding regime known as TDD that strongly promotes writing tests before you write software to pass the tests. At the end of June 2016, there were precisely zero internal unit tests in Falling Color’s code base. In addition to missing internal unit tests, there were no repeatable or scripted tests, no large case tests, and no stress tests. Lack of formal testing combined with misplaced developer optimism is a recipe for high error rates and Falling Colors is really boiling that pot.

Buggy insecure low volume websites are a dime a dozen. There’s a lot of crap out there. If Falling Colors cranked out standard public websites we would click on and ignore their rubbish. Unfortunately, being intertwined with BHSD, the users of Falling Colors websites do not have the option of clicking on. Making things worse, Falling Colors hosts a substantial amount of HIPAA protected information.

HIPAA is a set of federal guidelines that outline how health providers and their contractors must protect information that might be used to uniquely identify people. HIPAA penalties, for both providers and individuals, are severe if protected information is either accidentally or willfully disclosed. You can go to jail for exposing HIPAA protected information.

HIPAA guidelines list common data elements that must be protected. There is only one way to properly protect these elements: full element encryption. Every single data element should be encrypted and the keys should be rigorously guarded by a small number of individuals. Even developers, especially developers, should never see the unencrypted information. This is the way things should work, but, if you have followed the news about an unending stream of website hacks and data breaches, you’re probably aware that this is not how it works in the big nasty world.

It’s certainly not the way things are working at Falling Colors. With the exception of website passwords, which were only hashed in the last year,4 HIPAA data is stored in plain, ready to hack, text. If I were an IT savvy methadone user in the state of New Mexico I would be reluctant to disclose personal information to CareLink, TreatFirst, Prevention, or any of the Falling Colors managed programs. One HIPAA breach and your methadone habit is on Facebook.

Falling Colors is fully cognizant of their shabby security and are planning to eventually fix it. They’re taking steps to harden their websites and tighten up their loose databases but they are not, as of the end of June 2016, pursuing a full element encryption regime. Anything short of full element encryption is just putting lipstick on the security pig. Currently, Falling Colors is a HIPAA breach in waiting. BHSD would be well advised to insist on an immediate and independent full security audit of Falling Colors systems!

BHSD should also demand a fair and public RFP (Request for Proposal) process when seeking IT contracting services. Currently, some individuals in BHSD, in connivance with Falling Colors, are delicately crafting RFPs that are designed to exclude Falling Colors competitors. This is a blatant abuse of the public RFP process and the perpetrators should be ashamed of themselves. Crony state contracting may be business as usual in New Mexico but it is not in the interests of the pubic, BHSD, or even Falling Colors. Cronies without competition invariably turn into parasites and BHSD, which recently suffered a bedbug outbreak in their Santa Fe offices, has enough of those.


  1. The Synar program is named after Congressman Mike Synar of Oklahoma. How many tax dollars would be saved if it was illegal to name things after politicians?
  2. The founders of Falling Colors are questionable sources; their claims should be subjected to a high standard of scrutiny.
  3. Yes, incredibly user passwords were stored as plain text for years. This is monumentally inept.