Oops! Something went sideways.

Looks like the styling got goofed up. Sorry about that, unless it's what you wanted. If this isn't what you were looking for, try force refreshing your page. You can do that by pressing Shift + F5, or holding Shift and clicking on the "reload" icon. (It's the weird circle arrow thing "⟳" just above this page, usually next to where it says https://blog.unitedheroes.net...)

isn't quite ashamed enough to present

jr conlin's ink stained banana

:: ev-iDunno….

tl;dr: Electric cars are nice toys that are not quite practical enough for me.

i drive a 12 year old Outback that has about 96,000 miles on it. This makes it “low mileage” and i like to think i keep it in pretty good shape. Even though it’s a Subaru and the life span on those things is amazing, it’s still a pretty good idea to look around at car options every decade or so.

While considering a more modern vehicle, there are three key items i consider kinda required at this point:

  1. Back up camera. It’s kind of a stupid thing, and i know how to set my mirrors and all, but i’ve driven cars with the camera and damn if it’s not useful.
  2. Crash avoidance. This can either be lane assist or city crash avoidance, but in any case, i’d like the car to be able to spot things i don’t. i’ve not had that as a problem, yet, but if there are going to be cameras on the car already, seems like a good follow up.
  3. Integrated Smart Phone environment Car UIs suck, the built in navigation systems are terrible, and they’ll never update as often as the pocket computer i haul around everywhere. It’s just bad design for auto makers not to include Android Auto or whatever iPhones do.

Recently, i got a hair about getting an electric. While i’m ok with reducing my carbon footprint, it also seems like a reasonable thing to do since there’s less parts to go horribly wrong. Since i don’t make enough to impulse buy a car, i wanted to do a fair bit of research on whatever the hell i’m dropping potentially half a years salary on. (i know, silly me. Not really into the California Mansion1 idea.) Still, doing the research kinda shows that things are not quite ready.

The first thing that kinda surprised me was the power problem. i’m not talking about range, since cars like Tesla and Chevy make cars that can do 200+ miles on a full battery, i’m talking more about what to do after you’ve driven 200+ miles. Turns out, that can be a tricky question.

Let’s say that you decide to drive your brand new electric from San Jose to Pismo Beach. It’s a trip of about 200 miles down 101, so you’re probably going to need to power up. Ok, so where do you do that?

There’s no real standardization for the sort of power socket a car maker picks, so there’s about five different types. From what i’ve read, there’s the Tesla plug, “J Plug” J1772 and the J1772-Combo (for fast chargers) and the CHAdeMO. Tesla plugs pretty much are only for Teslas, CHAdeMO plugs are pretty much only for Nissan Leafs, and the J1772 type plugs are for most of the rest. i’m also going to bet that the charging protocols are wildly different between each of those. You can buy an adapters for most of these plugs, apparently.

Those paying attention may note that i said five plugs. The fifth type of plug is the only plug that’s US standard for all vehicles. It’s a 220v 20Amp Nema 5-20, like what you’d plug an electric dryer into.

i’ve been told that some charging station outlets also sport a Nema 6-50, which is a 240Volt/50Amp instead of a 120V/20A circuit. That would speed things along a good deal.

It’s also the slowest option and requires you to haul around whatever charging dongle you got with your car. If you left your power dongle at home, you can get another one send to you for around $350.

You can also get conversion dongles for most of these outlets, so in theory you’d have something for any situation. Not super ideal, but workable at least.

Of course, each of those plugs carries different charging times. If you have all day (literally, and then add a few hours) you can fully recharge using a Nema 5-20 in something like 30+ hours. A Nema 6-50 in about 10 hours. Whatever Level2 option you’re using will recharge you in about 8 hours, and the “fast charge” will get you back on the road in 4. That is, provided someone else isn’t already plugged into the one fast charger already. i’ll note that it’s $.10 a minute, so figure spending $18 for a full charge. Not terrible. It cost about that much to fill up my Mom’s Prius after driving it from Leesburg, Va to Fenwick Island, DE and back.

So, probably not a good Road Trip car. Granted, driving from San Jose to see my brother is about 120 miles, so charging would still be A Good Idea, and i can hope a pleasant 2 mile walk from the charging depot to where he lives.

That’s fine, it’s more for driving short trips in city traffic.

For that, i’ll admit that things would be a bit better. It’d be my commuter in the winter when i can’t really ride my bike to work or once every other week or so to charge it up at work. My company pays for the power for that (they’ve very nice) but it does also raise an interesting question. San Jose has a lot of charging stations. Not all work, or are available all the time, and as i noted, they’re best if you’re somewhere you don’t mind being for an hour or so. i can charge at home, if i’m willing to either install a charging station for $1000 (provided it has the right plug). Of course, i normally park my car out in my driveway. My garage is also my laundry room so the other car sits on the opposite side of the garage.

Still, not terrible, but what iced things was actually driving one. i test drove a Chevy Bolt for a few reasons. i’ve no real interest in trying a Tesla. i expect there to be some differences, but from what i experienced, i don’t think they really matter.

Pros:

  • One pedal driving was kind of nice and surprisingly intuitive. Mind you, i tend to drive like that already. i’m reasonably good at putting space between myself and the car ahead of me so i don’t really use my brake all that often. This just kinda felt like the next step.
  • The car was nice and zippy. i’d have no problem merging into traffic on busier streets, even if my battery life would have other opinions about that.
  • It had all three of the things i was looking for.

Cons:

  • Not really super comfy. This was a weird one. i get that the seats aren’t automatic for weight reasons, but they also didn’t really seem particularly well padded. They kinda felt like office chairs. This was particularly notable in the back seat. i will say that there was plenty of headroom and the interior felt “spacious” enough, but i’d expect that with a vehicle that’s front wheel drive.
  • The “hand brake” gimmick is as counter intuitive as the one pedal is intuitive. The pedal feels like it has higher braking “resolution” than the paddle button. When i tried pressing the button it felt like it would start slowing, then aggressively brake the longer i held it, regardless of what pressure i used. i’d feel sorry for any passengers that either were, or were about to be carsick.
  • Slow final braking. This was also odd to me. i get regen braking, but the final bit of brake felt like i really had to press down to get it to engage. Considering how much the vehicle wanted to capture momentum, that last bit struck me as odd. Using one pedal, i didn’t have that problem, but i could also see where i really don’t want to get used to the way that car handles. i’d pretty much ruin the other car.
  • The power reasons above.

So, where does that leave me?

Electric cars are nice, but i can’t shake the feeling that they’re still very much toys. Damn pricey toys, but toys. i kid around that i’ve already got an electric vehicle, and that’s proving to be more true than i’d prefer. If i had to get a vehicle right now and was only going to be using it around town, i’d consider an electric. For a while at least. It’ll be interesting to me to see how poorly this post ages.

i still really wish that Subaru made a hybrid, but that’s probably not going to happen for a while. Looks like they feature the auto engine start/stop at least.

1 A California Mansion is a really expensive car you drive around because there’s no hope at all at affording even a burned down house.

:: Dear Graduates of the School I Will Never Give a Commencement Speech to

You, full of youth and vigor, with stars in your eyes and a cause in your hearts, are ready to change the world. i wish you the absolute best, and in many respects, you will absolutely change the world.

Just realize, that about half of you are assholes.

i’m not saying you are, since i don’t know you well enough to make that determination. Nor am i declaring any group of you are assholes, much for the same reason. Hell, every one of you in this auditorium/stadium/state could not be an asshole, nor ever be. That still means half of your peers are, because there’s a lot of you and y’all are everywhere.

i know this because i was horrified to discover that half of my generation were assholes. Same with every generation back to the time when two fish fought to get out of a pile of muck. For some generations, more than half were assholes, for others, less than half, but rest assured, the number is about half.

What’s worse is that the asshole half are fairly well organized. Because they’re organized, they’re influential. Because they’re influential, they tend to get their way. Once they get their way, they do everything they possibly can to keep it that way. Why do they do this? Because they’re assholes.

Fret not, they consider you assholes because you don’t doggedly share their beliefs without question. You ask too many questions they don’t want answers to. Even worse, you support those other groups. How the hell could you possibly do that, you asshole?

i’m telling this to you now so that later, when you realize that all the things you though would happen don’t, or that there was no way could happen do, you’ll understand. Stupid wars will be fought, and gleefully supported by assholes. Assholes will prevent us from intervening in horrible injustices. Assholes will vote in other assholes and those assholes will push for policies that clearly favor assholes.

All this will leave you wondering where the hell all these assholes came from. Truth be told, they were always here. Some are born assholes, some trained to be assholes, some even make the choice to be an asshole and work at it at every opportunity.

You are going to be surrounded by assholes. You’re going to be saddened by them, infuriated by them, and you’re going to want to get revenge against assholes.

Yeah, don’t do that last thing.

Instead, understand that some people are just assholes. There may be a good reason, and you should at least make an attempt to understand what that reason can be, but ultimately, the reason they’re an asshole is because they’re an asshole, and that’s probably not going to change.

Instead, focus on the fact that assholes survive because you’re not doing stuff against them. Have plans. Sometimes, defeating assholes means doing things that you may not like, or make you think you’re an asshole. Sometimes, you might even have to be an asshole to someone in order to not be an asshole to a larger group, or to stop them from being an asshole. Work together with others who oppose the assholes. Assholes hate that and will fight you about it. That’s ok, you should expect them to be assholes about it.

It’s also important to understand why you’re being an asshole to someone (since, after all, half of you are assholes). There’s nothing special that makes an asshole an asshole. Anyone can be an asshole, just like how anyone can not be an asshole. What makes an asshole an asshole is when they’re an asshole. When they’re being selfish, close-minded, greedy, dismissive, demanding, those are all pretty clear markings of an asshole. Heck, we’ve had at least a dozen religions that point that out. (The assholes tend to ignore those parts, though.)

i wish i could give you better advice. i wish i could tell you how to solve the fact that half of you are assholes. i can’t. Perhaps one of you can. Instead, i’ll leave you with a few rules i’ve found for myself.

Take care of others.
Listen more than talk.
Reflect on where you are and how you got there and why someone else isn’t.
Realize that most folks aren’t really comfortable where they are.
Help when you can.
Don’t look back with regret. At the time it was the best decision you could make. Instead learn from it for the next time.
If you have power, use it for others more than yourself.
Realize, even those with power, fame and glory, could still use an extra napkin or help finding the bathroom.
Leave it slightly better than you found it.
Realize you’re not always right and that even someone you might look down on has something to teach.
Everyone has a hard job, and no one is solely defined by what they get paid to do.
Nobody has all the knowledge or answers.
Be respectful and kind.
Pick up your trash and hold the door open.
A few have it better, many have it worse. Just like we can use some help, so can others.
Don’t be afraid to ask for help, directions, or just to say “hello”.
Your brain regularly lies to you, and your head is full of assholes.
Other cultures aren’t better or worse, they just have different ideas, and only about half of them are assholes.

But most importantly, try not to be an asshole.

:: Con-frigguration

If it’s a static value, it probably belongs in a configuration file.

That’s one of my golden rules of programming, and it’s generally saved my ass. Mostly because someone else sometime else decides that something isn’t quite as permanent as they said it was and it changes. (That was for the benefit of the two or three folk out there that don’t use config files.) Still, after nearly half a century of coding, we still have terrible ideas about configuration files.

The worst offender, by far, is the horrible programming language masquerading as a config file. These seem to be en vogue again. Such as “yaml” format:

  - alias: "Morning kitchen on"
    trigger:
        platform: time
        at: "06:45:00"
    condition:
        condition: and
        conditions:
          - condition: time
            weekday:
               - mon
               - tue
               - wed
               - thu
               - fri
          - condition: sun
            before: sunrise
    action:
        service: homeassistant.turn_on
        entity_id:
            - group.lights

That’s from my Home Assistant configuration file to turn the lights on in the morning if they need to. Home Assistant is written in Python, and i don’t really want to pick on it because it’s really good. If anything, the config system being bad just stands out that much more. i can’t tell you how much easier it would have been to just code up the python function.

import time
def MorningLight():
    now = time.localtime()
    if (now.tm_wday in range(1,6) and 
            (now.tm_hour == 6 and now.tm_min in range(45, 59)) and
            time.time() < homeassistant.sensor_state("sun.sunrise")):
        homeassistant.turn_on("group.lights")

Hell, make some convenience functions and it's shorter.

def MorningLight():
     homeassistant.set_state(
         "switch.OfficeLight",
         (homeassistant.time_between( 
             "06:45 AM",
             homeassistant.sensor_value("sun.sunrise")) and
          homeassistant.is_weekday()))

Yes, this proposes that the individual know python. They’re programming. It’s ok to use the same language you’re using. Forcing the user to learn some convoluted semi-language syntax that is even more alien, doesn’t have countless free tutorials and books, and a vibrant support system, isn’t helpful.

There is literally zero difference between the above yaml version and this:

♥️alias🍳"Morning kitchen on"
🐸trigger🍳
🐸🐸platform🍳time
🐸🐸🐸at🍳"06:45:00"
🐸condition🍳
🐸🐸condition🍳and
🐸🐸conditions🍳
🐸🐸🐸♥️condition🍳time
🐸🐸weekday🍳
🐸🐸🐸♥️mon
🐸🐸🐸♥️tue
🐸🐸🐸♥️wed
🐸🐸🐸♥️thu
🐸🐸🐸♥️fri
🐸🐸🐸♥️condition🍳sun
🐸🐸before🍳sunrise
🐸action🍳
🐸🐸service🍳homeassistant.turn_on
🐸🐸entity_id🍳
🐸🐸🐸♥️group.lights

Actually, i’d argue that it’s clearer because the “🐸” are visibly defined rather than just whitespace (tabs? spaces? tabs+spaces? 🤷‍♀)

We keep insisting on doing this. Sure, that wheel is pretty and all, but what we really need is to make something that rolls on the ground around an axis.

What’s frankly hilarious to me is that programmers have even beaten multiple paths to the “give the customer a simple programming language” route (Lua, Javascript, Visual Basic, etc.) and STILL we come up with crappier solutions. Hell, at one point i was writing a shopping site in a custom XML based language. Someone, quite possibly multiple people, not only thought that was a good idea, but took a significant amount of time to prototype, develop, implement, test, and document that.

Stop it. Just, stop it.

Stop trying to shoe horn a horrible solution to an obvious problem.

If you’ve got static values you need to set, use a simple key-value config system. Maybe allow for sections if it’s super complicated, but also consider that perhaps divvying things up might also be a viable solution. Windows, Unix, and yeah, even Macs all do this, and they work pretty well for exceptionally complex systems. (i’ve got my complaints about Windows Registry tables cross references, but at least i’m not writing XML if statements.)

If you need templates, use an established template system. HTML is no party, but it works, and there’s library support for it. If you want to grant programmatic access to users, give them a damn programming language. And not one that you created in your Junior systems class and got a “C-“.

Granted, if you’re building a complex virtual machine like a web browser, then rules are quite different. Chances are exceptionally good, though, you’re not.

Yes, this means trusting your users. Yes, this also may mean giving up the dream of providing a configuration system safe for 6 year olds. Granted, you could also give them Scratch, so there’s that.

(Dammit, now this means i need to submit a patch to HomeAssistant that actually replaces the crappy config system with an actual programming system, doesn’t it?)

:: Lunatic Debate Club

There are some things that i’m willing to say are “non-controversial”.

i don’t believe that the following need to be discussed, in long form, where dissenting ideas need to be heard out.

  • Humans require oxygen.
  • The moon exists.
  • High voltage electricity does not taste like candy.

There are lots of other things that can be proven readily and also do not need to be discussed and rationalized to a dissenting party.

  • JFK, Elvis and Tupac are all dead.
  • The earth is an oblate sphere (“round” also works).
  • Millions, mostly Jews, were killed in the Holocaust of WWII.

It is quite safe to consider anyone who does not hold those facts as true as a lunatic, someone willfully disassociated from reality, and not really worth having a discussion with.

This is not to say that there are some facts that are worth discussion, or that there’s not nuance that can be argued. We can spend hours or days discussing the finer points of how to best reduce global CO2 and other heat trapping gasses. Likewise there are areas that i gleefully state i have no knowledge that i’m happy to learn about, such as the horsepower differences between a hemi vs standard piston v6. Gravity, while undeniable and present for a mighty long time, is still very much an unknown force.

One thing that’s been pretty <Insert multiple expletives here> settled, however, is that brains are brains. i can’t, with any certainty predict your level of musical talent, pool acumen, or skill at balancing dual carburetors by knowing your sex or race. i can’t tell how well you’d solve for X by knowing your nationality. There may be other factors that contribute to your level of skill, including your background or even the way your brain happens to be wired, but none of those hinge on the configuration of your core chromosomes.

And things get even worse when it comes to programming computers.

i have colleagues who have studied computer science for decades who learn new techniques from folks who just started coding a few years ago. Coding is collaborative. If it wasn’t, sites like github or StackOverflow wouldn’t exist. To deny or somehow refute that fact is equivalent to saying that California doesn’t exist.

So here’s one more irrefutable truth along the lines of “Glowing red iron should not be licked”:

  • Race, gender, national origin, sexual preference, language, hair and eye color, number of useful limbs or anything else does not make you a better or worse problem solver. Solving problems makes you a good problem solver.

Everyone has the potential to write code. Should they find it worth while, some will go on to become great coders, and should they have true talent, a very select few will go on to become legendary. They will come from all walks and a few rolls of life. i work on internal plumbing which has zero glory. i kid that i do the digital version of a Dirty Job. If it works, you’ll never know, but when it doesn’t, i will.

And let’s face it; most of us are not writing code that cures cancer or delivers clean drinking water to 60% of the planet. Most of us are writing glorified string manipulators or adding machines. We make electrons and silicon do neat party tricks that turn a profit for someone else. i welcome anyone willing to dive in and help, particularly someone who doesn’t look or think like me for the same reason that i don’t live on only peanut butter and jelly sandwiches.

So, welcome all you weirdos that want to learn and write code. The days can be long, frustrating, and deeply annoying, but the bursts of pride and accomplishment once things are working are phenomenal. If you love learning and teaching, you will absolutely love this industry. Everyone in the industry started by not knowing how to code and got better. Many have been in that position multiple times as new tech, languages, and designs were created. Find someone who understands that and is willing to help you get better. They had someone do it for them, this is how they can pay that back.

And if you find someone who doesn’t think you could ever do what they do?

Ignore them.

They’re lunatics.

:: The Process of Process

For a while, there was a fad for software engineers to rebel against “Process”.

They hated the fact that there were rules and procedures for things and wanted the freedom to make code. They wanted to run free among the linkers and cuddle up to garbage collectors, i presume.

Yeah, i wasn’t one of those types.

You see, i also cook. i understand that a good meal generally doesn’t happen by wandering into the kitchen and seeing what happens. It involves thinking about what meals you’re going to eat up to a week ago when you’re making a grocery list. It involves setting up a clean workspace, making sure tools are ready, and performing the steps. Mind you, while there’s some “drudgery”, it’s not much, and hey, there’s meat, fire & knives, so that’s a bonus.

But yeah, one of the keys of good, actually fun, cooking is that “organization will set you free”. Having ingredients ready to go when you need them is amazing. Pinch dishes are cheap as hell and make your life so, so much better. (You can get dozens at the local Goodwill or Dollar Store for just a few bucks.)

So, yeah, it makes sense that you have some level of process for coding. You want to understand what you’re building, have the tools and tests set up, and then have check lists so you don’t forget something. Because if you don’t you ABSOLUTELY will forget something. Plus, having a checklist is one less thing to spend precious memory dealing with. Heck, pilots have lots of them, and frankly, they help them stay focused on, you know, flying.

Of course, no process is ever really finalized and all process is subject to review and updating. You should never have to fight a process, it should be smooth and nearly second nature. If a process doesn’t work, it should be changed.

Sorry, just spent some time creating some additional process in order to capture data that we were ignoring because we forgot to capture it.

Granted, getting folks to follow process is harder.

Blogs of note
personal Christopher Conlin USMC memoirs of hydrogen guy rhapsodic.org Henriette's Herbal Blog
geek ultramookie

Powered by WordPress
Hosted on Dreamhost.