I somewhat failed at gracefully HODLing Bitcoin

This bitcoin pump cycle caught me off guard. I’m Feeling pretty stupid at the moment; so it is important to process the underlying stuff.

a) Always look at the prices with a scale which starts with 0. Then it would have looked like this:

Scale at 0

Instead, what I saw was this, and then I pulled a trigger:

If I backtrack further, the other thing I’d say is: Don’t gamble with money that is “meant” for something else. I really need to pay off one particular credit card. However, the Bitcoin pump came around (i did not know about the halving cycle)… so I put whatever assets I had sitting around (which, mind you, I was NOT paying the CC with, but cushion for toys, more like) in .. and then it became very crucial to NOT DECREASE NOT TAKE A LOSS on that money. Truth be told, I wanted a guaranteed short term return, I was not ready for the long term HODL.

At first I was going to berate myself on “changing my mind” and selling then buying back in at a lower rate (retracement) or sometimes equivalent rate (it rebounded too fast!) because of the extra exchange fees and taxes I might be paying, but then I did the actual math — Looking at it in the long term, as long as all the tax rates are the same (Short term vs Long Term) – Sellng and buying on a retracement can be okay:

(link – also note that “What you get back” is after taxes are paid. Spreadsheet has many hidden lines. You just pay more taxes earlier in the latter case, but once all taxes are paid, its mostly exchange charges that get you. You probably have to have a retracement > 4 times the exchange rate for it to be worth it. )

I would write something in here about searching for the moving average that looks like it supports the price curve, basically getting a feel of the volatility — then making an internal rule, “I will sell when X dips below Moving Average Y for more than Z time units” – HOWEVER, that’s probably not in line with (a). Maybe it is. Do I really want to buy retracements? I just don’t want to miss the final top. When Do I knows its a final top? I don’t have an answer to that question yet. Maybe its just a “this is good enough” top.

And finally, the FOMO. I KNOW its happening. I don’t want to miss it. I don’t want to be the technical guy who KNEW it was happening AND MISSED it. I don’t want to look incompetent! to my imaginary audience who might be judging me. I judge myself. I judge how much my judge-o-meter is set at. I judge me judging my judge of my judgement.

(LPT: Take a failure, write a blog post about it, then it looks competent)

What is my goal? Financial Independence. Be more willing to take calculated risks rather than just running away and trying to be “safe” and then wonder why nothing happened.

Bitcoin and Cryptocurrency Info

Dumping knowledge while I have it for my future self.

Where to buy it: Binance.Us, but it takes a long time to get verified. Much better trading tools – can do limit trades, stop limits, etc. Coinbase.com, I was already verified there so it was easier to get back in. Only does Market price trades at least at my level, there’s a Pro thing as well. If you are international, Binance is a good place to go. CEO seems very honest. Many exchanges: https://coinmarketcap.com/rankings/exchanges/

Has it arrived: Yes, institutions and companies are getting into it, especially as Fiat currencies print money like crazy.

Why is it trustable: Its code, its decentralized, once the rules are set in place, they cannot be changed except by a truly majority vote of stake holders / miners (depending on your coin). Thus, it is not subject to the whims of a central authority to twiddle with the supply. Oh, and the code ensures stuff like money cannot be double spent, that once its done it cannot be un-done, etc. It does, however, require the Internet and electricity to function, so its not quite the same as Cash or Gold.

But isn’t it just made up? Yes, its as made up as the … German Papiermark or the US Dollar. There’s a consensus of human belief in its worth, and in that there is trust, and thus it exists.

How many people believe in it? 33 million or so right now, and now it includes folks like Square and PayPal and JP Morgan.

But there are so many of them? There are also many possible Social Networks, yet Facebook / Twitter seem to be “winning.” Somebody could clone Facebook, but unless you have the community buy in, you have not got anything. But you can have a cool set of features. But community may still not buy in. Similarly, the “winners” by Market Cap right now are these (coinmarketcap.com); they all have “features”:

Bitcoin = original, most widespread. Super fixed supply, which will yield a mad scramble as Demand picks up. Now super hard to mine. May get Smart Contracts soon?

Ethereum (ETH) = easier to mine (I can mine it on my GTX1070), but going to transition over to “staking” soon. Can do smart contracts where you put code in with the value. Many many other coins use Ethereum (2.0, not classic which is ETC) as their “backbone”.

After that, you’re starting to pick and choose. XRP was a big hitter, but there are .. lawsuits and problems there, at least in the US.

Where to learn more: I’d recommend these Youtube channels: https://www.youtube.com/c/CryptoDaily (very engaging entertaining host), or https://www.youtube.com/c/CoinBureau (much more bookish, slower pace of videos, but incredible research). There’s also Chicken Genius Singapore https://www.youtube.com/channel/UC0OnreqP55xLpA6W5nzxb5Q who touches on it a bit, but more focuses on Not Being a Donkey.

I want to mine something with my hardware:  https://whattomine.com/ choose your video card and exchange of choice. Right now ETH works. Costs me 40 cents a day (140W), earns about $2.30 a day (at current exchange). Basically, the CPU heats my attic office during winter, I don’t have to run a heater as much. Summer probably a no-go for me.

Dealing with Taxes: In the US, you get to report everything, and you really need to use software to calculate that. Expect to spend $100 per fiscal year on that software, unless all you do is stay on one Exchange, in which case they may have reports you can download. I personally use cointracking.info, its not the easiest to use, but it supports API pulls from Coinbase and Binance and Trezor, so I’m good with that.

Hardware Wallet:  I got a Trezor; but reality, unless you get above say $10k in a exchange account, don’t bother. I no longer use my Trezor.

How to actually do Crypto: Don’t do what I did. Instead, Dollar cost average – a little bit per paycheck – into.. pick two or three that you think might be around long term. Do that for 3.5 years awaiting the Bitcoin Halfling .. https://www.coindesk.com/bitcoin-halving-explainer – March 11 2024 .. and then think about exit strategies at that time, and the year or so after that. (Maybe – institutions may change the charts). Understand the Bitcoin / Altcoin pump cycle and “Altcoin Season” – https://medium.com/swlh/understanding-cryptocurrency-market-cycles-for-better-investments-c6cc4bc80099 – before you go putting money in Alt Coins. While your money is in Crypto, its not available for anything else unless you get a line of credit against it.

Next post may stay private, its about how I … screwed up, and lessons learned.

Keeping Track of Work Tasks

At work, we started using Zendesk. It has been very effective. Also, due to COVID-19, we were briefly down to 2 people able to work.. recently, one of us got back to being better. Rather than a “fixed days working from home each week” (I used to get Wednesday WFH) we’re switching to a “3 person rotation of who is in the office”, since we need to have an onsite presence for our primary job function, which is to keep all the folks in the warehouse productive.

This is leading to “onsite” days, where pretty much deal with the flow of tickets .. and then deal with other little problem things that need to be fixed. These days entirely run by email and Zendesk. The person onsite triages the incoming stuff so that the offsite folks can focus on their project work. Going back through Pending tickets and updating statuses as we wait for other folks to respond and do their parts.

And then there’s two days of “offsite”. Blessed ability to focus in deep on tasks, because the interruption buzz is being handled by the onsite person. Spent about 2 hours working on a 8-part CTE (common table expression) with a colleague today. Got the web page that reports it partially done, another 4-6 hours tomorrow and it will be done.

Currently, we have an Open Projects spreadsheet (we were using Microsoft Teams Tasks, and prior to that ClickUp) which lists these projects. I’m thinking we’re going to transfer them into Zendesk but with a tag of “project” — and alter the other views to exclude them. That itself is a project.

Post Election Jitters

Currently at the 8th? day after the 2020 election. Lots of half thoughts spinning around.

Amongst my more ___ friends/coworkers/community is a sense of relief, “we are back to sanity now!”.

Except that.. there are so many people who did vote the other way. Why was that? What is in their belief system? What are their needs? How are you going to reach out and.. i don’t even know what? How can we live together? What do we believe in common? Where is the divisiveness coming from?

Amongst my more ___ friends/coworkers/community is a sense of “No worries. He will outsmart them after all. He had this planned. He’s 4 steps ahead of the game”.

I personally hope this is not true, because that would make him or his handlers more competent (than I thought). Also, I like my democracy, and I perceive him (his handlers) doing a straight up power grab.

Also, I think this comes down to a more fundamental thing that’s going on, that I can sometimes taste.

One viewpoint: Everything has been fine, Everything used to be good, we need to stick with those ways / work hard / keep your head down / authority is kind and knows what its doing / that’s the way to be / why do these people want to to destroy our country.

Other viewpoint: Things have been broken for a while, please can we fix it, the world is changing and needs different answers than what it has been, please can we fix it, look at all these other systems that could be better, please let us make it better for all. I do fall into this viewpoint; i do believe that automation and climate change are going to make fundamental shifts in so many things.

I think the conspiracy theory stuff comes from something like: Life is already so damned hard, its too hard to take in all the additional brokenness especially when it runs contrary to that-which-we-base-our-security-on, so .. double down, believe the weirdest angle to hang on to sense of reality.

A sad thing (from my viewpoint, there’s always a viewpoint) is that these folks, its like being in an abusive relationship, where you believe the abuser’s viewpoint on things. And there’s enough “others” to shift the blame to, that they get away with it.

So, yeah. This is what is stirring in my heart. I don’t think my little blog post will change anything, but at least I could get the words out. I want to love on my abused community. My heart sinks with the gravity of the stuff coming down the road that it doesn’t feel we are ready for. Covid was wake-up call. I wish we could figure out a way to do better safety nets for all because we’re going to need them, but somehow, that voice is lost on both sides, mostly because its not short term $$$.

Oh, and there’s the other problem that news is now an industry that requires eyeballs, which changes it from “level headed” to “appeal to emotion” the best two of which are anger and fear. I even helped them with that.. one of my work gigs was in the news industry. I got paid and it was a fun little project dealing with scaling elastic beanstalk stuff.

Short Update: Monitoring For Data Problems in complex systems

create view problem_view_darth_vader as (select ..... problem data) 

In our case, it was that a particular item had two UPC codes from two suppliers. Add a couple of extra columns like department=’production’ and fix=’how to fix it’.

Next, write a generic thing which checks select view_name from information_schema.views where view_name like ‘problem_view_%’, and loops through those.. if anything has rows, displays the rows. I used a DataTable and DataAdapter.Fill() because then you get the columns even if there are no rows, unlike Dapper’s <dynamic>. Show this on a web page, along with a div id=SuccessDiv

Then, using your favorite “how’s my website doing” tool (mine is DataDog Synthetic Tests), do a test looking for success div. Set up an monitor, track failures. Datadog takes screenshots, so the errored data is saved with the failed monitor.

Result: Here’s the monitor zoomed in to when i introduced a test view to create a problem:

And here is the screen that was captured as part of the failed test:

The only side problem is that you don’t have control over how frequent the checks go. Probably different pages could be done and use different view names, like problem_view_darth_vader_60 to check every hour, for example. May improve it in the future.

I think the next things to put monitors up for are probably these particular things that get stuck without a thing. (Sorry, redacted, but you get the idea).

Short updates

I surrender. My life as it is now will not support the time to make beautiful posts. Like I would have bolder the word beautiful there and added a picture. Because marketing.

nope this sucker is being written on my phone in the morning as I sip coffee. I have 25 minutes before I need to leave for work and I’m not dressed yet. Evidence: (test phone camera):

Warming device

So this is how I’ll need to write posts in the future. And the purpose is: to be a testament to my future self that I DID do geeky things and find things interesting.

Yesterday … I found out the hard way that I had to ask ALL domain controllers about when people last logged in. Apparently we’ve had one controller be PDC for a very long time and machines remember their favorite DC for a long time.

Script modified from https://social.technet.microsoft.com/Forums/ie/en-US/d86b7495-729a-44e2-ad68-5e154ecbd6d7/getaduser-lastlogontimestamp-is-reporting-blank?forum=winserverpowershell
$( foreach ($dc in (Get-ADDomainController -Filter "domain -eq '$((Get-ADDomain).DnsRoot)'" | % {​​​​ $_.HostName}​​​​ ) ) {​​​​ Get-ADUser -Filter '*' -searchbase 'DC=******' -Server $dc -Properties LastLogon | Select SamAccountName, LastLogon, @{​​​​n='LastLogonDC'; e={​​​​ $dc }​​​​}​​​​ }​​​​ ) | Group SamAccountName | % {​​​​ ($_.Group | sort lastLogon -Descending)[0] }​​​​ | select SamAccountName, lastlogon,@{​​​​n='LastLogon1'; e={​​​​ (Get-Date $_.LastLogon).ToLocalTime() }​​​​}​​​​, LastLogonDC | export-csv -path "lastlogon.csv"

Chart: Maybe later

Result: I can figure approx how many CAL we need. Going to update DC to next server version.

SpiritFarer – Spreadsheet

Loving the game SpritFarer. Resource gathering, with a cute little story line, until you read the back story, and then who cut the onions.

Playing it my way — i got too many people on the boat, restarted, and now I’m separating out “gathering” from “action”. Using a spreadsheet to guide me on what I need to get more of.

View only link to spreadsheet is here – as I satisfy things i cut and move them down. I thought about writing a helper app, but i don’t have that kind of free time.

Speaking of free time.. this is the first evening in i-don’t-know-when that i have had an hour or two to myself, AND i’m not exhausted and just need to veg out. Hence the post.

If i had all kinds of time, i could post about these technical things:

  • Powershell script to automate connecting to cisco vpn
  • Powershell script that runs a query against a database then checks if matching images exist and flags the ones that don’t.
  • Surprise that you can’t connect to a Azure File System from Windows Server 2008R2 because SMB 2.0 vs 3.0. Even more reason to upgrade those servers. The plan is to move those to the cloud.
  • The world of Epicor P21.
  • Fun times working with a company called Heraflux and its chief geek David Klee. That guy knows his stuff, he’s the next level of whatever perfmon skills I used to have.
  • Designing a task-tracking system – we’re separating out “popcorn” from “projects”. Sounds familiar.
  • What happens when a SQL Server doesn’t have enough RAM: the 88G vs 8G typo problem. 🙂
  • Various small problem – small tool/feature wins. But that would reveal too much of the business.

I could also post about these other things:

  • Color Changing Disney Pixar Cars .. the magic temperature is between 60 and 90 degrees, I think.
  • Challenging a grandchild to eat – if you finish one of these three things, you can choose another: 1 pretzel, 3 grapes, 1 pepperoni.
  • Outdoor pools might be simpler than I thought.
  • Awesome channel – Perkins builder brothers, YouTube.
  • I have seen Model Y in person and I still want it.

Be well!

on BLM and protests and stuff

Stuff I learned / re-learned. If you’re not familiar with any of these, ask me privately and we can chat. I am by no means an expert, just a student.

  • 1970’s stuff to discredit Black Panthers. I’ve only heard it mentioned, haven’t delved deeply.
  • Today’s social media – much more raw message, much harder to contain. This also means a lot less “marketing buzzword blitz” and you have to work to tune in to the message, or follow somebody you trust to parse it for you. Also means lots of information warfare can jack with the signal.
  • Analogy of “There’s a house burning on the street”. All houses matter. Right now one is burning.
  • Analogy of “All folks are hungry”. And one person has no food.

Some personal historical notes:

As a child in Liberia, there was a different kind of racism. Is it racism? Or does some other word apply? Cultural non-melting-pot? There were native locals, there were the descendants of freed slaves, the African Americans we had heard of but never met, all the white Americans whom we had met, the folks from other African countries neighboring us, the Indians, the Lebanese, etc. All these had different .. relationships? expectations? with each other.

I remember the first time I realized that my race-thoughts were wrong. I was hanging out with Charles “Flip” M. in Washington D.C. I said something about “those Americans” .. and Charles stopped me in my tracks: “We’re American”, and he might have also said Dog. He is Black.

I had never considered it before. The way I was raised, all Americans were White, and everybody else was just lucky if they got allowed in to eat a slice of pie. Possibly very delicious pie. Even now, as a naturalized citizen, that programming is strong inside me – at any point, “Spanish Inquisition” and I’ll be stripped of everything and thrown out on the street. So DON’T BUCK THE SYSTEM BOY or YOU WILL PAY something like that.

But what do I do about it now?

My spiritual path pays special attention to “What do I choose to create” and “Who do I choose to be Now.” So, take a sheet of paper, and make a grid. (Sorry, WordPress styling not so good)

TopicInitial programmingIntermediateCurrent Thoughts/ActionWant to Claim

This is a private exercise to share with someone you trust. But basically, i can put in, for a given topic – say, “who can be American”. What was my initial programming? And in the 2nd to last is .. based on my current actions and thoughts, what do I currently believe in / what “world” am I choosing to create around me. And the last one, that’s between you and God. But its what you would aspire to be.

For example, my second to last column was something like this: “Yes, its all fucked up, and its going to stay that way, because the folks who want to keep it that way have the power to do that and can rewrite narrative.” I kid you not, that’s the negative ass story I was telling myself.

And then people started protesting. And whether those protesting did the boat rocking or not, or others joined in and started throwing rocks at the boat, nevertheless, the boat did rock, and some acts started to get cleaned up. Maybe not all of them, but some did.

Which means .. I was wrong. My 2nd to last column was wrong. Dare I accept a new truth? Dare I write a different next column?

And then if you’re like me and you’re doing this electronically, change the font for all the old ideas and make them strikeout.

This way, when the old ideas come up — and they do, all the time — at least for me, I’ve put the old ideas and the new ideas next to each other, and I’ve revisited my decision of what do i want to create now, and I can gently forgive myself for the old ideas and surrender to God to water the new ones.

Hope that helps.

America is … for the people, by the people?

America is principles before personalities?

Does this relate to the sanctity of the law, putting law above individual people?

American Government is to serve the people, not to strike fear in the people?

American Government is a sham placeholder to police the world’s oil supply for the wealthy and silly things like people’s right don’t matter other than to placate the population?

American people is all the people, not just the wealthy?

American people includes the homeless? Or is it only those who agree to certain norms like street addresses and social security numbers and those who pay taxes?

What is your picture of America?

Covid-19 – why are we so vigilant when seems like nobody has it?

So, there’s this other thing going on – the protests. And restaurants are open. And it feels like there is social pressure .. don’t wear a mask, you look stupid. Maybe just me. Feels like, “If this were a real problem, more people would have it.”

Human feelings are nice, but.. they don’t scale well.

What’s the right percentage of people who should be sick in order for it to “feel” right? Lets say.. 10%.

At 4.4 Million people in KY.. wait, no, that’s assuming even spread. Lets just go with, “In the metropolitan area that I live in, 10%”.

At 600,000 people, that means 60,000 people would be exhibiting symptoms.

According to the most recent numbers (link), 6700 active cases, 500 hospitalizations, 70 in the ICU. So about 7% hospitalized, and 1% ICU. So if 60000 folks where “active”, then 5000 hospitalizations, and 700 in the ICU. We have (link) in the magnitude of 2500 hospital beds across the state of KY and 1500-ish ICU rooms.. but that’s for 4.6 MILLION people. I can’t find the exact numbers for Louisville, but basically:

If “enough” people around us seem sick, then the hospital system would be overwhelmed and we’d be seeing the 10%+ death rates that were seen in other places that got overwhelmed.

So, if we win, it looks like: Nobody around us, nobody we know, gets the virus. And still a ton of people die.

I guess i’ll continue to wear my mask and try not to be a vector, even if 99.9% of the time, i’m not near anybody with the virus, and I’m probably not carrying it either.

Crystal Reports Fun

I haven’t posted, or talked much, about my new work .. basically, I joined a company whose primary job is things, and most work focuses around an ERP, and its all about stabilizing and optimizing flows of information around processes. Edit/Update: I wrote this in, like, February. A lot happened since then.. CoViD19 especially. It is now June.

One of my new skillsets is Crystal Reports. To which my developer peeps say Ewww, usually. Eh, it works. The main thing is, the ERP system that everybody is logged into, has a way to embed Crystal Reports into it. That ERP System (Prophet 21) is also backed by a SQL Server database, and has a decent table structure to it, and a decent user-defined-field add-on strategy to it, making many tasks.. sane.

However, navigating the environment for what actually works has been hard. There were not a log of prior art examples which did things at the architecture I would like, so I’ve had to fumble around. Here’s what does NOT work:

  • Using anything other than a particular driver (I forget which one) for connecting to SQL. Specifically, not to use the SQL Native driver. This is because when the ERP is hosting the report, they do a switcharoo on the connection to connect to the right “instance” of the ERP, and if you use the wrong driver, that doesn’t work. You don’t find out till you try to run the report from the ERP.
  • Directly using a stored procedure to do heavy lifting for a report. You can, and it auto-creates report parameters for you, but those report parameter types lead to less-than-optimal user dialog (think dates plus times instead of dates).
  • Using a parent crystal report to include a subreport to get around the previous thing. Works great for a crosstab, but page headers not so good in a grid style report. However, I am able to bind a parameter from the parent report through a calculated field to plug in to the subreport (and thus the stored procedure).
  • Also, if you have a parent report that only calls sub-reports, and doesn’t actually connect to the database itself, the ERP system doesn’t like that because it cannot find the database connection to override.
  • Not choosing a printer when designing the report. Apparently this affects font choices and Arial looks better than Device CPI 10.

Here’s what does seem to work:

  • I can use Views to encapsulate business logic, example “The View of xxx customers” where xxx is a particular program that customers can enroll in.
  • I can use stored procedures to D.R.Y., for example, the stuff to get the raw data of the number of designer frames sold per customer within a time period.
  • I can call stored procedures from a “command” custom SQL block from Crystal Reports. In that block, I can: declare @t table (…) and insert into @t exec SPROC {?param1} {?param2} to get data from a stored procedure.
    • For example, there are two reports: One is a CrossTab that breaks out customers across brands and # of frames, and another is a detail report. The detail report goes into how many DIFFERENT brands were sold + the number of frames sold — these numbers roll into a formula describing what % back the customer gets, per the rules of the contract(s). Both of these reports use the same stored procedure to get the underlying data.
    • However, using this method, I have not yet been able to go (user input) to (calculated field) to (input into command) to (call stored procedure), yet. On the other hand, I can do a lot of manipulation in T-SQL, so that should be fine.

I’m continuing to learn a lot of things.. next week looks like it will be learning the ways of our EDI interfaces with some bigger customers, like the names you’ll find at a Mall. (I don’t know how much I can talk or not about our customers). (Edit: It is preferred that I do not.)

Side note – We have added datadog to our infrastructure, and monitoring is making our lives better, I think. Separate blog post, but in summary: immediate notify on errors, and notify on lack of success. Except on weekends.

Looking back at this post I wrote 4 months ago.. wow, there’s so much detail I could go into about all the little things that I’ve learned and tweaked. Like some powershell to inspect bad emails in an SMTP dead letter folder. And a powershell to automate connecting my Cisco VPN connection. Messing with Redhat 8.1 re-learining all the unix things including SMB shares. However, .. that’s another post; coming up shortly.