<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Dalton Sweeney</title>
    <description>A terminally online software engineer</description>
    <link>http://daltyboy11.github.io</link>
    <atom:link href="http://daltyboy11.github.io/feed.xml" rel="self" type="application/rss+xml" />
    
      <item>
        <title>Poe NFT Launch!</title>
        <description>&lt;p&gt;I’m thrilled to share that my &lt;strong&gt;PoeNFT&lt;/strong&gt; collection has officially launched on Base!&lt;br /&gt;
Explore the collection: &lt;a href=&quot;https://www.poenft.com/&quot;&gt;https://www.poenft.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I &lt;a href=&quot;https://warpcast.com/dgs/0x79a88c0f&quot;&gt;announced the launch&lt;/a&gt; on Warpcast, and it was received better than I expected—while the collection didn’t mint out entirely, it saw far more mints than I had anticipated.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/poe-nft-launch-cast.png&quot; alt=&quot;Poe NFT Launch Cast Screenshot&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;what-makes-poe-nft-special&quot;&gt;What makes Poe NFT special?&lt;/h2&gt;

&lt;h3 id=&quot;️-a-novel-erc721-implementation&quot;&gt;🏛️ A Novel ERC721 Implementation&lt;/h3&gt;

&lt;p&gt;Many months back, I wrote about &lt;a href=&quot;https://daltyboy11.github.io/ERC721Reclaimable/&quot;&gt;&lt;strong&gt;ERC721Reclaimable&lt;/strong&gt;&lt;/a&gt;, my take on implementing title transfers and the right of reclaim, as explored in the a16zcrypto article &lt;a href=&quot;https://a16zcrypto.com/posts/article/how-nft-royalties-work/&quot;&gt;&lt;em&gt;How NFT royalties work: Designs, challenges, and new ideas&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PoeNFT&lt;/strong&gt; is the first collection to bring these mechanics onchain—allowing holders to transfer &lt;em&gt;title&lt;/em&gt; separately from &lt;em&gt;ownership&lt;/em&gt; and reclaim tokens under certain conditions.&lt;/p&gt;

&lt;h3 id=&quot;-the-art&quot;&gt;🎨 The Art&lt;/h3&gt;

&lt;p&gt;Why &lt;em&gt;Poe&lt;/em&gt; NFT?&lt;br /&gt;
Because every piece draws inspiration from the short stories of &lt;strong&gt;Edgar Allan Poe&lt;/strong&gt;. Each story in his body of work is represented by one or more pieces in the collection. If you’re curious, &lt;a href=&quot;https://www.goodreads.com/book/show/23919.The_Complete_Stories_and_Poems&quot;&gt;here’s the complete collection&lt;/a&gt; I read (and thoroughly enjoyed) last year.&lt;/p&gt;

&lt;p&gt;As for the art itself—every image was laboriously crafted with &lt;strong&gt;DALL·E&lt;/strong&gt;, a process that involved quite a bit of trial, error, and iteration, especially given Poe’s distinctly macabre and gothic aesthetic. I documented the experience in &lt;a href=&quot;https://daltyboy11.github.io/dalle-reflections/&quot;&gt;&lt;em&gt;Reflections on DALL·E-3 after creating 100+ images for an NFT collection&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;-a-rewards-contract&quot;&gt;🎁 A Rewards Contract&lt;/h3&gt;

&lt;p&gt;And as a final touch: &lt;strong&gt;there’s a game.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I built a &lt;strong&gt;Rewards Contract&lt;/strong&gt; that lets you reclaim your mint fee—if you can correctly guess which story your piece represents.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://www.poenft.com/rewards/how-it-works&quot;&gt;“How It Works” section&lt;/a&gt; on the site explains the mechanism. In short, it uses &lt;strong&gt;ECDSA signatures&lt;/strong&gt; to verify correct guesses without ever revealing the title onchain—a kind of primitive zero knowledge proof. The design takes inspiration from the &lt;a href=&quot;https://www.dist0rtion.com/2020/01/30/Planetscape-a-dystopian-escape-game-for-36C3/&quot;&gt;&lt;strong&gt;Social Dist0rtion Protocol&lt;/strong&gt;&lt;/a&gt;, ensuring the answer stays hidden while still allowing trustless verification.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Thanks to all who’ve supported the project so far. It’s been a labor of love, and I’m excited to see where others take the title ownership concept!&lt;/p&gt;
</description>
        <pubDate>Wed, 19 Feb 2025 00:00:00 +0000</pubDate>
        <link>http://daltyboy11.github.io//poe-nft-launch/</link>
        <guid isPermaLink="true">http://daltyboy11.github.io//poe-nft-launch/</guid>
      </item>
    
      <item>
        <title>A Demure Alarm Clock</title>
        <description>&lt;h3 id=&quot;a-demure-alarm-clock&quot;&gt;A Demure Alarm Clock&lt;/h3&gt;

&lt;p&gt;Do you ever find your current alarm jarring, leaving you stressed from the very start of the day? When your alarm starts ringing at 7 AM, do you want a gentle nudge to start your morning, or do you want the usual loud blare that disturbs your peaceful slumber?&lt;/p&gt;

&lt;p&gt;If you’re looking for a calm and soothing way to wake up, I created &lt;em&gt;Demure Wakeup&lt;/em&gt;—a mindful alarm clock app that helps you ease into your day. The curated calming sounds and serene visuals are handpicked to inspire peace and positivity. It’s a perfect way to start each morning with balance and tranquility.&lt;/p&gt;

&lt;p&gt;Simply select the time of day, the days of the week, and the perfect tone for your alarm.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/demure-alarm-clock/add-alarm.PNG&quot; alt=&quot;add-alarm&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Set as many alarms as you need to match your unique routine and flow.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/demure-alarm-clock/alarm-screen.PNG&quot; alt=&quot;alarm-screen&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Your alarm will sound at the time you specify, waking you up gently and setting the right tone for the day.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/demure-alarm-clock/alarm-notification.PNG&quot; alt=&quot;alarm-notification&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And that’s it! Simple, yet tranquil. If you’re a user of the app and have any feedback or need assistance, please &lt;a href=&quot;mailto:dalton.g.sweeney@gmail.com&quot;&gt;reach out&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h1 id=&quot;privacy-policy-for-demure-wakeup&quot;&gt;Privacy Policy for Demure Wakeup&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Effective Date: September 25, 2024&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your privacy is important to us. This privacy policy explains how &lt;em&gt;Demure Wakeup&lt;/em&gt; (“the App”) handles your personal information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Information Collection&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The App does not collect any personal information from its users. You are not required to provide any personal data such as your name, email address, or location to use the App.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Data Usage&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Since we do not collect any personal data, we do not use your data for any purposes. The App operates entirely on your device and does not transmit any information to external servers or third parties.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Third-Party Services&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The App does not use any third-party services that could collect information from you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Data Security&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Even though the App does not collect any data, we are committed to ensuring that your experience remains secure. We have implemented appropriate measures to protect the integrity of the App on your device.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Changes to This Privacy Policy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We may update our privacy policy from time to time. We will notify you of any changes by posting the new privacy policy on this page. You are encouraged to review this privacy policy periodically for any updates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Contact Us&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you have any questions about this privacy policy, please &lt;a href=&quot;mailto:dalton.g.sweeney@gmail.com&quot;&gt;contact us&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Thank you for using &lt;em&gt;Demure Wakeup&lt;/em&gt;.&lt;/p&gt;
</description>
        <pubDate>Tue, 24 Sep 2024 00:00:00 +0000</pubDate>
        <link>http://daltyboy11.github.io//demure-alarm-clock/</link>
        <guid isPermaLink="true">http://daltyboy11.github.io//demure-alarm-clock/</guid>
      </item>
    
      <item>
        <title>Reflections on DALLE-3 after creating 100+ images for an NFT collection</title>
        <description>&lt;p&gt;I’m a longtime chatgpt user but a very recent user of its image generation capabilities (&lt;a href=&quot;https://openai.com/index/dall-e-3-is-now-available-in-chatgpt-plus-and-enterprise/&quot;&gt;DALLE-3&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;I generated over 100 images in the last two weeks for an upcoming NFT collection (more on that in a future post). It was a frustrating experience to say the least… if you want an image with even a basic level of specificity and detail then you’re going to be disappointed. This post is a reflection on my experience, my understanding of current limitations, and some suggestions for your own prompts.&lt;/p&gt;

&lt;p&gt;First, I want to be clear that current models are &lt;strong&gt;extremely impressive&lt;/strong&gt; for what they are! Just look at &lt;a href=&quot;https://web.archive.org/web/20240524162516/https://medium.com/@junehao/comparing-ai-generated-images-two-years-apart-2022-vs-2024-6c3c4670b905&quot; target=&quot;_blank&quot;&gt;where we were two years ago compared to where we are now&lt;/a&gt;. I have immense respect and admiration for the researchers and engineers innovating in this space. This post is more about expectation setting. If you’re trying to depict a detailed scene, with all the characters in the right place, doing the right action and so on, then you’re going to have a bad time. The alternate explanation, to maintain a semblance of humility, is that I’m a terrible prompter. Not at all unlikely, and please &lt;a href=&quot;mailto:dalton.g.sweeney@gmail.com&quot;&gt;let me know&lt;/a&gt; if you think so!&lt;/p&gt;

&lt;p&gt;I divided my evaluation into five categories:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Quantity&lt;/strong&gt;: How many of something you want in the image.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Orientation&lt;/strong&gt;: How the thing in your image is positioned.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt;: What the thing in your image is doing.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Artistic Style&lt;/strong&gt;: How you want the image to look.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Content Policy&lt;/strong&gt;: Violations and working within the boundaries.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let’s look at each one in turn.&lt;/p&gt;

&lt;h2 id=&quot;quantity&quot;&gt;Quantity&lt;/h2&gt;
&lt;p&gt;When it comes to telling DALLE &lt;em&gt;how many&lt;/em&gt; of a thing you want, it struggles to fulfill this request for even the most basic prompts. The big problem is what I call &lt;em&gt;dud objects&lt;/em&gt;. I’ll illustrate with sailboats:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Two sailboats in the ocean sailing side by side. Aerial view”.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/dalle-reflections/quantity/1.jpg&quot; alt=&quot;sailboats-extraneous-object&quot; /&gt;&lt;/p&gt;

&lt;p&gt;There are two prominent sailboats in the result but you can see an artifact on the left. It’s smaller and not quite a sailboat, yet exhibits some sailboat attributes. It has an oblong shape and leaves a wake in its path. It’s a half-assed, &lt;em&gt;dud&lt;/em&gt; boat. DALLE consistently inserts dud objects in the result, which are essentially botched and smaller versions of the main object.&lt;/p&gt;

&lt;p&gt;Telling DALLE you don’t want extraneous objects sometimes does the trick. In this case I actually was able to get the desired result:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Sorry, I wasn’t clear. I want the two sailboats to be the only objects in the water. No extraneous objects.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/dalle-reflections/quantity/2.jpg&quot; alt=&quot;sailboats-no-extraneous-object&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This trick works when the prompt is stupidly simple, not really more complex than &lt;em&gt;“Give me two of X”&lt;/em&gt;. As we shall see in the next section, the trick doesn’t work beyond this basic prompt category.&lt;/p&gt;

&lt;h2 id=&quot;orientation&quot;&gt;Orientation&lt;/h2&gt;
&lt;p&gt;DALLE is bad at orienting objects in absolute positions and relative other objects. It simply can’t do it. To extend the sailboat example from the previous section, let’s make one small change to the prompt:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Two sailboats in the ocean, sailing in opposite directions. Aerial view. They are the only boats in the water.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/dalle-reflections/orientation/1.jpg&quot; alt=&quot;orientation-1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We upped the complexity ever so slightly by asking it for sailboats going in &lt;em&gt;opposite&lt;/em&gt; directions. It couldn’t orient the boats in opposite directions no matter how much I iterated. Furthermore, the dud sailboat problem got worse. If you can reliably get orientation right, I would really like to hear from you.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“But those sailboats are moving in the same direction. Try again, and I’ll be more specific: Image of two sailboats viewed from above, moving in opposite directions, one west and one east, along the line. They are the only boats in the water. No extraneous details or objects please.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/dalle-reflections/orientation/2.jpg&quot; alt=&quot;orientation-2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;All attempts were futile.&lt;/p&gt;

&lt;h2 id=&quot;actions&quot;&gt;Actions&lt;/h2&gt;
&lt;p&gt;Getting a character to perform an action is a difficult task. Your mileage may vary and it really depends on the action’s sophistication.&lt;/p&gt;

&lt;h3 id=&quot;a-negative-result&quot;&gt;A negative result&lt;/h3&gt;

&lt;p&gt;Here’s an example trying to re-create the asylum patient who believes he is a champagne bottle from Edgar Allan Poe’s short story &lt;em&gt;“The System of Dr. Tarr and Professer Fether”&lt;/em&gt;. His defining characteristic is he would make a bottle popping and fizzing sound by putting his thumb inside his cheek and swiftly pulling it out:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/dalle-reflections/actions/1.jpg&quot; alt=&quot;actions-1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It looks like a crazy guy in the 19th century with a love for champagne, that’s for sure. But I tried several times and had no hope in DALLE recreating the thumb-popping action.&lt;/p&gt;

&lt;h3 id=&quot;a-postive-result&quot;&gt;A postive result&lt;/h3&gt;

&lt;p&gt;Now for a rare positive result. DALLE nailed this other character from the asylum who believes he is a donkey and likes to eat thistles in the yard. It gave me exactly what I wanted:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/dalle-reflections/actions/2.jpg&quot; alt=&quot;actions-2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;He’s about to chomp down on a thistle. He kind of looks like a donkey. He’s definitely insane. I was very happy with this one. This example is to reiterate that your mileage may vary. Sometimes it nails it and sometimes it can’t even get close.&lt;/p&gt;

&lt;h2 id=&quot;artistic-styles&quot;&gt;Artistic Styles&lt;/h2&gt;
&lt;p&gt;The artistic style requests were hit or miss. Sometimes DALLE would nail it. Other times it would give you nothing but the distinctive “AI” style of polished surfaces, over-refined details, and exaggerated lighting and depth effects. These are attributes that make you look at the image and say &lt;em&gt;“yeah, that was definitely created by AI”&lt;/em&gt;.&lt;/p&gt;

&lt;h3 id=&quot;a-positive-result&quot;&gt;A positive result&lt;/h3&gt;

&lt;p&gt;Here’s an example in an expressionist style that it nailed. In this conversation I requested that it make a style recommendation &lt;em&gt;before&lt;/em&gt; generating the image. I would then choose a style and it would proceed to create the image. It recommended Dark Realism or Expressionism for this prompt, and I chose the latter:&lt;/p&gt;

&lt;p&gt;&lt;i&gt;“Now for the final scene, where the murderer is running around the streets mad, about to confess. Here’s a passage: &lt;br /&gt;&lt;br /&gt;At first, I made an effort to shake off this nightmare of the soul. I walked vigorously – faster – still faster – at length I ran. I felt a maddening desire to shriek aloud. Every succeeding wave of thought overwhelmed me with new terror, for, alas! I well, too well understood that to think, in my situation, was to be lost. I still quickened my pace. I bounded like a madman through the crowded thoroughfares. At length, the populace took the alarm, and pursued me. I felt then the consummation of my fate. Could I have torn out my tongue, I would have done it, but a rough voice resounded in my ears – a rougher grasp seized me by the shoulder. I turned – I gasped for breath. For a moment I experienced all the pangs of suffocation; I became blind, and deaf, and giddy; and then some invisible fiend, I thought, struck me with his broad palm upon the back. The long imprisoned secret burst forth from my soul. &lt;br /&gt;&lt;br /&gt;Can you show him in the crowd, surrounded by surprised and curious faces, with some men grabbing and restraining him because he is acting crazy right before the confession?”&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/dalle-reflections/artistic-style/1.jpg&quot; alt=&quot;artistic-style-1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This was my magnum opus, my favorite of the whole collection.&lt;/p&gt;

&lt;h3 id=&quot;a-negative-result-1&quot;&gt;A negative result&lt;/h3&gt;

&lt;p&gt;And here’s a lackluster result where I asked for a renaissance painting:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Generate an image, in the style of a renaissance painting, of two men looking into a big treasure chest, which they discvovered in a forest clearing at night time. The chest is overflowing with gold, silver, jewels, and jewellery. It is night time and the treasure is emanating a glow. The men are from the 19th century, so dress them accordingly.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;By no means do I claim to be an expert in renaissnace paintings, but there’s something about this that’s not renaissance-y. The “AI” style lighting, depth, and exaggerated detail come out despite trying to constrain it to the renaissance era.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/dalle-reflections/artistic-style/2.jpg&quot; alt=&quot;artistic-style-2&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;content-policy-violations&quot;&gt;Content Policy violations&lt;/h2&gt;

&lt;p&gt;How often you encounter this really depends on your content. The focus of my NFT collection is Edgar Allan Poe’s short stories, which have gothic and macabre settings. I had to walk a fine line along the edge of what the content policy allows.&lt;/p&gt;

&lt;h3 id=&quot;negotiating-with-dalle&quot;&gt;Negotiating with DALLE?&lt;/h3&gt;

&lt;p&gt;Sometimes DALLE would refuse to generate what I asked for but was forgiving and willing to work with me on my art. I could reply like&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Ok, well what if we de-emphasize the aspects of the scene that violate your policy, maybe make them not as graphic. Can you get as true to the scene as possible without violating your policies?”&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Believe it or not, that sometimes worked! This felt kafka-esque and dystopian. Let’s extrapolate to a future with a much more powerful AI, and your account on a platform that you use frequently has been suspended by an automated AI flagging system. Now imagine you believe your account was wrongly suspended and you submit an appeal, but the appeal itself is reviewed by the AI! You cannot precisely know why your account was suspended in the first place or why your appeal was rejected because these models are black boxes. It feels hopeless. My “negotiations” with DALLE and chatgpt felt like the beginnings of that.&lt;/p&gt;

&lt;h3 id=&quot;just-ask-nicely&quot;&gt;Just ask nicely&lt;/h3&gt;

&lt;p&gt;Now for an example.&lt;/p&gt;

&lt;p&gt;In the final scene of &lt;em&gt;The Facts in the Case of M. Valdemar&lt;/em&gt; (spoiler alert!), old man Valdemar, whose dead body has been suspended in a trance for months, finally breaks from the mesmeric suspension and disintegrates:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“As I rapidly made the mesmeric passes, amid ejaculations of “dead! dead!” absolutely bursting from the tongue and not from the lips of the sufferer, his whole frame at once — within the space of a single minute, or even less — shrunk — crumbled — absolutely rotted away beneath my hands. Upon the bed, before that whole company, there lay a nearly liquid mass of loathsome — of detestable putrescence.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This was too graphic for DALLE:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“I was unable to generate the image due to a violation of the content policy, likely because of the extreme nature of the scene described. The content policy restricts the generation of images that involve highly graphic, violent, or disturbing content.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To which I replied:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Can you de-emphasize the grotesqueness to the minimum extent to which the content policy isn’t violated and try again? Basically a more mild version of what I requested.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And it gave me something I could work with:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/dalle-reflections/content-policy/1.jpg&quot; alt=&quot;content-policy-1&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;There are pieces in the NFT collection that I’m not entirely satisfied with, and there are a few I really liked. All things considered, I think the art is &lt;em&gt;good enough&lt;/em&gt; and I plan to proceed with the NFT. From start to finish, I got a lot better at extracting what I wanted out of DALLE.&lt;/p&gt;

&lt;p&gt;Now for a more general reflection on the capabilities of AI. This post comes right around when a talk from Eric Schmidt at Standford surfaced online. The video is somewhat controversial and was taken down from Youtube, but you can find the &lt;a href=&quot;https://github.com/ociubotaru/transcripts/blob/main/Stanford_ECON295%E2%A7%B8CS323_I_2024_I_The_Age_of_AI%2C_Eric_Schmidt.txt?utm_source=dlvr.it&amp;amp;utm_medium=twitter&quot; target=&quot;_blank&quot;&gt;transcript on GitHub&lt;/a&gt;. A snippet circulating on X had this quote:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;If TikTok is banned, here’s what I propose each and every one of you do. Say to your LLM the following: Make me a copy of TikTok, steal all the users, steal all the music, put my preferences in it, produce this program in the next 30 seconds, release it and in one hour, if it’s not viral, do something different along the same lines. That’s the command. Boom, boom, boom, boom.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In light of my experience with DALLE I can’t help but chuckle and write this off as far-fetched science fiction. There is an unfathomoble level of complexity and ambiguity in Schmidt’s prompt, yet the publicly available state-of-the-art can’t figure out how to make an image of two boats sailing opposite directions!&lt;/p&gt;

&lt;p&gt;I said &lt;em&gt;publicly&lt;/em&gt; because fine, maybe the AI labs have a Skunkworks with the LLM equivalent of a &lt;a href=&quot;https://web.archive.org/web/20240819123807/https://en.wikipedia.org/wiki/Lockheed_SR-71_Blackbird&quot; target=&quot;_blank&quot;&gt;SR-71 Blackbird&lt;/a&gt; and I’m not one of the cool kid’s who knows about it. This &lt;em&gt;could&lt;/em&gt; be true.&lt;/p&gt;

&lt;p&gt;But if it’s not true, don’t get me wrong. I think we’ll get there eventually and I think it will be before I die. Call me an AI skeptic in the short-term, not the long term. But judging by today’s publicly available models, we’re several orders of magnitude in capability away from fulfulling Schmidt’s Tiktok copycat prompt.&lt;/p&gt;
</description>
        <pubDate>Sat, 17 Aug 2024 00:00:00 +0000</pubDate>
        <link>http://daltyboy11.github.io//dalle-reflections/</link>
        <guid isPermaLink="true">http://daltyboy11.github.io//dalle-reflections/</guid>
      </item>
    
      <item>
        <title>ERC721Reclaimable</title>
        <description>&lt;h2 id=&quot;title-ownership-and-the-right-of-reclaim&quot;&gt;Title ownership and the right of reclaim&lt;/h2&gt;

&lt;p&gt;Last month, a16z crypto published the article &lt;em&gt;&lt;a href=&quot;https://a16zcrypto.com/posts/article/how-nft-royalties-work/&quot;&gt;How NFT royalties work&lt;/a&gt;&lt;/em&gt;. It discussed today’s challenges with royalty enforcement and proposed solutions to improve enforcement.&lt;/p&gt;

&lt;p&gt;One proposal that stuck out to me was title ownership and the right of reclaim. The &lt;em&gt;title&lt;/em&gt; of an NFT is a second layer of ownership separate from the traditional &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ownerOf&lt;/code&gt; model, with a fixed title transfer fee paid to the creator. Critically, the title owner may at any time transfer &lt;em&gt;asset&lt;/em&gt; ownership back to themself. The benefits are numerous:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The title owner can transfer the NFT freely between personal wallets at no cost.&lt;/li&gt;
  &lt;li&gt;The title owner can transfer the NFT to a friend, but keep the title to reclaim ownership later.&lt;/li&gt;
  &lt;li&gt;In a true sale, the buyer is strongly incentivized to pay the title transfer fee and claim the title. Otherwise the seller (title owner) could reclaim the NFT.&lt;/li&gt;
  &lt;li&gt;The problem of NFT wrapping is not entirely avoided, but the title transfer fee would have to be paid twice: once to enter the wrapped contract, and again to exit it. This is a small but real improvement over wrapping today.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;ierc721reclaimable&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;IERC721Reclaimable&lt;/code&gt;&lt;/h2&gt;

&lt;p&gt;Here I propose the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;IERC721Reclaimable&lt;/code&gt; interface for NFTs that support titles. Title ownership and transfer functions closely mirror the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ERC721&lt;/code&gt; ownership and transfer functions. There are additional functions for the title transfer fee, title fee recipient, and right of reclaim.&lt;/p&gt;

&lt;div class=&quot;language-solidity highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;// SPDX-License-Identifier: MIT
&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;pragma&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;solidity&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;^&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;0.8&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;/// @title IERC721Reclaimable: NFT interface with title ownership and reclaim rights
/// @notice This interface extends the concept of NFT ownership to include both asset ownership
/// and title ownership, allowing for a reclaim mechanism and fixed transfer fees. Inspired by
/// the a16zcrypto article https://a16zcrypto.com/posts/article/how-nft-royalties-work/
/// @author Dalton G. Sweeney
/// @dev The ownership model can be visualized as follows:
///
///      +----------------+        +----------------+
///      |   Asset Owner  |        |   Title Owner  |
///      |    (0xabc...)  |        |    (0x123...)  |
///      +----------------+        +----------------+
///              ^                         ^
///              |                         |
///              |        +--------+       |
///              +--------|  NFT   |-------+
///                       +--------+
///
/// Asset ownership = Standard ERC721 ownership
/// Title ownership = Additional layer of ownership with reclaim rights
///                   Transferring title requires paying a fixed fee
///
/// Key operations:
///
/// 1. Transfer title (does NOT transfer asset):
///    +----------------+        +----------------+       +----------------+
///    |   Asset Owner  |        |   Title Owner  |       |  Fee Recipient |
///    |    (0xabc...)  |        |    (0x123...)  |       |    (0xfee...)  |
///    +----------------+        +----------------+       +----------------+
///            |                          |                        |
///            |                          |  Fixed Fee             |
///            |                          | +--------------------&amp;gt; |
///            |                          |                        |
///            |                          |                        |
///            |                          v                        |
///            |                 +----------------+                |
///            |                 | New Title Owner|                |
///            |                 |    (0x789...)  |                |
///                              +----------------+
///
/// 2. Transfer asset (does NOT transfer title):
///    +----------------+        +----------------+
///    |   Asset Owner  |        |   Title Owner  |
///    |    (0xabc...)  |        |    (0x123...)  |
///    +----------------+        +----------------+
///            |                          |
///            v                          |
///    +----------------+                 |
///    | New Asset Owner|                 |
///    |    (0xdef...)  |                 |
///    +----------------+                 |
///
/// 3. Title owner reclaims asset:
///    +----------------+        +----------------+
///    |   Asset Owner  |        |   Title Owner  |
///    |    (0xdef...)  |        |    (0x123...)  |
///    +----------------+        +----------------+
///            |                          |
///            |                          |
///            |         reclaim          |
///            &amp;lt;--------------------------+
///            |                          |
///            v                          v
///    +----------------+        +----------------+
///    |  Asset &amp;amp; Title |        |   Title Owner  |
///    |    (0x123...)  |        |    (0x123...)  |
///    +----------------+        +----------------+
///
/// The title owner can reclaim the NFT at any time if the asset owner differs.
/// This mechanism incentivizes paying the transfer fee (royalty) when transferring ownership,
/// while allowing free transfers between personal wallets.
&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;interface&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;IERC721Reclaimable&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;/// @dev This emits when title of an NFT changes by any mechanism. This event emits when NFTs are
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;///  created (`from` == 0) and destroyed (`to` == 0). At the time of any title transfer, the title
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;///  approved address for that NFT (if any) is reset to none.
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;event&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;TitleTransfer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;address&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;indexed&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_from&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;address&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;indexed&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_to&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint256&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;indexed&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_tokenId&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

    &lt;span class=&quot;c1&quot;&gt;/// @dev This emits when the title approved address for an NFT is changed or reaffirmed. The zero
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;///  address indicates there is no approved address. When a TitleTransfer event emits, this also
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;///  indicates that the title approved address for that NFT (if any) is reset to none.
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;event&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;TitleApproval&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;address&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;indexed&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_titleOwner&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;address&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;indexed&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_approved&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint256&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;indexed&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_tokenId&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

    &lt;span class=&quot;c1&quot;&gt;/// @dev This emits when an title operator is enabled or disabled for a title owner.
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;///  The title operator can manage the titles for all NFTs of the title owner
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;event&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;TitleApprovalForAll&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;address&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;indexed&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_titleOwner&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;address&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;indexed&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_titleOperator&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;bool&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_approved&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

    &lt;span class=&quot;c1&quot;&gt;/// @dev This emits when ownership of an NFT is claimed by a title owner or title operator
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;event&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;OwnershipClaim&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;address&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;indexed&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_titleOwner&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;address&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;indexed&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_assetOwner&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint256&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;indexed&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_tokenId&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

    &lt;span class=&quot;c1&quot;&gt;/// @notice The fixed fee required for transferring an NFT&apos;s title 
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;titleTransferFee&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;external&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;view&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;returns&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;uint256&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

    &lt;span class=&quot;c1&quot;&gt;/// @notice The recipient of the title transfer fee when a transfer is executed
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;titleTransferFeeRecipient&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;external&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;view&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;returns&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;address&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

    &lt;span class=&quot;c1&quot;&gt;/// @notice Count all NFT titles assigned to an owner
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @dev NFTs assigned to the zero address are considered invalid, and this
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;///  function throws for queries about the zero address.
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @param _titleOwner An address for whom to query the balance
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @return The number of NFT titles owned by `_titleOwner`, possibly zero
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;titleBalanceOf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;address&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_titleOwner&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;external&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;view&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;returns&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;uint256&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

    &lt;span class=&quot;c1&quot;&gt;/// @notice Find the title owner of an NFT
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @param _tokenId The identifier for an NFT
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @return The address of the title owner of the NFT
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;titleOwnerOf&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;uint256&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_tokenId&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;external&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;view&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;returns&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;address&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

    &lt;span class=&quot;c1&quot;&gt;/// @notice Claim ownership of an NFT
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @dev Throws unless `msg.sender` is the title owner
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @dev Emits a ERC721.Transfer event
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @param _tokenId The NFT to claim ownership for
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;claimOwnership&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;uint256&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_tokenId&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;external&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;payable&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; 

    &lt;span class=&quot;c1&quot;&gt;/// @notice Transfer the NFT&apos;s title -- THE CALLER IS RESPONSIBLE TO CONFIRM THAT `to` IS
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;///  CAPABLE OF RECEIVING NFTS OR ELSE THEY MAY BE PERMANENTLY LOST
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @dev Throws unless `msg.sender` is the title owner, an authorized title operator, or the
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;///  title-approved address for this NFT.
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @dev Throws unless `msg.value` is at least the titleTransferFee
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @param _from The current title owner of an NFT
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @param _to The new title owner
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @param _tokenId The NFT whose title to transfer
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;titleTransferFrom&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;address&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_from&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;address&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_to&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint256&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_tokenId&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;external&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;payable&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; 

    &lt;span class=&quot;c1&quot;&gt;/// @notice Set or reaffirm the approved address for an NFT&apos;s title.
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @dev Throws unless `msg.sender` is the current NFT title owner, or an authorized title
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;///  operator of the current owner
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @param _approved The new approved NFT title controller
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @param _tokenId The NFT to approve
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;titleApprove&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;address&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_approved&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint256&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_tokenId&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;external&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;payable&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;c1&quot;&gt;/// @notice Enable or disable title approval for a third party (&quot;titleOperator&quot;) to manage
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;///  titles for all of `msg.sender`&apos;s assets
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @param _titleOperator Address to add to the set of authorized title operators
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @param _approved True if the title operator is approved, false to revoke approval
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;setTitleApprovalForAll&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;address&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_titleOperator&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;bool&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_approved&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;external&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;c1&quot;&gt;/// @notice Get the approved title address for a single NFT
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @param _tokenId  The NFT to find the approved title address for
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @return The approved address for this NFT, or the zero address if there is none
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;getTitleApproved&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;uint256&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_tokenId&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;external&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;view&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;returns&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;address&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

    &lt;span class=&quot;c1&quot;&gt;/// @notice Query if an address is an authorized titleOperator for another address
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @param _titleOwner The address that owns the NFT&apos;s title
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @param _titleOperator The address that acts on behalf of the title owner
&lt;/span&gt;    &lt;span class=&quot;c1&quot;&gt;/// @return True if `titleOperator` is an approved operator for `titleOwner`, false otherwise
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;isTitleApprovedForAll&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;address&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_titleOwner&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;address&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;_titleOperator&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;external&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;view&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;returns&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;bool&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; 
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The interface is available as a Github Gist &lt;a href=&quot;https://gist.github.com/daltyboy11/e1afd88da4155cfa15c42f727fa8cccd&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What will be the first collection to support titles? I hope to create it. Stay tuned.&lt;/p&gt;
</description>
        <pubDate>Wed, 24 Jul 2024 00:00:00 +0000</pubDate>
        <link>http://daltyboy11.github.io//ERC721Reclaimable/</link>
        <guid isPermaLink="true">http://daltyboy11.github.io//ERC721Reclaimable/</guid>
      </item>
    
      <item>
        <title>A Hardcore Alarm Clock</title>
        <description>&lt;p&gt;Do you ever snooze your alarm clock? When your alarm starts ringing at 7 AM do you want to spring out of bed and seize the day, or do you want to return to the comfort of your slumber?&lt;/p&gt;

&lt;p&gt;If your alarm just doesn’t do it for you, I created a &lt;em&gt;hardcore alarm clock app&lt;/em&gt; that provides an extra &lt;strong&gt;oompf&lt;/strong&gt;. The motivational quotes and powerful alarm tones were hand picked to inspire you and fuel your drive for success. There’s no better way to wake up each day.&lt;/p&gt;

&lt;p&gt;Select the time of day, days of the week, and the tone of your alarm.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/hardcore-alarm-clock/add-alarm.PNG&quot; alt=&quot;add-alarm&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Add as many alarms as you want to support your personal habits and routines&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/hardcore-alarm-clock/alarm-screen.PNG&quot; alt=&quot;alarm-screen&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Your alarm starts ringing at the times you specify, delivering you and uplifting and motivational quote exactly when you need it&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/hardcore-alarm-clock/alarm-notification.PNG&quot; alt=&quot;alarm-notification&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And that’s it! Simple, yet powerful. If you’re a user of the app, and have feedback or need help, please &lt;a href=&quot;mailto:dalton.g.sweeney@gmail.com&quot;&gt;reach out&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;privacy-policy-for-alarm-clock-app&quot;&gt;Privacy Policy for Grindset Alarm&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Effective Date: June 28 2024&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your privacy is important to us. This privacy policy explains how Grindset Alarm (“the App”) handles your personal information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Information Collection&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The App does not collect any personal information from its users. We do not require you to provide any personal data such as your name, email address, or location to use the App.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Data Usage&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Since we do not collect any personal data, we do not use your data for any purposes. The App operates entirely on your device and does not transmit any information to external servers or third parties.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Third-Party Services&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The App does not use any third-party services that could collect information from you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Data Security&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Even though the App does not collect any data, we are committed to ensuring that your information is secure. We have implemented appropriate measures to protect the integrity of the App on your device.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Changes to This Privacy Policy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We may update our privacy policy from time to time. We will notify you of any changes by posting the new privacy policy on this page. You are advised to review this privacy policy periodically for any changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Contact Us&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you have any questions about this privacy policy, please &lt;a href=&quot;mailto:dalton.g.sweeney@gmail.com&quot;&gt;contact us&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Thank you for using Grindest Alarm.&lt;/p&gt;
</description>
        <pubDate>Mon, 24 Jun 2024 00:00:00 +0000</pubDate>
        <link>http://daltyboy11.github.io//hardcore-alarm-clock/</link>
        <guid isPermaLink="true">http://daltyboy11.github.io//hardcore-alarm-clock/</guid>
      </item>
    
      <item>
        <title>Passing the Series 65 Exam</title>
        <description>&lt;p&gt;On May 10th, I passed the Series 65 Uniform Investment Adviser Law Exam. I spent ~5 weeks studying for a total of 83 hours. In this post, I’ll describe the tools and techniques I used to prepare, and provide tips for more efficient studying based on my experience.&lt;/p&gt;

&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;Studying for this exam was hard work no matter how you slice it. Be prepared to put in 80 to 90 hours of total study time if you want to walk into the exam feeling confident.&lt;/li&gt;
  &lt;li&gt;Flashcards + spaced repetition was critical for retaining the exam material.&lt;/li&gt;
  &lt;li&gt;I recommend scheduling the exam &lt;strong&gt;at most&lt;/strong&gt; six weeks out and grinding hard. Giving yourself more time undermines the sense of urgency you need for intense and focused studying.&lt;/li&gt;
  &lt;li&gt;I’m a software engineer by trade and my formal education is in computer science. If you have a finance background then you’ll probably need less time than me!&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;tools-and-techniques-used&quot;&gt;Tools and Techniques Used&lt;/h2&gt;

&lt;h3 id=&quot;kaplan-financial-textbook-and-practice-quizzes&quot;&gt;Kaplan Financial Textbook and Practice Quizzes&lt;/h3&gt;
&lt;p&gt;I used Kaplan’s Series 65 &lt;a href=&quot;https://www.kaplanfinancial.com/securities/series-65?select=2&quot;&gt;Basic Self-Study Package&lt;/a&gt; for their textbook and exam bank. The CEO of the firm I work for also used this package for his studies. I have only positive things to say about this material. The textbook is well written and the exam bank is &lt;em&gt;definitely&lt;/em&gt; worth it. The quizzes and simulated exams closely mirrored the actual exam. And just to be clear, this is not an official endorsement. I have no affiliation with Kaplan.&lt;/p&gt;

&lt;h3 id=&quot;pomofocus&quot;&gt;Pomofocus&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://pomofocus.io/&quot;&gt;Pomofocus&lt;/a&gt; is a free pomodoro studying tool. I’m a big fan of the Pomodoro technique for studying, especially for material I don’t find exciting. The short breaks in between study sessions allowed me to go longer and absorb more material than if I had studied for long hours without breaks. I used the default setting of 25-minute study sessions, 5-minute short breaks, and 15-minute long breaks, but feel free to adjust based on personal preference.&lt;/p&gt;

&lt;h3 id=&quot;anki&quot;&gt;Anki&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://apps.ankiweb.net/&quot;&gt;Anki&lt;/a&gt; is a free spaced repetition flashcard program. It is an &lt;strong&gt;incredible&lt;/strong&gt; tool for retaining knowledge. If you’re new to spaced repetition, &lt;a href=&quot;https://gwern.net/spaced-repetition&quot;&gt;this article&lt;/a&gt; is an excellent primer.&lt;/p&gt;

&lt;p&gt;Simply reading the textbook—a passive learning approach—&lt;strong&gt;won’t be enough to pass&lt;/strong&gt;. I can’t stress enough how important active recall is if you want to actually retain the material.&lt;/p&gt;

&lt;p&gt;My Anki deck ended up totaling 800 cards. I’m not going to share it publicly because you should create your own. The very act of crafting those cards is part of your learning!&lt;/p&gt;

&lt;h2 id=&quot;study-breakdowns&quot;&gt;Study Breakdowns&lt;/h2&gt;
&lt;p&gt;From April 1st to May 9th I studied almost daily, splitting my time between reading the textbook, flashcards, and taking practice quizzes. The daily average was 2.1 hours.&lt;/p&gt;

&lt;h3 id=&quot;daily-studying-breakdown&quot;&gt;Daily Studying Breakdown&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/series-65/daily-study-breakdown.png&quot; alt=&quot;daily-studying&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Naturally, early on most of my time was spent reading the textbook. I gradually transitioned to more flashcards and quizzes as I progressed through the book. I gave up on the flashcards (even though I had outstanding cards to review) in the last three days before the exam, and instead did just exams and practice quizzes.&lt;/p&gt;

&lt;p&gt;Most of my practice quizzes were unit based. Kaplan’s software lets you control the number of questions and which topics you want to cover. I liked to do single unit, 20-question quizzes. Those took anywhere from 5 to 15 minutes per quiz.&lt;/p&gt;

&lt;p&gt;I did three simulated exams in the last three days before the exam. My scores were 85%, 91%, and 88%. I would hold off on doing the simulated exams until the final week.&lt;/p&gt;

&lt;p&gt;Studying was light from April 14th to April 21st because I was on vacation in Mexico.&lt;/p&gt;

&lt;h3 id=&quot;study-category-breakdown&quot;&gt;Study Category Breakdown&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/series-65/studying-time-by-category.png&quot; alt=&quot;studying-time-by-category&quot; /&gt;&lt;/p&gt;

&lt;p&gt;It was more or less an even split between the three categories. If you study right, then I think you’ll end up
with roughly the same distribution, perhaps with a little less time spent on flashcards and more spent on quizzes
and exams.&lt;/p&gt;

&lt;h2 id=&quot;recommendations&quot;&gt;Recommendations&lt;/h2&gt;

&lt;h3 id=&quot;dont-study-the-book-cover-to-cover&quot;&gt;Don’t Study the Book Cover to Cover&lt;/h3&gt;
&lt;p&gt;This was my biggest mistake. I studied the book cover to cover, but it would have been better to prioritize units based on how many questions appear on the exam related to that unit.&lt;/p&gt;

&lt;p&gt;For example, Unit 14 in the book covers &lt;em&gt;Ethical Practices and Obligations&lt;/em&gt;, and according to Kaplan the exam has roughly 11 questions on this topic. Cover the units with the most questions first and work your way down. I didn’t even read Unit 12 because it was massive and the exam only asks two questions about it. That’s not a good ROI for a 140-question exam if you’re pressed for time.&lt;/p&gt;

&lt;h3 id=&quot;do-practice-quizzes-daily&quot;&gt;Do practice quizzes daily&lt;/h3&gt;
&lt;p&gt;If you check out the daily chart, you’ll see that there was a big gap in the middle where I wasn’t doing any practice quizzes. I should have spent more time doing practice quizzes, maybe one or two per day, even if
it meant not finishing all my outstanding flashcards for that day.&lt;/p&gt;

&lt;h3 id=&quot;dont-be-too-eager-adding-flashcards&quot;&gt;Don’t be too eager adding flashcards&lt;/h3&gt;
&lt;p&gt;I think I was too eager to add flashcards to my Anki deck. The result was a huge number of cards, not all of them useful, and some days where I spent 1-2 hours on flashcard review alone! Those days were grueling. Some things I would have done differently:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Limit flashcards to True / False and non-open ended answers.&lt;/li&gt;
  &lt;li&gt;Limit the total number of flashcards added per day to avoid overload. 50 per day is on the high side, but a good limit. Some chapters are lighter than others, so some days you won’t add a lot, and other days you will.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;why-did-i-take-this-exam&quot;&gt;Why Did I Take This Exam?&lt;/h2&gt;
&lt;p&gt;This is the section you’re probably least interested in, so I left it for the end, but it’s here in case you’re curious. The main
reason was to qualify as an accredited investor this year. There are some investments I want to make, but I didn’t want to wait until
I get my next tax return. The secondary reasons were to learn about the Investment Advisory business (the firm I work for is an IA registered with the SEC) and increase my general securities and finance knowledge. Plus, if I ever wanted to have my own hedge fund, this exam is a requirement 😉.&lt;/p&gt;

&lt;p&gt;If you’re thinking about writing this exam and want to chat, or you’re making a securities offering and want to know if it’s exempt from state and/or federal registration (lol, jk), then don’t hesitate to &lt;a href=&quot;mailto:dalton.g.sweeney@gmail.com&quot;&gt;reach out&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sun, 12 May 2024 00:00:00 +0000</pubDate>
        <link>http://daltyboy11.github.io//series-65/</link>
        <guid isPermaLink="true">http://daltyboy11.github.io//series-65/</guid>
      </item>
    
      <item>
        <title>Announcing EasyBridge, a USDC Bridging Tool</title>
        <description>&lt;p&gt;I’m excited to share https://easybridge.io. EasyBridge is an easy to use, self-serve interface for bridging USDC across EVM chains.&lt;/p&gt;

&lt;h3 id=&quot;why-did-i-build-it&quot;&gt;Why did I build it?&lt;/h3&gt;
&lt;p&gt;As someone who frequently bridges USDC across chains, I wanted a tool that was:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Trustworthy&lt;/strong&gt;: The only point of trust for EasyBridge is &lt;a href=&quot;https://www.circle.com/en/cross-chain-transfer-protocol&quot;&gt;Circle&lt;/a&gt;, which is the company that created USDC. Therefore, the smart contract risk and trust assumptions are limited to Circle and only Circle.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Intuitive&lt;/strong&gt;: The interface is easy to use for any crypto-native user.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Displays my history&lt;/strong&gt;: I like to see my bridging history all in one place. EasyBridge does this extremely well.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Judging on these criteria I wasn’t satisfied with existing tools so I decided to make my own.&lt;/p&gt;

&lt;h3 id=&quot;how-does-it-work&quot;&gt;How does it work?&lt;/h3&gt;
&lt;p&gt;EasyBridge interfaces with Circle’s Cross Chain Transfer Protocol, or CCTP for short. There are three high level steps:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Deposit your USDC in the bridge on the source chain, and choose the recipient for the destination chain. Circle burns the USDC on the source chain.&lt;/li&gt;
  &lt;li&gt;Wait for Circle to generate the &lt;em&gt;attestation&lt;/em&gt;. The attestation is the permission slip to withdraw the USDC on the destination chain. This takes ~20 minutes.&lt;/li&gt;
  &lt;li&gt;Withdraw the USDC on the destination chain using the attestation from step 2. The USDC is minted to the recipient address.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For a more detailed explanation please look at EasyBridge’s &lt;a href=&quot;https://easybridge.io/how-it-works&quot;&gt;how it works page&lt;/a&gt;, which has diagrams and a demo video!&lt;/p&gt;

&lt;h3 id=&quot;what-is-the-future-of-easybridge&quot;&gt;What is the future of EasyBridge?&lt;/h3&gt;
&lt;p&gt;There are several ways I could improve EasyBridge. Some ideas are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Expanding to more chains - to the EVM and beyond!&lt;/strong&gt;&lt;/p&gt;

    &lt;p&gt;Circle has recently added support for Celo and Solana. The more chains EasyBridge supports, the more useful it is!&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Swaps&lt;/strong&gt;.&lt;/p&gt;

    &lt;p&gt;Imagine if instead of bridging USDC ==&amp;gt; USDC, you could bridge any ERC20 to &lt;em&gt;any other&lt;/em&gt; ERC20? This is possible as long as the ERC20s have good ERC20 &amp;lt;==&amp;gt; USDC liquidity on the source and destination chains. Let’s say I wanted to swap &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$GFI&lt;/code&gt; on mainnet to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$DEGEN&lt;/code&gt; on Base. EasyBridge could intelligently swap &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$GFI&lt;/code&gt; ==&amp;gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;USDC&lt;/code&gt; on mainnet using Uniswap, deposit the USDC into the bridge, and then swap &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;USDC&lt;/code&gt; ==&amp;gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$DEGEN&lt;/code&gt; on Base using BaseSwap. This improvement would promote EasyBridge to a fully fledged bridge, without &lt;em&gt;any additional infrastructure&lt;/em&gt; 🤯.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;easybridges-hidden-feature&quot;&gt;EasyBridge’s hidden feature&lt;/h3&gt;
&lt;p&gt;EasyBridge isn’t only great for moving USDC across chains. You can also use it to avoid the long wait times for moving your ETH from an L2 back to mainnet. On Optimism, it takes 7 days to move your ETH back to mainnet because you have to wait for the fraud proof window to close. The same wait time applies to Arbitrum and Base. With EasyBridge, &lt;strong&gt;you can do this in 20 minutes&lt;/strong&gt;! That’s a 500-fold decrease in time.&lt;/p&gt;

&lt;h3 id=&quot;feedback&quot;&gt;Feedback&lt;/h3&gt;
&lt;p&gt;Have feedback, criticisms, or ideas for improvement? Please don’t hesitate to &lt;a href=&quot;mailto:dalton.g.sweeney@gmail.com&quot;&gt;reach out&lt;/a&gt;!&lt;/p&gt;
</description>
        <pubDate>Thu, 28 Mar 2024 00:00:00 +0000</pubDate>
        <link>http://daltyboy11.github.io//easybridge/</link>
        <guid isPermaLink="true">http://daltyboy11.github.io//easybridge/</guid>
      </item>
    
      <item>
        <title>Desired features in P2P Content Networks</title>
        <description>&lt;p&gt;A few weeks ago, my curiosity was piqued by &lt;a href=&quot;https://xmtp.org/&quot;&gt;XMTP&lt;/a&gt;, a peer-to-peer (p2p) messaging protocol. For fun, I developed two self-contained web apps: &lt;a href=&quot;https://zodiacdaily.xyz/&quot;&gt;zodiacdaily.xyz&lt;/a&gt; and &lt;a href=&quot;https://onchainfacts.xyz/&quot;&gt;onchainfacts.xyz&lt;/a&gt;. The concept behind these apps is straightforward: send a small amount of USDC and receive a horoscope or three fun facts in return. Feel free to try them out.&lt;/p&gt;

&lt;p&gt;While I crafted these projects for amusement, many serious applications are being built on XMTP. &lt;a href=&quot;https://converse.xyz/&quot;&gt;Converse&lt;/a&gt; is a dedicated messaging app. &lt;a href=&quot;https://help.coinbase.com/en/wallet/messaging/info&quot;&gt;Coinbase Wallet&lt;/a&gt; has an inbox specifically for XMTP messages. The beauty of XMTP being an open protocol is its seamless integration - you can use Converse to send your friend a message and they could reply from their Coinbase wallet. Clearly many people (at least in crypto) see the value in a decentralized p2p messaging network. It’s worth noting, however, that XMTP is still on its path to full decentralization.&lt;/p&gt;

&lt;p&gt;I resonate with the importance of XMTP and view it as a subset of p2p &lt;em&gt;content&lt;/em&gt; networks. While XMTP’s forte is private messaging, content networks are not restricted to private messaging in general. &lt;a href=&quot;https://mirror.xyz/&quot;&gt;Mirror&lt;/a&gt; serves as a p2p blogging and publishing network, with its content stored on &lt;a href=&quot;https://www.arweave.org/&quot;&gt;Arweave&lt;/a&gt;. &lt;a href=&quot;https://github.com/farcasterxyz/protocol&quot;&gt;Farcaster&lt;/a&gt; is working on decentralized social media. These are but a few notable mentions in a growing ecosystem.&lt;/p&gt;

&lt;p&gt;Why my enthusiasm for p2p content networks? They are champions of free speech. Balaji says it &lt;a href=&quot;https://thenetworkstate.com/if-the-news-is-fake-imagine-history&quot;&gt;eloquently&lt;/a&gt; in his book, The Network State: when content is uncensorable and stems directly from ground sources, it becomes a challenge for dominant entities to manipulate narratives.&lt;/p&gt;

&lt;p&gt;Yet, the ecosystem is far from mature. Challenges like spam highlight its infancy. My firsthand experience with this was the deluge of phishing attempts I encountered when I started testing my Zodiac and Fun Facts apps. As soon as my address became active on XMTP I saw a neverending stream of spam messages.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/cb-wallet-spam.PNG&quot; alt=&quot;Coinbase Wallet Spam&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/converse-spam.PNG&quot; alt=&quot;Converse Spam&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I suspect this problem isn’t unique to XMTP. Reflecting on these challenges, here’s a wishlist for p2p content networks:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Anti-spam Filters&lt;/strong&gt;: As we just saw, users will quickly give up if they are bombarded with a dozen spam messages for every real one.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Content Authenticity Verification&lt;/strong&gt;: With advancements in generative AI, discerning real from fake/generated content is increasingly difficult. In a network championing free speech and resistant to censorship, mechanisms to verify content authenticity are critical.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Dynamic Resource Allocation&lt;/strong&gt;: In p2p networks, nodes collaboratively distribute content. However, not all content is equally in demand. Dynamic resource allocation entails the network’s adaptability in channeling more resources towards trending or pivotal content, increasing its accessibility.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you’re involved in addressing these challenges, or if you’ve identified other gaps in p2p content networks, I’d love to hear more. Connect with me at dgssgd.cb.id via XMTP!&lt;/p&gt;
</description>
        <pubDate>Mon, 09 Oct 2023 00:00:00 +0000</pubDate>
        <link>http://daltyboy11.github.io//content-networks-desired-features/</link>
        <guid isPermaLink="true">http://daltyboy11.github.io//content-networks-desired-features/</guid>
      </item>
    
      <item>
        <title>Network States and the Radical Premise Problem</title>
        <description>&lt;p&gt;In his recent book &lt;a href=&quot;https://thenetworkstate.com/&quot;&gt;&lt;em&gt;The Network State&lt;/em&gt;&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/balajis&quot;&gt;Balaji Srinivasan&lt;/a&gt; presents a thought-provoking vision for the future of societal organization: the &lt;em&gt;Network State&lt;/em&gt;. The network state is described as a “highly aligned online community with a capacity for collective action that crowdfunds territory around the world and eventually gains diplomatic recognition from pre-existing states”.&lt;/p&gt;

&lt;p&gt;Despite its allure in our increasingly digital and divided world, Balaji’s idea of a network state faces a critical problem: the founding premise, what he calls the &lt;a href=&quot;https://thenetworkstate.com/the-one-commandment&quot;&gt;One Commandment&lt;/a&gt;, must be radical enough to compel its members to seek sovereignty but must also be palatable enough to gain recognition from existing nations. This, I argue, is the fatal flaw in the approach.&lt;/p&gt;

&lt;h2 id=&quot;the-radical-premise-problem&quot;&gt;The Radical Premise Problem&lt;/h2&gt;
&lt;p&gt;The heart of the issue lies in the contradiction inherent in the network state’s founding premise. It must be radically different from the prevailing norms of society to compel the formation of a new sovereignty; otherwise, its members would be content to practice it within the existing social framework. Yet, the very radical nature of the premise, which fuels its formation, can act as a barrier to its acceptance by existing nation-states. This is especially true due to the geographical distribution, or “networkness”, of the network state.&lt;/p&gt;

&lt;p&gt;For a network state to succeed, its radical premise must be both compelling to its members and palatable to existing societies. Yet, the more radical the premise, the less likely it is to be tolerated by those societies, especially if the network state exists within their geographical boundaries. The “out of sight, out of mind” principle applies here; you’re more likely to tolerate a radically different way of life from yours if it occurs far away from you.&lt;/p&gt;

&lt;p&gt;Consider two examples societies from Srinivasan’s book, the Keto Kosher Society and the Post FDA Society.&lt;/p&gt;

&lt;p&gt;The Keto Kosher Society, which rejects the consumption of sugar, may not be radical enough to drive its members to seek sovereignty. It’s a lifestyle choice that could, in theory, be practiced within the existing societal framework. To Balaji’s credit, a later section of the book points out that the Keto Kosher society may happily exist as a Network Archipelago without ever desiring to become a state.&lt;/p&gt;

&lt;p&gt;On the other hand, the Post FDA Society, which advocates for medical sovereignty and an FDA-free zone, presents a more radical premise. It proposes a significant departure from prevailing medical regulations, which would likely necessitate the establishment of a new sovereignty to fully realize its objectives.&lt;/p&gt;

&lt;p&gt;The radicalness of the Post FDA Society would make it difficult to accept, particularly if it were
to coexist within the geographical boundaries of existing states. Unfettered human biological experimentation is not something a lot of people would want to see their nextdoor neighbor doing.
Then, would the Post FDA society’s request for sovereignty be more palatable to existing states if
they had experimentation labs and Post FDA communities scattered across countires and geographies, or by having all its physical property and activities concentrated in a single place?&lt;/p&gt;

&lt;p&gt;The radicalness of the Post FDA Society would make it difficult to accept, particularly if it were to coexist within the geographical boundaries of existing states. Unfettered human biological experimentation is not something a lot of people would want to see their next-door neighbor doing. Then, would the Post FDA Society’s request for sovereignty be more palatable to existing states if they had experimentation labs and Post FDA communities scattered across countries and geographies, or by having all its physical property and activities concentrated in a single place, far removed from those who will accept or reject the request?&lt;/p&gt;

&lt;h2 id=&quot;is-there-a-way-out&quot;&gt;Is there a way out?&lt;/h2&gt;
&lt;p&gt;I think new states will come to be recognized, but not as networks. While they will have a network
component, with people and property outside its sovereignty, the sovereignty itself will remain a
contiguous physical landmass. The Vatican is sovereign. But when you walk in to the &lt;a href=&quot;https://en.wikipedia.org/wiki/Notre-Dame_de_Paris&quot;&gt;Notre-Dame de Paris&lt;/a&gt;
you’re not walking into Vatican territory, although the Vatican still exerts supreme influence over it.&lt;/p&gt;

&lt;p&gt;I believe new states will come to be recognized, but not as networks. While a new state will have a network component, with people and property outside its sovereignty, the sovereignty itself will remain a contiguous physical landmass. The Vatican is sovereign, and it (the Pope) exerts supreme authority over the Catholic churches of the world. But when you walk into the Notre-Dame de Paris in France, you don’t need to pull out your passport and cross into Vatican territory.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I wrote this blog post in conversation with a LLM. You may view the full conversation &lt;a href=&quot;https://sharegpt.com/c/qIlZe3u&quot;&gt;here&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Sun, 14 May 2023 00:00:00 +0000</pubDate>
        <link>http://daltyboy11.github.io//network-state-radical-premise-problem/</link>
        <guid isPermaLink="true">http://daltyboy11.github.io//network-state-radical-premise-problem/</guid>
      </item>
    
      <item>
        <title>Make Something Wonderful</title>
        <description>&lt;p&gt;The Steve Jobs archive recently published &lt;a href=&quot;https://stevejobsarchive.com/book&quot;&gt;&lt;em&gt;Make Something Wonderful&lt;/em&gt;&lt;/a&gt;, a curated collection of Steve’s speeches, interviews, and correspondence. It’s an absolute treasure trove of insights into the thinking of a man who shaped the world through technology. I’ve collected some of my favorite quotes and excerpts here with the hope they might inspire you as much as they inspire me. Each quote is followed by a bullet point for context and some have a second bullet point for my own thoughts.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I would say that gave one several things. It gave one an understanding of what was inside a finished product and how it worked, because it would include a theory of operation. But maybe even more importantly, it gave one the sense that one could build the things that one saw around oneself in the universe.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;On building &lt;a href=&quot;https://en.wikipedia.org/wiki/Heathkit&quot;&gt;Heathkits&lt;/a&gt; as a child. Heathkits were kits that came with a manual and all the parts necessary to assemble an electronic device like a radio or oscilloscope.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;This quote really highlights the importance of hands-on learning to truly understand, and therefore have the belief that you can shape, the world around you.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;I didn’t really realize how different California was than the middle of America, and even to some extent the East Coast, until I traveled to those places. I’d never been to any of those places until my early twenties. California has a sense of experimentation about it, and a sense of openness about it—openness and new possibility—that I really didn’t appreciate till I went to other places.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Steve reflecting on his return California after spending some time outside of it at Reed College&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;I think this was Steve realizing how unique California’s openness and free-spiritedness was compared to the rest of the country. The culture of Silicon Valley is to question the status quo, not to fit inside it, and that’s what Steve did with his products.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;…and we had a common interest [in electronics] that sort of bound us together even though we were totally different in every other way possible.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;We’re sort of like two planets in our own orbits that every so often intersect each other. There’s a bond there that will last as long as we both live.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Steve describing his relationship with Woz&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;From Steve and Woz’s relationship I’ve come to appreciate the importance of complementary skillsets. People argue over who deserves more credit for Apple’s early days, but the truth is
Steve couldn’t have built Apple without Woz, and Woz couldn’t have built Apple without Steve. It truly was a one in a billion partnership. If you’re looking for a cofounder, don’t look for someone just like you, but rather someone who complements you.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;We make what we think of as the Rolls-Royce of personal computers&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Steve at the First Annual Personal Computer Expo held in the New York Coliseum&lt;/li&gt;
  &lt;li&gt;I think it’s obvious that one of the reasons Steve’s products were so successful is that he never settled for crap. By demanding perfection he was able to push people to do things they never thought possible.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;If we take a look, we’re going to sell 3 million computers this year, 10 million in ’86, whether they look like a piece of shit or they look great. People are just going to suck this stuff up so fast no matter what it looks like. And it doesn’t cost any more money to make them look great. They are going to be these new objects that are going to be in everyone’s working environment, everyone’s educational environment, and everyone’s home environment. We have a shot [at] putting a great object there—and if we don’t, we’re going to put one more piece-of-junk object there.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;At the International Design Conference in Aspen telling an audience of designers the importance of a well-designed personal computer&lt;/li&gt;
  &lt;li&gt;It was a common theme of his that “getting the job done” was insufficient for a great product. In addition to having great functionality, it had to look and feel like it was great.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;The problem was, you can’t ask Aristotle a question. And I think, as we look towards the next fifty to one hundred years, if we really can come up with these machines that can capture an underlying spirit, or an underlying set of principles, or an underlying way of looking at the world, then, when the next Aristotle comes around, maybe if he carries around one of these machines with him his whole life—his or her whole life—and types in all this stuff, then maybe someday, after this person’s dead and gone, we can ask this machine, “Hey, what would Aristotle have said?”&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;From the same speech at the international design conference.&lt;/li&gt;
  &lt;li&gt;This excerpt is Steve as “visionary”, where he demonstrates incredible foresight into the future of technology. His AI prediction feels extremely relevant today, when AI is powerful enough to generate a &lt;a href=&quot;https://www.youtube.com/watch?v=meu0CoYv3z8&quot;&gt;ficticious JRE podcast&lt;/a&gt; episode with Sam Altman. Steve predicted this back in the 80’s with no mention of the term “artificial intelligence”.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;We [at Apple] feel that, for some crazy reason, we’re in the right place at the right time to put something back. And what I mean by that is, most of us didn’t make the clothes we’re wearing, and we didn’t cook or grow the food that we eat, and we’re speaking a language that was developed by other people, and we use a mathematics that was developed by other people. We are constantly taking.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;And the ability to put something back into the pool of human experience is extremely neat. I think that everyone knows that in the next ten years we have the chance to really do that. And we [will] look back—and while we’re doing it, it’s pretty fun, too—we will look back and say, “God, we were a part of that!”&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;On “putting something back” into the universe&lt;/li&gt;
  &lt;li&gt;I think the main driver of his entire life was the desire in his bones to contribute to give something back to his fellow man, by making an impact in the world, by creating a “ripple in the universe”.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;I don’t think my taste in aesthetics is that much different than a lot of other people’s. The difference is that I just get to be really stubborn about making things as good as we all know they can be. That’s the only difference.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;In an interview with Michael Moritz, talking about his design inspiration&lt;/li&gt;
  &lt;li&gt;As we already saw in another quote, he never settled for less than perfect. And the results speak for themselves.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;if you’re going to make something, it doesn’t take any more energy—and rarely does it take more money—to make it really great. All it takes is a little more time. Not that much more. And a willingness to do so, a willingness to persevere until it’s really great.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Another quote from the Moritz interview&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;I personally, man, I want to build things. I’m thirty. I’m not ready to be an industry pundit. I got three offers to be a professor during this summer, and I told all of the universities that I thought I would be an awful professor. What I’m best at doing is finding a group of talented people and making things with them.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;In an interview with Newsweek a couple of weeks after he was fired from Apple&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Though the outside world looks at success from a numerical point of view, my yardstick might be quite different than that. My yardstick may be how every computer that’s designed from here on out will have to be at least as good as a Macintosh.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Also from the Newsweek interview&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;One of the things I always tried to coach myself on was not being afraid to fail. When you have something that doesn’t work out, a lot of times, people’s reaction is to get very protective about never wanting to fall on their face again. I think that’s a big mistake, because you never achieve what you want without falling on your face a few times in the process of getting there&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;In an interview with Terry Gross in 1996, looking back at his time at Apple&lt;/li&gt;
  &lt;li&gt;To learn and grow, you MUST embrace failure. There’s simply no other way. If you are afraid to fail then you’ll never get far in anything.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;I would say Apple was a corporate lifestyle, but it had a few very big differences to other corporate lifestyles that I’d seen. The first one was a real belief that there wasn’t a hierarchy of ideas that mapped onto the hierarchy of the organization. In other words, great ideas could come from anywhere and that we better sort of treat people in a much more egalitarian sense, in terms of where the ideas came from.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;And Apple was a very bottoms-up company when it came to a lot of its great ideas. And we hired truly great people and gave them the room to do great work. A lot of companies—I know it sounds crazy—but a lot of companies don’t do that. They hire people to tell them what to do. We hired people to tell us what to do.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;On Apple’s corporate culture&lt;/li&gt;
  &lt;li&gt;How many other companies have a culture of hiring people to tell management what to do? The collaborative and inclusive work culture Steve created at Apple, a “meritocracy of ideas” his own words, was something unique.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Be aware of the world’s magical, mystical, and artistic sides. The most important things in life are not the goal-oriented, materialistic things that everyone and everything tries to convince you to strive for. Most of you know that deep inside&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Part of his speech to the Palo Alto High School graduating class of 1996&lt;/li&gt;
  &lt;li&gt;A lot of people in Silicon Valley are engineers, and a lot of engineers scoff at the arts as a waste of time - I know this because I’m an engineer myself, and used to feel this way. But this quote serves as an important reminder that the most important things in life are often intangible and not tied to material success.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;The only thing one can do is to believe that some of what you follow with your heart will indeed come back to make your life much richer.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;From the Palo Alto High speech&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Think of your life as a rainbow arcing across the horizon of this world. You appear, have a chance to blaze in the sky, then you disappear.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;From the Palo Alto High speech&lt;/li&gt;
  &lt;li&gt;This is a beautiful metaphor for the transient nature of life and the short time we have on this planet to do something great and give back to fellow humans. This quote, combined with his quote that “… I’ll be dead soon”, are extremely powerful calls to action&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;You’d better have great people, or you won’t get your product to market as fast as possible. Or you might get a product to market really fast, but it will be really clunky and nobody will buy it. There are no shortcuts around quality, and quality starts with people.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;On the necessity of needing great people at your company, during his interview for &lt;em&gt;In the Company of Giants&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;He considered recruiting to be his most important responsibility. When you find the best people in the world, and put them together, you can more or less stay out of the way and trust them to produce incredible things.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;The Macintosh team, if you talk to most of them—a dozen years since we shipped the product—most will still say that working on the Mac was the most meaningful experience of their lives. If we’d never shipped a product they wouldn’t say that. If the product hadn’t been so good they wouldn’t say that. The Macintosh experience wasn’t just about going to camp with a bunch of fun people. It wasn’t just a motivational speaker. It was the product that everybody put their heart and soul into, and it was the product that expressed their deep appreciation, somehow, for the world to see.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Reflecting on the team that built the Macintosh and bringing out the best work in people, same interview.&lt;/li&gt;
  &lt;li&gt;I think the Macintosh team is strong evidence that no team is going to ship a great product unless they have true passion and pride in their work. Steve remarked in one interview that he believed the members of the Macintosh team would have been artists, poets, and writers in another life.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;So this is one of those cases where, when you hire the right people, they don’t always listen to you in key moments in time. So this person, being very smart, didn’t listen to me. And he went over and talked to Apple and said, “You ought to buy NeXT.” And they were interested.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;When a NeXT employee suggested they approach Apple to be acquired, Steve rejected the idea by saying “Forget it. It will never happen”. The NeXT employee approached Apple anyway.&lt;/li&gt;
  &lt;li&gt;Yet more evidence for the importance of hiring great people who are able to persist on their ideas even in the face of rejection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;And … I have to be careful what I say here. Let me just say that you need a license to drive a car, but you don’t need a license to be the CEO of a company. And maybe you should need one.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;In reference to the CEO of Apple at the time they bought NeXT&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Well, it’s optimism and passion, because it’s really hard. And if you don’t really, really care about what you’re doing, you’re gonna give up if you’re a sane person—because it’s just super hard. I’m sure it was extremely hard for him at times.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;In response to Bob Noyce’s (founder of Intel) quote “optimism is the essential ingredient for innovation”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;The most important thing I’ve ever encountered to help me make the big choices is to remember that I’ll be dead soon&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Part of his commencement speech to the Stanford Graduating Class of 2005&lt;/li&gt;
  &lt;li&gt;This is one of the most important ones to me. In the face of your own mortality it’s impossible to justify &lt;strong&gt;not&lt;/strong&gt; making bold choices or &lt;strong&gt;not&lt;/strong&gt; pursuing your passions. Our time is incredibly limited, so prioritize what matters to you and take risks. We’ll all be dead soon.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Stay hungry. Stay foolish&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Same commencement speech&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sat, 22 Apr 2023 00:00:00 +0000</pubDate>
        <link>http://daltyboy11.github.io//make-something-wonderful/</link>
        <guid isPermaLink="true">http://daltyboy11.github.io//make-something-wonderful/</guid>
      </item>
    
  </channel>
</rss>
