This house is a mess and I am a wreck

Let me just say that there is a huge difference between a six-pack of 6% IPA and one of 9%. OMG it’ 11AM and I’m still on the couch. I have been productive.

I sent the actual email to my advisor/mentor for review. I don’t want to come across as a crass asshole so maybe he’ll tell me to tone it down a bit. Honestly I think I did a fair job, but it’s important to start off on the right foot with the HR/talent acquisition team. I’m confident we can work out the issues that are standing in the way of a deal. Probably the most significant deal of my life beyond getting married and having kids. Lord help me.

Much progress on Anchor yesterday, I learned a lot by going through the Travis yml files and some of the build commands. I actually want to do a podcast series where I walk through it, and go through the tests. They’re actually better learning experience than the tutorial examples.

I didn’t want to use my face though, and wound up looking at some avatar apps. ReadyPlayer.me has an avatar creator, and you can even export it into the FaceRig successor, Animaze. It’s a bit wonky, the lighting isn’t great upstairs at night, and I don’t think I can run it on Linux, so I’ll have to figure it out.

I’ve spent most of the day writing the email and farting around on Twitter. It’s currently lunchtime and I need to get some food and get to work. I got about two hours before I need to pickup Younger from the bus.

Speaking of who, yesterday she decided to take her rubber stamp to the walls and doors leading from the kitchen to upstairs. I swear that kid loves to destroy everything in this house. And I’ve been fighting with Elder over her Halloween costumes. She’s been acting entitled and I’m having none of it. They both seemed like they were trying to test me, Missus was sick in bed yesterday and it never fails that they always try me when that happens. Maybe it’s me.

Enough griping. Time to roll.

Thinking out loud

Missus is sick today, so I had to get both girls ready and out to school by myself. Younger gave me a bit of lip about not going, but Elder gave me the nth degree of Hell this morning. I woke her up ten minutes late because she stayed up way too late and I knew she was going to give me trouble, and yea, the shit started because I woke her up late. Took an hour to get her gone because she wanted to argue and skulk about everything. Ugh.

I got stuck with the DEX work yesterday. I have a data provider in a React component, but need the data in a non-React component, which is a problem because of the Rules of Hooks. I had to step away from it and decided to start focusing on Solana/Anchor stuff. I’m starting by building a series of scripts that will let me simulate deployment of SAIAdao tokens to members. I’m not really building out any contracts yet, just using the framework and copying tests to setup the way I want things to operate. So far I’ve just been able to create two token mints. The next step is to start the distribution simulation. I think I know how I’m going to handle the fact that I don’t have everyone’s Solana addresses yet. I should get started with some design docs.

Basically I’ll be starting with the known list of Ethereum addresses and the current shares and loot balance. I’ll get this in a CSV and import it into my script. We know the vesting schedule (2%/week for fifty weeks), so it’s just a matter of turning the crank and minting the requisite number of tokens. We’ll probably have to create an token account for each participant, and once we have the associated wallet address we can set them as the beneficiary. The question is whether we’re doing this with AMM LP tokens, or individual allocations.

There’s more prep work I’ll need to do first. I need to wrap up some proposals on DaoHaus, close off memberships and get an updated list. Then figure out whether we need to rebalance the shares/loot balance. I’m thinking ‘yes’. Then map out the logic a bit better.

At initialization, we’ll mint all the number of shares and loot in circulation, create an AMM, stake tokens and receive LP.

For staging, we’ll create token accounts for each participant and distribute their shares to the token accounts. I’m thinking that I’ll require each member to create a DaoHaus proposal with the associated Solana address that they want to use, I can just export these to create my map. Or maybe Collab.Land will be able to help us with this portion. We’ll see, I just schedule a meeting with them for this evening.

Lots to do, and I’m still trying to negotiate a starting position with unnamed as well. The question is whether I can do better with them than on my own. I honestly don’t know the answer to that question right now.

One-up

So I had my second call with the CTO of a prominent NFT gaming company yesterday. I was offered a position last week and finally got some compensation numbers yesterday. It was fair, but there are a lot of questions surrounding equity as well as my current obligations to SAIAdao that need to be resolved before I can formally accept any offers, but I’m really excited to have the opportunity.

For most of our relationship, Missus has been the primary breadwinner in our family. Save for a couple months when she was getting her licensure, she’s held a cushy government job with a pension and has provided health insurance for the family. Her base salary has always been around ten or fifteen grand more than me this whole time, and I’ve been fine with that. My last couple years with Zombie, LLC, it was more about the personal freedom than the pay anyways. I used to call it my minimum viable lifestyle job.

Now I’ve got an offer on the table where’ll be making over two times her salary, including insurance and unlimited PTO. She said she didn’t know how she felt about the whole situation, since she’s always been the one on top, not just during our relationship, but with all of the men she’s dated. We were trying to figure out whether the word emasculate applied here. The word does have a definition of “weakening someone” beyond the context of male power, but I’m not really sure it fits here either. I’ve just one-upped her, it’s all. It might change the power dynamics of our relationship a bit, but not that much as far as our net worth is concerned. I imagine that might change after a couple years, but we’ve got time to figure that out.

So today I need to fire off an email to the company HR man to get into the details of my compensation package, and figure out how I exit the dao. A buyout isn’t out of the question, but I’m hoping that I can get the tokenomics working and build out the lending platform as part of my ninety day plan.

I’ve been working on the dex the last couple days, trying to figure out a bit of Javascript. I have a working algorithm, but I was hoping to clean up the code and have been struggling with a reduce function. I’ll probably write more about this after I figure it out or abandon it. And then I’ve got to get the nftProvider into a token_and_mints module, to replace the static json files that we’ve been using. At that point we’ll be ready to deploy and have a dynamic dex that updates itself based on the Galaxy feed from Star Atlas.

Then I really must start focusing on Anchor development. I’ve got contracts to write.

Negotiating

When I started this blog, it was a place for me to write about my life anonymously without worrying about what people thought. These days, though, my pseudonymous identity is more real to me than the real me. Outside of my family, I spend more time on Twitter and various Discords that I do with friends. So the result is that this blog is no longer the place for me to vent and get shit off my chest. I have to think about what I put here now.

Not that I should really worry, no one reads this except for what they find on Google. My biggest hit is still the Windows error message post I wrote from two years ago. Still, I don’t want to speak about a particular opportunity right now as I don’t want to blow it. Let’s just say I have a very important phone call today, one that will likely bring me out of reFIREment, an offer I can’t refuse, so to say.

That’s what’s foremost on my mind this morning. I’ve got some reading to do this morning for research and then I need to write up some questions. Most of all, I need to prepare myself mentally. They say there are two kinds of stress, distress, a bad one, and eustress, a good one. I was trying to figure out the good version of anxiety, and anticipation is the closest word I can think of.

I am in a high state of anticipation.

What happens today will likely change the entire family’s life for the better, and is something that I’ve been working toward for several years. I can’t wait. I’m going to sign off here, knock out the rest of my research and take some notes, then get some work done while I wait for the appointed hour.

Life is now.

Get to it

We are ready to fire on all cylinders this morning, despite a slight misfire getting up this morning. The girls are gone, I’ve got my coffee, and a list of things to attend to today.

First up is the weekly status update for SAIAdao. The rebase proposal has passed and is in cooldown, so I’ve got to proceed with next steps, which will be the original migration proposal that I put together a few weeks ago. Since we’ve redistributed loot, now I want to move forward with stripping the claims from shares and make them a voting power only token. Hopefully the math I worked out a few weeks ago holds, and we preserve the exit value during the rebase. I’m not sure that we can preserve voting power with this, but it’ll have to be the way to go, I can’t imagine a two token system working on-chain like it does for DaoHaus.

Another important prerequisite to all this mapping member’s ETH and SOL wallets together. For later members we have the original membership transactions on Solana, but older members we only have ETH wallets. I spoke to the head of Collab.Land last week and messaged him this morning about rolling something out that can help us map the two addresses together. This may allow us to do our initial airdrop.

I’m really going to have to spend some time thinking about the tokenomics for our system. We can have unlimited minting for our loot token as it should be backed by NAV, but what to do about shares? We have an issuance plan that will double the supply in the first year, but I really don’t know what to do about the following year, or how a maximum cap will work. I suppose we can figure that out later or just steal it from what some other teams are doing. All I know is that it should remain relatively sparse for the next couple months, which should make it fairly effective as a rewards token.

And I’m thinking about my big meeting tomorrow, although I’m not sure whether to play it cool or issue a follow up reminder. It could be life-changing, and at the same time I need to play it cool. Breathe.

I have a phone call to make, and then it’s time to start writing.

Busy Sunday

It is the end of a long Sunday. I turned in fairly early last night and got a good start on the day. Both of the girls went to church, so Missus and I got to spend a nice day together here at the house. I cooked us breakfast and then we got on with our todo list. I cut the grass, cleaned the back ditch and finally put the hot tub cover straps screwed down, and also re-attached the lift bar. The two of us even had time to take a bubble bath together before the girls got back. It was pretty nice.

What was even nicer what that after the girls got back, they and their friends spent the next four hours outside playing. They didn’t even bother us that much. It was pretty amazing. We had dinner, watched a show, and now the two of them are passed out and I’ve got an hour to watch a show before turning in. I even managed to get in a workout first thing this morning.

I did a lot of my usually weekend yield-farming activities this morning, actually starting last night with a new OHM fork on Matic called Klima. This one is based around carbon credit capture, so it’ll be interesting to see how this one plays out. That makes three OHM projects, Olympus, Wonderland.money on AVAX, and Klima. We’ll see if we get lucky. I had some problems last night because I had all my MATIC tokens locked in Aave. I pulled a couple hundred dollars out and had staked it in QuickSwap, but then threw it into some WolfMoon project that failed. I had enough collateral that I could sell enough to pay off the loan and pull everything out, and into Klima it went. I don’t have time to be paying attention to all this stuff, to be honest, so I’d rather just set it and forget it.

This morning I checked my Perps. I was down overall, and only made about $50 in BTC that I threw on top with 10x leverage. I’ll have to make some tough decisions if funding continues to tank my margin. We’ll see how it goes.

I also spent some time moving my Alchemix pools around. I had some ETH-ALCX in Pickle, but I read that Tokemax has a single-side ALCX reactor now, so I moved everything there. It must have taken me a dozen transactions with all the approvals and swaps. Unstake and remove SLP from Pickle; sell pickle on Zapper; unstake SLP; unstake and claim ALCX and alUSD from Alchemix; approve and stake on Tokemax. It’s my IRA account so I wasn’t too worried about it, but something tells me I’m taking a loss on the whole exercise. As usual.

I spent the rest of the day working on Anchor stuff. I decided to try my hand at doing some stuff with Orca. Since Sunday’s is when I execute SAIAdao’s DCA strategy, I wanted to see what I could do there. Unfortunately, WSL doesn’t support USB devices and I was too lazy to go downstairs and work on it, so I did it manually and spent some time playing around with their API. I got some basic stuff working, but I’m nowhere near being able to clone something like SolFarm/Tulip. I’m just starting to get used to running Node scripts, and still trying to understand how to tie together TypeScript into everything. Let alone actually writing a program that does CPI calls to other programs.

I’ll get there though. It’s just a matter of time.

Long day

Yesterday was pretty busy.

I worked on the dex most of the day yesterday, and got pretty far along. I managed to pull the json fetcher into a React context and was able to pull that into the menu generator. I was tough to figure out, but it works. So now I just need to shore up the data map that we’re using so that the menu renders properly, then I get to move on to the token and market mints, which looks like it’s going to be an entirely different beast.

After I was done ‘working’ I wound up playing video games and staying up too late. There were tons of games that looked interesting but I didn’t want to buy anything with my unfinished collection being what it is, so I played a demo and went back through some games in my catalog until I was well and tired.

Today we took a road trip out to visit my dad. He invited us to breakfast at the VFW hall this morning, so we all trekked out there this morning. I don’t think the four of us have been out there together as a family, and I always get a sense of nostalgia driving around out there to places I haven’t been in some twenty years.

The breakfast itself was mediocre. Scrambled eggs, bacon, sausages, potatoes, and saltfish. The girls ate grits. It’s always good to see my dad, but I’m not sure why he wanted us to go there. Hell, I would have preferred Cracker Barrel myself. Still, it was good to get out.

We also managed to knock off a couple more things off our todo list while we were out there. We stopped by a farm store to pick up some pumpkins. They had a corn maze and farm animals: cows, a pig, a couple goats. The girls enjoyed it, I spent too much on pumpkins and even bought a pie that I have no intention eating. On the way back we stopped by the thrift store to unload some things and pick up some clothes for Elder. She got a good deal on one of those two-wheeled skateboard things called a RipStik.

After we got home Missus and I finished watching Dune, it was really good. I’m almost tempted to read the book again just so I can go and read some of the sequels. I think I have enough on my plate right now though, I’m still reading the Foundation series.

I spent the rest of the afternoon reading through Anchor’s example contracts, just reading and reading them, trying to understand just what’s going on with them. Some of them are really complicated and I’m trying to figure out which ones to look at first. It’s slow going, but I’m probably going to head back up there and pound out another hour of it, again and again until they make sense.

Right now we have about an hour before the girls need to go to bed, so I’m going to spend some more time with them, maybe play a card game or dominos.

Reacting

It’s the end of the week, yay! I don’t really have anything urgent to work on today, so I’m not quite sure whether I’m going to work on the DEX React dynamic menu stuff that I was working on or focus on Anchor development. Anchor is probably the most urgent, so I’ll probably start there and work on the React stuff this afternoon.

I had a pretty good day yesterday, I spent most of it digging into the aforementioned React code. We’re trying to make the StarAtlas.Exchange menu render dynamically off of the official NFT JSON feed. There’s a lot going on there though. First off we have to map the items, sorting them into the main itemTypes and categories. I did this using maps of maps of maps. Then we have to iterate through each level, rendering some AntD code at each level. It’s pretty ugly and took me all day to figure it out. The problem we’re having is that the top level submenu props are getting shared between all elements in the map, which is causing them to share the same mouse-over code. That’s where I finished up yesterday. Someone on the team figured out that if we pull the code into a parent component, where the menu gets rendered, that it doesn’t have the problem, but there’s got to be a way to separate the code to make it cleaner.

The next task is to pull the code that requests the NFT feed out of the menu generator. We need to use it for the token list as well, and there’s no point to having it called twice. So we’ll need to slap it into a context provider so that we can reuse the data in different places. Once we do that we should be able to do all sort of wonderful things like pull item details such as pictures on the individual market pages.

As far as Anchor goes, I went through the tutorials for the second time. Reading it makes sense, writing… well, I haven’t attempted that yet. Just knowing how to deploy these things and write scripts that can be used to interact with them is going to be enough for today. Since I’m done with the tutorials, the first thing I want to do is go through the existing examples and see what I can use. There’s a vesting contract that I’d like to extend. The way it works now is just one token address for one recipient, but I want to see if I can extend it to provide multiple token allocations for all SAIAdao members.

Sixty-six thousand

And nine-hundred and ninety-nine dollars

Well, BTC smashed the ATH yesterday. Per usual, I didn’t get much done. I managed to get through the PaulX Solana tutorial and had a call with the founder of Collab.Land, but I was totally ADHD with the charts and Twitter. Wound up getting a bit too sauced and stayed up till 1:30AM watching Squid Game. This morning I’m rekt. Took Younger to the bus stop then came back and went to bed for another hour and a half.

I’m going to work on the serum-dex-ui this morning. I got the token mints pulled out of the serum module, and have the browser pulling the json feed from Galaxy, now I just need to pass the data to a few other modules for the actual rendering. I feel pretty confident about it, so let’s see if I can churn this out in a couple hours.

The market, and by this I mean NYSE, opens in about five minutes. BTC pulled back since yesterday’s close, so we’ll see how much activity there is after the opening bell. If the ETF gets a lot of volume I suppose we’ll go back up. I actually sold a couple options on LedgerX yesterday, October 22 $68k for BTC and October 29 $5k for ETH. I’m only playing around with a couple contract as I don’t want to sell, but am just experimenting with covered calls. I think when I am ready to sell some BTC I’ll sell the futures, that way I can buy them back if there’s a pullback. Enough about that for now though, I want these contracts to expire first.

Non-ATH ATH

So the new Bitcoin futures ETF launched yesterday and did massive amounts of volume on the NYSE yesterday, propelling bitcoin up within less than a thousand dollar of it’s ATH. At least that’s the way it looked on the Coinbase chart. Others decided to celebrate regardless, as bitcoin closed at an all time daily high in several time zones, including here. There were also some exchanges that didn’t show the spike that the Coinbase chart had, and so yes, one could say that BTC hit a new record yesterday.

Me, I’m holding of the official celebration until we have a proper breakout above $64, 938 on Coinbase. I still had the unofficial celebration last night, as I had other reasons to celebrate as well. I’ll just have to tease for right now, as I don’t want to make any comments here until I have something official lined up. Let me just say it’s some potentially very good news.

I really didn’t get much work done yesterday, as I am wont to do when BTC starts making these moves up. Hopefully today I can get some work done. I plan on finishing the PaulX Solana tutorial, then move on to the Anchor version of it. Maybe I’ll mix things up by working on the DEX dynamic token list and menu generator. Either way, I’m going to stay focused on web3 stuff today.

I did manage to get the SAIAdao loot rebase proposal out for a governance vote, so that’s one less thing for me to worry about. Still, I’ve got do a lot more preparation for the actual migration, hence the focus on actual Solana program development. I’ve got to be able to read this stuff well and figure out how I can automate tasks that we need to do.

And I need to act fast. I want to have this deployment done before the Star Atlas mini-game launches “in a couple weeks” so I think that gives me four to six weeks.

The race is on.