Haggis Hell — Home page

O wad some Pow'r the giftie gie us To see oursels as others see us
This is the home page. It holds current weblog posts and announcements.

Are you ready to go down the rabbit hole? To visit a surreal world, where black is white and white is carrots?

A friend, Metacognician in Shanghai, describes the situation as follows: “Life is more absurd than movies. I've gone down the rabbit hole too, when it just becomes more and more strange and you wonder how that all is supposed to make sense.” I asked him if I should just embrace it. He answered, “Why should you ... change the universe?”

It started with a psychotic named Jim Kiraly who resides, we think, at 6329 Twinberry Circle, Avila Beach, California.

Jim Kiraly is a respected citizen. A churchgoer. A Vice President of Transamerica Corporation. And a violent abuser who tried to use an emergency anti-violence measure, one intended to protect battered women, to stop his victim in a wheelchair from writing a book.

Concise enough? :)

For attorneys: Jim Kiraly filed for CLETS against his son and victim, who lived 200 miles away, did not own a car, and was in a wheelchair. His son and victim was not asked to end communications. Jim had no (zero) specific and relevant allegations that were not perjury. But he turned down repeated offers of no-contact and a signed stipulation that gave him everything but CLETS. He insisted on CLETS if his victim ever once “discussed” him with third parties.

In the end, Jim Kiraly signed an agreement far weaker than the ones he'd been offered.

A review of Court paperwork and other materials will tend to confirm that Jim and other parties, including attorneys on all sides, committed multiple felonies, crimes, and faux pas. :P

The word “abuser” is stated here publicly and without equivocation. A formal offer is hereby made to reaffirm the word in writing and under oath. Attorneys will understand the significance of the point. In short, there is little terror of a threatened defamation suit on this side. Actually, we feel that such a suit will fit nicely up Jim Kiraly's abuser ass.

Jim has one son, Ken Kiraly, who invented the Amazon Kindle and is one of the leads at Amazon's secret Lab126. Another son, Tom Kiraly is one of the leads, a Vice President-CFO type, at medical insurance firms, including one of the largest, Humana Corporation.

These people and some of the biggest names in Silicon Valley legal circles have committed or are involved in multiple crimes.

For the next decade or two, we're going to explore the crimes that these people committed, the motivations and the denial involved, the background and histories that led each person to make the choices that they did, and ways to build upon what happened and move towards positive societal goals.

There's plenty to go over. These people committed or were involved in: Spousal abuse, child abuse, DDOS (a highly prosecutable violation of CFAA), extortion, perjury, conspiracy to commit perjury (a possible felony), false police reports, conspiracy to file false police reports (a possible felony), unlawful threats, barratry, defamation, malpractice, civil harassment, criminal harassment, abuse of process, and violations of SCCBA Professional Standards.

The point was to force Jim's oldest son and victim, me, to sign a gag order. I was in a wheelchair. I'd never made a single inappropriate threat against my abuser. I wasn't even asked to not to call anybody. But Jim threatened to put me in a violence database unless I agreed never to write about him.

I won the right to write, but I lost my home of 25 years, most of my possessions, my chances for retirement, everything. Everything but a realization.

I can make a difference. I can conduct research for legitimate and reasonable purposes, document what happened, and analyze the choices of the people involved:

Maggie told me that she didn't know what she could say to me about what happened. However, we have decades to work it out. It will be productive. I'd like to direct the attention of attorneys and other parties to the:

Legitimate and Reasonable Purposes List

Questions or comments are welcome. For technical notes and disclaimers, click here.

Free Downloads

The current free ebook is located at this link:

For details about the ebook, click here.

The Kiralys and their associates have tried to take down the sites before. Actually, they've committed multiple felonies in the process. It's no big deal, but to make a point, we're giving everything away for the low price of... well, free.

Here's a link to a ZIP file that contains a copy of the main Christ Follower site. It may be out of date but feel free to download the ZIP file and pass it around. The file is about 150MB in size.

Link for christfollower.zip:

The point? “The story is already out there, idiots. Keep it up and I'll demonstrate how something known as decentralized distribution works.”

170417 Monday — Finland Farewell

170417. Finland Farewell.

Phenek, one of my Finland Friends, and I have been talking for 5 years this year. He was one of those who helped me to keep going in 2012.

But it isn't Phenek of Finland any longer. He's left his native land. Here are two photos that explain:

Phenek Finland Beach
Phenek Spain Beach

The 1st photo was taken about 300 meters from the Helsinki shore. The 2nd photo was taken on Malvarossa Beach in Valencia, Spain. The temperatures in the two scenes are freezing in Helsinki and +26C or +79F in Valencia.

To underscore the point, here's a photo of a joyous Finland Spring followed by a photo of Spring in Spain:

Spring in Finland
Spring in Spain

Phenek says that the beer was the best of his life. When I asked him, how so, he said:

“weather, environment, people :) was there with wife & daughter. beer was just normal coolish beer.”

But it was the best of his life.

Phenek adds:

“when I ask my daughter if she wants to go back to finland, she answers usually in under 50 milliseconds: NO!”

It's the same daughter that I made a simple birthday card for shortly before she was born. This was circa Christmas of 2012.

The creatures that share my surname were hunting me. I was a stranger to others. But, at times, I was able to pretend that I was real.

Finnish Baby Card

<Phenek> man burgers and meat and vegetables and everything tastes so much better here than in soviet finland
<OldCoder> Really?
<Phenek> yeah

<OldCoder> Finland is “Soviet” ? In what way?
<Phenek> feels like everything is somehow very standardized and equalized and averaged out
<Phenek> I bet you there's some rules that burger meat has to be equally not tasty in each restaurant otherwise it's a competitive edge to other restaurant

<OldCoder> But who enforces this?
<Phenek> government and its bodies

<Phenek> and you can't add enough salt to french fries to make them tasty because they will be unhealthy (as if they weren't otherwise)
<Phenek> or maybe the cows don't get anything tasty to eat because there's only snow and dirt so the meat will not be tasty either

A friend of Phenek's, still in Finland, jumped from a 2nd story floor balcony the other day. The reason isn't clear. He may survive, but he isn't in good shape.

<Phenek> turns out he had fell/jumped out of his balcony from 2nd floor and spent about 9 hours with broken legs and skull fracture etc. on the ground before someone bothered to help him
<Phenek> then he was 4 days at the intensive care unit....

<Phenek> sorry, maybe it was 8 hours that he waited for help, freezing...
<Phenek> finns are helpful? :D
<Phenek> I feel really sad for the guy, I don't get him, really

<OldCoder> There isn't much more to say, other than that we're an accident, life is short, we should do what is possible
<OldCoder> Communication, even by IRC or email, is good, remember that
<OldCoder> If you were in positive communication, you were helpful

<Phenek> yeah, I'm not saying there's much to do. just really sad to hear.
<Phenek> and I saw a pic of him, looks pretty bad

<OldCoder> Sad, perhaps. But you'll be able to talk and thereby to help.
<OldCoder> If he'd chosen one floor higher, that might not have been the case

<Phenek> I think he must have been really out of his mind, who would jump on purpose from 2nd floor in a suicide attempt?
<OldCoder> Somebody who was aiming for 50-50 odds
<OldCoder> Conflicted and working things out

<Phenek> sorry for the topic. we can change to something more cheery.
<OldCoder> I'm not downbeat-ed by this
<OldCoder> Not if it's useful for you to comment
<Phenek> well but it's not your problem really :)

<OldCoder> My own situation is woven out of different threads
<OldCoder> Yes, it is my problem
<OldCoder> If I can be useful

170416 Sunday — Structure of Site Takes Flight

170416. Structure of Site Takes Flight.

This page will be for weblog posts and announcements. Posts will move from here to topic-related pages. For example, some Kiraly posts will go to the Kiraly page at:


Rhymes, as another example, will be copied to:


To move around, use the navigation links at the top of the page. Note: Old pages are still available through the Old Weblog link.

The RSS feed will be suspended or behind while major work is in progress.

170416 Sunday — To Virginia Chang Kiraly and Son Paul

170416. To Virginia Chang Kiraly and Son Paul.

This is pair of Easter messages, one for Virginia Chang Kiraly and one for her son Paul Kiraly.

The message for Paul is first.

Virginia is my sister-in-law and a politician in the S.F. Bay Area. She was considered a rising star a few years back, but her momentum has slowed a bit.

Paul is my nephew, a talented young man. I think that he's attending Indiana University, as somebody who seems to be him shows up in a business course there. But I haven't confirmed the facts yet.

The connection is by way of my brother Ken Kiraly, apparently Vice President of Amazon Lab126.

I have another nephew on Ken's side, Paul's younger brother James, no direct connection to the Jim mentioned in the message for Paul. I'll write a separate message for Ken's James in due course.

A message for Paul Kiraly, son of Virginia Chang Kiraly:

Paul, I'd planned to address you on the occasion of your High School graduation. I decided not to do so because I wasn't ready. I needed to be sure of what to say.

I'm sure, now.

The murder of the truth is the greatest crime that is possible. There are no crimes committed on an individual basis that are more significant.

How then, does one judge an individual, perhaps somebody such as your grandfather or father, who is respected or even loved, who is believed to be right, to be just, to be a hero, and who has murdered the truth?

The answer, in the real world as opposed to the pretend world that children are taught about, is that the truth is treated as inconvenient at best, and more typically as something that missed the toilet.

I refer you, as part of your education, to a Harlan Ellison story named “Hitler Painted Roses”. It makes the point better than I'm able to.

“Heaven began to run at the edges.” Learn what makes Heaven melt.

I've stopped being a convenient person. Being convenient didn't work out. See the poem titled FERAL CODER in the 1970s Berkeley story. It sums things up pretty well.

As I'm not a convenient person, I don't hide any longer.

The things that happened, happened. I happened. My life happened. 2012 happened. And, you know, what? It wasn't a “choice” on my part.

It was a “choice” that, starting when I was just six years old, your wife-beater grandfather made. When your father was old enough, he made the same “choice”.

To be clear, I'm fond of your father. In a sense. I feel towards him the way one might feel towards a pet reptile.

Nobody knows Ken Kiraly better than I do. There's something under the mask, the Halloween costume of a human, that you've never seen. Something cold and dangerous.

By the way, ask your grandmother Grace Kiraly about the “dark mask”. It's her own words, her own phrase, for what your uncle Tom did to himself and became. Ken, guarding his secrets, makes Tom look positively Pollyanna.

But I taught Ken to walk as a baby and to drive a car as a boy. Out of curiosity, does he still pretend that the car, the first job, the free rent, and the rest of it didn't happen?

The rest of it would include the part where I'd do whatever was necessary to protect Ken from his father when Jim Kiraly flew into rages, fists clenched, eyes bulging. Literally bulging.

Is it inconvenient of me to mention this? If so, I'm suitably abashed.

If your grandfather Jim is still alive, he's likely to pass away soon. This is regrettable. I think that I'll bring him back from Hell to discuss things.

Your father Ken is good for decades. In his case, the latter step won't be necessary.

The context for you, yourself, is the question of what you are. Are you sentient? The skills and accomplishments are irrelevant. The answer lies in one thing, and one thing only.

Are you able to reflect upon your own thoughts, to perceive the barriers to perception, and to understand, acknowledge, and accept that which is?

Paul Kiraly, son of Ken Kiraly and Virginia Chang Kiraly

A message for Virginia Chang Kiraly:

Virginia, I received the PDF at the link below recently from a fan of yours. Actually, he isn't a fan. He says that he views Ken Kiraly and you with “revulsion” and that Ken has been “harming” his family.

Link to PDF: Virginia_Chang_Kiraly_170208.pdf

I thought, initially, that this was a draft which you hadn't seen. But it appears that it's been served on you. I'm not certain, but I gather that the document is old news.

So, whatever.

I should add that the person involved isn't John Ullom, but apparently somebody operating behind the scenes. He thought I'd leap at the chance to help him with the legal actions that he hopes will unseat you.

What I know of your interactions with John Woodell, the new person, and others suggests that you're a less than ethical politician who makes an effort to come across as noble. As Ken used to say, “Yeah, right”. :)

To be honest, I'm not highly interested in that side of things. Not right now, anyway. But you need to explain your behavior in 2012. Ken's debts to me far exceed that.

Rest assured that I'll look at this sort of document, when it crosses my desk. And I'm good at details. Ask Ken about that part.

Of course, I don't have a desk. Not since the end of 2013, when I became homeless for the first time. I have a little Walmart mat on the floor instead. Shrug.

Well, Happy Easter :D

170406 Thursday — nginx Tip for the Hip

170416. nginx Tip for the Hip.

These sites have visitors who'd prefer to hide their identities. Some of them are good friends :)

These people use proxies, VPSes, Tor, or other identity-concealing mechanisms. Of course, disinterested visitors do this as well.

Anonymity isn't necessarily a bad thing. I use such mechanisms myself, though I try to be less clumsy about it than my friends.

For example, sometimes I'll start with an Internet connection that's anonymous to begin with — remember, kids, don't use residential connections — boot a temporary copy of Who*nix, ssh through Tor to a temporary VPS at a random host, and proxy from *there*.

Heh. No solution is perfect. The NSA, surely, knows all. But *that* series of steps should do for basic security purposes.

On the other side of things, as a webmaster, do I need to block anonymous access? Not necessarily.

But, a few of my anonymous visitors are people that I know or agents operating on their behalf. Suppose that I'd like them to see different pages than non-anonymous visitors do.

Suppose that I'd also like to simply block referrer spam and poorly-designed bots while I'm at it.

nginx makes all of this pretty easy. I'll explain an approach that I've used with an nginx setup. Your mileage may vary.

Note: This tutorial is for Linux hosts using nginx. Windows isn't supported. Apache is a subject for another day.

1. Become superuser.

2. Back up your nginx.conf file. If you don't know to back-up the file, restore it, and/or restart nginx, stop here.

3. Run the script shown below, using bash, in the directory that contains your nginx.conf file. Typically, though not always, this is: /etc/nginx/

IPADDR=`curl -s https://check.torproject.org/exit-addresses | \
grep ExitAddress | \
awk '{print "    " $2 " 1;"}' | sort | uniq`
echo -e "geo \$torusers {
    default 0;
}" > torgeo.conf

4. Edit nginx.conf.

Add the code shown below to the nginx.conf http block before first server sub-block or the first include of such a sub- block.

# List  regexes for referrer spammers in this block us-
# ing  the  format shown for the sample spammer domain.
# Note the ~ at the start of the string.

map $http_referer $bad_referer {
    default 0;
    "~top10-way.com" 1;

# If you'd like to simply block problem bots by IPV4 or
# subnet, add  lines similar to the following here. Use
# the 1st format to block an IPV4 address, the 2nd for-
# mat  to  block  a Class C (24+ 8) subnet, and the 3rd
# format to block a Class B (16+16) subnet.


# Add  the  following line exactly as shown.  Note: You
# generated the  file that it names previously  in step
# 3.

include torgeo.conf;

# Use log-file analysis to identify proxy people. Don't
# bother with Tor users. In most cases, they'll be han-
# dled by "torgeo.conf".

# Add  IPV4 addresses  or /24 or /16 subnets  for proxy
# people to the following table  using the formats used
# by the sample entries.

geo $friends {
    default 0; 1;   1;    1;

5. Edit nginx.conf again.

Edit the server block for each domain of interest. Add the following code before the parts that work with directories. Remove existing lines in the block that define root.

Replace /data in the first line with an absolute path for the directory tree that you'd like normal users to see.

Replace /data/torusers in the first line with an absolute path for the directory tree that Tor users should see.

Replace /data/friends in the $friends line with an absolute path for the directory tree that you'd like proxy people to see.

set $docdir /data;
if ($bad_referer) { return 444; }
if ($torusers ) { set $docdir /data/torusers ; }
if ($friends  ) { set $docdir /data/friends  ; }
root $docdir;

6. Restart nginx. If things don't work as expected, restore the old nginx.conf and restart the program again.

Your phone or window is too narrow to see the code. If it's a phone, try rotating the phone or switching to a PC.

Wizard installing software humor
170329 Wednesday — Advice to a China IT manager

170329. Advice to a China IT manager.

A few days ago, I received a nice letter from an IT manager in China, probably in his 20s. He'd read a Chinese translation of an article that I wrote in 2014 and contacted me to ask for advice.

I've sent him a PDF that answers his questions and includes some advice. If you're curious, click on the link below to get the PDF:


China correspondent
170321 Tuesday — New Perrott Site Shines Bright

170321. New Perrott Site Shines Bright.

It's time to start breaking the main site up into sub-sites.

There may be glitches as pages are moved around. However, in the end, we should end up with a nice collection of separate but related sites.

We'll start with John Perrott. So, today, we're announcing two new domains, both of which go to a John Perrott sub-site:



170215 Wednesday — Moono Mother Shard

170217. Moono Mother Shard.

Moono is a college-age person seeking a path. He might be slightly learning disabled, but I'm not sure; it's more likely that he's simply different, as so many of those who are real, those who exist, are different.

I fell asleep two hours ago. I'd eaten some food, a few bites of Walmart chicken. It was enough to put me under.

I shook off the fog, afterward, and returned to my laptop on the little Walmart mat that serves as my post gag-order cases office.

I found a short message from Moono. He'd written to say good-night. Later, he'd added the following fragment. I don't know if it's a shard of a dream or of the past.

<Moono> I had sworn I wouldn't write another poem about my mom but in the museum there is a room filled with centuries-old pottery shards and it is difficult not to start seeing symbols everywhere. We walk through the frigid air toward a reconstructed temple, likely stolen, I say, and she looks at me. A rope keeps us from going further. Who are you texting? she asks.


What are James Kiraly and Grace Kiraly shards of?
To access the image for download or zooming, click here. Or, in Android, click on the image and hold.
170110 Tuesday — RSS Feed is What We Need

170110. RSS Feed is What We Need.

Mr. Meow asked for an RSS feed
Mr. Meow request we will heed
RSS feed is what we need
RSS feed is modern breed
Here you go

At Mr. Meow's suggestion, Haggis Hell now sports an RSS feed.


If you know what an RSS feed is and you want ours, you can get it by clicking the Subscribe link in the page header or the orange icon in the upper right corner of the page.

Or you can just click here.

This feature should work with most modern browsers and RSS readers.

If you're using Chrome under Android, select Add a New Feed when prompted about what to do.

Most lightweight browsers such as UC Browser won't support this feature.

Technical notes:

1. An RSS feed consists simply of a XML file that looks like this:

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<title>Put a title here</title>
<link>Put website link here</link>
<description>Put website description here</description>
    <title>Put article title and short description here</title>
    <link>Put link to article here</link>
    <guid>Put same link here</guid>
    <pubDate>Sun, 25 Dec 2016 12:00:00 EST</pubDate>
    <description>[CDATA[ Can put a longer description here ]]</description>

There should be one item block for each article to be listed in the feed.

pubDate lines, one for each item block, should list a publication date and time in the format shown here.

The description part is optional.

2. To deploy an RSS feed, a web page only needs to link to the associated XML file. For example:

<href="http://yoursite.com/sandwiches.rss" rel="alternate" type="application/rss+xml">Click here to subscribe</a>

where the link should point to the XML file.

The type= part seems to be optional but is probably a good idea.

Most sites display a small RSS logo in the link instead of a prompt string. This site presently does both in different places.

3. Adding code similar to the following to the page's head block may be beneficial:

<link href="http://yoursite.com/sandwiches.rss" rel="alternate" type="application/rss+xml" title="Your Site Feed Title" />

4. The only tricky part of RSS, on the server side, is updating the XML file when new posts are added. This can be done using fairly short scripts in Perl, Python, or other languages.

RSS is restful
To access the image for download or zooming, click here. Or, in Android, click on the image and hold.
170110 Tuesday — CodeLicker Wolf Thoughts

170110. CodeLicker Wolf Thoughts.

CodeLicker offers thoughts inspired by his pet dog. It should be noted that many people don't measure up to the standard for being real that he proposes.


OldCoder, I have a wolf.

I figured out what they are. They aren't as irrational as people suppose.

They're conscious entities who have content enough, enough in their heads, to develop strategies. Hunting strategies. Complex enough to involve a group.

In fact, they understand the notions of groups and roles. So, they have messages to pass.

Their vocal chords are limited to fewer expressions, so they don't use language. Not our language. It doesn't mean they don't have one of their own.

The house wolf, mockingly known as dog, believes his collective is made by humans.

That is to say, they still live in packs like wild wolves. But their packs contain human identities, as well as identities of other animals who might be nearby.

This is, indirectly, why they have nightmares, unlike worms and other truly unreasoning creatures.

On the human scale, they're located somewhere between a disturbed individual and a child growing up who doesn't dominate language yet.

But they still share fertility with wild wolves, which makes them house wolves.

So, this is what they are:

Consciousnesses. Individuals. Awake, rational and, depending on the individual, self-aware.

This not only confirms the genuineness of their likes and dislikes, but the fact they can plot and plan things. Like vengeance.

So, this being, the house wolf, believes that we're part of its pack.

This consciousness is sleeping right by my side. Chances are that, when it has a nightmare, the bad dream is about being left behind or having its pack dissolved. Disbanded.

This is why I always make sure to wake it from nightmares. I won't let it be alone.

They're real. As real as we are. They don't just answer randomly to stimuli like a simple system. They exist beyond their body systems.

They're real, OldCoder, dogs, wolves, they're real. They think, therefore they exist.

To access the image for download or zooming, click here. Or, in Android, click on the image and hold.
<CodeLicker> OldCoder, can you help me with SQL? Apparently, I am rusty.
<CodeLicker> Or they changed SQL standards and forgot to warn me. :D

<CodeLicker> I am trying some WITH statements. But no matter what I do, it fails.
<CodeLicker> This is the error given: Unrecognized statement type. (near "with" at position 0)
<OldCoder> Paste the SQL code

<CodeLicker> with t as (select *from `table 1` where `1\252 Dezena`='1') select * from t where 1=1;

<OldCoder> CodeLicker, you are not using ASCII text
<OldCoder> Redo that but no space in the table name and no weird character in the WHERE statement

<CodeLicker> WHAT?!?
<OldCoder> Redo that but no space in the table name and no weird character in the WHERE statement
<CodeLicker> So, like, the fact my table is named `table 1` is an issue?
<OldCoder> I'm not sure, but the weird character in the WHERE statement probably is
<OldCoder> Make both changes and retest

<CodeLicker> In the name of Satan, what did MARIADB done? It has be in the name of Satan for God forbids it.
<OldCoder> Um?
<CodeLicker> And my darschund wolf is itchy by my side. \o/
<CodeLicker> woof

<OldCoder> Make both changes and retest. Woof back. Send photo of dog.
<CodeLicker> I'll have to change DB name.
<CodeLicker> I'll wait until I find that being in an uncomfortable situation and then photo it.

<CodeLicker> Have I ever convinced you that wolves are individuals?
<CodeLicker> Thinking individuals and stuff?
<OldCoder> CodeLicker, I already knew that
<OldCoder> Many animals are worth more than many people. Even rats.
<OldCoder> Squeek

<OldCoder> Retest SQL
<CodeLicker> I did. Same stuff.
<CodeLicker> Here it is: with t as (select * from `megasena` where `1\252 Dezena`='1') select * from t where 1=1;

<OldCoder> That is not ASCII. I see a weird character,
<OldCoder> What is 1 [something] Dezena?
<OldCoder> Change the name of 1 [something] Dezena

<CodeLicker> You know... I took the suspicion - that already escape common sense - that they are thinking and proceeded to call them rational beings.
<OldCoder> Change the name of 1 [something] Dezena

<CodeLicker> with t as (select * from `megasena`) select * from t where 1=1;
<CodeLicker> I took off the where clause. Still same error.

<OldCoder> Wait
<OldCoder> CodeLicker, it was supposed to be added, but it was not. I think that SQLite3 supports it and so does PostgreSQL but not MySQL or MariaDB.

<CodeLicker> Grrrrrr...
<CodeLicker> So the page lied to me!
<OldCoder> You can still use subqueries
<CodeLicker> They are liars! Liars everywhere!!!

<OldCoder> SELECT sb1,sb2,sb3
<OldCoder> FROM (SELECT s1 AS sb1, s2 AS sb2, s3*2 AS sb3 FROM t1) AS sb
<OldCoder> WHERE sb1 > 1;
<OldCoder> Things like that should work

<OldCoder> I tested using MySQL. Let me try using MariaDB.
<CodeLicker> WITH table_reference as (SELECT ...)
<CodeLicker> SELECT ... <----------- LIES

<CodeLicker> [Obscenity] are liars: https://mariadb.com/kb/en/mariadb/with/
<OldCoder> Reviewing
<OldCoder> It *is* supposed to be supported

<OldCoder> What release of MariaDB are you using?
<CodeLicker> Server version: 10.1.14-MariaDB - Source distribution
<CodeLicker> From phpmyadmin.
<OldCoder> There you go. You need release 10.2.2.
<OldCoder> Mystery solved

<CodeLicker> It's evil.
<CodeLicker> Very evil.
<CodeLicker> Those people are wicked, you know?
<CodeLicker> Evil. Ruthless.
<OldCoder> It is not unusual
<OldCoder> Evil walks the Earth, yes
161030 Sunday — Android Review: The Bouletmaton

161030. OldCoder Android Review: The Bouletmaton.

The image below was produced by The Bouletmaton, an Android app that makes self-portraits for social media use. It seems accurate enough.

Bouletmaton OldCoder Portrait

To access the image for download or zooming, click here. Or, in Android, click on the image and hold.

This is the Old Coder unveiled
All mysteries are derailed
Android apps are to be hailed
I'd rate The Bouletmaton as P.G. for Pretty Good

The app's Play Store page is at this link. To install, run an Android browser, click on the preceding link, then click on Install.

The developer, ZANORG, has an English-language page at:



ZANORG's philosophy is “Genuinely Stupid Games Since 2002. The studio has a simple agenda: bring stupid to every mobile in the world. There is no one here to force you playing these games, but yet, you will do it.”

It's a thoughtful and reflective philosophy that shows promise.

The name Bouletmaton comes from Boulet, the name of the artist behind the following French webcomic:

Boulet Corp webcomic part 1
Boulet Corp webcomic part 2

To access the 1st webcomic page for download or zooming, click here. To access the 2nd webcomic page, click here. Or, in Android, click on an image and hold.

161002 Sunday — Prayer for a Snail

161016. Prayer for a Snail.

In 2013, Phenek videoed an intrepid snail and posted the video on YouTube. The YouTube copy may be viewed at this link.

The YouTube copy went down for a while, for technical reasons, so here's a mirror copy in case it happens again. To play the video, click on the link or image.

The original snail discussions from 2013 are pasted below the video.

Click here to attempt to play video
Prayer for a Snail

<Phenek> snail I copypasted to you while I was enjoying a tasty croissant and espresso
<Phenek> I don't know how I found the snail... I just saw something on the ground few milliseconds before I stepped on it and re-directed my feet to keep the poor animal alive...
<Phenek> then I took some photos and nice HD video of him

<OldCoder> video? you videoed the snail?
<Phenek> yes :)
<OldCoder> What motivated this?
<Phenek> it looked cool
<OldCoder> Fair enough

<Phenek> I can upload to youtube if you want to see :)
<OldCoder> Yes! We must see the snail!
<OldCoder> Racing here and there
<OldCoder> As snails do

<Phenek> uploading...
* OldCoder can't wait
<Phenek> :D
<Phenek> uploading at a snails pace
<OldCoder> of course

<Phenek> I have some cute photos already on new camera of baby
<Phenek> no snails there though
<Phenek> or department stores
<OldCoder> Very well

* OldCoder hopes the snail found a home
<Phenek> let's hope so. he was not a bad snail
<OldCoder> Indeed
<OldCoder> Lively as they go
* OldCoder offers a prayer for the snail
<Phenek> :)

160903 Saturday — Short-Tail SEO We Hail

160903. Short-Tail SEO We Hail.

People who are experimenting with SEO may find these notes useful.

I noticed an odd Google issue last night. Check out the screenshots in the following discussion. Folks on smartphones may need to zoom in to read the text.

To read the PDF that this is about, click here.

U.S. Google results for John Perrott:

Google tailors search results differently for different people. But I checked the following last night using multiple identities in multiple countries.

In English-speaking counries, the simple two-word search John Perrott (without quotes) brought up, and is still bringing up, a Kiraly Cases PDF on the first page.

For reasons that I'll come back to, this is unexpected. It may not last long, but I've received a bump, temporary or not, in Google rankings.

The screenshot below shows the results that are appearing, presently, in English-speaking countries such as the United States, Canada, and Australia.

In some of the countries, the PDF is farther down. However, it's appeared on the first page in every English-speaking country that I've tried so far.

To try the two-word search for yourself, click here.

If the two-word search doesn't work, the three-word search John Perrott Attorney (without quotes) may work instead. To try this search, click here.

The results may be thrown off if Google knows who you are. However, if you're not acquainted with John Perrott, the Family Law Attorney in San Jose, Google's familiarity with you may not make a difference.

John Perrott search results
To access the image for download or zooming, click here.

Romania Google results for John Perrott Attorney:

In non-English speaking countries, the two-word search isn't working, but the three-word version, John Perrott Attorney, is.

The screenshot below shows the results for the three-word search in Romania. To try the three-word Romania search for yourself, click here.

John Perrott Attorney search results in Romania
To access the image for download or zooming, click here.

Factoring out Google personalization:

If I'done these searches using my own identity, I wouldn't be surprised. Google probably knows that I created the PDF in question.

So, when the search engine recognizes me, it might increase the ranking of the PDF specifically for me.

But, to rule this out last night, I ssh'd to multiple cloud servers in different countries and used lynx to do the searches.

lynx from cloud servers means no JavaScript, no cookies, nothing for Google to latch onto except for the user agent and whatever Google knows about the cloud servers. So, it's not bad as a starting point for this type of test.

The results were as I've stated. To confirm them, I went back to Google using Tor with cookies cleared and rotating user agent.

There was even less for Google to latch onto, this time; primarily the fact that I was behind Tor plus tracking keys that can be constructed based on browser characteristics. For technical reasons, I don't think that the tracking keys were a factor for the second set of tests.

The results were consistent again.

Negative factors:

The PDF shouldn't be ranked as highly as it is. The reasons are as follows:

* John Perrott, the Family Law Attorney that the PDF discusses, has roughly the same name as several historical and modern figures.

Entries for these figures ought to crowd non-essential links related to my John Perrott off of the first page.

* There are no public and independent links on the Web, that I'm aware of, which point directly to the PDF. This is usually negative for Google rankings.

* However Google decides things, traffic is a factor. And traffic to the PDF is moderate. People read it, but it isn't a top destination.

* As of August 3, 2016, I've done no intentional SEO yet for the PDF.

Positive factors:

Here's what I know, or can guess, regarding positive factors:

* Google does read PDFs, as long as they're text-based, and ranks them along with web pages.

As a related note, Google even tries to read PDFs that are text stored as images. To do this, it uses OCR.

* My Twitter feed has a link to the weblog post which contains the PDF.

The Tweet in question is two years old. Very few readers are going to go that far back in the feed. However, people apparently bookmarked the link two years ago, and may be sharing it, as I see it used on a regular basis.

The simple existence of the link shouldn't make a difference. Google must know that it's my link, pointing to one of my sites. The value of the link must be decreased accordingly.

* Google is believed to like content that is original, well-structured, detailed, high reading level, and focused on the subject. The PDF is all of these.

However, many of my posts and documents meet these criteria and haven't been promoted to first page for short-tail.

* There aren't many articles by individuals regarding John Perrott, the Family Law Attorney, on the Web other than those written by me.

Google probably puts me in a different category than it does Yelp or Attorney websites. I have relatively little competition in this context.

Again, though, this would apply to many of my posts and documents and relatively few are promoted to first page for short-tail.

I think that promotion of the PDF, temporary or not, occurred because of all of these factors combined with random chance.

httpd-level traffic review:

If you're curious about httpd forensics, this part might be of interest.

httpd activity doesn't provide a clear explanation of the Google ranking change.

One recent visitor stands out.

IPV4 read the PDF on August 21, 2016. He or she seems to have read the associated weblog page two days earlier, on August 19, 2016, but not to have clicked on the PDF link at the time. geolocates to 37.339390, -121.894960. The coordinates indicate a POP near North Market Street and West Julian in San Jose; 0.4 miles from Hoge Fenton and 1.7 miles from John Perrott's law office.

The proximity to Hoge Fenton doesn't mean that the visitor is Hoge Fenton. For better or worse, the area is bulging with attorneys. Shake a stick, call “Here, Attorney, Attorney,” and you'll find one.

A brief check shows one other Intel Mac OS X IPV4,, at exactly the same coordinates. That IPV4 read the PDF on October 22, 2015.

The two IPV4s, both using the same POP and both running Intel Mac OS X, read the John Perrott PDF, nearly a year apart, and not much else. On one visit, one of the IPV4s read a summary page; that was about it.

Conclusion: The two IPV4s are the same person, probably an attorney or paralegal, and he or she is interested in John Perrott, the Family Law attorney.

Proximity to Hoge Fenton suggests that this might be Michael Bonetto or one of his people, but there is no strong evidence of this.

Other attorneys may be reading the PDF, but I don't see evidence that it's mentioned in any attorney forum or venue that would boost its Google rankings.

SEO humor
To access the image for download or zooming, click here. Or, in Android, on the image and hold.
140313 Thursday — What Happens to Older Developers?

This post is old but will remain on the front page for the time being.

140313. Jeff Jenkins posted these questions and others recently at Ask Hacker News:

What happens to older developers? Is there a plateau in pay? Is there a drop in pay switching jobs after a certain number of years? Is becoming a specialist rather than a generalist the answer?

To read the original post, click here. Note: The link was valid as of March 2014. However, it may have broken since then.

This is my response:

Developers who go on long enough are expected to obtain high-level titles by their 50s or to retire at about that time.

I'd like to discuss an issue that you might not have thought about: What's going to happen if you lose your job?

Employment in the 50s can be problematic. If somebody is skilled and employed, and has a high-level title or is a specialist or has useful connections, they should be able to obtain a new position.

Otherwise, they might go from well-off to homeless. It happens. I'm 55, my resume is pretty good, and I was worth $1M a decade ago. I'm a transient now. I've got some medical issues, no medical care, and no dentists. Potential jobs are largely unskilled physical labor, which I'm not able to do.

I'm taking a shot at tutoring. However, I don't expect that to provide more than gas money. The head of an admin assistant firm said that I can't be a secretary unless I already am one.

Two people considered sending me to care for elderly relatives, but we didn't proceed. My title at one of those positions was going to be “poop scooper”.

Don't let this happen to you. For what it's worth, here's my advice:

1. Don't fall off of the employment ladder.

2. Become a specialist. Try to remain broad enough, though, that you don't become obsolete.

3. Build a network of people. Make it a large one.

4. Diversify your investments.

5. While you're employed, don't let medical issues, even minor ones, go untreated for long. If you lose your job and your assets, you'll lose medical care too and the issues may become serious.

6. Be kind to people. But don't be a fool. Most people that you help are not going to return the favor.

Regarding specialists, I did recruiting for a while in 2011 and I can confirm that the filters are weighted against generalists.

I've spent about 35 years myself as a generalist. My jobs called for it. The place where I spent most of my career took any project that came along, code of any type. At a dot-com that followed, after the money ran out, I handled all of the technical roles; IT, websites, development, support, documentation, etc. I was able to do a bit of everything.

Later on, none of this made a difference. There are few job listings that say “a bit of everything”.

After the dot-com shut down, 2003, I made $1M in the stock market. Lost most of it afterwards and reentered the job market. Learned that middle-age generalists were not in high demand.

In my case, there were other factors that won't apply to you. It's a story for another time. But if you're a generalist who falls off of the ladder in middle age, you can expect things like this:

“With a resume like that, why isn't he a CTO? Why doesn't he even have a job?”

You'll be asked questions about algorithms that you haven't thought about for 30 years. Or you'll go through coding tests under adverse conditions that don't allow you to show what you can do.

Plan ahead. Understand that the best-laid schemes of mice and men often go awry.

My own resume is located at:


These are my links. Yes, the technical site needs Twitter Bootstrap :P

  1. Technical site (oldcoder.org)
  2. My GitHub
  3. My LinkedIn
  4. My Twitter
  5. OldCoder Nerdcore Song

Regards, Robert (the Old Coder)

It Happens to Everybody

The illustration is distributed under the following license: Creative Commons Attribution Share-Alike 2.0 Generic. For attribution purposes, the rights holder is Ell Brown. For more information about the license, click here.

Aging People
To access the image for download or zooming, click here. Or, in Android, on the image and hold.
List of numbered pages

For the next older page, click here

Latest 067 066 065
064 063 062 061
060 059 058 057
056 055 054 053
052 051 050 049
048 047 046 045
044 043 042 041
040 039 038 037
036 035 034 033
032 031 030 029
028 027 026 025
024 023 022 021
020 019 018 017
016 015 014 013
012 011 010 009
008 007 006 005
004 003 002 001