markjgsmith

2024/04/30 #

HTTP Request/Response equivalent for crypto coins

I'm looking for a way to better understand crypto coins on a technical level. I've always felt that my understanding was on a superficial level, a combination of marketing and non-technical documention. That's been good enough until now, but Stripe's recent announcement of support for USDC on Etherium, Solana and Polygon has me very confused. How is it that a coin of a particular type can exist on multiple blockchains?

It's a great feature for sure, and I have since found some blurb about multi-chain stablecoins, which makes sense, but it's not technical enough. I want to really understand the difference between these coin types.

I'm from a web development background. In that realm, if you wanted to understand the difference between 2 APIs, one way to do that would be to compare the text of the HTTP requests that were transmitted over the wire. That way you could figure out very quickly the shape of the API because you could actually see the endpoint URLs, and any JSON data included. And of course you'd also be able get lots of clues to what the API was like through reading the HTTP Response received from the server.

I understand that crypto isn't web development, and this is perhaps a nieve question, but how would one compare two different crypto coins at a similarly technical level as the web API example? #

Hey crypto / web3 devs out there can you help me understand the nature of crypto coins at a technical level?

I'm looking for a way to compare coins, something vaguely similar to comparing HTTP request / responses when you are comparing web APIs. #

I think markdown is awesome. I use it everyday. It's a great semi-technical way to write HTML. Pretty much everything I publish is stored in markdown. Having worked quite a bit with markdown parsing libraries like marked, which have advanced plugin systems, I wonder whether it would be possible to create a markdown editor with a plugin system.

I haven't seen such a thing, but I reckon such a tool could really take digital collaboration to a new level. You might be able to design workflows specifically tailored to people with very different skill sets. Just putting it out there. #

Great recent Daily Show with a segment on making monetary theory approcheable to the every-man/woman. Also a segment all about internet culture, with Filterworld author Kyle Chayka.

I think it's notable that monetary theory is now cool. This definitely was not the case when I was growing up. Even if you don't agree with the thesis, that deficits are good, the mere fact that it's in the consciousness of the general population is a net benefit. Also Chieng's faux useful idiot questions are both hilarius and insightful. He totally nails it. It's like he's been burned before trying to understand money, and is trying to step through the algorythm extremly carefully from file1/line1. Something every programmer can relate to. Good, bad, happiness, that's got to be somewhere close to file1/line1.

Kyle Chayka is excellent too, I find all his interviews are brilliant. He's so insightful about modern internet culture, aesthetics and other very esoteric things that I suspect he's actually secretly a physicist or buddist monk, or both. #

Asking stupid questions

In my first software engineering role, everyone on the dev team used the same editor called Eclipse, which is a java IDE. I had plenty of experience with computers, with scripting languages like Python/Perl/Bash, but it was mostly from a sysadmin and devops perspective. What that meant was I hadn't really ever used a full blown IDE. I'd always used simpler editors like Kate, GEdit or Vim. Also I had no clue as to how web applications were structured.

During on-boarding, I followed various in-house developer environment setup documents and eventually got my local install of the code running. But I still didn't really understand how everything was working, how all the pieces connected. The IDE obscures that to a large extent, you fill in a bunch of settings under various menus that you have no clue about, change some config files, again that you have no clue about. When it works it feels a bit like magic.

I've learnt over time in software development, that magic isn't such a good thing. Sure it's wonderful when it works, but when things break, and you are trying to fix it, and you don't understand how things work under the hood of the UI, then you are really in the shit. The UI is literally in the way. I have always gravitated towards command line tools for this and a few other reasons. If you are used to doing it on the command line, if you are using a GUI and something goes wrong, you stand a much better chance of being able to figure out the problem.

Anyway, in the case of my Eclipse setup, of course it didn't take long before I got stuck. I was looking at all the code, and there was really a lot if it, more than 10 years of code, and I was completely lost. I didn't even know what I was supposed to be looking for. I had some error messages to go from. A quick search and I found relevant code, set some breakpoints in the debugger, but they weren't being hit. You have to remember I had no clue about web applications. I knew there was a webserver but I had no clue how the code you wrote actually got run. It was all magic.

Now when you are writing system scripts these tend to be in a single file. If the thing isn't running, it's pretty obvious once you put some print statements at the start of the file. If they never make it into the program output, you know that the file you think you are running, for whatever reason isn't being run. It's like the most dumb and basic thing. Is the file you are running actually running. You would be suprised how often a bizare thing like permissions, or a network drive that hasn't mounted or any number of other strange things will occur causing this to happen. In a way it's comical, but it highlights a fact developers often forget, that life outside the working dev environment can be quite complicated. But also that often environment setups are over complicated.

Eventually I after thinking about it for far too long, I summized that there must be a file1 line1 somewhere. There must be a place where the code starts executing, same as for the simpler system scripts. The IDE is actually just running the various applications on the command line, but it hides that from you. Because of this, I didn't even know to ask the question of where the code starts to execute. Another thing that makes it more difficult than system scripts is that the code you are debugging only gets executed when you make an HTTP request, i.e. when you try to load a page from the website you are debugging in your web browser.

It feels like such a dumb question to ask, how does the web browser actually get into my code? But it's totally the right question to ask. Of course web developers have special language to describe this, it's called an 'entry point', but if you don't know the special language, you are bound to sound a bit silly or stupid or both. You have to not be overly worried about this, to an experienced software developer, who has worked in several different areas, you don't sound stupid at all. It's only to those developers that happen to now the special language, but who don't have any experience in other development areas, that you sound stupid.

I was reminded of this by a recent Daily Show episode that tries to tackle modern monetary theory. Ronny Chieng starts asking literally the most abstract questions possible, is money good, are deficits good, is going to a casino bad, how can we be happy about deficits, and it's hilarious. But it's also very insightful, because through his faux useful idiot questions, you can get a sense that the UI might be getting in the way a little, maybe underneath the calm eloquant answers of his guest, there lies more to the money story. I think it was a brilliant way to put money in the consciousness of the general public without getting too caught up in the weeds.

I asked a sort of stupid question earlier to crypto and web3 devs. #

Yet again food vendor mischief. Early this morning a manufactured incident at a food vendor. The only thing I did was ask for the chicken dish. That caused some sort of issue, and one of the laddies working at the food stand was really insisting that I have a totally different dish, that I did not want.

I eventually got the dish I asked for but not before the same lady started pointing and complaining about a breakfast dish I'd bought at totally different vendor several kms away and was holding in my other hand. Why was she making that her business?

Anyway, I had the chicken dish for lunch. Shortly after eating it, I had to make an emergency trip to the bathroom. I've felt bloated since. In case you are wondering, the dish she was pressuring me to have also included some of the very same chicken, but less of it, so she wasn't trying to warn me of something.

As is the case with all these incidents there were several seemingly related oddities leading up to the incident, including the night before with a large bag of croisants, which were quite nice btw, but I haven't included details here for brevity reasons.

Just another manufactured incident, where I end up being blamed and punished, for something even though I did obsolutely nothing wrong. #

Today’s links:

For enquiries about my consulting, development, training and writing services, aswell as sponsorship opportunities contact me directly via email. More details about me here.