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

:: Trust and the System

One of the most interesting aspects of the whole Blockchain thing is how it fails at one of it’s core concepts.

Consider, Blockchain requires that all transactions are made public using zero knowledge encryption to assure that both parties are valid and that no party can double spend. It is built off of the core principle that You Can Not Trust. Heck, advocates practically scream that Blockchain is superior to “fiat” currencies because they don’t trust the banks or government to manage them.

And yet, almost every sad case you read about on Web3IsGoingJustGreat is fundamentally due to someone’s misplaced trust.

Folks are trusting that various NFTs are legit, or not stolen, or will be valuable.
Folks trust that storage and management systems are secure and reliable.
Folks trust that the code for their smart contract is bug free and that the developers tested against all possible cases.
Folks trust that the exchanges are secure against attack and that their funds or holdings will not be stolen.
Folks trust that their fellow coin holders will not cash out and that their investment will continue to grow.

For a system built off of the concept of “Trust No One”, there’s an awful lot of trust at play.

It’s almost as if having a trust free system is infeasible. Unless you have unlimited time and resources, you can’t verify and validate every aspect of the system you’re partaking in. You can’t presume that the various exchanges aren’t favoring other exchanges over your transactions. You’re not always going to audit the code in whatever smart contract that’s tied to your Ether transaction, nor will you validate that the language implementation that runs your code is error free. You not going to independently audit and validate every system and interaction point that is required for your transaction to be recorded, validated, and authorized. Ultimately, you have to trust that someone, at some level is acting in your benefit for some reason.

And that’s where the Trust No-One thing kinda/sorta breaks down.

The problem is that once you trust someone, you immediately have to accept all the parties that they trust, regardless of whether or not they disclose those trusts. You can safeguard against those relationships to a degree, but it’s not going to be perfect because no trust relationship is. In that case, you have to start asking “so, what really differentiates this system with any other one?”

Well, for one, traditional “fiat” based systems have various regulations, monitoring and established law based on the fact that they’ve been “a thing” since the dawn of civilization, where as CryptoCurrencies have been around for less than 20 years and very proudly don’t have any of those. So, basically, you have a system of finance that is based off of centuries of preventing damage from bad actors trying literally everything possible to a group of dudes pushing a “Zero Trust” system by saying “Trust me.”

i guess, maybe, the big reason i’m cynical about blockchain and web3 and all the other crap is that i’ve been in tech long enough to know that you don’t trust tech.

:: Performative Cooking

Recently, i was reminded that there are a large number of people who do “performative cooking”. They absolutely need a recipe, which they follow religiously, and have no real idea how the magic incantations and gesticulations produce edible substances to consume. They fear deviation.

Please, don’t be a person like that.

Ok, Baking is physics and chemistry, so it’s a bit less forgiving, but cooking (in the more general sense) isn’t like that at all. Recipes, in those cases, are examples. They’re suggestions of things to do and ingredients to use in order to produce things that the author of the recipe liked. Your palate will absolutely differ. (For instance, i am not a fan of excessive fats. i hate mayo, am fine without all the bacon grease, and don’t pour tons of butter on things. You may be the opposite, and that’s OK. i will not cry if you change a recipe on me.)

i know this because of a discussion i had with some relatives while they made a “low country boil”. They were following an aged recipe in which they carefully measured Old Bay, and were desperate to find where the Bay Leaves were.

i asked them “So, what does Bay taste like?”

“i dunno. The recipe has it.”

This is the wrong answer. Actually, the wrong answer is bay leaves in general since they really don’t give a whole lot of flavor, and the flavor they do give is a mix of tannin. You could get the same effect by adding a pinch of black tea, plus you don’t have to fish the inedible leaves out. i know this because one night i got a bunch of spices, grabbed a pinch and sucked on each of them for a good couple of minutes to understand what the difference between oregano and parsley was (there’s a lot). It was a completely unpleasant experience. Granted, that’s lead to a fun party trick where i can take a mouthful of something and work out most of the ingredients because that night got seared into my mind.

When you make something, you should always be asking “How can i make this taste better?” Knowing what stuff tastes like helps tremendously in that. Likewise, knowing that foods dramatically change flavors when prepared differently also helps. Shrimp tastes different when you boil, steam, pan fry or roast them. (It has to do with how much water you remove, less water, more shrimp flavor.) Same with vegetables, meats, and all sorts of other things. That’s why Mexican and Indian cooks roast their spices, to draw out more of their flavors.

Honestly, their “low country boil” was ok. Basically it was boiled potatoes, onion, corn on the cob, “sausage” (hot dogs), and shrimp. Start by seasoning the water with Old Bay, another seasoning mix that was even more salt, black pepper, parsley and oregano. Boil the quartered potatoes and onions until the potatoes were soft, then add the “sausage” for about 5 minutes, and add the shrimp for about 3 minutes. Strain and serve. It tastes like Old Bay with hints of shrimp and hotdog. Not a favorite.

How would i do it?

i wouldn’t boil, for one.

i’d quarter red potatoes and linguica sausage and convection roast them at 400F while caramelizing some onion. Toss the corn on the grill (husk on, but silk gone), and let that cook up. Be sure to toss the potatoes and sausage so they get semi-evenly cooked. Once the potatoes start showing some nice brown color, pan fry the shrimp, ideally on an iron skillet with no oil (this will let them char nicely). Toss everything together, optionally dust with a mix of Old Bay (or my preference stirred chili powder, oregano, and sage) and serve with a brown mustard and either beer or a good wine and warm bread. The spices will bloom from the steam by the time that everyone is seated. Want it to be even better? Cook the potatoes at least 8 hours beforehand, then re-heat them while you cook the sausage. Yes, this is more work. You get out what you put in. There were a lot of reasons we didn’t do this one, but it definitely gave me ideas on how it could be better next time.

Same ingredients, VERY DIFFERENT flavors. i fully expect that you can come up with an even better version. Make small batches if you’re not sure. Make mistakes, and learn from them. Even burnt stuff can teach you flavors you didn’t know about and may love.

Kitchens are delicious playgrounds.

:: Stepping Up

So, a bit of personal news. i got promoted.

i’m happy about that, and i expect that little will actually change, since i’ve been doing the stuff at this level for a while, but i did want to underscore a few things i learned.

1) Your manager is your ally (or foe).
My current manager is amazing. People management is an art and a skill that not everyone has. It is more than just juggling tasks and filling out paperwork. There’s a lot of other skills that good managers have including marketing (basically, promotions are making a marketing plea on behalf of their reports), mentoring, coaching, and dozens of other “soft” skills you don’t just magically get when you have people assigned to you.

This was absolutely highlighted to me when i read his promotion proposal letter. Not only did it make a concise case built off of what i had been doing, but it included anonymous “pull quotes” that he had collected from peers and team members. It also included a critique section that, summed up the reasons in two pages of well balanced advice for how i can improve.

2) Promotions are proactively retroactive.
There’s a statement in the company’s Leveling Guidance document that basically says “You’re not promoted for past work, you’re promoted for work you’re going to be doing.” i can’t help but smile a bit at that because there’s a built in contradiction.

You’re not going to be given new responsibility unless you’ve demonstrated you’re responsible. Your prior work absolutely sets the stage for any promotion you’re going to get, and that’s why i spent the past eight months or so working on demonstrating the stuff i can do. i kept a record of the tasks i did. i spoke up more. i made sure that others had a clear path to do more. It wasn’t hard for me to do any of that, because it’s what i normally do, but i made sure that i wasn’t as quiet about it.

Granted, that part i hated, and i may back off the drum beat a wee bit for a while.

Still, the one driving thing is that other people have clearly failed to develop the sort of mind-reading omniscience that i also lack and making sure that folks find out about things turns out to be a good idea. Who’da thunk?

3) Timing
i’ll admit, i’m also taking advantage of some interesting timing that is clearly in my favor. Right now, the company i work for is very concerned about attrition. With tech, folks tend to change jobs fairly frequently, and with the pandemic and general burnout, that churn is a good deal higher than normal. So, folks at the top are very interested in keeping folk. i have some fairly big cards to play, and i absolutely played them this round. Had the market be flush with folk wanting to work here or had the company been struggling financially, i would have lost my shot and had to try again in a few years.

4) Improve the ladder
One of the things that drives me nuts is when i see someone “pull up the ladder behind them”. They do stuff to get ahead, then once they’re in a position of more authority, they sabotage others from following them. i have no idea why they do this because real success comes when you do the opposite.

Think of it this way: If more people succeed, the team (and company) succeed, right? That means that there’s more resources available, and the company is going to invest those resource where there’s clear success. If you’re the person that’s seen as the success facilitator, why wouldn’t you be considered key?

Should i have done a lot of this work earlier? Yes. i was under the assumption that “If you keep your head down and do good work you’ll be rewarded.” That’s not strictly true. You probably won’t get fired or laid off. You might get a bonus or two, but anything longer termed requires effort and focus on your part.

:: Well, It Compiles…

Ah, the Holiday Season. A time to relax, unwind, and most importantly DON’T SHIP ANY CHANGES.

Recently, i had the pleasure of telling this story from my past to a junior (in age, not skill) dev on my team, and figured i’d share it here. So sidle up to the fire and grab a warm beverage, because it’s…

Story Time with JR

Many decades ago, i worked for a company that was building a program for Windows that did stuff on the Internet. Mind you, this was for Windows 3.0. Before Windows for Workgroups 3.1 that had TCP/IP drivers built in (we didn’t know that was on the roadmap either). As part of my job, i was working with a separate contractor that we hired to do the TCP/IP driver.

Let me set the stage even more. In those days, kids, you had to buy a separate networking card for your computer that cost hundreds of dollars and had to match whatever local networking protocol that you used. (Ah the days of coaxial runs, tokenrings, and vampire connectors. shudders), so we had specified a very specific configuration as part of the contract.

Since this was long before the days of reliable internets and nobody in the office wanted to run a BBS for this, i would get a disk in the mail (like an animal). i’d go to the test rig, install the driver (i laugh at your .msi configs), reboot, and…

As in Hard Crash / Blue Screen of Death at boot / Do not pass Go! Do not collect $200 kinda crash.

Ok, not great, but understandable because this was in the bear skins and pointy sticks period of personal networking, so maybe the card was wrong or the system was slightly off. i added a confirmation list for the hardware in the test rig, dug in to things as much as i could with a debugger, flagged the things i think are wrong, and mailed the package back.

Time marches on, a new week and a new disk arrives. They confirmed the build configuration, and it all looked good, so i reinstalled Windows, installed the new driver, and.. boom. Again, instant crash on boot. i debugged again, wrote up the report and into the mail it went.

Third week and again, no joy.

At this point, i was noticing a pattern.

So i called them.

“Hi, i got the latest version and it’s still crashing on boot.”
“Oh, huh. That’s odd. It’s based on a BSD TCP driver we know works fine. We just ported it to Windows.”
“Yeah, that is odd. Does it crash like this on your machine?”
“i don’t know.”
“You don’t know?”
“Yeah, we never tried running it.”
“You never… how do you know it works?”
“Well, it compiles.”

Later that day i began a surprise journey into learning Windows Device Drivers and TCP/IP networking as my boss cancelled the contract.

So, with that, i want to remind you all that just because your package/application builds, doesn’t mean that someone else’s will. Be kind this holiday season and let other folks have a restful break before the New Year begins.

Don’t release, it can wait ’til January.

:: 19 years

According to my own records, i’ve been running this blog for 19 years now.

Well, 20 if you think that the new millennium started on January 1st 2000.

According to the same indicator, i’ve published over 5500 posts.

i *could* make a comment here about this blog predating “web 2” and facing all the same challenges that face whoever wants to do any “web 3” thing (and probably as successful about it), but that would probably be snarky of me. Suffice to say, that you’ll see that not much has changed here, nor am i really planning on changing things in the future.

Japanese phone-booth green color scheme and all.

Blogs of note
personal Christopher Conlin USMC Henriette's Herbal Blog My Mastodon musings Where have all the good blogs gone?
geek ultramookie

Powered by WordPress
Hosted on Dreamhost.