Git add –force

So I literally spent most of the last two days trying to add the TradingView charting_library into our serum-dex-ui. I couldn’t figure out why it didn’t build properly after cloning from Git.

The TV folders were listed in .gitignore, so I removed them and checked the dirs in, but it broke when our other dev checked it out. I saw some sort of git hook on commit that I thought might be doing something, so I pulled that out, started from scratch. Nothing. I tried doing a bunch of diff checks on the directories, cause git status was showing nothing. Diff showed nothing, but I forgot to use -r, so it wasn’t recursing the subdirectories. This would have shown me that two directories in the folders I was checking in, dist and lib, were missing. This is because they also were listed in the .gitignore file. It was simple.

I don’t know whether to blame my oversight on stupidity or overwork, but solving it was 100% tenacity.

Looks like it’s official. Lord knows how we’re going to take custody of the private keys, but most of this will get liquidated for cash and/or go straight into the multisig. I was having anxiety last night about the assets that I’ve currently got. I’m nervous enough that I bought another Ledger today. Should have just bought a three pack to send out to the rest of the VCT. Hindsight 20/20.

Overall, a pretty good day.

Monday run

It really was a beautiful morning. Felt like a long jog because of a pain on the outside of my left knee. I’m not sure whether it was overuse from all the squatting and bending that I did last night, or if it was because of a change in stance or foot alignment.

So I went right to work writing up the latest weekly status report for SAIADao. It took all day, but the news is good.

I spent too long this afternoon trying to onboard someone to help me with the Serum DEX front end. I had included the TradingView library in our repo because I couldn’t figure out how authenticate it to pull it down, but something about the act of checking it in prevents it from being cloned from scratch again. It fails to compile. After much experimentation all I can do is wipe the library directories and copy from source. Not sure how to automate that, but I am probably going to hound the TV team to figure out why.

I didn’t get much else done today. We had the house power washed, and an easy dinner. Fought with the fam over chores. The kids want to fight me when I ask them to clear the table, and Missus goes straight to the bedroom and her Kindle as soon as she walks in, leaving me to make sure the kids get dinner. She said there’s no argument you can make that will make me think that your work harder than me, so I guess it’s one of those agree to disagree situations.

Anyways, I’m not sure if I’m going to do anything else tonight other than watch Last Week Tonight. I passed out at 9:30 last night I was so worn out from this weekend, and I think getting up at 5:30 in the morning is the way to go. Or maybe I’ll try to code some more if I can promise myself that I’ll go to bed on time.

Dependencies

I did a lot of work on the serum-dex-ui module last night. I’ve been writing a lot of Python code to modify the NFT json feed and parse it into the various forms that I need for the serum-history and dex UI modules. Went even further and used it to generate the React code I needed to build the drop down menus that are made in antd. Anyways, it’s been paying off. I’ll need to figure out some sort of way to automate updating two or three git repos based on changes in the feed, but I’ll get to that later. Right now, I just want to get this thing live so people can access it.

Right now our test instance is running the site off of yarn, the repo has a static build system. It’s got a Github Pages build, but I started standing up an AWS Amplify setup. I’ve never used it before, but it was actually pretty damn easy to configure it to checkout the Github repo and build. The problem is our market data is actually being injected into the app through one of the Serum dependencies in node-modules. This doesn’t work in a CI/CD environment, so I’ve got to figure out how to remove that dependency and refactor the app to use our fork.

One other note about my work last night: we had a couple misnamed symbols, which were used as primary key prefixes in the Redis database. Each symbol had multiple keys, all of which needed to be updated at the same time that the symbols were updated in source code in the two repos. I managed to find a blog post, Renaming Multiple Keys in Redis, that provided a few lines of pipelined code that could do the trick. We only had about seven or eight incorrect tickers, but since this needed to be done quickly I coded it out in Python, using a dictionary that mapped out the erroneous symbols to the correct one.

for old_symbol, new_symbol in changes.items(): 
  print("""
redis-cli --scan --pattern {old_symbol}-*  | \\
awk '/^/ {{new_key=$1;gsub(/{old_symbol}/,"{new_symbol}", new_key); printf "*3\\r\\n$6\\r\\nrename\\r\\n$" length($1) "\\r\\n" $1 "\\r\\n$" length(new_key) "\\r\\n"  new_key "\\r\\n";}}'  | \\
redis-cli --pipe""".format(old_symbol=old_symbol, new_symbol=new_symbol))

Voila. I have been meaning to take a longer look at awk as I think it may be useful for the Solana multisig metaprogramming code that I want to work on. I’d been writing it in bash, but now I’m second guessing whether a Python module might be a better choice. It weird that I’ve been learning Rust and React, but keep going back to Python. I had a spectacular moment last night when I realized that I needed to add an additional attribute in from a loop to be used later within another loop. I was cursing myself because I thought it would be a pain in the ass, but I had a flash off insight that made me feel like a shadowy super coder. I simply turned one variable into a tuple and called it later in the code. It can’t possibly be this easy, I thought as I hit the run button. But it did, on the first try, and I felt like a goddamn genius.

The rest of my work today, not so much.

On a personal note, I spent another two hours staining the deck. Got the floorboards done, although there are a couple light spots that will need a bit more spray. I managed to finish the inside of the railings. So all that’s left now is to do the outside of the railings and touch up the tops where there are new boards. It’s hard work doing it by myself in these short spurts. And trying to do it with plastic or cardboard behind where I’m spraying is a huge pain as well, but I have to do it to keep the sprayer from getting all over the house or the hot tub. I’ve had limited success there, I tell you. I don’t know if I’ll be able to get it done in one more session, or two, but I’ll be so damn happy to wrap this up.

And today was also my quarterly board meeting with Elder. She loves Chinese buffets, but the ones we have here in town are so crappy. We pigged out, but the food wasn’t that great. Then I took her to a couple of discount stores to buy a toy and some makeup. This was the third time we had one of these daddy-daughter days. It wasn’t the greatest, but I had to remember to take time with her in the midst of the business that we’re going through.

We watched What If…? when we got back and then did our own thing. I cut the grass for what must be the third time in less than two weeks, and now the kids are in bed.

Tomorrow I’ve got my weekly SAIADao update for the membership, and will be working more on getting the dex up and running. I want it live this week.

Serum

It’s Saturday night and I’m exhausted. Stayed up too late last night tying one on, and had to do some work today to punish myself. I spent too many hours out in the sun staining my deck, but it looks great though! And this afternoon I took the girls to a birthday party for three hours. Now I just want to go to bed.

I did find some time this morning to work on staratlas.exchange. I created another Python definition in my library to transform the json I need for the serum-history application, but because of some early design choices that we made I have to figure out a way to change Redis keys for over seven hundred tables. We didn’t have the official symbols for some of the items, and the ones that were correct need to be updated to reflect that they are USDC pairs. Due to the scale of the problem I’ll probably correct the ones that are wrong and wait until the introduction of ATLAS pairs before changing the other. On top of that, the Atlas team used the same symbol for two assets which break as straight automation build, so I’m trying to get it to change it. For now though, I’ll just have to write a check to change the two in question so that they’re unique.

So I’ll have three Python functions that print the proper keys for the three files, one in serum-history, the other two in the serum-ts library. Hopefully we’ll be able to detect changes in official feed and use some sort of CI/CD pipeline to update the backend and frontend systems.

Once I get these worked out, I need to deploy the static front end somewhere. It’s got issues, but we’ll have enough to get some traffic and if we can generate some trading fees then at least we’ll have our idea validated. We’ll add the category pages to the nav bar so that people don’t have to remember the symbols, and then we can work on settlement and trading capabilities.

Evening page

I have really go to start writing these in the mornings, not in the evenings when I’m too exhausted or too ripped to write. It’s more of the former right now.

We finally validated the multisig this morning with the team and I moved over our Rebirth posters. All went well, and I’ll probably sleep a little better tonight.

I’ve been working on Python scripts to help transform the SA JSON feed into the type of data structures that I need for our history module and dex front ends. We made some mistakes so I need to do some more work before I can fulfil my dream of fully automated CI builds. The good news is that we now have a dao member who is familiar with React, so I can get some help. Thank goodness.

I took many thousands in contributions today for the dao, it’s exhausting. I need to be doing more delegating and figure out how to be a CEO or whatever if this is going to work.

But tonight I’m taking a break and playing video games. Just kidding, I’m probably going back upstairs to write Python code.

Pressure building

I have got to take better care of myself. Got a bit loose last night, watching TV and drinking till 12:30 AM. This morning was a bit rough and I had to take a nap this afternoon. I still managed to get a lot done.

My primary focus was getting this SAIADao proposal in. The negotiation was pretty intense but I think I have something together that everyone will be happy with. Basically we’re buying a wallet full of Star Atlas Rebirth rewards for shares in the dao, and we had to come up with a valuation for some rather expensive, illiquid assets. So much going on there.

I’m late writing because I’ve been glued to the computer since eight this evening as part of a gear sale they’re doing as part of their GAO event. I’m not going to write too much alpha here right now, but we should be able to automate the listing of new releases straight to our data collector and dex front end. It’s going to take some work to build it out but ooh yea it’s going to be nice.

There’s a hundred other things I could write up but I am tired and going to bed. I need to work out tomorrow and have some very important things I need to get done.

Floored

Today has been absolutely insane. I think I raised close to $100k today, a third of that are “intentions to” but it’s just been crazy. I spent most of this morning dealing with Discord proposals, taking money from people left and right. I had to take a few calls, including one person who does “economic modeling” for a living. Tokenomics: CHECK. I also spoke to an old school cryptographer last night who is pulling some strings to get me some help with the dex work. Absolutely fantastic.

Things are moving really fast. I met with a VC group today, their main concerns were legal structure, multisig, and documentation. So we’re pretty well aligned there.

I’m definitely feeling the pressure. I think I’ve figured out how we can scale funding up to where we need to go, there’s just a lot of other pieces that need to come together. I am going to have to delegate a lot of this stuff, so it’s all about finding people that I can trust to handle things for me. I’m obviously not going to be able to do all the technical stuff that I’m trying to do — let alone half of it — plus the management side of things.

Lost my train of thought, Discord message ping ping ping ping ping.

Had another convo with someone I’ve known a short time, remarking on the fact that I’m anon and that people are sending me these large amounts of money with barely a five minute exchange over Discord. It’s all about trust, he said. Yea, it is. And social proof. It’s just amazing that after grinding and grinding and grinding it seems like it starting to come together.

Solana, Beached

Wow, what a day.

So I’m out of spreadsheet hell and got the dao update posted today. It was a lot of work but I think I can live with the results.

Solana was down all day. It came back up an hour ago but prevented me from working on the dex.

Had a couple calls today. One NFT OG that’s going in deep in SAIA dao, another with a really big geek that I’m just in awe of. This space is fantastic. We might be close to securing a Commander ship, and the structure that we put in place might allow us to go for a Titan. Oh, I wish.

I also managed to get some yard work done. Dug out the edging on the flowerbed and cut the grass. Not too bad for someone that got woken up by the girls at five AM.

Watched Ragnarok season 1 finale and started Y: The Last Man last night. Probably going to hit another episode and go to bed.

Tomorrow I hope to focus on the dex. If I can get that running it should print money.

Spreadsheet king

One of these days I’m really going to have to figure out pivot tables.

I spent most of my day working through member contribution proposals for SAIADao, trying to figure out exactly what we’ve done with our membership scheme. I really messed things up a bit the last two weeks without knowing what I was doing. I think I got things cleared up a bit, so I’m going to give it a day for dao members to look it over and chime in before we start accepting additional members. We raised over $45 thou in the last ten days.

I spoke with a Russian software entrepreneur this morning. Apparently he’s one of the four pre-sale SAFT Rebirth participants. He had put together a price dashboard for SA NFTs and I had seen some of the screenshots floating around and I wanted to find the person that did them so I could pick their brain. I didn’t realize that I would meet up with one of the biggest SA whales in the space. Things are so crazy.

I also spoke to my domestic VC and went over the challenges that I’m having with the plan. He’s putting me in touch with a capital group that should help me be able to help me tighten things up and allow us to scale fundraising.

One of the common themes I’m hearing is that people have assets that they need managed. Great, you just bought a couple hundred thousand of SA assets and you don’t have time to put them to use. What you do? You call BCM and we’ll handle it.

Things are pretty exciting.

Personally, I managed to get in a workout this morning, and went right to it after I took Elder to the bus stop. I was busy till she got home. I think I took a five minute break to chill and spent twenty minutes playing piano, but the rest of the time was on Discord or Google Sheets. I was able to delegate some lesser things today, so that was good.

This evening I managed to get a coat of stain on the main deck floor boards. That took ninety minutes then I cooked dinner. The kids didn’t want to help clean so I told them to go to their rooms, watched Last Week Tonight then finished cleaning up and took a shower. I feel like I’m working non-stop. Missus probably thought I was dicking around all day, she doesn’t even know how much I’m doing right now.

The only downside today was that I didn’t get enough time to focus on our Serum dex, but I’m hoping I can get to that right after I hit PUBLISH.

Evening notes

It’s been a busy twenty-four hours.

I stayed up till four in the morning binge watching Ragnarok on Netflix. It started off pretty good but seems to be dragging on. It’s not quite Dark, but it’ll do for sci-fi/fantasy.

I wound up getting up after nine, just in time to do my weekly Perpetual funding management. This week was much better than the last two, closing in on my previous nine to five was bringing in. I rolled the positions into additional longs, keeping my liquidation price under $19,000 BTC and $1800 ETH. I’m glad I didn’t get to crazy when we were at $52k, and almost wish I had taken some profits. The drop erased over twenty thou in profit, but I haven’t really been concerned about it too much.

I didn’t do much work on our staratlas.exchange. Someone left me a Discord message that an existing exchange has already listed Star Atlas NFTs complete with price data. So that was a bit depressing, but I’m determined to push forward and build one with the support of the guild. Work will continue this week.

First though, I need to finish the deck. I made another trip to the hardware store today to pick up railings for the porch. I had to cut them at a 45-degree angle by hand with a miter box, and I’ll admit it’s a horrible job. But all the balusters are in place now and I’ve started staining. I ran out of sunlight though, and hopefully I’ll be able to continue work in the morning if it doesn’t rain. If I can finish the first coat in the morning, I might be able to put the second on in the evening and finally be done with the project.

A parenting note: Missus has decided that enough is enough and that she’s going to be bad cop. She’s tired of our kids being the worst kids among our social circle. Ours our disrespectful and defiant, and I’ve been losing my minds the past few weeks. Now it seems it’s open season on spankings here in the house. The kids think they can just tell us ‘no’ when we ask them to do something and just do whatever they want. Not any more.