LG is the Good Guy

A few years ago I got an LG Nexus 5X phone through a new Google Fi account.

The Nexus5X has a camera app that (probably) eats RAM often to the point of crashing the system and/or killing the two GPS logging apps I always have running. But the camera app does HDR well and has great panorama logic. The camera app pretty much displaced an old Canon A650 IS for my picture taking.

And then, some months ago, my Nexus 5X went in to the infamous “boot loop”. The Nexus 5X would not boot. After a lot of Google time and whatnot, I bought a Motorola Power G. And found a solid, reliable camera app. That reliably took lousy pictures. Bizarre panoramas. Ugly HDR. Thank God for the decade old, long-in-the-tooth Canon.

Cue the trumpets: A couple of months ago I accidentally found the original Nexus5X box. Which had the phone’s IMEI number. Which allowed me to call LG’s support number. Who told me that LG would fix a boot-loop phone for free. So, that phone call set up an email from LG a couple of weeks later. The email had a FedEx shipping label. Which I drove, with the phone, to the Issaquah FedEx office. And a couple/three weeks later I got a working Nexus5X.

Early in personal computer history, it was common practice to advertise a product idea as a real product. Enough pre-orders drove the actual product creation and manufacture. Then IBM came out with their PC. The PC was already engineered and shipping. But IBM goofed. All shipped PCs needed a fix. IBM fixed them. IBM ate the cost. That sealed the PC deal. IBM showed that they could be trusted. They stood behind their product. That was a massive change in the personal computer world of the time.

With my Nexus5X, I found LG stands behind their product.

I learned something about keyboards

As it turns out, the empty space between the Alt and Ctrl keys seems to be there for a reason:

The side of the hand needs room here.

On a real keyboard, one with real key travel, if you don’t put your hands on some kind of padding, the meaty side of your right hand will fit in this space!

I learned this when, on a whim and with only one usable keyboard left (a sad Model M) I picked up a little 82-key AJazz AK33 board. This board sports the modern world’s unserious attempt at approximating buckling keys – Cherry Blue-esquers. But, hey, it’s small. Or something. And lighted. And has some key roll-over.

Ajazz AK33 with no slot for the right hand to fit in to.

But it didn’t work for me. Turns out, my right hand would push the left arrow key at random – usually when hitting a burst of keys.

Luck was good, though. I got one of my ~30 year old NMB buckling spring boards working again. They aren’t the best keyboard ever made (i.e. an IBM AT board), but they are up there.

A Better Way of Scoring

Racquetball’s official scoring method is a millstone around the game’s neck.

What’s better?

Let’s score to make games more even, with longer rallies.

How?

First: Rally scoring. A point is scored on every rally, not just when the server wins a rally. Volleyball went to rally scoring a couple decades ago. Big improvement.

Second: Who serves? The person with the lower score chooses. If the score is even, the person who did not have the serve-choice the previous serve chooses the server.

Third: Single serve. A fault is a point for the opponent. (I prefer two serves in racquetball, but that’s probably not the best way to do it. Most probably not the best in other sports.)

Fourth: The serve rotates in team games, doubles, etc., when the serve-choice changes. And the serve-choice side can force a single rotation of the serving side at any other time.

Fifth: Game is to 15 – win by two.

The result: Short, competitive games between players of differing skills. Longer rallies because the weaker player starts more rallies with an edge.

Bonus: Faster games. More action in a match. More fun to play. More fun to watch.

Applies to other games: Volleyball, ping-pong, badminton, squash. You name it.

Racquetball is inherently fast and action-packed. Why should it have a plodding scoring system? Why not a system that fits the game?

Which leads to how games will change when judging and ref’ing become automated. Why should points only be counted once a rally? But that’s another subject for another day.

Make Facebook pleasant again

I go to Facebook every few days, weeks or whatever. Kids’ pics. Volleyball happenings. Doings of people I’ve known over the years.

What’s happened to my follow-feed, though, is people I know to be fine people in real life appear in the feed as the girl on the left:

Tantrum Time

This is disheartening at best.

Politics is entertaining, but, golly, let’s not scream at our favorite character on TV when they do something dumb. Get a grip.

But, of course, the other guy will never get a grip.

So, for Firefox, there’s Grease Monkey and my quick and dirty Grease Monkey script, FaceBookFix.user.js, to the rescue.

This script simply takes Facebook posts off screen if they contain, in text form (sadly not in images), any of a list of words.

It’s not heavily tested, to say the least. Which is to say, I tried it a couple times.

I made it easy to add or delete banned words. Non-programmers can change the script if they can find it on their disk and save it as a text file from WordPad or a better text editor.

The results are nice. My feed is now pleasant. Again. “Never do yourself what a computer can do for you,” so the computer now lets me see the real news un-flooded by noise. (If this post makes it to Facebook, I can’t write “f*** news” or the script will make the post invisible to me!)

Oh. Here’s the whole script as of this moment:

// ==UserScript==
// @name        FaceBookFix
// @namespace   https://www.tranzoa.net/~alex
// @description Get rid of sad Facebook tantrums.    https://www.tranzoa.net/alex/public_stuff/FaceBookFix.user.js
// @include     https://www.facebook.com/
// @version     1
// @grant       none
// ==/UserScript==

/***

    FaceBook posts containing any of these listed strings are whacked.

    The strings are in in no particular order.

    Change as you see fit.

    Non-programmers, leave the last one as the last one.

    Non-programers, for syntax reasons, do not put any:
        single-quote         ( ' )
        pipe/vertical_stroke ( | )
        backslash            ( \ )
    characters in any of the strings.

***/
var find_these_strings  = [
    'killary',
    'drumpf',
    'obozo',
    'shillary',
    'repuglican',
    'democrap',
    'libtard',
    'faux news',
    'hilliary',         // I forget other Internet commenters' alternate spellings. More to come, for sure.
    'trump',
    'hillary',
    'clinton',
    'HRC',
    'DJT',
    'obama',
    'biden',
    'pence',
    'nixon',
    'watergate',
    'reagan',
    'steve bannon',
    'stevebannon',
    'bernie sanders',
    'berniesanders',
    'bernie',           // Sorry about this, Bernie-from-Dimas-days. Your brand has been trashed.
    'sanders',
    'george bush',      // 'bush' is just too generic
    'georgebush',
    ' g bush',
    ' gbush',
    ' gw bush',
    ' gwbush',
    ' h bush',
    ' hbush',
    ' hw bush',         // did I get these bushes right?
    ' hwbush',
    'kkk',              // why are Hollywood and the news guys obsessed with the KKK? No one in the real world cares about them.
    'mcconnell',        // maybe this should be only mitch McConnell
    'sean spicer',
    'seanspicer',
    'harry reid',
    'harryreid',
    'paul ryan',
    'paulryan',
    'muslim',
    'impeach',
    'senate',
    'house of rep',
    'parliment',
    'merkel',
    'abortion',
    'pro-life',
    'prolife',
    'pro-choice',
    'prochoice',
    'occupy democrats',
    'occupy wall',
    'fake news',
    'iran',
    'iraq',
    'isreal',
    'saudia arabia',
    'potus',
    'scotus',
    'executive order',
    'daily show',       // ? poeple seem to feel this show is really important when it discusses politics
    'fuck',             // the whole profanity list should be here.
    'shit',
    'Note: Leave this here at the end of the list.'
    ];
find_these_strings  = find_these_strings.join('|').toLowerCase().split('|');
find_these_strings.pop();       // get rid of the comment at the end


(function (){

function    fix_this_facebook_thing()
{
    var divs = document.getElementsByTagName("div");                            //  Find all DIV elements in the page
    // window.console.log("fixing " + Date.now() + " " + divs.length);
    for (var el_number in divs)                                                 //  Python is *so* superior to JavaScript
    {
        var el  = divs[el_number];
        if ((el.id != undefined) && el.id.startsWith('hyperfeed_story_id_'))    //  For each post in the feed
        {
            var htm = el.innerHTML.toLowerCase();                               //  Look for any of the strings without regard to case
            // window.console.log("scanning " + el.id + " " + htm.length);
            for (string_number in find_these_strings)
            {
                var fs  = find_these_strings[string_number];                    //      For each of the strings to find
                if  (htm.indexOf(fs) >= 0)                                      //          Is the string in the post in text form? (sadly missing them in images and videos)
                {
                    el.style.display    = 'none';                               //          Yes. Take the post off screen
                    // window.console.log("whacked: " + fs + " in " + el.id);
                    break;                                                      //          And don't keep looking in the this post for more matches.
                }
            }
        }
    }
}


var timeout_every_couple_seconds = window.setInterval(fix_this_facebook_thing, 2017);


}());


// eof

Medical systems in three phrases.

Finding things wrong with the US medical system is like dynamiting fish in a barrel.

Finding ideas for improvements isn’t any harder.

Implementing such ideas or even simply validating whether they are good ideas is much, much harder.

But one day I stood back and considered the “system” while keeping in mind three little phrases.

1) Who cares? It’s not my money.

2) You get what you pay for.

3) First, do no harm.

There may be other phrases as pithy and relevant. I don’t know. Can you think of any?


Let’s flesh these phrases out:

Who cares? It’s not my money.

Medical expenses are disconnected between payer and payee. Given regulatory realities, if you want to control your own medical expenses, you need a competing system – in another country.

But, going to another country is not often an option. US medical expenses are dominated by Medicare/Medicaid. Medicare/Medicaid don’t pay foreign medical bills.

When you are insulated from the price of medical care, your are not the customer. You are the product, perhaps. The raw material, perhaps. But you are not the customer.

Imagine buying something from Mr. Someone without knowing the price until your bank account has been debited for that Wells Fargo money order you sent to Mr. Someone. Ah, you would be the “mark”, perhaps, but not the customer.

You get what you pay for.

We all deeply know that “cheap” is cheap and “expensive” is high quality.

When you are sick or broken, do you want a cheap fix? Gosh no! You want the best money can buy. Since you have no clue what particular fix you want, it’s safest to go with the expensive fix and hope for the best.

Just try to justify a cheap fix for someone else’s body. Don’t you look horrid? Yes, you do, you uncaring cheapskate.

So, the existing medical system is a cost maximizing system. By demand.

First, do no harm.

Medical practice is not perfect. Many diseases and other negative attributes of our bodies are not dealt with well at all. This will always be true.

So how does the “system” find cures or fixes?

Carefully. By “hill climbing”.

“Hill climbing” is a simple, universal search method. When hill climbing, you start from where you are and look around your neighborhood for a better place to be. You go to that place and do the same thing again. And again. And again. Until you find yourself in the best place in your neighborhood. You have found what you are looking for. Search complete.

For example, imagine looking for a cure for cancer.

You have a current therapy for cancer. But is there a better one?

Well, you *could* search for one by randomly trying all sorts of things:

* Homeopathic beets.

* Up-beat music.

* Vegetarian fish.

* And so on.

But, “First, do no harm.” Ignoring the current, best therapy can certainly qualify as doing harm. So, to find a better therapy, you modify the current, best therapy by just a very little. Usually, you add something to the current best therapy – an extra “medicine”. Just enough to check a similar, nearby therapy. Carefully. Then, if this new therapy is an improvement, you switch to it, and do the process again. Carefully.

As a strategy, hill climbing can work very well. Unless the possibilities are vast or the best therapies don’t have wide, easily found slopes leading up to them.

Hill climbing gets stuck on what are called “local maxima” – the best place in the vicinity. Not the best place. Only the best place near the searcher’s current location.

Hill climbing is not a good way to find breakthroughs. Breakthroughs happen when someone gives up on current practice and flies off on a tangent. Doing harm.

Consider ants when they know their food source. They file to and fro, slightly improving the path to the source by cutting corners until the path is short and easy. They do no harm.

When the path is broken, the ants wander around in a peculiar random way, casting about for some indication of food.

They can die wandering randomly. “Tough break, Mr. Ant. Hard times call for hard measures. You do yourself harm for the greater good.

Uh, huh. Sell that to Hippocrates and his oath.


So there you have it. Food for thought.

Ubuntu Precise makes Vista look like a sparkling, priceless jewel

For work reasons I looked at Ubuntu 12.04, Precise 32bit under VMWare Player.

From early reviews, etc., I was prepared for being underwhelmed by the Unity user interface. I was not prepared for a disaster.

Here are some tag lines that come to mind:

“Ubuntu Precise – for those who cannot figure out a mouse.”

“Ubuntu Precise – bringing the worst of bad phone UI design to a desktop frighteningly near you.”

“Ubuntu Precise – the most expensive free OS in existence.”

“Ubuntu Precise – for those who never ever want to resize or scroll a window.”

“Ubuntu Precise – with an immutable, ‘Halloween from Elm Street’ desktop theme loved by 32 year old boys in their mother’s basements worldwide.”

“Ubuntu Precise – breaking 10 years of software improvements to squeeze a whole ‘UI’ in to an icon-sized area at the top left corner of your bare-bones, dual 24″ 1080p monitor system.”

“Ubuntu Precise – the OS for people who struggle with only 500 icons on their desktops.”

“Ubuntu Precise – type partial app names to see icons that do nothing.”

The list goes on and on.

What’s truly unfortunate is that Precise, by all accounts, has many small but real improvements over Lucid in particular programs and sub-systems.

If Lucid ran Office, a normal person could probably drop Windows and deal with Linux USB and general non-Windows issues. Lucid has pluses over XP and even Win7 to balance the minuses. But I’d not point anyone to Precise. It’s simply not a working system.

And we may use it in a product, desktop-less.

Python 3

Read an interesting screed on Python 3.

Thoughts on Python 3

Agreed.

This paragraph pretty much sums it up:

Python 3 is in the spot where it changed just too much that it broke all our code and not nearly enough that it would warrant upgrading immediately. And in my absolutely personal opinion Python 3.3/3.4 should be more like Python 3 and Python 2.8 should happen and be a bit more like Python 3. Because as it stands, Python 3 is the XHTML of the programming language world. It’s incompatible to what it tries to replace but does not offer much besides being more “correct”.

I really like Python. Moved from Perl (for PC work) when CPU’s got fast enough for Python. The Python out-of-box was terrific.

But, Python 3 is another language. I can’t justify porting all my personal “library” code to another language. Some of the Python 3 stuff reminds me of C++ – puffiness for the sake of puffiness. If forced to go to Python 3, I’d evaluate what language to use as I did when moving from Perl.

And as it stands, it’s very clear that, since all the garbage-collection-memory-protection languages are equivalent, the last one standing will be JavaScript. You have to write the occasional JavaScript. So you have to pay the entrance fee. Maybe node.js will end up making JavaScript work reasonably as a non-browser language. Something will. And that’s the end of all the other languages (excepting the type-anal ones for corporate cubicles). Poof. Python 3 becomes a non-issue.

If Python ran in the browsers and if it ran on all the newer OS’s, then fine. It could go head to head with JavaScript. Otherwise … Too bad. Sad. I may be a curly bracket guy, but Python just looks and feels better than JavaScript.

Costco ZT Affinity AMD Phenom II x4 945 Win7 Home Premium Review

Out of box:

The expectation and included pictures had it that the machine had PS-2 plugs for both mouse and keyboard.

It had one PS-2 plug labeled with a keyboard picture.

The included Microsoft keyboard and mouse were both USB.

Turns out, that’s perfect for me. I could use an extra, junker, USB keyboard for a current project. USB mice are as good as PS-2 mice. After I get the machine set up I’ll use one of the old NMB (AT/PS-2) keyboards. I’ve stopped using the IBM AT boards because programs want F11. And, the AT boards take too much juice to be run from a USB port, powered or not. Anyway, it’s important on a main machine to use a PS-2 keyboard port because of the Control key problems with PS-2/USB keyboards.

The system is a better configuration for me than what I thought I had bought. No negative points.

Let’s fire up Win7…

Win7 comes up asking your country, time, etc. There’s a glitch in the day selector’s display attributes and for some reason the time zone was Pacific but the time was Eastern. No biggy. No points plus or minus.

Norton comes up with a huge buy button labeled “Activate Now” and tiny text link: “Close without enabling security”. Negative points.

After the Norton thing, the UI went to the Control Panel. Since I always set XP systems to Windows Classic, the Win7 Control Panel was unfamiliar. It did not take long to remove Norton. And I spent a couple minutes playing with desktop backgrounds and such. Postitive points.

Played two or three games. The presentation was very good, both audio and visual. Ties to the net were well balanced. The whole “experience” in the game area was smooth, comfortable and pleasant. Many positive points.

Aside from Norton (a program that remains on PCs because the US government IBM-ed Microsoft), the only clutterware on the box was something called “Express Gate”. There was no indication of what it was, though it seemed to want to copy bookmarks from browsers. A quick web search found that it’s ASUS’s quick-OS. It boots Linux from motherboard flash memory in a few seconds when the PC powers on. That makes a PC act like a countertop device, able to hit the web quickly without all the time a full OS needs to start. Negative points for presentation inside Windows. Express Gate is not useful to me as I keep main machines on 24×7. But I know no downside to Express Gate being on the machine.

Express Gate: Must be turned on with an “Enable” buried in the BIOS. So only geeks would know it exists. There really should be something at the Windows level to explain it and to turn it on and off. But, it’s nice. Quick and clean. I didn’t look at it enough to see for sure, but the big gap appears to be no concept of a user. Without a user, the 3 communications pieces (Pidgen, Skype and Firefox) are not integrated and Firefox has no secure password storage. It’s easy to see why there is no integrated user name / password, though: slippery slope and probable customer troubles. They have links for support forums, etc. which I did not explore. The games page had its own feedback thingee. I was impressed by Express Gate. With an integrated, secure password store I can see a consumer PC not being fully booted very often.

Anyway, just to be clear, positive points for lack of clutterware, ZT.

Alerts: Win7’s alerts seem nice enough. Perhaps a bit too quick to go away and I did not see a way to get a history of them. With no Norton, they lead you quickly to IE8 and a Microsoft web page with a large list of anti-virus products. Once IE8 comes up you’re also led quickly and easily in to Windows Update, where the first download seems to be Microsoft’s anti-virus program. The “experience” is not too in-your-face and justified as it will be some time before anti-virus/firewalls disappear in to the fabric of the universe. Slight positive points. YMMV.

A Win7 background picture of note is the startup/shutdown/logon image. Its Rorschach ink blot impression to me is that it covers the human demographic completely. In the South East corner there is a leaf or snowflake or white bird or something appearing out of the glare. I’m thinking, “aromatherapy”. There’s estrogen in the South East, y’all. But, now look at the North West. Jet trails. Why no tiny outline of an F-16, I cannot understand. Anyway, the whole picture is Bauhaus sparse, but weird. Positive points.

Disk organization: It appears they’ve gone Unix-like to put users in their own directories off C:\Users. Positive points. But a hassle for me as the root directory is admin only and I have a lot of system things off root in my standard setup. Turns out, this was not a lot of trouble even for my evolved setup. A couple of environment variables and all the important things went under C:\Users\alex.

“My …” directory names? Negative points. Childish. A single word is good. i.e. Music, Pictures, etc. That keeps the space character out of the directory name, too.

Let’s play “find the IP address” – without cheating and running ipconfig. Or going to the firewall and viewing its table. … … Buried where it’s not too hard to find. But buried. A less buried window that shows “IPv4 Connectivity — Internet” could have included the IP address directly. I’m guessing that anyone who knows what IPv4 is would be able to guess what 192.168.17.100 meant. Negative geek points.

What? Hold on. Let me check the date. 2010. Yep. And Windows dialog boxes are still not expandable? I fuss about Linux not remembering window size and locations. (Yes, “Linux”.) Negative points.

Windows versions: Home Premium (whatever that is) is like XP Home in that it does not remember networked drive connections. The bait and switch is still there. You can tell Windows to store your “credentials”. You can tell Windows to connect the drive when you log in. But Windows doesn’t listen. Negative points. And sloppy.

Negative points that Home Premium does not allow remote desktop. No ssh server either. Hmmm. Can 4DOS do ssh server? No. Cygwin, then. Yuck.

The usual negative points for Microsoft’s money stream of product differentiation. Windows comes in 11-teen confusing versions. You don’t care. You get whatever happens to be pre-installed on the box you buy. But these 11-teen versions remind you that Microsoft is – like any bank, insurance company, telephone company or government – not on your side. Count your fingers, my friend, after you shake these guys’ hands.

All in all. ZT gets a thumbs-up for a clean system. And Win7 gets thumbs-up for the same. Win7 does not scream “DOS 4.0″/”ME”/”Vista”.

Now. The grass sure looks green. Do I go back to Windows from Ubuntu?

The Great Oil Crisis of 2008

A couple things seem interesting about the recent oil price spike:

  1. Where is the “Oil Crisis”?
  2. Where is the mention of the trash-by-the-freeway effect?

Huh?

  • Consider #1. If it were 1973 or 1979 (gas-line years in the States), buckets of ink and hours of heavy-breathing news anchors would have beaten the “oil crisis” in to us. Why not this time? Is it because Nixon and Carter aren’t president? Not literally “because” of them, perhaps (though a silly argument could be made for that), but rather, is the mind-set that yielded Nixon and Carter as presidents no longer with us – even in the media!

    (Just to be clear, a “crisis” is what we have when someone wants to “do something”. If you don’t know what that means, wait a few years and watch the results of a few “do something-ings”. Hint: The guy who wanted to “do something” will never, ever mention it until they have successfully shifted the blame.)

    Or is this “oil crisis” missing to only me simply because I’m not exposed to these media guys. Every few nights, does NightLine lead off with a dramatic graphic mocking The Onion’s “War for the White House”, followed by talking heads wringing their hands and pronouncing this week’s events a turning point in the history of mankind and proof that there is no end to the “crisis”. …Uh. … Ah. … Is NightLine still on TV? … Whatever.

    My bet is that there is a different attitude out there from the one that was prevalent in the ’70s. The air’s simply been cleared. We don’t breath that stench any more.

    Consider what a true and beautiful thing that is, oh you who bemoan today’s world.

  • #2: A queue or flow system flowing near a critical density will crystalize from the occasional, tiny distraction. Think of how a piece of cardboard blowing slightly toward the traffic lane of a packed, fast-flowing freeway can cause a 1 hour traffic jam. You have driven through such a big slowdown but have seen no cause for it.

    The was no “cause”.

    Such slowdowns are a natural characteristic of dense, flowing material in this universe.

    The way I understand the world’s oil system is that it’s a flow of material from underground muck to hot air thousands of miles away. The “oil” changes hands many times. It’s a huge system and highly, highly optimized. There are predictable elements to it – both on the source end and on the sink end. But, it’s so leanly built that the predictability is optimized out of the system. Leaving a classic, saturated, queue/flow system.

    Which leaves us with “This will happen. You can’t predict it.”

    That is not satisfying. … Hence, we have plenty of left-brains ready to supply an explanation for why the coin, this year, came up heads.

    There is actually a reason why I’m guessing that a large part of the oil price spike was simply a traffic jam. I looked all around and found no information that accurately filtered from the “price” of oil the effect of the dollar’s drop against other currencies. Of course, there are calculations out there, but they sure looked like horseshoes and bombing. If the effect of the kahuna of “explanations”, the dollar’s value, is a wild guess then one might suppose that the oil guys who were stuck in the traffic jam simply didn’t know when that jerk right ahead of ’em would get off the d****d phone and move, for Christ’s sake!

    Quick argument against this: Where are the traffic jams in food? It’s an old story that “major cities only have 3 days of food; we’re all gonna starve; blah, blah, blah”. The food chain is very evolved and optimized. Where are the (mathematically) catastrophic spikes in the system? Answers I can think of off hand:

    1. Major cities have a lot more food stocked than 3 days’ worth.
    2. There are many alternatives to each type of food. This makes the system robust in the same ways that non-deterministic packet switching systems are robust compared to older systems, and in the same way that traffic flow is more robust through a grid-pattern city than through a more modern, flow-controlled, tributary-to-artery system.
    3. Hey! Remember the toilet paper “crisis”? Well, toilet paper’s kinda like food.
    4. And, panicing lunatics played the OH MY GOD! ALL THE RICE IS GONE FROM COSTCO! card this year.

      So, maybe there are serious traffic jams in the food system.