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.

Up up up

I just barely remembered to do today’s update, it’s 10PM and I’ve had a busy day.

Work continues on the Star Atlas DEX. I’ve made progress, but we’re still having problems with trades and settlement, and I’ve gone down a rabbit hole of trying to deploy the site to Github pages using actions, trying to abstract out development and production environment variables. It’s a mess.

I’m still really optimistic though, I’m really close to having a feature complete Star Atlas marketplace. Michael Wagner, the CEO of Star Atlas even reiterated the idea of having independent DEXs at yesterday’s townhall. He said something to the effect that “since we’re using Serum’s decentralized orderbook, anyone will be able to stand up their own front end and allow people access to Star Atlas’s assets.”

We hear you Mike, we hear you.

Personally, I was also busy around the house. My never-ending deck project is closer to completion, I cleared the main deck and washed it down from top to bottom in preparation for staining tomorrow. I even cut a few balusters that needed replacing. I took Younger out with me to the store, and took her and her bestie to the beach for an hour today while Elder was out with her bestie for a birthday dinner. Tomorrow I need to stain the main deck boards.

I’ve got a lot of work to do to get this DEX stood up, but I’ve got investors interested now, and the dao is growing. With any luck we’ll be the Yield Guild of Star Atlas soon. The upside here is so huge.

Guardian

Well today was a good day, I actually managed to sleep more than six hours today. I think the insomnia and mood swings I’ve been having the last few days might be due to alcohol withdrawals. I have been drinking a lot lately, starting with our week at the beach and culminating with the Labor Day weekend. I’ve been drinking this evening, so we’ll see if I sleep tonight and wake up with a headache.

We managed to snag a Calico Guardian last night. I found out what the MSRP was on it and placed a lowball bid and managed to score one in the first minute, practically at list. It was pretty sweet.

I did more work on our dex, orders started working, so now I just need to figure out why settlement doesn’t work then we can publish and hopefully start raking in the fees. The dao raised over twelve grand today, including one contribution for ten grand. It’s amazing how much money is in crypto. Speaking of which, I estimated that Atlas Co. raised over nine million selling those two hundred Guardians. It’s amazing how much they’re minting.