Tuesday, November 1, 2022

Free Energy at your fingertips

 

Free energy is all around us

My home has a nice geo-thermal heating system that has worked for years.  If you can afford one, get one as it is way more efficient than any other heating system I know of.
That's because the earth is an infinite heat source and heat sync.  Just dig a trench about 4' down, run a tube through it, fill the trench with water if you like or use a pond to make heat conductivity more efficient and you can now use a simple heat-pump to heat or cool your home.
But no there more!
With the use of a sterling engine, you can actually generate electricity from the temperature differential you get with your geo-thermal heat pump and guess what? As long as your trench is big enough to transfer the heat quickly enough, you can use that to power your home as well!
I spoke with an HVAC specialist at costco one time and mentioned this idea to him.  He said, "sure it's possible but then we would be out of business".
Yes, that IS the problem.  The power's that be do not want simple and free energy.  It breaks their whole machivelian plans for global conquest.
Well, I'm just sayin - it CAN BE DONE.

You can buy a toy sterling engine for $60 here.
Good luck in finding a large one that can do useful work for you.  Bit it is definitely possible and simple with no fancy perpetual machine BS.  The idea works.
C'mon Elon, get with the program!

Friday, December 31, 2021

You don't really own that OS

 Hey so why can't I use more than 8% of my CPU on Windows?


I was running this sed tool on a very large file that taks a long time to complete.  That process is cranking as fast as it can.  I only have 4 CPUs and one shows its cranking full bore but the task list shows only 8% of CPU being used.
So where is the other 92% of my CPU?
I think somebody's lying to me.


Friday, January 18, 2019

Windows 10 - ready to F#$% you if you step out of line.

So I was wondering why my system was taking so long to boot.  Brand new PC with my first time using Windows 10 for only a month or so.  Now you gotta know I was leery of the next version, as it was now 2019 and I had never yet run windows 10.  Why?  Well because of surprises like this.

I decided to go into msconfig.exe and look at my services at startup.  My GOD!  It looked like there were about 160 services!

I noticed a note (can't recall how I saw it) that said that some services could not be disabled.

Aha!

That told me that someone was wise enough to not allow a naive user to disable critical services needed for the system!

Ok.  It should be safe to try this.

DISABLE ALL SERVICES AT BOOT

Ok lets see how this does with boot time.

....

"Your password is incorrect.  Due to security changes Windows is no longer able to access your PIN"

...

Uh ohhh.......

Tried everything I could think of.  Couldn't seem to get into the BIOS with DEL or ESC.

hmmm.

I looked up some forums and some people had managed to hit CTRL when logging in or waiting long enough (several hours) and eventually logging in - but others had to do a complete reinstall!

I tried their hacks...  no luck.

Better take it in to the Computer Guy in Orofino for an expert opinion.

They had several USB and DVD boot images to try to "crack" the password.  No luck.  The new BIOS is VERY SECURE.  Lots of interlocking settings that all have to be just right to be able to boot into a USB stick or the DVD.  This guy managed to get one image to boot but not the cracker one.
I did manage to learn that getting into the BIOS now required either F12 at startup or to hold the SHIFT key down when pressing the restart button on the desktop (no it doesn't work with any of the other 100s of "restart" buttons placed throughout the settings UI) which will get you into DELL's troubleshooting boot system which is separate from the BIOS.
I left him with it for the day and did some errands.

When I returned, he had no luck in getting in and charged me $27.50 for his time, which I perfectly understood.  As I left I said

"In software, sometimes you can work all day and accomplish nothing" 

- which is very true.

So my box has been reinstalled to factory settings (that took me several hours to feel confident there was no other way to go that would work and to feel comfortable with all the settings of the BIOS, the DELL troubleshooting shell and the special OS fix and reinstall support shell from DELL).

Why does crap like this happen?

Security and Laziness and Greed

Sometime in the mid 90s a bunch of very good tester's at Microsoft were let go.  These guys were our team of monkey testers.  They didn't write a lot of code but instead simply pounded on the UI of whatever project they worked on to just find usability bugs.  This is called "usability testing" and is actually where some of the best oversights of PM specs and Dev designs are found.

There is simply no way for these kinds of bugs to be found any other way.  AI is way too weak to try to find usability bugs.  They require creative thinking and sound judgment to find and a it takes lot of time.  To properly fix these bugs can sometimes require a complete redesign of the UI.

Without this kind of testing, and I am sure Microsoft still does some of this, it is impossible to catch traps like what I fell into.  msconfig did exactly what I had told it but likely some "Update" had changed the service dependencies and left at least one critical service unprotected from "disablement" and there I am F$%$^ed royally.

One thing in Microsoft's favor, there are now convenient ways in Windows 10 to provide feedback to Microsoft on this stuff.  Do they read it?  I'll never know.  They've gotten a lot of feedback from me - I'll say that for sure.

Luckily, I have had to reinstall windows (all versions) over the years so many times that I have a pretty sound way of saving my important data and being able to relatively recover from this crap - but it still usually takes about 3 days before my system is back to a state where I can stop installing stuff  and tweaking settings I need and just use it.

___

Last year I went to a Windows NT reunion and got to meet a bunch of my old work-mates.  Fellow Devs that all contributed to a product that has made Microsoft over a Trillion Dollars since we finished it.
Very few testers were there.  Only leads and managers with long time commitment to the company were invited.  The usability testers simply were no longer with us to enjoy the celebration.  I am sad for them.  I valued there input much more than most I think.  This is because it takes a human mind to make a software product truly usable by a human.

There are tools we could make and give customers to help them understand how to know which services are safe to pull out but there are too many forces that simply don't want to bother or share this kind of information.  Its just more code to break and test and more documentation to write and maintain and makes more customers fell confident enough to mess up their systems.

However I would love to see a tool that can show a map of all service dependencies and another one that shows all setting dependencies (that one may be impossible to make automatically) and a website that documents the registry (which I proposed to the microsoft.com team many years ago), the services and the settings - ALL of them for ALL versions and ALL updates of Windows - so users can make a better educated guess as to how to adjust things to their needs.
To maintain this stuff you almost have to put links or references into the code itself to help keep changes in the code propagated to the documentation and settings UI.  This is a lot more work for the dev but I think is the only way to keep the whole product from going insane and eventually having pitfalls like the one I fell into.

Unfortunately, just like the history of the automobile, eventually there just are no more ways to let the customer fix or change his own product.  Eventually only the corporate devs will have the tools and knowledge needed to tweak the configuration of an OS to their needs and for the sake of money and time, the producer of the software will be forced to lock the user out of most of the guts of the product and deliver a less flexible, less usable product to the user.  

It's just too complicated not to.

:(

Sunday, August 5, 2018

On Scientific Research

This is a response to a post from a friend of mine no facebook reproduced here:
Everyday, I drive by the waterfront so I'm interested in the ships I see there. Probably the coolest are the Polar Sun and the Polar Star. They are the two largest ice breakers in the US. The Polar Sun is deactivated and it's parts are being used to keep the Polar Star running.
The Polar Star has one mission... to open the channel every year to McMurdo Station. Without it, our science stations in Antarctica are at risk, since McMurdo is the largest base and supports most of the others.
There's been a push to get a new icebreaker to replace her... since if she breaks and we can't repair her with parts from the Polar Sun... we're kinda screwed.
The Senate allocated $750 million in Feb to build a replacement... and it still needs to be passed. But the Donald "littlefinger" Trump moved all the funding from the icebreaker to the border wall. So much more Making American Science Great Again.

About this article
PHYS.ORG
The rapid pace of global warming and ice melting at the poles have underscored the "critical" need for the United States to build four new polar icebreaker ships, US officials said Tuesday.

It would be very sad to see our Antarctica Scientific investment be lost due to the loss of this ice breaker.  However I think there are other things to think about before we bash Trump for this problem.
First of all, providing for the common defense, as is stated in the preamble of our constitution is one of the primary reasons to have government.  A border wall is a project well within this goal and is thus an appropriate project for federal funding.  Providing for scientific advancement could also be deemed as furthering the common defense but it is unlikely that Antarctica research will contribute much to defense technology.
Something that many Americans seem to be oblivious to is the fact that every dime extracted by taxes to pay for projects funded by the federal government are taken at gun-point.  Any funding of projects that are not authorized by the constitution is an outright theft.  This is so common now-a-days that people see it as some kind of right that the government and voters have.  They forget that all power the government has was granted to it by The People, which our unique constitution recognizes as the only lawful source of authority in a non-theocratic government.
At the end of the life of a democracy, it's collapse always happens when the majority realizes they can vote for anything and steal it from the collective whole without any seeming consequences.  Eventually there are simply not enough producers to feed the greedy majority and the system collapses economically and usually with much violence in the streets.
Our economy is failing for several reasons.  A fiat money system owned by a private corporation, a great burden of arbitrary regulation well outside of the legal limits allowed by our constitution, and a very poor educational system that has produced a generation of feel-good know-nothings that lack the common sense necessary to sustain this economy.
The average American has never read or understood the concepts behind our constitutional republic, nor have they probably ever read the Federalist or Anti-Federalist papers which explains why we have what we have.
Without this basis of understanding we find many many people simply parroting the latest memes touted by the Mainstream Media as fact and true without question.
Another point on the ice-breaker issue is that government funding of research tends to skew it in the direction of whatever beliefs or policies are in place.  Scientists are not free to explore what seems most promising but rather what is most fund-able.  Grant writing is probably the most important skill for a scientist these days that wishes to pursue her chosen area of research.  Picking a research project that bucks the idea of global warming, for example, will have a very hard time getting funding.  This is a disservice to those paying the research bills - the US Taxpayer.
Another point is that the media is commonly used when funding is needed for a particular endeavor.  Ever notice how NASA seems to have a breakthrough in finding life on other planets just at the time congress is voting on its budget?  Ever notice how these great breakthroughs turn out to be nothing after the funding is obtained?
How critical really is this ice-breaker?  It would be real nice to have $750M given to get a new one.  Seems the rich can't get together and make it happen, no lets steal from the poor instead... ever think about that angle?  It isn't just "evil corporations" that steal from people. (and they don't steal it.  They provide a product or service people are willing to pay for.)  We throw a fit when corporations get a tax break but don't realize that every dime that they are taxed simply is passed on to the customer.  The price of a service or commodity is set by the market and the entire marked is adversely affected by both taxes and regulations.
Now I am not arguing that the wall Trump is building is necessarily the right thing to do, but it certainly falls within his job description and it is a project he promised to do on the campaign trail.  He was duly and lawfully elected to do what he promised and amazingly enough, he seems to be keeping his promises.
How does the executive branch "move" funding from one project to another when congress has full control of the purse strings?  Clearly, if the executive branch can do such things, congress is not doing its job to stop this.  Let's at least point the "little finger" in the right direction.

Tuesday, July 10, 2018

Why AirBnB SUCKS

This is unbelievable.  Airbnb has a terrible website when used by someone in my niche situation.  My big handicap is that I do not want to have or use a smartphone, yet it is IMPOSSIBLE as a host to use them without one.
When I got my first customer after several months of having been signed up as a host on this site, I received a rather cryptic text message that said someone wanted to stay at my place for two whole months (a $12,000 value).  Yet when I tried to log in I found my account had been hacked by someone and my name and profile photo was someone from India.  I can't imagine why anyone would hack an AirBnB host account but they did.
I spent hours trying to contact a person at AirBnB and could not do so.  After hours of searching I finally found a phone number burred DEEP within their help system. (BTW its 844-424-7262)
I needed to talk to a person because once I reset my password and tried to regain access to my account, I found that they had added a required photo method to verify my identity.  Unfortunately, they would only allow me to upload the photo via a smartphone.  Never mind the fact that I could take a reasonable picture of someone, hold it in front of the phone and take a picture.  The fact that I could not upload an image from my computer made it impossible for me to get back into my account.  I finally had to borrow someone elses phone to accomplish this step.  LAME-O-Tech
By the time this was done, my customer had been lost.

The cryptic url you get from AirBnB in your phone text message includes 0s and Os which can be very confusing.  I had to try 4 variations to get the right URL and the one that appeared right said "You are not authorized to view this message".  Well that helps a lot.
What was also weird was that when I went to my account online there was absolutely no evidence that I had any customers interested in my place.  The support person could not explain or correct this either.
The call center guy also had to admit, I cannot use their system without a smartphone.
I will send them a link to this article as feedback to their system and hope maybe somebody there will be able to make changes so I and others like me can use their services.

AirBnB seems to run their company like US Worst/Verizon does.  An impossible maze of attempts to thwart people from asking intelligent questions and getting real help.

As a test, on their help page I tried searching for "How do I ask a question" - no relevant answers were found.

Specific fixes they could do:
1) Forget photo verification via cell phone.  It doesn't prove anything, and it can easily be thwarted.  Either let people upload an image or get rid of this ridiculous method of user verification.  Better to get them to sign in with facebook - at least then you have a face recognition algorithm working for you.

2) for shortcut URLs don't use 0s or Os - just use lowercase letters - its not a password so keep it simple for users to type in if necessary.  In fact, I would implement it so that words from a simple dictionary are used.  Imagine how simple it would be to type in https://www.airbnb.me/lovelyflowerstogether.

3) Put your support number on the root help page.  Don't pretend to be happy to help me if you hide your number.  Better, add chat support or true email support or some kind of ticket system.  It works and things don't get lost.  Maybe your customer is like me and lives way out where there is little or no cell coverage - ever think of that?  Let people really talk to you using an efficient system via multiple channels.  I can understand the cost of personal support but with a good chat-bot you may be able to still answer most questions in an automated fashion.  Hiding your support or making it hard for people to talk to you just cuts you off from you customers and pisses them off.

If I see no progress in fixing this so I can use it, I will simply have to shut down my account and go elsewhere.  Don't do this guys!  I want to use you if I can!

Note that I have a general problem with all these "middle man" rental listing websites.  A host can only manage so many middle-men and besides loosing profit on their rentals, every site is different and there is simply no way to support all the possible ways a person might offer or manage his rental.  A small fee to allow the listing to simply contain a link to the renter's website would be wonderful and I would gladly pay a reasonable fee for the listing.
If this isn't done soon, I bet a craigs-list kind of rental website will become a defacto winner and eventually dethrone all of you "middle-men".


Wednesday, September 27, 2017

How Bitcoin Makes Wealth

I have recently been getting into bitcoin and all that entails.  The big thing about bitcoin is that it replaces or enforces trust.  Trust is key to all society and is the root force that creates an economy and wealth.  These days, trust is lacking everywhere - I should know - I have lost my fortune due to people I trusted letting me down.
Criminals use trust to gain access to wealth to steal it from others.  Unfortunately these days we also have rampant crimes in high places causing rip-offs on a unprecedented scale (bank bailouts come to mind). Our fiat money systems that run the world are all based on trust and the debt they create due to breach of that trust is causing a near collapse of the global economy.
Naturally people are running to crypto-currencies to protect themselves from the impending crash.

Why is trust so important?

Trust creates relationships and good relationships promote not only more trust but economic efficiency.  Few people realize that much of the worlds economy is held together by huge trust relationships.  We get our gas, our water, and many other services from large systems of trust that often span the globe.  If trust breaks down, relationships dissolve and economic efficiency falls.  Mankind can do nothing without trusting someone else - we simply can't survive as an isolated individual.

If you are seeing wealth disappear, odds are very good that trust is breaking down and relationships are suffering.

Here are some other related ideas I wanted to share with you:

  • Justice promotes integrity and trust.  Lack of justice creates lack of trust.
  • Integrity is a track record of unbroken trust and promotes more trust.
  • Wealth is created by people working together.
  • Better relationships and more trust promote economic efficiency and thus create more wealth.
  • Wealthy people have more to give and giving to the poor promotes equality.
  • Wealthy people have more they can afford to lose and thus they have less risk or can afford to take greater risks.
  • Less  risk also promotes integrity, trust and investment and thus promotes wealth.
This is why bitcoin cannot be stopped.  Our society desperately needs trust and blockchain systems provide the ability to contract with less trust.  We still have some very difficult security issues to deal with in crypto-currency but if we can solve those issues I see a massive increase in wealth coming despite all the criminals running around these days.  Governments (being a high class of criminal in nature) will oppose this but I don't think they can stop it.  
Blockchain systems may in fact be the impetus to drive us into the millennium - a time of great peace and prosperity and wealth.
Now if we just didn't have that problem with the mark of the beast...

Tuesday, January 24, 2017

Javascript Objects - The Truth


After building a project that attempted to use an object oriented way with Javascript I found that the rules of prototyping in Javascript were very confusing.  After reading several articles that weren't really helping I found one that mentioned all the "rubbish" in articles he had read.  That led me to an experiment to get to the truth of the matter - code!
So here is the code.  Run this, observe its assumptions, and I think you will soon be on your way to really understanding Javascript objects, inheritance and prototypes.
<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Object Test for Browsers</title>
<style type="text/css">
  body {
        text-align:center;
    }
</style>
<script type="text/javascript">
/*
    objectTest.html
*/
Object.prototype.deepCopyValues = function() {
    // returns a deep copy of this without function memebers - quicker
    return JSON.parse(JSON.stringify(this));
}

Object.prototype.deepCopy = function() {
    // returns a deep copy of this
    function deepCopyFunctions(org, copy) {
        if (org == null) {
            return null;
        }
        var keys = Object.keys(org);
        for (var i = 0; i < keys.length; i++) {
            var key = keys[i];
            var o = org[key];
            if (typeof(o) == 'function') {
                copy[key] = o;
            } else if (typeof(o) == 'object') {
                copy[key] = deepCopyFunctions(o, copy[key]);
            }
        }
        return copy;
    }
    var copy = this.deepCopyValues();
    return deepCopyFunctions(this, copy);
}
function run() {
    var o = {
        a : 1,
        d : 'string'
    };
    var o2 = o.deepCopy();
    var o3 = o;
    if (o !== o3) {
        debugger;
        return 'An object is equal to (===) a reference of itself';
    }
    if (o === o2) {
        debugger;
        return 'An object is not equal to (!==) a deep copy of itself';
    }
    if (o == o2) {
        debugger;
        return 'An object is not equal to (!=) a deep copy of itself';
    }
    o.a = 2;
    if (o2.a == 2) {
        debugger;
        return 'Changing a member of an object does not affect a deep copy of itself';
    }
    o3 = { a:5 };
    if (o.a == 5) {
        debugger;
        return 'Changing an object reference to a different object does not change the original object.';
    }
    if (o.__proto__ != ({}).__proto__) {
        debugger;
        return 'An object that is not created with new has an empty prototype.';
    }
    if (o2.__proto__ != ({}).__proto__) {
        debugger;
        return 'A deep copy of an object not created with new has a null prototype.';
    }
    function fnConstructorA(){
        this.a = 1;
        this.d = 'string';
    };
    try {
        fnConstructorA();
    } catch (e) {
        if (e.message != 'Cannot set property \'a\' of undefined' && // Chrome
            e.message != 'this is undefined') { // Firefox
            //debugger;
            return 'Calling a proper constructor without new makes the \'this\' variable in the constructor undefined. message=' + e.message;
        }
    }
    var A = new fnConstructorA();
    var A2 = A.deepCopy();
    var A3 = A;
    if ((A.__proto__).__proto__ !== ({}).__proto__) {
        debugger;
        return 'A new created object who\'s constructor has no prototype has the default Object prototype.';
    }
    if (A.constructor !== fnConstructorA) {
        debugger;
        return 'a new created object\'s constructor is the function that created the object.';
    }
    if (A !== A3) {
        debugger;
        return 'An new created object is equal (===) to a reference of itself';
    }
    if (A === A2) {
        debugger;
        return 'A new created object is not equal (===) to a copy of itself';
    }
    if (A != A3) {
        debugger;
        return 'An new created object is equal (==) to a reference of itself';
    }
    if (A == A2) {
        debugger;
        return 'A new created object is not equal (!=) to a copy of itself';
    }
    function fConstructorB(o) {    // like Object.create()
        this.__proto__ = o;
        this.a = 5;
        this.data = 'that string';
    }
    var B = new fConstructorB(A);
    if (B.__proto__ !== A) {
        debugger;
        return 'A proper Object.create() call yields an object with a prototype that equals the object given to the function.';
    }
    if (B.a == A.a) {
        debugger;
        return 'Values in a child object overshadow the same value in its prototype.';
    }
    if (B.d != 'string') {
        debugger;
        return 'Values in a prototype are visible from a child object if that value is not defined in the parent object.';
    }
    B.a = 14;
    if (B.a != 14) {
        debugger;
        return 'A value in a child object can be changed.';
    }
    if (A.a != 1) {
        debugger;
        return 'A value in a prototype of an object is not affected if a vaule in a child object is changed.';
    }
    B.__proto__.e = 'new string';
    if (B.e != 'new string') {
        debugger;
        return 'Changing a prototype\'s value within a child object affects the child objects same value if not defined in the child object.';
    }
    A.f = 'proto changed';
    var C = new fConstructorB(A);
    if (B.f != 'proto changed') {
        debugger;
        return 'Changing a prototype object value affects any child objects of it that don\'t have that value defined.';
    }
    if (C.f != 'proto changed') {
        debugger;
        return 'Changing a prototype object value affects any child objects of it that don\'t have that value defined.';
    }
    return 'SUCCESS!!!!';
}
function runTests() {
    var str = run();
    document.body.innerHTML = str;
}
</script>
    </head>
    <body onload="runTests();">
      Testing...
    </body>
  </html>