TradFi to DeFi

Joined December 2012
160 Photos and videos
Grok Imagine prompt: Please make an avatar for my personal assistant in Hermes. https://hermes-agent.nousresearch....
25
Does the pen/pencil analogy hold up here? "TypeScript is just JavaScript with stricter rules, so you catch mistakes before they become bugs. Think of TypeScript as writing in pen instead of pencil. You can't accidentally erase important details."
34
These guys put out a really good stablecoin payments piece. HTF aren't they here on CT? #Crypto #Decentralized #Payments This is such a big deal. So obvious we will get there where finance lives 100% on chain, including day to day purchases, real estate, all investment types, AI helping to push through the changes in software enhancements, but the path dependency is just wild on how we get there. The risks are the regulatory climate changes, the CLARITY Act doesn't get through, how payment incumbents like Visa & Mastercard are able to adapt and work with crypto issuers and strategize on what their businesses are going to look like to survive, how banks fight back, how fast Mr. Beast turns young investors into the self-banked where it is all they know. And they won't know. It will just work. Enough blabbering, here it is: research.artemisanalytics.co… Subscribe to Artemis Big Fundamentals, by @Artemis__xyz research.artemisanalytics.co…
1
182
Do not forget to put 2025 in context: "Bitcoin ended the year down 6%. Ethereum, down 11%. And the broader altcoin market was down around 36%" Please remember that markets are forward looking and BTC went from 44k to 98k in 2024!
68
Why β€œdecentralized” doesn’t mean β€œsafe” Centralization concentrates risk in people and institutions. Decentralization redistributes risk across code, incentives, and users. Centralized systems ask you to trust who is in charge. Decentralized systems ask you to trust that the system works as designed.
31
After absorbing the 2026 AI outlook content on my radar, the two biggest takeaways are: 1. Software companies are becoming AI workflow companies 2. Moat moves from features β†’ data integration depth
29
David Malan explaining pointers in feels like watching someone calmly defuse a bomb while explaining the molecular structure of the wire. @davidjmalan #cs50
49
These LLMs are so heartwarming and full of Holiday glee lol: note: true story though: Claude chat: WHAT'S UP DUDE? Limit reached Β· resets 4am (UTC) WHAT TIME IS IT EST? Limit reached Β· resets 4am (UTC) DAMN SUPER COLD, WELCOME TO THE FUTURE EVERYONE Limit reached Β· resets 4am (UTC) HAPPY NEW YEAR THANK FOR ALL THE HELP THIS YEAR, YOU REALLY HELPED ME A LOT AND CHANGED MY LIFE FOR THE BETTER Limit reached Β· resets 4am (UTC) LOL
32
29 Dec 2025
$_ Please see the attached use case. This is another one that helps when there are long directory names. Breakdown: !! β†’ the previous command :$ β†’ the last argument of that command So !!:$ literally means: β€œTake the last argument of the previous command.” Same result, more syntax. When to use which (mental model) $_ β†’ fast, readable, muscle-memory friendly !!:$ β†’ precise, composable, history-hacker energy Most people settle on $_ and never look back. Bonus: chaining like a civilized wizard You can even do: mkdir 51-final-project && cd $_ One line. No repetition. Clean intent.
29
27 Dec 2025
For enhanced Go (Golang) text editor formatting in VSCode/Cursor, change your settings to the following and obviously make sure you have standard the Go extension as well:
43
26 Dec 2025
The Pointer Confusion Pattern THE RULES: ───────────────────────── & means "get the address of" (produces a pointer) * means TWO different things depending on context: In a TYPE: *int means "this is a pointer to int" In an EXPRESSION: *ptr means "follow this pointer" ───────────────────────── This dual meaning of * is the single biggest source of confusion. Let's be explicit: (go) var ptr *int // DECLARATION: ptr is of type "pointer to int" // The * here is part of the TYPE // ptr can hold an address value := *ptr // EXPRESSION: dereference ptr, follow the arrow // The * here is an OPERATOR // We're reading what ptr points to
19
26 Dec 2025
You heard it here first. My prediction is that BTC will have a colossal downturnβ€”I'd say to zero if forced to give a price target. Thinking from first principles, Bitcoin cannot hold value long-term. It has zero utility. It was marketed as digital gold, but that doesn't make it digital gold. This has to be the craziest psychological experiment ever implemented. Full manifesto to come...
1
116
23 Dec 2025
How to use globbing in terminal to easily change directories (cd):
1
35
23 Dec 2025
Grok's Crypto to Historical Figures: 1. Bitcoin – Leonardo da Vinci Innovation, enduring influence, simple yet profound. 2. Ethereum – Nikola Tesla Visionary infrastructure, complex ambition, legacy of empowerment. 3. Solana – Alexander the Great Speed & scale, bold ambition, growing pains.
42
21 Dec 2025
Yesterday: Solidity 0.8.0 made overflow revert by default. Today: when to actually use unchecked {} The default (checked math): Every , -, * gets overflow validation Compiler inserts: "did this wrap?" β†’ revert if yes Costs ~20-40 extra gas per op unchecked {} = "I know this won't overflow, skip the checks" Classic pattern β€” loop counters: solidity for (uint256 i = 0; i < arr.length; ) { // do work unchecked { i; } } Why safe: i starts at 0, increments by 1, bounded by arr.length. Physically cannot overflow before exit. Gas savings: ~20 gas/iteration. 1000 iterations = 20k gas. Your users will thank you. When to NOT use unchecked: User-supplied inputs Token amounts Anything you haven't personally reasoned through unchecked isn't "yolo mode" β€” it's "I've done the math" mode.
27
20 Dec 2025
Why did Solidity get such a massive upgrade in 0.8.0 and why have we been on 0.8.x for ~5 years? Pre-0.8: β€’ uint256 math silently overflowed β€’ SafeMath was β€œrequired”… until someone forgot β€’ One missed check = blown-up protocol Solidity moved fast back then: β€’ 0.4.x β†’ ~2 years β€’ 0.5 / 0.6 / 0.7 β†’ ~1 year combined Then 0.8.0 (Dec 2020) dropped. What changed: β€’ Overflows revert by default β€’ Unsafe math requires unchecked {} β€’ Risk became explicit, not accidental β€’ Better errors, typing, and failure signals 0.8 changed Solidity’s default posture: safe by default, sharp edges opt-in That’s why it stuck. You don’t churn versions after fixing the biggest class of bugs.
27
19 Dec 2025
Solidity Nested Mappings Visual: Example: `allowance[owner][spender] = 500;` Slot 1 is the anchor (empty) ↓ hash1 = keccak256(abi.encode(owner, 1)) ← intermediate (also empty!) ↓ hash2 = keccak256(abi.encode(spender, hash1)) ← ACTUAL storage slot ↓ SSTORE(hash2, 500) No pointers. No nested structs. Just hashes.
21
19 Dec 2025
Solidity nested mappings using ERC-20 "allowance" example: contract ERC20 { // Who owns how many tokens mapping(address => uint256) public balanceOf; // owner => spender => amount they're allowed to spend mapping(address => mapping(address => uint256)) public allowance; }
25
18 Dec 2025
Yesterday: mappings are just hash lookups. Today: why this design, how to track keys (on and off-chain) There's no "directory" of which slots are used. The EVM only knows: "read slot X" or "write slot X." Why no iteration? To iterate, you'd need a list of keys. But storing that list means: Extra SSTORE per insert (~20,000 gas) Growing array = more slots = more cost Deletion becomes expensive (swap-and-pop or leave gaps) Mappings chose: O(1) access, zero overhead, no iteration. When to track keys on-chain Track on-chain when: Contract logic requires iteration (distribute to all holders, enumerate NFTs), small, bounded sets (< 100 items typical), writes are infrequent ```solidity mapping(address => uint256) public balances; address[] public holders; // explicit key tracking function deposit() external payable { if (balances[msg.sender] == 0) { holders.push(msg.sender); // first deposit = new key } balances[msg.sender] = msg.value; }``` Track off-chain when: Large/unbounded sets, iteration only needed by frontends/indexers, gas optimization is critical Emit events, index with The Graph or your own indexer: ```solidity event KeyAdded(address indexed key); function deposit() external payable { if (balances[msg.sender] == 0) { emit KeyAdded(msg.sender); // ~375 gas vs ~20,000 for SSTORE } balances[msg.sender] = msg.value; }```
21